@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.
Files changed (238) hide show
  1. package/client-dist/{agent-instances.module-5I2JQOB4.js → agent-instances.module-IIWTPW4O.js} +2 -2
  2. package/client-dist/{ca.module-Y4XFBZF3.js → ca.module-LWRIBCUU.js} +2 -2
  3. package/client-dist/{cc.module-4ZYTENOM.js → cc.module-6YJTSCAC.js} +2 -2
  4. package/client-dist/{chunk-WDFC2URD.js → chunk-3AHNPY2X.js} +2 -2
  5. package/client-dist/{chunk-SE4EX326.js → chunk-3BT3IMYD.js} +2 -2
  6. package/client-dist/{chunk-OADK2TAI.js → chunk-3BUEPMT6.js} +2 -2
  7. package/client-dist/{chunk-FLQ25T7E.js → chunk-3QLEX2NT.js} +2 -2
  8. package/client-dist/{chunk-AWC26AEO.js → chunk-5C6MAP7W.js} +2 -2
  9. package/client-dist/{chunk-SC3EDLDM.js → chunk-5K6VN44P.js} +2 -2
  10. package/client-dist/{chunk-EF4DKB54.js → chunk-5YM2RZWN.js} +2 -2
  11. package/client-dist/{chunk-WEOQNQXM.js → chunk-63EKRGNW.js} +2 -2
  12. package/client-dist/{chunk-4RZKLDHX.js → chunk-63VBJAEW.js} +2 -2
  13. package/client-dist/{chunk-C4SEHRPW.js → chunk-6454AQZI.js} +2 -2
  14. package/client-dist/{chunk-NY5NHH2W.js → chunk-6C5KJNDU.js} +2 -2
  15. package/client-dist/{chunk-O2K7V3O7.js → chunk-6MS4GHDI.js} +2 -2
  16. package/client-dist/{chunk-55E6FEXV.js → chunk-AC26JISD.js} +2 -2
  17. package/client-dist/{chunk-34RL56SQ.js → chunk-AOHIUL3Q.js} +2 -2
  18. package/client-dist/{chunk-GV7XIXZD.js → chunk-AQCUVNQI.js} +2 -2
  19. package/client-dist/{chunk-IWJZVSX7.js → chunk-DQKU2LY3.js} +2 -2
  20. package/client-dist/{chunk-B3QX4FRG.js → chunk-DU23SLBW.js} +2 -2
  21. package/client-dist/{chunk-UGAYSZSJ.js → chunk-DXLFM7Q4.js} +2 -2
  22. package/client-dist/{chunk-PDQTQDO7.js → chunk-EP2L5MMG.js} +2 -2
  23. package/client-dist/{chunk-6FBLAQYQ.js → chunk-F5R42IJ2.js} +2 -2
  24. package/client-dist/{chunk-4Z6CMCAJ.js → chunk-FBGZAXUP.js} +2 -2
  25. package/client-dist/{chunk-PSLCSDUQ.js → chunk-FSSZAXEP.js} +2 -2
  26. package/client-dist/{chunk-Q3S4JCID.js → chunk-FZ43K4CA.js} +2 -2
  27. package/client-dist/{chunk-YRW2CGFQ.js → chunk-GVZABJSS.js} +2 -2
  28. package/client-dist/{chunk-HJCGBMED.js → chunk-H35PNXSP.js} +2 -2
  29. package/client-dist/{chunk-2CY52GUU.js → chunk-H3U7XTKH.js} +2 -2
  30. package/client-dist/{chunk-NSEU33WQ.js → chunk-HBFH3SIK.js} +2 -2
  31. package/client-dist/{chunk-K537RNNV.js → chunk-IW5XTVSP.js} +2 -2
  32. package/client-dist/{chunk-DQWPAUP2.js → chunk-JK4S3AXO.js} +2 -2
  33. package/client-dist/{chunk-FXS3CVOQ.js → chunk-JOJMPCQG.js} +2 -2
  34. package/client-dist/{chunk-KLD3S45X.js → chunk-K4PMLSYM.js} +2 -2
  35. package/client-dist/{chunk-6QEZNRIX.js → chunk-K4S55QIE.js} +2 -2
  36. package/client-dist/{chunk-2OGDJZ65.js → chunk-LEMSEJOC.js} +2 -2
  37. package/client-dist/{chunk-VEB3M4ME.js → chunk-LP2FFZC5.js} +2 -2
  38. package/client-dist/{chunk-KGAODLBE.js → chunk-MG6CV3Y5.js} +2 -2
  39. package/client-dist/{chunk-55CUQXOV.js → chunk-NTLKUZAF.js} +2 -2
  40. package/client-dist/{chunk-AQ4XSEWB.js → chunk-NVSGBXMD.js} +2 -2
  41. package/client-dist/{chunk-AQ4XSEWB.js.map → chunk-NVSGBXMD.js.map} +1 -1
  42. package/client-dist/{chunk-ADIUWP43.js → chunk-NWZRCNKP.js} +2 -2
  43. package/client-dist/{chunk-Y3R3G4XV.js → chunk-O6PFIEPO.js} +2 -2
  44. package/client-dist/{chunk-XSLQL6CA.js → chunk-OUM7QH3O.js} +2 -2
  45. package/client-dist/{chunk-DMIZXRG2.js → chunk-QP5RTV4R.js} +2 -2
  46. package/client-dist/{chunk-5P3IBTUL.js → chunk-R26G2XMB.js} +2 -2
  47. package/client-dist/{chunk-ICNXP6C4.js → chunk-RYHFLYDS.js} +2 -2
  48. package/client-dist/{chunk-GQT4NRX2.js → chunk-S5TWQ53O.js} +2 -2
  49. package/client-dist/{chunk-4Y4UXTDH.js → chunk-S75AE6UP.js} +2 -2
  50. package/client-dist/{chunk-TNJSVQJ7.js → chunk-SLIWPSFP.js} +2 -2
  51. package/client-dist/{chunk-XYFXAO2V.js → chunk-SSMQG7T3.js} +2 -2
  52. package/client-dist/{chunk-YC43QGTZ.js → chunk-THUA7SW2.js} +2 -2
  53. package/client-dist/{chunk-LR5WKEQ6.js → chunk-TMXG7RHS.js} +2 -2
  54. package/client-dist/{chunk-KBUDHY4P.js → chunk-U3UHKPNK.js} +2 -2
  55. package/client-dist/{chunk-YVBHDGUT.js → chunk-USNT5XKJ.js} +2 -2
  56. package/client-dist/{chunk-RWDGJAQV.js → chunk-XC57ZZSB.js} +2 -2
  57. package/client-dist/{chunk-HT3NJ4CA.js → chunk-XTJ63H3O.js} +2 -2
  58. package/client-dist/{chunk-NFUXNV46.js → chunk-YV2UEV2Q.js} +2 -2
  59. package/client-dist/{chunk-FRREH3UN.js → chunk-YVE7TPMW.js} +2 -2
  60. package/client-dist/{chunk-FBHMKOQ3.js → chunk-YVN3KWT7.js} +2 -2
  61. package/client-dist/{consultant.module-JKB3HIL6.js → consultant.module-YUJFXRDH.js} +2 -2
  62. package/client-dist/{crd.module-SYUTDHJR.js → crd.module-D7KTQGQ4.js} +2 -2
  63. package/client-dist/{dashboard.module-YFNP7KDV.js → dashboard.module-XKKHP5S6.js} +2 -2
  64. package/client-dist/{do.module-SMJALYGZ.js → do.module-PAINTIOK.js} +2 -2
  65. package/client-dist/{document-library.module-6JB7CZSC.js → document-library.module-XHTVQ4RU.js} +2 -2
  66. package/client-dist/{embedding-eval.module-KEKW3D6L.js → embedding-eval.module-2XU6ZQ5K.js} +2 -2
  67. package/client-dist/{embedding-registry.module-RKLN2G7V.js → embedding-registry.module-WWIMXCOI.js} +2 -2
  68. package/client-dist/{err.module-YD6YVAGP.js → err.module-W23TJZYC.js} +2 -2
  69. package/client-dist/{feedback.module-3IDR6BNR.js → feedback.module-XD4GWPEY.js} +2 -2
  70. package/client-dist/{host-runtime-mcp.module-TRDRJUCA.js → host-runtime-mcp.module-LLI4OQ2C.js} +2 -2
  71. package/client-dist/index.html +1 -1
  72. package/client-dist/{live-dev-pipeline.module-PYDFJTFN.js → live-dev-pipeline.module-LSDBWWIM.js} +2 -2
  73. package/client-dist/{logs.module-QULHNNUN.js → logs.module-ANWE4KDF.js} +2 -2
  74. package/client-dist/{main-PDNM63U5.js → main-BFY5RGUS.js} +3 -3
  75. package/client-dist/{master-control-remote-poc.module-7WXMK5QZ.js → master-control-remote-poc.module-PVRUD7IM.js} +2 -2
  76. package/client-dist/{mobile-app.module-MUPO62K6.js → mobile-app.module-QOG42QCA.js} +2 -2
  77. package/client-dist/{model-registry.module-RL6O4T32.js → model-registry.module-CKTDRM54.js} +2 -2
  78. package/client-dist/{oc.module-Q4DDC35Q.js → oc.module-BWDU2WQQ.js} +2 -2
  79. package/client-dist/{orc.module-7QOWPXKI.js → orc.module-S365TUGD.js} +2 -2
  80. package/client-dist/{project-management.module-GW76HRCR.js → project-management.module-N26UAZWL.js} +2 -2
  81. package/client-dist/project-source-routed.module-LACAWUTI.js +2 -0
  82. package/client-dist/{scheduler.module-25WKPF5M.js → scheduler.module-UEQBHIBM.js} +2 -2
  83. package/client-dist/{session.module-K52QKMD7.js → session.module-3YT4GI7B.js} +2 -2
  84. package/client-dist/{set.module-3APVCYZI.js → set.module-RLYKVPBJ.js} +2 -2
  85. package/client-dist/{setup.module-TJAHHSXH.js → setup.module-JLBSWNKP.js} +2 -2
  86. package/client-dist/{terminals.module-N4U3XW2G.js → terminals.module-KT5GHGKP.js} +2 -2
  87. package/client-dist/{voice-notes-poc.module-CC7MPTCY.js → voice-notes-poc.module-TGZUYUB6.js} +2 -2
  88. package/client-dist/{wfs.module-E2X3L6BK.js → wfs.module-PWX57GZB.js} +2 -2
  89. package/package.json +1 -1
  90. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts +77 -0
  91. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.d.ts.map +1 -0
  92. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js +182 -0
  93. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.js.map +1 -0
  94. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.d.ts +2 -0
  95. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.d.ts.map +1 -0
  96. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js +167 -0
  97. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/account/cc-account-discovery.util.spec.js.map +1 -0
  98. package/server/build/src/_modules/external-sessions/_modules/claude-code/{_services/core → _collections/utils}/terminal/cc-terminal-runner-control.util.d.ts +12 -1
  99. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-control.util.d.ts.map +1 -0
  100. package/server/build/src/_modules/external-sessions/_modules/claude-code/{_services/core → _collections/utils}/terminal/cc-terminal-runner-control.util.js +24 -1
  101. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-control.util.js.map +1 -0
  102. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-spawn.util.d.ts.map +1 -0
  103. package/server/build/src/_modules/external-sessions/_modules/claude-code/_collections/utils/terminal/cc-terminal-runner-spawn.util.js.map +1 -0
  104. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.d.ts +75 -0
  105. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.d.ts.map +1 -0
  106. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.js +103 -0
  107. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.js.map +1 -0
  108. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.d.ts +2 -0
  109. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.d.ts.map +1 -0
  110. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.js +78 -0
  111. package/server/build/src/_modules/external-sessions/_modules/claude-code/_models/data-models/cc-account.data-model.spec.js.map +1 -0
  112. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts +52 -0
  113. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.d.ts.map +1 -0
  114. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js +137 -0
  115. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.js.map +1 -0
  116. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.d.ts +2 -0
  117. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.d.ts.map +1 -0
  118. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js +192 -0
  119. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account-route.control-service.spec.js.map +1 -0
  120. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.d.ts +19 -0
  121. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.d.ts.map +1 -0
  122. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js +83 -0
  123. package/server/build/src/_modules/external-sessions/_modules/claude-code/_routes/cc-account/cc-account.controller.js.map +1 -0
  124. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts +35 -0
  125. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.d.ts.map +1 -0
  126. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js +94 -0
  127. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.js.map +1 -0
  128. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.d.ts +2 -0
  129. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.d.ts.map +1 -0
  130. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js +126 -0
  131. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account-pool.control-service.spec.js.map +1 -0
  132. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.d.ts +39 -0
  133. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.d.ts.map +1 -0
  134. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.js +161 -0
  135. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.js.map +1 -0
  136. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.d.ts +2 -0
  137. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.d.ts.map +1 -0
  138. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.js +119 -0
  139. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/account/cc-account.data-service.spec.js.map +1 -0
  140. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts +15 -29
  141. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.d.ts.map +1 -1
  142. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js +20 -45
  143. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-adapter-terminal.control-service.js.map +1 -1
  144. package/server/build/src/app.server.d.ts.map +1 -1
  145. package/server/build/src/app.server.js +7 -0
  146. package/server/build/src/app.server.js.map +1 -1
  147. package/client-dist/project-source-routed.module-WH5GPRQR.js +0 -2
  148. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-control.util.d.ts.map +0 -1
  149. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-control.util.js.map +0 -1
  150. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.d.ts.map +0 -1
  151. package/server/build/src/_modules/external-sessions/_modules/claude-code/_services/core/terminal/cc-terminal-runner-spawn.util.js.map +0 -1
  152. /package/client-dist/{agent-instances.module-5I2JQOB4.js.map → agent-instances.module-IIWTPW4O.js.map} +0 -0
  153. /package/client-dist/{ca.module-Y4XFBZF3.js.map → ca.module-LWRIBCUU.js.map} +0 -0
  154. /package/client-dist/{cc.module-4ZYTENOM.js.map → cc.module-6YJTSCAC.js.map} +0 -0
  155. /package/client-dist/{chunk-WDFC2URD.js.map → chunk-3AHNPY2X.js.map} +0 -0
  156. /package/client-dist/{chunk-SE4EX326.js.map → chunk-3BT3IMYD.js.map} +0 -0
  157. /package/client-dist/{chunk-OADK2TAI.js.map → chunk-3BUEPMT6.js.map} +0 -0
  158. /package/client-dist/{chunk-FLQ25T7E.js.map → chunk-3QLEX2NT.js.map} +0 -0
  159. /package/client-dist/{chunk-AWC26AEO.js.map → chunk-5C6MAP7W.js.map} +0 -0
  160. /package/client-dist/{chunk-SC3EDLDM.js.map → chunk-5K6VN44P.js.map} +0 -0
  161. /package/client-dist/{chunk-EF4DKB54.js.map → chunk-5YM2RZWN.js.map} +0 -0
  162. /package/client-dist/{chunk-WEOQNQXM.js.map → chunk-63EKRGNW.js.map} +0 -0
  163. /package/client-dist/{chunk-4RZKLDHX.js.map → chunk-63VBJAEW.js.map} +0 -0
  164. /package/client-dist/{chunk-C4SEHRPW.js.map → chunk-6454AQZI.js.map} +0 -0
  165. /package/client-dist/{chunk-NY5NHH2W.js.map → chunk-6C5KJNDU.js.map} +0 -0
  166. /package/client-dist/{chunk-O2K7V3O7.js.map → chunk-6MS4GHDI.js.map} +0 -0
  167. /package/client-dist/{chunk-55E6FEXV.js.map → chunk-AC26JISD.js.map} +0 -0
  168. /package/client-dist/{chunk-34RL56SQ.js.map → chunk-AOHIUL3Q.js.map} +0 -0
  169. /package/client-dist/{chunk-GV7XIXZD.js.map → chunk-AQCUVNQI.js.map} +0 -0
  170. /package/client-dist/{chunk-IWJZVSX7.js.map → chunk-DQKU2LY3.js.map} +0 -0
  171. /package/client-dist/{chunk-B3QX4FRG.js.map → chunk-DU23SLBW.js.map} +0 -0
  172. /package/client-dist/{chunk-UGAYSZSJ.js.map → chunk-DXLFM7Q4.js.map} +0 -0
  173. /package/client-dist/{chunk-PDQTQDO7.js.map → chunk-EP2L5MMG.js.map} +0 -0
  174. /package/client-dist/{chunk-6FBLAQYQ.js.map → chunk-F5R42IJ2.js.map} +0 -0
  175. /package/client-dist/{chunk-4Z6CMCAJ.js.map → chunk-FBGZAXUP.js.map} +0 -0
  176. /package/client-dist/{chunk-PSLCSDUQ.js.map → chunk-FSSZAXEP.js.map} +0 -0
  177. /package/client-dist/{chunk-Q3S4JCID.js.map → chunk-FZ43K4CA.js.map} +0 -0
  178. /package/client-dist/{chunk-YRW2CGFQ.js.map → chunk-GVZABJSS.js.map} +0 -0
  179. /package/client-dist/{chunk-HJCGBMED.js.map → chunk-H35PNXSP.js.map} +0 -0
  180. /package/client-dist/{chunk-2CY52GUU.js.map → chunk-H3U7XTKH.js.map} +0 -0
  181. /package/client-dist/{chunk-NSEU33WQ.js.map → chunk-HBFH3SIK.js.map} +0 -0
  182. /package/client-dist/{chunk-K537RNNV.js.map → chunk-IW5XTVSP.js.map} +0 -0
  183. /package/client-dist/{chunk-DQWPAUP2.js.map → chunk-JK4S3AXO.js.map} +0 -0
  184. /package/client-dist/{chunk-FXS3CVOQ.js.map → chunk-JOJMPCQG.js.map} +0 -0
  185. /package/client-dist/{chunk-KLD3S45X.js.map → chunk-K4PMLSYM.js.map} +0 -0
  186. /package/client-dist/{chunk-6QEZNRIX.js.map → chunk-K4S55QIE.js.map} +0 -0
  187. /package/client-dist/{chunk-2OGDJZ65.js.map → chunk-LEMSEJOC.js.map} +0 -0
  188. /package/client-dist/{chunk-VEB3M4ME.js.map → chunk-LP2FFZC5.js.map} +0 -0
  189. /package/client-dist/{chunk-KGAODLBE.js.map → chunk-MG6CV3Y5.js.map} +0 -0
  190. /package/client-dist/{chunk-55CUQXOV.js.map → chunk-NTLKUZAF.js.map} +0 -0
  191. /package/client-dist/{chunk-ADIUWP43.js.map → chunk-NWZRCNKP.js.map} +0 -0
  192. /package/client-dist/{chunk-Y3R3G4XV.js.map → chunk-O6PFIEPO.js.map} +0 -0
  193. /package/client-dist/{chunk-XSLQL6CA.js.map → chunk-OUM7QH3O.js.map} +0 -0
  194. /package/client-dist/{chunk-DMIZXRG2.js.map → chunk-QP5RTV4R.js.map} +0 -0
  195. /package/client-dist/{chunk-5P3IBTUL.js.map → chunk-R26G2XMB.js.map} +0 -0
  196. /package/client-dist/{chunk-ICNXP6C4.js.map → chunk-RYHFLYDS.js.map} +0 -0
  197. /package/client-dist/{chunk-GQT4NRX2.js.map → chunk-S5TWQ53O.js.map} +0 -0
  198. /package/client-dist/{chunk-4Y4UXTDH.js.map → chunk-S75AE6UP.js.map} +0 -0
  199. /package/client-dist/{chunk-TNJSVQJ7.js.map → chunk-SLIWPSFP.js.map} +0 -0
  200. /package/client-dist/{chunk-XYFXAO2V.js.map → chunk-SSMQG7T3.js.map} +0 -0
  201. /package/client-dist/{chunk-YC43QGTZ.js.map → chunk-THUA7SW2.js.map} +0 -0
  202. /package/client-dist/{chunk-LR5WKEQ6.js.map → chunk-TMXG7RHS.js.map} +0 -0
  203. /package/client-dist/{chunk-KBUDHY4P.js.map → chunk-U3UHKPNK.js.map} +0 -0
  204. /package/client-dist/{chunk-YVBHDGUT.js.map → chunk-USNT5XKJ.js.map} +0 -0
  205. /package/client-dist/{chunk-RWDGJAQV.js.map → chunk-XC57ZZSB.js.map} +0 -0
  206. /package/client-dist/{chunk-HT3NJ4CA.js.map → chunk-XTJ63H3O.js.map} +0 -0
  207. /package/client-dist/{chunk-NFUXNV46.js.map → chunk-YV2UEV2Q.js.map} +0 -0
  208. /package/client-dist/{chunk-FRREH3UN.js.map → chunk-YVE7TPMW.js.map} +0 -0
  209. /package/client-dist/{chunk-FBHMKOQ3.js.map → chunk-YVN3KWT7.js.map} +0 -0
  210. /package/client-dist/{consultant.module-JKB3HIL6.js.map → consultant.module-YUJFXRDH.js.map} +0 -0
  211. /package/client-dist/{crd.module-SYUTDHJR.js.map → crd.module-D7KTQGQ4.js.map} +0 -0
  212. /package/client-dist/{dashboard.module-YFNP7KDV.js.map → dashboard.module-XKKHP5S6.js.map} +0 -0
  213. /package/client-dist/{do.module-SMJALYGZ.js.map → do.module-PAINTIOK.js.map} +0 -0
  214. /package/client-dist/{document-library.module-6JB7CZSC.js.map → document-library.module-XHTVQ4RU.js.map} +0 -0
  215. /package/client-dist/{embedding-eval.module-KEKW3D6L.js.map → embedding-eval.module-2XU6ZQ5K.js.map} +0 -0
  216. /package/client-dist/{embedding-registry.module-RKLN2G7V.js.map → embedding-registry.module-WWIMXCOI.js.map} +0 -0
  217. /package/client-dist/{err.module-YD6YVAGP.js.map → err.module-W23TJZYC.js.map} +0 -0
  218. /package/client-dist/{feedback.module-3IDR6BNR.js.map → feedback.module-XD4GWPEY.js.map} +0 -0
  219. /package/client-dist/{host-runtime-mcp.module-TRDRJUCA.js.map → host-runtime-mcp.module-LLI4OQ2C.js.map} +0 -0
  220. /package/client-dist/{live-dev-pipeline.module-PYDFJTFN.js.map → live-dev-pipeline.module-LSDBWWIM.js.map} +0 -0
  221. /package/client-dist/{logs.module-QULHNNUN.js.map → logs.module-ANWE4KDF.js.map} +0 -0
  222. /package/client-dist/{main-PDNM63U5.js.map → main-BFY5RGUS.js.map} +0 -0
  223. /package/client-dist/{master-control-remote-poc.module-7WXMK5QZ.js.map → master-control-remote-poc.module-PVRUD7IM.js.map} +0 -0
  224. /package/client-dist/{mobile-app.module-MUPO62K6.js.map → mobile-app.module-QOG42QCA.js.map} +0 -0
  225. /package/client-dist/{model-registry.module-RL6O4T32.js.map → model-registry.module-CKTDRM54.js.map} +0 -0
  226. /package/client-dist/{oc.module-Q4DDC35Q.js.map → oc.module-BWDU2WQQ.js.map} +0 -0
  227. /package/client-dist/{orc.module-7QOWPXKI.js.map → orc.module-S365TUGD.js.map} +0 -0
  228. /package/client-dist/{project-management.module-GW76HRCR.js.map → project-management.module-N26UAZWL.js.map} +0 -0
  229. /package/client-dist/{project-source-routed.module-WH5GPRQR.js.map → project-source-routed.module-LACAWUTI.js.map} +0 -0
  230. /package/client-dist/{scheduler.module-25WKPF5M.js.map → scheduler.module-UEQBHIBM.js.map} +0 -0
  231. /package/client-dist/{session.module-K52QKMD7.js.map → session.module-3YT4GI7B.js.map} +0 -0
  232. /package/client-dist/{set.module-3APVCYZI.js.map → set.module-RLYKVPBJ.js.map} +0 -0
  233. /package/client-dist/{setup.module-TJAHHSXH.js.map → setup.module-JLBSWNKP.js.map} +0 -0
  234. /package/client-dist/{terminals.module-N4U3XW2G.js.map → terminals.module-KT5GHGKP.js.map} +0 -0
  235. /package/client-dist/{voice-notes-poc.module-CC7MPTCY.js.map → voice-notes-poc.module-TGZUYUB6.js.map} +0 -0
  236. /package/client-dist/{wfs.module-E2X3L6BK.js.map → wfs.module-PWX57GZB.js.map} +0 -0
  237. /package/server/build/src/_modules/external-sessions/_modules/claude-code/{_services/core → _collections/utils}/terminal/cc-terminal-runner-spawn.util.d.ts +0 -0
  238. /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":";;AAAA,sDAAmD;AAEnD,2FAA6E;AAE7E,yFAAoF;AAEpF;;;;;;GAMG;AACH,QAAQ,CAAC,gCAAgC,EAAE,GAAS,EAAE;IAEpD,MAAM,SAAS,GAAW,cAAc,CAAC;IACzC,MAAM,WAAW,GAAW,WAAW,CAAC;IAOxC,SAAS,SAAS;QAOhB,MAAM,GAAG,GAAmC,MAAM,CAAC,MAAM,CACvD,iEAA8B,CAAC,SAAS,CACP,CAAC;QAEpC,MAAM,OAAO,GAA8B,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;aACzE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAA8B,CAAC;QACrE,MAAM,UAAU,GAA8B,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC;aACpF,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAA8B,CAAC;QACzG,MAAM,MAAM,GAA0B,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC;aACvE,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAA0B,CAAC;QACnE,MAAM,SAAS,GAA6B,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC;aAC3E,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAA6B,CAAC;QAEtE,MAAM,QAAQ,GAA2C;YACvD,YAAY,EAAE,OAAO;YACrB,oBAAoB,EAAE,UAAU;YAChC,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,SAAS;SACzB,CAAC;QACD,GAA0C,CAAC,cAAc,GAAG,QAAQ,CAAC;QACtE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACtG,CAAC;IAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAElC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAmB,EAAE;YACnE,MAAM,CAAC,GAAe,MAAM,CAAC,MAAM,CAAC,IAAI,kCAAU,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACjF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9C,MAAM,MAAM,GAA4B,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAE1C,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAmB,EAAE;YACnD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;YACxC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAE7F,MAAM,MAAM,GAAsD,MAAM,GAAG,CAAC,0BAA0B,EAAE,CAAC;YACzG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAEhC,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAmB,EAAE;YACtD,MAAM,GAAG,GAAe,MAAM,CAAC,MAAM,CAAC,IAAI,kCAAU,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACnF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAe,MAAM,GAAG,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAmB,EAAE;YACnF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YACpC,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAmB,EAAE;YAC/E,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC5B,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAEnC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAmB,EAAE;YAC9D,MAAM,OAAO,GAAe,MAAM,CAAC,MAAM,CAAC,IAAI,kCAAU,EAAE,EAAE;gBAC1D,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,SAAS;aACvB,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;YACvC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAe,MAAM,GAAG,CAAC,mBAAmB,CAAC;gBACvD,UAAU,EAAE,SAAS;gBACrB,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,YAAY;aACnD,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAmB,EAAE;YAClE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;YACvC,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAC5E,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAmB,EAAE;YAC5D,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;YACvC,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAC/E,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAmB,EAAE;YAChE,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC5B,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACzF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAmB,EAAE;YAC5F,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAW,GAAG,CAAC,MAAM,CAAC,iEAA8B,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;YAChG,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAmB,EAAE;YAC/F,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAW,eAAe,CAAC;YACzC,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAmB,EAAE;YAC5F,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;YAC5B,IAAI,MAAM,GAAsB,IAAI,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,mBAAmB,CAAC;oBAC5B,UAAU,EAAE,SAAS;oBACrB,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;iBAC5B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAiB,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,uBAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAE/B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,iEAA8B,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,MAAM,CAAC,iEAA8B,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;YAC7G,MAAM,CAAC,iEAA8B,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrF,MAAM,CAAC,iEAA8B,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,CAAC,iEAA8B,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtF,MAAM,CAAC,iEAA8B,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,MAAM,CAAC,iEAA8B,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3F,MAAM,CAAC,iEAA8B,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -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
+ // Diszkrim­iná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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cc-account-pool.control-service.spec.d.ts.map
@@ -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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"}