@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,233 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Select } from "../../../../../components/ui/select";
|
|
4
|
+
import { Input } from "../../../../../components/ui/input";
|
|
5
|
+
import { Button } from "../../../../../components/ui/button";
|
|
6
|
+
import { CheckCircle, RefreshCw } from "lucide-react";
|
|
7
|
+
import { useEditContext } from "../../../../client/editContext";
|
|
8
|
+
import { getChildren } from "../../../../services/contentService";
|
|
9
|
+
import { findByName, resolvePathUnderContent } from "../utils";
|
|
10
|
+
export function ProviderSection() {
|
|
11
|
+
const editContext = useEditContext();
|
|
12
|
+
const [aiProvider, setAiProvider] = React.useState("");
|
|
13
|
+
const [apiKey, setApiKey] = React.useState("");
|
|
14
|
+
const [aiBusy, setAiBusy] = React.useState(false);
|
|
15
|
+
const [aiError, setAiError] = React.useState(null);
|
|
16
|
+
const [providers, setProviders] = React.useState([]);
|
|
17
|
+
const [loadingProviders, setLoadingProviders] = React.useState(false);
|
|
18
|
+
const [providersError, setProvidersError] = React.useState(null);
|
|
19
|
+
const lastLoadAtRef = React.useRef(0);
|
|
20
|
+
const isLoadingRef = React.useRef(false);
|
|
21
|
+
const userLang = editContext?.contentEditorItem?.language || "en";
|
|
22
|
+
const sessionId = editContext?.sessionId;
|
|
23
|
+
const aiOptions = React.useMemo(() => [
|
|
24
|
+
{ value: "openai", label: "OpenAI" },
|
|
25
|
+
{ value: "azure-openai", label: "Azure OpenAI" },
|
|
26
|
+
{ value: "openrouter", label: "OpenRouter" },
|
|
27
|
+
], []);
|
|
28
|
+
const loadProviders = React.useCallback(async (options) => {
|
|
29
|
+
if (!sessionId)
|
|
30
|
+
return;
|
|
31
|
+
try {
|
|
32
|
+
const now = Date.now();
|
|
33
|
+
const MIN_INTERVAL_MS = 2000;
|
|
34
|
+
if (!options?.force) {
|
|
35
|
+
if (isLoadingRef.current)
|
|
36
|
+
return;
|
|
37
|
+
if (now - lastLoadAtRef.current < MIN_INTERVAL_MS)
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
isLoadingRef.current = true;
|
|
41
|
+
lastLoadAtRef.current = now;
|
|
42
|
+
setLoadingProviders(true);
|
|
43
|
+
setProvidersError(null);
|
|
44
|
+
const settingsItem = await resolvePathUnderContent(sessionId, userLang, ["Settings", "Editor"]);
|
|
45
|
+
if (!settingsItem) {
|
|
46
|
+
setProviders([]);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const children = (await getChildren(settingsItem.id, sessionId, [], false, userLang, "path"));
|
|
50
|
+
const aiProvidersParent = findByName(children, "Ai Providers");
|
|
51
|
+
if (!aiProvidersParent) {
|
|
52
|
+
setProviders([]);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const providerChildren = (await getChildren(aiProvidersParent.id, sessionId, [], false, userLang, "path"));
|
|
56
|
+
setProviders(providerChildren || []);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
setProvidersError(e?.message || "Failed to load AI providers");
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
isLoadingRef.current = false;
|
|
63
|
+
setLoadingProviders(false);
|
|
64
|
+
}
|
|
65
|
+
}, [sessionId, userLang]);
|
|
66
|
+
const createAiProvider = React.useCallback(async () => {
|
|
67
|
+
if (!aiProvider || !editContext)
|
|
68
|
+
return;
|
|
69
|
+
try {
|
|
70
|
+
setAiBusy(true);
|
|
71
|
+
setAiError(null);
|
|
72
|
+
const settingsItem = await resolvePathUnderContent(editContext.sessionId, userLang, ["Settings", "Editor"]);
|
|
73
|
+
if (!settingsItem)
|
|
74
|
+
throw new Error("Editor settings item not found. Create it first.");
|
|
75
|
+
const children = (await getChildren(settingsItem.id, editContext.sessionId, [], false, userLang, "path"));
|
|
76
|
+
let aiProvidersParent = findByName(children, "Ai Providers");
|
|
77
|
+
if (!aiProvidersParent) {
|
|
78
|
+
const aiProvidersTemplateId = "4592f2e0-06e4-470e-9820-7fd4ea148e00";
|
|
79
|
+
const createdContainer = await editContext.operations.createItem(settingsItem, aiProvidersTemplateId, "Ai Providers");
|
|
80
|
+
if (!createdContainer)
|
|
81
|
+
throw new Error("Failed to create 'Ai Providers' container");
|
|
82
|
+
aiProvidersParent = {
|
|
83
|
+
id: createdContainer.id,
|
|
84
|
+
name: "Ai Providers",
|
|
85
|
+
thumbUrl: "",
|
|
86
|
+
previewUrl: "",
|
|
87
|
+
templateId: "",
|
|
88
|
+
icon: "",
|
|
89
|
+
hasChildren: false,
|
|
90
|
+
isComponent: false,
|
|
91
|
+
displayName: "Ai Providers",
|
|
92
|
+
language: userLang,
|
|
93
|
+
version: 0,
|
|
94
|
+
hasLayout: false,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const providerTemplateId = "a6358b92-a9ea-4dd8-b4e1-7d6d3a3b9c40";
|
|
98
|
+
const providerName = aiProvider === "openai"
|
|
99
|
+
? "OpenAI"
|
|
100
|
+
: aiProvider === "azure-openai"
|
|
101
|
+
? "Azure OpenAI"
|
|
102
|
+
: "Open Router";
|
|
103
|
+
// Find or create provider
|
|
104
|
+
let providerItem = null;
|
|
105
|
+
const providerChildren = (await getChildren(aiProvidersParent.id, editContext.sessionId, [], false, userLang, "path"));
|
|
106
|
+
const existingProvider = findByName(providerChildren, providerName);
|
|
107
|
+
if (existingProvider) {
|
|
108
|
+
providerItem = {
|
|
109
|
+
id: existingProvider.id,
|
|
110
|
+
language: userLang,
|
|
111
|
+
version: 0,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const created = await editContext.operations.createItem({
|
|
116
|
+
id: aiProvidersParent.id,
|
|
117
|
+
language: userLang,
|
|
118
|
+
version: 0,
|
|
119
|
+
}, providerTemplateId, providerName);
|
|
120
|
+
if (!created)
|
|
121
|
+
throw new Error("Failed to create AI provider");
|
|
122
|
+
providerItem = created;
|
|
123
|
+
}
|
|
124
|
+
// Set API key if provided
|
|
125
|
+
if (apiKey && providerItem) {
|
|
126
|
+
const apiKeyFieldId = "db07ae53-459a-4314-89b3-ab2721df2b4f";
|
|
127
|
+
await editContext.operations.editField({
|
|
128
|
+
field: {
|
|
129
|
+
fieldId: apiKeyFieldId,
|
|
130
|
+
item: {
|
|
131
|
+
id: providerItem.id,
|
|
132
|
+
language: userLang,
|
|
133
|
+
version: 0,
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
value: apiKey,
|
|
137
|
+
rawValue: apiKey,
|
|
138
|
+
refresh: "delayed",
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
// Ensure Ai Models container exists
|
|
142
|
+
let aiModelsParent = findByName(children, "Ai Models");
|
|
143
|
+
if (!aiModelsParent) {
|
|
144
|
+
const aiModelsTemplateId = "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b";
|
|
145
|
+
const createdModels = await editContext.operations.createItem(settingsItem, aiModelsTemplateId, "Ai Models");
|
|
146
|
+
if (!createdModels)
|
|
147
|
+
throw new Error("Failed to create 'Ai Models' container");
|
|
148
|
+
aiModelsParent = {
|
|
149
|
+
id: createdModels.id,
|
|
150
|
+
name: "Ai Models",
|
|
151
|
+
thumbUrl: "",
|
|
152
|
+
previewUrl: "",
|
|
153
|
+
templateId: "",
|
|
154
|
+
icon: "",
|
|
155
|
+
hasChildren: false,
|
|
156
|
+
isComponent: false,
|
|
157
|
+
displayName: "Ai Models",
|
|
158
|
+
language: userLang,
|
|
159
|
+
version: 0,
|
|
160
|
+
hasLayout: false,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// Create default models if missing and link to endpoint
|
|
164
|
+
const modelsToEnsure = ["gpt-5", "gpt5-high", "image-1"];
|
|
165
|
+
const modelTemplateId = "d2e3f4a5-4b5c-5c6d-bf0b-3e4f5a6b7c8e";
|
|
166
|
+
const modelNameFieldId = "f1e2d3c4-5b6a-7980-8e9f-1a2b3c4d5e6f";
|
|
167
|
+
const modelProviderFieldId = "cbade708-ce95-4f54-81b7-308ea61a76a6";
|
|
168
|
+
const modelChildren = (await getChildren(aiModelsParent.id, editContext.sessionId, [], false, userLang, "path"));
|
|
169
|
+
for (const modelName of modelsToEnsure) {
|
|
170
|
+
let modelNode = findByName(modelChildren, modelName);
|
|
171
|
+
if (!modelNode) {
|
|
172
|
+
const createdModel = await editContext.operations.createItem({
|
|
173
|
+
id: aiModelsParent.id,
|
|
174
|
+
language: userLang,
|
|
175
|
+
version: 0,
|
|
176
|
+
}, modelTemplateId, modelName);
|
|
177
|
+
if (!createdModel)
|
|
178
|
+
throw new Error(`Failed to create model '${modelName}'`);
|
|
179
|
+
modelNode = {
|
|
180
|
+
id: createdModel.id,
|
|
181
|
+
name: modelName,
|
|
182
|
+
displayName: modelName,
|
|
183
|
+
thumbUrl: "",
|
|
184
|
+
previewUrl: "",
|
|
185
|
+
templateId: "",
|
|
186
|
+
icon: "",
|
|
187
|
+
hasChildren: false,
|
|
188
|
+
isComponent: false,
|
|
189
|
+
language: userLang,
|
|
190
|
+
version: 0,
|
|
191
|
+
hasLayout: false,
|
|
192
|
+
};
|
|
193
|
+
await editContext.operations.editField({
|
|
194
|
+
field: {
|
|
195
|
+
fieldId: modelNameFieldId,
|
|
196
|
+
item: { id: modelNode.id, language: userLang, version: 0 },
|
|
197
|
+
},
|
|
198
|
+
value: modelName,
|
|
199
|
+
rawValue: modelName,
|
|
200
|
+
refresh: "delayed",
|
|
201
|
+
});
|
|
202
|
+
const providerGuid = `{${providerItem.id
|
|
203
|
+
.replace(/[{}()]/g, "")
|
|
204
|
+
.toUpperCase()}}`;
|
|
205
|
+
await editContext.operations.editField({
|
|
206
|
+
field: {
|
|
207
|
+
fieldId: modelProviderFieldId,
|
|
208
|
+
item: { id: modelNode.id, language: userLang, version: 0 },
|
|
209
|
+
},
|
|
210
|
+
rawValue: providerGuid,
|
|
211
|
+
refresh: "delayed",
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
editContext.requestRefresh?.("immediate");
|
|
216
|
+
editContext.showToast?.(`Added '${providerName}' AI provider successfully`);
|
|
217
|
+
await loadProviders({ force: true });
|
|
218
|
+
setAiProvider("");
|
|
219
|
+
setApiKey("");
|
|
220
|
+
}
|
|
221
|
+
catch (e) {
|
|
222
|
+
setAiError(e?.message || "Failed to add AI provider");
|
|
223
|
+
}
|
|
224
|
+
finally {
|
|
225
|
+
setAiBusy(false);
|
|
226
|
+
}
|
|
227
|
+
}, [aiProvider, editContext, userLang, apiKey, loadProviders]);
|
|
228
|
+
React.useEffect(() => {
|
|
229
|
+
loadProviders({ force: true });
|
|
230
|
+
}, [loadProviders]);
|
|
231
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex items-center justify-between gap-2", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4 text-green-600" }), _jsx("span", { className: "text-sm text-gray-700", children: "Select provider and add provider" })] }) }), _jsxs("div", { className: "mt-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: "text-xs text-gray-600", children: "Existing providers" }), _jsxs(Button, { size: "sm", disabled: loadingProviders, onClick: () => loadProviders({ force: true }), children: [loadingProviders ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4" })), "Refresh"] })] }), _jsxs("div", { className: "mt-2", children: [providersError && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: providersError })), !providersError && (_jsx(_Fragment, { children: loadingProviders ? (_jsxs("div", { className: "flex items-center gap-2 text-xs text-gray-500", children: [_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" }), "Loading providers\u2026"] })) : providers.length > 0 ? (_jsx("ul", { className: "list-disc pl-5 text-xs text-gray-700", children: providers.map((ep) => (_jsx("li", { children: ep.displayName || ep.name }, ep.id))) })) : (_jsx("div", { className: "text-xs text-gray-500", children: "No AI providers found." })) }))] })] }), _jsxs("div", { className: "mt-3 flex flex-col items-stretch gap-2", children: [_jsx(Select, { value: aiProvider, onValueChange: setAiProvider, options: aiOptions, placeholder: "Choose provider" }), aiProvider && (_jsx(Input, { type: "password", placeholder: "API key", value: apiKey, onChange: (e) => setApiKey(e.target.value) })), _jsxs(Button, { size: "sm", disabled: !aiProvider || !apiKey || aiBusy, onClick: createAiProvider, children: [aiBusy ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4" })), "Add provider"] })] }), aiError && (_jsx("div", { className: "mt-2 rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: aiError }))] }));
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=ProviderSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderSection.js","sourceRoot":"","sources":["../../../../../../src/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.tsx"],"names":[],"mappings":"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"}
|
package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { StepState } from "../types";
|
|
2
|
+
interface RequiredContainerDef {
|
|
3
|
+
name: string;
|
|
4
|
+
templateId: string;
|
|
5
|
+
}
|
|
6
|
+
interface RequiredContainersListProps {
|
|
7
|
+
requiredContainers: RequiredContainerDef[];
|
|
8
|
+
containerStates: Record<string, StepState>;
|
|
9
|
+
busyMap: Record<string, boolean>;
|
|
10
|
+
canFix: boolean;
|
|
11
|
+
containersError: string | null;
|
|
12
|
+
onFixContainer: (name: string, templateId: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function RequiredContainersList(props: RequiredContainersListProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "../../../../../components/ui/button";
|
|
3
|
+
import { AlertCircle, CheckCircle, RefreshCw } from "lucide-react";
|
|
4
|
+
export function RequiredContainersList(props) {
|
|
5
|
+
const { requiredContainers, containerStates, busyMap, canFix, containersError, onFixContainer, } = props;
|
|
6
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex flex-col gap-2", children: requiredContainers
|
|
7
|
+
.filter((rc) => containerStates[rc.name] === "error")
|
|
8
|
+
.map((rc) => (_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [containerStates[rc.name] === "checking" ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin text-amber-600" })) : containerStates[rc.name] === "success" ? (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4 text-green-600" })) : (_jsx(AlertCircle, { strokeWidth: 1, className: "h-4 w-4 text-red-600" })), _jsx("span", { className: "text-sm text-gray-700", children: containerStates[rc.name] === "checking"
|
|
9
|
+
? `Checking ${rc.name}...`
|
|
10
|
+
: containerStates[rc.name] === "success"
|
|
11
|
+
? `${rc.name} present`
|
|
12
|
+
: `${rc.name} missing` })] }), containerStates[rc.name] !== "success" && (_jsxs(Button, { size: "sm", onClick: () => onFixContainer(rc.name, rc.templateId), disabled: !canFix || !!busyMap[rc.name], children: [busyMap[rc.name] ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4" })), "Fix"] }))] }, rc.name))) }), containersError && (_jsx("div", { className: "mt-2 rounded border border-yellow-200 bg-yellow-50 p-2 text-xs whitespace-pre-wrap text-yellow-800", children: containersError }))] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=RequiredContainersList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequiredContainersList.js","sourceRoot":"","sources":["../../../../../../src/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBnE,MAAM,UAAU,sBAAsB,CAAC,KAAkC;IACvE,MAAM,EACJ,kBAAkB,EAClB,eAAe,EACf,OAAO,EACP,MAAM,EACN,eAAe,EACf,cAAc,GACf,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,8BACE,cAAK,SAAS,EAAC,qBAAqB,YACjC,kBAAkB;qBAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC;qBACpD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACX,eAEE,SAAS,EAAC,yCAAyC,aAEnD,eAAK,SAAS,EAAC,yBAAyB,aACrC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CACzC,KAAC,SAAS,IACR,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,qCAAqC,GAC/C,CACH,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3C,KAAC,WAAW,IACV,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,wBAAwB,GAClC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IACV,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,sBAAsB,GAChC,CACH,EACD,eAAM,SAAS,EAAC,uBAAuB,YACpC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,UAAU;wCACtC,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,KAAK;wCAC1B,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS;4CACtC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU;4CACtB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,GACrB,IACH,EACL,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CACzC,MAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EACrD,QAAQ,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAEtC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAClB,KAAC,SAAS,IACR,WAAW,EAAE,CAAC,EACd,SAAS,EAAC,sBAAsB,GAChC,CACH,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,CACpD,WAEM,CACV,KA5CI,EAAE,CAAC,IAAI,CA6CR,CACP,CAAC,GACA,EACL,eAAe,IAAI,CAClB,cAAK,SAAS,EAAC,oGAAoG,YAChH,eAAe,GACZ,CACP,IACA,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function RequiredContainersSection(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { useEditContext } from "../../../../client/editContext";
|
|
4
|
+
import { getChildren } from "../../../../services/contentService";
|
|
5
|
+
import { RequiredContainersList } from "./RequiredContainersList";
|
|
6
|
+
import { findByName, resolvePathUnderContent } from "../utils";
|
|
7
|
+
export function RequiredContainersSection() {
|
|
8
|
+
const editContext = useEditContext();
|
|
9
|
+
const userLang = editContext?.contentEditorItem?.language || "en";
|
|
10
|
+
const requiredContainers = React.useMemo(() => [
|
|
11
|
+
{ name: "Ai Models", templateId: "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b" },
|
|
12
|
+
{
|
|
13
|
+
name: "Ai Providers",
|
|
14
|
+
templateId: "4592f2e0-06e4-470e-9820-7fd4ea148e00",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "Ai Profiles",
|
|
18
|
+
templateId: "4298ab78-2aaa-4d5f-bb3a-0bd321b86063",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "Ai Schemas",
|
|
22
|
+
templateId: "5214a52b-6c45-4671-97f2-703fe24e3d09",
|
|
23
|
+
},
|
|
24
|
+
{ name: "Ai Quotas", templateId: "7a08ff28-70ed-459b-a7f2-db2a78d88f46" },
|
|
25
|
+
{
|
|
26
|
+
name: "AI Generators",
|
|
27
|
+
templateId: "9430a3e9-7397-4598-9a55-2b263c927497",
|
|
28
|
+
},
|
|
29
|
+
{ name: "AI Tools", templateId: "7e3f9d9d-8e84-4e57-b12e-6e9c99d4fd11" },
|
|
30
|
+
], []);
|
|
31
|
+
const [parheliaSettingsItem, setParheliaSettingsItem] = React.useState(null);
|
|
32
|
+
const [containersError, setContainersError] = React.useState(null);
|
|
33
|
+
const [containerStates, setContainerStates] = React.useState({});
|
|
34
|
+
const [busyMap, setBusyMap] = React.useState({});
|
|
35
|
+
const checkRequiredContainers = React.useCallback(async () => {
|
|
36
|
+
try {
|
|
37
|
+
setContainersError(null);
|
|
38
|
+
const initialStates = {};
|
|
39
|
+
for (const rc of requiredContainers)
|
|
40
|
+
initialStates[rc.name] = "checking";
|
|
41
|
+
setContainerStates(initialStates);
|
|
42
|
+
const settingsItem = await resolvePathUnderContent(editContext?.sessionId, userLang, ["Settings", "Parhelia"]);
|
|
43
|
+
if (!settingsItem) {
|
|
44
|
+
setParheliaSettingsItem(null);
|
|
45
|
+
const errorMsg = "Parhelia settings item not found. Create it first.";
|
|
46
|
+
setContainersError(errorMsg);
|
|
47
|
+
const errorStates = {};
|
|
48
|
+
for (const rc of requiredContainers)
|
|
49
|
+
errorStates[rc.name] = "error";
|
|
50
|
+
setContainerStates(errorStates);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
setParheliaSettingsItem(settingsItem);
|
|
54
|
+
const children = (await getChildren(settingsItem.id, editContext.sessionId, [], false, userLang, "path"));
|
|
55
|
+
const states = {};
|
|
56
|
+
for (const rc of requiredContainers) {
|
|
57
|
+
const exists = !!findByName(children, rc.name);
|
|
58
|
+
states[rc.name] = exists ? "success" : "error";
|
|
59
|
+
}
|
|
60
|
+
setContainerStates(states);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
setContainersError(e?.message || "Failed to check AI containers");
|
|
64
|
+
const errorStates = {};
|
|
65
|
+
for (const rc of requiredContainers)
|
|
66
|
+
errorStates[rc.name] = "error";
|
|
67
|
+
setContainerStates(errorStates);
|
|
68
|
+
}
|
|
69
|
+
}, [editContext, requiredContainers, userLang]);
|
|
70
|
+
React.useEffect(() => {
|
|
71
|
+
checkRequiredContainers();
|
|
72
|
+
}, [checkRequiredContainers]);
|
|
73
|
+
const createContainer = React.useCallback(async (name, templateId) => {
|
|
74
|
+
if (!parheliaSettingsItem || !editContext)
|
|
75
|
+
return;
|
|
76
|
+
try {
|
|
77
|
+
setBusyMap((s) => ({ ...s, [name]: true }));
|
|
78
|
+
setContainersError(null);
|
|
79
|
+
const created = await editContext.operations.createItem(parheliaSettingsItem, templateId, name);
|
|
80
|
+
if (!created)
|
|
81
|
+
throw new Error(`Failed to create '${name}'`);
|
|
82
|
+
setContainerStates((s) => ({ ...s, [name]: "success" }));
|
|
83
|
+
}
|
|
84
|
+
catch (e) {
|
|
85
|
+
setContainersError(e?.message || `Failed to create '${name}'`);
|
|
86
|
+
setContainerStates((s) => ({ ...s, [name]: "error" }));
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
setBusyMap((s) => ({ ...s, [name]: false }));
|
|
90
|
+
}
|
|
91
|
+
}, [parheliaSettingsItem, editContext]);
|
|
92
|
+
return (_jsx(RequiredContainersList, { requiredContainers: requiredContainers, containerStates: containerStates, busyMap: busyMap, canFix: !!parheliaSettingsItem, containersError: containersError, onFixContainer: createContainer }));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=RequiredContainersSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequiredContainersSection.js","sourceRoot":"","sources":["../../../../../../src/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function GenerateToolsSection(): import("react/jsx-runtime").JSX.Element;
|