@parhelia/core 0.1.12565 → 0.1.12570

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/agents-view/AgentCard.d.ts +4 -6
  2. package/dist/agents-view/AgentCard.js +24 -143
  3. package/dist/agents-view/AgentCard.js.map +1 -1
  4. package/dist/agents-view/AgentsInbox.d.ts +1 -1
  5. package/dist/agents-view/AgentsInbox.js +92 -7
  6. package/dist/agents-view/AgentsInbox.js.map +1 -1
  7. package/dist/agents-view/AgentsTitlebar.js +2 -3
  8. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  9. package/dist/agents-view/AgentsView.d.ts +7 -6
  10. package/dist/agents-view/AgentsView.js +99 -191
  11. package/dist/agents-view/AgentsView.js.map +1 -1
  12. package/dist/agents-view/AgentsWorkspaceView.d.ts +6 -2
  13. package/dist/agents-view/AgentsWorkspaceView.js +113 -266
  14. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  15. package/dist/agents-view/ProfileAgentsGroup.d.ts +1 -2
  16. package/dist/agents-view/ProfileAgentsGroup.js +3 -4
  17. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  18. package/dist/components/ActionButton.d.ts +1 -1
  19. package/dist/components/ActionButton.js.map +1 -1
  20. package/dist/components/FilterInput.d.ts +1 -1
  21. package/dist/components/FilterInput.js +1 -1
  22. package/dist/components/FilterInput.js.map +1 -1
  23. package/dist/components/ui/LanguageSelector.js +4 -2
  24. package/dist/components/ui/LanguageSelector.js.map +1 -1
  25. package/dist/components/ui/PlaceholderInput.js +3 -3
  26. package/dist/components/ui/PlaceholderInput.js.map +1 -1
  27. package/dist/components/ui/PlaceholderInputTypes.js +1 -1
  28. package/dist/components/ui/PlaceholderInputTypes.js.map +1 -1
  29. package/dist/components/ui/alert-dialog.d.ts +1 -1
  30. package/dist/components/ui/alert-dialog.js +10 -6
  31. package/dist/components/ui/alert-dialog.js.map +1 -1
  32. package/dist/components/ui/button.d.ts +4 -4
  33. package/dist/components/ui/button.js +1 -4
  34. package/dist/components/ui/button.js.map +1 -1
  35. package/dist/components/ui/context-menu.d.ts +1 -1
  36. package/dist/components/ui/context-menu.js +4 -12
  37. package/dist/components/ui/context-menu.js.map +1 -1
  38. package/dist/components/ui/copy-button.d.ts +1 -2
  39. package/dist/components/ui/copy-button.js +2 -2
  40. package/dist/components/ui/copy-button.js.map +1 -1
  41. package/dist/components/ui/dialog.d.ts +1 -1
  42. package/dist/components/ui/dialog.js +126 -21
  43. package/dist/components/ui/dialog.js.map +1 -1
  44. package/dist/components/ui/input.d.ts +1 -1
  45. package/dist/components/ui/input.js +3 -5
  46. package/dist/components/ui/input.js.map +1 -1
  47. package/dist/components/ui/paste-button.d.ts +1 -2
  48. package/dist/components/ui/paste-button.js +2 -2
  49. package/dist/components/ui/paste-button.js.map +1 -1
  50. package/dist/components/ui/popover.js +9 -1
  51. package/dist/components/ui/popover.js.map +1 -1
  52. package/dist/components/ui/select.js +1 -1
  53. package/dist/components/ui/select.js.map +1 -1
  54. package/dist/components/ui/styled-dialog-title.js +1 -1
  55. package/dist/components/ui/styled-dialog-title.js.map +1 -1
  56. package/dist/components/ui/tabs.d.ts +1 -1
  57. package/dist/components/ui/tabs.js +11 -4
  58. package/dist/components/ui/tabs.js.map +1 -1
  59. package/dist/config/config.d.ts +2 -4
  60. package/dist/config/config.js +70 -250
  61. package/dist/config/config.js.map +1 -1
  62. package/dist/config/types/workspace.d.ts +0 -6
  63. package/dist/config/types.d.ts +12 -63
  64. package/dist/config/types.js.map +1 -1
  65. package/dist/editor/ComponentInfo.d.ts +4 -0
  66. package/dist/editor/ComponentInfo.js +41 -0
  67. package/dist/editor/ComponentInfo.js.map +1 -0
  68. package/dist/editor/ConfirmationDialog.js +4 -20
  69. package/dist/editor/ConfirmationDialog.js.map +1 -1
  70. package/dist/editor/ContentTree.d.ts +1 -2
  71. package/dist/editor/ContentTree.js +32 -93
  72. package/dist/editor/ContentTree.js.map +1 -1
  73. package/dist/editor/Editor.js +22 -87
  74. package/dist/editor/Editor.js.map +1 -1
  75. package/dist/editor/FieldHistory.js +36 -84
  76. package/dist/editor/FieldHistory.js.map +1 -1
  77. package/dist/editor/FieldListField.js +9 -21
  78. package/dist/editor/FieldListField.js.map +1 -1
  79. package/dist/editor/FieldListFieldWithFallbacks.js +2 -23
  80. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
  81. package/dist/editor/GlobalMenuBar.js +2 -29
  82. package/dist/editor/GlobalMenuBar.js.map +1 -1
  83. package/dist/editor/ImageEditor.js +2 -5
  84. package/dist/editor/ImageEditor.js.map +1 -1
  85. package/dist/editor/ItemInfo.js +1 -36
  86. package/dist/editor/ItemInfo.js.map +1 -1
  87. package/dist/editor/LinkEditorDialog.js +0 -3
  88. package/dist/editor/LinkEditorDialog.js.map +1 -1
  89. package/dist/editor/MainLayout.d.ts +2 -0
  90. package/dist/editor/MainLayout.js +8 -65
  91. package/dist/editor/MainLayout.js.map +1 -1
  92. package/dist/editor/MigrationsView.js +5 -29
  93. package/dist/editor/MigrationsView.js.map +1 -1
  94. package/dist/editor/MobileLayout.js +12 -37
  95. package/dist/editor/MobileLayout.js.map +1 -1
  96. package/dist/editor/PictureCropper.js +45 -54
  97. package/dist/editor/PictureCropper.js.map +1 -1
  98. package/dist/editor/PictureEditor.js +15 -17
  99. package/dist/editor/PictureEditor.js.map +1 -1
  100. package/dist/editor/QuickItemSwitcher.js +21 -21
  101. package/dist/editor/QuickItemSwitcher.js.map +1 -1
  102. package/dist/editor/SetupWizard.js +12 -52
  103. package/dist/editor/SetupWizard.js.map +1 -1
  104. package/dist/editor/Titlebar.js +2 -7
  105. package/dist/editor/Titlebar.js.map +1 -1
  106. package/dist/editor/ai/AgentCostDisplay.d.ts +0 -1
  107. package/dist/editor/ai/AgentCostDisplay.js +1 -1
  108. package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
  109. package/dist/editor/ai/AgentDocumentList.js +14 -32
  110. package/dist/editor/ai/AgentDocumentList.js.map +1 -1
  111. package/dist/editor/ai/AgentGreeting.js +2 -3
  112. package/dist/editor/ai/AgentGreeting.js.map +1 -1
  113. package/dist/editor/ai/AgentProfileSelector.js +1 -2
  114. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  115. package/dist/editor/ai/AgentStatusBadge.d.ts +5 -0
  116. package/dist/editor/ai/AgentStatusBadge.js +65 -67
  117. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  118. package/dist/editor/ai/AgentTerminal.d.ts +2 -14
  119. package/dist/editor/ai/AgentTerminal.js +496 -2406
  120. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  121. package/dist/editor/ai/AgentTerminalStatusBar.d.ts +3 -8
  122. package/dist/editor/ai/AgentTerminalStatusBar.js +56 -481
  123. package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
  124. package/dist/editor/ai/Agents.js +113 -161
  125. package/dist/editor/ai/Agents.js.map +1 -1
  126. package/dist/editor/ai/AiResponseMessage.d.ts +1 -10
  127. package/dist/editor/ai/AiResponseMessage.js +26 -267
  128. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  129. package/dist/editor/ai/ContextInfoBar.d.ts +3 -2
  130. package/dist/editor/ai/ContextInfoBar.js +7 -64
  131. package/dist/editor/ai/ContextInfoBar.js.map +1 -1
  132. package/dist/editor/ai/GuidanceOverlay.js +11 -17
  133. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  134. package/dist/editor/ai/HelpTerminal.d.ts +5 -0
  135. package/dist/editor/ai/HelpTerminal.js +166 -0
  136. package/dist/editor/ai/HelpTerminal.js.map +1 -0
  137. package/dist/editor/ai/InlineAiDialog.d.ts +1 -1
  138. package/dist/editor/ai/InlineAiDialog.js +192 -514
  139. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  140. package/dist/editor/ai/InlineAiTrigger.js +12 -115
  141. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  142. package/dist/editor/ai/MediaImage.js +8 -40
  143. package/dist/editor/ai/MediaImage.js.map +1 -1
  144. package/dist/editor/ai/SpawnedAgentsPanel.js +12 -10
  145. package/dist/editor/ai/SpawnedAgentsPanel.js.map +1 -1
  146. package/dist/editor/ai/ToolCallDisplay.d.ts +2 -22
  147. package/dist/editor/ai/ToolCallDisplay.js +150 -542
  148. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  149. package/dist/editor/ai/dialogs/AgentDialogHandler.d.ts +8 -1
  150. package/dist/editor/ai/dialogs/AgentDialogHandler.js +42 -379
  151. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  152. package/dist/editor/ai/dialogs/QuestionnaireInline.d.ts +1 -5
  153. package/dist/editor/ai/dialogs/QuestionnaireInline.js +60 -628
  154. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  155. package/dist/editor/ai/dialogs/agentDialogTypes.d.ts +0 -115
  156. package/dist/editor/ai/dialogs/agentDialogTypes.js +0 -2
  157. package/dist/editor/ai/dialogs/agentDialogTypes.js.map +1 -1
  158. package/dist/editor/ai/types.d.ts +1 -3
  159. package/dist/editor/ai/useAgentStatus.d.ts +1 -2
  160. package/dist/editor/ai/useAgentStatus.js +100 -90
  161. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  162. package/dist/editor/ai/useInlineAiPosition.js +5 -45
  163. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  164. package/dist/editor/client/AboutDialog.js +2 -4
  165. package/dist/editor/client/AboutDialog.js.map +1 -1
  166. package/dist/editor/client/EditorShell.d.ts +1 -4
  167. package/dist/editor/client/EditorShell.js +237 -770
  168. package/dist/editor/client/EditorShell.js.map +1 -1
  169. package/dist/editor/client/editContext.d.ts +19 -33
  170. package/dist/editor/client/editContext.js.map +1 -1
  171. package/dist/editor/client/helpers.js +0 -6
  172. package/dist/editor/client/helpers.js.map +1 -1
  173. package/dist/editor/client/hooks/useEditorUrlSync.js +2 -1
  174. package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -1
  175. package/dist/editor/client/hooks/useEditorWebSocket.d.ts +0 -10
  176. package/dist/editor/client/hooks/useEditorWebSocket.js +14 -209
  177. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  178. package/dist/editor/client/hooks/useQuota.d.ts +0 -8
  179. package/dist/editor/client/hooks/useQuota.js.map +1 -1
  180. package/dist/editor/client/hooks/useSocketMessageHandler.js +15 -73
  181. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  182. package/dist/editor/client/itemsRepository.js +6 -10
  183. package/dist/editor/client/itemsRepository.js.map +1 -1
  184. package/dist/editor/client/operations.d.ts +3 -6
  185. package/dist/editor/client/operations.js +30 -208
  186. package/dist/editor/client/operations.js.map +1 -1
  187. package/dist/editor/client/pageModelBuilder.js +31 -4
  188. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  189. package/dist/editor/client/ui/DevModeIndicator.js +2 -2
  190. package/dist/editor/client/ui/DevModeIndicator.js.map +1 -1
  191. package/dist/editor/client/ui/EditorChrome.d.ts +6 -0
  192. package/dist/editor/client/ui/EditorChrome.js +72 -55
  193. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  194. package/dist/editor/client/ui/FullscreenControls.js +3 -5
  195. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  196. package/dist/editor/commands/commands.d.ts +1 -11
  197. package/dist/editor/commands/commands.js +1 -12
  198. package/dist/editor/commands/commands.js.map +1 -1
  199. package/dist/editor/commands/componentCommands.js +55 -109
  200. package/dist/editor/commands/componentCommands.js.map +1 -1
  201. package/dist/editor/commands/customCommandConverter.d.ts +1 -8
  202. package/dist/editor/commands/customCommandConverter.js +5 -35
  203. package/dist/editor/commands/customCommandConverter.js.map +1 -1
  204. package/dist/editor/commands/handlers/agentHandler.js +1 -2
  205. package/dist/editor/commands/handlers/agentHandler.js.map +1 -1
  206. package/dist/editor/commands/itemCommands.d.ts +0 -3
  207. package/dist/editor/commands/itemCommands.js +10 -93
  208. package/dist/editor/commands/itemCommands.js.map +1 -1
  209. package/dist/editor/commands/undo.d.ts +15 -9
  210. package/dist/editor/commands/undo.js +0 -24
  211. package/dist/editor/commands/undo.js.map +1 -1
  212. package/dist/editor/context-menu/InsertMenu.js +39 -83
  213. package/dist/editor/context-menu/InsertMenu.js.map +1 -1
  214. package/dist/editor/field-types/MultiLineText.js +1 -1
  215. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  216. package/dist/editor/field-types/RawEditor.js +1 -1
  217. package/dist/editor/field-types/ReactQuill.d.ts +125 -0
  218. package/dist/editor/field-types/ReactQuill.js +385 -0
  219. package/dist/editor/field-types/ReactQuill.js.map +1 -0
  220. package/dist/editor/field-types/RichTextEditor.js +5 -13
  221. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  222. package/dist/editor/field-types/RichTextEditorComponent.js +3 -37
  223. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  224. package/dist/editor/field-types/SingleLineText.js +1 -1
  225. package/dist/editor/field-types/TreeListEditor.js +2 -3
  226. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  227. package/dist/editor/field-types/richtext/components/ReactSlate.css +5 -23
  228. package/dist/editor/field-types/richtext/components/ReactSlate.d.ts +0 -2
  229. package/dist/editor/field-types/richtext/components/ReactSlate.js +4 -28
  230. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  231. package/dist/editor/field-types/richtext/components/ToolbarButton.js +2 -4
  232. package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -1
  233. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +0 -13
  234. package/dist/editor/field-types/richtext/contextMenuFactory.js +24 -181
  235. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  236. package/dist/editor/field-types/richtext/types.d.ts +0 -2
  237. package/dist/editor/field-types/richtext/types.js.map +1 -1
  238. package/dist/editor/field-types/richtext/utils/plugins.js +0 -4
  239. package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -1
  240. package/dist/editor/field-types/textContextMenuFactory.js +2 -3
  241. package/dist/editor/field-types/textContextMenuFactory.js.map +1 -1
  242. package/dist/editor/media-selector/AiImageSearchPrompt.js +2 -4
  243. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  244. package/dist/editor/media-selector/MediaFolderBrowser.js +1 -1
  245. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  246. package/dist/editor/media-selector/MediaSelector.js +1 -7
  247. package/dist/editor/media-selector/MediaSelector.js.map +1 -1
  248. package/dist/editor/media-selector/TreeSelector.js +35 -40
  249. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  250. package/dist/editor/menubar/ActiveUsers.js +1 -1
  251. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  252. package/dist/editor/menubar/GenericToolbar.js +2 -4
  253. package/dist/editor/menubar/GenericToolbar.js.map +1 -1
  254. package/dist/editor/menubar/ItemLanguageVersion.js +2 -2
  255. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  256. package/dist/editor/menubar/PageSelector.js +147 -26
  257. package/dist/editor/menubar/PageSelector.js.map +1 -1
  258. package/dist/editor/menubar/Separator.js +1 -1
  259. package/dist/editor/menubar/VersionSelector.js +4 -2
  260. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  261. package/dist/editor/menubar/WorkflowButton.js +12 -39
  262. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  263. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +38 -16
  264. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  265. package/dist/editor/menubar/toolbar-sections/EditControls.js +3 -3
  266. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  267. package/dist/editor/menubar/toolbar-sections/HelpButton.js +0 -1
  268. package/dist/editor/menubar/toolbar-sections/HelpButton.js.map +1 -1
  269. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -6
  270. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +220 -597
  271. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  272. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +2 -13
  273. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  274. package/dist/editor/page-editor-chrome/CommentHighlighting.js +1 -42
  275. package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -1
  276. package/dist/editor/page-editor-chrome/FrameMenu.js +1 -1
  277. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  278. package/dist/editor/page-editor-chrome/InlineEditor.js +48 -97
  279. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  280. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +17 -38
  281. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  282. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +11 -17
  283. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  284. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +301 -301
  285. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  286. package/dist/editor/page-viewer/DeviceToolbar.js +1 -1
  287. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  288. package/dist/editor/page-viewer/EditorForm.js +11 -69
  289. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  290. package/dist/editor/page-viewer/MiniMap.d.ts +4 -2
  291. package/dist/editor/page-viewer/MiniMap.js +28 -91
  292. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  293. package/dist/editor/page-viewer/PageViewer.d.ts +1 -3
  294. package/dist/editor/page-viewer/PageViewer.js +19 -92
  295. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  296. package/dist/editor/page-viewer/PageViewerFrame.d.ts +1 -2
  297. package/dist/editor/page-viewer/PageViewerFrame.js +115 -348
  298. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  299. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +49 -114
  300. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -1
  301. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -1
  302. package/dist/editor/page-viewer/pageViewContext.js +14 -51
  303. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  304. package/dist/editor/pageModel.d.ts +1 -14
  305. package/dist/editor/reviews/Comment.js +12 -26
  306. package/dist/editor/reviews/Comment.js.map +1 -1
  307. package/dist/editor/reviews/CommentDisplayPopover.js +5 -7
  308. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  309. package/dist/editor/reviews/CommentView.js +4 -19
  310. package/dist/editor/reviews/CommentView.js.map +1 -1
  311. package/dist/editor/reviews/Comments.js +72 -89
  312. package/dist/editor/reviews/Comments.js.map +1 -1
  313. package/dist/editor/reviews/CreateReviewDialog.js +177 -281
  314. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  315. package/dist/editor/reviews/DecisionsMatrix.js +25 -96
  316. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  317. package/dist/editor/reviews/DiffView.js +14 -7
  318. package/dist/editor/reviews/DiffView.js.map +1 -1
  319. package/dist/editor/reviews/EditReviewSettingsDialog.js +4 -6
  320. package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
  321. package/dist/editor/reviews/MultiReviewManager.js +3 -25
  322. package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
  323. package/dist/editor/reviews/PagesPanel.js +15 -31
  324. package/dist/editor/reviews/PagesPanel.js.map +1 -1
  325. package/dist/editor/reviews/PreviewInfo.js +4 -1
  326. package/dist/editor/reviews/PreviewInfo.js.map +1 -1
  327. package/dist/editor/reviews/ReviewCard.js +7 -13
  328. package/dist/editor/reviews/ReviewCard.js.map +1 -1
  329. package/dist/editor/reviews/ReviewDetail.js +2 -3
  330. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  331. package/dist/editor/reviews/ReviewsList.js +3 -7
  332. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  333. package/dist/editor/reviews/SuggestedEdit.js +3 -34
  334. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  335. package/dist/editor/reviews/SuggestionDisplayPopover.js +5 -31
  336. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  337. package/dist/editor/reviews/commentAi.js +6 -25
  338. package/dist/editor/reviews/commentAi.js.map +1 -1
  339. package/dist/editor/reviews/reviewCommands.js +1 -4
  340. package/dist/editor/reviews/reviewCommands.js.map +1 -1
  341. package/dist/editor/reviews/useMultiReview.js +2 -2
  342. package/dist/editor/reviews/useMultiReview.js.map +1 -1
  343. package/dist/editor/reviews/useReviews.d.ts +2 -2
  344. package/dist/editor/reviews/useReviews.js +30 -12
  345. package/dist/editor/reviews/useReviews.js.map +1 -1
  346. package/dist/editor/services/agentService.d.ts +5 -229
  347. package/dist/editor/services/agentService.js +39 -292
  348. package/dist/editor/services/agentService.js.map +1 -1
  349. package/dist/editor/services/aiService.d.ts +1 -57
  350. package/dist/editor/services/aiService.js +6 -79
  351. package/dist/editor/services/aiService.js.map +1 -1
  352. package/dist/editor/services/contentService.d.ts +3 -6
  353. package/dist/editor/services/contentService.js +12 -13
  354. package/dist/editor/services/contentService.js.map +1 -1
  355. package/dist/editor/services/editService.d.ts +1 -52
  356. package/dist/editor/services/editService.js +2 -94
  357. package/dist/editor/services/editService.js.map +1 -1
  358. package/dist/editor/services/indexService.js +1 -1
  359. package/dist/editor/services/indexService.js.map +1 -1
  360. package/dist/editor/services/reviewsService.d.ts +6 -3
  361. package/dist/editor/services/reviewsService.js +11 -2
  362. package/dist/editor/services/reviewsService.js.map +1 -1
  363. package/dist/editor/services/serviceHelper.d.ts +1 -2
  364. package/dist/editor/services/serviceHelper.js +20 -112
  365. package/dist/editor/services/serviceHelper.js.map +1 -1
  366. package/dist/editor/services/systemService.d.ts +1 -2
  367. package/dist/editor/services/systemService.js +0 -3
  368. package/dist/editor/services/systemService.js.map +1 -1
  369. package/dist/editor/services-server/api.d.ts +2 -1
  370. package/dist/editor/services-server/api.js +6 -11
  371. package/dist/editor/services-server/api.js.map +1 -1
  372. package/dist/editor/services-server/graphQL.d.ts +29 -0
  373. package/dist/editor/services-server/graphQL.js +53 -0
  374. package/dist/editor/services-server/graphQL.js.map +1 -0
  375. package/dist/editor/settings/About.js +3 -317
  376. package/dist/editor/settings/About.js.map +1 -1
  377. package/dist/editor/settings/AllAgentsPanel.d.ts +5 -0
  378. package/dist/editor/settings/AllAgentsPanel.js +139 -0
  379. package/dist/editor/settings/AllAgentsPanel.js.map +1 -0
  380. package/dist/editor/settings/LatestFeedback.d.ts +1 -0
  381. package/dist/editor/settings/LatestFeedback.js +136 -0
  382. package/dist/editor/settings/LatestFeedback.js.map +1 -0
  383. package/dist/editor/settings/QuotaInfo.js +4 -210
  384. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  385. package/dist/editor/settings/SettingsView.js +23 -25
  386. package/dist/editor/settings/SettingsView.js.map +1 -1
  387. package/dist/editor/settings/Setup.d.ts +1 -0
  388. package/dist/editor/settings/Setup.js +211 -0
  389. package/dist/editor/settings/Setup.js.map +1 -0
  390. package/dist/editor/settings/Status.js +6 -7
  391. package/dist/editor/settings/Status.js.map +1 -1
  392. package/dist/editor/settings/index/useIndexStatus.js +22 -20
  393. package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
  394. package/dist/editor/settings/panels/AgentsPanel.d.ts +4 -0
  395. package/dist/editor/settings/panels/AgentsPanel.js +121 -95
  396. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  397. package/dist/editor/settings/panels/DatabasePanel.d.ts +6 -0
  398. package/dist/editor/settings/panels/DatabasePanel.js +50 -0
  399. package/dist/editor/settings/panels/DatabasePanel.js.map +1 -0
  400. package/dist/editor/settings/panels/ModelsPanel.js +108 -329
  401. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  402. package/dist/editor/settings/panels/ProvidersPanel.d.ts +1 -1
  403. package/dist/editor/settings/panels/ProvidersPanel.js +59 -86
  404. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  405. package/dist/editor/settings/panels/SearchConfigPanel.js +4 -4
  406. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  407. package/dist/editor/settings/panels/index.d.ts +2 -3
  408. package/dist/editor/settings/panels/index.js +2 -3
  409. package/dist/editor/settings/panels/index.js.map +1 -1
  410. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
  411. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
  412. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
  413. package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +2 -0
  414. package/dist/editor/settings/setup-steps/AiSetupStep/index.js +21 -0
  415. package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +1 -0
  416. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
  417. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
  418. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
  419. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
  420. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
  421. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
  422. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
  423. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
  424. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
  425. package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +1 -0
  426. package/dist/editor/settings/setup-steps/AiSetupStep/types.js +2 -0
  427. package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +1 -0
  428. package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +5 -0
  429. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +44 -0
  430. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +1 -0
  431. package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +2 -0
  432. package/dist/editor/settings/setup-steps/IndexSetupStep.js +36 -0
  433. package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +1 -0
  434. package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +2 -0
  435. package/dist/editor/settings/setup-steps/SettingsSetupStep.js +111 -0
  436. package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +1 -0
  437. package/dist/editor/settings/setup-steps/SetupOverview.d.ts +14 -0
  438. package/dist/editor/settings/setup-steps/SetupOverview.js +38 -0
  439. package/dist/editor/settings/setup-steps/SetupOverview.js.map +1 -0
  440. package/dist/editor/settings/status/coreStatusChecks.js +19 -124
  441. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -1
  442. package/dist/editor/settings/status/useStartupChecks.d.ts +1 -3
  443. package/dist/editor/settings/status/useStartupChecks.js +5 -9
  444. package/dist/editor/settings/status/useStartupChecks.js.map +1 -1
  445. package/dist/editor/setup-wizard/steps/CompleteStep.d.ts +1 -2
  446. package/dist/editor/setup-wizard/steps/CompleteStep.js +1 -2
  447. package/dist/editor/setup-wizard/steps/CompleteStep.js.map +1 -1
  448. package/dist/editor/sidebar/ComponentPalette.js +1 -2
  449. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  450. package/dist/editor/sidebar/ComponentTree.d.ts +1 -8
  451. package/dist/editor/sidebar/ComponentTree.js +69 -216
  452. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  453. package/dist/editor/sidebar/Debug.d.ts +1 -0
  454. package/dist/editor/sidebar/Debug.js +70 -0
  455. package/dist/editor/sidebar/Debug.js.map +1 -0
  456. package/dist/editor/sidebar/EditHistory.js +46 -22
  457. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  458. package/dist/editor/sidebar/Favorites.js +8 -4
  459. package/dist/editor/sidebar/Favorites.js.map +1 -1
  460. package/dist/editor/sidebar/GraphQL.d.ts +2 -0
  461. package/dist/editor/sidebar/GraphQL.js +234 -0
  462. package/dist/editor/sidebar/GraphQL.js.map +1 -0
  463. package/dist/editor/sidebar/LeftToolbar.d.ts +1 -0
  464. package/dist/editor/sidebar/LeftToolbar.js +12 -0
  465. package/dist/editor/sidebar/LeftToolbar.js.map +1 -0
  466. package/dist/editor/sidebar/MainContentTree.js +3 -4
  467. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  468. package/dist/editor/sidebar/NavigationSidebar.d.ts +4 -0
  469. package/dist/editor/sidebar/NavigationSidebar.js +254 -0
  470. package/dist/editor/sidebar/NavigationSidebar.js.map +1 -0
  471. package/dist/editor/sidebar/OperationItem.js +7 -21
  472. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  473. package/dist/editor/sidebar/SidebarPanel.d.ts +1 -3
  474. package/dist/editor/sidebar/SidebarPanel.js +12 -44
  475. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  476. package/dist/editor/sidebar/SidebarStack.d.ts +1 -2
  477. package/dist/editor/sidebar/SidebarStack.js +3 -4
  478. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  479. package/dist/editor/sidebar/Validation.js +12 -24
  480. package/dist/editor/sidebar/Validation.js.map +1 -1
  481. package/dist/editor/sidebar/Workbox.js +3 -53
  482. package/dist/editor/sidebar/Workbox.js.map +1 -1
  483. package/dist/editor/sidebar/WorkspaceRail.d.ts +1 -0
  484. package/dist/editor/sidebar/WorkspaceRail.js +167 -56
  485. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  486. package/dist/editor/tree-indicators/GutterColumns.d.ts +1 -3
  487. package/dist/editor/tree-indicators/GutterColumns.js +5 -26
  488. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  489. package/dist/editor/tree-indicators/GutterContext.d.ts +0 -4
  490. package/dist/editor/tree-indicators/GutterContext.js +0 -23
  491. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  492. package/dist/editor/tree-indicators/GutterSelector.d.ts +5 -0
  493. package/dist/editor/tree-indicators/GutterSelector.js +91 -0
  494. package/dist/editor/tree-indicators/GutterSelector.js.map +1 -0
  495. package/dist/editor/tree-indicators/index.d.ts +1 -0
  496. package/dist/editor/tree-indicators/index.js +1 -0
  497. package/dist/editor/tree-indicators/index.js.map +1 -1
  498. package/dist/editor/tree-indicators/types.d.ts +1 -12
  499. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js +1 -1
  500. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js.map +1 -1
  501. package/dist/editor/ui/Icons.js +1 -1
  502. package/dist/editor/ui/Icons.js.map +1 -1
  503. package/dist/editor/ui/ItemNameDialogNew.d.ts +0 -2
  504. package/dist/editor/ui/ItemNameDialogNew.js +17 -33
  505. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  506. package/dist/editor/ui/ItemSearch.js +11 -7
  507. package/dist/editor/ui/ItemSearch.js.map +1 -1
  508. package/dist/editor/ui/SimpleIconButton.js +1 -1
  509. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  510. package/dist/editor/ui/SimpleTabs.d.ts +0 -1
  511. package/dist/editor/ui/SimpleTabs.js +25 -45
  512. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  513. package/dist/editor/ui/Splitter.d.ts +0 -1
  514. package/dist/editor/ui/Splitter.js +86 -102
  515. package/dist/editor/ui/Splitter.js.map +1 -1
  516. package/dist/editor/ui/TemplateSelectorDialog.js +4 -4
  517. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
  518. package/dist/editor/ui/TreeListSelector.d.ts +1 -6
  519. package/dist/editor/ui/TreeListSelector.js +2 -2
  520. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  521. package/dist/editor/utils/keyboardNavigation.d.ts +20 -6
  522. package/dist/editor/utils/keyboardNavigation.js +140 -48
  523. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  524. package/dist/editor/utils.js +9 -19
  525. package/dist/editor/utils.js.map +1 -1
  526. package/dist/editor/views/CompareView.d.ts +1 -3
  527. package/dist/editor/views/CompareView.js +5 -7
  528. package/dist/editor/views/CompareView.js.map +1 -1
  529. package/dist/editor/views/EditView.js +1 -1
  530. package/dist/editor/views/EditView.js.map +1 -1
  531. package/dist/editor/views/EditorSlot.js +34 -27
  532. package/dist/editor/views/EditorSlot.js.map +1 -1
  533. package/dist/editor/views/ItemEditor.js +3 -7
  534. package/dist/editor/views/ItemEditor.js.map +1 -1
  535. package/dist/editor/views/MediaFolderEditView.js +1 -1
  536. package/dist/editor/views/MediaFolderEditView.js.map +1 -1
  537. package/dist/editor/views/ParheliaView.js +6 -5
  538. package/dist/editor/views/ParheliaView.js.map +1 -1
  539. package/dist/editor/views/SingleEditView.d.ts +1 -2
  540. package/dist/editor/views/SingleEditView.js +8 -10
  541. package/dist/editor/views/SingleEditView.js.map +1 -1
  542. package/dist/editor/views/editorSlotContext.js +6 -35
  543. package/dist/editor/views/editorSlotContext.js.map +1 -1
  544. package/dist/index.d.ts +2 -16
  545. package/dist/index.js +0 -11
  546. package/dist/index.js.map +1 -1
  547. package/dist/revision.d.ts +2 -2
  548. package/dist/revision.js +2 -2
  549. package/dist/setup/services/setupWizardService.d.ts +13 -40
  550. package/dist/setup/services/setupWizardService.js +17 -32
  551. package/dist/setup/services/setupWizardService.js.map +1 -1
  552. package/dist/setup/wizard/steps/AddModelDialog.js +3 -12
  553. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
  554. package/dist/setup/wizard/steps/ImportModelDialog.js +22 -39
  555. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
  556. package/dist/splash-screen/ModernSplashScreen.js +32 -112
  557. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  558. package/dist/splash-screen/NewPage.js +50 -33
  559. package/dist/splash-screen/NewPage.js.map +1 -1
  560. package/dist/splash-screen/OpenPage.js +6 -2
  561. package/dist/splash-screen/OpenPage.js.map +1 -1
  562. package/dist/splash-screen/ParheliaAssistantChat.js +29 -12
  563. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  564. package/dist/splash-screen/ParheliaLogo.js +37 -87
  565. package/dist/splash-screen/ParheliaLogo.js.map +1 -1
  566. package/dist/splash-screen/RecentPages.js +3 -3
  567. package/dist/splash-screen/RecentPages.js.map +1 -1
  568. package/dist/tour/Tour.d.ts +1 -2
  569. package/dist/tour/Tour.js +75 -256
  570. package/dist/tour/Tour.js.map +1 -1
  571. package/dist/tour/default-tour.js +96 -222
  572. package/dist/tour/default-tour.js.map +1 -1
  573. package/dist/types.d.ts +29 -63
  574. package/package.json +15 -19
  575. package/styles.css +10 -39
