@parhelia/core 0.1.12554 → 0.1.12555

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/dist/agents-view/AgentCard.d.ts +4 -6
  2. package/dist/agents-view/AgentCard.js +24 -143
  3. package/dist/agents-view/AgentCard.js.map +1 -1
  4. package/dist/agents-view/AgentsInbox.d.ts +1 -1
  5. package/dist/agents-view/AgentsInbox.js +92 -7
  6. package/dist/agents-view/AgentsInbox.js.map +1 -1
  7. package/dist/agents-view/AgentsTitlebar.js +2 -3
  8. package/dist/agents-view/AgentsTitlebar.js.map +1 -1
  9. package/dist/agents-view/AgentsView.d.ts +7 -6
  10. package/dist/agents-view/AgentsView.js +98 -187
  11. package/dist/agents-view/AgentsView.js.map +1 -1
  12. package/dist/agents-view/AgentsWorkspaceView.d.ts +6 -2
  13. package/dist/agents-view/AgentsWorkspaceView.js +113 -266
  14. package/dist/agents-view/AgentsWorkspaceView.js.map +1 -1
  15. package/dist/agents-view/ProfileAgentsGroup.d.ts +1 -2
  16. package/dist/agents-view/ProfileAgentsGroup.js +3 -4
  17. package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
  18. package/dist/components/ActionButton.d.ts +1 -1
  19. package/dist/components/ActionButton.js.map +1 -1
  20. package/dist/components/FilterInput.d.ts +1 -1
  21. package/dist/components/FilterInput.js +1 -1
  22. package/dist/components/FilterInput.js.map +1 -1
  23. package/dist/components/ui/LanguageSelector.js +4 -2
  24. package/dist/components/ui/LanguageSelector.js.map +1 -1
  25. package/dist/components/ui/PlaceholderInput.js +3 -3
  26. package/dist/components/ui/PlaceholderInput.js.map +1 -1
  27. package/dist/components/ui/PlaceholderInputTypes.js +1 -1
  28. package/dist/components/ui/PlaceholderInputTypes.js.map +1 -1
  29. package/dist/components/ui/alert-dialog.d.ts +1 -1
  30. package/dist/components/ui/alert-dialog.js +10 -6
  31. package/dist/components/ui/alert-dialog.js.map +1 -1
  32. package/dist/components/ui/button.d.ts +4 -4
  33. package/dist/components/ui/button.js +1 -4
  34. package/dist/components/ui/button.js.map +1 -1
  35. package/dist/components/ui/context-menu.d.ts +1 -1
  36. package/dist/components/ui/context-menu.js +4 -12
  37. package/dist/components/ui/context-menu.js.map +1 -1
  38. package/dist/components/ui/copy-button.d.ts +1 -2
  39. package/dist/components/ui/copy-button.js +2 -2
  40. package/dist/components/ui/copy-button.js.map +1 -1
  41. package/dist/components/ui/dialog.d.ts +1 -1
  42. package/dist/components/ui/dialog.js +126 -21
  43. package/dist/components/ui/dialog.js.map +1 -1
  44. package/dist/components/ui/input.d.ts +1 -1
  45. package/dist/components/ui/input.js +3 -5
  46. package/dist/components/ui/input.js.map +1 -1
  47. package/dist/components/ui/paste-button.d.ts +1 -2
  48. package/dist/components/ui/paste-button.js +2 -2
  49. package/dist/components/ui/paste-button.js.map +1 -1
  50. package/dist/components/ui/popover.js +9 -1
  51. package/dist/components/ui/popover.js.map +1 -1
  52. package/dist/components/ui/select.js +1 -1
  53. package/dist/components/ui/select.js.map +1 -1
  54. package/dist/components/ui/styled-dialog-title.js +1 -1
  55. package/dist/components/ui/styled-dialog-title.js.map +1 -1
  56. package/dist/components/ui/tabs.d.ts +1 -1
  57. package/dist/components/ui/tabs.js +11 -4
  58. package/dist/components/ui/tabs.js.map +1 -1
  59. package/dist/config/config.d.ts +2 -4
  60. package/dist/config/config.js +70 -250
  61. package/dist/config/config.js.map +1 -1
  62. package/dist/config/types/workspace.d.ts +0 -6
  63. package/dist/config/types.d.ts +12 -63
  64. package/dist/config/types.js.map +1 -1
  65. package/dist/editor/ComponentInfo.d.ts +4 -0
  66. package/dist/editor/ComponentInfo.js +41 -0
  67. package/dist/editor/ComponentInfo.js.map +1 -0
  68. package/dist/editor/ConfirmationDialog.js +4 -20
  69. package/dist/editor/ConfirmationDialog.js.map +1 -1
  70. package/dist/editor/ContentTree.d.ts +1 -2
  71. package/dist/editor/ContentTree.js +32 -93
  72. package/dist/editor/ContentTree.js.map +1 -1
  73. package/dist/editor/Editor.js +22 -87
  74. package/dist/editor/Editor.js.map +1 -1
  75. package/dist/editor/FieldHistory.js +36 -84
  76. package/dist/editor/FieldHistory.js.map +1 -1
  77. package/dist/editor/FieldListField.js +9 -21
  78. package/dist/editor/FieldListField.js.map +1 -1
  79. package/dist/editor/FieldListFieldWithFallbacks.js +2 -23
  80. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -1
  81. package/dist/editor/GlobalMenuBar.js +2 -29
  82. package/dist/editor/GlobalMenuBar.js.map +1 -1
  83. package/dist/editor/ImageEditor.js +2 -5
  84. package/dist/editor/ImageEditor.js.map +1 -1
  85. package/dist/editor/ItemInfo.js +1 -36
  86. package/dist/editor/ItemInfo.js.map +1 -1
  87. package/dist/editor/LinkEditorDialog.js +0 -3
  88. package/dist/editor/LinkEditorDialog.js.map +1 -1
  89. package/dist/editor/MainLayout.d.ts +2 -0
  90. package/dist/editor/MainLayout.js +8 -65
  91. package/dist/editor/MainLayout.js.map +1 -1
  92. package/dist/editor/MigrationsView.js +5 -29
  93. package/dist/editor/MigrationsView.js.map +1 -1
  94. package/dist/editor/MobileLayout.js +12 -37
  95. package/dist/editor/MobileLayout.js.map +1 -1
  96. package/dist/editor/PictureCropper.js +45 -54
  97. package/dist/editor/PictureCropper.js.map +1 -1
  98. package/dist/editor/PictureEditor.js +15 -17
  99. package/dist/editor/PictureEditor.js.map +1 -1
  100. package/dist/editor/QuickItemSwitcher.js +21 -21
  101. package/dist/editor/QuickItemSwitcher.js.map +1 -1
  102. package/dist/editor/SetupWizard.js +12 -52
  103. package/dist/editor/SetupWizard.js.map +1 -1
  104. package/dist/editor/Titlebar.js +2 -7
  105. package/dist/editor/Titlebar.js.map +1 -1
  106. package/dist/editor/ai/AgentCostDisplay.d.ts +0 -1
  107. package/dist/editor/ai/AgentCostDisplay.js +1 -1
  108. package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
  109. package/dist/editor/ai/AgentDocumentList.js +14 -32
  110. package/dist/editor/ai/AgentDocumentList.js.map +1 -1
  111. package/dist/editor/ai/AgentGreeting.js +2 -3
  112. package/dist/editor/ai/AgentGreeting.js.map +1 -1
  113. package/dist/editor/ai/AgentProfileSelector.js +1 -2
  114. package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
  115. package/dist/editor/ai/AgentStatusBadge.d.ts +5 -0
  116. package/dist/editor/ai/AgentStatusBadge.js +65 -67
  117. package/dist/editor/ai/AgentStatusBadge.js.map +1 -1
  118. package/dist/editor/ai/AgentTerminal.d.ts +2 -14
  119. package/dist/editor/ai/AgentTerminal.js +483 -2377
  120. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  121. package/dist/editor/ai/AgentTerminalStatusBar.d.ts +3 -8
  122. package/dist/editor/ai/AgentTerminalStatusBar.js +56 -460
  123. package/dist/editor/ai/AgentTerminalStatusBar.js.map +1 -1
  124. package/dist/editor/ai/Agents.js +113 -150
  125. package/dist/editor/ai/Agents.js.map +1 -1
  126. package/dist/editor/ai/AiResponseMessage.d.ts +1 -10
  127. package/dist/editor/ai/AiResponseMessage.js +23 -238
  128. package/dist/editor/ai/AiResponseMessage.js.map +1 -1
  129. package/dist/editor/ai/ContextInfoBar.d.ts +3 -2
  130. package/dist/editor/ai/ContextInfoBar.js +7 -64
  131. package/dist/editor/ai/ContextInfoBar.js.map +1 -1
  132. package/dist/editor/ai/GuidanceOverlay.js +11 -17
  133. package/dist/editor/ai/GuidanceOverlay.js.map +1 -1
  134. package/dist/editor/ai/HelpTerminal.d.ts +5 -0
  135. package/dist/editor/ai/HelpTerminal.js +166 -0
  136. package/dist/editor/ai/HelpTerminal.js.map +1 -0
  137. package/dist/editor/ai/InlineAiDialog.d.ts +1 -1
  138. package/dist/editor/ai/InlineAiDialog.js +192 -514
  139. package/dist/editor/ai/InlineAiDialog.js.map +1 -1
  140. package/dist/editor/ai/InlineAiTrigger.js +12 -115
  141. package/dist/editor/ai/InlineAiTrigger.js.map +1 -1
  142. package/dist/editor/ai/MediaImage.js +8 -40
  143. package/dist/editor/ai/MediaImage.js.map +1 -1
  144. package/dist/editor/ai/SpawnedAgentsPanel.js +12 -10
  145. package/dist/editor/ai/SpawnedAgentsPanel.js.map +1 -1
  146. package/dist/editor/ai/ToolCallDisplay.d.ts +2 -22
  147. package/dist/editor/ai/ToolCallDisplay.js +147 -518
  148. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  149. package/dist/editor/ai/dialogs/AgentDialogHandler.d.ts +8 -1
  150. package/dist/editor/ai/dialogs/AgentDialogHandler.js +42 -379
  151. package/dist/editor/ai/dialogs/AgentDialogHandler.js.map +1 -1
  152. package/dist/editor/ai/dialogs/QuestionnaireInline.d.ts +1 -5
  153. package/dist/editor/ai/dialogs/QuestionnaireInline.js +60 -628
  154. package/dist/editor/ai/dialogs/QuestionnaireInline.js.map +1 -1
  155. package/dist/editor/ai/dialogs/agentDialogTypes.d.ts +0 -115
  156. package/dist/editor/ai/dialogs/agentDialogTypes.js +0 -2
  157. package/dist/editor/ai/dialogs/agentDialogTypes.js.map +1 -1
  158. package/dist/editor/ai/types.d.ts +1 -3
  159. package/dist/editor/ai/useAgentStatus.d.ts +1 -2
  160. package/dist/editor/ai/useAgentStatus.js +99 -86
  161. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  162. package/dist/editor/ai/useInlineAiPosition.js +5 -45
  163. package/dist/editor/ai/useInlineAiPosition.js.map +1 -1
  164. package/dist/editor/client/AboutDialog.js +2 -4
  165. package/dist/editor/client/AboutDialog.js.map +1 -1
  166. package/dist/editor/client/EditorShell.d.ts +1 -4
  167. package/dist/editor/client/EditorShell.js +230 -730
  168. package/dist/editor/client/EditorShell.js.map +1 -1
  169. package/dist/editor/client/editContext.d.ts +19 -33
  170. package/dist/editor/client/editContext.js.map +1 -1
  171. package/dist/editor/client/helpers.js +0 -6
  172. package/dist/editor/client/helpers.js.map +1 -1
  173. package/dist/editor/client/hooks/useEditorUrlSync.js +2 -1
  174. package/dist/editor/client/hooks/useEditorUrlSync.js.map +1 -1
  175. package/dist/editor/client/hooks/useEditorWebSocket.d.ts +0 -10
  176. package/dist/editor/client/hooks/useEditorWebSocket.js +14 -209
  177. package/dist/editor/client/hooks/useEditorWebSocket.js.map +1 -1
  178. package/dist/editor/client/hooks/useQuota.d.ts +0 -8
  179. package/dist/editor/client/hooks/useQuota.js.map +1 -1
  180. package/dist/editor/client/hooks/useSocketMessageHandler.js +7 -68
  181. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  182. package/dist/editor/client/itemsRepository.js +6 -10
  183. package/dist/editor/client/itemsRepository.js.map +1 -1
  184. package/dist/editor/client/operations.d.ts +3 -6
  185. package/dist/editor/client/operations.js +30 -208
  186. package/dist/editor/client/operations.js.map +1 -1
  187. package/dist/editor/client/pageModelBuilder.js +31 -4
  188. package/dist/editor/client/pageModelBuilder.js.map +1 -1
  189. package/dist/editor/client/ui/DevModeIndicator.js +2 -2
  190. package/dist/editor/client/ui/DevModeIndicator.js.map +1 -1
  191. package/dist/editor/client/ui/EditorChrome.d.ts +6 -0
  192. package/dist/editor/client/ui/EditorChrome.js +72 -55
  193. package/dist/editor/client/ui/EditorChrome.js.map +1 -1
  194. package/dist/editor/client/ui/FullscreenControls.js +3 -5
  195. package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
  196. package/dist/editor/commands/commands.d.ts +1 -11
  197. package/dist/editor/commands/commands.js +1 -12
  198. package/dist/editor/commands/commands.js.map +1 -1
  199. package/dist/editor/commands/componentCommands.js +55 -109
  200. package/dist/editor/commands/componentCommands.js.map +1 -1
  201. package/dist/editor/commands/customCommandConverter.d.ts +1 -8
  202. package/dist/editor/commands/customCommandConverter.js +5 -35
  203. package/dist/editor/commands/customCommandConverter.js.map +1 -1
  204. package/dist/editor/commands/handlers/agentHandler.js +1 -2
  205. package/dist/editor/commands/handlers/agentHandler.js.map +1 -1
  206. package/dist/editor/commands/itemCommands.d.ts +0 -3
  207. package/dist/editor/commands/itemCommands.js +10 -93
  208. package/dist/editor/commands/itemCommands.js.map +1 -1
  209. package/dist/editor/commands/undo.d.ts +15 -9
  210. package/dist/editor/commands/undo.js +0 -24
  211. package/dist/editor/commands/undo.js.map +1 -1
  212. package/dist/editor/context-menu/InsertMenu.js +39 -83
  213. package/dist/editor/context-menu/InsertMenu.js.map +1 -1
  214. package/dist/editor/field-types/MultiLineText.js +1 -1
  215. package/dist/editor/field-types/MultiLineText.js.map +1 -1
  216. package/dist/editor/field-types/RawEditor.js +1 -1
  217. package/dist/editor/field-types/ReactQuill.d.ts +125 -0
  218. package/dist/editor/field-types/ReactQuill.js +385 -0
  219. package/dist/editor/field-types/ReactQuill.js.map +1 -0
  220. package/dist/editor/field-types/RichTextEditor.js +5 -13
  221. package/dist/editor/field-types/RichTextEditor.js.map +1 -1
  222. package/dist/editor/field-types/RichTextEditorComponent.js +3 -37
  223. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -1
  224. package/dist/editor/field-types/SingleLineText.js +1 -1
  225. package/dist/editor/field-types/TreeListEditor.js +2 -3
  226. package/dist/editor/field-types/TreeListEditor.js.map +1 -1
  227. package/dist/editor/field-types/richtext/components/ReactSlate.css +5 -23
  228. package/dist/editor/field-types/richtext/components/ReactSlate.d.ts +0 -2
  229. package/dist/editor/field-types/richtext/components/ReactSlate.js +4 -28
  230. package/dist/editor/field-types/richtext/components/ReactSlate.js.map +1 -1
  231. package/dist/editor/field-types/richtext/components/ToolbarButton.js +2 -4
  232. package/dist/editor/field-types/richtext/components/ToolbarButton.js.map +1 -1
  233. package/dist/editor/field-types/richtext/contextMenuFactory.d.ts +0 -13
  234. package/dist/editor/field-types/richtext/contextMenuFactory.js +24 -181
  235. package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
  236. package/dist/editor/field-types/richtext/types.d.ts +0 -2
  237. package/dist/editor/field-types/richtext/types.js.map +1 -1
  238. package/dist/editor/field-types/richtext/utils/plugins.js +0 -4
  239. package/dist/editor/field-types/richtext/utils/plugins.js.map +1 -1
  240. package/dist/editor/field-types/textContextMenuFactory.js +2 -3
  241. package/dist/editor/field-types/textContextMenuFactory.js.map +1 -1
  242. package/dist/editor/media-selector/AiImageSearchPrompt.js +2 -4
  243. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -1
  244. package/dist/editor/media-selector/MediaFolderBrowser.js +1 -1
  245. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -1
  246. package/dist/editor/media-selector/MediaSelector.js +1 -7
  247. package/dist/editor/media-selector/MediaSelector.js.map +1 -1
  248. package/dist/editor/media-selector/TreeSelector.js +35 -40
  249. package/dist/editor/media-selector/TreeSelector.js.map +1 -1
  250. package/dist/editor/menubar/ActiveUsers.js +1 -1
  251. package/dist/editor/menubar/ActiveUsers.js.map +1 -1
  252. package/dist/editor/menubar/GenericToolbar.js +2 -4
  253. package/dist/editor/menubar/GenericToolbar.js.map +1 -1
  254. package/dist/editor/menubar/ItemLanguageVersion.js +2 -2
  255. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
  256. package/dist/editor/menubar/PageSelector.js +147 -26
  257. package/dist/editor/menubar/PageSelector.js.map +1 -1
  258. package/dist/editor/menubar/Separator.js +1 -1
  259. package/dist/editor/menubar/VersionSelector.js +4 -2
  260. package/dist/editor/menubar/VersionSelector.js.map +1 -1
  261. package/dist/editor/menubar/WorkflowButton.js +12 -39
  262. package/dist/editor/menubar/WorkflowButton.js.map +1 -1
  263. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js +38 -16
  264. package/dist/editor/menubar/toolbar-sections/CustomCommandsToolbar.js.map +1 -1
  265. package/dist/editor/menubar/toolbar-sections/EditControls.js +3 -3
  266. package/dist/editor/menubar/toolbar-sections/EditControls.js.map +1 -1
  267. package/dist/editor/menubar/toolbar-sections/HelpButton.js +0 -1
  268. package/dist/editor/menubar/toolbar-sections/HelpButton.js.map +1 -1
  269. package/dist/editor/menubar/toolbar-sections/ManualBrowser.d.ts +10 -6
  270. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js +220 -597
  271. package/dist/editor/menubar/toolbar-sections/ManualBrowser.js.map +1 -1
  272. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +2 -13
  273. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  274. package/dist/editor/page-editor-chrome/CommentHighlighting.js +1 -42
  275. package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -1
  276. package/dist/editor/page-editor-chrome/FrameMenu.js +1 -1
  277. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
  278. package/dist/editor/page-editor-chrome/InlineEditor.js +48 -97
  279. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
  280. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +17 -38
  281. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  282. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +11 -17
  283. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
  284. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +301 -301
  285. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  286. package/dist/editor/page-viewer/DeviceToolbar.js +1 -1
  287. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -1
  288. package/dist/editor/page-viewer/EditorForm.js +11 -69
  289. package/dist/editor/page-viewer/EditorForm.js.map +1 -1
  290. package/dist/editor/page-viewer/MiniMap.d.ts +4 -2
  291. package/dist/editor/page-viewer/MiniMap.js +28 -91
  292. package/dist/editor/page-viewer/MiniMap.js.map +1 -1
  293. package/dist/editor/page-viewer/PageViewer.d.ts +1 -3
  294. package/dist/editor/page-viewer/PageViewer.js +19 -92
  295. package/dist/editor/page-viewer/PageViewer.js.map +1 -1
  296. package/dist/editor/page-viewer/PageViewerFrame.d.ts +1 -2
  297. package/dist/editor/page-viewer/PageViewerFrame.js +115 -348
  298. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  299. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js +49 -114
  300. package/dist/editor/page-viewer/pageModelSkeletonBuilder.js.map +1 -1
  301. package/dist/editor/page-viewer/pageViewContext.d.ts +0 -1
  302. package/dist/editor/page-viewer/pageViewContext.js +14 -51
  303. package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
  304. package/dist/editor/pageModel.d.ts +1 -14
  305. package/dist/editor/reviews/Comment.js +12 -26
  306. package/dist/editor/reviews/Comment.js.map +1 -1
  307. package/dist/editor/reviews/CommentDisplayPopover.js +5 -7
  308. package/dist/editor/reviews/CommentDisplayPopover.js.map +1 -1
  309. package/dist/editor/reviews/CommentView.js +4 -19
  310. package/dist/editor/reviews/CommentView.js.map +1 -1
  311. package/dist/editor/reviews/Comments.js +72 -89
  312. package/dist/editor/reviews/Comments.js.map +1 -1
  313. package/dist/editor/reviews/CreateReviewDialog.js +177 -281
  314. package/dist/editor/reviews/CreateReviewDialog.js.map +1 -1
  315. package/dist/editor/reviews/DecisionsMatrix.js +25 -96
  316. package/dist/editor/reviews/DecisionsMatrix.js.map +1 -1
  317. package/dist/editor/reviews/DiffView.js +14 -7
  318. package/dist/editor/reviews/DiffView.js.map +1 -1
  319. package/dist/editor/reviews/EditReviewSettingsDialog.js +4 -6
  320. package/dist/editor/reviews/EditReviewSettingsDialog.js.map +1 -1
  321. package/dist/editor/reviews/MultiReviewManager.js +3 -25
  322. package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
  323. package/dist/editor/reviews/PagesPanel.js +15 -31
  324. package/dist/editor/reviews/PagesPanel.js.map +1 -1
  325. package/dist/editor/reviews/PreviewInfo.js +4 -1
  326. package/dist/editor/reviews/PreviewInfo.js.map +1 -1
  327. package/dist/editor/reviews/ReviewCard.js +7 -13
  328. package/dist/editor/reviews/ReviewCard.js.map +1 -1
  329. package/dist/editor/reviews/ReviewDetail.js +2 -3
  330. package/dist/editor/reviews/ReviewDetail.js.map +1 -1
  331. package/dist/editor/reviews/ReviewsList.js +3 -7
  332. package/dist/editor/reviews/ReviewsList.js.map +1 -1
  333. package/dist/editor/reviews/SuggestedEdit.js +3 -34
  334. package/dist/editor/reviews/SuggestedEdit.js.map +1 -1
  335. package/dist/editor/reviews/SuggestionDisplayPopover.js +5 -31
  336. package/dist/editor/reviews/SuggestionDisplayPopover.js.map +1 -1
  337. package/dist/editor/reviews/commentAi.js +6 -25
  338. package/dist/editor/reviews/commentAi.js.map +1 -1
  339. package/dist/editor/reviews/reviewCommands.js +1 -4
  340. package/dist/editor/reviews/reviewCommands.js.map +1 -1
  341. package/dist/editor/reviews/useMultiReview.js +2 -2
  342. package/dist/editor/reviews/useMultiReview.js.map +1 -1
  343. package/dist/editor/reviews/useReviews.d.ts +2 -2
  344. package/dist/editor/reviews/useReviews.js +30 -12
  345. package/dist/editor/reviews/useReviews.js.map +1 -1
  346. package/dist/editor/services/agentService.d.ts +5 -229
  347. package/dist/editor/services/agentService.js +39 -292
  348. package/dist/editor/services/agentService.js.map +1 -1
  349. package/dist/editor/services/aiService.d.ts +1 -57
  350. package/dist/editor/services/aiService.js +6 -79
  351. package/dist/editor/services/aiService.js.map +1 -1
  352. package/dist/editor/services/contentService.d.ts +3 -6
  353. package/dist/editor/services/contentService.js +12 -13
  354. package/dist/editor/services/contentService.js.map +1 -1
  355. package/dist/editor/services/editService.d.ts +1 -52
  356. package/dist/editor/services/editService.js +2 -94
  357. package/dist/editor/services/editService.js.map +1 -1
  358. package/dist/editor/services/indexService.js +1 -1
  359. package/dist/editor/services/indexService.js.map +1 -1
  360. package/dist/editor/services/reviewsService.d.ts +6 -3
  361. package/dist/editor/services/reviewsService.js +11 -2
  362. package/dist/editor/services/reviewsService.js.map +1 -1
  363. package/dist/editor/services/serviceHelper.d.ts +1 -2
  364. package/dist/editor/services/serviceHelper.js +20 -112
  365. package/dist/editor/services/serviceHelper.js.map +1 -1
  366. package/dist/editor/services/systemService.d.ts +1 -2
  367. package/dist/editor/services/systemService.js +0 -3
  368. package/dist/editor/services/systemService.js.map +1 -1
  369. package/dist/editor/services-server/api.d.ts +2 -1
  370. package/dist/editor/services-server/api.js +6 -11
  371. package/dist/editor/services-server/api.js.map +1 -1
  372. package/dist/editor/services-server/graphQL.d.ts +29 -0
  373. package/dist/editor/services-server/graphQL.js +53 -0
  374. package/dist/editor/services-server/graphQL.js.map +1 -0
  375. package/dist/editor/settings/About.js +3 -317
  376. package/dist/editor/settings/About.js.map +1 -1
  377. package/dist/editor/settings/AllAgentsPanel.d.ts +5 -0
  378. package/dist/editor/settings/AllAgentsPanel.js +139 -0
  379. package/dist/editor/settings/AllAgentsPanel.js.map +1 -0
  380. package/dist/editor/settings/LatestFeedback.d.ts +1 -0
  381. package/dist/editor/settings/LatestFeedback.js +136 -0
  382. package/dist/editor/settings/LatestFeedback.js.map +1 -0
  383. package/dist/editor/settings/QuotaInfo.js +4 -210
  384. package/dist/editor/settings/QuotaInfo.js.map +1 -1
  385. package/dist/editor/settings/SettingsView.js +23 -25
  386. package/dist/editor/settings/SettingsView.js.map +1 -1
  387. package/dist/editor/settings/Setup.d.ts +1 -0
  388. package/dist/editor/settings/Setup.js +211 -0
  389. package/dist/editor/settings/Setup.js.map +1 -0
  390. package/dist/editor/settings/Status.js +6 -7
  391. package/dist/editor/settings/Status.js.map +1 -1
  392. package/dist/editor/settings/index/useIndexStatus.js +22 -20
  393. package/dist/editor/settings/index/useIndexStatus.js.map +1 -1
  394. package/dist/editor/settings/panels/AgentsPanel.d.ts +4 -0
  395. package/dist/editor/settings/panels/AgentsPanel.js +121 -95
  396. package/dist/editor/settings/panels/AgentsPanel.js.map +1 -1
  397. package/dist/editor/settings/panels/DatabasePanel.d.ts +6 -0
  398. package/dist/editor/settings/panels/DatabasePanel.js +50 -0
  399. package/dist/editor/settings/panels/DatabasePanel.js.map +1 -0
  400. package/dist/editor/settings/panels/ModelsPanel.js +108 -329
  401. package/dist/editor/settings/panels/ModelsPanel.js.map +1 -1
  402. package/dist/editor/settings/panels/ProvidersPanel.d.ts +1 -1
  403. package/dist/editor/settings/panels/ProvidersPanel.js +59 -86
  404. package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
  405. package/dist/editor/settings/panels/SearchConfigPanel.js +4 -4
  406. package/dist/editor/settings/panels/SearchConfigPanel.js.map +1 -1
  407. package/dist/editor/settings/panels/index.d.ts +2 -3
  408. package/dist/editor/settings/panels/index.js +2 -3
  409. package/dist/editor/settings/panels/index.js.map +1 -1
  410. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.d.ts +2 -0
  411. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js +195 -0
  412. package/dist/editor/settings/setup-steps/AiSetupStep/EmbeddingsModelSection.js.map +1 -0
  413. package/dist/editor/settings/setup-steps/AiSetupStep/index.d.ts +2 -0
  414. package/dist/editor/settings/setup-steps/AiSetupStep/index.js +21 -0
  415. package/dist/editor/settings/setup-steps/AiSetupStep/index.js.map +1 -0
  416. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.d.ts +1 -0
  417. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js +233 -0
  418. package/dist/editor/settings/setup-steps/AiSetupStep/provider/ProviderSection.js.map +1 -0
  419. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.d.ts +15 -0
  420. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js +14 -0
  421. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersList.js.map +1 -0
  422. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.d.ts +1 -0
  423. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js +94 -0
  424. package/dist/editor/settings/setup-steps/AiSetupStep/required-containers/RequiredContainersSection.js.map +1 -0
  425. package/dist/editor/settings/setup-steps/AiSetupStep/types.d.ts +1 -0
  426. package/dist/editor/settings/setup-steps/AiSetupStep/types.js +2 -0
  427. package/dist/editor/settings/setup-steps/AiSetupStep/types.js.map +1 -0
  428. package/dist/editor/settings/setup-steps/AiSetupStep/utils.d.ts +5 -0
  429. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js +44 -0
  430. package/dist/editor/settings/setup-steps/AiSetupStep/utils.js.map +1 -0
  431. package/dist/editor/settings/setup-steps/IndexSetupStep.d.ts +2 -0
  432. package/dist/editor/settings/setup-steps/IndexSetupStep.js +36 -0
  433. package/dist/editor/settings/setup-steps/IndexSetupStep.js.map +1 -0
  434. package/dist/editor/settings/setup-steps/SettingsSetupStep.d.ts +2 -0
  435. package/dist/editor/settings/setup-steps/SettingsSetupStep.js +111 -0
  436. package/dist/editor/settings/setup-steps/SettingsSetupStep.js.map +1 -0
  437. package/dist/editor/settings/setup-steps/SetupOverview.d.ts +14 -0
  438. package/dist/editor/settings/setup-steps/SetupOverview.js +38 -0
  439. package/dist/editor/settings/setup-steps/SetupOverview.js.map +1 -0
  440. package/dist/editor/settings/status/coreStatusChecks.js +19 -124
  441. package/dist/editor/settings/status/coreStatusChecks.js.map +1 -1
  442. package/dist/editor/settings/status/useStartupChecks.d.ts +1 -3
  443. package/dist/editor/settings/status/useStartupChecks.js +5 -9
  444. package/dist/editor/settings/status/useStartupChecks.js.map +1 -1
  445. package/dist/editor/setup-wizard/steps/CompleteStep.d.ts +1 -2
  446. package/dist/editor/setup-wizard/steps/CompleteStep.js +1 -2
  447. package/dist/editor/setup-wizard/steps/CompleteStep.js.map +1 -1
  448. package/dist/editor/sidebar/ComponentPalette.js +1 -2
  449. package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
  450. package/dist/editor/sidebar/ComponentTree.d.ts +1 -8
  451. package/dist/editor/sidebar/ComponentTree.js +69 -216
  452. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  453. package/dist/editor/sidebar/Debug.d.ts +1 -0
  454. package/dist/editor/sidebar/Debug.js +70 -0
  455. package/dist/editor/sidebar/Debug.js.map +1 -0
  456. package/dist/editor/sidebar/EditHistory.js +46 -22
  457. package/dist/editor/sidebar/EditHistory.js.map +1 -1
  458. package/dist/editor/sidebar/Favorites.js +8 -4
  459. package/dist/editor/sidebar/Favorites.js.map +1 -1
  460. package/dist/editor/sidebar/GraphQL.d.ts +2 -0
  461. package/dist/editor/sidebar/GraphQL.js +234 -0
  462. package/dist/editor/sidebar/GraphQL.js.map +1 -0
  463. package/dist/editor/sidebar/LeftToolbar.d.ts +1 -0
  464. package/dist/editor/sidebar/LeftToolbar.js +12 -0
  465. package/dist/editor/sidebar/LeftToolbar.js.map +1 -0
  466. package/dist/editor/sidebar/MainContentTree.js +3 -4
  467. package/dist/editor/sidebar/MainContentTree.js.map +1 -1
  468. package/dist/editor/sidebar/NavigationSidebar.d.ts +4 -0
  469. package/dist/editor/sidebar/NavigationSidebar.js +254 -0
  470. package/dist/editor/sidebar/NavigationSidebar.js.map +1 -0
  471. package/dist/editor/sidebar/OperationItem.js +7 -21
  472. package/dist/editor/sidebar/OperationItem.js.map +1 -1
  473. package/dist/editor/sidebar/SidebarPanel.d.ts +1 -3
  474. package/dist/editor/sidebar/SidebarPanel.js +12 -44
  475. package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
  476. package/dist/editor/sidebar/SidebarStack.d.ts +1 -2
  477. package/dist/editor/sidebar/SidebarStack.js +3 -4
  478. package/dist/editor/sidebar/SidebarStack.js.map +1 -1
  479. package/dist/editor/sidebar/Validation.js +12 -22
  480. package/dist/editor/sidebar/Validation.js.map +1 -1
  481. package/dist/editor/sidebar/Workbox.js +3 -53
  482. package/dist/editor/sidebar/Workbox.js.map +1 -1
  483. package/dist/editor/sidebar/WorkspaceRail.d.ts +1 -0
  484. package/dist/editor/sidebar/WorkspaceRail.js +167 -56
  485. package/dist/editor/sidebar/WorkspaceRail.js.map +1 -1
  486. package/dist/editor/tree-indicators/GutterColumns.d.ts +1 -3
  487. package/dist/editor/tree-indicators/GutterColumns.js +5 -26
  488. package/dist/editor/tree-indicators/GutterColumns.js.map +1 -1
  489. package/dist/editor/tree-indicators/GutterContext.d.ts +0 -4
  490. package/dist/editor/tree-indicators/GutterContext.js +0 -23
  491. package/dist/editor/tree-indicators/GutterContext.js.map +1 -1
  492. package/dist/editor/tree-indicators/GutterSelector.d.ts +5 -0
  493. package/dist/editor/tree-indicators/GutterSelector.js +91 -0
  494. package/dist/editor/tree-indicators/GutterSelector.js.map +1 -0
  495. package/dist/editor/tree-indicators/index.d.ts +1 -0
  496. package/dist/editor/tree-indicators/index.js +1 -0
  497. package/dist/editor/tree-indicators/index.js.map +1 -1
  498. package/dist/editor/tree-indicators/types.d.ts +1 -12
  499. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js +1 -1
  500. package/dist/editor/ui/CopyMoveTargetSelectorDialog.js.map +1 -1
  501. package/dist/editor/ui/Icons.js +1 -1
  502. package/dist/editor/ui/Icons.js.map +1 -1
  503. package/dist/editor/ui/ItemNameDialogNew.d.ts +0 -2
  504. package/dist/editor/ui/ItemNameDialogNew.js +17 -33
  505. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
  506. package/dist/editor/ui/ItemSearch.js +11 -7
  507. package/dist/editor/ui/ItemSearch.js.map +1 -1
  508. package/dist/editor/ui/SimpleIconButton.js +1 -1
  509. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  510. package/dist/editor/ui/SimpleTabs.d.ts +0 -1
  511. package/dist/editor/ui/SimpleTabs.js +25 -45
  512. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  513. package/dist/editor/ui/Splitter.d.ts +0 -1
  514. package/dist/editor/ui/Splitter.js +86 -102
  515. package/dist/editor/ui/Splitter.js.map +1 -1
  516. package/dist/editor/ui/TemplateSelectorDialog.js +4 -4
  517. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -1
  518. package/dist/editor/ui/TreeListSelector.d.ts +1 -6
  519. package/dist/editor/ui/TreeListSelector.js +2 -2
  520. package/dist/editor/ui/TreeListSelector.js.map +1 -1
  521. package/dist/editor/utils/keyboardNavigation.d.ts +20 -6
  522. package/dist/editor/utils/keyboardNavigation.js +140 -48
  523. package/dist/editor/utils/keyboardNavigation.js.map +1 -1
  524. package/dist/editor/utils.js +9 -19
  525. package/dist/editor/utils.js.map +1 -1
  526. package/dist/editor/views/CompareView.d.ts +1 -3
  527. package/dist/editor/views/CompareView.js +5 -7
  528. package/dist/editor/views/CompareView.js.map +1 -1
  529. package/dist/editor/views/EditView.js +1 -1
  530. package/dist/editor/views/EditView.js.map +1 -1
  531. package/dist/editor/views/EditorSlot.js +34 -27
  532. package/dist/editor/views/EditorSlot.js.map +1 -1
  533. package/dist/editor/views/ItemEditor.js +3 -7
  534. package/dist/editor/views/ItemEditor.js.map +1 -1
  535. package/dist/editor/views/MediaFolderEditView.js +1 -1
  536. package/dist/editor/views/MediaFolderEditView.js.map +1 -1
  537. package/dist/editor/views/ParheliaView.js +6 -5
  538. package/dist/editor/views/ParheliaView.js.map +1 -1
  539. package/dist/editor/views/SingleEditView.d.ts +1 -2
  540. package/dist/editor/views/SingleEditView.js +8 -10
  541. package/dist/editor/views/SingleEditView.js.map +1 -1
  542. package/dist/editor/views/editorSlotContext.js +6 -35
  543. package/dist/editor/views/editorSlotContext.js.map +1 -1
  544. package/dist/index.d.ts +2 -16
  545. package/dist/index.js +0 -11
  546. package/dist/index.js.map +1 -1
  547. package/dist/revision.d.ts +2 -2
  548. package/dist/revision.js +2 -2
  549. package/dist/setup/services/setupWizardService.d.ts +13 -40
  550. package/dist/setup/services/setupWizardService.js +17 -32
  551. package/dist/setup/services/setupWizardService.js.map +1 -1
  552. package/dist/setup/wizard/steps/AddModelDialog.js +3 -12
  553. package/dist/setup/wizard/steps/AddModelDialog.js.map +1 -1
  554. package/dist/setup/wizard/steps/ImportModelDialog.js +22 -39
  555. package/dist/setup/wizard/steps/ImportModelDialog.js.map +1 -1
  556. package/dist/splash-screen/ModernSplashScreen.js +32 -112
  557. package/dist/splash-screen/ModernSplashScreen.js.map +1 -1
  558. package/dist/splash-screen/NewPage.js +50 -33
  559. package/dist/splash-screen/NewPage.js.map +1 -1
  560. package/dist/splash-screen/OpenPage.js +6 -2
  561. package/dist/splash-screen/OpenPage.js.map +1 -1
  562. package/dist/splash-screen/ParheliaAssistantChat.js +29 -12
  563. package/dist/splash-screen/ParheliaAssistantChat.js.map +1 -1
  564. package/dist/splash-screen/ParheliaLogo.js +37 -87
  565. package/dist/splash-screen/ParheliaLogo.js.map +1 -1
  566. package/dist/splash-screen/RecentPages.js +3 -3
  567. package/dist/splash-screen/RecentPages.js.map +1 -1
  568. package/dist/tour/Tour.d.ts +1 -2
  569. package/dist/tour/Tour.js +75 -256
  570. package/dist/tour/Tour.js.map +1 -1
  571. package/dist/tour/default-tour.js +96 -222
  572. package/dist/tour/default-tour.js.map +1 -1
  573. package/dist/types.d.ts +29 -63
  574. package/package.json +15 -19
  575. package/styles.css +10 -14
