@parhelia/core 0.1.12895 → 0.1.12900

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 (552) hide show
  1. package/dist/agents-view/AgentCard.js +1 -1
  2. package/dist/agents-view/AgentCard.js.map +1 -1
  3. package/dist/agents-view/AgentProfileIcon.d.ts +1 -1
  4. package/dist/agents-view/AgentProfileIcon.js +4 -0
  5. package/dist/agents-view/AgentProfileIcon.js.map +1 -1
  6. package/dist/agents-view/AgentsWorkspaceView.js +10 -24
  7. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  8. package/dist/agents-view/ProfileAgentsGroup.js +2 -3
  9. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  10. package/dist/components/MarkdownDisplay.js +1 -1
  11. package/dist/components/MarkdownDisplay.js.map +1 -1
  12. package/dist/components/SearchInput.d.ts +1 -0
  13. package/dist/components/SearchInput.js +2 -2
  14. package/dist/components/SearchInput.js.map +1 -1
  15. package/dist/components/ui/LanguageSelectionGrid.js +2 -1
  16. package/dist/components/ui/LanguageSelectionGrid.js.map +1 -1
  17. package/dist/components/ui/LanguageSelector.d.ts +2 -1
  18. package/dist/components/ui/LanguageSelector.js +3 -3
  19. package/dist/components/ui/LanguageSelector.js.map +1 -1
  20. package/dist/components/ui/badge.d.ts +5 -1
  21. package/dist/components/ui/badge.js +8 -3
  22. package/dist/components/ui/badge.js.map +1 -1
  23. package/dist/components/ui/button.js +4 -5
  24. package/dist/components/ui/button.js.map +1 -1
  25. package/dist/components/ui/checkbox.js +1 -1
  26. package/dist/components/ui/checkbox.js.map +1 -1
  27. package/dist/components/ui/command.js +1 -1
  28. package/dist/components/ui/command.js.map +1 -1
  29. package/dist/components/ui/context-menu.d.ts +13 -0
  30. package/dist/components/ui/context-menu.js +61 -57
  31. package/dist/components/ui/context-menu.js.map +1 -1
  32. package/dist/components/ui/dropdown-menu.js +4 -4
  33. package/dist/components/ui/dropdown-menu.js.map +1 -1
  34. package/dist/components/ui/input.js +2 -2
  35. package/dist/components/ui/input.js.map +1 -1
  36. package/dist/components/ui/switch.js +1 -1
  37. package/dist/components/ui/switch.js.map +1 -1
  38. package/dist/components/ui/textarea.js +1 -1
  39. package/dist/components/ui/textarea.js.map +1 -1
  40. package/dist/config/config.js +40 -15
  41. package/dist/config/config.js.map +1 -1
  42. package/dist/config/notificationRoutes.js +2 -2
  43. package/dist/config/notificationRoutes.js.map +1 -1
  44. package/dist/editor/ContentTree.js +13 -5
  45. package/dist/editor/ContentTree.js.map +1 -1
  46. package/dist/editor/ContextMenu.js +4 -6
  47. package/dist/editor/ContextMenu.js.map +1 -1
  48. package/dist/editor/FieldListField.js +14 -7
  49. package/dist/editor/FieldListField.js.map +1 -1
  50. package/dist/editor/GlobalMenuBar.js +1 -2
  51. package/dist/editor/GlobalMenuBar.js.map +1 -1
  52. package/dist/editor/ImageEditor.js +1 -1
  53. package/dist/editor/ImageEditor.js.map +1 -1
  54. package/dist/editor/LinkEditorDialog.js +13 -0
  55. package/dist/editor/LinkEditorDialog.js.map +1 -1
  56. package/dist/editor/MainLayout.js +66 -9
  57. package/dist/editor/MainLayout.js.map +1 -1
  58. package/dist/editor/Titlebar.js +1 -1
  59. package/dist/editor/Titlebar.js.map +1 -1
  60. package/dist/editor/WorkspaceTitleSwitcher.js +12 -31
  61. package/dist/editor/WorkspaceTitleSwitcher.js.map +1 -1
  62. package/dist/editor/ai/AgentProfileSelector.js +2 -2
  63. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  64. package/dist/editor/ai/AgentStatusBadge.js +3 -11
  65. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  66. package/dist/editor/ai/Agents.js +46 -41
  67. package/dist/editor/ai/Agents.js.map +1 -1
  68. package/dist/editor/ai/InlineAiDialog.js +24 -26
  69. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  70. package/dist/editor/ai/InlineAiTrigger.js +30 -1
  71. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  72. package/dist/editor/ai/agentActivitySummary.d.ts +108 -0
  73. package/dist/editor/ai/agentActivitySummary.js +390 -0
  74. package/dist/editor/ai/agentActivitySummary.js.map +1 -0
  75. package/dist/editor/ai/terminal/agentContextMerge.d.ts +19 -0
  76. package/dist/editor/ai/terminal/agentContextMerge.js +88 -0
  77. package/dist/editor/ai/terminal/agentContextMerge.js.map +1 -0
  78. package/dist/editor/ai/terminal/components/ActivitySummaryCell.d.ts +21 -0
  79. package/dist/editor/ai/terminal/components/ActivitySummaryCell.js +133 -0
  80. package/dist/editor/ai/terminal/components/ActivitySummaryCell.js.map +1 -0
  81. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.d.ts +7 -0
  82. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js +48 -0
  83. package/dist/editor/ai/terminal/components/AgentActivityOverviewPanel.js.map +1 -0
  84. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js +1 -1
  85. package/dist/editor/ai/terminal/components/AgentEditHistoryButton.js.map +1 -1
  86. package/dist/editor/ai/terminal/components/AgentFullPromptControls.d.ts +2 -1
  87. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js +13 -13
  88. package/dist/editor/ai/terminal/components/AgentFullPromptControls.js.map +1 -1
  89. package/dist/editor/ai/terminal/components/AgentGreeting.js +2 -2
  90. package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -1
  91. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js +1 -1
  92. package/dist/editor/ai/terminal/components/AgentMobileStatusPopover.js.map +1 -1
  93. package/dist/editor/ai/terminal/components/AgentModeSelector.d.ts +1 -1
  94. package/dist/editor/ai/terminal/components/AgentModeSelector.js +86 -9
  95. package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
  96. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js +1 -1
  97. package/dist/editor/ai/terminal/components/AgentPredefinedPromptsButton.js.map +1 -1
  98. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js +2 -2
  99. package/dist/editor/ai/terminal/components/AgentPromptActionButtons.js.map +1 -1
  100. package/dist/editor/ai/terminal/components/AgentPromptInputArea.d.ts +2 -2
  101. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +4 -27
  102. package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
  103. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +2 -2
  104. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +15 -12
  105. package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
  106. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js +1 -1
  107. package/dist/editor/ai/terminal/components/AgentSettingsPopover.js.map +1 -1
  108. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.d.ts +2 -0
  109. package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js.map +1 -1
  110. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +1 -3
  111. package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
  112. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.d.ts +10 -10
  113. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js +17 -3
  114. package/dist/editor/ai/terminal/components/AgentTerminalFullLayout.js.map +1 -1
  115. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +2 -1
  116. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +59 -5
  117. package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
  118. package/dist/editor/ai/terminal/components/AgentTerminalView.d.ts +3 -2
  119. package/dist/editor/ai/terminal/components/AgentTerminalView.js +5 -4
  120. package/dist/editor/ai/terminal/components/AgentTerminalView.js.map +1 -1
  121. package/dist/editor/ai/terminal/components/AiResponseMessage.d.ts +2 -0
  122. package/dist/editor/ai/terminal/components/AiResponseMessage.js +84 -28
  123. package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
  124. package/dist/editor/ai/terminal/components/ContextInfoBar.d.ts +2 -4
  125. package/dist/editor/ai/terminal/components/ContextInfoBar.js +93 -223
  126. package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
  127. package/dist/editor/ai/terminal/useAgentDraftInitializer.js +7 -45
  128. package/dist/editor/ai/terminal/useAgentDraftInitializer.js.map +1 -1
  129. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.d.ts +0 -4
  130. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js +1 -7
  131. package/dist/editor/ai/terminal/useAgentEditorContextPipeline.js.map +1 -1
  132. package/dist/editor/ai/terminal/useAgentPromptComposerSurface.d.ts +2 -2
  133. package/dist/editor/ai/terminal/useAgentQuickActions.d.ts +2 -2
  134. package/dist/editor/ai/terminal/useAgentQuickActions.js +61 -3
  135. package/dist/editor/ai/terminal/useAgentQuickActions.js.map +1 -1
  136. package/dist/editor/ai/terminal/useAgentSettingsPanel.js +0 -2
  137. package/dist/editor/ai/terminal/useAgentSettingsPanel.js.map +1 -1
  138. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +3 -3
  139. package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
  140. package/dist/editor/ai/terminal/useAgentSkillActions.d.ts +0 -3
  141. package/dist/editor/ai/terminal/useAgentSkillActions.js +8 -26
  142. package/dist/editor/ai/terminal/useAgentSkillActions.js.map +1 -1
  143. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.d.ts +1 -5
  144. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js +6 -19
  145. package/dist/editor/ai/terminal/useAgentSubmitContextBuilder.js.map +1 -1
  146. package/dist/editor/ai/terminal/useAgentTerminalChrome.d.ts +1 -3
  147. package/dist/editor/ai/terminal/useAgentTerminalChrome.js +2 -2
  148. package/dist/editor/ai/terminal/useAgentTerminalChrome.js.map +1 -1
  149. package/dist/editor/ai/terminal/useAgentTerminalController.js +18 -22
  150. package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
  151. package/dist/editor/ai/terminal/useAgentTerminalViewProps.d.ts +1 -1
  152. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js +2 -2
  153. package/dist/editor/ai/terminal/useAgentTerminalViewProps.js.map +1 -1
  154. package/dist/editor/ai/terminal/useAgentTerminalViewState.d.ts +0 -6
  155. package/dist/editor/ai/terminal/useAgentTerminalViewState.js +2 -16
  156. package/dist/editor/ai/terminal/useAgentTerminalViewState.js.map +1 -1
  157. package/dist/editor/ai/useActiveAgentConversation.d.ts +2 -0
  158. package/dist/editor/ai/useActiveAgentConversation.js +20 -0
  159. package/dist/editor/ai/useActiveAgentConversation.js.map +1 -1
  160. package/dist/editor/bridge/protocol.d.ts +48 -0
  161. package/dist/editor/bridge/protocol.js +13 -1
  162. package/dist/editor/bridge/protocol.js.map +1 -1
  163. package/dist/editor/client/EditorShell.d.ts +2 -0
  164. package/dist/editor/client/EditorShell.js +129 -29
  165. package/dist/editor/client/EditorShell.js.map +1 -1
  166. package/dist/editor/client/editContext.d.ts +30 -4
  167. package/dist/editor/client/editContext.js.map +1 -1
  168. package/dist/editor/client/hooks/useReducedMotion.d.ts +8 -0
  169. package/dist/editor/client/hooks/useReducedMotion.js +12 -0
  170. package/dist/editor/client/hooks/useReducedMotion.js.map +1 -0
  171. package/dist/editor/client/manualShowMeFocus.d.ts +17 -0
  172. package/dist/editor/client/manualShowMeFocus.js +32 -0
  173. package/dist/editor/client/manualShowMeFocus.js.map +1 -0
  174. package/dist/editor/client/ui/FullscreenControls.js +5 -5
  175. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  176. package/dist/editor/commands/componentCommands.js +30 -1
  177. package/dist/editor/commands/componentCommands.js.map +1 -1
  178. package/dist/editor/commands/keyboardCommands.d.ts +6 -0
  179. package/dist/editor/commands/keyboardCommands.js +74 -0
  180. package/dist/editor/commands/keyboardCommands.js.map +1 -1
  181. package/dist/editor/commands/reorderComponent.d.ts +20 -0
  182. package/dist/editor/commands/reorderComponent.js +40 -0
  183. package/dist/editor/commands/reorderComponent.js.map +1 -0
  184. package/dist/editor/commands/undo.js +3 -3
  185. package/dist/editor/commands/undo.js.map +1 -1
  186. package/dist/editor/componentFrameColors.d.ts +11 -0
  187. package/dist/editor/componentFrameColors.js +47 -0
  188. package/dist/editor/componentFrameColors.js.map +1 -0
  189. package/dist/editor/field-types/RichTextEditor.js +25 -6
  190. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  191. package/dist/editor/field-types/RichTextEditorComponent.js +14 -1
  192. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  193. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.d.ts +4 -1
  194. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js +33 -5
  195. package/dist/editor/field-types/richtext/hooks/useRichTextProfile.js.map +1 -1
  196. package/dist/editor/insertMenuItems.d.ts +11 -0
  197. package/dist/editor/insertMenuItems.js +9 -0
  198. package/dist/editor/insertMenuItems.js.map +1 -1
  199. package/dist/editor/menubar/ActiveUsers.js +3 -3
  200. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  201. package/dist/editor/menubar/FavoritesControls.js +46 -27
  202. package/dist/editor/menubar/FavoritesControls.js.map +1 -1
  203. package/dist/editor/menubar/GenericToolbar.js +2 -1
  204. package/dist/editor/menubar/GenericToolbar.js.map +1 -1
  205. package/dist/editor/menubar/ItemLanguageVersion.js +7 -5
  206. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  207. package/dist/editor/menubar/PageSelector.js +1 -1
  208. package/dist/editor/menubar/PageSelector.js.map +1 -1
  209. package/dist/editor/menubar/PreviewDatePicker.js +40 -21
  210. package/dist/editor/menubar/PreviewDatePicker.js.map +1 -1
  211. package/dist/editor/menubar/Separator.d.ts +2 -1
  212. package/dist/editor/menubar/Separator.js +2 -2
  213. package/dist/editor/menubar/Separator.js.map +1 -1
  214. package/dist/editor/menubar/ToolbarFactory.js +24 -17
  215. package/dist/editor/menubar/ToolbarFactory.js.map +1 -1
  216. package/dist/editor/menubar/VersionSelector.d.ts +2 -1
  217. package/dist/editor/menubar/VersionSelector.js +3 -3
  218. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  219. package/dist/editor/menubar/WorkflowButton.js +17 -25
  220. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  221. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.d.ts +1 -0
  222. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js +13 -0
  223. package/dist/editor/menubar/toolbar-sections/ContentTreeToggle.js.map +1 -0
  224. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +1 -1
  225. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  226. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js +104 -9
  227. package/dist/editor/menubar/toolbar-sections/DeviceSwitchToolbar.js.map +1 -1
  228. package/dist/editor/menubar/toolbar-sections/EditControls.d.ts +4 -2
  229. package/dist/editor/menubar/toolbar-sections/EditControls.js +78 -11
  230. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  231. package/dist/editor/menubar/toolbar-sections/FullscreenControl.d.ts +1 -0
  232. package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +15 -0
  233. package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -0
  234. package/dist/editor/menubar/toolbar-sections/InsertControls.js +1 -1
  235. package/dist/editor/menubar/toolbar-sections/InsertControls.js.map +1 -1
  236. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +12 -0
  237. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +169 -26
  238. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  239. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js +2 -1
  240. package/dist/editor/menubar/toolbar-sections/ReviewCommands.js.map +1 -1
  241. package/dist/editor/menubar/toolbar-sections/UtilityControls.d.ts +3 -1
  242. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +11 -3
  243. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  244. package/dist/editor/menubar/toolbar-sections/ViewportControls.d.ts +1 -0
  245. package/dist/editor/menubar/toolbar-sections/ViewportControls.js +48 -29
  246. package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
  247. package/dist/editor/menubar/toolbar-sections/index.d.ts +2 -1
  248. package/dist/editor/menubar/toolbar-sections/index.js +2 -1
  249. package/dist/editor/menubar/toolbar-sections/index.js.map +1 -1
  250. package/dist/editor/notifications/NotificationCenter.d.ts +4 -1
  251. package/dist/editor/notifications/NotificationCenter.js +13 -4
  252. package/dist/editor/notifications/NotificationCenter.js.map +1 -1
  253. package/dist/editor/notifications/WatchButton.d.ts +4 -2
  254. package/dist/editor/notifications/WatchButton.js +78 -20
  255. package/dist/editor/notifications/WatchButton.js.map +1 -1
  256. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js +71 -6
  257. package/dist/editor/page-editor-chrome/BridgeInlineFormatOverlay.js.map +1 -1
  258. package/dist/editor/page-editor-chrome/CommentHighlightings.js +36 -40
  259. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -1
  260. package/dist/editor/page-editor-chrome/DragInsertionOverlay.d.ts +36 -0
  261. package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +879 -0
  262. package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -0
  263. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.d.ts +1 -0
  264. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js +3 -3
  265. package/dist/editor/page-editor-chrome/FeedbackHighlightBadge.js.map +1 -1
  266. package/dist/editor/page-editor-chrome/FrameMenu.d.ts +3 -2
  267. package/dist/editor/page-editor-chrome/FrameMenu.js +49 -119
  268. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  269. package/dist/editor/page-editor-chrome/FrameMenus.d.ts +1 -1
  270. package/dist/editor/page-editor-chrome/FrameMenus.js +65 -15
  271. package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -1
  272. package/dist/editor/page-editor-chrome/InsertComponentMenu.d.ts +25 -0
  273. package/dist/editor/page-editor-chrome/InsertComponentMenu.js +30 -0
  274. package/dist/editor/page-editor-chrome/InsertComponentMenu.js.map +1 -0
  275. package/dist/editor/page-editor-chrome/PageEditorChrome.js +14 -2
  276. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
  277. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +33 -2
  278. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +94 -71
  279. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  280. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +13 -2
  281. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +105 -203
  282. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  283. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js +51 -88
  284. package/dist/editor/page-editor-chrome/SuggestionHighlightings.js.map +1 -1
  285. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js +2 -1
  286. package/dist/editor/page-editor-chrome/bridgeInlineFormatToolbarLayout.js.map +1 -1
  287. package/dist/editor/page-editor-chrome/componentDragObject.d.ts +10 -0
  288. package/dist/editor/page-editor-chrome/componentDragObject.js +22 -0
  289. package/dist/editor/page-editor-chrome/componentDragObject.js.map +1 -0
  290. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.d.ts +32 -0
  291. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js +8 -0
  292. package/dist/editor/page-editor-chrome/overlay/IframeOverlayProvider.js.map +1 -1
  293. package/dist/editor/page-editor-chrome/overlay/InsertionLine.d.ts +44 -0
  294. package/dist/editor/page-editor-chrome/overlay/InsertionLine.js +160 -0
  295. package/dist/editor/page-editor-chrome/overlay/InsertionLine.js.map +1 -0
  296. package/dist/editor/page-editor-chrome/overlay/geometry.d.ts +39 -0
  297. package/dist/editor/page-editor-chrome/overlay/geometry.js +67 -10
  298. package/dist/editor/page-editor-chrome/overlay/geometry.js.map +1 -1
  299. package/dist/editor/page-editor-chrome/overlay/placeholderZones.d.ts +66 -0
  300. package/dist/editor/page-editor-chrome/overlay/placeholderZones.js +274 -0
  301. package/dist/editor/page-editor-chrome/overlay/placeholderZones.js.map +1 -0
  302. package/dist/editor/page-editor-chrome/useComponentDragHandle.d.ts +23 -0
  303. package/dist/editor/page-editor-chrome/useComponentDragHandle.js +41 -0
  304. package/dist/editor/page-editor-chrome/useComponentDragHandle.js.map +1 -0
  305. package/dist/editor/page-editor-chrome/useDragInsertionGesture.d.ts +23 -0
  306. package/dist/editor/page-editor-chrome/useDragInsertionGesture.js +207 -0
  307. package/dist/editor/page-editor-chrome/useDragInsertionGesture.js.map +1 -0
  308. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.d.ts +2 -0
  309. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js +18 -0
  310. package/dist/editor/page-editor-chrome/usePinnedHoveredComponentId.js.map +1 -0
  311. package/dist/editor/page-viewer/EditorForm.js +14 -12
  312. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  313. package/dist/editor/page-viewer/EditorFormHintPopover.d.ts +2 -2
  314. package/dist/editor/page-viewer/EditorFormHintPopover.js +4 -4
  315. package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -1
  316. package/dist/editor/page-viewer/MiniMap.d.ts +6 -0
  317. package/dist/editor/page-viewer/MiniMap.js +97 -12
  318. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  319. package/dist/editor/page-viewer/MinimapDropTargets.d.ts +13 -0
  320. package/dist/editor/page-viewer/MinimapDropTargets.js +140 -0
  321. package/dist/editor/page-viewer/MinimapDropTargets.js.map +1 -0
  322. package/dist/editor/page-viewer/PageViewer.js +96 -10
  323. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  324. package/dist/editor/page-viewer/PageViewerFrame.js +263 -6
  325. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  326. package/dist/editor/page-viewer/pageViewContext.d.ts +4 -1
  327. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  328. package/dist/editor/reviews/Comment.js +2 -0
  329. package/dist/editor/reviews/Comment.js.map +1 -1
  330. package/dist/editor/reviews/CommentDisplayPopover.js +5 -2
  331. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  332. package/dist/editor/reviews/CommentPopover.d.ts +4 -0
  333. package/dist/editor/reviews/CommentPopover.js +15 -1
  334. package/dist/editor/reviews/CommentPopover.js.map +1 -1
  335. package/dist/editor/reviews/Comments.js +61 -44
  336. package/dist/editor/reviews/Comments.js.map +1 -1
  337. package/dist/editor/reviews/DecisionsMatrix.js +3 -3
  338. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  339. package/dist/editor/reviews/FeedbackModeIntro.d.ts +15 -0
  340. package/dist/editor/reviews/FeedbackModeIntro.js +22 -0
  341. package/dist/editor/reviews/FeedbackModeIntro.js.map +1 -0
  342. package/dist/editor/reviews/LatestFeedback.js +8 -2
  343. package/dist/editor/reviews/LatestFeedback.js.map +1 -1
  344. package/dist/editor/reviews/ReviewersPanel.js +2 -1
  345. package/dist/editor/reviews/ReviewersPanel.js.map +1 -1
  346. package/dist/editor/reviews/SuggestedEdit.js +9 -7
  347. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  348. package/dist/editor/reviews/SuggestionDisplayPopover.js +3 -3
  349. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  350. package/dist/editor/reviews/feedbackScrollTarget.d.ts +19 -0
  351. package/dist/editor/reviews/feedbackScrollTarget.js +171 -0
  352. package/dist/editor/reviews/feedbackScrollTarget.js.map +1 -0
  353. package/dist/editor/reviews/feedbackSelection.js +4 -4
  354. package/dist/editor/reviews/feedbackSelection.js.map +1 -1
  355. package/dist/editor/reviews/latestFeedbackData.js +1 -1
  356. package/dist/editor/reviews/openCommentsFeedback.d.ts +35 -0
  357. package/dist/editor/reviews/openCommentsFeedback.js +89 -0
  358. package/dist/editor/reviews/openCommentsFeedback.js.map +1 -0
  359. package/dist/editor/services/agentService.d.ts +5 -0
  360. package/dist/editor/services/agentService.js.map +1 -1
  361. package/dist/editor/services/aiService.d.ts +0 -2
  362. package/dist/editor/services/aiService.js.map +1 -1
  363. package/dist/editor/services/editService.d.ts +1 -0
  364. package/dist/editor/services/editService.js +4 -0
  365. package/dist/editor/services/editService.js.map +1 -1
  366. package/dist/editor/settings/IndexOverview.js +2 -2
  367. package/dist/editor/settings/IndexOverview.js.map +1 -1
  368. package/dist/editor/settings/QuotaInfo.js +2 -2
  369. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  370. package/dist/editor/settings/SettingsBreadcrumb.js +8 -2
  371. package/dist/editor/settings/SettingsBreadcrumb.js.map +1 -1
  372. package/dist/editor/settings/SettingsPanelLayout.js +1 -1
  373. package/dist/editor/settings/SettingsPanelLayout.js.map +1 -1
  374. package/dist/editor/settings/SettingsView.js +7 -9
  375. package/dist/editor/settings/SettingsView.js.map +1 -1
  376. package/dist/editor/settings/StatusSummary.js +7 -17
  377. package/dist/editor/settings/StatusSummary.js.map +1 -1
  378. package/dist/editor/settings/panels/AgentToolsPanel.js +2 -1
  379. package/dist/editor/settings/panels/AgentToolsPanel.js.map +1 -1
  380. package/dist/editor/settings/panels/ClusterInstancesPanel.js +2 -1
  381. package/dist/editor/settings/panels/ClusterInstancesPanel.js.map +1 -1
  382. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js +2 -1
  383. package/dist/editor/settings/panels/FieldTypeSerializersPanel.js.map +1 -1
  384. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js +3 -2
  385. package/dist/editor/settings/panels/GroupedFieldConfigPanel.js.map +1 -1
  386. package/dist/editor/settings/panels/ItemConfigPanel.js +3 -2
  387. package/dist/editor/settings/panels/ItemConfigPanel.js.map +1 -1
  388. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js +2 -1
  389. package/dist/editor/settings/panels/JavaScriptToolAgentPanel.js.map +1 -1
  390. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js +2 -1
  391. package/dist/editor/settings/panels/NotificationSubscriptionsPanel.js.map +1 -1
  392. package/dist/editor/settings/panels/PersistentLogsPanel.js +3 -2
  393. package/dist/editor/settings/panels/PersistentLogsPanel.js.map +1 -1
  394. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js +2 -1
  395. package/dist/editor/settings/panels/ProjectTemplateAgentPanel.js.map +1 -1
  396. package/dist/editor/settings/panels/ProjectTemplateSelectorList.js +3 -2
  397. package/dist/editor/settings/panels/ProjectTemplateSelectorList.js.map +1 -1
  398. package/dist/editor/settings/panels/ProjectTemplatesPanel.js +3 -3
  399. package/dist/editor/settings/panels/ProjectTemplatesPanel.js.map +1 -1
  400. package/dist/editor/settings/panels/SearchConfigPanel.js +3 -2
  401. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  402. package/dist/editor/settings/panels/StatusPanel.js +3 -2
  403. package/dist/editor/settings/panels/StatusPanel.js.map +1 -1
  404. package/dist/editor/sidebar/ComponentPalette.d.ts +1 -1
  405. package/dist/editor/sidebar/ComponentPalette.js +58 -25
  406. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  407. package/dist/editor/sidebar/ComponentTree.js +91 -7
  408. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  409. package/dist/editor/sidebar/ContentTreePanel.d.ts +3 -0
  410. package/dist/editor/sidebar/ContentTreePanel.js +14 -0
  411. package/dist/editor/sidebar/ContentTreePanel.js.map +1 -0
  412. package/dist/editor/sidebar/Favorites.js +2 -2
  413. package/dist/editor/sidebar/Favorites.js.map +1 -1
  414. package/dist/editor/sidebar/NavigationPanelItem.js +2 -1
  415. package/dist/editor/sidebar/NavigationPanelItem.js.map +1 -1
  416. package/dist/editor/sidebar/OperationItem.js +98 -17
  417. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  418. package/dist/editor/sidebar/Workbox.js +14 -133
  419. package/dist/editor/sidebar/Workbox.js.map +1 -1
  420. package/dist/editor/sidebar/WorkspaceButton.js +1 -1
  421. package/dist/editor/sidebar/WorkspaceButton.js.map +1 -1
  422. package/dist/editor/sidebar/WorkspaceRail.js +12 -9
  423. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  424. package/dist/editor/sidebar/contentTreeConstants.d.ts +2 -0
  425. package/dist/editor/sidebar/contentTreeConstants.js +3 -0
  426. package/dist/editor/sidebar/contentTreeConstants.js.map +1 -0
  427. package/dist/editor/tree-indicators/GutterColumns.js +4 -14
  428. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  429. package/dist/editor/ui/ItemCollectionEditor.js +3 -2
  430. package/dist/editor/ui/ItemCollectionEditor.js.map +1 -1
  431. package/dist/editor/ui/LoadingState.d.ts +11 -0
  432. package/dist/editor/ui/LoadingState.js +27 -0
  433. package/dist/editor/ui/LoadingState.js.map +1 -0
  434. package/dist/editor/ui/PerfectTree.d.ts +22 -1
  435. package/dist/editor/ui/PerfectTree.js +17 -11
  436. package/dist/editor/ui/PerfectTree.js.map +1 -1
  437. package/dist/editor/ui/PublishDialog.d.ts +11 -0
  438. package/dist/editor/ui/PublishDialog.js +101 -0
  439. package/dist/editor/ui/PublishDialog.js.map +1 -0
  440. package/dist/editor/ui/PublishItemDialog.js +2 -1
  441. package/dist/editor/ui/PublishItemDialog.js.map +1 -1
  442. package/dist/editor/ui/PublishRestrictionsDialog.js +3 -2
  443. package/dist/editor/ui/PublishRestrictionsDialog.js.map +1 -1
  444. package/dist/editor/ui/SimpleIconButton.d.ts +6 -0
  445. package/dist/editor/ui/SimpleIconButton.js +13 -4
  446. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  447. package/dist/editor/ui/SimpleMenu.js +4 -4
  448. package/dist/editor/ui/SimpleMenu.js.map +1 -1
  449. package/dist/editor/ui/SimpleTabs.js +1 -1
  450. package/dist/editor/ui/Spinner.d.ts +14 -1
  451. package/dist/editor/ui/Spinner.js.map +1 -1
  452. package/dist/editor/ui/WorkboxItemsTable.d.ts +15 -0
  453. package/dist/editor/ui/WorkboxItemsTable.js +142 -0
  454. package/dist/editor/ui/WorkboxItemsTable.js.map +1 -0
  455. package/dist/index.d.ts +4 -0
  456. package/dist/index.js +2 -0
  457. package/dist/index.js.map +1 -1
  458. package/dist/lib/pointerDrag.d.ts +20 -0
  459. package/dist/lib/pointerDrag.js +57 -0
  460. package/dist/lib/pointerDrag.js.map +1 -0
  461. package/dist/logging/consolePrefix.d.ts +2 -0
  462. package/dist/logging/consolePrefix.js +49 -0
  463. package/dist/logging/consolePrefix.js.map +1 -0
  464. package/dist/logging/index.d.ts +1 -0
  465. package/dist/logging/index.js +2 -0
  466. package/dist/logging/index.js.map +1 -0
  467. package/dist/logging/install-browser-console.d.ts +1 -0
  468. package/dist/logging/install-browser-console.js +3 -0
  469. package/dist/logging/install-browser-console.js.map +1 -0
  470. package/dist/revision.d.ts +2 -2
  471. package/dist/revision.js +2 -2
  472. package/dist/splash-screen/ModernSplashScreen.js +2 -1
  473. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  474. package/dist/task-board/TaskBoardWorkspace.js +181 -35
  475. package/dist/task-board/TaskBoardWorkspace.js.map +1 -1
  476. package/dist/task-board/components/CommentsList.js +20 -9
  477. package/dist/task-board/components/CommentsList.js.map +1 -1
  478. package/dist/task-board/components/FinishedProjectCard.d.ts +5 -0
  479. package/dist/task-board/components/FinishedProjectCard.js +8 -0
  480. package/dist/task-board/components/FinishedProjectCard.js.map +1 -0
  481. package/dist/task-board/components/ProjectDashboard.d.ts +10 -1
  482. package/dist/task-board/components/ProjectDashboard.js +90 -6
  483. package/dist/task-board/components/ProjectDashboard.js.map +1 -1
  484. package/dist/task-board/components/ProjectListContent.js +2 -1
  485. package/dist/task-board/components/ProjectListContent.js.map +1 -1
  486. package/dist/task-board/components/ProjectOverviewContent.js +2 -1
  487. package/dist/task-board/components/ProjectOverviewContent.js.map +1 -1
  488. package/dist/task-board/components/TaskAgentPanel.d.ts +4 -0
  489. package/dist/task-board/components/TaskAgentPanel.js +12 -6
  490. package/dist/task-board/components/TaskAgentPanel.js.map +1 -1
  491. package/dist/task-board/components/TaskAssigneeBadge.d.ts +16 -0
  492. package/dist/task-board/components/TaskAssigneeBadge.js +21 -0
  493. package/dist/task-board/components/TaskAssigneeBadge.js.map +1 -0
  494. package/dist/task-board/components/TaskAssigneePicker.js +12 -10
  495. package/dist/task-board/components/TaskAssigneePicker.js.map +1 -1
  496. package/dist/task-board/components/TaskAttachmentDropZone.d.ts +11 -0
  497. package/dist/task-board/components/TaskAttachmentDropZone.js +100 -0
  498. package/dist/task-board/components/TaskAttachmentDropZone.js.map +1 -0
  499. package/dist/task-board/components/TaskAttachmentsSection.d.ts +1 -0
  500. package/dist/task-board/components/TaskAttachmentsSection.js +15 -41
  501. package/dist/task-board/components/TaskAttachmentsSection.js.map +1 -1
  502. package/dist/task-board/components/TaskBoardFilterBox.d.ts +4 -0
  503. package/dist/task-board/components/TaskBoardFilterBox.js +7 -0
  504. package/dist/task-board/components/TaskBoardFilterBox.js.map +1 -0
  505. package/dist/task-board/components/TaskBoardProjectListSidebar.js +4 -5
  506. package/dist/task-board/components/TaskBoardProjectListSidebar.js.map +1 -1
  507. package/dist/task-board/components/TaskCard.js +26 -15
  508. package/dist/task-board/components/TaskCard.js.map +1 -1
  509. package/dist/task-board/components/TaskDetailPanel.d.ts +1 -0
  510. package/dist/task-board/components/TaskDetailPanel.js +15 -12
  511. package/dist/task-board/components/TaskDetailPanel.js.map +1 -1
  512. package/dist/task-board/components/TaskReviewActions.d.ts +1 -0
  513. package/dist/task-board/components/TaskReviewActions.js +4 -2
  514. package/dist/task-board/components/TaskReviewActions.js.map +1 -1
  515. package/dist/task-board/components/TaskRow.js +6 -12
  516. package/dist/task-board/components/TaskRow.js.map +1 -1
  517. package/dist/task-board/components/TaskboardPersistentLogPanel.js +3 -3
  518. package/dist/task-board/components/TaskboardPersistentLogPanel.js.map +1 -1
  519. package/dist/task-board/components/WizardCommunicationCards.js +1 -1
  520. package/dist/task-board/components/WizardCommunicationCards.js.map +1 -1
  521. package/dist/task-board/components/WizardCommunicationCenter.d.ts +7 -1
  522. package/dist/task-board/components/WizardCommunicationCenter.js +10 -6
  523. package/dist/task-board/components/WizardCommunicationCenter.js.map +1 -1
  524. package/dist/task-board/components/WizardCommunicationShared.js +5 -5
  525. package/dist/task-board/components/WizardCommunicationShared.js.map +1 -1
  526. package/dist/task-board/components/WizardTask.d.ts +5 -1
  527. package/dist/task-board/components/WizardTask.js +14 -30
  528. package/dist/task-board/components/WizardTask.js.map +1 -1
  529. package/dist/task-board/components/WizardTaskDetailsPanel.d.ts +10 -2
  530. package/dist/task-board/components/WizardTaskDetailsPanel.js +56 -11
  531. package/dist/task-board/components/WizardTaskDetailsPanel.js.map +1 -1
  532. package/dist/task-board/taskBoardNavStore.d.ts +3 -0
  533. package/dist/task-board/taskBoardNavStore.js +44 -0
  534. package/dist/task-board/taskBoardNavStore.js.map +1 -1
  535. package/dist/task-board/taskPriority.d.ts +4 -0
  536. package/dist/task-board/taskPriority.js +19 -0
  537. package/dist/task-board/taskPriority.js.map +1 -0
  538. package/dist/task-board/views/DependencyGraphView.js +48 -36
  539. package/dist/task-board/views/DependencyGraphView.js.map +1 -1
  540. package/dist/task-board/views/KanbanView.js +130 -96
  541. package/dist/task-board/views/KanbanView.js.map +1 -1
  542. package/dist/task-board/views/ListView.js +3 -3
  543. package/dist/task-board/views/ListView.js.map +1 -1
  544. package/dist/task-board/views/WizardView.js +7 -6
  545. package/dist/task-board/views/WizardView.js.map +1 -1
  546. package/dist/tour/default-tour.js +5 -5
  547. package/dist/tour/default-tour.js.map +1 -1
  548. package/package.json +11 -1
  549. package/styles.css +144 -0
  550. package/dist/editor/ai/terminal/useAgentEditorContextSync.d.ts +0 -19
  551. package/dist/editor/ai/terminal/useAgentEditorContextSync.js +0 -142
  552. package/dist/editor/ai/terminal/useAgentEditorContextSync.js.map +0 -1