@@ -1,6 +1,5 @@
1
1
  import { type AgentChatMessage, type AgentDetails } from "../services/agentService";
2
- import type { EditorSocketDiagnostics } from "../client/socketDiagnostics";
3
- import { type AgentTerminalRunDiagnosticsSnapshot } from "./agentDiagnostics";
2
+ import type { AiProfile } from "../services/aiService";
4
3
  export type ContextWindowStatus = {
5
4
  contextWindowTokens: number;
6
5
  estimatedInputTokens: number;
@@ -16,7 +15,6 @@ export type LiveTotals = {
16
15
  outputCost: number;
17
16
  cachedCost: number;
18
17
  cacheWriteCost?: number;
19
- imageCost: number;
20
18
  totalCost: number;
21
19
  currency?: string;
22
20
  } | null;
@@ -30,19 +28,16 @@ export type TotalTokensForDisplay = {
30
28
  outputCost: number;
31
29
  cachedCost: number;
32
30
  cacheWriteCost: number;
33
- imageCost: number;
34
31
  };
35
32
  export interface AgentTerminalStatusBarProps {
36
33
  agent: AgentDetails | undefined;
37
34
  contextWindowStatus: ContextWindowStatus;
38
- effectiveModelName?: string;
39
- socketDiagnostics: EditorSocketDiagnostics;
40
- runDiagnosticsSnapshot: AgentTerminalRunDiagnosticsSnapshot;
41
35
  liveTotals: LiveTotals;
42
36
  totalTokens: TotalTokensForDisplay;
43
37
  effectiveCostLimit: number | undefined;
44
38
  messages: AgentChatMessage[];
39
+ activeProfile: AiProfile | undefined;
45
40
  showCompressionPopover: boolean;
46
41
  setShowCompressionPopover: (v: boolean) => void;
47
42
  }
48
- export declare function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveModelName, socketDiagnostics, runDiagnosticsSnapshot, liveTotals, totalTokens, effectiveCostLimit, messages, showCompressionPopover, setShowCompressionPopover, }: AgentTerminalStatusBarProps): import("react/jsx-runtime").JSX.Element;
43
+ export declare function AgentTerminalStatusBar({ agent, contextWindowStatus, liveTotals, totalTokens, effectiveCostLimit, messages, activeProfile, showCompressionPopover, setShowCompressionPopover, }: AgentTerminalStatusBarProps): import("react/jsx-runtime").JSX.Element;
@@ -1,420 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useMemo, useState } from "react";
3
- import { Bug } from "lucide-react";
2
+ import { Bug, ExternalLink } from "lucide-react";
3
+ import { toast } from "sonner";
4
4
  import { Popover, PopoverContent, PopoverTrigger, } from "../../components/ui/popover";
