@futdevpro/ccap 1.1.2704 → 1.1.2740
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-LAAZ3DCN.js → agent-instances.module-IIWTPW4O.js} +2 -2
- package/client-dist/{ca.module-KJ3HMVQS.js → ca.module-LWRIBCUU.js} +2 -2
- package/client-dist/{cc.module-R3XR774M.js → cc.module-6YJTSCAC.js} +2 -2
- package/client-dist/{chunk-UEKEYKYQ.js → chunk-3AHNPY2X.js} +2 -2
- package/client-dist/{chunk-PRJAMBXR.js → chunk-3BT3IMYD.js} +2 -2
- package/client-dist/{chunk-ZPENXS5V.js → chunk-3BUEPMT6.js} +2 -2
- package/client-dist/{chunk-GZCIND56.js → chunk-3QLEX2NT.js} +2 -2
- package/client-dist/{chunk-CGMVTKY2.js → chunk-5C6MAP7W.js} +2 -2
- package/client-dist/{chunk-JIJ7AJ2M.js → chunk-5K6VN44P.js} +2 -2
- package/client-dist/{chunk-Q2OT2QHT.js → chunk-5YM2RZWN.js} +2 -2
- package/client-dist/{chunk-OI7T7XSB.js → chunk-63EKRGNW.js} +2 -2
- package/client-dist/{chunk-O7GPLAYH.js → chunk-63VBJAEW.js} +2 -2
- package/client-dist/{chunk-23VFZSJY.js → chunk-6454AQZI.js} +2 -2
- package/client-dist/{chunk-OVLLCTU6.js → chunk-6C5KJNDU.js} +2 -2
- package/client-dist/{chunk-UJSPO372.js → chunk-6MS4GHDI.js} +2 -2
- package/client-dist/{chunk-C3VSCOG5.js → chunk-AC26JISD.js} +2 -2
- package/client-dist/{chunk-DFQTZTHH.js → chunk-AOHIUL3Q.js} +2 -2
- package/client-dist/{chunk-VOLGLPD4.js → chunk-AQCUVNQI.js} +2 -2
- package/client-dist/{chunk-PTB2WMG4.js → chunk-DQKU2LY3.js} +2 -2
- package/client-dist/{chunk-A4VKLUNV.js → chunk-DU23SLBW.js} +2 -2
- package/client-dist/{chunk-4VQCWOKK.js → chunk-DXLFM7Q4.js} +2 -2
- package/client-dist/{chunk-LXQXCCPD.js → chunk-EP2L5MMG.js} +2 -2
- package/client-dist/{chunk-S4OXJMBZ.js → chunk-F5R42IJ2.js} +2 -2
- package/client-dist/{chunk-ZLUBPQF4.js → chunk-FBGZAXUP.js} +2 -2
- package/client-dist/{chunk-GMWBFGET.js → chunk-FSSZAXEP.js} +2 -2
- package/client-dist/{chunk-34EXATDF.js → chunk-FZ43K4CA.js} +2 -2
- package/client-dist/{chunk-OSVQTRBX.js → chunk-GVZABJSS.js} +2 -2
- package/client-dist/{chunk-EHVMKTXY.js → chunk-H35PNXSP.js} +2 -2
- package/client-dist/{chunk-UF5GFNKA.js → chunk-H3U7XTKH.js} +2 -2
- package/client-dist/{chunk-AKYBH2CZ.js → chunk-HBFH3SIK.js} +2 -2
- package/client-dist/{chunk-ISHXGODD.js → chunk-IW5XTVSP.js} +2 -2
- package/client-dist/{chunk-B7HVGHKQ.js → chunk-JK4S3AXO.js} +2 -2
- package/client-dist/{chunk-HU4Z3PXD.js → chunk-JOJMPCQG.js} +2 -2
- package/client-dist/{chunk-V7VGFFUL.js → chunk-K4PMLSYM.js} +2 -2
- package/client-dist/{chunk-2RSAHUCJ.js → chunk-K4S55QIE.js} +2 -2
- package/client-dist/{chunk-73KFZET5.js → chunk-LEMSEJOC.js} +2 -2
- package/client-dist/{chunk-Y6C2Y6D3.js → chunk-LP2FFZC5.js} +2 -2
- package/client-dist/{chunk-4KHQD4F5.js → chunk-MG6CV3Y5.js} +2 -2
- package/client-dist/{chunk-GNT26I3L.js → chunk-NTLKUZAF.js} +2 -2
- package/client-dist/{chunk-QTXGAORV.js → chunk-NVSGBXMD.js} +2 -2
- package/client-dist/{chunk-QTXGAORV.js.map → chunk-NVSGBXMD.js.map} +1 -1
- package/client-dist/{chunk-4GDSWQOC.js → chunk-NWZRCNKP.js} +2 -2
- package/client-dist/{chunk-7LV7MODT.js → chunk-O6PFIEPO.js} +2 -2
- package/client-dist/{chunk-URFXKX63.js → chunk-OUM7QH3O.js} +2 -2
- package/client-dist/{chunk-RZTPIE3G.js → chunk-QP5RTV4R.js} +2 -2
- package/client-dist/{chunk-W7CDUK6U.js → chunk-R26G2XMB.js} +2 -2
- package/client-dist/{chunk-MSGYW52X.js → chunk-RYHFLYDS.js} +2 -2
- package/client-dist/{chunk-CHJARZ4T.js → chunk-S5TWQ53O.js} +2 -2
- package/client-dist/{chunk-27MRXFCH.js → chunk-S75AE6UP.js} +2 -2
- package/client-dist/{chunk-DVXDSOX7.js → chunk-SLIWPSFP.js} +2 -2
- package/client-dist/{chunk-WCF4WZ2W.js → chunk-SSMQG7T3.js} +2 -2
- package/client-dist/{chunk-N72P5JS2.js → chunk-THUA7SW2.js} +2 -2
- package/client-dist/{chunk-C3C6M5O2.js → chunk-TMXG7RHS.js} +2 -2
- package/client-dist/{chunk-GS6LMK5O.js → chunk-U3UHKPNK.js} +2 -2
- package/client-dist/{chunk-XFRFKRY2.js → chunk-USNT5XKJ.js} +2 -2
- package/client-dist/{chunk-XYC6XMFP.js → chunk-XC57ZZSB.js} +2 -2
- package/client-dist/{chunk-OSR5TMMM.js → chunk-XTJ63H3O.js} +2 -2
- package/client-dist/{chunk-HNBLIGHL.js → chunk-YV2UEV2Q.js} +2 -2
- package/client-dist/{chunk-YKYAPYHF.js → chunk-YVE7TPMW.js} +2 -2
- package/client-dist/{chunk-SLHYH5BE.js → chunk-YVN3KWT7.js} +2 -2
- package/client-dist/{consultant.module-ZXEIKZLL.js → consultant.module-YUJFXRDH.js} +2 -2
- package/client-dist/{crd.module-3F4G7NI4.js → crd.module-D7KTQGQ4.js} +2 -2
- package/client-dist/{dashboard.module-CLXEVYJW.js → dashboard.module-XKKHP5S6.js} +2 -2
- package/client-dist/{do.module-S6G3OBZR.js → do.module-PAINTIOK.js} +2 -2
- package/client-dist/{document-library.module-EQM4645W.js → document-library.module-XHTVQ4RU.js} +2 -2
- package/client-dist/{embedding-eval.module-NBFQH4BY.js → embedding-eval.module-2XU6ZQ5K.js} +2 -2
- package/client-dist/{embedding-registry.module-SDLK2TMJ.js → embedding-registry.module-WWIMXCOI.js} +2 -2
- package/client-dist/{err.module-AFMM2VG6.js → err.module-W23TJZYC.js} +2 -2
- package/client-dist/{feedback.module-WGC6H5T5.js → feedback.module-XD4GWPEY.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-L7KZFRVE.js → host-runtime-mcp.module-LLI4OQ2C.js} +2 -2
- package/client-dist/index.html +1 -1
- package/client-dist/{live-dev-pipeline.module-Q3EZQPBS.js → live-dev-pipeline.module-LSDBWWIM.js} +2 -2
- package/client-dist/{logs.module-S7W3VMCQ.js → logs.module-ANWE4KDF.js} +2 -2
- package/client-dist/{main-TLWUGQY4.js → main-BFY5RGUS.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-4D6ROEMZ.js → master-control-remote-poc.module-PVRUD7IM.js} +2 -2
- package/client-dist/{mobile-app.module-6IN7OYMR.js → mobile-app.module-QOG42QCA.js} +2 -2
- package/client-dist/{model-registry.module-2VRFFXEM.js → model-registry.module-CKTDRM54.js} +2 -2
- package/client-dist/{oc.module-O5QZSJXQ.js → oc.module-BWDU2WQQ.js} +2 -2
- package/client-dist/{orc.module-YMIUO4EB.js → orc.module-S365TUGD.js} +2 -2
- package/client-dist/{project-management.module-OT6QPOS3.js → project-management.module-N26UAZWL.js} +2 -2
- package/client-dist/project-source-routed.module-LACAWUTI.js +2 -0
- package/client-dist/{scheduler.module-PBVPHM6D.js → scheduler.module-UEQBHIBM.js} +2 -2
- package/client-dist/{session.module-PZUIXALN.js → session.module-3YT4GI7B.js} +2 -2
- package/client-dist/{set.module-KHH6ZADO.js → set.module-RLYKVPBJ.js} +2 -2
- package/client-dist/{setup.module-U5HIBAD6.js → setup.module-JLBSWNKP.js} +2 -2
- package/client-dist/{terminals.module-YUSYVMKW.js → terminals.module-KT5GHGKP.js} +2 -2
- package/client-dist/{voice-notes-poc.module-PR6GYMNC.js → voice-notes-poc.module-TGZUYUB6.js} +2 -2
- package/client-dist/{wfs.module-VCNIMOC4.js → wfs.module-PWX57GZB.js} +2 -2
- package/package.json +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts +77 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js +182 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js +167 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-control.util.d.ts +61 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-control.util.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-control.util.js +114 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-control.util.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-spawn.util.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-spawn.util.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.d.ts +75 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.js +103 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.js +78 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts +52 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js +137 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js +192 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.d.ts +19 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js +83 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts +35 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js +94 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js +126 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.d.ts +39 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.js +161 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.js +119 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts +21 -31
- 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 +45 -102
- 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/app.server.d.ts.map +1 -1
- package/server/build/src/app.server.js +7 -0
- package/server/build/src/app.server.js.map +1 -1
- package/client-dist/project-source-routed.module-WSZ6PTH7.js +0 -2
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.d.ts.map +0 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.js.map +0 -1
- /package/client-dist/{agent-instances.module-LAAZ3DCN.js.map → agent-instances.module-IIWTPW4O.js.map} +0 -0
- /package/client-dist/{ca.module-KJ3HMVQS.js.map → ca.module-LWRIBCUU.js.map} +0 -0
- /package/client-dist/{cc.module-R3XR774M.js.map → cc.module-6YJTSCAC.js.map} +0 -0
- /package/client-dist/{chunk-UEKEYKYQ.js.map → chunk-3AHNPY2X.js.map} +0 -0
- /package/client-dist/{chunk-PRJAMBXR.js.map → chunk-3BT3IMYD.js.map} +0 -0
- /package/client-dist/{chunk-ZPENXS5V.js.map → chunk-3BUEPMT6.js.map} +0 -0
- /package/client-dist/{chunk-GZCIND56.js.map → chunk-3QLEX2NT.js.map} +0 -0
- /package/client-dist/{chunk-CGMVTKY2.js.map → chunk-5C6MAP7W.js.map} +0 -0
- /package/client-dist/{chunk-JIJ7AJ2M.js.map → chunk-5K6VN44P.js.map} +0 -0
- /package/client-dist/{chunk-Q2OT2QHT.js.map → chunk-5YM2RZWN.js.map} +0 -0
- /package/client-dist/{chunk-OI7T7XSB.js.map → chunk-63EKRGNW.js.map} +0 -0
- /package/client-dist/{chunk-O7GPLAYH.js.map → chunk-63VBJAEW.js.map} +0 -0
- /package/client-dist/{chunk-23VFZSJY.js.map → chunk-6454AQZI.js.map} +0 -0
- /package/client-dist/{chunk-OVLLCTU6.js.map → chunk-6C5KJNDU.js.map} +0 -0
- /package/client-dist/{chunk-UJSPO372.js.map → chunk-6MS4GHDI.js.map} +0 -0
- /package/client-dist/{chunk-C3VSCOG5.js.map → chunk-AC26JISD.js.map} +0 -0
- /package/client-dist/{chunk-DFQTZTHH.js.map → chunk-AOHIUL3Q.js.map} +0 -0
- /package/client-dist/{chunk-VOLGLPD4.js.map → chunk-AQCUVNQI.js.map} +0 -0
- /package/client-dist/{chunk-PTB2WMG4.js.map → chunk-DQKU2LY3.js.map} +0 -0
- /package/client-dist/{chunk-A4VKLUNV.js.map → chunk-DU23SLBW.js.map} +0 -0
- /package/client-dist/{chunk-4VQCWOKK.js.map → chunk-DXLFM7Q4.js.map} +0 -0
- /package/client-dist/{chunk-LXQXCCPD.js.map → chunk-EP2L5MMG.js.map} +0 -0
- /package/client-dist/{chunk-S4OXJMBZ.js.map → chunk-F5R42IJ2.js.map} +0 -0
- /package/client-dist/{chunk-ZLUBPQF4.js.map → chunk-FBGZAXUP.js.map} +0 -0
- /package/client-dist/{chunk-GMWBFGET.js.map → chunk-FSSZAXEP.js.map} +0 -0
- /package/client-dist/{chunk-34EXATDF.js.map → chunk-FZ43K4CA.js.map} +0 -0
- /package/client-dist/{chunk-OSVQTRBX.js.map → chunk-GVZABJSS.js.map} +0 -0
- /package/client-dist/{chunk-EHVMKTXY.js.map → chunk-H35PNXSP.js.map} +0 -0
- /package/client-dist/{chunk-UF5GFNKA.js.map → chunk-H3U7XTKH.js.map} +0 -0
- /package/client-dist/{chunk-AKYBH2CZ.js.map → chunk-HBFH3SIK.js.map} +0 -0
- /package/client-dist/{chunk-ISHXGODD.js.map → chunk-IW5XTVSP.js.map} +0 -0
- /package/client-dist/{chunk-B7HVGHKQ.js.map → chunk-JK4S3AXO.js.map} +0 -0
- /package/client-dist/{chunk-HU4Z3PXD.js.map → chunk-JOJMPCQG.js.map} +0 -0
- /package/client-dist/{chunk-V7VGFFUL.js.map → chunk-K4PMLSYM.js.map} +0 -0
- /package/client-dist/{chunk-2RSAHUCJ.js.map → chunk-K4S55QIE.js.map} +0 -0
- /package/client-dist/{chunk-73KFZET5.js.map → chunk-LEMSEJOC.js.map} +0 -0
- /package/client-dist/{chunk-Y6C2Y6D3.js.map → chunk-LP2FFZC5.js.map} +0 -0
- /package/client-dist/{chunk-4KHQD4F5.js.map → chunk-MG6CV3Y5.js.map} +0 -0
- /package/client-dist/{chunk-GNT26I3L.js.map → chunk-NTLKUZAF.js.map} +0 -0
- /package/client-dist/{chunk-4GDSWQOC.js.map → chunk-NWZRCNKP.js.map} +0 -0
- /package/client-dist/{chunk-7LV7MODT.js.map → chunk-O6PFIEPO.js.map} +0 -0
- /package/client-dist/{chunk-URFXKX63.js.map → chunk-OUM7QH3O.js.map} +0 -0
- /package/client-dist/{chunk-RZTPIE3G.js.map → chunk-QP5RTV4R.js.map} +0 -0
- /package/client-dist/{chunk-W7CDUK6U.js.map → chunk-R26G2XMB.js.map} +0 -0
- /package/client-dist/{chunk-MSGYW52X.js.map → chunk-RYHFLYDS.js.map} +0 -0
- /package/client-dist/{chunk-CHJARZ4T.js.map → chunk-S5TWQ53O.js.map} +0 -0
- /package/client-dist/{chunk-27MRXFCH.js.map → chunk-S75AE6UP.js.map} +0 -0
- /package/client-dist/{chunk-DVXDSOX7.js.map → chunk-SLIWPSFP.js.map} +0 -0
- /package/client-dist/{chunk-WCF4WZ2W.js.map → chunk-SSMQG7T3.js.map} +0 -0
- /package/client-dist/{chunk-N72P5JS2.js.map → chunk-THUA7SW2.js.map} +0 -0
- /package/client-dist/{chunk-C3C6M5O2.js.map → chunk-TMXG7RHS.js.map} +0 -0
- /package/client-dist/{chunk-GS6LMK5O.js.map → chunk-U3UHKPNK.js.map} +0 -0
- /package/client-dist/{chunk-XFRFKRY2.js.map → chunk-USNT5XKJ.js.map} +0 -0
- /package/client-dist/{chunk-XYC6XMFP.js.map → chunk-XC57ZZSB.js.map} +0 -0
- /package/client-dist/{chunk-OSR5TMMM.js.map → chunk-XTJ63H3O.js.map} +0 -0
- /package/client-dist/{chunk-HNBLIGHL.js.map → chunk-YV2UEV2Q.js.map} +0 -0
- /package/client-dist/{chunk-YKYAPYHF.js.map → chunk-YVE7TPMW.js.map} +0 -0
- /package/client-dist/{chunk-SLHYH5BE.js.map → chunk-YVN3KWT7.js.map} +0 -0
- /package/client-dist/{consultant.module-ZXEIKZLL.js.map → consultant.module-YUJFXRDH.js.map} +0 -0
- /package/client-dist/{crd.module-3F4G7NI4.js.map → crd.module-D7KTQGQ4.js.map} +0 -0
- /package/client-dist/{dashboard.module-CLXEVYJW.js.map → dashboard.module-XKKHP5S6.js.map} +0 -0
- /package/client-dist/{do.module-S6G3OBZR.js.map → do.module-PAINTIOK.js.map} +0 -0
- /package/client-dist/{document-library.module-EQM4645W.js.map → document-library.module-XHTVQ4RU.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-NBFQH4BY.js.map → embedding-eval.module-2XU6ZQ5K.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-SDLK2TMJ.js.map → embedding-registry.module-WWIMXCOI.js.map} +0 -0
- /package/client-dist/{err.module-AFMM2VG6.js.map → err.module-W23TJZYC.js.map} +0 -0
- /package/client-dist/{feedback.module-WGC6H5T5.js.map → feedback.module-XD4GWPEY.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-L7KZFRVE.js.map → host-runtime-mcp.module-LLI4OQ2C.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-Q3EZQPBS.js.map → live-dev-pipeline.module-LSDBWWIM.js.map} +0 -0
- /package/client-dist/{logs.module-S7W3VMCQ.js.map → logs.module-ANWE4KDF.js.map} +0 -0
- /package/client-dist/{main-TLWUGQY4.js.map → main-BFY5RGUS.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-4D6ROEMZ.js.map → master-control-remote-poc.module-PVRUD7IM.js.map} +0 -0
- /package/client-dist/{mobile-app.module-6IN7OYMR.js.map → mobile-app.module-QOG42QCA.js.map} +0 -0
- /package/client-dist/{model-registry.module-2VRFFXEM.js.map → model-registry.module-CKTDRM54.js.map} +0 -0
- /package/client-dist/{oc.module-O5QZSJXQ.js.map → oc.module-BWDU2WQQ.js.map} +0 -0
- /package/client-dist/{orc.module-YMIUO4EB.js.map → orc.module-S365TUGD.js.map} +0 -0
- /package/client-dist/{project-management.module-OT6QPOS3.js.map → project-management.module-N26UAZWL.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-WSZ6PTH7.js.map → project-source-routed.module-LACAWUTI.js.map} +0 -0
- /package/client-dist/{scheduler.module-PBVPHM6D.js.map → scheduler.module-UEQBHIBM.js.map} +0 -0
- /package/client-dist/{session.module-PZUIXALN.js.map → session.module-3YT4GI7B.js.map} +0 -0
- /package/client-dist/{set.module-KHH6ZADO.js.map → set.module-RLYKVPBJ.js.map} +0 -0
- /package/client-dist/{setup.module-U5HIBAD6.js.map → setup.module-JLBSWNKP.js.map} +0 -0
- /package/client-dist/{terminals.module-YUSYVMKW.js.map → terminals.module-KT5GHGKP.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-PR6GYMNC.js.map → voice-notes-poc.module-TGZUYUB6.js.map} +0 -0
- /package/client-dist/{wfs.module-VCNIMOC4.js.map → wfs.module-PWX57GZB.js.map} +0 -0
- /package/server/build/src/_modules/external-sessions/_modules/claude-code/{_services/core → _collections/utils}/terminal/cc-terminal-runner-spawn.util.d.ts +0 -0
- /package/server/build/src/_modules/external-sessions/_modules/claude-code/{_services/core → _collections/utils}/terminal/cc-terminal-runner-spawn.util.js +0 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CC_AccountRoute_ControlService = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
|
|
6
|
+
const cc_account_pool_control_service_1 = require("../../_services/core/account/cc-account-pool.control-service");
|
|
7
|
+
/**
|
|
8
|
+
* REST handler delegáció a CC Account endpoint-okhoz
|
|
9
|
+
* (REQ-CC-USAGE-DASHBOARD-001 Slice 1).
|
|
10
|
+
*
|
|
11
|
+
* REQ-SYS-CONTROLLER-THIN: a controller csak endpoint-regisztráció és
|
|
12
|
+
* delegáció — a logika itt él (input parsing + pool control-service hívás).
|
|
13
|
+
*
|
|
14
|
+
* Validation review-fixek (cycle 836):
|
|
15
|
+
* - 3.4 security: `accountKey` URL-param 12-hex regex (DoS-vector + Mongo-filter clean).
|
|
16
|
+
* - M3: `displayName` max-length cap (200 char).
|
|
17
|
+
* - 6.1 security: `displayName` kontroll-karakter szuro (range U+0000..U+001F + U+007F).
|
|
18
|
+
*/
|
|
19
|
+
class CC_AccountRoute_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
20
|
+
/** Stable account-key 12-hex char (a `CC_AccountDiscovery_Util.computeAccountKey` output-ja). */
|
|
21
|
+
static ACCOUNT_KEY_PATTERN = /^[a-f0-9]{12}$/;
|
|
22
|
+
/** displayName max hossz — limit a `/list` response méretére (Dashboard pollolható). */
|
|
23
|
+
static DISPLAY_NAME_MAX_LENGTH = 200;
|
|
24
|
+
/** Kontroll-karakter regex — sose engedjük be DB-be (későbbi UI-render zavart okozna). */
|
|
25
|
+
static CONTROL_CHAR_PATTERN = /[\u0000-\u001F\u007F]/;
|
|
26
|
+
static getInstance() {
|
|
27
|
+
return CC_AccountRoute_ControlService.getSingletonInstance();
|
|
28
|
+
}
|
|
29
|
+
accountPool_CS = cc_account_pool_control_service_1.CC_AccountPool_ControlService.getInstance();
|
|
30
|
+
/** GET /cc-account/list — cross-instance account-lista. */
|
|
31
|
+
async handleListAccounts() {
|
|
32
|
+
const items = await this.accountPool_CS.listAccounts();
|
|
33
|
+
return { items: items };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* POST /cc-account/refresh — a hívó CCAP instance-en újrafelfedezi a
|
|
37
|
+
* lokálisan elérhető credential-fájlokat.
|
|
38
|
+
*/
|
|
39
|
+
async handleRefreshLocalAccounts() {
|
|
40
|
+
return await this.accountPool_CS.refreshLocalAccounts();
|
|
41
|
+
}
|
|
42
|
+
/** GET /cc-account/:accountKey — egy account részletek. */
|
|
43
|
+
async handleGetAccount(params) {
|
|
44
|
+
this.validateAccountKeyFormat(params.accountKey);
|
|
45
|
+
const account = await this.accountPool_CS.getAccountByKey(params.accountKey);
|
|
46
|
+
if (account == null) {
|
|
47
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
48
|
+
message: `CC Account not found by key: ${params.accountKey}`,
|
|
49
|
+
errorCode: 'CCAP-CC-ACCOUNT-NOT-FOUND',
|
|
50
|
+
status: 404,
|
|
51
|
+
error: new Error(`CC Account not found by key: ${params.accountKey}`),
|
|
52
|
+
additionalContent: { accountKey: params.accountKey },
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return account;
|
|
56
|
+
}
|
|
57
|
+
/** PATCH /cc-account/:accountKey — user-readable display-name átírása. */
|
|
58
|
+
async handleRenameAccount(params) {
|
|
59
|
+
this.validateAccountKeyFormat(params.accountKey);
|
|
60
|
+
const displayNameRaw = params.body?.displayName;
|
|
61
|
+
if (typeof displayNameRaw !== 'string') {
|
|
62
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
63
|
+
message: 'CC Account rename: displayName is required and must be a string.',
|
|
64
|
+
errorCode: 'CCAP-CC-ACCOUNT-RENAME-INVALID',
|
|
65
|
+
status: 400,
|
|
66
|
+
error: new Error('Invalid displayName: not a string'),
|
|
67
|
+
additionalContent: { accountKey: params.accountKey, providedDisplayNameType: typeof displayNameRaw },
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const trimmed = displayNameRaw.trim();
|
|
71
|
+
if (trimmed === '') {
|
|
72
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
73
|
+
message: 'CC Account rename: displayName must be non-empty after trim.',
|
|
74
|
+
errorCode: 'CCAP-CC-ACCOUNT-RENAME-INVALID',
|
|
75
|
+
status: 400,
|
|
76
|
+
error: new Error('Invalid displayName: empty'),
|
|
77
|
+
additionalContent: { accountKey: params.accountKey, rawLength: displayNameRaw.length },
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (trimmed.length > CC_AccountRoute_ControlService.DISPLAY_NAME_MAX_LENGTH) {
|
|
81
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
82
|
+
message: `CC Account rename: displayName exceeds max length`
|
|
83
|
+
+ ` (${CC_AccountRoute_ControlService.DISPLAY_NAME_MAX_LENGTH} chars).`,
|
|
84
|
+
errorCode: 'CCAP-CC-ACCOUNT-RENAME-INVALID',
|
|
85
|
+
status: 400,
|
|
86
|
+
error: new Error(`Invalid displayName: too long (${trimmed.length} chars)`),
|
|
87
|
+
additionalContent: {
|
|
88
|
+
accountKey: params.accountKey,
|
|
89
|
+
providedLength: trimmed.length,
|
|
90
|
+
maxLength: CC_AccountRoute_ControlService.DISPLAY_NAME_MAX_LENGTH,
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (CC_AccountRoute_ControlService.CONTROL_CHAR_PATTERN.test(trimmed)) {
|
|
95
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
96
|
+
message: 'CC Account rename: displayName must not contain control characters.',
|
|
97
|
+
errorCode: 'CCAP-CC-ACCOUNT-RENAME-INVALID',
|
|
98
|
+
status: 400,
|
|
99
|
+
error: new Error('Invalid displayName: contains control characters'),
|
|
100
|
+
additionalContent: { accountKey: params.accountKey },
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
const updated = await this.accountPool_CS.renameAccount(params.accountKey, trimmed);
|
|
104
|
+
if (updated == null) {
|
|
105
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
106
|
+
message: `CC Account not found for rename: ${params.accountKey}`,
|
|
107
|
+
errorCode: 'CCAP-CC-ACCOUNT-NOT-FOUND',
|
|
108
|
+
status: 404,
|
|
109
|
+
error: new Error(`CC Account not found for rename: ${params.accountKey}`),
|
|
110
|
+
additionalContent: { accountKey: params.accountKey },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return updated;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* `accountKey` URL-param formátum-validáció (3.4 security review-fix):
|
|
117
|
+
* - 12 hex char a `computeAccountKey` output-ja.
|
|
118
|
+
* - Bármi más → 400 (DoS / Mongo-filter clean / félrevezetett kérés-elutasítás).
|
|
119
|
+
*/
|
|
120
|
+
validateAccountKeyFormat(accountKey) {
|
|
121
|
+
if (!CC_AccountRoute_ControlService.ACCOUNT_KEY_PATTERN.test(accountKey)) {
|
|
122
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
123
|
+
message: `CC Account key has invalid format`
|
|
124
|
+
+ ` (expected 12-hex, got ${accountKey.length} chars).`,
|
|
125
|
+
errorCode: 'CCAP-CC-ACCOUNT-KEY-INVALID',
|
|
126
|
+
status: 400,
|
|
127
|
+
error: new Error(`Invalid accountKey format: ${accountKey.length} chars`),
|
|
128
|
+
additionalContent: {
|
|
129
|
+
providedLength: accountKey.length,
|
|
130
|
+
expectedPattern: '^[a-f0-9]{12}$',
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.CC_AccountRoute_ControlService = CC_AccountRoute_ControlService;
|
|
137
|
+
//# sourceMappingURL=cc-account-route.control-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-route.control-service.js","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-route.control-service.spec.d.ts","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
4
|
+
const cc_account_data_model_1 = require("../../_models/data-models/cc-account.data-model");
|
|
5
|
+
const cc_account_route_control_service_1 = require("./cc-account-route.control-service");
|
|
6
|
+
/**
|
|
7
|
+
* CC_AccountRoute_ControlService spec — REQ-CC-USAGE-DASHBOARD-001 Slice 1
|
|
8
|
+
* (cycle 836 — review-fix: hiányzó coverage).
|
|
9
|
+
*
|
|
10
|
+
* Object.create + property-stub workaround a singleton wiring kihagyásához.
|
|
11
|
+
* A 4 handler happy-path + validation-fail / not-found ágait fedjük le.
|
|
12
|
+
*/
|
|
13
|
+
describe('CC_AccountRoute_ControlService', () => {
|
|
14
|
+
const VALID_KEY = 'a1b2c3d4e5f6';
|
|
15
|
+
const INVALID_KEY = 'too-short';
|
|
16
|
+
function buildStub() {
|
|
17
|
+
const rcs = Object.create(cc_account_route_control_service_1.CC_AccountRoute_ControlService.prototype);
|
|
18
|
+
const listSpy = jasmine.createSpy('listAccounts')
|
|
19
|
+
.and.returnValue(Promise.resolve([]));
|
|
20
|
+
const refreshSpy = jasmine.createSpy('refreshLocalAccounts')
|
|
21
|
+
.and.returnValue(Promise.resolve({ refreshedKeys: [], scannedPaths: 0 }));
|
|
22
|
+
const getSpy = jasmine.createSpy('getAccountByKey')
|
|
23
|
+
.and.returnValue(Promise.resolve(null));
|
|
24
|
+
const renameSpy = jasmine.createSpy('renameAccount')
|
|
25
|
+
.and.returnValue(Promise.resolve(null));
|
|
26
|
+
const fakePool = {
|
|
27
|
+
listAccounts: listSpy,
|
|
28
|
+
refreshLocalAccounts: refreshSpy,
|
|
29
|
+
getAccountByKey: getSpy,
|
|
30
|
+
renameAccount: renameSpy,
|
|
31
|
+
};
|
|
32
|
+
rcs.accountPool_CS = fakePool;
|
|
33
|
+
return { rcs: rcs, listSpy: listSpy, refreshSpy: refreshSpy, getSpy: getSpy, renameSpy: renameSpy };
|
|
34
|
+
}
|
|
35
|
+
describe('handleListAccounts', () => {
|
|
36
|
+
it('happy path → { items: CC_Account[] }', async () => {
|
|
37
|
+
const a = Object.assign(new cc_account_data_model_1.CC_Account(), { accountKey: VALID_KEY });
|
|
38
|
+
const { rcs, listSpy } = buildStub();
|
|
39
|
+
listSpy.and.returnValue(Promise.resolve([a]));
|
|
40
|
+
const result = await rcs.handleListAccounts();
|
|
41
|
+
expect(result.items.length).toBe(1);
|
|
42
|
+
expect(result.items[0].accountKey).toBe(VALID_KEY);
|
|
43
|
+
expect(listSpy).toHaveBeenCalledTimes(1);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('handleRefreshLocalAccounts', () => {
|
|
47
|
+
it('delegál a pool-CS-re', async () => {
|
|
48
|
+
const { rcs, refreshSpy } = buildStub();
|
|
49
|
+
refreshSpy.and.returnValue(Promise.resolve({ refreshedKeys: [VALID_KEY], scannedPaths: 1 }));
|
|
50
|
+
const result = await rcs.handleRefreshLocalAccounts();
|
|
51
|
+
expect(result.refreshedKeys).toEqual([VALID_KEY]);
|
|
52
|
+
expect(result.scannedPaths).toBe(1);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe('handleGetAccount', () => {
|
|
56
|
+
it('happy path → CC_Account', async () => {
|
|
57
|
+
const acc = Object.assign(new cc_account_data_model_1.CC_Account(), { accountKey: VALID_KEY });
|
|
58
|
+
const { rcs, getSpy } = buildStub();
|
|
59
|
+
getSpy.and.returnValue(Promise.resolve(acc));
|
|
60
|
+
const result = await rcs.handleGetAccount({ accountKey: VALID_KEY });
|
|
61
|
+
expect(result.accountKey).toBe(VALID_KEY);
|
|
62
|
+
});
|
|
63
|
+
it('400 ha az accountKey rossz formátum (3.4 review-fix)', async () => {
|
|
64
|
+
const { rcs, getSpy } = buildStub();
|
|
65
|
+
let caught = null;
|
|
66
|
+
try {
|
|
67
|
+
await rcs.handleGetAccount({ accountKey: INVALID_KEY });
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
caught = err;
|
|
71
|
+
}
|
|
72
|
+
expect(caught).not.toBeNull();
|
|
73
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-KEY-INVALID');
|
|
74
|
+
expect(getSpy).not.toHaveBeenCalled();
|
|
75
|
+
});
|
|
76
|
+
it('404 ha az accountKey valid de nincs ilyen rekord', async () => {
|
|
77
|
+
const { rcs } = buildStub();
|
|
78
|
+
let caught = null;
|
|
79
|
+
try {
|
|
80
|
+
await rcs.handleGetAccount({ accountKey: VALID_KEY });
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
caught = err;
|
|
84
|
+
}
|
|
85
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-NOT-FOUND');
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
describe('handleRenameAccount', () => {
|
|
89
|
+
it('happy path → updated CC_Account', async () => {
|
|
90
|
+
const updated = Object.assign(new cc_account_data_model_1.CC_Account(), {
|
|
91
|
+
accountKey: VALID_KEY,
|
|
92
|
+
displayName: 'NewName',
|
|
93
|
+
});
|
|
94
|
+
const { rcs, renameSpy } = buildStub();
|
|
95
|
+
renameSpy.and.returnValue(Promise.resolve(updated));
|
|
96
|
+
const result = await rcs.handleRenameAccount({
|
|
97
|
+
accountKey: VALID_KEY,
|
|
98
|
+
body: { displayName: ' NewName ' }, // trim test
|
|
99
|
+
});
|
|
100
|
+
expect(result.displayName).toBe('NewName');
|
|
101
|
+
expect(renameSpy).toHaveBeenCalledWith(VALID_KEY, 'NewName');
|
|
102
|
+
});
|
|
103
|
+
it('400 ha az accountKey rossz formátum', async () => {
|
|
104
|
+
const { rcs, renameSpy } = buildStub();
|
|
105
|
+
let caught = null;
|
|
106
|
+
try {
|
|
107
|
+
await rcs.handleRenameAccount({ accountKey: INVALID_KEY, body: { displayName: 'x' } });
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
caught = err;
|
|
111
|
+
}
|
|
112
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-KEY-INVALID');
|
|
113
|
+
expect(renameSpy).not.toHaveBeenCalled();
|
|
114
|
+
});
|
|
115
|
+
it('400 ha displayName nem string', async () => {
|
|
116
|
+
const { rcs, renameSpy } = buildStub();
|
|
117
|
+
let caught = null;
|
|
118
|
+
try {
|
|
119
|
+
await rcs.handleRenameAccount({ accountKey: VALID_KEY, body: { displayName: 42 } });
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
caught = err;
|
|
123
|
+
}
|
|
124
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-RENAME-INVALID');
|
|
125
|
+
expect(renameSpy).not.toHaveBeenCalled();
|
|
126
|
+
});
|
|
127
|
+
it('400 ha displayName üres trim után', async () => {
|
|
128
|
+
const { rcs } = buildStub();
|
|
129
|
+
let caught = null;
|
|
130
|
+
try {
|
|
131
|
+
await rcs.handleRenameAccount({ accountKey: VALID_KEY, body: { displayName: ' ' } });
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
caught = err;
|
|
135
|
+
}
|
|
136
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-RENAME-INVALID');
|
|
137
|
+
});
|
|
138
|
+
it('400 ha displayName meghaladja a max-length-et (M3 review-fix)', async () => {
|
|
139
|
+
const { rcs } = buildStub();
|
|
140
|
+
const longName = 'A'.repeat(cc_account_route_control_service_1.CC_AccountRoute_ControlService.DISPLAY_NAME_MAX_LENGTH + 1);
|
|
141
|
+
let caught = null;
|
|
142
|
+
try {
|
|
143
|
+
await rcs.handleRenameAccount({ accountKey: VALID_KEY, body: { displayName: longName } });
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
caught = err;
|
|
147
|
+
}
|
|
148
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-RENAME-INVALID');
|
|
149
|
+
});
|
|
150
|
+
it('400 ha displayName kontroll-karaktert tartalmaz (6.1 review-fix)', async () => {
|
|
151
|
+
const { rcs } = buildStub();
|
|
152
|
+
const evilName = `Bad\u0000Name`;
|
|
153
|
+
let caught = null;
|
|
154
|
+
try {
|
|
155
|
+
await rcs.handleRenameAccount({ accountKey: VALID_KEY, body: { displayName: evilName } });
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
caught = err;
|
|
159
|
+
}
|
|
160
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-RENAME-INVALID');
|
|
161
|
+
});
|
|
162
|
+
it('404 ha rename happy validáció után, de az account nem létezik', async () => {
|
|
163
|
+
const { rcs } = buildStub();
|
|
164
|
+
let caught = null;
|
|
165
|
+
try {
|
|
166
|
+
await rcs.handleRenameAccount({
|
|
167
|
+
accountKey: VALID_KEY,
|
|
168
|
+
body: { displayName: 'OK' },
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
caught = err;
|
|
173
|
+
}
|
|
174
|
+
expect(fsm_dynamo_1.DyFM_Error.getErrorCode(caught)).toBe('CCAP-CC-ACCOUNT-NOT-FOUND');
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
describe('static patterns', () => {
|
|
178
|
+
it('ACCOUNT_KEY_PATTERN egyeztet 12-hex-et, elutasít másmilyent', () => {
|
|
179
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.ACCOUNT_KEY_PATTERN.test('abcdef012345')).toBe(true);
|
|
180
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.ACCOUNT_KEY_PATTERN.test('ABCDEF012345')).toBe(false); // uppercase nem
|
|
181
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.ACCOUNT_KEY_PATTERN.test('short')).toBe(false);
|
|
182
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.ACCOUNT_KEY_PATTERN.test('a'.repeat(13))).toBe(false);
|
|
183
|
+
});
|
|
184
|
+
it('CONTROL_CHAR_PATTERN illeszkedik U+0000-U+001F és U+007F-re', () => {
|
|
185
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.CONTROL_CHAR_PATTERN.test('hello')).toBe(false);
|
|
186
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.CONTROL_CHAR_PATTERN.test('he\u0000llo')).toBe(true);
|
|
187
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.CONTROL_CHAR_PATTERN.test('he\u001Fllo')).toBe(true);
|
|
188
|
+
expect(cc_account_route_control_service_1.CC_AccountRoute_ControlService.CONTROL_CHAR_PATTERN.test('he\u007Fllo')).toBe(true);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
//# sourceMappingURL=cc-account-route.control-service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-route.control-service.spec.js","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DyNTS_Controller } from '@futdevpro/nts-dynamo';
|
|
2
|
+
/**
|
|
3
|
+
* CC Account REST controller (REQ-CC-USAGE-DASHBOARD-001 Slice 1).
|
|
4
|
+
*
|
|
5
|
+
* Endpointok (`/cc-account` route alatt):
|
|
6
|
+
* - GET /list — Cross-instance account-lista
|
|
7
|
+
* - POST /refresh — Lokális credential-discovery újrafuttatása
|
|
8
|
+
* - GET /:accountKey — Egy account részletek
|
|
9
|
+
* - PATCH /:accountKey — User-readable display-name átírása
|
|
10
|
+
*
|
|
11
|
+
* **REQ-SYS-CONTROLLER-THIN (CRITICAL):** Route controller = delegálás;
|
|
12
|
+
* tilos logika és input validáció itt — minden a route-control-service-ben.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CC_Account_Controller extends DyNTS_Controller {
|
|
15
|
+
static getInstance(): CC_Account_Controller;
|
|
16
|
+
private readonly accountRoute_CS;
|
|
17
|
+
setupEndpoints(): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cc-account.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account.controller.d.ts","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,uBAAuB,CAAC;AAKhF;;;;;;;;;;;GAWG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB;IAEzD,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAI3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CACe;IAE/C,cAAc,IAAI,IAAI;CA+DvB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CC_Account_Controller = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
|
|
6
|
+
const cc_account_route_control_service_1 = require("./cc-account-route.control-service");
|
|
7
|
+
/**
|
|
8
|
+
* CC Account REST controller (REQ-CC-USAGE-DASHBOARD-001 Slice 1).
|
|
9
|
+
*
|
|
10
|
+
* Endpointok (`/cc-account` route alatt):
|
|
11
|
+
* - GET /list — Cross-instance account-lista
|
|
12
|
+
* - POST /refresh — Lokális credential-discovery újrafuttatása
|
|
13
|
+
* - GET /:accountKey — Egy account részletek
|
|
14
|
+
* - PATCH /:accountKey — User-readable display-name átírása
|
|
15
|
+
*
|
|
16
|
+
* **REQ-SYS-CONTROLLER-THIN (CRITICAL):** Route controller = delegálás;
|
|
17
|
+
* tilos logika és input validáció itt — minden a route-control-service-ben.
|
|
18
|
+
*/
|
|
19
|
+
class CC_Account_Controller extends nts_dynamo_1.DyNTS_Controller {
|
|
20
|
+
static getInstance() {
|
|
21
|
+
return CC_Account_Controller.getSingletonInstance();
|
|
22
|
+
}
|
|
23
|
+
accountRoute_CS = cc_account_route_control_service_1.CC_AccountRoute_ControlService.getInstance();
|
|
24
|
+
setupEndpoints() {
|
|
25
|
+
this.endpoints = [
|
|
26
|
+
// GET /list — Cross-instance account-lista
|
|
27
|
+
new nts_dynamo_1.DyNTS_Endpoint_Params({
|
|
28
|
+
name: 'listCcAccounts',
|
|
29
|
+
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
30
|
+
endpoint: '/list',
|
|
31
|
+
tasks: [
|
|
32
|
+
async (_req, res) => {
|
|
33
|
+
const result = await this.accountRoute_CS.handleListAccounts();
|
|
34
|
+
res.send(result);
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
}),
|
|
38
|
+
// POST /refresh — Lokális credential-discovery újrafuttatása
|
|
39
|
+
new nts_dynamo_1.DyNTS_Endpoint_Params({
|
|
40
|
+
name: 'refreshCcAccounts',
|
|
41
|
+
type: fsm_dynamo_1.DyFM_HttpCallType.post,
|
|
42
|
+
endpoint: '/refresh',
|
|
43
|
+
tasks: [
|
|
44
|
+
async (_req, res) => {
|
|
45
|
+
const result = await this.accountRoute_CS.handleRefreshLocalAccounts();
|
|
46
|
+
res.send(result);
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
}),
|
|
50
|
+
// GET /:accountKey — Egy account részletek
|
|
51
|
+
new nts_dynamo_1.DyNTS_Endpoint_Params({
|
|
52
|
+
name: 'getCcAccount',
|
|
53
|
+
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
54
|
+
endpoint: '/:accountKey',
|
|
55
|
+
tasks: [
|
|
56
|
+
async (req, res) => {
|
|
57
|
+
const result = await this.accountRoute_CS.handleGetAccount({
|
|
58
|
+
accountKey: req.params.accountKey,
|
|
59
|
+
});
|
|
60
|
+
res.send(result);
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
}),
|
|
64
|
+
// PATCH /:accountKey — Display-name átírása
|
|
65
|
+
new nts_dynamo_1.DyNTS_Endpoint_Params({
|
|
66
|
+
name: 'renameCcAccount',
|
|
67
|
+
type: fsm_dynamo_1.DyFM_HttpCallType.patch,
|
|
68
|
+
endpoint: '/:accountKey',
|
|
69
|
+
tasks: [
|
|
70
|
+
async (req, res) => {
|
|
71
|
+
const result = await this.accountRoute_CS.handleRenameAccount({
|
|
72
|
+
accountKey: req.params.accountKey,
|
|
73
|
+
body: req.body,
|
|
74
|
+
});
|
|
75
|
+
res.send(result);
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
}),
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.CC_Account_Controller = CC_Account_Controller;
|
|
83
|
+
//# sourceMappingURL=cc-account.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account.controller.js","sourceRoot":"","sources":["../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.ts"],"names":[],"mappings":";;;AAEA,sDAA0D;AAC1D,sDAAgF;AAGhF,yFAAoF;AAEpF;;;;;;;;;;;GAWG;AACH,MAAa,qBAAsB,SAAQ,6BAAgB;IAEzD,MAAM,CAAC,WAAW;QAChB,OAAO,qBAAqB,CAAC,oBAAoB,EAAE,CAAC;IACtD,CAAC;IAEgB,eAAe,GAC9B,iEAA8B,CAAC,WAAW,EAAE,CAAC;IAE/C,cAAc;QACZ,IAAI,CAAC,SAAS,GAAG;YAEf,2CAA2C;YAC3C,IAAI,kCAAqB,CAAC;gBACxB,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,8BAAiB,CAAC,GAAG;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE;oBACL,KAAK,EAAE,IAAa,EAAE,GAAa,EAAiB,EAAE;wBACpD,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;wBAClD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC;iBACF;aACF,CAAC;YAEF,6DAA6D;YAC7D,IAAI,kCAAqB,CAAC;gBACxB,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,8BAAiB,CAAC,IAAI;gBAC5B,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE;oBACL,KAAK,EAAE,IAAa,EAAE,GAAa,EAAiB,EAAE;wBACpD,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,EAAE,CAAC;wBAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC;iBACF;aACF,CAAC;YAEF,2CAA2C;YAC3C,IAAI,kCAAqB,CAAC;gBACxB,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,8BAAiB,CAAC,GAAG;gBAC3B,QAAQ,EAAE,cAAc;gBACxB,KAAK,EAAE;oBACL,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;wBACnD,MAAM,MAAM,GAAe,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;4BACrE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;yBAClC,CAAC,CAAC;wBACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC;iBACF;aACF,CAAC;YAEF,4CAA4C;YAC5C,IAAI,kCAAqB,CAAC;gBACxB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,8BAAiB,CAAC,KAAK;gBAC7B,QAAQ,EAAE,cAAc;gBACxB,KAAK,EAAE;oBACL,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;wBACnD,MAAM,MAAM,GAAe,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;4BACxE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;4BACjC,IAAI,EAAE,GAAG,CAAC,IAAI;yBACf,CAAC,CAAC;wBACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,CAAC;iBACF;aACF,CAAC;SACH,CAAC;IACJ,CAAC;CACF;AAxED,sDAwEC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DyNTS_SingletonService } from '@futdevpro/nts-dynamo';
|
|
2
|
+
import { CC_Account } from '../../../_models/data-models/cc-account.data-model';
|
|
3
|
+
/**
|
|
4
|
+
* CC Account Pool control-service (REQ-CC-USAGE-DASHBOARD-001 Slice 1).
|
|
5
|
+
*
|
|
6
|
+
* A CCAP instance gépén ismert credential-fájlok felfedezésének és a
|
|
7
|
+
* `ccap_cc_account` DBNT-be írásának koordinációja. Read-only fájl-ops:
|
|
8
|
+
* sose írjuk a credential-fájlt; a user maga futtatja a `claude /login`-t.
|
|
9
|
+
*
|
|
10
|
+
* **Cross-instance:** a `listAccounts` DB SSOT-ből olvas, így minden CCAP
|
|
11
|
+
* instance ugyanazt látja (PEI relay nem kell). A `refreshLocalAccounts`
|
|
12
|
+
* csak a hívó instance-en hat — a többi instance a saját ütemén refresh-el.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CC_AccountPool_ControlService extends DyNTS_SingletonService {
|
|
15
|
+
static getInstance(): CC_AccountPool_ControlService;
|
|
16
|
+
private readonly accountDataService;
|
|
17
|
+
/**
|
|
18
|
+
* Lokális gépen ismert credential-fájlok felfedezése + DB upsert minden
|
|
19
|
+
* sikerre. A discovery best-effort: nem talált / olvashatatlan fájl egy
|
|
20
|
+
* warn-loggal csendesedik el (no-silent-failure: warn-log van).
|
|
21
|
+
*
|
|
22
|
+
* @returns a felfedezett és sikeresen perzisztált accountKey-ek listája.
|
|
23
|
+
*/
|
|
24
|
+
refreshLocalAccounts(): Promise<{
|
|
25
|
+
refreshedKeys: string[];
|
|
26
|
+
scannedPaths: number;
|
|
27
|
+
}>;
|
|
28
|
+
/** Cross-instance account-lista (DB SSOT-ből). */
|
|
29
|
+
listAccounts(): Promise<CC_Account[]>;
|
|
30
|
+
/** Egy account lekérdezése a stable kulcs alapján. */
|
|
31
|
+
getAccountByKey(accountKey: string): Promise<CC_Account | null>;
|
|
32
|
+
/** Egy account user-readable nevének átírása. */
|
|
33
|
+
renameAccount(accountKey: string, displayName: string): Promise<CC_Account | null>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=cc-account-pool.control-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-pool.control-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAIhF;;;;;;;;;;GAUG;AACH,qBAAa,6BAA8B,SAAQ,sBAAsB;IAEvE,MAAM,CAAC,WAAW,IAAI,6BAA6B;IAInD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAC4B;IAE/D;;;;;;OAMG;IACG,oBAAoB,IAAI,OAAO,CAAC;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IA+DxF,kDAAkD;IAC5C,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI3C,sDAAsD;IAChD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIrE,iDAAiD;IAC3C,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAGzF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CC_AccountPool_ControlService = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
|
|
6
|
+
const cc_account_discovery_util_1 = require("../../../_collections/utils/account/cc-account-discovery.util");
|
|
7
|
+
const cc_account_data_service_1 = require("./cc-account.data-service");
|
|
8
|
+
const instance_id_service_1 = require("../../../../../_services/instance-id.service");
|
|
9
|
+
/**
|
|
10
|
+
* CC Account Pool control-service (REQ-CC-USAGE-DASHBOARD-001 Slice 1).
|
|
11
|
+
*
|
|
12
|
+
* A CCAP instance gépén ismert credential-fájlok felfedezésének és a
|
|
13
|
+
* `ccap_cc_account` DBNT-be írásának koordinációja. Read-only fájl-ops:
|
|
14
|
+
* sose írjuk a credential-fájlt; a user maga futtatja a `claude /login`-t.
|
|
15
|
+
*
|
|
16
|
+
* **Cross-instance:** a `listAccounts` DB SSOT-ből olvas, így minden CCAP
|
|
17
|
+
* instance ugyanazt látja (PEI relay nem kell). A `refreshLocalAccounts`
|
|
18
|
+
* csak a hívó instance-en hat — a többi instance a saját ütemén refresh-el.
|
|
19
|
+
*/
|
|
20
|
+
class CC_AccountPool_ControlService extends nts_dynamo_1.DyNTS_SingletonService {
|
|
21
|
+
static getInstance() {
|
|
22
|
+
return CC_AccountPool_ControlService.getSingletonInstance();
|
|
23
|
+
}
|
|
24
|
+
accountDataService = new cc_account_data_service_1.CC_Account_DataService({ issuer: 'cc-account-pool-cs' });
|
|
25
|
+
/**
|
|
26
|
+
* Lokális gépen ismert credential-fájlok felfedezése + DB upsert minden
|
|
27
|
+
* sikerre. A discovery best-effort: nem talált / olvashatatlan fájl egy
|
|
28
|
+
* warn-loggal csendesedik el (no-silent-failure: warn-log van).
|
|
29
|
+
*
|
|
30
|
+
* @returns a felfedezett és sikeresen perzisztált accountKey-ek listája.
|
|
31
|
+
*/
|
|
32
|
+
async refreshLocalAccounts() {
|
|
33
|
+
const ccapId = instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId();
|
|
34
|
+
const paths = cc_account_discovery_util_1.CC_AccountDiscovery_Util.getDefaultCredentialPaths();
|
|
35
|
+
const refreshedKeys = [];
|
|
36
|
+
for (const path of paths) {
|
|
37
|
+
const result = cc_account_discovery_util_1.CC_AccountDiscovery_Util.readCredentialFile(path);
|
|
38
|
+
if (result.kind !== 'ok' || result.payload == null) {
|
|
39
|
+
// Diszkriminált logging severity (M1 review-fix):
|
|
40
|
+
// - `missing`: nem-hiba (a user nem futtatott `claude /login`-t) → debug-szintű, csendes.
|
|
41
|
+
// - `invalid-shape` / `invalid-empty`: payload létezik, de nem credential — warn (a user-nek hibás formátum).
|
|
42
|
+
// - `invalid-json`: parse-error a fájltartalomban — warn parse-error message-szel.
|
|
43
|
+
if (result.kind === 'invalid-json') {
|
|
44
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountPool_CS | refreshLocalAccounts: invalid JSON in credential file`
|
|
45
|
+
+ ` | path: ${path}`
|
|
46
|
+
+ ` | parseError: ${result.parseError ?? 'unknown'}`);
|
|
47
|
+
}
|
|
48
|
+
else if (result.kind === 'invalid-shape' || result.kind === 'invalid-empty') {
|
|
49
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountPool_CS | refreshLocalAccounts: credential file shape invalid`
|
|
50
|
+
+ ` | path: ${path}`
|
|
51
|
+
+ ` | kind: ${result.kind}`
|
|
52
|
+
+ ` | hint: a fájl olvasható, de nem credential-payload (claudeAiOauth sub-object hiányzik vagy a top-level nem object)`);
|
|
53
|
+
}
|
|
54
|
+
// `missing` → csendben skip (nem zajos a default-fájl-pillanat).
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const payload = result.payload;
|
|
58
|
+
const accountKey = cc_account_discovery_util_1.CC_AccountDiscovery_Util.computeAccountKey(payload);
|
|
59
|
+
const tokenStatus = cc_account_discovery_util_1.CC_AccountDiscovery_Util.classifyTokenStatus(payload);
|
|
60
|
+
const meta = cc_account_discovery_util_1.CC_AccountDiscovery_Util.extractAccountMetadata(payload);
|
|
61
|
+
const upserted = await this.accountDataService.upsertByKey({
|
|
62
|
+
accountKey: accountKey,
|
|
63
|
+
discoveredOnCcapId: ccapId,
|
|
64
|
+
credentialPath: path,
|
|
65
|
+
accountType: meta.accountType,
|
|
66
|
+
scopes: meta.scopes,
|
|
67
|
+
tokenStatus: tokenStatus,
|
|
68
|
+
});
|
|
69
|
+
if (upserted != null) {
|
|
70
|
+
refreshedKeys.push(accountKey);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// H2 review-fix: happy-path complete-üzenet info-szinten (nem warn).
|
|
74
|
+
fsm_dynamo_1.DyFM_Log.info(`CC_AccountPool_CS | refreshLocalAccounts done`
|
|
75
|
+
+ ` | ccapId: ${ccapId}`
|
|
76
|
+
+ ` | paths-scanned: ${paths.length}`
|
|
77
|
+
+ ` | accounts-refreshed: ${refreshedKeys.length}`);
|
|
78
|
+
return { refreshedKeys: refreshedKeys, scannedPaths: paths.length };
|
|
79
|
+
}
|
|
80
|
+
/** Cross-instance account-lista (DB SSOT-ből). */
|
|
81
|
+
async listAccounts() {
|
|
82
|
+
return await this.accountDataService.listAll();
|
|
83
|
+
}
|
|
84
|
+
/** Egy account lekérdezése a stable kulcs alapján. */
|
|
85
|
+
async getAccountByKey(accountKey) {
|
|
86
|
+
return await this.accountDataService.getByKey(accountKey);
|
|
87
|
+
}
|
|
88
|
+
/** Egy account user-readable nevének átírása. */
|
|
89
|
+
async renameAccount(accountKey, displayName) {
|
|
90
|
+
return await this.accountDataService.renameAccount(accountKey, displayName);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.CC_AccountPool_ControlService = CC_AccountPool_ControlService;
|
|
94
|
+
//# sourceMappingURL=cc-account-pool.control-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-pool.control-service.js","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-pool.control-service.spec.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.ts"],"names":[],"mappings":""}
|