@parhelia/core 0.1.12788 → 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 (408) hide show
  1. package/dist/agents-view/AgentCard.d.ts +6 -2
  2. package/dist/agents-view/AgentCard.js +79 -147
  3. package/dist/agents-view/AgentCard.js.map +1 -1
  4. package/dist/agents-view/AgentsSidebar.d.ts +4 -9
  5. package/dist/agents-view/AgentsSidebar.js +10 -13
  6. package/dist/agents-view/AgentsSidebar.js.map +1 -1
  7. package/dist/agents-view/AgentsTitlebar.d.ts +3 -3
  8. package/dist/agents-view/AgentsTitlebar.js +10 -7
  9. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  10. package/dist/agents-view/AgentsView.d.ts +20 -7
  11. package/dist/agents-view/AgentsView.js +79 -255
  12. package/dist/agents-view/AgentsView.js.map +1 -1
  13. package/dist/agents-view/AgentsWorkspaceView.d.ts +1 -1
  14. package/dist/agents-view/AgentsWorkspaceView.js +66 -53
  15. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  16. package/dist/agents-view/DateAgentsGroup.d.ts +17 -0
  17. package/dist/agents-view/DateAgentsGroup.js +8 -0
  18. package/dist/agents-view/DateAgentsGroup.js.map +1 -0
  19. package/dist/agents-view/ProfileAgentsGroup.d.ts +2 -2
  20. package/dist/agents-view/ProfileAgentsGroup.js +9 -5
  21. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  22. package/dist/agents-view/agentsNavStore.d.ts +8 -0
  23. package/dist/agents-view/agentsNavStore.js +24 -0
  24. package/dist/agents-view/agentsNavStore.js.map +1 -0
  25. package/dist/components/PageHeader.d.ts +5 -1
  26. package/dist/components/PageHeader.js +2 -2
  27. package/dist/components/PageHeader.js.map +1 -1
  28. package/dist/components/ui/LanguageSelector.d.ts +3 -1
  29. package/dist/components/ui/LanguageSelector.js +8 -4
  30. package/dist/components/ui/LanguageSelector.js.map +1 -1
  31. package/dist/components/ui/PlaceholderInput.d.ts +0 -8
  32. package/dist/components/ui/PlaceholderInput.js +1 -42
  33. package/dist/components/ui/PlaceholderInput.js.map +1 -1
  34. package/dist/components/ui/PlaceholderInputParser.d.ts +9 -0
  35. package/dist/components/ui/PlaceholderInputParser.js +98 -0
  36. package/dist/components/ui/PlaceholderInputParser.js.map +1 -0
  37. package/dist/components/ui/PlaceholderInputTypes.d.ts +1 -1
  38. package/dist/components/ui/UserPicker.d.ts +34 -0
  39. package/dist/components/ui/UserPicker.js +73 -0
  40. package/dist/components/ui/UserPicker.js.map +1 -0
  41. package/dist/components/ui/copy-button.js +2 -1
  42. package/dist/components/ui/copy-button.js.map +1 -1
  43. package/dist/components/ui/popover.js +22 -4
  44. package/dist/components/ui/popover.js.map +1 -1
  45. package/dist/components/ui/select.js +1 -2
  46. package/dist/components/ui/select.js.map +1 -1
  47. package/dist/config/config.js +15 -2
  48. package/dist/config/config.js.map +1 -1
  49. package/dist/editor/ContentTree.d.ts +14 -1
  50. package/dist/editor/ContentTree.js +69 -19
  51. package/dist/editor/ContentTree.js.map +1 -1
  52. package/dist/editor/Editor.js +5 -8
  53. package/dist/editor/Editor.js.map +1 -1
  54. package/dist/editor/EditorLoadingOverlay.d.ts +1 -0
  55. package/dist/editor/EditorLoadingOverlay.js +7 -0
  56. package/dist/editor/EditorLoadingOverlay.js.map +1 -0
  57. package/dist/editor/FieldActionsOverlay.js +31 -4
  58. package/dist/editor/FieldActionsOverlay.js.map +1 -1
  59. package/dist/editor/FieldListField.js +6 -1
  60. package/dist/editor/FieldListField.js.map +1 -1
  61. package/dist/editor/GlobalMenuBar.js +9 -6
  62. package/dist/editor/GlobalMenuBar.js.map +1 -1
  63. package/dist/editor/ai/AgentSharingSection.js +15 -2
  64. package/dist/editor/ai/AgentSharingSection.js.map +1 -1
  65. package/dist/editor/ai/Agents.js +2 -3
  66. package/dist/editor/ai/Agents.js.map +1 -1
  67. package/dist/editor/ai/InlineAiDialog.d.ts +5 -0
  68. package/dist/editor/ai/InlineAiDialog.js +77 -64
  69. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  70. package/dist/editor/ai/InlineAiTrigger.js +4 -0
  71. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  72. package/dist/editor/ai/agentTodoExtraction.d.ts +7 -1
  73. package/dist/editor/ai/agentTodoExtraction.js +33 -0
  74. package/dist/editor/ai/agentTodoExtraction.js.map +1 -1
  75. package/dist/editor/ai/terminal/components/AgentDocumentList.d.ts +13 -0
  76. package/dist/editor/ai/terminal/components/AgentDocumentList.js +61 -46
  77. package/dist/editor/ai/terminal/components/AgentDocumentList.js.map +1 -1
  78. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.d.ts +4 -3
  79. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js +6 -9
  80. package/dist/editor/ai/terminal/components/AgentProfileModelSettingsSection.js.map +1 -1
  81. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +10 -2
  82. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +42 -9
  83. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  84. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +19 -0
  85. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +71 -0
  86. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -0
  87. package/dist/editor/ai/terminal/components/AgentSettingsContent.d.ts +4 -3
  88. package/dist/editor/ai/terminal/components/AgentSettingsContent.js +2 -2
  89. package/dist/editor/ai/terminal/components/AgentSettingsContent.js.map +1 -1
  90. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +2 -0
  91. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
  92. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.js +4 -2
  93. package/dist/editor/ai/terminal/components/AgentTerminalContextPanels.js.map +1 -1
  94. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +3 -1
  95. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +2 -2
  96. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  97. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.d.ts +1 -1
  98. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.js +2 -2
  99. package/dist/editor/ai/terminal/components/AgentTerminalFullPromptControls.js.map +1 -1
  100. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +5 -1
  101. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +2 -2
  102. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
  103. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.d.ts +2 -1
  104. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +2 -2
  105. package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
  106. package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +2 -1
  107. package/dist/editor/ai/terminal/components/AgentTerminalView.js +7 -2
  108. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  109. package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +3 -1
  110. package/dist/editor/ai/terminal/components/ContextInfoBar.js +12 -3
  111. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  112. package/dist/editor/ai/terminal/components/EditOperationsPanel.d.ts +3 -1
  113. package/dist/editor/ai/terminal/components/EditOperationsPanel.js +13 -2
  114. package/dist/editor/ai/terminal/components/EditOperationsPanel.js.map +1 -1
  115. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.d.ts +5 -1
  116. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js +12 -12
  117. package/dist/editor/ai/terminal/components/QueuedPromptsPanel.js.map +1 -1
  118. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.d.ts +2 -1
  119. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.js +18 -14
  120. package/dist/editor/ai/terminal/components/SpawnedAgentsPanel.js.map +1 -1
  121. package/dist/editor/ai/terminal/components/TodoListPanel.d.ts +2 -1
  122. package/dist/editor/ai/terminal/components/TodoListPanel.js +10 -6
  123. package/dist/editor/ai/terminal/components/TodoListPanel.js.map +1 -1
  124. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +3 -2
  125. package/dist/editor/ai/terminal/useAgentSessionSync.d.ts +9 -1
  126. package/dist/editor/ai/terminal/useAgentSessionSync.js +7 -1
  127. package/dist/editor/ai/terminal/useAgentSessionSync.js.map +1 -1
  128. package/dist/editor/ai/terminal/useAgentSettingsNavigation.d.ts +3 -2
  129. package/dist/editor/ai/terminal/useAgentSettingsNavigation.js +3 -21
  130. package/dist/editor/ai/terminal/useAgentSettingsNavigation.js.map +1 -1
  131. package/dist/editor/ai/terminal/useAgentSettingsPanel.d.ts +3 -2
  132. package/dist/editor/ai/terminal/useAgentSettingsPanel.js +1 -2
  133. package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
  134. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +2 -2
  135. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
  136. package/dist/editor/ai/terminal/useAgentStatusBarContent.js +1 -1
  137. package/dist/editor/ai/terminal/useAgentStatusBarContent.js.map +1 -1
  138. package/dist/editor/ai/terminal/useAgentSubmitHandlers.d.ts +2 -1
  139. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js +122 -2
  140. package/dist/editor/ai/terminal/useAgentSubmitHandlers.js.map +1 -1
  141. package/dist/editor/ai/terminal/useAgentSubmitLifecycle.d.ts +1 -0
  142. package/dist/editor/ai/terminal/useAgentSubmitLifecycle.js +2 -1
  143. package/dist/editor/ai/terminal/useAgentSubmitLifecycle.js.map +1 -1
  144. package/dist/editor/ai/terminal/useAgentSubmitResponseHandler.js +1 -0
  145. package/dist/editor/ai/terminal/useAgentSubmitResponseHandler.js.map +1 -1
  146. package/dist/editor/ai/terminal/useAgentTerminalActions.d.ts +6 -5
  147. package/dist/editor/ai/terminal/useAgentTerminalActions.js +3 -10
  148. package/dist/editor/ai/terminal/useAgentTerminalActions.js.map +1 -1
  149. package/dist/editor/ai/terminal/useAgentTerminalController.js +45 -6
  150. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  151. package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +1 -0
  152. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +2 -1
  153. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -1
  154. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.d.ts +25 -0
  155. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js +187 -0
  156. package/dist/editor/ai/terminal/useAgentTextareaDropHandlers.js.map +1 -0
  157. package/dist/editor/client/AboutDialog.js +2 -1
  158. package/dist/editor/client/AboutDialog.js.map +1 -1
  159. package/dist/editor/client/EditorShell.js +118 -30
  160. package/dist/editor/client/EditorShell.js.map +1 -1
  161. package/dist/editor/client/editContext.d.ts +4 -1
  162. package/dist/editor/client/editContext.js.map +1 -1
  163. package/dist/editor/client/fieldModificationStore.d.ts +5 -2
  164. package/dist/editor/client/fieldModificationStore.js +31 -21
  165. package/dist/editor/client/fieldModificationStore.js.map +1 -1
  166. package/dist/editor/client/hooks/useEditorWebSocket.js +0 -47
  167. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  168. package/dist/editor/client/hooks/useSocketMessageHandler.d.ts +1 -0
  169. package/dist/editor/client/hooks/useSocketMessageHandler.js +47 -49
  170. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  171. package/dist/editor/client/itemsRepository.d.ts +8 -5
  172. package/dist/editor/client/itemsRepository.js +30 -37
  173. package/dist/editor/client/itemsRepository.js.map +1 -1
  174. package/dist/editor/client/operations.d.ts +8 -1
  175. package/dist/editor/client/operations.js +29 -9
  176. package/dist/editor/client/operations.js.map +1 -1
  177. package/dist/editor/client/ui/EditorChrome.js +7 -1
  178. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  179. package/dist/editor/commands/createVersionCommand.js +8 -2
  180. package/dist/editor/commands/createVersionCommand.js.map +1 -1
  181. package/dist/editor/field-types/DropLinkEditor.js +4 -1
  182. package/dist/editor/field-types/DropLinkEditor.js.map +1 -1
  183. package/dist/editor/field-types/MultiLineText.js +3 -1
  184. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  185. package/dist/editor/field-types/NameValueListEditor.js +4 -1
  186. package/dist/editor/field-types/NameValueListEditor.js.map +1 -1
  187. package/dist/editor/field-types/PictureFieldEditor.js +8 -4
  188. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -1
  189. package/dist/editor/field-types/RichTextEditorComponent.js +6 -2
  190. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  191. package/dist/editor/field-types/SingleLineText.js +3 -1
  192. package/dist/editor/field-types/SingleLineText.js.map +1 -1
  193. package/dist/editor/field-types/TreeListEditor.js +6 -1
  194. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  195. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +2 -1
  196. package/dist/editor/field-types/richtext/contextMenuFactory.js +7 -5
  197. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  198. package/dist/editor/hooks/useNavigationPanelLogic.d.ts +3 -3
  199. package/dist/editor/hooks/useNavigationPanelLogic.js +5 -5
  200. package/dist/editor/hooks/useNavigationPanelLogic.js.map +1 -1
  201. package/dist/editor/menubar/ItemLanguageVersion.d.ts +4 -1
  202. package/dist/editor/menubar/ItemLanguageVersion.js +11 -3
  203. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  204. package/dist/editor/menubar/VersionPreviewCard.js +26 -6
  205. package/dist/editor/menubar/VersionPreviewCard.js.map +1 -1
  206. package/dist/editor/menubar/VersionSelector.js +17 -6
  207. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  208. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.d.ts +7 -0
  209. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +37 -0
  210. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -0
  211. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +2 -2
  212. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  213. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +7 -11
  214. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  215. package/dist/editor/menubar/toolbar-sections/index.d.ts +1 -0
  216. package/dist/editor/menubar/toolbar-sections/index.js +1 -0
  217. package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
  218. package/dist/editor/notifications/useNotifications.js +11 -4
  219. package/dist/editor/notifications/useNotifications.js.map +1 -1
  220. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +3 -1
  221. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
  222. package/dist/editor/page-editor-chrome/FrameMenu.d.ts +4 -2
  223. package/dist/editor/page-editor-chrome/FrameMenu.js +33 -9
  224. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  225. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +4 -2
  226. package/dist/editor/page-editor-chrome/InlineEditor.js +125 -20
  227. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  228. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +4 -2
  229. package/dist/editor/page-editor-chrome/PageEditorChrome.js +16 -3
  230. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  231. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +36 -13
  232. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
  233. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js +24 -4
  234. package/dist/editor/page-editor-chrome/VersionDiffHighlightings.js.map +1 -1
  235. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +52 -22
  236. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  237. package/dist/editor/page-viewer/MiniMap.js +29 -21
  238. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  239. package/dist/editor/page-viewer/PageViewer.d.ts +4 -2
  240. package/dist/editor/page-viewer/PageViewer.js +14 -6
  241. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  242. package/dist/editor/page-viewer/PageViewerFrame.d.ts +4 -2
  243. package/dist/editor/page-viewer/PageViewerFrame.js +171 -52
  244. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  245. package/dist/editor/reviews/Comment.js +24 -0
  246. package/dist/editor/reviews/Comment.js.map +1 -1
  247. package/dist/editor/services/agentService.d.ts +18 -1
  248. package/dist/editor/services/agentService.js +34 -3
  249. package/dist/editor/services/agentService.js.map +1 -1
  250. package/dist/editor/services/aiService.d.ts +0 -36
  251. package/dist/editor/services/aiService.js +7 -64
  252. package/dist/editor/services/aiService.js.map +1 -1
  253. package/dist/editor/services/manualService.d.ts +31 -0
  254. package/dist/editor/services/manualService.js +77 -0
  255. package/dist/editor/services/manualService.js.map +1 -0
  256. package/dist/editor/services/serviceHelper.js +0 -14
  257. package/dist/editor/services/serviceHelper.js.map +1 -1
  258. package/dist/editor/services/systemService.d.ts +4 -0
  259. package/dist/editor/services/systemService.js +3 -0
  260. package/dist/editor/services/systemService.js.map +1 -1
  261. package/dist/editor/services/userService.d.ts +6 -0
  262. package/dist/editor/services/userService.js +13 -0
  263. package/dist/editor/services/userService.js.map +1 -0
  264. package/dist/editor/settings/About.js +178 -1
  265. package/dist/editor/settings/About.js.map +1 -1
  266. package/dist/editor/settings/QuotaInfo.js +7 -7
  267. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  268. package/dist/editor/settings/QuotaUserPicker.js +15 -55
  269. package/dist/editor/settings/QuotaUserPicker.js.map +1 -1
  270. package/dist/editor/settings/SettingsBreadcrumb.js +1 -1
  271. package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
  272. package/dist/editor/settings/SettingsView.js +1 -1
  273. package/dist/editor/settings/SettingsView.js.map +1 -1
  274. package/dist/editor/settings/panels/AgentProfileConfigPanel.d.ts +2 -1
  275. package/dist/editor/settings/panels/AgentProfileConfigPanel.js +4 -2
  276. package/dist/editor/settings/panels/AgentProfileConfigPanel.js.map +1 -1
  277. package/dist/editor/settings/panels/AgentProfileEditorPanel.d.ts +1 -0
  278. package/dist/editor/settings/panels/AgentProfileEditorPanel.js +1 -1
  279. package/dist/editor/settings/panels/AgentProfileEditorPanel.js.map +1 -1
  280. package/dist/editor/settings/panels/AgentsPanel.js +15 -10
  281. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  282. package/dist/editor/settings/panels/ClusterInstancesPanel.js +37 -10
  283. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  284. package/dist/editor/settings/panels/CreateMcpServerDialog.d.ts +7 -0
  285. package/dist/editor/settings/panels/CreateMcpServerDialog.js +71 -0
  286. package/dist/editor/settings/panels/CreateMcpServerDialog.js.map +1 -0
  287. package/dist/editor/settings/panels/JavaScriptToolsPanel.js +13 -17
  288. package/dist/editor/settings/panels/JavaScriptToolsPanel.js.map +1 -1
  289. package/dist/editor/settings/panels/McpToolsPanel.js +17 -8
  290. package/dist/editor/settings/panels/McpToolsPanel.js.map +1 -1
  291. package/dist/editor/settings/panels/ModelsPanel.js +92 -56
  292. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  293. package/dist/editor/settings/panels/ProvidersPanel.js +46 -47
  294. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  295. package/dist/editor/settings/panels/SearchConfigPanel.js +2 -2
  296. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  297. package/dist/editor/settings/panels/UserPreferencesPanel.d.ts +2 -0
  298. package/dist/editor/settings/panels/UserPreferencesPanel.js +17 -0
  299. package/dist/editor/settings/panels/UserPreferencesPanel.js.map +1 -0
  300. package/dist/editor/settings/panels/index.d.ts +1 -0
  301. package/dist/editor/settings/panels/index.js +1 -0
  302. package/dist/editor/settings/panels/index.js.map +1 -1
  303. package/dist/editor/sidebar/EditHistory.js +18 -3
  304. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  305. package/dist/editor/sidebar/LabelButton.d.ts +3 -3
  306. package/dist/editor/sidebar/LabelButton.js +4 -4
  307. package/dist/editor/sidebar/LabelButton.js.map +1 -1
  308. package/dist/editor/sidebar/MobileWorkspacePopover.d.ts +2 -2
  309. package/dist/editor/sidebar/MobileWorkspacePopover.js +2 -2
  310. package/dist/editor/sidebar/MobileWorkspacePopover.js.map +1 -1
  311. package/dist/editor/sidebar/NavigationPanelItem.js +3 -3
  312. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  313. package/dist/editor/sidebar/WorkspaceButton.d.ts +3 -1
  314. package/dist/editor/sidebar/WorkspaceButton.js +15 -7
  315. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
  316. package/dist/editor/sidebar/WorkspaceRail.js +6 -5
  317. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  318. package/dist/editor/sidebar/WorkspaceRailMobile.js +2 -2
  319. package/dist/editor/sidebar/WorkspaceRailMobile.js.map +1 -1
  320. package/dist/editor/ui/ItemCollectionEditor.d.ts +27 -3
  321. package/dist/editor/ui/ItemCollectionEditor.js +44 -5
  322. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  323. package/dist/editor/ui/PerfectTree.js +1 -1
  324. package/dist/editor/ui/PerfectTree.js.map +1 -1
  325. package/dist/editor/utils.js +33 -11
  326. package/dist/editor/utils.js.map +1 -1
  327. package/dist/editor/version-diff/versionDiffTargets.js +7 -1
  328. package/dist/editor/version-diff/versionDiffTargets.js.map +1 -1
  329. package/dist/editor/views/EditorSlot.js +3 -2
  330. package/dist/editor/views/EditorSlot.js.map +1 -1
  331. package/dist/editor/views/ItemEditorPane.d.ts +11 -0
  332. package/dist/editor/views/ItemEditorPane.js +19 -0
  333. package/dist/editor/views/ItemEditorPane.js.map +1 -0
  334. package/dist/editor/views/editorSlotContext.d.ts +2 -0
  335. package/dist/editor/views/editorSlotContext.js +3 -0
  336. package/dist/editor/views/editorSlotContext.js.map +1 -1
  337. package/dist/index.d.ts +10 -0
  338. package/dist/index.js +7 -0
  339. package/dist/index.js.map +1 -1
  340. package/dist/revision.d.ts +2 -2
  341. package/dist/revision.js +2 -2
  342. package/dist/setup/services/setupWizardService.d.ts +10 -0
  343. package/dist/setup/services/setupWizardService.js +7 -0
  344. package/dist/setup/services/setupWizardService.js.map +1 -1
  345. package/dist/task-board/TaskBoardWorkspace.js +1 -0
  346. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  347. package/dist/task-board/components/ProjectExecutionUserPicker.js +15 -61
  348. package/dist/task-board/components/ProjectExecutionUserPicker.js.map +1 -1
  349. package/dist/task-board/components/ProjectListContent.d.ts +1 -0
  350. package/dist/task-board/components/ProjectListContent.js.map +1 -1
  351. package/dist/task-board/components/ProjectSelector.d.ts +1 -0
  352. package/dist/task-board/components/ProjectSelector.js +7 -1
  353. package/dist/task-board/components/ProjectSelector.js.map +1 -1
  354. package/dist/task-board/components/TaskBoardTitlebar.js +1 -1
  355. package/dist/task-board/components/TaskBoardTitlebar.js.map +1 -1
  356. package/dist/task-board/taskBoardNavStore.d.ts +1 -0
  357. package/dist/task-board/taskBoardNavStore.js +1 -0
  358. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  359. package/dist/types.d.ts +2 -1
  360. package/package.json +1 -1
  361. package/dist/agents-view/AgentsInbox.d.ts +0 -26
  362. package/dist/agents-view/AgentsInbox.js +0 -31
  363. package/dist/agents-view/AgentsInbox.js.map +0 -1
  364. package/dist/editor/ai/agentDiagnostics.test.d.ts +0 -1
  365. package/dist/editor/ai/agentDiagnostics.test.js +0 -298
  366. package/dist/editor/ai/agentDiagnostics.test.js.map +0 -1
  367. package/dist/editor/ai/terminal/agentQuestionnaireTranscriptRecovery.test.d.ts +0 -1
  368. package/dist/editor/ai/terminal/agentQuestionnaireTranscriptRecovery.test.js +0 -109
  369. package/dist/editor/ai/terminal/agentQuestionnaireTranscriptRecovery.test.js.map +0 -1
  370. package/dist/editor/ai/terminal/agentSessionSelectors.test.d.ts +0 -1
  371. package/dist/editor/ai/terminal/agentSessionSelectors.test.js +0 -219
  372. package/dist/editor/ai/terminal/agentSessionSelectors.test.js.map +0 -1
  373. package/dist/editor/ai/terminal/agentSessionSnapshot.test.d.ts +0 -1
  374. package/dist/editor/ai/terminal/agentSessionSnapshot.test.js +0 -136
  375. package/dist/editor/ai/terminal/agentSessionSnapshot.test.js.map +0 -1
  376. package/dist/editor/ai/terminal/agentSessionState.test.d.ts +0 -1
  377. package/dist/editor/ai/terminal/agentSessionState.test.js +0 -476
  378. package/dist/editor/ai/terminal/agentSessionState.test.js.map +0 -1
  379. package/dist/editor/ai/terminal/useAgentInitialPrompt.test.d.ts +0 -1
  380. package/dist/editor/ai/terminal/useAgentInitialPrompt.test.js +0 -63
  381. package/dist/editor/ai/terminal/useAgentInitialPrompt.test.js.map +0 -1
  382. package/dist/editor/ai/terminal/useAgentPendingDialogRecovery.test.d.ts +0 -1
  383. package/dist/editor/ai/terminal/useAgentPendingDialogRecovery.test.js +0 -80
  384. package/dist/editor/ai/terminal/useAgentPendingDialogRecovery.test.js.map +0 -1
  385. package/dist/editor/ai/terminal/useAgentQuestionnaireDialogRecovery.test.d.ts +0 -1
  386. package/dist/editor/ai/terminal/useAgentQuestionnaireDialogRecovery.test.js +0 -135
  387. package/dist/editor/ai/terminal/useAgentQuestionnaireDialogRecovery.test.js.map +0 -1
  388. package/dist/editor/ai/terminal/useAgentSession.test.d.ts +0 -1
  389. package/dist/editor/ai/terminal/useAgentSession.test.js +0 -181
  390. package/dist/editor/ai/terminal/useAgentSession.test.js.map +0 -1
  391. package/dist/editor/ai/terminal/useAgentSubmitHandlers.test.d.ts +0 -1
  392. package/dist/editor/ai/terminal/useAgentSubmitHandlers.test.js +0 -88
  393. package/dist/editor/ai/terminal/useAgentSubmitHandlers.test.js.map +0 -1
  394. package/dist/editor/ai/useAgentPanes.test.d.ts +0 -1
  395. package/dist/editor/ai/useAgentPanes.test.js +0 -198
  396. package/dist/editor/ai/useAgentPanes.test.js.map +0 -1
  397. package/dist/editor/debugSessionLog.d.ts +0 -9
  398. package/dist/editor/debugSessionLog.js +0 -19
  399. package/dist/editor/debugSessionLog.js.map +0 -1
  400. package/dist/editor/services/agentDialogService.test.d.ts +0 -1
  401. package/dist/editor/services/agentDialogService.test.js +0 -56
  402. package/dist/editor/services/agentDialogService.test.js.map +0 -1
  403. package/dist/editor/services/agentSubscriptionRegistry.test.d.ts +0 -1
  404. package/dist/editor/services/agentSubscriptionRegistry.test.js +0 -104
  405. package/dist/editor/services/agentSubscriptionRegistry.test.js.map +0 -1
  406. package/dist/test/setup.d.ts +0 -0
  407. package/dist/test/setup.js +0 -37
  408. package/dist/test/setup.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { useState, useEffect, useRef, useCallback, useSyncExternalStore, useMemo, startTransition, } from "react";
