@futdevpro/ccap 1.1.2773 → 1.1.2869
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-FTC6HON6.js → agent-instances.module-3LXXHDID.js} +2 -2
- package/client-dist/{ca.module-T5WQXU2N.js → ca.module-MYYCM2JJ.js} +2 -2
- package/client-dist/cc-usage-dashboard.component-BZERJBJ7.js +2 -0
- package/client-dist/cc-usage-dashboard.component-BZERJBJ7.js.map +7 -0
- package/client-dist/{cc.module-COGVFTKQ.js → cc.module-S6E7DTHJ.js} +2 -2
- package/client-dist/{chunk-W3JFG65U.js → chunk-2BU3PEIR.js} +2 -2
- package/client-dist/{chunk-NUGU2I5R.js → chunk-2J4JC47Y.js} +2 -2
- package/client-dist/{chunk-R335X4JG.js → chunk-2PDIEP7E.js} +2 -2
- package/client-dist/{chunk-HWL7Z5ZM.js → chunk-2V7JR7SO.js} +2 -2
- package/client-dist/{chunk-JF3NMIQ5.js → chunk-35NYQ66T.js} +2 -2
- package/client-dist/{chunk-XS63XY4P.js → chunk-3LN5752S.js} +2 -2
- package/client-dist/{chunk-ZYU6XCJH.js → chunk-5AKIWMP2.js} +2 -2
- package/client-dist/{chunk-AEBNFYPG.js → chunk-5LSG6VTE.js} +2 -2
- package/client-dist/{chunk-JVQJMCUR.js → chunk-5ZIYBSP7.js} +2 -2
- package/client-dist/{chunk-KYPUXJVM.js → chunk-6RS5GTKC.js} +2 -2
- package/client-dist/{chunk-ANPONVDT.js → chunk-6UO45CXV.js} +2 -2
- package/client-dist/{chunk-YZB6VVYX.js → chunk-6XORNZET.js} +2 -2
- package/client-dist/{chunk-5ZCM3XEF.js → chunk-76SBSCFD.js} +2 -2
- package/client-dist/{chunk-XHHM3M6L.js → chunk-7WZCSUSH.js} +2 -2
- package/client-dist/{chunk-7KG4F6B6.js → chunk-AP4ZGZ3Q.js} +2 -2
- package/client-dist/{chunk-J2M6ULUC.js → chunk-APKFZ3NB.js} +2 -2
- package/client-dist/{chunk-XVXIYED3.js → chunk-DM757UXT.js} +2 -2
- package/client-dist/{chunk-4NFTCNS4.js → chunk-ETSUU22G.js} +2 -2
- package/client-dist/{chunk-4NFTCNS4.js.map → chunk-ETSUU22G.js.map} +1 -1
- package/client-dist/{chunk-XGUYV7MG.js → chunk-FQGSNRKX.js} +2 -2
- package/client-dist/{chunk-5JSNSL5M.js → chunk-GB63TGH2.js} +2 -2
- package/client-dist/{chunk-XNGKKOKB.js → chunk-GPNYGY72.js} +2 -2
- package/client-dist/{chunk-2T5UNHHM.js → chunk-GQFCMJB7.js} +2 -2
- package/client-dist/{chunk-SNIUWGMH.js → chunk-HBQZEBLB.js} +2 -2
- package/client-dist/{chunk-AB6U56RU.js → chunk-ISWTCW7W.js} +2 -2
- package/client-dist/{chunk-HBVKJOYL.js → chunk-JLHB4EGI.js} +2 -2
- package/client-dist/{chunk-X7DX63BR.js → chunk-JNIJEGC3.js} +2 -2
- package/client-dist/{chunk-2SWFCTZE.js → chunk-JRG7FXDC.js} +2 -2
- package/client-dist/{chunk-RO27WG67.js → chunk-JWWJ6DPT.js} +2 -2
- package/client-dist/{chunk-C5D2TV4W.js → chunk-KB7B22JR.js} +2 -2
- package/client-dist/{chunk-L7NH64XF.js → chunk-KK4QAETW.js} +2 -2
- package/client-dist/{chunk-KBL4UR3I.js → chunk-N7DN2GHR.js} +2 -2
- package/client-dist/{chunk-OUEVGATK.js → chunk-NID5T5OA.js} +2 -2
- package/client-dist/{chunk-LLVCGPKC.js → chunk-NNKE5Y76.js} +2 -2
- package/client-dist/{chunk-BQPUFLOR.js → chunk-OU3F7ZJU.js} +2 -2
- package/client-dist/{chunk-UPCMPFI2.js → chunk-OUIQTJDB.js} +2 -2
- package/client-dist/{chunk-BIU6SAIV.js → chunk-OWAXNU7Q.js} +2 -2
- package/client-dist/{chunk-VUZZQEX5.js → chunk-OX65HIMB.js} +2 -2
- package/client-dist/{chunk-MLKF4HGZ.js → chunk-QGWYDTS3.js} +2 -2
- package/client-dist/{chunk-GZE4ZEPZ.js → chunk-R7R6POCN.js} +2 -2
- package/client-dist/{chunk-UWSC2Y4S.js → chunk-RIVVMZSH.js} +2 -2
- package/client-dist/{chunk-YOHSTGAK.js → chunk-SC7L2BUT.js} +2 -2
- package/client-dist/{chunk-EKUI3AU2.js → chunk-TEY575GB.js} +2 -2
- package/client-dist/{chunk-5ICDSTEC.js → chunk-TKCU7CDK.js} +2 -2
- package/client-dist/{chunk-WH6MQRSN.js → chunk-TOGFLAZ7.js} +8 -8
- package/client-dist/{chunk-WH6MQRSN.js.map → chunk-TOGFLAZ7.js.map} +1 -1
- package/client-dist/{chunk-CTMN3S4X.js → chunk-TTIUP6WD.js} +2 -2
- package/client-dist/{chunk-MXQ5HDEJ.js → chunk-TYQN5TDD.js} +2 -2
- package/client-dist/{chunk-K6TH4EG6.js → chunk-VIFXYYPK.js} +2 -2
- package/client-dist/{chunk-QGEEHCW4.js → chunk-W3R2EMPM.js} +2 -2
- package/client-dist/{chunk-WDWIPU4X.js → chunk-WJHZKMS6.js} +2 -2
- package/client-dist/{chunk-7NVABR2D.js → chunk-XNIVMROA.js} +2 -2
- package/client-dist/{chunk-RKUEOIPO.js → chunk-YDSE5YMB.js} +2 -2
- package/client-dist/{chunk-WFCWXGNT.js → chunk-YIQBC2QJ.js} +2 -2
- package/client-dist/{chunk-U4Q4HSQH.js → chunk-YOSTW7HD.js} +2 -2
- package/client-dist/{chunk-2CPKEQZB.js → chunk-YZEV52S3.js} +2 -2
- package/client-dist/{chunk-CXVFIY3J.js → chunk-Z5SR576N.js} +2 -2
- package/client-dist/{chunk-KWP763XN.js → chunk-ZVHVFEBL.js} +2 -2
- package/client-dist/{consultant.module-DRXMYTWB.js → consultant.module-OKAHHHIM.js} +2 -2
- package/client-dist/{crd.module-ZOMOHE45.js → crd.module-G6Z36XAU.js} +2 -2
- package/client-dist/{dashboard.module-BQZIW6GD.js → dashboard.module-6RDWDPLM.js} +2 -2
- package/client-dist/{do.module-GVOQTZDO.js → do.module-REZMQY2N.js} +2 -2
- package/client-dist/{document-library.module-TWEYVWUZ.js → document-library.module-HNEY63TN.js} +2 -2
- package/client-dist/{embedding-eval.module-JN54G4E6.js → embedding-eval.module-5T6NKDKA.js} +2 -2
- package/client-dist/{embedding-registry.module-C667LNNF.js → embedding-registry.module-CMPQ7NS2.js} +2 -2
- package/client-dist/{err.module-SX35S7LN.js → err.module-CVZWIOMI.js} +2 -2
- package/client-dist/{feedback.module-3JYYFAR5.js → feedback.module-CRCF4W25.js} +2 -2
- package/client-dist/{host-runtime-mcp.module-OO343PYS.js → host-runtime-mcp.module-7ODIDC5L.js} +2 -2
- package/client-dist/index.html +1 -1
- package/client-dist/{live-dev-pipeline.module-RXPXBR4I.js → live-dev-pipeline.module-V26BMG6N.js} +2 -2
- package/client-dist/{logs.module-APARL7F5.js → logs.module-PLE5ABP6.js} +2 -2
- package/client-dist/{main-OGTRBQHJ.js → main-EBGS6D7B.js} +5 -5
- package/client-dist/main-EBGS6D7B.js.map +7 -0
- package/client-dist/{master-control-remote-poc.module-ZIKHL5ZZ.js → master-control-remote-poc.module-ZB5IS3LQ.js} +2 -2
- package/client-dist/{mobile-app.module-7N3BCY3U.js → mobile-app.module-5UZRMRJ6.js} +2 -2
- package/client-dist/{model-registry.module-CIHLPYOY.js → model-registry.module-IWCKDRUO.js} +2 -2
- package/client-dist/{oc.module-XTUTSUFK.js → oc.module-44GVU6IT.js} +2 -2
- package/client-dist/{orc.module-RCCFU7LK.js → orc.module-QG7H5CON.js} +2 -2
- package/client-dist/{project-management.module-B4PTI75N.js → project-management.module-6K7Q55KX.js} +2 -2
- package/client-dist/project-source-routed.module-72C4RPOH.js +2 -0
- package/client-dist/{scheduler.module-MU5GIH4B.js → scheduler.module-WIEM3UPU.js} +2 -2
- package/client-dist/{session.module-Z64V557B.js → session.module-FMEFK7VS.js} +2 -2
- package/client-dist/{set.module-VMJ6WIDP.js → set.module-2ACVRQVB.js} +2 -2
- package/client-dist/{setup.module-V7KNKPJS.js → setup.module-C6ICVZKP.js} +2 -2
- package/client-dist/{terminals.module-KHJ7I4TI.js → terminals.module-F5BMBKBP.js} +2 -2
- package/client-dist/{voice-notes-poc.module-VQH5ZNZK.js → voice-notes-poc.module-SXROQC4L.js} +2 -2
- package/client-dist/{wfs.module-GZDMTIBS.js → wfs.module-IFEXPLHA.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 +25 -3
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js +23 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js +56 -3
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.d.ts +20 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.js +98 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/cc-stream-parser.util.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.d.ts +51 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.js +72 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.data-model.spec.js +67 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account-usage-state.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 +33 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js +56 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js +38 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js +29 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts +6 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js +48 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js +55 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.d.ts +53 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.js +168 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.spec.d.ts +2 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.spec.d.ts.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.spec.js +156 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.spec.js.map +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js +9 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/cc-manager.control-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.d.ts +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.js +1 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/claude-code.data-service.js.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +34 -0
- package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
- package/server/build/src/_modules/messaging/_collections/consts/msg.const.d.ts +17 -0
- package/server/build/src/_modules/messaging/_collections/consts/msg.const.d.ts.map +1 -1
- package/server/build/src/_modules/messaging/_collections/consts/msg.const.js +19 -1
- package/server/build/src/_modules/messaging/_collections/consts/msg.const.js.map +1 -1
- package/server/build/src/app.server.d.ts +2 -8
- package/server/build/src/app.server.d.ts.map +1 -1
- package/server/build/src/app.server.js +6 -14
- package/server/build/src/app.server.js.map +1 -1
- package/client-dist/main-OGTRBQHJ.js.map +0 -7
- package/client-dist/project-source-routed.module-UGGTFFSI.js +0 -2
- /package/client-dist/{agent-instances.module-FTC6HON6.js.map → agent-instances.module-3LXXHDID.js.map} +0 -0
- /package/client-dist/{ca.module-T5WQXU2N.js.map → ca.module-MYYCM2JJ.js.map} +0 -0
- /package/client-dist/{cc.module-COGVFTKQ.js.map → cc.module-S6E7DTHJ.js.map} +0 -0
- /package/client-dist/{chunk-W3JFG65U.js.map → chunk-2BU3PEIR.js.map} +0 -0
- /package/client-dist/{chunk-NUGU2I5R.js.map → chunk-2J4JC47Y.js.map} +0 -0
- /package/client-dist/{chunk-R335X4JG.js.map → chunk-2PDIEP7E.js.map} +0 -0
- /package/client-dist/{chunk-HWL7Z5ZM.js.map → chunk-2V7JR7SO.js.map} +0 -0
- /package/client-dist/{chunk-JF3NMIQ5.js.map → chunk-35NYQ66T.js.map} +0 -0
- /package/client-dist/{chunk-XS63XY4P.js.map → chunk-3LN5752S.js.map} +0 -0
- /package/client-dist/{chunk-ZYU6XCJH.js.map → chunk-5AKIWMP2.js.map} +0 -0
- /package/client-dist/{chunk-AEBNFYPG.js.map → chunk-5LSG6VTE.js.map} +0 -0
- /package/client-dist/{chunk-JVQJMCUR.js.map → chunk-5ZIYBSP7.js.map} +0 -0
- /package/client-dist/{chunk-KYPUXJVM.js.map → chunk-6RS5GTKC.js.map} +0 -0
- /package/client-dist/{chunk-ANPONVDT.js.map → chunk-6UO45CXV.js.map} +0 -0
- /package/client-dist/{chunk-YZB6VVYX.js.map → chunk-6XORNZET.js.map} +0 -0
- /package/client-dist/{chunk-5ZCM3XEF.js.map → chunk-76SBSCFD.js.map} +0 -0
- /package/client-dist/{chunk-XHHM3M6L.js.map → chunk-7WZCSUSH.js.map} +0 -0
- /package/client-dist/{chunk-7KG4F6B6.js.map → chunk-AP4ZGZ3Q.js.map} +0 -0
- /package/client-dist/{chunk-J2M6ULUC.js.map → chunk-APKFZ3NB.js.map} +0 -0
- /package/client-dist/{chunk-XVXIYED3.js.map → chunk-DM757UXT.js.map} +0 -0
- /package/client-dist/{chunk-XGUYV7MG.js.map → chunk-FQGSNRKX.js.map} +0 -0
- /package/client-dist/{chunk-5JSNSL5M.js.map → chunk-GB63TGH2.js.map} +0 -0
- /package/client-dist/{chunk-XNGKKOKB.js.map → chunk-GPNYGY72.js.map} +0 -0
- /package/client-dist/{chunk-2T5UNHHM.js.map → chunk-GQFCMJB7.js.map} +0 -0
- /package/client-dist/{chunk-SNIUWGMH.js.map → chunk-HBQZEBLB.js.map} +0 -0
- /package/client-dist/{chunk-AB6U56RU.js.map → chunk-ISWTCW7W.js.map} +0 -0
- /package/client-dist/{chunk-HBVKJOYL.js.map → chunk-JLHB4EGI.js.map} +0 -0
- /package/client-dist/{chunk-X7DX63BR.js.map → chunk-JNIJEGC3.js.map} +0 -0
- /package/client-dist/{chunk-2SWFCTZE.js.map → chunk-JRG7FXDC.js.map} +0 -0
- /package/client-dist/{chunk-RO27WG67.js.map → chunk-JWWJ6DPT.js.map} +0 -0
- /package/client-dist/{chunk-C5D2TV4W.js.map → chunk-KB7B22JR.js.map} +0 -0
- /package/client-dist/{chunk-L7NH64XF.js.map → chunk-KK4QAETW.js.map} +0 -0
- /package/client-dist/{chunk-KBL4UR3I.js.map → chunk-N7DN2GHR.js.map} +0 -0
- /package/client-dist/{chunk-OUEVGATK.js.map → chunk-NID5T5OA.js.map} +0 -0
- /package/client-dist/{chunk-LLVCGPKC.js.map → chunk-NNKE5Y76.js.map} +0 -0
- /package/client-dist/{chunk-BQPUFLOR.js.map → chunk-OU3F7ZJU.js.map} +0 -0
- /package/client-dist/{chunk-UPCMPFI2.js.map → chunk-OUIQTJDB.js.map} +0 -0
- /package/client-dist/{chunk-BIU6SAIV.js.map → chunk-OWAXNU7Q.js.map} +0 -0
- /package/client-dist/{chunk-VUZZQEX5.js.map → chunk-OX65HIMB.js.map} +0 -0
- /package/client-dist/{chunk-MLKF4HGZ.js.map → chunk-QGWYDTS3.js.map} +0 -0
- /package/client-dist/{chunk-GZE4ZEPZ.js.map → chunk-R7R6POCN.js.map} +0 -0
- /package/client-dist/{chunk-UWSC2Y4S.js.map → chunk-RIVVMZSH.js.map} +0 -0
- /package/client-dist/{chunk-YOHSTGAK.js.map → chunk-SC7L2BUT.js.map} +0 -0
- /package/client-dist/{chunk-EKUI3AU2.js.map → chunk-TEY575GB.js.map} +0 -0
- /package/client-dist/{chunk-5ICDSTEC.js.map → chunk-TKCU7CDK.js.map} +0 -0
- /package/client-dist/{chunk-CTMN3S4X.js.map → chunk-TTIUP6WD.js.map} +0 -0
- /package/client-dist/{chunk-MXQ5HDEJ.js.map → chunk-TYQN5TDD.js.map} +0 -0
- /package/client-dist/{chunk-K6TH4EG6.js.map → chunk-VIFXYYPK.js.map} +0 -0
- /package/client-dist/{chunk-QGEEHCW4.js.map → chunk-W3R2EMPM.js.map} +0 -0
- /package/client-dist/{chunk-WDWIPU4X.js.map → chunk-WJHZKMS6.js.map} +0 -0
- /package/client-dist/{chunk-7NVABR2D.js.map → chunk-XNIVMROA.js.map} +0 -0
- /package/client-dist/{chunk-RKUEOIPO.js.map → chunk-YDSE5YMB.js.map} +0 -0
- /package/client-dist/{chunk-WFCWXGNT.js.map → chunk-YIQBC2QJ.js.map} +0 -0
- /package/client-dist/{chunk-U4Q4HSQH.js.map → chunk-YOSTW7HD.js.map} +0 -0
- /package/client-dist/{chunk-2CPKEQZB.js.map → chunk-YZEV52S3.js.map} +0 -0
- /package/client-dist/{chunk-CXVFIY3J.js.map → chunk-Z5SR576N.js.map} +0 -0
- /package/client-dist/{chunk-KWP763XN.js.map → chunk-ZVHVFEBL.js.map} +0 -0
- /package/client-dist/{consultant.module-DRXMYTWB.js.map → consultant.module-OKAHHHIM.js.map} +0 -0
- /package/client-dist/{crd.module-ZOMOHE45.js.map → crd.module-G6Z36XAU.js.map} +0 -0
- /package/client-dist/{dashboard.module-BQZIW6GD.js.map → dashboard.module-6RDWDPLM.js.map} +0 -0
- /package/client-dist/{do.module-GVOQTZDO.js.map → do.module-REZMQY2N.js.map} +0 -0
- /package/client-dist/{document-library.module-TWEYVWUZ.js.map → document-library.module-HNEY63TN.js.map} +0 -0
- /package/client-dist/{embedding-eval.module-JN54G4E6.js.map → embedding-eval.module-5T6NKDKA.js.map} +0 -0
- /package/client-dist/{embedding-registry.module-C667LNNF.js.map → embedding-registry.module-CMPQ7NS2.js.map} +0 -0
- /package/client-dist/{err.module-SX35S7LN.js.map → err.module-CVZWIOMI.js.map} +0 -0
- /package/client-dist/{feedback.module-3JYYFAR5.js.map → feedback.module-CRCF4W25.js.map} +0 -0
- /package/client-dist/{host-runtime-mcp.module-OO343PYS.js.map → host-runtime-mcp.module-7ODIDC5L.js.map} +0 -0
- /package/client-dist/{live-dev-pipeline.module-RXPXBR4I.js.map → live-dev-pipeline.module-V26BMG6N.js.map} +0 -0
- /package/client-dist/{logs.module-APARL7F5.js.map → logs.module-PLE5ABP6.js.map} +0 -0
- /package/client-dist/{master-control-remote-poc.module-ZIKHL5ZZ.js.map → master-control-remote-poc.module-ZB5IS3LQ.js.map} +0 -0
- /package/client-dist/{mobile-app.module-7N3BCY3U.js.map → mobile-app.module-5UZRMRJ6.js.map} +0 -0
- /package/client-dist/{model-registry.module-CIHLPYOY.js.map → model-registry.module-IWCKDRUO.js.map} +0 -0
- /package/client-dist/{oc.module-XTUTSUFK.js.map → oc.module-44GVU6IT.js.map} +0 -0
- /package/client-dist/{orc.module-RCCFU7LK.js.map → orc.module-QG7H5CON.js.map} +0 -0
- /package/client-dist/{project-management.module-B4PTI75N.js.map → project-management.module-6K7Q55KX.js.map} +0 -0
- /package/client-dist/{project-source-routed.module-UGGTFFSI.js.map → project-source-routed.module-72C4RPOH.js.map} +0 -0
- /package/client-dist/{scheduler.module-MU5GIH4B.js.map → scheduler.module-WIEM3UPU.js.map} +0 -0
- /package/client-dist/{session.module-Z64V557B.js.map → session.module-FMEFK7VS.js.map} +0 -0
- /package/client-dist/{set.module-VMJ6WIDP.js.map → set.module-2ACVRQVB.js.map} +0 -0
- /package/client-dist/{setup.module-V7KNKPJS.js.map → setup.module-C6ICVZKP.js.map} +0 -0
- /package/client-dist/{terminals.module-KHJ7I4TI.js.map → terminals.module-F5BMBKBP.js.map} +0 -0
- /package/client-dist/{voice-notes-poc.module-VQH5ZNZK.js.map → voice-notes-poc.module-SXROQC4L.js.map} +0 -0
- /package/client-dist/{wfs.module-GZDMTIBS.js.map → wfs.module-IFEXPLHA.js.map} +0 -0
|
@@ -1 +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;
|
|
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":"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"}
|
|
@@ -31,5 +31,11 @@ export declare class CC_AccountPool_ControlService extends DyNTS_SingletonServic
|
|
|
31
31
|
getAccountByKey(accountKey: string): Promise<CC_Account | null>;
|
|
32
32
|
/** Egy account user-readable nevének átírása. */
|
|
33
33
|
renameAccount(accountKey: string, displayName: string): Promise<CC_Account | null>;
|
|
34
|
+
/**
|
|
35
|
+
* Account-list-update broadcast (Slice 6 second-half cycle 871). Best-effort,
|
|
36
|
+
* NEM dob — a payload tartalmazza a change-típust és az érintett accountKey-eket,
|
|
37
|
+
* a kliens ebből döntheti el, refetch-eljen-e listAccounts-ot vagy csak diff-eljen.
|
|
38
|
+
*/
|
|
39
|
+
private emitAccountListUpdate;
|
|
34
40
|
}
|
|
35
41
|
//# sourceMappingURL=cc-account-pool.control-service.d.ts.map
|
|
@@ -1 +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;
|
|
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;AAQhF;;;;;;;;;;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;IA4ExF,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;IAcxF;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;CAuB9B"}
|
|
@@ -6,6 +6,8 @@ const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
|
|
|
6
6
|
const cc_account_discovery_util_1 = require("../../../_collections/utils/account/cc-account-discovery.util");
|
|
7
7
|
const cc_account_data_service_1 = require("./cc-account.data-service");
|
|
8
8
|
const instance_id_service_1 = require("../../../../../_services/instance-id.service");
|
|
9
|
+
const msg_const_1 = require("../../../../../../messaging/_collections/consts/msg.const");
|
|
10
|
+
const msg_ccap_client_control_service_1 = require("../../../../../../messaging/_services/control-services/providers/msg-ccap-client.control-service");
|
|
9
11
|
/**
|
|
10
12
|
* CC Account Pool control-service (REQ-CC-USAGE-DASHBOARD-001 Slice 1).
|
|
11
13
|
*
|
|
@@ -75,6 +77,18 @@ class CC_AccountPool_ControlService extends nts_dynamo_1.DyNTS_SingletonService
|
|
|
75
77
|
+ ` | ccapId: ${ccapId}`
|
|
76
78
|
+ ` | paths-scanned: ${paths.length}`
|
|
77
79
|
+ ` | accounts-refreshed: ${refreshedKeys.length}`);
|
|
80
|
+
// REQ-CC-USAGE-DASHBOARD-001 Slice 6 second-half (cycle 871): live updates
|
|
81
|
+
// socket emit ha legalább egy account felfedezve / frissítve. A Dashboard
|
|
82
|
+
// kliens-oldali subscriber a cc:account-list-update-ra a saját accounts_$
|
|
83
|
+
// signal-jét frissíti. Best-effort: broadcastSocketEvent hibát warn-szinten
|
|
84
|
+
// elnyel, NEM dob (a refresh user-action eredményét nem blokkolja).
|
|
85
|
+
if (refreshedKeys.length > 0) {
|
|
86
|
+
this.emitAccountListUpdate({
|
|
87
|
+
change: 'refreshed',
|
|
88
|
+
accountKeys: refreshedKeys,
|
|
89
|
+
ccapId: ccapId,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
78
92
|
return { refreshedKeys: refreshedKeys, scannedPaths: paths.length };
|
|
79
93
|
}
|
|
80
94
|
/** Cross-instance account-lista (DB SSOT-ből). */
|
|
@@ -87,7 +101,40 @@ class CC_AccountPool_ControlService extends nts_dynamo_1.DyNTS_SingletonService
|
|
|
87
101
|
}
|
|
88
102
|
/** Egy account user-readable nevének átírása. */
|
|
89
103
|
async renameAccount(accountKey, displayName) {
|
|
90
|
-
|
|
104
|
+
const updated = await this.accountDataService.renameAccount(accountKey, displayName);
|
|
105
|
+
if (updated != null) {
|
|
106
|
+
// REQ-CC-USAGE-DASHBOARD-001 Slice 6 second-half (cycle 871): a rename
|
|
107
|
+
// user-action minden Dashboard-ot frissítenie kell — broadcast.
|
|
108
|
+
this.emitAccountListUpdate({
|
|
109
|
+
change: 'renamed',
|
|
110
|
+
accountKeys: [accountKey],
|
|
111
|
+
ccapId: instance_id_service_1.ExS_InstanceId_Service.getInstance().getInstanceId(),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return updated;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Account-list-update broadcast (Slice 6 second-half cycle 871). Best-effort,
|
|
118
|
+
* NEM dob — a payload tartalmazza a change-típust és az érintett accountKey-eket,
|
|
119
|
+
* a kliens ebből döntheti el, refetch-eljen-e listAccounts-ot vagy csak diff-eljen.
|
|
120
|
+
*/
|
|
121
|
+
emitAccountListUpdate(params) {
|
|
122
|
+
try {
|
|
123
|
+
msg_ccap_client_control_service_1.Msg_CcapClient_ControlService.getInstance().broadcastSocketEvent({
|
|
124
|
+
eventName: msg_const_1.SOCKET_EVENT_CC_ACCOUNT_LIST_UPDATE,
|
|
125
|
+
payload: {
|
|
126
|
+
change: params.change,
|
|
127
|
+
accountKeys: params.accountKeys,
|
|
128
|
+
ccapId: params.ccapId,
|
|
129
|
+
observedAt: new Date().toISOString(),
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
catch (broadcastErr) {
|
|
134
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountPool_CS | account-list broadcast failed (non-blocking)`
|
|
135
|
+
+ ` | change: ${params.change}`
|
|
136
|
+
+ ` | ${broadcastErr instanceof Error ? broadcastErr.message : String(broadcastErr)}`);
|
|
137
|
+
}
|
|
91
138
|
}
|
|
92
139
|
}
|
|
93
140
|
exports.CC_AccountPool_ControlService = CC_AccountPool_ControlService;
|
|
@@ -1 +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":";;;AAAA,sDAAiD;AACjD,sDAA+D;AAE/D,6GAAyG;AAEzG,uEAAmE;AACnE,sFAAsF;
|
|
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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"}
|
|
@@ -7,6 +7,7 @@ const cc_account_discovery_util_1 = require("../../../_collections/utils/account
|
|
|
7
7
|
const cc_account_data_model_1 = require("../../../_models/data-models/cc-account.data-model");
|
|
8
8
|
const cc_account_pool_control_service_1 = require("./cc-account-pool.control-service");
|
|
9
9
|
const instance_id_service_1 = require("../../../../../_services/instance-id.service");
|
|
10
|
+
const msg_ccap_client_control_service_1 = require("../../../../../../messaging/_services/control-services/providers/msg-ccap-client.control-service");
|
|
10
11
|
/**
|
|
11
12
|
* CC_AccountPool_ControlService spec — REQ-CC-USAGE-DASHBOARD-001 Slice 1.
|
|
12
13
|
* Object.create + property-stub workaround a singleton wiring elkerülésére.
|
|
@@ -37,6 +38,7 @@ describe('CC_AccountPool_ControlService', () => {
|
|
|
37
38
|
cs.accountDataService = fakeDS;
|
|
38
39
|
return { cs: cs, upsertSpy: upsertSpy, listAllSpy: listAllSpy, getByKeySpy: getByKeySpy, renameSpy: renameSpy };
|
|
39
40
|
}
|
|
41
|
+
let broadcastSpy;
|
|
40
42
|
beforeEach(() => {
|
|
41
43
|
tmpDir = (0, fs_1.mkdtempSync)((0, path_1.join)((0, os_1.tmpdir)(), 'cc-account-pool-cs-spec-'));
|
|
42
44
|
credPath = (0, path_1.join)(tmpDir, '.credentials.json');
|
|
@@ -44,6 +46,13 @@ describe('CC_AccountPool_ControlService', () => {
|
|
|
44
46
|
getInstanceId: () => 'ccap-test-instance',
|
|
45
47
|
});
|
|
46
48
|
spyOn(cc_account_discovery_util_1.CC_AccountDiscovery_Util, 'getDefaultCredentialPaths').and.returnValue([credPath]);
|
|
49
|
+
// REQ-CC-USAGE-DASHBOARD-001 Slice 6 second-half (cycle 871):
|
|
50
|
+
// a Msg_CcapClient broadcastSocketEvent-jét spyolva ellenőrizzük az
|
|
51
|
+
// emit-pontokat (account-list-update a refresh + rename után).
|
|
52
|
+
broadcastSpy = jasmine.createSpy('broadcastSocketEvent');
|
|
53
|
+
spyOn(msg_ccap_client_control_service_1.Msg_CcapClient_ControlService, 'getInstance').and.returnValue({
|
|
54
|
+
broadcastSocketEvent: broadcastSpy,
|
|
55
|
+
});
|
|
47
56
|
});
|
|
48
57
|
afterEach(() => {
|
|
49
58
|
(0, fs_1.rmSync)(tmpDir, { recursive: true, force: true });
|
|
@@ -122,5 +131,51 @@ describe('CC_AccountPool_ControlService', () => {
|
|
|
122
131
|
await cs.renameAccount('k1', 'newName');
|
|
123
132
|
expect(renameSpy).toHaveBeenCalledWith('k1', 'newName');
|
|
124
133
|
});
|
|
134
|
+
// REQ-CC-USAGE-DASHBOARD-001 Slice 6 second-half (cycle 871):
|
|
135
|
+
// server-oldali socket emit pontok az account-list-update event-re.
|
|
136
|
+
it('refreshLocalAccounts — emit cc:account-list-update sikeres upsert után', async () => {
|
|
137
|
+
(0, fs_1.writeFileSync)(credPath, JSON.stringify({
|
|
138
|
+
claudeAiOauth: {
|
|
139
|
+
accessToken: 'at-1',
|
|
140
|
+
refreshToken: 'rt-stable-1',
|
|
141
|
+
scopes: ['user:profile'],
|
|
142
|
+
expiresAt: Date.now() + 3_600_000,
|
|
143
|
+
},
|
|
144
|
+
}), 'utf8');
|
|
145
|
+
const { cs } = buildStub();
|
|
146
|
+
await cs.refreshLocalAccounts();
|
|
147
|
+
expect(broadcastSpy).toHaveBeenCalledTimes(1);
|
|
148
|
+
const arg = broadcastSpy.calls.mostRecent().args[0];
|
|
149
|
+
expect(arg.eventName).toBe('cc:account-list-update');
|
|
150
|
+
expect(arg.payload.change).toBe('refreshed');
|
|
151
|
+
expect(arg.payload.accountKeys.length).toBe(1);
|
|
152
|
+
expect(arg.payload.ccapId).toBe('ccap-test-instance');
|
|
153
|
+
});
|
|
154
|
+
it('refreshLocalAccounts — NEM emit ha 0 account refresh-elve', async () => {
|
|
155
|
+
// credPath nem létezik → 0 upsert → 0 emit
|
|
156
|
+
const { cs } = buildStub();
|
|
157
|
+
await cs.refreshLocalAccounts();
|
|
158
|
+
expect(broadcastSpy).not.toHaveBeenCalled();
|
|
159
|
+
});
|
|
160
|
+
it('renameAccount — emit cc:account-list-update sikeres rename után', async () => {
|
|
161
|
+
const updated = Object.assign(new cc_account_data_model_1.CC_Account(), {
|
|
162
|
+
accountKey: 'k1',
|
|
163
|
+
displayName: 'NewName',
|
|
164
|
+
});
|
|
165
|
+
const { cs, renameSpy } = buildStub();
|
|
166
|
+
renameSpy.and.returnValue(Promise.resolve(updated));
|
|
167
|
+
await cs.renameAccount('k1', 'NewName');
|
|
168
|
+
expect(broadcastSpy).toHaveBeenCalledTimes(1);
|
|
169
|
+
const arg = broadcastSpy.calls.mostRecent().args[0];
|
|
170
|
+
expect(arg.eventName).toBe('cc:account-list-update');
|
|
171
|
+
expect(arg.payload.change).toBe('renamed');
|
|
172
|
+
expect(arg.payload.accountKeys).toEqual(['k1']);
|
|
173
|
+
});
|
|
174
|
+
it('renameAccount — NEM emit ha az account nem létezik (null return)', async () => {
|
|
175
|
+
const { cs, renameSpy } = buildStub();
|
|
176
|
+
renameSpy.and.returnValue(Promise.resolve(null));
|
|
177
|
+
await cs.renameAccount('nope', 'x');
|
|
178
|
+
expect(broadcastSpy).not.toHaveBeenCalled();
|
|
179
|
+
});
|
|
125
180
|
});
|
|
126
181
|
//# sourceMappingURL=cc-account-pool.control-service.spec.js.map
|
|
@@ -1 +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":";;AAAA,2BAAwD;AACxD,2BAA4B;AAC5B,+BAA4B;AAE5B,6GAAyG;AACzG,8FAAgF;AAEhF,uFAAkF;AAClF,sFAAsF;
|
|
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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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { DyNTS_DataService } from '@futdevpro/nts-dynamo';
|
|
2
|
+
import { CC_AccountUsageState } from '../../../_models/data-models/cc-account-usage-state.data-model';
|
|
3
|
+
/**
|
|
4
|
+
* CC Account usage state data service (REQ-CC-USAGE-DASHBOARD-001 Slice 3, cycle 852).
|
|
5
|
+
* Per-account + per-window-type (`five_hour` / `seven_day` / `seven_day_opus` /
|
|
6
|
+
* `seven_day_sonnet` / `extra_usage`) state upsert + lekérdezés. Az
|
|
7
|
+
* `(accountKey, windowType)` páros a natural key; a stream-parser bridge minden
|
|
8
|
+
* `rate_limit_event`-re ezt hívja a meglévő `CC_RateLimitState_DataService`
|
|
9
|
+
* upsert MELLÉ — a két data-service független, párhuzamosan írja a saját state-jét.
|
|
10
|
+
*/
|
|
11
|
+
export declare class CC_AccountUsageState_DataService extends DyNTS_DataService<CC_AccountUsageState> {
|
|
12
|
+
constructor(params: {
|
|
13
|
+
issuer: string;
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Account usage state upsert `(accountKey, windowType)` kulcs alapján.
|
|
17
|
+
* Best-effort (no-silent-failure): hibát `DyFM_Log.warn`-be logol +
|
|
18
|
+
* `CCAP_Error` rekord a /errors-be. NEM dob — a stream-parser flow-t
|
|
19
|
+
* nem blokkolja egy monitoring-perzisztálási hiba.
|
|
20
|
+
*/
|
|
21
|
+
upsertAccountUsageState(params: {
|
|
22
|
+
accountKey: string;
|
|
23
|
+
windowType: string;
|
|
24
|
+
utilization?: number;
|
|
25
|
+
resetsAtMs?: number;
|
|
26
|
+
lastObservedStatus?: string;
|
|
27
|
+
lastObservedByCcapId?: string;
|
|
28
|
+
lastObservedBySessionId?: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Account-szintű usage state-ek listázása (0..5 rekord — egy per windowType).
|
|
32
|
+
* A REST `GET /cc-account/:accountKey/usage` endpoint hívja, plus a Dashboard
|
|
33
|
+
* (Slice 5+) bootstrap-jánál.
|
|
34
|
+
*/
|
|
35
|
+
listByAccountKey(accountKey: string): Promise<CC_AccountUsageState[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Slice 4 instance-mapping (cycle 855): teljes account-usage-state lista
|
|
38
|
+
* cross-instance aggregate-hez. A REST `GET /cc-account/instance-mapping`
|
|
39
|
+
* endpoint hívja, és az ott történő group-by (lastObservedByCcapId)
|
|
40
|
+
* adja össze a `(ccapId → [account-usage-state-ek])` map-et.
|
|
41
|
+
*
|
|
42
|
+
* Skálázódás: 5 windowType × N account = max ~50-100 rekord tipikus
|
|
43
|
+
* deployment-en. Throw-on → [] (silent fallback).
|
|
44
|
+
*/
|
|
45
|
+
listAll(): Promise<CC_AccountUsageState[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Cross-instance: per-CCAP listázás (Slice 4 instance-mapping endpoint —
|
|
48
|
+
* "melyik instance-ek használnak account-okat"). `lastObservedByCcapId`
|
|
49
|
+
* indexen szűr.
|
|
50
|
+
*/
|
|
51
|
+
listByLastObservedCcap(ccapId: string): Promise<CC_AccountUsageState[]>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=cc-account-usage-state.data-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-usage-state.data-service.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAuC,MAAM,uBAAuB,CAAC;AAI/F,OAAO,EACL,oBAAoB,EAErB,MAAM,gEAAgE,CAAC;AAExE;;;;;;;GAOG;AACH,qBAAa,gCAAiC,SAAQ,iBAAiB,CAAC,oBAAoB,CAAC;gBAE/E,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAQtC;;;;;OAKG;IACG,uBAAuB,CAAC,MAAM,EAAE;QACpC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwEjB;;;;OAIG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmC3E;;;;;;;;OAQG;IACG,OAAO,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAahD;;;;OAIG;IACG,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAe9E"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CC_AccountUsageState_DataService = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const nts_dynamo_1 = require("@futdevpro/nts-dynamo");
|
|
6
|
+
const ccap_error_control_model_1 = require("../../../../../../../_collections/core/ccap-error.control-model");
|
|
7
|
+
const eh_record_build_util_1 = require("../../../../../../ccap-agent/_modules/error-handling/_collections/utils/eh-record-build.util");
|
|
8
|
+
const cc_account_usage_state_data_model_1 = require("../../../_models/data-models/cc-account-usage-state.data-model");
|
|
9
|
+
/**
|
|
10
|
+
* CC Account usage state data service (REQ-CC-USAGE-DASHBOARD-001 Slice 3, cycle 852).
|
|
11
|
+
* Per-account + per-window-type (`five_hour` / `seven_day` / `seven_day_opus` /
|
|
12
|
+
* `seven_day_sonnet` / `extra_usage`) state upsert + lekérdezés. Az
|
|
13
|
+
* `(accountKey, windowType)` páros a natural key; a stream-parser bridge minden
|
|
14
|
+
* `rate_limit_event`-re ezt hívja a meglévő `CC_RateLimitState_DataService`
|
|
15
|
+
* upsert MELLÉ — a két data-service független, párhuzamosan írja a saját state-jét.
|
|
16
|
+
*/
|
|
17
|
+
class CC_AccountUsageState_DataService extends nts_dynamo_1.DyNTS_DataService {
|
|
18
|
+
constructor(params) {
|
|
19
|
+
super(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), cc_account_usage_state_data_model_1.ccapCcAccountUsageState_dataParams, params.issuer);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Account usage state upsert `(accountKey, windowType)` kulcs alapján.
|
|
23
|
+
* Best-effort (no-silent-failure): hibát `DyFM_Log.warn`-be logol +
|
|
24
|
+
* `CCAP_Error` rekord a /errors-be. NEM dob — a stream-parser flow-t
|
|
25
|
+
* nem blokkolja egy monitoring-perzisztálási hiba.
|
|
26
|
+
*/
|
|
27
|
+
async upsertAccountUsageState(params) {
|
|
28
|
+
try {
|
|
29
|
+
const filter = {
|
|
30
|
+
accountKey: params.accountKey,
|
|
31
|
+
windowType: params.windowType,
|
|
32
|
+
};
|
|
33
|
+
const existing = await this.findData(filter, true);
|
|
34
|
+
const observedAt = new Date();
|
|
35
|
+
if (existing != null && existing._id) {
|
|
36
|
+
const setFields = {
|
|
37
|
+
utilization: params.utilization,
|
|
38
|
+
resetsAtMs: params.resetsAtMs,
|
|
39
|
+
lastObservedStatus: params.lastObservedStatus,
|
|
40
|
+
lastObservedByCcapId: params.lastObservedByCcapId,
|
|
41
|
+
lastObservedBySessionId: params.lastObservedBySessionId,
|
|
42
|
+
observedAt: observedAt,
|
|
43
|
+
};
|
|
44
|
+
await this.updateData({
|
|
45
|
+
filterBy: { _id: existing._id },
|
|
46
|
+
update: { $set: setFields },
|
|
47
|
+
});
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const record = new cc_account_usage_state_data_model_1.CC_AccountUsageState();
|
|
51
|
+
record.accountKey = params.accountKey;
|
|
52
|
+
record.windowType = params.windowType;
|
|
53
|
+
record.utilization = params.utilization;
|
|
54
|
+
record.resetsAtMs = params.resetsAtMs;
|
|
55
|
+
record.lastObservedStatus = params.lastObservedStatus;
|
|
56
|
+
record.lastObservedByCcapId = params.lastObservedByCcapId;
|
|
57
|
+
record.lastObservedBySessionId = params.lastObservedBySessionId;
|
|
58
|
+
record.observedAt = observedAt;
|
|
59
|
+
this.data = record;
|
|
60
|
+
await this.saveData();
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountUsageState_DS | upsertAccountUsageState failed (non-blocking)`
|
|
64
|
+
+ ` | accountKey: ${params.accountKey}`
|
|
65
|
+
+ ` | windowType: ${params.windowType}`
|
|
66
|
+
+ ` | ${err instanceof Error ? err.message : String(err)}`);
|
|
67
|
+
const persistError = new ccap_error_control_model_1.CCAP_Error({
|
|
68
|
+
message: `CC Account usage state persistence failed — Dashboard quota tracking may`
|
|
69
|
+
+ ` use stale data after server restart (windowType: ${params.windowType}).`,
|
|
70
|
+
errorCode: 'CCAP-CC-ACCOUNT-USAGE-PERSIST-FAIL',
|
|
71
|
+
status: 500,
|
|
72
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
73
|
+
additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
|
|
74
|
+
additionalContext: {
|
|
75
|
+
source: 'cc-account-usage-state-ds | upsertAccountUsageState',
|
|
76
|
+
accountKey: params.accountKey,
|
|
77
|
+
windowType: params.windowType,
|
|
78
|
+
utilization: params.utilization,
|
|
79
|
+
lastObservedStatus: params.lastObservedStatus,
|
|
80
|
+
lastObservedByCcapId: params.lastObservedByCcapId,
|
|
81
|
+
lastObservedBySessionId: params.lastObservedBySessionId,
|
|
82
|
+
hint: 'A per-account usage state DB-be írás bukott. A Dashboard a következő'
|
|
83
|
+
+ ' stream-event-ig stale-t mutat. DB-elérhetőség ellenőrzése (mongo'
|
|
84
|
+
+ ' replica lag); ha repeated → séma- vagy index-probléma.',
|
|
85
|
+
},
|
|
86
|
+
}),
|
|
87
|
+
});
|
|
88
|
+
nts_dynamo_1.DyNTS_GlobalService.globalErrorHandler(persistError);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Account-szintű usage state-ek listázása (0..5 rekord — egy per windowType).
|
|
93
|
+
* A REST `GET /cc-account/:accountKey/usage` endpoint hívja, plus a Dashboard
|
|
94
|
+
* (Slice 5+) bootstrap-jánál.
|
|
95
|
+
*/
|
|
96
|
+
async listByAccountKey(accountKey) {
|
|
97
|
+
try {
|
|
98
|
+
const filter = {
|
|
99
|
+
accountKey: accountKey,
|
|
100
|
+
};
|
|
101
|
+
return await this.findDataList(filter);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountUsageState_DS | listByAccountKey failed (non-blocking)`
|
|
105
|
+
+ ` | accountKey: ${accountKey}`
|
|
106
|
+
+ ` | ${err instanceof Error ? err.message : String(err)}`);
|
|
107
|
+
const fetchError = new ccap_error_control_model_1.CCAP_Error({
|
|
108
|
+
message: `CC Account usage state fetch failed — Dashboard bootstrap will show no`
|
|
109
|
+
+ ` per-account utilization until next stream event.`,
|
|
110
|
+
errorCode: 'CCAP-CC-ACCOUNT-USAGE-FETCH-FAIL',
|
|
111
|
+
status: 500,
|
|
112
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
113
|
+
additionalContent: eh_record_build_util_1.Eh_Record_BuildUtil.buildDyFmAdditionalContentForCcapTable({
|
|
114
|
+
additionalContext: {
|
|
115
|
+
source: 'cc-account-usage-state-ds | listByAccountKey',
|
|
116
|
+
accountKey: accountKey,
|
|
117
|
+
hint: 'Per-account usage state DB-fetch bukott. Dashboard bootstrap-kor'
|
|
118
|
+
+ ' nem látja az utilization-t — csak a friss stream-event érkezésekor'
|
|
119
|
+
+ ' tölti fel. DB-elérhetőség ellenőrzése.',
|
|
120
|
+
},
|
|
121
|
+
}),
|
|
122
|
+
});
|
|
123
|
+
nts_dynamo_1.DyNTS_GlobalService.globalErrorHandler(fetchError);
|
|
124
|
+
return [];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Slice 4 instance-mapping (cycle 855): teljes account-usage-state lista
|
|
129
|
+
* cross-instance aggregate-hez. A REST `GET /cc-account/instance-mapping`
|
|
130
|
+
* endpoint hívja, és az ott történő group-by (lastObservedByCcapId)
|
|
131
|
+
* adja össze a `(ccapId → [account-usage-state-ek])` map-et.
|
|
132
|
+
*
|
|
133
|
+
* Skálázódás: 5 windowType × N account = max ~50-100 rekord tipikus
|
|
134
|
+
* deployment-en. Throw-on → [] (silent fallback).
|
|
135
|
+
*/
|
|
136
|
+
async listAll() {
|
|
137
|
+
try {
|
|
138
|
+
const filter = {};
|
|
139
|
+
return await this.findDataList(filter);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountUsageState_DS | listAll failed (non-blocking)`
|
|
143
|
+
+ ` | ${err instanceof Error ? err.message : String(err)}`);
|
|
144
|
+
return [];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Cross-instance: per-CCAP listázás (Slice 4 instance-mapping endpoint —
|
|
149
|
+
* "melyik instance-ek használnak account-okat"). `lastObservedByCcapId`
|
|
150
|
+
* indexen szűr.
|
|
151
|
+
*/
|
|
152
|
+
async listByLastObservedCcap(ccapId) {
|
|
153
|
+
try {
|
|
154
|
+
const filter = {
|
|
155
|
+
lastObservedByCcapId: ccapId,
|
|
156
|
+
};
|
|
157
|
+
return await this.findDataList(filter);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
fsm_dynamo_1.DyFM_Log.warn(`CC_AccountUsageState_DS | listByLastObservedCcap failed (non-blocking)`
|
|
161
|
+
+ ` | ccapId: ${ccapId}`
|
|
162
|
+
+ ` | ${err instanceof Error ? err.message : String(err)}`);
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.CC_AccountUsageState_DataService = CC_AccountUsageState_DataService;
|
|
168
|
+
//# sourceMappingURL=cc-account-usage-state.data-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-usage-state.data-service.js","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cc-account-usage-state.data-service.spec.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-usage-state.data-service.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const cc_account_usage_state_data_model_1 = require("../../../_models/data-models/cc-account-usage-state.data-model");
|
|
4
|
+
const cc_account_usage_state_data_service_1 = require("./cc-account-usage-state.data-service");
|
|
5
|
+
/**
|
|
6
|
+
* CC_AccountUsageState_DataService spec — REQ-CC-USAGE-DASHBOARD-001 Slice 3 cycle 852.
|
|
7
|
+
* Object.create + spy stub workaround mintán (cycle 187 + cc-rate-limit-state.data-service.spec).
|
|
8
|
+
* Best-effort no-silent-failure: errors logged + globalErrorHandler, NEM thrown.
|
|
9
|
+
*/
|
|
10
|
+
describe('CC_AccountUsageState_DataService', () => {
|
|
11
|
+
function buildStub() {
|
|
12
|
+
const ds = Object.create(cc_account_usage_state_data_service_1.CC_AccountUsageState_DataService.prototype);
|
|
13
|
+
const findDataSpy = jasmine.createSpy('findData')
|
|
14
|
+
.and.returnValue(Promise.resolve(null));
|
|
15
|
+
const findListSpy = jasmine.createSpy('findDataList')
|
|
16
|
+
.and.returnValue(Promise.resolve([]));
|
|
17
|
+
const saveSpy = jasmine.createSpy('saveData')
|
|
18
|
+
.and.returnValue(Promise.resolve(new cc_account_usage_state_data_model_1.CC_AccountUsageState()));
|
|
19
|
+
const updateSpy = jasmine.createSpy('updateData')
|
|
20
|
+
.and.returnValue(Promise.resolve());
|
|
21
|
+
ds.findData = findDataSpy;
|
|
22
|
+
ds.findDataList = findListSpy;
|
|
23
|
+
ds.saveData = saveSpy;
|
|
24
|
+
ds.updateData = updateSpy;
|
|
25
|
+
return { ds: ds, findDataSpy: findDataSpy, findListSpy: findListSpy, saveSpy: saveSpy, updateSpy: updateSpy };
|
|
26
|
+
}
|
|
27
|
+
it('upsertAccountUsageState — új rekord (existing nem található) → saveData', async () => {
|
|
28
|
+
const { ds, saveSpy, updateSpy } = buildStub();
|
|
29
|
+
await ds.upsertAccountUsageState({
|
|
30
|
+
accountKey: 'a1b2c3d4e5f6',
|
|
31
|
+
windowType: 'five_hour',
|
|
32
|
+
utilization: 0.42,
|
|
33
|
+
resetsAtMs: 1714694400000,
|
|
34
|
+
lastObservedStatus: 'info',
|
|
35
|
+
lastObservedByCcapId: 'ccap-1',
|
|
36
|
+
lastObservedBySessionId: 'ccs-x',
|
|
37
|
+
});
|
|
38
|
+
expect(saveSpy).toHaveBeenCalledTimes(1);
|
|
39
|
+
expect(updateSpy).not.toHaveBeenCalled();
|
|
40
|
+
expect(ds.data?.accountKey).toBe('a1b2c3d4e5f6');
|
|
41
|
+
expect(ds.data?.windowType).toBe('five_hour');
|
|
42
|
+
expect(ds.data?.utilization).toBe(0.42);
|
|
43
|
+
expect(ds.data?.lastObservedByCcapId).toBe('ccap-1');
|
|
44
|
+
});
|
|
45
|
+
it('upsertAccountUsageState — létező rekord → updateData $set partial', async () => {
|
|
46
|
+
const existing = Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), {
|
|
47
|
+
_id: 'mongo-id-au',
|
|
48
|
+
accountKey: 'a1b2c3d4e5f6',
|
|
49
|
+
windowType: 'seven_day',
|
|
50
|
+
});
|
|
51
|
+
const { ds, findDataSpy, updateSpy, saveSpy } = buildStub();
|
|
52
|
+
findDataSpy.and.returnValue(Promise.resolve(existing));
|
|
53
|
+
await ds.upsertAccountUsageState({
|
|
54
|
+
accountKey: 'a1b2c3d4e5f6',
|
|
55
|
+
windowType: 'seven_day',
|
|
56
|
+
utilization: 0.93,
|
|
57
|
+
});
|
|
58
|
+
expect(updateSpy).toHaveBeenCalledTimes(1);
|
|
59
|
+
expect(saveSpy).not.toHaveBeenCalled();
|
|
60
|
+
const arg = updateSpy.calls.mostRecent().args[0];
|
|
61
|
+
expect(arg.filterBy._id).toBe('mongo-id-au');
|
|
62
|
+
expect(arg.update.$set.utilization).toBe(0.93);
|
|
63
|
+
});
|
|
64
|
+
it('upsertAccountUsageState — létező rekord _id nélkül → új rekord (saveData)', async () => {
|
|
65
|
+
const existingNoId = Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), {
|
|
66
|
+
accountKey: 'aabb', windowType: 'extra_usage',
|
|
67
|
+
});
|
|
68
|
+
const { ds, findDataSpy, saveSpy, updateSpy } = buildStub();
|
|
69
|
+
findDataSpy.and.returnValue(Promise.resolve(existingNoId));
|
|
70
|
+
await ds.upsertAccountUsageState({
|
|
71
|
+
accountKey: 'aabb',
|
|
72
|
+
windowType: 'extra_usage',
|
|
73
|
+
});
|
|
74
|
+
expect(saveSpy).toHaveBeenCalledTimes(1);
|
|
75
|
+
expect(updateSpy).not.toHaveBeenCalled();
|
|
76
|
+
});
|
|
77
|
+
it('upsertAccountUsageState — findData throw → silent (NEM dob)', async () => {
|
|
78
|
+
const { ds, findDataSpy } = buildStub();
|
|
79
|
+
findDataSpy.and.returnValue(Promise.reject(new Error('db-down')));
|
|
80
|
+
await expectAsync(ds.upsertAccountUsageState({
|
|
81
|
+
accountKey: 'a', windowType: 'five_hour',
|
|
82
|
+
})).toBeResolved();
|
|
83
|
+
});
|
|
84
|
+
it('upsertAccountUsageState — saveData throw → silent (NEM dob)', async () => {
|
|
85
|
+
const ds = Object.create(cc_account_usage_state_data_service_1.CC_AccountUsageState_DataService.prototype);
|
|
86
|
+
ds.findData = () => Promise.resolve(null);
|
|
87
|
+
ds.saveData = () => Promise.reject(new Error('save-fail'));
|
|
88
|
+
await expectAsync(ds.upsertAccountUsageState({
|
|
89
|
+
accountKey: 'a', windowType: 'five_hour',
|
|
90
|
+
})).toBeResolved();
|
|
91
|
+
});
|
|
92
|
+
it('upsertAccountUsageState — observedAt mindig friss Date', async () => {
|
|
93
|
+
const { ds } = buildStub();
|
|
94
|
+
const before = Date.now();
|
|
95
|
+
await ds.upsertAccountUsageState({ accountKey: 'a', windowType: 'five_hour' });
|
|
96
|
+
const after = Date.now();
|
|
97
|
+
expect(ds.data?.observedAt).toBeDefined();
|
|
98
|
+
const observedTime = ds.data.observedAt.getTime();
|
|
99
|
+
expect(observedTime).toBeGreaterThanOrEqual(before);
|
|
100
|
+
expect(observedTime).toBeLessThanOrEqual(after);
|
|
101
|
+
});
|
|
102
|
+
it('listByAccountKey — happy path: findDataList accountKey-vel', async () => {
|
|
103
|
+
const list = [
|
|
104
|
+
Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), { accountKey: 'a1', windowType: 'five_hour' }),
|
|
105
|
+
Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), { accountKey: 'a1', windowType: 'seven_day' }),
|
|
106
|
+
Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), { accountKey: 'a1', windowType: 'extra_usage' }),
|
|
107
|
+
];
|
|
108
|
+
const { ds, findListSpy } = buildStub();
|
|
109
|
+
findListSpy.and.returnValue(Promise.resolve(list));
|
|
110
|
+
const r = await ds.listByAccountKey('a1');
|
|
111
|
+
expect(r.length).toBe(3);
|
|
112
|
+
expect(findListSpy).toHaveBeenCalledWith({ accountKey: 'a1' });
|
|
113
|
+
});
|
|
114
|
+
it('listByAccountKey — findDataList throw → [] (silent)', async () => {
|
|
115
|
+
const ds = Object.create(cc_account_usage_state_data_service_1.CC_AccountUsageState_DataService.prototype);
|
|
116
|
+
ds.findDataList = () => Promise.reject(new Error('db-down'));
|
|
117
|
+
const r = await ds.listByAccountKey('a-x');
|
|
118
|
+
expect(r).toEqual([]);
|
|
119
|
+
});
|
|
120
|
+
it('listByLastObservedCcap — happy path: findDataList lastObservedByCcapId-vel', async () => {
|
|
121
|
+
const list = [
|
|
122
|
+
Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), {
|
|
123
|
+
accountKey: 'a1', windowType: 'five_hour', lastObservedByCcapId: 'cc-1',
|
|
124
|
+
}),
|
|
125
|
+
];
|
|
126
|
+
const { ds, findListSpy } = buildStub();
|
|
127
|
+
findListSpy.and.returnValue(Promise.resolve(list));
|
|
128
|
+
const r = await ds.listByLastObservedCcap('cc-1');
|
|
129
|
+
expect(r.length).toBe(1);
|
|
130
|
+
expect(findListSpy).toHaveBeenCalledWith({ lastObservedByCcapId: 'cc-1' });
|
|
131
|
+
});
|
|
132
|
+
it('listAll — happy path: findDataList üres filter-rel (Slice 4 cycle 855)', async () => {
|
|
133
|
+
const list = [
|
|
134
|
+
Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), { accountKey: 'a1', windowType: 'five_hour' }),
|
|
135
|
+
Object.assign(new cc_account_usage_state_data_model_1.CC_AccountUsageState(), { accountKey: 'a2', windowType: 'seven_day' }),
|
|
136
|
+
];
|
|
137
|
+
const { ds, findListSpy } = buildStub();
|
|
138
|
+
findListSpy.and.returnValue(Promise.resolve(list));
|
|
139
|
+
const r = await ds.listAll();
|
|
140
|
+
expect(r.length).toBe(2);
|
|
141
|
+
expect(findListSpy).toHaveBeenCalledWith({});
|
|
142
|
+
});
|
|
143
|
+
it('listAll — findDataList throw → [] (silent)', async () => {
|
|
144
|
+
const ds = Object.create(cc_account_usage_state_data_service_1.CC_AccountUsageState_DataService.prototype);
|
|
145
|
+
ds.findDataList = () => Promise.reject(new Error('db-down'));
|
|
146
|
+
const r = await ds.listAll();
|
|
147
|
+
expect(r).toEqual([]);
|
|
148
|
+
});
|
|
149
|
+
it('listByLastObservedCcap — findDataList throw → [] (silent)', async () => {
|
|
150
|
+
const ds = Object.create(cc_account_usage_state_data_service_1.CC_AccountUsageState_DataService.prototype);
|
|
151
|
+
ds.findDataList = () => Promise.reject(new Error('db-down'));
|
|
152
|
+
const r = await ds.listByLastObservedCcap('cc-1');
|
|
153
|
+
expect(r).toEqual([]);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=cc-account-usage-state.data-service.spec.js.map
|