@@ -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,399 +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: "Server execution",
283
- content: lines([
284
- `Status: ${serverDiagnostics.execution.status || "unknown"}`,
285
- `In-memory execution: ${yesNo(serverDiagnostics.execution.isInMemoryExecution)}`,
286
- `Started: ${formatDiagnosticTime(serverDiagnostics.execution.startedAt)}`,
287
- `Completed: ${formatDiagnosticTime(serverDiagnostics.execution.completedAt)}`,
288
- serverDiagnostics.execution.error
289
- ? `Error: ${serverDiagnostics.execution.error}`
290
- : null,
291
- `Last message type: ${serverDiagnostics.transport.lastMessageType || "—"}`,
292
- `Last delta type: ${serverDiagnostics.transport.lastDeltaType || "—"}`,
293
- `Last status state: ${serverDiagnostics.transport.lastStatusState || "—"}`,
294
- `Last lifecycle event: ${serverDiagnostics.transport.lastLifecycleEventType || "—"}`,
295
- `Last produced: ${formatDiagnosticTime(serverDiagnostics.transport.lastProducedAt)}`,
296
- `Last broadcast: ${formatDiagnosticTime(serverDiagnostics.transport.lastBroadcastAt)}`,
297
- `Target sessions: ${serverDiagnostics.transport.targetSessionCount}`,
298
- `Successful sends: ${serverDiagnostics.transport.successfulSessionCount}`,
299
- `Failed sends: ${serverDiagnostics.transport.failedSessionCount}`,
300
- `Connected subscribers: ${serverDiagnostics.transport.connectedSubscriberCount}`,
301
- serverDiagnostics.transport.lastFailure
302
- ? `Last transport failure: ${serverDiagnostics.transport.lastFailure}`
303
- : null,
304
- ]),
305
- },
306
- buildPersistentLogsSection(serverDiagnostics.persistentLogs ?? []),
307
- {
308
- title: "Run telemetry",
309
- content: lines([
310
- `Run requested: ${formatDiagnosticTime(serverDiagnostics.lastRunRequest?.requestedAt)}`,
311
- `Run source: ${serverDiagnostics.lastRunRequest?.source || "—"}`,
312
- serverDiagnostics.lastRunRequest?.detail
313
- ? `Run detail: ${serverDiagnostics.lastRunRequest.detail}`
314
- : null,
315
- `Cancel requested: ${formatDiagnosticTime(serverDiagnostics.lastCancellation?.requestedAt)}`,
316
- `Cancel source: ${serverDiagnostics.lastCancellation?.source || "—"}`,
317
- serverDiagnostics.lastCancellation?.requestedBy
318
- ? `Cancel requested by: ${serverDiagnostics.lastCancellation.requestedBy}`
319
- : null,
320
- serverDiagnostics.lastCancellation?.reason
321
- ? `Cancel reason: ${serverDiagnostics.lastCancellation.reason}`
322
- : null,
323
- serverDiagnostics.lastCancellation?.detail
324
- ? `Cancel detail: ${serverDiagnostics.lastCancellation.detail}`
325
- : null,
326
- `Cancellation observed: ${formatDiagnosticTime(serverDiagnostics.lastCancellation?.observedAt)}`,
327
- `Observed by: ${serverDiagnostics.lastCancellation?.observedSource || "—"}`,
328
- serverDiagnostics.lastCancellation?.observedDetail
329
- ? `Observed detail: ${serverDiagnostics.lastCancellation.observedDetail}`
330
- : null,
331
- ]),
332
- },
333
- {
334
- title: "Current session",
335
- content: lines([
336
- `Session found: ${yesNo(serverDiagnostics.currentSession.sessionFound)}`,
337
- `Browser matched: ${yesNo(serverDiagnostics.currentSession.browserMatched)}`,
338
- `Connected: ${yesNo(serverDiagnostics.currentSession.isConnected)}`,
339
- `Subscribed: ${yesNo(serverDiagnostics.currentSession.isSubscribed)}`,
340
- `Connected at: ${formatDiagnosticTime(serverDiagnostics.currentSession.connectedAt)}`,
341
- `Last delivery attempt: ${formatDiagnosticTime(serverDiagnostics.currentSession.lastDelivery?.lastAttemptAt)}`,
342
- `Last delivery success: ${formatDiagnosticTime(serverDiagnostics.currentSession.lastDelivery?.lastSuccessAt)}`,
343
- `Last delivery failure: ${formatDiagnosticTime(serverDiagnostics.currentSession.lastDelivery?.lastFailureAt)}`,
344
- serverDiagnostics.currentSession.lastDelivery?.lastFailureReason
345
- ? `Failure reason: ${serverDiagnostics.currentSession.lastDelivery.lastFailureReason}`
346
- : null,
347
- serverDiagnostics.currentSession.lastDelivery?.lastMessageType
348
- ? `Last delivered message: ${serverDiagnostics.currentSession.lastDelivery.lastMessageType}`
349
- : null,
350
- serverDiagnostics.currentSession.lastDelivery?.lastSeq != null
351
- ? `Last delivered seq: ${serverDiagnostics.currentSession.lastDelivery.lastSeq}`
352
- : null,
353
- ]),
354
- },
355
- {
356
- title: "Recent client events",
357
- content: runDiagnosticsSnapshot.recentEvents.length > 0
358
- ? runDiagnosticsSnapshot.recentEvents
359
- .slice()
360
- .reverse()
361
- .map((event) => formatAgentDiagnosticsEvent(event))
362
- .join("\n")
363
- : "No recent client-side agent stream events were captured for this terminal.",
364
- },
365
- {
366
- title: "Recent server events",
367
- content: serverDiagnostics.transport.recentEvents.length > 0
368
- ? serverDiagnostics.transport.recentEvents
369
- .map((event) => formatAgentDiagnosticsEvent(event))
370
- .join("\n")
371
- : "No recent server-side agent transport events were recorded.",
372
- },
373
- ];
374
- if (payload) {
375
- sections.splice(1, 0, {
376
- title: "Raw full prompt",
377
- content: payload,
378
- });
379
- }
380
- if (rawResponse) {
381
- sections.splice(payload ? 2 : 1, 0, {
382
- title: "Raw response",
383
- content: rawResponse,
384
- });
385
- }
386
- sections.push({
387
- title: "Last prompt",
388
- content: lastPrompt ?? "No prompt was captured for this agent run yet.",
389
- });
390
- sections.push({
391
- title: "Last response",
392
- content: lastResponse ?? "No assistant response was captured for this agent run yet.",
393
- });
394
- return sections;
395
- }
396
- 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();
397
11
  const hasData = !!contextWindowStatus?.contextWindowTokens;
