@iblai/data-layer 1.13.2 → 1.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -42818,6 +42818,25 @@ const ANALYTICS_ENDPOINTS = {
42818
42818
  service: exports.SERVICES.DM,
42819
42819
  path: (org, userId) => `/api/ai-analytics/orgs/${org}/users/${userId}/overview-summary/`,
42820
42820
  },
42821
+ // ClickHouse cost analytics — replacements for the deprecated
42822
+ // `/api/analytics/financial/` family. Date range and pagination travel as
42823
+ // query params on the request, not in these paths.
42824
+ GET_TENANT_COST: {
42825
+ service: exports.SERVICES.DM,
42826
+ path: (org, userId) => `/api/ai-analytics/orgs/${org}/users/${userId}/tenant-cost/`,
42827
+ },
42828
+ GET_AGENT_COST: {
42829
+ service: exports.SERVICES.DM,
42830
+ path: (org, userId, mentorUniqueId) => `/api/ai-analytics/orgs/${org}/users/${userId}/agents/${mentorUniqueId}/cost/`,
42831
+ },
42832
+ GET_MODEL_COSTS: {
42833
+ service: exports.SERVICES.DM,
42834
+ path: (org, userId) => `/api/ai-analytics/orgs/${org}/users/${userId}/costs/model/`,
42835
+ },
42836
+ GET_PER_USER_COSTS: {
42837
+ service: exports.SERVICES.DM,
42838
+ path: (org, userId) => `/api/ai-analytics/orgs/${org}/users/${userId}/costs/peruser/`,
42839
+ },
42821
42840
  GET_CONVERSATION: {
42822
42841
  service: exports.SERVICES.DM,
42823
42842
  path: (org, userId) => `/api/ai-analytics/orgs/${org}/users/${userId}/conversation/`,
@@ -42894,14 +42913,6 @@ const NON_AI_ANALYTICS_ENDPOINTS = {
42894
42913
  service: exports.SERVICES.DM,
42895
42914
  path: (platform_key, mentor_unique_id, date_filter, start_date, end_date) => `/api/analytics/ratings/?${date_filter ? `date_filter=${date_filter}&` : ''}platform_key=${platform_key}${mentor_unique_id ? `&mentor_unique_id=${mentor_unique_id}` : ''}${start_date ? `&start_date=${start_date}` : ''}${end_date ? `&end_date=${end_date}` : ''}`,
42896
42915
  },
42897
- GET_FINANCIAL_STATS: {
42898
- service: exports.SERVICES.DM,
42899
- path: (args) => `/api/analytics/financial/?metric=${args.metric}&${args.all_time ? `all_time=${args.all_time}&` : ''}${args.date_filter ? `date_filter=${args.date_filter}&` : ''}platform_key=${args.platform_key}${args.mentor_unique_id ? `&mentor_unique_id=${args.mentor_unique_id}` : ''}${args.start_date ? `&start_date=${args.start_date}` : ''}${args.end_date ? `&end_date=${args.end_date}` : ''}${buildUsergroupIdsQuery(args.usergroup_ids)}`,
42900
- },
42901
- GET_DETAILED_FINANCIAL_STATS: {
42902
- service: exports.SERVICES.DM,
42903
- path: (args) => `/api/analytics/financial/details/?${args.metric ? `metric=${args.metric}&` : ''}${args.metrics ? `metrics=${args.metrics}&` : ''}group_by=${args.group_by}&date_filter=${args.date_filter}&platform_key=${args.platform_key}${args.mentor_unique_id ? `&mentor_unique_id=${args.mentor_unique_id}` : ''}${args.start_date ? `&start_date=${args.start_date}` : ''}${args.end_date ? `&end_date=${args.end_date}` : ''}${args.page ? `&page=${args.page}` : ''}${args.limit ? `&limit=${args.limit}` : ''}${args.search ? `&search=${args.search}` : ''}${buildUsergroupIdsQuery(args.usergroup_ids)}`,
42904
- },
42905
42916
  GET_TRANSCRIPTS_MESSAGES: {
42906
42917
  service: exports.SERVICES.DM,
42907
42918
  path: (args) => `/api/analytics/messages/?platform_key=${args.platform_key}${args.mentor_unique_id ? `&mentor_unique_id=${args.mentor_unique_id}` : ''}${args.search ? `&search=${args.search}` : ''}${args.topic ? `&topic=${args.topic}` : ''}${args.page ? `&page=${args.page}` : ''}${args.limit ? `&limit=${args.limit}` : ''}${buildUsergroupIdsQuery(args.usergroup_ids)}`,
@@ -42930,6 +42941,25 @@ const NON_AI_ANALYTICS_ENDPOINTS = {
42930
42941
  service: exports.SERVICES.DM,
42931
42942
  path: (username, platform_key, metrics, course_id, include_edx_progress, program_id) => `/api/analytics/learner/details?username=${username}&platform_key=${platform_key}&metrics=${metrics}${course_id ? `&course_id=${encodeURIComponent(course_id)}` : ''}${program_id ? `&program_id=${encodeURIComponent(program_id)}` : ''}${include_edx_progress !== undefined ? `&include_edx_progress=${include_edx_progress}` : ''}`,
42932
42943
  },
42944
+ /**
42945
+ * LLM cost/usage analytics (Langfuse proxy; renamed from
42946
+ * `/api/analytics/langfuse/`). One endpoint, three resources — the caller
42947
+ * picks with `resource` and the typed args in `types.ts` keep unsupported
42948
+ * parameter combinations unrepresentable.
42949
+ */
42950
+ GET_LLM_USAGE: {
42951
+ service: exports.SERVICES.DM,
42952
+ path: (resource, args) => {
42953
+ const params = new URLSearchParams();
42954
+ params.set('resource', resource);
42955
+ for (const [key, value] of Object.entries(args)) {
42956
+ if (value === undefined || value === '')
42957
+ continue;
42958
+ params.set(key, Array.isArray(value) ? value.join(',') : String(value));
42959
+ }
42960
+ return `/api/analytics/llm-usage/?${params.toString()}`;
42961
+ },
42962
+ },
42933
42963
  };
42934
42964
  const ANALYTICS_REDUCER_PATH = 'analyticsApiSlice';
42935
42965
 
@@ -43176,17 +43206,70 @@ const analyticsApiSlice = react.createApi({
43176
43206
  });
43177
43207
  },
