@parhelia/core 0.1.12554 → 0.1.12555

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 (575) hide show
  1. package/dist/agents-view/AgentCard.d.ts +4 -6
  2. package/dist/agents-view/AgentCard.js +24 -143
  3. package/dist/agents-view/AgentCard.js.map +1 -1
  4. package/dist/agents-view/AgentsInbox.d.ts +1 -1
  5. package/dist/agents-view/AgentsInbox.js +92 -7
  6. package/dist/agents-view/AgentsInbox.js.map +1 -1
  7. package/dist/agents-view/AgentsTitlebar.js +2 -3
  8. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  9. package/dist/agents-view/AgentsView.d.ts +7 -6
  10. package/dist/agents-view/AgentsView.js +98 -187
  11. package/dist/agents-view/AgentsView.js.map +1 -1
  12. package/dist/agents-view/AgentsWorkspaceView.d.ts +6 -2
  13. package/dist/agents-view/AgentsWorkspaceView.js +113 -266
  14. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  15. package/dist/agents-view/ProfileAgentsGroup.d.ts +1 -2
  16. package/dist/agents-view/ProfileAgentsGroup.js +3 -4
  17. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  18. package/dist/components/ActionButton.d.ts +1 -1
  19. package/dist/components/ActionButton.js.map +1 -1
  20. package/dist/components/FilterInput.d.ts +1 -1
  21. package/dist/components/FilterInput.js +1 -1
  22. package/dist/components/FilterInput.js.map +1 -1
  23. package/dist/components/ui/LanguageSelector.js +4 -2
  24. package/dist/components/ui/LanguageSelector.js.map +1 -1
  25. package/dist/components/ui/PlaceholderInput.js +3 -3
  26. package/dist/components/ui/PlaceholderInput.js.map +1 -1
  27. package/dist/components/ui/PlaceholderInputTypes.js +1 -1
  28. package/dist/components/ui/PlaceholderInputTypes.js.map +1 -1
  29. package/dist/components/ui/alert-dialog.d.ts +1 -1
  30. package/dist/components/ui/alert-dialog.js +10 -6
  31. package/dist/components/ui/alert-dialog.js.map +1 -1
  32. package/dist/components/ui/button.d.ts +4 -4
  33. package/dist/components/ui/button.js +1 -4
  34. package/dist/components/ui/button.js.map +1 -1
  35. package/dist/components/ui/context-menu.d.ts +1 -1
  36. package/dist/components/ui/context-menu.js +4 -12
  37. package/dist/components/ui/context-menu.js.map +1 -1
  38. package/dist/components/ui/copy-button.d.ts +1 -2
  39. package/dist/components/ui/copy-button.js +2 -2
  40. package/dist/components/ui/copy-button.js.map +1 -1
  41. package/dist/components/ui/dialog.d.ts +1 -1
  42. package/dist/components/ui/dialog.js +126 -21
  43. package/dist/components/ui/dialog.js.map +1 -1
  44. package/dist/components/ui/input.d.ts +1 -1
  45. package/dist/components/ui/input.js +3 -5
  46. package/dist/components/ui/input.js.map +1 -1
  47. package/dist/components/ui/paste-button.d.ts +1 -2
  48. package/dist/components/ui/paste-button.js +2 -2
  49. package/dist/components/ui/paste-button.js.map +1 -1
  50. package/dist/components/ui/popover.js +9 -1
  51. package/dist/components/ui/popover.js.map +1 -1
  52. package/dist/components/ui/select.js +1 -1
  53. package/dist/components/ui/select.js.map +1 -1
  54. package/dist/components/ui/styled-dialog-title.js +1 -1
  55. package/dist/components/ui/styled-dialog-title.js.map +1 -1
  56. package/dist/components/ui/tabs.d.ts +1 -1
  57. package/dist/components/ui/tabs.js +11 -4
  58. package/dist/components/ui/tabs.js.map +1 -1
  59. package/dist/config/config.d.ts +2 -4
  60. package/dist/config/config.js +70 -250
  61. package/dist/config/config.js.map +1 -1
  62. package/dist/config/types/workspace.d.ts +0 -6
  63. package/dist/config/types.d.ts +12 -63
  64. package/dist/config/types.js.map +1 -1
  65. package/dist/editor/ComponentInfo.d.ts +4 -0
  66. package/dist/editor/ComponentInfo.js +41 -0
  67. package/dist/editor/ComponentInfo.js.map +1 -0
  68. package/dist/editor/ConfirmationDialog.js +4 -20
  69. package/dist/editor/ConfirmationDialog.js.map +1 -1
  70. package/dist/editor/ContentTree.d.ts +1 -2
  71. package/dist/editor/ContentTree.js +32 -93
  72. package/dist/editor/ContentTree.js.map +1 -1
  73. package/dist/editor/Editor.js +22 -87
  74. package/dist/editor/Editor.js.map +1 -1
  75. package/dist/editor/FieldHistory.js +36 -84
  76. package/dist/editor/FieldHistory.js.map +1 -1
  77. package/dist/editor/FieldListField.js +9 -21
  78. package/dist/editor/FieldListField.js.map +1 -1
  79. package/dist/editor/FieldListFieldWithFallbacks.js +2 -23
  80. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
  81. package/dist/editor/GlobalMenuBar.js +2 -29
  82. package/dist/editor/GlobalMenuBar.js.map +1 -1
  83. package/dist/editor/ImageEditor.js +2 -5
  84. package/dist/editor/ImageEditor.js.map +1 -1
  85. package/dist/editor/ItemInfo.js +1 -36
  86. package/dist/editor/ItemInfo.js.map +1 -1
  87. package/dist/editor/LinkEditorDialog.js +0 -3
  88. package/dist/editor/LinkEditorDialog.js.map +1 -1
  89. package/dist/editor/MainLayout.d.ts +2 -0
  90. package/dist/editor/MainLayout.js +8 -65
  91. package/dist/editor/MainLayout.js.map +1 -1
  92. package/dist/editor/MigrationsView.js +5 -29
  93. package/dist/editor/MigrationsView.js.map +1 -1
  94. package/dist/editor/MobileLayout.js +12 -37
  95. package/dist/editor/MobileLayout.js.map +1 -1
  96. package/dist/editor/PictureCropper.js +45 -54
  97. package/dist/editor/PictureCropper.js.map +1 -1
  98. package/dist/editor/PictureEditor.js +15 -17
  99. package/dist/editor/PictureEditor.js.map +1 -1
  100. package/dist/editor/QuickItemSwitcher.js +21 -21
  101. package/dist/editor/QuickItemSwitcher.js.map +1 -1
  102. package/dist/editor/SetupWizard.js +12 -52
  103. package/dist/editor/SetupWizard.js.map +1 -1
  104. package/dist/editor/Titlebar.js +2 -7
  105. package/dist/editor/Titlebar.js.map +1 -1
  106. package/dist/editor/ai/AgentCostDisplay.d.ts +0 -1
  107. package/dist/editor/ai/AgentCostDisplay.js +1 -1
  108. package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
  109. package/dist/editor/ai/AgentDocumentList.js +14 -32
  110. package/dist/editor/ai/AgentDocumentList.js.map +1 -1
  111. package/dist/editor/ai/AgentGreeting.js +2 -3
  112. package/dist/editor/ai/AgentGreeting.js.map +1 -1
  113. package/dist/editor/ai/AgentProfileSelector.js +1 -2
  114. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  115. package/dist/editor/ai/AgentStatusBadge.d.ts +5 -0
  116. package/dist/editor/ai/AgentStatusBadge.js +65 -67
  117. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  118. package/dist/editor/ai/AgentTerminal.d.ts +2 -14
  119. package/dist/editor/ai/AgentTerminal.js +483 -2377
  120. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  121. package/dist/editor/ai/AgentTerminalStatusBar.d.ts +3 -8
  122. package/dist/editor/ai/AgentTerminalStatusBar.js +56 -460
  123. package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
  124. package/dist/editor/ai/Agents.js +113 -150
  125. package/dist/editor/ai/Agents.js.map +1 -1
  126. package/dist/editor/ai/AiResponseMessage.d.ts +1 -10
  127. package/dist/editor/ai/AiResponseMessage.js +23 -238
  128. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  129. package/dist/editor/ai/ContextInfoBar.d.ts +3 -2
  130. package/dist/editor/ai/ContextInfoBar.js +7 -64
  131. package/dist/editor/ai/ContextInfoBar.js.map +1 -1
  132. package/dist/editor/ai/GuidanceOverlay.js +11 -17
  133. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  134. package/dist/editor/ai/HelpTerminal.d.ts +5 -0
  135. package/dist/editor/ai/HelpTerminal.js +166 -0
  136. package/dist/editor/ai/HelpTerminal.js.map +1 -0
  137. package/dist/editor/ai/InlineAiDialog.d.ts +1 -1
  138. package/dist/editor/ai/InlineAiDialog.js +192 -514
  139. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  140. package/dist/editor/ai/InlineAiTrigger.js +12 -115
  141. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  142. package/dist/editor/ai/MediaImage.js +8 -40
  143. package/dist/editor/ai/MediaImage.js.map +1 -1
  144. package/dist/editor/ai/SpawnedAgentsPanel.js +12 -10
  145. package/dist/editor/ai/SpawnedAgentsPanel.js.map +1 -1
  146. package/dist/editor/ai/ToolCallDisplay.d.ts +2 -22
  147. package/dist/editor/ai/ToolCallDisplay.js +147 -518
  148. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  149. package/dist/editor/ai/dialogs/AgentDialogHandler.d.ts +8 -1
  150. package/dist/editor/ai/dialogs/AgentDialogHandler.js +42 -379
  151. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  152. package/dist/editor/ai/dialogs/QuestionnaireInline.d.ts +1 -5
  153. package/dist/editor/ai/dialogs/QuestionnaireInline.js +60 -628
  154. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  155. package/dist/editor/ai/dialogs/agentDialogTypes.d.ts +0 -115
  156. package/dist/editor/ai/dialogs/agentDialogTypes.js +0 -2
  157. package/dist/editor/ai/dialogs/agentDialogTypes.js.map +1 -1
  158. package/dist/editor/ai/types.d.ts +1 -3
  159. package/dist/editor/ai/useAgentStatus.d.ts +1 -2
  160. package/dist/editor/ai/useAgentStatus.js +99 -86
  161. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  162. package/dist/editor/ai/useInlineAiPosition.js +5 -45
  163. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  164. package/dist/editor/client/AboutDialog.js +2 -4
  165. package/dist/editor/client/AboutDialog.js.map +1 -1
  166. package/dist/editor/client/EditorShell.d.ts +1 -4
  167. package/dist/editor/client/EditorShell.js +230 -730
  168. package/dist/editor/client/EditorShell.js.map +1 -1
  169. package/dist/editor/client/editContext.d.ts +19 -33
  170. package/dist/editor/client/editContext.js.map +1 -1
  171. package/dist/editor/client/helpers.js +0 -6
  172. package/dist/editor/client/helpers.js.map +1 -1
  173. package/dist/editor/client/hooks/useEditorUrlSync.js +2 -1
  174. package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -1
  175. package/dist/editor/client/hooks/useEditorWebSocket.d.ts +0 -10
  176. package/dist/editor/client/hooks/useEditorWebSocket.js +14 -209
  177. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  178. package/dist/editor/client/hooks/useQuota.d.ts +0 -8
  179. package/dist/editor/client/hooks/useQuota.js.map +1 -1
  180. package/dist/editor/client/hooks/useSocketMessageHandler.js +7 -68
  181. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  182. package/dist/editor/client/itemsRepository.js +6 -10
  183. package/dist/editor/client/itemsRepository.js.map +1 -1
  184. package/dist/editor/client/operations.d.ts +3 -6
  185. package/dist/editor/client/operations.js +30 -208
  186. package/dist/editor/client/operations.js.map +1 -1
  187. package/dist/editor/client/pageModelBuilder.js +31 -4
  188. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  189. package/dist/editor/client/ui/DevModeIndicator.js +2 -2
  190. package/dist/editor/client/ui/DevModeIndicator.js.map +1 -1
  191. package/dist/editor/client/ui/EditorChrome.d.ts +6 -0
  192. package/dist/editor/client/ui/EditorChrome.js +72 -55
  193. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  194. package/dist/editor/client/ui/FullscreenControls.js +3 -5
  195. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  196. package/dist/editor/commands/commands.d.ts +1 -11
  197. package/dist/editor/commands/commands.js +1 -12
  198. package/dist/editor/commands/commands.js.map +1 -1
  199. package/dist/editor/commands/componentCommands.js +55 -109
  200. package/dist/editor/commands/componentCommands.js.map +1 -1
  201. package/dist/editor/commands/customCommandConverter.d.ts +1 -8
  202. package/dist/editor/commands/customCommandConverter.js +5 -35
  203. package/dist/editor/commands/customCommandConverter.js.map +1 -1
  204. package/dist/editor/commands/handlers/agentHandler.js +1 -2
  205. package/dist/editor/commands/handlers/agentHandler.js.map +1 -1
  206. package/dist/editor/commands/itemCommands.d.ts +0 -3
  207. package/dist/editor/commands/itemCommands.js +10 -93
  208. package/dist/editor/commands/itemCommands.js.map +1 -1
  209. package/dist/editor/commands/undo.d.ts +15 -9
  210. package/dist/editor/commands/undo.js +0 -24
  211. package/dist/editor/commands/undo.js.map +1 -1
  212. package/dist/editor/context-menu/InsertMenu.js +39 -83
  213. package/dist/editor/context-menu/InsertMenu.js.map +1 -1
  214. package/dist/editor/field-types/MultiLineText.js +1 -1
  215. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  216. package/dist/editor/field-types/RawEditor.js +1 -1
  217. package/dist/editor/field-types/ReactQuill.d.ts +125 -0
  218. package/dist/editor/field-types/ReactQuill.js +385 -0
  219. package/dist/editor/field-types/ReactQuill.js.map +1 -0
  220. package/dist/editor/field-types/RichTextEditor.js +5 -13
  221. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  222. package/dist/editor/field-types/RichTextEditorComponent.js +3 -37
  223. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  224. package/dist/editor/field-types/SingleLineText.js +1 -1
  225. package/dist/editor/field-types/TreeListEditor.js +2 -3
  226. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  227. package/dist/editor/field-types/richtext/components/ReactSlate.css +5 -23
  228. package/dist/editor/field-types/richtext/components/ReactSlate.d.ts +0 -2
  229. package/dist/editor/field-types/richtext/components/ReactSlate.js +4 -28
  230. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  231. package/dist/editor/field-types/richtext/components/ToolbarButton.js +2 -4
  232. package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -1
  233. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +0 -13
  234. package/dist/editor/field-types/richtext/contextMenuFactory.js +24 -181
  235. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  236. package/dist/editor/field-types/richtext/types.d.ts +0 -2
  237. package/dist/editor/field-types/richtext/types.js.map +1 -1
  238. package/dist/editor/field-types/richtext/utils/plugins.js +0 -4
  239. package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -1
  240. package/dist/editor/field-types/textContextMenuFactory.js +2 -3
  241. package/dist/editor/field-types/textContextMenuFactory.js.map +1 -1
  242. package/dist/editor/media-selector/AiImageSearchPrompt.js +2 -4
  243. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  244. package/dist/editor/media-selector/MediaFolderBrowser.js +1 -1
  245. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  246. package/dist/editor/media-selector/MediaSelector.js +1 -7
  247. package/dist/editor/media-selector/MediaSelector.js.map +1 -1
  248. package/dist/editor/media-selector/TreeSelector.js +35 -40
  249. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  250. package/dist/editor/menubar/ActiveUsers.js +1 -1
  251. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  252. package/dist/editor/menubar/GenericToolbar.js +2 -4
  253. package/dist/editor/menubar/GenericToolbar.js.map +1 -1
  254. package/dist/editor/menubar/ItemLanguageVersion.js +2 -2
  255. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  256. package/dist/editor/menubar/PageSelector.js +147 -26
  257. package/dist/editor/menubar/PageSelector.js.map +1 -1
  258. package/dist/editor/menubar/Separator.js +1 -1
  259. package/dist/editor/menubar/VersionSelector.js +4 -2
  260. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  261. package/dist/editor/menubar/WorkflowButton.js +12 -39
  262. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  263. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +38 -16
  264. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  265. package/dist/editor/menubar/toolbar-sections/EditControls.js +3 -3
  266. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  267. package/dist/editor/menubar/toolbar-sections/HelpButton.js +0 -1
  268. package/dist/editor/menubar/toolbar-sections/HelpButton.js.map +1 -1
  269. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -6
  270. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +220 -597
  271. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  272. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +2 -13
  273. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  274. package/dist/editor/page-editor-chrome/CommentHighlighting.js +1 -42
  275. package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -1
  276. package/dist/editor/page-editor-chrome/FrameMenu.js +1 -1
  277. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  278. package/dist/editor/page-editor-chrome/InlineEditor.js +48 -97
  279. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  280. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +17 -38
  281. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  282. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +11 -17
  283. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  284. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +301 -301
  285. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  286. package/dist/editor/page-viewer/DeviceToolbar.js +1 -1
  287. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  288. package/dist/editor/page-viewer/EditorForm.js +11 -69
  289. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  290. package/dist/editor/page-viewer/MiniMap.d.ts +4 -2
  291. package/dist/editor/page-viewer/MiniMap.js +28 -91
  292. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  293. package/dist/editor/page-viewer/PageViewer.d.ts +1 -3
  294. package/dist/editor/page-viewer/PageViewer.js +19 -92
  295. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  296. package/dist/editor/page-viewer/PageViewerFrame.d.ts +1 -2
  297. package/dist/editor/page-viewer/PageViewerFrame.js +115 -348
  298. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  299. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +49 -114
  300. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -1
  301. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -1
  302. package/dist/editor/page-viewer/pageViewContext.js +14 -51
  303. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  304. package/dist/editor/pageModel.d.ts +1 -14
  305. package/dist/editor/reviews/Comment.js +12 -26
  306. package/dist/editor/reviews/Comment.js.map +1 -1
  307. package/dist/editor/reviews/CommentDisplayPopover.js +5 -7
  308. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  309. package/dist/editor/reviews/CommentView.js +4 -19
  310. package/dist/editor/reviews/CommentView.js.map +1 -1
  311. package/dist/editor/reviews/Comments.js +72 -89
  312. package/dist/editor/reviews/Comments.js.map +1 -1
  313. package/dist/editor/reviews/CreateReviewDialog.js +177 -281
  314. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  315. package/dist/editor/reviews/DecisionsMatrix.js +25 -96
  316. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  317. package/dist/editor/reviews/DiffView.js +14 -7
  318. package/dist/editor/reviews/DiffView.js.map +1 -1
  319. package/dist/editor/reviews/EditReviewSettingsDialog.js +4 -6
  320. package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
  321. package/dist/editor/reviews/MultiReviewManager.js +3 -25
  322. package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
  323. package/dist/editor/reviews/PagesPanel.js +15 -31
  324. package/dist/editor/reviews/PagesPanel.js.map +1 -1
  325. package/dist/editor/reviews/PreviewInfo.js +4 -1
  326. package/dist/editor/reviews/PreviewInfo.js.map +1 -1
  327. package/dist/editor/reviews/ReviewCard.js +7 -13
  328. package/dist/editor/reviews/ReviewCard.js.map +1 -1
  329. package/dist/editor/reviews/ReviewDetail.js +2 -3
  330. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  331. package/dist/editor/reviews/ReviewsList.js +3 -7
  332. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  333. package/dist/editor/reviews/SuggestedEdit.js +3 -34
  334. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  335. package/dist/editor/reviews/SuggestionDisplayPopover.js +5 -31
  336. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  337. package/dist/editor/reviews/commentAi.js +6 -25
  338. package/dist/editor/reviews/commentAi.js.map +1 -1
  339. package/dist/editor/reviews/reviewCommands.js +1 -4
  340. package/dist/editor/reviews/reviewCommands.js.map +1 -1
  341. package/dist/editor/reviews/useMultiReview.js +2 -2
  342. package/dist/editor/reviews/useMultiReview.js.map +1 -1
  343. package/dist/editor/reviews/useReviews.d.ts +2 -2
  344. package/dist/editor/reviews/useReviews.js +30 -12
  345. package/dist/editor/reviews/useReviews.js.map +1 -1
  346. package/dist/editor/services/agentService.d.ts +5 -229
  347. package/dist/editor/services/agentService.js +39 -292
  348. package/dist/editor/services/agentService.js.map +1 -1
  349. package/dist/editor/services/aiService.d.ts +1 -57
  350. package/dist/editor/services/aiService.js +6 -79
  351. package/dist/editor/services/aiService.js.map +1 -1
  352. package/dist/editor/services/contentService.d.ts +3 -6
  353. package/dist/editor/services/contentService.js +12 -13
  354. package/dist/editor/services/contentService.js.map +1 -1
  355. package/dist/editor/services/editService.d.ts +1 -52
  356. package/dist/editor/services/editService.js +2 -94
  357. package/dist/editor/services/editService.js.map +1 -1
  358. package/dist/editor/services/indexService.js +1 -1
  359. package/dist/editor/services/indexService.js.map +1 -1
  360. package/dist/editor/services/reviewsService.d.ts +6 -3
  361. package/dist/editor/services/reviewsService.js +11 -2
  362. package/dist/editor/services/reviewsService.js.map +1 -1
  363. package/dist/editor/services/serviceHelper.d.ts +1 -2
  364. package/dist/editor/services/serviceHelper.js +20 -112
  365. package/dist/editor/services/serviceHelper.js.map +1 -1
  366. package/dist/editor/services/systemService.d.ts +1 -2
  367. package/dist/editor/services/systemService.js +0 -3
  368. package/dist/editor/services/systemService.js.map +1 -1
  369. package/dist/editor/services-server/api.d.ts +2 -1
  370. package/dist/editor/services-server/api.js +6 -11
  371. package/dist/editor/services-server/api.js.map +1 -1
  372. package/dist/editor/services-server/graphQL.d.ts +29 -0
  373. package/dist/editor/services-server/graphQL.js +53 -0
  374. package/dist/editor/services-server/graphQL.js.map +1 -0
  375. package/dist/editor/settings/About.js +3 -317
  376. package/dist/editor/settings/About.js.map +1 -1
  377. package/dist/editor/settings/AllAgentsPanel.d.ts +5 -0
  378. package/dist/editor/settings/AllAgentsPanel.js +139 -0
  379. package/dist/editor/settings/AllAgentsPanel.js.map +1 -0
  380. package/dist/editor/settings/LatestFeedback.d.ts +1 -0
  381. package/dist/editor/settings/LatestFeedback.js +136 -0
  382. package/dist/editor/settings/LatestFeedback.js.map +1 -0
  383. package/dist/editor/settings/QuotaInfo.js +4 -210
  384. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  385. package/dist/editor/settings/SettingsView.js +23 -25
  386. package/dist/editor/settings/SettingsView.js.map +1 -1
  387. package/dist/editor/settings/Setup.d.ts +1 -0
  388. package/dist/editor/settings/Setup.js +211 -0
  389. package/dist/editor/settings/Setup.js.map +1 -0
  390. package/dist/editor/settings/Status.js +6 -7
  391. package/dist/editor/settings/Status.js.map +1 -1
  392. package/dist/editor/settings/index/useIndexStatus.js +22 -20
  393. package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
  394. package/dist/editor/settings/panels/AgentsPanel.d.ts +4 -0
  395. package/dist/editor/settings/panels/AgentsPanel.js +121 -95
  396. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  397. package/dist/editor/settings/panels/DatabasePanel.d.ts +6 -0
  398. package/dist/editor/settings/panels/DatabasePanel.js +50 -0
  399. package/dist/editor/settings/panels/DatabasePanel.js.map +1 -0
  400. package/dist/editor/settings/panels/ModelsPanel.js +108 -329
  401. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  402. package/dist/editor/settings/panels/ProvidersPanel.d.ts +1 -1
  403. package/dist/editor/settings/panels/ProvidersPanel.js +59 -86
  404. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  405. package/dist/editor/settings/panels/SearchConfigPanel.js +4 -4
  406. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  407. package/dist/editor/settings/panels/index.d.ts +2 -3
  408. package/dist/editor/settings/panels/index.js +2 -3
  409. package/dist/editor/settings/panels/index.js.map +1 -1
  410. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
  411. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
  412. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
  413. package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +2 -0
  414. package/dist/editor/settings/setup-steps/AiSetupStep/index.js +21 -0
  415. package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +1 -0
  416. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
  417. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
  418. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
  419. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
  420. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
  421. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
  422. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
  423. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
  424. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
  425. package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +1 -0
  426. package/dist/editor/settings/setup-steps/AiSetupStep/types.js +2 -0
  427. package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +1 -0
  428. package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +5 -0
  429. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +44 -0
  430. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +1 -0
  431. package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +2 -0
  432. package/dist/editor/settings/setup-steps/IndexSetupStep.js +36 -0
  433. package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +1 -0
  434. package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +2 -0
  435. package/dist/editor/settings/setup-steps/SettingsSetupStep.js +111 -0
  436. package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +1 -0
  437. package/dist/editor/settings/setup-steps/SetupOverview.d.ts +14 -0
  438. package/dist/editor/settings/setup-steps/SetupOverview.js +38 -0
  439. package/dist/editor/settings/setup-steps/SetupOverview.js.map +1 -0
  440. package/dist/editor/settings/status/coreStatusChecks.js +19 -124
  441. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -1
  442. package/dist/editor/settings/status/useStartupChecks.d.ts +1 -3
  443. package/dist/editor/settings/status/useStartupChecks.js +5 -9
  444. package/dist/editor/settings/status/useStartupChecks.js.map +1 -1
  445. package/dist/editor/setup-wizard/steps/CompleteStep.d.ts +1 -2
  446. package/dist/editor/setup-wizard/steps/CompleteStep.js +1 -2
  447. package/dist/editor/setup-wizard/steps/CompleteStep.js.map +1 -1
  448. package/dist/editor/sidebar/ComponentPalette.js +1 -2
  449. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  450. package/dist/editor/sidebar/ComponentTree.d.ts +1 -8
  451. package/dist/editor/sidebar/ComponentTree.js +69 -216
  452. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  453. package/dist/editor/sidebar/Debug.d.ts +1 -0
  454. package/dist/editor/sidebar/Debug.js +70 -0
  455. package/dist/editor/sidebar/Debug.js.map +1 -0
  456. package/dist/editor/sidebar/EditHistory.js +46 -22
  457. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  458. package/dist/editor/sidebar/Favorites.js +8 -4
  459. package/dist/editor/sidebar/Favorites.js.map +1 -1
  460. package/dist/editor/sidebar/GraphQL.d.ts +2 -0
  461. package/dist/editor/sidebar/GraphQL.js +234 -0
  462. package/dist/editor/sidebar/GraphQL.js.map +1 -0
  463. package/dist/editor/sidebar/LeftToolbar.d.ts +1 -0
  464. package/dist/editor/sidebar/LeftToolbar.js +12 -0
  465. package/dist/editor/sidebar/LeftToolbar.js.map +1 -0
  466. package/dist/editor/sidebar/MainContentTree.js +3 -4
  467. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  468. package/dist/editor/sidebar/NavigationSidebar.d.ts +4 -0
  469. package/dist/editor/sidebar/NavigationSidebar.js +254 -0
  470. package/dist/editor/sidebar/NavigationSidebar.js.map +1 -0
  471. package/dist/editor/sidebar/OperationItem.js +7 -21
  472. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  473. package/dist/editor/sidebar/SidebarPanel.d.ts +1 -3
  474. package/dist/editor/sidebar/SidebarPanel.js +12 -44
  475. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  476. package/dist/editor/sidebar/SidebarStack.d.ts +1 -2
  477. package/dist/editor/sidebar/SidebarStack.js +3 -4
  478. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  479. package/dist/editor/sidebar/Validation.js +12 -22
  480. package/dist/editor/sidebar/Validation.js.map +1 -1
  481. package/dist/editor/sidebar/Workbox.js +3 -53
  482. package/dist/editor/sidebar/Workbox.js.map +1 -1
  483. package/dist/editor/sidebar/WorkspaceRail.d.ts +1 -0
  484. package/dist/editor/sidebar/WorkspaceRail.js +167 -56
  485. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  486. package/dist/editor/tree-indicators/GutterColumns.d.ts +1 -3
  487. package/dist/editor/tree-indicators/GutterColumns.js +5 -26
  488. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  489. package/dist/editor/tree-indicators/GutterContext.d.ts +0 -4
  490. package/dist/editor/tree-indicators/GutterContext.js +0 -23
  491. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  492. package/dist/editor/tree-indicators/GutterSelector.d.ts +5 -0
  493. package/dist/editor/tree-indicators/GutterSelector.js +91 -0
  494. package/dist/editor/tree-indicators/GutterSelector.js.map +1 -0
  495. package/dist/editor/tree-indicators/index.d.ts +1 -0
  496. package/dist/editor/tree-indicators/index.js +1 -0
  497. package/dist/editor/tree-indicators/index.js.map +1 -1
  498. package/dist/editor/tree-indicators/types.d.ts +1 -12
  499. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js +1 -1
  500. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js.map +1 -1
  501. package/dist/editor/ui/Icons.js +1 -1
  502. package/dist/editor/ui/Icons.js.map +1 -1
  503. package/dist/editor/ui/ItemNameDialogNew.d.ts +0 -2
  504. package/dist/editor/ui/ItemNameDialogNew.js +17 -33
  505. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  506. package/dist/editor/ui/ItemSearch.js +11 -7
  507. package/dist/editor/ui/ItemSearch.js.map +1 -1
  508. package/dist/editor/ui/SimpleIconButton.js +1 -1
  509. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  510. package/dist/editor/ui/SimpleTabs.d.ts +0 -1
  511. package/dist/editor/ui/SimpleTabs.js +25 -45
  512. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  513. package/dist/editor/ui/Splitter.d.ts +0 -1
  514. package/dist/editor/ui/Splitter.js +86 -102
  515. package/dist/editor/ui/Splitter.js.map +1 -1
  516. package/dist/editor/ui/TemplateSelectorDialog.js +4 -4
  517. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
  518. package/dist/editor/ui/TreeListSelector.d.ts +1 -6
  519. package/dist/editor/ui/TreeListSelector.js +2 -2
  520. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  521. package/dist/editor/utils/keyboardNavigation.d.ts +20 -6
  522. package/dist/editor/utils/keyboardNavigation.js +140 -48
  523. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  524. package/dist/editor/utils.js +9 -19
  525. package/dist/editor/utils.js.map +1 -1
  526. package/dist/editor/views/CompareView.d.ts +1 -3
  527. package/dist/editor/views/CompareView.js +5 -7
  528. package/dist/editor/views/CompareView.js.map +1 -1
  529. package/dist/editor/views/EditView.js +1 -1
  530. package/dist/editor/views/EditView.js.map +1 -1
  531. package/dist/editor/views/EditorSlot.js +34 -27
  532. package/dist/editor/views/EditorSlot.js.map +1 -1
  533. package/dist/editor/views/ItemEditor.js +3 -7
  534. package/dist/editor/views/ItemEditor.js.map +1 -1
  535. package/dist/editor/views/MediaFolderEditView.js +1 -1
  536. package/dist/editor/views/MediaFolderEditView.js.map +1 -1
  537. package/dist/editor/views/ParheliaView.js +6 -5
  538. package/dist/editor/views/ParheliaView.js.map +1 -1
  539. package/dist/editor/views/SingleEditView.d.ts +1 -2
  540. package/dist/editor/views/SingleEditView.js +8 -10
  541. package/dist/editor/views/SingleEditView.js.map +1 -1
  542. package/dist/editor/views/editorSlotContext.js +6 -35
  543. package/dist/editor/views/editorSlotContext.js.map +1 -1
  544. package/dist/index.d.ts +2 -16
  545. package/dist/index.js +0 -11
  546. package/dist/index.js.map +1 -1
  547. package/dist/revision.d.ts +2 -2
  548. package/dist/revision.js +2 -2
  549. package/dist/setup/services/setupWizardService.d.ts +13 -40
  550. package/dist/setup/services/setupWizardService.js +17 -32
  551. package/dist/setup/services/setupWizardService.js.map +1 -1
  552. package/dist/setup/wizard/steps/AddModelDialog.js +3 -12
  553. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
  554. package/dist/setup/wizard/steps/ImportModelDialog.js +22 -39
  555. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
  556. package/dist/splash-screen/ModernSplashScreen.js +32 -112
  557. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  558. package/dist/splash-screen/NewPage.js +50 -33
  559. package/dist/splash-screen/NewPage.js.map +1 -1
  560. package/dist/splash-screen/OpenPage.js +6 -2
  561. package/dist/splash-screen/OpenPage.js.map +1 -1
  562. package/dist/splash-screen/ParheliaAssistantChat.js +29 -12
  563. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  564. package/dist/splash-screen/ParheliaLogo.js +37 -87
  565. package/dist/splash-screen/ParheliaLogo.js.map +1 -1
  566. package/dist/splash-screen/RecentPages.js +3 -3
  567. package/dist/splash-screen/RecentPages.js.map +1 -1
  568. package/dist/tour/Tour.d.ts +1 -2
  569. package/dist/tour/Tour.js +75 -256
  570. package/dist/tour/Tour.js.map +1 -1
  571. package/dist/tour/default-tour.js +96 -222
  572. package/dist/tour/default-tour.js.map +1 -1
  573. package/dist/types.d.ts +29 -63
  574. package/package.json +15 -19
  575. package/styles.css +10 -14
