@futdevpro/ccap 1.1.2708 → 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-5I2JQOB4.js → agent-instances.module-IIWTPW4O.js} +2 -2
- package/client-dist/{ca.module-Y4XFBZF3.js → ca.module-LWRIBCUU.js} +2 -2
- package/client-dist/{cc.module-4ZYTENOM.js → cc.module-6YJTSCAC.js} +2 -2
- package/client-dist/{chunk-WDFC2URD.js → chunk-3AHNPY2X.js} +2 -2
- package/client-dist/{chunk-SE4EX326.js → chunk-3BT3IMYD.js} +2 -2
- package/client-dist/{chunk-OADK2TAI.js → chunk-3BUEPMT6.js} +2 -2
- package/client-dist/{chunk-FLQ25T7E.js → chunk-3QLEX2NT.js} +2 -2
- package/client-dist/{chunk-AWC26AEO.js → chunk-5C6MAP7W.js} +2 -2
- package/client-dist/{chunk-SC3EDLDM.js → chunk-5K6VN44P.js} +2 -2
- package/client-dist/{chunk-EF4DKB54.js → chunk-5YM2RZWN.js} +2 -2
- package/client-dist/{chunk-WEOQNQXM.js → chunk-63EKRGNW.js} +2 -2
- package/client-dist/{chunk-4RZKLDHX.js → chunk-63VBJAEW.js} +2 -2
- package/client-dist/{chunk-C4SEHRPW.js → chunk-6454AQZI.js} +2 -2
- package/client-dist/{chunk-NY5NHH2W.js → chunk-6C5KJNDU.js} +2 -2
- package/client-dist/{chunk-O2K7V3O7.js → chunk-6MS4GHDI.js} +2 -2
- package/client-dist/{chunk-55E6FEXV.js → chunk-AC26JISD.js} +2 -2
- package/client-dist/{chunk-34RL56SQ.js → chunk-AOHIUL3Q.js} +2 -2
- package/client-dist/{chunk-GV7XIXZD.js → chunk-AQCUVNQI.js} +2 -2
- package/client-dist/{chunk-IWJZVSX7.js → chunk-DQKU2LY3.js} +2 -2
- package/client-dist/{chunk-B3QX4FRG.js → chunk-DU23SLBW.js} +2 -2
- package/client-dist/{chunk-UGAYSZSJ.js → chunk-DXLFM7Q4.js} +2 -2
- package/client-dist/{chunk-PDQTQDO7.js → chunk-EP2L5MMG.js} +2 -2
- package/client-dist/{chunk-6FBLAQYQ.js → chunk-F5R42IJ2.js} +2 -2
- package/client-dist/{chunk-4Z6CMCAJ.js → chunk-FBGZAXUP.js} +2 -2
- package/client-dist/{chunk-PSLCSDUQ.js → chunk-FSSZAXEP.js} +2 -2
- package/client-dist/{chunk-Q3S4JCID.js → chunk-FZ43K4CA.js} +2 -2
- package/client-dist/{chunk-YRW2CGFQ.js → chunk-GVZABJSS.js} +2 -2
- package/client-dist/{chunk-HJCGBMED.js → chunk-H35PNXSP.js} +2 -2
- package/client-dist/{chunk-2CY52GUU.js → chunk-H3U7XTKH.js} +2 -2
- package/client-dist/{chunk-NSEU33WQ.js → chunk-HBFH3SIK.js} +2 -2
- package/client-dist/{chunk-K537RNNV.js → chunk-IW5XTVSP.js} +2 -2
- package/client-dist/{chunk-DQWPAUP2.js → chunk-JK4S3AXO.js} +2 -2
- package/client-dist/{chunk-FXS3CVOQ.js → chunk-JOJMPCQG.js} +2 -2
- package/client-dist/{chunk-KLD3S45X.js → chunk-K4PMLSYM.js} +2 -2
- package/client-dist/{chunk-6QEZNRIX.js → chunk-K4S55QIE.js} +2 -2
- package/client-dist/{chunk-2OGDJZ65.js → chunk-LEMSEJOC.js} +2 -2
- package/client-dist/{chunk-VEB3M4ME.js → chunk-LP2FFZC5.js} +2 -2
- package/client-dist/{chunk-KGAODLBE.js → chunk-MG6CV3Y5.js} +2 -2
- package/client-dist/{chunk-55CUQXOV.js → chunk-NTLKUZAF.js} +2 -2
- package/client-dist/{chunk-AQ4XSEWB.js → chunk-NVSGBXMD.js} +2 -2
- package/client-dist/{chunk-AQ4XSEWB.js.map → chunk-NVSGBXMD.js.map} +1 -1
- package/client-dist/{chunk-ADIUWP43.js → chunk-NWZRCNKP.js} +2 -2
- package/client-dist/{chunk-Y3R3G4XV.js → chunk-O6PFIEPO.js} +2 -2
- package/client-dist/{chunk-XSLQL6CA.js → chunk-OUM7QH3O.js} +2 -2
- package/client-dist/{chunk-DMIZXRG2.js → chunk-QP5RTV4R.js} +2 -2
- package/client-dist/{chunk-5P3IBTUL.js → chunk-R26G2XMB.js} +2 -2
- package/client-dist/{chunk-ICNXP6C4.js → chunk-RYHFLYDS.js} +2 -2
- package/client-dist/{chunk-GQT4NRX2.js → chunk-S5TWQ53O.js} +2 -2
- package/client-dist/{chunk-4Y4UXTDH.js → chunk-S75AE6UP.js} +2 -2
- package/client-dist/{chunk-TNJSVQJ7.js → chunk-SLIWPSFP.js} +2 -2
- package/client-dist/{chunk-XYFXAO2V.js → chunk-SSMQG7T3.js} +2 -2
- package/client-dist/{chunk-YC43QGTZ.js → chunk-THUA7SW2.js} +2 -2
- package/client-dist/{chunk-LR5WKEQ6.js → chunk-TMXG7RHS.js} +2 -2
- package/client-dist/{chunk-KBUDHY4P.js → chunk-U3UHKPNK.js} +2 -2
- package/client-dist/{chunk-YVBHDGUT.js → chunk-USNT5XKJ.js} +2 -2
- package/client-dist/{chunk-RWDGJAQV.js → chunk-XC57ZZSB.js} +2 -2
- package/client-dist/{chunk-HT3NJ4CA.js → chunk-XTJ63H3O.js} +2 -2
- package/client-dist/{chunk-NFUXNV46.js → chunk-YV2UEV2Q.js} +2 -2
- package/client-dist/{chunk-FRREH3UN.js → chunk-YVE7TPMW.js} +2 -2
- package/client-dist/{chunk-FBHMKOQ3.js → chunk-YVN3KWT7.js} +2 -2
- package/client-dist/{consultant.module-JKB3HIL6.js → consultant.module-YUJFXRDH.js} +2 -2
- package/client-dist/{crd.module-SYUTDHJR.js → crd.module-D7KTQGQ4.js} +2 -2
- package/client-dist/{dashboard.module-YFNP7KDV.js → dashboard.module-XKKHP5S6.js} +2 -2
- package/client-dist/{do.module-SMJALYGZ.js → do.module-PAINTIOK.js} +2 -2
- package/client-dist/{document-library.module-6JB7CZSC.js → document-library.module-XHTVQ4RU.js} +2 -2
- package/client-dist/{embedding-eval.module-KEKW3D6L.js → embedding-eval.module-2XU6ZQ5K.js} +2 -2
- package/client-dist/{embedding-registry.module-RKLN2G7V.js → embedding-registry.module-WWIMXCOI.js} +2 -2
- package/client-dist/{err.module-YD6YVAGP.js → err.module-W23TJZYC.js} +2 -2
- package/client-dist/{feedback.module-3IDR6BNR.js → feedback.module-XD4GWPEY.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-TRDRJUCA.js → host-runtime-mcp.module-LLI4OQ2C.js} +2 -2
- package/client-dist/index.html +1 -1
- package/client-dist/{live-dev-pipeline.module-PYDFJTFN.js → live-dev-pipeline.module-LSDBWWIM.js} +2 -2
- package/client-dist/{logs.module-QULHNNUN.js → logs.module-ANWE4KDF.js} +2 -2
- package/client-dist/{main-PDNM63U5.js → main-BFY5RGUS.js} +3 -3
- package/client-dist/{master-control-remote-poc.module-7WXMK5QZ.js → master-control-remote-poc.module-PVRUD7IM.js} +2 -2
- package/client-dist/{mobile-app.module-MUPO62K6.js → mobile-app.module-QOG42QCA.js} +2 -2
- package/client-dist/{model-registry.module-RL6O4T32.js → model-registry.module-CKTDRM54.js} +2 -2
- package/client-dist/{oc.module-Q4DDC35Q.js → oc.module-BWDU2WQQ.js} +2 -2
- package/client-dist/{orc.module-7QOWPXKI.js → orc.module-S365TUGD.js} +2 -2
- package/client-dist/{project-management.module-GW76HRCR.js → project-management.module-N26UAZWL.js} +2 -2
- package/client-dist/project-source-routed.module-LACAWUTI.js +2 -0
- package/client-dist/{scheduler.module-25WKPF5M.js → scheduler.module-UEQBHIBM.js} +2 -2
- package/client-dist/{session.module-K52QKMD7.js → session.module-3YT4GI7B.js} +2 -2
- package/client-dist/{set.module-3APVCYZI.js → set.module-RLYKVPBJ.js} +2 -2
- package/client-dist/{setup.module-TJAHHSXH.js → setup.module-JLBSWNKP.js} +2 -2
- package/client-dist/{terminals.module-N4U3XW2G.js → terminals.module-KT5GHGKP.js} +2 -2
- package/client-dist/{voice-notes-poc.module-CC7MPTCY.js → voice-notes-poc.module-TGZUYUB6.js} +2 -2
- package/client-dist/{wfs.module-E2X3L6BK.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/{_services/core → _collections/utils}/terminal/cc-terminal-runner-control.util.d.ts +12 -1
- 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/{_services/core → _collections/utils}/terminal/cc-terminal-runner-control.util.js +24 -1
- 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 +15 -29
- 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 +20 -45
- 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-WH5GPRQR.js +0 -2
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-control.util.d.ts.map +0 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-control.util.js.map +0 -1
- 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-5I2JQOB4.js.map → agent-instances.module-IIWTPW4O.js.map} +0 -0
- /package/client-dist/{ca.module-Y4XFBZF3.js.map → ca.module-LWRIBCUU.js.map} +0 -0
- /package/client-dist/{cc.module-4ZYTENOM.js.map → cc.module-6YJTSCAC.js.map} +0 -0
- /package/client-dist/{chunk-WDFC2URD.js.map → chunk-3AHNPY2X.js.map} +0 -0
- /package/client-dist/{chunk-SE4EX326.js.map → chunk-3BT3IMYD.js.map} +0 -0
- /package/client-dist/{chunk-OADK2TAI.js.map → chunk-3BUEPMT6.js.map} +0 -0
- /package/client-dist/{chunk-FLQ25T7E.js.map → chunk-3QLEX2NT.js.map} +0 -0
- /package/client-dist/{chunk-AWC26AEO.js.map → chunk-5C6MAP7W.js.map} +0 -0
- /package/client-dist/{chunk-SC3EDLDM.js.map → chunk-5K6VN44P.js.map} +0 -0
- /package/client-dist/{chunk-EF4DKB54.js.map → chunk-5YM2RZWN.js.map} +0 -0
- /package/client-dist/{chunk-WEOQNQXM.js.map → chunk-63EKRGNW.js.map} +0 -0
- /package/client-dist/{chunk-4RZKLDHX.js.map → chunk-63VBJAEW.js.map} +0 -0
- /package/client-dist/{chunk-C4SEHRPW.js.map → chunk-6454AQZI.js.map} +0 -0
- /package/client-dist/{chunk-NY5NHH2W.js.map → chunk-6C5KJNDU.js.map} +0 -0
- /package/client-dist/{chunk-O2K7V3O7.js.map → chunk-6MS4GHDI.js.map} +0 -0
- /package/client-dist/{chunk-55E6FEXV.js.map → chunk-AC26JISD.js.map} +0 -0
- /package/client-dist/{chunk-34RL56SQ.js.map → chunk-AOHIUL3Q.js.map} +0 -0
- /package/client-dist/{chunk-GV7XIXZD.js.map → chunk-AQCUVNQI.js.map} +0 -0
- /package/client-dist/{chunk-IWJZVSX7.js.map → chunk-DQKU2LY3.js.map} +0 -0
- /package/client-dist/{chunk-B3QX4FRG.js.map → chunk-DU23SLBW.js.map} +0 -0
- /package/client-dist/{chunk-UGAYSZSJ.js.map → chunk-DXLFM7Q4.js.map} +0 -0
- /package/client-dist/{chunk-PDQTQDO7.js.map → chunk-EP2L5MMG.js.map} +0 -0
- /package/client-dist/{chunk-6FBLAQYQ.js.map → chunk-F5R42IJ2.js.map} +0 -0
- /package/client-dist/{chunk-4Z6CMCAJ.js.map → chunk-FBGZAXUP.js.map} +0 -0
- /package/client-dist/{chunk-PSLCSDUQ.js.map → chunk-FSSZAXEP.js.map} +0 -0
- /package/client-dist/{chunk-Q3S4JCID.js.map → chunk-FZ43K4CA.js.map} +0 -0
- /package/client-dist/{chunk-YRW2CGFQ.js.map → chunk-GVZABJSS.js.map} +0 -0
- /package/client-dist/{chunk-HJCGBMED.js.map → chunk-H35PNXSP.js.map} +0 -0
- /package/client-dist/{chunk-2CY52GUU.js.map → chunk-H3U7XTKH.js.map} +0 -0
- /package/client-dist/{chunk-NSEU33WQ.js.map → chunk-HBFH3SIK.js.map} +0 -0
- /package/client-dist/{chunk-K537RNNV.js.map → chunk-IW5XTVSP.js.map} +0 -0
- /package/client-dist/{chunk-DQWPAUP2.js.map → chunk-JK4S3AXO.js.map} +0 -0
- /package/client-dist/{chunk-FXS3CVOQ.js.map → chunk-JOJMPCQG.js.map} +0 -0
- /package/client-dist/{chunk-KLD3S45X.js.map → chunk-K4PMLSYM.js.map} +0 -0
- /package/client-dist/{chunk-6QEZNRIX.js.map → chunk-K4S55QIE.js.map} +0 -0
- /package/client-dist/{chunk-2OGDJZ65.js.map → chunk-LEMSEJOC.js.map} +0 -0
- /package/client-dist/{chunk-VEB3M4ME.js.map → chunk-LP2FFZC5.js.map} +0 -0
- /package/client-dist/{chunk-KGAODLBE.js.map → chunk-MG6CV3Y5.js.map} +0 -0
- /package/client-dist/{chunk-55CUQXOV.js.map → chunk-NTLKUZAF.js.map} +0 -0
- /package/client-dist/{chunk-ADIUWP43.js.map → chunk-NWZRCNKP.js.map} +0 -0
- /package/client-dist/{chunk-Y3R3G4XV.js.map → chunk-O6PFIEPO.js.map} +0 -0
- /package/client-dist/{chunk-XSLQL6CA.js.map → chunk-OUM7QH3O.js.map} +0 -0
- /package/client-dist/{chunk-DMIZXRG2.js.map → chunk-QP5RTV4R.js.map} +0 -0
- /package/client-dist/{chunk-5P3IBTUL.js.map → chunk-R26G2XMB.js.map} +0 -0
- /package/client-dist/{chunk-ICNXP6C4.js.map → chunk-RYHFLYDS.js.map} +0 -0
- /package/client-dist/{chunk-GQT4NRX2.js.map → chunk-S5TWQ53O.js.map} +0 -0
- /package/client-dist/{chunk-4Y4UXTDH.js.map → chunk-S75AE6UP.js.map} +0 -0
- /package/client-dist/{chunk-TNJSVQJ7.js.map → chunk-SLIWPSFP.js.map} +0 -0
- /package/client-dist/{chunk-XYFXAO2V.js.map → chunk-SSMQG7T3.js.map} +0 -0
- /package/client-dist/{chunk-YC43QGTZ.js.map → chunk-THUA7SW2.js.map} +0 -0
- /package/client-dist/{chunk-LR5WKEQ6.js.map → chunk-TMXG7RHS.js.map} +0 -0
- /package/client-dist/{chunk-KBUDHY4P.js.map → chunk-U3UHKPNK.js.map} +0 -0
- /package/client-dist/{chunk-YVBHDGUT.js.map → chunk-USNT5XKJ.js.map} +0 -0
- /package/client-dist/{chunk-RWDGJAQV.js.map → chunk-XC57ZZSB.js.map} +0 -0
- /package/client-dist/{chunk-HT3NJ4CA.js.map → chunk-XTJ63H3O.js.map} +0 -0
- /package/client-dist/{chunk-NFUXNV46.js.map → chunk-YV2UEV2Q.js.map} +0 -0
- /package/client-dist/{chunk-FRREH3UN.js.map → chunk-YVE7TPMW.js.map} +0 -0
- /package/client-dist/{chunk-FBHMKOQ3.js.map → chunk-YVN3KWT7.js.map} +0 -0
- /package/client-dist/{consultant.module-JKB3HIL6.js.map → consultant.module-YUJFXRDH.js.map} +0 -0
- /package/client-dist/{crd.module-SYUTDHJR.js.map → crd.module-D7KTQGQ4.js.map} +0 -0
- /package/client-dist/{dashboard.module-YFNP7KDV.js.map → dashboard.module-XKKHP5S6.js.map} +0 -0
- /package/client-dist/{do.module-SMJALYGZ.js.map → do.module-PAINTIOK.js.map} +0 -0
- /package/client-dist/{document-library.module-6JB7CZSC.js.map → document-library.module-XHTVQ4RU.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-KEKW3D6L.js.map → embedding-eval.module-2XU6ZQ5K.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-RKLN2G7V.js.map → embedding-registry.module-WWIMXCOI.js.map} +0 -0
- /package/client-dist/{err.module-YD6YVAGP.js.map → err.module-W23TJZYC.js.map} +0 -0
- /package/client-dist/{feedback.module-3IDR6BNR.js.map → feedback.module-XD4GWPEY.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-TRDRJUCA.js.map → host-runtime-mcp.module-LLI4OQ2C.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-PYDFJTFN.js.map → live-dev-pipeline.module-LSDBWWIM.js.map} +0 -0
- /package/client-dist/{logs.module-QULHNNUN.js.map → logs.module-ANWE4KDF.js.map} +0 -0
- /package/client-dist/{main-PDNM63U5.js.map → main-BFY5RGUS.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-7WXMK5QZ.js.map → master-control-remote-poc.module-PVRUD7IM.js.map} +0 -0
- /package/client-dist/{mobile-app.module-MUPO62K6.js.map → mobile-app.module-QOG42QCA.js.map} +0 -0
- /package/client-dist/{model-registry.module-RL6O4T32.js.map → model-registry.module-CKTDRM54.js.map} +0 -0
- /package/client-dist/{oc.module-Q4DDC35Q.js.map → oc.module-BWDU2WQQ.js.map} +0 -0
- /package/client-dist/{orc.module-7QOWPXKI.js.map → orc.module-S365TUGD.js.map} +0 -0
- /package/client-dist/{project-management.module-GW76HRCR.js.map → project-management.module-N26UAZWL.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-WH5GPRQR.js.map → project-source-routed.module-LACAWUTI.js.map} +0 -0
- /package/client-dist/{scheduler.module-25WKPF5M.js.map → scheduler.module-UEQBHIBM.js.map} +0 -0
- /package/client-dist/{session.module-K52QKMD7.js.map → session.module-3YT4GI7B.js.map} +0 -0
- /package/client-dist/{set.module-3APVCYZI.js.map → set.module-RLYKVPBJ.js.map} +0 -0
- /package/client-dist/{setup.module-TJAHHSXH.js.map → setup.module-JLBSWNKP.js.map} +0 -0
- /package/client-dist/{terminals.module-N4U3XW2G.js.map → terminals.module-KT5GHGKP.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-CC7MPTCY.js.map → voice-notes-poc.module-TGZUYUB6.js.map} +0 -0
- /package/client-dist/{wfs.module-E2X3L6BK.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,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":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const os_1 = require("os");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const cc_account_discovery_util_1 = require("../../../_collections/utils/account/cc-account-discovery.util");
|
|
7
|
+
const cc_account_data_model_1 = require("../../../_models/data-models/cc-account.data-model");
|
|
8
|
+
const cc_account_pool_control_service_1 = require("./cc-account-pool.control-service");
|
|
9
|
+
const instance_id_service_1 = require("../../../../../_services/instance-id.service");
|
|
10
|
+
/**
|
|
11
|
+
* CC_AccountPool_ControlService spec — REQ-CC-USAGE-DASHBOARD-001 Slice 1.
|
|
12
|
+
* Object.create + property-stub workaround a singleton wiring elkerülésére.
|
|
13
|
+
*/
|
|
14
|
+
describe('CC_AccountPool_ControlService', () => {
|
|
15
|
+
let tmpDir;
|
|
16
|
+
let credPath;
|
|
17
|
+
function buildStub() {
|
|
18
|
+
const cs = Object.create(cc_account_pool_control_service_1.CC_AccountPool_ControlService.prototype);
|
|
19
|
+
const upsertSpy = jasmine.createSpy('upsertByKey')
|
|
20
|
+
.and.callFake((params) => {
|
|
21
|
+
const acc = new cc_account_data_model_1.CC_Account();
|
|
22
|
+
acc.accountKey = params.accountKey;
|
|
23
|
+
return Promise.resolve(acc);
|
|
24
|
+
});
|
|
25
|
+
const listAllSpy = jasmine.createSpy('listAll')
|
|
26
|
+
.and.returnValue(Promise.resolve([]));
|
|
27
|
+
const getByKeySpy = jasmine.createSpy('getByKey')
|
|
28
|
+
.and.returnValue(Promise.resolve(null));
|
|
29
|
+
const renameSpy = jasmine.createSpy('renameAccount')
|
|
30
|
+
.and.returnValue(Promise.resolve(null));
|
|
31
|
+
const fakeDS = {
|
|
32
|
+
upsertByKey: upsertSpy,
|
|
33
|
+
listAll: listAllSpy,
|
|
34
|
+
getByKey: getByKeySpy,
|
|
35
|
+
renameAccount: renameSpy,
|
|
36
|
+
};
|
|
37
|
+
cs.accountDataService = fakeDS;
|
|
38
|
+
return { cs: cs, upsertSpy: upsertSpy, listAllSpy: listAllSpy, getByKeySpy: getByKeySpy, renameSpy: renameSpy };
|
|
39
|
+
}
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
tmpDir = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), 'cc-account-pool-cs-spec-'));
|
|
42
|
+
credPath = (0, path_1.join)(tmpDir, '.credentials.json');
|
|
43
|
+
spyOn(instance_id_service_1.ExS_InstanceId_Service, 'getInstance').and.returnValue({
|
|
44
|
+
getInstanceId: () => 'ccap-test-instance',
|
|
45
|
+
});
|
|
46
|
+
spyOn(cc_account_discovery_util_1.CC_AccountDiscovery_Util, 'getDefaultCredentialPaths').and.returnValue([credPath]);
|
|
47
|
+
});
|
|
48
|
+
afterEach(() => {
|
|
49
|
+
(0, fs_1.rmSync)(tmpDir, { recursive: true, force: true });
|
|
50
|
+
});
|
|
51
|
+
it('refreshLocalAccounts — happy path: 1 fájl → 1 upsert hívás', async () => {
|
|
52
|
+
(0, fs_1.writeFileSync)(credPath, JSON.stringify({
|
|
53
|
+
claudeAiOauth: {
|
|
54
|
+
accessToken: 'at-1',
|
|
55
|
+
refreshToken: 'rt-stable-1',
|
|
56
|
+
scopes: ['user:inference', 'user:profile'],
|
|
57
|
+
expiresAt: Date.now() + 3_600_000,
|
|
58
|
+
},
|
|
59
|
+
}), 'utf8');
|
|
60
|
+
const { cs, upsertSpy } = buildStub();
|
|
61
|
+
const result = await cs.refreshLocalAccounts();
|
|
62
|
+
expect(result.scannedPaths).toBe(1);
|
|
63
|
+
expect(result.refreshedKeys.length).toBe(1);
|
|
64
|
+
expect(upsertSpy).toHaveBeenCalledTimes(1);
|
|
65
|
+
const arg = upsertSpy.calls.mostRecent().args[0];
|
|
66
|
+
expect(arg.discoveredOnCcapId).toBe('ccap-test-instance');
|
|
67
|
+
expect(arg.credentialPath).toBe(credPath);
|
|
68
|
+
expect(arg.accountType).toBe('claude-subscription');
|
|
69
|
+
expect(arg.tokenStatus).toBe('valid');
|
|
70
|
+
expect(arg.scopes).toEqual(['user:inference', 'user:profile']);
|
|
71
|
+
});
|
|
72
|
+
it('refreshLocalAccounts — graceful: nem létező fájl (missing) → 0 upsert, csendes', async () => {
|
|
73
|
+
// a credPath-ot szándékosan nem hozzuk létre — kind=missing, NINCS warn (csendes).
|
|
74
|
+
const { cs, upsertSpy } = buildStub();
|
|
75
|
+
const result = await cs.refreshLocalAccounts();
|
|
76
|
+
expect(result.scannedPaths).toBe(1);
|
|
77
|
+
expect(result.refreshedKeys.length).toBe(0);
|
|
78
|
+
expect(upsertSpy).not.toHaveBeenCalled();
|
|
79
|
+
});
|
|
80
|
+
it('refreshLocalAccounts — érvénytelen JSON → 0 upsert (kind=invalid-json)', async () => {
|
|
81
|
+
(0, fs_1.writeFileSync)(credPath, '{ not valid json', 'utf8');
|
|
82
|
+
const { cs, upsertSpy } = buildStub();
|
|
83
|
+
const result = await cs.refreshLocalAccounts();
|
|
84
|
+
expect(result.refreshedKeys.length).toBe(0);
|
|
85
|
+
expect(upsertSpy).not.toHaveBeenCalled();
|
|
86
|
+
});
|
|
87
|
+
it('refreshLocalAccounts — empty {} payload → 0 upsert (M4 ghost-account fix)', async () => {
|
|
88
|
+
(0, fs_1.writeFileSync)(credPath, JSON.stringify({}), 'utf8');
|
|
89
|
+
const { cs, upsertSpy } = buildStub();
|
|
90
|
+
const result = await cs.refreshLocalAccounts();
|
|
91
|
+
expect(result.refreshedKeys.length).toBe(0);
|
|
92
|
+
expect(upsertSpy).not.toHaveBeenCalled();
|
|
93
|
+
});
|
|
94
|
+
it('refreshLocalAccounts — scope-incomplete token → tokenStatus jelölt', async () => {
|
|
95
|
+
(0, fs_1.writeFileSync)(credPath, JSON.stringify({
|
|
96
|
+
claudeAiOauth: {
|
|
97
|
+
accessToken: 'at-1',
|
|
98
|
+
refreshToken: 'rt-1',
|
|
99
|
+
scopes: ['user:inference'],
|
|
100
|
+
expiresAt: Date.now() + 3_600_000,
|
|
101
|
+
},
|
|
102
|
+
}), 'utf8');
|
|
103
|
+
const { cs, upsertSpy } = buildStub();
|
|
104
|
+
await cs.refreshLocalAccounts();
|
|
105
|
+
const arg = upsertSpy.calls.mostRecent().args[0];
|
|
106
|
+
expect(arg.tokenStatus).toBe('scope-incomplete');
|
|
107
|
+
});
|
|
108
|
+
it('listAccounts — delegál a data-service-re', async () => {
|
|
109
|
+
const { cs, listAllSpy } = buildStub();
|
|
110
|
+
listAllSpy.and.returnValue(Promise.resolve([new cc_account_data_model_1.CC_Account(), new cc_account_data_model_1.CC_Account()]));
|
|
111
|
+
const result = await cs.listAccounts();
|
|
112
|
+
expect(result.length).toBe(2);
|
|
113
|
+
expect(listAllSpy).toHaveBeenCalledTimes(1);
|
|
114
|
+
});
|
|
115
|
+
it('getAccountByKey — delegál a data-service-re', async () => {
|
|
116
|
+
const { cs, getByKeySpy } = buildStub();
|
|
117
|
+
await cs.getAccountByKey('k1');
|
|
118
|
+
expect(getByKeySpy).toHaveBeenCalledWith('k1');
|
|
119
|
+
});
|
|
120
|
+
it('renameAccount — delegál a data-service-re', async () => {
|
|
121
|
+
const { cs, renameSpy } = buildStub();
|
|
122
|
+
await cs.renameAccount('k1', 'newName');
|
|
123
|
+
expect(renameSpy).toHaveBeenCalledWith('k1', 'newName');
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=cc-account-pool.control-service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-pool.control-service.spec.js","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.ts"],"names":[],"mappings":"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"}
|