398
12
  const percentValue = hasData
399
13
  ? typeof contextWindowStatus?.contextUsedPercent === "number"
@@ -401,13 +15,6 @@ export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveMo
401
15
  : 0
402
16
  : 0;
403
17
  const pct = hasData ? `${percentValue.toFixed(1)}%` : "—";
404
- const resolvedModelName = (contextWindowStatus?.model ||
405
- effectiveModelName ||
406
- "").trim();
407
- const localSummary = useMemo(() => interpretAgentRunDiagnostics({
408
- socketDiagnostics,
409
- localSnapshot: runDiagnosticsSnapshot,
410
- }), [runDiagnosticsSnapshot, socketDiagnostics]);
411
18
  const getContextColor = (percent) => {
412
19
  if (percent < 50)
413
20
  return "#22c55e";
@@ -425,36 +32,10 @@ export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveMo
425
32
  }
426
33
  return tokens.toString();
427
34
  };
428
- const [hasDebugPayload, setHasDebugPayload] = useState(false);
429
- const hasAssistantMessages = messages.some((m) => m.role === "assistant");
430
- const canOpenDiagnostics = Boolean(agent?.id) && agent?.status !== "new";
431
- useEffect(() => {
432
- let cancelled = false;
433
- if (!agent?.id || agent.status === "new") {
434
- setHasDebugPayload(false);
435
- return () => {
436
- cancelled = true;
437
- };
438
- }
439
- getLastPayload(agent.id)
440
- .then(({ payload, rawResponse }) => {
441
- if (!cancelled) {
442
- setHasDebugPayload(Boolean(payload || rawResponse));
443
- }
444
- })
445
- .catch(() => {
446
- if (!cancelled) {
447
- setHasDebugPayload(false);
448
- }
449
- });
450
- return () => {
451
- cancelled = true;
452
- };
453
- }, [agent?.id, agent?.status, agent?.lastMessageDate, agent?.updatedDate]);
454
- 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: {
455
36
  transformOrigin: "center",
456
37
  transform: "rotate(-90deg)",
457
- } })), !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
458
39
  ? {
459
40
  input: liveTotals.input,
460
41
  output: liveTotals.output,
@@ -464,40 +45,55 @@ export function AgentTerminalStatusBar({ agent, contextWindowStatus, effectiveMo
464
45
  outputCost: liveTotals.outputCost,
465
46
  cachedCost: liveTotals.cachedCost,
466
47
  cacheWriteCost: liveTotals.cacheWriteCost ?? 0,
467
- imageCost: liveTotals.imageCost ?? 0,
468
48
  totalCost: liveTotals.totalCost,
469
49
  }
470
- : 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 () => {
471
- if (!agent?.id)
472
- return [];
473
- const [diagnosticsResult, payloadResult] = await Promise.allSettled([
474
- getAgentDiagnostics(agent.id, socketDiagnostics.sessionId),
475
- getLastPayload(agent.id),
476
- ]);
477
- if (diagnosticsResult.status !== "fulfilled") {
478
- throw diagnosticsResult.reason;
479
- }
480
- const payload = payloadResult.status === "fulfilled"
481
- ? payloadResult.value.payload
482
- : "";
483
- const rawResponse = payloadResult.status === "fulfilled"
484
- ? payloadResult.value.rawResponse
485
- : "";
486
- return buildDiagnosticsSections({
487
- agentId: agent.id,
488
- socketDiagnostics,
489
- runDiagnosticsSnapshot,
490
- serverDiagnostics: diagnosticsResult.value,
491
- messages,
492
- payload,
493
- rawResponse,
494
- });
495
- }, 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
496
- ? "Available after the agent starts"
497
- : hasAssistantMessages
498
- ? `${localSummary.title}: open diagnostics`
499
- : hasDebugPayload
500
- ? "Inspect socket, stream, server, and provider diagnostics"
501
- : "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" })] }))] }));
502
98
  }
503
99
  //# sourceMappingURL=AgentTerminalStatusBar.js.map