@stigmer/react 3.10.0 → 3.11.1-dev.20260812192248

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 (1415) hide show
  1. package/access/ManageAccessButton.js +1 -1
  2. package/access/ManageAccessButton.js.map +1 -1
  3. package/access/ManageAccessDialog.js +3 -3
  4. package/access/ManageAccessDialog.js.map +1 -1
  5. package/action-menu/ActionMenu.js +3 -3
  6. package/action-menu/ActionMenu.js.map +1 -1
  7. package/activity/useRecentActivity.d.ts +6 -1
  8. package/activity/useRecentActivity.d.ts.map +1 -1
  9. package/activity/useRecentActivity.js +6 -1
  10. package/activity/useRecentActivity.js.map +1 -1
  11. package/agent/AgentDetailView.js +21 -21
  12. package/agent/AgentDetailView.js.map +1 -1
  13. package/agent/AgentPicker.js +8 -8
  14. package/agent/AgentPicker.js.map +1 -1
  15. package/agent/steps/CapabilitiesStep.js +3 -3
  16. package/agent/steps/CapabilitiesStep.js.map +1 -1
  17. package/agent/steps/IdentityStep.js +6 -6
  18. package/agent/steps/IdentityStep.js.map +1 -1
  19. package/agent/steps/ReviewStep.js +3 -3
  20. package/agent/steps/ReviewStep.js.map +1 -1
  21. package/agent-instance/AgentInstanceDetailPanel.js +2 -2
  22. package/agent-instance/AgentInstanceDetailPanel.js.map +1 -1
  23. package/agent-instance/AgentInstanceList.d.ts.map +1 -1
  24. package/agent-instance/AgentInstanceList.js +5 -4
  25. package/agent-instance/AgentInstanceList.js.map +1 -1
  26. package/agent-instance/CreateAgentInstanceDialog.js +1 -1
  27. package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
  28. package/api-key/ApiKeyCreatedAlert.js +1 -1
  29. package/api-key/ApiKeyCreatedAlert.js.map +1 -1
  30. package/api-key/ApiKeyListPanel.d.ts.map +1 -1
  31. package/api-key/ApiKeyListPanel.js +10 -9
  32. package/api-key/ApiKeyListPanel.js.map +1 -1
  33. package/api-key/CreateApiKeyForm.js +5 -5
  34. package/api-key/CreateApiKeyForm.js.map +1 -1
  35. package/attachment/AttachmentChipList.d.ts.map +1 -1
  36. package/attachment/AttachmentChipList.js +18 -17
  37. package/attachment/AttachmentChipList.js.map +1 -1
  38. package/attachment/AttachmentImageLightbox.d.ts.map +1 -1
  39. package/attachment/AttachmentImageLightbox.js +1 -1
  40. package/attachment/AttachmentImageLightbox.js.map +1 -1
  41. package/attachment/attachment-utils.d.ts +8 -5
  42. package/attachment/attachment-utils.d.ts.map +1 -1
  43. package/attachment/attachment-utils.js +8 -5
  44. package/attachment/attachment-utils.js.map +1 -1
  45. package/billing/AutoRechargeCard.js +2 -2
  46. package/billing/AutoRechargeCard.js.map +1 -1
  47. package/billing/BillingSection.js +6 -6
  48. package/billing/BillingSection.js.map +1 -1
  49. package/billing/CreditBalanceCard.js +4 -4
  50. package/billing/CreditBalanceCard.js.map +1 -1
  51. package/billing/CreditLedgerTable.js +13 -13
  52. package/billing/CreditLedgerTable.js.map +1 -1
  53. package/billing/CreditPackGrid.js +2 -2
  54. package/billing/CreditPackGrid.js.map +1 -1
  55. package/billing/LowBalanceBanner.js +4 -4
  56. package/billing/LowBalanceBanner.js.map +1 -1
  57. package/billing/PaymentMethodCard.js +2 -2
  58. package/billing/PaymentMethodCard.js.map +1 -1
  59. package/button/Button.js +7 -7
  60. package/button/Button.js.map +1 -1
  61. package/channel/AgentChannelsPanel.d.ts.map +1 -1
  62. package/channel/AgentChannelsPanel.js +13 -12
  63. package/channel/AgentChannelsPanel.js.map +1 -1
  64. package/channel/ChannelConversationsDialog.d.ts.map +1 -1
  65. package/channel/ChannelConversationsDialog.js +7 -6
  66. package/channel/ChannelConversationsDialog.js.map +1 -1
  67. package/channel/ChannelCredentialsDialog.js +2 -2
  68. package/channel/ChannelCredentialsDialog.js.map +1 -1
  69. package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
  70. package/channel/ChannelTemplatesDialog.js +14 -13
  71. package/channel/ChannelTemplatesDialog.js.map +1 -1
  72. package/channel/ChannelToolCredentials.js +3 -3
  73. package/channel/ChannelToolCredentials.js.map +1 -1
  74. package/channel/ConnectSlackDialog.js +13 -13
  75. package/channel/ConnectSlackDialog.js.map +1 -1
  76. package/channel/ConnectWhatsAppDialog.js +8 -8
  77. package/channel/ConnectWhatsAppDialog.js.map +1 -1
  78. package/channel/connect/ServingAppSection.js +5 -5
  79. package/channel/connect/ServingAppSection.js.map +1 -1
  80. package/channel/connect/ToolCredentialsSection.js +1 -1
  81. package/channel/connect/ToolCredentialsSection.js.map +1 -1
  82. package/channel/connect/VerbatimRefusal.js +1 -1
  83. package/channel/connect/VerbatimRefusal.js.map +1 -1
  84. package/channel/connect/icons.js +1 -1
  85. package/channel/connect/icons.js.map +1 -1
  86. package/channel-app/ChannelAppDetailPanel.js +3 -3
  87. package/channel-app/ChannelAppDetailPanel.js.map +1 -1
  88. package/channel-app/ChannelAppListPanel.js +5 -5
  89. package/channel-app/ChannelAppListPanel.js.map +1 -1
  90. package/channel-app/CreateChannelAppForm.js +6 -6
  91. package/channel-app/CreateChannelAppForm.js.map +1 -1
  92. package/channel-app/internal.d.ts.map +1 -1
  93. package/channel-app/internal.js +8 -7
  94. package/channel-app/internal.js.map +1 -1
  95. package/composer/ComposerToolbar.d.ts.map +1 -1
  96. package/composer/ComposerToolbar.js +10 -7
  97. package/composer/ComposerToolbar.js.map +1 -1
  98. package/composer/ConfigureMenu.d.ts.map +1 -1
  99. package/composer/ConfigureMenu.js +5 -4
  100. package/composer/ConfigureMenu.js.map +1 -1
  101. package/composer/ContextChip.d.ts.map +1 -1
  102. package/composer/ContextChip.js +5 -4
  103. package/composer/ContextChip.js.map +1 -1
  104. package/composer/ContextPopover.d.ts.map +1 -1
  105. package/composer/ContextPopover.js +5 -4
  106. package/composer/ContextPopover.js.map +1 -1
  107. package/composer/InteractionModePicker.js +5 -5
  108. package/composer/InteractionModePicker.js.map +1 -1
  109. package/composer/SessionComposer.d.ts +13 -0
  110. package/composer/SessionComposer.d.ts.map +1 -1
  111. package/composer/SessionComposer.js +19 -9
  112. package/composer/SessionComposer.js.map +1 -1
  113. package/composer/icons.js +3 -3
  114. package/composer/icons.js.map +1 -1
  115. package/conversation/ConversationAttentionBanner.js +2 -2
  116. package/conversation/ConversationAttentionBanner.js.map +1 -1
  117. package/conversation/ConversationComposer.js +2 -2
  118. package/conversation/ConversationComposer.js.map +1 -1
  119. package/conversation/ConversationControlBanner.js +5 -5
  120. package/conversation/ConversationControlBanner.js.map +1 -1
  121. package/conversation/ConversationListPane.js +12 -12
  122. package/conversation/ConversationListPane.js.map +1 -1
  123. package/conversation/ConversationMediaAttachment.d.ts.map +1 -1
  124. package/conversation/ConversationMediaAttachment.js +5 -4
  125. package/conversation/ConversationMediaAttachment.js.map +1 -1
  126. package/conversation/ConversationTimelineView.d.ts.map +1 -1
  127. package/conversation/ConversationTimelineView.js +25 -15
  128. package/conversation/ConversationTimelineView.js.map +1 -1
  129. package/conversation/ConversationsWorkbench.js +3 -3
  130. package/conversation/ConversationsWorkbench.js.map +1 -1
  131. package/conversation/conversationPresentation.d.ts +28 -0
  132. package/conversation/conversationPresentation.d.ts.map +1 -1
  133. package/conversation/conversationPresentation.js +38 -1
  134. package/conversation/conversationPresentation.js.map +1 -1
  135. package/cursor-accounts/CursorAccountEditor.js +1 -1
  136. package/cursor-accounts/CursorAccountEditor.js.map +1 -1
  137. package/cursor-accounts/CursorAccountsAccessNotice.js +1 -1
  138. package/cursor-accounts/CursorAccountsAccessNotice.js.map +1 -1
  139. package/cursor-accounts/CursorAccountsConsole.js +9 -9
  140. package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
  141. package/cursor-accounts/MemberCoverageTable.d.ts.map +1 -1
  142. package/cursor-accounts/MemberCoverageTable.js +11 -10
  143. package/cursor-accounts/MemberCoverageTable.js.map +1 -1
  144. package/cursor-accounts/MemberKeysPanel.js +3 -3
  145. package/cursor-accounts/MemberKeysPanel.js.map +1 -1
  146. package/cursor-accounts/badges.js +1 -1
  147. package/cursor-accounts/badges.js.map +1 -1
  148. package/dashboard/DashboardFailedRuns.js +4 -4
  149. package/dashboard/DashboardFailedRuns.js.map +1 -1
  150. package/dashboard/DashboardKPICards.d.ts.map +1 -1
  151. package/dashboard/DashboardKPICards.js +9 -7
  152. package/dashboard/DashboardKPICards.js.map +1 -1
  153. package/dashboard/OperationalDashboard.js +1 -1
  154. package/dashboard/OperationalDashboard.js.map +1 -1
  155. package/datastore/CollectionRecordsBrowser.d.ts.map +1 -1
  156. package/datastore/CollectionRecordsBrowser.js +14 -11
  157. package/datastore/CollectionRecordsBrowser.js.map +1 -1
  158. package/datastore/CollectionSchemaView.js +4 -4
  159. package/datastore/CollectionSchemaView.js.map +1 -1
  160. package/datastore/DatastoreDetailView.js +4 -4
  161. package/datastore/DatastoreDetailView.js.map +1 -1
  162. package/datastore/DatastoreSyncReport.js +1 -1
  163. package/datastore/DatastoreSyncReport.js.map +1 -1
  164. package/datastore/DeleteDatastoreDialog.js +1 -1
  165. package/datastore/DeleteDatastoreDialog.js.map +1 -1
  166. package/datastore/FieldValueControl.js +2 -2
  167. package/datastore/FieldValueControl.js.map +1 -1
  168. package/datastore/RecordFilterBuilder.js +4 -4
  169. package/datastore/RecordFilterBuilder.js.map +1 -1
  170. package/datastore/RecordFormPanel.js +5 -5
  171. package/datastore/RecordFormPanel.js.map +1 -1
  172. package/dependency-graph/DependencyGraph.js +1 -1
  173. package/dependency-graph/DependencyGraph.js.map +1 -1
  174. package/dependency-graph/DependencyTreeNode.js +8 -8
  175. package/dependency-graph/DependencyTreeNode.js.map +1 -1
  176. package/empty-state/EmptyState.js +3 -3
  177. package/empty-state/EmptyState.js.map +1 -1
  178. package/empty-state/useEmptyState.js +1 -1
  179. package/empty-state/useEmptyState.js.map +1 -1
  180. package/environment/CreateEnvironmentForm.js +2 -2
  181. package/environment/CreateEnvironmentForm.js.map +1 -1
  182. package/environment/EnvVarForm.js +4 -4
  183. package/environment/EnvVarForm.js.map +1 -1
  184. package/environment/EnvironmentListPanel.js +9 -9
  185. package/environment/EnvironmentListPanel.js.map +1 -1
  186. package/environment/EnvironmentPicker.js +4 -4
  187. package/environment/EnvironmentPicker.js.map +1 -1
  188. package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
  189. package/environment/EnvironmentVariableEditor.js +18 -17
  190. package/environment/EnvironmentVariableEditor.js.map +1 -1
  191. package/error/ErrorMessage.js +1 -1
  192. package/error/ErrorMessage.js.map +1 -1
  193. package/error/SecretFlowErrorGuide.js +1 -1
  194. package/error/SecretFlowErrorGuide.js.map +1 -1
  195. package/execution/ApprovalCard.d.ts.map +1 -1
  196. package/execution/ApprovalCard.js +8 -8
  197. package/execution/ApprovalCard.js.map +1 -1
  198. package/execution/ArtifactApplyButton.js +4 -4
  199. package/execution/ArtifactApplyButton.js.map +1 -1
  200. package/execution/ArtifactContentBody.js +3 -3
  201. package/execution/ArtifactContentBody.js.map +1 -1
  202. package/execution/ArtifactContentRenderer.js +19 -19
  203. package/execution/ArtifactContentRenderer.js.map +1 -1
  204. package/execution/ArtifactDocument.js +10 -10
  205. package/execution/ArtifactDocument.js.map +1 -1
  206. package/execution/ArtifactFileContent.js +4 -4
  207. package/execution/ArtifactFileContent.js.map +1 -1
  208. package/execution/ArtifactPreviewModal.js +11 -11
  209. package/execution/ArtifactPreviewModal.js.map +1 -1
  210. package/execution/ArtifactRowView.d.ts.map +1 -1
  211. package/execution/ArtifactRowView.js +3 -2
  212. package/execution/ArtifactRowView.js.map +1 -1
  213. package/execution/ArtifactsWidget.js +1 -1
  214. package/execution/ArtifactsWidget.js.map +1 -1
  215. package/execution/ContextGauge.js +9 -9
  216. package/execution/ContextGauge.js.map +1 -1
  217. package/execution/EmptyChangeNotice.js +1 -1
  218. package/execution/EmptyChangeNotice.js.map +1 -1
  219. package/execution/ExecutionPhaseBadge.js +10 -10
  220. package/execution/ExecutionPhaseBadge.js.map +1 -1
  221. package/execution/ExecutionProgress.js +1 -1
  222. package/execution/ExecutionProgress.js.map +1 -1
  223. package/execution/FileChangeProgressBar.js +3 -3
  224. package/execution/FileChangeProgressBar.js.map +1 -1
  225. package/execution/FileChangesView.js +5 -5
  226. package/execution/FileChangesView.js.map +1 -1
  227. package/execution/FilePathLink.d.ts +4 -4
  228. package/execution/FilePathLink.d.ts.map +1 -1
  229. package/execution/FilePathLink.js +8 -8
  230. package/execution/FilePathLink.js.map +1 -1
  231. package/execution/FileReviewAtoms.js +7 -7
  232. package/execution/FileReviewAtoms.js.map +1 -1
  233. package/execution/FileReviewCard.js +18 -18
  234. package/execution/FileReviewCard.js.map +1 -1
  235. package/execution/FileReviewDock.js +1 -1
  236. package/execution/FileReviewDock.js.map +1 -1
  237. package/execution/FollowUpInput.js +3 -3
  238. package/execution/FollowUpInput.js.map +1 -1
  239. package/execution/InteractionModeBadge.js +1 -1
  240. package/execution/InteractionModeBadge.js.map +1 -1
  241. package/execution/McpToolDetail.d.ts.map +1 -1
  242. package/execution/McpToolDetail.js +13 -12
  243. package/execution/McpToolDetail.js.map +1 -1
  244. package/execution/MessageAttachments.d.ts.map +1 -1
  245. package/execution/MessageAttachments.js +13 -11
  246. package/execution/MessageAttachments.js.map +1 -1
  247. package/execution/MessageEntry.d.ts.map +1 -1
  248. package/execution/MessageEntry.js +9 -8
  249. package/execution/MessageEntry.js.map +1 -1
  250. package/execution/MessageThread.js +12 -12
  251. package/execution/MessageThread.js.map +1 -1
  252. package/execution/PlanArtifactCard.d.ts.map +1 -1
  253. package/execution/PlanArtifactCard.js +14 -11
  254. package/execution/PlanArtifactCard.js.map +1 -1
  255. package/execution/PlanCompletionCard.js +2 -2
  256. package/execution/PlanCompletionCard.js.map +1 -1
  257. package/execution/PlanDocumentMessage.js +2 -2
  258. package/execution/PlanDocumentMessage.js.map +1 -1
  259. package/execution/PlanStreamingCard.js +3 -3
  260. package/execution/PlanStreamingCard.js.map +1 -1
  261. package/execution/ResultView.js +17 -17
  262. package/execution/ResultView.js.map +1 -1
  263. package/execution/SessionVariablesInput.js +6 -6
  264. package/execution/SessionVariablesInput.js.map +1 -1
  265. package/execution/SetupProgress.js +2 -2
  266. package/execution/SetupProgress.js.map +1 -1
  267. package/execution/SubAgentSection.js +19 -19
  268. package/execution/SubAgentSection.js.map +1 -1
  269. package/execution/SummarizationBadge.js +3 -3
  270. package/execution/SummarizationBadge.js.map +1 -1
  271. package/execution/SummarizationCard.js +2 -2
  272. package/execution/SummarizationCard.js.map +1 -1
  273. package/execution/TerminalSession.js +2 -2
  274. package/execution/TerminalSession.js.map +1 -1
  275. package/execution/ThreadSkeleton.js +1 -1
  276. package/execution/ThreadSkeleton.js.map +1 -1
  277. package/execution/TodoCard.js +3 -3
  278. package/execution/TodoCard.js.map +1 -1
  279. package/execution/TodoList.js +8 -8
  280. package/execution/TodoList.js.map +1 -1
  281. package/execution/ToolArgsView.js +4 -4
  282. package/execution/ToolArgsView.js.map +1 -1
  283. package/execution/ToolCallDetail.d.ts.map +1 -1
  284. package/execution/ToolCallDetail.js +4 -4
  285. package/execution/ToolCallDetail.js.map +1 -1
  286. package/execution/ToolCallGroup.js +1 -1
  287. package/execution/ToolCallGroup.js.map +1 -1
  288. package/execution/ToolCallItem.d.ts.map +1 -1
  289. package/execution/ToolCallItem.js +20 -16
  290. package/execution/ToolCallItem.js.map +1 -1
  291. package/execution/ToolRunGroup.js +9 -9
  292. package/execution/ToolRunGroup.js.map +1 -1
  293. package/execution/UsageWidget.js +3 -3
  294. package/execution/UsageWidget.js.map +1 -1
  295. package/execution/WriteBackCard.d.ts.map +1 -1
  296. package/execution/WriteBackCard.js +18 -16
  297. package/execution/WriteBackCard.js.map +1 -1
  298. package/execution/WriteBacksWidget.js +1 -1
  299. package/execution/WriteBacksWidget.js.map +1 -1
  300. package/execution/artifact-row-item.d.ts +1 -1
  301. package/execution/artifact-row-item.d.ts.map +1 -1
  302. package/execution/tool-rendering-primitives.js +5 -5
  303. package/execution/tool-rendering-primitives.js.map +1 -1
  304. package/feedback/StigmerToaster.d.ts.map +1 -1
  305. package/feedback/StigmerToaster.js +9 -5
  306. package/feedback/StigmerToaster.js.map +1 -1
  307. package/file-reference/FileReferenceChipList.d.ts.map +1 -1
  308. package/file-reference/FileReferenceChipList.js +8 -3
  309. package/file-reference/FileReferenceChipList.js.map +1 -1
  310. package/github/GitHubRepoPicker.js +26 -26
  311. package/github/GitHubRepoPicker.js.map +1 -1
  312. package/iam-policy/GrantAccessForm.js +2 -2
  313. package/iam-policy/GrantAccessForm.js.map +1 -1
  314. package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
  315. package/iam-policy/OrgMembersPanel.js +13 -12
  316. package/iam-policy/OrgMembersPanel.js.map +1 -1
  317. package/iam-policy/PeopleWithAccess.js +4 -4
  318. package/iam-policy/PeopleWithAccess.js.map +1 -1
  319. package/iam-policy/PrincipalPicker.js +6 -6
  320. package/iam-policy/PrincipalPicker.js.map +1 -1
  321. package/iam-policy/ProviderBadge.d.ts.map +1 -1
  322. package/iam-policy/ProviderBadge.js +3 -2
  323. package/iam-policy/ProviderBadge.js.map +1 -1
  324. package/iam-policy/RoleSelector.d.ts.map +1 -1
  325. package/iam-policy/RoleSelector.js +4 -4
  326. package/iam-policy/RoleSelector.js.map +1 -1
  327. package/iam-policy/SharePanel.js +1 -1
  328. package/iam-policy/SharePanel.js.map +1 -1
  329. package/identity-provider/CreateIdentityProviderForm.js +6 -6
  330. package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
  331. package/identity-provider/IdentityProviderDetailPanel.js +11 -11
  332. package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
  333. package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
  334. package/identity-provider/IdentityProviderListPanel.js +9 -8
  335. package/identity-provider/IdentityProviderListPanel.js.map +1 -1
  336. package/identity-provider/IdentityProviderWizard.js +16 -16
  337. package/identity-provider/IdentityProviderWizard.js.map +1 -1
  338. package/identity-provider/ProviderPicker.js +11 -11
  339. package/identity-provider/ProviderPicker.js.map +1 -1
  340. package/identity-provider/SsoLoginPrompt.js +7 -7
  341. package/identity-provider/SsoLoginPrompt.js.map +1 -1
  342. package/index.d.ts +1 -1
  343. package/index.d.ts.map +1 -1
  344. package/index.js +1 -1
  345. package/index.js.map +1 -1
  346. package/inline-edit/InlineEditImage.js +5 -5
  347. package/inline-edit/InlineEditImage.js.map +1 -1
  348. package/inline-edit/InlineEditKeyValue.js +3 -3
  349. package/inline-edit/InlineEditKeyValue.js.map +1 -1
  350. package/inline-edit/InlineEditResourceList.js +8 -8
  351. package/inline-edit/InlineEditResourceList.js.map +1 -1
  352. package/inline-edit/InlineEditSelect.js +8 -8
  353. package/inline-edit/InlineEditSelect.js.map +1 -1
  354. package/inline-edit/InlineEditText.js +6 -6
  355. package/inline-edit/InlineEditText.js.map +1 -1
  356. package/inline-edit/InlineEditTextarea.js +4 -4
  357. package/inline-edit/InlineEditTextarea.js.map +1 -1
  358. package/internal/ApprovalPeekBar.js +3 -3
  359. package/internal/ApprovalPeekBar.js.map +1 -1
  360. package/internal/BoundedContent.d.ts +1 -1
  361. package/internal/BoundedContent.d.ts.map +1 -1
  362. package/internal/BoundedContent.js +2 -2
  363. package/internal/BoundedContent.js.map +1 -1
  364. package/internal/CloudFeatureNotice.js +1 -1
  365. package/internal/CloudFeatureNotice.js.map +1 -1
  366. package/internal/DecisionButton.js +6 -6
  367. package/internal/DecisionButton.js.map +1 -1
  368. package/internal/InCardDecisionError.js +1 -1
  369. package/internal/InCardDecisionError.js.map +1 -1
  370. package/internal/JumpToLatestButton.js +3 -3
  371. package/internal/JumpToLatestButton.js.map +1 -1
  372. package/internal/MermaidDiagram.js +2 -2
  373. package/internal/MermaidDiagram.js.map +1 -1
  374. package/internal/Pagination.js +2 -2
  375. package/internal/Pagination.js.map +1 -1
  376. package/internal/ResizableSplit.d.ts +28 -6
  377. package/internal/ResizableSplit.d.ts.map +1 -1
  378. package/internal/ResizableSplit.js +18 -4
  379. package/internal/ResizableSplit.js.map +1 -1
  380. package/internal/RevealToggle.js +2 -2
  381. package/internal/RevealToggle.js.map +1 -1
  382. package/internal/ScrollFade.js +2 -2
  383. package/internal/ScrollFade.js.map +1 -1
  384. package/internal/VirtualizedThread.js +2 -2
  385. package/internal/VirtualizedThread.js.map +1 -1
  386. package/internal/file-icons/index.js +2 -2
  387. package/internal/file-icons/index.js.map +1 -1
  388. package/internal/file-tree/FileTreeNode.js +3 -3
  389. package/internal/file-tree/FileTreeNode.js.map +1 -1
  390. package/internal/form-primitives.d.ts +12 -10
  391. package/internal/form-primitives.d.ts.map +1 -1
  392. package/internal/form-primitives.js +14 -12
  393. package/internal/form-primitives.js.map +1 -1
  394. package/internal/markdown-components.js +23 -23
  395. package/internal/markdown-components.js.map +1 -1
  396. package/internal/menu.js +5 -5
  397. package/internal/menu.js.map +1 -1
  398. package/internal/scroll-area.js +1 -1
  399. package/internal/scroll-area.js.map +1 -1
  400. package/internal/thread-card/ThreadCardShell.js +7 -7
  401. package/internal/thread-card/ThreadCardShell.js.map +1 -1
  402. package/internal/thread-card/glyphs.js +2 -2
  403. package/internal/thread-card/glyphs.js.map +1 -1
  404. package/internal/tooltip.d.ts.map +1 -1
  405. package/internal/tooltip.js +4 -6
  406. package/internal/tooltip.js.map +1 -1
  407. package/internal/truncated-text.d.ts +17 -0
  408. package/internal/truncated-text.d.ts.map +1 -0
  409. package/internal/truncated-text.js +27 -0
  410. package/internal/truncated-text.js.map +1 -0
  411. package/invitation/InvitationCreatedAlert.js +1 -1
  412. package/invitation/InvitationCreatedAlert.js.map +1 -1
  413. package/invitation/InvitationManager.d.ts.map +1 -1
  414. package/invitation/InvitationManager.js +25 -24
  415. package/invitation/InvitationManager.js.map +1 -1
  416. package/invitation/InvitationRedemption.js +12 -12
  417. package/invitation/InvitationRedemption.js.map +1 -1
  418. package/library/ResourceCountCard.js +4 -4
  419. package/library/ResourceCountCard.js.map +1 -1
  420. package/library/ScopeToggle.d.ts.map +1 -1
  421. package/library/ScopeToggle.js +13 -5
  422. package/library/ScopeToggle.js.map +1 -1
  423. package/library/VisibilityOptionRow.d.ts +1 -1
  424. package/library/VisibilityOptionRow.d.ts.map +1 -1
  425. package/library/VisibilityOptionRow.js +22 -22
  426. package/library/VisibilityOptionRow.js.map +1 -1
  427. package/library/VisibilitySelector.d.ts.map +1 -1
  428. package/library/VisibilitySelector.js +6 -5
  429. package/library/VisibilitySelector.js.map +1 -1
  430. package/manifest/ApplyManifestDialog.js +6 -6
  431. package/manifest/ApplyManifestDialog.js.map +1 -1
  432. package/manifest/EditResourceYamlDialog.js +2 -2
  433. package/manifest/EditResourceYamlDialog.js.map +1 -1
  434. package/manifest/RedactedSecretsNotice.js +1 -1
  435. package/manifest/RedactedSecretsNotice.js.map +1 -1
  436. package/manifest/YamlEditor.js +1 -1
  437. package/manifest/YamlEditor.js.map +1 -1
  438. package/mcp-server/McpServerConfigPanel.d.ts +30 -1
  439. package/mcp-server/McpServerConfigPanel.d.ts.map +1 -1
  440. package/mcp-server/McpServerConfigPanel.js +36 -26
  441. package/mcp-server/McpServerConfigPanel.js.map +1 -1
  442. package/mcp-server/McpServerConnectDialog.d.ts +12 -1
  443. package/mcp-server/McpServerConnectDialog.d.ts.map +1 -1
  444. package/mcp-server/McpServerConnectDialog.js +48 -21
  445. package/mcp-server/McpServerConnectDialog.js.map +1 -1
  446. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  447. package/mcp-server/McpServerDetailView.js +113 -64
  448. package/mcp-server/McpServerDetailView.js.map +1 -1
  449. package/mcp-server/McpServerPicker.d.ts.map +1 -1
  450. package/mcp-server/McpServerPicker.js +101 -20
  451. package/mcp-server/McpServerPicker.js.map +1 -1
  452. package/mcp-server/McpToolSelector.d.ts.map +1 -1
  453. package/mcp-server/McpToolSelector.js +5 -4
  454. package/mcp-server/McpToolSelector.js.map +1 -1
  455. package/mcp-server/OAuthAppForm.js +2 -2
  456. package/mcp-server/OAuthAppForm.js.map +1 -1
  457. package/mcp-server/OAuthCallbackHandler.js +4 -4
  458. package/mcp-server/OAuthCallbackHandler.js.map +1 -1
  459. package/mcp-server/OAuthRequiredNotice.js +1 -1
  460. package/mcp-server/OAuthRequiredNotice.js.map +1 -1
  461. package/mcp-server/StdioSandboxNotice.js +1 -1
  462. package/mcp-server/StdioSandboxNotice.js.map +1 -1
  463. package/mcp-server/VendorApprovalBlockedNotice.d.ts +77 -0
  464. package/mcp-server/VendorApprovalBlockedNotice.d.ts.map +1 -0
  465. package/mcp-server/VendorApprovalBlockedNotice.js +62 -0
  466. package/mcp-server/VendorApprovalBlockedNotice.js.map +1 -0
  467. package/mcp-server/index.d.ts +1 -1
  468. package/mcp-server/index.d.ts.map +1 -1
  469. package/mcp-server/index.js +1 -1
  470. package/mcp-server/index.js.map +1 -1
  471. package/mcp-server/mcpServerSetupReducer.d.ts +18 -0
  472. package/mcp-server/mcpServerSetupReducer.d.ts.map +1 -1
  473. package/mcp-server/mcpServerSetupReducer.js +6 -0
  474. package/mcp-server/mcpServerSetupReducer.js.map +1 -1
  475. package/mcp-server/steps/EnvironmentAuthStep.js +4 -4
  476. package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
  477. package/mcp-server/steps/IdentityTransportStep.js +8 -8
  478. package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
  479. package/mcp-server/steps/ReviewStep.js +3 -3
  480. package/mcp-server/steps/ReviewStep.js.map +1 -1
  481. package/mcp-server/useMcpServerOAuthConnect.d.ts +29 -0
  482. package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
  483. package/mcp-server/useMcpServerOAuthConnect.js +49 -10
  484. package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
  485. package/mcp-server/useMcpServerSetup.d.ts.map +1 -1
  486. package/mcp-server/useMcpServerSetup.js +7 -0
  487. package/mcp-server/useMcpServerSetup.js.map +1 -1
  488. package/models/HarnessSelector.js +8 -8
  489. package/models/HarnessSelector.js.map +1 -1
  490. package/models/ModelSelector.js +11 -11
  491. package/models/ModelSelector.js.map +1 -1
  492. package/oauth-app/CreateOAuthAppForm.js +4 -4
  493. package/oauth-app/CreateOAuthAppForm.js.map +1 -1
  494. package/oauth-app/OAuthAppDetailPanel.js +8 -8
  495. package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
  496. package/oauth-app/OAuthAppListPanel.d.ts.map +1 -1
  497. package/oauth-app/OAuthAppListPanel.js +7 -6
  498. package/oauth-app/OAuthAppListPanel.js.map +1 -1
  499. package/organization/CreateOrganizationForm.js +4 -4
  500. package/organization/CreateOrganizationForm.js.map +1 -1
  501. package/organization/OrgProfilePanel.js +10 -10
  502. package/organization/OrgProfilePanel.js.map +1 -1
  503. package/organization/OrgSwitcher.js +5 -5
  504. package/organization/OrgSwitcher.js.map +1 -1
  505. package/package.json +4 -4
  506. package/platform-client/CreatePlatformClientForm.js +5 -5
  507. package/platform-client/CreatePlatformClientForm.js.map +1 -1
  508. package/platform-client/PlatformClientDetailPanel.js +8 -8
  509. package/platform-client/PlatformClientDetailPanel.js.map +1 -1
  510. package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
  511. package/platform-client/PlatformClientListPanel.js +11 -10
  512. package/platform-client/PlatformClientListPanel.js.map +1 -1
  513. package/platform-client/PlatformClientSecretAlert.js +2 -2
  514. package/platform-client/PlatformClientSecretAlert.js.map +1 -1
  515. package/portal-container.d.ts +34 -9
  516. package/portal-container.d.ts.map +1 -1
  517. package/portal-container.js +33 -8
  518. package/portal-container.js.map +1 -1
  519. package/pricing-governance/BaselineEditor.d.ts.map +1 -1
  520. package/pricing-governance/BaselineEditor.js +11 -5
  521. package/pricing-governance/BaselineEditor.js.map +1 -1
  522. package/pricing-governance/ModelCatalogPanel.d.ts.map +1 -1
  523. package/pricing-governance/ModelCatalogPanel.js +6 -5
  524. package/pricing-governance/ModelCatalogPanel.js.map +1 -1
  525. package/pricing-governance/ModelGovernanceDetail.js +7 -7
  526. package/pricing-governance/ModelGovernanceDetail.js.map +1 -1
  527. package/pricing-governance/OperatorAccessNotice.js +1 -1
  528. package/pricing-governance/OperatorAccessNotice.js.map +1 -1
  529. package/pricing-governance/PricingGovernanceConsole.d.ts.map +1 -1
  530. package/pricing-governance/PricingGovernanceConsole.js +9 -8
  531. package/pricing-governance/PricingGovernanceConsole.js.map +1 -1
  532. package/pricing-governance/PricingGovernancePanel.d.ts.map +1 -1
  533. package/pricing-governance/PricingGovernancePanel.js +5 -4
  534. package/pricing-governance/PricingGovernancePanel.js.map +1 -1
  535. package/pricing-governance/RetireConfirm.js +1 -1
  536. package/pricing-governance/RetireConfirm.js.map +1 -1
  537. package/pricing-governance/governance-primitives.js +6 -6
  538. package/pricing-governance/governance-primitives.js.map +1 -1
  539. package/resource-creation/CreationPicker.js +7 -7
  540. package/resource-creation/CreationPicker.js.map +1 -1
  541. package/resource-creation/StepIndicator.js +4 -4
  542. package/resource-creation/StepIndicator.js.map +1 -1
  543. package/resource-creation/TemplateCard.js +15 -15
  544. package/resource-creation/TemplateCard.js.map +1 -1
  545. package/resource-creation/TemplateGallery.js +5 -5
  546. package/resource-creation/TemplateGallery.js.map +1 -1
  547. package/resource-creation/WizardNav.js +2 -2
  548. package/resource-creation/WizardNav.js.map +1 -1
  549. package/resource-creation/WizardShell.js +2 -2
  550. package/resource-creation/WizardShell.js.map +1 -1
  551. package/resource-detail/ConfirmDialog.js +3 -3
  552. package/resource-detail/ConfirmDialog.js.map +1 -1
  553. package/resource-detail/ResourceActionBar.js +2 -2
  554. package/resource-detail/ResourceActionBar.js.map +1 -1
  555. package/resource-detail/ResourceDetailShell.js +3 -3
  556. package/resource-detail/ResourceDetailShell.js.map +1 -1
  557. package/resource-detail/Section.js +1 -1
  558. package/resource-detail/Section.js.map +1 -1
  559. package/resource-workbench/components/BulkActionBar.js +4 -4
  560. package/resource-workbench/components/BulkActionBar.js.map +1 -1
  561. package/resource-workbench/components/ColumnHeader.js +3 -3
  562. package/resource-workbench/components/ColumnHeader.js.map +1 -1
  563. package/resource-workbench/components/FilterBar.js +3 -3
  564. package/resource-workbench/components/FilterBar.js.map +1 -1
  565. package/resource-workbench/components/ResourceAvatar.js +18 -18
  566. package/resource-workbench/components/ResourceAvatar.js.map +1 -1
  567. package/resource-workbench/components/ResourceCards.js +2 -2
  568. package/resource-workbench/components/ResourceCards.js.map +1 -1
  569. package/resource-workbench/components/ResourceInspector.js +1 -1
  570. package/resource-workbench/components/ResourceInspector.js.map +1 -1
  571. package/resource-workbench/components/ResourceList.js +2 -2
  572. package/resource-workbench/components/ResourceList.js.map +1 -1
  573. package/resource-workbench/components/ResourceTable.js +5 -5
  574. package/resource-workbench/components/ResourceTable.js.map +1 -1
  575. package/resource-workbench/components/ResourceWorkbench.js +11 -11
  576. package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
  577. package/resource-workbench/components/SelectionCheckbox.js +1 -1
  578. package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
  579. package/resource-workbench/components/StatusBadge.d.ts.map +1 -1
  580. package/resource-workbench/components/StatusBadge.js +17 -16
  581. package/resource-workbench/components/StatusBadge.js.map +1 -1
  582. package/resource-workbench/components/ViewSwitcher.js +4 -4
  583. package/resource-workbench/components/ViewSwitcher.js.map +1 -1
  584. package/schedule/CadenceField.d.ts.map +1 -1
  585. package/schedule/CadenceField.js +26 -19
  586. package/schedule/CadenceField.js.map +1 -1
  587. package/schedule/ScheduleDetailView.js +39 -39
  588. package/schedule/ScheduleDetailView.js.map +1 -1
  589. package/schedule/ScheduleForm.js +9 -9
  590. package/schedule/ScheduleForm.js.map +1 -1
  591. package/schedule/ScheduleRowActions.js +1 -1
  592. package/schedule/ScheduleRowActions.js.map +1 -1
  593. package/schedule/ScheduleRunsTable.d.ts.map +1 -1
  594. package/schedule/ScheduleRunsTable.js +18 -17
  595. package/schedule/ScheduleRunsTable.js.map +1 -1
  596. package/schedule/TimeZoneField.js +5 -5
  597. package/schedule/TimeZoneField.js.map +1 -1
  598. package/schedule/scheduleColumns.js +5 -5
  599. package/schedule/scheduleColumns.js.map +1 -1
  600. package/session/NewSessionViewer.js +3 -3
  601. package/session/NewSessionViewer.js.map +1 -1
  602. package/session/PlanEditor.d.ts.map +1 -1
  603. package/session/PlanEditor.js +9 -11
  604. package/session/PlanEditor.js.map +1 -1
  605. package/session/PlanStreamingDocument.js +2 -2
  606. package/session/PlanStreamingDocument.js.map +1 -1
  607. package/session/SessionViewer.js +21 -21
  608. package/session/SessionViewer.js.map +1 -1
  609. package/session/SessionViewerLayout.d.ts +11 -8
  610. package/session/SessionViewerLayout.d.ts.map +1 -1
  611. package/session/SessionViewerLayout.js +1 -1
  612. package/session/SessionViewerLayout.js.map +1 -1
  613. package/session/facets/ArtifactsTab.js +2 -2
  614. package/session/facets/ArtifactsTab.js.map +1 -1
  615. package/session/facets/ChangesTab.js +3 -3
  616. package/session/facets/ChangesTab.js.map +1 -1
  617. package/session/facets/SetupTab.js +11 -11
  618. package/session/facets/SetupTab.js.map +1 -1
  619. package/session/facets/UsageTab.js +1 -1
  620. package/session/facets/UsageTab.js.map +1 -1
  621. package/settings/ApiKeysSection.js +1 -1
  622. package/settings/ApiKeysSection.js.map +1 -1
  623. package/settings/ChannelAppsSection.js +1 -1
  624. package/settings/ChannelAppsSection.js.map +1 -1
  625. package/settings/EnvironmentsSection.js +4 -4
  626. package/settings/EnvironmentsSection.js.map +1 -1
  627. package/settings/IdentityProvidersSection.js +1 -1
  628. package/settings/IdentityProvidersSection.js.map +1 -1
  629. package/settings/InvitationsSection.js +1 -1
  630. package/settings/InvitationsSection.js.map +1 -1
  631. package/settings/MembersSection.js +1 -1
  632. package/settings/MembersSection.js.map +1 -1
  633. package/settings/OAuthAppsSection.js +1 -1
  634. package/settings/OAuthAppsSection.js.map +1 -1
  635. package/settings/OrgProfileSection.js +1 -1
  636. package/settings/OrgProfileSection.js.map +1 -1
  637. package/settings/PlatformClientsSection.js +1 -1
  638. package/settings/PlatformClientsSection.js.map +1 -1
  639. package/settings/UsageSection.js +1 -1
  640. package/settings/UsageSection.js.map +1 -1
  641. package/sharing/AgentShareList.d.ts.map +1 -1
  642. package/sharing/AgentShareList.js +7 -5
  643. package/sharing/AgentShareList.js.map +1 -1
  644. package/sharing/ShareAgentDialog.d.ts.map +1 -1
  645. package/sharing/ShareAgentDialog.js +31 -30
  646. package/sharing/ShareAgentDialog.js.map +1 -1
  647. package/sharing/SharedAgentChat.js +6 -6
  648. package/sharing/SharedAgentChat.js.map +1 -1
  649. package/sidebar/SettingsSidebar.js +5 -5
  650. package/sidebar/SettingsSidebar.js.map +1 -1
  651. package/sidebar/WorkspaceSidebar.js +13 -13
  652. package/sidebar/WorkspaceSidebar.js.map +1 -1
  653. package/sidebar/chrome.js +5 -5
  654. package/sidebar/chrome.js.map +1 -1
  655. package/skill/SkillDetailView.d.ts.map +1 -1
  656. package/skill/SkillDetailView.js +14 -13
  657. package/skill/SkillDetailView.js.map +1 -1
  658. package/skill/SkillDiffDialog.js +2 -2
  659. package/skill/SkillDiffDialog.js.map +1 -1
  660. package/skill/SkillFileBrowser.js +4 -4
  661. package/skill/SkillFileBrowser.js.map +1 -1
  662. package/skill/SkillPicker.js +10 -10
  663. package/skill/SkillPicker.js.map +1 -1
  664. package/skill/SkillUploader.js +8 -8
  665. package/skill/SkillUploader.js.map +1 -1
  666. package/src/__tests__/helpers/compile-sdk-styles.ts +33 -0
  667. package/src/__tests__/helpers/open-menu.ts +88 -0
  668. package/src/__tests__/portal-container.test.tsx +97 -0
  669. package/src/__tests__/preflight-parity.layout.test.tsx +156 -0
  670. package/src/__tests__/scope-unprefixed.test.ts +86 -0
  671. package/src/__tests__/styles-border-layer-invariant.test.ts +86 -58
  672. package/src/__tests__/styles-dist-isolation.test.ts +195 -0
  673. package/src/__tests__/styles-host-isolation.layout.test.tsx +204 -0
  674. package/src/access/ManageAccessButton.tsx +3 -3
  675. package/src/access/ManageAccessDialog.tsx +19 -19
  676. package/src/action-menu/ActionMenu.tsx +8 -8
  677. package/src/activity/useRecentActivity.ts +6 -1
  678. package/src/agent/AgentDetailView.tsx +112 -112
  679. package/src/agent/AgentPicker.tsx +26 -26
  680. package/src/agent/steps/CapabilitiesStep.tsx +36 -36
  681. package/src/agent/steps/IdentityStep.tsx +45 -45
  682. package/src/agent/steps/ReviewStep.tsx +18 -18
  683. package/src/agent-instance/AgentInstanceDetailPanel.tsx +45 -45
  684. package/src/agent-instance/AgentInstanceList.tsx +40 -41
  685. package/src/agent-instance/CreateAgentInstanceDialog.tsx +35 -35
  686. package/src/agent-instance/__tests__/AgentInstanceList.test.tsx +5 -10
  687. package/src/api-key/ApiKeyCreatedAlert.tsx +15 -15
  688. package/src/api-key/ApiKeyListPanel.tsx +39 -31
  689. package/src/api-key/CreateApiKeyForm.tsx +25 -25
  690. package/src/attachment/AttachmentChipList.tsx +86 -77
  691. package/src/attachment/AttachmentImageLightbox.tsx +13 -14
  692. package/src/attachment/__tests__/AttachmentChipList.test.tsx +5 -4
  693. package/src/attachment/attachment-utils.ts +8 -5
  694. package/src/billing/AutoRechargeCard.tsx +26 -26
  695. package/src/billing/BillingSection.tsx +14 -14
  696. package/src/billing/CreditBalanceCard.tsx +7 -7
  697. package/src/billing/CreditLedgerTable.tsx +27 -27
  698. package/src/billing/CreditPackGrid.tsx +13 -13
  699. package/src/billing/LowBalanceBanner.tsx +6 -6
  700. package/src/billing/PaymentMethodCard.tsx +13 -13
  701. package/src/button/Button.tsx +10 -10
  702. package/src/button/__tests__/Button.test.tsx +9 -9
  703. package/src/channel/AgentChannelsPanel.tsx +37 -38
  704. package/src/channel/ChannelConversationsDialog.tsx +25 -23
  705. package/src/channel/ChannelCredentialsDialog.tsx +13 -13
  706. package/src/channel/ChannelTemplatesDialog.tsx +38 -39
  707. package/src/channel/ChannelToolCredentials.tsx +5 -5
  708. package/src/channel/ConnectSlackDialog.tsx +48 -48
  709. package/src/channel/ConnectWhatsAppDialog.tsx +42 -42
  710. package/src/channel/__tests__/AgentChannelsPanel.test.tsx +18 -18
  711. package/src/channel/connect/ServingAppSection.tsx +14 -14
  712. package/src/channel/connect/ToolCredentialsSection.tsx +5 -5
  713. package/src/channel/connect/VerbatimRefusal.tsx +1 -1
  714. package/src/channel/connect/icons.tsx +1 -1
  715. package/src/channel-app/ChannelAppDetailPanel.tsx +44 -44
  716. package/src/channel-app/ChannelAppListPanel.tsx +15 -15
  717. package/src/channel-app/CreateChannelAppForm.tsx +37 -37
  718. package/src/channel-app/internal.tsx +25 -26
  719. package/src/composer/ComposerToolbar.tsx +124 -92
  720. package/src/composer/ConfigureMenu.tsx +49 -40
  721. package/src/composer/ContextChip.tsx +13 -14
  722. package/src/composer/ContextPopover.tsx +30 -21
  723. package/src/composer/InteractionModePicker.tsx +14 -14
  724. package/src/composer/SessionComposer.tsx +64 -32
  725. package/src/composer/__tests__/SessionComposer-agentSetupError.test.tsx +124 -0
  726. package/src/composer/__tests__/SessionComposer-lockAgent.test.tsx +13 -17
  727. package/src/composer/__tests__/SessionComposer-serviceTier.test.tsx +2 -7
  728. package/src/composer/icons.tsx +5 -5
  729. package/src/conversation/ConversationAttentionBanner.tsx +6 -6
  730. package/src/conversation/ConversationComposer.tsx +13 -13
  731. package/src/conversation/ConversationControlBanner.tsx +11 -11
  732. package/src/conversation/ConversationListPane.tsx +38 -38
  733. package/src/conversation/ConversationMediaAttachment.tsx +14 -14
  734. package/src/conversation/ConversationTimelineView.tsx +64 -47
  735. package/src/conversation/ConversationsWorkbench.tsx +10 -10
  736. package/src/conversation/__tests__/ConversationComposer.test.tsx +1 -1
  737. package/src/conversation/__tests__/ConversationTimelineView.test.tsx +106 -3
  738. package/src/conversation/conversationPresentation.ts +52 -1
  739. package/src/cursor-accounts/CursorAccountEditor.tsx +13 -13
  740. package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +3 -3
  741. package/src/cursor-accounts/CursorAccountsConsole.tsx +35 -35
  742. package/src/cursor-accounts/MemberCoverageTable.tsx +41 -39
  743. package/src/cursor-accounts/MemberKeysPanel.tsx +17 -17
  744. package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +4 -4
  745. package/src/cursor-accounts/badges.tsx +4 -4
  746. package/src/dashboard/DashboardFailedRuns.tsx +17 -17
  747. package/src/dashboard/DashboardKPICards.tsx +14 -13
  748. package/src/dashboard/OperationalDashboard.tsx +2 -2
  749. package/src/datastore/CollectionRecordsBrowser.tsx +42 -41
  750. package/src/datastore/CollectionSchemaView.tsx +43 -43
  751. package/src/datastore/DatastoreDetailView.tsx +18 -18
  752. package/src/datastore/DatastoreSyncReport.tsx +13 -13
  753. package/src/datastore/DeleteDatastoreDialog.tsx +21 -21
  754. package/src/datastore/FieldValueControl.tsx +7 -7
  755. package/src/datastore/RecordFilterBuilder.tsx +35 -35
  756. package/src/datastore/RecordFormPanel.tsx +35 -35
  757. package/src/dependency-graph/DependencyGraph.tsx +6 -6
  758. package/src/dependency-graph/DependencyTreeNode.tsx +21 -21
  759. package/src/empty-state/EmptyState.tsx +7 -7
  760. package/src/empty-state/useEmptyState.ts +1 -1
  761. package/src/environment/CreateEnvironmentForm.tsx +24 -24
  762. package/src/environment/EnvVarForm.tsx +40 -40
  763. package/src/environment/EnvironmentListPanel.tsx +19 -19
  764. package/src/environment/EnvironmentPicker.tsx +22 -22
  765. package/src/environment/EnvironmentVariableEditor.tsx +69 -58
  766. package/src/error/ErrorMessage.tsx +22 -22
  767. package/src/error/SecretFlowErrorGuide.tsx +19 -19
  768. package/src/execution/ApprovalCard.tsx +20 -22
  769. package/src/execution/ArtifactApplyButton.tsx +7 -7
  770. package/src/execution/ArtifactContentBody.tsx +11 -11
  771. package/src/execution/ArtifactContentRenderer.tsx +29 -29
  772. package/src/execution/ArtifactDocument.tsx +22 -22
  773. package/src/execution/ArtifactFileContent.tsx +6 -6
  774. package/src/execution/ArtifactPreviewModal.tsx +33 -33
  775. package/src/execution/ArtifactRowView.tsx +70 -50
  776. package/src/execution/ArtifactsWidget.tsx +4 -4
  777. package/src/execution/ContextGauge.tsx +24 -24
  778. package/src/execution/EmptyChangeNotice.tsx +1 -1
  779. package/src/execution/ExecutionPhaseBadge.tsx +12 -12
  780. package/src/execution/ExecutionProgress.tsx +2 -2
  781. package/src/execution/FileChangeProgressBar.tsx +9 -9
  782. package/src/execution/FileChangesView.tsx +12 -12
  783. package/src/execution/FilePathLink.tsx +51 -35
  784. package/src/execution/FileReviewAtoms.tsx +9 -9
  785. package/src/execution/FileReviewCard.tsx +37 -37
  786. package/src/execution/FileReviewDock.tsx +2 -2
  787. package/src/execution/FollowUpInput.tsx +9 -9
  788. package/src/execution/InteractionModeBadge.tsx +2 -2
  789. package/src/execution/McpToolDetail.tsx +33 -29
  790. package/src/execution/MessageAttachments.tsx +64 -48
  791. package/src/execution/MessageEntry.tsx +40 -33
  792. package/src/execution/MessageThread.tsx +28 -28
  793. package/src/execution/PlanArtifactCard.tsx +44 -37
  794. package/src/execution/PlanCompletionCard.tsx +10 -10
  795. package/src/execution/PlanDocumentMessage.tsx +6 -6
  796. package/src/execution/PlanStreamingCard.tsx +11 -11
  797. package/src/execution/ResultView.tsx +44 -44
  798. package/src/execution/SessionVariablesInput.tsx +38 -38
  799. package/src/execution/SetupProgress.tsx +5 -5
  800. package/src/execution/SubAgentSection.tsx +42 -42
  801. package/src/execution/SummarizationBadge.tsx +15 -15
  802. package/src/execution/SummarizationCard.tsx +11 -11
  803. package/src/execution/TerminalSession.tsx +7 -7
  804. package/src/execution/ThreadSkeleton.tsx +10 -10
  805. package/src/execution/TodoCard.tsx +11 -11
  806. package/src/execution/TodoList.tsx +13 -13
  807. package/src/execution/ToolArgsView.tsx +8 -8
  808. package/src/execution/ToolCallDetail.tsx +7 -10
  809. package/src/execution/ToolCallGroup.tsx +1 -1
  810. package/src/execution/ToolCallItem.tsx +45 -34
  811. package/src/execution/ToolRunGroup.tsx +16 -16
  812. package/src/execution/UsageWidget.tsx +12 -12
  813. package/src/execution/WriteBackCard.tsx +60 -51
  814. package/src/execution/WriteBacksWidget.tsx +4 -4
  815. package/src/execution/__tests__/ApprovalCard.test.tsx +12 -12
  816. package/src/execution/__tests__/ArtifactContentRenderer.test.tsx +3 -3
  817. package/src/execution/__tests__/ArtifactRow.test.tsx +6 -2
  818. package/src/execution/__tests__/ArtifactRowView.test.tsx +5 -2
  819. package/src/execution/__tests__/FileChangesView.test.tsx +2 -2
  820. package/src/execution/__tests__/FilePathLink.test.tsx +11 -7
  821. package/src/execution/__tests__/FileReviewCard.test.tsx +2 -1
  822. package/src/execution/__tests__/FileReviewDock.test.tsx +1 -1
  823. package/src/execution/__tests__/MessageEntry-attachments.test.tsx +5 -4
  824. package/src/execution/__tests__/MessageThread.test.tsx +7 -2
  825. package/src/execution/__tests__/TerminalSession.test.tsx +1 -1
  826. package/src/execution/__tests__/ToolCallDetail.test.tsx +1 -1
  827. package/src/execution/__tests__/ToolCallGroup.test.tsx +4 -4
  828. package/src/execution/__tests__/ToolCallItem.test.tsx +9 -9
  829. package/src/execution/__tests__/ToolRunGroup.test.tsx +6 -6
  830. package/src/execution/__tests__/WriteBackCard.test.tsx +4 -4
  831. package/src/execution/__tests__/artifact-row-tooltips.layout.test.tsx +115 -0
  832. package/src/execution/__tests__/message-entry.test.tsx +8 -8
  833. package/src/execution/__tests__/thread-memoization.test.ts +2 -2
  834. package/src/execution/__tests__/thread-skeleton.test.tsx +1 -1
  835. package/src/execution/__tests__/virtualized-thread.test.tsx +1 -1
  836. package/src/execution/artifact-row-item.ts +1 -1
  837. package/src/execution/tool-rendering-primitives.tsx +12 -12
  838. package/src/feedback/StigmerToaster.tsx +8 -5
  839. package/src/file-reference/FileReferenceChipList.tsx +31 -19
  840. package/src/file-reference/__tests__/FileReferenceChipList.test.tsx +5 -2
  841. package/src/github/GitHubRepoPicker.tsx +60 -60
  842. package/src/iam-policy/GrantAccessForm.tsx +11 -11
  843. package/src/iam-policy/OrgMembersPanel.tsx +70 -63
  844. package/src/iam-policy/PeopleWithAccess.tsx +23 -23
  845. package/src/iam-policy/PrincipalPicker.tsx +34 -34
  846. package/src/iam-policy/ProviderBadge.tsx +17 -10
  847. package/src/iam-policy/RoleSelector.tsx +9 -10
  848. package/src/iam-policy/SharePanel.tsx +5 -5
  849. package/src/identity-provider/CreateIdentityProviderForm.tsx +47 -47
  850. package/src/identity-provider/IdentityProviderDetailPanel.tsx +73 -73
  851. package/src/identity-provider/IdentityProviderListPanel.tsx +44 -36
  852. package/src/identity-provider/IdentityProviderWizard.tsx +72 -72
  853. package/src/identity-provider/ProviderPicker.tsx +17 -17
  854. package/src/identity-provider/SsoLoginPrompt.tsx +39 -39
  855. package/src/index.ts +1 -0
  856. package/src/inline-edit/InlineEditImage.tsx +26 -26
  857. package/src/inline-edit/InlineEditKeyValue.tsx +44 -44
  858. package/src/inline-edit/InlineEditResourceList.tsx +48 -48
  859. package/src/inline-edit/InlineEditSelect.tsx +22 -22
  860. package/src/inline-edit/InlineEditText.tsx +29 -29
  861. package/src/inline-edit/InlineEditTextarea.tsx +27 -27
  862. package/src/internal/ApprovalPeekBar.tsx +9 -9
  863. package/src/internal/BoundedContent.tsx +3 -3
  864. package/src/internal/CloudFeatureNotice.tsx +3 -3
  865. package/src/internal/DecisionButton.tsx +10 -10
  866. package/src/internal/InCardDecisionError.tsx +1 -1
  867. package/src/internal/JumpToLatestButton.tsx +9 -9
  868. package/src/internal/MermaidDiagram.tsx +5 -5
  869. package/src/internal/Pagination.tsx +5 -5
  870. package/src/internal/ResizableSplit.tsx +61 -20
  871. package/src/internal/RevealToggle.tsx +5 -5
  872. package/src/internal/ScrollFade.tsx +2 -2
  873. package/src/internal/VirtualizedThread.tsx +6 -6
  874. package/src/internal/__tests__/BoundedContent.test.tsx +1 -1
  875. package/src/internal/__tests__/DecisionButton.test.tsx +14 -14
  876. package/src/internal/__tests__/ResizableSplit.layout.test.tsx +136 -0
  877. package/src/internal/__tests__/ResizableSplit.test.tsx +49 -2
  878. package/src/internal/__tests__/ThreadCardShell.test.tsx +4 -4
  879. package/src/internal/__tests__/markdown-components.test.tsx +2 -2
  880. package/src/internal/__tests__/thread-animation.test.tsx +6 -6
  881. package/src/internal/__tests__/truncated-text.layout.test.tsx +68 -0
  882. package/src/internal/__tests__/truncated-text.test.tsx +33 -0
  883. package/src/internal/file-icons/index.tsx +2 -2
  884. package/src/internal/file-tree/FileTreeNode.tsx +9 -9
  885. package/src/internal/file-tree/__tests__/FileTreeNode-explorer.test.tsx +1 -1
  886. package/src/internal/form-primitives.tsx +18 -16
  887. package/src/internal/markdown-components.tsx +24 -24
  888. package/src/internal/menu.tsx +18 -18
  889. package/src/internal/scroll-area.tsx +6 -6
  890. package/src/internal/thread-card/ThreadCardShell.tsx +10 -10
  891. package/src/internal/thread-card/glyphs.tsx +3 -3
  892. package/src/internal/tooltip.tsx +9 -11
  893. package/src/internal/truncated-text.tsx +81 -0
  894. package/src/invitation/InvitationCreatedAlert.tsx +15 -15
  895. package/src/invitation/InvitationManager.tsx +96 -83
  896. package/src/invitation/InvitationRedemption.tsx +49 -49
  897. package/src/library/ResourceCountCard.tsx +7 -7
  898. package/src/library/ScopeToggle.tsx +21 -9
  899. package/src/library/VisibilityOptionRow.tsx +30 -30
  900. package/src/library/VisibilitySelector.tsx +38 -31
  901. package/src/library/__tests__/VisibilitySelector.test.tsx +0 -6
  902. package/src/manifest/ApplyManifestDialog.tsx +36 -36
  903. package/src/manifest/EditResourceYamlDialog.tsx +32 -32
  904. package/src/manifest/RedactedSecretsNotice.tsx +2 -2
  905. package/src/manifest/YamlEditor.tsx +1 -1
  906. package/src/mcp-server/McpServerConfigPanel.tsx +145 -103
  907. package/src/mcp-server/McpServerConnectDialog.tsx +120 -57
  908. package/src/mcp-server/McpServerDetailView.tsx +341 -256
  909. package/src/mcp-server/McpServerPicker.tsx +149 -57
  910. package/src/mcp-server/McpToolSelector.tsx +37 -32
  911. package/src/mcp-server/OAuthAppForm.tsx +32 -32
  912. package/src/mcp-server/OAuthCallbackHandler.tsx +11 -11
  913. package/src/mcp-server/OAuthRequiredNotice.tsx +3 -3
  914. package/src/mcp-server/StdioSandboxNotice.tsx +3 -3
  915. package/src/mcp-server/VendorApprovalBlockedNotice.tsx +221 -0
  916. package/src/mcp-server/__tests__/McpServerDetailView.test.tsx +162 -7
  917. package/src/mcp-server/__tests__/McpServerPicker.test.tsx +504 -0
  918. package/src/mcp-server/__tests__/VendorApprovalBlocked.surfaces.test.tsx +321 -0
  919. package/src/mcp-server/__tests__/VendorApprovalBlockedNotice.test.tsx +154 -0
  920. package/src/mcp-server/__tests__/useMcpServerOAuthConnect.test.tsx +159 -0
  921. package/src/mcp-server/index.ts +4 -1
  922. package/src/mcp-server/mcpServerSetupReducer.ts +24 -0
  923. package/src/mcp-server/steps/EnvironmentAuthStep.tsx +71 -71
  924. package/src/mcp-server/steps/IdentityTransportStep.tsx +94 -94
  925. package/src/mcp-server/steps/ReviewStep.tsx +17 -17
  926. package/src/mcp-server/useMcpServerOAuthConnect.ts +65 -10
  927. package/src/mcp-server/useMcpServerSetup.ts +9 -0
  928. package/src/models/HarnessSelector.tsx +8 -8
  929. package/src/models/ModelSelector.tsx +58 -58
  930. package/src/models/__tests__/ModelSelector-serviceTier.test.tsx +2 -7
  931. package/src/oauth-app/CreateOAuthAppForm.tsx +28 -28
  932. package/src/oauth-app/OAuthAppDetailPanel.tsx +51 -51
  933. package/src/oauth-app/OAuthAppListPanel.tsx +25 -17
  934. package/src/organization/CreateOrganizationForm.tsx +37 -37
  935. package/src/organization/OrgProfilePanel.tsx +65 -65
  936. package/src/organization/OrgSwitcher.tsx +33 -33
  937. package/src/platform-client/CreatePlatformClientForm.tsx +59 -59
  938. package/src/platform-client/PlatformClientDetailPanel.tsx +107 -107
  939. package/src/platform-client/PlatformClientListPanel.tsx +70 -53
  940. package/src/platform-client/PlatformClientSecretAlert.tsx +18 -18
  941. package/src/portal-container.ts +36 -9
  942. package/src/pricing-governance/BaselineEditor.tsx +49 -29
  943. package/src/pricing-governance/ModelCatalogPanel.tsx +35 -31
  944. package/src/pricing-governance/ModelGovernanceDetail.tsx +35 -35
  945. package/src/pricing-governance/OperatorAccessNotice.tsx +3 -3
  946. package/src/pricing-governance/PricingGovernanceConsole.tsx +38 -34
  947. package/src/pricing-governance/PricingGovernancePanel.tsx +31 -22
  948. package/src/pricing-governance/RetireConfirm.tsx +7 -7
  949. package/src/pricing-governance/__tests__/ModelCatalogPanel.test.tsx +37 -0
  950. package/src/pricing-governance/governance-primitives.tsx +12 -12
  951. package/src/resource-creation/CreationPicker.tsx +23 -23
  952. package/src/resource-creation/StepIndicator.tsx +17 -17
  953. package/src/resource-creation/TemplateCard.tsx +23 -23
  954. package/src/resource-creation/TemplateGallery.tsx +13 -13
  955. package/src/resource-creation/WizardNav.tsx +19 -19
  956. package/src/resource-creation/WizardShell.tsx +7 -7
  957. package/src/resource-detail/ConfirmDialog.tsx +16 -16
  958. package/src/resource-detail/ResourceActionBar.tsx +6 -6
  959. package/src/resource-detail/ResourceDetailShell.tsx +14 -14
  960. package/src/resource-detail/Section.tsx +10 -10
  961. package/src/resource-workbench/components/BulkActionBar.tsx +13 -13
  962. package/src/resource-workbench/components/ColumnHeader.tsx +9 -9
  963. package/src/resource-workbench/components/FilterBar.tsx +9 -9
  964. package/src/resource-workbench/components/ResourceAvatar.tsx +19 -19
  965. package/src/resource-workbench/components/ResourceCards.tsx +8 -8
  966. package/src/resource-workbench/components/ResourceInspector.tsx +8 -8
  967. package/src/resource-workbench/components/ResourceList.tsx +7 -7
  968. package/src/resource-workbench/components/ResourceTable.tsx +12 -12
  969. package/src/resource-workbench/components/ResourceWorkbench.tsx +42 -42
  970. package/src/resource-workbench/components/SelectionCheckbox.tsx +2 -2
  971. package/src/resource-workbench/components/StatusBadge.tsx +23 -19
  972. package/src/resource-workbench/components/ViewSwitcher.tsx +7 -7
  973. package/src/schedule/CadenceField.tsx +68 -57
  974. package/src/schedule/ScheduleDetailView.tsx +105 -105
  975. package/src/schedule/ScheduleForm.tsx +49 -49
  976. package/src/schedule/ScheduleRowActions.tsx +4 -4
  977. package/src/schedule/ScheduleRunsTable.tsx +64 -52
  978. package/src/schedule/TimeZoneField.tsx +12 -12
  979. package/src/schedule/__tests__/cadence-tooltips.layout.test.tsx +86 -0
  980. package/src/schedule/__tests__/scheduleCreation.test.tsx +0 -7
  981. package/src/schedule/scheduleColumns.tsx +7 -7
  982. package/src/session/NewSessionViewer.tsx +5 -5
  983. package/src/session/PlanEditor.tsx +46 -45
  984. package/src/session/PlanStreamingDocument.tsx +8 -8
  985. package/src/session/SessionViewer.tsx +48 -48
  986. package/src/session/SessionViewerLayout.tsx +14 -11
  987. package/src/session/__tests__/NewSessionViewer.test.tsx +4 -4
  988. package/src/session/__tests__/PlanEditor.test.tsx +2 -2
  989. package/src/session/__tests__/SessionViewerLayout.test.tsx +20 -8
  990. package/src/session/facets/ArtifactsTab.tsx +3 -3
  991. package/src/session/facets/ChangesTab.tsx +5 -5
  992. package/src/session/facets/SetupTab.tsx +26 -26
  993. package/src/session/facets/UsageTab.tsx +2 -2
  994. package/src/settings/ApiKeysSection.tsx +6 -6
  995. package/src/settings/ChannelAppsSection.tsx +6 -6
  996. package/src/settings/EnvironmentsSection.tsx +15 -15
  997. package/src/settings/IdentityProvidersSection.tsx +7 -7
  998. package/src/settings/InvitationsSection.tsx +4 -4
  999. package/src/settings/MembersSection.tsx +5 -5
  1000. package/src/settings/OAuthAppsSection.tsx +6 -6
  1001. package/src/settings/OrgProfileSection.tsx +3 -3
  1002. package/src/settings/PlatformClientsSection.tsx +7 -7
  1003. package/src/settings/UsageSection.tsx +3 -3
  1004. package/src/sharing/AgentShareList.tsx +62 -56
  1005. package/src/sharing/ShareAgentDialog.tsx +153 -154
  1006. package/src/sharing/SharedAgentChat.tsx +24 -24
  1007. package/src/sharing/__tests__/AgentShareList.test.tsx +4 -11
  1008. package/src/sidebar/SettingsSidebar.tsx +7 -7
  1009. package/src/sidebar/WorkspaceSidebar.tsx +25 -25
  1010. package/src/sidebar/__tests__/SettingsSidebar.test.tsx +3 -7
  1011. package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -11
  1012. package/src/sidebar/chrome.tsx +16 -16
  1013. package/src/skill/SkillDetailView.tsx +75 -64
  1014. package/src/skill/SkillDiffDialog.tsx +25 -25
  1015. package/src/skill/SkillFileBrowser.tsx +22 -22
  1016. package/src/skill/SkillPicker.tsx +28 -28
  1017. package/src/skill/SkillUploader.tsx +67 -67
  1018. package/src/styles.css +136 -15
  1019. package/src/switch/Switch.tsx +9 -9
  1020. package/src/switch/__tests__/Switch.test.tsx +3 -3
  1021. package/src/tabs/Tabs.tsx +11 -11
  1022. package/src/usage/AgentBreakdownList.tsx +18 -18
  1023. package/src/usage/CreditRunwayIndicator.tsx +4 -4
  1024. package/src/usage/ExportButton.tsx +8 -8
  1025. package/src/usage/HarnessSplitCard.tsx +14 -14
  1026. package/src/usage/OrgUsagePanel.tsx +71 -71
  1027. package/src/user/UserMenu.tsx +13 -13
  1028. package/src/version-history/DiffFileList.tsx +13 -13
  1029. package/src/version-history/DiffSummary.tsx +3 -3
  1030. package/src/version-history/DiffViewer.tsx +14 -14
  1031. package/src/version-history/MultiFileDiffView.tsx +6 -6
  1032. package/src/version-history/UnifiedDiffView.tsx +4 -4
  1033. package/src/version-history/VersionTimeline.tsx +21 -21
  1034. package/src/version-history/VersionTimelineEntry.tsx +48 -39
  1035. package/src/version-history/__tests__/UnifiedDiffView.test.tsx +2 -2
  1036. package/src/workflow/ApprovalFormBuilder.tsx +48 -48
  1037. package/src/workflow/BranchConditionBuilder.tsx +21 -21
  1038. package/src/workflow/CanvasContextMenu.tsx +10 -10
  1039. package/src/workflow/CanvasTransitionEdge.tsx +36 -29
  1040. package/src/workflow/CostByWorkflowChart.tsx +18 -18
  1041. package/src/workflow/ExecutionActiveTaskIndicator.tsx +76 -61
  1042. package/src/workflow/ExecutionSummaryWidget.tsx +29 -29
  1043. package/src/workflow/ExecutionTrendChart.tsx +25 -25
  1044. package/src/workflow/FailedRunsWidget.tsx +14 -14
  1045. package/src/workflow/PendingApprovalsWidget.tsx +19 -19
  1046. package/src/workflow/TaskConfigForm.tsx +32 -32
  1047. package/src/workflow/TaskPickerPopover.tsx +22 -23
  1048. package/src/workflow/ViewYamlDialog.tsx +12 -12
  1049. package/src/workflow/WorkflowAgentCallTranscript.tsx +15 -15
  1050. package/src/workflow/WorkflowApprovalList.tsx +3 -3
  1051. package/src/workflow/WorkflowArchitectDialog.tsx +80 -80
  1052. package/src/workflow/WorkflowArtifactDocument.tsx +17 -17
  1053. package/src/workflow/WorkflowCanvasEditor.tsx +108 -77
  1054. package/src/workflow/WorkflowCanvasInner.tsx +3 -3
  1055. package/src/workflow/WorkflowCodePreviewGraph.tsx +2 -2
  1056. package/src/workflow/WorkflowDashboard.tsx +2 -2
  1057. package/src/workflow/WorkflowDetailView.tsx +50 -50
  1058. package/src/workflow/WorkflowDiffGraph.tsx +5 -5
  1059. package/src/workflow/WorkflowEditorView.tsx +58 -58
  1060. package/src/workflow/WorkflowExecutionGraph.tsx +15 -15
  1061. package/src/workflow/WorkflowExecutionHeader.tsx +14 -14
  1062. package/src/workflow/WorkflowExecutionPhaseBadge.tsx +11 -11
  1063. package/src/workflow/WorkflowExecutionViewer.tsx +39 -39
  1064. package/src/workflow/WorkflowExplainDialog.tsx +30 -30
  1065. package/src/workflow/WorkflowFileReviewList.tsx +3 -3
  1066. package/src/workflow/WorkflowGraphFullscreenDialog.tsx +11 -11
  1067. package/src/workflow/WorkflowNode.tsx +14 -7
  1068. package/src/workflow/WorkflowNodePopover.tsx +15 -15
  1069. package/src/workflow/WorkflowOverviewGraph.tsx +9 -9
  1070. package/src/workflow/WorkflowOverviewSummary.tsx +12 -12
  1071. package/src/workflow/WorkflowRefinePanel.tsx +49 -49
  1072. package/src/workflow/WorkflowRepairCard.tsx +53 -53
  1073. package/src/workflow/WorkflowRunDialog.tsx +20 -20
  1074. package/src/workflow/WorkflowRunForm.tsx +19 -19
  1075. package/src/workflow/WorkflowTaskApprovalCard.tsx +19 -19
  1076. package/src/workflow/WorkflowTaskApprovalSummary.tsx +39 -32
  1077. package/src/workflow/WorkflowTaskList.tsx +13 -13
  1078. package/src/workflow/WorkflowTaskPalette.tsx +23 -23
  1079. package/src/workflow/WorkflowTaskReviewGate.tsx +10 -10
  1080. package/src/workflow/WorkflowVersionBadge.tsx +35 -20
  1081. package/src/workflow/WorkflowVersionDiffViewer.tsx +24 -24
  1082. package/src/workflow/WorkflowVersionTimeline.tsx +39 -38
  1083. package/src/workflow/WorkflowVersionsTab.tsx +7 -7
  1084. package/src/workflow/__tests__/WorkflowAgentCallTranscript.test.tsx +2 -2
  1085. package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +6 -6
  1086. package/src/workflow/__tests__/WorkflowTaskApprovalCard.test.tsx +15 -15
  1087. package/src/workflow/__tests__/WorkflowTaskApprovalSummary.test.tsx +4 -2
  1088. package/src/workflow/__tests__/node-shell.test.ts +2 -0
  1089. package/src/workflow/__tests__/structured-data-viewer.test.tsx +5 -2
  1090. package/src/workflow/__tests__/task-type-visual-registry.test.ts +2 -0
  1091. package/src/workflow/diff/DiffSummaryBar.tsx +5 -5
  1092. package/src/workflow/execution-comparison/ComparisonSummaryCards.tsx +11 -11
  1093. package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +20 -20
  1094. package/src/workflow/execution-comparison/ExecutionComparisonView.tsx +20 -18
  1095. package/src/workflow/execution-comparison/TaskComparisonTable.tsx +55 -48
  1096. package/src/workflow/execution-history/ExecutionFilterBar.tsx +12 -12
  1097. package/src/workflow/execution-history/ExecutionHistoryTable.tsx +47 -38
  1098. package/src/workflow/execution-history/FailureAnalysisPanel.tsx +18 -18
  1099. package/src/workflow/execution-history/HealthMetricsStrip.tsx +16 -16
  1100. package/src/workflow/execution-history/WorkflowExecutionHistory.tsx +1 -1
  1101. package/src/workflow/facets/WorkflowArtifactsTab.tsx +3 -3
  1102. package/src/workflow/facets/WorkflowChangesTab.tsx +8 -8
  1103. package/src/workflow/facets/WorkflowUsageTab.tsx +24 -24
  1104. package/src/workflow/inspector/EdgeInspector.tsx +14 -14
  1105. package/src/workflow/inspector/InspectorHeader.tsx +36 -27
  1106. package/src/workflow/inspector/InspectorShell.tsx +6 -6
  1107. package/src/workflow/inspector/NestedTaskList.tsx +28 -21
  1108. package/src/workflow/inspector/SentinelInspector.tsx +3 -3
  1109. package/src/workflow/inspector/WorkflowSummaryPanel.tsx +37 -35
  1110. package/src/workflow/inspector/forms/AgentCallForm.tsx +48 -48
  1111. package/src/workflow/inspector/forms/HttpCallForm.tsx +22 -22
  1112. package/src/workflow/inspector/tabs/AdvancedTab.tsx +12 -12
  1113. package/src/workflow/inspector/tabs/BranchesTab.tsx +94 -64
  1114. package/src/workflow/inspector/tabs/CatchTab.tsx +23 -23
  1115. package/src/workflow/inspector/tabs/ConfigureTab.tsx +3 -3
  1116. package/src/workflow/inspector/tabs/DataTab.tsx +6 -6
  1117. package/src/workflow/inspector/tabs/DocsTab.tsx +11 -11
  1118. package/src/workflow/inspector/tabs/IterationTab.tsx +25 -25
  1119. package/src/workflow/inspector/tabs/RuntimeTab.tsx +16 -16
  1120. package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +35 -35
  1121. package/src/workflow/instance/RunVisibilityControl.tsx +10 -10
  1122. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +45 -45
  1123. package/src/workflow/instance/WorkflowInstanceList.tsx +36 -37
  1124. package/src/workflow/instance/__tests__/WorkflowInstanceList.test.tsx +5 -10
  1125. package/src/workflow/node-shell/BranchBadge.tsx +9 -9
  1126. package/src/workflow/node-shell/DiffBadge.tsx +21 -14
  1127. package/src/workflow/node-shell/ExecutionBadge.tsx +79 -52
  1128. package/src/workflow/node-shell/NodeActions.tsx +132 -98
  1129. package/src/workflow/node-shell/NodeContent.tsx +9 -9
  1130. package/src/workflow/node-shell/NodeHandles.tsx +5 -5
  1131. package/src/workflow/node-shell/NodeShell.tsx +27 -27
  1132. package/src/workflow/picker/BranchAddPopover.tsx +16 -16
  1133. package/src/workflow/task-detail/StructuredDataViewer.tsx +37 -35
  1134. package/src/workflow/templates/WorkflowTemplateCard.tsx +32 -32
  1135. package/src/workflow/templates/WorkflowTemplateGallery.tsx +13 -13
  1136. package/src/workflow/templates/WorkflowTemplatePreview.tsx +29 -29
  1137. package/src/workflow/thread/WorkflowTaskThread.tsx +36 -36
  1138. package/src/workspace/EditorTabs.tsx +102 -85
  1139. package/src/workspace/ExplorerTree.tsx +57 -40
  1140. package/src/workspace/FileViewer.tsx +48 -40
  1141. package/src/workspace/PanelChip.tsx +32 -23
  1142. package/src/workspace/WorkspaceContentSearch.tsx +26 -26
  1143. package/src/workspace/WorkspaceEditor.tsx +63 -51
  1144. package/src/workspace/WorkspaceFileSearch.tsx +22 -22
  1145. package/src/workspace/WorkspaceSummary.tsx +25 -16
  1146. package/src/workspace/WorkspaceSurface.tsx +120 -95
  1147. package/src/workspace/__tests__/EditorTabs.test.tsx +5 -2
  1148. package/src/workspace/__tests__/FileViewer.test.tsx +1 -1
  1149. package/src/workspace/__tests__/WorkspaceContentSearch.test.tsx +5 -5
  1150. package/src/workspace/__tests__/WorkspaceFileSearch.test.tsx +3 -3
  1151. package/src/workspace/__tests__/WorkspaceSurface.test.tsx +11 -8
  1152. package/styles.css +1 -1
  1153. package/switch/Switch.js +2 -2
  1154. package/switch/Switch.js.map +1 -1
  1155. package/tabs/Tabs.js +7 -7
  1156. package/tabs/Tabs.js.map +1 -1
  1157. package/usage/AgentBreakdownList.js +4 -4
  1158. package/usage/AgentBreakdownList.js.map +1 -1
  1159. package/usage/CreditRunwayIndicator.js +1 -1
  1160. package/usage/CreditRunwayIndicator.js.map +1 -1
  1161. package/usage/ExportButton.js +2 -2
  1162. package/usage/ExportButton.js.map +1 -1
  1163. package/usage/HarnessSplitCard.js +6 -6
  1164. package/usage/HarnessSplitCard.js.map +1 -1
  1165. package/usage/OrgUsagePanel.js +15 -15
  1166. package/usage/OrgUsagePanel.js.map +1 -1
  1167. package/user/UserMenu.js +3 -3
  1168. package/user/UserMenu.js.map +1 -1
  1169. package/version-history/DiffFileList.js +8 -8
  1170. package/version-history/DiffFileList.js.map +1 -1
  1171. package/version-history/DiffSummary.js +1 -1
  1172. package/version-history/DiffSummary.js.map +1 -1
  1173. package/version-history/DiffViewer.js +11 -11
  1174. package/version-history/DiffViewer.js.map +1 -1
  1175. package/version-history/MultiFileDiffView.js +2 -2
  1176. package/version-history/MultiFileDiffView.js.map +1 -1
  1177. package/version-history/UnifiedDiffView.js +1 -1
  1178. package/version-history/UnifiedDiffView.js.map +1 -1
  1179. package/version-history/VersionTimeline.js +4 -4
  1180. package/version-history/VersionTimeline.js.map +1 -1
  1181. package/version-history/VersionTimelineEntry.d.ts.map +1 -1
  1182. package/version-history/VersionTimelineEntry.js +10 -9
  1183. package/version-history/VersionTimelineEntry.js.map +1 -1
  1184. package/workflow/ApprovalFormBuilder.js +15 -15
  1185. package/workflow/ApprovalFormBuilder.js.map +1 -1
  1186. package/workflow/BranchConditionBuilder.js +8 -8
  1187. package/workflow/BranchConditionBuilder.js.map +1 -1
  1188. package/workflow/CanvasContextMenu.js +6 -6
  1189. package/workflow/CanvasContextMenu.js.map +1 -1
  1190. package/workflow/CanvasTransitionEdge.d.ts.map +1 -1
  1191. package/workflow/CanvasTransitionEdge.js +13 -12
  1192. package/workflow/CanvasTransitionEdge.js.map +1 -1
  1193. package/workflow/CostByWorkflowChart.js +4 -4
  1194. package/workflow/CostByWorkflowChart.js.map +1 -1
  1195. package/workflow/ExecutionActiveTaskIndicator.d.ts.map +1 -1
  1196. package/workflow/ExecutionActiveTaskIndicator.js +12 -11
  1197. package/workflow/ExecutionActiveTaskIndicator.js.map +1 -1
  1198. package/workflow/ExecutionSummaryWidget.js +15 -15
  1199. package/workflow/ExecutionSummaryWidget.js.map +1 -1
  1200. package/workflow/ExecutionTrendChart.js +10 -10
  1201. package/workflow/ExecutionTrendChart.js.map +1 -1
  1202. package/workflow/FailedRunsWidget.js +3 -3
  1203. package/workflow/FailedRunsWidget.js.map +1 -1
  1204. package/workflow/PendingApprovalsWidget.js +3 -3
  1205. package/workflow/PendingApprovalsWidget.js.map +1 -1
  1206. package/workflow/TaskConfigForm.js +12 -12
  1207. package/workflow/TaskConfigForm.js.map +1 -1
  1208. package/workflow/TaskPickerPopover.js +5 -5
  1209. package/workflow/TaskPickerPopover.js.map +1 -1
  1210. package/workflow/ViewYamlDialog.js +2 -2
  1211. package/workflow/ViewYamlDialog.js.map +1 -1
  1212. package/workflow/WorkflowAgentCallTranscript.js +2 -2
  1213. package/workflow/WorkflowAgentCallTranscript.js.map +1 -1
  1214. package/workflow/WorkflowApprovalList.js +2 -2
  1215. package/workflow/WorkflowApprovalList.js.map +1 -1
  1216. package/workflow/WorkflowArchitectDialog.js +9 -9
  1217. package/workflow/WorkflowArchitectDialog.js.map +1 -1
  1218. package/workflow/WorkflowArtifactDocument.js +7 -7
  1219. package/workflow/WorkflowArtifactDocument.js.map +1 -1
  1220. package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
  1221. package/workflow/WorkflowCanvasEditor.js +13 -6
  1222. package/workflow/WorkflowCanvasEditor.js.map +1 -1
  1223. package/workflow/WorkflowCanvasInner.js +1 -1
  1224. package/workflow/WorkflowCanvasInner.js.map +1 -1
  1225. package/workflow/WorkflowCodePreviewGraph.js +2 -2
  1226. package/workflow/WorkflowCodePreviewGraph.js.map +1 -1
  1227. package/workflow/WorkflowDashboard.js +1 -1
  1228. package/workflow/WorkflowDashboard.js.map +1 -1
  1229. package/workflow/WorkflowDetailView.js +15 -15
  1230. package/workflow/WorkflowDetailView.js.map +1 -1
  1231. package/workflow/WorkflowDiffGraph.js +3 -3
  1232. package/workflow/WorkflowDiffGraph.js.map +1 -1
  1233. package/workflow/WorkflowEditorView.js +13 -13
  1234. package/workflow/WorkflowEditorView.js.map +1 -1
  1235. package/workflow/WorkflowExecutionGraph.js +6 -6
  1236. package/workflow/WorkflowExecutionGraph.js.map +1 -1
  1237. package/workflow/WorkflowExecutionHeader.js +4 -4
  1238. package/workflow/WorkflowExecutionHeader.js.map +1 -1
  1239. package/workflow/WorkflowExecutionPhaseBadge.js +9 -9
  1240. package/workflow/WorkflowExecutionPhaseBadge.js.map +1 -1
  1241. package/workflow/WorkflowExecutionViewer.js +16 -16
  1242. package/workflow/WorkflowExecutionViewer.js.map +1 -1
  1243. package/workflow/WorkflowExplainDialog.js +2 -2
  1244. package/workflow/WorkflowExplainDialog.js.map +1 -1
  1245. package/workflow/WorkflowFileReviewList.js +2 -2
  1246. package/workflow/WorkflowFileReviewList.js.map +1 -1
  1247. package/workflow/WorkflowGraphFullscreenDialog.js +1 -1
  1248. package/workflow/WorkflowGraphFullscreenDialog.js.map +1 -1
  1249. package/workflow/WorkflowNode.d.ts.map +1 -1
  1250. package/workflow/WorkflowNode.js +2 -1
  1251. package/workflow/WorkflowNode.js.map +1 -1
  1252. package/workflow/WorkflowNodePopover.js +2 -2
  1253. package/workflow/WorkflowNodePopover.js.map +1 -1
  1254. package/workflow/WorkflowOverviewGraph.js +4 -4
  1255. package/workflow/WorkflowOverviewGraph.js.map +1 -1
  1256. package/workflow/WorkflowOverviewSummary.js +8 -8
  1257. package/workflow/WorkflowOverviewSummary.js.map +1 -1
  1258. package/workflow/WorkflowRefinePanel.js +5 -5
  1259. package/workflow/WorkflowRefinePanel.js.map +1 -1
  1260. package/workflow/WorkflowRepairCard.js +5 -5
  1261. package/workflow/WorkflowRepairCard.js.map +1 -1
  1262. package/workflow/WorkflowRunDialog.js +2 -2
  1263. package/workflow/WorkflowRunDialog.js.map +1 -1
  1264. package/workflow/WorkflowRunForm.js +10 -10
  1265. package/workflow/WorkflowRunForm.js.map +1 -1
  1266. package/workflow/WorkflowTaskApprovalCard.js +1 -1
  1267. package/workflow/WorkflowTaskApprovalCard.js.map +1 -1
  1268. package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
  1269. package/workflow/WorkflowTaskApprovalSummary.js +11 -9
  1270. package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
  1271. package/workflow/WorkflowTaskList.js +5 -5
  1272. package/workflow/WorkflowTaskList.js.map +1 -1
  1273. package/workflow/WorkflowTaskPalette.js +5 -5
  1274. package/workflow/WorkflowTaskPalette.js.map +1 -1
  1275. package/workflow/WorkflowTaskReviewGate.js +3 -3
  1276. package/workflow/WorkflowTaskReviewGate.js.map +1 -1
  1277. package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
  1278. package/workflow/WorkflowVersionBadge.js +2 -1
  1279. package/workflow/WorkflowVersionBadge.js.map +1 -1
  1280. package/workflow/WorkflowVersionDiffViewer.js +12 -12
  1281. package/workflow/WorkflowVersionDiffViewer.js.map +1 -1
  1282. package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
  1283. package/workflow/WorkflowVersionTimeline.js +8 -7
  1284. package/workflow/WorkflowVersionTimeline.js.map +1 -1
  1285. package/workflow/WorkflowVersionsTab.js +1 -1
  1286. package/workflow/WorkflowVersionsTab.js.map +1 -1
  1287. package/workflow/diff/DiffSummaryBar.js +2 -2
  1288. package/workflow/diff/DiffSummaryBar.js.map +1 -1
  1289. package/workflow/execution-comparison/ComparisonSummaryCards.js +1 -1
  1290. package/workflow/execution-comparison/ComparisonSummaryCards.js.map +1 -1
  1291. package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -7
  1292. package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
  1293. package/workflow/execution-comparison/ExecutionComparisonView.d.ts.map +1 -1
  1294. package/workflow/execution-comparison/ExecutionComparisonView.js +5 -4
  1295. package/workflow/execution-comparison/ExecutionComparisonView.js.map +1 -1
  1296. package/workflow/execution-comparison/TaskComparisonTable.d.ts.map +1 -1
  1297. package/workflow/execution-comparison/TaskComparisonTable.js +23 -22
  1298. package/workflow/execution-comparison/TaskComparisonTable.js.map +1 -1
  1299. package/workflow/execution-history/ExecutionFilterBar.js +5 -5
  1300. package/workflow/execution-history/ExecutionFilterBar.js.map +1 -1
  1301. package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
  1302. package/workflow/execution-history/ExecutionHistoryTable.js +15 -13
  1303. package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
  1304. package/workflow/execution-history/FailureAnalysisPanel.js +4 -4
  1305. package/workflow/execution-history/FailureAnalysisPanel.js.map +1 -1
  1306. package/workflow/execution-history/HealthMetricsStrip.js +8 -8
  1307. package/workflow/execution-history/HealthMetricsStrip.js.map +1 -1
  1308. package/workflow/execution-history/WorkflowExecutionHistory.js +1 -1
  1309. package/workflow/execution-history/WorkflowExecutionHistory.js.map +1 -1
  1310. package/workflow/facets/WorkflowArtifactsTab.js +2 -2
  1311. package/workflow/facets/WorkflowArtifactsTab.js.map +1 -1
  1312. package/workflow/facets/WorkflowChangesTab.js +5 -5
  1313. package/workflow/facets/WorkflowChangesTab.js.map +1 -1
  1314. package/workflow/facets/WorkflowUsageTab.js +6 -6
  1315. package/workflow/facets/WorkflowUsageTab.js.map +1 -1
  1316. package/workflow/inspector/EdgeInspector.js +1 -1
  1317. package/workflow/inspector/EdgeInspector.js.map +1 -1
  1318. package/workflow/inspector/InspectorHeader.d.ts.map +1 -1
  1319. package/workflow/inspector/InspectorHeader.js +9 -7
  1320. package/workflow/inspector/InspectorHeader.js.map +1 -1
  1321. package/workflow/inspector/InspectorShell.js +2 -2
  1322. package/workflow/inspector/InspectorShell.js.map +1 -1
  1323. package/workflow/inspector/NestedTaskList.d.ts.map +1 -1
  1324. package/workflow/inspector/NestedTaskList.js +3 -2
  1325. package/workflow/inspector/NestedTaskList.js.map +1 -1
  1326. package/workflow/inspector/SentinelInspector.js +1 -1
  1327. package/workflow/inspector/SentinelInspector.js.map +1 -1
  1328. package/workflow/inspector/WorkflowSummaryPanel.d.ts.map +1 -1
  1329. package/workflow/inspector/WorkflowSummaryPanel.js +6 -5
  1330. package/workflow/inspector/WorkflowSummaryPanel.js.map +1 -1
  1331. package/workflow/inspector/forms/AgentCallForm.js +9 -9
  1332. package/workflow/inspector/forms/AgentCallForm.js.map +1 -1
  1333. package/workflow/inspector/forms/HttpCallForm.js +4 -4
  1334. package/workflow/inspector/forms/HttpCallForm.js.map +1 -1
  1335. package/workflow/inspector/tabs/AdvancedTab.js +2 -2
  1336. package/workflow/inspector/tabs/AdvancedTab.js.map +1 -1
  1337. package/workflow/inspector/tabs/BranchesTab.d.ts.map +1 -1
  1338. package/workflow/inspector/tabs/BranchesTab.js +9 -6
  1339. package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
  1340. package/workflow/inspector/tabs/CatchTab.js +2 -2
  1341. package/workflow/inspector/tabs/CatchTab.js.map +1 -1
  1342. package/workflow/inspector/tabs/ConfigureTab.js +3 -3
  1343. package/workflow/inspector/tabs/ConfigureTab.js.map +1 -1
  1344. package/workflow/inspector/tabs/DataTab.js +1 -1
  1345. package/workflow/inspector/tabs/DataTab.js.map +1 -1
  1346. package/workflow/inspector/tabs/DocsTab.js +1 -1
  1347. package/workflow/inspector/tabs/DocsTab.js.map +1 -1
  1348. package/workflow/inspector/tabs/IterationTab.js +3 -3
  1349. package/workflow/inspector/tabs/IterationTab.js.map +1 -1
  1350. package/workflow/inspector/tabs/RuntimeTab.js +9 -9
  1351. package/workflow/inspector/tabs/RuntimeTab.js.map +1 -1
  1352. package/workflow/instance/CreateWorkflowInstanceDialog.js +1 -1
  1353. package/workflow/instance/CreateWorkflowInstanceDialog.js.map +1 -1
  1354. package/workflow/instance/RunVisibilityControl.js +5 -5
  1355. package/workflow/instance/RunVisibilityControl.js.map +1 -1
  1356. package/workflow/instance/WorkflowInstanceDetailPanel.js +2 -2
  1357. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  1358. package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
  1359. package/workflow/instance/WorkflowInstanceList.js +5 -4
  1360. package/workflow/instance/WorkflowInstanceList.js.map +1 -1
  1361. package/workflow/node-shell/BranchBadge.js +3 -3
  1362. package/workflow/node-shell/BranchBadge.js.map +1 -1
  1363. package/workflow/node-shell/DiffBadge.d.ts.map +1 -1
  1364. package/workflow/node-shell/DiffBadge.js +6 -5
  1365. package/workflow/node-shell/DiffBadge.js.map +1 -1
  1366. package/workflow/node-shell/ExecutionBadge.d.ts.map +1 -1
  1367. package/workflow/node-shell/ExecutionBadge.js +11 -10
  1368. package/workflow/node-shell/ExecutionBadge.js.map +1 -1
  1369. package/workflow/node-shell/NodeActions.d.ts.map +1 -1
  1370. package/workflow/node-shell/NodeActions.js +14 -13
  1371. package/workflow/node-shell/NodeActions.js.map +1 -1
  1372. package/workflow/node-shell/NodeContent.js +5 -5
  1373. package/workflow/node-shell/NodeContent.js.map +1 -1
  1374. package/workflow/node-shell/NodeHandles.js +5 -5
  1375. package/workflow/node-shell/NodeHandles.js.map +1 -1
  1376. package/workflow/node-shell/NodeShell.js +14 -14
  1377. package/workflow/node-shell/NodeShell.js.map +1 -1
  1378. package/workflow/picker/BranchAddPopover.js +2 -2
  1379. package/workflow/picker/BranchAddPopover.js.map +1 -1
  1380. package/workflow/task-detail/StructuredDataViewer.d.ts.map +1 -1
  1381. package/workflow/task-detail/StructuredDataViewer.js +16 -12
  1382. package/workflow/task-detail/StructuredDataViewer.js.map +1 -1
  1383. package/workflow/templates/WorkflowTemplateCard.js +17 -17
  1384. package/workflow/templates/WorkflowTemplateCard.js.map +1 -1
  1385. package/workflow/templates/WorkflowTemplateGallery.js +5 -5
  1386. package/workflow/templates/WorkflowTemplateGallery.js.map +1 -1
  1387. package/workflow/templates/WorkflowTemplatePreview.js +5 -5
  1388. package/workflow/templates/WorkflowTemplatePreview.js.map +1 -1
  1389. package/workflow/thread/WorkflowTaskThread.js +16 -16
  1390. package/workflow/thread/WorkflowTaskThread.js.map +1 -1
  1391. package/workspace/EditorTabs.d.ts.map +1 -1
  1392. package/workspace/EditorTabs.js +38 -37
  1393. package/workspace/EditorTabs.js.map +1 -1
  1394. package/workspace/ExplorerTree.d.ts.map +1 -1
  1395. package/workspace/ExplorerTree.js +7 -6
  1396. package/workspace/ExplorerTree.js.map +1 -1
  1397. package/workspace/FileViewer.d.ts.map +1 -1
  1398. package/workspace/FileViewer.js +21 -20
  1399. package/workspace/FileViewer.js.map +1 -1
  1400. package/workspace/PanelChip.d.ts.map +1 -1
  1401. package/workspace/PanelChip.js +2 -1
  1402. package/workspace/PanelChip.js.map +1 -1
  1403. package/workspace/WorkspaceContentSearch.js +11 -11
  1404. package/workspace/WorkspaceContentSearch.js.map +1 -1
  1405. package/workspace/WorkspaceEditor.d.ts.map +1 -1
  1406. package/workspace/WorkspaceEditor.js +11 -10
  1407. package/workspace/WorkspaceEditor.js.map +1 -1
  1408. package/workspace/WorkspaceFileSearch.js +9 -9
  1409. package/workspace/WorkspaceFileSearch.js.map +1 -1
  1410. package/workspace/WorkspaceSummary.d.ts.map +1 -1
  1411. package/workspace/WorkspaceSummary.js +8 -3
  1412. package/workspace/WorkspaceSummary.js.map +1 -1
  1413. package/workspace/WorkspaceSurface.d.ts.map +1 -1
  1414. package/workspace/WorkspaceSurface.js +28 -27
  1415. package/workspace/WorkspaceSurface.js.map +1 -1
