@parhelia/core 0.1.11151 → 0.1.11180

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 (224) hide show
  1. package/dist/agents-view/AgentsInbox.d.ts +2 -1
  2. package/dist/agents-view/AgentsInbox.js +2 -2
  3. package/dist/agents-view/AgentsInbox.js.map +1 -1
  4. package/dist/agents-view/AgentsView.js +30 -1
  5. package/dist/agents-view/AgentsView.js.map +1 -1
  6. package/dist/components/ui/card.d.ts +1 -1
  7. package/dist/components/ui/card.js +1 -1
  8. package/dist/components/ui/card.js.map +1 -1
  9. package/dist/components/ui/paste-button.d.ts +1 -1
  10. package/dist/components/ui/paste-button.js +79 -22
  11. package/dist/components/ui/paste-button.js.map +1 -1
  12. package/dist/config/config.js +83 -51
  13. package/dist/config/config.js.map +1 -1
  14. package/dist/config/types.d.ts +29 -4
  15. package/dist/editor/ContentTree.js +92 -22
  16. package/dist/editor/ContentTree.js.map +1 -1
  17. package/dist/editor/FieldActionsOverlay.d.ts +1 -0
  18. package/dist/editor/FieldActionsOverlay.js +17 -1
  19. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  20. package/dist/editor/FieldListField.js +1 -1
  21. package/dist/editor/FieldListField.js.map +1 -1
  22. package/dist/editor/LinkEditorDialog.js +33 -24
  23. package/dist/editor/LinkEditorDialog.js.map +1 -1
  24. package/dist/editor/MainLayout.js +2 -2
  25. package/dist/editor/MainLayout.js.map +1 -1
  26. package/dist/editor/PictureEditor.js +1 -1
  27. package/dist/editor/PictureEditor.js.map +1 -1
  28. package/dist/editor/ai/AgentTerminal.js +63 -26
  29. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  30. package/dist/editor/ai/Agents.js +7 -2
  31. package/dist/editor/ai/Agents.js.map +1 -1
  32. package/dist/editor/client/EditorShell.js +178 -79
  33. package/dist/editor/client/EditorShell.js.map +1 -1
  34. package/dist/editor/client/OperationDialogContent.d.ts +13 -0
  35. package/dist/editor/client/OperationDialogContent.js +13 -0
  36. package/dist/editor/client/OperationDialogContent.js.map +1 -0
  37. package/dist/editor/client/editContext.d.ts +2 -0
  38. package/dist/editor/client/editContext.js.map +1 -1
  39. package/dist/editor/client/hooks/useGlobalEditorKeyDown.js +5 -2
  40. package/dist/editor/client/hooks/useGlobalEditorKeyDown.js.map +1 -1
  41. package/dist/editor/client/hooks/useQuota.d.ts +4 -0
  42. package/dist/editor/client/hooks/useQuota.js.map +1 -1
  43. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +2 -2
  44. package/dist/editor/client/hooks/useSocketMessageHandler.js +5 -7
  45. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  46. package/dist/editor/client/operations.d.ts +1 -0
  47. package/dist/editor/client/operations.js +332 -8
  48. package/dist/editor/client/operations.js.map +1 -1
  49. package/dist/editor/client/ui/EditorChrome.js +1 -1
  50. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  51. package/dist/editor/commands/itemCommands.d.ts +0 -1
  52. package/dist/editor/commands/itemCommands.js +1 -16
  53. package/dist/editor/commands/itemCommands.js.map +1 -1
  54. package/dist/editor/commands/undo.js +6 -2
  55. package/dist/editor/commands/undo.js.map +1 -1
  56. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  57. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  58. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +56 -2
  59. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  60. package/dist/editor/page-editor-chrome/FrameMenu.js +5 -4
  61. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  62. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +5 -1
  63. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  64. package/dist/editor/page-viewer/PageViewerFrame.js +118 -13
  65. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  66. package/dist/editor/reviews/CreateReviewDialog.js +1 -1
  67. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  68. package/dist/editor/reviews/DecisionsMatrix.js +1 -1
  69. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  70. package/dist/editor/reviews/ReviewsList.js +1 -1
  71. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  72. package/dist/editor/services/editService.d.ts +20 -3
  73. package/dist/editor/services/editService.js +17 -17
  74. package/dist/editor/services/editService.js.map +1 -1
  75. package/dist/editor/services/indexService.d.ts +4 -1
  76. package/dist/editor/services/indexService.js +12 -0
  77. package/dist/editor/services/indexService.js.map +1 -1
  78. package/dist/editor/services/serviceHelper.js +1 -0
  79. package/dist/editor/services/serviceHelper.js.map +1 -1
  80. package/dist/editor/settings/About.d.ts +1 -0
  81. package/dist/editor/settings/About.js +9 -0
  82. package/dist/editor/settings/About.js.map +1 -0
  83. package/dist/editor/settings/AllAgentsPanel.d.ts +5 -0
  84. package/dist/editor/settings/AllAgentsPanel.js +126 -0
  85. package/dist/editor/settings/AllAgentsPanel.js.map +1 -0
  86. package/dist/editor/settings/IndexOverview.d.ts +1 -0
  87. package/dist/editor/settings/IndexOverview.js +471 -0
  88. package/dist/editor/settings/IndexOverview.js.map +1 -0
  89. package/dist/editor/settings/Info.d.ts +1 -0
  90. package/dist/editor/settings/Info.js +11 -0
  91. package/dist/editor/settings/Info.js.map +1 -0
  92. package/dist/editor/settings/LatestFeedback.d.ts +1 -0
  93. package/dist/editor/settings/LatestFeedback.js +136 -0
  94. package/dist/editor/settings/LatestFeedback.js.map +1 -0
  95. package/dist/editor/settings/QuotaInfo.d.ts +1 -0
  96. package/dist/editor/settings/QuotaInfo.js +102 -0
  97. package/dist/editor/settings/QuotaInfo.js.map +1 -0
  98. package/dist/editor/settings/SettingsMenu.d.ts +1 -0
  99. package/dist/editor/settings/SettingsMenu.js +74 -0
  100. package/dist/editor/settings/SettingsMenu.js.map +1 -0
  101. package/dist/editor/settings/SettingsView.d.ts +1 -0
  102. package/dist/editor/settings/SettingsView.js +85 -0
  103. package/dist/editor/settings/SettingsView.js.map +1 -0
  104. package/dist/editor/settings/Setup.d.ts +1 -0
  105. package/dist/editor/settings/Setup.js +211 -0
  106. package/dist/editor/settings/Setup.js.map +1 -0
  107. package/dist/editor/settings/Status.d.ts +1 -0
  108. package/dist/editor/settings/Status.js +85 -0
  109. package/dist/editor/settings/Status.js.map +1 -0
  110. package/dist/editor/settings/WebSocketMessages.d.ts +1 -0
  111. package/dist/editor/settings/WebSocketMessages.js +71 -0
  112. package/dist/editor/settings/WebSocketMessages.js.map +1 -0
  113. package/dist/editor/settings/panels/AgentsPanel.d.ts +6 -0
  114. package/dist/editor/settings/panels/AgentsPanel.js +186 -0
  115. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -0
  116. package/dist/editor/settings/panels/DatabasePanel.d.ts +6 -0
  117. package/dist/editor/settings/panels/DatabasePanel.js +50 -0
  118. package/dist/editor/settings/panels/DatabasePanel.js.map +1 -0
  119. package/dist/editor/settings/panels/ItemConfigPanel.d.ts +13 -0
  120. package/dist/editor/settings/panels/ItemConfigPanel.js +52 -0
  121. package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -0
  122. package/dist/editor/settings/panels/ModelsPanel.d.ts +6 -0
  123. package/dist/editor/settings/panels/ModelsPanel.js +269 -0
  124. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -0
  125. package/dist/editor/settings/panels/ProvidersPanel.d.ts +6 -0
  126. package/dist/editor/settings/panels/ProvidersPanel.js +206 -0
  127. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -0
  128. package/dist/editor/settings/panels/SearchConfigPanel.d.ts +6 -0
  129. package/dist/editor/settings/panels/SearchConfigPanel.js +134 -0
  130. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -0
  131. package/dist/editor/settings/panels/SettingsPanel.d.ts +6 -0
  132. package/dist/editor/settings/panels/SettingsPanel.js +39 -0
  133. package/dist/editor/settings/panels/SettingsPanel.js.map +1 -0
  134. package/dist/editor/settings/panels/StatusPanel.d.ts +6 -0
  135. package/dist/editor/settings/panels/StatusPanel.js +141 -0
  136. package/dist/editor/settings/panels/StatusPanel.js.map +1 -0
  137. package/dist/editor/settings/panels/ToolsPanel.d.ts +6 -0
  138. package/dist/editor/settings/panels/ToolsPanel.js +192 -0
  139. package/dist/editor/settings/panels/ToolsPanel.js.map +1 -0
  140. package/dist/editor/settings/panels/index.d.ts +14 -0
  141. package/dist/editor/settings/panels/index.js +15 -0
  142. package/dist/editor/settings/panels/index.js.map +1 -0
  143. package/dist/editor/settings/panels/useSidebarEditor.d.ts +15 -0
  144. package/dist/editor/settings/panels/useSidebarEditor.js +24 -0
  145. package/dist/editor/settings/panels/useSidebarEditor.js.map +1 -0
  146. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
  147. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
  148. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
  149. package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +2 -0
  150. package/dist/editor/settings/setup-steps/AiSetupStep/index.js +22 -0
  151. package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +1 -0
  152. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
  153. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
  154. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
  155. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
  156. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
  157. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
  158. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
  159. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
  160. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
  161. package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.d.ts +1 -0
  162. package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +367 -0
  163. package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -0
  164. package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +1 -0
  165. package/dist/editor/settings/setup-steps/AiSetupStep/types.js +2 -0
  166. package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +1 -0
  167. package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +5 -0
  168. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +44 -0
  169. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +1 -0
  170. package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +2 -0
  171. package/dist/editor/settings/setup-steps/IndexSetupStep.js +36 -0
  172. package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +1 -0
  173. package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +2 -0
  174. package/dist/editor/settings/setup-steps/SettingsSetupStep.js +111 -0
  175. package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +1 -0
  176. package/dist/editor/settings/setup-steps/SetupOverview.d.ts +14 -0
  177. package/dist/editor/settings/setup-steps/SetupOverview.js +38 -0
  178. package/dist/editor/settings/setup-steps/SetupOverview.js.map +1 -0
  179. package/dist/editor/settings/status/coreStatusChecks.d.ts +25 -0
  180. package/dist/editor/settings/status/coreStatusChecks.js +231 -0
  181. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -0
  182. package/dist/editor/settings/status/index.d.ts +3 -0
  183. package/dist/editor/settings/status/index.js +3 -0
  184. package/dist/editor/settings/status/index.js.map +1 -0
  185. package/dist/editor/settings/status/useStartupChecks.d.ts +17 -0
  186. package/dist/editor/settings/status/useStartupChecks.js +54 -0
  187. package/dist/editor/settings/status/useStartupChecks.js.map +1 -0
  188. package/dist/editor/sidebar/EditHistory.js +18 -14
  189. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  190. package/dist/editor/sidebar/MainContentTree.js +0 -1
  191. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  192. package/dist/editor/sidebar/OperationItem.js +4 -3
  193. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  194. package/dist/editor/ui/PerfectTree.js +1 -1
  195. package/dist/editor/ui/PerfectTree.js.map +1 -1
  196. package/dist/editor/ui/Section.js +3 -3
  197. package/dist/editor/ui/Section.js.map +1 -1
  198. package/dist/editor/ui/SimpleMenu.js +13 -4
  199. package/dist/editor/ui/SimpleMenu.js.map +1 -1
  200. package/dist/editor/ui/SimpleToolbar.js +1 -1
  201. package/dist/editor/ui/SimpleToolbar.js.map +1 -1
  202. package/dist/editor/utils/keyboardNavigation.js +89 -27
  203. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  204. package/dist/revision.d.ts +2 -2
  205. package/dist/revision.js +2 -2
  206. package/dist/setup/SetupWizardPage.js +2 -2
  207. package/dist/setup/SetupWizardPage.js.map +1 -1
  208. package/dist/setup/services/setupWizardService.d.ts +132 -12
  209. package/dist/setup/services/setupWizardService.js +82 -6
  210. package/dist/setup/services/setupWizardService.js.map +1 -1
  211. package/dist/setup/wizard/index.d.ts +5 -4
  212. package/dist/setup/wizard/index.js +6 -4
  213. package/dist/setup/wizard/index.js.map +1 -1
  214. package/dist/setup/wizard/steps/AddModelDialog.d.ts +10 -0
  215. package/dist/setup/wizard/steps/AddModelDialog.js +119 -0
  216. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -0
  217. package/dist/setup/wizard/steps/ImportModelDialog.d.ts +10 -0
  218. package/dist/setup/wizard/steps/ImportModelDialog.js +351 -0
  219. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -0
  220. package/dist/splash-screen/ModernSplashScreen.js +1 -1
  221. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  222. package/dist/styles.css +183 -10
  223. package/dist/types.d.ts +36 -1
  224. package/package.json +4 -4