3
+ import React, { useState, useEffect, useRef, useCallback, useMemo, startTransition, } from "react";
4
4
  import { toast } from "sonner";
5
5
  import { EditContextProvider, FieldsEditContextProvider, OperationsContextProvider, useEditContext, } from "./editContext";
6
- import { fieldModificationStore } from "./fieldModificationStore";
6
+ import { aggregateModifiedFieldsFromStores, areModifiedFieldSnapshotsEqual, FieldModificationStore, } from "./fieldModificationStore";
7
7
  import { SplashScreenAgentProvider } from "../../splash-screen/SplashScreenAgentContext";
8
8
  import { useRouter, useSearchParams, usePathname } from "./navigation";
9
9
  import { findComponent, getComponentById } from "../componentTreeHelper";
@@ -57,6 +57,7 @@ import { useWorkbox } from "./hooks/useWorkbox";
57
57
  import { useMediaSelector } from "./hooks/useMediaSelector";
58
58
  import { useGlobalEditorKeyDown } from "./hooks/useGlobalEditorKeyDown";
59
59
  import { useStartupChecks } from "../settings/status/index";
60
+ import { EditorLoadingOverlay } from "../EditorLoadingOverlay";
60
61
  import { FeatureGate, LicenseFeatures, LicenseProvider, LicenseOverlay, } from "../../licensing";