@@ -1,13 +1,19 @@
1
1
  import { describe, it, expect, vi, beforeAll, afterEach } from "vitest";
2
- import { render, screen, cleanup, fireEvent, within } from "@testing-library/react";
2
+ import { render, screen, cleanup, fireEvent, within, waitFor } from "@testing-library/react";
3
3
  import type { ReactNode } from "react";
4
4
  import { create } from "@bufbuild/protobuf";
5
5
  import { timestampFromDate } from "@bufbuild/protobuf/wkt";
6
6
  import { createRouterTransport, ConnectError, Code } from "@connectrpc/connect";
7
7
  import { Stigmer } from "@stigmer/sdk";
8
8
  import { McpServerQueryController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/query_pb";
9
+ import { McpServerCommandController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/command_pb";
10
+ import {
11
+ OAuthConnectionHealth,
12
+ GetOAuthGrantStatusOutputSchema,
13
+ } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
9
14
  import {
10
15
  McpServerSpecSchema,
16
+ McpServerAuthSchema,
11
17
  HttpServerConfigSchema,
12
18
  ToolApprovalPolicySchema,
13
19
  } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/spec_pb";
@@ -24,12 +30,6 @@ import { StigmerContext } from "../../context";
24
30
  import { McpServerDetailView } from "../McpServerDetailView";
25
31
  import type { UseMcpServerReturn } from "../useMcpServer";
26
32
 
27
- // The kebab menu and dialogs portal their content; without a StigmerProvider
28
- // the portal container is null — pin it to document.body like sibling tests.
29
- vi.mock("../../portal-container", () => ({
30
- useStigmerPortalContainer: () => document.body,
31
- }));
32
-
33
33
  beforeAll(() => {
34
34
  // happy-dom lacks ResizeObserver, which Base UI positioners observe.
35
35
  if (!("ResizeObserver" in globalThis)) {
@@ -92,6 +92,31 @@ function buildConnectedServer(): McpServer {
92
92
  return server;
93
93
  }
94
94
 
95
+ /** The same server as an OAuth integration (target var declared in env). */
96
+ function buildOAuthServer(): McpServer {
97
+ const server = buildBaseServer();
98
+ server.spec!.auth = create(McpServerAuthSchema, {
99
+ targetEnvVar: "API_TOKEN",
100
+ oauthOnly: true,
101
+ });
102
+ return server;
103
+ }
104
+
105
+ /**
106
+ * Grant-status fixture for the given health. `connected: true` reflects the
107
+ * two-act persistence contract: completeOAuthConnect stores the grant before
108
+ * the chained discovery runs, so a grant can exist with zero discovered tools.
109
+ */
110
+ function grantStatus(health: OAuthConnectionHealth) {
111
+ return () =>
112
+ create(GetOAuthGrantStatusOutputSchema, {
113
+ connected: true,
114
+ connectionHealth: health,
115
+ targetEnvVar: "API_TOKEN",
116
+ authMethod: "mcp_oauth",
117
+ });
118
+ }
119
+
95
120
  /** Hoisted-state bag in its settled, data-loaded shape. */
96
121
  function loadedState(server: McpServer): UseMcpServerReturn {
97
122
  return { mcpServer: server, isLoading: false, isRefetching: false, error: null, refetch: vi.fn() };
@@ -294,6 +319,136 @@ describe("McpServerDetailView — connect bar and capability tabs", () => {
294
319
  });
295
320
  });
296
321
 
322
+ describe("McpServerDetailView — signed in but undiscovered (oss#229)", () => {
323
+ it("renders the stranded state: honest status text, Discover tools action, recovery empty state", async () => {
324
+ renderView(
325
+ <McpServerDetailView
326
+ org={ORG}
327
+ slug={SLUG}
328
+ mcpServerState={loadedState(buildOAuthServer())}
329
+ />,
330
+ (router) => {
331
+ router.service(McpServerQueryController, {
332
+ getOAuthGrantStatus: grantStatus(
333
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_HEALTHY,
334
+ ),
335
+ });
336
+ },
337
+ );
338
+
339
+ // The grant is healthy, so the pill honestly reads Connected — but the
340
+ // status text must carry the tools gap, not "tokens refresh automatically".
341
+ expect(
342
+ await screen.findByText("Signed in \u2014 tools not discovered yet"),
343
+ ).toBeTruthy();
344
+ expect(screen.getByText("Connected")).toBeTruthy();
345
+ // One action in the connect bar, one in the Tools tab empty state.
346
+ expect(
347
+ screen.getAllByRole("button", { name: /^Discover tools$/ }),
348
+ ).toHaveLength(2);
349
+
350
+ // The Tools tab empty state carries its own recovery action instead of
351
+ // the dead-end "Connect to this MCP server..." copy.
352
+ const panel = screen.getByRole("tabpanel");
353
+ expect(
354
+ within(panel).getByText("Signed in, but tools haven't been discovered yet."),
355
+ ).toBeTruthy();
356
+ expect(
357
+ within(panel).getByRole("button", { name: /^Discover tools$/ }),
358
+ ).toBeTruthy();
359
+ expect(
360
+ within(panel).queryByText(
361
+ "Connect to this MCP server to discover its available tools.",
362
+ ),
363
+ ).toBeNull();
364
+ });
365
+
366
+ it("runs bare discovery from the Tools tab action — never the OAuth popup", async () => {
367
+ const connect = vi.fn(() => buildConnectedServer());
368
+ const initiateOAuthConnect = vi.fn(() => {
369
+ throw new ConnectError("must not relaunch OAuth", Code.FailedPrecondition);
370
+ });
371
+
372
+ renderView(
373
+ <McpServerDetailView
374
+ org={ORG}
375
+ slug={SLUG}
376
+ mcpServerState={loadedState(buildOAuthServer())}
377
+ />,
378
+ (router) => {
379
+ router.service(McpServerQueryController, {
380
+ getOAuthGrantStatus: grantStatus(
381
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_HEALTHY,
382
+ ),
383
+ });
384
+ router.service(McpServerCommandController, {
385
+ connect,
386
+ initiateOAuthConnect,
387
+ });
388
+ },
389
+ );
390
+
391
+ const panel = screen.getByRole("tabpanel");
392
+ const discover = await within(panel).findByRole("button", {
393
+ name: /^Discover tools$/,
394
+ });
395
+ fireEvent.click(discover);
396
+
397
+ await waitFor(() => expect(connect).toHaveBeenCalledTimes(1));
398
+ expect(initiateOAuthConnect).not.toHaveBeenCalled();
399
+ });
400
+
401
+ it("adjusts the Policies tab empty copy in the stranded state", async () => {
402
+ renderView(
403
+ <McpServerDetailView
404
+ org={ORG}
405
+ slug={SLUG}
406
+ defaultCapabilityTab="policies"
407
+ mcpServerState={loadedState(buildOAuthServer())}
408
+ />,
409
+ (router) => {
410
+ router.service(McpServerQueryController, {
411
+ getOAuthGrantStatus: grantStatus(
412
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_HEALTHY,
413
+ ),
414
+ });
415
+ },
416
+ );
417
+
418
+ expect(
419
+ await screen.findByText(
420
+ "Signed in \u2014 discover tools to auto-classify approval policies.",
421
+ ),
422
+ ).toBeTruthy();
423
+ });
424
+
425
+ it("keeps re-auth ahead of discovery when the token is expired", async () => {
426
+ renderView(
427
+ <McpServerDetailView
428
+ org={ORG}
429
+ slug={SLUG}
430
+ mcpServerState={loadedState(buildOAuthServer())}
431
+ />,
432
+ (router) => {
433
+ router.service(McpServerQueryController, {
434
+ getOAuthGrantStatus: grantStatus(
435
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED,
436
+ ),
437
+ });
438
+ },
439
+ );
440
+
441
+ // An expired grant with no tools needs a fresh sign-in first —
442
+ // discovery would fail against a dead token anyway.
443
+ expect(
444
+ await screen.findByRole("button", { name: /Sign in to connect/ }),
445
+ ).toBeTruthy();
446
+ expect(
447
+ screen.queryByRole("button", { name: /^Discover tools$/ }),
448
+ ).toBeNull();
449
+ });
450
+ });
451
+
297
452
  describe("McpServerDetailView — tour scroll anchors", () => {
298
453
  it("marks the Connection and Capabilities sections as scroll targets", () => {
299
454
  const { container } = renderView(
@@ -0,0 +1,504 @@
1
+ import { describe, it, expect, vi, beforeAll, afterEach } from "vitest";
2
+ import {
3
+ render,
4
+ screen,
5
+ cleanup,
6
+ fireEvent,
7
+ waitFor,
8
+ } from "@testing-library/react";
9
+ import { useEffect, useRef, type ReactNode } from "react";
10
+ import { create } from "@bufbuild/protobuf";
11
+ import { createRouterTransport, ConnectError, Code } from "@connectrpc/connect";
12
+ import { Stigmer } from "@stigmer/sdk";
13
+ import type { ResourceRef } from "@stigmer/sdk";
14
+ import { McpServerQueryController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/query_pb";
15
+ import { McpServerCommandController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/command_pb";
16
+ import {
17
+ OAuthConnectionHealth,
18
+ GetOAuthGrantStatusOutputSchema,
19
+ InitiateOAuthConnectOutputSchema,
20
+ CompleteOAuthConnectOutputSchema,
21
+ } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
22
+ import {
23
+ McpServerSpecSchema,
24
+ McpServerAuthSchema,
25
+ HttpServerConfigSchema,
26
+ } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/spec_pb";
27
+ import {
28
+ McpServerStatusSchema,
29
+ DiscoveredCapabilitiesSchema,
30
+ DiscoveredToolSchema,
31
+ } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/status_pb";
32
+ import { EnvVarDeclarationSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/spec_pb";
33
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
34
+ import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
35
+ import { samples } from "../../test/samples";
36
+ import { StigmerContext } from "../../context";
37
+ import { McpServerPicker } from "../McpServerPicker";
38
+ import { useMcpServerSetup } from "../useMcpServerSetup";
39
+ import * as oauthPopup from "../../internal/oauthPopup.js";
40
+
41
+ // The popup machinery is window-dependent (window.open, postMessage,
42
+ // BroadcastChannel); these tests drive the RPC chain, so replace it with
43
+ // a deterministic callback handshake. The `openOAuthPopup` call count is
44
+ // the load-bearing assertion of this suite: a discovery-leg retry must
45
+ // NEVER reopen the popup (stigmer/stigmer#418).
46
+ vi.mock("../../internal/oauthPopup.js", () => ({
47
+ openOAuthPopup: vi.fn(() => ({ location: { href: "" }, closed: false })),
48
+ popupBlockedError: vi.fn(
49
+ () => new Error("Popup was blocked by the browser."),
50
+ ),
51
+ waitForOAuthCallback: vi.fn(async () => ({
52
+ code: "auth-code",
53
+ state: "state-1",
54
+ })),
55
+ closeOAuthPopup: vi.fn(),
56
+ OAUTH_CALLBACK_MESSAGE_TYPE: "stigmer:oauth:callback",
57
+ OAUTH_BROADCAST_CHANNEL: "stigmer:oauth:broadcast",
58
+ }));
59
+
60
+ const openOAuthPopupMock = vi.mocked(oauthPopup.openOAuthPopup);
61
+
62
+ beforeAll(() => {
63
+ // happy-dom lacks ResizeObserver, which the scroll-shadow machinery
64
+ // observes.
65
+ if (!("ResizeObserver" in globalThis)) {
66
+ (globalThis as unknown as { ResizeObserver: unknown }).ResizeObserver =
67
+ class {
68
+ observe() {}
69
+ unobserve() {}
70
+ disconnect() {}
71
+ };
72
+ }
73
+ });
74
+
75
+ afterEach(() => {
76
+ cleanup();
77
+ vi.clearAllMocks();
78
+ });
79
+
80
+ const ORG = "acme";
81
+ const SLUG = "order-management-api";
82
+ const SERVER_NAME = "Order Management API";
83
+
84
+ function serverRef(slug = SLUG): ResourceRef {
85
+ return { org: ORG, slug, kind: ApiResourceKind.mcp_server };
86
+ }
87
+
88
+ /**
89
+ * An OAuth-only server before any discovery: one declared env var that is
90
+ * also the OAuth target, no discovered capabilities.
91
+ */
92
+ function buildOAuthServer(o?: { name?: string; slug?: string; id?: string }): McpServer {
93
+ const server = samples.mcpServer({
94
+ name: o?.name ?? SERVER_NAME,
95
+ org: ORG,
96
+ slug: o?.slug ?? SLUG,
97
+ id: o?.id ?? "mcp-00000000-0000-0000-0000-00000000041a",
98
+ });
99
+ server.spec = create(McpServerSpecSchema, {
100
+ description: "REST API for order lookup and return processing.",
101
+ serverType: {
102
+ case: "http",
103
+ value: create(HttpServerConfigSchema, { url: "https://api.acme.com/mcp" }),
104
+ },
105
+ env: {
106
+ API_TOKEN: create(EnvVarDeclarationSchema, {
107
+ isSecret: true,
108
+ description: "OAuth access token",
109
+ }),
110
+ },
111
+ auth: create(McpServerAuthSchema, {
112
+ targetEnvVar: "API_TOKEN",
113
+ oauthOnly: true,
114
+ }),
115
+ });
116
+ return server;
117
+ }
118
+
119
+ /** The same server after a successful discovery: three tools. */
120
+ function buildDiscoveredServer(): McpServer {
121
+ const server = buildOAuthServer();
122
+ server.status = create(McpServerStatusSchema, {
123
+ discoveredCapabilities: create(DiscoveredCapabilitiesSchema, {
124
+ tools: [
125
+ create(DiscoveredToolSchema, { name: "get_order" }),
126
+ create(DiscoveredToolSchema, { name: "list_orders" }),
127
+ create(DiscoveredToolSchema, { name: "process_return" }),
128
+ ],
129
+ }),
130
+ });
131
+ return server;
132
+ }
133
+
134
+ function grantStatusOutput(
135
+ connected: boolean,
136
+ health: OAuthConnectionHealth,
137
+ ) {
138
+ return create(GetOAuthGrantStatusOutputSchema, {
139
+ connected,
140
+ connectionHealth: health,
141
+ targetEnvVar: connected ? "API_TOKEN" : "",
142
+ authMethod: connected ? "mcp_oauth" : "",
143
+ });
144
+ }
145
+
146
+ /**
147
+ * Composes the picker with a real `useMcpServerSetup`, wired exactly the
148
+ * way `SessionComposer` wires it. The given refs are added once on mount.
149
+ */
150
+ function PickerHarness({ refs }: { readonly refs: readonly ResourceRef[] }) {
151
+ const setup = useMcpServerSetup(ORG);
152
+ const addedRef = useRef(false);
153
+ const { addServer } = setup;
154
+ useEffect(() => {
155
+ if (addedRef.current) return;
156
+ addedRef.current = true;
157
+ for (const ref of refs) void addServer(ref);
158
+ }, [refs, addServer]);
159
+
160
+ return (
161
+ <McpServerPicker
162
+ org={ORG}
163
+ setup={{
164
+ entries: setup.entries,
165
+ onServerAdded: (ref) => void setup.addServer(ref),
166
+ onServerRemoved: setup.removeServer,
167
+ onSubmitEnvVars: (ref, values, opts) =>
168
+ void setup.submitEnvVars(ref, values, opts),
169
+ onEnabledToolsChange: setup.setEnabledTools,
170
+ }}
171
+ />
172
+ );
173
+ }
174
+
175
+ /**
176
+ * Mounts the harness against a real Connect router transport. RPCs a test
177
+ * does not register fall through to Connect's `unimplemented`, which the
178
+ * SDK hooks degrade from (search list and personal-environment lookups
179
+ * are irrelevant here and stay unregistered).
180
+ */
181
+ function renderPicker(
182
+ register: Parameters<typeof createRouterTransport>[0],
183
+ refs: readonly ResourceRef[] = [serverRef()],
184
+ ) {
185
+ const client = new Stigmer({
186
+ baseUrl: "/",
187
+ getAccessToken: () => "test-token",
188
+ customTransport: createRouterTransport(register),
189
+ });
190
+ return render(
191
+ <StigmerContext.Provider value={client}>
192
+ <PickerHarness refs={refs} />
193
+ </StigmerContext.Provider>,
194
+ );
195
+ }
196
+
197
+ async function drillIntoConfigure(buttonName: RegExp) {
198
+ const configure = await screen.findByRole("button", { name: buttonName });
199
+ fireEvent.click(configure);
200
+ }
201
+
202
+ describe("McpServerPicker — discovery-leg failure (in-flow arm)", () => {
203
+ function registerFailingDiscovery() {
204
+ // Mutable fixture state: the grant flips to connected at token
205
+ // exchange (the two-act persistence contract), and discovery starts
206
+ // failing, then succeeds once `discoveryFails` is cleared.
207
+ const state = {
208
+ server: buildOAuthServer(),
209
+ grantConnected: false,
210
+ discoveryFails: true,
211
+ };
212
+ const connectSpy = vi.fn(() => {
213
+ if (state.discoveryFails) {
214
+ throw new ConnectError("discovery workflow failed", Code.Internal);
215
+ }
216
+ state.server = buildDiscoveredServer();
217
+ return state.server;
218
+ });
219
+
220
+ const register: Parameters<typeof createRouterTransport>[0] = (
221
+ router,
222
+ ) => {
223
+ router.service(McpServerQueryController, {
224
+ getByReference: () => state.server,
225
+ getOAuthGrantStatus: () =>
226
+ grantStatusOutput(
227
+ state.grantConnected,
228
+ state.grantConnected
229
+ ? OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_HEALTHY
230
+ : OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_NO_GRANT,
231
+ ),
232
+ });
233
+ router.service(McpServerCommandController, {
234
+ initiateOAuthConnect: () =>
235
+ create(InitiateOAuthConnectOutputSchema, {
236
+ authorizationUrl: "https://vendor.example/authorize",
237
+ state: "state-1",
238
+ }),
239
+ completeOAuthConnect: () => {
240
+ state.grantConnected = true;
241
+ return create(CompleteOAuthConnectOutputSchema, { connected: true });
242
+ },
243
+ connect: connectSpy,
244
+ });
245
+ };
246
+
247
+ return { state, connectSpy, register };
248
+ }
249
+
250
+ async function signInAndFailDiscovery() {
251
+ await drillIntoConfigure(new RegExp(`Configure ${SLUG}`));
252
+ fireEvent.click(
253
+ await screen.findByRole("button", {
254
+ name: `Sign in with ${SERVER_NAME}`,
255
+ }),
256
+ );
257
+ // Honest copy: the sign-in succeeded, only the discovery leg broke.
258
+ await screen.findByText(
259
+ /Signed in successfully, but tool discovery failed/,
260
+ );
261
+ }
262
+
263
+ it("renders the honest copy, stranded status, and a Discover tools action", async () => {
264
+ const { register } = registerFailingDiscovery();
265
+ renderPicker(register);
266
+
267
+ await signInAndFailDiscovery();
268
+
269
+ expect(
270
+ screen.getByText("Signed in — tools not discovered yet"),
271
+ ).toBeTruthy();
272
+ expect(
273
+ screen.getByRole("button", { name: "Discover tools" }),
274
+ ).toBeTruthy();
275
+ expect(
276
+ screen.queryByRole("button", { name: `Sign in with ${SERVER_NAME}` }),
277
+ ).toBeNull();
278
+ });
279
+
280
+ it("retries with a bare connect and never reopens the popup", async () => {
281
+ const { state, connectSpy, register } = registerFailingDiscovery();
282
+ renderPicker(register);
283
+
284
+ await signInAndFailDiscovery();
285
+ expect(openOAuthPopupMock).toHaveBeenCalledTimes(1);
286
+ expect(connectSpy).toHaveBeenCalledTimes(1);
287
+
288
+ state.discoveryFails = false;
289
+ fireEvent.click(screen.getByRole("button", { name: "Discover tools" }));
290
+
291
+ // Discovery succeeded → the entry re-resolves ready with real tools;
292
+ // the stranded state and its affordance retire themselves.
293
+ await waitFor(() =>
294
+ expect(
295
+ screen.queryByText("Signed in — tools not discovered yet"),
296
+ ).toBeNull(),
297
+ );
298
+ await screen.findByText("process_return");
299
+ expect(
300
+ screen.queryByRole("button", { name: "Discover tools" }),
301
+ ).toBeNull();
302
+ expect(connectSpy).toHaveBeenCalledTimes(2);
303
+ expect(openOAuthPopupMock).toHaveBeenCalledTimes(1);
304
+ });
305
+
306
+ it("keeps a failing bare retry honest and popup-free", async () => {
307
+ const { connectSpy, register } = registerFailingDiscovery();
308
+ renderPicker(register);
309
+
310
+ await signInAndFailDiscovery();
311
+ fireEvent.click(screen.getByRole("button", { name: "Discover tools" }));
312
+
313
+ await waitFor(() => expect(connectSpy).toHaveBeenCalledTimes(2));
314
+ // Still stranded, still honest, still no second popup.
315
+ await screen.findByText(
316
+ /Signed in successfully, but tool discovery failed/,
317
+ );
318
+ expect(
319
+ screen.getByRole("button", { name: "Discover tools" }),
320
+ ).toBeTruthy();
321
+ expect(openOAuthPopupMock).toHaveBeenCalledTimes(1);
322
+ });
323
+
324
+ it("routes a non-discovery failure back through the OAuth popup", async () => {
325
+ renderPicker((router) => {
326
+ router.service(McpServerQueryController, {
327
+ getByReference: () => buildOAuthServer(),
328
+ getOAuthGrantStatus: () =>
329
+ grantStatusOutput(
330
+ false,
331
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_NO_GRANT,
332
+ ),
333
+ });
334
+ router.service(McpServerCommandController, {
335
+ initiateOAuthConnect: () =>
336
+ create(InitiateOAuthConnectOutputSchema, {
337
+ authorizationUrl: "https://vendor.example/authorize",
338
+ state: "state-1",
339
+ }),
340
+ completeOAuthConnect: () => {
341
+ throw new ConnectError("token exchange failed", Code.Unavailable);
342
+ },
343
+ });
344
+ });
345
+
346
+ await drillIntoConfigure(new RegExp(`Configure ${SLUG}`));
347
+ const signIn = await screen.findByRole("button", {
348
+ name: `Sign in with ${SERVER_NAME}`,
349
+ });
350
+
351
+ fireEvent.click(signIn);
352
+ await screen.findByText(/token exchange failed/);
353
+ // Sign-in itself failed — no "signed in successfully" framing, and the
354
+ // action remains a full OAuth relaunch.
355
+ expect(
356
+ screen.queryByText(/Signed in successfully/),
357
+ ).toBeNull();
358
+ fireEvent.click(
359
+ screen.getByRole("button", { name: `Sign in with ${SERVER_NAME}` }),
360
+ );
361
+ await waitFor(() => expect(openOAuthPopupMock).toHaveBeenCalledTimes(2));
362
+ });
363
+ });
364
+
365
+ describe("McpServerPicker — stranded server truth (reopen/re-add arm)", () => {
366
+ it("offers Discover tools for a usable grant with zero discovered tools", async () => {
367
+ let server = buildOAuthServer();
368
+ const connectSpy = vi.fn(() => {
369
+ server = buildDiscoveredServer();
370
+ return server;
371
+ });
372
+
373
+ renderPicker((router) => {
374
+ router.service(McpServerQueryController, {
375
+ getByReference: () => server,
376
+ getOAuthGrantStatus: () =>
377
+ grantStatusOutput(
378
+ true,
379
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_HEALTHY,
380
+ ),
381
+ });
382
+ router.service(McpServerCommandController, { connect: connectSpy });
383
+ });
384
+
385
+ // Grant exists → the entry resolves ready, but with nothing discovered.
386
+ await drillIntoConfigure(new RegExp(`Configure ${SLUG}`));
387
+
388
+ await screen.findByText("Signed in — tools not discovered yet");
389
+ fireEvent.click(
390
+ await screen.findByRole("button", { name: "Discover tools" }),
391
+ );
392
+
393
+ await waitFor(() =>
394
+ expect(
395
+ screen.queryByText("Signed in — tools not discovered yet"),
396
+ ).toBeNull(),
397
+ );
398
+ await screen.findByText("process_return");
399
+ expect(connectSpy).toHaveBeenCalledTimes(1);
400
+ expect(openOAuthPopupMock).not.toHaveBeenCalled();
401
+ });
402
+
403
+ it("offers re-auth, not discovery, for an expired grant", async () => {
404
+ renderPicker((router) => {
405
+ router.service(McpServerQueryController, {
406
+ getByReference: () => buildOAuthServer(),
407
+ getOAuthGrantStatus: () =>
408
+ grantStatusOutput(
409
+ true,
410
+ OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_TOKEN_EXPIRED,
411
+ ),
412
+ });
413
+ });
414
+
415
+ await drillIntoConfigure(new RegExp(`Configure ${SLUG}`));
416
+
417
+ await screen.findByRole("button", { name: "Sign in to reconnect" });
418
+ expect(screen.queryByRole("button", { name: "Discover tools" })).toBeNull();
419
+
420
+ fireEvent.click(
421
+ screen.getByRole("button", { name: "Sign in to reconnect" }),
422
+ );
423
+ await waitFor(() => expect(openOAuthPopupMock).toHaveBeenCalledTimes(1));
424
+ });
425
+ });
426
+
427
+ describe("McpServerPicker — cross-server scoping", () => {
428
+ it("keeps server A's discovery failure out of server B's configure view", async () => {
429
+ const SLUG_B = "billing-api";
430
+ const NAME_B = "Billing API";
431
+ const serverA = buildOAuthServer();
432
+ const serverB = buildOAuthServer({
433
+ name: NAME_B,
434
+ slug: SLUG_B,
435
+ id: "mcp-00000000-0000-0000-0000-00000000041b",
436
+ });
437
+ let grantConnectedA = false;
438
+ const connectSpy = vi.fn(() => {
439
+ throw new ConnectError("discovery workflow failed", Code.Internal);
440
+ });
441
+
442
+ renderPicker(
443
+ (router) => {
444
+ router.service(McpServerQueryController, {
445
+ getByReference: (input) =>
446
+ input.slug === SLUG_B ? serverB : serverA,
447
+ getOAuthGrantStatus: (input) =>
448
+ grantStatusOutput(
449
+ input.resourceId === serverA.metadata!.id && grantConnectedA,
450
+ input.resourceId === serverA.metadata!.id && grantConnectedA
451
+ ? OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_HEALTHY
452
+ : OAuthConnectionHealth.OAUTH_CONNECTION_HEALTH_NO_GRANT,
453
+ ),
454
+ });
455
+ router.service(McpServerCommandController, {
456
+ initiateOAuthConnect: () =>
457
+ create(InitiateOAuthConnectOutputSchema, {
458
+ authorizationUrl: "https://vendor.example/authorize",
459
+ state: "state-1",
460
+ }),
461
+ completeOAuthConnect: () => {
462
+ grantConnectedA = true;
463
+ return create(CompleteOAuthConnectOutputSchema, {
464
+ connected: true,
465
+ });
466
+ },
467
+ connect: connectSpy,
468
+ });
469
+ },
470
+ [serverRef(), serverRef(SLUG_B)],
471
+ );
472
+
473
+ // Server A: sign in, discovery fails.
474
+ await drillIntoConfigure(new RegExp(`Configure ${SLUG}$`));
475
+ fireEvent.click(
476
+ await screen.findByRole("button", {
477
+ name: `Sign in with ${SERVER_NAME}`,
478
+ }),
479
+ );
480
+ await screen.findByText(
481
+ /Signed in successfully, but tool discovery failed/,
482
+ );
483
+ expect(openOAuthPopupMock).toHaveBeenCalledTimes(1);
484
+
485
+ // Back to the list, drill into server B.
486
+ fireEvent.click(
487
+ screen.getByRole("button", { name: "Back to MCP server list" }),
488
+ );
489
+ await drillIntoConfigure(new RegExp(`Configure ${SLUG_B}`));
490
+
491
+ // B must not inherit A's failure: no honest-copy banner, no stranded
492
+ // affordance — a fresh sign-in action.
493
+ await screen.findByRole("button", { name: `Sign in with ${NAME_B}` });
494
+ expect(screen.queryByText(/Signed in successfully/)).toBeNull();
495
+ expect(screen.queryByRole("button", { name: "Discover tools" })).toBeNull();
496
+
497
+ // And B's sign-in goes through the popup — proving it did not take
498
+ // A's bare-discovery retry branch.
499
+ fireEvent.click(
500
+ screen.getByRole("button", { name: `Sign in with ${NAME_B}` }),
501
+ );
502
+ await waitFor(() => expect(openOAuthPopupMock).toHaveBeenCalledTimes(2));
503
+ });
504
+ });