@iblai/web-utils 1.2.8 → 1.2.10

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.esm.js CHANGED
@@ -760,6 +760,9 @@ const TOOLS = {
760
760
  GOOGLE_SLIDES: "google-slides",
761
761
  GOOGLE_DOCUMENT: "google-docs",
762
762
  };
763
+ const REQUIRED_ACTIONS_FOR_GROUPS = {
764
+ NOTIFICATIONS: "Ibl.Notifications/Notification/action",
765
+ };
763
766
 
764
767
  const isJSON = (text) => {
765
768
  if (typeof text !== "string") {
@@ -2754,22 +2757,22 @@ async function getUserName(storageService) {
2754
2757
  * @param storageService - Storage service to access localStorage
2755
2758
  * @returns boolean indicating if token has expired
2756
2759
  */
2757
- async function isJwtTokenExpired(storageService) {
2760
+ async function isDmTokenExpired(storageService) {
2758
2761
  try {
2759
2762
  const dmTokenExpires = await storageService.getItem(LOCAL_STORAGE_KEYS.DM_TOKEN_EXPIRES);
2760
2763
  if (!dmTokenExpires) {
2761
- return false; // not expired if dm_token_expires not found
2764
+ return true;
2762
2765
  }
2763
2766
  const expiryTime = new Date(dmTokenExpires).getTime();
2764
2767
  const currentTime = Date.now();
2765
2768
  if (currentTime >= expiryTime) {
2766
- console.warn("[AuthProvider] JWT token has expired");
2769
+ console.warn("[AuthProvider] DM token has expired");
2767
2770
  return true;
2768
2771
  }
2769
2772
  return false;
2770
2773
  }
2771
2774
  catch (error) {
2772
- console.error("[AuthProvider] Error checking JWT token expiry:", error);
2775
+ console.error("[AuthProvider] Error checking DM token expiry:", error);
2773
2776
  return true; // Treat as expired on error
2774
2777
  }
2775
2778
  }
@@ -2988,12 +2991,12 @@ function useAuthProvider({ middleware = new Map(), onAuthSuccess, onAuthFailure,
2988
2991
  }
2989
2992
  // Check JWT token expiry and force logout for protected routes
2990
2993
  if (isProtectedRoute && storageService) {
2991
- const jwtExpired = await isJwtTokenExpired(storageService);
2992
- if (jwtExpired) {
2993
- console.log("[auth-redirect] JWT token has expired, forcing logout");
2994
+ const dmTokenExpired = await isDmTokenExpired(storageService);
2995
+ if (dmTokenExpired) {
2996
+ console.log("[auth-redirect] DM token has expired, forcing logout");
2994
2997
  // Clear all auth-related storage keys
2995
2998
  clearAuthCookies();
2996
- const reason = "JWT token expired";
2999
+ const reason = "DM token expired";
2997
3000
  onAuthFailure === null || onAuthFailure === void 0 ? void 0 : onAuthFailure(reason);
2998
3001
  safeRedirectToAuthSpa(undefined, undefined, true);
2999
3002
  return;
@@ -13591,6 +13594,7 @@ const buildEndpointFromService = (service, serviceFn) => {
13591
13594
  return { data };
13592
13595
  }
13593
13596
  catch (err) {
13597
+ console.error('[data-layer] API error:', JSON.stringify(err, Object.getOwnPropertyNames(err)));
13594
13598
  if (Object.prototype.hasOwnProperty.call(Config.httpErrorHandlers, err === null || err === void 0 ? void 0 : err.status)) {
13595
13599
  Config.httpErrorHandlers[err === null || err === void 0 ? void 0 : err.status]({ ...((err === null || err === void 0 ? void 0 : err.data) || {}) });
13596
13600
  }
@@ -13661,7 +13665,7 @@ const invokeHttpErrorHandler = (status, error) => {
13661
13665
  }
13662
13666
  };
13663
13667
  /** HTTP status codes that should not be retried (e.g., 402 Payment Required). */
13664
- const NON_RETRYABLE_STATUS_CODES = [402];
13668
+ const NON_RETRYABLE_STATUS_CODES = [402, 401];
13665
13669
  /**
13666
13670
  * Wraps a base query to skip retries for non-retryable HTTP status codes.
13667
13671
  * Uses `retry.fail()` to immediately bail out of the retry loop.
@@ -13716,7 +13720,6 @@ const iblFetchBaseQuery = async (args, api, extraOptions) => {
13716
13720
  error: e,
13717
13721
  }));
13718
13722
  // Extract status from error and invoke HTTP error handlers
13719
- console.log('[MONETIZATION e]', { e });
13720
13723
  const err = e;
13721
13724
  const errorStatus = typeof e === 'object' && e !== null && 'status' in e
13722
13725
  ? e.status
@@ -14399,7 +14402,7 @@ createApi({
14399
14402
  });
14400
14403
 
14401
14404
  const featureTags = {
14402
- PLATFORM_USERS: "PLATFORM_USERS",
14405
+ PLATFORM_USERS: 'PLATFORM_USERS',
14403
14406
  };
14404
14407
 
14405
14408
  createApi({
@@ -14711,10 +14714,10 @@ createApi({
14711
14714
  credentials: 'omit',
14712
14715
  });
14713
14716
  if (!response.ok) {
14714
- const error = new Error('Failed to fetch RBAC group details');
14715
- error.status = response.status;
14716
- error.body = await response.text();
14717
- throw error;
14717
+ throw Object.assign(new Error('Failed to fetch RBAC group details'), {
14718
+ status: response.status,
14719
+ body: await response.text(),
14720
+ });
14718
14721
  }
14719
14722
  return response.json();
14720
14723
  }),
@@ -14748,10 +14751,10 @@ createApi({
14748
14751
  credentials: 'omit',
14749
14752
  });
14750
14753
  if (!response.ok) {
14751
- const error = new Error('Failed to fetch RBAC policy details');
14752
- error.status = response.status;
14753
- error.body = await response.text();
14754
- throw error;
14754
+ throw Object.assign(new Error('Failed to fetch RBAC policy details'), {
14755
+ status: response.status,
14756
+ body: await response.text(),
14757
+ });
14755
14758
  }
14756
14759
  return response.json();
14757
14760
  }),
@@ -14789,15 +14792,33 @@ createApi({
14789
14792
  credentials: 'omit',
14790
14793
  });
14791
14794
  if (!response.ok) {
14792
- const error = new Error('Failed to fetch RBAC role details');
14793
- error.status = response.status;
14794
- error.body = await response.text();
14795
- throw error;
14795
+ throw Object.assign(new Error('Failed to fetch RBAC role details'), {
14796
+ status: response.status,
14797
+ body: await response.text(),
14798
+ });
14796
14799
  }
14797
14800
  return response.json();
14798
14801
  }),
14799
14802
  providesTags: ['RbacRoles'],
14800
14803
  }),
14804
+ getDepartmentMemberCheck: builder.query({
14805
+ ...buildEndpointFromService(SERVICES.DM, async (args) => {
14806
+ const queryParams = new URLSearchParams({ platform_key: args.platform_key });
14807
+ const url = `${OpenAPI.BASE}/api/core/departments/members/check/?${queryParams.toString()}`;
14808
+ const response = await fetch(url, {
14809
+ method: 'GET',
14810
+ headers: OpenAPI.HEADERS,
14811
+ credentials: 'omit',
14812
+ });
14813
+ if (!response.ok) {
14814
+ throw Object.assign(new Error('Failed to fetch department member check'), {
14815
+ status: response.status,
14816
+ body: await response.text(),
14817
+ });
14818
+ }
14819
+ return response.json();
14820
+ }),
14821
+ }),
14801
14822
  getRbacMentorAccessList: builder.query({
14802
14823
  ...buildEndpointFromDmService(CoreService.coreRbacMentorAccessList),
14803
14824
  }),
@@ -16072,6 +16093,7 @@ createApi({
16072
16093
  'catalog-roles',
16073
16094
  'catalog-invitations-course',
16074
16095
  'catalog-invitations-program',
16096
+ 'user-assigned-programs',
16075
16097
  ],
16076
16098
  endpoints: (builder) => ({
16077
16099
  getUserReportedSkills: builder.query({
@@ -16179,15 +16201,56 @@ createApi({
16179
16201
  credentials: 'omit',
16180
16202
  });
16181
16203
  if (!response.ok) {
16182
- const error = new Error('Failed to fetch program invitations');
16183
- error.status = response.status;
16184
- error.body = await response.text();
16185
- throw error;
16204
+ throw Object.assign(new Error('Failed to fetch program invitations'), {
16205
+ status: response.status,
16206
+ body: await response.text(),
16207
+ });
16186
16208
  }
16187
16209
  return response.json();
16188
16210
  }),
16189
16211
  providesTags: ['catalog-invitations-program'],
16190
16212
  }),
16213
+ getUserCatalogPathways: builder.query({
16214
+ ...buildEndpointFromService(SERVICES.DM, async (args) => {
16215
+ const params = new URLSearchParams({
16216
+ username: args.username,
16217
+ platform_key: args.platform_key,
16218
+ });
16219
+ const url = `${OpenAPI.BASE}/api/catalog/pathways/?${params.toString()}`;
16220
+ const response = await fetch(url, {
16221
+ method: 'GET',
16222
+ headers: OpenAPI.HEADERS,
16223
+ credentials: 'omit',
16224
+ });
16225
+ if (!response.ok) {
16226
+ throw Object.assign(new Error('Failed to fetch user catalog pathways'), {
16227
+ status: response.status,
16228
+ body: await response.text(),
16229
+ });
16230
+ }
16231
+ return response.json();
16232
+ }),
16233
+ providesTags: ['user-catalog-pathways'],
16234
+ }),
16235
+ getAssignedPrograms: builder.query({
16236
+ ...buildEndpointFromService(SERVICES.DM, async (args) => {
16237
+ const params = new URLSearchParams({ user_id: String(args.user_id) });
16238
+ const url = `${OpenAPI.BASE}/api/catalog/suggestions/program/user/?${params.toString()}`;
16239
+ const response = await fetch(url, {
16240
+ method: 'GET',
16241
+ headers: OpenAPI.HEADERS,
16242
+ credentials: 'omit',
16243
+ });
16244
+ if (!response.ok) {
16245
+ throw Object.assign(new Error('Failed to fetch assigned programs'), {
16246
+ status: response.status,
16247
+ body: await response.text(),
16248
+ });
16249
+ }
16250
+ return response.json();
16251
+ }),
16252
+ providesTags: ['user-assigned-programs'],
16253
+ }),
16191
16254
  }),
16192
16255
  });
16193
16256
 
@@ -16209,6 +16272,114 @@ createApi({
16209
16272
  }),
16210
16273
  });
16211
16274
 
16275
+ createApi({
16276
+ reducerPath: 'coursesApiSlice',
16277
+ baseQuery: iblFetchBaseQuery,
16278
+ tagTypes: ['user-enrolled-courses', 'user-assigned-courses'],
16279
+ endpoints: (builder) => ({
16280
+ getUserEnrolledCourses: builder.query({
16281
+ query: ({ username, query }) => {
16282
+ const params = new URLSearchParams();
16283
+ params.set('username', username);
16284
+ if (query) {
16285
+ for (const [k, v] of Object.entries(query)) {
16286
+ if (v !== undefined && v !== null)
16287
+ params.set(k, String(v));
16288
+ }
16289
+ }
16290
+ return {
16291
+ url: `/api/catalog/enrollment/courses/search/?${params.toString()}`,
16292
+ service: SERVICES.DM,
16293
+ method: 'GET',
16294
+ };
16295
+ },
16296
+ providesTags: ['user-enrolled-courses'],
16297
+ }),
16298
+ getUserAssignedCourses: builder.query({
16299
+ query: ({ user_id, query }) => {
16300
+ const params = new URLSearchParams();
16301
+ params.set('user_id', String(user_id));
16302
+ if (query) {
16303
+ for (const [k, v] of Object.entries(query)) {
16304
+ if (v !== undefined && v !== null)
16305
+ params.set(k, String(v));
16306
+ }
16307
+ }
16308
+ return {
16309
+ url: `/api/catalog/suggestions/course/user/?${params.toString()}`,
16310
+ service: SERVICES.DM,
16311
+ method: 'GET',
16312
+ };
16313
+ },
16314
+ providesTags: ['user-assigned-courses'],
16315
+ }),
16316
+ }),
16317
+ });
16318
+
16319
+ createApi({
16320
+ reducerPath: 'courseMetadataApiSlice',
16321
+ baseQuery: iblFetchBaseQuery,
16322
+ endpoints: (builder) => ({
16323
+ getCourseMetaData: builder.query({
16324
+ query: ({ courseKey }) => ({
16325
+ url: `/api/ibl/v1/course_metadata?course_key=${encodeURIComponent(courseKey)}`,
16326
+ service: SERVICES.LMS,
16327
+ method: 'GET',
16328
+ }),
16329
+ }),
16330
+ getCourseCompletionOutlines: builder.query({
16331
+ query: ({ courseKey }) => ({
16332
+ url: `/api/ibl/completion/course_outline/${courseKey}?course_id=${encodeURIComponent(courseKey)}`,
16333
+ service: SERVICES.LMS,
16334
+ method: 'GET',
16335
+ }),
16336
+ }),
16337
+ getCourseEligibility: builder.query({
16338
+ query: ({ courseKey }) => ({
16339
+ url: `/api/ibl/enrollment/enroll_status?course_id=${encodeURIComponent(courseKey)}`,
16340
+ service: SERVICES.LMS,
16341
+ method: 'GET',
16342
+ }),
16343
+ }),
16344
+ createCourseEnrollment: builder.mutation({
16345
+ query: (body) => ({
16346
+ url: `/api/enrollment/v1/enrollment`,
16347
+ service: SERVICES.LMS,
16348
+ method: 'POST',
16349
+ body,
16350
+ }),
16351
+ }),
16352
+ getCourseProgress: builder.query({
16353
+ query: ({ courseKey }) => ({
16354
+ url: `/api/course_home/progress/${courseKey}`,
16355
+ service: SERVICES.LMS,
16356
+ method: 'GET',
16357
+ }),
16358
+ }),
16359
+ getCourseCompletion: builder.query({
16360
+ query: ({ courseKey, userID }) => ({
16361
+ url: `/api/catalog/milestones/completions/course/manage/?course_id=${courseKey}&user_id=${userID}`,
16362
+ service: SERVICES.DM,
16363
+ method: 'GET',
16364
+ }),
16365
+ }),
16366
+ }),
16367
+ });
16368
+
16369
+ createApi({
16370
+ reducerPath: 'edxSsoApiSlice',
16371
+ baseQuery: iblFetchBaseQuery,
16372
+ endpoints: (builder) => ({
16373
+ getEdxSSOToken: builder.query({
16374
+ query: ({ username, redirectUrl }) => ({
16375
+ url: `/ibl/ai/sso/backend/edx/sso-auth-token/generate?username=${encodeURIComponent(username)}&redirect_url=${encodeURIComponent(redirectUrl)}`,
16376
+ service: SERVICES.LMS,
16377
+ method: 'GET',
16378
+ }),
16379
+ }),
16380
+ }),
16381
+ });
16382
+
16212
16383
  createApi({
16213
16384
  reducerPath: 'searchApiSlice',
16214
16385
  baseQuery: iblFakeBaseQuery,
@@ -16882,6 +17053,7 @@ const MEMORY_QUERY_KEYS = {
16882
17053
  MEMSEARCH_MENTOR_MEMORIES: () => ['MEMSEARCH_MENTOR_MEMORIES'],
16883
17054
  MEMSEARCH_MEMORY_CATEGORIES: () => ['MEMSEARCH_MEMORY_CATEGORIES'],
16884
17055
  MEMSEARCH_PLATFORM_CONFIG: () => ['MEMSEARCH_PLATFORM_CONFIG'],
17056
+ MEMSEARCH_STATUS: () => ['MEMSEARCH_STATUS'],
16885
17057
  };
16886
17058
  const MEMSEARCH_ENDPOINTS = {
16887
17059
  // User Memory Settings
@@ -16949,6 +17121,11 @@ const MEMSEARCH_ENDPOINTS = {
16949
17121
  service: SERVICES.AXD,
16950
17122
  path: (org, userId) => `/api/ai-mentor/orgs/${org}/users/${userId}/memsearch-config/`,
16951
17123
  },
17124
+ // Memsearch Status (available to students and admins)
17125
+ GET_MEMSEARCH_STATUS: {
17126
+ service: SERVICES.AXD,
17127
+ path: (org, userId) => `/api/ai-mentor/orgs/${org}/users/${userId}/memsearch-status/`,
17128
+ },
16952
17129
  };
16953
17130
 
16954
17131
  createApi({
@@ -16959,6 +17136,7 @@ createApi({
16959
17136
  ...MEMORY_QUERY_KEYS.MEMSEARCH_MENTOR_MEMORIES(),
16960
17137
  ...MEMORY_QUERY_KEYS.MEMSEARCH_MEMORY_CATEGORIES(),
16961
17138
  ...MEMORY_QUERY_KEYS.MEMSEARCH_PLATFORM_CONFIG(),
17139
+ ...MEMORY_QUERY_KEYS.MEMSEARCH_STATUS(),
16962
17140
  ],
16963
17141
  baseQuery: iblFetchBaseQuery,
16964
17142
  endpoints: (builder) => ({
@@ -17091,6 +17269,14 @@ createApi({
17091
17269
  }),
17092
17270
  invalidatesTags: MEMORY_QUERY_KEYS.MEMSEARCH_PLATFORM_CONFIG(),
17093
17271
  }),
17272
+ // Memsearch Status (student + admin accessible)
17273
+ getMemsearchStatus: builder.query({
17274
+ query: (args) => ({
17275
+ url: MEMSEARCH_ENDPOINTS.GET_MEMSEARCH_STATUS.path(args.org, args.userId),
17276
+ service: MEMSEARCH_ENDPOINTS.GET_MEMSEARCH_STATUS.service,
17277
+ }),
17278
+ providesTags: MEMORY_QUERY_KEYS.MEMSEARCH_STATUS(),
17279
+ }),
17094
17280
  }),
17095
17281
  });
17096
17282
 
@@ -18071,6 +18257,33 @@ createApi({
18071
18257
  }),
18072
18258
  });
18073
18259
 
18260
+ const AUDIT_LOGS_REDUCER_PATH = 'auditLogsApiSlice';
18261
+ const AUDIT_LOGS_QUERY_KEYS = {
18262
+ GET_AUDIT_LOGS: () => ['AUDIT_LOGS'],
18263
+ };
18264
+ const AUDIT_LOGS_ENDPOINTS = {
18265
+ GET_AUDIT_LOGS: {
18266
+ service: SERVICES.AXD,
18267
+ path: (org, userId) => `/api/ai-mentor/orgs/${org}/users/${userId}/mentors/audit-logs/`,
18268
+ },
18269
+ };
18270
+
18271
+ createApi({
18272
+ reducerPath: AUDIT_LOGS_REDUCER_PATH,
18273
+ tagTypes: [...AUDIT_LOGS_QUERY_KEYS.GET_AUDIT_LOGS()],
18274
+ baseQuery: iblFetchBaseQuery,
18275
+ endpoints: (builder) => ({
18276
+ getAuditLogs: builder.query({
18277
+ query: (args) => ({
18278
+ url: AUDIT_LOGS_ENDPOINTS.GET_AUDIT_LOGS.path(args.org, args.userId),
18279
+ service: AUDIT_LOGS_ENDPOINTS.GET_AUDIT_LOGS.service,
18280
+ params: args.params,
18281
+ }),
18282
+ providesTags: AUDIT_LOGS_QUERY_KEYS.GET_AUDIT_LOGS(),
18283
+ }),
18284
+ }),
18285
+ });
18286
+
18074
18287
  function useMentorSettings({ mentorId, tenantKey, username, isPublicRoute, }) {
18075
18288
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
18076
18289
  const isLoggedIn = username !== ANONYMOUS_USERNAME;
@@ -23303,5 +23516,5 @@ const checkRbacPermission = (rbacPermissions, rbacResource, enableRBAC = true) =
23303
23516
  return checkRbacPermissionInternal(rbacPermissions, rbacResource);
23304
23517
  };
23305
23518
 
23306
- export { ALPHANUMERIC_32_REGEX, ANONYMOUS_USERNAME, AuthContext, AuthContextProvider, AuthProvider, CHAT_AREA_SIZE, LOCAL_STORAGE_KEYS, MAX_INITIAL_WEBSOCKET_CONNECTION_ATTEMPTS, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, METADATAS, MentorProvider, STREAMING_CONTENT_BUFFER_THRESHOLD, STREAMING_CONTENT_FLUSH_INTERVAL, SUBSCRIPTION_MESSAGES, SUBSCRIPTION_PACKAGES, SUBSCRIPTION_PACKAGES_V2, SUBSCRIPTION_TRIGGERS, SUBSCRIPTION_V2_TRIGGERS, SubscriptionFlow, SubscriptionFlowV2, TOOLS, TenantContext, TenantContextProvider, TenantProvider, TimeTracker, WithFormPermissions, WithPermissions, addFiles, addProtocolToUrl, advancedTabs, advancedTabsProperties, chatActions, chatSliceReducerShared, checkModelAvailable, checkOllamaHealth, checkRbacPermission, clearAuthCookies, clearCookies, clearCurrentTenantCookie, clearFiles, combineCSVData, convertToOllamaMessages, createFileReference, createMultipleFileReferences, csvDataToText, defaultSessionIds, deleteCookie, deleteCookieOnAllDomains, filesReducer, filesSlice, formatRelativeTime, getAuthSpaJoinUrl, getDomainParts, getFileInfo, getInitials, getLocalLLMSystemPrompt, getNextNavigation, getParentDomain, getPlatform, getPlatformKey, getTimeAgo, getUserName, handleLogout, isAlphaNumeric32, isExpo, isInIframe, isJSON, isLoggedIn, isNode, isReactNative$1 as isReactNative, isTauri, isWeb$2 as isWeb, loadMetadataConfig, markdownToPlainText, monetizationSlice, parseCSV, redirectToAuthSpa, redirectToAuthSpaJoinTenant, removeFile, requestPresignedUrl, safeRequire, selectActiveChatMessages, selectActiveTab, selectArtifactsEnabled, selectChats, selectCurrentStreamingArtifact, selectCurrentStreamingMessage, selectDocumentFilter, selectIframeContext, selectIsError, selectIsPending, selectIsStopped, selectIsTyping, selectLastArtifactContentFlushTime, selectNumberOfActiveChatMessages, selectSessionId, selectSessionIds, selectShouldStartNewChat, selectShowingSharedChat, selectStatus, selectStreaming, selectStreamingArtifactContentBuffer, selectStreamingArtifactFullContent, selectToken, selectTokenEnabled, selectTools, sendMessageToParentWebsite, setAccessCheckResponse, setAdvancedDisplayMonetizationCheckoutModal, setCookieForAuth, setDisplayMonetizationCheckoutModal, showMonetizationCheckoutModal, streamOllamaChat, syncAuthToCookies, tenantKeySchema, tenantSchema, translatePrompt, updateFileMetadata, updateFileProgress, updateFileRetryCount, updateFileStatus, updateFileUrl, updateFileUrlFromWebSocket, uploadToS3, useAdvancedChat, useAuthContext, useAuthProvider, useChat, useDayJs, useExternalPricingPlan, useMentorSettings, useMentorTools, useProfileImageUpload, useSubscriptionHandler, useSubscriptionHandlerV2, useTenantContext, useTenantMetadata, useTimeTracker, useTimeTrackerNative, useUserProfileUpdate, userDataSchema, validateFile };
23519
+ export { ALPHANUMERIC_32_REGEX, ANONYMOUS_USERNAME, AuthContext, AuthContextProvider, AuthProvider, CHAT_AREA_SIZE, LOCAL_STORAGE_KEYS, MAX_INITIAL_WEBSOCKET_CONNECTION_ATTEMPTS, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, METADATAS, MentorProvider, REQUIRED_ACTIONS_FOR_GROUPS, STREAMING_CONTENT_BUFFER_THRESHOLD, STREAMING_CONTENT_FLUSH_INTERVAL, SUBSCRIPTION_MESSAGES, SUBSCRIPTION_PACKAGES, SUBSCRIPTION_PACKAGES_V2, SUBSCRIPTION_TRIGGERS, SUBSCRIPTION_V2_TRIGGERS, SubscriptionFlow, SubscriptionFlowV2, TOOLS, TenantContext, TenantContextProvider, TenantProvider, TimeTracker, WithFormPermissions, WithPermissions, addFiles, addProtocolToUrl, advancedTabs, advancedTabsProperties, chatActions, chatSliceReducerShared, checkModelAvailable, checkOllamaHealth, checkRbacPermission, clearAuthCookies, clearCookies, clearCurrentTenantCookie, clearFiles, combineCSVData, convertToOllamaMessages, createFileReference, createMultipleFileReferences, csvDataToText, defaultSessionIds, deleteCookie, deleteCookieOnAllDomains, filesReducer, filesSlice, formatRelativeTime, getAuthSpaJoinUrl, getDomainParts, getFileInfo, getInitials, getLocalLLMSystemPrompt, getNextNavigation, getParentDomain, getPlatform, getPlatformKey, getTimeAgo, getUserName, handleLogout, isAlphaNumeric32, isExpo, isInIframe, isJSON, isLoggedIn, isNode, isReactNative$1 as isReactNative, isTauri, isWeb$2 as isWeb, loadMetadataConfig, markdownToPlainText, monetizationSlice, parseCSV, redirectToAuthSpa, redirectToAuthSpaJoinTenant, removeFile, requestPresignedUrl, safeRequire, selectActiveChatMessages, selectActiveTab, selectArtifactsEnabled, selectChats, selectCurrentStreamingArtifact, selectCurrentStreamingMessage, selectDocumentFilter, selectIframeContext, selectIsError, selectIsPending, selectIsStopped, selectIsTyping, selectLastArtifactContentFlushTime, selectNumberOfActiveChatMessages, selectSessionId, selectSessionIds, selectShouldStartNewChat, selectShowingSharedChat, selectStatus, selectStreaming, selectStreamingArtifactContentBuffer, selectStreamingArtifactFullContent, selectToken, selectTokenEnabled, selectTools, sendMessageToParentWebsite, setAccessCheckResponse, setAdvancedDisplayMonetizationCheckoutModal, setCookieForAuth, setDisplayMonetizationCheckoutModal, showMonetizationCheckoutModal, streamOllamaChat, syncAuthToCookies, tenantKeySchema, tenantSchema, translatePrompt, updateFileMetadata, updateFileProgress, updateFileRetryCount, updateFileStatus, updateFileUrl, updateFileUrlFromWebSocket, uploadToS3, useAdvancedChat, useAuthContext, useAuthProvider, useChat, useDayJs, useExternalPricingPlan, useMentorSettings, useMentorTools, useProfileImageUpload, useSubscriptionHandler, useSubscriptionHandlerV2, useTenantContext, useTenantMetadata, useTimeTracker, useTimeTrackerNative, useUserProfileUpdate, userDataSchema, validateFile };
23307
23520
  //# sourceMappingURL=index.esm.js.map