@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.
- package/dist/agents-view/AgentsInbox.d.ts +2 -1
- package/dist/agents-view/AgentsInbox.js +2 -2
- package/dist/agents-view/AgentsInbox.js.map +1 -1
- package/dist/agents-view/AgentsView.js +30 -1
- package/dist/agents-view/AgentsView.js.map +1 -1
- package/dist/components/ui/card.d.ts +1 -1
- package/dist/components/ui/card.js +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/paste-button.d.ts +1 -1
- package/dist/components/ui/paste-button.js +79 -22
- package/dist/components/ui/paste-button.js.map +1 -1
- package/dist/config/config.js +83 -51
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +29 -4
- package/dist/editor/ContentTree.js +92 -22
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.d.ts +1 -0
- package/dist/editor/FieldActionsOverlay.js +17 -1
- package/dist/editor/FieldActionsOverlay.js.map +1 -1
- package/dist/editor/FieldListField.js +1 -1
- package/dist/editor/FieldListField.js.map +1 -1
- package/dist/editor/LinkEditorDialog.js +33 -24
- package/dist/editor/LinkEditorDialog.js.map +1 -1
- package/dist/editor/MainLayout.js +2 -2
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/PictureEditor.js +1 -1
- package/dist/editor/PictureEditor.js.map +1 -1
- package/dist/editor/ai/AgentTerminal.js +63 -26
- package/dist/editor/ai/AgentTerminal.js.map +1 -1
- package/dist/editor/ai/Agents.js +7 -2
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/client/EditorShell.js +178 -79
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/OperationDialogContent.d.ts +13 -0
- package/dist/editor/client/OperationDialogContent.js +13 -0
- package/dist/editor/client/OperationDialogContent.js.map +1 -0
- package/dist/editor/client/editContext.d.ts +2 -0
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useGlobalEditorKeyDown.js +5 -2
- package/dist/editor/client/hooks/useGlobalEditorKeyDown.js.map +1 -1
- package/dist/editor/client/hooks/useQuota.d.ts +4 -0
- package/dist/editor/client/hooks/useQuota.js.map +1 -1
- package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +2 -2
- package/dist/editor/client/hooks/useSocketMessageHandler.js +5 -7
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/operations.d.ts +1 -0
- package/dist/editor/client/operations.js +332 -8
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/ui/EditorChrome.js +1 -1
- package/dist/editor/client/ui/EditorChrome.js.map +1 -1
- package/dist/editor/commands/itemCommands.d.ts +0 -1
- package/dist/editor/commands/itemCommands.js +1 -16
- package/dist/editor/commands/itemCommands.js.map +1 -1
- package/dist/editor/commands/undo.js +6 -2
- package/dist/editor/commands/undo.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +56 -2
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +5 -4
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +5 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +118 -13
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/reviews/CreateReviewDialog.js +1 -1
- package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
- package/dist/editor/reviews/DecisionsMatrix.js +1 -1
- package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
- package/dist/editor/reviews/ReviewsList.js +1 -1
- package/dist/editor/reviews/ReviewsList.js.map +1 -1
- package/dist/editor/services/editService.d.ts +20 -3
- package/dist/editor/services/editService.js +17 -17
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/services/indexService.d.ts +4 -1
- package/dist/editor/services/indexService.js +12 -0
- package/dist/editor/services/indexService.js.map +1 -1
- package/dist/editor/services/serviceHelper.js +1 -0
- package/dist/editor/services/serviceHelper.js.map +1 -1
- package/dist/editor/settings/About.d.ts +1 -0
- package/dist/editor/settings/About.js +9 -0
- package/dist/editor/settings/About.js.map +1 -0
- package/dist/editor/settings/AllAgentsPanel.d.ts +5 -0
- package/dist/editor/settings/AllAgentsPanel.js +126 -0
- package/dist/editor/settings/AllAgentsPanel.js.map +1 -0
- package/dist/editor/settings/IndexOverview.d.ts +1 -0
- package/dist/editor/settings/IndexOverview.js +471 -0
- package/dist/editor/settings/IndexOverview.js.map +1 -0
- package/dist/editor/settings/Info.d.ts +1 -0
- package/dist/editor/settings/Info.js +11 -0
- package/dist/editor/settings/Info.js.map +1 -0
- package/dist/editor/settings/LatestFeedback.d.ts +1 -0
- package/dist/editor/settings/LatestFeedback.js +136 -0
- package/dist/editor/settings/LatestFeedback.js.map +1 -0
- package/dist/editor/settings/QuotaInfo.d.ts +1 -0
- package/dist/editor/settings/QuotaInfo.js +102 -0
- package/dist/editor/settings/QuotaInfo.js.map +1 -0
- package/dist/editor/settings/SettingsMenu.d.ts +1 -0
- package/dist/editor/settings/SettingsMenu.js +74 -0
- package/dist/editor/settings/SettingsMenu.js.map +1 -0
- package/dist/editor/settings/SettingsView.d.ts +1 -0
- package/dist/editor/settings/SettingsView.js +85 -0
- package/dist/editor/settings/SettingsView.js.map +1 -0
- package/dist/editor/settings/Setup.d.ts +1 -0
- package/dist/editor/settings/Setup.js +211 -0
- package/dist/editor/settings/Setup.js.map +1 -0
- package/dist/editor/settings/Status.d.ts +1 -0
- package/dist/editor/settings/Status.js +85 -0
- package/dist/editor/settings/Status.js.map +1 -0
- package/dist/editor/settings/WebSocketMessages.d.ts +1 -0
- package/dist/editor/settings/WebSocketMessages.js +71 -0
- package/dist/editor/settings/WebSocketMessages.js.map +1 -0
- package/dist/editor/settings/panels/AgentsPanel.d.ts +6 -0
- package/dist/editor/settings/panels/AgentsPanel.js +186 -0
- package/dist/editor/settings/panels/AgentsPanel.js.map +1 -0
- package/dist/editor/settings/panels/DatabasePanel.d.ts +6 -0
- package/dist/editor/settings/panels/DatabasePanel.js +50 -0
- package/dist/editor/settings/panels/DatabasePanel.js.map +1 -0
- package/dist/editor/settings/panels/ItemConfigPanel.d.ts +13 -0
- package/dist/editor/settings/panels/ItemConfigPanel.js +52 -0
- package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -0
- package/dist/editor/settings/panels/ModelsPanel.d.ts +6 -0
- package/dist/editor/settings/panels/ModelsPanel.js +269 -0
- package/dist/editor/settings/panels/ModelsPanel.js.map +1 -0
- package/dist/editor/settings/panels/ProvidersPanel.d.ts +6 -0
- package/dist/editor/settings/panels/ProvidersPanel.js +206 -0
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -0
- package/dist/editor/settings/panels/SearchConfigPanel.d.ts +6 -0
- package/dist/editor/settings/panels/SearchConfigPanel.js +134 -0
- package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -0
- package/dist/editor/settings/panels/SettingsPanel.d.ts +6 -0
- package/dist/editor/settings/panels/SettingsPanel.js +39 -0
- package/dist/editor/settings/panels/SettingsPanel.js.map +1 -0
- package/dist/editor/settings/panels/StatusPanel.d.ts +6 -0
- package/dist/editor/settings/panels/StatusPanel.js +141 -0
- package/dist/editor/settings/panels/StatusPanel.js.map +1 -0
- package/dist/editor/settings/panels/ToolsPanel.d.ts +6 -0
- package/dist/editor/settings/panels/ToolsPanel.js +192 -0
- package/dist/editor/settings/panels/ToolsPanel.js.map +1 -0
- package/dist/editor/settings/panels/index.d.ts +14 -0
- package/dist/editor/settings/panels/index.js +15 -0
- package/dist/editor/settings/panels/index.js.map +1 -0
- package/dist/editor/settings/panels/useSidebarEditor.d.ts +15 -0
- package/dist/editor/settings/panels/useSidebarEditor.js +24 -0
- package/dist/editor/settings/panels/useSidebarEditor.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +2 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/index.js +22 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.d.ts +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +367 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/types.js +2 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +1 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +5 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +44 -0
- package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +1 -0
- package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +2 -0
- package/dist/editor/settings/setup-steps/IndexSetupStep.js +36 -0
- package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +1 -0
- package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +2 -0
- package/dist/editor/settings/setup-steps/SettingsSetupStep.js +111 -0
- package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +1 -0
- package/dist/editor/settings/setup-steps/SetupOverview.d.ts +14 -0
- package/dist/editor/settings/setup-steps/SetupOverview.js +38 -0
- package/dist/editor/settings/setup-steps/SetupOverview.js.map +1 -0
- package/dist/editor/settings/status/coreStatusChecks.d.ts +25 -0
- package/dist/editor/settings/status/coreStatusChecks.js +231 -0
- package/dist/editor/settings/status/coreStatusChecks.js.map +1 -0
- package/dist/editor/settings/status/index.d.ts +3 -0
- package/dist/editor/settings/status/index.js +3 -0
- package/dist/editor/settings/status/index.js.map +1 -0
- package/dist/editor/settings/status/useStartupChecks.d.ts +17 -0
- package/dist/editor/settings/status/useStartupChecks.js +54 -0
- package/dist/editor/settings/status/useStartupChecks.js.map +1 -0
- package/dist/editor/sidebar/EditHistory.js +18 -14
- package/dist/editor/sidebar/EditHistory.js.map +1 -1
- package/dist/editor/sidebar/MainContentTree.js +0 -1
- package/dist/editor/sidebar/MainContentTree.js.map +1 -1
- package/dist/editor/sidebar/OperationItem.js +4 -3
- package/dist/editor/sidebar/OperationItem.js.map +1 -1
- package/dist/editor/ui/PerfectTree.js +1 -1
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/ui/Section.js +3 -3
- package/dist/editor/ui/Section.js.map +1 -1
- package/dist/editor/ui/SimpleMenu.js +13 -4
- package/dist/editor/ui/SimpleMenu.js.map +1 -1
- package/dist/editor/ui/SimpleToolbar.js +1 -1
- package/dist/editor/ui/SimpleToolbar.js.map +1 -1
- package/dist/editor/utils/keyboardNavigation.js +89 -27
- package/dist/editor/utils/keyboardNavigation.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/setup/SetupWizardPage.js +2 -2
- package/dist/setup/SetupWizardPage.js.map +1 -1
- package/dist/setup/services/setupWizardService.d.ts +132 -12
- package/dist/setup/services/setupWizardService.js +82 -6
- package/dist/setup/services/setupWizardService.js.map +1 -1
- package/dist/setup/wizard/index.d.ts +5 -4
- package/dist/setup/wizard/index.js +6 -4
- package/dist/setup/wizard/index.js.map +1 -1
- package/dist/setup/wizard/steps/AddModelDialog.d.ts +10 -0
- package/dist/setup/wizard/steps/AddModelDialog.js +119 -0
- package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -0
- package/dist/setup/wizard/steps/ImportModelDialog.d.ts +10 -0
- package/dist/setup/wizard/steps/ImportModelDialog.js +351 -0
- package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -0
- package/dist/splash-screen/ModernSplashScreen.js +1 -1
- package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
- package/dist/styles.css +183 -10
- package/dist/types.d.ts +36 -1
- 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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function LatestFeedback(): import("react/jsx-runtime").JSX.Element;
|