@parhelia/core 0.1.11151 → 0.1.11180

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/agents-view/AgentsInbox.d.ts +2 -1
  2. package/dist/agents-view/AgentsInbox.js +2 -2
  3. package/dist/agents-view/AgentsInbox.js.map +1 -1
  4. package/dist/agents-view/AgentsView.js +30 -1
  5. package/dist/agents-view/AgentsView.js.map +1 -1
  6. package/dist/components/ui/card.d.ts +1 -1
  7. package/dist/components/ui/card.js +1 -1
  8. package/dist/components/ui/card.js.map +1 -1
  9. package/dist/components/ui/paste-button.d.ts +1 -1
  10. package/dist/components/ui/paste-button.js +79 -22
  11. package/dist/components/ui/paste-button.js.map +1 -1
  12. package/dist/config/config.js +83 -51
  13. package/dist/config/config.js.map +1 -1
  14. package/dist/config/types.d.ts +29 -4
  15. package/dist/editor/ContentTree.js +92 -22
  16. package/dist/editor/ContentTree.js.map +1 -1
  17. package/dist/editor/FieldActionsOverlay.d.ts +1 -0
  18. package/dist/editor/FieldActionsOverlay.js +17 -1
  19. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  20. package/dist/editor/FieldListField.js +1 -1
  21. package/dist/editor/FieldListField.js.map +1 -1
  22. package/dist/editor/LinkEditorDialog.js +33 -24
  23. package/dist/editor/LinkEditorDialog.js.map +1 -1
  24. package/dist/editor/MainLayout.js +2 -2
  25. package/dist/editor/MainLayout.js.map +1 -1
  26. package/dist/editor/PictureEditor.js +1 -1
  27. package/dist/editor/PictureEditor.js.map +1 -1
  28. package/dist/editor/ai/AgentTerminal.js +63 -26
  29. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  30. package/dist/editor/ai/Agents.js +7 -2
  31. package/dist/editor/ai/Agents.js.map +1 -1
  32. package/dist/editor/client/EditorShell.js +178 -79
  33. package/dist/editor/client/EditorShell.js.map +1 -1
  34. package/dist/editor/client/OperationDialogContent.d.ts +13 -0
  35. package/dist/editor/client/OperationDialogContent.js +13 -0
  36. package/dist/editor/client/OperationDialogContent.js.map +1 -0
  37. package/dist/editor/client/editContext.d.ts +2 -0
  38. package/dist/editor/client/editContext.js.map +1 -1
  39. package/dist/editor/client/hooks/useGlobalEditorKeyDown.js +5 -2
  40. package/dist/editor/client/hooks/useGlobalEditorKeyDown.js.map +1 -1
  41. package/dist/editor/client/hooks/useQuota.d.ts +4 -0
  42. package/dist/editor/client/hooks/useQuota.js.map +1 -1
  43. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +2 -2
  44. package/dist/editor/client/hooks/useSocketMessageHandler.js +5 -7
  45. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  46. package/dist/editor/client/operations.d.ts +1 -0
  47. package/dist/editor/client/operations.js +332 -8
  48. package/dist/editor/client/operations.js.map +1 -1
  49. package/dist/editor/client/ui/EditorChrome.js +1 -1
  50. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  51. package/dist/editor/commands/itemCommands.d.ts +0 -1
  52. package/dist/editor/commands/itemCommands.js +1 -16
  53. package/dist/editor/commands/itemCommands.js.map +1 -1
  54. package/dist/editor/commands/undo.js +6 -2
  55. package/dist/editor/commands/undo.js.map +1 -1
  56. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +1 -1
  57. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  58. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +56 -2
  59. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  60. package/dist/editor/page-editor-chrome/FrameMenu.js +5 -4
  61. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  62. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +5 -1
  63. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  64. package/dist/editor/page-viewer/PageViewerFrame.js +118 -13
  65. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  66. package/dist/editor/reviews/CreateReviewDialog.js +1 -1
  67. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  68. package/dist/editor/reviews/DecisionsMatrix.js +1 -1
  69. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  70. package/dist/editor/reviews/ReviewsList.js +1 -1
  71. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  72. package/dist/editor/services/editService.d.ts +20 -3
  73. package/dist/editor/services/editService.js +17 -17
  74. package/dist/editor/services/editService.js.map +1 -1
  75. package/dist/editor/services/indexService.d.ts +4 -1
  76. package/dist/editor/services/indexService.js +12 -0
  77. package/dist/editor/services/indexService.js.map +1 -1
  78. package/dist/editor/services/serviceHelper.js +1 -0
  79. package/dist/editor/services/serviceHelper.js.map +1 -1
  80. package/dist/editor/settings/About.d.ts +1 -0
  81. package/dist/editor/settings/About.js +9 -0
  82. package/dist/editor/settings/About.js.map +1 -0
  83. package/dist/editor/settings/AllAgentsPanel.d.ts +5 -0
  84. package/dist/editor/settings/AllAgentsPanel.js +126 -0
  85. package/dist/editor/settings/AllAgentsPanel.js.map +1 -0
  86. package/dist/editor/settings/IndexOverview.d.ts +1 -0
  87. package/dist/editor/settings/IndexOverview.js +471 -0
  88. package/dist/editor/settings/IndexOverview.js.map +1 -0
  89. package/dist/editor/settings/Info.d.ts +1 -0
  90. package/dist/editor/settings/Info.js +11 -0
  91. package/dist/editor/settings/Info.js.map +1 -0
  92. package/dist/editor/settings/LatestFeedback.d.ts +1 -0
  93. package/dist/editor/settings/LatestFeedback.js +136 -0
  94. package/dist/editor/settings/LatestFeedback.js.map +1 -0
  95. package/dist/editor/settings/QuotaInfo.d.ts +1 -0
  96. package/dist/editor/settings/QuotaInfo.js +102 -0
  97. package/dist/editor/settings/QuotaInfo.js.map +1 -0
  98. package/dist/editor/settings/SettingsMenu.d.ts +1 -0
  99. package/dist/editor/settings/SettingsMenu.js +74 -0
  100. package/dist/editor/settings/SettingsMenu.js.map +1 -0
  101. package/dist/editor/settings/SettingsView.d.ts +1 -0
  102. package/dist/editor/settings/SettingsView.js +85 -0
  103. package/dist/editor/settings/SettingsView.js.map +1 -0
  104. package/dist/editor/settings/Setup.d.ts +1 -0
  105. package/dist/editor/settings/Setup.js +211 -0
  106. package/dist/editor/settings/Setup.js.map +1 -0
  107. package/dist/editor/settings/Status.d.ts +1 -0
  108. package/dist/editor/settings/Status.js +85 -0
  109. package/dist/editor/settings/Status.js.map +1 -0
  110. package/dist/editor/settings/WebSocketMessages.d.ts +1 -0
  111. package/dist/editor/settings/WebSocketMessages.js +71 -0
  112. package/dist/editor/settings/WebSocketMessages.js.map +1 -0
  113. package/dist/editor/settings/panels/AgentsPanel.d.ts +6 -0
  114. package/dist/editor/settings/panels/AgentsPanel.js +186 -0
  115. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -0
  116. package/dist/editor/settings/panels/DatabasePanel.d.ts +6 -0
  117. package/dist/editor/settings/panels/DatabasePanel.js +50 -0
  118. package/dist/editor/settings/panels/DatabasePanel.js.map +1 -0
  119. package/dist/editor/settings/panels/ItemConfigPanel.d.ts +13 -0
  120. package/dist/editor/settings/panels/ItemConfigPanel.js +52 -0
  121. package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -0
  122. package/dist/editor/settings/panels/ModelsPanel.d.ts +6 -0
  123. package/dist/editor/settings/panels/ModelsPanel.js +269 -0
  124. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -0
  125. package/dist/editor/settings/panels/ProvidersPanel.d.ts +6 -0
  126. package/dist/editor/settings/panels/ProvidersPanel.js +206 -0
  127. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -0
  128. package/dist/editor/settings/panels/SearchConfigPanel.d.ts +6 -0
  129. package/dist/editor/settings/panels/SearchConfigPanel.js +134 -0
  130. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -0
  131. package/dist/editor/settings/panels/SettingsPanel.d.ts +6 -0
  132. package/dist/editor/settings/panels/SettingsPanel.js +39 -0
  133. package/dist/editor/settings/panels/SettingsPanel.js.map +1 -0
  134. package/dist/editor/settings/panels/StatusPanel.d.ts +6 -0
  135. package/dist/editor/settings/panels/StatusPanel.js +141 -0
  136. package/dist/editor/settings/panels/StatusPanel.js.map +1 -0
  137. package/dist/editor/settings/panels/ToolsPanel.d.ts +6 -0
  138. package/dist/editor/settings/panels/ToolsPanel.js +192 -0
  139. package/dist/editor/settings/panels/ToolsPanel.js.map +1 -0
  140. package/dist/editor/settings/panels/index.d.ts +14 -0
  141. package/dist/editor/settings/panels/index.js +15 -0
  142. package/dist/editor/settings/panels/index.js.map +1 -0
  143. package/dist/editor/settings/panels/useSidebarEditor.d.ts +15 -0
  144. package/dist/editor/settings/panels/useSidebarEditor.js +24 -0
  145. package/dist/editor/settings/panels/useSidebarEditor.js.map +1 -0
  146. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
  147. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
  148. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
  149. package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +2 -0
  150. package/dist/editor/settings/setup-steps/AiSetupStep/index.js +22 -0
  151. package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +1 -0
  152. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
  153. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
  154. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
  155. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
  156. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
  157. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
  158. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
  159. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
  160. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
  161. package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.d.ts +1 -0
  162. package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +367 -0
  163. package/dist/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -0
  164. package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +1 -0
  165. package/dist/editor/settings/setup-steps/AiSetupStep/types.js +2 -0
  166. package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +1 -0
  167. package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +5 -0
  168. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +44 -0
  169. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +1 -0
  170. package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +2 -0
  171. package/dist/editor/settings/setup-steps/IndexSetupStep.js +36 -0
  172. package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +1 -0
  173. package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +2 -0
  174. package/dist/editor/settings/setup-steps/SettingsSetupStep.js +111 -0
  175. package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +1 -0
  176. package/dist/editor/settings/setup-steps/SetupOverview.d.ts +14 -0
  177. package/dist/editor/settings/setup-steps/SetupOverview.js +38 -0
  178. package/dist/editor/settings/setup-steps/SetupOverview.js.map +1 -0
  179. package/dist/editor/settings/status/coreStatusChecks.d.ts +25 -0
  180. package/dist/editor/settings/status/coreStatusChecks.js +231 -0
  181. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -0
  182. package/dist/editor/settings/status/index.d.ts +3 -0
  183. package/dist/editor/settings/status/index.js +3 -0
  184. package/dist/editor/settings/status/index.js.map +1 -0
  185. package/dist/editor/settings/status/useStartupChecks.d.ts +17 -0
  186. package/dist/editor/settings/status/useStartupChecks.js +54 -0
  187. package/dist/editor/settings/status/useStartupChecks.js.map +1 -0
  188. package/dist/editor/sidebar/EditHistory.js +18 -14
  189. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  190. package/dist/editor/sidebar/MainContentTree.js +0 -1
  191. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  192. package/dist/editor/sidebar/OperationItem.js +4 -3
  193. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  194. package/dist/editor/ui/PerfectTree.js +1 -1
  195. package/dist/editor/ui/PerfectTree.js.map +1 -1
  196. package/dist/editor/ui/Section.js +3 -3
  197. package/dist/editor/ui/Section.js.map +1 -1
  198. package/dist/editor/ui/SimpleMenu.js +13 -4
  199. package/dist/editor/ui/SimpleMenu.js.map +1 -1
  200. package/dist/editor/ui/SimpleToolbar.js +1 -1
  201. package/dist/editor/ui/SimpleToolbar.js.map +1 -1
  202. package/dist/editor/utils/keyboardNavigation.js +89 -27
  203. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  204. package/dist/revision.d.ts +2 -2
  205. package/dist/revision.js +2 -2
  206. package/dist/setup/SetupWizardPage.js +2 -2
  207. package/dist/setup/SetupWizardPage.js.map +1 -1
  208. package/dist/setup/services/setupWizardService.d.ts +132 -12
  209. package/dist/setup/services/setupWizardService.js +82 -6
  210. package/dist/setup/services/setupWizardService.js.map +1 -1
  211. package/dist/setup/wizard/index.d.ts +5 -4
  212. package/dist/setup/wizard/index.js +6 -4
  213. package/dist/setup/wizard/index.js.map +1 -1
  214. package/dist/setup/wizard/steps/AddModelDialog.d.ts +10 -0
  215. package/dist/setup/wizard/steps/AddModelDialog.js +119 -0
  216. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -0
  217. package/dist/setup/wizard/steps/ImportModelDialog.d.ts +10 -0
  218. package/dist/setup/wizard/steps/ImportModelDialog.js +351 -0
  219. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -0
  220. package/dist/splash-screen/ModernSplashScreen.js +1 -1
  221. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  222. package/dist/styles.css +183 -10
  223. package/dist/types.d.ts +36 -1
  224. package/package.json +4 -4
