@parhelia/core 0.1.12789 → 0.1.12790

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 (311) hide show
  1. package/dist/agents-view/AgentCard.js +2 -5
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentsTitlebar.js +1 -2
  4. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  5. package/dist/agents-view/AgentsView.js +53 -7
  6. package/dist/agents-view/AgentsView.js.map +1 -1
  7. package/dist/agents-view/AgentsWorkspaceView.d.ts +1 -1
  8. package/dist/agents-view/AgentsWorkspaceView.js +4 -9
  9. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  10. package/dist/agents-view/DateAgentsGroup.d.ts +17 -0
  11. package/dist/agents-view/DateAgentsGroup.js +8 -0
  12. package/dist/agents-view/DateAgentsGroup.js.map +1 -0
  13. package/dist/components/ui/LanguageSelector.d.ts +3 -1
  14. package/dist/components/ui/LanguageSelector.js +8 -4
  15. package/dist/components/ui/LanguageSelector.js.map +1 -1
  16. package/dist/components/ui/UserPicker.d.ts +34 -0
  17. package/dist/components/ui/UserPicker.js +73 -0
  18. package/dist/components/ui/UserPicker.js.map +1 -0
  19. package/dist/components/ui/copy-button.js +2 -1
  20. package/dist/components/ui/copy-button.js.map +1 -1
  21. package/dist/components/ui/popover.js +22 -4
  22. package/dist/components/ui/popover.js.map +1 -1
  23. package/dist/components/ui/select.js +1 -2
  24. package/dist/components/ui/select.js.map +1 -1
  25. package/dist/config/config.js +15 -2
  26. package/dist/config/config.js.map +1 -1
  27. package/dist/editor/ContentTree.d.ts +14 -1
  28. package/dist/editor/ContentTree.js +69 -19
  29. package/dist/editor/ContentTree.js.map +1 -1
  30. package/dist/editor/Editor.js +5 -8
  31. package/dist/editor/Editor.js.map +1 -1
  32. package/dist/editor/EditorLoadingOverlay.d.ts +1 -0
  33. package/dist/editor/EditorLoadingOverlay.js +7 -0
  34. package/dist/editor/EditorLoadingOverlay.js.map +1 -0
  35. package/dist/editor/FieldActionsOverlay.js +31 -4
  36. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  37. package/dist/editor/FieldListField.js +6 -1
  38. package/dist/editor/FieldListField.js.map +1 -1
  39. package/dist/editor/ai/AgentSharingSection.js +15 -2
  40. package/dist/editor/ai/AgentSharingSection.js.map +1 -1
  41. package/dist/editor/ai/InlineAiTrigger.js +4 -0
  42. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  43. package/dist/editor/ai/agentTodoExtraction.d.ts +7 -1
  44. package/dist/editor/ai/agentTodoExtraction.js +33 -0
  45. package/dist/editor/ai/agentTodoExtraction.js.map +1 -1
  46. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +13 -0
  47. package/dist/editor/ai/terminal/components/AgentDocumentList.js +61 -46
  48. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
  49. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.d.ts +4 -3
  50. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js +6 -9
  51. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js.map +1 -1
  52. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +10 -2
  53. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +42 -9
  54. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  55. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +19 -0
  56. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +71 -0
  57. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -0
  58. package/dist/editor/ai/terminal/components/AgentSettingsContent.d.ts +4 -3
  59. package/dist/editor/ai/terminal/components/AgentSettingsContent.js +2 -2
  60. package/dist/editor/ai/terminal/components/AgentSettingsContent.js.map +1 -1
  61. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +2 -0
  62. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
  63. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.js +4 -2
  64. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.js.map +1 -1
  65. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +3 -1
  66. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +2 -2
  67. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  68. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.d.ts +1 -1
  69. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.js +2 -2
  70. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.js.map +1 -1
  71. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.d.ts +2 -1
  72. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +2 -2
  73. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
  74. package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +2 -1
  75. package/dist/editor/ai/terminal/components/AgentTerminalView.js +7 -2
  76. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  77. package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +3 -1
  78. package/dist/editor/ai/terminal/components/ContextInfoBar.js +12 -3
  79. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  80. package/dist/editor/ai/terminal/components/EditOperationsPanel.d.ts +3 -1
  81. package/dist/editor/ai/terminal/components/EditOperationsPanel.js +13 -2
  82. package/dist/editor/ai/terminal/components/EditOperationsPanel.js.map +1 -1
  83. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.d.ts +2 -1
  84. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.js +18 -14
  85. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.js.map +1 -1
  86. package/dist/editor/ai/terminal/components/TodoListPanel.d.ts +2 -1
  87. package/dist/editor/ai/terminal/components/TodoListPanel.js +10 -6
  88. package/dist/editor/ai/terminal/components/TodoListPanel.js.map +1 -1
  89. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +3 -2
  90. package/dist/editor/ai/terminal/useAgentSettingsNavigation.d.ts +3 -2
  91. package/dist/editor/ai/terminal/useAgentSettingsNavigation.js +3 -21
  92. package/dist/editor/ai/terminal/useAgentSettingsNavigation.js.map +1 -1
  93. package/dist/editor/ai/terminal/useAgentSettingsPanel.d.ts +3 -2
  94. package/dist/editor/ai/terminal/useAgentSettingsPanel.js +1 -2
  95. package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
  96. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +2 -2
  97. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
  98. package/dist/editor/ai/terminal/useAgentStatusBarContent.js +1 -1
  99. package/dist/editor/ai/terminal/useAgentStatusBarContent.js.map +1 -1
  100. package/dist/editor/ai/terminal/useAgentTerminalActions.d.ts +6 -5
  101. package/dist/editor/ai/terminal/useAgentTerminalActions.js +3 -10
  102. package/dist/editor/ai/terminal/useAgentTerminalActions.js.map +1 -1
  103. package/dist/editor/ai/terminal/useAgentTerminalController.js +13 -5
  104. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  105. package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +1 -0
  106. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +2 -1
  107. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -1
  108. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.d.ts +25 -0
  109. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js +187 -0
  110. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js.map +1 -0
  111. package/dist/editor/client/AboutDialog.js +2 -1
  112. package/dist/editor/client/AboutDialog.js.map +1 -1
  113. package/dist/editor/client/EditorShell.js +118 -30
  114. package/dist/editor/client/EditorShell.js.map +1 -1
  115. package/dist/editor/client/editContext.d.ts +4 -1
  116. package/dist/editor/client/editContext.js.map +1 -1
  117. package/dist/editor/client/fieldModificationStore.d.ts +5 -2
  118. package/dist/editor/client/fieldModificationStore.js +31 -21
  119. package/dist/editor/client/fieldModificationStore.js.map +1 -1
  120. package/dist/editor/client/hooks/useEditorWebSocket.js +0 -47
  121. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  122. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +1 -0
  123. package/dist/editor/client/hooks/useSocketMessageHandler.js +47 -49
  124. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  125. package/dist/editor/client/itemsRepository.d.ts +8 -5
  126. package/dist/editor/client/itemsRepository.js +30 -37
  127. package/dist/editor/client/itemsRepository.js.map +1 -1
  128. package/dist/editor/client/operations.d.ts +8 -1
  129. package/dist/editor/client/operations.js +29 -9
  130. package/dist/editor/client/operations.js.map +1 -1
  131. package/dist/editor/client/ui/EditorChrome.js +7 -1
  132. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  133. package/dist/editor/commands/createVersionCommand.js +8 -2
  134. package/dist/editor/commands/createVersionCommand.js.map +1 -1
  135. package/dist/editor/field-types/DropLinkEditor.js +4 -1
  136. package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
  137. package/dist/editor/field-types/MultiLineText.js +3 -1
  138. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  139. package/dist/editor/field-types/NameValueListEditor.js +4 -1
  140. package/dist/editor/field-types/NameValueListEditor.js.map +1 -1
  141. package/dist/editor/field-types/PictureFieldEditor.js +8 -4
  142. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
  143. package/dist/editor/field-types/RichTextEditorComponent.js +6 -2
  144. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  145. package/dist/editor/field-types/SingleLineText.js +3 -1
  146. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  147. package/dist/editor/field-types/TreeListEditor.js +6 -1
  148. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  149. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
  150. package/dist/editor/field-types/richtext/contextMenuFactory.js +7 -5
  151. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  152. package/dist/editor/hooks/useNavigationPanelLogic.d.ts +3 -3
  153. package/dist/editor/hooks/useNavigationPanelLogic.js +5 -5
  154. package/dist/editor/hooks/useNavigationPanelLogic.js.map +1 -1
  155. package/dist/editor/menubar/ItemLanguageVersion.d.ts +4 -1
  156. package/dist/editor/menubar/ItemLanguageVersion.js +11 -3
  157. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  158. package/dist/editor/menubar/VersionPreviewCard.js +26 -6
  159. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  160. package/dist/editor/menubar/VersionSelector.js +17 -6
  161. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  162. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.d.ts +7 -0
  163. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +37 -0
  164. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -0
  165. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +2 -2
  166. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  167. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +7 -11
  168. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  169. package/dist/editor/menubar/toolbar-sections/index.d.ts +1 -0
  170. package/dist/editor/menubar/toolbar-sections/index.js +1 -0
  171. package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
  172. package/dist/editor/notifications/useNotifications.js +11 -4
  173. package/dist/editor/notifications/useNotifications.js.map +1 -1
  174. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +3 -1
  175. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  176. package/dist/editor/page-editor-chrome/FrameMenu.d.ts +4 -2
  177. package/dist/editor/page-editor-chrome/FrameMenu.js +33 -9
  178. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  179. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +4 -2
  180. package/dist/editor/page-editor-chrome/InlineEditor.js +125 -20
  181. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  182. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +4 -2
  183. package/dist/editor/page-editor-chrome/PageEditorChrome.js +16 -3
  184. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  185. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +36 -13
  186. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  187. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +24 -4
  188. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  189. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +52 -22
  190. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  191. package/dist/editor/page-viewer/MiniMap.js +29 -21
  192. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  193. package/dist/editor/page-viewer/PageViewer.d.ts +4 -2
  194. package/dist/editor/page-viewer/PageViewer.js +14 -6
  195. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  196. package/dist/editor/page-viewer/PageViewerFrame.d.ts +4 -2
  197. package/dist/editor/page-viewer/PageViewerFrame.js +171 -52
  198. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  199. package/dist/editor/reviews/Comment.js +24 -0
  200. package/dist/editor/reviews/Comment.js.map +1 -1
  201. package/dist/editor/services/agentService.d.ts +1 -1
  202. package/dist/editor/services/agentService.js +2 -3
  203. package/dist/editor/services/agentService.js.map +1 -1
  204. package/dist/editor/services/aiService.d.ts +0 -36
  205. package/dist/editor/services/aiService.js +7 -64
  206. package/dist/editor/services/aiService.js.map +1 -1
  207. package/dist/editor/services/manualService.d.ts +31 -0
  208. package/dist/editor/services/manualService.js +77 -0
  209. package/dist/editor/services/manualService.js.map +1 -0
  210. package/dist/editor/services/serviceHelper.js +0 -14
  211. package/dist/editor/services/serviceHelper.js.map +1 -1
  212. package/dist/editor/services/systemService.d.ts +4 -0
  213. package/dist/editor/services/systemService.js +3 -0
  214. package/dist/editor/services/systemService.js.map +1 -1
  215. package/dist/editor/services/userService.d.ts +6 -0
  216. package/dist/editor/services/userService.js +13 -0
  217. package/dist/editor/services/userService.js.map +1 -0
  218. package/dist/editor/settings/About.js +178 -1
  219. package/dist/editor/settings/About.js.map +1 -1
  220. package/dist/editor/settings/QuotaInfo.js +7 -7
  221. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  222. package/dist/editor/settings/QuotaUserPicker.js +15 -55
  223. package/dist/editor/settings/QuotaUserPicker.js.map +1 -1
  224. package/dist/editor/settings/panels/AgentProfileConfigPanel.d.ts +2 -1
  225. package/dist/editor/settings/panels/AgentProfileConfigPanel.js +4 -2
  226. package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
  227. package/dist/editor/settings/panels/AgentProfileEditorPanel.d.ts +1 -0
  228. package/dist/editor/settings/panels/AgentProfileEditorPanel.js +1 -1
  229. package/dist/editor/settings/panels/AgentProfileEditorPanel.js.map +1 -1
  230. package/dist/editor/settings/panels/AgentsPanel.js +15 -10
  231. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  232. package/dist/editor/settings/panels/ClusterInstancesPanel.js +37 -10
  233. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  234. package/dist/editor/settings/panels/CreateMcpServerDialog.d.ts +7 -0
  235. package/dist/editor/settings/panels/CreateMcpServerDialog.js +71 -0
  236. package/dist/editor/settings/panels/CreateMcpServerDialog.js.map +1 -0
  237. package/dist/editor/settings/panels/JavaScriptToolsPanel.js +13 -17
  238. package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
  239. package/dist/editor/settings/panels/McpToolsPanel.js +17 -8
  240. package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
  241. package/dist/editor/settings/panels/ModelsPanel.js +92 -56
  242. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  243. package/dist/editor/settings/panels/ProvidersPanel.js +46 -47
  244. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  245. package/dist/editor/settings/panels/SearchConfigPanel.js +2 -2
  246. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  247. package/dist/editor/settings/panels/UserPreferencesPanel.d.ts +2 -0
  248. package/dist/editor/settings/panels/UserPreferencesPanel.js +17 -0
  249. package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -0
  250. package/dist/editor/settings/panels/index.d.ts +1 -0
  251. package/dist/editor/settings/panels/index.js +1 -0
  252. package/dist/editor/settings/panels/index.js.map +1 -1
  253. package/dist/editor/sidebar/EditHistory.js +18 -3
  254. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  255. package/dist/editor/sidebar/LabelButton.d.ts +3 -3
  256. package/dist/editor/sidebar/LabelButton.js +4 -4
  257. package/dist/editor/sidebar/LabelButton.js.map +1 -1
  258. package/dist/editor/sidebar/MobileWorkspacePopover.d.ts +2 -2
  259. package/dist/editor/sidebar/MobileWorkspacePopover.js +2 -2
  260. package/dist/editor/sidebar/MobileWorkspacePopover.js.map +1 -1
  261. package/dist/editor/sidebar/NavigationPanelItem.js +3 -3
  262. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  263. package/dist/editor/sidebar/WorkspaceButton.d.ts +3 -1
  264. package/dist/editor/sidebar/WorkspaceButton.js +15 -7
  265. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
  266. package/dist/editor/sidebar/WorkspaceRail.js +6 -5
  267. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  268. package/dist/editor/sidebar/WorkspaceRailMobile.js +2 -2
  269. package/dist/editor/sidebar/WorkspaceRailMobile.js.map +1 -1
  270. package/dist/editor/ui/ItemCollectionEditor.d.ts +27 -3
  271. package/dist/editor/ui/ItemCollectionEditor.js +44 -5
  272. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  273. package/dist/editor/ui/PerfectTree.js +1 -1
  274. package/dist/editor/ui/PerfectTree.js.map +1 -1
  275. package/dist/editor/utils.js +33 -11
  276. package/dist/editor/utils.js.map +1 -1
  277. package/dist/editor/version-diff/versionDiffTargets.js +7 -1
  278. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  279. package/dist/editor/views/EditorSlot.js +3 -2
  280. package/dist/editor/views/EditorSlot.js.map +1 -1
  281. package/dist/editor/views/ItemEditorPane.d.ts +11 -0
  282. package/dist/editor/views/ItemEditorPane.js +19 -0
  283. package/dist/editor/views/ItemEditorPane.js.map +1 -0
  284. package/dist/editor/views/editorSlotContext.d.ts +2 -0
  285. package/dist/editor/views/editorSlotContext.js +3 -0
  286. package/dist/editor/views/editorSlotContext.js.map +1 -1
  287. package/dist/index.d.ts +7 -0
  288. package/dist/index.js +4 -0
  289. package/dist/index.js.map +1 -1
  290. package/dist/revision.d.ts +2 -2
  291. package/dist/revision.js +2 -2
  292. package/dist/setup/services/setupWizardService.d.ts +10 -0
  293. package/dist/setup/services/setupWizardService.js +7 -0
  294. package/dist/setup/services/setupWizardService.js.map +1 -1
  295. package/dist/task-board/TaskBoardWorkspace.js +1 -0
  296. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  297. package/dist/task-board/components/ProjectExecutionUserPicker.js +15 -61
  298. package/dist/task-board/components/ProjectExecutionUserPicker.js.map +1 -1
  299. package/dist/task-board/components/ProjectListContent.d.ts +1 -0
  300. package/dist/task-board/components/ProjectListContent.js.map +1 -1
  301. package/dist/task-board/components/ProjectSelector.d.ts +1 -0
  302. package/dist/task-board/components/ProjectSelector.js +7 -1
  303. package/dist/task-board/components/ProjectSelector.js.map +1 -1
  304. package/dist/task-board/taskBoardNavStore.d.ts +1 -0
  305. package/dist/task-board/taskBoardNavStore.js +1 -0
  306. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  307. package/dist/types.d.ts +2 -1
  308. package/package.json +1 -1
  309. package/dist/editor/debugSessionLog.d.ts +0 -9
  310. package/dist/editor/debugSessionLog.js +0 -19
  311. package/dist/editor/debugSessionLog.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
