@burtson-labs/bandit-engine 2.0.77 → 2.0.78

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.
@@ -4,7 +4,7 @@ import {
4
4
  getHighlightTree,
5
5
  markdownSanitizeSchema,
6
6
  renderLowlightChildren
7
- } from "./chunk-6DY7W4NK.mjs";
7
+ } from "./chunk-57L7TXB6.mjs";
8
8
 
9
9
  // src/components/StreamingMarkdown.tsx
10
10
  import React, { useEffect, useMemo, useRef, useState } from "react";
@@ -495,4 +495,4 @@ var StreamingMarkdown_default = React.memo(StreamingMarkdown, arePropsEqual);
495
495
  export {
496
496
  StreamingMarkdown_default
497
497
  };
498
- //# sourceMappingURL=chunk-U633CJBV.mjs.map
498
+ //# sourceMappingURL=chunk-YYYEMVBV.mjs.map
package/dist/index.d.mts CHANGED
@@ -14,6 +14,18 @@ declare const Chat: () => react_jsx_runtime.JSX.Element | null;
14
14
 
15
15
  declare const Management: () => react_jsx_runtime.JSX.Element | null;
16
16
 
17
+ interface InterestsEditorProps {
18
+ title?: string | null;
19
+ description?: string | null;
20
+ }
21
+ /**
22
+ * Topic picker for the user's interests. Self-contained — hydrates the
23
+ * preferences store on mount so it works anywhere (e.g. the account profile
24
+ * page, outside the chat). Edits persist to the same store the home-screen
25
+ * conversation starters read from.
26
+ */
27
+ declare const InterestsEditor: ({ title, description, }: InterestsEditorProps) => react_jsx_runtime.JSX.Element;
28
+
17
29
  declare function defineCustomElement<Props extends Record<string, unknown>>(name: string, Component: React.ComponentType<Props>): void;
18
30
 
19
31
  /**
@@ -1337,4 +1349,4 @@ declare const useVectorStore: () => {
1337
1349
  initializeVectorService: () => Promise<void>;
1338
1350
  };
1339
1351
 
1340
- export { Chat, type CreateMemoryOptions, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, type LogContext, Management, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, SYSTEM_FLAGS, type SearchOptions, type SearchResult, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, type TTSOptions, type TTSProgress, TTSState, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, debugLogger, defineCustomElement, featureFlagService, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, notificationService, pauseTTS, previewTierUpgrade, resumeTTS, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stopTTS, syncSubscriptionWithAPI, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
1352
+ export { Chat, type CreateMemoryOptions, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, InterestsEditor, type LogContext, Management, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, SYSTEM_FLAGS, type SearchOptions, type SearchResult, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, type TTSOptions, type TTSProgress, TTSState, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, debugLogger, defineCustomElement, featureFlagService, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, notificationService, pauseTTS, previewTierUpgrade, resumeTTS, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stopTTS, syncSubscriptionWithAPI, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
package/dist/index.d.ts CHANGED
@@ -14,6 +14,18 @@ declare const Chat: () => react_jsx_runtime.JSX.Element | null;
14
14
 
15
15
  declare const Management: () => react_jsx_runtime.JSX.Element | null;
16
16
 
17
+ interface InterestsEditorProps {
18
+ title?: string | null;
19
+ description?: string | null;
20
+ }
21
+ /**
22
+ * Topic picker for the user's interests. Self-contained — hydrates the
23
+ * preferences store on mount so it works anywhere (e.g. the account profile
24
+ * page, outside the chat). Edits persist to the same store the home-screen
25
+ * conversation starters read from.
26
+ */
27
+ declare const InterestsEditor: ({ title, description, }: InterestsEditorProps) => react_jsx_runtime.JSX.Element;
28
+
17
29
  declare function defineCustomElement<Props extends Record<string, unknown>>(name: string, Component: React.ComponentType<Props>): void;
18
30
 