@@ -0,0 +1,108 @@
1
+ import type { EditOperation, ItemDescriptor } from "../../types";
2
+ /**
3
+ * Activity overview — a condensed, item-grouped view of what an agent did,
4
+ * derived purely from the agent's `EditOperation[]` history (the same data the
5
+ * Edit History popover renders, presented grouped-by-item instead of flat).
6
+ *
7
+ * Pure and deterministic: no React, no I/O. See agentActivitySummary.test.ts.
8
+ */
9
+ export type ActivityBucketKind = "field" | "component-add" | "component-remove" | "component-move" | "component-shared" | "rendering" | "personalization" | "created" | "renamed" | "moved" | "deleted" | "published" | "suggested" | "comment";
10
+ /** Render order for buckets within an item row. */
11
+ export declare const ACTIVITY_BUCKET_ORDER: ActivityBucketKind[];
12
+ export interface ActivityBucket {
13
+ kind: ActivityBucketKind;
14
+ /**
15
+ * Effect count, not op count: distinct fieldId for `field`, sum of
16
+ * componentIds.length for component-remove/-move, otherwise the number of
17
+ * active ops. Counts active (non-undone) effects only.
18
+ */
19
+ count: number;
20
+ /** Contributing ops (incl. undone), for drill-down/tooltips. */
21
+ operations: EditOperation[];
22
+ }
23
+ export interface ItemActivitySummary {
24
+ /** Grouping key: lower-cased resolved target id. */
25
+ itemId: string;
26
+ /** Representative descriptor (the resolved target, not necessarily mainItem). */
27
+ item: ItemDescriptor;
28
+ /** Best available path for this target (may be undefined for id-only rows). */
29
+ path?: string;
30
+ /** Display label: name → leaf(path) → short id. */
31
+ label: string;
32
+ /** True when only an id could be resolved (bulk move/copy/clone rows). */
33
+ idOnly: boolean;
34
+ /** Non-empty buckets, ordered by ACTIVITY_BUCKET_ORDER. EMPTY when fully undone. */
35
+ buckets: ActivityBucket[];
36
+ /** All ops on this row, chronological (incl. undone). */
37
+ operations: EditOperation[];
38
+ /** Agent-authored suggestions/comments on this item, chronological. */
39
+ feedback: AgentFeedbackActivity[];
40
+ /** Distinct languages seen across this item's ops. */
41
+ languages: string[];
42
+ hasExecuting: boolean;
43
+ hasFailed: boolean;
44
+ /** Distinct non-undone op ids on this row. */
45
+ activeOperationCount: number;
46
+ /** Distinct op ids on this row (incl. undone). */
47
+ totalOperationCount: number;
48
+ }
49
+ export interface ActivityOverview {
50
+ /** Items the agent worked on, newest activity first. */
51
+ items: ItemActivitySummary[];
52
+ totalItems: number;
53
+ /** Distinct active op ids across the input (NOT a sum over rows). */
54
+ totalOperations: number;
55
+ }
56
+ /** A single item a given operation should be attributed to. */
57
+ export interface ActivityTarget {
58
+ item: ItemDescriptor;
59
+ path?: string;
60
+ label?: string;
61
+ }
62
+ /** Kind of agent feedback derived from transcript tool calls. */
63
+ export type FeedbackKind = "suggested" | "comment";
64
+ /** A suggested edit or comment the agent produced (from its transcript tool calls). */
65
+ export interface AgentFeedbackActivity {
66
+ id: string;
67
+ kind: FeedbackKind;
68
+ /** Page item the feedback is attributed to (mainItemId) — the grouping key. */
69
+ itemId: string;
70
+ language?: string;
71
+ version?: number;
72
+ /** The component/field item the feedback is anchored to. */
73
+ targetItemId?: string;
74
+ fieldName?: string;
75
+ /** Suggested new value (suggestions) or comment text. */
76
+ value?: string;
77
+ date?: string;
78
+ }
79
+ interface ToolCallLike {
80
+ id?: string;
81
+ toolCallId?: string;
82
+ functionName?: string;
83
+ functionArguments?: string;
84
+ functionResult?: string;
85
+ functionError?: string;
86
+ isCompleted?: boolean;
87
+ createdDate?: string;
88
+ }
89
+ interface MessageLike {
90
+ toolCalls?: ToolCallLike[];
91
+ }
92
+ /**
93
+ * Extracts agent-authored suggested edits and comments from the agent transcript
94
+ * tool calls (`suggest-field-edit` / `add-comment`). The transcript gives clean
95
+ * per-agent attribution that the global feedback store lacks (it has no agentId).
96
+ * Only successful, completed calls are returned.
97
+ */
98
+ export declare function extractAgentFeedback(messages: MessageLike[] | undefined): AgentFeedbackActivity[];
99
+ export declare function classifyOperation(op: EditOperation): ActivityBucketKind;
100
+ /**
101
+ * Resolves which item row(s) an operation belongs to. Reads the type-specific
102
+ * field rather than `mainItem`, which the client commonly sets to the current
103
+ * page or parent (see editor/client/operations.tsx). Bulk ops fan out to one
104
+ * target per affected item.
105
+ */
106
+ export declare function affectedItems(op: EditOperation): ActivityTarget[];
107
+ export declare function buildActivityOverview(operations: EditOperation[], feedback?: AgentFeedbackActivity[]): ActivityOverview;
108
+ export {};
@@ -0,0 +1,390 @@
1
+ /**
2
+ * Maps every EditOperation type to its display bucket. Typed with `satisfies`
3
+ * so adding a new `EditOperation["type"]` is a COMPILE error until it is mapped.
4
+ */
5
+ const OPERATION_BUCKET = {
6
+ "edit-field": "field",
7
+ "add-component": "component-add",
8
+ "link-component": "component-add",
9
+ "remove-component": "component-remove",
10
+ "move-component": "component-move",
11
+ "duplicate-components": "component-move",
12
+ "convert-to-shared": "component-shared",
13
+ "synchronize-components": "component-shared",
14
+ "update-rendering-parameters": "rendering",
15
+ "update-rendering-rules": "personalization",
16
+ "create-item": "created",
17
+ "add-version": "created",
18
+ "copy-items": "created",
19
+ "clone-items": "created",
20
+ "import-items": "created",
21
+ "rename-item": "renamed",
22
+ "change-template": "renamed",
23
+ "move-items": "moved",
24
+ "publish-item": "published",
25
+ "delete-items": "deleted",
26
+ "remove-version": "deleted",
27
+ };
28
+ /** Render order for buckets within an item row. */
29
+ export const ACTIVITY_BUCKET_ORDER = [
30
+ "field",
31
+ "component-add",
32
+ "component-remove",
33
+ "component-move",
34
+ "component-shared",
35
+ "rendering",
36
+ "personalization",
37
+ "created",
38
+ "renamed",
39
+ "moved",
40
+ "deleted",
41
+ "published",
42
+ "suggested",
43
+ "comment",
44
+ ];
45
+ function normalizeToolName(name) {
46
+ return (name ?? "").trim().toLowerCase().replace(/_/g, "-");
47
+ }
48
+ function parseJsonObject(text) {
49
+ if (!text)
50
+ return null;
51
+ try {
52
+ const parsed = JSON.parse(text);
53
+ return parsed && typeof parsed === "object"
54
+ ? parsed
55
+ : null;
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ function asNonEmptyString(value) {
62
+ return typeof value === "string" && value.length > 0 ? value : undefined;
63
+ }
64
+ function asNumber(value) {
65
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
66
+ }
67
+ /**
68
+ * Extracts agent-authored suggested edits and comments from the agent transcript
69
+ * tool calls (`suggest-field-edit` / `add-comment`). The transcript gives clean
70
+ * per-agent attribution that the global feedback store lacks (it has no agentId).
71
+ * Only successful, completed calls are returned.
72
+ */
73
+ export function extractAgentFeedback(messages) {
74
+ const out = [];
75
+ for (const message of messages ?? []) {
76
+ for (const call of message?.toolCalls ?? []) {
77
+ const name = normalizeToolName(call.functionName);
78
+ const isSuggestion = name === "suggest-field-edit";
79
+ const isComment = name === "add-comment";
80
+ if (!isSuggestion && !isComment)
81
+ continue;
82
+ if (call.functionError)
83
+ continue;
84
+ if (call.isCompleted === false)
85
+ continue;
86
+ if (!(call.functionResult ?? "").toLowerCase().includes("created")) {
87
+ continue;
88
+ }
89
+ const args = parseJsonObject(call.functionArguments);
90
+ if (!args)
91
+ continue;
92
+ const mainItemId = asNonEmptyString(args.mainItemId);
93
+ const id = call.toolCallId || call.id;
94
+ if (!mainItemId || !id)
95
+ continue;
96
+ out.push({
97
+ id,
98
+ kind: isSuggestion ? "suggested" : "comment",
99
+ itemId: mainItemId,
100
+ language: asNonEmptyString(args.mainItemLanguage) ??
101
+ asNonEmptyString(args.language) ??
102
+ asNonEmptyString(args.itemLanguage),
103
+ version: asNumber(args.mainItemVersion),
104
+ targetItemId: asNonEmptyString(args.itemId) ?? asNonEmptyString(args.componentId),
105
+ fieldName: asNonEmptyString(args.field) ?? asNonEmptyString(args.fieldId),
106
+ value: isSuggestion
107
+ ? asNonEmptyString(args.value)
108
+ : asNonEmptyString(args.comment),
109
+ date: call.createdDate,
110
+ });
111
+ }
112
+ }
113
+ return out;
114
+ }
115
+ export function classifyOperation(op) {
116
+ return OPERATION_BUCKET[op.type];
117
+ }
118
+ function descriptorFromId(id, ref) {
119
+ return {
120
+ id,
121
+ language: ref.language,
122
+ version: ref.version,
123
+ database: ref.database,
124
+ };
125
+ }
126
+ /**
127
+ * Resolves which item row(s) an operation belongs to. Reads the type-specific
128
+ * field rather than `mainItem`, which the client commonly sets to the current
129
+ * page or parent (see editor/client/operations.tsx). Bulk ops fan out to one
130
+ * target per affected item.
131
+ */
132
+ export function affectedItems(op) {
133
+ const main = op.mainItem;
134
+ const mainTarget = { item: main, path: op.mainItemPath };
135
+ switch (op.type) {
136
+ case "rename-item": {
137
+ const o = op;
138
+ return [{ item: o.item, path: o.item.path, label: o.newName ?? o.item.name }];
139
+ }
140
+ case "add-version": {
141
+ const o = op;
142
+ return [{ item: o.item, path: o.item.path }];
143
+ }
144
+ case "remove-version": {
145
+ const o = op;
146
+ return [{ item: o.item, path: o.item.path }];
147
+ }
148
+ case "publish-item": {
149
+ const o = op;
150
+ return [{ item: o.item, path: o.item.path }];
151
+ }
152
+ case "create-item": {
153
+ const o = op;
154
+ if (o.createdItemId) {
155
+ return [{ item: descriptorFromId(o.createdItemId, main), label: o.name }];
156
+ }
157
+ return [{ item: main, path: op.mainItemPath, label: o.name }];
158
+ }
159
+ case "import-items": {
160
+ const o = op;
161
+ if (o.createdItemIds?.length) {
162
+ return o.createdItemIds.map((id) => ({ item: descriptorFromId(id, main) }));
163
+ }
164
+ return [{ item: o.targetItem, path: o.targetItem.path }];
165
+ }
166
+ case "delete-items": {
167
+ const o = op;
168
+ if (o.items?.length) {
169
+ return o.items.map((item) => ({ item, path: item.path }));
170
+ }
171
+ return [mainTarget];
172
+ }
173
+ case "move-items": {
174
+ const o = op;
175
+ if (o.itemIds?.length) {
176
+ return o.itemIds.map((id) => ({ item: descriptorFromId(id, main) }));
177
+ }
178
+ return [mainTarget];
179
+ }
180
+ case "copy-items":
181
+ case "clone-items": {
182
+ const o = op;
183
+ if (o.createdItemIds?.length) {
184
+ return o.createdItemIds.map((id) => ({ item: descriptorFromId(id, main) }));
185
+ }
186
+ // Pending copy/clone: only a destination parent is known yet.
187
+ if (o.targetParentId) {
188
+ return [{ item: descriptorFromId(o.targetParentId, main) }];
189
+ }
190
+ return [mainTarget];
191
+ }
192
+ default:
193
+ // edit-field, component ops, rendering ops, change-template: act on the page.
194
+ return [mainTarget];
195
+ }
196
+ }
197
+ /**
198
+ * Within-op multiplicity that is NOT expressed via fan-out. Component ops are
199
+ * not fanned (they target the page), so their multiplicity is componentIds.length;
200
+ * multi-item ops fan out and contribute 1 per row.
201
+ */
202
+ function effectCount(op) {
203
+ switch (op.type) {
204
+ case "remove-component":
205
+ return Math.max(op.componentIds?.length ?? 0, 1);
206
+ case "move-component":
207
+ return Math.max(op.componentIds?.length ?? 0, 1);
208
+ case "duplicate-components":
209
+ return Math.max(op.componentIds?.length ?? 0, 1);
210
+ default:
211
+ return 1;
212
+ }
213
+ }
214
+ function parseDate(date) {
215
+ if (!date)
216
+ return 0;
217
+ const time = new Date(date).getTime();
218
+ return Number.isNaN(time) ? 0 : time;
219
+ }
220
+ function leafOfPath(path) {
221
+ if (!path)
222
+ return undefined;
223
+ const parts = path.split(/[\\/]/).filter(Boolean);
224
+ return parts.length ? parts[parts.length - 1] : undefined;
225
+ }
226
+ function stripBraces(id) {
227
+ return id.replace(/[{}]/g, "");
228
+ }
229
+ export function buildActivityOverview(operations, feedback = []) {
230
+ const groups = new Map();
231
+ let order = 0;
232
+ const ensureGroup = (key, target) => {
233
+ let group = groups.get(key);
234
+ if (!group) {
235
+ group = {
236
+ itemId: key,
237
+ representative: null,
238
+ firstTarget: target,
239
+ buckets: new Map(),
240
+ operations: [],
241
+ opIds: new Set(),
242
+ activeOpIds: new Set(),
243
+ feedback: [],
244
+ languages: new Set(),
245
+ hasExecuting: false,
246
+ hasFailed: false,
247
+ latestDate: 0,
248
+ order: order++,
249
+ };
250
+ groups.set(key, group);
251
+ }
252
+ return group;
253
+ };
254
+ for (const op of operations) {
255
+ if (!op?.mainItem)
256
+ continue;
257
+ const kind = classifyOperation(op);
258
+ const undone = op.undone === true;
259
+ const targets = affectedItems(op);
260
+ for (const target of targets) {
261
+ if (!target.item?.id)
262
+ continue;
263
+ const key = target.item.id.toLowerCase();
264
+ const group = ensureGroup(key, target);
265
+ if (!undone && !group.representative) {
266
+ group.representative = target;
267
+ }
268
+ if (!group.opIds.has(op.id)) {
269
+ group.opIds.add(op.id);
270
+ group.operations.push(op);
271
+ }
272
+ if (target.item.language)
273
+ group.languages.add(target.item.language);
274
+ if (!undone) {
275
+ group.activeOpIds.add(op.id);
276
+ if (op.executionStatus === "executing")
277
+ group.hasExecuting = true;
278
+ if (op.executionStatus === "failed")
279
+ group.hasFailed = true;
280
+ }
281
+ const time = parseDate(op.date);
282
+ if (time > group.latestDate)
283
+ group.latestDate = time;
284
+ let bucket = group.buckets.get(kind);
285
+ if (!bucket) {
286
+ bucket = {
287
+ operations: [],
288
+ opIds: new Set(),
289
+ count: 0,
290
+ fieldIds: kind === "field" ? new Set() : undefined,
291
+ };
292
+ group.buckets.set(kind, bucket);
293
+ }
294
+ if (!bucket.opIds.has(op.id)) {
295
+ bucket.opIds.add(op.id);
296
+ bucket.operations.push(op);
297
+ }
298
+ if (!undone) {
299
+ if (kind === "field") {
300
+ const fieldId = op.fieldId || op.id;
301
+ bucket.fieldIds.add(fieldId);
302
+ bucket.count = bucket.fieldIds.size;
303
+ }
304
+ else {
305
+ bucket.count += effectCount(op);
306
+ }
307
+ }
308
+ }
309
+ }
310
+ for (const activity of feedback) {
311
+ if (!activity?.itemId || !activity.id)
312
+ continue;
313
+ const key = activity.itemId.toLowerCase();
314
+ const target = {
315
+ item: {
316
+ id: activity.itemId,
317
+ language: activity.language ?? "",
318
+ version: activity.version ?? 0,
319
+ },
320
+ path: activity.itemId.includes("/") ? activity.itemId : undefined,
321
+ };
322
+ const group = ensureGroup(key, target);
323
+ group.feedback.push(activity);
324
+ if (activity.language)
325
+ group.languages.add(activity.language);
326
+ const time = parseDate(activity.date);
327
+ if (time > group.latestDate)
328
+ group.latestDate = time;
329
+ let bucket = group.buckets.get(activity.kind);
330
+ if (!bucket) {
331
+ bucket = { operations: [], opIds: new Set(), count: 0 };
332
+ group.buckets.set(activity.kind, bucket);
333
+ }
334
+ if (!bucket.opIds.has(activity.id)) {
335
+ bucket.opIds.add(activity.id);
336
+ bucket.count += 1;
337
+ }
338
+ }
339
+ const items = [];
340
+ for (const group of groups.values()) {
341
+ const buckets = [];
342
+ for (const kind of ACTIVITY_BUCKET_ORDER) {
343
+ const bucket = group.buckets.get(kind);
344
+ if (bucket && bucket.count > 0) {
345
+ buckets.push({ kind, count: bucket.count, operations: bucket.operations });
346
+ }
347
+ }
348
+ const target = group.representative ?? group.firstTarget;
349
+ const name = target.label ?? target.item.name ?? target.item.displayName;
350
+ const path = target.path ?? target.item.path;
351
+ const leaf = leafOfPath(path);
352
+ const idOnly = !name && !leaf;
353
+ const label = name ?? leaf ?? stripBraces(target.item.id);
354
+ const operationsSorted = [...group.operations].sort((a, b) => parseDate(a.date) - parseDate(b.date));
355
+ items.push({
356
+ itemId: group.itemId,
357
+ item: target.item,
358
+ path,
359
+ label,
360
+ idOnly,
361
+ buckets,
362
+ operations: operationsSorted,
363
+ feedback: [...group.feedback].sort((a, b) => parseDate(a.date) - parseDate(b.date)),
364
+ languages: [...group.languages],
365
+ hasExecuting: group.hasExecuting,
366
+ hasFailed: group.hasFailed,
367
+ activeOperationCount: group.activeOpIds.size,
368
+ totalOperationCount: group.opIds.size,
369
+ });
370
+ }
371
+ // Newest activity first; stable on insertion order for ties.
372
+ items.sort((a, b) => {
373
+ const ga = groups.get(a.itemId);
374
+ const gb = groups.get(b.itemId);
375
+ if (gb.latestDate !== ga.latestDate)
376
+ return gb.latestDate - ga.latestDate;
377
+ return ga.order - gb.order;
378
+ });
379
+ const activeOpIds = new Set();
380
+ for (const op of operations) {
381
+ if (op?.id && op.undone !== true)
382
+ activeOpIds.add(op.id);
383
+ }
384
+ return {
385
+ items,
386
+ totalItems: items.length,
387
+ totalOperations: activeOpIds.size,
388
+ };
389
+ }
390
+ //# sourceMappingURL=agentActivitySummary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentActivitySummary.js","sourceRoot":"","sources":["../../../src/editor/ai/agentActivitySummary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { AgentMetadata } from "../../services/agentService";
2
+ type ContextItem = NonNullable<AgentMetadata["items"]>[number];
3
+ type ContextComponent = NonNullable<AgentMetadata["components"]>[number];
4
+ export declare function getAgentContextItemKey(item: ContextItem | ContextComponent["pageItem"] | null | undefined): string | null;
5
+ export declare function getAgentContextComponentKey(component: ContextComponent | null | undefined): string | null;
6
+ /**
7
+ * Reads the per-agent "include currently viewed page" flag. The flag is written
8
+ * top-level, but `canonicalizeAgentMetadata` can move keys between top-level and
9
+ * `additionalData`, so accept either shape.
10
+ */
11
+ export declare function getIncludeViewedContext(meta: AgentMetadata | null | undefined): boolean;
12
+ /**
13
+ * Whether a built editor-context payload actually references something a user is
14
+ * viewing. `buildCurrentContext()` always returns an object (it can carry only
15
+ * workspace/page-loaded/sidebar flags), so gate UI and merges on real content.
16
+ */
17
+ export declare function hasViewedContent(viewed: AgentMetadata | null | undefined): boolean;
18
+ export declare function mergeViewedContext(storedContext: AgentMetadata | null | undefined, liveContext: AgentMetadata | null | undefined): AgentMetadata | null;
19
+ export {};
@@ -0,0 +1,88 @@
1
+ export function getAgentContextItemKey(item) {
2
+ if (!item?.id)
3
+ return null;
4
+ return [
5
+ String(item.id).toLowerCase(),
6
+ String(item.language ?? "").toLowerCase(),
7
+ String(item.version ?? ""),
8
+ ].join("|");
9
+ }
10
+ export function getAgentContextComponentKey(component) {
11
+ if (!component?.componentId)
12
+ return null;
13
+ const pageKey = getAgentContextItemKey(component.pageItem);
14
+ return `${String(component.componentId).toLowerCase()}|${pageKey ?? ""}`;
15
+ }
16
+ function mergeByKey(preferred, fallback, getKey) {
17
+ const merged = [];
18
+ const seen = new Set();
19
+ for (const value of [...(preferred ?? []), ...(fallback ?? [])]) {
20
+ const key = getKey(value);
21
+ if (!key || seen.has(key))
22
+ continue;
23
+ seen.add(key);
24
+ merged.push(value);
25
+ }
26
+ return merged;
27
+ }
28
+ /**
29
+ * Reads the per-agent "include currently viewed page" flag. The flag is written
30
+ * top-level, but `canonicalizeAgentMetadata` can move keys between top-level and
31
+ * `additionalData`, so accept either shape.
32
+ */
33
+ export function getIncludeViewedContext(meta) {
34
+ return !!(meta?.includeViewedContext ??
35
+ meta?.additionalData?.includeViewedContext);
36
+ }
37
+ /**
38
+ * Whether a built editor-context payload actually references something a user is
39
+ * viewing. `buildCurrentContext()` always returns an object (it can carry only
40
+ * workspace/page-loaded/sidebar flags), so gate UI and merges on real content.
41
+ */
42
+ export function hasViewedContent(viewed) {
43
+ return !!(viewed?.items?.length || viewed?.components?.length || viewed?.field);
44
+ }
45
+ export function mergeViewedContext(storedContext, liveContext) {
46
+ if (!storedContext && !liveContext) {
47
+ return null;
48
+ }
49
+ if (!liveContext) {
50
+ return storedContext ? { ...storedContext } : null;
51
+ }
52
+ const merged = {
53
+ ...(storedContext || {}),
54
+ };
55
+ const items = mergeByKey(liveContext.items, storedContext?.items, getAgentContextItemKey);
56
+ if (items.length > 0) {
57
+ merged.items = items;
58
+ }
59
+ else {
60
+ delete merged.items;
61
+ }
62
+ const components = mergeByKey(liveContext.components, storedContext?.components, getAgentContextComponentKey);
63
+ if (components.length > 0) {
64
+ merged.components = components;
65
+ }
66
+ else {
67
+ delete merged.components;
68
+ }
69
+ merged.currentItemId =
70
+ liveContext.currentItemId ?? storedContext?.currentItemId;
71
+ if (liveContext.field) {
72
+ merged.field = liveContext.field;
73
+ }
74
+ else if (!storedContext?.field) {
75
+ delete merged.field;
76
+ }
77
+ if (liveContext.activeWorkspace !== undefined) {
78
+ merged.activeWorkspace = liveContext.activeWorkspace;
79
+ }
80
+ if (liveContext.hasPageLoaded !== undefined) {
81
+ merged.hasPageLoaded = liveContext.hasPageLoaded;
82
+ }
83
+ if (liveContext.openSidebars !== undefined) {
84
+ merged.openSidebars = liveContext.openSidebars;
85
+ }
86
+ return merged;
87
+ }
88
+ //# sourceMappingURL=agentContextMerge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentContextMerge.js","sourceRoot":"","sources":["../../../../src/editor/ai/terminal/agentContextMerge.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,sBAAsB,CACpC,IAAmE;IAEnE,IAAI,CAAC,IAAI,EAAE,EAAE;QAAE,OAAO,IAAI,CAAC;IAE3B,OAAO;QACL,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;QAC7B,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACzC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;KAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,SAA8C;IAE9C,IAAI,CAAC,SAAS,EAAE,WAAW;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,UAAU,CACjB,SAA0C,EAC1C,QAAyC,EACzC,MAAmC;IAEnC,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAEpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAsC;IAEtC,OAAO,CAAC,CAAC,CACN,IAAY,EAAE,oBAAoB;QAClC,IAAY,EAAE,cAAc,EAAE,oBAAoB,CACpD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAwC;IAExC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,MAAM,EAAE,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,aAA+C,EAC/C,WAA6C;IAE7C,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,MAAM,MAAM,GAAkB;QAC5B,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;KACzB,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CACtB,WAAW,CAAC,KAAK,EACjB,aAAa,EAAE,KAAK,EACpB,sBAAsB,CACvB,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAC3B,WAAW,CAAC,UAAU,EACtB,aAAa,EAAE,UAAU,EACzB,2BAA2B,CAC5B,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,WAAW,CAAC,aAAa,IAAI,aAAa,EAAE,aAAa,CAAC;IAE5D,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IACnC,CAAC;SAAM,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;IACvD,CAAC;IACD,IAAI,WAAW,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IACnD,CAAC;IACD,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type LucideIcon } from "lucide-react";
2
+ import type { ActivityBucketKind, ItemActivitySummary } from "../../agentActivitySummary";
3
+ interface BucketMeta {
4
+ icon: LucideIcon;
5
+ /** Chip text + background colour classes. */
6
+ colorClass: string;
7
+ /** When true the chip shows the numeric count (field/component buckets). */
8
+ counting: boolean;
9
+ /** Chip text for non-counting (lifecycle) buckets. */
10
+ label: string;
11
+ /** Singular noun for the tooltip sentence. */
12
+ noun: string;
13
+ /** Verb for the tooltip sentence. */
14
+ verb: string;
15
+ }
16
+ export declare const BUCKET_META: Record<ActivityBucketKind, BucketMeta>;
17
+ export interface ActivitySummaryCellProps {
18
+ summary: ItemActivitySummary;
19
+ }
20
+ export declare function ActivitySummaryCell({ summary }: ActivitySummaryCellProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};