3
- import { FileCode2, Plus, RefreshCw, Search, ShieldAlert, Trash2 } from "lucide-react";
3
+ import { FileCode2, Plus, RefreshCw, ShieldAlert, Trash2 } from "lucide-react";
4
4
  import { toast } from "sonner";
5
5
  import { Button } from "../../../components/ui/button";
6
- import { Input } from "../../../components/ui/input";
6
+ import { FilterInput } from "../../../components/FilterInput";
7
7
  import { cn } from "../../../lib/utils";
8
8
  import { useEditContext } from "../../client/editContext";
9
9
  import { Splitter } from "../../ui/Splitter";
@@ -230,20 +230,16 @@ export function JavaScriptToolsPanel() {
230
230
  await loadTools(toolId);
231
231
  toast.success("JavaScript tool created");
232
232
  }, [loadTools]);
233
- const toolsListContent = (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsxs("div", { className: "flex min-h-[320px] flex-col overflow-hidden rounded-lg border border-gray-200 bg-white xl:min-h-0", children: [_jsxs("div", { className: "space-y-4 border-b border-gray-100 px-4 py-4", children: [_jsx("div", { className: "flex items-center justify-end gap-3", children: _jsxs("div", { className: "flex items-center gap-1", children: [_jsxs(Button, { size: "sm", onClick: () => setShowCreateDialog(true), disabled: state === "loading", children: [_jsx(Plus, { className: "h-4 w-4", strokeWidth: 1.5 }), "Add"] }), _jsx(Button, { size: "sm", variant: "ghost", onClick: () => void loadTools(selectedToolIdRef.current), disabled: state === "loading", children: _jsx(RefreshCw, { className: cn("h-4 w-4", state === "loading" && "animate-spin"), strokeWidth: 1.5 }) })] }) }), _jsxs("div", { className: "rounded border border-blue-200 bg-blue-50 px-3 py-2 text-xs text-blue-900", children: ["Custom JavaScript tools are stored under", _jsx("code", { className: "mx-1 rounded bg-blue-100 px-1 py-0.5 text-[11px]", children: "/sitecore/system/Parhelia/Settings/Ai Tools/Scripts" }), "and can be assigned like any other tool."] }), _jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400", strokeWidth: 1.5 }), _jsx(Input, { type: "text", placeholder: "Search JavaScript tools...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), className: "pl-9" })] }), error ? (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: error })) : null] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: filteredTools.length === 0 ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center px-6 py-12 text-center", children: [_jsx(FileCode2, { className: "mb-4 h-10 w-10 text-gray-300", strokeWidth: 1.25 }), _jsx("p", { className: "text-sm font-medium text-gray-600", children: tools.length === 0
234
- ? "No JavaScript tools yet"
235
- : "No matching JavaScript tools" }), _jsx("p", { className: "mt-1 text-xs text-gray-500", children: tools.length === 0
236
- ? "Create a custom JavaScript tool to expose a hidden script behind a normal tool signature."
237
- : "Try a different search term." })] })) : (_jsx("div", { className: "space-y-3 p-3", children: filteredTools.map((tool) => {
238
- const isSelected = tool.id === selectedToolId;
239
- return (_jsxs("button", { type: "button", onClick: () => setSelectedToolId(tool.id), className: cn("w-full rounded-lg border p-4 text-left transition-shadow hover:shadow-sm", isSelected
240
- ? "border-blue-400 bg-blue-50"
241
- : "border-gray-200 bg-white"), children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-medium text-gray-900", children: tool.name }), _jsx("div", { className: cn("truncate text-[11px]", isSelected ? "text-blue-700" : "text-gray-500"), children: tool.path })] }), tool.needsConfiguration ? (_jsx("span", { className: cn("shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium", isSelected
242
- ? "bg-blue-100 text-blue-800"
243
- : "bg-amber-100 text-amber-800"), children: "Needs setup" })) : null] }), tool.description ? (_jsx("p", { className: cn("line-clamp-2 text-xs", isSelected ? "text-blue-900" : "text-gray-600"), children: tool.description })) : (_jsx("p", { className: cn("text-xs italic", isSelected ? "text-blue-700" : "text-gray-500"), children: "No description yet" }))] }, tool.id));
244
- }) })) })] }) }));
245
- const detailsContent = (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsx("div", { className: "flex min-h-[360px] flex-col overflow-hidden rounded-lg border border-gray-200 bg-white xl:min-h-0", children: selectedTool ? (_jsx("div", { className: "min-h-0 flex-1", children: _jsx(JavaScriptToolConfigPanel, { itemId: selectedTool.id, title: selectedTool.name, actions: _jsxs(Button, { variant: "outline", size: "sm", onClick: () => void handleDeleteSelectedTool(), disabled: deleting, title: "Delete selected JavaScript tool", children: [deleting ? (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1.5 })) : (_jsx(Trash2, { className: "h-4 w-4", strokeWidth: 1.5 })), "Delete Tool"] }) }) })) : (_jsxs("div", { className: "flex h-full min-h-[360px] flex-col items-center justify-center gap-3 p-8 text-center xl:min-h-0", children: [_jsx(FileCode2, { className: "h-10 w-10 text-gray-300", strokeWidth: 1.25 }), _jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-sm font-medium text-gray-700", children: "Select a JavaScript tool" }), _jsx("div", { className: "text-xs text-gray-500", children: "Choose a tool from the list to edit its schema, script, and approval logic." })] })] })) }) }));
246
- const agentContent = selectedTool ? (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsx("div", { className: "flex min-h-[360px] flex-col overflow-hidden rounded-lg border border-gray-200 bg-white xl:min-h-0", children: _jsx("div", { className: "min-h-0 flex-1", children: _jsx(JavaScriptToolAgentPanel, { toolName: selectedTool.name, agentId: agentId, loading: agentLoading, resetting: agentResetting, error: agentError, onStartOver: handleResetAssistant, headerStart: selectedTool.hasApprovalScript ? (_jsx("div", { className: "rounded-full bg-violet-100 p-1 text-violet-700", children: _jsx(ShieldAlert, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }) })) : null }) }) }) })) : null;
233
+ const toolsListContent = (_jsx("div", { className: "flex h-full flex-col p-4", children: _jsx("div", { className: "mx-auto flex w-full flex-1 flex-col gap-10 overflow-hidden", children: _jsxs("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg bg-white shadow-sm", children: [_jsxs("div", { className: "shrink-0 border-b border-gray-100 px-4 py-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsxs("h2", { className: "shrink-0 text-sm font-semibold text-gray-900", children: ["JavaScript tools", " ", _jsxs("span", { className: "font-normal text-gray-500", children: ["(", tools.length, ")"] })] }), _jsx("div", { className: "order-last min-w-[180px] flex-1 basis-full sm:order-none sm:basis-auto", children: _jsx(FilterInput, { value: searchQuery, onChange: setSearchQuery, placeholder: "Filter by name, path, or description...", className: "w-full" }) }), _jsxs("div", { className: "flex items-center gap-1", children: [_jsxs(Button, { size: "sm", variant: "default", onClick: () => setShowCreateDialog(true), disabled: state === "loading", title: "Add JavaScript tool", children: [_jsx(Plus, { className: "mr-1 h-4 w-4", strokeWidth: 1.75 }), "Add"] }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => void loadTools(selectedToolIdRef.current), disabled: state === "loading", title: "Refresh", children: _jsx(RefreshCw, { className: cn("h-4 w-4", state === "loading" && "animate-spin"), strokeWidth: 1 }) })] })] }), _jsxs("div", { className: "mt-2 text-xs text-gray-500", children: ["Stored under", _jsx("code", { className: "mx-1 rounded bg-gray-100 px-1 py-0.5 text-[11px] text-gray-700", children: "/sitecore/system/Parhelia/Settings/Ai Tools/Scripts" }), "and assignable like any other tool."] }), error ? (_jsx("div", { className: "mt-2 rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: error })) : null] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-4 py-3", children: filteredTools.length === 0 ? (_jsxs("div", { className: "flex h-full flex-col items-center justify-center px-6 py-12 text-center", children: [_jsx(FileCode2, { className: "mb-4 h-10 w-10 text-gray-300", strokeWidth: 1.25 }), _jsx("p", { className: "text-sm font-medium text-gray-600", children: tools.length === 0
234
+ ? "No JavaScript tools yet"
235
+ : "No matching JavaScript tools" }), _jsx("p", { className: "mt-1 text-xs text-gray-500", children: tools.length === 0
236
+ ? "Create a custom JavaScript tool to expose a hidden script behind a normal tool signature."
237
+ : "Try a different search term." })] })) : (_jsx("div", { className: "divide-y divide-gray-100", children: filteredTools.map((tool) => {
238
+ const isSelected = tool.id === selectedToolId;
239
+ return (_jsxs("button", { type: "button", onClick: () => setSelectedToolId(tool.id), className: cn("group flex w-full cursor-pointer items-center gap-3 px-3 py-3 text-left text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-400", isSelected ? "bg-blue-50" : "bg-white hover:bg-gray-50"), children: [_jsx(FileCode2, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [_jsx("span", { className: "truncate font-medium text-gray-900", children: tool.name }), tool.needsConfiguration ? (_jsx("span", { className: "shrink-0 rounded bg-amber-100 px-1.5 py-0.5 text-[10px] font-medium text-amber-700", children: "Needs setup" })) : null] }), _jsx("div", { className: "mt-0.5 truncate text-xs text-gray-500", children: tool.description ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "font-mono text-gray-400", children: tool.path }), _jsx("span", { className: "mx-1.5 text-gray-300", children: "\u00B7" }), _jsx("span", { children: tool.description })] })) : (_jsx("span", { className: "font-mono text-gray-400", children: tool.path })) })] })] }, tool.id));
240
+ }) })) })] }) }) }));
241
+ const detailsContent = (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsx("div", { className: "flex min-h-[360px] flex-col overflow-hidden rounded-lg bg-white shadow-sm xl:min-h-0", children: selectedTool ? (_jsx("div", { className: "min-h-0 flex-1", children: _jsx(JavaScriptToolConfigPanel, { itemId: selectedTool.id, title: selectedTool.name, actions: _jsxs(Button, { variant: "outline", size: "sm", onClick: () => void handleDeleteSelectedTool(), disabled: deleting, title: "Delete selected JavaScript tool", children: [deleting ? (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1.5 })) : (_jsx(Trash2, { className: "h-4 w-4", strokeWidth: 1.5 })), "Delete Tool"] }) }) })) : (_jsxs("div", { className: "flex h-full min-h-[360px] flex-col items-center justify-center gap-3 p-8 text-center xl:min-h-0", children: [_jsx(FileCode2, { className: "h-10 w-10 text-gray-300", strokeWidth: 1.25 }), _jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-sm font-medium text-gray-700", children: "Select a JavaScript tool" }), _jsx("div", { className: "text-xs text-gray-500", children: "Choose a tool from the list to edit its schema, script, and approval logic." })] })] })) }) }));
242
+ const agentContent = selectedTool ? (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsx("div", { className: "flex min-h-[360px] flex-col overflow-hidden rounded-lg bg-white shadow-sm xl:min-h-0", children: _jsx("div", { className: "min-h-0 flex-1", children: _jsx(JavaScriptToolAgentPanel, { toolName: selectedTool.name, agentId: agentId, loading: agentLoading, resetting: agentResetting, error: agentError, onStartOver: handleResetAssistant, headerStart: selectedTool.hasApprovalScript ? (_jsx("div", { className: "rounded-full bg-violet-100 p-1 text-violet-700", children: _jsx(ShieldAlert, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }) })) : null }) }) }) })) : null;
247
243
  const panels = selectedTool
248
244
  ? [
249
245
  {
@@ -1 +1 @@
1
- {"version":3,"file":"JavaScriptToolsPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/JavaScriptToolsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JavaScriptToolsPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/JavaScriptToolsPanel.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, useEffect, useMemo } from "react";
3
3
  import { setupWizardService, } from "../../../setup/services/setupWizardService";
4
4
  import { Button } from "../../../components/ui/button";
5
- import { CheckCircle, AlertCircle, RefreshCw, Download, ChevronDown, ChevronRight, Server, } from "lucide-react";
5
+ import { CreateMcpServerDialog } from "./CreateMcpServerDialog";
6
+ import { CheckCircle, AlertCircle, RefreshCw, Download, ChevronDown, ChevronRight, Server, Plus, } from "lucide-react";
7
+ const getErrorMessage = (error, fallback) => error instanceof Error ? error.message : fallback;
6
8
  /**
7
9
  * Settings panel for viewing installed MCP Tools.
8
10
  * Displays MCP tool functions from the GetMcpToolFunctions endpoint.
@@ -14,6 +16,8 @@ export function McpToolsPanel() {
14
16
  const [installing, setInstalling] = useState(false);
15
17
  const [installResult, setInstallResult] = useState(null);
16
18
  const [installError, setInstallError] = useState(null);
19
+ const [createServerOpen, setCreateServerOpen] = useState(false);
20
+ const [createServerResult, setCreateServerResult] = useState(null);
17
21
  const [collapsedServers, setCollapsedServers] = useState(new Set());
18
22
  // Group tools by server name
19
23
  const toolsByServer = useMemo(() => {
@@ -52,14 +56,19 @@ export function McpToolsPanel() {
52
56
  }
53
57
  catch (e) {
54
58
  setState("error");
55
- setError(e?.message || "Failed to load MCP tools");
59
+ setError(getErrorMessage(e, "Failed to load MCP tools"));
56
60
  }
57
61
  };
62
+ const handleServerCreated = async (_serverId, serverName) => {
63
+ setCreateServerResult(`MCP server "${serverName}" created`);
64
+ await loadData();
65
+ };
58
66
  const handleInstall = async () => {
59
67
  try {
60
68
  setInstalling(true);
61
69
  setInstallError(null);
62
70
  setInstallResult(null);
71
+ setCreateServerResult(null);
63
72
  const result = await setupWizardService.installMcpTools();
64
73
  // Build result message
65
74
  const messages = [];
@@ -82,7 +91,7 @@ export function McpToolsPanel() {
82
91
  setState("success");
83
92
  }
84
93
  catch (e) {
85
- setInstallError(e?.message || "Failed to install MCP tools");
94
+ setInstallError(getErrorMessage(e, "Failed to install MCP tools"));
86
95
  }
87
96
  finally {
88
97
  setInstalling(false);
@@ -98,11 +107,11 @@ export function McpToolsPanel() {
98
107
  return _jsx(AlertCircle, { className: "h-4 w-4 text-red-600", strokeWidth: 1 });
99
108
  return (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin text-amber-600", strokeWidth: 1 }));
100
109
  };
101
- return (_jsx("div", { className: "h-full overflow-auto p-4", children: _jsx("div", { className: "mx-auto", children: _jsx("div", { className: "rounded-lg bg-white p-4 md:p-6", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("div", { className: "flex flex-1 items-center gap-2", children: [statusIcon(state), _jsxs("span", { className: "text-sm text-gray-700", children: [tools.length, " MCP tool", tools.length !== 1 ? "s" : "", " ", "installed"] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsxs("button", { onClick: loadData, disabled: state === "loading" || installing, className: "flex items-center gap-1 text-sm text-gray-500 hover:text-gray-700 disabled:opacity-50", title: "Refresh tools list", children: [_jsx(RefreshCw, { className: `h-4 w-4 ${state === "loading" ? "animate-spin" : ""}`, strokeWidth: 1 }), _jsx("span", { className: "hidden sm:inline", children: "Refresh" })] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: handleInstall, disabled: installing || state === "loading", title: "Install MCP Tools", children: [installing ? (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1 })) : (_jsx(Download, { className: "h-4 w-4", strokeWidth: 1 })), _jsx("span", { className: "ml-1 hidden sm:inline", children: installing ? "Installing..." : "Install MCP Tools" })] })] })] }), installResult && (_jsx("div", { className: "rounded border border-green-200 bg-green-50 p-3 text-sm text-green-800", children: installResult })), installError && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-3 text-sm whitespace-pre-wrap text-red-700", children: installError })), tools.length === 0 && state === "success" && (_jsx("div", { className: "rounded border border-yellow-200 bg-yellow-50 p-3 text-sm text-yellow-800", children: "No MCP tools are installed. MCP tools can be added via the Sitecore content tree." })), tools.length > 0 && (_jsx("div", { className: "space-y-3", children: serverNames.map((serverName) => {
102
- const serverTools = toolsByServer[serverName] ?? [];
103
- const isCollapsed = collapsedServers.has(serverName);
104
- return (_jsxs("div", { className: "overflow-hidden rounded-lg border border-gray-200", children: [_jsxs("button", { onClick: () => toggleServer(serverName), className: "flex w-full items-center gap-2 bg-gray-50 px-3 py-2 text-left text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100", children: [isCollapsed ? (_jsx(ChevronRight, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 })) : (_jsx(ChevronDown, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 })), _jsx(Server, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 }), _jsx("span", { className: "min-w-0 truncate", children: serverName }), _jsxs("span", { className: "ml-auto shrink-0 text-xs font-normal text-gray-500", children: [serverTools.length, " tool", serverTools.length !== 1 ? "s" : ""] })] }), !isCollapsed && (_jsx("div", { className: "divide-y divide-gray-100", children: serverTools.map((tool) => (_jsxs("div", { className: "flex flex-wrap items-center gap-2 bg-white px-3 py-2 text-sm", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "font-medium", children: tool.functionName }), tool.description && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-xs text-gray-500 sm:line-clamp-none sm:truncate", children: tool.description }))] }), _jsxs("div", { className: "flex shrink-0 flex-wrap items-center gap-1", children: [tool.isInstalled ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs text-green-700", title: "Installed", children: [_jsx(CheckCircle, { className: "h-3 w-3", strokeWidth: 1.5 }), _jsx("span", { className: "hidden sm:inline", children: "Installed" })] })) : (_jsx("span", { className: "inline-flex items-center gap-1 rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-600", children: "Not installed" })), tool.needsConfiguration && (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-xs text-amber-700", title: "Needs configuration", children: [_jsx(AlertCircle, { className: "h-3 w-3", strokeWidth: 1.5 }), _jsx("span", { className: "hidden sm:inline", children: "Needs config" })] }))] })] }, tool.functionName))) }))] }, serverName));
105
- }) })), error && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: error }))] }) }) }) }));
110
+ return (_jsxs("div", { className: "h-full overflow-auto p-4", children: [_jsx("div", { className: "mx-auto", children: _jsx("div", { className: "rounded-lg bg-white p-4 md:p-6", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("div", { className: "flex flex-1 items-center gap-2", children: [statusIcon(state), _jsxs("span", { className: "text-sm text-gray-700", children: [tools.length, " MCP tool", tools.length !== 1 ? "s" : "", " ", "installed"] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsxs(Button, { size: "sm", variant: "outline", onClick: () => setCreateServerOpen(true), disabled: state === "loading" || installing, title: "New MCP Server", children: [_jsx(Plus, { className: "h-4 w-4", strokeWidth: 1 }), _jsx("span", { className: "ml-1 hidden sm:inline", children: "New MCP Server" })] }), _jsxs("button", { onClick: loadData, disabled: state === "loading" || installing, className: "flex items-center gap-1 text-sm text-gray-500 hover:text-gray-700 disabled:opacity-50", title: "Refresh tools list", children: [_jsx(RefreshCw, { className: `h-4 w-4 ${state === "loading" ? "animate-spin" : ""}`, strokeWidth: 1 }), _jsx("span", { className: "hidden sm:inline", children: "Refresh" })] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: handleInstall, disabled: installing || state === "loading", title: "Install MCP Tools", children: [installing ? (_jsx(RefreshCw, { className: "h-4 w-4 animate-spin", strokeWidth: 1 })) : (_jsx(Download, { className: "h-4 w-4", strokeWidth: 1 })), _jsx("span", { className: "ml-1 hidden sm:inline", children: installing ? "Installing..." : "Install MCP Tools" })] })] })] }), installResult && (_jsx("div", { className: "rounded border border-green-200 bg-green-50 p-3 text-sm text-green-800", children: installResult })), createServerResult && (_jsx("div", { className: "rounded border border-green-200 bg-green-50 p-3 text-sm text-green-800", children: createServerResult })), installError && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-3 text-sm whitespace-pre-wrap text-red-700", children: installError })), tools.length === 0 && state === "success" && (_jsx("div", { className: "rounded border border-yellow-200 bg-yellow-50 p-3 text-sm text-yellow-800", children: "No MCP tools are installed. MCP tools can be added via the Sitecore content tree." })), tools.length > 0 && (_jsx("div", { className: "space-y-3", children: serverNames.map((serverName) => {
111
+ const serverTools = toolsByServer[serverName] ?? [];
112
+ const isCollapsed = collapsedServers.has(serverName);
113
+ return (_jsxs("div", { className: "overflow-hidden rounded-lg border border-gray-200", children: [_jsxs("button", { onClick: () => toggleServer(serverName), className: "flex w-full items-center gap-2 bg-gray-50 px-3 py-2 text-left text-sm font-medium text-gray-700 transition-colors hover:bg-gray-100", children: [isCollapsed ? (_jsx(ChevronRight, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 })) : (_jsx(ChevronDown, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 })), _jsx(Server, { className: "h-4 w-4 shrink-0 text-gray-500", strokeWidth: 1.5 }), _jsx("span", { className: "min-w-0 truncate", children: serverName }), _jsxs("span", { className: "ml-auto shrink-0 text-xs font-normal text-gray-500", children: [serverTools.length, " tool", serverTools.length !== 1 ? "s" : ""] })] }), !isCollapsed && (_jsx("div", { className: "divide-y divide-gray-100", children: serverTools.map((tool) => (_jsxs("div", { className: "flex flex-wrap items-center gap-2 bg-white px-3 py-2 text-sm", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "font-medium", children: tool.functionName }), tool.description && (_jsx("p", { className: "mt-0.5 line-clamp-2 text-xs text-gray-500 sm:line-clamp-none sm:truncate", children: tool.description }))] }), _jsxs("div", { className: "flex shrink-0 flex-wrap items-center gap-1", children: [tool.isInstalled ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs text-green-700", title: "Installed", children: [_jsx(CheckCircle, { className: "h-3 w-3", strokeWidth: 1.5 }), _jsx("span", { className: "hidden sm:inline", children: "Installed" })] })) : (_jsx("span", { className: "inline-flex items-center gap-1 rounded-full bg-gray-100 px-2 py-0.5 text-xs text-gray-600", children: "Not installed" })), tool.needsConfiguration && (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-xs text-amber-700", title: "Needs configuration", children: [_jsx(AlertCircle, { className: "h-3 w-3", strokeWidth: 1.5 }), _jsx("span", { className: "hidden sm:inline", children: "Needs config" })] }))] })] }, tool.functionName))) }))] }, serverName));
114
+ }) })), error && (_jsx("div", { className: "rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: error }))] }) }) }), _jsx(CreateMcpServerDialog, { open: createServerOpen, onOpenChange: setCreateServerOpen, onCreated: handleServerCreated })] }));
106
115
  }
107
116
  export default McpToolsPanel;
108
117
  //# sourceMappingURL=McpToolsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpToolsPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/McpToolsPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,kBAAkB,GAEnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,MAAM,GACP,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,SAAS,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,IAAI,GAAG,EAAE,CACV,CAAC;IAEF,6BAA6B;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,MAAM,MAAM,GAAsC,EAAE,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,EACvC,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE;QAC1C,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,CAAC;YACH,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;YACjE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,QAAQ,CAAC,CAAC,EAAE,OAAO,IAAI,0BAA0B,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;YAE1D,uBAAuB;YACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,uBAAuB,GAAG,CAAC,EAAE,CAAC;gBACvC,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,uBAAuB,YAAY,MAAM,CAAC,uBAAuB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,CACzG,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,YAAY,QAAQ,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,CAC7E,CAAC;YACJ,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtC,CAAC;YACD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,wDAAwD;YACxD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;YACjE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,eAAe,CAAC,CAAC,EAAE,OAAO,IAAI,6BAA6B,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,EAAE,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,CAAC,YAAuB,EAAE,EAAE;QAC7C,IAAI,YAAY,KAAK,SAAS;YAC5B,OAAO,KAAC,WAAW,IAAC,SAAS,EAAC,wBAAwB,EAAC,WAAW,EAAE,CAAC,GAAI,CAAC;QAC5E,IAAI,YAAY,KAAK,OAAO;YAC1B,OAAO,KAAC,WAAW,IAAC,SAAS,EAAC,sBAAsB,EAAC,WAAW,EAAE,CAAC,GAAI,CAAC;QAC1E,OAAO,CACL,KAAC,SAAS,IACR,SAAS,EAAC,qCAAqC,EAC/C,WAAW,EAAE,CAAC,GACd,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,0BAA0B,YACvC,cAAK,SAAS,EAAC,SAAS,YACtB,cAAK,SAAS,EAAC,gCAAgC,YAC7C,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,mCAAmC,aAChD,eAAK,SAAS,EAAC,gCAAgC,aAC5C,UAAU,CAAC,KAAK,CAAC,EAClB,gBAAM,SAAS,EAAC,uBAAuB,aACpC,KAAK,CAAC,MAAM,eAAW,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,iBAErD,IACH,EACN,eAAK,SAAS,EAAC,kCAAkC,aAC/C,kBACE,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,KAAK,KAAK,SAAS,IAAI,UAAU,EAC3C,SAAS,EAAC,uFAAuF,EACjG,KAAK,EAAC,oBAAoB,aAE1B,KAAC,SAAS,IACR,SAAS,EAAE,WAAW,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,EACjE,WAAW,EAAE,CAAC,GACd,EACF,eAAM,SAAS,EAAC,kBAAkB,wBAAe,IAC1C,EACT,MAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,UAAU,IAAI,KAAK,KAAK,SAAS,EAC3C,KAAK,EAAC,mBAAmB,aAExB,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,SAAS,IACR,SAAS,EAAC,sBAAsB,EAChC,WAAW,EAAE,CAAC,GACd,CACH,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,CACjD,EACD,eAAM,SAAS,EAAC,uBAAuB,YACpC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,GAC9C,IACA,IACL,IACF,EAEL,aAAa,IAAI,CAChB,cAAK,SAAS,EAAC,wEAAwE,YACpF,aAAa,GACV,CACP,EAEA,YAAY,IAAI,CACf,cAAK,SAAS,EAAC,sFAAsF,YAClG,YAAY,GACT,CACP,EAEA,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS,IAAI,CAC5C,cAAK,SAAS,EAAC,2EAA2E,kGAGpF,CACP,EAEA,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,cAAK,SAAS,EAAC,WAAW,YACvB,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gCAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gCACpD,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gCACrD,OAAO,CACL,eAEE,SAAS,EAAC,mDAAmD,aAE7D,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,EACvC,SAAS,EAAC,qIAAqI,aAE9I,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,YAAY,IACX,SAAS,EAAC,gCAAgC,EAC1C,WAAW,EAAE,GAAG,GAChB,CACH,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IACV,SAAS,EAAC,gCAAgC,EAC1C,WAAW,EAAE,GAAG,GAChB,CACH,EACD,KAAC,MAAM,IACL,SAAS,EAAC,gCAAgC,EAC1C,WAAW,EAAE,GAAG,GAChB,EACF,eAAM,SAAS,EAAC,kBAAkB,YAAE,UAAU,GAAQ,EACtD,gBAAM,SAAS,EAAC,oDAAoD,aACjE,WAAW,CAAC,MAAM,WAClB,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAC/B,IACA,EACR,CAAC,WAAW,IAAI,CACf,cAAK,SAAS,EAAC,0BAA0B,YACtC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,eAEE,SAAS,EAAC,8DAA8D,aAExE,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAM,SAAS,EAAC,aAAa,YAC1B,IAAI,CAAC,YAAY,GACb,EACN,IAAI,CAAC,WAAW,IAAI,CACnB,YAAG,SAAS,EAAC,0EAA0E,YACpF,IAAI,CAAC,WAAW,GACf,CACL,IACG,EACN,eAAK,SAAS,EAAC,4CAA4C,aACxD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAClB,gBACE,SAAS,EAAC,6FAA6F,EACvG,KAAK,EAAC,WAAW,aAEjB,KAAC,WAAW,IACV,SAAS,EAAC,SAAS,EACnB,WAAW,EAAE,GAAG,GAChB,EACF,eAAM,SAAS,EAAC,kBAAkB,0BAE3B,IACF,CACR,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,2FAA2F,8BAEpG,CACR,EACA,IAAI,CAAC,kBAAkB,IAAI,CAC1B,gBACE,SAAS,EAAC,6FAA6F,EACvG,KAAK,EAAC,qBAAqB,aAE3B,KAAC,WAAW,IACV,SAAS,EAAC,SAAS,EACnB,WAAW,EAAE,GAAG,GAChB,EACF,eAAM,SAAS,EAAC,kBAAkB,6BAE3B,IACF,CACR,IACG,KA9CD,IAAI,CAAC,YAAY,CA+ClB,CACP,CAAC,GACE,CACP,KAlFI,UAAU,CAmFX,CACP,CAAC;4BACJ,CAAC,CAAC,GACE,CACP,EAEA,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,sFAAsF,YAClG,KAAK,GACF,CACP,IACG,GACF,GACF,GACF,CACP,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"McpToolsPanel.js","sourceRoot":"","sources":["../../../../src/editor/settings/panels/McpToolsPanel.tsx"],"names":[],"mappings":"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"}
@@ -79,6 +79,44 @@ function getModelTypeLabel(templateType) {
79
79
  return templateType;
80
80
  }
81
81
  }
82
+ function buildPricingSegments(model) {
83
+ const parts = [];
84
+ if (!model.pricing)
85
+ return parts;
86
+ if (model.templateType === "Ai Image Model") {
87
+ if (hasDefinedPricingValue(model.pricing.inputTextTokenCostPerMillion)) {
88
+ parts.push(`In text $${model.pricing.inputTextTokenCostPerMillion.toFixed(2)}/M`);
89
+ }
90
+ if (hasDefinedPricingValue(model.pricing.inputImageTokenCostPerMillion)) {
91
+ parts.push(`In img $${model.pricing.inputImageTokenCostPerMillion.toFixed(2)}/M`);
92
+ }
93
+ if (hasDefinedPricingValue(model.pricing.outputImageTokenCostPerMillion)) {
94
+ parts.push(`Out img $${model.pricing.outputImageTokenCostPerMillion.toFixed(2)}/M`);
95
+ }
96
+ }
97
+ else {
98
+ if (hasDefinedPricingValue(model.pricing.inputCostPerMillionTokens)) {
99
+ parts.push(`In $${model.pricing.inputCostPerMillionTokens.toFixed(2)}/M`);
100
+ }
101
+ if (hasDefinedPricingValue(model.pricing.outputCostPerMillionTokens)) {
102
+ parts.push(`Out $${model.pricing.outputCostPerMillionTokens.toFixed(2)}/M`);
103
+ }
104
+ if (hasDefinedPricingValue(model.pricing.cachedInputCostPerMillionTokens)) {
105
+ parts.push(`Cached $${model.pricing.cachedInputCostPerMillionTokens.toFixed(2)}/M`);
106
+ }
107
+ }
108
+ return parts;
109
+ }
110
+ function buildContextSegments(model) {
111
+ const parts = [];
112
+ if (model.maxContextWindowTokens) {
113
+ parts.push(`${model.maxContextWindowTokens.toLocaleString()} ctx`);
114
+ }
115
+ if (model.maxResponseTokens) {
116
+ parts.push(`${model.maxResponseTokens.toLocaleString()} max out`);
117
+ }
118
+ return parts;
119
+ }
82
120
  /**
83
121
  * Settings panel for AI Models configuration.
84
122
  * Install and configure AI models for chat and other tasks.
@@ -473,62 +511,60 @@ export function ModelsPanel() {
473
511
  return installedModels.filter((model) => isPricingLineEmpty(model));
474
512
  }, [installedModels]);
475
513
  // Build the models list content
476
- const modelsListContent = (_jsx("div", { className: "flex h-full flex-col p-4", children: _jsx("div", { className: "mx-auto flex w-full flex-1 flex-col overflow-hidden", children: _jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [_jsxs("div", { className: "mt-1 shrink-0", children: [_jsxs("div", { className: "mb-2 rounded-t-lg bg-white p-4", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-sm font-semibold text-gray-900", children: "Default models" }), _jsx("p", { className: "mt-1 text-xs text-gray-500", children: "Choose the shared defaults used when a chat or image model is not configured elsewhere." })] }), savingDefaults && (_jsxs("div", { className: "flex items-center gap-2 text-xs text-gray-500", children: [_jsx(RefreshCw, { className: "h-3.5 w-3.5 animate-spin" }), "Saving..."] }))] }), _jsxs("div", { className: "mt-4 grid gap-4 md:grid-cols-2", children: [_jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700", children: [_jsx(Brain, { className: "h-4 w-4 text-purple-600", strokeWidth: 1.5 }), "Default chat model"] }), _jsx(Select, { value: defaultChatModelId, onValueChange: (value) => void handleDefaultModelsChange(value, defaultImageModelId), options: chatModelOptions, placeholder: "Select a chat model", disabled: savingDefaults || !settingsExists, searchable: true, searchPlaceholder: "Search chat models..." }), _jsx("p", { className: "text-xs text-gray-500", children: "Used by features that fall back to the settings-level chat model." })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700", children: [_jsx(Image, { className: "h-4 w-4 text-green-600", strokeWidth: 1.5 }), "Default image model"] }), _jsx(Select, { value: defaultImageModelId, onValueChange: (value) => void handleDefaultModelsChange(defaultChatModelId, value), options: imageModelOptions, placeholder: "Select an image model", disabled: savingDefaults || !settingsExists, searchable: true, searchPlaceholder: "Search image models..." }), _jsx("p", { className: "text-xs text-gray-500", children: "Used by image generation and editing features that rely on the shared default." })] })] }), !settingsExists && (_jsx("div", { className: "mt-4 rounded border border-yellow-200 bg-yellow-50 p-3 text-xs text-yellow-800", children: "Create the Parhelia settings item before saving default models." }))] }), _jsxs("div", { className: "rounded-t-lg bg-white px-4 pt-3 pb-2", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [_jsxs("h2", { className: "text-sm font-semibold text-gray-900", children: ["Installed models", " ", _jsxs("span", { className: "font-normal text-gray-500", children: ["(", installedModels.length, ")"] })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [providers.length > 0 && importableProviders.length > 0 && (_jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
477
- setShowImportDialog(true);
478
- setError(null);
479
- }, children: [_jsx(Cloud, { strokeWidth: 1, className: "mr-1 h-4 w-4" }), "Import from Provider"] })), providers.length > 0 && (_jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
480
- setShowAddDialog(true);
481
- setError(null);
482
- }, children: [_jsx(Plus, { strokeWidth: 1, className: "mr-1 h-4 w-4" }), "Add Manually"] })), importableInstalledModels.length > 0 && (_jsxs(Button, { size: "sm", variant: "outline", onClick: handleUpdateAllPricing, disabled: updatingAllPricing, title: "Update pricing for all models from their provider APIs", children: [_jsx(RefreshCw, { className: `mr-1 h-4 w-4 ${updatingAllPricing ? "animate-spin" : ""}` }), "Update All Pricing"] }))] })] }), modelsMissingPricing.length > 0 && (_jsxs("div", { className: "mt-2 rounded border border-yellow-200 bg-yellow-50 px-2 py-1 text-xs text-yellow-800", children: [modelsMissingPricing.length, " installed model", modelsMissingPricing.length !== 1 ? "s have" : " has", " ", "missing or incomplete pricing information."] }))] }), _jsxs("div", { className: "bg-white px-4 pb-2", children: [state !== "loading" && providers.length === 0 && (_jsx("div", { className: "mb-2 rounded border border-yellow-200 bg-yellow-50 p-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(AlertCircle, { className: "h-4 w-4 shrink-0 text-yellow-600" }), _jsx("div", { className: "flex-1 text-xs text-yellow-800", children: "No providers configured. Configure at least one before adding models." }), _jsxs(Button, { size: "sm", variant: "outline", onClick: handleNavigateToProviders, className: "text-xs", children: ["Go to Providers", _jsx(ArrowRight, { className: "ml-1 h-3 w-3" })] })] }) })), error && (_jsx("div", { className: "mb-2 rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: error })), _jsx(FilterInput, { value: filterText, onChange: setFilterText, placeholder: "Filter models by name, provider, or type...", className: "w-full" })] })] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto rounded-b-lg bg-white px-4 pb-4", children: filterText && filteredModels.length === 0 ? (_jsxs("div", { className: "flex items-center justify-center py-8 text-sm text-gray-500", children: ["No models found matching ", `"${filterText}"`] })) : (_jsx("div", { className: "space-y-4", children: Object.entries(modelsByProvider).map(([providerId, { providerName, models }]) => {
483
- if (models.length === 0)
484
- return null;
485
- const provider = providers.find((p) => p.id === providerId);
486
- return (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex items-center gap-3 px-1 pt-3 pb-1", children: [_jsx(ProviderIcon, { providerId: provider?.type || "", providerName: provider?.name || providerName, size: 28 }), _jsxs("label", { className: "block text-base font-semibold text-gray-800", children: [providerName, _jsxs("span", { className: "ml-2 text-xs font-normal text-gray-500", children: ["(", models.length, " model", models.length !== 1 ? "s" : "", ")"] })] })] }), _jsx("div", { className: "space-y-2", children: models.map((model) => {
487
- const status = model.status;
488
- const isSelected = selectedModel?.id === model.id;
489
- const showPricingLine = hasVisiblePricingSummary(model);
490
- return (_jsxs("div", { role: "button", tabIndex: 0, onClick: () => handleOpenConfig(model), onKeyDown: (e) => {
491
- if (e.key === "Enter" || e.key === " ") {
492
- e.preventDefault();
493
- handleOpenConfig(model);
494
- }
495
- }, className: `flex cursor-pointer flex-wrap items-center gap-2 rounded border p-3 text-sm transition-all hover:border-gray-300 hover:shadow-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-400 ${isSelected
496
- ? "border-blue-400 bg-blue-50"
497
- : "border-gray-200 bg-white"}`, children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("span", { className: "truncate font-medium", children: getModelListLabel(model) }), _jsx("span", { className: "shrink-0 rounded bg-gray-100 px-1.5 py-0.5 text-xs text-gray-600", children: getModelTypeLabel(model.templateType || "Ai Chat Model") }), normalizeModelId(model.id) ===
498
- normalizeModelId(defaultChatModelId) && (_jsx("span", { className: "shrink-0 rounded bg-purple-100 px-1.5 py-0.5 text-xs text-purple-700", children: "Default chat" })), normalizeModelId(model.id) ===
499
- normalizeModelId(defaultImageModelId) && (_jsx("span", { className: "shrink-0 rounded bg-green-100 px-1.5 py-0.5 text-xs text-green-700", children: "Default image" })), status === "Outdated" && (_jsx("span", { className: "shrink-0 rounded bg-amber-100 px-1.5 py-0.5 text-xs text-amber-700", children: "Update available" })), !showPricingLine && (_jsx("span", { className: "shrink-0 rounded bg-yellow-100 px-1.5 py-0.5 text-xs text-yellow-800", children: "Pricing missing" }))] }), showPricingLine && model.pricing ? (_jsx("div", { className: "mt-1 text-xs text-gray-500", children: model.templateType ===
500
- "Ai Image Model" &&
501
- hasUsableImagePricing(model) ? (_jsxs(_Fragment, { children: [hasDefinedPricingValue(model.pricing.inputTextTokenCostPerMillion) && (_jsxs("span", { children: ["Input Text: $", model.pricing.inputTextTokenCostPerMillion.toFixed(2), "/M"] })), hasDefinedPricingValue(model.pricing.inputImageTokenCostPerMillion) && (_jsxs("span", { className: "ml-2", children: ["Input Image: $", model.pricing.inputImageTokenCostPerMillion.toFixed(2), "/M"] })), hasDefinedPricingValue(model.pricing.outputImageTokenCostPerMillion) && (_jsxs("span", { className: "ml-2", children: ["Output Image: $", model.pricing.outputImageTokenCostPerMillion.toFixed(2), "/M"] }))] })) : (_jsxs(_Fragment, { children: [hasDefinedPricingValue(model.pricing
502
- .inputCostPerMillionTokens) && (_jsxs("span", { children: ["Input: $", model.pricing.inputCostPerMillionTokens.toFixed(2), "/M"] })), hasDefinedPricingValue(model.pricing
503
- .outputCostPerMillionTokens) && (_jsxs("span", { className: "ml-2", children: ["Output: $", model.pricing.outputCostPerMillionTokens.toFixed(2), "/M"] })), hasDefinedPricingValue(model.pricing
504
- .cachedInputCostPerMillionTokens) && (_jsxs("span", { className: "ml-2", children: ["Cached: $", model.pricing.cachedInputCostPerMillionTokens.toFixed(2), "/M"] }))] })) })) : (_jsxs("div", { className: "mt-1 flex items-start gap-2 rounded border border-yellow-200 bg-yellow-50 px-2 py-1.5 text-xs text-yellow-800", children: [_jsx(AlertCircle, { className: "mt-0.5 h-3.5 w-3.5 shrink-0" }), _jsx("span", { children: getPricingWarningMessage(model) })] })), (model.maxContextWindowTokens ||
505
- model.maxResponseTokens) && (_jsxs("div", { className: "mt-1 text-xs text-gray-500", children: [model.maxContextWindowTokens && (_jsxs("span", { children: ["Context:", " ", model.maxContextWindowTokens.toLocaleString(), " ", "tokens"] })), model.maxContextWindowTokens &&
506
- model.maxResponseTokens &&
507
- " • ", model.maxResponseTokens && (_jsxs("span", { children: ["Max Response:", " ", model.maxResponseTokens.toLocaleString(), " ", "tokens"] }))] }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [status === "Outdated" && (_jsxs(Button, { size: "sm", variant: "outline", onClick: (e) => {
508
- e.stopPropagation();
509
- handleUpdate(model);
510
- }, disabled: updating === model.id, title: "Update model", children: [updating === model.id ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-3 w-3 animate-spin" })) : (_jsx(Upload, { strokeWidth: 1, className: "h-3 w-3" })), _jsx("span", { className: "ml-1 hidden sm:inline", children: "Update" })] })), _jsxs(Button, { size: "sm", variant: "ghost", onClick: (e) => {
511
- e.stopPropagation();
512
- openDuplicateDialog(model);
513
- }, disabled: !editContext ||
514
- !model.parentId ||
515
- duplicatingId === model.id, title: "Duplicate model", children: [duplicatingId === model.id ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-3 w-3 animate-spin" })) : (_jsx(Copy, { strokeWidth: 1, className: "h-3 w-3" })), _jsx("span", { className: "ml-1 hidden sm:inline", children: "Duplicate" })] }), _jsx(Button, { size: "sm", variant: "ghost", onClick: (e) => {
516
- e.stopPropagation();
517
- handleDelete(model);
518
- }, disabled: deleting === model.id, title: "Delete model", className: "text-red-600 hover:bg-red-50 hover:text-red-700", children: deleting === model.id ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-3 w-3 animate-spin" })) : (_jsx(Trash2, { strokeWidth: 1, className: "h-3 w-3" })) })] })] }, model.id));
519
- }) })] }, providerId));
520
- }) })) }), _jsx(AddModelDialog, { open: showAddDialog, onOpenChange: setShowAddDialog, onSuccess: loadData, providers: providers, installedModels: installedModels }), _jsx(ImportModelDialog, { open: showImportDialog, onOpenChange: setShowImportDialog, onSuccess: loadData, importableProviders: importableProviders, providerTypes: providerTypes }), _jsx(Dialog, { open: duplicateDialogModel !== null, onOpenChange: (open) => {
521
- if (!open)
522
- setDuplicateDialogModel(null);
523
- }, children: _jsxs(DialogContent, { className: "max-w-md", children: [_jsxs(DialogHeader, { className: "pr-14", children: [_jsx(DialogTitle, { children: "Duplicate model" }), _jsx(DialogDescription, { children: "New Sitecore item name. Field values (including model name and reasoning) are copied; adjust them in Configure after duplicating." })] }), _jsxs("div", { className: "space-y-2 px-8 pb-6", children: [_jsx("label", { htmlFor: "duplicate-model-item-name", className: "block text-sm font-medium text-gray-700", children: "Item name" }), _jsx(Input, { id: "duplicate-model-item-name", value: duplicateItemName, onChange: (e) => setDuplicateItemName(e.target.value), onKeyDown: (e) => {
524
- if (e.key === "Enter") {
525
- e.preventDefault();
526
- void handleConfirmDuplicate();
527
- }
528
- }, autoFocus: true })] }), _jsxs(DialogFooter, { className: "border-t border-gray-100 pt-4", children: [_jsx(Button, { type: "button", variant: "outline", className: "min-h-9 min-w-22", onClick: () => setDuplicateDialogModel(null), children: "Cancel" }), _jsx(Button, { type: "button", className: "min-h-9 min-w-22", onClick: () => void handleConfirmDuplicate(), disabled: !duplicateItemName.trim() ||
529
- (duplicateDialogModel != null &&
530
- duplicatingId === duplicateDialogModel.id), children: duplicateDialogModel != null &&
531
- duplicatingId === duplicateDialogModel.id ? (_jsxs(_Fragment, { children: [_jsx(RefreshCw, { className: "mr-1 h-4 w-4 animate-spin" }), "Duplicating\u2026"] })) : ("Duplicate") })] })] }) })] }) }) }));
514
+ const modelsListContent = (_jsx("div", { className: "flex h-full flex-col p-4", children: _jsxs("div", { className: "mx-auto flex w-full flex-1 flex-col gap-10 overflow-hidden", children: [_jsxs("div", { className: "shrink-0 px-1", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-sm font-semibold text-gray-900", children: "Default models" }), _jsx("p", { className: "mt-1 text-xs text-gray-500", children: "Choose the shared defaults used when a chat or image model is not configured elsewhere." })] }), savingDefaults && (_jsxs("div", { className: "flex items-center gap-2 text-xs text-gray-500", children: [_jsx(RefreshCw, { className: "h-3.5 w-3.5 animate-spin" }), "Saving..."] }))] }), _jsxs("div", { className: "mt-4 grid gap-4 md:grid-cols-2", children: [_jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700", children: [_jsx(Brain, { className: "h-4 w-4 text-purple-600", strokeWidth: 1.5 }), "Default chat model"] }), _jsx(Select, { value: defaultChatModelId, onValueChange: (value) => void handleDefaultModelsChange(value, defaultImageModelId), options: chatModelOptions, placeholder: "Select a chat model", disabled: savingDefaults || !settingsExists, searchable: true, searchPlaceholder: "Search chat models..." }), _jsx("p", { className: "text-xs text-gray-500", children: "Used by features that fall back to the settings-level chat model." })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm font-medium text-gray-700", children: [_jsx(Image, { className: "h-4 w-4 text-green-600", strokeWidth: 1.5 }), "Default image model"] }), _jsx(Select, { value: defaultImageModelId, onValueChange: (value) => void handleDefaultModelsChange(defaultChatModelId, value), options: imageModelOptions, placeholder: "Select an image model", disabled: savingDefaults || !settingsExists, searchable: true, searchPlaceholder: "Search image models..." }), _jsx("p", { className: "text-xs text-gray-500", children: "Used by image generation and editing features that rely on the shared default." })] })] }), !settingsExists && (_jsx("div", { className: "mt-4 rounded border border-yellow-200 bg-yellow-50 p-3 text-xs text-yellow-800", children: "Create the Parhelia settings item before saving default models." }))] }), _jsxs("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg bg-white shadow-sm", children: [_jsxs("div", { className: "shrink-0 border-b border-gray-100 px-4 py-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsxs("h2", { className: "shrink-0 text-sm font-semibold text-gray-900", children: ["Installed models", " ", _jsxs("span", { className: "font-normal text-gray-500", children: ["(", installedModels.length, ")"] })] }), _jsx("div", { className: "min-w-[180px] flex-1 order-last sm:order-none basis-full sm:basis-auto", children: _jsx(FilterInput, { value: filterText, onChange: setFilterText, placeholder: "Filter by name, provider, or type...", className: "w-full" }) }), _jsxs("div", { className: "flex items-center gap-1", children: [providers.length > 0 && importableProviders.length > 0 && (_jsxs(Button, { size: "sm", variant: "default", onClick: () => {
515
+ setShowImportDialog(true);
516
+ setError(null);
517
+ }, title: "Import models from provider", children: [_jsx(Cloud, { strokeWidth: 1.75, className: "mr-1 h-4 w-4" }), "Import"] })), providers.length > 0 && (_jsxs(Button, { size: "sm", variant: "default", onClick: () => {
518
+ setShowAddDialog(true);
519
+ setError(null);
520
+ }, title: "Add a model manually", children: [_jsx(Plus, { strokeWidth: 1.75, className: "mr-1 h-4 w-4" }), "Add"] })), importableInstalledModels.length > 0 && (_jsxs(Button, { size: "sm", variant: "outline", onClick: handleUpdateAllPricing, disabled: updatingAllPricing, title: "Update pricing for all models from their provider APIs", children: [_jsx(RefreshCw, { className: `mr-1 h-4 w-4 ${updatingAllPricing ? "animate-spin" : ""}` }), "Update pricing"] }))] })] }), modelsMissingPricing.length > 0 && (_jsxs("div", { className: "mt-2 rounded border border-yellow-200 bg-yellow-50 px-2 py-1 text-xs text-yellow-800", children: [modelsMissingPricing.length, " installed model", modelsMissingPricing.length !== 1 ? "s have" : " has", " ", "missing or incomplete pricing information."] })), state !== "loading" && providers.length === 0 && (_jsx("div", { className: "mt-2 rounded border border-yellow-200 bg-yellow-50 p-3", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(AlertCircle, { className: "h-4 w-4 shrink-0 text-yellow-600" }), _jsx("div", { className: "flex-1 text-xs text-yellow-800", children: "No providers configured. Configure at least one before adding models." }), _jsxs(Button, { size: "sm", variant: "outline", onClick: handleNavigateToProviders, className: "text-xs", children: ["Go to Providers", _jsx(ArrowRight, { className: "ml-1 h-3 w-3" })] })] }) })), error && (_jsx("div", { className: "mt-2 rounded border border-red-200 bg-red-50 p-2 text-xs whitespace-pre-wrap text-red-700", children: error }))] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto px-4 py-3", children: filterText && filteredModels.length === 0 ? (_jsxs("div", { className: "flex items-center justify-center py-8 text-sm text-gray-500", children: ["No models found matching ", `"${filterText}"`] })) : (_jsx("div", { className: "space-y-8", children: Object.entries(modelsByProvider).map(([providerId, { providerName, models }]) => {
521
+ if (models.length === 0)
522
+ return null;
523
+ const provider = providers.find((p) => p.id === providerId);
524
+ return (_jsxs("div", { children: [_jsxs("div", { className: "mb-2 flex items-center gap-2.5 px-1", children: [_jsx(ProviderIcon, { providerId: provider?.type || "", providerName: provider?.name || providerName, size: 22 }), _jsx("span", { className: "text-sm font-semibold text-gray-800", children: providerName }), _jsxs("span", { className: "text-xs text-gray-500", children: [models.length, " model", models.length !== 1 ? "s" : ""] })] }), _jsx("div", { className: "divide-y divide-gray-100", children: models.map((model) => {
525
+ const status = model.status;
526
+ const isSelected = selectedModel?.id === model.id;
527
+ const showPricingLine = hasVisiblePricingSummary(model);
528
+ const pricingSegments = buildPricingSegments(model);
529
+ const contextSegments = buildContextSegments(model);
530
+ const metaSegments = [
531
+ ...pricingSegments,
532
+ ...contextSegments,
533
+ ];
534
+ return (_jsxs("div", { role: "button", tabIndex: 0, onClick: () => handleOpenConfig(model), onKeyDown: (e) => {
535
+ if (e.key === "Enter" || e.key === " ") {
536
+ e.preventDefault();
537
+ handleOpenConfig(model);
538
+ }
539
+ }, className: `group flex cursor-pointer items-center gap-3 px-3 py-3 text-sm transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-400 ${isSelected
540
+ ? "bg-blue-50"
541
+ : "bg-white hover:bg-gray-50"}`, children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [_jsx("span", { className: "truncate font-medium text-gray-900", children: getModelListLabel(model) }), _jsx("span", { className: "shrink-0 rounded bg-gray-100 px-1.5 py-0.5 text-[10px] font-medium tracking-wide text-gray-600 uppercase", children: getModelTypeLabel(model.templateType || "Ai Chat Model") }), normalizeModelId(model.id) ===
542
+ normalizeModelId(defaultChatModelId) && (_jsx("span", { className: "shrink-0 rounded bg-purple-100 px-1.5 py-0.5 text-[10px] font-medium text-purple-700", children: "Default chat" })), normalizeModelId(model.id) ===
543
+ normalizeModelId(defaultImageModelId) && (_jsx("span", { className: "shrink-0 rounded bg-green-100 px-1.5 py-0.5 text-[10px] font-medium text-green-700", children: "Default image" })), status === "Outdated" && (_jsx("span", { className: "shrink-0 rounded bg-amber-100 px-1.5 py-0.5 text-[10px] font-medium text-amber-700", children: "Update available" })), !showPricingLine && (_jsx("span", { className: "shrink-0 rounded bg-yellow-100 px-1.5 py-0.5 text-[10px] font-medium text-yellow-800", title: getPricingWarningMessage(model), children: "Pricing missing" }))] }), metaSegments.length > 0 && (_jsx("div", { className: "mt-0.5 truncate text-xs text-gray-500", children: metaSegments.join(" · ") }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-0.5 opacity-60 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100", children: [status === "Outdated" && (_jsx(Button, { size: "sm", variant: "ghost", onClick: (e) => {
544
+ e.stopPropagation();
545
+ handleUpdate(model);
546
+ }, disabled: updating === model.id, title: "Update model", children: updating === model.id ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(Upload, { strokeWidth: 1, className: "h-3.5 w-3.5" })) })), _jsx(Button, { size: "sm", variant: "ghost", onClick: (e) => {
547
+ e.stopPropagation();
548
+ openDuplicateDialog(model);
549
+ }, disabled: !editContext ||
550
+ !model.parentId ||
551
+ duplicatingId === model.id, title: "Duplicate model", children: duplicatingId === model.id ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(Copy, { strokeWidth: 1, className: "h-3.5 w-3.5" })) }), _jsx(Button, { size: "sm", variant: "ghost", onClick: (e) => {
552
+ e.stopPropagation();
553
+ handleDelete(model);
554
+ }, disabled: deleting === model.id, title: "Delete model", className: "text-red-600 hover:bg-red-50 hover:text-red-700", children: deleting === model.id ? (_jsx(RefreshCw, { strokeWidth: 1, className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(Trash2, { strokeWidth: 1, className: "h-3.5 w-3.5" })) })] })] }, model.id));
555
+ }) })] }, providerId));
556
+ }) })) })] }), _jsx(AddModelDialog, { open: showAddDialog, onOpenChange: setShowAddDialog, onSuccess: loadData, providers: providers, installedModels: installedModels }), _jsx(ImportModelDialog, { open: showImportDialog, onOpenChange: setShowImportDialog, onSuccess: loadData, importableProviders: importableProviders, providerTypes: providerTypes }), _jsx(Dialog, { open: duplicateDialogModel !== null, onOpenChange: (open) => {
557
+ if (!open)
558
+ setDuplicateDialogModel(null);
559
+ }, children: _jsxs(DialogContent, { className: "max-w-md", children: [_jsxs(DialogHeader, { className: "pr-14", children: [_jsx(DialogTitle, { children: "Duplicate model" }), _jsx(DialogDescription, { children: "New Sitecore item name. Field values (including model name and reasoning) are copied; adjust them in Configure after duplicating." })] }), _jsxs("div", { className: "space-y-2 px-8 pb-6", children: [_jsx("label", { htmlFor: "duplicate-model-item-name", className: "block text-sm font-medium text-gray-700", children: "Item name" }), _jsx(Input, { id: "duplicate-model-item-name", value: duplicateItemName, onChange: (e) => setDuplicateItemName(e.target.value), onKeyDown: (e) => {
560
+ if (e.key === "Enter") {
561
+ e.preventDefault();
562
+ void handleConfirmDuplicate();
563
+ }
564
+ }, autoFocus: true })] }), _jsxs(DialogFooter, { className: "border-t border-gray-100 pt-4", children: [_jsx(Button, { type: "button", variant: "outline", className: "min-h-9 min-w-22", onClick: () => setDuplicateDialogModel(null), children: "Cancel" }), _jsx(Button, { type: "button", className: "min-h-9 min-w-22", onClick: () => void handleConfirmDuplicate(), disabled: !duplicateItemName.trim() ||
565
+ (duplicateDialogModel != null &&
566
+ duplicatingId === duplicateDialogModel.id), children: duplicateDialogModel != null &&
567
+ duplicatingId === duplicateDialogModel.id ? (_jsxs(_Fragment, { children: [_jsx(RefreshCw, { className: "mr-1 h-4 w-4 animate-spin" }), "Duplicating\u2026"] })) : ("Duplicate") })] })] }) })] }) }));
532
568
  // Build splitter panels - only show config panel when a model is selected
533
569
  const panels = selectedModel?.id
534
570
  ? [