@atlashub/smartstack 3.21.0 → 3.25.0

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 (280) hide show
  1. package/dist/chunks/{AgentSkillsPage-7si3Ng8e.js → AgentSkillsPage-BWQSCYl-.js} +2 -2
  2. package/dist/chunks/{AgentSkillsPage-7si3Ng8e.js.map → AgentSkillsPage-BWQSCYl-.js.map} +1 -1
  3. package/dist/chunks/{AgentSkillsPage-D0cD1QdM.js → AgentSkillsPage-IQcMnBaD.js} +2 -2
  4. package/dist/chunks/{AgentSkillsPage-D0cD1QdM.js.map → AgentSkillsPage-IQcMnBaD.js.map} +1 -1
  5. package/dist/chunks/{AgentWorkloadPage-H_7ze33H.js → AgentWorkloadPage-DqrjkvWL.js} +2 -2
  6. package/dist/chunks/{AgentWorkloadPage-H_7ze33H.js.map → AgentWorkloadPage-DqrjkvWL.js.map} +1 -1
  7. package/dist/chunks/{AgentWorkloadPage-D4d86cdV.js → AgentWorkloadPage-w-HiyFYP.js} +2 -2
  8. package/dist/chunks/{AgentWorkloadPage-D4d86cdV.js.map → AgentWorkloadPage-w-HiyFYP.js.map} +1 -1
  9. package/dist/chunks/{ApiCatalogDetailPage-2ktkRrCb.js → ApiCatalogDetailPage-D3L8Yf4G.js} +3 -3
  10. package/dist/chunks/{ApiCatalogDetailPage-2ktkRrCb.js.map → ApiCatalogDetailPage-D3L8Yf4G.js.map} +1 -1
  11. package/dist/chunks/{ApiCatalogDetailPage-BQ53xuwD.js → ApiCatalogDetailPage-MPT3Kz6H.js} +2 -2
  12. package/dist/chunks/{ApiCatalogDetailPage-BQ53xuwD.js.map → ApiCatalogDetailPage-MPT3Kz6H.js.map} +1 -1
  13. package/dist/chunks/{ApiCatalogPage-BEqTDJz8.js → ApiCatalogPage-D4Hg3uiS.js} +2 -2
  14. package/dist/chunks/{ApiCatalogPage-BEqTDJz8.js.map → ApiCatalogPage-D4Hg3uiS.js.map} +1 -1
  15. package/dist/chunks/{ApiCatalogPage-BBkWSLI8.js → ApiCatalogPage-DRg5Cz0r.js} +2 -2
  16. package/dist/chunks/{ApiCatalogPage-BBkWSLI8.js.map → ApiCatalogPage-DRg5Cz0r.js.map} +1 -1
  17. package/dist/chunks/{ApplicationDetailPage-BYJ2YMPq.js → ApplicationDetailPage-Caizuyn2.js} +2 -2
  18. package/dist/chunks/{ApplicationDetailPage-BYJ2YMPq.js.map → ApplicationDetailPage-Caizuyn2.js.map} +1 -1
  19. package/dist/chunks/{ApplicationDetailPage-D8-bf1as.js → ApplicationDetailPage-CuCW6aMB.js} +4 -4
  20. package/dist/chunks/{ApplicationDetailPage-D8-bf1as.js.map → ApplicationDetailPage-CuCW6aMB.js.map} +1 -1
  21. package/dist/chunks/{ApplicationsDashboardPage-BBlLms2r.js → ApplicationsDashboardPage-B2MW8-Kc.js} +2 -2
  22. package/dist/chunks/{ApplicationsDashboardPage-BBlLms2r.js.map → ApplicationsDashboardPage-B2MW8-Kc.js.map} +1 -1
  23. package/dist/chunks/{ApplicationsDashboardPage-DTWZxJJM.js → ApplicationsDashboardPage-BDIjFIYZ.js} +3 -3
  24. package/dist/chunks/{ApplicationsDashboardPage-DTWZxJJM.js.map → ApplicationsDashboardPage-BDIjFIYZ.js.map} +1 -1
  25. package/dist/chunks/{ApplicationsGridPage-BQaMsK1K.js → ApplicationsGridPage-DV-FihKj.js} +2 -2
  26. package/dist/chunks/{ApplicationsGridPage-BQaMsK1K.js.map → ApplicationsGridPage-DV-FihKj.js.map} +1 -1
  27. package/dist/chunks/{ApplicationsGridPage-DbVcvezt.js → ApplicationsGridPage-DXsTfXPI.js} +2 -2
  28. package/dist/chunks/{ApplicationsGridPage-DbVcvezt.js.map → ApplicationsGridPage-DXsTfXPI.js.map} +1 -1
  29. package/dist/chunks/{ApplicationsListPage-DYKM2Yeo.js → ApplicationsListPage--CGkyBuJ.js} +2 -2
  30. package/dist/chunks/{ApplicationsListPage-DYKM2Yeo.js.map → ApplicationsListPage--CGkyBuJ.js.map} +1 -1
  31. package/dist/chunks/{ApplicationsListPage-C91v2rZt.js → ApplicationsListPage-JUX823bh.js} +2 -2
  32. package/dist/chunks/{ApplicationsListPage-C91v2rZt.js.map → ApplicationsListPage-JUX823bh.js.map} +1 -1
  33. package/dist/chunks/{ApplicationsPage-BCbgotIx.js → ApplicationsPage-6zgFye6w.js} +2 -2
  34. package/dist/chunks/{ApplicationsPage-BCbgotIx.js.map → ApplicationsPage-6zgFye6w.js.map} +1 -1
  35. package/dist/chunks/{ApplicationsPage-CW3-Hjlu.js → ApplicationsPage-CQPuuiO6.js} +4 -4
  36. package/dist/chunks/{ApplicationsPage-CW3-Hjlu.js.map → ApplicationsPage-CQPuuiO6.js.map} +1 -1
  37. package/dist/chunks/{AssignmentRulesPage-D8vfGDBN.js → AssignmentRulesPage-CFffeEbo.js} +2 -2
  38. package/dist/chunks/{AssignmentRulesPage-D8vfGDBN.js.map → AssignmentRulesPage-CFffeEbo.js.map} +1 -1
  39. package/dist/chunks/{AssignmentRulesPage-CxktlEMB.js → AssignmentRulesPage-D78UeUId.js} +2 -2
  40. package/dist/chunks/{AssignmentRulesPage-CxktlEMB.js.map → AssignmentRulesPage-D78UeUId.js.map} +1 -1
  41. package/dist/chunks/{AssignmentsPage-DmfBYQAD.js → AssignmentsPage-Cww2ifZF.js} +2 -2
  42. package/dist/chunks/{AssignmentsPage-DmfBYQAD.js.map → AssignmentsPage-Cww2ifZF.js.map} +1 -1
  43. package/dist/chunks/{AssignmentsPage-sRCCBmRc.js → AssignmentsPage-DE_QS2LO.js} +2 -2
  44. package/dist/chunks/{AssignmentsPage-sRCCBmRc.js.map → AssignmentsPage-DE_QS2LO.js.map} +1 -1
  45. package/dist/chunks/{AuthCallbackPage-C7XiZxKb.js → AuthCallbackPage-CA2nO6DG.js} +2 -2
  46. package/dist/chunks/{AuthCallbackPage-C7XiZxKb.js.map → AuthCallbackPage-CA2nO6DG.js.map} +1 -1
  47. package/dist/chunks/{AuthCallbackPage-BCe_bwJM.js → AuthCallbackPage-CDUAoX-N.js} +2 -2
  48. package/dist/chunks/{AuthCallbackPage-BCe_bwJM.js.map → AuthCallbackPage-CDUAoX-N.js.map} +1 -1
  49. package/dist/chunks/{ConfirmEmailPage-BUfGSqxF.js → ConfirmEmailPage-BqsILAYH.js} +2 -2
  50. package/dist/chunks/{ConfirmEmailPage-BUfGSqxF.js.map → ConfirmEmailPage-BqsILAYH.js.map} +1 -1
  51. package/dist/chunks/{ConfirmEmailPage-Buj4x-rx.js → ConfirmEmailPage-INeHCuMB.js} +2 -2
  52. package/dist/chunks/{ConfirmEmailPage-Buj4x-rx.js.map → ConfirmEmailPage-INeHCuMB.js.map} +1 -1
  53. package/dist/chunks/{CreateSupportTicketPage-CKDX_HQm.js → CreateSupportTicketPage-BWeuV2aU.js} +2 -2
  54. package/dist/chunks/{CreateSupportTicketPage-CKDX_HQm.js.map → CreateSupportTicketPage-BWeuV2aU.js.map} +1 -1
  55. package/dist/chunks/{CreateSupportTicketPage-0LgY-_pu.js → CreateSupportTicketPage-OBwF4v7b.js} +2 -2
  56. package/dist/chunks/{CreateSupportTicketPage-0LgY-_pu.js.map → CreateSupportTicketPage-OBwF4v7b.js.map} +1 -1
  57. package/dist/chunks/{DashboardPage-CUZ80NGV.js → DashboardPage-CKHqWrdS.js} +3 -3
  58. package/dist/chunks/{DashboardPage-CUZ80NGV.js.map → DashboardPage-CKHqWrdS.js.map} +1 -1
  59. package/dist/chunks/{DashboardPage-CaNOAstg.js → DashboardPage-COmc9b__.js} +3 -3
  60. package/dist/chunks/{DashboardPage-CaNOAstg.js.map → DashboardPage-COmc9b__.js.map} +1 -1
  61. package/dist/chunks/{DashboardPage-B48_rQFi.js → DashboardPage-CfKZHiSj.js} +2 -2
  62. package/dist/chunks/{DashboardPage-B48_rQFi.js.map → DashboardPage-CfKZHiSj.js.map} +1 -1
  63. package/dist/chunks/{DashboardPage-CUZV1J9t.js → DashboardPage-CwEZZ3jx.js} +2 -2
  64. package/dist/chunks/{DashboardPage-CUZV1J9t.js.map → DashboardPage-CwEZZ3jx.js.map} +1 -1
  65. package/dist/chunks/{EscalationConfigPage-CdzAbnGy.js → EscalationConfigPage--7lgZ0kJ.js} +2 -2
  66. package/dist/chunks/{EscalationConfigPage-CdzAbnGy.js.map → EscalationConfigPage--7lgZ0kJ.js.map} +1 -1
  67. package/dist/chunks/{EscalationConfigPage-CYGIl_e6.js → EscalationConfigPage-DPyiBcqV.js} +2 -2
  68. package/dist/chunks/{EscalationConfigPage-CYGIl_e6.js.map → EscalationConfigPage-DPyiBcqV.js.map} +1 -1
  69. package/dist/chunks/{ForceChangePasswordPage-lRpkwcX7.js → ForceChangePasswordPage-BE-6umub.js} +2 -2
  70. package/dist/chunks/{ForceChangePasswordPage-lRpkwcX7.js.map → ForceChangePasswordPage-BE-6umub.js.map} +1 -1
  71. package/dist/chunks/{ForceChangePasswordPage-CvmYAV3r.js → ForceChangePasswordPage-CnsYoWmV.js} +2 -2
  72. package/dist/chunks/{ForceChangePasswordPage-CvmYAV3r.js.map → ForceChangePasswordPage-CnsYoWmV.js.map} +1 -1
  73. package/dist/chunks/{ForgotPasswordPage-0u49E4Pw.js → ForgotPasswordPage-CSq4DnFF.js} +2 -2
  74. package/dist/chunks/{ForgotPasswordPage-0u49E4Pw.js.map → ForgotPasswordPage-CSq4DnFF.js.map} +1 -1
  75. package/dist/chunks/{ForgotPasswordPage-CxQUqKOm.js → ForgotPasswordPage-DZLVolAC.js} +2 -2
  76. package/dist/chunks/{ForgotPasswordPage-CxQUqKOm.js.map → ForgotPasswordPage-DZLVolAC.js.map} +1 -1
  77. package/dist/chunks/{GroupDetailPage-DFBvVO1S.js → GroupDetailPage-Bf9Wb_2j.js} +5 -5
  78. package/dist/chunks/{GroupDetailPage-DFBvVO1S.js.map → GroupDetailPage-Bf9Wb_2j.js.map} +1 -1
  79. package/dist/chunks/{GroupDetailPage-B2FkKrGG.js → GroupDetailPage-R-hf3rJ7.js} +2 -2
  80. package/dist/chunks/{GroupDetailPage-B2FkKrGG.js.map → GroupDetailPage-R-hf3rJ7.js.map} +1 -1
  81. package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js → MyAccessRequestsPage-BIisvWM6.js} +2 -2
  82. package/dist/chunks/{MyAccessRequestsPage-C9IX4c0K.js.map → MyAccessRequestsPage-BIisvWM6.js.map} +1 -1
  83. package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js → MyAccessRequestsPage-BLSV7Tbx.js} +2 -2
  84. package/dist/chunks/{MyAccessRequestsPage-D6pVULNM.js.map → MyAccessRequestsPage-BLSV7Tbx.js.map} +1 -1
  85. package/dist/chunks/{MyTenantsPage-BEcYYdGR.js → MyTenantsPage-D-7k9CP1.js} +3 -3
  86. package/dist/chunks/{MyTenantsPage-BEcYYdGR.js.map → MyTenantsPage-D-7k9CP1.js.map} +1 -1
  87. package/dist/chunks/{MyTenantsPage-D9f85zjF.js → MyTenantsPage-DqGW6aDt.js} +2 -2
  88. package/dist/chunks/{MyTenantsPage-D9f85zjF.js.map → MyTenantsPage-DqGW6aDt.js.map} +1 -1
  89. package/dist/chunks/{MyTicketsPage-DJR8h6y1.js → MyTicketsPage--DgDsnZA.js} +2 -2
  90. package/dist/chunks/{MyTicketsPage-DJR8h6y1.js.map → MyTicketsPage--DgDsnZA.js.map} +1 -1
  91. package/dist/chunks/{MyTicketsPage-DiOUExKJ.js → MyTicketsPage-CqJ3Aqob.js} +2 -2
  92. package/dist/chunks/{MyTicketsPage-DiOUExKJ.js.map → MyTicketsPage-CqJ3Aqob.js.map} +1 -1
  93. package/dist/chunks/{NavigationAppsPage-CeHbxfZw.js → NavigationAppsPage-Bebis_RT.js} +2 -2
  94. package/dist/chunks/{NavigationAppsPage-CeHbxfZw.js.map → NavigationAppsPage-Bebis_RT.js.map} +1 -1
  95. package/dist/chunks/{NavigationAppsPage-If7tmCFY.js → NavigationAppsPage-THNPOAjv.js} +2 -2
  96. package/dist/chunks/{NavigationAppsPage-If7tmCFY.js.map → NavigationAppsPage-THNPOAjv.js.map} +1 -1
  97. package/dist/chunks/{NotificationsPage-C29Lln5o.js → NotificationsPage-CAbNW_Cn.js} +2 -2
  98. package/dist/chunks/{NotificationsPage-C29Lln5o.js.map → NotificationsPage-CAbNW_Cn.js.map} +1 -1
  99. package/dist/chunks/{NotificationsPage-BiaLRb0s.js → NotificationsPage-DxwizUhL.js} +2 -2
  100. package/dist/chunks/{NotificationsPage-BiaLRb0s.js.map → NotificationsPage-DxwizUhL.js.map} +1 -1
  101. package/dist/chunks/{OnboardingWizardPage-DQrBKNBq.js → OnboardingWizardPage-C6HlbJ3K.js} +2 -2
  102. package/dist/chunks/{OnboardingWizardPage-DQrBKNBq.js.map → OnboardingWizardPage-C6HlbJ3K.js.map} +1 -1
  103. package/dist/chunks/{OnboardingWizardPage-BQah4cI8.js → OnboardingWizardPage-CyC2zONO.js} +2 -2
  104. package/dist/chunks/{OnboardingWizardPage-BQah4cI8.js.map → OnboardingWizardPage-CyC2zONO.js.map} +1 -1
  105. package/dist/chunks/{PermissionDetailPage-Ckjdjvf9.js → PermissionDetailPage-BDHiNgky.js} +2 -2
  106. package/dist/chunks/{PermissionDetailPage-Ckjdjvf9.js.map → PermissionDetailPage-BDHiNgky.js.map} +1 -1
  107. package/dist/chunks/{PermissionDetailPage-Dh8v7mGj.js → PermissionDetailPage-C5K17ydY.js} +2 -2
  108. package/dist/chunks/{PermissionDetailPage-Dh8v7mGj.js.map → PermissionDetailPage-C5K17ydY.js.map} +1 -1
  109. package/dist/chunks/{PermissionsPage-l0PnY-EE.js → PermissionsPage-COI5LJPo.js} +2 -2
  110. package/dist/chunks/{PermissionsPage-l0PnY-EE.js.map → PermissionsPage-COI5LJPo.js.map} +1 -1
  111. package/dist/chunks/{PermissionsPage-DLy9U3P3.js → PermissionsPage-CkOwH2_d.js} +2 -2
  112. package/dist/chunks/{PermissionsPage-DLy9U3P3.js.map → PermissionsPage-CkOwH2_d.js.map} +1 -1
  113. package/dist/chunks/{PortalDashboardPage-DFBx38-x.js → PortalDashboardPage-CoEC4CmC.js} +2 -2
  114. package/dist/chunks/{PortalDashboardPage-DFBx38-x.js.map → PortalDashboardPage-CoEC4CmC.js.map} +1 -1
  115. package/dist/chunks/{PortalDashboardPage-rQYhrX0q.js → PortalDashboardPage-DrYymEf-.js} +2 -2
  116. package/dist/chunks/{PortalDashboardPage-rQYhrX0q.js.map → PortalDashboardPage-DrYymEf-.js.map} +1 -1
  117. package/dist/chunks/{PreferencesPage-BBu8yZQB.js → PreferencesPage-CJRaU3ba.js} +2 -2
  118. package/dist/chunks/{PreferencesPage-BBu8yZQB.js.map → PreferencesPage-CJRaU3ba.js.map} +1 -1
  119. package/dist/chunks/{PreferencesPage-B81MsNV1.js → PreferencesPage-Cqr9mAab.js} +2 -2
  120. package/dist/chunks/{PreferencesPage-B81MsNV1.js.map → PreferencesPage-Cqr9mAab.js.map} +1 -1
  121. package/dist/chunks/{ProfilePage-DDrl10zj.js → ProfilePage-BZVpg6-l.js} +2 -2
  122. package/dist/chunks/{ProfilePage-DDrl10zj.js.map → ProfilePage-BZVpg6-l.js.map} +1 -1
  123. package/dist/chunks/{ProfilePage-DPoXwdnc.js → ProfilePage-Cu_FITeL.js} +2 -2
  124. package/dist/chunks/{ProfilePage-DPoXwdnc.js.map → ProfilePage-Cu_FITeL.js.map} +1 -1
  125. package/dist/chunks/{ReferencesManagementPage-eFsKjIEK.js → ReferencesManagementPage-DUlVk9Ps.js} +3 -3
  126. package/dist/chunks/{ReferencesManagementPage-eFsKjIEK.js.map → ReferencesManagementPage-DUlVk9Ps.js.map} +1 -1
  127. package/dist/chunks/{ReferencesManagementPage-DhVsuElE.js → ReferencesManagementPage-ZCuYtqd7.js} +2 -2
  128. package/dist/chunks/{ReferencesManagementPage-DhVsuElE.js.map → ReferencesManagementPage-ZCuYtqd7.js.map} +1 -1
  129. package/dist/chunks/{RegisterPage-CiQib3-6.js → RegisterPage-C4xmVwh9.js} +2 -2
  130. package/dist/chunks/{RegisterPage-CiQib3-6.js.map → RegisterPage-C4xmVwh9.js.map} +1 -1
  131. package/dist/chunks/{RegisterPage-bXCcJD88.js → RegisterPage-DGyzoIHT.js} +2 -2
  132. package/dist/chunks/{RegisterPage-bXCcJD88.js.map → RegisterPage-DGyzoIHT.js.map} +1 -1
  133. package/dist/chunks/{ResetPasswordPage-Dqiahhnj.js → ResetPasswordPage-DqDD6VPR.js} +2 -2
  134. package/dist/chunks/{ResetPasswordPage-Dqiahhnj.js.map → ResetPasswordPage-DqDD6VPR.js.map} +1 -1
  135. package/dist/chunks/{ResetPasswordPage-CubPG3yv.js → ResetPasswordPage-Glu-aeqv.js} +2 -2
  136. package/dist/chunks/{ResetPasswordPage-CubPG3yv.js.map → ResetPasswordPage-Glu-aeqv.js.map} +1 -1
  137. package/dist/chunks/{ResolutionModal-Bg7XZmR1.js → ResolutionModal-CxjANAOP.js} +2 -2
  138. package/dist/chunks/{ResolutionModal-Bg7XZmR1.js.map → ResolutionModal-CxjANAOP.js.map} +1 -1
  139. package/dist/chunks/{ResolutionModal-DqRk_T0n.js → ResolutionModal-Duat18qV.js} +2 -2
  140. package/dist/chunks/{ResolutionModal-DqRk_T0n.js.map → ResolutionModal-Duat18qV.js.map} +1 -1
  141. package/dist/chunks/{RoleDetailPage-Blau6_4c.js → RoleDetailPage-BQffUSnt.js} +3 -3
  142. package/dist/chunks/{RoleDetailPage-Blau6_4c.js.map → RoleDetailPage-BQffUSnt.js.map} +1 -1
  143. package/dist/chunks/{RoleDetailPage-CiRVxxIP.js → RoleDetailPage-JTm5lD1_.js} +2 -2
  144. package/dist/chunks/{RoleDetailPage-CiRVxxIP.js.map → RoleDetailPage-JTm5lD1_.js.map} +1 -1
  145. package/dist/chunks/{RolesPage-Pm-RN3lP.js → RolesPage-B9rRzciI.js} +2 -2
  146. package/dist/chunks/{RolesPage-Pm-RN3lP.js.map → RolesPage-B9rRzciI.js.map} +1 -1
  147. package/dist/chunks/{RolesPage-Cb8joqdJ.js → RolesPage-BN8_zMOC.js} +2 -2
  148. package/dist/chunks/{RolesPage-Cb8joqdJ.js.map → RolesPage-BN8_zMOC.js.map} +1 -1
  149. package/dist/chunks/{SlaConfigPage-B86McKM6.js → SlaConfigPage-B7kZNig4.js} +2 -2
  150. package/dist/chunks/{SlaConfigPage-B86McKM6.js.map → SlaConfigPage-B7kZNig4.js.map} +1 -1
  151. package/dist/chunks/{SlaConfigPage-BY7gvYU6.js → SlaConfigPage-okvZfA_K.js} +2 -2
  152. package/dist/chunks/{SlaConfigPage-BY7gvYU6.js.map → SlaConfigPage-okvZfA_K.js.map} +1 -1
  153. package/dist/chunks/{SupportPermissionsPage-BYxcLMSd.js → SupportPermissionsPage-DGAPqJbl.js} +2 -2
  154. package/dist/chunks/{SupportPermissionsPage-BYxcLMSd.js.map → SupportPermissionsPage-DGAPqJbl.js.map} +1 -1
  155. package/dist/chunks/{SupportPermissionsPage-MXqXNJIZ.js → SupportPermissionsPage-Dg_wLOme.js} +2 -2
  156. package/dist/chunks/{SupportPermissionsPage-MXqXNJIZ.js.map → SupportPermissionsPage-Dg_wLOme.js.map} +1 -1
  157. package/dist/chunks/{TemplatesPage-BDguJ401.js → TemplatesPage-DT9fhlAU.js} +2 -2
  158. package/dist/chunks/{TemplatesPage-BDguJ401.js.map → TemplatesPage-DT9fhlAU.js.map} +1 -1
  159. package/dist/chunks/{TemplatesPage-DdnGgioU.js → TemplatesPage-DiEk538p.js} +2 -2
  160. package/dist/chunks/{TemplatesPage-DdnGgioU.js.map → TemplatesPage-DiEk538p.js.map} +1 -1
  161. package/dist/chunks/{TenantCard-ffwWsgFQ.js → TenantCard-BbSYk9_Z.js} +2 -2
  162. package/dist/chunks/{TenantCard-ffwWsgFQ.js.map → TenantCard-BbSYk9_Z.js.map} +1 -1
  163. package/dist/chunks/{TenantCard-CUjb6og9.js → TenantCard-CEkiKxcZ.js} +2 -2
  164. package/dist/chunks/{TenantCard-CUjb6og9.js.map → TenantCard-CEkiKxcZ.js.map} +1 -1
  165. package/dist/chunks/{TenantScopeSelector-Dz7i1I43.js → TenantScopeSelector-BWfYxvEa.js} +2 -2
  166. package/dist/chunks/{TenantScopeSelector-Dz7i1I43.js.map → TenantScopeSelector-BWfYxvEa.js.map} +1 -1
  167. package/dist/chunks/{TenantScopeSelector-Cym_Zyps.js → TenantScopeSelector-D-BKgQPV.js} +2 -2
  168. package/dist/chunks/{TenantScopeSelector-Cym_Zyps.js.map → TenantScopeSelector-D-BKgQPV.js.map} +1 -1
  169. package/dist/chunks/{TicketDetailPage-GOh9GX7E.js → TicketDetailPage-C1mNS9Up.js} +2 -2
  170. package/dist/chunks/{TicketDetailPage-GOh9GX7E.js.map → TicketDetailPage-C1mNS9Up.js.map} +1 -1
  171. package/dist/chunks/{TicketDetailPage-Du8WMyqf.js → TicketDetailPage-ieVDRh42.js} +2 -2
  172. package/dist/chunks/{TicketDetailPage-Du8WMyqf.js.map → TicketDetailPage-ieVDRh42.js.map} +1 -1
  173. package/dist/chunks/{TicketsPage-Bqd6moQy.js → TicketsPage-CnuWsnIW.js} +2 -2
  174. package/dist/chunks/{TicketsPage-Bqd6moQy.js.map → TicketsPage-CnuWsnIW.js.map} +1 -1
  175. package/dist/chunks/{TicketsPage-WdU4Bb7M.js → TicketsPage-jjyY15_D.js} +2 -2
  176. package/dist/chunks/{TicketsPage-WdU4Bb7M.js.map → TicketsPage-jjyY15_D.js.map} +1 -1
  177. package/dist/chunks/{UserCreateTicketPage-Cm1emgwR.js → UserCreateTicketPage-B8Tvf-ag.js} +2 -2
  178. package/dist/chunks/{UserCreateTicketPage-Cm1emgwR.js.map → UserCreateTicketPage-B8Tvf-ag.js.map} +1 -1
  179. package/dist/chunks/{UserCreateTicketPage-BPw-5Y_D.js → UserCreateTicketPage-DnOsDlfO.js} +2 -2
  180. package/dist/chunks/{UserCreateTicketPage-BPw-5Y_D.js.map → UserCreateTicketPage-DnOsDlfO.js.map} +1 -1
  181. package/dist/chunks/{UserDashboardPage-BP5WeXPS.js → UserDashboardPage-BrtkJ-NB.js} +2 -2
  182. package/dist/chunks/{UserDashboardPage-BP5WeXPS.js.map → UserDashboardPage-BrtkJ-NB.js.map} +1 -1
  183. package/dist/chunks/{UserDashboardPage-B53C8fUq.js → UserDashboardPage-KLB5CQP5.js} +2 -2
  184. package/dist/chunks/{UserDashboardPage-B53C8fUq.js.map → UserDashboardPage-KLB5CQP5.js.map} +1 -1
  185. package/dist/chunks/{UserDetailPage-B110bmGX.js → UserDetailPage-U7smBQoF.js} +5 -5
  186. package/dist/chunks/{UserDetailPage-B110bmGX.js.map → UserDetailPage-U7smBQoF.js.map} +1 -1
  187. package/dist/chunks/{UserDetailPage-CV2VCE46.js → UserDetailPage-_J6lcKAU.js} +2 -2
  188. package/dist/chunks/{UserDetailPage-CV2VCE46.js.map → UserDetailPage-_J6lcKAU.js.map} +1 -1
  189. package/dist/chunks/{UserTicketDetailPage-CCNJON1V.js → UserTicketDetailPage-CWoYQgH-.js} +2 -2
  190. package/dist/chunks/{UserTicketDetailPage-CCNJON1V.js.map → UserTicketDetailPage-CWoYQgH-.js.map} +1 -1
  191. package/dist/chunks/{UserTicketDetailPage-V0mLXrox.js → UserTicketDetailPage-DkufSlvZ.js} +2 -2
  192. package/dist/chunks/{UserTicketDetailPage-V0mLXrox.js.map → UserTicketDetailPage-DkufSlvZ.js.map} +1 -1
  193. package/dist/chunks/{UsersGroupsPage-CmdaU-z-.js → UsersGroupsPage-C38s2-Rq.js} +3 -3
  194. package/dist/chunks/{UsersGroupsPage-CmdaU-z-.js.map → UsersGroupsPage-C38s2-Rq.js.map} +1 -1
  195. package/dist/chunks/{UsersGroupsPage-BgfAMgEP.js → UsersGroupsPage-Dq3rAteo.js} +2 -2
  196. package/dist/chunks/{UsersGroupsPage-BgfAMgEP.js.map → UsersGroupsPage-Dq3rAteo.js.map} +1 -1
  197. package/dist/chunks/{UsersPage-Bg7033pp.js → UsersPage-B5C5KEUR.js} +2 -2
  198. package/dist/chunks/{UsersPage-Bg7033pp.js.map → UsersPage-B5C5KEUR.js.map} +1 -1
  199. package/dist/chunks/{UsersPage-TYAfwPY1.js → UsersPage-CXC9Hvq6.js} +2 -2
  200. package/dist/chunks/{UsersPage-TYAfwPY1.js.map → UsersPage-CXC9Hvq6.js.map} +1 -1
  201. package/dist/chunks/{accessRequestsApi-DZeDvzwv.js → accessRequestsApi-B-4TJ5_U.js} +2 -2
  202. package/dist/chunks/{accessRequestsApi-DZeDvzwv.js.map → accessRequestsApi-B-4TJ5_U.js.map} +1 -1
  203. package/dist/chunks/{accessRequestsApi-ZXFPCid2.js → accessRequestsApi-DZSfThpd.js} +2 -2
  204. package/dist/chunks/{accessRequestsApi-ZXFPCid2.js.map → accessRequestsApi-DZSfThpd.js.map} +1 -1
  205. package/dist/chunks/{aiApi-CsH8DXgs.js → aiApi-B20Teu2v.js} +2 -2
  206. package/dist/chunks/{aiApi-CsH8DXgs.js.map → aiApi-B20Teu2v.js.map} +1 -1
  207. package/dist/chunks/{aiApi-CVPzFTXa.js → aiApi-DMGz-RPM.js} +2 -2
  208. package/dist/chunks/{aiApi-CVPzFTXa.js.map → aiApi-DMGz-RPM.js.map} +1 -1
  209. package/dist/chunks/{applicationAnalyticsApi-B8AhFYLr.js → applicationAnalyticsApi-Bwa75Fzd.js} +2 -2
  210. package/dist/chunks/{applicationAnalyticsApi-B8AhFYLr.js.map → applicationAnalyticsApi-Bwa75Fzd.js.map} +1 -1
  211. package/dist/chunks/{applicationAnalyticsApi-Ce_1qOk-.js → applicationAnalyticsApi-CLBqRPfN.js} +2 -2
  212. package/dist/chunks/{applicationAnalyticsApi-Ce_1qOk-.js.map → applicationAnalyticsApi-CLBqRPfN.js.map} +1 -1
  213. package/dist/chunks/{groupsApi-BgCk2fsp.js → groupsApi-QzXI-5xu.js} +2 -2
  214. package/dist/chunks/{groupsApi-BgCk2fsp.js.map → groupsApi-QzXI-5xu.js.map} +1 -1
  215. package/dist/chunks/{groupsApi-BIbG665N.js → groupsApi-hB9kSWEd.js} +2 -2
  216. package/dist/chunks/{groupsApi-BIbG665N.js.map → groupsApi-hB9kSWEd.js.map} +1 -1
  217. package/dist/chunks/{index-Cb3LotuT.js → index--NGcBYUu.js} +3 -3
  218. package/dist/chunks/{index-Cb3LotuT.js.map → index--NGcBYUu.js.map} +1 -1
  219. package/dist/chunks/{index-C33zcyF4.js → index--aPwOFjF.js} +2 -2
  220. package/dist/chunks/{index-C33zcyF4.js.map → index--aPwOFjF.js.map} +1 -1
  221. package/dist/chunks/{index-sMr9qND_.js → index-0VrOtwP0.js} +2 -2
  222. package/dist/chunks/{index-sMr9qND_.js.map → index-0VrOtwP0.js.map} +1 -1
  223. package/dist/chunks/{index-DDKetfKq.js → index-37U271aw.js} +2 -2
  224. package/dist/chunks/{index-DDKetfKq.js.map → index-37U271aw.js.map} +1 -1
  225. package/dist/chunks/{index-B9fS7ir6.js → index-B7qZTuQ-.js} +2 -2
  226. package/dist/chunks/{index-B9fS7ir6.js.map → index-B7qZTuQ-.js.map} +1 -1
  227. package/dist/chunks/{index-CdjBY7L8.js → index-Bedzmqr-.js} +2 -2
  228. package/dist/chunks/{index-CdjBY7L8.js.map → index-Bedzmqr-.js.map} +1 -1
  229. package/dist/chunks/{index-CHG_O1fS.js → index-Betxo5g5.js} +2 -2
  230. package/dist/chunks/{index-CHG_O1fS.js.map → index-Betxo5g5.js.map} +1 -1
  231. package/dist/chunks/{index-jiGu-H8x.js → index-BmaJz475.js} +2 -2
  232. package/dist/chunks/{index-jiGu-H8x.js.map → index-BmaJz475.js.map} +1 -1
  233. package/dist/chunks/{index-C53JoVNk.js → index-Buhqag3v.js} +2 -2
  234. package/dist/chunks/{index-C53JoVNk.js.map → index-Buhqag3v.js.map} +1 -1
  235. package/dist/chunks/{index-DO0Rw7hX.js → index-C3VxlfKq.js} +2 -2
  236. package/dist/chunks/{index-DO0Rw7hX.js.map → index-C3VxlfKq.js.map} +1 -1
  237. package/dist/chunks/{index-CSQ60fpG.js → index-CgpRo8Oe.js} +2 -2
  238. package/dist/chunks/{index-CSQ60fpG.js.map → index-CgpRo8Oe.js.map} +1 -1
  239. package/dist/chunks/{index-B-e-ELsf.js → index-DOY0w8Iu.js} +8 -8
  240. package/dist/chunks/{index-B-e-ELsf.js.map → index-DOY0w8Iu.js.map} +1 -1
  241. package/dist/chunks/{index-D2REDIRX.js → index-DwuvIOrQ.js} +2 -2
  242. package/dist/chunks/{index-D2REDIRX.js.map → index-DwuvIOrQ.js.map} +1 -1
  243. package/dist/chunks/{index-DCcl7Qof.js → index-DzedSLdI.js} +2 -2
  244. package/dist/chunks/{index-DCcl7Qof.js.map → index-DzedSLdI.js.map} +1 -1
  245. package/dist/chunks/{index-2wUhd9Lu.js → index-IgLVXPg8.js} +10 -10
  246. package/dist/chunks/index-IgLVXPg8.js.map +1 -0
  247. package/dist/chunks/{index-CwSaRXXg.js → index-lpIzhufD.js} +1916 -1900
  248. package/dist/chunks/index-lpIzhufD.js.map +1 -0
  249. package/dist/chunks/{index-Cuwn2q-f.js → index-mLUKwbGl.js} +4 -4
  250. package/dist/chunks/{index-Cuwn2q-f.js.map → index-mLUKwbGl.js.map} +1 -1
  251. package/dist/chunks/{index-B0mk2tNY.js → index-tO6MMIFB.js} +2 -2
  252. package/dist/chunks/{index-B0mk2tNY.js.map → index-tO6MMIFB.js.map} +1 -1
  253. package/dist/chunks/{tenantIconMap-BpNANQ5s.js → tenantIconMap-BQD9byc8.js} +2 -2
  254. package/dist/chunks/{tenantIconMap-BpNANQ5s.js.map → tenantIconMap-BQD9byc8.js.map} +1 -1
  255. package/dist/chunks/{tenantIconMap-DtdUgvJO.js → tenantIconMap-CTMuSt18.js} +2 -2
  256. package/dist/chunks/{tenantIconMap-DtdUgvJO.js.map → tenantIconMap-CTMuSt18.js.map} +1 -1
  257. package/dist/chunks/{ticketingApi-Bu4rKwLl.js → ticketingApi-BNIdox5t.js} +2 -2
  258. package/dist/chunks/{ticketingApi-Bu4rKwLl.js.map → ticketingApi-BNIdox5t.js.map} +1 -1
  259. package/dist/chunks/{ticketingApi-r4Avm9iS.js → ticketingApi-J0vC_t7r.js} +2 -2
  260. package/dist/chunks/{ticketingApi-r4Avm9iS.js.map → ticketingApi-J0vC_t7r.js.map} +1 -1
  261. package/dist/chunks/{useAccessRequests-B9bF4swg.js → useAccessRequests-DCNNLnxk.js} +3 -3
  262. package/dist/chunks/{useAccessRequests-B9bF4swg.js.map → useAccessRequests-DCNNLnxk.js.map} +1 -1
  263. package/dist/chunks/{useAccessRequests-JyPUX3Om.js → useAccessRequests-DT7X4FAK.js} +2 -2
  264. package/dist/chunks/{useAccessRequests-JyPUX3Om.js.map → useAccessRequests-DT7X4FAK.js.map} +1 -1
  265. package/dist/chunks/{useUserAccessRequests-DjPQenC2.js → useUserAccessRequests-BYbmG4c7.js} +2 -2
  266. package/dist/chunks/{useUserAccessRequests-DjPQenC2.js.map → useUserAccessRequests-BYbmG4c7.js.map} +1 -1
  267. package/dist/chunks/{useUserAccessRequests-BB6FHW14.js → useUserAccessRequests-CylKxRN6.js} +2 -2
  268. package/dist/chunks/{useUserAccessRequests-BB6FHW14.js.map → useUserAccessRequests-CylKxRN6.js.map} +1 -1
  269. package/dist/hooks/useCollapsibleState.d.ts +5 -2
  270. package/dist/hooks/useCollapsibleState.d.ts.map +1 -1
  271. package/dist/i18n/config.d.ts +1 -0
  272. package/dist/i18n/config.d.ts.map +1 -1
  273. package/dist/main.d.ts +0 -1
  274. package/dist/main.d.ts.map +1 -1
  275. package/dist/smartstack.cjs +1 -1
  276. package/dist/smartstack.js +1 -1
  277. package/dist/utils/permissions.d.ts.map +1 -1
  278. package/package.json +1 -1
  279. package/dist/chunks/index-2wUhd9Lu.js.map +0 -1
  280. package/dist/chunks/index-CwSaRXXg.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"aiApi-CsH8DXgs.js","sources":["../../src/services/api/aiApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\n\r\n// Types for AI Dashboard\r\nexport interface DashboardOverviewDto {\r\n totalTokens: number;\r\n totalCost: number;\r\n totalRequests: number;\r\n successRate: number;\r\n avgLatencyMs: number;\r\n activeProviders: number;\r\n totalProviders: number;\r\n providerBreakdown: ProviderBreakdownDto[];\r\n}\r\n\r\nexport interface ProviderBreakdownDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n costPercentage: number;\r\n}\r\n\r\nexport interface ProviderUsageDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n}\r\n\r\nexport interface ModelUsageDto {\r\n modelName: string;\r\n providerId: string;\r\n providerCode: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface DailyCostDto {\r\n date: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface UsageEventDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n modelName: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n featureName: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Settings\r\nexport interface ProviderListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n adminApiKeyUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n keyCount: number;\r\n modelCount: number;\r\n}\r\n\r\nexport interface ModelListDto {\r\n id: string;\r\n providerId: string | null;\r\n providerCode: string | null;\r\n providerName: string | null;\r\n code: string;\r\n shortCode: string;\r\n name: string;\r\n description: string | null;\r\n category: string;\r\n contextWindow: number;\r\n maxOutputTokens: number | null;\r\n inputCostPerMillionTokens: number;\r\n outputCostPerMillionTokens: number;\r\n supportsVision: boolean;\r\n supportsImageGeneration: boolean;\r\n supportsAudioInput: boolean;\r\n supportsAudioOutput: boolean;\r\n supportsFunctionCalling: boolean;\r\n supportsStreaming: boolean;\r\n supportsCodeExecution: boolean;\r\n isActive: boolean;\r\n isDeprecated: boolean;\r\n deprecationDate: string | null;\r\n modelFamily?: string | null;\r\n}\r\n\r\n// Types for Provider Instances\r\nexport interface ProviderInstanceListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n providerLogoUrl: string | null;\r\n department: string | null;\r\n costCenter: string | null;\r\n defaultModel: string | null;\r\n budgetLimit: number | null;\r\n currentPeriodUsage: number;\r\n budgetPeriodType: string | null;\r\n budgetPeriodStart: string | null;\r\n nextResetDate: string | null;\r\n isOverBudget: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n tenantCount: number;\r\n isAllTenants: boolean;\r\n skillCount: number;\r\n}\r\n\r\nexport interface ProviderInstanceDetailDto extends ProviderInstanceListDto {\r\n providerDocumentationUrl: string | null;\r\n systemContext: string | null;\r\n maxTokensPerRequest: number | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n tenants: InstanceTenantDto[];\r\n skills: InstanceSkillDto[];\r\n}\r\n\r\nexport interface InstanceTenantDto {\r\n id: string;\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string | null;\r\n}\r\n\r\nexport interface InstanceSkillDto {\r\n id: string;\r\n skillId: string;\r\n skillCode: string;\r\n skillName: string;\r\n skillDescription: string | null;\r\n skillVersion: string;\r\n skillStatus: string;\r\n}\r\n\r\nexport interface GenerateCodeResponse {\r\n code: string;\r\n providerCode: string;\r\n sequence: number;\r\n}\r\n\r\nexport interface CreateProviderInstanceRequest {\r\n providerId: string;\r\n code: string;\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n apiKey?: string;\r\n adminKey?: string;\r\n}\r\n\r\nexport interface UpdateProviderInstanceRequest {\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n}\r\n\r\nexport interface SetKeyRequest {\r\n value: string;\r\n}\r\n\r\nexport interface AddInstanceTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface SetAllTenantsRequest {\r\n isAllTenants: boolean;\r\n}\r\n\r\nexport interface AddInstanceSkillRequest {\r\n skillId: string;\r\n}\r\n\r\nexport interface ProviderDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n apiBaseUrl: string | null;\r\n adminApiBaseUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n keys: ApiKeyListDto[];\r\n models: ModelListDto[];\r\n}\r\n\r\nexport interface ApiKeyListDto {\r\n id: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n maskedValue: string;\r\n}\r\n\r\nexport interface ApiKeyDetailDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n lastUsedByUserId: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n maskedValue: string;\r\n isExpired: boolean;\r\n}\r\n\r\nexport interface CreateApiKeyRequest {\r\n keyType: string;\r\n value: string;\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface UpdateApiKeyRequest {\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface RotateKeyRequest {\r\n newValue: string;\r\n}\r\n\r\nexport interface RevealKeyResponse {\r\n value: string;\r\n}\r\n\r\n// Types for AI Skills\r\nexport interface AiSkillListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n tags: string | null;\r\n blockCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n parentSkillId: string | null;\r\n tags: string | null;\r\n blocks: AiSkillBlockDto[];\r\n variables: string[];\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillBlockDto {\r\n id: string;\r\n blockDefinitionId: string | null;\r\n blockDefinitionCode: string | null;\r\n blockType: string;\r\n label: string | null;\r\n content: string;\r\n displayOrder: number;\r\n isRequired: boolean;\r\n isEnabled: boolean;\r\n condition: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n defaultTitle: string | null;\r\n defaultContent: string | null;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface CreateAiSkillRequest {\r\n code: string;\r\n name: string;\r\n description?: string;\r\n version?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n blocks?: CreateAiSkillBlockRequest[];\r\n}\r\n\r\nexport interface UpdateAiSkillRequest {\r\n name?: string;\r\n description?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n}\r\n\r\nexport interface CreateAiSkillBlockRequest {\r\n blockDefinitionId?: string;\r\n blockType: string;\r\n label: string;\r\n content: string;\r\n displayOrder: number;\r\n isRequired?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface UpdateAiSkillBlockRequest {\r\n label?: string;\r\n content?: string;\r\n isRequired?: boolean;\r\n isEnabled?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface CreateBlockDefinitionRequest {\r\n name: string;\r\n blockType: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface UpdateBlockDefinitionRequest {\r\n name?: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface ReorderBlocksRequest {\r\n blockIds: string[];\r\n}\r\n\r\nexport interface AiSkillPreviewRequest {\r\n variables: Record<string, string>;\r\n}\r\n\r\n// Types for Output Schemas\r\nexport type OutputSchemaCategory =\r\n | 'Support'\r\n | 'Content'\r\n | 'Analysis'\r\n | 'Translation'\r\n | 'CodeGeneration'\r\n | 'DataExtraction'\r\n | 'Custom';\r\n\r\nexport interface SchemaListDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n}\r\n\r\nexport interface SchemaDetailDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n jsonSchema: string;\r\n uiSchema: string | null;\r\n dotNetType: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CreateSchemaRequest {\r\n code: string;\r\n name: string;\r\n jsonSchema: string;\r\n category?: OutputSchemaCategory;\r\n description?: string;\r\n uiSchema?: string;\r\n dotNetType?: string;\r\n}\r\n\r\nexport interface UpdateSchemaRequest {\r\n name: string;\r\n description?: string;\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n category: OutputSchemaCategory;\r\n}\r\n\r\nexport interface IncrementVersionRequest {\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n}\r\n\r\nexport interface PromptPreviewResponse {\r\n fullPrompt: string;\r\n}\r\n\r\n// Types for Prompt Execution\r\nexport interface ExecutePromptRequest {\r\n variables?: Record<string, string>;\r\n providerId?: string;\r\n modelId?: string;\r\n}\r\n\r\nexport interface AiSkillExecutionResponse {\r\n skillId: string;\r\n skillName: string;\r\n response: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n latencyMs: number;\r\n providerId: string;\r\n modelId: string;\r\n modelName: string;\r\n success: boolean;\r\n error?: string;\r\n}\r\n\r\n// Types for AI Usage (by instance/profile)\r\nexport interface InstanceUsageDto {\r\n instanceId: string;\r\n instanceCode: string;\r\n instanceName: string;\r\n department: string | null;\r\n costCenter: string | null;\r\n providerName: string;\r\n totalTokens: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n lastUsedAt: string | null;\r\n}\r\n\r\nexport interface InstanceEventDto {\r\n id: string;\r\n providerName: string;\r\n modelName: string;\r\n featureName: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Agents\r\nexport interface AiAgentListDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n stepCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiAgentStepDto {\r\n id: string;\r\n agentId: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n isActive: boolean;\r\n inputMappingJson: string | null;\r\n outputStateKey: string | null;\r\n continueOnFailure: boolean;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n skill: {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n } | null;\r\n}\r\n\r\nexport interface AiAgentDetailDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n moduleId: string;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n steps: AiAgentStepDto[];\r\n}\r\n\r\nexport interface AiAgentExecutionListDto {\r\n id: string;\r\n agentCode: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\nexport interface AiAgentStepExecutionDto {\r\n id: string;\r\n executionId: string;\r\n stepId: string;\r\n skillCode: string;\r\n stepOrder: number;\r\n stepName: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n inputVariablesJson: string | null;\r\n outputJson: string | null;\r\n errorMessage: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n cost: number;\r\n executionTimeMs: number;\r\n providerCode: string | null;\r\n modelCode: string | null;\r\n}\r\n\r\nexport interface AiAgentExecutionDetailDto extends AiAgentExecutionListDto {\r\n agentId: string;\r\n inputStateJson: string | null;\r\n finalStateJson: string | null;\r\n userId: string | null;\r\n stepExecutions: AiAgentStepExecutionDto[];\r\n}\r\n\r\nexport interface CreateAgentRequest {\r\n agentCode: string;\r\n name: string;\r\n moduleId: string;\r\n description?: string;\r\n maxParallelism?: number;\r\n timeoutSeconds?: number;\r\n}\r\n\r\nexport interface UpdateAgentRequest {\r\n name: string;\r\n description?: string;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n steps?: UpdateAgentStepRequest[];\r\n}\r\n\r\nexport interface UpdateAgentStepRequest {\r\n id?: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n inputMappingJson?: string;\r\n outputStateKey?: string;\r\n continueOnFailure?: boolean;\r\n}\r\n\r\nexport interface AgentExecutionResult {\r\n success: boolean;\r\n executionId: string;\r\n status: number;\r\n finalState: Record<string, string>;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\n// API Service\r\nexport const aiApi = {\r\n // Dashboard\r\n dashboard: {\r\n getOverview: (days: number = 30) =>\r\n api.get<DashboardOverviewDto>('/api/administration/ai/dashboard/overview', { params: { days } }),\r\n\r\n getByProvider: (startDate?: string, endDate?: string) =>\r\n api.get<ProviderUsageDto[]>('/api/administration/ai/dashboard/by-provider', { params: { startDate, endDate } }),\r\n\r\n getByModel: (startDate?: string, endDate?: string, providerId?: string) =>\r\n api.get<ModelUsageDto[]>('/api/administration/ai/dashboard/by-model', { params: { startDate, endDate, providerId } }),\r\n\r\n getDailyCosts: (days: number = 30, providerId?: string) =>\r\n api.get<DailyCostDto[]>('/api/administration/ai/dashboard/daily-costs', { params: { days, providerId } }),\r\n\r\n getRecentEvents: (count: number = 50, providerId?: string) =>\r\n api.get<UsageEventDto[]>('/api/administration/ai/dashboard/recent-events', { params: { count, providerId } }),\r\n },\r\n\r\n // Settings (Providers & Keys)\r\n settings: {\r\n getProviders: () =>\r\n api.get<ProviderListDto[]>('/api/administration/ai/settings/providers'),\r\n\r\n getProvider: (providerId: string) =>\r\n api.get<ProviderDetailDto>(`/api/administration/ai/settings/providers/${providerId}`),\r\n\r\n getModels: (category?: string, providerId?: string) =>\r\n api.get<ModelListDto[]>('/api/administration/ai/settings/models', { params: { category, providerId } }),\r\n\r\n getKey: (keyId: string) =>\r\n api.get<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`),\r\n\r\n createKey: (providerId: string, data: CreateApiKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/providers/${providerId}/keys`, data),\r\n\r\n updateKey: (keyId: string, data: UpdateApiKeyRequest) =>\r\n api.put<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`, data),\r\n\r\n rotateKey: (keyId: string, data: RotateKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}/rotate`, data),\r\n\r\n revealKey: (keyId: string) =>\r\n api.post<RevealKeyResponse>(`/api/administration/ai/settings/keys/${keyId}/reveal`),\r\n\r\n activateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/activate`),\r\n\r\n deactivateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/deactivate`),\r\n\r\n deleteKey: (keyId: string) =>\r\n api.delete(`/api/administration/ai/settings/keys/${keyId}`),\r\n },\r\n\r\n // Provider Instances\r\n instances: {\r\n getAll: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances'),\r\n\r\n getMyInstances: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances/my-instances'),\r\n\r\n getById: (instanceId: string) =>\r\n api.get<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n generateCode: (providerId: string) =>\r\n api.get<GenerateCodeResponse>(`/api/administration/ai/instances/generate-code/${providerId}`),\r\n\r\n create: (data: CreateProviderInstanceRequest) =>\r\n api.post<ProviderInstanceDetailDto>('/api/administration/ai/instances', data),\r\n\r\n update: (instanceId: string, data: UpdateProviderInstanceRequest) =>\r\n api.put<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`, data),\r\n\r\n delete: (instanceId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n setApiKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/api-key`, data),\r\n\r\n setAdminKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/admin-key`, data),\r\n\r\n toggleActive: (instanceId: string) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/toggle-active`),\r\n\r\n addTenant: (instanceId: string, data: AddInstanceTenantRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/tenants`, data),\r\n\r\n removeTenant: (instanceId: string, tenantId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/tenants/${tenantId}`),\r\n\r\n setAllTenants: (instanceId: string, data: SetAllTenantsRequest) =>\r\n api.put(`/api/administration/ai/instances/${instanceId}/all-tenants`, data),\r\n\r\n addSkill: (instanceId: string, data: AddInstanceSkillRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/skills`, data),\r\n\r\n removeSkill: (instanceId: string, skillId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/skills/${skillId}`),\r\n },\r\n\r\n // Skills\r\n skills: {\r\n getAll: (params?: { search?: string; category?: string; status?: string }) =>\r\n api.get<AiSkillListDto[]>('/api/administration/ai/skills', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`),\r\n\r\n getByCode: (code: string, version?: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/by-code/${code}`, { params: { version } }),\r\n\r\n create: (data: CreateAiSkillRequest) =>\r\n api.post<AiSkillDetailDto>('/api/administration/ai/skills', data),\r\n\r\n update: (id: string, data: UpdateAiSkillRequest) =>\r\n api.put<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/${id}`),\r\n\r\n activate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/activate`),\r\n\r\n deprecate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/deprecate`),\r\n\r\n clone: (id: string) =>\r\n api.post<AiSkillDetailDto>(`/api/administration/ai/skills/${id}/clone`),\r\n\r\n preview: (id: string, data: AiSkillPreviewRequest) =>\r\n api.post<PromptPreviewResponse>(`/api/administration/ai/skills/${id}/preview`, data),\r\n\r\n execute: (id: string, data: ExecutePromptRequest) =>\r\n api.post<AiSkillExecutionResponse>(`/api/administration/ai/skills/${id}/execute`, data),\r\n\r\n // Blocks\r\n addBlock: (skillId: string, data: CreateAiSkillBlockRequest) =>\r\n api.post<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks`, data),\r\n\r\n updateBlock: (skillId: string, blockId: string, data: UpdateAiSkillBlockRequest) =>\r\n api.put<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`, data),\r\n\r\n deleteBlock: (skillId: string, blockId: string) =>\r\n api.delete(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`),\r\n\r\n reorderBlocks: (skillId: string, data: ReorderBlocksRequest) =>\r\n api.put(`/api/administration/ai/skills/${skillId}/blocks/reorder`, data),\r\n },\r\n\r\n // Block Definitions\r\n blockDefinitions: {\r\n getAll: (params?: { search?: string; blockType?: string }) =>\r\n api.get<AiSkillBlockDefinitionListDto[]>('/api/administration/ai/skills/block-definitions', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`),\r\n\r\n create: (data: CreateBlockDefinitionRequest) =>\r\n api.post<AiSkillBlockDefinitionDetailDto>('/api/administration/ai/skills/block-definitions', data),\r\n\r\n update: (id: string, data: UpdateBlockDefinitionRequest) =>\r\n api.put<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/block-definitions/${id}`),\r\n },\r\n\r\n // Output Schemas\r\n schemas: {\r\n getAll: (params?: { category?: OutputSchemaCategory; isActive?: boolean }) =>\r\n api.get<SchemaListDto[]>('/api/administration/ai/schemas', { params }),\r\n\r\n getById: (schemaId: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`),\r\n\r\n getByCode: (code: string, version?: number) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/by-code/${code}`, { params: { version } }),\r\n\r\n getActiveByCode: (code: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/active/${code}`),\r\n\r\n create: (data: CreateSchemaRequest) =>\r\n api.post<SchemaDetailDto>('/api/administration/ai/schemas', data),\r\n\r\n update: (schemaId: string, data: UpdateSchemaRequest) =>\r\n api.put<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`, data),\r\n\r\n incrementVersion: (schemaId: string, data: IncrementVersionRequest) =>\r\n api.post<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}/increment-version`, data),\r\n\r\n activate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/activate`),\r\n\r\n deactivate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/deactivate`),\r\n\r\n delete: (schemaId: string) =>\r\n api.delete(`/api/administration/ai/schemas/${schemaId}`),\r\n },\r\n\r\n // Usage (by provider instance/profile)\r\n usage: {\r\n getByInstance: (startDate?: string, endDate?: string) =>\r\n api.get<InstanceUsageDto[]>('/api/administration/ai/monitoring/by-instance', { params: { startDate, endDate } }),\r\n\r\n getInstanceEvents: (instanceId: string, startDate?: string, endDate?: string, count: number = 100) =>\r\n api.get<InstanceEventDto[]>(`/api/administration/ai/monitoring/instance/${instanceId}/events`, { params: { startDate, endDate, count } }),\r\n },\r\n\r\n // AI Agents\r\n agents: {\r\n getAll: () =>\r\n api.get<AiAgentListDto[]>('/api/administration/ai/agents'),\r\n\r\n getById: (id: string) =>\r\n api.get<AiAgentDetailDto>(`/api/administration/ai/agents/${id}`),\r\n\r\n create: (data: CreateAgentRequest) =>\r\n api.post<AiAgentDetailDto>('/api/administration/ai/agents', data),\r\n\r\n update: (id: string, data: UpdateAgentRequest) =>\r\n api.put(`/api/administration/ai/agents/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/agents/${id}`),\r\n\r\n execute: (id: string, initialState: Record<string, string>) =>\r\n api.post<AgentExecutionResult>(`/api/administration/ai/agents/${id}/execute`, initialState),\r\n\r\n getExecutions: (id: string) =>\r\n api.get<AiAgentExecutionListDto[]>(`/api/administration/ai/agents/${id}/executions`),\r\n\r\n getExecutionDetail: (executionId: string) =>\r\n api.get<AiAgentExecutionDetailDto>(`/api/administration/ai/agents/executions/${executionId}`),\r\n },\r\n};\r\n"],"names":["aiApi","days","api","startDate","endDate","providerId","count","category","keyId","data","instanceId","tenantId","skillId","params","id","code","version","blockId","schemaId","initialState","executionId"],"mappings":"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"}