61
62
  // Sentinel written to the `sidebar` URL param when the user has explicitly closed
62
63
  // every sidebar. Distinguishes "no preference yet" (param absent) from "user wants
@@ -372,6 +373,25 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
372
373
  activeSlotIdRef.current = activeSlotId;
373
374
  }, [activeSlotId]);
374
375
  const [slotContexts, setSlotContexts] = useState(() => new Map());
376
+ const fieldModificationStoresBySlotRef = useRef(new Map());
377
+ const [fieldModificationStoreRegistryRevision, setFieldModificationStoreRegistryRevision,] = useState(0);
378
+ const getFieldModificationStoreForSlot = useCallback((slotId) => {
379
+ let store = fieldModificationStoresBySlotRef.current.get(slotId);
380
+ if (!store) {
381
+ store = new FieldModificationStore();
382
+ fieldModificationStoresBySlotRef.current.set(slotId, store);
383
+ }
384
+ return store;
385
+ }, []);
386
+ const getFieldModificationStores = useCallback(() => {
387
+ return Array.from(fieldModificationStoresBySlotRef.current.values());
388
+ }, []);
389
+ const ensureFieldModificationStoreRegistered = useCallback((slotId) => {
390
+ if (fieldModificationStoresBySlotRef.current.has(slotId))
391
+ return;
392
+ fieldModificationStoresBySlotRef.current.set(slotId, new FieldModificationStore());
393
+ setFieldModificationStoreRegistryRevision((previous) => previous + 1);
394
+ }, []);
375
395
  const promptSessionReconnect = useCallback((reason) => {
376
396
  const description = reason && reason !== "session-revoked"
377
397
  ? `${reason}. Click reconnect to continue in this browser.`
@@ -445,7 +465,23 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
445
465
  const [itemLanguages, setItemLanguages] = useState([]);
446
466
  const [itemVersions, setItemVersions] = useState([]);
447
467
  const [isLoadingVersions, setIsLoadingVersions] = useState(false);
448
- const modifiedFields = useSyncExternalStore((onStoreChange) => fieldModificationStore.subscribeAll(onStoreChange), () => fieldModificationStore.getAllFields(), () => fieldModificationStore.getAllFields());
468
+ const [modifiedFields, setModifiedFields] = useState([]);
469
+ useEffect(() => {
470
+ const stores = getFieldModificationStores();
471
+ const recomputeModifiedFields = () => {
472
+ const next = aggregateModifiedFieldsFromStores(stores);
473
+ setModifiedFields((previous) => areModifiedFieldSnapshotsEqual(previous, next) ? previous : next);
474
+ };
475
+ const unsubscribes = stores.map((store) => store.subscribeAll(recomputeModifiedFields));
476
+ recomputeModifiedFields();
477
+ return () => {
478
+ unsubscribes.forEach((unsubscribe) => unsubscribe());
479
+ };
480
+ }, [
481
+ editorSlots,
482
+ fieldModificationStoreRegistryRevision,
483
+ getFieldModificationStores,
484
+ ]);
449
485
  const [comments, setComments] = useState([]);
450
486
  const [suggestedEdits, setSuggestedEdits] = useState([]);
451
487
  const [showSuggestedEdits, setShowSuggestedEdits] = useState(false);
@@ -648,7 +684,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
648
684
  // Track the current page item descriptor for itemsRepository
649
685
  const [currentPageItem, setCurrentPageItem] = useState();
650
686
  // Create itemsRepository with current page item (will be updated when page loads)
651
- const itemsRepository = useItemsRepository(addRecentEdit, currentPageItem);
687
+ const itemsRepository = useItemsRepository(addRecentEdit, currentPageItem, getFieldModificationStores);
652
688
  const fallbackPageViewContext = usePageViewContext({
653
689
  pageItemDescriptor: currentItemDescriptor,
654
690
  itemsRepository,
@@ -682,9 +718,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
682
718
  }, []);
683
719
  const slotContextsRef = useRef(slotContexts);
684
720
  const lastActiveSlotContextRef = useRef(null);
685
- useEffect(() => {
686
- slotContextsRef.current = slotContexts;
687
- }, [slotContexts]);
721
+ slotContextsRef.current = slotContexts;
688
722
  const getActiveSlotContext = useCallback(() => {
689
723
  const activeId = activeSlotIdRef.current;
690
724
  if (!activeId)
@@ -1481,6 +1515,8 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1481
1515
  const historyModeRef = useRef(historyMode);
1482
1516
  const itemRef = useRef(item);
1483
1517
  const historySearchQueryRef = useRef(historySearchQuery);
1518
+ const showOnlyMyChangesRef = useRef(showOnlyMyChanges);
1519
+ const filterByCurrentLanguageRef = useRef(filterByCurrentLanguage);
1484
1520
  useEffect(() => {
1485
1521
  historyModeRef.current = historyMode;
1486
1522
  }, [historyMode]);
@@ -1490,6 +1526,12 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1490
1526
  useEffect(() => {
1491
1527
  historySearchQueryRef.current = historySearchQuery;
1492
1528
  }, [historySearchQuery]);
1529
+ useEffect(() => {
1530
+ showOnlyMyChangesRef.current = showOnlyMyChanges;
1531
+ }, [showOnlyMyChanges]);
1532
+ useEffect(() => {
1533
+ filterByCurrentLanguageRef.current = filterByCurrentLanguage;
1534
+ }, [filterByCurrentLanguage]);
1493
1535
  // Mirror the backend LIKE filter on MainItemPath/Title/Description so that
1494
1536
  // ops arriving via WebSocket while a search is active don't bypass the filter.
1495
1537
  const matchesHistorySearchQuery = useCallback((op) => {
@@ -1768,6 +1810,34 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1768
1810
  : filterByCurrentLanguage;
1769
1811
  const trimmedHistoryQuery = historySearchQuery.trim();
1770
1812
  const historyQuery = trimmedHistoryQuery.length > 0 ? trimmedHistoryQuery : undefined;
1813
+ const requestMode = currentMode;
1814
+ const requestSearchQuery = trimmedHistoryQuery;
1815
+ const requestItem = item?.descriptor;
1816
+ const requestLanguage = item?.descriptor?.language || currentItemDescriptor?.language;
1817
+ const isStaleHistoryResponse = () => {
1818
+ if (historyModeRef.current !== requestMode)
1819
+ return true;
1820
+ if ((historySearchQueryRef.current || "").trim() !== requestSearchQuery) {
1821
+ return true;
1822
+ }
1823
+ if (showOnlyMyChangesRef.current !== shouldFilterBySession)
1824
+ return true;
1825
+ if (filterByCurrentLanguageRef.current !== shouldFilterByLanguage) {
1826
+ return true;
1827
+ }
1828
+ const latestItem = itemRef.current?.descriptor;
1829
+ if (requestMode !== "global") {
1830
+ return (!latestItem ||
1831
+ !requestItem ||
1832
+ latestItem.id !== requestItem.id ||
1833
+ latestItem.language !== requestItem.language ||
1834
+ latestItem.version !== requestItem.version);
1835
+ }
1836
+ return (shouldFilterByLanguage &&
1837
+ !!requestLanguage &&
1838
+ !!latestItem?.language &&
1839
+ latestItem.language !== requestLanguage);
1840
+ };
1771
1841
  if (currentMode === "global") {
1772
1842
  // Global mode: optionally filter by session and/or language
1773
1843
  const currentLanguage = item?.descriptor?.language || currentItemDescriptor?.language;
@@ -1783,6 +1853,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1783
1853
  console.error("[EditorShell] Failed to load history:", result);
1784
1854
  return;
1785
1855
  }
1856
+ if (isStaleHistoryResponse()) {
1857
+ return;
1858
+ }
1786
1859
  setEditHistory((prev) => {
1787
1860
  const next = normalizeEditHistoryPayload(result.data);
1788
1861
  const scope = {
@@ -1870,6 +1943,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
1870
1943
  console.error("[EditorShell] Failed to load item history:", result);
1871
1944
  return;
1872
1945
  }
1946
+ if (isStaleHistoryResponse()) {
1947
+ return;
1948
+ }
1873
1949
  let operations = normalizeEditHistoryPayload(result.data);
1874
1950
  // Client-side version filtering for current-version mode
1875
1951
  if (currentMode === "current-version") {
@@ -2263,15 +2339,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2263
2339
  setItem(item);
2264
2340
  if (!item)
2265
2341
  return;
2266
- if (itemRef.current?.descriptor.id === currentItemDescriptor.id &&
2267
- itemRef.current?.descriptor.language ===
2268
- currentItemDescriptor.language &&
2269
- itemRef.current?.descriptor.version !== item.version) {
2270
- showInfoToast({
2271
- summary: "New version!",
2272
- details: "New version of item loaded",
2273
- });
2274
- }
2275
2342
  }
2276
2343
  load();
2277
2344
  }, [itemsRepository.revision]);
@@ -2359,6 +2426,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2359
2426
  (activeSlotIdRef.current == null ||
2360
2427
  existingSlotForItem.slotId === activeSlotIdRef.current)) {
2361
2428
  const isExistingSlotActive = existingSlotForItem.slotId === activeSlotIdRef.current;
2429
+ ensureFieldModificationStoreRegistered(existingSlotForItem.slotId);
2362
2430
  if (isExistingSlotActive) {
2363
2431
  latestGlobalLoadKeyRef.current = requestedItemKey;
2364
2432
  }
@@ -2417,6 +2485,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2417
2485
  : (activeSlotId ?? editorSlots[0]?.slotId ?? null));
2418
2486
  if (!targetSlotId)
2419
2487
  return undefined;
2488
+ ensureFieldModificationStoreRegistered(targetSlotId);
2420
2489
  setEditorSlots((prev) => {
2421
2490
  if (shouldOpenNewSlot && !options?.targetSlotId) {
2422
2491
  const existingIdx = prev.findIndex((s) => s.slotId === targetSlotId);
@@ -2494,6 +2563,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2494
2563
  activeSlotId,
2495
2564
  item,
2496
2565
  workspaceId,
2566
+ ensureFieldModificationStoreRegistered,
2497
2567
  ]);
2498
2568
  const setActiveSlot = useCallback(async (slotId) => {
2499
2569
  if (activeSlotId === slotId)
@@ -2536,6 +2606,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2536
2606
  // Remove the slot
2537
2607
  setEditorSlots((prev) => prev.filter((s) => s.slotId !== slotId));
2538
2608
  unregisterSlotContext(slotId);
2609
+ if (fieldModificationStoresBySlotRef.current.delete(slotId)) {
2610
+ setFieldModificationStoreRegistryRevision((previous) => previous + 1);
2611
+ }
2539
2612
  // Activate the next slot if we closed the active one
2540
2613
  if (isClosingActiveSlot) {
2541
2614
  if (nextActiveSlotId) {
@@ -2603,6 +2676,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
2603
2676
  layoutMode,
2604
2677
  setFocusFieldComponentId,
2605
2678
  setInsertMode,
2679
+ getActiveSlotContext,
2680
+ getFieldModificationStoreForSlot,
2681
+ getActiveSlotId,
2606
2682
  };
2607
2683
  useEffect(() => {
2608
2684
  if (currentOverlay !== "fields")
@@ -3227,9 +3303,10 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3227
3303
  return false;
3228
3304
  if (!isTaskboardWorkspace && isTaskboardSidebar)
3229
3305
  return false;
3230
- // Always show agents-panel regardless of workspace settings.
3306
+ // Keep agents-panel broadly available, except in dedicated workspaces
3307
+ // that own their full surface.
3231
3308
  if (s.id === "agents-panel") {
3232
- return true;
3309
+ return targetWorkspaceId !== "translation-management";
3233
3310
  }
3234
3311
  // If no workspace settings or no sidebars defined for current workspace, show all.
3235
3312
  if (workspaceAllowedSidebarIds.length === 0) {
@@ -3377,7 +3454,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3377
3454
  }
3378
3455
  // Fallback: indexOf-based replacement/insertion for plain text fields
3379
3456
  const { fieldId, item } = focusedField;
3380
- const modifiedField = fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3457
+ const modifiedField = getActiveSlotContext()?.fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3381
3458
  const currentValue = modifiedField
3382
3459
  ? modifiedField.value || ""
3383
3460
  : (await itemsRepository.getField(focusedField))?.value ||
@@ -3416,7 +3493,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3416
3493
  catch (error) {
3417
3494
  console.error("Failed to replace/insert text:", error);
3418
3495
  }
3419
- }, [selectedRange, focusedField, itemsRepository, operations]);
3496
+ }, [
3497
+ selectedRange,
3498
+ focusedField,
3499
+ itemsRepository,
3500
+ operations,
3501
+ getActiveSlotContext,
3502
+ ]);
3420
3503
  // Insert text at cursor position (for when there's no selection)
3421
3504
  const insertTextAtCursor = useCallback(async (newText) => {
3422
3505
  if (!focusedField)
@@ -3457,7 +3540,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3457
3540
  }
3458
3541
  // Fallback: use field value length (append)
3459
3542
  const { fieldId, item } = focusedField;
3460
- const modifiedField = fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3543
+ const modifiedField = getActiveSlotContext()?.fieldModificationStore.getField(fieldId, item.id, item.language, item.version);
3461
3544
  const currentValue = modifiedField
3462
3545
  ? modifiedField.value || ""
3463
3546
  : (await itemsRepository.getField(focusedField))?.value ||
@@ -3476,7 +3559,13 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
3476
3559
  catch (error) {
3477
3560
  console.error("Failed to insert text at cursor:", error);
3478
3561
  }
3479
- }, [focusedField, selectedRange, itemsRepository, operations]);
3562
+ }, [
3563
+ focusedField,
3564
+ selectedRange,
3565
+ itemsRepository,
3566
+ operations,
3567
+ getActiveSlotContext,
3568
+ ]);
3480
3569
  // Cleanup pending debounced operations on unmount to prevent stuck "saving" states
3481
3570
  useEffect(() => {
3482
3571
  return () => {
@@ -4377,6 +4466,7 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4377
4466
  unregisterSlotContext,
4378
4467
  getActiveSlotContext,
4379
4468
  getActiveSlotId,
4469
+ getFieldModificationStoreForSlot,
4380
4470
  closeEditorSlot,
4381
4471
  setActiveSlot,
4382
4472
  revision,
@@ -4645,6 +4735,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4645
4735
  showAgentsPanel,
4646
4736
  handleSetShowAgentsPanel,
4647
4737
  activeSlotId,
4738
+ editorSlots,
4739
+ slotContexts,
4740
+ getFieldModificationStoreForSlot,
4648
4741
  isEditorFormHiddenForSlot,
4649
4742
  setEditorFormHiddenForSlot,
4650
4743
  editorFormHintSeen,
@@ -4681,9 +4774,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4681
4774
  const fieldsEditContext = {
4682
4775
  modifiedFields,
4683
4776
  recentEdits,
4684
- clearModifiedFields: () => {
4685
- fieldModificationStore.clear();
4686
- },
4687
4777
  clearRecentEdits: () => {
4688
4778
  setRecentEdits([]);
4689
4779
  },
@@ -4932,9 +5022,6 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4932
5022
  selection,
4933
5023
  workspaceId,
4934
5024
  ]);
4935
- useEffect(() => {
4936
- fieldsEditContext.clearModifiedFields();
4937
- }, [currentItemDescriptor]);
4938
5025
  if (!currentWorkspace)
4939
5026
  return null;
4940
5027
  const editorUi = fullscreen ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "fixed inset-0 flex", children: [_jsx(PageViewerFrame, { compareView: compareMode, pageViewContext: activePageViewContext }), _jsx(FullscreenControls, { device: activePageViewContext.device, setDevice: (d) => activePageViewContext.setDevice(d), canExit: !configuration.forceFullscreen, onExit: () => setFullscreen(false), firstMobileDeviceName: configuration.devices[0]?.name })] }), showFullscreenHint && !configuration.forceFullscreen && !isMobile && (_jsx("div", { className: "fixed inset-0 z-10000", onMouseMoveCapture: () => {
@@ -4953,8 +5040,9 @@ export function EditorShell({ configuration, className, item: loadItemDescriptor
4953
5040
  : window.location.pathname;
4954
5041
  window.history.replaceState(getCurrentHistoryState(), "", newUrl);
4955
5042
  }, configuration: configuration, restoredFromUrl: tourRestoredRef.current })), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(GuidanceOverlay, {}) }), _jsx(FeatureGate, { feature: LicenseFeatures.AI, children: _jsx(AgentDialogHandler, {}) })] }));