@@ -0,0 +1,195 @@
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 { AlertCircle, CheckCircle, RefreshCw } from "lucide-react";
5
+ import { useEditContext } from "../../../client/editContext";
6
+ import { getChildren } from "../../../services/contentService";
7
+ import { findByName, resolvePathUnderContent } from "./utils";
8
+ // Sitecore IDs and constants used by AI models/providers
9
+ const AI_MODELS_CONTAINER_TEMPLATE_ID = "e5f6a7b8-9c0d-1e2f-3a4b-5c6d7e8f9a0b";
10
+ const AI_MODEL_TEMPLATE_ID = "d2e3f4a5-4b5c-5c6d-bf0b-3e4f5a6b7c8e";
11
+ const MODEL_NAME_FIELD_ID = "f1e2d3c4-5b6a-7980-8e9f-1a2b3c4d5e6f";
12
+ const MODEL_PROVIDER_FIELD_ID = "cbade708-ce95-4f54-81b7-308ea61a76a6";
13
+ const EDITOR_SETTINGS_EMBEDDINGS_MODEL_FIELD_ID = "08d0579d-3bf2-4777-981f-3f0856da948e"; // Embeddings Model (Droptree)
14
+ const DEFAULT_EMBEDDINGS_MODEL_NAME = "text-embedding-3-large";
15
+ export function EmbeddingsModelSection() {
16
+ const editContext = useEditContext();
17
+ const [state, setState] = React.useState("checking");
18
+ const [error, setError] = React.useState(null);
19
+ const [isBusy, setIsBusy] = React.useState(false);
20
+ const [currentModelName, setCurrentModelName] = React.useState(null);
21
+ const userLang = editContext?.item?.language || "en";
22
+ const statusIcon = React.useCallback((s) => {
23
+ if (s === "success")
24
+ return _jsx(CheckCircle, { className: "h-4 w-4 text-green-600", strokeWidth: 1 });
25
+ if (s === "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 checkStatus = React.useCallback(async () => {
30
+ try {
31
+ setState("checking");
32
+ setError(null);
33
+ setCurrentModelName(null);
34
+ const settingsItem = await resolvePathUnderContent(editContext?.sessionId, userLang, ["Settings", "Parhelia"]);
35
+ if (!settingsItem) {
36
+ setState("error");
37
+ setError("Parhelia settings item not found. Create it first.");
38
+ return;
39
+ }
40
+ // Read the Embeddings Model droptree field
41
+ const field = await editContext.itemsRepository.getField({
42
+ item: { id: settingsItem.id, language: userLang, version: 0 },
43
+ fieldId: EDITOR_SETTINGS_EMBEDDINGS_MODEL_FIELD_ID,
44
+ });
45
+ const raw = (field?.rawValue || "").trim();
46
+ if (!raw) {
47
+ setState("error");
48
+ return;
49
+ }
50
+ // Normalize ID braces and load the model item to get its display name
51
+ const modelId = raw.replace(/^[{(]+|[})]+$/g, "");
52
+ const model = await editContext.itemsRepository.getItem({
53
+ id: `{${modelId}}`,
54
+ language: userLang,
55
+ version: 0,
56
+ });
57
+ if (!model) {
58
+ setState("error");
59
+ setError("Embeddings Model points to a missing item. Please fix to re-create and assign.");
60
+ return;
61
+ }
62
+ setCurrentModelName(model.name);
63
+ setState("success");
64
+ }
65
+ catch (e) {
66
+ setState("error");
67
+ setError(e?.message || "Failed to check embeddings model");
68
+ }
69
+ }, [editContext, userLang]);
70
+ React.useEffect(() => {
71
+ checkStatus();
72
+ }, [checkStatus]);
73
+ const ensureEmbeddingsModel = React.useCallback(async () => {
74
+ if (!editContext)
75
+ return;
76
+ try {
77
+ setIsBusy(true);
78
+ setError(null);
79
+ const settingsItem = await resolvePathUnderContent(editContext.sessionId, userLang, ["Settings", "Parhelia"]);
80
+ if (!settingsItem)
81
+ throw new Error("Parhelia settings item not found. Create it first.");
82
+ // Load children under /Settings/Parhelia
83
+ const editorChildren = (await getChildren(settingsItem.id, editContext.sessionId, [], false, userLang, "path"));
84
+ // Find providers container and choose OpenAI or Azure OpenAI provider
85
+ const providersContainer = findByName(editorChildren, "Ai Providers");
86
+ if (!providersContainer) {
87
+ throw new Error("No AI providers found. Please add an OpenAI or Azure OpenAI provider first.");
88
+ }
89
+ const providerChildren = (await getChildren(providersContainer.id, editContext.sessionId, [], false, userLang, "path"));
90
+ const openAi = findByName(providerChildren, "OpenAI");
91
+ const azureOpenAi = findByName(providerChildren, "Azure OpenAI");
92
+ const selectedProvider = openAi || azureOpenAi;
93
+ if (!selectedProvider) {
94
+ throw new Error("No OpenAI or Azure OpenAI provider exists. Add one in 'Provider' section.");
95
+ }
96
+ // Ensure Ai Models container exists
97
+ let modelsContainer = findByName(editorChildren, "Ai Models");
98
+ if (!modelsContainer) {
99
+ const createdModels = await editContext.operations.createItem(settingsItem, AI_MODELS_CONTAINER_TEMPLATE_ID, "Ai Models");
100
+ if (!createdModels)
101
+ throw new Error("Failed to create 'Ai Models' container");
102
+ modelsContainer = {
103
+ id: createdModels.id,
104
+ name: "Ai Models",
105
+ displayName: "Ai Models",
106
+ thumbUrl: "",
107
+ previewUrl: "",
108
+ templateId: "",
109
+ icon: "",
110
+ hasChildren: false,
111
+ isComponent: false,
112
+ language: userLang,
113
+ version: 0,
114
+ hasLayout: false,
115
+ };
116
+ }
117
+ // Find or create the "text-embedding-3-large" model
118
+ const modelChildren = (await getChildren(modelsContainer.id, editContext.sessionId, [], false, userLang, "path"));
119
+ let modelNode = findByName(modelChildren, DEFAULT_EMBEDDINGS_MODEL_NAME);
120
+ let modelDescriptor = null;
121
+ if (modelNode) {
122
+ modelDescriptor = {
123
+ id: modelNode.id,
124
+ language: userLang,
125
+ version: 0,
126
+ };
127
+ }
128
+ else {
129
+ const createdModel = await editContext.operations.createItem({
130
+ id: modelsContainer.id,
131
+ language: userLang,
132
+ version: 0,
133
+ }, AI_MODEL_TEMPLATE_ID, DEFAULT_EMBEDDINGS_MODEL_NAME);
134
+ if (!createdModel)
135
+ throw new Error(`Failed to create model '${DEFAULT_EMBEDDINGS_MODEL_NAME}'`);
136
+ modelDescriptor = createdModel;
137
+ // Set Model Name field
138
+ await editContext.operations.editField({
139
+ field: {
140
+ fieldId: MODEL_NAME_FIELD_ID,
141
+ item: {
142
+ id: modelDescriptor.id,
143
+ language: userLang,
144
+ version: 0,
145
+ },
146
+ },
147
+ value: DEFAULT_EMBEDDINGS_MODEL_NAME,
148
+ rawValue: DEFAULT_EMBEDDINGS_MODEL_NAME,
149
+ refresh: "delayed",
150
+ });
151
+ }
152
+ // Link model to the selected provider
153
+ const providerGuid = `{${selectedProvider.id
154
+ .replace(/[{}()]/g, "")
155
+ .toUpperCase()}}`;
156
+ await editContext.operations.editField({
157
+ field: {
158
+ fieldId: MODEL_PROVIDER_FIELD_ID,
159
+ item: { id: modelDescriptor.id, language: userLang, version: 0 },
160
+ },
161
+ rawValue: providerGuid,
162
+ refresh: "delayed",
163
+ });
164
+ // Assign model to Parhelia settings' Embeddings Model field
165
+ const modelGuid = `{${modelDescriptor.id
166
+ .replace(/[{}()]/g, "")
167
+ .toUpperCase()}}`;
168
+ await editContext.operations.editField({
169
+ field: {
170
+ fieldId: EDITOR_SETTINGS_EMBEDDINGS_MODEL_FIELD_ID,
171
+ item: { id: settingsItem.id, language: userLang, version: 0 },
172
+ },
173
+ rawValue: modelGuid,
174
+ refresh: "immediate",
175
+ });
176
+ editContext.requestRefresh?.("immediate");
177
+ editContext.showToast?.(`Embeddings model set to '${DEFAULT_EMBEDDINGS_MODEL_NAME}'`);
178
+ await checkStatus();
179
+ }
180
+ catch (e) {
181
+ setError(e?.message || "Failed to ensure embeddings model");
182
+ setState("error");
183
+ }
184
+ finally {
185
+ setIsBusy(false);
186
+ }
187
+ }, [editContext, userLang, checkStatus]);
188
+ return (_jsxs("div", { className: "mt-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [statusIcon(state), _jsx("span", { className: "text-sm text-gray-700", children: state === "success"
189
+ ? `Embeddings model: ${currentModelName}`
190
+ : state === "error"
191
+ ? "Embeddings model not assigned"
192
+ : "Checking embeddings model..." })] }), state !== "success" && (_jsxs(Button, { size: "sm", onClick: ensureEmbeddingsModel, disabled: isBusy, children: [isBusy ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-4 w-4 animate-spin" })) : (_jsx(CheckCircle, { strokeWidth: 1, className: "h-4 w-4" })), "Fix"] }))] }), error && (_jsx("div", { className: "mt-2 rounded border border-yellow-200 bg-yellow-50 p-2 text-xs whitespace-pre-wrap text-yellow-800", children: error }))] }));
193
+ }
194
+ export default EmbeddingsModelSection;
195
+ //# sourceMappingURL=EmbeddingsModelSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingsModelSection.js","sourceRoot":"","sources":["../../../../../src/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function AiSetupStep(): import("react/jsx-runtime").JSX.Element;
2
+ export default AiSetupStep;
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { Card } from "../../../../components/ui/card";
4
+ import { useEditContext } from "../../../client/editContext";
5
+ import { SparklesIcon } from "lucide-react";
6
+ import { RequiredContainersSection } from "./required-containers/RequiredContainersSection";
7
+ import { ProviderSection } from "./provider/ProviderSection";
8
+ export function AiSetupStep() {
9
+ const editContext = useEditContext();
10
+ const [aiState, setAiState] = useState("idle");
11
+ const userLang = editContext?.item?.language || "en";
12
+ // IDs for tool templates/fields
13
+ const AI_TOOLS_TEMPLATE_ID = "7e3f9d9d-8e84-4e57-b12e-6e9c99d4fd11"; // container
14
+ const AI_TOOL_TEMPLATE_ID = "a2e8a0d9-7b1f-4d1a-a2d8-8f3ea6d6f0b1"; // item template
15
+ const FIELD_FUNCTION_NAME_ID = "3d9f2b1a-9d44-4d26-8a1b-92f0fb4d3a2c";
16
+ const FIELD_LABEL_ID = "5a19f5a5-1d21-4b6a-9f83-6f3fc0b34b2e";
17
+ const FIELD_DESCRIPTION_ID = "6b2e4b8e-8a9f-4d8f-9f6e-1a2b3c4d5e6f";
18
+ return (_jsxs(Card, { className: "w-full", icon: _jsx(SparklesIcon, { strokeWidth: 1, className: "h-5 w-5" }), title: "AI setup", description: "Add an AI provider (OpenAI, Azure OpenAI, or OpenRouter).", children: [_jsx(RequiredContainersSection, {}), _jsx(ProviderSection, {})] }));
19
+ }
20
+ export default AiSetupStep;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/editor/settings/setup-steps/AiSetupStep/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,MAAM,UAAU,WAAW;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAY,MAAM,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,WAAW,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IAErD,gCAAgC;IAChC,MAAM,oBAAoB,GAAG,sCAAsC,CAAC,CAAC,YAAY;IACjF,MAAM,mBAAmB,GAAG,sCAAsC,CAAC,CAAC,gBAAgB;IACpF,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;IACtE,MAAM,cAAc,GAAG,sCAAsC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;IAEpE,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAE,KAAC,YAAY,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,EAC1D,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,2DAA2D,aAEvE,KAAC,yBAAyB,KAAG,EAE7B,KAAC,eAAe,KAAG,IACd,CACR,CAAC;AACJ,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function ProviderSection(): import("react/jsx-runtime").JSX.Element;
@@ -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?.item?.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", name: "ai-provider-api-key", autoComplete: "new-password", autoCapitalize: "none", spellCheck: false, 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":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAO/D,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAS,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAClE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACxD,IAAI,CACL,CAAC;IACF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAU,KAAK,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,WAAW,EAAE,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC;IACrD,MAAM,SAAS,GAAG,WAAW,EAAE,SAAS,CAAC;IAEzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAC7B,GAAG,EAAE,CAAC;QACJ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;QACpC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;QAChD,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;KAC7C,EACD,EAAE,CACH,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,KAAK,EAAE,OAA6B,EAAE,EAAE;QACtC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,eAAe,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBACpB,IAAI,YAAY,CAAC,OAAO;oBAAE,OAAO;gBACjC,IAAI,GAAG,GAAG,aAAa,CAAC,OAAO,GAAG,eAAe;oBAAE,OAAO;YAC5D,CAAC;YACD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,aAAa,CAAC,OAAO,GAAG,GAAG,CAAC;YAC5B,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAExB,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAChD,SAAS,EACT,QAAQ,EACR,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CACjC,YAAY,CAAC,EAAE,EACf,SAAU,EACV,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;YACpC,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,MAAM,gBAAgB,GAAG,CAAC,MAAM,WAAW,CACzC,iBAAiB,CAAC,EAAE,EACpB,SAAU,EACV,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;YACpC,YAAY,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,iBAAiB,CAAC,CAAC,EAAE,OAAO,IAAI,6BAA6B,CAAC,CAAC;QACjE,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;YAC7B,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,EACD,CAAC,SAAS,EAAE,QAAQ,CAAC,CACtB,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE;QACpD,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW;YAAE,OAAO;QACxC,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAChD,WAAW,CAAC,SAAS,EACrB,QAAQ,EACR,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAC;YACF,IAAI,CAAC,YAAY;gBACf,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAEtE,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CACjC,YAAY,CAAC,EAAE,EACf,WAAW,CAAC,SAAU,EACtB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;YACpC,IAAI,iBAAiB,GAAG,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;gBACrE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAC9D,YAAY,EACZ,qBAAqB,EACrB,cAAc,CACf,CAAC;gBACF,IAAI,CAAC,gBAAgB;oBACnB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,iBAAiB,GAAG;oBAClB,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,EAAE;oBACd,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,KAAK;oBAClB,WAAW,EAAE,KAAK;oBAClB,WAAW,EAAE,cAAc;oBAC3B,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC;oBACV,SAAS,EAAE,KAAK;iBACc,CAAC;YACnC,CAAC;YAED,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;YAClE,MAAM,YAAY,GAChB,UAAU,KAAK,QAAQ;gBACrB,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,UAAU,KAAK,cAAc;oBAC7B,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,aAAa,CAAC;YAEtB,0BAA0B;YAC1B,IAAI,YAAY,GAA0B,IAAI,CAAC;YAC/C,MAAM,gBAAgB,GAAG,CAAC,MAAM,WAAW,CACzC,iBAAkB,CAAC,EAAE,EACrB,WAAW,CAAC,SAAU,EACtB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;YACpC,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,YAAY,GAAG;oBACb,EAAE,EAAE,gBAAgB,CAAC,EAAE;oBACvB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC;iBACO,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CACrD;oBACE,EAAE,EAAE,iBAAkB,CAAC,EAAE;oBACzB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC;iBACO,EACnB,kBAAkB,EAClB,YAAY,CACb,CAAC;gBACF,IAAI,CAAC,OAAO;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC9D,YAAY,GAAG,OAAO,CAAC;YACzB,CAAC;YAED,0BAA0B;YAC1B,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;gBAC3B,MAAM,aAAa,GAAG,sCAAsC,CAAC;gBAC7D,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;oBACrC,KAAK,EAAE;wBACL,OAAO,EAAE,aAAa;wBACtB,IAAI,EAAE;4BACJ,EAAE,EAAE,YAAY,CAAC,EAAE;4BACnB,QAAQ,EAAE,QAAQ;4BAClB,OAAO,EAAE,CAAC;yBACX;qBACF;oBACD,KAAK,EAAE,MAAM;oBACb,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,SAAS;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,oCAAoC;YACpC,IAAI,cAAc,GAAG,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,kBAAkB,GAAG,sCAAsC,CAAC;gBAClE,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAC3D,YAAY,EACZ,kBAAkB,EAClB,WAAW,CACZ,CAAC;gBACF,IAAI,CAAC,aAAa;oBAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC5D,cAAc,GAAG;oBACf,EAAE,EAAE,aAAa,CAAC,EAAE;oBACpB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,EAAE;oBACZ,UAAU,EAAE,EAAE;oBACd,UAAU,EAAE,EAAE;oBACd,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,KAAK;oBAClB,WAAW,EAAE,KAAK;oBAClB,WAAW,EAAE,WAAW;oBACxB,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,CAAC;oBACV,SAAS,EAAE,KAAK;iBACc,CAAC;YACnC,CAAC;YAED,wDAAwD;YACxD,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,sCAAsC,CAAC;YAC/D,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;YAChE,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;YAEpE,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CACtC,cAAc,CAAC,EAAE,EACjB,WAAW,CAAC,SAAU,EACtB,EAAE,EACF,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAkC,CAAC;YAEpC,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;gBACvC,IAAI,SAAS,GAAG,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBACrD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAC1D;wBACE,EAAE,EAAE,cAAc,CAAC,EAAE;wBACrB,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,CAAC;qBACO,EACnB,eAAe,EACf,SAAS,CACV,CAAC;oBACF,IAAI,CAAC,YAAY;wBACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,GAAG,CAAC,CAAC;oBAC3D,SAAS,GAAG;wBACV,EAAE,EAAE,YAAY,CAAC,EAAE;wBACnB,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,SAAS;wBACtB,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,EAAE;wBACd,UAAU,EAAE,EAAE;wBACd,IAAI,EAAE,EAAE;wBACR,WAAW,EAAE,KAAK;wBAClB,WAAW,EAAE,KAAK;wBAClB,QAAQ,EAAE,QAAQ;wBAClB,OAAO,EAAE,CAAC;wBACV,SAAS,EAAE,KAAK;qBACc,CAAC;oBAEjC,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;wBACrC,KAAK,EAAE;4BACL,OAAO,EAAE,gBAAgB;4BACzB,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;yBAC3D;wBACD,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;oBAEH,MAAM,YAAY,GAAG,IAAK,YAAa,CAAC,EAAa;yBAClD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;yBACtB,WAAW,EAAE,GAAG,CAAC;oBACpB,MAAM,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;wBACrC,KAAK,EAAE;4BACL,OAAO,EAAE,oBAAoB;4BAC7B,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;yBAC3D;wBACD,QAAQ,EAAE,YAAY;wBACtB,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,WAAW,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,CAAC;YAC1C,WAAW,CAAC,SAAS,EAAE,CACrB,UAAU,YAAY,4BAA4B,CACnD,CAAC;YACF,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,SAAS,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,UAAU,CAAC,CAAC,EAAE,OAAO,IAAI,2BAA2B,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAE/D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,CACL,8BACE,cAAK,SAAS,EAAC,yCAAyC,YACtD,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,wBAAwB,GAAG,EAClE,eAAM,SAAS,EAAC,uBAAuB,iDAEhC,IACH,GACF,EACN,eAAK,SAAS,EAAC,MAAM,aACnB,eAAK,SAAS,EAAC,yCAAyC,aACtD,eAAM,SAAS,EAAC,uBAAuB,mCAA0B,EACjE,MAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,aAE5C,gBAAgB,CAAC,CAAC,CAAC,CAClB,KAAC,SAAS,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,sBAAsB,GAAG,CAC/D,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,CAClD,eAEM,IACL,EACN,eAAK,SAAS,EAAC,MAAM,aAClB,cAAc,IAAI,CACjB,cAAK,SAAS,EAAC,sFAAsF,YAClG,cAAc,GACX,CACP,EACA,CAAC,cAAc,IAAI,CAClB,4BACG,gBAAgB,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,+CAA+C,aAC5D,KAAC,SAAS,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,sBAAsB,GAAG,+BAE1D,CACP,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,aAAI,SAAS,EAAC,sCAAsC,YACjD,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACrB,uBAAiB,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,IAAjC,EAAE,CAAC,EAAE,CAAkC,CACjD,CAAC,GACC,CACN,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,uBAAuB,uCAEhC,CACP,GACA,CACJ,IACG,IACF,EACN,eAAK,SAAS,EAAC,wCAAwC,aACrD,KAAC,MAAM,IACL,KAAK,EAAE,UAAU,EACjB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,SAAS,EAClB,WAAW,EAAC,iBAAiB,GAC7B,EACD,UAAU,IAAI,CACb,KAAC,KAAK,IACJ,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,qBAAqB,EAC1B,YAAY,EAAC,cAAc,EAC3B,cAAc,EAAC,MAAM,EACrB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAC,SAAS,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC1C,CACH,EACD,MAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,QAAQ,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,MAAM,EAC1C,OAAO,EAAE,gBAAgB,aAExB,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,SAAS,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,sBAAsB,GAAG,CAC/D,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,SAAS,GAAG,CACpD,oBAEM,IACL,EACL,OAAO,IAAI,CACV,cAAK,SAAS,EAAC,2FAA2F,YACvG,OAAO,GACJ,CACP,IACA,CACJ,CAAC;AACJ,CAAC"}
@@ -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 {};
@@ -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?.item?.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