1
+ {"version":3,"file":"aiApi-B20Teu2v.js","sources":["../../src/services/api/aiApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\n\r\n// Types for AI Dashboard\r\nexport interface DashboardOverviewDto {\r\n totalTokens: number;\r\n totalCost: number;\r\n totalRequests: number;\r\n successRate: number;\r\n avgLatencyMs: number;\r\n activeProviders: number;\r\n totalProviders: number;\r\n providerBreakdown: ProviderBreakdownDto[];\r\n}\r\n\r\nexport interface ProviderBreakdownDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n costPercentage: number;\r\n}\r\n\r\nexport interface ProviderUsageDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n}\r\n\r\nexport interface ModelUsageDto {\r\n modelName: string;\r\n providerId: string;\r\n providerCode: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface DailyCostDto {\r\n date: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface UsageEventDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n modelName: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n featureName: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Settings\r\nexport interface ProviderListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n adminApiKeyUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n keyCount: number;\r\n modelCount: number;\r\n}\r\n\r\nexport interface ModelListDto {\r\n id: string;\r\n providerId: string | null;\r\n providerCode: string | null;\r\n providerName: string | null;\r\n code: string;\r\n shortCode: string;\r\n name: string;\r\n description: string | null;\r\n category: string;\r\n contextWindow: number;\r\n maxOutputTokens: number | null;\r\n inputCostPerMillionTokens: number;\r\n outputCostPerMillionTokens: number;\r\n supportsVision: boolean;\r\n supportsImageGeneration: boolean;\r\n supportsAudioInput: boolean;\r\n supportsAudioOutput: boolean;\r\n supportsFunctionCalling: boolean;\r\n supportsStreaming: boolean;\r\n supportsCodeExecution: boolean;\r\n isActive: boolean;\r\n isDeprecated: boolean;\r\n deprecationDate: string | null;\r\n modelFamily?: string | null;\r\n}\r\n\r\n// Types for Provider Instances\r\nexport interface ProviderInstanceListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n providerLogoUrl: string | null;\r\n department: string | null;\r\n costCenter: string | null;\r\n defaultModel: string | null;\r\n budgetLimit: number | null;\r\n currentPeriodUsage: number;\r\n budgetPeriodType: string | null;\r\n budgetPeriodStart: string | null;\r\n nextResetDate: string | null;\r\n isOverBudget: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n tenantCount: number;\r\n isAllTenants: boolean;\r\n skillCount: number;\r\n}\r\n\r\nexport interface ProviderInstanceDetailDto extends ProviderInstanceListDto {\r\n providerDocumentationUrl: string | null;\r\n systemContext: string | null;\r\n maxTokensPerRequest: number | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n tenants: InstanceTenantDto[];\r\n skills: InstanceSkillDto[];\r\n}\r\n\r\nexport interface InstanceTenantDto {\r\n id: string;\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string | null;\r\n}\r\n\r\nexport interface InstanceSkillDto {\r\n id: string;\r\n skillId: string;\r\n skillCode: string;\r\n skillName: string;\r\n skillDescription: string | null;\r\n skillVersion: string;\r\n skillStatus: string;\r\n}\r\n\r\nexport interface GenerateCodeResponse {\r\n code: string;\r\n providerCode: string;\r\n sequence: number;\r\n}\r\n\r\nexport interface CreateProviderInstanceRequest {\r\n providerId: string;\r\n code: string;\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n apiKey?: string;\r\n adminKey?: string;\r\n}\r\n\r\nexport interface UpdateProviderInstanceRequest {\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n}\r\n\r\nexport interface SetKeyRequest {\r\n value: string;\r\n}\r\n\r\nexport interface AddInstanceTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface SetAllTenantsRequest {\r\n isAllTenants: boolean;\r\n}\r\n\r\nexport interface AddInstanceSkillRequest {\r\n skillId: string;\r\n}\r\n\r\nexport interface ProviderDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n apiBaseUrl: string | null;\r\n adminApiBaseUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n keys: ApiKeyListDto[];\r\n models: ModelListDto[];\r\n}\r\n\r\nexport interface ApiKeyListDto {\r\n id: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n maskedValue: string;\r\n}\r\n\r\nexport interface ApiKeyDetailDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n lastUsedByUserId: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n maskedValue: string;\r\n isExpired: boolean;\r\n}\r\n\r\nexport interface CreateApiKeyRequest {\r\n keyType: string;\r\n value: string;\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface UpdateApiKeyRequest {\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface RotateKeyRequest {\r\n newValue: string;\r\n}\r\n\r\nexport interface RevealKeyResponse {\r\n value: string;\r\n}\r\n\r\n// Types for AI Skills\r\nexport interface AiSkillListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n tags: string | null;\r\n blockCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n parentSkillId: string | null;\r\n tags: string | null;\r\n blocks: AiSkillBlockDto[];\r\n variables: string[];\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillBlockDto {\r\n id: string;\r\n blockDefinitionId: string | null;\r\n blockDefinitionCode: string | null;\r\n blockType: string;\r\n label: string | null;\r\n content: string;\r\n displayOrder: number;\r\n isRequired: boolean;\r\n isEnabled: boolean;\r\n condition: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n defaultTitle: string | null;\r\n defaultContent: string | null;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface CreateAiSkillRequest {\r\n code: string;\r\n name: string;\r\n description?: string;\r\n version?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n blocks?: CreateAiSkillBlockRequest[];\r\n}\r\n\r\nexport interface UpdateAiSkillRequest {\r\n name?: string;\r\n description?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n}\r\n\r\nexport interface CreateAiSkillBlockRequest {\r\n blockDefinitionId?: string;\r\n blockType: string;\r\n label: string;\r\n content: string;\r\n displayOrder: number;\r\n isRequired?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface UpdateAiSkillBlockRequest {\r\n label?: string;\r\n content?: string;\r\n isRequired?: boolean;\r\n isEnabled?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface CreateBlockDefinitionRequest {\r\n name: string;\r\n blockType: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface UpdateBlockDefinitionRequest {\r\n name?: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface ReorderBlocksRequest {\r\n blockIds: string[];\r\n}\r\n\r\nexport interface AiSkillPreviewRequest {\r\n variables: Record<string, string>;\r\n}\r\n\r\n// Types for Output Schemas\r\nexport type OutputSchemaCategory =\r\n | 'Support'\r\n | 'Content'\r\n | 'Analysis'\r\n | 'Translation'\r\n | 'CodeGeneration'\r\n | 'DataExtraction'\r\n | 'Custom';\r\n\r\nexport interface SchemaListDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n}\r\n\r\nexport interface SchemaDetailDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n jsonSchema: string;\r\n uiSchema: string | null;\r\n dotNetType: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CreateSchemaRequest {\r\n code: string;\r\n name: string;\r\n jsonSchema: string;\r\n category?: OutputSchemaCategory;\r\n description?: string;\r\n uiSchema?: string;\r\n dotNetType?: string;\r\n}\r\n\r\nexport interface UpdateSchemaRequest {\r\n name: string;\r\n description?: string;\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n category: OutputSchemaCategory;\r\n}\r\n\r\nexport interface IncrementVersionRequest {\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n}\r\n\r\nexport interface PromptPreviewResponse {\r\n fullPrompt: string;\r\n}\r\n\r\n// Types for Prompt Execution\r\nexport interface ExecutePromptRequest {\r\n variables?: Record<string, string>;\r\n providerId?: string;\r\n modelId?: string;\r\n}\r\n\r\nexport interface AiSkillExecutionResponse {\r\n skillId: string;\r\n skillName: string;\r\n response: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n latencyMs: number;\r\n providerId: string;\r\n modelId: string;\r\n modelName: string;\r\n success: boolean;\r\n error?: string;\r\n}\r\n\r\n// Types for AI Usage (by instance/profile)\r\nexport interface InstanceUsageDto {\r\n instanceId: string;\r\n instanceCode: string;\r\n instanceName: string;\r\n department: string | null;\r\n costCenter: string | null;\r\n providerName: string;\r\n totalTokens: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n lastUsedAt: string | null;\r\n}\r\n\r\nexport interface InstanceEventDto {\r\n id: string;\r\n providerName: string;\r\n modelName: string;\r\n featureName: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Agents\r\nexport interface AiAgentListDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n stepCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiAgentStepDto {\r\n id: string;\r\n agentId: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n isActive: boolean;\r\n inputMappingJson: string | null;\r\n outputStateKey: string | null;\r\n continueOnFailure: boolean;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n skill: {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n } | null;\r\n}\r\n\r\nexport interface AiAgentDetailDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n moduleId: string;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n steps: AiAgentStepDto[];\r\n}\r\n\r\nexport interface AiAgentExecutionListDto {\r\n id: string;\r\n agentCode: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\nexport interface AiAgentStepExecutionDto {\r\n id: string;\r\n executionId: string;\r\n stepId: string;\r\n skillCode: string;\r\n stepOrder: number;\r\n stepName: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n inputVariablesJson: string | null;\r\n outputJson: string | null;\r\n errorMessage: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n cost: number;\r\n executionTimeMs: number;\r\n providerCode: string | null;\r\n modelCode: string | null;\r\n}\r\n\r\nexport interface AiAgentExecutionDetailDto extends AiAgentExecutionListDto {\r\n agentId: string;\r\n inputStateJson: string | null;\r\n finalStateJson: string | null;\r\n userId: string | null;\r\n stepExecutions: AiAgentStepExecutionDto[];\r\n}\r\n\r\nexport interface CreateAgentRequest {\r\n agentCode: string;\r\n name: string;\r\n moduleId: string;\r\n description?: string;\r\n maxParallelism?: number;\r\n timeoutSeconds?: number;\r\n}\r\n\r\nexport interface UpdateAgentRequest {\r\n name: string;\r\n description?: string;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n steps?: UpdateAgentStepRequest[];\r\n}\r\n\r\nexport interface UpdateAgentStepRequest {\r\n id?: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n inputMappingJson?: string;\r\n outputStateKey?: string;\r\n continueOnFailure?: boolean;\r\n}\r\n\r\nexport interface AgentExecutionResult {\r\n success: boolean;\r\n executionId: string;\r\n status: number;\r\n finalState: Record<string, string>;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\n// API Service\r\nexport const aiApi = {\r\n // Dashboard\r\n dashboard: {\r\n getOverview: (days: number = 30) =>\r\n api.get<DashboardOverviewDto>('/api/administration/ai/dashboard/overview', { params: { days } }),\r\n\r\n getByProvider: (startDate?: string, endDate?: string) =>\r\n api.get<ProviderUsageDto[]>('/api/administration/ai/dashboard/by-provider', { params: { startDate, endDate } }),\r\n\r\n getByModel: (startDate?: string, endDate?: string, providerId?: string) =>\r\n api.get<ModelUsageDto[]>('/api/administration/ai/dashboard/by-model', { params: { startDate, endDate, providerId } }),\r\n\r\n getDailyCosts: (days: number = 30, providerId?: string) =>\r\n api.get<DailyCostDto[]>('/api/administration/ai/dashboard/daily-costs', { params: { days, providerId } }),\r\n\r\n getRecentEvents: (count: number = 50, providerId?: string) =>\r\n api.get<UsageEventDto[]>('/api/administration/ai/dashboard/recent-events', { params: { count, providerId } }),\r\n },\r\n\r\n // Settings (Providers & Keys)\r\n settings: {\r\n getProviders: () =>\r\n api.get<ProviderListDto[]>('/api/administration/ai/settings/providers'),\r\n\r\n getProvider: (providerId: string) =>\r\n api.get<ProviderDetailDto>(`/api/administration/ai/settings/providers/${providerId}`),\r\n\r\n getModels: (category?: string, providerId?: string) =>\r\n api.get<ModelListDto[]>('/api/administration/ai/settings/models', { params: { category, providerId } }),\r\n\r\n getKey: (keyId: string) =>\r\n api.get<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`),\r\n\r\n createKey: (providerId: string, data: CreateApiKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/providers/${providerId}/keys`, data),\r\n\r\n updateKey: (keyId: string, data: UpdateApiKeyRequest) =>\r\n api.put<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`, data),\r\n\r\n rotateKey: (keyId: string, data: RotateKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}/rotate`, data),\r\n\r\n revealKey: (keyId: string) =>\r\n api.post<RevealKeyResponse>(`/api/administration/ai/settings/keys/${keyId}/reveal`),\r\n\r\n activateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/activate`),\r\n\r\n deactivateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/deactivate`),\r\n\r\n deleteKey: (keyId: string) =>\r\n api.delete(`/api/administration/ai/settings/keys/${keyId}`),\r\n },\r\n\r\n // Provider Instances\r\n instances: {\r\n getAll: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances'),\r\n\r\n getMyInstances: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances/my-instances'),\r\n\r\n getById: (instanceId: string) =>\r\n api.get<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n generateCode: (providerId: string) =>\r\n api.get<GenerateCodeResponse>(`/api/administration/ai/instances/generate-code/${providerId}`),\r\n\r\n create: (data: CreateProviderInstanceRequest) =>\r\n api.post<ProviderInstanceDetailDto>('/api/administration/ai/instances', data),\r\n\r\n update: (instanceId: string, data: UpdateProviderInstanceRequest) =>\r\n api.put<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`, data),\r\n\r\n delete: (instanceId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n setApiKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/api-key`, data),\r\n\r\n setAdminKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/admin-key`, data),\r\n\r\n toggleActive: (instanceId: string) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/toggle-active`),\r\n\r\n addTenant: (instanceId: string, data: AddInstanceTenantRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/tenants`, data),\r\n\r\n removeTenant: (instanceId: string, tenantId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/tenants/${tenantId}`),\r\n\r\n setAllTenants: (instanceId: string, data: SetAllTenantsRequest) =>\r\n api.put(`/api/administration/ai/instances/${instanceId}/all-tenants`, data),\r\n\r\n addSkill: (instanceId: string, data: AddInstanceSkillRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/skills`, data),\r\n\r\n removeSkill: (instanceId: string, skillId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/skills/${skillId}`),\r\n },\r\n\r\n // Skills\r\n skills: {\r\n getAll: (params?: { search?: string; category?: string; status?: string }) =>\r\n api.get<AiSkillListDto[]>('/api/administration/ai/skills', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`),\r\n\r\n getByCode: (code: string, version?: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/by-code/${code}`, { params: { version } }),\r\n\r\n create: (data: CreateAiSkillRequest) =>\r\n api.post<AiSkillDetailDto>('/api/administration/ai/skills', data),\r\n\r\n update: (id: string, data: UpdateAiSkillRequest) =>\r\n api.put<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/${id}`),\r\n\r\n activate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/activate`),\r\n\r\n deprecate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/deprecate`),\r\n\r\n clone: (id: string) =>\r\n api.post<AiSkillDetailDto>(`/api/administration/ai/skills/${id}/clone`),\r\n\r\n preview: (id: string, data: AiSkillPreviewRequest) =>\r\n api.post<PromptPreviewResponse>(`/api/administration/ai/skills/${id}/preview`, data),\r\n\r\n execute: (id: string, data: ExecutePromptRequest) =>\r\n api.post<AiSkillExecutionResponse>(`/api/administration/ai/skills/${id}/execute`, data),\r\n\r\n // Blocks\r\n addBlock: (skillId: string, data: CreateAiSkillBlockRequest) =>\r\n api.post<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks`, data),\r\n\r\n updateBlock: (skillId: string, blockId: string, data: UpdateAiSkillBlockRequest) =>\r\n api.put<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`, data),\r\n\r\n deleteBlock: (skillId: string, blockId: string) =>\r\n api.delete(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`),\r\n\r\n reorderBlocks: (skillId: string, data: ReorderBlocksRequest) =>\r\n api.put(`/api/administration/ai/skills/${skillId}/blocks/reorder`, data),\r\n },\r\n\r\n // Block Definitions\r\n blockDefinitions: {\r\n getAll: (params?: { search?: string; blockType?: string }) =>\r\n api.get<AiSkillBlockDefinitionListDto[]>('/api/administration/ai/skills/block-definitions', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`),\r\n\r\n create: (data: CreateBlockDefinitionRequest) =>\r\n api.post<AiSkillBlockDefinitionDetailDto>('/api/administration/ai/skills/block-definitions', data),\r\n\r\n update: (id: string, data: UpdateBlockDefinitionRequest) =>\r\n api.put<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/block-definitions/${id}`),\r\n },\r\n\r\n // Output Schemas\r\n schemas: {\r\n getAll: (params?: { category?: OutputSchemaCategory; isActive?: boolean }) =>\r\n api.get<SchemaListDto[]>('/api/administration/ai/schemas', { params }),\r\n\r\n getById: (schemaId: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`),\r\n\r\n getByCode: (code: string, version?: number) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/by-code/${code}`, { params: { version } }),\r\n\r\n getActiveByCode: (code: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/active/${code}`),\r\n\r\n create: (data: CreateSchemaRequest) =>\r\n api.post<SchemaDetailDto>('/api/administration/ai/schemas', data),\r\n\r\n update: (schemaId: string, data: UpdateSchemaRequest) =>\r\n api.put<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`, data),\r\n\r\n incrementVersion: (schemaId: string, data: IncrementVersionRequest) =>\r\n api.post<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}/increment-version`, data),\r\n\r\n activate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/activate`),\r\n\r\n deactivate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/deactivate`),\r\n\r\n delete: (schemaId: string) =>\r\n api.delete(`/api/administration/ai/schemas/${schemaId}`),\r\n },\r\n\r\n // Usage (by provider instance/profile)\r\n usage: {\r\n getByInstance: (startDate?: string, endDate?: string) =>\r\n api.get<InstanceUsageDto[]>('/api/administration/ai/monitoring/by-instance', { params: { startDate, endDate } }),\r\n\r\n getInstanceEvents: (instanceId: string, startDate?: string, endDate?: string, count: number = 100) =>\r\n api.get<InstanceEventDto[]>(`/api/administration/ai/monitoring/instance/${instanceId}/events`, { params: { startDate, endDate, count } }),\r\n },\r\n\r\n // AI Agents\r\n agents: {\r\n getAll: () =>\r\n api.get<AiAgentListDto[]>('/api/administration/ai/agents'),\r\n\r\n getById: (id: string) =>\r\n api.get<AiAgentDetailDto>(`/api/administration/ai/agents/${id}`),\r\n\r\n create: (data: CreateAgentRequest) =>\r\n api.post<AiAgentDetailDto>('/api/administration/ai/agents', data),\r\n\r\n update: (id: string, data: UpdateAgentRequest) =>\r\n api.put(`/api/administration/ai/agents/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/agents/${id}`),\r\n\r\n execute: (id: string, initialState: Record<string, string>) =>\r\n api.post<AgentExecutionResult>(`/api/administration/ai/agents/${id}/execute`, initialState),\r\n\r\n getExecutions: (id: string) =>\r\n api.get<AiAgentExecutionListDto[]>(`/api/administration/ai/agents/${id}/executions`),\r\n\r\n getExecutionDetail: (executionId: string) =>\r\n api.get<AiAgentExecutionDetailDto>(`/api/administration/ai/agents/executions/${executionId}`),\r\n },\r\n};\r\n"],"names":["aiApi","days","api","startDate","endDate","providerId","count","category","keyId","data","instanceId","tenantId","skillId","params","id","code","version","blockId","schemaId","initialState","executionId"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { i as a } from "./index-CwSaRXXg.js";
1
+ import { i as a } from "./index-lpIzhufD.js";
2
2
  const o = {
3
3
  // Dashboard
4
4
  dashboard: {
@@ -100,4 +100,4 @@ const o = {
100
100
  export {
101
101
  o as aiApi
102
102
  };
103
- //# sourceMappingURL=aiApi-CVPzFTXa.js.map
103
+ //# sourceMappingURL=aiApi-DMGz-RPM.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aiApi-CVPzFTXa.js","sources":["../../src/services/api/aiApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\n\r\n// Types for AI Dashboard\r\nexport interface DashboardOverviewDto {\r\n totalTokens: number;\r\n totalCost: number;\r\n totalRequests: number;\r\n successRate: number;\r\n avgLatencyMs: number;\r\n activeProviders: number;\r\n totalProviders: number;\r\n providerBreakdown: ProviderBreakdownDto[];\r\n}\r\n\r\nexport interface ProviderBreakdownDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n costPercentage: number;\r\n}\r\n\r\nexport interface ProviderUsageDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n}\r\n\r\nexport interface ModelUsageDto {\r\n modelName: string;\r\n providerId: string;\r\n providerCode: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface DailyCostDto {\r\n date: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface UsageEventDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n modelName: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n featureName: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Settings\r\nexport interface ProviderListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n adminApiKeyUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n keyCount: number;\r\n modelCount: number;\r\n}\r\n\r\nexport interface ModelListDto {\r\n id: string;\r\n providerId: string | null;\r\n providerCode: string | null;\r\n providerName: string | null;\r\n code: string;\r\n shortCode: string;\r\n name: string;\r\n description: string | null;\r\n category: string;\r\n contextWindow: number;\r\n maxOutputTokens: number | null;\r\n inputCostPerMillionTokens: number;\r\n outputCostPerMillionTokens: number;\r\n supportsVision: boolean;\r\n supportsImageGeneration: boolean;\r\n supportsAudioInput: boolean;\r\n supportsAudioOutput: boolean;\r\n supportsFunctionCalling: boolean;\r\n supportsStreaming: boolean;\r\n supportsCodeExecution: boolean;\r\n isActive: boolean;\r\n isDeprecated: boolean;\r\n deprecationDate: string | null;\r\n modelFamily?: string | null;\r\n}\r\n\r\n// Types for Provider Instances\r\nexport interface ProviderInstanceListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n providerLogoUrl: string | null;\r\n department: string | null;\r\n costCenter: string | null;\r\n defaultModel: string | null;\r\n budgetLimit: number | null;\r\n currentPeriodUsage: number;\r\n budgetPeriodType: string | null;\r\n budgetPeriodStart: string | null;\r\n nextResetDate: string | null;\r\n isOverBudget: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n tenantCount: number;\r\n isAllTenants: boolean;\r\n skillCount: number;\r\n}\r\n\r\nexport interface ProviderInstanceDetailDto extends ProviderInstanceListDto {\r\n providerDocumentationUrl: string | null;\r\n systemContext: string | null;\r\n maxTokensPerRequest: number | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n tenants: InstanceTenantDto[];\r\n skills: InstanceSkillDto[];\r\n}\r\n\r\nexport interface InstanceTenantDto {\r\n id: string;\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string | null;\r\n}\r\n\r\nexport interface InstanceSkillDto {\r\n id: string;\r\n skillId: string;\r\n skillCode: string;\r\n skillName: string;\r\n skillDescription: string | null;\r\n skillVersion: string;\r\n skillStatus: string;\r\n}\r\n\r\nexport interface GenerateCodeResponse {\r\n code: string;\r\n providerCode: string;\r\n sequence: number;\r\n}\r\n\r\nexport interface CreateProviderInstanceRequest {\r\n providerId: string;\r\n code: string;\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n apiKey?: string;\r\n adminKey?: string;\r\n}\r\n\r\nexport interface UpdateProviderInstanceRequest {\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n}\r\n\r\nexport interface SetKeyRequest {\r\n value: string;\r\n}\r\n\r\nexport interface AddInstanceTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface SetAllTenantsRequest {\r\n isAllTenants: boolean;\r\n}\r\n\r\nexport interface AddInstanceSkillRequest {\r\n skillId: string;\r\n}\r\n\r\nexport interface ProviderDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n apiBaseUrl: string | null;\r\n adminApiBaseUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n keys: ApiKeyListDto[];\r\n models: ModelListDto[];\r\n}\r\n\r\nexport interface ApiKeyListDto {\r\n id: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n maskedValue: string;\r\n}\r\n\r\nexport interface ApiKeyDetailDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n lastUsedByUserId: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n maskedValue: string;\r\n isExpired: boolean;\r\n}\r\n\r\nexport interface CreateApiKeyRequest {\r\n keyType: string;\r\n value: string;\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface UpdateApiKeyRequest {\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface RotateKeyRequest {\r\n newValue: string;\r\n}\r\n\r\nexport interface RevealKeyResponse {\r\n value: string;\r\n}\r\n\r\n// Types for AI Skills\r\nexport interface AiSkillListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n tags: string | null;\r\n blockCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n parentSkillId: string | null;\r\n tags: string | null;\r\n blocks: AiSkillBlockDto[];\r\n variables: string[];\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillBlockDto {\r\n id: string;\r\n blockDefinitionId: string | null;\r\n blockDefinitionCode: string | null;\r\n blockType: string;\r\n label: string | null;\r\n content: string;\r\n displayOrder: number;\r\n isRequired: boolean;\r\n isEnabled: boolean;\r\n condition: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n defaultTitle: string | null;\r\n defaultContent: string | null;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface CreateAiSkillRequest {\r\n code: string;\r\n name: string;\r\n description?: string;\r\n version?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n blocks?: CreateAiSkillBlockRequest[];\r\n}\r\n\r\nexport interface UpdateAiSkillRequest {\r\n name?: string;\r\n description?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n}\r\n\r\nexport interface CreateAiSkillBlockRequest {\r\n blockDefinitionId?: string;\r\n blockType: string;\r\n label: string;\r\n content: string;\r\n displayOrder: number;\r\n isRequired?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface UpdateAiSkillBlockRequest {\r\n label?: string;\r\n content?: string;\r\n isRequired?: boolean;\r\n isEnabled?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface CreateBlockDefinitionRequest {\r\n name: string;\r\n blockType: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface UpdateBlockDefinitionRequest {\r\n name?: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface ReorderBlocksRequest {\r\n blockIds: string[];\r\n}\r\n\r\nexport interface AiSkillPreviewRequest {\r\n variables: Record<string, string>;\r\n}\r\n\r\n// Types for Output Schemas\r\nexport type OutputSchemaCategory =\r\n | 'Support'\r\n | 'Content'\r\n | 'Analysis'\r\n | 'Translation'\r\n | 'CodeGeneration'\r\n | 'DataExtraction'\r\n | 'Custom';\r\n\r\nexport interface SchemaListDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n}\r\n\r\nexport interface SchemaDetailDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n jsonSchema: string;\r\n uiSchema: string | null;\r\n dotNetType: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CreateSchemaRequest {\r\n code: string;\r\n name: string;\r\n jsonSchema: string;\r\n category?: OutputSchemaCategory;\r\n description?: string;\r\n uiSchema?: string;\r\n dotNetType?: string;\r\n}\r\n\r\nexport interface UpdateSchemaRequest {\r\n name: string;\r\n description?: string;\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n category: OutputSchemaCategory;\r\n}\r\n\r\nexport interface IncrementVersionRequest {\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n}\r\n\r\nexport interface PromptPreviewResponse {\r\n fullPrompt: string;\r\n}\r\n\r\n// Types for Prompt Execution\r\nexport interface ExecutePromptRequest {\r\n variables?: Record<string, string>;\r\n providerId?: string;\r\n modelId?: string;\r\n}\r\n\r\nexport interface AiSkillExecutionResponse {\r\n skillId: string;\r\n skillName: string;\r\n response: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n latencyMs: number;\r\n providerId: string;\r\n modelId: string;\r\n modelName: string;\r\n success: boolean;\r\n error?: string;\r\n}\r\n\r\n// Types for AI Usage (by instance/profile)\r\nexport interface InstanceUsageDto {\r\n instanceId: string;\r\n instanceCode: string;\r\n instanceName: string;\r\n department: string | null;\r\n costCenter: string | null;\r\n providerName: string;\r\n totalTokens: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n lastUsedAt: string | null;\r\n}\r\n\r\nexport interface InstanceEventDto {\r\n id: string;\r\n providerName: string;\r\n modelName: string;\r\n featureName: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Agents\r\nexport interface AiAgentListDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n stepCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiAgentStepDto {\r\n id: string;\r\n agentId: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n isActive: boolean;\r\n inputMappingJson: string | null;\r\n outputStateKey: string | null;\r\n continueOnFailure: boolean;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n skill: {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n } | null;\r\n}\r\n\r\nexport interface AiAgentDetailDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n moduleId: string;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n steps: AiAgentStepDto[];\r\n}\r\n\r\nexport interface AiAgentExecutionListDto {\r\n id: string;\r\n agentCode: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\nexport interface AiAgentStepExecutionDto {\r\n id: string;\r\n executionId: string;\r\n stepId: string;\r\n skillCode: string;\r\n stepOrder: number;\r\n stepName: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n inputVariablesJson: string | null;\r\n outputJson: string | null;\r\n errorMessage: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n cost: number;\r\n executionTimeMs: number;\r\n providerCode: string | null;\r\n modelCode: string | null;\r\n}\r\n\r\nexport interface AiAgentExecutionDetailDto extends AiAgentExecutionListDto {\r\n agentId: string;\r\n inputStateJson: string | null;\r\n finalStateJson: string | null;\r\n userId: string | null;\r\n stepExecutions: AiAgentStepExecutionDto[];\r\n}\r\n\r\nexport interface CreateAgentRequest {\r\n agentCode: string;\r\n name: string;\r\n moduleId: string;\r\n description?: string;\r\n maxParallelism?: number;\r\n timeoutSeconds?: number;\r\n}\r\n\r\nexport interface UpdateAgentRequest {\r\n name: string;\r\n description?: string;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n steps?: UpdateAgentStepRequest[];\r\n}\r\n\r\nexport interface UpdateAgentStepRequest {\r\n id?: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n inputMappingJson?: string;\r\n outputStateKey?: string;\r\n continueOnFailure?: boolean;\r\n}\r\n\r\nexport interface AgentExecutionResult {\r\n success: boolean;\r\n executionId: string;\r\n status: number;\r\n finalState: Record<string, string>;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\n// API Service\r\nexport const aiApi = {\r\n // Dashboard\r\n dashboard: {\r\n getOverview: (days: number = 30) =>\r\n api.get<DashboardOverviewDto>('/api/administration/ai/dashboard/overview', { params: { days } }),\r\n\r\n getByProvider: (startDate?: string, endDate?: string) =>\r\n api.get<ProviderUsageDto[]>('/api/administration/ai/dashboard/by-provider', { params: { startDate, endDate } }),\r\n\r\n getByModel: (startDate?: string, endDate?: string, providerId?: string) =>\r\n api.get<ModelUsageDto[]>('/api/administration/ai/dashboard/by-model', { params: { startDate, endDate, providerId } }),\r\n\r\n getDailyCosts: (days: number = 30, providerId?: string) =>\r\n api.get<DailyCostDto[]>('/api/administration/ai/dashboard/daily-costs', { params: { days, providerId } }),\r\n\r\n getRecentEvents: (count: number = 50, providerId?: string) =>\r\n api.get<UsageEventDto[]>('/api/administration/ai/dashboard/recent-events', { params: { count, providerId } }),\r\n },\r\n\r\n // Settings (Providers & Keys)\r\n settings: {\r\n getProviders: () =>\r\n api.get<ProviderListDto[]>('/api/administration/ai/settings/providers'),\r\n\r\n getProvider: (providerId: string) =>\r\n api.get<ProviderDetailDto>(`/api/administration/ai/settings/providers/${providerId}`),\r\n\r\n getModels: (category?: string, providerId?: string) =>\r\n api.get<ModelListDto[]>('/api/administration/ai/settings/models', { params: { category, providerId } }),\r\n\r\n getKey: (keyId: string) =>\r\n api.get<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`),\r\n\r\n createKey: (providerId: string, data: CreateApiKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/providers/${providerId}/keys`, data),\r\n\r\n updateKey: (keyId: string, data: UpdateApiKeyRequest) =>\r\n api.put<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`, data),\r\n\r\n rotateKey: (keyId: string, data: RotateKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}/rotate`, data),\r\n\r\n revealKey: (keyId: string) =>\r\n api.post<RevealKeyResponse>(`/api/administration/ai/settings/keys/${keyId}/reveal`),\r\n\r\n activateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/activate`),\r\n\r\n deactivateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/deactivate`),\r\n\r\n deleteKey: (keyId: string) =>\r\n api.delete(`/api/administration/ai/settings/keys/${keyId}`),\r\n },\r\n\r\n // Provider Instances\r\n instances: {\r\n getAll: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances'),\r\n\r\n getMyInstances: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances/my-instances'),\r\n\r\n getById: (instanceId: string) =>\r\n api.get<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n generateCode: (providerId: string) =>\r\n api.get<GenerateCodeResponse>(`/api/administration/ai/instances/generate-code/${providerId}`),\r\n\r\n create: (data: CreateProviderInstanceRequest) =>\r\n api.post<ProviderInstanceDetailDto>('/api/administration/ai/instances', data),\r\n\r\n update: (instanceId: string, data: UpdateProviderInstanceRequest) =>\r\n api.put<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`, data),\r\n\r\n delete: (instanceId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n setApiKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/api-key`, data),\r\n\r\n setAdminKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/admin-key`, data),\r\n\r\n toggleActive: (instanceId: string) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/toggle-active`),\r\n\r\n addTenant: (instanceId: string, data: AddInstanceTenantRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/tenants`, data),\r\n\r\n removeTenant: (instanceId: string, tenantId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/tenants/${tenantId}`),\r\n\r\n setAllTenants: (instanceId: string, data: SetAllTenantsRequest) =>\r\n api.put(`/api/administration/ai/instances/${instanceId}/all-tenants`, data),\r\n\r\n addSkill: (instanceId: string, data: AddInstanceSkillRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/skills`, data),\r\n\r\n removeSkill: (instanceId: string, skillId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/skills/${skillId}`),\r\n },\r\n\r\n // Skills\r\n skills: {\r\n getAll: (params?: { search?: string; category?: string; status?: string }) =>\r\n api.get<AiSkillListDto[]>('/api/administration/ai/skills', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`),\r\n\r\n getByCode: (code: string, version?: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/by-code/${code}`, { params: { version } }),\r\n\r\n create: (data: CreateAiSkillRequest) =>\r\n api.post<AiSkillDetailDto>('/api/administration/ai/skills', data),\r\n\r\n update: (id: string, data: UpdateAiSkillRequest) =>\r\n api.put<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/${id}`),\r\n\r\n activate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/activate`),\r\n\r\n deprecate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/deprecate`),\r\n\r\n clone: (id: string) =>\r\n api.post<AiSkillDetailDto>(`/api/administration/ai/skills/${id}/clone`),\r\n\r\n preview: (id: string, data: AiSkillPreviewRequest) =>\r\n api.post<PromptPreviewResponse>(`/api/administration/ai/skills/${id}/preview`, data),\r\n\r\n execute: (id: string, data: ExecutePromptRequest) =>\r\n api.post<AiSkillExecutionResponse>(`/api/administration/ai/skills/${id}/execute`, data),\r\n\r\n // Blocks\r\n addBlock: (skillId: string, data: CreateAiSkillBlockRequest) =>\r\n api.post<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks`, data),\r\n\r\n updateBlock: (skillId: string, blockId: string, data: UpdateAiSkillBlockRequest) =>\r\n api.put<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`, data),\r\n\r\n deleteBlock: (skillId: string, blockId: string) =>\r\n api.delete(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`),\r\n\r\n reorderBlocks: (skillId: string, data: ReorderBlocksRequest) =>\r\n api.put(`/api/administration/ai/skills/${skillId}/blocks/reorder`, data),\r\n },\r\n\r\n // Block Definitions\r\n blockDefinitions: {\r\n getAll: (params?: { search?: string; blockType?: string }) =>\r\n api.get<AiSkillBlockDefinitionListDto[]>('/api/administration/ai/skills/block-definitions', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`),\r\n\r\n create: (data: CreateBlockDefinitionRequest) =>\r\n api.post<AiSkillBlockDefinitionDetailDto>('/api/administration/ai/skills/block-definitions', data),\r\n\r\n update: (id: string, data: UpdateBlockDefinitionRequest) =>\r\n api.put<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/block-definitions/${id}`),\r\n },\r\n\r\n // Output Schemas\r\n schemas: {\r\n getAll: (params?: { category?: OutputSchemaCategory; isActive?: boolean }) =>\r\n api.get<SchemaListDto[]>('/api/administration/ai/schemas', { params }),\r\n\r\n getById: (schemaId: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`),\r\n\r\n getByCode: (code: string, version?: number) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/by-code/${code}`, { params: { version } }),\r\n\r\n getActiveByCode: (code: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/active/${code}`),\r\n\r\n create: (data: CreateSchemaRequest) =>\r\n api.post<SchemaDetailDto>('/api/administration/ai/schemas', data),\r\n\r\n update: (schemaId: string, data: UpdateSchemaRequest) =>\r\n api.put<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`, data),\r\n\r\n incrementVersion: (schemaId: string, data: IncrementVersionRequest) =>\r\n api.post<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}/increment-version`, data),\r\n\r\n activate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/activate`),\r\n\r\n deactivate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/deactivate`),\r\n\r\n delete: (schemaId: string) =>\r\n api.delete(`/api/administration/ai/schemas/${schemaId}`),\r\n },\r\n\r\n // Usage (by provider instance/profile)\r\n usage: {\r\n getByInstance: (startDate?: string, endDate?: string) =>\r\n api.get<InstanceUsageDto[]>('/api/administration/ai/monitoring/by-instance', { params: { startDate, endDate } }),\r\n\r\n getInstanceEvents: (instanceId: string, startDate?: string, endDate?: string, count: number = 100) =>\r\n api.get<InstanceEventDto[]>(`/api/administration/ai/monitoring/instance/${instanceId}/events`, { params: { startDate, endDate, count } }),\r\n },\r\n\r\n // AI Agents\r\n agents: {\r\n getAll: () =>\r\n api.get<AiAgentListDto[]>('/api/administration/ai/agents'),\r\n\r\n getById: (id: string) =>\r\n api.get<AiAgentDetailDto>(`/api/administration/ai/agents/${id}`),\r\n\r\n create: (data: CreateAgentRequest) =>\r\n api.post<AiAgentDetailDto>('/api/administration/ai/agents', data),\r\n\r\n update: (id: string, data: UpdateAgentRequest) =>\r\n api.put(`/api/administration/ai/agents/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/agents/${id}`),\r\n\r\n execute: (id: string, initialState: Record<string, string>) =>\r\n api.post<AgentExecutionResult>(`/api/administration/ai/agents/${id}/execute`, initialState),\r\n\r\n getExecutions: (id: string) =>\r\n api.get<AiAgentExecutionListDto[]>(`/api/administration/ai/agents/${id}/executions`),\r\n\r\n getExecutionDetail: (executionId: string) =>\r\n api.get<AiAgentExecutionDetailDto>(`/api/administration/ai/agents/executions/${executionId}`),\r\n },\r\n};\r\n"],"names":["aiApi","days","api","startDate","endDate","providerId","count","category","keyId","data","instanceId","tenantId","skillId","params","id","code","version","blockId","schemaId","initialState","executionId"],"mappings":"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"}
1
+ {"version":3,"file":"aiApi-DMGz-RPM.js","sources":["../../src/services/api/aiApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\n\r\n// Types for AI Dashboard\r\nexport interface DashboardOverviewDto {\r\n totalTokens: number;\r\n totalCost: number;\r\n totalRequests: number;\r\n successRate: number;\r\n avgLatencyMs: number;\r\n activeProviders: number;\r\n totalProviders: number;\r\n providerBreakdown: ProviderBreakdownDto[];\r\n}\r\n\r\nexport interface ProviderBreakdownDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n costPercentage: number;\r\n}\r\n\r\nexport interface ProviderUsageDto {\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n}\r\n\r\nexport interface ModelUsageDto {\r\n modelName: string;\r\n providerId: string;\r\n providerCode: string;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface DailyCostDto {\r\n date: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n}\r\n\r\nexport interface UsageEventDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n modelName: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n featureName: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Settings\r\nexport interface ProviderListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n adminApiKeyUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n keyCount: number;\r\n modelCount: number;\r\n}\r\n\r\nexport interface ModelListDto {\r\n id: string;\r\n providerId: string | null;\r\n providerCode: string | null;\r\n providerName: string | null;\r\n code: string;\r\n shortCode: string;\r\n name: string;\r\n description: string | null;\r\n category: string;\r\n contextWindow: number;\r\n maxOutputTokens: number | null;\r\n inputCostPerMillionTokens: number;\r\n outputCostPerMillionTokens: number;\r\n supportsVision: boolean;\r\n supportsImageGeneration: boolean;\r\n supportsAudioInput: boolean;\r\n supportsAudioOutput: boolean;\r\n supportsFunctionCalling: boolean;\r\n supportsStreaming: boolean;\r\n supportsCodeExecution: boolean;\r\n isActive: boolean;\r\n isDeprecated: boolean;\r\n deprecationDate: string | null;\r\n modelFamily?: string | null;\r\n}\r\n\r\n// Types for Provider Instances\r\nexport interface ProviderInstanceListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n providerLogoUrl: string | null;\r\n department: string | null;\r\n costCenter: string | null;\r\n defaultModel: string | null;\r\n budgetLimit: number | null;\r\n currentPeriodUsage: number;\r\n budgetPeriodType: string | null;\r\n budgetPeriodStart: string | null;\r\n nextResetDate: string | null;\r\n isOverBudget: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n hasApiKey: boolean;\r\n hasAdminKey: boolean;\r\n tenantCount: number;\r\n isAllTenants: boolean;\r\n skillCount: number;\r\n}\r\n\r\nexport interface ProviderInstanceDetailDto extends ProviderInstanceListDto {\r\n providerDocumentationUrl: string | null;\r\n systemContext: string | null;\r\n maxTokensPerRequest: number | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n tenants: InstanceTenantDto[];\r\n skills: InstanceSkillDto[];\r\n}\r\n\r\nexport interface InstanceTenantDto {\r\n id: string;\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string | null;\r\n}\r\n\r\nexport interface InstanceSkillDto {\r\n id: string;\r\n skillId: string;\r\n skillCode: string;\r\n skillName: string;\r\n skillDescription: string | null;\r\n skillVersion: string;\r\n skillStatus: string;\r\n}\r\n\r\nexport interface GenerateCodeResponse {\r\n code: string;\r\n providerCode: string;\r\n sequence: number;\r\n}\r\n\r\nexport interface CreateProviderInstanceRequest {\r\n providerId: string;\r\n code: string;\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n apiKey?: string;\r\n adminKey?: string;\r\n}\r\n\r\nexport interface UpdateProviderInstanceRequest {\r\n name: string;\r\n description?: string;\r\n systemContext?: string;\r\n department?: string;\r\n costCenter?: string;\r\n defaultModel?: string;\r\n maxTokensPerRequest?: number;\r\n budgetLimit?: number;\r\n budgetPeriodType?: string;\r\n budgetPeriodStart?: string;\r\n displayOrder?: number;\r\n}\r\n\r\nexport interface SetKeyRequest {\r\n value: string;\r\n}\r\n\r\nexport interface AddInstanceTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface SetAllTenantsRequest {\r\n isAllTenants: boolean;\r\n}\r\n\r\nexport interface AddInstanceSkillRequest {\r\n skillId: string;\r\n}\r\n\r\nexport interface ProviderDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n logoUrl: string | null;\r\n websiteUrl: string | null;\r\n documentationUrl: string | null;\r\n apiKeyUrl: string | null;\r\n apiBaseUrl: string | null;\r\n adminApiBaseUrl: string | null;\r\n supportsAdminApi: boolean;\r\n isActive: boolean;\r\n displayOrder: number;\r\n keys: ApiKeyListDto[];\r\n models: ModelListDto[];\r\n}\r\n\r\nexport interface ApiKeyListDto {\r\n id: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n maskedValue: string;\r\n}\r\n\r\nexport interface ApiKeyDetailDto {\r\n id: string;\r\n providerId: string;\r\n providerCode: string;\r\n providerName: string;\r\n keyType: string;\r\n alias: string | null;\r\n description: string | null;\r\n isActive: boolean;\r\n expiresAt: string | null;\r\n lastUsedAt: string | null;\r\n lastUsedByUserId: string | null;\r\n rotatedAt: string | null;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n maskedValue: string;\r\n isExpired: boolean;\r\n}\r\n\r\nexport interface CreateApiKeyRequest {\r\n keyType: string;\r\n value: string;\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface UpdateApiKeyRequest {\r\n alias?: string;\r\n description?: string;\r\n expiresAt?: string;\r\n}\r\n\r\nexport interface RotateKeyRequest {\r\n newValue: string;\r\n}\r\n\r\nexport interface RevealKeyResponse {\r\n value: string;\r\n}\r\n\r\n// Types for AI Skills\r\nexport interface AiSkillListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n tags: string | null;\r\n blockCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n version: string;\r\n status: string;\r\n isTemplate: boolean;\r\n parentSkillId: string | null;\r\n tags: string | null;\r\n blocks: AiSkillBlockDto[];\r\n variables: string[];\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiSkillBlockDto {\r\n id: string;\r\n blockDefinitionId: string | null;\r\n blockDefinitionCode: string | null;\r\n blockType: string;\r\n label: string | null;\r\n content: string;\r\n displayOrder: number;\r\n isRequired: boolean;\r\n isEnabled: boolean;\r\n condition: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionListDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n}\r\n\r\nexport interface AiSkillBlockDefinitionDetailDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n blockType: string;\r\n defaultTitle: string | null;\r\n defaultContent: string | null;\r\n description: string | null;\r\n isSystem: boolean;\r\n isGlobal: boolean;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n variables: string[];\r\n}\r\n\r\nexport interface CreateAiSkillRequest {\r\n code: string;\r\n name: string;\r\n description?: string;\r\n version?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n blocks?: CreateAiSkillBlockRequest[];\r\n}\r\n\r\nexport interface UpdateAiSkillRequest {\r\n name?: string;\r\n description?: string;\r\n isTemplate?: boolean;\r\n tags?: string;\r\n}\r\n\r\nexport interface CreateAiSkillBlockRequest {\r\n blockDefinitionId?: string;\r\n blockType: string;\r\n label: string;\r\n content: string;\r\n displayOrder: number;\r\n isRequired?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface UpdateAiSkillBlockRequest {\r\n label?: string;\r\n content?: string;\r\n isRequired?: boolean;\r\n isEnabled?: boolean;\r\n condition?: string;\r\n}\r\n\r\nexport interface CreateBlockDefinitionRequest {\r\n name: string;\r\n blockType: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface UpdateBlockDefinitionRequest {\r\n name?: string;\r\n defaultTitle?: string;\r\n defaultContent?: string;\r\n description?: string;\r\n}\r\n\r\nexport interface ReorderBlocksRequest {\r\n blockIds: string[];\r\n}\r\n\r\nexport interface AiSkillPreviewRequest {\r\n variables: Record<string, string>;\r\n}\r\n\r\n// Types for Output Schemas\r\nexport type OutputSchemaCategory =\r\n | 'Support'\r\n | 'Content'\r\n | 'Analysis'\r\n | 'Translation'\r\n | 'CodeGeneration'\r\n | 'DataExtraction'\r\n | 'Custom';\r\n\r\nexport interface SchemaListDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdAt: string;\r\n}\r\n\r\nexport interface SchemaDetailDto {\r\n id: string;\r\n code: string;\r\n version: number;\r\n name: string;\r\n description: string | null;\r\n jsonSchema: string;\r\n uiSchema: string | null;\r\n dotNetType: string | null;\r\n category: OutputSchemaCategory;\r\n isActive: boolean;\r\n usageCount: number;\r\n createdBy: string | null;\r\n createdAt: string;\r\n updatedBy: string | null;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CreateSchemaRequest {\r\n code: string;\r\n name: string;\r\n jsonSchema: string;\r\n category?: OutputSchemaCategory;\r\n description?: string;\r\n uiSchema?: string;\r\n dotNetType?: string;\r\n}\r\n\r\nexport interface UpdateSchemaRequest {\r\n name: string;\r\n description?: string;\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n category: OutputSchemaCategory;\r\n}\r\n\r\nexport interface IncrementVersionRequest {\r\n jsonSchema: string;\r\n uiSchema?: string;\r\n}\r\n\r\nexport interface PromptPreviewResponse {\r\n fullPrompt: string;\r\n}\r\n\r\n// Types for Prompt Execution\r\nexport interface ExecutePromptRequest {\r\n variables?: Record<string, string>;\r\n providerId?: string;\r\n modelId?: string;\r\n}\r\n\r\nexport interface AiSkillExecutionResponse {\r\n skillId: string;\r\n skillName: string;\r\n response: string;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n latencyMs: number;\r\n providerId: string;\r\n modelId: string;\r\n modelName: string;\r\n success: boolean;\r\n error?: string;\r\n}\r\n\r\n// Types for AI Usage (by instance/profile)\r\nexport interface InstanceUsageDto {\r\n instanceId: string;\r\n instanceCode: string;\r\n instanceName: string;\r\n department: string | null;\r\n costCenter: string | null;\r\n providerName: string;\r\n totalTokens: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n requestCount: number;\r\n successCount: number;\r\n errorCount: number;\r\n avgLatencyMs: number;\r\n lastUsedAt: string | null;\r\n}\r\n\r\nexport interface InstanceEventDto {\r\n id: string;\r\n providerName: string;\r\n modelName: string;\r\n featureName: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n totalTokens: number;\r\n costAmount: number;\r\n latencyMs: number;\r\n statusCode: number;\r\n errorMessage: string | null;\r\n userId: string | null;\r\n requestId: string | null;\r\n timestamp: string;\r\n}\r\n\r\n// Types for AI Agents\r\nexport interface AiAgentListDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n stepCount: number;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface AiAgentStepDto {\r\n id: string;\r\n agentId: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n isActive: boolean;\r\n inputMappingJson: string | null;\r\n outputStateKey: string | null;\r\n continueOnFailure: boolean;\r\n createdAt: string;\r\n updatedAt: string | null;\r\n skill: {\r\n id: string;\r\n code: string;\r\n name: string;\r\n description: string | null;\r\n } | null;\r\n}\r\n\r\nexport interface AiAgentDetailDto {\r\n id: string;\r\n agentCode: string;\r\n name: string;\r\n description: string | null;\r\n moduleId: string;\r\n isActive: boolean;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n createdAt: string;\r\n createdBy: string | null;\r\n updatedAt: string | null;\r\n updatedBy: string | null;\r\n steps: AiAgentStepDto[];\r\n}\r\n\r\nexport interface AiAgentExecutionListDto {\r\n id: string;\r\n agentCode: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\nexport interface AiAgentStepExecutionDto {\r\n id: string;\r\n executionId: string;\r\n stepId: string;\r\n skillCode: string;\r\n stepOrder: number;\r\n stepName: string;\r\n status: number;\r\n startedAt: string;\r\n completedAt: string | null;\r\n inputVariablesJson: string | null;\r\n outputJson: string | null;\r\n errorMessage: string | null;\r\n inputTokens: number;\r\n outputTokens: number;\r\n cost: number;\r\n executionTimeMs: number;\r\n providerCode: string | null;\r\n modelCode: string | null;\r\n}\r\n\r\nexport interface AiAgentExecutionDetailDto extends AiAgentExecutionListDto {\r\n agentId: string;\r\n inputStateJson: string | null;\r\n finalStateJson: string | null;\r\n userId: string | null;\r\n stepExecutions: AiAgentStepExecutionDto[];\r\n}\r\n\r\nexport interface CreateAgentRequest {\r\n agentCode: string;\r\n name: string;\r\n moduleId: string;\r\n description?: string;\r\n maxParallelism?: number;\r\n timeoutSeconds?: number;\r\n}\r\n\r\nexport interface UpdateAgentRequest {\r\n name: string;\r\n description?: string;\r\n maxParallelism: number;\r\n timeoutSeconds: number;\r\n steps?: UpdateAgentStepRequest[];\r\n}\r\n\r\nexport interface UpdateAgentStepRequest {\r\n id?: string;\r\n skillId: string;\r\n name: string;\r\n stepOrder: number;\r\n inputMappingJson?: string;\r\n outputStateKey?: string;\r\n continueOnFailure?: boolean;\r\n}\r\n\r\nexport interface AgentExecutionResult {\r\n success: boolean;\r\n executionId: string;\r\n status: number;\r\n finalState: Record<string, string>;\r\n executedSteps: number;\r\n totalSteps: number;\r\n totalInputTokens: number;\r\n totalOutputTokens: number;\r\n totalCost: number;\r\n totalExecutionTimeMs: number;\r\n errorMessage: string | null;\r\n}\r\n\r\n// API Service\r\nexport const aiApi = {\r\n // Dashboard\r\n dashboard: {\r\n getOverview: (days: number = 30) =>\r\n api.get<DashboardOverviewDto>('/api/administration/ai/dashboard/overview', { params: { days } }),\r\n\r\n getByProvider: (startDate?: string, endDate?: string) =>\r\n api.get<ProviderUsageDto[]>('/api/administration/ai/dashboard/by-provider', { params: { startDate, endDate } }),\r\n\r\n getByModel: (startDate?: string, endDate?: string, providerId?: string) =>\r\n api.get<ModelUsageDto[]>('/api/administration/ai/dashboard/by-model', { params: { startDate, endDate, providerId } }),\r\n\r\n getDailyCosts: (days: number = 30, providerId?: string) =>\r\n api.get<DailyCostDto[]>('/api/administration/ai/dashboard/daily-costs', { params: { days, providerId } }),\r\n\r\n getRecentEvents: (count: number = 50, providerId?: string) =>\r\n api.get<UsageEventDto[]>('/api/administration/ai/dashboard/recent-events', { params: { count, providerId } }),\r\n },\r\n\r\n // Settings (Providers & Keys)\r\n settings: {\r\n getProviders: () =>\r\n api.get<ProviderListDto[]>('/api/administration/ai/settings/providers'),\r\n\r\n getProvider: (providerId: string) =>\r\n api.get<ProviderDetailDto>(`/api/administration/ai/settings/providers/${providerId}`),\r\n\r\n getModels: (category?: string, providerId?: string) =>\r\n api.get<ModelListDto[]>('/api/administration/ai/settings/models', { params: { category, providerId } }),\r\n\r\n getKey: (keyId: string) =>\r\n api.get<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`),\r\n\r\n createKey: (providerId: string, data: CreateApiKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/providers/${providerId}/keys`, data),\r\n\r\n updateKey: (keyId: string, data: UpdateApiKeyRequest) =>\r\n api.put<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}`, data),\r\n\r\n rotateKey: (keyId: string, data: RotateKeyRequest) =>\r\n api.post<ApiKeyDetailDto>(`/api/administration/ai/settings/keys/${keyId}/rotate`, data),\r\n\r\n revealKey: (keyId: string) =>\r\n api.post<RevealKeyResponse>(`/api/administration/ai/settings/keys/${keyId}/reveal`),\r\n\r\n activateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/activate`),\r\n\r\n deactivateKey: (keyId: string) =>\r\n api.post(`/api/administration/ai/settings/keys/${keyId}/deactivate`),\r\n\r\n deleteKey: (keyId: string) =>\r\n api.delete(`/api/administration/ai/settings/keys/${keyId}`),\r\n },\r\n\r\n // Provider Instances\r\n instances: {\r\n getAll: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances'),\r\n\r\n getMyInstances: () =>\r\n api.get<ProviderInstanceListDto[]>('/api/administration/ai/instances/my-instances'),\r\n\r\n getById: (instanceId: string) =>\r\n api.get<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n generateCode: (providerId: string) =>\r\n api.get<GenerateCodeResponse>(`/api/administration/ai/instances/generate-code/${providerId}`),\r\n\r\n create: (data: CreateProviderInstanceRequest) =>\r\n api.post<ProviderInstanceDetailDto>('/api/administration/ai/instances', data),\r\n\r\n update: (instanceId: string, data: UpdateProviderInstanceRequest) =>\r\n api.put<ProviderInstanceDetailDto>(`/api/administration/ai/instances/${instanceId}`, data),\r\n\r\n delete: (instanceId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}`),\r\n\r\n setApiKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/api-key`, data),\r\n\r\n setAdminKey: (instanceId: string, data: SetKeyRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/admin-key`, data),\r\n\r\n toggleActive: (instanceId: string) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/toggle-active`),\r\n\r\n addTenant: (instanceId: string, data: AddInstanceTenantRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/tenants`, data),\r\n\r\n removeTenant: (instanceId: string, tenantId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/tenants/${tenantId}`),\r\n\r\n setAllTenants: (instanceId: string, data: SetAllTenantsRequest) =>\r\n api.put(`/api/administration/ai/instances/${instanceId}/all-tenants`, data),\r\n\r\n addSkill: (instanceId: string, data: AddInstanceSkillRequest) =>\r\n api.post(`/api/administration/ai/instances/${instanceId}/skills`, data),\r\n\r\n removeSkill: (instanceId: string, skillId: string) =>\r\n api.delete(`/api/administration/ai/instances/${instanceId}/skills/${skillId}`),\r\n },\r\n\r\n // Skills\r\n skills: {\r\n getAll: (params?: { search?: string; category?: string; status?: string }) =>\r\n api.get<AiSkillListDto[]>('/api/administration/ai/skills', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`),\r\n\r\n getByCode: (code: string, version?: string) =>\r\n api.get<AiSkillDetailDto>(`/api/administration/ai/skills/by-code/${code}`, { params: { version } }),\r\n\r\n create: (data: CreateAiSkillRequest) =>\r\n api.post<AiSkillDetailDto>('/api/administration/ai/skills', data),\r\n\r\n update: (id: string, data: UpdateAiSkillRequest) =>\r\n api.put<AiSkillDetailDto>(`/api/administration/ai/skills/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/${id}`),\r\n\r\n activate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/activate`),\r\n\r\n deprecate: (id: string) =>\r\n api.post(`/api/administration/ai/skills/${id}/deprecate`),\r\n\r\n clone: (id: string) =>\r\n api.post<AiSkillDetailDto>(`/api/administration/ai/skills/${id}/clone`),\r\n\r\n preview: (id: string, data: AiSkillPreviewRequest) =>\r\n api.post<PromptPreviewResponse>(`/api/administration/ai/skills/${id}/preview`, data),\r\n\r\n execute: (id: string, data: ExecutePromptRequest) =>\r\n api.post<AiSkillExecutionResponse>(`/api/administration/ai/skills/${id}/execute`, data),\r\n\r\n // Blocks\r\n addBlock: (skillId: string, data: CreateAiSkillBlockRequest) =>\r\n api.post<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks`, data),\r\n\r\n updateBlock: (skillId: string, blockId: string, data: UpdateAiSkillBlockRequest) =>\r\n api.put<AiSkillBlockDto>(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`, data),\r\n\r\n deleteBlock: (skillId: string, blockId: string) =>\r\n api.delete(`/api/administration/ai/skills/${skillId}/blocks/${blockId}`),\r\n\r\n reorderBlocks: (skillId: string, data: ReorderBlocksRequest) =>\r\n api.put(`/api/administration/ai/skills/${skillId}/blocks/reorder`, data),\r\n },\r\n\r\n // Block Definitions\r\n blockDefinitions: {\r\n getAll: (params?: { search?: string; blockType?: string }) =>\r\n api.get<AiSkillBlockDefinitionListDto[]>('/api/administration/ai/skills/block-definitions', { params }),\r\n\r\n getById: (id: string) =>\r\n api.get<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`),\r\n\r\n create: (data: CreateBlockDefinitionRequest) =>\r\n api.post<AiSkillBlockDefinitionDetailDto>('/api/administration/ai/skills/block-definitions', data),\r\n\r\n update: (id: string, data: UpdateBlockDefinitionRequest) =>\r\n api.put<AiSkillBlockDefinitionDetailDto>(`/api/administration/ai/skills/block-definitions/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/skills/block-definitions/${id}`),\r\n },\r\n\r\n // Output Schemas\r\n schemas: {\r\n getAll: (params?: { category?: OutputSchemaCategory; isActive?: boolean }) =>\r\n api.get<SchemaListDto[]>('/api/administration/ai/schemas', { params }),\r\n\r\n getById: (schemaId: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`),\r\n\r\n getByCode: (code: string, version?: number) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/by-code/${code}`, { params: { version } }),\r\n\r\n getActiveByCode: (code: string) =>\r\n api.get<SchemaDetailDto>(`/api/administration/ai/schemas/active/${code}`),\r\n\r\n create: (data: CreateSchemaRequest) =>\r\n api.post<SchemaDetailDto>('/api/administration/ai/schemas', data),\r\n\r\n update: (schemaId: string, data: UpdateSchemaRequest) =>\r\n api.put<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}`, data),\r\n\r\n incrementVersion: (schemaId: string, data: IncrementVersionRequest) =>\r\n api.post<SchemaDetailDto>(`/api/administration/ai/schemas/${schemaId}/increment-version`, data),\r\n\r\n activate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/activate`),\r\n\r\n deactivate: (schemaId: string) =>\r\n api.post(`/api/administration/ai/schemas/${schemaId}/deactivate`),\r\n\r\n delete: (schemaId: string) =>\r\n api.delete(`/api/administration/ai/schemas/${schemaId}`),\r\n },\r\n\r\n // Usage (by provider instance/profile)\r\n usage: {\r\n getByInstance: (startDate?: string, endDate?: string) =>\r\n api.get<InstanceUsageDto[]>('/api/administration/ai/monitoring/by-instance', { params: { startDate, endDate } }),\r\n\r\n getInstanceEvents: (instanceId: string, startDate?: string, endDate?: string, count: number = 100) =>\r\n api.get<InstanceEventDto[]>(`/api/administration/ai/monitoring/instance/${instanceId}/events`, { params: { startDate, endDate, count } }),\r\n },\r\n\r\n // AI Agents\r\n agents: {\r\n getAll: () =>\r\n api.get<AiAgentListDto[]>('/api/administration/ai/agents'),\r\n\r\n getById: (id: string) =>\r\n api.get<AiAgentDetailDto>(`/api/administration/ai/agents/${id}`),\r\n\r\n create: (data: CreateAgentRequest) =>\r\n api.post<AiAgentDetailDto>('/api/administration/ai/agents', data),\r\n\r\n update: (id: string, data: UpdateAgentRequest) =>\r\n api.put(`/api/administration/ai/agents/${id}`, data),\r\n\r\n delete: (id: string) =>\r\n api.delete(`/api/administration/ai/agents/${id}`),\r\n\r\n execute: (id: string, initialState: Record<string, string>) =>\r\n api.post<AgentExecutionResult>(`/api/administration/ai/agents/${id}/execute`, initialState),\r\n\r\n getExecutions: (id: string) =>\r\n api.get<AiAgentExecutionListDto[]>(`/api/administration/ai/agents/${id}/executions`),\r\n\r\n getExecutionDetail: (executionId: string) =>\r\n api.get<AiAgentExecutionDetailDto>(`/api/administration/ai/agents/executions/${executionId}`),\r\n },\r\n};\r\n"],"names":["aiApi","days","api","startDate","endDate","providerId","count","category","keyId","data","instanceId","tenantId","skillId","params","id","code","version","blockId","schemaId","initialState","executionId"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { i as t } from "./index-CwSaRXXg.js";
1
+ import { i as t } from "./index-lpIzhufD.js";
2
2
  const c = {
3
3
  getDashboardStats: async () => await t.get(
4
4
  "/api/administration/applications/application-analytics/dashboard"
@@ -47,4 +47,4 @@ const c = {
47
47
  export {
48
48
  c as a
49
49
  };
50
- //# sourceMappingURL=applicationAnalyticsApi-B8AhFYLr.js.map
50
+ //# sourceMappingURL=applicationAnalyticsApi-Bwa75Fzd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applicationAnalyticsApi-B8AhFYLr.js","sources":["../../src/services/api/applicationAnalyticsApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\nimport type { PaginatedResult } from '../../types/pagination';\r\n\r\n// DTOs\r\nexport interface PopularApplicationDto {\r\n applicationId: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface ActivityItemDto {\r\n userId: string;\r\n userName: string;\r\n applicationName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationDashboardStatsDto {\r\n totalApplications: number;\r\n activeApplications: number;\r\n totalUsers: number;\r\n activeUsersToday: number;\r\n avgSessionDuration: number;\r\n growthRate: number;\r\n mostPopularApps: PopularApplicationDto[];\r\n recentActivity: ActivityItemDto[];\r\n dailyTrend: DailyAccessTrendDto[];\r\n}\r\n\r\nexport interface DailyAccessTrendDto {\r\n date: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface TopUserDto {\r\n userId: string;\r\n userName: string;\r\n accessCount: number;\r\n avgDurationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationAnalyticsDto {\r\n applicationName: string;\r\n totalAccesses: number;\r\n uniqueUsers: number;\r\n avgDurationSeconds: number;\r\n dailyAccessTrend: DailyAccessTrendDto[];\r\n topUsers: TopUserDto[];\r\n}\r\n\r\nexport interface ApplicationActivityDto {\r\n userId: string;\r\n userName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface DeviceAnalyticsDto {\r\n byDeviceType: DeviceStatsItemDto[];\r\n byBrowser: BrowserStatsItemDto[];\r\n}\r\n\r\nexport interface DeviceStatsItemDto {\r\n deviceType: string;\r\n count: number;\r\n percentage: number;\r\n}\r\n\r\nexport interface BrowserStatsItemDto {\r\n browser: string;\r\n count: number;\r\n}\r\n\r\nexport interface EngagementMetricsDto {\r\n avgSessionDuration: number;\r\n sessionDistribution: SessionBucketDto[];\r\n peakUsageHours: PeakUsageHourDto[];\r\n dailyActiveUsers: number;\r\n retentionRate: number;\r\n}\r\n\r\nexport interface SessionBucketDto {\r\n bucket: string;\r\n label: string;\r\n count: number;\r\n}\r\n\r\nexport interface PeakUsageHourDto {\r\n hour: number;\r\n accessCount: number;\r\n}\r\n\r\nexport interface ModuleAnalyticsDto {\r\n moduleId: string;\r\n moduleName: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n avgDuration: number;\r\n totalDurationMinutes: number;\r\n sessionCount: number;\r\n}\r\n\r\n// Hierarchy Drill-Down Types\r\nexport interface HierarchyDrillDownDto {\r\n level: number;\r\n period: number;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n items: HierarchyItemDto[];\r\n breadcrumb: BreadcrumbItemDto[];\r\n}\r\n\r\nexport interface HierarchyItemDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n totalDurationMinutes: number;\r\n hasChildren: boolean;\r\n level: number;\r\n parentId?: string;\r\n}\r\n\r\nexport interface BreadcrumbItemDto {\r\n id: string;\r\n name: string;\r\n level: number;\r\n}\r\n\r\n// Application Trends Types\r\nexport interface ApplicationTrendsDto {\r\n period: number;\r\n dailyData: ApplicationTrendDayDto[];\r\n applications: ApplicationSeriesDto[];\r\n}\r\n\r\nexport interface ApplicationTrendDayDto {\r\n date: string;\r\n applicationCounts: Record<string, number>;\r\n applicationDurations: Record<string, number>;\r\n applicationSessionCounts: Record<string, number>;\r\n}\r\n\r\nexport interface ApplicationSeriesDto {\r\n name: string;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n totalSessionCount: number;\r\n color: string;\r\n}\r\n\r\nexport const applicationAnalyticsApi = {\r\n getDashboardStats: async (): Promise<ApplicationDashboardStatsDto> => {\r\n return await api.get<ApplicationDashboardStatsDto>(\r\n '/api/administration/applications/application-analytics/dashboard'\r\n );\r\n },\r\n\r\n getApplicationAnalytics: async (applicationId: string): Promise<ApplicationAnalyticsDto> => {\r\n return await api.get<ApplicationAnalyticsDto>(\r\n `/api/administration/applications/application-analytics/${applicationId}/analytics`\r\n );\r\n },\r\n\r\n getApplicationActivity: async (\r\n applicationId: string,\r\n page: number = 1,\r\n pageSize: number = 20\r\n ): Promise<PaginatedResult<ApplicationActivityDto>> => {\r\n return await api.get<PaginatedResult<ApplicationActivityDto>>(\r\n `/api/administration/applications/application-analytics/${applicationId}/recent-activity`,\r\n {\r\n params: { page, pageSize }\r\n }\r\n );\r\n },\r\n\r\n getDeviceStats: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<DeviceAnalyticsDto> => {\r\n return await api.get<DeviceAnalyticsDto>(\r\n '/api/administration/applications/application-analytics/device-stats',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getEngagementMetrics: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<EngagementMetricsDto> => {\r\n return await api.get<EngagementMetricsDto>(\r\n '/api/administration/applications/application-analytics/engagement',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getTopModules: async (limit: number = 10, period: number = 30): Promise<ModuleAnalyticsDto[]> => {\r\n return await api.get<ModuleAnalyticsDto[]>(\r\n '/api/administration/applications/application-analytics/modules/top',\r\n {\r\n params: { limit, period }\r\n }\r\n );\r\n },\r\n\r\n getHierarchyData: async (\r\n level: number = 0,\r\n applicationId?: string,\r\n period: number = 30\r\n ): Promise<HierarchyDrillDownDto> => {\r\n const params: Record<string, string | number> = { level, period };\r\n if (applicationId) params.applicationId = applicationId;\r\n\r\n return await api.get<HierarchyDrillDownDto>(\r\n '/api/administration/applications/application-analytics/hierarchy',\r\n { params }\r\n );\r\n },\r\n\r\n getTrendsByApplication: async (period: number = 30): Promise<ApplicationTrendsDto> => {\r\n return await api.get<ApplicationTrendsDto>(\r\n '/api/administration/applications/application-analytics/trends-by-application',\r\n { params: { period } }\r\n );\r\n }\r\n};\r\n"],"names":["applicationAnalyticsApi","api","applicationId","page","pageSize","period","config","limit","level","params"],"mappings":";AA8JO,MAAMA,IAA0B;AAAA,EACrC,mBAAmB,YACV,MAAMC,EAAI;AAAA,IACf;AAAA,EAAA;AAAA,EAIJ,yBAAyB,OAAOC,MACvB,MAAMD,EAAI;AAAA,IACf,0DAA0DC,CAAa;AAAA,EAAA;AAAA,EAI3E,wBAAwB,OACtBA,GACAC,IAAe,GACfC,IAAmB,OAEZ,MAAMH,EAAI;AAAA,IACf,0DAA0DC,CAAa;AAAA,IACvE;AAAA,MACE,QAAQ,EAAE,MAAAC,GAAM,UAAAC,EAAA;AAAA,IAAS;AAAA,EAC3B;AAAA,EAIJ,gBAAgB,OAAOC,IAAiB,IAAIC,MACnC,MAAML,EAAI;AAAA,IACf;AAAA,IACA;AAAA,MACE,QAAQ,EAAE,QAAAI,EAAA;AAAA,MACV,QAAQC,GAAQ;AAAA,IAAA;AAAA,EAClB;AAAA,EAIJ,sBAAsB,OAAOD,IAAiB,IAAIC,MACzC,MAAML,EAAI;AAAA,IACf;AAAA,IACA;AAAA,MACE,QAAQ,EAAE,QAAAI,EAAA;AAAA,MACV,QAAQC,GAAQ;AAAA,IAAA;AAAA,EAClB;AAAA,EAIJ,eAAe,OAAOC,IAAgB,IAAIF,IAAiB,OAClD,MAAMJ,EAAI;AAAA,IACf;AAAA,IACA;AAAA,MACE,QAAQ,EAAE,OAAAM,GAAO,QAAAF,EAAA;AAAA,IAAO;AAAA,EAC1B;AAAA,EAIJ,kBAAkB,OAChBG,IAAgB,GAChBN,GACAG,IAAiB,OACkB;AACnC,UAAMI,IAA0C,EAAE,OAAAD,GAAO,QAAAH,EAAA;AACzD,WAAIH,QAAsB,gBAAgBA,IAEnC,MAAMD,EAAI;AAAA,MACf;AAAA,MACA,EAAE,QAAAQ,EAAA;AAAA,IAAO;AAAA,EAEb;AAAA,EAEA,wBAAwB,OAAOJ,IAAiB,OACvC,MAAMJ,EAAI;AAAA,IACf;AAAA,IACA,EAAE,QAAQ,EAAE,QAAAI,EAAA,EAAO;AAAA,EAAE;AAG3B;"}
1
+ {"version":3,"file":"applicationAnalyticsApi-Bwa75Fzd.js","sources":["../../src/services/api/applicationAnalyticsApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\nimport type { PaginatedResult } from '../../types/pagination';\r\n\r\n// DTOs\r\nexport interface PopularApplicationDto {\r\n applicationId: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface ActivityItemDto {\r\n userId: string;\r\n userName: string;\r\n applicationName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationDashboardStatsDto {\r\n totalApplications: number;\r\n activeApplications: number;\r\n totalUsers: number;\r\n activeUsersToday: number;\r\n avgSessionDuration: number;\r\n growthRate: number;\r\n mostPopularApps: PopularApplicationDto[];\r\n recentActivity: ActivityItemDto[];\r\n dailyTrend: DailyAccessTrendDto[];\r\n}\r\n\r\nexport interface DailyAccessTrendDto {\r\n date: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface TopUserDto {\r\n userId: string;\r\n userName: string;\r\n accessCount: number;\r\n avgDurationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationAnalyticsDto {\r\n applicationName: string;\r\n totalAccesses: number;\r\n uniqueUsers: number;\r\n avgDurationSeconds: number;\r\n dailyAccessTrend: DailyAccessTrendDto[];\r\n topUsers: TopUserDto[];\r\n}\r\n\r\nexport interface ApplicationActivityDto {\r\n userId: string;\r\n userName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface DeviceAnalyticsDto {\r\n byDeviceType: DeviceStatsItemDto[];\r\n byBrowser: BrowserStatsItemDto[];\r\n}\r\n\r\nexport interface DeviceStatsItemDto {\r\n deviceType: string;\r\n count: number;\r\n percentage: number;\r\n}\r\n\r\nexport interface BrowserStatsItemDto {\r\n browser: string;\r\n count: number;\r\n}\r\n\r\nexport interface EngagementMetricsDto {\r\n avgSessionDuration: number;\r\n sessionDistribution: SessionBucketDto[];\r\n peakUsageHours: PeakUsageHourDto[];\r\n dailyActiveUsers: number;\r\n retentionRate: number;\r\n}\r\n\r\nexport interface SessionBucketDto {\r\n bucket: string;\r\n label: string;\r\n count: number;\r\n}\r\n\r\nexport interface PeakUsageHourDto {\r\n hour: number;\r\n accessCount: number;\r\n}\r\n\r\nexport interface ModuleAnalyticsDto {\r\n moduleId: string;\r\n moduleName: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n avgDuration: number;\r\n totalDurationMinutes: number;\r\n sessionCount: number;\r\n}\r\n\r\n// Hierarchy Drill-Down Types\r\nexport interface HierarchyDrillDownDto {\r\n level: number;\r\n period: number;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n items: HierarchyItemDto[];\r\n breadcrumb: BreadcrumbItemDto[];\r\n}\r\n\r\nexport interface HierarchyItemDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n totalDurationMinutes: number;\r\n hasChildren: boolean;\r\n level: number;\r\n parentId?: string;\r\n}\r\n\r\nexport interface BreadcrumbItemDto {\r\n id: string;\r\n name: string;\r\n level: number;\r\n}\r\n\r\n// Application Trends Types\r\nexport interface ApplicationTrendsDto {\r\n period: number;\r\n dailyData: ApplicationTrendDayDto[];\r\n applications: ApplicationSeriesDto[];\r\n}\r\n\r\nexport interface ApplicationTrendDayDto {\r\n date: string;\r\n applicationCounts: Record<string, number>;\r\n applicationDurations: Record<string, number>;\r\n applicationSessionCounts: Record<string, number>;\r\n}\r\n\r\nexport interface ApplicationSeriesDto {\r\n name: string;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n totalSessionCount: number;\r\n color: string;\r\n}\r\n\r\nexport const applicationAnalyticsApi = {\r\n getDashboardStats: async (): Promise<ApplicationDashboardStatsDto> => {\r\n return await api.get<ApplicationDashboardStatsDto>(\r\n '/api/administration/applications/application-analytics/dashboard'\r\n );\r\n },\r\n\r\n getApplicationAnalytics: async (applicationId: string): Promise<ApplicationAnalyticsDto> => {\r\n return await api.get<ApplicationAnalyticsDto>(\r\n `/api/administration/applications/application-analytics/${applicationId}/analytics`\r\n );\r\n },\r\n\r\n getApplicationActivity: async (\r\n applicationId: string,\r\n page: number = 1,\r\n pageSize: number = 20\r\n ): Promise<PaginatedResult<ApplicationActivityDto>> => {\r\n return await api.get<PaginatedResult<ApplicationActivityDto>>(\r\n `/api/administration/applications/application-analytics/${applicationId}/recent-activity`,\r\n {\r\n params: { page, pageSize }\r\n }\r\n );\r\n },\r\n\r\n getDeviceStats: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<DeviceAnalyticsDto> => {\r\n return await api.get<DeviceAnalyticsDto>(\r\n '/api/administration/applications/application-analytics/device-stats',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getEngagementMetrics: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<EngagementMetricsDto> => {\r\n return await api.get<EngagementMetricsDto>(\r\n '/api/administration/applications/application-analytics/engagement',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getTopModules: async (limit: number = 10, period: number = 30): Promise<ModuleAnalyticsDto[]> => {\r\n return await api.get<ModuleAnalyticsDto[]>(\r\n '/api/administration/applications/application-analytics/modules/top',\r\n {\r\n params: { limit, period }\r\n }\r\n );\r\n },\r\n\r\n getHierarchyData: async (\r\n level: number = 0,\r\n applicationId?: string,\r\n period: number = 30\r\n ): Promise<HierarchyDrillDownDto> => {\r\n const params: Record<string, string | number> = { level, period };\r\n if (applicationId) params.applicationId = applicationId;\r\n\r\n return await api.get<HierarchyDrillDownDto>(\r\n '/api/administration/applications/application-analytics/hierarchy',\r\n { params }\r\n );\r\n },\r\n\r\n getTrendsByApplication: async (period: number = 30): Promise<ApplicationTrendsDto> => {\r\n return await api.get<ApplicationTrendsDto>(\r\n '/api/administration/applications/application-analytics/trends-by-application',\r\n { params: { period } }\r\n );\r\n }\r\n};\r\n"],"names":["applicationAnalyticsApi","api","applicationId","page","pageSize","period","config","limit","level","params"],"mappings":";AA8JO,MAAMA,IAA0B;AAAA,EACrC,mBAAmB,YACV,MAAMC,EAAI;AAAA,IACf;AAAA,EAAA;AAAA,EAIJ,yBAAyB,OAAOC,MACvB,MAAMD,EAAI;AAAA,IACf,0DAA0DC,CAAa;AAAA,EAAA;AAAA,EAI3E,wBAAwB,OACtBA,GACAC,IAAe,GACfC,IAAmB,OAEZ,MAAMH,EAAI;AAAA,IACf,0DAA0DC,CAAa;AAAA,IACvE;AAAA,MACE,QAAQ,EAAE,MAAAC,GAAM,UAAAC,EAAA;AAAA,IAAS;AAAA,EAC3B;AAAA,EAIJ,gBAAgB,OAAOC,IAAiB,IAAIC,MACnC,MAAML,EAAI;AAAA,IACf;AAAA,IACA;AAAA,MACE,QAAQ,EAAE,QAAAI,EAAA;AAAA,MACV,QAAQC,GAAQ;AAAA,IAAA;AAAA,EAClB;AAAA,EAIJ,sBAAsB,OAAOD,IAAiB,IAAIC,MACzC,MAAML,EAAI;AAAA,IACf;AAAA,IACA;AAAA,MACE,QAAQ,EAAE,QAAAI,EAAA;AAAA,MACV,QAAQC,GAAQ;AAAA,IAAA;AAAA,EAClB;AAAA,EAIJ,eAAe,OAAOC,IAAgB,IAAIF,IAAiB,OAClD,MAAMJ,EAAI;AAAA,IACf;AAAA,IACA;AAAA,MACE,QAAQ,EAAE,OAAAM,GAAO,QAAAF,EAAA;AAAA,IAAO;AAAA,EAC1B;AAAA,EAIJ,kBAAkB,OAChBG,IAAgB,GAChBN,GACAG,IAAiB,OACkB;AACnC,UAAMI,IAA0C,EAAE,OAAAD,GAAO,QAAAH,EAAA;AACzD,WAAIH,QAAsB,gBAAgBA,IAEnC,MAAMD,EAAI;AAAA,MACf;AAAA,MACA,EAAE,QAAAQ,EAAA;AAAA,IAAO;AAAA,EAEb;AAAA,EAEA,wBAAwB,OAAOJ,IAAiB,OACvC,MAAMJ,EAAI;AAAA,IACf;AAAA,IACA,EAAE,QAAQ,EAAE,QAAAI,EAAA,EAAO;AAAA,EAAE;AAG3B;"}
@@ -1,2 +1,2 @@
1
- "use strict";const t=require("./index-2wUhd9Lu.js"),s={getDashboardStats:async()=>await t.api.get("/api/administration/applications/application-analytics/dashboard"),getApplicationAnalytics:async a=>await t.api.get(`/api/administration/applications/application-analytics/${a}/analytics`),getApplicationActivity:async(a,i=1,n=20)=>await t.api.get(`/api/administration/applications/application-analytics/${a}/recent-activity`,{params:{page:i,pageSize:n}}),getDeviceStats:async(a=30,i)=>await t.api.get("/api/administration/applications/application-analytics/device-stats",{params:{period:a},signal:i?.signal}),getEngagementMetrics:async(a=30,i)=>await t.api.get("/api/administration/applications/application-analytics/engagement",{params:{period:a},signal:i?.signal}),getTopModules:async(a=10,i=30)=>await t.api.get("/api/administration/applications/application-analytics/modules/top",{params:{limit:a,period:i}}),getHierarchyData:async(a=0,i,n=30)=>{const p={level:a,period:n};return i&&(p.applicationId=i),await t.api.get("/api/administration/applications/application-analytics/hierarchy",{params:p})},getTrendsByApplication:async(a=30)=>await t.api.get("/api/administration/applications/application-analytics/trends-by-application",{params:{period:a}})};exports.applicationAnalyticsApi=s;
2
- //# sourceMappingURL=applicationAnalyticsApi-Ce_1qOk-.js.map
1
+ "use strict";const t=require("./index-IgLVXPg8.js"),s={getDashboardStats:async()=>await t.api.get("/api/administration/applications/application-analytics/dashboard"),getApplicationAnalytics:async a=>await t.api.get(`/api/administration/applications/application-analytics/${a}/analytics`),getApplicationActivity:async(a,i=1,n=20)=>await t.api.get(`/api/administration/applications/application-analytics/${a}/recent-activity`,{params:{page:i,pageSize:n}}),getDeviceStats:async(a=30,i)=>await t.api.get("/api/administration/applications/application-analytics/device-stats",{params:{period:a},signal:i?.signal}),getEngagementMetrics:async(a=30,i)=>await t.api.get("/api/administration/applications/application-analytics/engagement",{params:{period:a},signal:i?.signal}),getTopModules:async(a=10,i=30)=>await t.api.get("/api/administration/applications/application-analytics/modules/top",{params:{limit:a,period:i}}),getHierarchyData:async(a=0,i,n=30)=>{const p={level:a,period:n};return i&&(p.applicationId=i),await t.api.get("/api/administration/applications/application-analytics/hierarchy",{params:p})},getTrendsByApplication:async(a=30)=>await t.api.get("/api/administration/applications/application-analytics/trends-by-application",{params:{period:a}})};exports.applicationAnalyticsApi=s;
2
+ //# sourceMappingURL=applicationAnalyticsApi-CLBqRPfN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applicationAnalyticsApi-Ce_1qOk-.js","sources":["../../src/services/api/applicationAnalyticsApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\nimport type { PaginatedResult } from '../../types/pagination';\r\n\r\n// DTOs\r\nexport interface PopularApplicationDto {\r\n applicationId: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface ActivityItemDto {\r\n userId: string;\r\n userName: string;\r\n applicationName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationDashboardStatsDto {\r\n totalApplications: number;\r\n activeApplications: number;\r\n totalUsers: number;\r\n activeUsersToday: number;\r\n avgSessionDuration: number;\r\n growthRate: number;\r\n mostPopularApps: PopularApplicationDto[];\r\n recentActivity: ActivityItemDto[];\r\n dailyTrend: DailyAccessTrendDto[];\r\n}\r\n\r\nexport interface DailyAccessTrendDto {\r\n date: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface TopUserDto {\r\n userId: string;\r\n userName: string;\r\n accessCount: number;\r\n avgDurationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationAnalyticsDto {\r\n applicationName: string;\r\n totalAccesses: number;\r\n uniqueUsers: number;\r\n avgDurationSeconds: number;\r\n dailyAccessTrend: DailyAccessTrendDto[];\r\n topUsers: TopUserDto[];\r\n}\r\n\r\nexport interface ApplicationActivityDto {\r\n userId: string;\r\n userName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface DeviceAnalyticsDto {\r\n byDeviceType: DeviceStatsItemDto[];\r\n byBrowser: BrowserStatsItemDto[];\r\n}\r\n\r\nexport interface DeviceStatsItemDto {\r\n deviceType: string;\r\n count: number;\r\n percentage: number;\r\n}\r\n\r\nexport interface BrowserStatsItemDto {\r\n browser: string;\r\n count: number;\r\n}\r\n\r\nexport interface EngagementMetricsDto {\r\n avgSessionDuration: number;\r\n sessionDistribution: SessionBucketDto[];\r\n peakUsageHours: PeakUsageHourDto[];\r\n dailyActiveUsers: number;\r\n retentionRate: number;\r\n}\r\n\r\nexport interface SessionBucketDto {\r\n bucket: string;\r\n label: string;\r\n count: number;\r\n}\r\n\r\nexport interface PeakUsageHourDto {\r\n hour: number;\r\n accessCount: number;\r\n}\r\n\r\nexport interface ModuleAnalyticsDto {\r\n moduleId: string;\r\n moduleName: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n avgDuration: number;\r\n totalDurationMinutes: number;\r\n sessionCount: number;\r\n}\r\n\r\n// Hierarchy Drill-Down Types\r\nexport interface HierarchyDrillDownDto {\r\n level: number;\r\n period: number;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n items: HierarchyItemDto[];\r\n breadcrumb: BreadcrumbItemDto[];\r\n}\r\n\r\nexport interface HierarchyItemDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n totalDurationMinutes: number;\r\n hasChildren: boolean;\r\n level: number;\r\n parentId?: string;\r\n}\r\n\r\nexport interface BreadcrumbItemDto {\r\n id: string;\r\n name: string;\r\n level: number;\r\n}\r\n\r\n// Application Trends Types\r\nexport interface ApplicationTrendsDto {\r\n period: number;\r\n dailyData: ApplicationTrendDayDto[];\r\n applications: ApplicationSeriesDto[];\r\n}\r\n\r\nexport interface ApplicationTrendDayDto {\r\n date: string;\r\n applicationCounts: Record<string, number>;\r\n applicationDurations: Record<string, number>;\r\n applicationSessionCounts: Record<string, number>;\r\n}\r\n\r\nexport interface ApplicationSeriesDto {\r\n name: string;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n totalSessionCount: number;\r\n color: string;\r\n}\r\n\r\nexport const applicationAnalyticsApi = {\r\n getDashboardStats: async (): Promise<ApplicationDashboardStatsDto> => {\r\n return await api.get<ApplicationDashboardStatsDto>(\r\n '/api/administration/applications/application-analytics/dashboard'\r\n );\r\n },\r\n\r\n getApplicationAnalytics: async (applicationId: string): Promise<ApplicationAnalyticsDto> => {\r\n return await api.get<ApplicationAnalyticsDto>(\r\n `/api/administration/applications/application-analytics/${applicationId}/analytics`\r\n );\r\n },\r\n\r\n getApplicationActivity: async (\r\n applicationId: string,\r\n page: number = 1,\r\n pageSize: number = 20\r\n ): Promise<PaginatedResult<ApplicationActivityDto>> => {\r\n return await api.get<PaginatedResult<ApplicationActivityDto>>(\r\n `/api/administration/applications/application-analytics/${applicationId}/recent-activity`,\r\n {\r\n params: { page, pageSize }\r\n }\r\n );\r\n },\r\n\r\n getDeviceStats: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<DeviceAnalyticsDto> => {\r\n return await api.get<DeviceAnalyticsDto>(\r\n '/api/administration/applications/application-analytics/device-stats',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getEngagementMetrics: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<EngagementMetricsDto> => {\r\n return await api.get<EngagementMetricsDto>(\r\n '/api/administration/applications/application-analytics/engagement',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getTopModules: async (limit: number = 10, period: number = 30): Promise<ModuleAnalyticsDto[]> => {\r\n return await api.get<ModuleAnalyticsDto[]>(\r\n '/api/administration/applications/application-analytics/modules/top',\r\n {\r\n params: { limit, period }\r\n }\r\n );\r\n },\r\n\r\n getHierarchyData: async (\r\n level: number = 0,\r\n applicationId?: string,\r\n period: number = 30\r\n ): Promise<HierarchyDrillDownDto> => {\r\n const params: Record<string, string | number> = { level, period };\r\n if (applicationId) params.applicationId = applicationId;\r\n\r\n return await api.get<HierarchyDrillDownDto>(\r\n '/api/administration/applications/application-analytics/hierarchy',\r\n { params }\r\n );\r\n },\r\n\r\n getTrendsByApplication: async (period: number = 30): Promise<ApplicationTrendsDto> => {\r\n return await api.get<ApplicationTrendsDto>(\r\n '/api/administration/applications/application-analytics/trends-by-application',\r\n { params: { period } }\r\n );\r\n }\r\n};\r\n"],"names":["applicationAnalyticsApi","api","applicationId","page","pageSize","period","config","limit","level","params"],"mappings":"oDA8JaA,EAA0B,CACrC,kBAAmB,SACV,MAAMC,EAAAA,IAAI,IACf,kEAAA,EAIJ,wBAAyB,MAAOC,GACvB,MAAMD,EAAAA,IAAI,IACf,0DAA0DC,CAAa,YAAA,EAI3E,uBAAwB,MACtBA,EACAC,EAAe,EACfC,EAAmB,KAEZ,MAAMH,EAAAA,IAAI,IACf,0DAA0DC,CAAa,mBACvE,CACE,OAAQ,CAAE,KAAAC,EAAM,SAAAC,CAAA,CAAS,CAC3B,EAIJ,eAAgB,MAAOC,EAAiB,GAAIC,IACnC,MAAML,EAAAA,IAAI,IACf,sEACA,CACE,OAAQ,CAAE,OAAAI,CAAA,EACV,OAAQC,GAAQ,MAAA,CAClB,EAIJ,qBAAsB,MAAOD,EAAiB,GAAIC,IACzC,MAAML,EAAAA,IAAI,IACf,oEACA,CACE,OAAQ,CAAE,OAAAI,CAAA,EACV,OAAQC,GAAQ,MAAA,CAClB,EAIJ,cAAe,MAAOC,EAAgB,GAAIF,EAAiB,KAClD,MAAMJ,EAAAA,IAAI,IACf,qEACA,CACE,OAAQ,CAAE,MAAAM,EAAO,OAAAF,CAAA,CAAO,CAC1B,EAIJ,iBAAkB,MAChBG,EAAgB,EAChBN,EACAG,EAAiB,KACkB,CACnC,MAAMI,EAA0C,CAAE,MAAAD,EAAO,OAAAH,CAAA,EACzD,OAAIH,MAAsB,cAAgBA,GAEnC,MAAMD,EAAAA,IAAI,IACf,mEACA,CAAE,OAAAQ,CAAA,CAAO,CAEb,EAEA,uBAAwB,MAAOJ,EAAiB,KACvC,MAAMJ,EAAAA,IAAI,IACf,+EACA,CAAE,OAAQ,CAAE,OAAAI,CAAA,CAAO,CAAE,CAG3B"}
1
+ {"version":3,"file":"applicationAnalyticsApi-CLBqRPfN.js","sources":["../../src/services/api/applicationAnalyticsApi.ts"],"sourcesContent":["import { api } from './apiClient';\r\nimport type { PaginatedResult } from '../../types/pagination';\r\n\r\n// DTOs\r\nexport interface PopularApplicationDto {\r\n applicationId: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface ActivityItemDto {\r\n userId: string;\r\n userName: string;\r\n applicationName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationDashboardStatsDto {\r\n totalApplications: number;\r\n activeApplications: number;\r\n totalUsers: number;\r\n activeUsersToday: number;\r\n avgSessionDuration: number;\r\n growthRate: number;\r\n mostPopularApps: PopularApplicationDto[];\r\n recentActivity: ActivityItemDto[];\r\n dailyTrend: DailyAccessTrendDto[];\r\n}\r\n\r\nexport interface DailyAccessTrendDto {\r\n date: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n}\r\n\r\nexport interface TopUserDto {\r\n userId: string;\r\n userName: string;\r\n accessCount: number;\r\n avgDurationSeconds?: number;\r\n}\r\n\r\nexport interface ApplicationAnalyticsDto {\r\n applicationName: string;\r\n totalAccesses: number;\r\n uniqueUsers: number;\r\n avgDurationSeconds: number;\r\n dailyAccessTrend: DailyAccessTrendDto[];\r\n topUsers: TopUserDto[];\r\n}\r\n\r\nexport interface ApplicationActivityDto {\r\n userId: string;\r\n userName: string;\r\n moduleName?: string;\r\n accessedAt: string;\r\n durationSeconds?: number;\r\n}\r\n\r\nexport interface DeviceAnalyticsDto {\r\n byDeviceType: DeviceStatsItemDto[];\r\n byBrowser: BrowserStatsItemDto[];\r\n}\r\n\r\nexport interface DeviceStatsItemDto {\r\n deviceType: string;\r\n count: number;\r\n percentage: number;\r\n}\r\n\r\nexport interface BrowserStatsItemDto {\r\n browser: string;\r\n count: number;\r\n}\r\n\r\nexport interface EngagementMetricsDto {\r\n avgSessionDuration: number;\r\n sessionDistribution: SessionBucketDto[];\r\n peakUsageHours: PeakUsageHourDto[];\r\n dailyActiveUsers: number;\r\n retentionRate: number;\r\n}\r\n\r\nexport interface SessionBucketDto {\r\n bucket: string;\r\n label: string;\r\n count: number;\r\n}\r\n\r\nexport interface PeakUsageHourDto {\r\n hour: number;\r\n accessCount: number;\r\n}\r\n\r\nexport interface ModuleAnalyticsDto {\r\n moduleId: string;\r\n moduleName: string;\r\n applicationName: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n avgDuration: number;\r\n totalDurationMinutes: number;\r\n sessionCount: number;\r\n}\r\n\r\n// Hierarchy Drill-Down Types\r\nexport interface HierarchyDrillDownDto {\r\n level: number;\r\n period: number;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n items: HierarchyItemDto[];\r\n breadcrumb: BreadcrumbItemDto[];\r\n}\r\n\r\nexport interface HierarchyItemDto {\r\n id: string;\r\n code: string;\r\n name: string;\r\n accessCount: number;\r\n uniqueUsers: number;\r\n totalDurationMinutes: number;\r\n hasChildren: boolean;\r\n level: number;\r\n parentId?: string;\r\n}\r\n\r\nexport interface BreadcrumbItemDto {\r\n id: string;\r\n name: string;\r\n level: number;\r\n}\r\n\r\n// Application Trends Types\r\nexport interface ApplicationTrendsDto {\r\n period: number;\r\n dailyData: ApplicationTrendDayDto[];\r\n applications: ApplicationSeriesDto[];\r\n}\r\n\r\nexport interface ApplicationTrendDayDto {\r\n date: string;\r\n applicationCounts: Record<string, number>;\r\n applicationDurations: Record<string, number>;\r\n applicationSessionCounts: Record<string, number>;\r\n}\r\n\r\nexport interface ApplicationSeriesDto {\r\n name: string;\r\n totalAccess: number;\r\n totalDurationMinutes: number;\r\n totalSessionCount: number;\r\n color: string;\r\n}\r\n\r\nexport const applicationAnalyticsApi = {\r\n getDashboardStats: async (): Promise<ApplicationDashboardStatsDto> => {\r\n return await api.get<ApplicationDashboardStatsDto>(\r\n '/api/administration/applications/application-analytics/dashboard'\r\n );\r\n },\r\n\r\n getApplicationAnalytics: async (applicationId: string): Promise<ApplicationAnalyticsDto> => {\r\n return await api.get<ApplicationAnalyticsDto>(\r\n `/api/administration/applications/application-analytics/${applicationId}/analytics`\r\n );\r\n },\r\n\r\n getApplicationActivity: async (\r\n applicationId: string,\r\n page: number = 1,\r\n pageSize: number = 20\r\n ): Promise<PaginatedResult<ApplicationActivityDto>> => {\r\n return await api.get<PaginatedResult<ApplicationActivityDto>>(\r\n `/api/administration/applications/application-analytics/${applicationId}/recent-activity`,\r\n {\r\n params: { page, pageSize }\r\n }\r\n );\r\n },\r\n\r\n getDeviceStats: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<DeviceAnalyticsDto> => {\r\n return await api.get<DeviceAnalyticsDto>(\r\n '/api/administration/applications/application-analytics/device-stats',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getEngagementMetrics: async (period: number = 30, config?: { signal?: AbortSignal }): Promise<EngagementMetricsDto> => {\r\n return await api.get<EngagementMetricsDto>(\r\n '/api/administration/applications/application-analytics/engagement',\r\n {\r\n params: { period },\r\n signal: config?.signal\r\n }\r\n );\r\n },\r\n\r\n getTopModules: async (limit: number = 10, period: number = 30): Promise<ModuleAnalyticsDto[]> => {\r\n return await api.get<ModuleAnalyticsDto[]>(\r\n '/api/administration/applications/application-analytics/modules/top',\r\n {\r\n params: { limit, period }\r\n }\r\n );\r\n },\r\n\r\n getHierarchyData: async (\r\n level: number = 0,\r\n applicationId?: string,\r\n period: number = 30\r\n ): Promise<HierarchyDrillDownDto> => {\r\n const params: Record<string, string | number> = { level, period };\r\n if (applicationId) params.applicationId = applicationId;\r\n\r\n return await api.get<HierarchyDrillDownDto>(\r\n '/api/administration/applications/application-analytics/hierarchy',\r\n { params }\r\n );\r\n },\r\n\r\n getTrendsByApplication: async (period: number = 30): Promise<ApplicationTrendsDto> => {\r\n return await api.get<ApplicationTrendsDto>(\r\n '/api/administration/applications/application-analytics/trends-by-application',\r\n { params: { period } }\r\n );\r\n }\r\n};\r\n"],"names":["applicationAnalyticsApi","api","applicationId","page","pageSize","period","config","limit","level","params"],"mappings":"oDA8JaA,EAA0B,CACrC,kBAAmB,SACV,MAAMC,EAAAA,IAAI,IACf,kEAAA,EAIJ,wBAAyB,MAAOC,GACvB,MAAMD,EAAAA,IAAI,IACf,0DAA0DC,CAAa,YAAA,EAI3E,uBAAwB,MACtBA,EACAC,EAAe,EACfC,EAAmB,KAEZ,MAAMH,EAAAA,IAAI,IACf,0DAA0DC,CAAa,mBACvE,CACE,OAAQ,CAAE,KAAAC,EAAM,SAAAC,CAAA,CAAS,CAC3B,EAIJ,eAAgB,MAAOC,EAAiB,GAAIC,IACnC,MAAML,EAAAA,IAAI,IACf,sEACA,CACE,OAAQ,CAAE,OAAAI,CAAA,EACV,OAAQC,GAAQ,MAAA,CAClB,EAIJ,qBAAsB,MAAOD,EAAiB,GAAIC,IACzC,MAAML,EAAAA,IAAI,IACf,oEACA,CACE,OAAQ,CAAE,OAAAI,CAAA,EACV,OAAQC,GAAQ,MAAA,CAClB,EAIJ,cAAe,MAAOC,EAAgB,GAAIF,EAAiB,KAClD,MAAMJ,EAAAA,IAAI,IACf,qEACA,CACE,OAAQ,CAAE,MAAAM,EAAO,OAAAF,CAAA,CAAO,CAC1B,EAIJ,iBAAkB,MAChBG,EAAgB,EAChBN,EACAG,EAAiB,KACkB,CACnC,MAAMI,EAA0C,CAAE,MAAAD,EAAO,OAAAH,CAAA,EACzD,OAAIH,MAAsB,cAAgBA,GAEnC,MAAMD,EAAAA,IAAI,IACf,mEACA,CAAE,OAAAQ,CAAA,CAAO,CAEb,EAEA,uBAAwB,MAAOJ,EAAiB,KACvC,MAAMJ,EAAAA,IAAI,IACf,+EACA,CAAE,OAAQ,CAAE,OAAAI,CAAA,CAAO,CAAE,CAG3B"}
@@ -1,4 +1,4 @@
1
- import { j as p, i as $ } from "./index-CwSaRXXg.js";
1
+ import { j as p, i as $ } from "./index-lpIzhufD.js";
2
2
  const d = (r) => ({
3
3
  get: (t, e) => p.get(t, {
4
4
  ...e,
@@ -102,4 +102,4 @@ export {
102
102
  l as c,
103
103
  y as g
104
104
  };
105
- //# sourceMappingURL=groupsApi-BgCk2fsp.js.map
105
+ //# sourceMappingURL=groupsApi-QzXI-5xu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"groupsApi-BgCk2fsp.js","sources":["../../src/services/api/groupsApi.ts"],"sourcesContent":["import { api, apiClient } from './apiClient';\r\nimport type { UserApplicationAccessDto } from './adminApi';\r\n\r\n/**\r\n * Creates API methods with a specific tenant context.\r\n * Used when Super Admins view tenant-specific pages without \"switching\" to that tenant.\r\n */\r\nconst withTenantContext = (tenantSlug?: string) => ({\r\n get: <T>(url: string, config?: Parameters<typeof apiClient.get>[1]) =>\r\n apiClient.get<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n post: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.post>[2]) =>\r\n apiClient.post<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n put: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.put>[2]) =>\r\n apiClient.put<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n patch: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.patch>[2]) =>\r\n apiClient.patch<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n delete: <T>(url: string, config?: Parameters<typeof apiClient.delete>[1]) =>\r\n apiClient.delete<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n});\r\n\r\n// Types\r\nexport interface GroupListDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n memberCount: number;\r\n roles: string[];\r\n createdAt: string;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n childCount: number;\r\n}\r\n\r\nexport interface GroupDetailDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n mail: string | null;\r\n mailNickname: string | null;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n members: GroupMemberDto[];\r\n roles: GroupRoleDto[];\r\n childGroups: GroupChildDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n createdBy: string | null;\r\n updatedBy: string | null;\r\n}\r\n\r\nexport interface GroupMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface GroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n assignedAt: string;\r\n assignedBy: string;\r\n isInheritable: boolean;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n}\r\n\r\nexport interface GroupChildDto {\r\n id: string;\r\n name: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface CreateGroupRequest {\r\n name: string;\r\n description?: string;\r\n isSecurityGroup?: boolean;\r\n parentGroupId?: string;\r\n}\r\n\r\nexport interface UpdateGroupRequest {\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface LinkEntraRequest {\r\n entraObjectId: string;\r\n}\r\n\r\nexport interface AddMemberRequest {\r\n userId: string;\r\n}\r\n\r\nexport interface AssignRoleRequest {\r\n roleId: string;\r\n isInheritable?: boolean;\r\n tenantId?: string | null;\r\n}\r\n\r\nexport interface SetInheritableRequest {\r\n isInheritable: boolean;\r\n}\r\n\r\nexport interface SetParentGroupRequest {\r\n parentGroupId: string | null;\r\n}\r\n\r\nexport interface InheritedTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n}\r\n\r\nexport interface InheritedMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface InheritedGroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface GroupTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface AddToTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface CustomRoleDetailDto {\r\n id: string;\r\n name: string;\r\n shortName: string;\r\n category: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n permissions: CustomRolePermissionDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CustomRolePermissionDto {\r\n id: string;\r\n path: string;\r\n description: string | null;\r\n}\r\n\r\nconst BASE_URL = '/api/administration/users/groups';\r\n\r\n/**\r\n * Factory function to create groups API with explicit tenant context.\r\n * @param tenantSlug - Optional tenant slug to use for all requests\r\n */\r\nconst _createGroupsApi = (tenantSlug?: string) => {\r\n const apiContext = tenantSlug ? withTenantContext(tenantSlug) : api;\r\n\r\n return {\r\n // === CRUD OPERATIONS ===\r\n\r\n getAll: async (\r\n search?: string,\r\n isActive?: boolean,\r\n syncedFromEntra?: boolean\r\n ): Promise<GroupListDto[]> => {\r\n const params = new URLSearchParams();\r\n if (search) params.append('search', search);\r\n if (isActive !== undefined) params.append('isActive', String(isActive));\r\n if (syncedFromEntra !== undefined) params.append('syncedFromEntra', String(syncedFromEntra));\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${BASE_URL}?${queryString}` : BASE_URL;\r\n const response = await apiContext.get<GroupListDto[]>(url);\r\n return response;\r\n },\r\n\r\n getById: async (id: string): Promise<GroupDetailDto> => {\r\n const response = await apiContext.get<GroupDetailDto>(`${BASE_URL}/${id}`);\r\n return response;\r\n },\r\n\r\n create: async (data: CreateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.post<GroupDetailDto>(BASE_URL, data);\r\n return response;\r\n },\r\n\r\n update: async (id: string, data: UpdateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.put<GroupDetailDto>(`${BASE_URL}/${id}`, data);\r\n return response;\r\n },\r\n\r\n delete: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}`);\r\n },\r\n\r\n activate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/activate`);\r\n },\r\n\r\n deactivate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/deactivate`);\r\n },\r\n\r\n // === ENTRA LINKING ===\r\n\r\n linkToEntra: async (id: string, data: LinkEntraRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/link-entra`, data);\r\n },\r\n\r\n unlinkFromEntra: async (id: string): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/unlink-entra`);\r\n },\r\n\r\n // === MEMBER MANAGEMENT ===\r\n\r\n getMembers: async (id: string): Promise<GroupMemberDto[]> => {\r\n const response = await apiContext.get<GroupMemberDto[]>(`${BASE_URL}/${id}/members`);\r\n return response;\r\n },\r\n\r\n addMember: async (id: string, data: AddMemberRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/members`, data);\r\n },\r\n\r\n removeMember: async (groupId: string, userId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/members/${userId}`);\r\n },\r\n\r\n // === ROLE MANAGEMENT ===\r\n\r\n getRoles: async (id: string): Promise<GroupRoleDto[]> => {\r\n const response = await apiContext.get<GroupRoleDto[]>(`${BASE_URL}/${id}/roles`);\r\n return response;\r\n },\r\n\r\n assignRole: async (id: string, data: AssignRoleRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/roles`, data);\r\n },\r\n\r\n removeRole: async (groupId: string, roleId: string, tenantId?: string | null): Promise<void> => {\r\n const params = tenantId ? `?tenantId=${tenantId}` : '';\r\n await apiContext.delete(`${BASE_URL}/${groupId}/roles/${roleId}${params}`);\r\n },\r\n\r\n setRoleInheritable: async (\r\n groupId: string,\r\n roleId: string,\r\n data: SetInheritableRequest\r\n ): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${groupId}/roles/${roleId}/inheritable`, data);\r\n },\r\n\r\n // === HIERARCHY ===\r\n\r\n getChildGroups: async (id: string): Promise<GroupChildDto[]> => {\r\n const response = await apiContext.get<GroupChildDto[]>(`${BASE_URL}/${id}/children`);\r\n return response;\r\n },\r\n\r\n setParentGroup: async (id: string, data: SetParentGroupRequest): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/parent`, data);\r\n },\r\n\r\n // === TENANT MANAGEMENT ===\r\n\r\n getTenants: async (id: string): Promise<GroupTenantDto[]> => {\r\n const response = await apiContext.get<GroupTenantDto[]>(`${BASE_URL}/${id}/tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedTenants: async (id: string): Promise<InheritedTenantDto[]> => {\r\n const response = await apiContext.get<InheritedTenantDto[]>(`${BASE_URL}/${id}/inherited-tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedMembers: async (id: string): Promise<InheritedMemberDto[]> => {\r\n const response = await apiContext.get<InheritedMemberDto[]>(`${BASE_URL}/${id}/inherited-members`);\r\n return response;\r\n },\r\n\r\n getInheritedRoles: async (id: string): Promise<InheritedGroupRoleDto[]> => {\r\n const response = await apiContext.get<InheritedGroupRoleDto[]>(`${BASE_URL}/${id}/inherited-roles`);\r\n return response;\r\n },\r\n\r\n addToTenant: async (id: string, data: AddToTenantRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/tenants`, data);\r\n },\r\n\r\n removeFromTenant: async (groupId: string, tenantId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/tenants/${tenantId}`);\r\n },\r\n\r\n // === APPLICATION ACCESS ===\r\n\r\n getApplicationAccess: async (id: string, tenantId?: string): Promise<UserApplicationAccessDto[]> => {\r\n const url = tenantId\r\n ? `${BASE_URL}/${id}/application-access?tenantId=${tenantId}`\r\n : `${BASE_URL}/${id}/application-access`;\r\n const response = await apiContext.get<UserApplicationAccessDto[]>(url);\r\n return response;\r\n },\r\n\r\n // === CUSTOM ROLE ===\r\n\r\n getCustomRole: async (id: string): Promise<CustomRoleDetailDto | null> => {\r\n const response = await apiContext.get<CustomRoleDetailDto | null>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n createCustomRole: async (id: string): Promise<CustomRoleDetailDto> => {\r\n const response = await apiContext.post<CustomRoleDetailDto>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n deleteCustomRole: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}/custom-role`);\r\n },\r\n };\r\n};\r\nexport type GroupsApi = ReturnType<typeof _createGroupsApi>;\r\nexport const createGroupsApi: (tenantSlug?: string) => GroupsApi = _createGroupsApi;\r\n\r\n// Default export uses localStorage tenant slug (backward compatible)\r\nexport const groupsApi = createGroupsApi();\r\n"],"names":["withTenantContext","tenantSlug","url","config","apiClient","res","data","BASE_URL","_createGroupsApi","apiContext","api","search","isActive","syncedFromEntra","params","queryString","id","groupId","userId","roleId","tenantId","createGroupsApi","groupsApi"],"mappings":"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"}
1
+ {"version":3,"file":"groupsApi-QzXI-5xu.js","sources":["../../src/services/api/groupsApi.ts"],"sourcesContent":["import { api, apiClient } from './apiClient';\r\nimport type { UserApplicationAccessDto } from './adminApi';\r\n\r\n/**\r\n * Creates API methods with a specific tenant context.\r\n * Used when Super Admins view tenant-specific pages without \"switching\" to that tenant.\r\n */\r\nconst withTenantContext = (tenantSlug?: string) => ({\r\n get: <T>(url: string, config?: Parameters<typeof apiClient.get>[1]) =>\r\n apiClient.get<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n post: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.post>[2]) =>\r\n apiClient.post<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n put: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.put>[2]) =>\r\n apiClient.put<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n patch: <T>(url: string, data?: unknown, config?: Parameters<typeof apiClient.patch>[2]) =>\r\n apiClient.patch<T>(url, data, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n\r\n delete: <T>(url: string, config?: Parameters<typeof apiClient.delete>[1]) =>\r\n apiClient.delete<T>(url, {\r\n ...config,\r\n headers: tenantSlug ? { ...config?.headers, 'X-Tenant-Slug': tenantSlug } : config?.headers,\r\n }).then(res => res.data),\r\n});\r\n\r\n// Types\r\nexport interface GroupListDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n memberCount: number;\r\n roles: string[];\r\n createdAt: string;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n childCount: number;\r\n}\r\n\r\nexport interface GroupDetailDto {\r\n id: string;\r\n name: string;\r\n description: string | null;\r\n isActive: boolean;\r\n isSecurityGroup: boolean;\r\n isMailEnabled: boolean;\r\n mail: string | null;\r\n mailNickname: string | null;\r\n entraObjectId: string | null;\r\n lastEntraSyncAt: string | null;\r\n isSyncedFromEntra: boolean;\r\n parentGroupId: string | null;\r\n parentGroupName: string | null;\r\n members: GroupMemberDto[];\r\n roles: GroupRoleDto[];\r\n childGroups: GroupChildDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n createdBy: string | null;\r\n updatedBy: string | null;\r\n}\r\n\r\nexport interface GroupMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface GroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n assignedAt: string;\r\n assignedBy: string;\r\n isInheritable: boolean;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n}\r\n\r\nexport interface GroupChildDto {\r\n id: string;\r\n name: string;\r\n isActive: boolean;\r\n}\r\n\r\nexport interface CreateGroupRequest {\r\n name: string;\r\n description?: string;\r\n isSecurityGroup?: boolean;\r\n parentGroupId?: string;\r\n}\r\n\r\nexport interface UpdateGroupRequest {\r\n name: string;\r\n description?: string;\r\n}\r\n\r\nexport interface LinkEntraRequest {\r\n entraObjectId: string;\r\n}\r\n\r\nexport interface AddMemberRequest {\r\n userId: string;\r\n}\r\n\r\nexport interface AssignRoleRequest {\r\n roleId: string;\r\n isInheritable?: boolean;\r\n tenantId?: string | null;\r\n}\r\n\r\nexport interface SetInheritableRequest {\r\n isInheritable: boolean;\r\n}\r\n\r\nexport interface SetParentGroupRequest {\r\n parentGroupId: string | null;\r\n}\r\n\r\nexport interface InheritedTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n}\r\n\r\nexport interface InheritedMemberDto {\r\n userId: string;\r\n email: string;\r\n fullName: string;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface InheritedGroupRoleDto {\r\n roleId: string;\r\n roleName: string;\r\n roleDescription: string | null;\r\n tenantId: string | null;\r\n tenantName: string | null;\r\n isGlobal: boolean;\r\n inheritedFromGroupId: string;\r\n inheritedFromGroupName: string;\r\n level: number;\r\n}\r\n\r\nexport interface GroupTenantDto {\r\n tenantId: string;\r\n tenantName: string;\r\n tenantSlug: string;\r\n tenantType: string;\r\n addedAt: string;\r\n addedBy: string | null;\r\n}\r\n\r\nexport interface AddToTenantRequest {\r\n tenantId: string;\r\n}\r\n\r\nexport interface CustomRoleDetailDto {\r\n id: string;\r\n name: string;\r\n shortName: string;\r\n category: string;\r\n description: string | null;\r\n isSystem: boolean;\r\n permissions: CustomRolePermissionDto[];\r\n createdAt: string;\r\n updatedAt: string | null;\r\n}\r\n\r\nexport interface CustomRolePermissionDto {\r\n id: string;\r\n path: string;\r\n description: string | null;\r\n}\r\n\r\nconst BASE_URL = '/api/administration/users/groups';\r\n\r\n/**\r\n * Factory function to create groups API with explicit tenant context.\r\n * @param tenantSlug - Optional tenant slug to use for all requests\r\n */\r\nconst _createGroupsApi = (tenantSlug?: string) => {\r\n const apiContext = tenantSlug ? withTenantContext(tenantSlug) : api;\r\n\r\n return {\r\n // === CRUD OPERATIONS ===\r\n\r\n getAll: async (\r\n search?: string,\r\n isActive?: boolean,\r\n syncedFromEntra?: boolean\r\n ): Promise<GroupListDto[]> => {\r\n const params = new URLSearchParams();\r\n if (search) params.append('search', search);\r\n if (isActive !== undefined) params.append('isActive', String(isActive));\r\n if (syncedFromEntra !== undefined) params.append('syncedFromEntra', String(syncedFromEntra));\r\n\r\n const queryString = params.toString();\r\n const url = queryString ? `${BASE_URL}?${queryString}` : BASE_URL;\r\n const response = await apiContext.get<GroupListDto[]>(url);\r\n return response;\r\n },\r\n\r\n getById: async (id: string): Promise<GroupDetailDto> => {\r\n const response = await apiContext.get<GroupDetailDto>(`${BASE_URL}/${id}`);\r\n return response;\r\n },\r\n\r\n create: async (data: CreateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.post<GroupDetailDto>(BASE_URL, data);\r\n return response;\r\n },\r\n\r\n update: async (id: string, data: UpdateGroupRequest): Promise<GroupDetailDto> => {\r\n const response = await apiContext.put<GroupDetailDto>(`${BASE_URL}/${id}`, data);\r\n return response;\r\n },\r\n\r\n delete: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}`);\r\n },\r\n\r\n activate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/activate`);\r\n },\r\n\r\n deactivate: async (id: string): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/deactivate`);\r\n },\r\n\r\n // === ENTRA LINKING ===\r\n\r\n linkToEntra: async (id: string, data: LinkEntraRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/link-entra`, data);\r\n },\r\n\r\n unlinkFromEntra: async (id: string): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/unlink-entra`);\r\n },\r\n\r\n // === MEMBER MANAGEMENT ===\r\n\r\n getMembers: async (id: string): Promise<GroupMemberDto[]> => {\r\n const response = await apiContext.get<GroupMemberDto[]>(`${BASE_URL}/${id}/members`);\r\n return response;\r\n },\r\n\r\n addMember: async (id: string, data: AddMemberRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/members`, data);\r\n },\r\n\r\n removeMember: async (groupId: string, userId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/members/${userId}`);\r\n },\r\n\r\n // === ROLE MANAGEMENT ===\r\n\r\n getRoles: async (id: string): Promise<GroupRoleDto[]> => {\r\n const response = await apiContext.get<GroupRoleDto[]>(`${BASE_URL}/${id}/roles`);\r\n return response;\r\n },\r\n\r\n assignRole: async (id: string, data: AssignRoleRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/roles`, data);\r\n },\r\n\r\n removeRole: async (groupId: string, roleId: string, tenantId?: string | null): Promise<void> => {\r\n const params = tenantId ? `?tenantId=${tenantId}` : '';\r\n await apiContext.delete(`${BASE_URL}/${groupId}/roles/${roleId}${params}`);\r\n },\r\n\r\n setRoleInheritable: async (\r\n groupId: string,\r\n roleId: string,\r\n data: SetInheritableRequest\r\n ): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${groupId}/roles/${roleId}/inheritable`, data);\r\n },\r\n\r\n // === HIERARCHY ===\r\n\r\n getChildGroups: async (id: string): Promise<GroupChildDto[]> => {\r\n const response = await apiContext.get<GroupChildDto[]>(`${BASE_URL}/${id}/children`);\r\n return response;\r\n },\r\n\r\n setParentGroup: async (id: string, data: SetParentGroupRequest): Promise<void> => {\r\n await apiContext.patch(`${BASE_URL}/${id}/parent`, data);\r\n },\r\n\r\n // === TENANT MANAGEMENT ===\r\n\r\n getTenants: async (id: string): Promise<GroupTenantDto[]> => {\r\n const response = await apiContext.get<GroupTenantDto[]>(`${BASE_URL}/${id}/tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedTenants: async (id: string): Promise<InheritedTenantDto[]> => {\r\n const response = await apiContext.get<InheritedTenantDto[]>(`${BASE_URL}/${id}/inherited-tenants`);\r\n return response;\r\n },\r\n\r\n getInheritedMembers: async (id: string): Promise<InheritedMemberDto[]> => {\r\n const response = await apiContext.get<InheritedMemberDto[]>(`${BASE_URL}/${id}/inherited-members`);\r\n return response;\r\n },\r\n\r\n getInheritedRoles: async (id: string): Promise<InheritedGroupRoleDto[]> => {\r\n const response = await apiContext.get<InheritedGroupRoleDto[]>(`${BASE_URL}/${id}/inherited-roles`);\r\n return response;\r\n },\r\n\r\n addToTenant: async (id: string, data: AddToTenantRequest): Promise<void> => {\r\n await apiContext.post(`${BASE_URL}/${id}/tenants`, data);\r\n },\r\n\r\n removeFromTenant: async (groupId: string, tenantId: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${groupId}/tenants/${tenantId}`);\r\n },\r\n\r\n // === APPLICATION ACCESS ===\r\n\r\n getApplicationAccess: async (id: string, tenantId?: string): Promise<UserApplicationAccessDto[]> => {\r\n const url = tenantId\r\n ? `${BASE_URL}/${id}/application-access?tenantId=${tenantId}`\r\n : `${BASE_URL}/${id}/application-access`;\r\n const response = await apiContext.get<UserApplicationAccessDto[]>(url);\r\n return response;\r\n },\r\n\r\n // === CUSTOM ROLE ===\r\n\r\n getCustomRole: async (id: string): Promise<CustomRoleDetailDto | null> => {\r\n const response = await apiContext.get<CustomRoleDetailDto | null>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n createCustomRole: async (id: string): Promise<CustomRoleDetailDto> => {\r\n const response = await apiContext.post<CustomRoleDetailDto>(`${BASE_URL}/${id}/custom-role`);\r\n return response;\r\n },\r\n\r\n deleteCustomRole: async (id: string): Promise<void> => {\r\n await apiContext.delete(`${BASE_URL}/${id}/custom-role`);\r\n },\r\n };\r\n};\r\nexport type GroupsApi = ReturnType<typeof _createGroupsApi>;\r\nexport const createGroupsApi: (tenantSlug?: string) => GroupsApi = _createGroupsApi;\r\n\r\n// Default export uses localStorage tenant slug (backward compatible)\r\nexport const groupsApi = createGroupsApi();\r\n"],"names":["withTenantContext","tenantSlug","url","config","apiClient","res","data","BASE_URL","_createGroupsApi","apiContext","api","search","isActive","syncedFromEntra","params","queryString","id","groupId","userId","roleId","tenantId","createGroupsApi","groupsApi"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const p=require("./index-2wUhd9Lu.js"),d=r=>({get:(s,e)=>p.apiClient.get(s,{...e,headers:r?{...e?.headers,"X-Tenant-Slug":r}:e?.headers}).then(t=>t.data),post:(s,e,t)=>p.apiClient.post(s,e,{...t,headers:r?{...t?.headers,"X-Tenant-Slug":r}:t?.headers}).then(n=>n.data),put:(s,e,t)=>p.apiClient.put(s,e,{...t,headers:r?{...t?.headers,"X-Tenant-Slug":r}:t?.headers}).then(n=>n.data),patch:(s,e,t)=>p.apiClient.patch(s,e,{...t,headers:r?{...t?.headers,"X-Tenant-Slug":r}:t?.headers}).then(n=>n.data),delete:(s,e)=>p.apiClient.delete(s,{...e,headers:r?{...e?.headers,"X-Tenant-Slug":r}:e?.headers}).then(t=>t.data)}),a="/api/administration/users/groups",l=r=>{const s=r?d(r):p.api;return{getAll:async(e,t,n)=>{const o=new URLSearchParams;e&&o.append("search",e),t!==void 0&&o.append("isActive",String(t)),n!==void 0&&o.append("syncedFromEntra",String(n));const i=o.toString(),$=i?`${a}?${i}`:a;return await s.get($)},getById:async e=>await s.get(`${a}/${e}`),create:async e=>await s.post(a,e),update:async(e,t)=>await s.put(`${a}/${e}`,t),delete:async e=>{await s.delete(`${a}/${e}`)},activate:async e=>{await s.patch(`${a}/${e}/activate`)},deactivate:async e=>{await s.patch(`${a}/${e}/deactivate`)},linkToEntra:async(e,t)=>{await s.post(`${a}/${e}/link-entra`,t)},unlinkFromEntra:async e=>{await s.post(`${a}/${e}/unlink-entra`)},getMembers:async e=>await s.get(`${a}/${e}/members`),addMember:async(e,t)=>{await s.post(`${a}/${e}/members`,t)},removeMember:async(e,t)=>{await s.delete(`${a}/${e}/members/${t}`)},getRoles:async e=>await s.get(`${a}/${e}/roles`),assignRole:async(e,t)=>{await s.post(`${a}/${e}/roles`,t)},removeRole:async(e,t,n)=>{const o=n?`?tenantId=${n}`:"";await s.delete(`${a}/${e}/roles/${t}${o}`)},setRoleInheritable:async(e,t,n)=>{await s.patch(`${a}/${e}/roles/${t}/inheritable`,n)},getChildGroups:async e=>await s.get(`${a}/${e}/children`),setParentGroup:async(e,t)=>{await s.patch(`${a}/${e}/parent`,t)},getTenants:async e=>await s.get(`${a}/${e}/tenants`),getInheritedTenants:async e=>await s.get(`${a}/${e}/inherited-tenants`),getInheritedMembers:async e=>await s.get(`${a}/${e}/inherited-members`),getInheritedRoles:async e=>await s.get(`${a}/${e}/inherited-roles`),addToTenant:async(e,t)=>{await s.post(`${a}/${e}/tenants`,t)},removeFromTenant:async(e,t)=>{await s.delete(`${a}/${e}/tenants/${t}`)},getApplicationAccess:async(e,t)=>{const n=t?`${a}/${e}/application-access?tenantId=${t}`:`${a}/${e}/application-access`;return await s.get(n)},getCustomRole:async e=>await s.get(`${a}/${e}/custom-role`),createCustomRole:async e=>await s.post(`${a}/${e}/custom-role`),deleteCustomRole:async e=>{await s.delete(`${a}/${e}/custom-role`)}}},c=l,h=c();exports.createGroupsApi=c;exports.groupsApi=h;
2
- //# sourceMappingURL=groupsApi-BIbG665N.js.map
1
+ "use strict";const p=require("./index-IgLVXPg8.js"),d=r=>({get:(s,e)=>p.apiClient.get(s,{...e,headers:r?{...e?.headers,"X-Tenant-Slug":r}:e?.headers}).then(t=>t.data),post:(s,e,t)=>p.apiClient.post(s,e,{...t,headers:r?{...t?.headers,"X-Tenant-Slug":r}:t?.headers}).then(n=>n.data),put:(s,e,t)=>p.apiClient.put(s,e,{...t,headers:r?{...t?.headers,"X-Tenant-Slug":r}:t?.headers}).then(n=>n.data),patch:(s,e,t)=>p.apiClient.patch(s,e,{...t,headers:r?{...t?.headers,"X-Tenant-Slug":r}:t?.headers}).then(n=>n.data),delete:(s,e)=>p.apiClient.delete(s,{...e,headers:r?{...e?.headers,"X-Tenant-Slug":r}:e?.headers}).then(t=>t.data)}),a="/api/administration/users/groups",l=r=>{const s=r?d(r):p.api;return{getAll:async(e,t,n)=>{const o=new URLSearchParams;e&&o.append("search",e),t!==void 0&&o.append("isActive",String(t)),n!==void 0&&o.append("syncedFromEntra",String(n));const i=o.toString(),$=i?`${a}?${i}`:a;return await s.get($)},getById:async e=>await s.get(`${a}/${e}`),create:async e=>await s.post(a,e),update:async(e,t)=>await s.put(`${a}/${e}`,t),delete:async e=>{await s.delete(`${a}/${e}`)},activate:async e=>{await s.patch(`${a}/${e}/activate`)},deactivate:async e=>{await s.patch(`${a}/${e}/deactivate`)},linkToEntra:async(e,t)=>{await s.post(`${a}/${e}/link-entra`,t)},unlinkFromEntra:async e=>{await s.post(`${a}/${e}/unlink-entra`)},getMembers:async e=>await s.get(`${a}/${e}/members`),addMember:async(e,t)=>{await s.post(`${a}/${e}/members`,t)},removeMember:async(e,t)=>{await s.delete(`${a}/${e}/members/${t}`)},getRoles:async e=>await s.get(`${a}/${e}/roles`),assignRole:async(e,t)=>{await s.post(`${a}/${e}/roles`,t)},removeRole:async(e,t,n)=>{const o=n?`?tenantId=${n}`:"";await s.delete(`${a}/${e}/roles/${t}${o}`)},setRoleInheritable:async(e,t,n)=>{await s.patch(`${a}/${e}/roles/${t}/inheritable`,n)},getChildGroups:async e=>await s.get(`${a}/${e}/children`),setParentGroup:async(e,t)=>{await s.patch(`${a}/${e}/parent`,t)},getTenants:async e=>await s.get(`${a}/${e}/tenants`),getInheritedTenants:async e=>await s.get(`${a}/${e}/inherited-tenants`),getInheritedMembers:async e=>await s.get(`${a}/${e}/inherited-members`),getInheritedRoles:async e=>await s.get(`${a}/${e}/inherited-roles`),addToTenant:async(e,t)=>{await s.post(`${a}/${e}/tenants`,t)},removeFromTenant:async(e,t)=>{await s.delete(`${a}/${e}/tenants/${t}`)},getApplicationAccess:async(e,t)=>{const n=t?`${a}/${e}/application-access?tenantId=${t}`:`${a}/${e}/application-access`;return await s.get(n)},getCustomRole:async e=>await s.get(`${a}/${e}/custom-role`),createCustomRole:async e=>await s.post(`${a}/${e}/custom-role`),deleteCustomRole:async e=>{await s.delete(`${a}/${e}/custom-role`)}}},c=l,h=c();exports.createGroupsApi=c;exports.groupsApi=h;
2
+ //# sourceMappingURL=groupsApi-hB9kSWEd.js.map