5
5
  import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/tooltip";
6
- import { getAgentDiagnostics, getLastPayload, } from "../services/agentService";
6
+ import { useEditContext } from "../client/editContext";
7
+ import { getLastPayload, } from "../services/agentService";
7
8
  import { AgentCostDisplay } from "./AgentCostDisplay";
8
- import { ContentInspectorPopover, } from "./ContentInspectorPopover";
9
- import { formatAgentDiagnosticsEvent, interpretAgentRunDiagnostics, } from "./agentDiagnostics";
10
- function formatDiagnosticTime(value) {
11
- if (!value)
12
- return "—";
13
- const parsed = new Date(value);
14
- return Number.isNaN(parsed.getTime()) ? value : parsed.toLocaleString();
15
- }
16
- function yesNo(value) {
17
- return value ? "Yes" : "No";
18
- }
19
- function lines(values) {
20
- return values.filter(Boolean).join("\n");
21
- }
22
- function normalizeInspectorText(value) {
23
- if (typeof value !== "string")
24
- return null;
25
- const normalized = value.replace(/\r\n/g, "\n").trim();
26
- return normalized.length > 0 ? normalized : null;
27
- }
28
- function extractTextFromUnknown(value, depth = 0) {
29
- if (depth > 5 || value == null)
30
- return [];
31
- if (typeof value === "string") {
32
- const normalized = normalizeInspectorText(value);
33
- return normalized ? [normalized] : [];
34
- }
35
- if (Array.isArray(value)) {
36
- return value.flatMap((entry) => extractTextFromUnknown(entry, depth + 1));
37
- }
38
- if (typeof value !== "object") {
39
- return [];
40
- }
41
- const record = value;
42
- if (typeof record.text === "string") {
43
- return extractTextFromUnknown(record.text, depth + 1);
44
- }
45
- if (typeof record.content === "string") {
46
- return extractTextFromUnknown(record.content, depth + 1);
47
- }
48
- const candidates = [
49
- record.content,
50
- record.parts,
51
- record.messages,
52
- record.message,
53
- record.input,
54
- record.output,
55
- record.prompt,
56
- record.response,
57
- record.arguments,
58
- ];
59
- for (const candidate of candidates) {
60
- const extracted = extractTextFromUnknown(candidate, depth + 1);
61
- if (extracted.length > 0)
62
- return extracted;
63
- }
64
- return [];
65
- }
66
- function joinExtractedText(value) {
67
- const text = extractTextFromUnknown(value)
68
- .join("\n")
69
- .trim();
70
- return text.length > 0 ? text : null;
71
- }
72
- function extractLastPromptFromPayload(payload) {
73
- const normalizedPayload = normalizeInspectorText(payload);
74
- if (!normalizedPayload)
75
- return null;
76
- try {
77
- const parsed = JSON.parse(normalizedPayload);
78
- const messages = Array.isArray(parsed.messages)
79
- ? parsed.messages
80
- : Array.isArray(parsed.input)
81
- ? parsed.input
82
- : [];
83
- for (let i = messages.length - 1; i >= 0; i--) {
84
- const message = messages[i];
85
- const role = String(message?.role || "").toLowerCase();
86
- if (role !== "user")
87
- continue;
88
- const extracted = joinExtractedText(message?.content ?? message);
89
- if (extracted)
90
- return extracted;
91
- }
92
- return joinExtractedText(parsed.prompt ?? parsed.input ?? parsed.messages);
93
- }
94
- catch {
95
- return null;
96
- }
97
- }
98
- function extractLastResponseFromRawResponse(rawResponse) {
99
- const normalizedResponse = normalizeInspectorText(rawResponse);
100
- if (!normalizedResponse)
101
- return null;
102
- const parseJsonResponse = (jsonText) => {
103
- try {
104
- const parsed = JSON.parse(jsonText);
105
- const choices = Array.isArray(parsed.choices) ? parsed.choices : [];
106
- const chunks = [];
107
- for (const choice of choices) {
108
- const record = choice;
109
- const content = joinExtractedText(record.message) ||
110
- joinExtractedText(record.delta) ||
111
- joinExtractedText(record.text);
112
- if (content) {
113
- chunks.push(content);
114
- }
115
- }
116
- if (chunks.length > 0) {
117
- return chunks.join("");
118
- }
119
- return joinExtractedText(parsed.response ?? parsed.output ?? parsed.message);
120
- }
121
- catch {
122
- return null;
123
- }
124
- };
125
- const direct = parseJsonResponse(normalizedResponse);
126
- if (direct)
127
- return direct;
128
- const sseChunks = [];
129
- for (const line of normalizedResponse.split("\n")) {
130
- const trimmed = line.trim();
131
- if (!trimmed.startsWith("data:"))
132
- continue;
133
- const data = trimmed.slice(5).trim();
134
- if (!data || data === "[DONE]")
135
- continue;
136
- const chunk = parseJsonResponse(data);
137
- if (chunk) {
138
- sseChunks.push(chunk);
139
- }
140
- }
141
- if (sseChunks.length > 0) {
142
- return sseChunks.join("").trim() || null;
143
- }
144
- return null;
145
- }
146
- function extractLastMessageByRole(messages, role) {
147
- for (let i = messages.length - 1; i >= 0; i--) {
148
- const message = messages[i];
149
- if (message?.role !== role)
150
- continue;
151
- const content = normalizeInspectorText(message.content);
152
- if (content)
153
- return content;
154
- }
155
- return null;
156
- }
157
- function toSingleLine(value, maxLength = 140) {
158
- const normalized = normalizeInspectorText(value);
159
- if (!normalized)
160
- return null;
161
- const singleLine = normalized.replace(/\s+/g, " ").trim();
162
- if (!singleLine)
163
- return null;
164
- return singleLine.length > maxLength
165
- ? `${singleLine.slice(0, maxLength)}...`
166
- : singleLine;
167
- }
168
- function getPersistentLogDetailSummary(log) {
169
- const details = [
170
- toSingleLine(log.summary, 180),
171
- log.error ? `Error: ${toSingleLine(log.error, 120)}` : null,
172
- log.payloadPreview ? `Payload: ${toSingleLine(log.payloadPreview, 90)}` : null,
173
- log.resultPreview ? `Result: ${toSingleLine(log.resultPreview, 90)}` : null,
174
- log.metadataJson ? `Metadata: ${toSingleLine(log.metadataJson, 90)}` : null,
175
- ]
176
- .filter(Boolean)
177
- .join(" | ");
178
- return details || null;
179
- }
180
- function formatPersistentLogEntry(log) {
181
- const heading = [
182
- `[${formatDiagnosticTime(log.createdAt)}]`,
183
- log.eventType || "event",
184
- log.stage ? `(${log.stage})` : null,
185
- log.status ? `- ${log.status}` : null,
186
- ]
187
- .filter(Boolean)
188
- .join(" ");
189
- const details = [
190
- log.source,
191
- log.seq != null ? `seq ${log.seq}` : null,
192
- log.durationMs != null ? `${log.durationMs} ms` : null,
193
- log.success != null ? (log.success ? "success" : "failed") : null,
194
- getPersistentLogDetailSummary(log),
195
- ]
196
- .filter(Boolean)
197
- .join(" | ");
198
- return details ? `${heading} | ${details}` : heading;
199
- }
200
- function renderPersistentLogsTable(persistentLogs) {
201
- return (_jsx("div", { className: "min-h-0 flex-1 overflow-x-auto overflow-y-auto rounded border border-slate-200 bg-white", children: _jsxs("table", { className: "min-w-[1100px] border-collapse text-[11px] text-slate-700", children: [_jsx("thead", { className: "sticky top-0 z-10 bg-slate-50", children: _jsxs("tr", { className: "border-b border-slate-200 text-left text-[10px] font-semibold tracking-wider text-slate-500 uppercase", children: [_jsx("th", { className: "px-2 py-2", children: "Time" }), _jsx("th", { className: "px-2 py-2", children: "Event" }), _jsx("th", { className: "px-2 py-2", children: "Stage" }), _jsx("th", { className: "px-2 py-2", children: "Status" }), _jsx("th", { className: "px-2 py-2", children: "Source" }), _jsx("th", { className: "px-2 py-2", children: "Details" })] }) }), _jsx("tbody", { children: persistentLogs.map((log) => {
202
- const detailSummary = getPersistentLogDetailSummary(log) ?? "—";
203
- return (_jsxs("tr", { className: "border-b border-slate-100 align-top last:border-b-0", children: [_jsx("td", { className: "max-w-32 px-2 py-1.5 whitespace-nowrap text-slate-500", children: _jsx("span", { className: "block truncate", title: formatDiagnosticTime(log.createdAt), children: formatDiagnosticTime(log.createdAt) }) }), _jsx("td", { className: "max-w-28 px-2 py-1.5 whitespace-nowrap font-medium text-slate-800", children: _jsx("span", { className: "block truncate", title: log.eventType || "event", children: log.eventType || "event" }) }), _jsx("td", { className: "max-w-24 px-2 py-1.5 whitespace-nowrap", children: _jsx("span", { className: "block truncate", title: log.stage || "—", children: log.stage || "—" }) }), _jsx("td", { className: "max-w-24 px-2 py-1.5 whitespace-nowrap", children: _jsx("span", { className: "block truncate", title: log.status || "—", children: log.status || "—" }) }), _jsx("td", { className: "max-w-28 px-2 py-1.5 whitespace-nowrap", children: _jsx("span", { className: "block truncate", title: log.source || "—", children: log.source || "—" }) }), _jsx("td", { className: "min-w-md px-2 py-1.5 whitespace-nowrap", children: _jsx("span", { className: "block truncate", title: detailSummary, children: detailSummary }) })] }, log.logId));
204
- }) })] }) }));
205
- }
206
- function buildPersistentLogsSection(persistentLogs) {
207
- return {
208
- title: persistentLogs.length > 0
209
- ? `Agent logs (${persistentLogs.length})`
210
- : "Agent logs",
211
- content: persistentLogs.length > 0
212
- ? persistentLogs
213
- .map((log) => formatPersistentLogEntry(log))
214
- .join("\n")
215
- : "No persistent agent logs were recorded for this agent yet.",
216
- contentNode: persistentLogs.length > 0
217
- ? renderPersistentLogsTable(persistentLogs)
218
- : undefined,
219
- };
220
- }
221
- function buildDiagnosticsSections(params) {
222
- const { socketDiagnostics, runDiagnosticsSnapshot, serverDiagnostics, messages, payload, rawResponse, } = params;
223
- const summary = interpretAgentRunDiagnostics({
224
- socketDiagnostics,
225
- localSnapshot: runDiagnosticsSnapshot,
226
- serverDiagnostics,
227
- });
228
- const lastPrompt = extractLastPromptFromPayload(payload) ||
229
- extractLastMessageByRole(messages, "user");
230
- const lastResponse = extractLastResponseFromRawResponse(rawResponse) ||
231
- extractLastMessageByRole(messages, "assistant");
232
- const sections = [
233
- {
234
- title: "Summary",
235
- content: lines([
236
- `Diagnosis: ${summary.title}`,
237
- summary.detail,
238
- `Socket: ${socketDiagnostics.readyStateLabel}`,
239
- `Session connected: ${yesNo(serverDiagnostics.currentSession.isConnected)}`,
240
- `Session subscribed: ${yesNo(serverDiagnostics.currentSession.isSubscribed)}`,
241
- `Server status: ${serverDiagnostics.execution.status || "unknown"}`,
242
- `Last seq: ${serverDiagnostics.transport.lastSeq ?? runDiagnosticsSnapshot.lastSeq ?? "—"}`,
243
- ]),
244
- },
245
- {
246
- title: "Client connection",
247
- content: lines([
248
- `Session ID: ${socketDiagnostics.sessionId || "—"}`,
249
- `Socket state: ${socketDiagnostics.readyStateLabel}`,
250
- `Reconnect count: ${socketDiagnostics.reconnectCount}`,
251
- `Last socket event: ${socketDiagnostics.lastEventType} @ ${formatDiagnosticTime(socketDiagnostics.lastEventAt)}`,
252
- `Last open: ${formatDiagnosticTime(socketDiagnostics.lastOpenAt)}`,
253
- `Last message: ${formatDiagnosticTime(socketDiagnostics.lastMessageAt)}`,
254
- `Last close: ${formatDiagnosticTime(socketDiagnostics.lastCloseAt)}`,
255
- socketDiagnostics.lastCloseCode != null
256
- ? `Last close code: ${socketDiagnostics.lastCloseCode}`
257
- : null,
258
- socketDiagnostics.lastCloseReason
259
- ? `Last close reason: ${socketDiagnostics.lastCloseReason}`
260
- : null,
261
- `Last error: ${formatDiagnosticTime(socketDiagnostics.lastErrorAt)}`,
262
- socketDiagnostics.lastErrorMessage
263
- ? `Last error message: ${socketDiagnostics.lastErrorMessage}`
264
- : null,
265
- ]),
266
- },
267
- {
268
- title: "Agent stream",
269
- content: lines([
270
- `Submitting: ${yesNo(runDiagnosticsSnapshot.isSubmitting)}`,
271
- `Connecting: ${yesNo(runDiagnosticsSnapshot.isConnecting)}`,
272
- `Waiting for response: ${yesNo(runDiagnosticsSnapshot.isWaitingForResponse)}`,
273
- `Agent thinking: ${yesNo(runDiagnosticsSnapshot.isAgentThinking)}`,
274
- `Executing: ${yesNo(runDiagnosticsSnapshot.isExecuting)}`,
275
- `Active streaming message: ${yesNo(runDiagnosticsSnapshot.hasActiveStreaming)}`,
276
- `Terminal subscribed: ${yesNo(runDiagnosticsSnapshot.isSubscribed)}`,
277
- `Last local seq: ${runDiagnosticsSnapshot.lastSeq || "—"}`,
278
- `Last local event: ${runDiagnosticsSnapshot.lastEventType || "—"} @ ${formatDiagnosticTime(runDiagnosticsSnapshot.lastEventAt)}`,
279
- ]),
280
- },
281
- {
282
- title: "Tool UI state",
283
- content: lines([
284
- `Assistant messages: ${runDiagnosticsSnapshot.assistantMessageCount}`,
285
- `Assistant groups: ${runDiagnosticsSnapshot.assistantGroupCount}`,
286
- `Groups with renderable tool calls: ${runDiagnosticsSnapshot.assistantGroupsWithRenderableToolCalls}`,
287
- `Messages with tool calls: ${runDiagnosticsSnapshot.messagesWithToolCalls}`,
288
- `Total tool calls in local state: ${runDiagnosticsSnapshot.totalToolCallCount}`,
289
- `Incomplete tool calls in local state: ${runDiagnosticsSnapshot.incompleteToolCallCount}`,
290
- ]),
291
- },
292
- {
293
- title: "Server execution",
294
- content: lines([
295
- `Status: ${serverDiagnostics.execution.status || "unknown"}`,
296
- `In-memory execution: ${yesNo(serverDiagnostics.execution.isInMemoryExecution)}`,
297
- `Started: ${formatDiagnosticTime(serverDiagnostics.execution.startedAt)}`,
298
- `Completed: ${formatDiagnosticTime(serverDiagnostics.execution.completedAt)}`,
299
- serverDiagnostics.execution.error
300
- ? `Error: ${serverDiagnostics.execution.error}`
301
- : null,
302
- `Last message type: ${serverDiagnostics.transport.lastMessageType || "—"}`,
303
- `Last delta type: ${serverDiagnostics.transport.lastDeltaType || "—"}`,
304
- `Last status state: ${serverDiagnostics.transport.lastStatusState || "—"}`,
305
- `Last lifecycle event: ${serverDiagnostics.transport.lastLifecycleEventType || "—"}`,
306
- `Last produced: ${formatDiagnosticTime(serverDiagnostics.transport.lastProducedAt)}`,
307
- `Last broadcast: ${formatDiagnosticTime(serverDiagnostics.transport.lastBroadcastAt)}`,
308
- `Target sessions: ${serverDiagnostics.transport.targetSessionCount}`,
309
- `Successful sends: ${serverDiagnostics.transport.successfulSessionCount}`,
310
- `Failed sends: ${serverDiagnostics.transport.failedSessionCount}`,
311
- `Connected subscribers: ${serverDiagnostics.transport.connectedSubscriberCount}`,
312
- serverDiagnostics.transport.lastFailure
313
- ? `Last transport failure: ${serverDiagnostics.transport.lastFailure}`
314
- : null,
315
- ]),
316
- },
317
- buildPersistentLogsSection(serverDiagnostics.persistentLogs ?? []),
318
- {
319
- title: "Run telemetry",
320
- content: lines([
321
- `Run requested: ${formatDiagnosticTime(serverDiagnostics.lastRunRequest?.requestedAt)}`,
322
- `Run source: ${serverDiagnostics.lastRunRequest?.source || "—"}`,
323
- serverDiagnostics.lastRunRequest?.detail
324
- ? `Run detail: ${serverDiagnostics.lastRunRequest.detail}`
325
- : null,
326
- `Cancel requested: ${formatDiagnosticTime(serverDiagnostics.lastCancellation?.requestedAt)}`,
327
- `Cancel source: ${serverDiagnostics.lastCancellation?.source || "—"}`,
328
- serverDiagnostics.lastCancellation?.requestedBy
329
- ? `Cancel requested by: ${serverDiagnostics.lastCancellation.requestedBy}`
330
- : null,
331
- serverDiagnostics.lastCancellation?.reason
332
- ? `Cancel reason: ${serverDiagnostics.lastCancellation.reason}`
333
- : null,
334
- serverDiagnostics.lastCancellation?.detail
335
- ? `Cancel detail: ${serverDiagnostics.lastCancellation.detail}`
336
- : null,
337
- `Cancellation observed: ${formatDiagnosticTime(serverDiagnostics.lastCancellation?.observedAt)}`,
338
- `Observed by: ${serverDiagnostics.lastCancellation?.observedSource || "—"}`,
339
- serverDiagnostics.lastCancellation?.observedDetail
340
- ? `Observed detail: ${serverDiagnostics.lastCancellation.observedDetail}`
341
- : null,
342
- ]),
343
- },
344
- {
345
- title: "Current session",
346
- content: lines([
347
- `Session found: ${yesNo(serverDiagnostics.currentSession.sessionFound)}`,
348
- `Browser matched: ${yesNo(serverDiagnostics.currentSession.browserMatched)}`,
349
- `Connected: ${yesNo(serverDiagnostics.currentSession.isConnected)}`,
350
- `Subscribed: ${yesNo(serverDiagnostics.currentSession.isSubscribed)}`,
351
- `Connected at: ${formatDiagnosticTime(serverDiagnostics.currentSession.connectedAt)}`,
352
- `Last delivery attempt: ${formatDiagnosticTime(serverDiagnostics.currentSession.lastDelivery?.lastAttemptAt)}`,
353
- `Last delivery success: ${formatDiagnosticTime(serverDiagnostics.currentSession.lastDelivery?.lastSuccessAt)}`,
354
- `Last delivery failure: ${formatDiagnosticTime(serverDiagnostics.currentSession.lastDelivery?.lastFailureAt)}`,
355
- serverDiagnostics.currentSession.lastDelivery?.lastFailureReason
356
- ? `Failure reason: ${serverDiagnostics.currentSession.lastDelivery.lastFailureReason}`
357
- : null,
358
- serverDiagnostics.currentSession.lastDelivery?.lastMessageType
359
- ? `Last delivered message: ${serverDiagnostics.currentSession.lastDelivery.lastMessageType}`
360
- : null,
361
- serverDiagnostics.currentSession.lastDelivery?.lastSeq != null
362
- ? `Last delivered seq: ${serverDiagnostics.currentSession.lastDelivery.lastSeq}`
363
- : null,
364
- ]),
365
- },
366
- {
367
- title: "Recent client events",
368
- content: runDiagnosticsSnapshot.recentEvents.length > 0
369
- ? runDiagnosticsSnapshot.recentEvents
370
- .slice()
371
- .reverse()
372
- .map((event) => formatAgentDiagnosticsEvent(event))
373
- .join("\n")
374
- : "No recent client-side agent stream events were captured for this terminal.",
375
- },
376
- {
377
- title: "Recent tool UI events",
378
- content: runDiagnosticsSnapshot.recentToolUiEvents.length > 0
379
- ? runDiagnosticsSnapshot.recentToolUiEvents
380
- .slice()
381
- .reverse()
382
- .map((event) => formatAgentDiagnosticsEvent(event))
383
- .join("\n")
384
- : "No recent tool-specific UI events were captured for this terminal.",
385
- },
386
- {
387
- title: "Recent server events",
388
- content: serverDiagnostics.transport.recentEvents.length > 0
389
- ? serverDiagnostics.transport.recentEvents
390
- .map((event) => formatAgentDiagnosticsEvent(event))
391
- .join("\n")
392
- : "No recent server-side agent transport events were recorded.",
393
- },
394
- ];
395
- if (payload) {
396
- sections.splice(1, 0, {
397
- title: "Raw full prompt",
398
- content: payload,
399
- });
400
- }
401
- if (rawResponse) {
402
- sections.splice(payload ? 2 : 1, 0, {
403
- title: "Raw response",
404
- content: rawResponse,
405
- });
406
- }
407
- sections.push({
408
- title: "Last prompt",
409
- content: lastPrompt ?? "No prompt was captured for this agent run yet.",
410
- });
411
- sections.push({
412
- title: "Last response",
413
- content: lastResponse ?? "No assistant response was captured for this agent run yet.",
414
- });
415
- return sections;
416
- }
417
- export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveModelName, socketDiagnostics, runDiagnosticsSnapshot, liveTotals, totalTokens, effectiveCostLimit, messages, showCompressionPopover, setShowCompressionPopover, }) {
9
+ export function AgentTerminalStatusBar({ agent, contextWindowStatus, liveTotals, totalTokens, effectiveCostLimit, messages, activeProfile, showCompressionPopover, setShowCompressionPopover, }) {
10
+ const editContext = useEditContext();
418
11
  const hasData = !!contextWindowStatus?.contextWindowTokens;
419
12
  const percentValue = hasData
420
13
  ? typeof contextWindowStatus?.contextUsedPercent === "number"
@@ -422,13 +15,6 @@ export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveMo
422
15
  : 0
423
16
  : 0;
424
17
  const pct = hasData ? `${percentValue.toFixed(1)}%` : "—";
425
- const resolvedModelName = (contextWindowStatus?.model ||
426
- effectiveModelName ||
427
- "").trim();
428
- const localSummary = useMemo(() => interpretAgentRunDiagnostics({
429
- socketDiagnostics,
430
- localSnapshot: runDiagnosticsSnapshot,
431
- }), [runDiagnosticsSnapshot, socketDiagnostics]);
432
18
  const getContextColor = (percent) => {
433
19
  if (percent < 50)
434
20
  return "#22c55e";
@@ -446,36 +32,10 @@ export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveMo
446
32
  }
447
33
  return tokens.toString();
448
34
  };
449
- const [hasDebugPayload, setHasDebugPayload] = useState(false);
450
- const hasAssistantMessages = messages.some((m) => m.role === "assistant");
451
- const canOpenDiagnostics = Boolean(agent?.id) && agent?.status !== "new";
452
- useEffect(() => {
453
- let cancelled = false;
454
- if (!agent?.id || agent.status === "new") {
455
- setHasDebugPayload(false);
456
- return () => {
457
- cancelled = true;
458
- };
459
- }
460
- getLastPayload(agent.id)
461
- .then(({ payload, rawResponse }) => {
462
- if (!cancelled) {
463
- setHasDebugPayload(Boolean(payload || rawResponse));
464
- }
465
- })
466
- .catch(() => {
467
- if (!cancelled) {
468
- setHasDebugPayload(false);
469
- }
470
- });
471
- return () => {
472
- cancelled = true;
473
- };
474
- }, [agent?.id, agent?.status, agent?.lastMessageDate, agent?.updatedDate]);
475
- return (_jsxs("div", { className: "mt-1 flex items-center gap-2 text-[11px] text-gray-500", children: [agent?.id && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("div", { className: "flex cursor-help items-center justify-center", children: _jsxs("svg", { className: "h-3 w-3 shrink-0", viewBox: "0 0 36 36", "aria-hidden": "true", children: [_jsx("circle", { cx: "18", cy: "18", r: radius, fill: "none", stroke: "#e5e7eb", strokeWidth: "4" }), hasData && (_jsx("circle", { cx: "18", cy: "18", r: radius, fill: "none", stroke: contextColor, strokeWidth: "4", strokeDasharray: `${percentValue} 100`, strokeLinecap: "round", style: {
35
+ return (_jsxs("div", { className: "mt-1 flex items-center gap-2 text-[11px] text-gray-500", children: [agent?.id && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("div", { className: "flex cursor-help items-center justify-center", children: _jsxs("svg", { className: "h-3 w-3 flex-shrink-0", viewBox: "0 0 36 36", "aria-hidden": "true", children: [_jsx("circle", { cx: "18", cy: "18", r: radius, fill: "none", stroke: "#e5e7eb", strokeWidth: "4" }), hasData && (_jsx("circle", { cx: "18", cy: "18", r: radius, fill: "none", stroke: contextColor, strokeWidth: "4", strokeDasharray: `${percentValue} 100`, strokeLinecap: "round", style: {
476
36
  transformOrigin: "center",
477
37
  transform: "rotate(-90deg)",
478
- } })), !hasData && (_jsx("circle", { cx: "18", cy: "18", r: radius, fill: "none", stroke: contextColor, strokeWidth: "4", strokeDasharray: "0 100", strokeLinecap: "round", opacity: 0.5 }))] }) }) }), _jsx(TooltipContent, { side: "top", sideOffset: 6, children: hasData && contextWindowStatus ? (_jsxs("div", { className: "max-w-[320px] space-y-1 text-[11px]", children: [resolvedModelName && (_jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Model:" }), " ", resolvedModelName] })), _jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Context window:" }), " ", formatTokens(contextWindowStatus.estimatedInputTokens || 0), " ", "/", " ", formatTokens(contextWindowStatus.contextWindowTokens), " ", "tokens"] }), _jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Used:" }), " ", pct] })] })) : (_jsxs("div", { className: "max-w-[320px] space-y-1 text-[11px]", children: [resolvedModelName && (_jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Model:" }), " ", resolvedModelName] })), _jsx("div", { children: "Context window usage will appear here when the agent starts processing." })] })) })] })), agent?.compressionMarkerIndex != null && (_jsxs(Popover, { open: showCompressionPopover, onOpenChange: setShowCompressionPopover, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "border-theme-secondary/20 bg-theme-secondary-light/50 text-theme-secondary hover:bg-theme-secondary-light flex cursor-pointer items-center rounded border px-2 py-0.5 text-[11px] transition-colors", onClick: () => setShowCompressionPopover(!showCompressionPopover), children: "Compressed" }) }), _jsx(PopoverContent, { className: "w-96 p-4", align: "start", side: "top", children: _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-[10px] font-semibold text-gray-900", children: "Conversation Compressed" }), _jsxs("p", { className: "mt-1 text-[11px] text-gray-600", children: ["First ", agent.compressionMarkerIndex, " messages have been summarized to reduce context usage."] })] }), agent.compressedSummary && (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-[11px] font-medium text-gray-700", children: "Summary:" }), _jsx("div", { className: "max-h-64 overflow-y-auto rounded border border-gray-200 bg-gray-50 p-3 text-[11px] whitespace-pre-wrap text-gray-700", children: agent.compressedSummary })] }))] }) })] })), _jsx(AgentCostDisplay, { totalTokens: liveTotals
38
+ } })), !hasData && (_jsx("circle", { cx: "18", cy: "18", r: radius, fill: "none", stroke: contextColor, strokeWidth: "4", strokeDasharray: "0 100", strokeLinecap: "round", opacity: 0.5 }))] }) }) }), _jsx(TooltipContent, { side: "top", sideOffset: 6, children: hasData && contextWindowStatus ? (_jsxs("div", { className: "max-w-[320px] space-y-1 text-[11px]", children: [contextWindowStatus.model && (_jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Model:" }), " ", contextWindowStatus.model] })), _jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Context window:" }), " ", formatTokens(contextWindowStatus.estimatedInputTokens || 0), " ", "/", " ", formatTokens(contextWindowStatus.contextWindowTokens), " ", "tokens"] }), _jsxs("div", { children: [_jsx("span", { className: "font-semibold", children: "Used:" }), " ", pct] })] })) : (_jsx("div", { className: "max-w-[320px] text-[11px]", children: "Context window usage will appear here when the agent starts processing." })) })] })), agent?.compressionMarkerIndex != null && (_jsxs(Popover, { open: showCompressionPopover, onOpenChange: setShowCompressionPopover, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "border-theme-secondary/20 bg-theme-secondary-light/50 text-theme-secondary hover:bg-theme-secondary-light flex cursor-pointer items-center rounded border px-2 py-0.5 text-[11px] transition-colors", onClick: () => setShowCompressionPopover(!showCompressionPopover), children: "Compressed" }) }), _jsx(PopoverContent, { className: "w-96 p-4", align: "start", side: "top", children: _jsxs("div", { className: "space-y-3", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-[10px] font-semibold text-gray-900", children: "Conversation Compressed" }), _jsxs("p", { className: "mt-1 text-[11px] text-gray-600", children: ["First ", agent.compressionMarkerIndex, " messages have been summarized to reduce context usage."] })] }), agent.compressedSummary && (_jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "text-[11px] font-medium text-gray-700", children: "Summary:" }), _jsx("div", { className: "max-h-64 overflow-y-auto rounded border border-gray-200 bg-gray-50 p-3 text-[11px] whitespace-pre-wrap text-gray-700", children: agent.compressedSummary })] }))] }) })] })), _jsx(AgentCostDisplay, { totalTokens: liveTotals
479
39
  ? {
480
40
  input: liveTotals.input,
481
41
  output: liveTotals.output,
@@ -485,40 +45,55 @@ export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveMo
485
45
  outputCost: liveTotals.outputCost,
486
46
  cachedCost: liveTotals.cachedCost,
487
47
  cacheWriteCost: liveTotals.cacheWriteCost ?? 0,
488
- imageCost: liveTotals.imageCost ?? 0,
489
48
  totalCost: liveTotals.totalCost,
490
49
  }
491
- : totalTokens, costLimit: effectiveCostLimit }), agent?.id && (_jsxs(Tooltip, { children: [_jsx(ContentInspectorPopover, { title: "Run diagnostics", emptyMessage: "No diagnostics are available for this agent yet.", downloadFileName: `agent-${agent.id}-diagnostics.txt`, loadSections: async () => {
492
- if (!agent?.id)
493
- return [];
494
- const [diagnosticsResult, payloadResult] = await Promise.allSettled([
495
- getAgentDiagnostics(agent.id, socketDiagnostics.sessionId),
496
- getLastPayload(agent.id),
497
- ]);
498
- if (diagnosticsResult.status !== "fulfilled") {
499
- throw diagnosticsResult.reason;
500
- }
501
- const payload = payloadResult.status === "fulfilled"
502
- ? payloadResult.value.payload
503
- : "";
504
- const rawResponse = payloadResult.status === "fulfilled"
505
- ? payloadResult.value.rawResponse
506
- : "";
507
- return buildDiagnosticsSections({
508
- agentId: agent.id,
509
- socketDiagnostics,
510
- runDiagnosticsSnapshot,
511
- serverDiagnostics: diagnosticsResult.value,
512
- messages,
513
- payload,
514
- rawResponse,
515
- });
516
- }, trigger: _jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", "data-testid": "agent-diagnostics-button", disabled: !canOpenDiagnostics, className: "flex items-center text-[10px] text-gray-400 hover:text-gray-600 disabled:cursor-not-allowed disabled:opacity-30", children: _jsx(Bug, { className: "h-3 w-3", strokeWidth: 1.5 }) }) }) }), _jsx(TooltipContent, { side: "top", sideOffset: 6, children: !canOpenDiagnostics
517
- ? "Available after the agent starts"
518
- : hasAssistantMessages
519
- ? `${localSummary.title}: open diagnostics`
520
- : hasDebugPayload
521
- ? "Inspect socket, stream, server, and provider diagnostics"
522
- : "Inspect socket, stream, and server diagnostics" })] }))] }));
50
+ : totalTokens, costLimit: effectiveCostLimit }), agent?.id && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", disabled: !messages.some((m) => m.role === "assistant"), className: "flex items-center text-[10px] text-gray-400 hover:text-gray-600 disabled:cursor-not-allowed disabled:opacity-30", onClick: async () => {
51
+ if (!agent?.id)
52
+ return;
53
+ try {
54
+ const { payload, rawResponse } = await getLastPayload(agent.id);
55
+ let copyText = payload || "";
56
+ if (rawResponse) {
57
+ copyText +=
58
+ (copyText ? "\n\n" : "") +
59
+ "--- RAW RESPONSE (Full Message Details) ---\n" +
60
+ rawResponse;
61
+ }
62
+ if (copyText) {
63
+ await navigator.clipboard.writeText(copyText);
64
+ toast.success("Debug info copied", {
65
+ description: "Last API payload and full response details (including cost, tokens, tool calls) have been copied to your clipboard",
66
+ duration: 3000,
67
+ });
68
+ }
69
+ else {
70
+ toast.info("No debug info found", {
71
+ description: "No API payload or response is available for this agent yet",
72
+ duration: 3000,
73
+ });
74
+ }
75
+ }
76
+ catch (error) {
77
+ console.error("Failed to get debug info:", error);
78
+ toast.error("Failed to get debug info", {
79
+ description: error instanceof Error
80
+ ? error.message
81
+ : "Unknown error occurred",
82
+ duration: 3000,
83
+ });
84
+ }
85
+ }, children: _jsx(Bug, { className: "h-3 w-3", strokeWidth: 1.5 }) }) }), _jsx(TooltipContent, { side: "top", sideOffset: 6, children: !messages.some((m) => m.role === "assistant")
86
+ ? "Available after first response"
87
+ : "Copy last API payload and AI response to clipboard" })] })), activeProfile && (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { type: "button", className: "flex items-center gap-1 text-[10px] text-gray-400 hover:text-gray-600", "aria-label": "Open profile settings", onClick: async () => {
88
+ if (!editContext || !activeProfile?.id)
89
+ return;
90
+ const lang = editContext?.currentItemDescriptor?.language || "en";
91
+ await editContext.loadItem({
92
+ id: activeProfile.id,
93
+ language: lang,
94
+ version: 0,
95
+ });
96
+ editContext.switchWorkspace("editor");
97
+ }, children: [_jsx("span", { className: "max-w-[100px] truncate", children: activeProfile.name }), _jsx(ExternalLink, { className: "h-2.5 w-2.5 shrink-0", strokeWidth: 1.5 })] }) }), _jsx(TooltipContent, { side: "top", sideOffset: 6, children: "Open profile settings" })] }))] }));
523
98
  }
524
99
  //# sourceMappingURL=AgentTerminalStatusBar.js.map