19
31
  /**
@@ -1337,4 +1349,4 @@ declare const useVectorStore: () => {
1337
1349
  initializeVectorService: () => Promise<void>;
1338
1350
  };
1339
1351
 
1340
- export { Chat, type CreateMemoryOptions, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, type LogContext, Management, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, SYSTEM_FLAGS, type SearchOptions, type SearchResult, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, type TTSOptions, type TTSProgress, TTSState, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, debugLogger, defineCustomElement, featureFlagService, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, notificationService, pauseTTS, previewTierUpgrade, resumeTTS, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stopTTS, syncSubscriptionWithAPI, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
1352
+ export { Chat, type CreateMemoryOptions, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, InterestsEditor, type LogContext, Management, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, SYSTEM_FLAGS, type SearchOptions, type SearchResult, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, type TTSOptions, type TTSProgress, TTSState, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, debugLogger, defineCustomElement, featureFlagService, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, notificationService, pauseTTS, previewTierUpgrade, resumeTTS, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stopTTS, syncSubscriptionWithAPI, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
package/dist/index.js CHANGED
@@ -16262,7 +16262,7 @@ var init_memory_modal = __esm({
16262
16262
  {
16263
16263
  variant: "body2",
16264
16264
  sx: { color: theme.palette.text.secondary, fontSize: "0.85rem", textAlign: isMobileView ? "left" : "center" },
16265
- children: shouldUseVectorForMemories ? "\u{1F680} AI-Powered Vector Memory. Semantic search across your conversations." : "\u{1F9E0} Private. Local. Yours. You control your memories."
16265
+ children: shouldUseVectorForMemories ? "Semantic memory \u2014 searches meaning across your conversations." : "Private and local. You decide what's remembered."
16266
16266
  }
16267
16267
  ) }),
16268
16268
  /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
@@ -16495,7 +16495,7 @@ var init_memory_modal = __esm({
16495
16495
  fontStyle: "italic",
16496
16496
  mt: 0.5,
16497
16497
  display: "block"
16498
- }, children: "\u{1F4CC} Pinned" })
16498
+ }, children: "Pinned" })
16499
16499
  ] })
16500
16500
  ]
16501
16501
  }
@@ -18617,7 +18617,7 @@ ${sanitize(
18617
18617
  };
18618
18618
  const memory = localStorage.getItem("bandit-memory");
18619
18619
  const hasAttachmentAction = !isPlaygroundMode3 && fileInputs.length < 3 && isDocumentUploadEnabled;
18620
- const hasMemoryAction = isMemoryEnabled;
18620
+ const hasMemoryAction = false;
18621
18621
  const hasFeedbackAction = isFeedbackEnabled && isMobile;
18622
18622
  const hasSttAction = isSTTAvailable && !isVoiceModeEnabled;
18623
18623
  const hasSecondaryActions = isMobile && (hasAttachmentAction || hasMemoryAction || hasFeedbackAction || hasSttAction);
@@ -30613,6 +30613,7 @@ __export(index_exports, {
30613
30613
  FeatureFlagService: () => FeatureFlagService,
30614
30614
  FeedbackButton: () => FeedbackButton,
30615
30615
  FeedbackModal: () => FeedbackModal,
30616
+ InterestsEditor: () => InterestsEditor_default,
30616
30617
  Management: () => management_default,
30617
30618
  NotificationProvider: () => NotificationProvider,
30618
30619
  NotificationService: () => NotificationService,
@@ -35846,6 +35847,7 @@ var PersonalitiesTab_default = PersonalitiesTab;
35846
35847
 
35847
35848
  // src/management/components/PreferencesTab.tsx
35848
35849
  var import_react48 = require("react");
35850
+ init_memory_modal();
35849
35851
  var import_material39 = require("@mui/material");
35850
35852
  init_preferencesStore();
35851
35853
  init_getStableQuestionPrompt();
@@ -35942,6 +35944,7 @@ var PreferencesTab = ({
35942
35944
  const [syncToggleLoading, setSyncToggleLoading] = (0, import_react48.useState)(false);
35943
35945
  const [manualSyncLoading, setManualSyncLoading] = (0, import_react48.useState)(false);
35944
35946
  const [advancedVectorToggleLoading, setAdvancedVectorToggleLoading] = (0, import_react48.useState)(false);
35947
+ const [memoryModalOpen, setMemoryModalOpen] = (0, import_react48.useState)(false);
35945
35948
  const timeoutRef = (0, import_react48.useRef)(null);
35946
35949
  const fileInputRef = (0, import_react48.useRef)(null);
35947
35950
  const { exportPreferences, importPreferences, resetToDefaults } = usePreferencesStore();
@@ -36501,6 +36504,10 @@ var PreferencesTab = ({
36501
36504
  ] })
36502
36505
  }
36503
36506
  ),
36507
+ preferences.memoryEnabled && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_material39.Box, { sx: { pl: { xs: 0, sm: 6 }, mt: -0.5, mb: 0.5 }, children: [
36508
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_material39.Button, { size: "small", variant: "outlined", onClick: () => setMemoryModalOpen(true), children: "Manage memories" }),
36509
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(memory_modal_default, { open: memoryModalOpen, onClose: () => setMemoryModalOpen(false) })
36510
+ ] }),
36504
36511
  /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
36505
36512
  import_material39.FormControlLabel,
36506
36513
  {
@@ -44717,8 +44724,53 @@ var Management = () => {
44717
44724
  };
44718
44725
  var management_default = Management;
44719
44726
 
44727
+ // src/management/components/InterestsEditor.tsx
44728
+ var import_react61 = require("react");
44729
+ var import_material51 = require("@mui/material");
44730
+ init_preferencesStore();
44731
+ init_getStableQuestionPrompt();
44732
+ var import_jsx_runtime51 = require("react/jsx-runtime");
44733
+ var InterestsEditor = ({
44734
+ title = "Your interests",
44735
+ description = "Pick the topics you care about \u2014 your home-screen conversation starters lean toward them."
44736
+ }) => {
44737
+ const preferences = usePreferencesStore((s) => s.preferences);
44738
+ const updatePreference = usePreferencesStore((s) => s.updatePreference);
44739
+ const loadPreferences = usePreferencesStore((s) => s.loadPreferences);
44740
+ const isLoaded = usePreferencesStore((s) => s.isLoaded);
44741
+ (0, import_react61.useEffect)(() => {
44742
+ if (!isLoaded) {
44743
+ void loadPreferences();
44744
+ }
44745
+ }, [isLoaded, loadPreferences]);
44746
+ const interests = preferences?.interests ?? [];
44747
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_material51.Box, { children: [
44748
+ title && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Typography, { variant: "h6", sx: { fontWeight: 600, color: "text.primary" }, children: title }),
44749
+ description && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Typography, { variant: "body2", color: "text.secondary", sx: { mb: 1.5 }, children: description }),
44750
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1 }, children: TOPICS.map((topic) => {
44751
+ const selected = interests.includes(topic);
44752
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
44753
+ import_material51.Chip,
44754
+ {
44755
+ label: topic,
44756
+ size: "small",
44757
+ color: selected ? "primary" : "default",
44758
+ variant: selected ? "filled" : "outlined",
44759
+ onClick: () => {
44760
+ const next = selected ? interests.filter((t) => t !== topic) : [...interests, topic];
44761
+ updatePreference("interests", next);
44762
+ },
44763
+ sx: { textTransform: "capitalize" }
44764
+ },
44765
+ topic
44766
+ );
44767
+ }) })
44768
+ ] });
44769
+ };
44770
+ var InterestsEditor_default = InterestsEditor;
44771
+
44720
44772
  // src/shared/custom-element.ts
44721
- var import_react61 = __toESM(require("react"));
44773
+ var import_react62 = __toESM(require("react"));
44722
44774
  var import_client = __toESM(require("react-dom/client"));
44723
44775
  function defineCustomElement(name, Component) {
44724
44776
  if (customElements.get(name)) return;
@@ -44746,7 +44798,7 @@ function defineCustomElement(name, Component) {
44746
44798
  if (!this.root) {
44747
44799
  this.root = import_client.default.createRoot(this.mountPoint);
44748
44800
  }
44749
- this.root.render(import_react61.default.createElement(Component, props));
44801
+ this.root.render(import_react62.default.createElement(Component, props));
44750
44802
  }
44751
44803
  }
44752
44804
  customElements.define(name, ReactElement);
@@ -44955,7 +45007,7 @@ var getFeatureMatrix = () => featureFlagService.generateFeatureMatrix();
44955
45007
  init_featureFlags();
44956
45008
 
44957
45009
  // src/hooks/useVoices.ts
44958
- var import_react62 = require("react");
45010
+ var import_react63 = require("react");
44959
45011
  init_voiceStore();
44960
45012
  init_packageSettingsStore();
44961
45013
  init_authenticationStore();
@@ -44975,7 +45027,7 @@ var useVoices = () => {
44975
45027
  } = useVoiceStore();
44976
45028
  const gatewayApiUrl = usePackageSettingsStore((state) => state.settings?.gatewayApiUrl);
44977
45029
  const { token } = useAuthenticationStore();
44978
- (0, import_react62.useEffect)(() => {
45030
+ (0, import_react63.useEffect)(() => {
44979
45031
  const isAuthenticated = authenticationService.isAuthenticated();
44980
45032
  if (gatewayApiUrl && token && isAuthenticated && !isServiceAvailable) {
44981
45033
  debugLogger.debug("Gateway API URL and JWT token available, loading voice models...");
@@ -45010,9 +45062,9 @@ init_useTTS();
45010
45062
  init_streaming_tts();
45011
45063
 
45012
45064
  // src/modals/SubscriptionExpiredModal.tsx
45013
- var import_material51 = require("@mui/material");
45065
+ var import_material52 = require("@mui/material");
45014
45066
  var import_lucide_react12 = require("lucide-react");
45015
- var import_jsx_runtime51 = require("react/jsx-runtime");
45067
+ var import_jsx_runtime52 = require("react/jsx-runtime");
45016
45068
  var SubscriptionExpiredModal = ({
45017
45069
  open,
45018
45070
  onNavigateHome,
@@ -45034,8 +45086,8 @@ var SubscriptionExpiredModal = ({
45034
45086
  window.location.href = "/manage-subscription";
45035
45087
  }
45036
45088
  };
45037
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
45038
- import_material51.Dialog,
45089
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
45090
+ import_material52.Dialog,
45039
45091
  {
45040
45092
  open,
45041
45093
  onClose,
@@ -45049,47 +45101,47 @@ var SubscriptionExpiredModal = ({
45049
45101
  }
45050
45102
  },
45051
45103
  children: [
45052
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.DialogTitle, { sx: { textAlign: "center", pb: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_material51.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1, mb: 1 }, children: [
45053
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react12.AlertTriangle, { size: 32, color: "warning" }),
45054
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Typography, { variant: "h5", component: "span", fontWeight: "bold", children: "Subscription Expired" })
45104
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.DialogTitle, { sx: { textAlign: "center", pb: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_material52.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "center", gap: 1, mb: 1 }, children: [
45105
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react12.AlertTriangle, { size: 32, color: "warning" }),
45106
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.Typography, { variant: "h5", component: "span", fontWeight: "bold", children: "Subscription Expired" })
45055
45107
  ] }) }),
45056
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.DialogContent, { sx: { pt: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_material51.Stack, { spacing: 2, children: [
45057
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Alert, { severity: "warning", sx: { mb: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Typography, { variant: "body2", children: "Your subscription has expired and access to features has been restricted." }) }),
45058
- userEmail && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_material51.Typography, { variant: "body2", color: "text.secondary", sx: { textAlign: "center" }, children: [
45108
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.DialogContent, { sx: { pt: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_material52.Stack, { spacing: 2, children: [
45109
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.Alert, { severity: "warning", sx: { mb: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.Typography, { variant: "body2", children: "Your subscription has expired and access to features has been restricted." }) }),
45110
+ userEmail && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_material52.Typography, { variant: "body2", color: "text.secondary", sx: { textAlign: "center" }, children: [
45059
45111
  "Account: ",
45060
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("strong", { children: userEmail })
45112
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("strong", { children: userEmail })
45061
45113
  ] }),
45062
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Typography, { variant: "body1", sx: { textAlign: "center", color: "text.secondary" }, children: "To continue using all features, please renew your subscription or return to the main application." }),
45063
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_material51.Box, { sx: {
45114
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.Typography, { variant: "body1", sx: { textAlign: "center", color: "text.secondary" }, children: "To continue using all features, please renew your subscription or return to the main application." }),
45115
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material52.Box, { sx: {
45064
45116
  bgcolor: "background.paper",
45065
45117
  border: 1,
45066
45118
  borderColor: "divider",
45067
45119
  borderRadius: 1,
45068
45120
  p: 2,
45069
45121
  mt: 2
45070
- }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_material51.Typography, { variant: "caption", color: "text.secondary", sx: { fontStyle: "italic" }, children: [
45071
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("strong", { children: "What's affected:" }),
45122
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_material52.Typography, { variant: "caption", color: "text.secondary", sx: { fontStyle: "italic" }, children: [
45123
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("strong", { children: "What's affected:" }),
45072
45124
  " All premium features including document upload, voice controls, advanced search, and admin dashboard access have been disabled until your subscription is renewed."
45073
45125
  ] }) })
45074
45126
  ] }) }),
45075
- /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_material51.DialogActions, { sx: { px: 3, pb: 3, gap: 1, justifyContent: "center" }, children: [
45076
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
45077
- import_material51.Button,
45127
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_material52.DialogActions, { sx: { px: 3, pb: 3, gap: 1, justifyContent: "center" }, children: [
45128
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
45129
+ import_material52.Button,
45078
45130
  {
45079
45131
  onClick: handleNavigateHome,
45080
45132
  variant: "outlined",
45081
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react12.Home, {}),
45133
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react12.Home, {}),
45082
45134
  size: "large",
45083
45135
  sx: { minWidth: 140 },
45084
45136
  children: "Go Home"
45085
45137
  }
45086
45138
  ),
45087
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
45088
- import_material51.Button,
45139
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
45140
+ import_material52.Button,
45089
45141
  {
45090
45142
  onClick: handleManageSubscription,
45091
45143
  variant: "contained",
45092
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react12.CreditCard, {}),
45144
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react12.CreditCard, {}),
45093
45145
  size: "large",
45094
45146
  color: "primary",
45095
45147
  sx: { minWidth: 140 },
@@ -45103,9 +45155,9 @@ var SubscriptionExpiredModal = ({
45103
45155
  };
45104
45156
 
45105
45157
  // src/guards/SubscriptionExpiredGuard.tsx
45106
- var import_react63 = require("react");
45158
+ var import_react64 = require("react");
45107
45159
  init_useFeatures();
45108
- var import_jsx_runtime52 = require("react/jsx-runtime");
45160
+ var import_jsx_runtime53 = require("react/jsx-runtime");
45109
45161
  var SubscriptionExpiredGuard = ({
45110
45162
  children,
45111
45163
  onNavigateHome,
@@ -45114,9 +45166,9 @@ var SubscriptionExpiredGuard = ({
45114
45166
  allowContinue = false
45115
45167
  }) => {
45116
45168
  const { isExpiredTier, getFullEvaluation } = useFeatures();
45117
- const [showModal, setShowModal] = (0, import_react63.useState)(false);
45118
- const [userDismissed, setUserDismissed] = (0, import_react63.useState)(false);
45119
- (0, import_react63.useEffect)(() => {
45169
+ const [showModal, setShowModal] = (0, import_react64.useState)(false);
45170
+ const [userDismissed, setUserDismissed] = (0, import_react64.useState)(false);
45171
+ (0, import_react64.useEffect)(() => {
45120
45172
  if (isExpiredTier() && !userDismissed) {
45121
45173
  setShowModal(true);
45122
45174
  } else {
@@ -45142,9 +45194,9 @@ var SubscriptionExpiredGuard = ({
45142
45194
  }
45143
45195
  return void 0;
45144
45196
  })() : void 0;
45145
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
45197
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
45146
45198
  children,
45147
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
45199
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
45148
45200
  SubscriptionExpiredModal,
45149
45201
  {
45150
45202
  open: showModal,
@@ -45345,6 +45397,7 @@ init_useVectorStore();
45345
45397
  FeatureFlagService,
45346
45398
  FeedbackButton,
45347
45399
  FeedbackModal,
45400
+ InterestsEditor,
45348
45401
  Management,
45349
45402
  NotificationProvider,
45350
45403
  NotificationService,