4956
- return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children: _jsxs(SplashScreenAgentProvider, { children: [_jsx(DevModeIndicator, {}), startupChecks.state === "loading" && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-white/70 backdrop-blur-[1px]", children: _jsx("div", { className: "flex items-center gap-3 rounded-md border border-gray-200 bg-white px-4 py-3 text-gray-700 shadow-sm", children: _jsx(Spinner, { size: "xl" }) }) })), editContext.isRefreshing && (_jsx("div", { className: "pointer-events-none fixed right-0 bottom-0 flex h-24 w-24 items-center justify-center text-gray-600 opacity-50 select-none", children: _jsx(Spinner, {}) })), (currentWorkspace.id === "agents" ||
4957
- currentWorkspace.id === "taskboard") &&
5043
+ return (_jsx(LicenseProvider, { initialLicenseStatus: initialLicenseStatus, initialStatusLoaded: initialLicenseStatusLoaded, children: _jsx("div", { className: `editor h-full w-full`, children: _jsx(OperationsContextProvider, { value: operationsContext.context, children: _jsx(FieldsEditContextProvider, { value: fieldsEditContext, children: _jsx(EditContextProvider, { value: editContext, children: _jsxs(SplashScreenAgentProvider, { children: [_jsx(DevModeIndicator, {}), startupChecks.state === "loading" && (_jsx(EditorLoadingOverlay, {})), editContext.isRefreshing && (_jsx("div", { className: "pointer-events-none fixed right-0 bottom-0 flex h-24 w-24 items-center justify-center text-gray-600 opacity-50 select-none", children: _jsx(Spinner, {}) })), (currentWorkspace.id === "agents" ||
5044
+ currentWorkspace.id === "taskboard" ||
5045
+ currentWorkspace.id === "translation-management") &&
4958
5046
  showAgentsWorkspaceEditor && (_jsx(AgentsSlotContextBridgeHost, { slots: editorSlots })), startupChecks.state !== "loading" && (children || editorUi), startupChecks.state !== "loading" && dialog, _jsx(Toaster, { position: "top-center" }), " ", _jsx(ConfirmationDialog, { ref: confirmationDialogRef }), _jsx(ConcurrentUserLimitDialog, { open: concurrentUserLimitError !== null, onOpenChange: (open) => {
4959
5047
  if (!open) {
4960
5048
  setConcurrentUserLimitError(null);