@alpaca-editor/core 1.0.4096 → 1.0.4097
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/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.js +1 -0
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/context-menu.d.ts +2 -2
- package/dist/components/ui/context-menu.js +16 -16
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/editor/Editor.js +1 -1
- package/dist/editor/Editor.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.js +40 -26
- 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 +1 -1
- package/dist/editor/ai/AgentTerminal.js +56 -5
- package/dist/editor/ai/AgentTerminal.js.map +1 -1
- package/dist/editor/ai/Agents.js +23 -9
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/ContextInfoBar.js +15 -5
- package/dist/editor/ai/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/ToolCallDisplay.js +2 -0
- package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
- package/dist/editor/client/AboutDialog.js +7 -5
- package/dist/editor/client/AboutDialog.js.map +1 -1
- package/dist/editor/client/EditorShell.js +7 -2
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +2 -2
- package/dist/editor/client/hooks/useSocketMessageHandler.js +3 -0
- package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
- package/dist/editor/client/itemsRepository.js +1 -0
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/control-center/Setup.js +1 -1
- package/dist/editor/control-center/Setup.js.map +1 -1
- package/dist/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/index.d.ts +0 -1
- package/dist/editor/control-center/setup-steps/AiSetupStep/index.js +3 -506
- package/dist/editor/control-center/setup-steps/AiSetupStep/index.js.map +1 -1
- package/dist/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -15
- package/dist/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.js +226 -3
- package/dist/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -1
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +1 -1
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.d.ts +1 -7
- package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +323 -3
- package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -1
- package/dist/editor/control-center/setup-steps/AiSetupStep/types.d.ts +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/types.js +2 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/types.js.map +1 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/utils.d.ts +4 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/utils.js +25 -0
- package/dist/editor/control-center/setup-steps/AiSetupStep/utils.js.map +1 -0
- package/dist/editor/control-center/setup-steps/IndexSetupStep.js +2 -1
- package/dist/editor/control-center/setup-steps/IndexSetupStep.js.map +1 -1
- package/dist/editor/field-types/SingleLineText.js.map +1 -1
- package/dist/editor/field-types/TreeListEditor.js +102 -16
- package/dist/editor/field-types/TreeListEditor.js.map +1 -1
- package/dist/editor/field-types/richtext/components/ReactSlate.js +1 -1
- package/dist/editor/field-types/richtext/components/SimpleRichTextEditor.js +1 -1
- package/dist/editor/menubar/toolbar-sections/EditControls.js +2 -2
- package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +25 -12
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.js +2 -2
- package/dist/editor/page-editor-chrome/SuggestionHighlighting.js.map +1 -1
- package/dist/editor/reviews/Comments.js +4 -4
- package/dist/editor/reviews/Comments.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +2 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +1 -0
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +18 -6
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/Insert.js +1 -1
- package/dist/editor/ui/Splitter.js +2 -1
- package/dist/editor/ui/Splitter.js.map +1 -1
- package/dist/editor/utils.js +0 -1
- package/dist/editor/utils.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/styles.css +15 -18
- package/package.json +1 -1
- package/src/components/ui/button.tsx +1 -0
- package/src/components/ui/context-menu.tsx +44 -20
- package/src/editor/Editor.tsx +1 -1
- package/src/editor/FieldActionsOverlay.tsx +113 -91
- package/src/editor/FieldListField.tsx +4 -1
- package/src/editor/LinkEditorDialog.tsx +1 -1
- package/src/editor/ai/AgentTerminal.tsx +84 -4
- package/src/editor/ai/Agents.tsx +18 -5
- package/src/editor/ai/ContextInfoBar.tsx +22 -6
- package/src/editor/ai/ToolCallDisplay.tsx +2 -0
- package/src/editor/client/AboutDialog.tsx +22 -17
- package/src/editor/client/EditorShell.tsx +8 -2
- package/src/editor/client/editContext.ts +2 -2
- package/src/editor/client/hooks/useSocketMessageHandler.ts +3 -0
- package/src/editor/client/itemsRepository.ts +1 -0
- package/src/editor/control-center/Setup.tsx +1 -1
- package/src/editor/control-center/setup-steps/AiSetupStep/EmbeddingsModelSection.tsx +296 -0
- package/src/editor/control-center/setup-steps/AiSetupStep/index.tsx +7 -660
- package/src/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.tsx +363 -24
- package/src/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersList.tsx +1 -1
- package/src/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.tsx +139 -0
- package/src/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.tsx +385 -8
- package/src/editor/control-center/setup-steps/AiSetupStep/types.ts +1 -0
- package/src/editor/control-center/setup-steps/AiSetupStep/utils.ts +43 -0
- package/src/editor/control-center/setup-steps/IndexSetupStep.tsx +2 -0
- package/src/editor/field-types/SingleLineText.tsx +0 -9
- package/src/editor/field-types/TreeListEditor.tsx +115 -16
- package/src/editor/field-types/richtext/components/ReactSlate.tsx +1 -1
- package/src/editor/field-types/richtext/components/SimpleRichTextEditor.tsx +1 -1
- package/src/editor/menubar/toolbar-sections/EditControls.tsx +2 -2
- package/src/editor/menubar/toolbar-sections/InsertControls.tsx +1 -1
- package/src/editor/page-editor-chrome/FrameMenu.tsx +81 -68
- package/src/editor/page-editor-chrome/SuggestionHighlighting.tsx +5 -5
- package/src/editor/reviews/Comments.tsx +13 -8
- package/src/editor/services/agentService.ts +3 -0
- package/src/editor/services/aiService.ts +2 -0
- package/src/editor/sidebar/ComponentTree.tsx +20 -6
- package/src/editor/sidebar/Insert.tsx +1 -1
- package/src/editor/ui/Splitter.tsx +2 -2
- package/src/editor/utils.ts +0 -1
- package/src/revision.ts +2 -2
|
@@ -1,10 +1,233 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
2
3
|
import { Select } from "../../../../../components/ui/select";
|
|
3
4
|
import { Input } from "../../../../../components/ui/input";
|
|
4
5
|
import { Button } from "../../../../../components/ui/button";
|
|
5
6
|
import { CheckCircle, RefreshCw } from "lucide-react";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 [endpoints, setEndpoints] = React.useState([]);
|
|
17
|
+
const [loadingEndpoints, setLoadingEndpoints] = React.useState(false);
|
|
18
|
+
const [endpointsError, setEndpointsError] = 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 loadEndpoints = 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
|
+
setLoadingEndpoints(true);
|
|
43
|
+
setEndpointsError(null);
|
|
44
|
+
const settingsItem = await resolvePathUnderContent(sessionId, userLang, ["Settings", "Editor"]);
|
|
45
|
+
if (!settingsItem) {
|
|
46
|
+
setEndpoints([]);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const children = (await getChildren(settingsItem.id, sessionId, [], false, userLang, "path"));
|
|
50
|
+
const aiEndpointsParent = findByName(children, "Ai Endpoints");
|
|
51
|
+
if (!aiEndpointsParent) {
|
|
52
|
+
setEndpoints([]);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const epChildren = (await getChildren(aiEndpointsParent.id, sessionId, [], false, userLang, "path"));
|
|
56
|
+
setEndpoints(epChildren || []);
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
setEndpointsError(e?.message || "Failed to load AI endpoints");
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
isLoadingRef.current = false;
|
|
63
|
+
setLoadingEndpoints(false);
|
|
64
|
+
}
|
|
65
|
+
}, [sessionId, userLang]);
|
|
66
|
+
const createAiEndpoint = 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 aiEndpointsParent = findByName(children, "Ai Endpoints");
|
|
77
|
+
if (!aiEndpointsParent) {
|
|
78
|
+
const aiEndpointsTemplateId = "4592f2e0-06e4-470e-9820-7fd4ea148e00";
|
|
79
|
+
const createdContainer = await editContext.operations.createItem(settingsItem, aiEndpointsTemplateId, "Ai Endpoints");
|
|
80
|
+
if (!createdContainer)
|
|
81
|
+
throw new Error("Failed to create 'Ai Endpoints' container");
|
|
82
|
+
aiEndpointsParent = {
|
|
83
|
+
id: createdContainer.id,
|
|
84
|
+
name: "Ai Endpoints",
|
|
85
|
+
thumbUrl: "",
|
|
86
|
+
previewUrl: "",
|
|
87
|
+
templateId: "",
|
|
88
|
+
icon: "",
|
|
89
|
+
hasChildren: false,
|
|
90
|
+
isComponent: false,
|
|
91
|
+
displayName: "Ai Endpoints",
|
|
92
|
+
language: userLang,
|
|
93
|
+
version: 0,
|
|
94
|
+
hasLayout: false,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const endpointTemplateId = "a6358b92-a9ea-4dd8-b4e1-7d6d3a3b9c40";
|
|
98
|
+
const endpointName = aiProvider === "openai"
|
|
99
|
+
? "OpenAI"
|
|
100
|
+
: aiProvider === "azure-openai"
|
|
101
|
+
? "Azure OpenAI"
|
|
102
|
+
: "Open Router";
|
|
103
|
+
// Find or create endpoint
|
|
104
|
+
let endpointItem = null;
|
|
105
|
+
const epChildren = (await getChildren(aiEndpointsParent.id, editContext.sessionId, [], false, userLang, "path"));
|
|
106
|
+
const existingEndpoint = findByName(epChildren, endpointName);
|
|
107
|
+
if (existingEndpoint) {
|
|
108
|
+
endpointItem = {
|
|
109
|
+
id: existingEndpoint.id,
|
|
110
|
+
language: userLang,
|
|
111
|
+
version: 0,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
const created = await editContext.operations.createItem({
|
|
116
|
+
id: aiEndpointsParent.id,
|
|
117
|
+
language: userLang,
|
|
118
|
+
version: 0,
|
|
119
|
+
}, endpointTemplateId, endpointName);
|
|
120
|
+
if (!created)
|
|
121
|
+
throw new Error("Failed to create AI endpoint");
|
|
122
|
+
endpointItem = created;
|
|
123
|
+
}
|
|
124
|
+
// Set API key if provided
|
|
125
|
+
if (apiKey && endpointItem) {
|
|
126
|
+
const apiKeyFieldId = "db07ae53-459a-4314-89b3-ab2721df2b4f";
|
|
127
|
+
await editContext.operations.editField({
|
|
128
|
+
field: {
|
|
129
|
+
fieldId: apiKeyFieldId,
|
|
130
|
+
item: {
|
|
131
|
+
id: endpointItem.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 modelEndpointFieldId = "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 endpointGuid = `{${endpointItem.id
|
|
203
|
+
.replace(/[{}()]/g, "")
|
|
204
|
+
.toUpperCase()}}`;
|
|
205
|
+
await editContext.operations.editField({
|
|
206
|
+
field: {
|
|
207
|
+
fieldId: modelEndpointFieldId,
|
|
208
|
+
item: { id: modelNode.id, language: userLang, version: 0 },
|
|
209
|
+
},
|
|
210
|
+
rawValue: endpointGuid,
|
|
211
|
+
refresh: "delayed",
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
editContext.requestRefresh?.("immediate");
|
|
216
|
+
editContext.showToast?.(`Added '${endpointName}' AI endpoint successfully`);
|
|
217
|
+
await loadEndpoints({ force: true });
|
|
218
|
+
setAiProvider("");
|
|
219
|
+
setApiKey("");
|
|
220
|
+
}
|
|
221
|
+
catch (e) {
|
|
222
|
+
setAiError(e?.message || "Failed to add AI endpoint");
|
|
223
|
+
}
|
|
224
|
+
finally {
|
|
225
|
+
setAiBusy(false);
|
|
226
|
+
}
|
|
227
|
+
}, [aiProvider, editContext, userLang, apiKey, loadEndpoints]);
|
|
228
|
+
React.useEffect(() => {
|
|
229
|
+
loadEndpoints({ force: true });
|
|
230
|
+
}, [loadEndpoints]);
|
|
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 endpoint" })] }) }), _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 endpoints" }), _jsxs(Button, { size: "sm", disabled: loadingEndpoints, onClick: () => loadEndpoints({ force: true }), children: [loadingEndpoints ? (_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: [endpointsError && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: endpointsError })), !endpointsError && (_jsx(_Fragment, { children: loadingEndpoints ? (_jsxs("div", { className: "text-xs text-gray-500 flex items-center gap-2", children: [_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" }), "Loading endpoints\u2026"] })) : endpoints.length > 0 ? (_jsx("ul", { className: "list-disc pl-5 text-xs text-gray-700", children: endpoints.map((ep) => (_jsx("li", { children: ep.displayName || ep.name }, ep.id))) })) : (_jsx("div", { className: "text-xs text-gray-500", children: "No AI endpoints 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: createAiEndpoint, children: [aiBusy ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4" })), "Add endpoint"] })] }), 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 }))] }));
|
|
9
232
|
}
|
|
10
233
|
//# sourceMappingURL=ProviderSection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderSection.js","sourceRoot":"","sources":["../../../../../../src/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ProviderSection.js","sourceRoot":"","sources":["../../../../../../src/editor/control-center/setup-steps/AiSetupStep/provider/ProviderSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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 Endpoints",
|
|
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 [editorSettingsItem, setEditorSettingsItem] = 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", "Editor"]);
|
|
43
|
+
if (!settingsItem) {
|
|
44
|
+
setEditorSettingsItem(null);
|
|
45
|
+
const errorMsg = "Editor 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
|
+
setEditorSettingsItem(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 (!editorSettingsItem || !editContext)
|
|
75
|
+
return;
|
|
76
|
+
try {
|
|
77
|
+
setBusyMap((s) => ({ ...s, [name]: true }));
|
|
78
|
+
setContainersError(null);
|
|
79
|
+
const created = await editContext.operations.createItem(editorSettingsItem, 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
|
+
}, [editorSettingsItem, editContext]);
|
|
92
|
+
return (_jsx(RequiredContainersList, { requiredContainers: requiredContainers, containerStates: containerStates, busyMap: busyMap, canFix: !!editorSettingsItem, containersError: containersError, onFixContainer: createContainer }));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=RequiredContainersSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequiredContainersSection.js","sourceRoot":"","sources":["../../../../../../src/editor/control-center/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
|
|
2
|
-
toolsBusy: boolean;
|
|
3
|
-
toolsError: string | null;
|
|
4
|
-
onGenerateTools: () => void;
|
|
5
|
-
}
|
|
6
|
-
export declare function GenerateToolsSection(props: GenerateToolsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export {};
|
|
1
|
+
export declare function GenerateToolsSection(): import("react/jsx-runtime").JSX.Element;
|