43178
43208
  }),
43179
- getFinancialStats: builder.query({
43209
+ // --- ClickHouse cost analytics -----------------------------------------
43210
+ // Replacements for the deprecated `/api/analytics/financial/` family.
43211
+ // These endpoints have no `date_filter` shorthand and no built-in period
43212
+ // comparison; callers pass explicit YYYY-MM-DD ranges and compute deltas
43213
+ // from a second query over the previous window.
43214
+ getTenantCost: builder.query({
43215
+ query: (args) => ({
43216
+ url: ANALYTICS_ENDPOINTS.GET_TENANT_COST.path(args.org, args.userId),
43217
+ service: ANALYTICS_ENDPOINTS.GET_TENANT_COST.service,
43218
+ params: { start_date: args.start_date, end_date: args.end_date },
43219
+ }),
43220
+ }),
43221
+ getAgentCost: builder.query({
43222
+ query: (args) => ({
43223
+ url: ANALYTICS_ENDPOINTS.GET_AGENT_COST.path(args.org, args.userId, args.mentor_unique_id),
43224
+ service: ANALYTICS_ENDPOINTS.GET_AGENT_COST.service,
43225
+ params: { start_date: args.start_date, end_date: args.end_date },
43226
+ }),
43227
+ }),
43228
+ getModelCosts: builder.query({
43180
43229
  query: (args) => ({
43181
- url: NON_AI_ANALYTICS_ENDPOINTS.GET_FINANCIAL_STATS.path(args),
43182
- service: NON_AI_ANALYTICS_ENDPOINTS.GET_FINANCIAL_STATS.service,
43230
+ url: ANALYTICS_ENDPOINTS.GET_MODEL_COSTS.path(args.org, args.userId),
43231
+ service: ANALYTICS_ENDPOINTS.GET_MODEL_COSTS.service,
43232
+ params: { start_date: args.start_date, end_date: args.end_date },
43183
43233
  }),
43234
+ // The backend has shipped this both as a bare array and wrapped in a
43235
+ // `data`/`models`/`results` envelope; normalize so the UI sees one shape.
43236
+ transformResponse: (raw) => {
43237
+ var _a, _b, _c;
43238
+ const rows = Array.isArray(raw)
43239
+ ? raw
43240
+ : ((_c = (_b = (_a = raw === null || raw === void 0 ? void 0 : raw.data) !== null && _a !== void 0 ? _a : raw === null || raw === void 0 ? void 0 : raw.models) !== null && _b !== void 0 ? _b : raw === null || raw === void 0 ? void 0 : raw.results) !== null && _c !== void 0 ? _c : []);
43241
+ return (Array.isArray(rows) ? rows : []).map((row) => {
43242
+ var _a;
43243
+ return ({
43244
+ model: String((_a = row.model) !== null && _a !== void 0 ? _a : ''),
43245
+ total_cost: Number(row.total_cost) || 0,
43246
+ });
43247
+ });
43248
+ },
43184
43249
  }),
43185
- getDetailedFinancialStats: builder.query({
43250
+ getPerUserCosts: builder.query({
43186
43251
  query: (args) => ({
43187
- url: NON_AI_ANALYTICS_ENDPOINTS.GET_DETAILED_FINANCIAL_STATS.path(args),
43188
- service: NON_AI_ANALYTICS_ENDPOINTS.GET_DETAILED_FINANCIAL_STATS.service,
43252
+ url: ANALYTICS_ENDPOINTS.GET_PER_USER_COSTS.path(args.org, args.userId),
43253
+ service: ANALYTICS_ENDPOINTS.GET_PER_USER_COSTS.service,
43254
+ params: {
43255
+ start_date: args.start_date,
43256
+ end_date: args.end_date,
43257
+ ...(args.limit !== undefined ? { limit: args.limit } : {}),
43258
+ ...(args.offset !== undefined ? { offset: args.offset } : {}),
43259
+ },
43189
43260
  }),
43261
+ transformResponse: (raw) => {
43262
+ var _a, _b, _c, _d, _e;
43263
+ const record = (raw !== null && raw !== void 0 ? raw : {});
43264
+ const rows = Array.isArray(raw)
43265
+ ? raw
43266
+ : ((_c = (_b = (_a = record.results) !== null && _a !== void 0 ? _a : record.users) !== null && _b !== void 0 ? _b : record.data) !== null && _c !== void 0 ? _c : []);
43267
+ const count = (_e = (_d = record.count) !== null && _d !== void 0 ? _d : record.total_records) !== null && _e !== void 0 ? _e : record.total;
43268
+ return {
43269
+ results: (Array.isArray(rows) ? rows : []),
43270
+ ...(typeof count === 'number' ? { count } : {}),
43271
+ };
43272
+ },
43190
43273
  }),
43191
43274
  getTranscriptsMessages: builder.query({
43192
43275
  query: (args) => ({
@@ -43234,9 +43317,36 @@ const analyticsApiSlice = react.createApi({
43234
43317
  service: NON_AI_ANALYTICS_ENDPOINTS.GET_LEARNER_DETAILS.service,
43235
43318
  }),
43236
43319
  }),
43320
+ // LLM usage (Langfuse proxy). Three endpoints over one path so each
43321
+ // resource keeps its own arg/response types — see the types for what each
43322
+ // resource deliberately cannot be asked for.
43323
+ getLlmUsageMetrics: builder.query({
43324
+ query: (args) => {
43325
+ var _a;
43326
+ return ({
43327
+ url: NON_AI_ANALYTICS_ENDPOINTS.GET_LLM_USAGE.path('metrics', {
43328
+ ...args,
43329
+ measures: (_a = args.measures) === null || _a === void 0 ? void 0 : _a.join(','),
43330
+ }),
43331
+ service: NON_AI_ANALYTICS_ENDPOINTS.GET_LLM_USAGE.service,
43332
+ });
43333
+ },
43334
+ }),
43335
+ getLlmUsageTraces: builder.query({
43336
+ query: (args) => ({
43337
+ url: NON_AI_ANALYTICS_ENDPOINTS.GET_LLM_USAGE.path('traces', { ...args }),
43338
+ service: NON_AI_ANALYTICS_ENDPOINTS.GET_LLM_USAGE.service,
43339
+ }),
43340
+ }),
43341
+ getLlmUsageObservations: builder.query({
43342
+ query: (args) => ({
43343
+ url: NON_AI_ANALYTICS_ENDPOINTS.GET_LLM_USAGE.path('observations', { ...args }),
43344
+ service: NON_AI_ANALYTICS_ENDPOINTS.GET_LLM_USAGE.service,
43345
+ }),
43346
+ }),
43237
43347
  }),
43238
43348
  });
43239
- const { useGetOverviewSummaryQuery, useGetConversationQuery, useGetMostDiscussedTopicsQuery, useGetAverageMessagesPerSessionQuery, useGetRegisteredUsersTrendQuery, useGetUserMetricsQuery, useGetUserMetricsPieChartQuery, useGetUserCohortsOverTimeQuery, useGetTopStudentsByChatMessagesQuery, useGetTopicOverviewQuery, useGetTopicsSummaryQuery, useGetTopicStatisticsQuery, useGetTopicsStatsQuery, useGetUsersStatsQuery, useGetSessionStatsQuery, useGetTopicsDetailsStatsQuery, useGetAccessTimeHeatmapQuery, useGetUserDetailsStatsQuery, useGetAverageRatingQuery, useGetFinancialStatsQuery, useGetDetailedFinancialStatsQuery, useGetTranscriptsMessagesQuery, useGetTranscriptsMessagesDetailsQuery, useTimeTrackingMutation, useGetTranscriptsConversationHeadlineQuery, useGetContentAnalyticsQuery, useGetContentAnalyticsDetailsQuery, useGetLearnerDetailsQuery, } = analyticsApiSlice;
43349
+ const { useGetOverviewSummaryQuery, useGetConversationQuery, useGetMostDiscussedTopicsQuery, useGetAverageMessagesPerSessionQuery, useGetRegisteredUsersTrendQuery, useGetUserMetricsQuery, useGetUserMetricsPieChartQuery, useGetUserCohortsOverTimeQuery, useGetTopStudentsByChatMessagesQuery, useGetTopicOverviewQuery, useGetTopicsSummaryQuery, useGetTopicStatisticsQuery, useGetTopicsStatsQuery, useGetUsersStatsQuery, useGetSessionStatsQuery, useGetTopicsDetailsStatsQuery, useGetAccessTimeHeatmapQuery, useGetUserDetailsStatsQuery, useGetAverageRatingQuery, useGetTenantCostQuery, useGetAgentCostQuery, useGetModelCostsQuery, useGetPerUserCostsQuery, useGetTranscriptsMessagesQuery, useGetTranscriptsMessagesDetailsQuery, useTimeTrackingMutation, useGetTranscriptsConversationHeadlineQuery, useGetContentAnalyticsQuery, useGetContentAnalyticsDetailsQuery, useGetLearnerDetailsQuery, useGetLlmUsageMetricsQuery, useGetLlmUsageTracesQuery, useGetLlmUsageObservationsQuery, } = analyticsApiSlice;
43240
43350
 
43241
43351
  const useLazyGetDownloadReportFromURLQuery = () => {
43242
43352
  const fetchReportBlob = react$1.useCallback(({ url }) => {
@@ -48740,6 +48850,7 @@ exports.useGetAccountBillingInfoQuery = useGetAccountBillingInfoQuery;
48740
48850
  exports.useGetAdminProjectDetailsQuery = useGetAdminProjectDetailsQuery;
48741
48851
  exports.useGetAdminProjectsQuery = useGetAdminProjectsQuery;
48742
48852
  exports.useGetAgentConfigQuery = useGetAgentConfigQuery;
48853
+ exports.useGetAgentCostQuery = useGetAgentCostQuery;
48743
48854
  exports.useGetAgentSkillQuery = useGetAgentSkillQuery;
48744
48855
  exports.useGetAgentSkillResourceQuery = useGetAgentSkillResourceQuery;
48745
48856
  exports.useGetAgentSkillResourcesQuery = useGetAgentSkillResourcesQuery;
@@ -48802,7 +48913,6 @@ exports.useGetCustomMentorsQuery = useGetCustomMentorsQuery;
48802
48913
  exports.useGetDatasetsQuery = useGetDatasetsQuery;
48803
48914
  exports.useGetDepartmentMemberCheckQuery = useGetDepartmentMemberCheckQuery;
48804
48915
  exports.useGetDesiredSkillsQuery = useGetDesiredSkillsQuery;
48805
- exports.useGetDetailedFinancialStatsQuery = useGetDetailedFinancialStatsQuery;
48806
48916
  exports.useGetDisclaimersQuery = useGetDisclaimersQuery;
48807
48917
  exports.useGetEdxSSOTokenQuery = useGetEdxSSOTokenQuery;
48808
48918
  exports.useGetEnrollmentCourseSearchQuery = useGetEnrollmentCourseSearchQuery;
@@ -48812,7 +48922,6 @@ exports.useGetEvalTaskStatusQuery = useGetEvalTaskStatusQuery;
48812
48922
  exports.useGetExamInfoQuery = useGetExamInfoQuery;
48813
48923
  exports.useGetExternalMappingQuery = useGetExternalMappingQuery;
48814
48924
  exports.useGetFileUploadUrlMutation = useGetFileUploadUrlMutation;
48815
- exports.useGetFinancialStatsQuery = useGetFinancialStatsQuery;
48816
48925
  exports.useGetFreeUsageCountQuery = useGetFreeUsageCountQuery;
48817
48926
  exports.useGetGlobalMemoriesQuery = useGetGlobalMemoriesQuery;
48818
48927
  exports.useGetGradeResultQuery = useGetGradeResultQuery;
@@ -48824,6 +48933,9 @@ exports.useGetIssuersQuery = useGetIssuersQuery;
48824
48933
  exports.useGetItemSubscriptionQuery = useGetItemSubscriptionQuery;
48825
48934
  exports.useGetLLMCredentialsQuery = useGetLLMCredentialsQuery;
48826
48935
  exports.useGetLearnerDetailsQuery = useGetLearnerDetailsQuery;
48936
+ exports.useGetLlmUsageMetricsQuery = useGetLlmUsageMetricsQuery;
48937
+ exports.useGetLlmUsageObservationsQuery = useGetLlmUsageObservationsQuery;
48938
+ exports.useGetLlmUsageTracesQuery = useGetLlmUsageTracesQuery;
48827
48939
  exports.useGetLlmsQuery = useGetLlmsQuery;
48828
48940
  exports.useGetLtiKeyDetailQuery = useGetLtiKeyDetailQuery;
48829
48941
  exports.useGetLtiKeysQuery = useGetLtiKeysQuery;
@@ -48853,6 +48965,7 @@ exports.useGetMentorSkillAssignmentsQuery = useGetMentorSkillAssignmentsQuery;
48853
48965
  exports.useGetMentorSummariesQuery = useGetMentorSummariesQuery;
48854
48966
  exports.useGetMentorsQuery = useGetMentorsQuery;
48855
48967
  exports.useGetMfeContextQuery = useGetMfeContextQuery;
48968
+ exports.useGetModelCostsQuery = useGetModelCostsQuery;
48856
48969
  exports.useGetModerationLogsQuery = useGetModerationLogsQuery;
48857
48970
  exports.useGetMostDiscussedTopicsQuery = useGetMostDiscussedTopicsQuery;
48858
48971
  exports.useGetMySubscriptionsQuery = useGetMySubscriptionsQuery;
@@ -48868,6 +48981,7 @@ exports.useGetPathwayListQuery = useGetPathwayListQuery;
48868
48981
  exports.useGetPaywallConfigQuery = useGetPaywallConfigQuery;
48869
48982
  exports.useGetPerLearnerActivityQuery = useGetPerLearnerActivityQuery;
48870
48983
  exports.useGetPerLearnerInfoQuery = useGetPerLearnerInfoQuery;
48984
+ exports.useGetPerUserCostsQuery = useGetPerUserCostsQuery;
48871
48985
  exports.useGetPeriodicAgentLogsListQuery = useGetPeriodicAgentLogsListQuery;
48872
48986
  exports.useGetPeriodicAgentLogsQuery = useGetPeriodicAgentLogsQuery;
48873
48987
  exports.useGetPeriodicAgentQuery = useGetPeriodicAgentQuery;
@@ -48934,6 +49048,7 @@ exports.useGetSupportTicketsQuery = useGetSupportTicketsQuery;
48934
49048
  exports.useGetTemplateDetailsQuery = useGetTemplateDetailsQuery;
48935
49049
  exports.useGetTemplatesQuery = useGetTemplatesQuery;
48936
49050
  exports.useGetTenantChatPrivacyConfigQuery = useGetTenantChatPrivacyConfigQuery;
49051
+ exports.useGetTenantCostQuery = useGetTenantCostQuery;
48937
49052
  exports.useGetTenantMetadataQuery = useGetTenantMetadataQuery;
48938
49053
  exports.useGetTenantSpendCapQuery = useGetTenantSpendCapQuery;
48939
49054
  exports.useGetToolsQuery = useGetToolsQuery;