@@ -0,0 +1,471 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { RefreshCw, ExternalLink, Database, Clock, CheckCircle, AlertCircle, Trash2, ChevronDown, Settings, } from "lucide-react";
4
+ import { Button } from "../../components/ui/button";
5
+ import { cn } from "../../lib/utils";
6
+ import { formatDateOnly, formatDateTime } from "../utils";
7
+ import { getCombinedIndexStatus, cleanupBatches, populateCentroids, processCompletedBatches, collectAndUpload, submitStaged, startDirectGeneration, discardStaged, getProviderInfo, } from "../services/indexService";
8
+ import { useEditContext } from "../client/editContext";
9
+ export function IndexOverview() {
10
+ const [indexStatus, setIndexStatus] = useState(null);
11
+ const [isLoading, setIsLoading] = useState(false);
12
+ const [isCleaning, setIsCleaning] = useState(false);
13
+ const [isPopulating, setIsPopulating] = useState(false);
14
+ const [kCentroids, setKCentroids] = useState(1024);
15
+ const [error, setError] = useState(null);
16
+ const [isFinalizing, setIsFinalizing] = useState(false);
17
+ const [staging, setStaging] = useState(null);
18
+ const [importStatus, setImportStatus] = useState(null);
19
+ const [centroidsStatus, setCentroidsStatus] = useState(null);
20
+ const [collectionStatus, setCollectionStatus] = useState(null);
21
+ const [isCollecting, setIsCollecting] = useState(false);
22
+ const [isSubmitting, setIsSubmitting] = useState(false);
23
+ const [isStartingDirect, setIsStartingDirect] = useState(false);
24
+ const [isDiscarding, setIsDiscarding] = useState(false);
25
+ const [showAdvanced, setShowAdvanced] = useState(false);
26
+ const [providerInfo, setProviderInfo] = useState(null);
27
+ const fetchProviderInfo = async () => {
28
+ try {
29
+ const info = await getProviderInfo();
30
+ setProviderInfo(info);
31
+ }
32
+ catch (err) {
33
+ console.error("Failed to fetch provider info:", err);
34
+ }
35
+ };
36
+ const fetchStatus = async () => {
37
+ try {
38
+ setIsLoading(true);
39
+ setError(null);
40
+ const combined = await getCombinedIndexStatus();
41
+ setIndexStatus(combined?.indexStatus || null);
42
+ setStaging(combined?.stagingStatus || null);
43
+ setImportStatus(combined?.importStatus || null);
44
+ setCentroidsStatus(combined?.centroidsStatus || null);
45
+ setCollectionStatus(combined?.collectionStatus || null);
46
+ }
47
+ catch (err) {
48
+ setError(err instanceof Error ? err.message : "Failed to fetch index status");
49
+ }
50
+ finally {
51
+ setIsLoading(false);
52
+ }
53
+ };
54
+ const handleCollectAndUpload = async () => {
55
+ try {
56
+ setIsCollecting(true);
57
+ setError(null);
58
+ await collectAndUpload();
59
+ await fetchStatus();
60
+ }
61
+ catch (err) {
62
+ setError(err instanceof Error ? err.message : "Failed to collect and upload");
63
+ }
64
+ finally {
65
+ setIsCollecting(false);
66
+ }
67
+ };
68
+ const handleSubmitStaged = async () => {
69
+ try {
70
+ setIsSubmitting(true);
71
+ setError(null);
72
+ await submitStaged();
73
+ await fetchStatus();
74
+ }
75
+ catch (err) {
76
+ setError(err instanceof Error ? err.message : "Failed to submit staged files");
77
+ }
78
+ finally {
79
+ setIsSubmitting(false);
80
+ }
81
+ };
82
+ const handleStartDirect = async () => {
83
+ try {
84
+ setIsStartingDirect(true);
85
+ setError(null);
86
+ await startDirectGeneration();
87
+ await fetchStatus();
88
+ }
89
+ catch (err) {
90
+ setError(err instanceof Error
91
+ ? err.message
92
+ : "Failed to start direct generation");
93
+ }
94
+ finally {
95
+ setIsStartingDirect(false);
96
+ }
97
+ };
98
+ const handleDiscard = async () => {
99
+ if (!confirm("Are you sure you want to discard the current rebuild? This will delete all staged files and cannot be undone.")) {
100
+ return;
101
+ }
102
+ try {
103
+ setIsDiscarding(true);
104
+ setError(null);
105
+ await discardStaged();
106
+ await fetchStatus();
107
+ }
108
+ catch (err) {
109
+ setError(err instanceof Error ? err.message : "Failed to discard staged files");
110
+ }
111
+ finally {
112
+ setIsDiscarding(false);
113
+ }
114
+ };
115
+ const handleCleanup = async () => {
116
+ try {
117
+ setIsCleaning(true);
118
+ setError(null);
119
+ await cleanupBatches();
120
+ await fetchStatus();
121
+ }
122
+ catch (err) {
123
+ setError(err instanceof Error ? err.message : "Failed to cleanup batches");
124
+ }
125
+ finally {
126
+ setIsCleaning(false);
127
+ }
128
+ };
129
+ const handlePopulateCentroids = async () => {
130
+ try {
131
+ setIsPopulating(true);
132
+ setError(null);
133
+ await populateCentroids(kCentroids || 1024);
134
+ await fetchStatus();
135
+ }
136
+ catch (err) {
137
+ setError(err instanceof Error ? err.message : "Failed to populate centroids");
138
+ }
139
+ finally {
140
+ setIsPopulating(false);
141
+ }
142
+ };
143
+ const handleFinalize = async () => {
144
+ try {
145
+ setIsFinalizing(true);
146
+ setError(null);
147
+ await processCompletedBatches();
148
+ await fetchStatus();
149
+ }
150
+ catch (err) {
151
+ setError(err instanceof Error ? err.message : "Failed to finalize rebuild");
152
+ }
153
+ finally {
154
+ setIsFinalizing(false);
155
+ }
156
+ };
157
+ // Fetch initial status on mount
158
+ useEffect(() => {
159
+ fetchStatus();
160
+ fetchProviderInfo();
161
+ }, []);
162
+ // Poll for status updates every 2 seconds while collecting
163
+ useEffect(() => {
164
+ const isCollectingNow = isCollecting || collectionStatus?.isCollecting;
165
+ if (!isCollectingNow)
166
+ return;
167
+ const pollStatus = async () => {
168
+ try {
169
+ const combined = await getCombinedIndexStatus();
170
+ setIndexStatus(combined?.indexStatus || null);
171
+ setStaging(combined?.stagingStatus || null);
172
+ setImportStatus(combined?.importStatus || null);
173
+ setCentroidsStatus(combined?.centroidsStatus || null);
174
+ setCollectionStatus(combined?.collectionStatus || null);
175
+ }
176
+ catch {
177
+ // Silently fail during polling - don't overwrite existing error state
178
+ }
179
+ };
180
+ const interval = setInterval(pollStatus, 2000);
181
+ return () => clearInterval(interval);
182
+ }, [isCollecting, collectionStatus?.isCollecting]);
183
+ const getBatchStatusIcon = (status) => {
184
+ switch (status?.toLowerCase()) {
185
+ case "completed":
186
+ return (_jsx(CheckCircle, { className: "h-4 w-4 text-green-500", strokeWidth: 1 }));
187
+ case "failed":
188
+ return _jsx(AlertCircle, { className: "h-4 w-4 text-red-500", strokeWidth: 1 });
189
+ case "processing":
190
+ return _jsx(Clock, { className: "h-4 w-4 text-blue-500", strokeWidth: 1 });
191
+ default:
192
+ return (_jsx(AlertCircle, { className: "h-4 w-4 text-yellow-500", strokeWidth: 1 }));
193
+ }
194
+ };
195
+ const getBatchStatusLabelStyles = (status) => {
196
+ switch (status?.toLowerCase()) {
197
+ case "completed":
198
+ return "bg-green-100 text-green-700";
199
+ case "failed":
200
+ return "bg-red-100 text-red-700";
201
+ case "processing":
202
+ return "bg-blue-100 text-blue-700";
203
+ default:
204
+ return "bg-yellow-100 text-yellow-700";
205
+ }
206
+ };
207
+ const editContext = useEditContext();
208
+ const goToSettings = useCallback(() => {
209
+ // Ensure URL reflects the target view and panel before switching views
210
+ editContext?.updateUrl({ view: "settings", ccpanel: "setup" });
211
+ editContext?.switchView("settings");
212
+ }, [editContext]);
213
+ // Subscribe to websocket rebuild status updates
214
+ useEffect(() => {
215
+ if (!editContext?.addSocketMessageListener)
216
+ return;
217
+ const unsubscribe = editContext.addSocketMessageListener((message) => {
218
+ if (message.type === "index-rebuild-status") {
219
+ const payload = message.payload;
220
+ if (!payload)
221
+ return;
222
+ // Update collection status
223
+ if (payload.Phase === "collection") {
224
+ setCollectionStatus((prev) => ({
225
+ isCollecting: payload.IsActive === true,
226
+ status: payload.Status || "",
227
+ startedAt: payload.IsActive
228
+ ? new Date().toISOString()
229
+ : prev?.startedAt,
230
+ itemsProcessed: payload.ItemsProcessed ?? 0,
231
+ languageVersionsProcessed: payload.LanguageVersionsProcessed ?? 0,
232
+ batchesUploaded: payload.BatchesUploaded ?? 0,
233
+ }));
234
+ }
235
+ // Update import status
236
+ if (payload.Phase === "import") {
237
+ setImportStatus((prev) => ({
238
+ isImporting: payload.IsActive === true,
239
+ status: payload.Status || "",
240
+ startedAt: payload.IsActive
241
+ ? new Date().toISOString()
242
+ : prev?.startedAt,
243
+ successCount: payload.SuccessCount ?? 0,
244
+ errorCount: payload.ErrorCount ?? 0,
245
+ recentErrors: payload.RecentErrors || [],
246
+ }));
247
+ }
248
+ // Update centroids status
249
+ if (payload.Phase === "centroids") {
250
+ setCentroidsStatus((prev) => ({
251
+ isPopulating: payload.IsActive === true,
252
+ status: payload.Status || "",
253
+ startedAt: payload.IsActive
254
+ ? new Date().toISOString()
255
+ : prev?.startedAt,
256
+ }));
257
+ }
258
+ }
259
+ });
260
+ return unsubscribe;
261
+ }, [editContext]);
262
+ // Returns index health status only (Ready or configuration errors)
263
+ const getIndexStatus = (indexStatus) => {
264
+ if (indexStatus?.messages != null &&
265
+ indexStatus.messages.length > 0 &&
266
+ indexStatus.messages[0]?.message) {
267
+ return {
268
+ statusLabel: indexStatus.messages[0].message,
269
+ statusClass: "text-red-600",
270
+ hasSettingsIssue: true,
271
+ };
272
+ }
273
+ else {
274
+ return {
275
+ statusLabel: "Ready",
276
+ statusClass: "text-green-600",
277
+ hasSettingsIssue: false,
278
+ };
279
+ }
280
+ };
281
+ // Returns rebuild progress status (or null if no rebuild operation active)
282
+ const getRebuildStatus = (isCollecting, isSubmitting, indexStatus, importStatus, centroidsStatus, collectionStatus) => {
283
+ const batches = indexStatus?.batches || [];
284
+ const inProgress = batches.some((b) => {
285
+ const s = (b.status || "").toLowerCase();
286
+ return s === "submitted" || s === "processing" || s === "queued";
287
+ });
288
+ // Use backend collection status for detailed progress, fall back to local state
289
+ const actuallyCollecting = collectionStatus?.isCollecting || isCollecting;
290
+ if (actuallyCollecting) {
291
+ // Build a detailed status label from the backend status
292
+ let statusLabel = collectionStatus?.status || "Collecting items";
293
+ const details = [];
294
+ if (collectionStatus?.itemsProcessed &&
295
+ collectionStatus.itemsProcessed > 0) {
296
+ details.push(`${collectionStatus.itemsProcessed.toLocaleString()} items`);
297
+ }
298
+ if (collectionStatus?.languageVersionsProcessed &&
299
+ collectionStatus.languageVersionsProcessed > 0) {
300
+ details.push(`${collectionStatus.languageVersionsProcessed.toLocaleString()} versions`);
301
+ }
302
+ if (collectionStatus?.batchesUploaded &&
303
+ collectionStatus.batchesUploaded > 0) {
304
+ details.push(`${collectionStatus.batchesUploaded} batches uploaded`);
305
+ }
306
+ return {
307
+ statusLabel,
308
+ statusClass: "text-indigo-600",
309
+ errorCount: undefined,
310
+ recentErrors: undefined,
311
+ showSpinner: true,
312
+ progressDetails: details.length > 0 ? details : undefined,
313
+ };
314
+ }
315
+ else if (isSubmitting || inProgress) {
316
+ return {
317
+ statusLabel: "Generating Embeddings",
318
+ statusClass: "text-blue-600",
319
+ errorCount: undefined,
320
+ recentErrors: undefined,
321
+ showSpinner: false,
322
+ progressDetails: undefined,
323
+ };
324
+ }
325
+ else if (importStatus?.isImporting) {
326
+ const hasErrors = (importStatus.errorCount ?? 0) > 0;
327
+ return {
328
+ statusLabel: importStatus.status || "Importing embeddings",
329
+ statusClass: hasErrors ? "text-orange-600" : "text-purple-600",
330
+ errorCount: importStatus.errorCount,
331
+ recentErrors: importStatus.recentErrors,
332
+ showSpinner: false,
333
+ progressDetails: undefined,
334
+ };
335
+ }
336
+ else if (centroidsStatus?.isPopulating) {
337
+ return {
338
+ statusLabel: centroidsStatus.status || "Populating centroids",
339
+ statusClass: "text-pink-600",
340
+ errorCount: undefined,
341
+ recentErrors: undefined,
342
+ showSpinner: false,
343
+ progressDetails: undefined,
344
+ };
345
+ }
346
+ else if (indexStatus?.rebuilding) {
347
+ return {
348
+ statusLabel: "Rebuilding",
349
+ statusClass: "text-orange-600",
350
+ errorCount: undefined,
351
+ recentErrors: undefined,
352
+ showSpinner: false,
353
+ progressDetails: undefined,
354
+ };
355
+ }
356
+ return null;
357
+ };
358
+ return (_jsx("div", { className: "flex h-full items-stretch select-text", children: _jsxs("div", { className: "flex min-w-96 flex-col gap-4 p-4", children: [error && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-3 text-sm text-red-700", children: error })), isLoading && !indexStatus ? (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsx(RefreshCw, { className: "h-6 w-6 animate-spin text-gray-400", strokeWidth: 1 }) })) : indexStatus ? (_jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsx("div", { className: "text-sm text-gray-600", children: "Indexed Items" }), _jsx("div", { className: "text-2xl font-semibold", children: indexStatus.numberOfIndexedItems?.toLocaleString() ?? "0" })] }), _jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsx("div", { className: "text-sm text-gray-600", children: "Status" }), (() => {
359
+ const { statusLabel, statusClass, hasSettingsIssue } = getIndexStatus(indexStatus);
360
+ return (_jsx("div", { className: "space-y-1", children: _jsxs("div", { className: cn("flex items-center gap-2 text-sm font-medium", statusClass), children: [statusLabel, hasSettingsIssue && (_jsxs(Button, { size: "sm", variant: "outline", onClick: goToSettings, children: [_jsx(ExternalLink, { className: "h-4 w-4", strokeWidth: 1 }), "Settings"] }))] }) }));
361
+ })()] })] }), providerInfo && (_jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-3 text-sm font-semibold text-gray-700", children: "Embedding Provider" }), _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsx("div", { className: "text-sm text-gray-600", children: "Provider" }), _jsx("div", { className: "text-sm font-medium text-gray-900 capitalize", children: providerInfo.providerId })] }), _jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsx("div", { className: "text-sm text-gray-600", children: "Batch API" }), _jsx("div", { className: cn("text-sm font-medium", providerInfo.supportsBatchApi
362
+ ? "text-green-600"
363
+ : "text-amber-600"), children: providerInfo.supportsBatchApi
364
+ ? "Supported"
365
+ : "Direct Only" })] }), _jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsx("div", { className: "text-sm text-gray-600", children: "Provider" }), _jsx("div", { className: "text-sm font-medium text-gray-900", children: providerInfo.endpointName })] }), _jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsx("div", { className: "text-sm text-gray-600", children: "Model" }), _jsx("div", { className: "text-sm font-medium text-gray-900", children: providerInfo.modelName })] })] })] })), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-white p-4", children: [_jsx("h3", { className: "mb-3 text-sm font-semibold text-gray-700", children: "Rebuild Index" }), _jsx("div", { className: "space-y-3", children: (() => {
366
+ // Get rebuild status
367
+ const rebuildStatus = getRebuildStatus(isCollecting, isSubmitting, indexStatus, importStatus, centroidsStatus, collectionStatus);
368
+ const stagedCount = staging?.fileCount ?? 0;
369
+ const batches = indexStatus?.batches || [];
370
+ const completedCount = batches.filter((b) => (b.status || "").toLowerCase() === "completed").length;
371
+ const inProgressCount = batches.filter((b) => {
372
+ const s = (b.status || "").toLowerCase();
373
+ return (s === "submitted" || s === "processing" || s === "queued");
374
+ }).length;
375
+ // Check if an operation is in progress
376
+ const operationInProgress = isCollecting ||
377
+ collectionStatus?.isCollecting ||
378
+ isSubmitting ||
379
+ isStartingDirect ||
380
+ isDiscarding ||
381
+ inProgressCount > 0 ||
382
+ indexStatus?.rebuilding ||
383
+ importStatus?.isImporting ||
384
+ centroidsStatus?.isPopulating;
385
+ // Rebuild status display
386
+ const rebuildStatusDisplay = rebuildStatus ? (_jsx("div", { className: "rounded bg-gray-50 p-3", children: _jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: cn("flex items-center gap-2 text-sm font-medium", rebuildStatus.statusClass), children: [rebuildStatus.showSpinner && (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1 })), rebuildStatus.statusLabel] }), rebuildStatus.progressDetails &&
387
+ rebuildStatus.progressDetails.length > 0 && (_jsx("div", { className: "text-xs text-gray-600", children: rebuildStatus.progressDetails.join(" • ") })), rebuildStatus.errorCount !== undefined &&
388
+ rebuildStatus.errorCount > 0 && (_jsxs("div", { className: "text-xs text-orange-600", children: [rebuildStatus.errorCount, " error", rebuildStatus.errorCount !== 1 ? "s" : "", rebuildStatus.recentErrors &&
389
+ rebuildStatus.recentErrors.length > 0 && (_jsxs("details", { className: "mt-1", children: [_jsx("summary", { className: "cursor-pointer hover:underline", children: "Show recent errors" }), _jsx("ul", { className: "mt-1 list-disc space-y-0.5 pl-5", children: rebuildStatus.recentErrors.map((error, idx) => (_jsx("li", { className: "text-xs", children: error }, idx))) })] }))] }))] }) })) : null;
390
+ // Action buttons
391
+ const actionButtons = (() => {
392
+ if (isCollecting ||
393
+ collectionStatus?.isCollecting ||
394
+ isSubmitting ||
395
+ isStartingDirect ||
396
+ isDiscarding ||
397
+ inProgressCount > 0 ||
398
+ indexStatus?.rebuilding ||
399
+ importStatus?.isImporting ||
400
+ centroidsStatus?.isPopulating) {
401
+ return null;
402
+ }
403
+ else if (stagedCount > 0) {
404
+ const batchCost = staging?.estimatedBatchCost ??
405
+ staging?.estimatedCost ??
406
+ 0;
407
+ const directCost = staging?.estimatedDirectCost ?? 0;
408
+ return (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("button", { onClick: handleSubmitStaged, disabled: isSubmitting || stagedCount === 0, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
409
+ "cursor-pointer bg-amber-600 text-white hover:bg-amber-700": !isSubmitting && stagedCount > 0,
410
+ "cursor-not-allowed bg-gray-300 text-gray-500": isSubmitting || stagedCount === 0,
411
+ }), children: [_jsx(CheckCircle, { className: "h-4 w-4", strokeWidth: 1 }), isSubmitting
412
+ ? "Submitting..."
413
+ : `Batch (~$${batchCost.toFixed(2)})`] }), _jsxs("button", { onClick: handleStartDirect, disabled: isStartingDirect || stagedCount === 0, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
414
+ "cursor-pointer bg-rose-600 text-white hover:bg-rose-700": !isStartingDirect && stagedCount > 0,
415
+ "cursor-not-allowed bg-gray-300 text-gray-500": isStartingDirect || stagedCount === 0,
416
+ }), children: [_jsx(CheckCircle, { className: "h-4 w-4", strokeWidth: 1 }), isStartingDirect
417
+ ? "Starting..."
418
+ : `Direct (~$${directCost.toFixed(2)})`] }), _jsxs("button", { onClick: handleDiscard, disabled: isDiscarding || stagedCount === 0, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
419
+ "cursor-pointer bg-gray-600 text-white hover:bg-gray-700": !isDiscarding && stagedCount > 0,
420
+ "cursor-not-allowed bg-gray-300 text-gray-500": isDiscarding || stagedCount === 0,
421
+ }), children: [_jsx(Trash2, { className: "h-4 w-4", strokeWidth: 1 }), isDiscarding ? "Discarding..." : "Discard"] })] }));
422
+ }
423
+ else if (completedCount > 0) {
424
+ return (_jsxs("button", { onClick: handleFinalize, disabled: isFinalizing, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
425
+ "cursor-pointer bg-green-600 text-white hover:bg-green-700": !isFinalizing,
426
+ "cursor-not-allowed bg-gray-300 text-gray-500": isFinalizing,
427
+ }), children: [_jsx(CheckCircle, { className: "h-4 w-4", strokeWidth: 1 }), isFinalizing ? "Importing..." : "Import embeddings"] }));
428
+ }
429
+ const collectingNow = isCollecting || collectionStatus?.isCollecting;
430
+ return (_jsxs("button", { onClick: handleCollectAndUpload, disabled: collectingNow, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
431
+ "cursor-pointer bg-indigo-600 text-white hover:bg-indigo-700": !collectingNow,
432
+ "cursor-not-allowed bg-gray-300 text-gray-500": collectingNow,
433
+ }), children: [_jsx(RefreshCw, { className: "h-4 w-4", strokeWidth: 1 }), collectingNow ? "Collecting..." : "Rebuild Index"] }));
434
+ })();
435
+ // Staging stats
436
+ const stagingStats = stagedCount > 0 ? (_jsxs("div", { className: "rounded bg-gray-50 p-3", children: [_jsxs("div", { className: "flex items-center justify-between text-sm text-gray-600", children: [_jsx("span", { children: "Staged Files" }), _jsx("span", { children: stagedCount })] }), staging?.itemsProcessed !== undefined &&
437
+ staging.itemsProcessed > 0 && (_jsxs("div", { className: "mt-1 flex items-center justify-between text-sm text-gray-600", children: [_jsx("span", { children: "Items" }), _jsx("span", { children: staging.itemsProcessed.toLocaleString() })] })), _jsxs("div", { className: "mt-1 flex items-center justify-between text-sm text-gray-600", children: [_jsx("span", { children: "Estimated Input Tokens" }), _jsx("span", { children: (staging?.estimatedInputTokens ?? 0).toLocaleString() })] }), _jsxs("div", { className: "mt-1 flex items-center justify-between text-sm text-gray-600", children: [_jsx("span", { children: "Estimated Batch Cost" }), _jsxs("span", { children: ["~$", (staging?.estimatedBatchCost ??
438
+ staging?.estimatedCost ??
439
+ 0).toFixed(2)] })] }), _jsxs("div", { className: "mt-1 flex items-center justify-between text-sm text-gray-600", children: [_jsx("span", { children: "Estimated Direct Cost" }), _jsxs("span", { children: ["~$", (staging?.estimatedDirectCost ?? 0).toFixed(2)] })] })] })) : null;
440
+ // Next step info
441
+ const nextStepInfo = !operationInProgress ? (stagedCount > 0 ? (_jsxs("div", { className: "text-xs text-gray-700", children: ["Next step:", " ", _jsx("span", { className: "font-medium", children: "Choose: Batch or Direct generation" })] })) : inProgressCount > 0 ? (_jsxs("div", { className: "text-xs text-gray-700", children: ["Next step:", " ", _jsx("span", { className: "font-medium", children: "Generating Embeddings" })] })) : completedCount > 0 ? (_jsxs("div", { className: "text-xs text-gray-700", children: ["Next step:", " ", _jsx("span", { className: "font-medium", children: "Import embeddings" })] })) : null) : null;
442
+ return (_jsxs(_Fragment, { children: [rebuildStatusDisplay, actionButtons && (_jsx("div", { className: "flex flex-wrap items-center gap-2", children: actionButtons })), stagingStats, nextStepInfo && (_jsx("div", { className: "text-xs text-gray-700", children: nextStepInfo }))] }));
443
+ })() })] }), indexStatus.batches && indexStatus.batches.length > 0 && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-medium text-gray-700", children: "Recent Batches" }), _jsx("div", { className: "space-y-2 overflow-y-auto", children: indexStatus.batches.map((batch) => (_jsxs("div", { className: "rounded bg-gray-50 p-2 text-sm", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [getBatchStatusIcon(batch.status), _jsx("span", { className: `rounded px-2 py-0.5 text-xs font-medium ${getBatchStatusLabelStyles(batch.status)}`, children: batch.status ?? "Unknown" }), _jsx("span", { className: "font-mono text-xs", children: batch.id?.slice(-8) ?? "Unknown" })] }), _jsxs("div", { className: "text-right", children: [_jsxs("div", { className: "text-gray-600", children: [batch.numberOfItems ?? 0, " items"] }), _jsx("div", { className: "text-xs text-gray-500", children: batch.created
444
+ ? formatDateOnly(new Date(batch.created))
445
+ : "Unknown" })] })] }), ((batch.firstErrors && batch.firstErrors.length > 0) ||
446
+ batch.errorMessage) && (_jsx("div", { className: "mt-1 text-xs text-red-600", children: (() => {
447
+ const messages = batch.firstErrors && batch.firstErrors.length > 0
448
+ ? batch.firstErrors.slice(0, 3)
449
+ : batch.errorMessage
450
+ ? [batch.errorMessage]
451
+ : [];
452
+ const shownCount = messages.length;
453
+ const totalCount = batch.errorCount && batch.errorCount > 0
454
+ ? batch.errorCount
455
+ : shownCount;
456
+ const suffix = totalCount > shownCount
457
+ ? ` (+${totalCount - shownCount} more)`
458
+ : "";
459
+ return `${messages.join(" · ")}${suffix}`;
460
+ })() }))] }, batch.id))) })] })), indexStatus.latestEmbeddedItems &&
461
+ indexStatus.latestEmbeddedItems.length > 0 && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-medium text-gray-700", children: "Latest Embeddings Generated" }), _jsx("div", { className: "max-h-72 space-y-1 overflow-y-auto", children: indexStatus.latestEmbeddedItems.slice(0, 50).map((it) => (_jsxs("div", { className: "flex items-center justify-between rounded bg-gray-50 p-2 text-sm", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-medium", children: it.name || it.itemId.slice(-8) }), it.path && (_jsx("div", { className: "truncate text-xs text-gray-500", children: it.path }))] }), _jsx("div", { className: "ml-2 shrink-0 text-xs text-gray-500", children: formatDateTime(new Date(it.created)) })] }, it.itemId + it.created))) })] })), _jsxs("div", { className: "border-t border-gray-200 pt-4", children: [_jsxs("button", { onClick: () => setShowAdvanced(!showAdvanced), className: "flex w-full cursor-pointer items-center justify-between text-sm text-gray-600 hover:text-gray-900", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Settings, { className: "h-4 w-4", strokeWidth: 1 }), _jsx("span", { className: "font-medium", children: "Advanced Settings" })] }), _jsx(ChevronDown, { className: cn("h-4 w-4 transition-transform duration-200", showAdvanced ? "rotate-180" : ""), strokeWidth: 1 })] }), _jsx("div", { className: cn("grid overflow-hidden transition-[grid-template-rows] duration-200", showAdvanced ? "grid-rows-[1fr]" : "grid-rows-[0fr]"), children: _jsx("div", { className: "min-h-0 overflow-hidden", children: _jsxs("div", { className: "mt-4 space-y-4", children: [_jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-4", children: [_jsx("h4", { className: "mb-2 text-sm font-medium text-gray-700", children: "Centroids Configuration" }), _jsx("p", { className: "mb-3 text-xs text-gray-500", children: "Centroids improve search performance by clustering embeddings. Higher values (e.g., 1024) provide better accuracy for large indexes. Only needed after importing new embeddings." }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("label", { htmlFor: "kCentroids", className: "text-sm text-gray-600", children: "K Centroids:" }), _jsx("input", { id: "kCentroids", type: "number", min: 1, value: kCentroids, onChange: (e) => setKCentroids(parseInt(e.target.value) || 1024), className: "w-24 rounded border border-gray-300 px-2 py-1.5 text-sm focus:border-purple-500 focus:ring-1 focus:ring-purple-500 focus:outline-none" })] }), _jsxs("button", { onClick: handlePopulateCentroids, disabled: centroidsStatus?.isPopulating || isPopulating, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
462
+ "cursor-pointer bg-purple-500 text-white hover:bg-purple-600": !centroidsStatus?.isPopulating && !isPopulating,
463
+ "cursor-not-allowed bg-gray-300 text-gray-500": centroidsStatus?.isPopulating || isPopulating,
464
+ }), children: [_jsx(Database, { className: "h-4 w-4", strokeWidth: 1 }), centroidsStatus?.isPopulating || isPopulating
465
+ ? centroidsStatus?.status || "Populating..."
466
+ : "Populate Centroids"] })] })] }), _jsxs("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-4", children: [_jsx("h4", { className: "mb-2 text-sm font-medium text-gray-700", children: "Maintenance" }), _jsx("p", { className: "mb-3 text-xs text-gray-500", children: "Clean up completed batch files from storage. This removes temporary files used during embedding generation." }), _jsxs("button", { onClick: handleCleanup, disabled: isCleaning, className: cn("flex items-center gap-2 rounded px-3 py-1.5 text-sm font-medium transition-colors", {
467
+ "cursor-pointer bg-gray-200 text-gray-700 hover:bg-gray-300": !isCleaning,
468
+ "cursor-not-allowed bg-gray-300 text-gray-500": isCleaning,
469
+ }), children: [_jsx(Trash2, { className: "h-4 w-4", strokeWidth: 1 }), isCleaning ? "Cleaning..." : "Cleanup Batches"] })] })] }) }) })] })] })) : null] }) }));
470
+ }
471
+ //# sourceMappingURL=IndexOverview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexOverview.js","sourceRoot":"","sources":["../../../src/editor/settings/IndexOverview.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function Info(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEditContext } from "../client/editContext";
3
+ import { User, Mail, Shield, Hash, Monitor, Smartphone, Code, Maximize2, } from "lucide-react";
4
+ export function Info() {
5
+ const editContext = useEditContext();
6
+ const user = editContext?.user;
7
+ return (_jsx("div", { className: "space-y-6 p-6", children: _jsxs("div", { className: "space-y-6", children: [user && (_jsxs("div", { className: "border border-gray-200 bg-white shadow-sm", children: [_jsx("div", { className: "border-b border-gray-200 bg-gray-50 px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(User, { className: "h-5 w-5 text-gray-600", strokeWidth: 1.5 }), _jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "User Information" })] }) }), _jsx("div", { className: "p-6", children: _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(User, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "Name" })] }), _jsx("p", { className: "text-base text-gray-900", children: user.fullName || user.name })] }), user.email?.trim() && (_jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Mail, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "Email" })] }), _jsx("p", { className: "text-base text-gray-900", children: user.email.trim() })] })), _jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Shield, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "User Type" })] }), _jsx("p", { className: "text-base text-gray-900", children: user.isLimitedPreviewUser
8
+ ? "Limited Preview User"
9
+ : "Regular User" })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Hash, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "Session ID" })] }), _jsx("p", { className: "font-mono text-sm text-gray-900 break-all", children: editContext?.sessionId })] })] }) })] })), _jsxs("div", { className: "border border-gray-200 bg-white shadow-sm", children: [_jsx("div", { className: "border-b border-gray-200 bg-gray-50 px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Monitor, { className: "h-5 w-5 text-gray-600", strokeWidth: 1.5 }), _jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Editor Information" })] }) }), _jsx("div", { className: "p-6", children: _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Monitor, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "Active Sessions" })] }), _jsx("p", { className: "text-base font-semibold text-gray-900", children: editContext?.activeSessions?.length || 0 })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Smartphone, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "Mobile View" })] }), _jsx("p", { className: "text-base text-gray-900", children: editContext?.isMobile ? "Yes" : "No" })] })] }) })] }), _jsxs("div", { className: "border border-gray-200 bg-white shadow-sm", children: [_jsx("div", { className: "border-b border-gray-200 bg-gray-50 px-6 py-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Code, { className: "h-5 w-5 text-gray-600", strokeWidth: 1.5 }), _jsx("h3", { className: "text-lg font-semibold text-gray-900", children: "Technical Information" })] }) }), _jsx("div", { className: "p-6", children: _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Code, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "User Agent" })] }), _jsx("p", { className: "font-mono text-xs break-all text-gray-900 bg-gray-50 p-3 border border-gray-200", children: navigator.userAgent })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-gray-500", children: [_jsx(Maximize2, { className: "h-4 w-4", strokeWidth: 1.5 }), _jsx("span", { children: "Viewport Size" })] }), _jsxs("p", { className: "text-base text-gray-900 font-mono", children: [window.innerWidth, " \u00D7 ", window.innerHeight, " pixels"] })] })] }) })] })] }) }));
10
+ }
11
+ //# sourceMappingURL=Info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../../../src/editor/settings/Info.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,EACP,UAAU,EACV,IAAI,EACJ,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,IAAI;IAClB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC;IAE/B,OAAO,CACL,cAAK,SAAS,EAAC,eAAe,YAC5B,eAAK,SAAS,EAAC,WAAW,aAEvB,IAAI,IAAI,CACP,eAAK,SAAS,EAAC,2CAA2C,aACxD,cAAK,SAAS,EAAC,+CAA+C,YAC5D,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,EAAC,WAAW,EAAE,GAAG,GAAI,EAC5D,aAAI,SAAS,EAAC,qCAAqC,iCAE9C,IACD,GACF,EACN,cAAK,SAAS,EAAC,KAAK,YAClB,eAAK,SAAS,EAAC,uCAAuC,aACpD,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EAC9C,kCAAiB,IACb,EACN,YAAG,SAAS,EAAC,yBAAyB,YACnC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,GACzB,IACA,EACL,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CACrB,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EAC9C,mCAAkB,IACd,EACN,YAAG,SAAS,EAAC,yBAAyB,YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAChB,IACA,CACP,EACD,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EAChD,uCAAsB,IAClB,EACN,YAAG,SAAS,EAAC,yBAAyB,YACnC,IAAI,CAAC,oBAAoB;oDACxB,CAAC,CAAC,sBAAsB;oDACxB,CAAC,CAAC,cAAc,GAChB,IACA,EACN,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EAC9C,wCAAuB,IACnB,EACN,YAAG,SAAS,EAAC,2CAA2C,YACrD,WAAW,EAAE,SAAS,GACrB,IACA,IACF,GACF,IACF,CACP,EAGD,eAAK,SAAS,EAAC,2CAA2C,aACxD,cAAK,SAAS,EAAC,+CAA+C,YAC5D,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,OAAO,IAAC,SAAS,EAAC,uBAAuB,EAAC,WAAW,EAAE,GAAG,GAAI,EAC/D,aAAI,SAAS,EAAC,qCAAqC,mCAE9C,IACD,GACF,EACN,cAAK,SAAS,EAAC,KAAK,YAClB,eAAK,SAAS,EAAC,uCAAuC,aACpD,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,OAAO,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EACjD,6CAA4B,IACxB,EACN,YAAG,SAAS,EAAC,uCAAuC,YACjD,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,GACvC,IACA,EACN,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EACpD,yCAAwB,IACpB,EACN,YAAG,SAAS,EAAC,yBAAyB,YACnC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GACnC,IACA,IACF,GACF,IACF,EAGN,eAAK,SAAS,EAAC,2CAA2C,aACxD,cAAK,SAAS,EAAC,+CAA+C,YAC5D,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,EAAC,WAAW,EAAE,GAAG,GAAI,EAC5D,aAAI,SAAS,EAAC,qCAAqC,sCAE9C,IACD,GACF,EACN,cAAK,SAAS,EAAC,KAAK,YAClB,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EAC9C,wCAAuB,IACnB,EACN,YAAG,SAAS,EAAC,iFAAiF,YAC3F,SAAS,CAAC,SAAS,GAClB,IACA,EACN,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,2DAA2D,aACxE,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,GAAG,GAAI,EACnD,2CAA0B,IACtB,EACN,aAAG,SAAS,EAAC,mCAAmC,aAC7C,MAAM,CAAC,UAAU,cAAK,MAAM,CAAC,WAAW,eACvC,IACA,IACF,GACF,IACF,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function LatestFeedback(): import("react/jsx-runtime").JSX.Element;