@@ -0,0 +1,367 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { Button } from "../../../../../components/ui/button";
4
+ import { CheckCircle, RefreshCw } from "lucide-react";
5
+ import { useEditContext } from "../../../../client/editContext";
6
+ import { getChildren } from "../../../../services/contentService";
7
+ import { findByName, resolvePathUnderContent } from "../utils";
8
+ // IDs for tool templates/fields
9
+ const AI_TOOLS_TEMPLATE_ID = "7e3f9d9d-8e84-4e57-b12e-6e9c99d4fd11"; // container
10
+ const AI_TOOL_TEMPLATE_ID = "a2e8a0d9-7b1f-4d1a-a2d8-8f3ea6d6f0b1"; // item template
11
+ const AGENT_SPAWN_TOOL_TEMPLATE_ID = "b1c2d3e4-5f6a-7b8c-9d0e-1f2a3b4c5d6e"; // spawn agent tool template
12
+ const FIELD_FUNCTION_NAME_ID = "3d9f2b1a-9d44-4d26-8a1b-92f0fb4d3a2c";
13
+ const FIELD_LABEL_ID = "5a19f5a5-1d21-4b6a-9f83-6f3fc0b34b2e";
14
+ const FIELD_DESCRIPTION_ID = "6b2e4b8e-8a9f-4d8f-9f6e-1a2b3c4d5e6f";
15
+ const PICTURE_DESCRIPTION_TOOL_TEMPLATE_ID = "2e3c9b8f-4d5a-4a8a-9c1f-7b2d6a1c3e4f"; // picture description tool template
16
+ const EDIT_IMAGE_TOOL_TEMPLATE_ID = "8f2e4a6b-3c5d-4e7f-9a1b-2d3e4f5a6b7c"; // edit image tool template
17
+ export function GenerateToolsSection() {
18
+ const editContext = useEditContext();
19
+ const [toolsBusy, setToolsBusy] = React.useState(false);
20
+ const [toolsError, setToolsError] = React.useState(null);
21
+ const userLang = editContext?.contentEditorItem?.language || "en";
22
+ const ensureAiToolsAndGenerate = React.useCallback(async () => {
23
+ if (!editContext)
24
+ return;
25
+ try {
26
+ setToolsBusy(true);
27
+ setToolsError(null);
28
+ // Resolve /Settings/Parhelia
29
+ const settingsItem = await resolvePathUnderContent(editContext.sessionId, userLang, ["Settings", "Parhelia"]);
30
+ if (!settingsItem)
31
+ throw new Error("Parhelia settings item not found. Create it first.");
32
+ // Ensure AI Tools container exists
33
+ const editorChildren = (await getChildren(settingsItem.id, editContext.sessionId, [], false, userLang, "path"));
34
+ let aiToolsParent = findByName(editorChildren, "AI Tools");
35
+ if (!aiToolsParent) {
36
+ const created = await editContext.operations.createItem(settingsItem, AI_TOOLS_TEMPLATE_ID, "AI Tools");
37
+ if (!created)
38
+ throw new Error("Failed to create 'AI Tools' container");
39
+ aiToolsParent = {
40
+ id: created.id,
41
+ name: "AI Tools",
42
+ displayName: "AI Tools",
43
+ thumbUrl: "",
44
+ previewUrl: "",
45
+ templateId: "",
46
+ icon: "",
47
+ hasChildren: false,
48
+ isComponent: false,
49
+ language: userLang,
50
+ version: 0,
51
+ hasLayout: false,
52
+ };
53
+ }
54
+ // Get existing items directly under AI Tools (root-level children)
55
+ const rootChildren = (await getChildren(aiToolsParent.id, editContext.sessionId, [], false, userLang, "path"));
56
+ const findChildByName = (children, name) => findByName(children, name);
57
+ // Define groups and their tools
58
+ const toolsByGroup = [
59
+ {
60
+ group: "Content",
61
+ tools: [
62
+ {
63
+ functionName: "get-content",
64
+ label: "Get Content",
65
+ description: "Returns page content or selected components",
66
+ },
67
+ {
68
+ functionName: "edit-field",
69
+ label: "Edit Field",
70
+ description: "Edits a field on the page or datasource",
71
+ },
72
+ {
73
+ functionName: "suggest-field-edit",
74
+ label: "Suggest Field Edit",
75
+ description: "Suggests changes to a field's content",
76
+ },
77
+ ],
78
+ },
79
+ {
80
+ group: "Items",
81
+ tools: [
82
+ {
83
+ functionName: "create-item",
84
+ label: "Create Item",
85
+ description: "Creates a new item using a template",
86
+ },
87
+ {
88
+ functionName: "load-item",
89
+ label: "Load Item",
90
+ description: "Loads an item for context",
91
+ },
92
+ {
93
+ functionName: "get-items",
94
+ label: "Get Items",
95
+ description: "Finds items by criteria",
96
+ },
97
+ {
98
+ functionName: "get-children",
99
+ label: "Get Children",
100
+ description: "Lists child items under a parent",
101
+ },
102
+ {
103
+ functionName: "get-insertoptions",
104
+ label: "Get Insert Options",
105
+ description: "Lists available insert templates for an item",
106
+ },
107
+ ],
108
+ },
109
+ {
110
+ group: "Components",
111
+ tools: [
112
+ {
113
+ functionName: "add-component",
114
+ label: "Add Component",
115
+ description: "Adds a component to a placeholder",
116
+ },
117
+ {
118
+ functionName: "remove-component",
119
+ label: "Remove Component",
120
+ description: "Removes a component from the page",
121
+ },
122
+ {
123
+ functionName: "move-components",
124
+ label: "Move Components",
125
+ description: "Moves components between placeholders",
126
+ },
127
+ {
128
+ functionName: "get-placeholders",
129
+ label: "Get Placeholders",
130
+ description: "Lists placeholders for a component",
131
+ },
132
+ {
133
+ functionName: "get-component-props-and-placeholders",
134
+ label: "Get Component Props and Placeholders",
135
+ description: "Returns component prop schema and placeholders",
136
+ },
137
+ ],
138
+ },
139
+ {
140
+ group: "Search",
141
+ tools: [
142
+ {
143
+ functionName: "search-content",
144
+ label: "Search Content",
145
+ description: "Searches content across the index",
146
+ },
147
+ {
148
+ functionName: "google-search",
149
+ label: "Google Search",
150
+ description: "Performs a web search",
151
+ },
152
+ {
153
+ functionName: "scrape-webpage",
154
+ label: "Scrape Webpage",
155
+ description: "Fetches a webpage and extracts content",
156
+ },
157
+ ],
158
+ },
159
+ {
160
+ group: "Media",
161
+ tools: [
162
+ {
163
+ functionName: "search-images",
164
+ label: "Search Images",
165
+ description: "Searches images for use in content",
166
+ },
167
+ {
168
+ functionName: "edit-image",
169
+ label: "Edit Image",
170
+ description: "Uses AI to modify an image",
171
+ templateId: EDIT_IMAGE_TOOL_TEMPLATE_ID,
172
+ },
173
+ {
174
+ functionName: "get-picture-description",
175
+ label: "Get Picture Description",
176
+ description: "Describes an image",
177
+ templateId: PICTURE_DESCRIPTION_TOOL_TEMPLATE_ID,
178
+ },
179
+ ],
180
+ },
181
+ {
182
+ group: "Collaboration",
183
+ tools: [
184
+ {
185
+ functionName: "add-comment",
186
+ label: "Add Comment",
187
+ description: "Adds a comment to the page",
188
+ },
189
+ {
190
+ functionName: "get-comments",
191
+ label: "Get Comments",
192
+ description: "Lists comments on the page",
193
+ },
194
+ {
195
+ functionName: "get-reviews",
196
+ label: "Get Reviews",
197
+ description: "Lists reviews on the page",
198
+ },
199
+ {
200
+ functionName: "invite-reviewer",
201
+ label: "Invite Reviewer",
202
+ description: "Adds a reviewer and sends an invitation email",
203
+ },
204
+ {
205
+ functionName: "get-suggestions",
206
+ label: "Get Suggestions",
207
+ description: "Provides AI suggestions",
208
+ },
209
+ ],
210
+ },
211
+ {
212
+ group: "Agents",
213
+ tools: [
214
+ {
215
+ functionName: "spawn-agent",
216
+ label: "Spawn Agent",
217
+ description: "Spawns a new AI agent with a specific profile and task",
218
+ templateId: AGENT_SPAWN_TOOL_TEMPLATE_ID,
219
+ },
220
+ {
221
+ functionName: "query-agent-status",
222
+ label: "Query Agent Status",
223
+ description: "Gets the status and progress of a spawned agent",
224
+ },
225
+ {
226
+ functionName: "stop-agent",
227
+ label: "Stop Agent",
228
+ description: "Stops a running child agent",
229
+ },
230
+ {
231
+ functionName: "report-to-parent",
232
+ label: "Report to Parent",
233
+ description: "Sends a message from child agent to parent agent",
234
+ },
235
+ {
236
+ functionName: "send-prompt-to-agent",
237
+ label: "Send Prompt to Agent",
238
+ description: "Sends a new prompt to a running agent's queue",
239
+ },
240
+ ],
241
+ },
242
+ ];
243
+ // Ensure groups exist, then create or move tools under them
244
+ for (const groupDef of toolsByGroup) {
245
+ // Find or create group container under AI Tools
246
+ let groupNode = findChildByName(rootChildren, groupDef.group);
247
+ if (!groupNode) {
248
+ const createdGroup = await editContext.operations.createItem({
249
+ id: aiToolsParent.id,
250
+ language: userLang,
251
+ version: 0,
252
+ }, AI_TOOLS_TEMPLATE_ID, groupDef.group);
253
+ if (!createdGroup)
254
+ throw new Error(`Failed to create group '${groupDef.group}'`);
255
+ groupNode = {
256
+ id: createdGroup.id,
257
+ name: groupDef.group,
258
+ displayName: groupDef.group,
259
+ thumbUrl: "",
260
+ previewUrl: "",
261
+ templateId: "",
262
+ icon: "",
263
+ hasChildren: true,
264
+ isComponent: false,
265
+ language: userLang,
266
+ version: 0,
267
+ hasLayout: false,
268
+ };
269
+ // Update our in-memory root children list so subsequent groups can be found
270
+ rootChildren.push(groupNode);
271
+ }
272
+ // Load current group children (tools already inside this group)
273
+ const groupChildren = (await getChildren(groupNode.id, editContext.sessionId, [], false, userLang, "path"));
274
+ for (const t of groupDef.tools) {
275
+ // Try to find tool inside the group by function name (which is now the item name)
276
+ let toolNode = findChildByName(groupChildren, t.functionName);
277
+ if (!toolNode) {
278
+ // See if tool exists at root and move it into the group
279
+ const existingAtRoot = findChildByName(rootChildren, t.functionName);
280
+ if (existingAtRoot) {
281
+ await editContext.operations.moveItems([
282
+ {
283
+ id: existingAtRoot.id,
284
+ language: userLang,
285
+ version: 0,
286
+ },
287
+ ], {
288
+ id: groupNode.id,
289
+ language: userLang,
290
+ version: 0,
291
+ }, groupChildren.length);
292
+ toolNode = existingAtRoot;
293
+ }
294
+ else {
295
+ // Create new tool item under the group
296
+ // Use custom template if specified, otherwise use default AI Tool template
297
+ const templateId = t.templateId || AI_TOOL_TEMPLATE_ID;
298
+ // Use function name as the item name - this becomes the tool name that the AI calls
299
+ const createdTool = await editContext.operations.createItem({
300
+ id: groupNode.id,
301
+ language: userLang,
302
+ version: 0,
303
+ }, templateId, t.functionName);
304
+ if (!createdTool)
305
+ throw new Error(`Failed to create tool '${t.functionName}'`);
306
+ toolNode = {
307
+ id: createdTool.id,
308
+ name: t.functionName,
309
+ displayName: t.functionName,
310
+ thumbUrl: "",
311
+ previewUrl: "",
312
+ templateId: "",
313
+ icon: "",
314
+ hasChildren: false,
315
+ isComponent: false,
316
+ language: userLang,
317
+ version: 0,
318
+ hasLayout: false,
319
+ };
320
+ }
321
+ }
322
+ // Set Function Name
323
+ await editContext.operations.editField({
324
+ field: {
325
+ fieldId: FIELD_FUNCTION_NAME_ID,
326
+ item: { id: toolNode.id, language: userLang, version: 0 },
327
+ },
328
+ value: t.functionName,
329
+ rawValue: t.functionName,
330
+ refresh: "delayed",
331
+ });
332
+ // Set Label
333
+ await editContext.operations.editField({
334
+ field: {
335
+ fieldId: FIELD_LABEL_ID,
336
+ item: { id: toolNode.id, language: userLang, version: 0 },
337
+ },
338
+ value: t.label,
339
+ rawValue: t.label,
340
+ refresh: "delayed",
341
+ });
342
+ // Set Description
343
+ if (t.description) {
344
+ await editContext.operations.editField({
345
+ field: {
346
+ fieldId: FIELD_DESCRIPTION_ID,
347
+ item: { id: toolNode.id, language: userLang, version: 0 },
348
+ },
349
+ value: t.description,
350
+ rawValue: t.description,
351
+ refresh: "delayed",
352
+ });
353
+ }
354
+ }
355
+ }
356
+ editContext.requestRefresh?.("immediate");
357
+ }
358
+ catch (e) {
359
+ setToolsError(e?.message || "Failed to generate AI tools");
360
+ }
361
+ finally {
362
+ setToolsBusy(false);
363
+ }
364
+ }, [editContext, userLang]);
365
+ return (_jsxs("div", { className: "mt-4 flex items-center gap-2", children: [_jsxs(Button, { size: "sm", variant: "outline", disabled: toolsBusy, onClick: ensureAiToolsAndGenerate, children: [toolsBusy ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4" })), "Generate AI tool items"] }), toolsError && _jsx("span", { className: "text-xs text-red-600", children: toolsError })] }));
366
+ }
367
+ //# sourceMappingURL=GenerateToolsSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateToolsSection.js","sourceRoot":"","sources":["../../../../../../src/editor/settings/setup-steps/AiSetupStep/tools/GenerateToolsSection.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export type StepState = "idle" | "checking" | "success" | "error";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/editor/settings/setup-steps/AiSetupStep/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { ItemTreeNodeData } from "../../../services/contentService";
2
+ import type { ItemDescriptor } from "../../../pageModel";
3
+ export declare function findByName(items: ItemTreeNodeData[], name: string): ItemTreeNodeData | undefined;
4
+ export declare function resolvePathUnderContent(sessionId: string | undefined, userLang: string, names: string[]): Promise<ItemDescriptor | null>;
5
+ export declare function resolvePathUnderSystem(sessionId: string | undefined, userLang: string, names: string[]): Promise<ItemDescriptor | null>;
@@ -0,0 +1,44 @@
1
+ import { getChildren } from "../../../services/contentService";
2
+ import { contentItemId } from "../../../../config/config";
3
+ export function findByName(items, name) {
4
+ const target = name.toLowerCase();
5
+ return items.find((x) => (x.displayName || x.name || "").toLowerCase() ===
6
+ target);
7
+ }
8
+ export async function resolvePathUnderContent(sessionId, userLang, names) {
9
+ if (!sessionId)
10
+ return null;
11
+ let currentId = contentItemId;
12
+ for (const segment of names) {
13
+ const children = (await getChildren(currentId, sessionId, [], false, userLang, "path"));
14
+ const next = findByName(children, segment);
15
+ if (!next)
16
+ return null;
17
+ currentId = next.id;
18
+ }
19
+ return {
20
+ id: currentId,
21
+ language: userLang,
22
+ version: 0,
23
+ };
24
+ }
25
+ export async function resolvePathUnderSystem(sessionId, userLang, names) {
26
+ if (!sessionId)
27
+ return null;
28
+ // Start from /sitecore/system
29
+ const systemRootId = "/sitecore/system";
30
+ let currentId = systemRootId;
31
+ for (const segment of names) {
32
+ const children = (await getChildren(currentId, sessionId, [], false, userLang, "path"));
33
+ const next = findByName(children, segment);
34
+ if (!next)
35
+ return null;
36
+ currentId = next.id;
37
+ }
38
+ return {
39
+ id: currentId,
40
+ language: userLang,
41
+ version: 0,
42
+ };
43
+ }
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/editor/settings/setup-steps/AiSetupStep/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,UAAU,UAAU,CACxB,KAAyB,EACzB,IAAY;IAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CACH,CAAE,CAAC,CAAC,WAAsB,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAY,CAAC,WAAW,EAAE;QACrE,MAAM,CACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAA6B,EAC7B,QAAgB,EAChB,KAAe;IAEf,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,SAAS,GAAG,aAAa,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CACjC,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IACD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC;KACO,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAA6B,EAC7B,QAAgB,EAChB,KAAe;IAEf,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,8BAA8B;IAC9B,MAAM,YAAY,GAAG,kBAAkB,CAAC;IACxC,IAAI,SAAS,GAAG,YAAY,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CACjC,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;QACpC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;IACtB,CAAC;IACD,OAAO;QACL,EAAE,EAAE,SAAS;QACb,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC;KACO,CAAC;AACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function IndexSetupStep(): import("react/jsx-runtime").JSX.Element;
2
+ export default IndexSetupStep;
@@ -0,0 +1,36 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { Card } from "../../../components/ui/card";
4
+ import { Button } from "../../../components/ui/button";
5
+ import { Badge } from "../../../components/ui/badge";
6
+ import { ExternalLink, Link2 } from "lucide-react";
7
+ import { getCombinedIndexStatus } from "../../services/indexService";
8
+ import { useEditContext } from "../../client/editContext";
9
+ import { EmbeddingsModelSection } from "./AiSetupStep/EmbeddingsModelSection";
10
+ export function IndexSetupStep() {
11
+ const [indexCount, setIndexCount] = useState(null);
12
+ const [indexLoading, setIndexLoading] = useState(false);
13
+ const editContext = useEditContext();
14
+ const goToIndexPanel = useCallback(() => {
15
+ // Ensure URL reflects the target view and panel before switching views
16
+ editContext?.updateUrl({ view: "settings", ccpanel: "index" });
17
+ editContext?.switchView("settings");
18
+ }, [editContext]);
19
+ const loadIndex = useCallback(async () => {
20
+ try {
21
+ setIndexLoading(true);
22
+ const data = await getCombinedIndexStatus();
23
+ const count = data?.indexStatus?.numberOfIndexedItems ?? null;
24
+ setIndexCount(typeof count === "number" ? count : null);
25
+ }
26
+ finally {
27
+ setIndexLoading(false);
28
+ }
29
+ }, []);
30
+ useEffect(() => {
31
+ loadIndex();
32
+ }, [loadIndex]);
33
+ return (_jsxs(Card, { icon: _jsx(Link2, { strokeWidth: 1, className: "h-5 w-5" }), title: "Search index", description: "Shows number of indexed items and links to Index panel.", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsxs(Badge, { variant: "outline", children: ["Indexed Items:", " ", indexLoading ? "..." : (indexCount ?? 0).toLocaleString()] }) }), _jsxs(Button, { size: "sm", variant: "outline", onClick: goToIndexPanel, children: [_jsx(ExternalLink, { strokeWidth: 1, className: "h-4 w-4" }), "Open Index"] })] }), _jsx(EmbeddingsModelSection, {})] }));
34
+ }
35
+ export default IndexSetupStep;
36
+ //# sourceMappingURL=IndexSetupStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexSetupStep.js","sourceRoot":"","sources":["../../../../src/editor/settings/setup-steps/IndexSetupStep.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,uEAAuE;QACvE,WAAW,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/D,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC;YACH,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,sBAAsB,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAI,EAAE,WAAW,EAAE,oBAAoB,IAAI,IAAI,CAAC;YAC9D,aAAa,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,EAAE,CAAC;IACd,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,MAAC,IAAI,IACH,IAAI,EAAE,KAAC,KAAK,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,EACnD,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,yDAAyD,aAErE,eAAK,SAAS,EAAC,yCAAyC,aACtD,cAAK,SAAS,EAAC,yBAAyB,YACtC,MAAC,KAAK,IAAC,OAAO,EAAC,SAAS,+BACP,GAAG,EACjB,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,IACpD,GACJ,EACN,MAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,cAAc,aACzD,KAAC,YAAY,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,kBAE7C,IACL,EACN,KAAC,sBAAsB,KAAG,IACrB,CACR,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function SettingsSetupStep(): import("react/jsx-runtime").JSX.Element;
2
+ export default SettingsSetupStep;
@@ -0,0 +1,111 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useCallback, useState } from "react";
3
+ import { Card } from "../../../components/ui/card";
4
+ import { Button } from "../../../components/ui/button";
5
+ import { useEditContext } from "../../client/editContext";
6
+ import { getChildren } from "../../services/contentService";
7
+ import { contentItemId } from "../../../config/config";
8
+ import { setupWizardService } from "../../../setup/services/setupWizardService";
9
+ import { CheckCircle, AlertCircle, Settings, RefreshCw } from "lucide-react";
10
+ function findByName(items, name) {
11
+ const target = name.toLowerCase();
12
+ return items.find((x) => (x.displayName || x.name || "").toLowerCase() ===
13
+ target);
14
+ }
15
+ export function SettingsSetupStep() {
16
+ const editContext = useEditContext();
17
+ const [settingsState, setSettingsState] = useState("checking");
18
+ const [settingsItem, setSettingsItem] = useState(null);
19
+ const [settingsError, setSettingsError] = useState(null);
20
+ const [creatingSettings, setCreatingSettings] = useState(false);
21
+ const userLang = editContext?.contentEditorItem?.language || "en";
22
+ const statusIcon = useCallback((state) => {
23
+ if (state === "success")
24
+ return _jsx(CheckCircle, { className: "h-4 w-4 text-green-600", strokeWidth: 1 });
25
+ if (state === "error")
26
+ return _jsx(AlertCircle, { className: "h-4 w-4 text-red-600", strokeWidth: 1 });
27
+ return (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin text-amber-600", strokeWidth: 1 }));
28
+ }, []);
29
+ const resolvePathUnderContent = useCallback(async (names) => {
30
+ if (!editContext?.sessionId)
31
+ return null;
32
+ let currentId = contentItemId;
33
+ for (const segment of names) {
34
+ const children = (await getChildren(currentId, editContext.sessionId, [], false, userLang, "path"));
35
+ const next = findByName(children, segment);
36
+ if (!next)
37
+ return null;
38
+ currentId = next.id;
39
+ }
40
+ return {
41
+ id: currentId,
42
+ language: userLang,
43
+ version: 0,
44
+ };
45
+ }, [editContext?.sessionId, userLang]);
46
+ const resolvePathUnderSystem = useCallback(async (names) => {
47
+ if (!editContext?.sessionId)
48
+ return null;
49
+ // Start from /sitecore/system
50
+ const systemRootId = "/sitecore/system";
51
+ let currentId = systemRootId;
52
+ for (const segment of names) {
53
+ const children = (await getChildren(currentId, editContext.sessionId, [], false, userLang, "path"));
54
+ const next = findByName(children, segment);
55
+ if (!next)
56
+ return null;
57
+ currentId = next.id;
58
+ }
59
+ return {
60
+ id: currentId,
61
+ language: userLang,
62
+ version: 0,
63
+ };
64
+ }, [editContext?.sessionId, userLang]);
65
+ const checkSettingsItem = useCallback(async () => {
66
+ try {
67
+ setSettingsState("checking");
68
+ setSettingsError(null);
69
+ setSettingsItem(null);
70
+ const parheliaItem = await resolvePathUnderSystem(["Parhelia", "Settings"]);
71
+ if (parheliaItem) {
72
+ setSettingsItem(parheliaItem);
73
+ setSettingsState("success");
74
+ return;
75
+ }
76
+ setSettingsState("error");
77
+ setSettingsError("Parhelia settings item not found at /sitecore/system/Parhelia/Settings");
78
+ }
79
+ catch (e) {
80
+ setSettingsState("error");
81
+ setSettingsError(e?.message || "Failed to check settings item");
82
+ }
83
+ }, [resolvePathUnderSystem]);
84
+ const createSettingsItem = useCallback(async () => {
85
+ try {
86
+ setCreatingSettings(true);
87
+ setSettingsError(null);
88
+ // Apply base settings (excludes models, endpoints, and agents)
89
+ await setupWizardService.applyBaseSettings();
90
+ // Recheck settings item
91
+ await checkSettingsItem();
92
+ }
93
+ catch (e) {
94
+ setSettingsState("error");
95
+ setSettingsError(e?.message || "Failed to apply base settings");
96
+ }
97
+ finally {
98
+ setCreatingSettings(false);
99
+ }
100
+ }, [checkSettingsItem]);
101
+ React.useEffect(() => {
102
+ checkSettingsItem();
103
+ }, [checkSettingsItem]);
104
+ return (_jsxs(Card, { icon: _jsx(Settings, { strokeWidth: 1, className: "h-5 w-5" }), title: "Parhelia settings", description: "Applies base settings structure (excludes models, endpoints, and agents which are configured in later steps).", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [statusIcon(settingsItem ? "success" : settingsState), _jsx("span", { className: "text-sm text-gray-700", children: settingsItem
105
+ ? "Settings item present"
106
+ : settingsState === "error"
107
+ ? "Settings item missing"
108
+ : "Checking..." })] }), !settingsItem && (_jsxs(Button, { size: "sm", onClick: createSettingsItem, disabled: creatingSettings, children: [creatingSettings ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4" })), "Create"] }))] }), settingsError && (_jsx("div", { className: "mt-2 rounded border border-yellow-200 bg-yellow-50 p-2 text-xs whitespace-pre-wrap text-yellow-800", children: settingsError }))] }));
109
+ }
110
+ export default SettingsSetupStep;
111
+ //# sourceMappingURL=SettingsSetupStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsSetupStep.js","sourceRoot":"","sources":["../../../../src/editor/settings/setup-steps/SettingsSetupStep.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ export interface SetupStepLink {
3
+ id: string;
4
+ title: string;
5
+ description: string;
6
+ icon: React.ReactNode;
7
+ component: React.ComponentType<any>;
8
+ }
9
+ export interface SetupOverviewProps {
10
+ steps: SetupStepLink[];
11
+ onNavigateToStep: (stepId: string) => void | Promise<void>;
12
+ }
13
+ export declare function SetupOverview({ steps, onNavigateToStep }: SetupOverviewProps): import("react/jsx-runtime").JSX.Element;
14
+ export default SetupOverview;