@futdevpro/ccap 1.1.2956 → 1.1.2964
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/cli/build/_collections/update/update-error-buffer-entry.interface.d.ts +17 -0
- package/cli/build/_collections/update/update-error-buffer-entry.interface.d.ts.map +1 -0
- package/cli/build/_collections/update/update-error-buffer-entry.interface.js +3 -0
- package/cli/build/_collections/update/update-error-buffer-entry.interface.js.map +1 -0
- package/cli/build/_collections/update/update-error-buffer.util.d.ts +35 -0
- package/cli/build/_collections/update/update-error-buffer.util.d.ts.map +1 -0
- package/cli/build/_collections/update/update-error-buffer.util.js +76 -0
- package/cli/build/_collections/update/update-error-buffer.util.js.map +1 -0
- package/cli/build/_collections/update/update-error-buffer.util.spec.d.ts +8 -0
- package/cli/build/_collections/update/update-error-buffer.util.spec.d.ts.map +1 -0
- package/cli/build/_collections/update/update-error-buffer.util.spec.js +95 -0
- package/cli/build/_collections/update/update-error-buffer.util.spec.js.map +1 -0
- package/cli/build/_collections/update/update-runner.util.d.ts +7 -1
- package/cli/build/_collections/update/update-runner.util.d.ts.map +1 -1
- package/cli/build/_collections/update/update-runner.util.js +9 -2
- package/cli/build/_collections/update/update-runner.util.js.map +1 -1
- package/cli/build/_collections/update/update-runner.util.spec.js +11 -0
- package/cli/build/_collections/update/update-runner.util.spec.js.map +1 -1
- package/cli/build/_commands/info.d.ts +69 -0
- package/cli/build/_commands/info.d.ts.map +1 -0
- package/cli/build/_commands/info.interface.d.ts +70 -0
- package/cli/build/_commands/info.interface.d.ts.map +1 -0
- package/cli/build/_commands/info.interface.js +6 -0
- package/cli/build/_commands/info.interface.js.map +1 -0
- package/cli/build/_commands/info.js +379 -0
- package/cli/build/_commands/info.js.map +1 -0
- package/cli/build/_commands/info.spec.d.ts +8 -0
- package/cli/build/_commands/info.spec.d.ts.map +1 -0
- package/cli/build/_commands/info.spec.js +124 -0
- package/cli/build/_commands/info.spec.js.map +1 -0
- package/cli/build/_commands/logs.d.ts +41 -0
- package/cli/build/_commands/logs.d.ts.map +1 -0
- package/cli/build/_commands/logs.interface.d.ts +16 -0
- package/cli/build/_commands/logs.interface.d.ts.map +1 -0
- package/cli/build/_commands/logs.interface.js +3 -0
- package/cli/build/_commands/logs.interface.js.map +1 -0
- package/cli/build/_commands/logs.js +175 -0
- package/cli/build/_commands/logs.js.map +1 -0
- package/cli/build/_commands/logs.spec.d.ts +7 -0
- package/cli/build/_commands/logs.spec.d.ts.map +1 -0
- package/cli/build/_commands/logs.spec.js +120 -0
- package/cli/build/_commands/logs.spec.js.map +1 -0
- package/cli/build/_commands/update.d.ts +17 -13
- package/cli/build/_commands/update.d.ts.map +1 -1
- package/cli/build/_commands/update.js +61 -25
- package/cli/build/_commands/update.js.map +1 -1
- package/cli/build/program.js +40 -1
- package/cli/build/program.js.map +1 -1
- package/client-dist/{agent-instances.module-5SGOQHZE.js → agent-instances.module-HY2VHBIJ.js} +2 -2
- package/client-dist/{ca.module-OCEZIM6Z.js → ca.module-ET22WIEL.js} +2 -2
- package/client-dist/{cc-usage-dashboard.component-GI5LK2ZY.js → cc-usage-dashboard.component-LKFNBYVL.js} +2 -2
- package/client-dist/{cc.module-7FRXT32H.js → cc.module-DIE6ZYLY.js} +4 -4
- package/client-dist/cc.module-DIE6ZYLY.js.map +7 -0
- package/client-dist/{chunk-ZP3HA643.js → chunk-22IFFOSI.js} +2 -2
- package/client-dist/{chunk-H6H3DTA3.js → chunk-2SMC7E3W.js} +2 -2
- package/client-dist/{chunk-T6T7P3PI.js → chunk-3DOLRVWQ.js} +2 -2
- package/client-dist/{chunk-ZLIDOLOB.js → chunk-4564GYJ5.js} +2 -2
- package/client-dist/{chunk-7LEYLJ7K.js → chunk-4DO6YKND.js} +2 -2
- package/client-dist/{chunk-44PBXW6P.js → chunk-53UP5J5U.js} +2 -2
- package/client-dist/{chunk-XWEW3BLS.js → chunk-55MKVFNX.js} +2 -2
- package/client-dist/{chunk-DDV2CYX5.js → chunk-5NGKACCT.js} +2 -2
- package/client-dist/{chunk-KPGAWVWR.js → chunk-5XCRRBNZ.js} +2 -2
- package/client-dist/{chunk-PECMBLKI.js → chunk-66HYCHT3.js} +2 -2
- package/client-dist/{chunk-MJW74BVF.js → chunk-6TP5DJKE.js} +2 -2
- package/client-dist/{chunk-T4VU2VZX.js → chunk-7HGLOQXB.js} +2 -2
- package/client-dist/{chunk-CS6PNARE.js → chunk-APF4FF3U.js} +2 -2
- package/client-dist/{chunk-2BWFVPTP.js → chunk-BTJGFYMU.js} +2 -2
- package/client-dist/{chunk-3KCBESYF.js → chunk-BW5WKQNI.js} +2 -2
- package/client-dist/{chunk-FB3RWQTM.js → chunk-CCUYQVNE.js} +2 -2
- package/client-dist/{chunk-FJQ56J6K.js → chunk-DIZTKV2A.js} +2 -2
- package/client-dist/{chunk-J2Y64TJX.js → chunk-DOEEKXYU.js} +2 -2
- package/client-dist/{chunk-7OU5EIQN.js → chunk-DQAJ7SNH.js} +2 -2
- package/client-dist/{chunk-V4V6NHXT.js → chunk-F6LSYMQS.js} +2 -2
- package/client-dist/{chunk-246ZTR5O.js → chunk-FF6BH35R.js} +2 -2
- package/client-dist/{chunk-MSC5PDVD.js → chunk-GMB2E5VV.js} +2 -2
- package/client-dist/{chunk-LV74GN4F.js → chunk-GTH4FT5Y.js} +2 -2
- package/client-dist/{chunk-DQWIQMJR.js → chunk-HD5BCFN3.js} +2 -2
- package/client-dist/{chunk-I5B5NLNT.js → chunk-HQUS6ZSW.js} +2 -2
- package/client-dist/{chunk-SQ64MCSX.js → chunk-HUDNX2TQ.js} +2 -2
- package/client-dist/{chunk-JJMNZIAQ.js → chunk-HWBJNTEA.js} +2 -2
- package/client-dist/{chunk-5UB3EISH.js → chunk-IBQTN5YN.js} +2 -2
- package/client-dist/{chunk-FLC62MUK.js → chunk-IJLGLMJO.js} +2 -2
- package/client-dist/{chunk-2JP2POHI.js → chunk-IKEQV7TO.js} +2 -2
- package/client-dist/{chunk-KOF3QQI6.js → chunk-IQB44YSD.js} +2 -2
- package/client-dist/{chunk-TSUGHIGA.js → chunk-ISQFVLSF.js} +2 -2
- package/client-dist/{chunk-JLA2PX42.js → chunk-L3ECIYSX.js} +2 -2
- package/client-dist/{chunk-3N4SIVK5.js → chunk-LACKIWSR.js} +2 -2
- package/client-dist/{chunk-JVHTYQOT.js → chunk-LCOGH5NG.js} +2 -2
- package/client-dist/{chunk-37AFYV4M.js → chunk-M2MQ43YC.js} +2 -2
- package/client-dist/{chunk-37AFYV4M.js.map → chunk-M2MQ43YC.js.map} +1 -1
- package/client-dist/{chunk-XBIXPQFJ.js → chunk-MICI24HP.js} +2 -2
- package/client-dist/{chunk-4V5CKMM7.js → chunk-OTVNMXWD.js} +2 -2
- package/client-dist/{chunk-HU6WMEXD.js → chunk-OZE63YYG.js} +2 -2
- package/client-dist/{chunk-IMYGUQJE.js → chunk-P5IIY6MO.js} +2 -2
- package/client-dist/{chunk-S7RPTNLO.js → chunk-PWPSHQ6T.js} +2 -2
- package/client-dist/{chunk-LRT6KDL6.js → chunk-QTBI3NZR.js} +2 -2
- package/client-dist/chunk-R52CDVAS.js +73 -0
- package/client-dist/chunk-R52CDVAS.js.map +1 -0
- package/client-dist/{chunk-3BVLFJ5H.js → chunk-SUFGVRIV.js} +2 -2
- package/client-dist/{chunk-PNTHQY7R.js → chunk-SXMXRHRS.js} +2 -2
- package/client-dist/{chunk-TH3RT3KI.js → chunk-TDNEXMNL.js} +2 -2
- package/client-dist/{chunk-6NLDSDVJ.js → chunk-TTWKTVB4.js} +2 -2
- package/client-dist/{chunk-YAL3F5I2.js → chunk-UBTKADWP.js} +2 -2
- package/client-dist/{chunk-QBFOD33L.js → chunk-UVQOIRMW.js} +2 -2
- package/client-dist/{chunk-WTLQBK4J.js → chunk-VJHWXKNO.js} +2 -2
- package/client-dist/{chunk-DAV3UNQX.js → chunk-VLW4WKLV.js} +2 -2
- package/client-dist/{chunk-DDRFKBEB.js → chunk-VPBJ7EDQ.js} +2 -2
- package/client-dist/{chunk-IQWBHMY2.js → chunk-W7PSBH2X.js} +2 -2
- package/client-dist/{chunk-RD66WNGY.js → chunk-WHYZNKV4.js} +2 -2
- package/client-dist/{chunk-EWVZESJW.js → chunk-ZDJUICKL.js} +2 -2
- package/client-dist/{chunk-S5TMOEID.js → chunk-ZJBX4PWF.js} +2 -2
- package/client-dist/{consultant.module-X4IBYYQS.js → consultant.module-D3LT6Q7Q.js} +2 -2
- package/client-dist/{crd.module-4JESGZ6J.js → crd.module-6H4ARFJI.js} +2 -2
- package/client-dist/{dashboard.module-S24CPFKY.js → dashboard.module-3SOB7UIK.js} +2 -2
- package/client-dist/{do.module-KMXSJLSC.js → do.module-JEKCVDN7.js} +2 -2
- package/client-dist/{document-library.module-NVMIG2CU.js → document-library.module-QJRCHNHP.js} +2 -2
- package/client-dist/{embedding-eval.module-H6GIG3JO.js → embedding-eval.module-MMR2X56Q.js} +2 -2
- package/client-dist/{embedding-registry.module-5ISUMQ7P.js → embedding-registry.module-OF7URRJG.js} +2 -2
- package/client-dist/{err.module-NJA2KCSV.js → err.module-BSNE44J4.js} +2 -2
- package/client-dist/{feedback.module-DRAGZ6Y4.js → feedback.module-N42SJQAD.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-VG5PUGZU.js → host-runtime-mcp.module-UVYBS76M.js} +2 -2
- package/client-dist/index.html +2 -2
- package/client-dist/{live-dev-pipeline.module-S7CEI343.js → live-dev-pipeline.module-R33WI6YN.js} +2 -2
- package/client-dist/{logs.module-PDM3A7YM.js → logs.module-CLZDKCFB.js} +2 -2
- package/client-dist/{main-3BCKKE3E.js → main-Q7457G6W.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-ZT3ZPSP2.js → master-control-remote-poc.module-IXQRMTZO.js} +2 -2
- package/client-dist/{mobile-app.module-WOWIODHA.js → mobile-app.module-6VL6WSNJ.js} +2 -2
- package/client-dist/{model-registry.module-ABJPN7CO.js → model-registry.module-E63WDS2Y.js} +2 -2
- package/client-dist/{oc.module-IYJQQ4V2.js → oc.module-TARPDB47.js} +2 -2
- package/client-dist/{orc.module-L3UX2YOG.js → orc.module-NO2J4BGL.js} +2 -2
- package/client-dist/{project-management.module-CH4QROUC.js → project-management.module-RLNO5UZC.js} +2 -2
- package/client-dist/project-source-routed.module-NTVZXKR2.js +2 -0
- package/client-dist/s-agent-console-message-bubble.component-QJSDQEWX.css.map +7 -0
- package/client-dist/s-agent-tool-plan-view.component-E4T5UMZT.css.map +7 -0
- package/client-dist/{scheduler.module-UBFVRLQC.js → scheduler.module-WUBZXO5V.js} +2 -2
- package/client-dist/{session.module-SPGTZVT2.js → session.module-5R43V7F5.js} +2 -2
- package/client-dist/{set.module-E3ZIGRQY.js → set.module-36ZSGLGF.js} +2 -2
- package/client-dist/{setup.module-AQ4H55JC.js → setup.module-7MFIOZVY.js} +2 -2
- package/client-dist/{styles-MUU7N64U.css → styles-YBSH3JQY.css} +2 -2
- package/client-dist/{styles-MUU7N64U.css.map → styles-YBSH3JQY.css.map} +3 -3
- package/client-dist/{terminals.module-I63ACO43.js → terminals.module-ZFFIL6DY.js} +2 -2
- package/client-dist/{voice-notes-poc.module-6DL3W2E3.js → voice-notes-poc.module-FXL6WNEJ.js} +2 -2
- package/client-dist/{wfs.module-MXS63ER2.js → wfs.module-KNRW6VWW.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.d.ts +18 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.js +3 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay-result.interface.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 +31 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.js +184 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.js.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.d.ts +9 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.js +135 -0
- package/server/build/src/_modules/setup-config/_collections/utils/update-error-buffer-replay/sc-update-error-buffer-replay.util.spec.js.map +1 -0
- package/server/build/src/app.server.d.ts.map +1 -1
- package/server/build/src/app.server.js +10 -0
- package/server/build/src/app.server.js.map +1 -1
- package/client-dist/cc.module-7FRXT32H.js.map +0 -7
- package/client-dist/chunk-WPGGMZPB.js +0 -73
- package/client-dist/chunk-WPGGMZPB.js.map +0 -1
- package/client-dist/project-source-routed.module-SF6CNR34.js +0 -2
- package/client-dist/s-agent-console-message-bubble.component-KS3KL36G.css.map +0 -7
- package/client-dist/s-agent-tool-plan-view.component-PVG3EXHY.css.map +0 -7
- /package/client-dist/{agent-instances.module-5SGOQHZE.js.map → agent-instances.module-HY2VHBIJ.js.map} +0 -0
- /package/client-dist/{ca.module-OCEZIM6Z.js.map → ca.module-ET22WIEL.js.map} +0 -0
- /package/client-dist/{cc-usage-dashboard.component-GI5LK2ZY.js.map → cc-usage-dashboard.component-LKFNBYVL.js.map} +0 -0
- /package/client-dist/{chunk-ZP3HA643.js.map → chunk-22IFFOSI.js.map} +0 -0
- /package/client-dist/{chunk-H6H3DTA3.js.map → chunk-2SMC7E3W.js.map} +0 -0
- /package/client-dist/{chunk-T6T7P3PI.js.map → chunk-3DOLRVWQ.js.map} +0 -0
- /package/client-dist/{chunk-ZLIDOLOB.js.map → chunk-4564GYJ5.js.map} +0 -0
- /package/client-dist/{chunk-7LEYLJ7K.js.map → chunk-4DO6YKND.js.map} +0 -0
- /package/client-dist/{chunk-44PBXW6P.js.map → chunk-53UP5J5U.js.map} +0 -0
- /package/client-dist/{chunk-XWEW3BLS.js.map → chunk-55MKVFNX.js.map} +0 -0
- /package/client-dist/{chunk-DDV2CYX5.js.map → chunk-5NGKACCT.js.map} +0 -0
- /package/client-dist/{chunk-KPGAWVWR.js.map → chunk-5XCRRBNZ.js.map} +0 -0
- /package/client-dist/{chunk-PECMBLKI.js.map → chunk-66HYCHT3.js.map} +0 -0
- /package/client-dist/{chunk-MJW74BVF.js.map → chunk-6TP5DJKE.js.map} +0 -0
- /package/client-dist/{chunk-T4VU2VZX.js.map → chunk-7HGLOQXB.js.map} +0 -0
- /package/client-dist/{chunk-CS6PNARE.js.map → chunk-APF4FF3U.js.map} +0 -0
- /package/client-dist/{chunk-2BWFVPTP.js.map → chunk-BTJGFYMU.js.map} +0 -0
- /package/client-dist/{chunk-3KCBESYF.js.map → chunk-BW5WKQNI.js.map} +0 -0
- /package/client-dist/{chunk-FB3RWQTM.js.map → chunk-CCUYQVNE.js.map} +0 -0
- /package/client-dist/{chunk-FJQ56J6K.js.map → chunk-DIZTKV2A.js.map} +0 -0
- /package/client-dist/{chunk-J2Y64TJX.js.map → chunk-DOEEKXYU.js.map} +0 -0
- /package/client-dist/{chunk-7OU5EIQN.js.map → chunk-DQAJ7SNH.js.map} +0 -0
- /package/client-dist/{chunk-V4V6NHXT.js.map → chunk-F6LSYMQS.js.map} +0 -0
- /package/client-dist/{chunk-246ZTR5O.js.map → chunk-FF6BH35R.js.map} +0 -0
- /package/client-dist/{chunk-MSC5PDVD.js.map → chunk-GMB2E5VV.js.map} +0 -0
- /package/client-dist/{chunk-LV74GN4F.js.map → chunk-GTH4FT5Y.js.map} +0 -0
- /package/client-dist/{chunk-DQWIQMJR.js.map → chunk-HD5BCFN3.js.map} +0 -0
- /package/client-dist/{chunk-I5B5NLNT.js.map → chunk-HQUS6ZSW.js.map} +0 -0
- /package/client-dist/{chunk-SQ64MCSX.js.map → chunk-HUDNX2TQ.js.map} +0 -0
- /package/client-dist/{chunk-JJMNZIAQ.js.map → chunk-HWBJNTEA.js.map} +0 -0
- /package/client-dist/{chunk-5UB3EISH.js.map → chunk-IBQTN5YN.js.map} +0 -0
- /package/client-dist/{chunk-FLC62MUK.js.map → chunk-IJLGLMJO.js.map} +0 -0
- /package/client-dist/{chunk-2JP2POHI.js.map → chunk-IKEQV7TO.js.map} +0 -0
- /package/client-dist/{chunk-KOF3QQI6.js.map → chunk-IQB44YSD.js.map} +0 -0
- /package/client-dist/{chunk-TSUGHIGA.js.map → chunk-ISQFVLSF.js.map} +0 -0
- /package/client-dist/{chunk-JLA2PX42.js.map → chunk-L3ECIYSX.js.map} +0 -0
- /package/client-dist/{chunk-3N4SIVK5.js.map → chunk-LACKIWSR.js.map} +0 -0
- /package/client-dist/{chunk-JVHTYQOT.js.map → chunk-LCOGH5NG.js.map} +0 -0
- /package/client-dist/{chunk-XBIXPQFJ.js.map → chunk-MICI24HP.js.map} +0 -0
- /package/client-dist/{chunk-4V5CKMM7.js.map → chunk-OTVNMXWD.js.map} +0 -0
- /package/client-dist/{chunk-HU6WMEXD.js.map → chunk-OZE63YYG.js.map} +0 -0
- /package/client-dist/{chunk-IMYGUQJE.js.map → chunk-P5IIY6MO.js.map} +0 -0
- /package/client-dist/{chunk-S7RPTNLO.js.map → chunk-PWPSHQ6T.js.map} +0 -0
- /package/client-dist/{chunk-LRT6KDL6.js.map → chunk-QTBI3NZR.js.map} +0 -0
- /package/client-dist/{chunk-3BVLFJ5H.js.map → chunk-SUFGVRIV.js.map} +0 -0
- /package/client-dist/{chunk-PNTHQY7R.js.map → chunk-SXMXRHRS.js.map} +0 -0
- /package/client-dist/{chunk-TH3RT3KI.js.map → chunk-TDNEXMNL.js.map} +0 -0
- /package/client-dist/{chunk-6NLDSDVJ.js.map → chunk-TTWKTVB4.js.map} +0 -0
- /package/client-dist/{chunk-YAL3F5I2.js.map → chunk-UBTKADWP.js.map} +0 -0
- /package/client-dist/{chunk-QBFOD33L.js.map → chunk-UVQOIRMW.js.map} +0 -0
- /package/client-dist/{chunk-WTLQBK4J.js.map → chunk-VJHWXKNO.js.map} +0 -0
- /package/client-dist/{chunk-DAV3UNQX.js.map → chunk-VLW4WKLV.js.map} +0 -0
- /package/client-dist/{chunk-DDRFKBEB.js.map → chunk-VPBJ7EDQ.js.map} +0 -0
- /package/client-dist/{chunk-IQWBHMY2.js.map → chunk-W7PSBH2X.js.map} +0 -0
- /package/client-dist/{chunk-RD66WNGY.js.map → chunk-WHYZNKV4.js.map} +0 -0
- /package/client-dist/{chunk-EWVZESJW.js.map → chunk-ZDJUICKL.js.map} +0 -0
- /package/client-dist/{chunk-S5TMOEID.js.map → chunk-ZJBX4PWF.js.map} +0 -0
- /package/client-dist/{consultant.module-X4IBYYQS.js.map → consultant.module-D3LT6Q7Q.js.map} +0 -0
- /package/client-dist/{crd.module-4JESGZ6J.js.map → crd.module-6H4ARFJI.js.map} +0 -0
- /package/client-dist/{dashboard.module-S24CPFKY.js.map → dashboard.module-3SOB7UIK.js.map} +0 -0
- /package/client-dist/{do.module-KMXSJLSC.js.map → do.module-JEKCVDN7.js.map} +0 -0
- /package/client-dist/{document-library.module-NVMIG2CU.js.map → document-library.module-QJRCHNHP.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-H6GIG3JO.js.map → embedding-eval.module-MMR2X56Q.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-5ISUMQ7P.js.map → embedding-registry.module-OF7URRJG.js.map} +0 -0
- /package/client-dist/{err.module-NJA2KCSV.js.map → err.module-BSNE44J4.js.map} +0 -0
- /package/client-dist/{feedback.module-DRAGZ6Y4.js.map → feedback.module-N42SJQAD.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-VG5PUGZU.js.map → host-runtime-mcp.module-UVYBS76M.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-S7CEI343.js.map → live-dev-pipeline.module-R33WI6YN.js.map} +0 -0
- /package/client-dist/{logs.module-PDM3A7YM.js.map → logs.module-CLZDKCFB.js.map} +0 -0
- /package/client-dist/{main-3BCKKE3E.js.map → main-Q7457G6W.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-ZT3ZPSP2.js.map → master-control-remote-poc.module-IXQRMTZO.js.map} +0 -0
- /package/client-dist/{mobile-app.module-WOWIODHA.js.map → mobile-app.module-6VL6WSNJ.js.map} +0 -0
- /package/client-dist/{model-registry.module-ABJPN7CO.js.map → model-registry.module-E63WDS2Y.js.map} +0 -0
- /package/client-dist/{oc.module-IYJQQ4V2.js.map → oc.module-TARPDB47.js.map} +0 -0
- /package/client-dist/{orc.module-L3UX2YOG.js.map → orc.module-NO2J4BGL.js.map} +0 -0
- /package/client-dist/{project-management.module-CH4QROUC.js.map → project-management.module-RLNO5UZC.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-SF6CNR34.js.map → project-source-routed.module-NTVZXKR2.js.map} +0 -0
- /package/client-dist/{scheduler.module-UBFVRLQC.js.map → scheduler.module-WUBZXO5V.js.map} +0 -0
- /package/client-dist/{session.module-SPGTZVT2.js.map → session.module-5R43V7F5.js.map} +0 -0
- /package/client-dist/{set.module-E3ZIGRQY.js.map → set.module-36ZSGLGF.js.map} +0 -0
- /package/client-dist/{setup.module-AQ4H55JC.js.map → setup.module-7MFIOZVY.js.map} +0 -0
- /package/client-dist/{terminals.module-I63ACO43.js.map → terminals.module-ZFFIL6DY.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-6DL3W2E3.js.map → voice-notes-poc.module-FXL6WNEJ.js.map} +0 -0
- /package/client-dist/{wfs.module-MXS63ER2.js.map → wfs.module-KNRW6VWW.js.map} +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CCAP_LogsCommand_Util = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fs = tslib_1.__importStar(require("fs"));
|
|
6
|
+
const path = tslib_1.__importStar(require("path"));
|
|
7
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
8
|
+
/** Home + log paths. */
|
|
9
|
+
const HOME_DIR = process.env.HOME ?? process.env.USERPROFILE ?? '.';
|
|
10
|
+
const SERVER_LOG_PATH = path.join(HOME_DIR, '.ccap', 'server.log');
|
|
11
|
+
const CLIENT_LOG_PATH = path.join(HOME_DIR, '.ccap', 'client.log');
|
|
12
|
+
/** Default kezdeti sor-darabszám. */
|
|
13
|
+
const DEFAULT_INITIAL_LINES = 50;
|
|
14
|
+
/** Polling interval a tail-loop-hoz (ms). `fs.watchFile` pollold (no inotify dependency). */
|
|
15
|
+
const TAIL_POLL_INTERVAL_MS = 1000;
|
|
16
|
+
/** Egy időbélyeg-detektálás regex — log sorok elején `[2026-05-09T...]` formátum. */
|
|
17
|
+
const TIMESTAMP_PREFIX_REGEX = /\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?)\]/;
|
|
18
|
+
/**
|
|
19
|
+
* REQ-CLI-LOGS-001 — `ccap logs` parancs. Kiírja a server (vagy `--client`)
|
|
20
|
+
* log fájl utolsó N sorát, opcionálisan filter / since szűréssel, majd
|
|
21
|
+
* tail-mode-ban (default) live-stream-eli a növekedést SIGINT-ig.
|
|
22
|
+
*
|
|
23
|
+
* Használat:
|
|
24
|
+
* ccap logs # default: server log, last 50 lines, follow
|
|
25
|
+
* ccap logs --client # client log
|
|
26
|
+
* ccap logs --no-follow # csak a kezdeti sorok, nincs tail
|
|
27
|
+
* ccap logs --lines 200 # több kezdeti sor
|
|
28
|
+
* ccap logs --filter ERROR # csak `ERROR` regex-illeszkedés
|
|
29
|
+
* ccap logs --since 1h # utolsó 1 óra
|
|
30
|
+
* ccap logs --since 30m --filter "user-flow"
|
|
31
|
+
*/
|
|
32
|
+
class CCAP_LogsCommand_Util {
|
|
33
|
+
/**
|
|
34
|
+
* `ccap logs` parancs main entry-point.
|
|
35
|
+
*/
|
|
36
|
+
static async c_ccapLogs(opts) {
|
|
37
|
+
const logPath = opts.client === true ? CLIENT_LOG_PATH : SERVER_LOG_PATH;
|
|
38
|
+
const lines = opts.lines && opts.lines > 0 ? opts.lines : DEFAULT_INITIAL_LINES;
|
|
39
|
+
const follow = opts.follow !== false;
|
|
40
|
+
const sinceMs = opts.since ? CCAP_LogsCommand_Util.parseSinceToMs(opts.since) : null;
|
|
41
|
+
const filterRegex = opts.filter ? CCAP_LogsCommand_Util.compileFilter(opts.filter) : null;
|
|
42
|
+
if (!fs.existsSync(logPath)) {
|
|
43
|
+
fsm_dynamo_1.DyFM_Log.warn(`Log fájl nem található: ${logPath} — még nem indult el a ${opts.client === true ? 'client' : 'server'}?`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
fsm_dynamo_1.DyFM_Log.info(`📜 Log fájl: ${logPath}${follow ? ' (tail mode — Ctrl+C kilépés)' : ' (no-follow)'}`);
|
|
47
|
+
if (filterRegex)
|
|
48
|
+
fsm_dynamo_1.DyFM_Log.info(`🔍 Filter: ${filterRegex.source}`);
|
|
49
|
+
if (sinceMs !== null)
|
|
50
|
+
fsm_dynamo_1.DyFM_Log.info(`⏱ Since: ${opts.since} (${new Date(sinceMs).toISOString()})`);
|
|
51
|
+
// 1. Kezdeti N sor kiírása (filter + since alkalmazva)
|
|
52
|
+
const initialContent = fs.readFileSync(logPath, 'utf-8');
|
|
53
|
+
const allLines = initialContent.split('\n');
|
|
54
|
+
const lastN = allLines.slice(-lines);
|
|
55
|
+
for (const line of lastN) {
|
|
56
|
+
CCAP_LogsCommand_Util.printIfMatch(line, filterRegex, sinceMs);
|
|
57
|
+
}
|
|
58
|
+
// 2. Tail mód — `fs.watchFile` polling (cross-platform, no inotify dependency)
|
|
59
|
+
if (follow) {
|
|
60
|
+
let lastSize = fs.statSync(logPath).size;
|
|
61
|
+
let lastBuffer = ''; // partial-line carry-over
|
|
62
|
+
const onChange = (curr) => {
|
|
63
|
+
if (curr.size <= lastSize) {
|
|
64
|
+
// truncated or no growth — skip
|
|
65
|
+
if (curr.size < lastSize) {
|
|
66
|
+
fsm_dynamo_1.DyFM_Log.warn('⚠ Log fájl truncate-elve / lerövidítve — tail folytatása az új tartalomtól.');
|
|
67
|
+
lastBuffer = '';
|
|
68
|
+
}
|
|
69
|
+
lastSize = curr.size;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const fd = fs.openSync(logPath, 'r');
|
|
73
|
+
try {
|
|
74
|
+
const bytesToRead = curr.size - lastSize;
|
|
75
|
+
const buffer = Buffer.alloc(bytesToRead);
|
|
76
|
+
fs.readSync(fd, buffer, 0, bytesToRead, lastSize);
|
|
77
|
+
lastSize = curr.size;
|
|
78
|
+
const chunk = lastBuffer + buffer.toString('utf-8');
|
|
79
|
+
const newLines = chunk.split('\n');
|
|
80
|
+
lastBuffer = newLines.pop() ?? '';
|
|
81
|
+
for (const line of newLines) {
|
|
82
|
+
CCAP_LogsCommand_Util.printIfMatch(line, filterRegex, sinceMs);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
fs.closeSync(fd);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
fs.watchFile(logPath, { interval: TAIL_POLL_INTERVAL_MS }, onChange);
|
|
90
|
+
// SIGINT handler — clean exit
|
|
91
|
+
await new Promise((resolve) => {
|
|
92
|
+
const cleanup = () => {
|
|
93
|
+
fs.unwatchFile(logPath, onChange);
|
|
94
|
+
fsm_dynamo_1.DyFM_Log.info('\n🛑 Tail leállítva.');
|
|
95
|
+
resolve();
|
|
96
|
+
};
|
|
97
|
+
process.once('SIGINT', cleanup);
|
|
98
|
+
process.once('SIGTERM', cleanup);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Egy sor printelése ha a filter + since (mindkettő) átengedi.
|
|
104
|
+
* Üres sorokat skip-eli.
|
|
105
|
+
*/
|
|
106
|
+
static printIfMatch(line, filterRegex, sinceMs) {
|
|
107
|
+
if (!line || !line.trim()) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (filterRegex && !filterRegex.test(line)) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (sinceMs !== null) {
|
|
114
|
+
const lineMs = CCAP_LogsCommand_Util.extractTimestampMs(line);
|
|
115
|
+
// Ha nincs felismerhető időbélyeg, a sort átengedjük (a separator-block
|
|
116
|
+
// és a multi-line stack-trace sorok tipikusan ilyenek — egy filter-es
|
|
117
|
+
// user csak a filter-t akarja igazából, a since-t laza heurisztikának)
|
|
118
|
+
if (lineMs !== null && lineMs < sinceMs) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Raw stdout — log-tail kimenet pipe-olható (grep, less); DyFM_Log prefix
|
|
123
|
+
// korrumpálná. A `no-console-log` review-szabály csak `console.log`-ra
|
|
124
|
+
// vonatkozik, `process.stdout.write` engedélyezett.
|
|
125
|
+
process.stdout.write(line + '\n');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* `1h`, `30m`, `2d`, `45s` → milliszekundum-kü szám (vissza-szorzott a since-time-stamp-et).
|
|
129
|
+
* Hibás formátumra null (a since szűrés ekkor nem aktív).
|
|
130
|
+
*/
|
|
131
|
+
static parseSinceToMs(since) {
|
|
132
|
+
const trimmed = since.trim();
|
|
133
|
+
const m = trimmed.match(/^(\d+)\s*(s|m|h|d)$/i);
|
|
134
|
+
if (!m) {
|
|
135
|
+
fsm_dynamo_1.DyFM_Log.warn(`⚠ Érvénytelen --since formátum: "${since}". Várt: 30s | 5m | 2h | 1d. Filter mellőzve.`);
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
const n = parseInt(m[1], 10);
|
|
139
|
+
const unit = m[2].toLowerCase();
|
|
140
|
+
const unitMs = {
|
|
141
|
+
s: 1000,
|
|
142
|
+
m: 60 * 1000,
|
|
143
|
+
h: 60 * 60 * 1000,
|
|
144
|
+
d: 24 * 60 * 60 * 1000,
|
|
145
|
+
};
|
|
146
|
+
const cutoffAgo = n * (unitMs[unit] ?? 1000);
|
|
147
|
+
return Date.now() - cutoffAgo;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Filter regex kompilálás. Hibára null + warn.
|
|
151
|
+
*/
|
|
152
|
+
static compileFilter(pattern) {
|
|
153
|
+
try {
|
|
154
|
+
return new RegExp(pattern);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
fsm_dynamo_1.DyFM_Log.warn(`⚠ Érvénytelen --filter regex: "${pattern}" — ${err instanceof Error ? err.message : String(err)}. Filter mellőzve.`);
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Sor első időbélyeg-prefixéből milliszekundum-érték. Null ha nincs felismerhető timestamp.
|
|
163
|
+
* (Több sor a CCAP server log-ban prefix nélkül jön — separator-blokkok, stack-trace sorok.)
|
|
164
|
+
*/
|
|
165
|
+
static extractTimestampMs(line) {
|
|
166
|
+
const m = line.match(TIMESTAMP_PREFIX_REGEX);
|
|
167
|
+
if (!m) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
const ms = Date.parse(m[1]);
|
|
171
|
+
return Number.isFinite(ms) ? ms : null;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
exports.CCAP_LogsCommand_Util = CCAP_LogsCommand_Util;
|
|
175
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/_commands/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* REQ-CLI-LOGS-001 — `ccap logs` parancs unit-tesztek a tiszta helper-ekre
|
|
3
|
+
* (since parser, filter compile, timestamp extract, printIfMatch szűrés).
|
|
4
|
+
* A tail-mode-ot (fs.watchFile + SIGINT) nem teszteljük itt — integrációs.
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=logs.spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.spec.d.ts","sourceRoot":"","sources":["../../src/_commands/logs.spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* REQ-CLI-LOGS-001 — `ccap logs` parancs unit-tesztek a tiszta helper-ekre
|
|
4
|
+
* (since parser, filter compile, timestamp extract, printIfMatch szűrés).
|
|
5
|
+
* A tail-mode-ot (fs.watchFile + SIGINT) nem teszteljük itt — integrációs.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
const logs_1 = require("./logs");
|
|
9
|
+
describe('CCAP_LogsCommand_Util.parseSinceToMs', () => {
|
|
10
|
+
it('| `30s` → most - 30s', () => {
|
|
11
|
+
const before = Date.now();
|
|
12
|
+
const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('30s');
|
|
13
|
+
const after = Date.now();
|
|
14
|
+
expect(result).not.toBeNull();
|
|
15
|
+
expect(result).toBeGreaterThanOrEqual(before - 30_000);
|
|
16
|
+
expect(result).toBeLessThanOrEqual(after - 30_000 + 100);
|
|
17
|
+
});
|
|
18
|
+
it('| `5m` → most - 5*60*1000', () => {
|
|
19
|
+
const before = Date.now();
|
|
20
|
+
const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('5m');
|
|
21
|
+
expect(result).toBeLessThanOrEqual(before - 5 * 60_000 + 100);
|
|
22
|
+
});
|
|
23
|
+
it('| `2h` → most - 2*60*60*1000', () => {
|
|
24
|
+
const before = Date.now();
|
|
25
|
+
const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('2h');
|
|
26
|
+
expect(result).toBeLessThanOrEqual(before - 2 * 60 * 60_000 + 100);
|
|
27
|
+
});
|
|
28
|
+
it('| `1d` → most - 24*60*60*1000', () => {
|
|
29
|
+
const before = Date.now();
|
|
30
|
+
const result = logs_1.CCAP_LogsCommand_Util.parseSinceToMs('1d');
|
|
31
|
+
expect(result).toBeLessThanOrEqual(before - 24 * 60 * 60_000 + 100);
|
|
32
|
+
});
|
|
33
|
+
it('| whitespace toleráns', () => {
|
|
34
|
+
expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs(' 30 s ')).not.toBeNull();
|
|
35
|
+
});
|
|
36
|
+
it('| érvénytelen formátum → null', () => {
|
|
37
|
+
expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs('garbage')).toBeNull();
|
|
38
|
+
expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs('30')).toBeNull(); // egység nélkül
|
|
39
|
+
expect(logs_1.CCAP_LogsCommand_Util.parseSinceToMs('5z')).toBeNull(); // ismeretlen egység
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('CCAP_LogsCommand_Util.compileFilter', () => {
|
|
43
|
+
it('| valid regex → RegExp objektum', () => {
|
|
44
|
+
const r = logs_1.CCAP_LogsCommand_Util.compileFilter('ERROR|WARN');
|
|
45
|
+
expect(r).not.toBeNull();
|
|
46
|
+
expect(r.test('this is an ERROR')).toBeTrue();
|
|
47
|
+
expect(r.test('this is OK')).toBeFalse();
|
|
48
|
+
});
|
|
49
|
+
it('| invalid regex → null', () => {
|
|
50
|
+
const r = logs_1.CCAP_LogsCommand_Util.compileFilter('[unclosed');
|
|
51
|
+
expect(r).toBeNull();
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('CCAP_LogsCommand_Util.extractTimestampMs', () => {
|
|
55
|
+
it('| ISO timestamp prefix → ms', () => {
|
|
56
|
+
const line = '[2026-05-09T18:30:00.000Z] some log content';
|
|
57
|
+
const ms = logs_1.CCAP_LogsCommand_Util.extractTimestampMs(line);
|
|
58
|
+
expect(ms).toBe(Date.parse('2026-05-09T18:30:00.000Z'));
|
|
59
|
+
});
|
|
60
|
+
it('| ISO timestamp Z nélkül is parsolja', () => {
|
|
61
|
+
const line = '[2026-05-09T18:30:00] no Z';
|
|
62
|
+
expect(logs_1.CCAP_LogsCommand_Util.extractTimestampMs(line)).not.toBeNull();
|
|
63
|
+
});
|
|
64
|
+
it('| nincs timestamp → null', () => {
|
|
65
|
+
expect(logs_1.CCAP_LogsCommand_Util.extractTimestampMs('plain log line')).toBeNull();
|
|
66
|
+
});
|
|
67
|
+
it('| szöveg közepén levő bracket-tartalom is illeszkedik (heurisztikus)', () => {
|
|
68
|
+
const line = ' ERROR: at [2026-05-09T18:30:00.000Z] something happened';
|
|
69
|
+
expect(logs_1.CCAP_LogsCommand_Util.extractTimestampMs(line)).not.toBeNull();
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe('CCAP_LogsCommand_Util.printIfMatch', () => {
|
|
73
|
+
let stdoutSpy;
|
|
74
|
+
beforeEach(() => {
|
|
75
|
+
// A logs.ts `process.stdout.write`-t használ a raw kimenethez (NEM
|
|
76
|
+
// `console.log`-ot, mert a `no-console-log` review-szabály tiltja és
|
|
77
|
+
// mert a JSON / log-tail output pipe-olható kell legyen).
|
|
78
|
+
stdoutSpy = spyOn(process.stdout, 'write').and.returnValue(true);
|
|
79
|
+
});
|
|
80
|
+
it('| üres / whitespace sor → nem print', () => {
|
|
81
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch('', null, null);
|
|
82
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch(' ', null, null);
|
|
83
|
+
expect(stdoutSpy).not.toHaveBeenCalled();
|
|
84
|
+
});
|
|
85
|
+
it('| filter nélkül + since nélkül → mindig print', () => {
|
|
86
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch('any line', null, null);
|
|
87
|
+
expect(stdoutSpy).toHaveBeenCalledOnceWith('any line\n');
|
|
88
|
+
});
|
|
89
|
+
it('| filter regex illeszkedés → print', () => {
|
|
90
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch('hello ERROR world', /ERROR/, null);
|
|
91
|
+
expect(stdoutSpy).toHaveBeenCalledOnceWith('hello ERROR world\n');
|
|
92
|
+
});
|
|
93
|
+
it('| filter regex NEM illeszkedik → nem print', () => {
|
|
94
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch('hello world', /ERROR/, null);
|
|
95
|
+
expect(stdoutSpy).not.toHaveBeenCalled();
|
|
96
|
+
});
|
|
97
|
+
it('| since-cutoff előtt timestamp → nem print', () => {
|
|
98
|
+
const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
|
|
99
|
+
const oldLine = '[2026-05-09T18:00:00.000Z] old line';
|
|
100
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch(oldLine, null, sinceMs);
|
|
101
|
+
expect(stdoutSpy).not.toHaveBeenCalled();
|
|
102
|
+
});
|
|
103
|
+
it('| since-cutoff után timestamp → print', () => {
|
|
104
|
+
const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
|
|
105
|
+
const recentLine = '[2026-05-09T19:00:00.000Z] recent line';
|
|
106
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch(recentLine, null, sinceMs);
|
|
107
|
+
expect(stdoutSpy).toHaveBeenCalledOnceWith(recentLine + '\n');
|
|
108
|
+
});
|
|
109
|
+
it('| since aktív + nincs felismerhető timestamp → print (lazy heurisztika)', () => {
|
|
110
|
+
const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
|
|
111
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch('plain line, no timestamp', null, sinceMs);
|
|
112
|
+
expect(stdoutSpy).toHaveBeenCalled();
|
|
113
|
+
});
|
|
114
|
+
it('| filter + since együtt — mindkettőnek pass-olnia kell', () => {
|
|
115
|
+
const sinceMs = Date.parse('2026-05-09T18:30:00.000Z');
|
|
116
|
+
logs_1.CCAP_LogsCommand_Util.printIfMatch('[2026-05-09T19:00:00.000Z] ERROR: oh no', /ERROR/, sinceMs);
|
|
117
|
+
expect(stdoutSpy).toHaveBeenCalledTimes(1);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
//# sourceMappingURL=logs.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.spec.js","sourceRoot":"","sources":["../../src/_commands/logs.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CCAP update parancs util:
|
|
2
|
+
* CCAP update parancs util: globális csomag-frissítés + rendszer újraindítás.
|
|
3
3
|
* Globális NPM telepítés ellenőrzéssel (figyelmeztetés, ha nem globális; --force flag skip-eli).
|
|
4
4
|
*
|
|
5
|
-
* BUG-CLI-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
5
|
+
* BUG-CLI-UPDATE-AUTO-STOP-001 (cycle a user-bug-report alapján): három javítás.
|
|
6
|
+
* 1. Auto-stop a npm-step ELŐTT — a user korábban manuálisan kellett `ccap stop`-ot
|
|
7
|
+
* futtasson, különben az npm install néha fájlt foglalt a futó server miatt.
|
|
8
|
+
* Most a flow: stop → npm install -g @latest → start. Ha eleve nem futott
|
|
9
|
+
* semmi, a stop no-op.
|
|
10
|
+
* 2. Skip-if-already-latest guard — pre-check: ha `globalVersion === remoteLatest`,
|
|
11
|
+
* a npm-step + restart kihagyva (a flow exit-el „már naprakész" üzenettel).
|
|
12
|
+
* `--force`-szal forszírozható (pl. újratelepítés sérült install-on).
|
|
13
|
+
* 3. `npm update -g` → `npm install -g <pkg>@latest` váltás a runner-ben — az
|
|
14
|
+
* `update -g` csak a meglévő semver range-en belül mozog (gyakran nem ugrik
|
|
15
|
+
* új minor/major-ra), így a user gyakran azt látta hogy a pre/post verzió
|
|
16
|
+
* ugyanaz, hiába volt új release. Az `install -g <pkg>@latest` mindig a
|
|
17
|
+
* registry-tip-re ugrik. (Spec: REQ-CLI-UPDATE-INSTALL-LATEST-001.)
|
|
15
18
|
*/
|
|
16
19
|
export declare class CCAP_UpdateCommand_Util {
|
|
17
20
|
/**
|
|
18
|
-
* CCAP update parancs: npm
|
|
19
|
-
* @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy
|
|
21
|
+
* CCAP update parancs: stop → npm install -g @latest → start. Skip-if-latest guard.
|
|
22
|
+
* @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy,
|
|
23
|
+
* és skip-if-latest guardot is felüldarálja.
|
|
20
24
|
*/
|
|
21
25
|
static c_ccapUpdate(params: {
|
|
22
26
|
force?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,uBAAuB;IAClC;;;;OAIG;WACU,YAAY,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAwHtE"}
|
|
@@ -4,30 +4,35 @@ exports.CCAP_UpdateCommand_Util = void 0;
|
|
|
4
4
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
5
|
const process_control_util_1 = require("../_collections/process-control.util");
|
|
6
6
|
const install_context_util_1 = require("../_collections/install-context.util");
|
|
7
|
+
const update_error_buffer_util_1 = require("../_collections/update/update-error-buffer.util");
|
|
7
8
|
const update_runner_util_1 = require("../_collections/update/update-runner.util");
|
|
8
9
|
const update_version_check_util_1 = require("../_collections/update/update-version-check.util");
|
|
9
10
|
const version_const_1 = require("../_collections/version.const");
|
|
10
11
|
/** NPM csomagnév a globális frissítéshez. */
|
|
11
12
|
const CCAP_NPM_PACKAGE_NAME = '@futdevpro/ccap';
|
|
12
13
|
/**
|
|
13
|
-
* CCAP update parancs util:
|
|
14
|
+
* CCAP update parancs util: globális csomag-frissítés + rendszer újraindítás.
|
|
14
15
|
* Globális NPM telepítés ellenőrzéssel (figyelmeztetés, ha nem globális; --force flag skip-eli).
|
|
15
16
|
*
|
|
16
|
-
* BUG-CLI-
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
17
|
+
* BUG-CLI-UPDATE-AUTO-STOP-001 (cycle a user-bug-report alapján): három javítás.
|
|
18
|
+
* 1. Auto-stop a npm-step ELŐTT — a user korábban manuálisan kellett `ccap stop`-ot
|
|
19
|
+
* futtasson, különben az npm install néha fájlt foglalt a futó server miatt.
|
|
20
|
+
* Most a flow: stop → npm install -g @latest → start. Ha eleve nem futott
|
|
21
|
+
* semmi, a stop no-op.
|
|
22
|
+
* 2. Skip-if-already-latest guard — pre-check: ha `globalVersion === remoteLatest`,
|
|
23
|
+
* a npm-step + restart kihagyva (a flow exit-el „már naprakész" üzenettel).
|
|
24
|
+
* `--force`-szal forszírozható (pl. újratelepítés sérült install-on).
|
|
25
|
+
* 3. `npm update -g` → `npm install -g <pkg>@latest` váltás a runner-ben — az
|
|
26
|
+
* `update -g` csak a meglévő semver range-en belül mozog (gyakran nem ugrik
|
|
27
|
+
* új minor/major-ra), így a user gyakran azt látta hogy a pre/post verzió
|
|
28
|
+
* ugyanaz, hiába volt új release. Az `install -g <pkg>@latest` mindig a
|
|
29
|
+
* registry-tip-re ugrik. (Spec: REQ-CLI-UPDATE-INSTALL-LATEST-001.)
|
|
26
30
|
*/
|
|
27
31
|
class CCAP_UpdateCommand_Util {
|
|
28
32
|
/**
|
|
29
|
-
* CCAP update parancs: npm
|
|
30
|
-
* @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy
|
|
33
|
+
* CCAP update parancs: stop → npm install -g @latest → start. Skip-if-latest guard.
|
|
34
|
+
* @param params.force Ha true, nem globális NPM telepítés esetén is tovább megy,
|
|
35
|
+
* és skip-if-latest guardot is felüldarálja.
|
|
31
36
|
*/
|
|
32
37
|
static async c_ccapUpdate(params) {
|
|
33
38
|
fsm_dynamo_1.DyFM_Log.info('===== CCAP frissítés =====');
|
|
@@ -47,26 +52,57 @@ class CCAP_UpdateCommand_Util {
|
|
|
47
52
|
fsm_dynamo_1.DyFM_Log.info(' • Registry (remote) lekérés…');
|
|
48
53
|
const preRemoteVersion = update_version_check_util_1.CCAP_UpdateVersionCheck_Util.getRemoteVersion(CCAP_NPM_PACKAGE_NAME);
|
|
49
54
|
fsm_dynamo_1.DyFM_Log.info(` • Registry (remote) elérhető: ${preRemoteVersion || '(nem elérhető)'}`);
|
|
50
|
-
|
|
51
|
-
|
|
55
|
+
// BUG-CLI-UPDATE-AUTO-STOP-001 Pillar 2: skip-if-already-latest guard.
|
|
56
|
+
// Ha `--force` van, mindig megy az install (újratelepítés sérült install-on).
|
|
57
|
+
if (!params.force
|
|
58
|
+
&& preGlobalVersion
|
|
59
|
+
&& preRemoteVersion
|
|
60
|
+
&& preGlobalVersion === preRemoteVersion) {
|
|
61
|
+
fsm_dynamo_1.DyFM_Log.info('');
|
|
62
|
+
fsm_dynamo_1.DyFM_Log.success(`✓ Már a legfrissebb verzió van telepítve (${preGlobalVersion}). Nincs teendő.`);
|
|
63
|
+
fsm_dynamo_1.DyFM_Log.info('ℹ️ Ha mégis újra akarod telepíteni (pl. sérült install), futtasd: `ccap update --force`.');
|
|
64
|
+
return;
|
|
52
65
|
}
|
|
53
|
-
|
|
66
|
+
if (preGlobalVersion && preRemoteVersion && preGlobalVersion !== preRemoteVersion) {
|
|
54
67
|
fsm_dynamo_1.DyFM_Log.info(`📈 Várható frissítés: ${preGlobalVersion} → ${preRemoteVersion}`);
|
|
55
68
|
}
|
|
56
|
-
//
|
|
69
|
+
// BUG-CLI-UPDATE-AUTO-STOP-001 Pillar 1: stop a npm-step előtt.
|
|
70
|
+
// A user korábban manuálisan kellett `ccap stop`-ot futtasson — most automata.
|
|
71
|
+
// A `stopServerAndClientAsync` no-op ha nincs futó process (PID fájl hiány).
|
|
72
|
+
fsm_dynamo_1.DyFM_Log.info('');
|
|
73
|
+
fsm_dynamo_1.DyFM_Log.info('🛑 Futó CCAP server / client leállítása az npm install előtt…');
|
|
74
|
+
await process_control_util_1.CCAP_ProcessControl_Util.stopServerAndClientAsync();
|
|
75
|
+
// BUG-CLI-UPDATE-AUTO-STOP-001 Pillar 3: install -g @latest (runner-ben).
|
|
57
76
|
fsm_dynamo_1.DyFM_Log.info('');
|
|
58
|
-
fsm_dynamo_1.DyFM_Log.info(`📦 npm
|
|
77
|
+
fsm_dynamo_1.DyFM_Log.info(`📦 npm install -g ${CCAP_NPM_PACKAGE_NAME}@latest futtatása (heartbeat 30s-enként)…`);
|
|
59
78
|
const runResult = await update_runner_util_1.CCAP_UpdateRunner_Util.runNpmUpdate({
|
|
60
79
|
packageName: CCAP_NPM_PACKAGE_NAME,
|
|
61
80
|
});
|
|
62
81
|
const elapsedRounded = Math.round(runResult.elapsedSec * 10) / 10;
|
|
63
82
|
if (runResult.success) {
|
|
64
|
-
fsm_dynamo_1.DyFM_Log.success(`✓ npm
|
|
83
|
+
fsm_dynamo_1.DyFM_Log.success(`✓ npm install sikeres (${elapsedRounded}s).`);
|
|
65
84
|
}
|
|
66
85
|
else {
|
|
67
|
-
fsm_dynamo_1.DyFM_Log.warn(`✗ npm
|
|
86
|
+
fsm_dynamo_1.DyFM_Log.warn(`✗ npm install sikertelen (${elapsedRounded}s, exit=${runResult.exitCode}): ${runResult.errorMessage}`);
|
|
68
87
|
fsm_dynamo_1.DyFM_Log.warn('A frissítés nem futott le, de a server újraindítás folytatódik a jelenlegi verzióval. '
|
|
69
|
-
+ 'Manuális recovery: `ccap repair`
|
|
88
|
+
+ 'Manuális recovery: `ccap repair` ha staging-stuck állapot.');
|
|
89
|
+
// REQ-UPD-ERROR-HANDLING-001: lokális JSONL buffer-be append, hogy a
|
|
90
|
+
// server bootstrap-jakor a `/errors` táblába is bekerüljön (a server
|
|
91
|
+
// most még nem fut — direkt persist nem lehetséges).
|
|
92
|
+
update_error_buffer_util_1.CCAP_UpdateErrorBuffer_Util.append({
|
|
93
|
+
errorCode: 'CCAP-CLI-UPDATE-NPM-FAIL-001',
|
|
94
|
+
message: `npm install -g ${CCAP_NPM_PACKAGE_NAME}@latest sikertelen: ${runResult.errorMessage}`,
|
|
95
|
+
source: 'cli-update',
|
|
96
|
+
additionalContent: {
|
|
97
|
+
packageName: CCAP_NPM_PACKAGE_NAME,
|
|
98
|
+
exitCode: runResult.exitCode,
|
|
99
|
+
elapsedSec: elapsedRounded,
|
|
100
|
+
preGlobalVersion: preGlobalVersion,
|
|
101
|
+
preRemoteVersion: preRemoteVersion,
|
|
102
|
+
runningCliVersion: version_const_1.CCAP_VERSION,
|
|
103
|
+
force: params.force === true,
|
|
104
|
+
},
|
|
105
|
+
});
|
|
70
106
|
}
|
|
71
107
|
// Post-update version snapshot: local + global + remote újra.
|
|
72
108
|
fsm_dynamo_1.DyFM_Log.info('');
|
|
@@ -80,12 +116,12 @@ class CCAP_UpdateCommand_Util {
|
|
|
80
116
|
fsm_dynamo_1.DyFM_Log.success(`✓ Verzió-emelkedés detektálva: ${preGlobalVersion} → ${postGlobalVersion}`);
|
|
81
117
|
}
|
|
82
118
|
else if (postGlobalVersion && preGlobalVersion === postGlobalVersion) {
|
|
83
|
-
fsm_dynamo_1.DyFM_Log.info(`ℹ️ Globális verzió változatlan (${postGlobalVersion}) — már a legfrissebb, vagy az npm
|
|
119
|
+
fsm_dynamo_1.DyFM_Log.info(`ℹ️ Globális verzió változatlan (${postGlobalVersion}) — már a legfrissebb, vagy az npm install nem talált új verziót.`);
|
|
84
120
|
}
|
|
85
|
-
//
|
|
121
|
+
// Start (a stop már megtörtént — itt a friss kódból indítunk).
|
|
86
122
|
fsm_dynamo_1.DyFM_Log.info('');
|
|
87
|
-
fsm_dynamo_1.DyFM_Log.info('🔁 Server újraindítása…');
|
|
88
|
-
await process_control_util_1.CCAP_ProcessControl_Util.
|
|
123
|
+
fsm_dynamo_1.DyFM_Log.info('🔁 Server újraindítása (frissített kódból)…');
|
|
124
|
+
await process_control_util_1.CCAP_ProcessControl_Util.startServerAndClient();
|
|
89
125
|
fsm_dynamo_1.DyFM_Log.info('');
|
|
90
126
|
fsm_dynamo_1.DyFM_Log.success('✅ CCAP update flow lezárva.');
|
|
91
127
|
fsm_dynamo_1.DyFM_Log.info('🔍 Ellenőrzés: `ccap --version` → friss verzió kiírja '
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEjD,+EAAgF;AAChF,+EAAgF;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/_commands/update.ts"],"names":[],"mappings":"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"}
|
package/cli/build/program.js
CHANGED
|
@@ -21,6 +21,8 @@ const explore_1 = require("./_commands/explore");
|
|
|
21
21
|
const review_1 = require("./_commands/review");
|
|
22
22
|
const notify_1 = require("./_commands/notify");
|
|
23
23
|
const repair_1 = require("./_commands/repair");
|
|
24
|
+
const info_1 = require("./_commands/info");
|
|
25
|
+
const logs_1 = require("./_commands/logs");
|
|
24
26
|
const server_health_util_1 = require("./_collections/server-health.util");
|
|
25
27
|
const ensure_setup_util_1 = require("./_collections/setup/ensure-setup.util");
|
|
26
28
|
const version_const_1 = require("./_collections/version.const");
|
|
@@ -241,11 +243,48 @@ commander_1.program
|
|
|
241
243
|
.action(() => {
|
|
242
244
|
version_1.CCAP_VersionCommand_Util.c_ccapVersion();
|
|
243
245
|
});
|
|
246
|
+
// REQ-CLI-INFO-001 — `ccap info` diagnosztikai snapshot.
|
|
247
|
+
commander_1.program
|
|
248
|
+
.command('info')
|
|
249
|
+
.description('Diagnosztikai snapshot: identity, server runtime, client runtime, config, '
|
|
250
|
+
+ 'update-állapot, workspace. Bug-jelentésnél küldd el a kimenetet a `--json` '
|
|
251
|
+
+ 'flag-gel együtt.')
|
|
252
|
+
.option('--json', 'Machine-readable JSON output (különben pretty)', false)
|
|
253
|
+
.action((opts) => {
|
|
254
|
+
info_1.CCAP_InfoCommand_Util.c_ccapInfo(opts).catch((err) => {
|
|
255
|
+
fsm_dynamo_1.DyFM_Error.logSimple('ccap info failed', err);
|
|
256
|
+
process.exit(1);
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
// REQ-CLI-LOGS-001 — `ccap logs` log tail + filter.
|
|
260
|
+
commander_1.program
|
|
261
|
+
.command('logs')
|
|
262
|
+
.description('CCAP server (default) vagy client log live-tail-je. Kezdeti N sor + tail '
|
|
263
|
+
+ '(`--no-follow`-val csak a kezdeti sorok). Filter regex és since (`30s|5m|2h|1d`) '
|
|
264
|
+
+ 'támogatva.')
|
|
265
|
+
.option('--lines <n>', 'Kezdeti sorok száma a tail előtt (default: 50)', '50')
|
|
266
|
+
.option('--filter <pattern>', 'Regex filter — csak az illeszkedő sorokat mutatja')
|
|
267
|
+
.option('--since <duration>', 'Időszak szűrő pl. 30s | 5m | 2h | 1d')
|
|
268
|
+
.option('--client', 'Server log helyett a client log fájlt mutatja', false)
|
|
269
|
+
.option('--no-follow', 'Nem fut tail-loop, csak a kezdeti sorok kiírása')
|
|
270
|
+
.action((opts) => {
|
|
271
|
+
const normalized = {
|
|
272
|
+
lines: opts.lines ? parseInt(opts.lines, 10) : undefined,
|
|
273
|
+
filter: opts.filter,
|
|
274
|
+
since: opts.since,
|
|
275
|
+
client: opts.client === true,
|
|
276
|
+
follow: opts.follow !== false,
|
|
277
|
+
};
|
|
278
|
+
logs_1.CCAP_LogsCommand_Util.c_ccapLogs(normalized).catch((err) => {
|
|
279
|
+
fsm_dynamo_1.DyFM_Error.logSimple('ccap logs failed', err);
|
|
280
|
+
process.exit(1);
|
|
281
|
+
});
|
|
282
|
+
});
|
|
244
283
|
commander_1.program.parse();
|
|
245
284
|
// Ha nincs alparancs: segédlet
|
|
246
285
|
if (!process.argv.slice(2).length) {
|
|
247
286
|
fsm_dynamo_1.DyFM_Log.info('CCAP Revisioned CLI – használat:'
|
|
248
|
-
+ ' ccap <start|stop|restart|update|chat|config|init|status|sessions|palette|explore|review|vault-key|ver>');
|
|
287
|
+
+ ' ccap <start|stop|restart|update|chat|config|init|status|sessions|palette|explore|review|vault-key|ver|info|logs>');
|
|
249
288
|
commander_1.program.outputHelp();
|
|
250
289
|
}
|
|
251
290
|
//# sourceMappingURL=program.js.map
|