@stigmer/react 3.12.0 → 3.12.2
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.
- package/access/ManageAccessDialog.d.ts.map +1 -1
- package/access/ManageAccessDialog.js +7 -2
- package/access/ManageAccessDialog.js.map +1 -1
- package/activity/format-relative-time.d.ts +11 -9
- package/activity/format-relative-time.d.ts.map +1 -1
- package/activity/format-relative-time.js +11 -9
- package/activity/format-relative-time.js.map +1 -1
- package/agent/steps/CapabilitiesStep.js +5 -2
- package/agent/steps/CapabilitiesStep.js.map +1 -1
- package/agent/steps/IdentityStep.d.ts.map +1 -1
- package/agent/steps/IdentityStep.js +6 -5
- package/agent/steps/IdentityStep.js.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.js +10 -2
- package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
- package/api-key/ApiKeyCreatedAlert.d.ts.map +1 -1
- package/api-key/ApiKeyCreatedAlert.js +12 -20
- package/api-key/ApiKeyCreatedAlert.js.map +1 -1
- package/api-key/ApiKeyListPanel.d.ts.map +1 -1
- package/api-key/ApiKeyListPanel.js +3 -23
- package/api-key/ApiKeyListPanel.js.map +1 -1
- package/api-key/CreateApiKeyForm.d.ts.map +1 -1
- package/api-key/CreateApiKeyForm.js +6 -10
- package/api-key/CreateApiKeyForm.js.map +1 -1
- package/approval-defaults-context.d.ts +47 -0
- package/approval-defaults-context.d.ts.map +1 -0
- package/approval-defaults-context.js +27 -0
- package/approval-defaults-context.js.map +1 -0
- package/attachment/index.d.ts +2 -0
- package/attachment/index.d.ts.map +1 -1
- package/attachment/index.js +1 -0
- package/attachment/index.js.map +1 -1
- package/attachment/vision-preflight.d.ts +113 -0
- package/attachment/vision-preflight.d.ts.map +1 -0
- package/attachment/vision-preflight.js +143 -0
- package/attachment/vision-preflight.js.map +1 -0
- package/billing/AutoRechargeCard.d.ts.map +1 -1
- package/billing/AutoRechargeCard.js +3 -2
- package/billing/AutoRechargeCard.js.map +1 -1
- package/billing/BillingSection.d.ts.map +1 -1
- package/billing/BillingSection.js +3 -2
- package/billing/BillingSection.js.map +1 -1
- package/channel/ChannelConversationsDialog.d.ts.map +1 -1
- package/channel/ChannelConversationsDialog.js +5 -4
- package/channel/ChannelConversationsDialog.js.map +1 -1
- package/channel/ChannelCredentialsDialog.d.ts.map +1 -1
- package/channel/ChannelCredentialsDialog.js +9 -4
- package/channel/ChannelCredentialsDialog.js.map +1 -1
- package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
- package/channel/ChannelTemplatesDialog.js +5 -4
- package/channel/ChannelTemplatesDialog.js.map +1 -1
- package/channel/ConnectSlackDialog.d.ts.map +1 -1
- package/channel/ConnectSlackDialog.js +9 -4
- package/channel/ConnectSlackDialog.js.map +1 -1
- package/channel/ConnectWhatsAppDialog.d.ts.map +1 -1
- package/channel/ConnectWhatsAppDialog.js +9 -4
- package/channel/ConnectWhatsAppDialog.js.map +1 -1
- package/channel/useChannelSessions.d.ts.map +1 -1
- package/channel/useChannelSessions.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -1
- package/channel-app/ChannelAppDetailPanel.js +8 -5
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/channel-app/CreateChannelAppForm.d.ts.map +1 -1
- package/channel-app/CreateChannelAppForm.js +12 -7
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/channel-app/internal.d.ts +0 -1
- package/channel-app/internal.d.ts.map +1 -1
- package/channel-app/internal.js +5 -10
- package/channel-app/internal.js.map +1 -1
- package/composer/ComposerToolbar.js +2 -1
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/SessionComposer.d.ts +1 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +120 -13
- package/composer/SessionComposer.js.map +1 -1
- package/composer/icons.d.ts +0 -1
- package/composer/icons.d.ts.map +1 -1
- package/composer/icons.js +0 -3
- package/composer/icons.js.map +1 -1
- package/conversation/ConversationComposer.js +1 -1
- package/conversation/ConversationComposer.js.map +1 -1
- package/conversation/ConversationListPane.d.ts.map +1 -1
- package/conversation/ConversationListPane.js +3 -2
- package/conversation/ConversationListPane.js.map +1 -1
- package/cursor-accounts/MemberCoverageTable.js +3 -14
- package/cursor-accounts/MemberCoverageTable.js.map +1 -1
- package/dashboard/DashboardFailedRuns.d.ts.map +1 -1
- package/dashboard/DashboardFailedRuns.js +2 -14
- package/dashboard/DashboardFailedRuns.js.map +1 -1
- package/environment/CreateEnvironmentForm.d.ts.map +1 -1
- package/environment/CreateEnvironmentForm.js +4 -8
- package/environment/CreateEnvironmentForm.js.map +1 -1
- package/environment/EnvVarForm.d.ts.map +1 -1
- package/environment/EnvVarForm.js +2 -4
- package/environment/EnvVarForm.js.map +1 -1
- package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
- package/environment/EnvironmentVariableEditor.js +5 -7
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/execution/ArtifactApplyButton.d.ts.map +1 -1
- package/execution/ArtifactApplyButton.js +2 -4
- package/execution/ArtifactApplyButton.js.map +1 -1
- package/execution/ExecutionErrorNotice.d.ts +36 -0
- package/execution/ExecutionErrorNotice.d.ts.map +1 -0
- package/execution/ExecutionErrorNotice.js +39 -0
- package/execution/ExecutionErrorNotice.js.map +1 -0
- package/execution/FilePathLink.d.ts.map +1 -1
- package/execution/FilePathLink.js +5 -8
- package/execution/FilePathLink.js.map +1 -1
- package/execution/FileReviewCard.d.ts.map +1 -1
- package/execution/FileReviewCard.js +1 -6
- package/execution/FileReviewCard.js.map +1 -1
- package/execution/FollowUpInput.d.ts.map +1 -1
- package/execution/FollowUpInput.js +1 -3
- package/execution/FollowUpInput.js.map +1 -1
- package/execution/LivenessStatusLine.d.ts +40 -0
- package/execution/LivenessStatusLine.d.ts.map +1 -0
- package/execution/LivenessStatusLine.js +34 -0
- package/execution/LivenessStatusLine.js.map +1 -0
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +31 -3
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.d.ts +25 -0
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +51 -36
- package/execution/MessageThread.js.map +1 -1
- package/execution/SetupProgress.d.ts.map +1 -1
- package/execution/SetupProgress.js +1 -1
- package/execution/SetupProgress.js.map +1 -1
- package/execution/SubAgentSection.d.ts.map +1 -1
- package/execution/SubAgentSection.js +9 -7
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/TerminalSession.d.ts +30 -0
- package/execution/TerminalSession.d.ts.map +1 -1
- package/execution/TerminalSession.js +37 -1
- package/execution/TerminalSession.js.map +1 -1
- package/execution/ToolCallDetail.d.ts +9 -0
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +16 -0
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallItem.d.ts +20 -6
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +102 -29
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/ToolRunGroup.d.ts.map +1 -1
- package/execution/ToolRunGroup.js +11 -11
- package/execution/ToolRunGroup.js.map +1 -1
- package/execution/WriteBackCard.d.ts.map +1 -1
- package/execution/WriteBackCard.js +5 -20
- package/execution/WriteBackCard.js.map +1 -1
- package/execution/index.d.ts +6 -2
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +3 -1
- package/execution/index.js.map +1 -1
- package/execution/tool-categories.d.ts +42 -7
- package/execution/tool-categories.d.ts.map +1 -1
- package/execution/tool-categories.js +38 -4
- package/execution/tool-categories.js.map +1 -1
- package/execution/tool-presenter.d.ts +17 -1
- package/execution/tool-presenter.d.ts.map +1 -1
- package/execution/tool-presenter.js +4 -1
- package/execution/tool-presenter.js.map +1 -1
- package/execution/useArtifactInspection.d.ts.map +1 -1
- package/execution/useArtifactInspection.js +4 -7
- package/execution/useArtifactInspection.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +3 -2
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/iam-policy/GrantAccessForm.d.ts.map +1 -1
- package/iam-policy/GrantAccessForm.js +2 -4
- package/iam-policy/GrantAccessForm.js.map +1 -1
- package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
- package/iam-policy/OrgMembersPanel.js +3 -5
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/iam-policy/RoleSelector.d.ts.map +1 -1
- package/iam-policy/RoleSelector.js +7 -1
- package/iam-policy/RoleSelector.js.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.js +6 -9
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +17 -26
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderListPanel.js +2 -4
- package/identity-provider/IdentityProviderListPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +8 -7
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/identity-provider/SsoLoginPrompt.js +5 -6
- package/identity-provider/SsoLoginPrompt.js.map +1 -1
- package/index.d.ts +9 -8
- package/index.d.ts.map +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/internal/DecisionButton.d.ts.map +1 -1
- package/internal/DecisionButton.js +1 -6
- package/internal/DecisionButton.js.map +1 -1
- package/internal/SpinnerIcon.d.ts +22 -0
- package/internal/SpinnerIcon.d.ts.map +1 -0
- package/internal/SpinnerIcon.js +23 -0
- package/internal/SpinnerIcon.js.map +1 -0
- package/internal/isUnimplemented.d.ts +17 -0
- package/internal/isUnimplemented.d.ts.map +1 -0
- package/internal/isUnimplemented.js +26 -0
- package/internal/isUnimplemented.js.map +1 -0
- package/internal/select-element-text.d.ts +11 -0
- package/internal/select-element-text.d.ts.map +1 -0
- package/internal/select-element-text.js +19 -0
- package/internal/select-element-text.js.map +1 -0
- package/internal/thread-card/ThreadCardShell.d.ts +27 -10
- package/internal/thread-card/ThreadCardShell.d.ts.map +1 -1
- package/internal/thread-card/ThreadCardShell.js +11 -5
- package/internal/thread-card/ThreadCardShell.js.map +1 -1
- package/internal/thread-card/glyphs.d.ts +11 -2
- package/internal/thread-card/glyphs.d.ts.map +1 -1
- package/internal/thread-card/glyphs.js +9 -3
- package/internal/thread-card/glyphs.js.map +1 -1
- package/internal/thread-card/index.d.ts +1 -1
- package/internal/thread-card/index.d.ts.map +1 -1
- package/internal/thread-card/index.js.map +1 -1
- package/internal/useCopyFeedback.d.ts +28 -0
- package/internal/useCopyFeedback.d.ts.map +1 -0
- package/internal/useCopyFeedback.js +40 -0
- package/internal/useCopyFeedback.js.map +1 -0
- package/invitation/InvitationCreatedAlert.d.ts.map +1 -1
- package/invitation/InvitationCreatedAlert.js +12 -19
- package/invitation/InvitationCreatedAlert.js.map +1 -1
- package/invitation/InvitationManager.d.ts.map +1 -1
- package/invitation/InvitationManager.js +14 -21
- package/invitation/InvitationManager.js.map +1 -1
- package/invitation/InvitationRedemption.d.ts.map +1 -1
- package/invitation/InvitationRedemption.js +2 -4
- package/invitation/InvitationRedemption.js.map +1 -1
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +16 -27
- package/library/useExportResource.js.map +1 -1
- package/manifest/ApplyManifestDialog.js +1 -1
- package/manifest/EditResourceYamlDialog.js +1 -1
- package/mcp-server/DefinitionDriftNotice.d.ts +42 -0
- package/mcp-server/DefinitionDriftNotice.d.ts.map +1 -0
- package/mcp-server/DefinitionDriftNotice.js +52 -0
- package/mcp-server/DefinitionDriftNotice.js.map +1 -0
- package/mcp-server/McpServerConnectDialog.js +8 -4
- package/mcp-server/McpServerConnectDialog.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +47 -14
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/OAuthAppForm.d.ts.map +1 -1
- package/mcp-server/OAuthAppForm.js +2 -4
- package/mcp-server/OAuthAppForm.js.map +1 -1
- package/mcp-server/internal/definitionDrift.d.ts +39 -0
- package/mcp-server/internal/definitionDrift.d.ts.map +1 -0
- package/mcp-server/internal/definitionDrift.js +122 -0
- package/mcp-server/internal/definitionDrift.js.map +1 -0
- package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -1
- package/mcp-server/internal/mcpServerToInput.js +3 -0
- package/mcp-server/internal/mcpServerToInput.js.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.js +8 -4
- package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.js +5 -4
- package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
- package/mcp-server/useMcpServerConnect.d.ts +1 -1
- package/mcp-server/useMcpServerCredentials.d.ts +38 -10
- package/mcp-server/useMcpServerCredentials.d.ts.map +1 -1
- package/mcp-server/useMcpServerCredentials.js +50 -7
- package/mcp-server/useMcpServerCredentials.js.map +1 -1
- package/mcp-server/useMcpServerDefinitionDrift.d.ts +44 -0
- package/mcp-server/useMcpServerDefinitionDrift.d.ts.map +1 -0
- package/mcp-server/useMcpServerDefinitionDrift.js +61 -0
- package/mcp-server/useMcpServerDefinitionDrift.js.map +1 -0
- package/mcp-server/useOrgOAuthApp.d.ts +22 -0
- package/mcp-server/useOrgOAuthApp.d.ts.map +1 -1
- package/mcp-server/useOrgOAuthApp.js +39 -7
- package/mcp-server/useOrgOAuthApp.js.map +1 -1
- package/models/ModelRegistryContext.d.ts +7 -1
- package/models/ModelRegistryContext.d.ts.map +1 -1
- package/models/ModelRegistryContext.js.map +1 -1
- package/models/ModelSelector.js +9 -1
- package/models/ModelSelector.js.map +1 -1
- package/models/index.d.ts +2 -2
- package/models/index.d.ts.map +1 -1
- package/models/index.js +1 -1
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +88 -6
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +133 -27
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts +7 -1
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +3 -2
- package/models/useModelRegistry.js.map +1 -1
- package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -1
- package/oauth-app/CreateOAuthAppForm.js +4 -5
- package/oauth-app/CreateOAuthAppForm.js.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.js +5 -6
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
- package/organization/CreateOrganizationForm.d.ts.map +1 -1
- package/organization/CreateOrganizationForm.js +5 -9
- package/organization/CreateOrganizationForm.js.map +1 -1
- package/organization/OrgProfilePanel.d.ts.map +1 -1
- package/organization/OrgProfilePanel.js +7 -16
- package/organization/OrgProfilePanel.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/CreatePlatformClientForm.d.ts.map +1 -1
- package/platform-client/CreatePlatformClientForm.js +5 -6
- package/platform-client/CreatePlatformClientForm.js.map +1 -1
- package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +6 -7
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientListPanel.js +2 -4
- package/platform-client/PlatformClientListPanel.js.map +1 -1
- package/platform-client/PlatformClientSecretAlert.d.ts.map +1 -1
- package/platform-client/PlatformClientSecretAlert.js +18 -25
- package/platform-client/PlatformClientSecretAlert.js.map +1 -1
- package/provider.d.ts +34 -1
- package/provider.d.ts.map +1 -1
- package/provider.js +14 -7
- package/provider.js.map +1 -1
- package/resource-creation/WizardNav.d.ts.map +1 -1
- package/resource-creation/WizardNav.js +2 -4
- package/resource-creation/WizardNav.js.map +1 -1
- package/resource-detail/ConfirmDialog.js +1 -1
- package/resource-detail/useCopyResource.d.ts +4 -3
- package/resource-detail/useCopyResource.d.ts.map +1 -1
- package/resource-detail/useCopyResource.js +10 -19
- package/resource-detail/useCopyResource.js.map +1 -1
- package/schedule/ScheduleDetailView.d.ts.map +1 -1
- package/schedule/ScheduleDetailView.js +2 -4
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/schedule/ScheduleForm.d.ts.map +1 -1
- package/schedule/ScheduleForm.js +6 -7
- package/schedule/ScheduleForm.js.map +1 -1
- package/session/NewSessionViewer.d.ts +52 -2
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +21 -6
- package/session/NewSessionViewer.js.map +1 -1
- package/session/SessionViewer.d.ts +63 -2
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +43 -17
- package/session/SessionViewer.js.map +1 -1
- package/session/audience.d.ts +17 -0
- package/session/audience.d.ts.map +1 -1
- package/session/index.d.ts +2 -1
- package/session/index.d.ts.map +1 -1
- package/session/index.js.map +1 -1
- package/session/run-config.d.ts +50 -0
- package/session/run-config.d.ts.map +1 -0
- package/session/run-config.js +15 -0
- package/session/run-config.js.map +1 -0
- package/session/useNewSessionFlow.d.ts +11 -0
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +29 -2
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +11 -9
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +2 -0
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +18 -4
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +33 -6
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionPanel.d.ts +37 -2
- package/session/useSessionPanel.d.ts.map +1 -1
- package/session/useSessionPanel.js +44 -10
- package/session/useSessionPanel.js.map +1 -1
- package/settings/ApiKeysSection.d.ts.map +1 -1
- package/settings/ApiKeysSection.js +3 -2
- package/settings/ApiKeysSection.js.map +1 -1
- package/settings/ChannelAppsSection.d.ts.map +1 -1
- package/settings/ChannelAppsSection.js +3 -2
- package/settings/ChannelAppsSection.js.map +1 -1
- package/settings/EnvironmentsSection.js +5 -3
- package/settings/EnvironmentsSection.js.map +1 -1
- package/settings/IdentityProvidersSection.d.ts.map +1 -1
- package/settings/IdentityProvidersSection.js +3 -2
- package/settings/IdentityProvidersSection.js.map +1 -1
- package/settings/InvitationsSection.d.ts.map +1 -1
- package/settings/InvitationsSection.js +3 -1
- package/settings/InvitationsSection.js.map +1 -1
- package/settings/MembersSection.d.ts.map +1 -1
- package/settings/MembersSection.js +3 -1
- package/settings/MembersSection.js.map +1 -1
- package/settings/OAuthAppsSection.d.ts.map +1 -1
- package/settings/OAuthAppsSection.js +3 -2
- package/settings/OAuthAppsSection.js.map +1 -1
- package/settings/OrgProfileSection.d.ts.map +1 -1
- package/settings/OrgProfileSection.js +3 -2
- package/settings/OrgProfileSection.js.map +1 -1
- package/settings/PlatformClientsSection.d.ts.map +1 -1
- package/settings/PlatformClientsSection.js +3 -2
- package/settings/PlatformClientsSection.js.map +1 -1
- package/settings/UsageSection.d.ts.map +1 -1
- package/settings/UsageSection.js +3 -1
- package/settings/UsageSection.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +18 -7
- package/sharing/ShareAgentDialog.js.map +1 -1
- package/sidebar/chrome.d.ts +3 -4
- package/sidebar/chrome.d.ts.map +1 -1
- package/sidebar/chrome.js +5 -4
- package/sidebar/chrome.js.map +1 -1
- package/skill/SkillDiffDialog.js +1 -1
- package/skill/useSkillVersions.d.ts.map +1 -1
- package/skill/useSkillVersions.js +1 -9
- package/skill/useSkillVersions.js.map +1 -1
- package/src/access/ManageAccessDialog.tsx +10 -4
- package/src/activity/format-relative-time.ts +11 -9
- package/src/agent/steps/CapabilitiesStep.tsx +6 -3
- package/src/agent/steps/IdentityStep.tsx +19 -12
- package/src/agent-instance/CreateAgentInstanceDialog.tsx +17 -8
- package/src/api-key/ApiKeyCreatedAlert.tsx +10 -19
- package/src/api-key/ApiKeyListPanel.tsx +3 -39
- package/src/api-key/CreateApiKeyForm.tsx +12 -26
- package/src/approval-defaults-context.ts +56 -0
- package/src/attachment/__tests__/vision-preflight.test.ts +311 -0
- package/src/attachment/index.ts +12 -0
- package/src/attachment/vision-preflight.ts +236 -0
- package/src/billing/AutoRechargeCard.tsx +5 -4
- package/src/billing/BillingSection.tsx +4 -3
- package/src/channel/ChannelConversationsDialog.tsx +8 -4
- package/src/channel/ChannelCredentialsDialog.tsx +14 -4
- package/src/channel/ChannelTemplatesDialog.tsx +8 -4
- package/src/channel/ConnectSlackDialog.tsx +14 -4
- package/src/channel/ConnectWhatsAppDialog.tsx +14 -4
- package/src/channel/useChannelSessions.ts +3 -0
- package/src/channel-app/ChannelAppDetailPanel.tsx +15 -12
- package/src/channel-app/CreateChannelAppForm.tsx +17 -12
- package/src/channel-app/internal.tsx +5 -25
- package/src/composer/ComposerToolbar.tsx +1 -1
- package/src/composer/SessionComposer.tsx +160 -13
- package/src/composer/__tests__/SessionComposer-modelCoherence.test.tsx +220 -0
- package/src/composer/__tests__/SessionComposer-visionPreflight.test.tsx +222 -0
- package/src/composer/icons.tsx +0 -18
- package/src/conversation/ConversationComposer.tsx +1 -1
- package/src/conversation/ConversationListPane.tsx +4 -3
- package/src/cursor-accounts/MemberCoverageTable.tsx +3 -14
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +2 -10
- package/src/dashboard/DashboardFailedRuns.tsx +2 -12
- package/src/environment/CreateEnvironmentForm.tsx +8 -27
- package/src/environment/EnvVarForm.tsx +2 -18
- package/src/environment/EnvironmentVariableEditor.tsx +5 -21
- package/src/execution/ArtifactApplyButton.tsx +2 -17
- package/src/execution/ExecutionErrorNotice.tsx +99 -0
- package/src/execution/FilePathLink.tsx +5 -9
- package/src/execution/FileReviewCard.tsx +1 -20
- package/src/execution/FollowUpInput.tsx +1 -16
- package/src/execution/LivenessStatusLine.tsx +59 -0
- package/src/execution/MessageEntry.tsx +136 -25
- package/src/execution/MessageThread.tsx +84 -83
- package/src/execution/SetupProgress.tsx +5 -1
- package/src/execution/SubAgentSection.tsx +9 -20
- package/src/execution/TerminalSession.tsx +97 -10
- package/src/execution/ToolCallDetail.tsx +19 -0
- package/src/execution/ToolCallItem.tsx +157 -37
- package/src/execution/ToolRunGroup.tsx +30 -32
- package/src/execution/WriteBackCard.tsx +5 -24
- package/src/execution/__tests__/MessageEntry-copy.test.tsx +125 -0
- package/src/execution/__tests__/MessageThread.test.tsx +97 -0
- package/src/execution/__tests__/TerminalSession.test.tsx +71 -1
- package/src/execution/__tests__/ToolCallDetail.test.tsx +33 -1
- package/src/execution/__tests__/ToolCallItem.test.tsx +299 -11
- package/src/execution/__tests__/ToolRunGroup.test.tsx +41 -9
- package/src/execution/__tests__/message-thread-slots.test.tsx +92 -0
- package/src/execution/__tests__/tool-presenter.test.tsx +41 -4
- package/src/execution/index.ts +8 -2
- package/src/execution/tool-categories.ts +72 -8
- package/src/execution/tool-presenter.ts +22 -1
- package/src/execution/useArtifactInspection.ts +4 -8
- package/src/execution/useCreateAgentExecution.ts +3 -2
- package/src/iam-policy/GrantAccessForm.tsx +2 -18
- package/src/iam-policy/OrgMembersPanel.tsx +3 -19
- package/src/iam-policy/RoleSelector.tsx +8 -1
- package/src/identity-provider/CreateIdentityProviderForm.tsx +13 -31
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +24 -49
- package/src/identity-provider/IdentityProviderListPanel.tsx +2 -18
- package/src/identity-provider/IdentityProviderWizard.tsx +15 -32
- package/src/identity-provider/SsoLoginPrompt.tsx +6 -21
- package/src/index.ts +23 -1
- package/src/internal/DecisionButton.tsx +1 -20
- package/src/internal/SpinnerIcon.tsx +42 -0
- package/src/internal/__tests__/ThreadCardShell.test.tsx +43 -7
- package/src/internal/__tests__/useCopyFeedback.test.ts +92 -0
- package/src/internal/isUnimplemented.ts +26 -0
- package/src/internal/select-element-text.ts +17 -0
- package/src/internal/thread-card/ThreadCardShell.tsx +53 -21
- package/src/internal/thread-card/glyphs.tsx +24 -3
- package/src/internal/thread-card/index.ts +1 -0
- package/src/internal/useCopyFeedback.ts +61 -0
- package/src/invitation/InvitationCreatedAlert.tsx +10 -18
- package/src/invitation/InvitationManager.tsx +23 -34
- package/src/invitation/InvitationRedemption.tsx +2 -18
- package/src/library/useExportResource.ts +15 -29
- package/src/manifest/ApplyManifestDialog.tsx +1 -1
- package/src/manifest/EditResourceYamlDialog.tsx +1 -1
- package/src/mcp-server/DefinitionDriftNotice.tsx +120 -0
- package/src/mcp-server/McpServerConnectDialog.tsx +30 -12
- package/src/mcp-server/McpServerDetailView.tsx +58 -26
- package/src/mcp-server/OAuthAppForm.tsx +2 -18
- package/src/mcp-server/__tests__/DefinitionDriftNotice.test.tsx +57 -0
- package/src/mcp-server/__tests__/VendorApprovalBlocked.surfaces.test.tsx +103 -5
- package/src/mcp-server/__tests__/byoaEditionDegradation.test.tsx +323 -0
- package/src/mcp-server/__tests__/definitionDrift.test.ts +245 -0
- package/src/mcp-server/__tests__/mcpServerToInput.test.ts +201 -0
- package/src/mcp-server/__tests__/useMcpServerCredentials.test.tsx +306 -0
- package/src/mcp-server/__tests__/useMcpServerDefinitionDrift.test.tsx +173 -0
- package/src/mcp-server/internal/definitionDrift.ts +158 -0
- package/src/mcp-server/internal/mcpServerToInput.ts +3 -0
- package/src/mcp-server/steps/EnvironmentAuthStep.tsx +19 -19
- package/src/mcp-server/steps/IdentityTransportStep.tsx +24 -23
- package/src/mcp-server/useMcpServerConnect.ts +1 -1
- package/src/mcp-server/useMcpServerCredentials.ts +87 -19
- package/src/mcp-server/useMcpServerDefinitionDrift.ts +95 -0
- package/src/mcp-server/useOrgOAuthApp.ts +54 -8
- package/src/models/ModelRegistryContext.ts +7 -1
- package/src/models/ModelSelector.tsx +37 -0
- package/src/models/__tests__/ModelSelector-visionIndicator.test.tsx +129 -0
- package/src/models/__tests__/resolveDefaultModel.test.ts +115 -0
- package/src/models/__tests__/useModelRegistry.test.tsx +99 -4
- package/src/models/index.ts +2 -2
- package/src/models/registry.ts +196 -29
- package/src/models/useModelRegistry.ts +10 -2
- package/src/oauth-app/CreateOAuthAppForm.tsx +16 -31
- package/src/oauth-app/OAuthAppDetailPanel.tsx +16 -31
- package/src/organization/CreateOrganizationForm.tsx +10 -29
- package/src/organization/OrgProfilePanel.tsx +13 -44
- package/src/platform-client/CreatePlatformClientForm.tsx +9 -29
- package/src/platform-client/PlatformClientDetailPanel.tsx +10 -30
- package/src/platform-client/PlatformClientListPanel.tsx +2 -18
- package/src/platform-client/PlatformClientSecretAlert.tsx +26 -55
- package/src/provider.tsx +76 -33
- package/src/resource-creation/WizardNav.tsx +2 -18
- package/src/resource-detail/ConfirmDialog.tsx +1 -1
- package/src/resource-detail/useCopyResource.ts +17 -23
- package/src/schedule/ScheduleDetailView.tsx +2 -18
- package/src/schedule/ScheduleForm.tsx +19 -34
- package/src/session/NewSessionViewer.tsx +85 -7
- package/src/session/SessionViewer.tsx +120 -17
- package/src/session/__tests__/audienceWiring.test.tsx +76 -0
- package/src/session/__tests__/panelNegotiation.test.tsx +302 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +134 -5
- package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +74 -0
- package/src/session/__tests__/useSessionPageFlow.runConfig.test.tsx +157 -0
- package/src/session/__tests__/useSessionPanel.test.ts +114 -0
- package/src/session/audience.ts +18 -0
- package/src/session/index.ts +2 -1
- package/src/session/run-config.ts +59 -0
- package/src/session/useNewSessionFlow.ts +39 -2
- package/src/session/useSessionConversation.ts +14 -10
- package/src/session/useSessionPageFlow.ts +51 -10
- package/src/session/useSessionPanel.ts +91 -10
- package/src/settings/ApiKeysSection.tsx +4 -3
- package/src/settings/ChannelAppsSection.tsx +4 -3
- package/src/settings/EnvironmentsSection.tsx +8 -5
- package/src/settings/IdentityProvidersSection.tsx +4 -3
- package/src/settings/InvitationsSection.tsx +4 -2
- package/src/settings/MembersSection.tsx +4 -2
- package/src/settings/OAuthAppsSection.tsx +4 -3
- package/src/settings/OrgProfileSection.tsx +4 -3
- package/src/settings/PlatformClientsSection.tsx +4 -3
- package/src/settings/UsageSection.tsx +4 -2
- package/src/sharing/ShareAgentDialog.tsx +28 -10
- package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -1
- package/src/sidebar/chrome.tsx +6 -6
- package/src/skill/SkillDiffDialog.tsx +1 -1
- package/src/skill/useSkillVersions.ts +1 -11
- package/src/styles.css +43 -0
- package/src/version-history/VersionTimelineEntry.tsx +1 -21
- package/src/workflow/FailedRunsWidget.tsx +2 -9
- package/src/workflow/PendingApprovalsWidget.tsx +2 -9
- package/src/workflow/ViewYamlDialog.tsx +7 -22
- package/src/workflow/WorkflowArchitectDialog.tsx +8 -27
- package/src/workflow/WorkflowArtifactDocument.tsx +5 -9
- package/src/workflow/WorkflowCanvasEditor.tsx +39 -7
- package/src/workflow/WorkflowCanvasInner.tsx +14 -1
- package/src/workflow/WorkflowDiffGraph.tsx +7 -1
- package/src/workflow/WorkflowExecutionGraph.tsx +26 -1
- package/src/workflow/WorkflowExecutionViewer.tsx +115 -24
- package/src/workflow/WorkflowExplainDialog.tsx +8 -24
- package/src/workflow/WorkflowNode.tsx +5 -2
- package/src/workflow/WorkflowOverviewGraph.tsx +9 -1
- package/src/workflow/WorkflowRefinePanel.tsx +2 -18
- package/src/workflow/WorkflowRepairCard.tsx +2 -18
- package/src/workflow/WorkflowRunDialog.tsx +31 -24
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +2 -17
- package/src/workflow/WorkflowVersionBadge.tsx +4 -13
- package/src/workflow/WorkflowVersionTimeline.tsx +1 -25
- package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +48 -1
- package/src/workflow/__tests__/WorkflowNode.test.tsx +93 -0
- package/src/workflow/__tests__/WorkflowRunDialog.test.tsx +127 -0
- package/src/workflow/__tests__/graph-history.test.ts +103 -0
- package/src/workflow/__tests__/overview-graph.test.ts +17 -0
- package/src/workflow/__tests__/panelNegotiation.test.tsx +230 -0
- package/src/workflow/__tests__/useCanvasKeyboardShortcuts.undo.test.ts +115 -0
- package/src/workflow/__tests__/useWorkflowCanvas.dirty.test.tsx +178 -0
- package/src/workflow/__tests__/useWorkflowCanvas.drag.test.tsx +224 -0
- package/src/workflow/__tests__/useWorkflowCanvas.undo.test.tsx +133 -0
- package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +100 -0
- package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +7 -11
- package/src/workflow/execution-history/ExecutionHistoryTable.tsx +1 -25
- package/src/workflow/index.ts +1 -0
- package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +17 -8
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -1
- package/src/workflow/instance/useDeleteWorkflowInstance.ts +9 -4
- package/src/workflow/layout/registry-dimensions.ts +2 -5
- package/src/workflow/node-shell/NodeShell.tsx +4 -0
- package/src/workflow/picker/BranchAddPopover.tsx +4 -3
- package/src/workflow/task-type-visual-registry.ts +5 -3
- package/src/workflow/templates/WorkflowTemplatePreview.tsx +1 -1
- package/src/workflow/useApprovalBoundary.ts +1 -1
- package/src/workflow/useCanvasKeyboardShortcuts.ts +33 -3
- package/src/workflow/useGraphHistory.ts +22 -41
- package/src/workflow/useWorkflowCanvas.ts +126 -21
- package/src/workflow/useWorkflowExecutionPanel.ts +95 -13
- package/src/workflow/useWorkflowSave.ts +2 -15
- package/src/workflow/workflow-graph-conversions.ts +25 -3
- package/styles.css +1 -1
- package/version-history/VersionTimelineEntry.d.ts.map +1 -1
- package/version-history/VersionTimelineEntry.js +1 -23
- package/version-history/VersionTimelineEntry.js.map +1 -1
- package/workflow/CanvasTransitionEdge.d.ts +1 -1
- package/workflow/FailedRunsWidget.d.ts.map +1 -1
- package/workflow/FailedRunsWidget.js +2 -11
- package/workflow/FailedRunsWidget.js.map +1 -1
- package/workflow/PendingApprovalsWidget.d.ts.map +1 -1
- package/workflow/PendingApprovalsWidget.js +2 -11
- package/workflow/PendingApprovalsWidget.js.map +1 -1
- package/workflow/ViewYamlDialog.d.ts.map +1 -1
- package/workflow/ViewYamlDialog.js +7 -23
- package/workflow/ViewYamlDialog.js.map +1 -1
- package/workflow/WorkflowArchitectDialog.d.ts.map +1 -1
- package/workflow/WorkflowArchitectDialog.js +7 -11
- package/workflow/WorkflowArchitectDialog.js.map +1 -1
- package/workflow/WorkflowArtifactDocument.d.ts.map +1 -1
- package/workflow/WorkflowArtifactDocument.js +5 -8
- package/workflow/WorkflowArtifactDocument.js.map +1 -1
- package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
- package/workflow/WorkflowCanvasEditor.js +31 -6
- package/workflow/WorkflowCanvasEditor.js.map +1 -1
- package/workflow/WorkflowCanvasInner.d.ts +4 -2
- package/workflow/WorkflowCanvasInner.d.ts.map +1 -1
- package/workflow/WorkflowCanvasInner.js +7 -3
- package/workflow/WorkflowCanvasInner.js.map +1 -1
- package/workflow/WorkflowDiffGraph.js +6 -2
- package/workflow/WorkflowDiffGraph.js.map +1 -1
- package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
- package/workflow/WorkflowExecutionGraph.js +27 -1
- package/workflow/WorkflowExecutionGraph.js.map +1 -1
- package/workflow/WorkflowExecutionViewer.d.ts +51 -0
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
- package/workflow/WorkflowExecutionViewer.js +49 -18
- package/workflow/WorkflowExecutionViewer.js.map +1 -1
- package/workflow/WorkflowExplainDialog.d.ts.map +1 -1
- package/workflow/WorkflowExplainDialog.js +6 -8
- package/workflow/WorkflowExplainDialog.js.map +1 -1
- package/workflow/WorkflowNode.d.ts.map +1 -1
- package/workflow/WorkflowNode.js +2 -2
- package/workflow/WorkflowNode.js.map +1 -1
- package/workflow/WorkflowOverviewGraph.js +8 -2
- package/workflow/WorkflowOverviewGraph.js.map +1 -1
- package/workflow/WorkflowRefinePanel.d.ts.map +1 -1
- package/workflow/WorkflowRefinePanel.js +2 -4
- package/workflow/WorkflowRefinePanel.js.map +1 -1
- package/workflow/WorkflowRepairCard.d.ts.map +1 -1
- package/workflow/WorkflowRepairCard.js +2 -4
- package/workflow/WorkflowRepairCard.js.map +1 -1
- package/workflow/WorkflowRunDialog.d.ts +11 -1
- package/workflow/WorkflowRunDialog.d.ts.map +1 -1
- package/workflow/WorkflowRunDialog.js +18 -9
- package/workflow/WorkflowRunDialog.js.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.js +2 -4
- package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
- package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
- package/workflow/WorkflowVersionBadge.js +4 -13
- package/workflow/WorkflowVersionBadge.js.map +1 -1
- package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowVersionTimeline.js +1 -26
- package/workflow/WorkflowVersionTimeline.js.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.d.ts.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -15
- package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.js +1 -24
- package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
- package/workflow/index.d.ts +1 -1
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js.map +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.d.ts.map +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.js +10 -2
- package/workflow/instance/CreateWorkflowInstanceDialog.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/instance/useDeleteWorkflowInstance.d.ts +9 -4
- package/workflow/instance/useDeleteWorkflowInstance.d.ts.map +1 -1
- package/workflow/instance/useDeleteWorkflowInstance.js +4 -2
- package/workflow/instance/useDeleteWorkflowInstance.js.map +1 -1
- package/workflow/layout/registry-dimensions.d.ts.map +1 -1
- package/workflow/layout/registry-dimensions.js +2 -5
- package/workflow/layout/registry-dimensions.js.map +1 -1
- package/workflow/node-shell/NodeShell.js +1 -1
- package/workflow/node-shell/NodeShell.js.map +1 -1
- package/workflow/picker/BranchAddPopover.d.ts.map +1 -1
- package/workflow/picker/BranchAddPopover.js +3 -2
- package/workflow/picker/BranchAddPopover.js.map +1 -1
- package/workflow/task-type-visual-registry.d.ts.map +1 -1
- package/workflow/task-type-visual-registry.js +5 -3
- package/workflow/task-type-visual-registry.js.map +1 -1
- package/workflow/templates/WorkflowTemplatePreview.js +1 -1
- package/workflow/useApprovalBoundary.d.ts +1 -1
- package/workflow/useApprovalBoundary.js +1 -1
- package/workflow/useCanvasKeyboardShortcuts.d.ts +15 -4
- package/workflow/useCanvasKeyboardShortcuts.d.ts.map +1 -1
- package/workflow/useCanvasKeyboardShortcuts.js +25 -4
- package/workflow/useCanvasKeyboardShortcuts.js.map +1 -1
- package/workflow/useGraphHistory.d.ts +16 -9
- package/workflow/useGraphHistory.d.ts.map +1 -1
- package/workflow/useGraphHistory.js +19 -33
- package/workflow/useGraphHistory.js.map +1 -1
- package/workflow/useWorkflowCanvas.d.ts +6 -4
- package/workflow/useWorkflowCanvas.d.ts.map +1 -1
- package/workflow/useWorkflowCanvas.js +115 -23
- package/workflow/useWorkflowCanvas.js.map +1 -1
- package/workflow/useWorkflowExecutionPanel.d.ts +38 -2
- package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionPanel.js +46 -13
- package/workflow/useWorkflowExecutionPanel.js.map +1 -1
- package/workflow/useWorkflowSave.d.ts.map +1 -1
- package/workflow/useWorkflowSave.js +2 -15
- package/workflow/useWorkflowSave.js.map +1 -1
- package/workflow/workflow-graph-conversions.d.ts +19 -1
- package/workflow/workflow-graph-conversions.d.ts.map +1 -1
- package/workflow/workflow-graph-conversions.js +17 -3
- package/workflow/workflow-graph-conversions.js.map +1 -1
|
@@ -27,6 +27,9 @@ import type { OAuthConnectPhase } from "./useMcpServerOAuthConnect.js";
|
|
|
27
27
|
import { StdioSandboxNotice } from "./StdioSandboxNotice.js";
|
|
28
28
|
import { OAuthRequiredNotice } from "./OAuthRequiredNotice.js";
|
|
29
29
|
import { VendorApprovalBlockedNotice } from "./VendorApprovalBlockedNotice.js";
|
|
30
|
+
import { DefinitionDriftNotice } from "./DefinitionDriftNotice.js";
|
|
31
|
+
import { useMcpServerDefinitionDrift } from "./useMcpServerDefinitionDrift.js";
|
|
32
|
+
import { buildRefreshInput } from "./internal/definitionDrift.js";
|
|
30
33
|
import { useDisconnectOAuth } from "./useDisconnectOAuth.js";
|
|
31
34
|
import { useOrgOAuthApp } from "./useOrgOAuthApp.js";
|
|
32
35
|
import { OAuthAppForm } from "./OAuthAppForm.js";
|
|
@@ -226,6 +229,50 @@ export function McpServerDetailView({
|
|
|
226
229
|
const credentials = useMcpServerCredentials(activeOrg ?? org, mcpServer ?? null);
|
|
227
230
|
const connection = useMcpServerConnect();
|
|
228
231
|
const oauth = useMcpServerOAuthConnect();
|
|
232
|
+
|
|
233
|
+
// Definition drift is only checked for editable servers: the paired
|
|
234
|
+
// refresh writes to the resource, so read-only viewers (e.g. anyone
|
|
235
|
+
// browsing another org's marketplace row) have nothing to act on.
|
|
236
|
+
const { drift: definitionDrift } = useMcpServerDefinitionDrift(
|
|
237
|
+
editable ? (mcpServer ?? null) : null,
|
|
238
|
+
);
|
|
239
|
+
const [isRefreshingDefinition, setIsRefreshingDefinition] = useState(false);
|
|
240
|
+
const handleDefinitionRefresh = useCallback(async () => {
|
|
241
|
+
if (!mcpServer?.metadata?.id || !definitionDrift) return;
|
|
242
|
+
setIsRefreshingDefinition(true);
|
|
243
|
+
try {
|
|
244
|
+
const updated = await updateMcpServer(
|
|
245
|
+
buildRefreshInput(mcpServer, definitionDrift.template),
|
|
246
|
+
);
|
|
247
|
+
onResourceUpdated?.(updated);
|
|
248
|
+
// The update RPC does not re-run discovery (only apply does), so
|
|
249
|
+
// reconnect explicitly — the refreshed transport/auth configuration
|
|
250
|
+
// is exactly what discovery needs to be retried against.
|
|
251
|
+
const envKeys = Object.keys(updated.spec?.env ?? {});
|
|
252
|
+
await connection.connect(
|
|
253
|
+
updated.metadata!.id,
|
|
254
|
+
activeOrg ?? org,
|
|
255
|
+
undefined,
|
|
256
|
+
envKeys,
|
|
257
|
+
);
|
|
258
|
+
} catch {
|
|
259
|
+
// Update errors surface through useUpdateMcpServer's error state;
|
|
260
|
+
// a failed re-discovery lands in connection.error next to the
|
|
261
|
+
// Connect button. Either way the page stays usable.
|
|
262
|
+
} finally {
|
|
263
|
+
setIsRefreshingDefinition(false);
|
|
264
|
+
refetch();
|
|
265
|
+
}
|
|
266
|
+
}, [
|
|
267
|
+
mcpServer,
|
|
268
|
+
definitionDrift,
|
|
269
|
+
updateMcpServer,
|
|
270
|
+
onResourceUpdated,
|
|
271
|
+
connection,
|
|
272
|
+
activeOrg,
|
|
273
|
+
org,
|
|
274
|
+
refetch,
|
|
275
|
+
]);
|
|
229
276
|
const disconnectOAuth = useDisconnectOAuth();
|
|
230
277
|
const orgOAuthApp = useOrgOAuthApp(
|
|
231
278
|
mcpServer?.metadata?.id ?? null,
|
|
@@ -588,6 +635,12 @@ export function McpServerDetailView({
|
|
|
588
635
|
{/* scrollTarget: guided tours/demos bring the connect flow into view
|
|
589
636
|
(see IdentityTransportStep's "mcp-transport" for the convention). */}
|
|
590
637
|
<Section title="Connection" scrollTarget="mcp-connection">
|
|
638
|
+
<DefinitionDriftNotice
|
|
639
|
+
drift={definitionDrift}
|
|
640
|
+
onRefresh={handleDefinitionRefresh}
|
|
641
|
+
isRefreshing={isRefreshingDefinition}
|
|
642
|
+
className="stg:mb-3"
|
|
643
|
+
/>
|
|
591
644
|
<StdioSandboxNotice serverType={spec?.serverType} className="stg:mb-3" />
|
|
592
645
|
<OAuthRequiredNotice oauthOnly={spec?.auth?.oauthOnly} className="stg:mb-3" />
|
|
593
646
|
<ConnectBar
|
|
@@ -659,7 +712,7 @@ export function McpServerDetailView({
|
|
|
659
712
|
onCancel={handleByoaDialogCancel}
|
|
660
713
|
className={cn(
|
|
661
714
|
"stg:m-auto stg:w-full stg:max-w-md stg:rounded-lg stg:border stg:border-border stg:bg-background stg:p-6 stg:shadow-lg",
|
|
662
|
-
"stg:backdrop:bg-
|
|
715
|
+
"stg:backdrop:bg-backdrop",
|
|
663
716
|
)}
|
|
664
717
|
>
|
|
665
718
|
<h3 className="stg:mb-4 stg:text-base stg:font-semibold stg:text-foreground">
|
|
@@ -710,7 +763,7 @@ export function McpServerDetailView({
|
|
|
710
763
|
</Section>
|
|
711
764
|
|
|
712
765
|
{(editable || (spec && spec.tags.length > 0)) && (
|
|
713
|
-
<TagsSection tags={spec?.tags ?? []} editable={editable}
|
|
766
|
+
<TagsSection tags={spec?.tags ?? []} editable={editable} />
|
|
714
767
|
)}
|
|
715
768
|
</ResourceDetailShell>
|
|
716
769
|
{access.dialog}
|
|
@@ -1836,34 +1889,13 @@ function EnvSection({
|
|
|
1836
1889
|
function TagsSection({
|
|
1837
1890
|
tags,
|
|
1838
1891
|
editable,
|
|
1839
|
-
isSaving,
|
|
1840
|
-
saveMcpField,
|
|
1841
1892
|
}: {
|
|
1842
1893
|
readonly tags: readonly string[];
|
|
1843
1894
|
readonly editable?: boolean;
|
|
1844
|
-
readonly isSaving?: boolean;
|
|
1845
|
-
readonly saveMcpField?: <K extends keyof import("@stigmer/sdk").McpServerInput>(
|
|
1846
|
-
field: K,
|
|
1847
|
-
value: import("@stigmer/sdk").McpServerInput[K],
|
|
1848
|
-
) => Promise<boolean>;
|
|
1849
1895
|
}) {
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
);
|
|
1854
|
-
|
|
1855
|
-
const handleTagsSave = useCallback(
|
|
1856
|
-
async (rows: KeyValueRow[]) => {
|
|
1857
|
-
if (!saveMcpField) return false;
|
|
1858
|
-
// Tags are stored as string[] on the spec but not directly on McpServerInput.
|
|
1859
|
-
// For now, save them through the full input by modifying the spec.
|
|
1860
|
-
// Tags don't have a direct field on McpServerInput, so we handle this at
|
|
1861
|
-
// a higher level if needed. For now, show read-only in edit mode.
|
|
1862
|
-
return false;
|
|
1863
|
-
},
|
|
1864
|
-
[saveMcpField],
|
|
1865
|
-
);
|
|
1866
|
-
|
|
1896
|
+
// Display-only by design: tags are curated marketplace categorization,
|
|
1897
|
+
// not per-connection state. (McpServerInput does carry `tags`, so an
|
|
1898
|
+
// editing affordance is unblocked if the product ever wants one.)
|
|
1867
1899
|
return (
|
|
1868
1900
|
<Section title="Tags" count={tags.length}>
|
|
1869
1901
|
<div className="stg:flex stg:flex-wrap stg:gap-1.5 stg:p-3">
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useId, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
6
7
|
|
|
7
8
|
/** Props for {@link OAuthAppForm}. */
|
|
8
9
|
export interface OAuthAppFormProps {
|
|
@@ -214,7 +215,7 @@ export function OAuthAppForm({
|
|
|
214
215
|
"stg:disabled:pointer-events-none stg:disabled:opacity-40",
|
|
215
216
|
)}
|
|
216
217
|
>
|
|
217
|
-
{isSubmitting && <SpinnerIcon />}
|
|
218
|
+
{isSubmitting && <SpinnerIcon size={12} />}
|
|
218
219
|
Save
|
|
219
220
|
</button>
|
|
220
221
|
</div>
|
|
@@ -285,20 +286,3 @@ function EyeOffIcon() {
|
|
|
285
286
|
);
|
|
286
287
|
}
|
|
287
288
|
|
|
288
|
-
function SpinnerIcon() {
|
|
289
|
-
return (
|
|
290
|
-
<svg
|
|
291
|
-
width="12"
|
|
292
|
-
height="12"
|
|
293
|
-
viewBox="0 0 16 16"
|
|
294
|
-
fill="none"
|
|
295
|
-
stroke="currentColor"
|
|
296
|
-
strokeWidth="2"
|
|
297
|
-
strokeLinecap="round"
|
|
298
|
-
className="stg:animate-spin"
|
|
299
|
-
aria-hidden="true"
|
|
300
|
-
>
|
|
301
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
302
|
-
</svg>
|
|
303
|
-
);
|
|
304
|
-
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, it, expect, vi, afterEach } from "vitest";
|
|
2
|
+
import { render, screen, cleanup } from "@testing-library/react";
|
|
3
|
+
import userEvent from "@testing-library/user-event";
|
|
4
|
+
import { samples } from "../../test/samples";
|
|
5
|
+
import { DefinitionDriftNotice } from "../DefinitionDriftNotice";
|
|
6
|
+
import type { McpServerDefinitionDrift } from "../useMcpServerDefinitionDrift";
|
|
7
|
+
|
|
8
|
+
afterEach(cleanup);
|
|
9
|
+
|
|
10
|
+
function drift(): McpServerDefinitionDrift {
|
|
11
|
+
return {
|
|
12
|
+
template: samples.mcpServer({ name: "Monday", org: "stigmer", slug: "monday" }),
|
|
13
|
+
changedFields: ["headers", "authentication"],
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
describe("DefinitionDriftNotice", () => {
|
|
18
|
+
it("renders null when there is no drift", () => {
|
|
19
|
+
const { container } = render(
|
|
20
|
+
<DefinitionDriftNotice drift={null} onRefresh={() => {}} isRefreshing={false} />,
|
|
21
|
+
);
|
|
22
|
+
expect(container.firstChild).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("says the configuration DIFFERS (never 'was updated') and names the fields", () => {
|
|
26
|
+
render(
|
|
27
|
+
<DefinitionDriftNotice drift={drift()} onRefresh={() => {}} isRefreshing={false} />,
|
|
28
|
+
);
|
|
29
|
+
const notice = screen.getByRole("status");
|
|
30
|
+
// Honest copy: slug-matching is a heuristic, so the notice must state
|
|
31
|
+
// a verifiable present-tense fact, not invent an update history.
|
|
32
|
+
expect(notice.textContent).toContain("differs from the current marketplace definition");
|
|
33
|
+
expect(notice.textContent).not.toContain("was updated");
|
|
34
|
+
expect(notice.textContent).toContain("request headers, authentication");
|
|
35
|
+
// The refresh promise: what survives.
|
|
36
|
+
expect(notice.textContent).toContain("enabled tools and approval pins are kept");
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("fires onRefresh from the action button", async () => {
|
|
40
|
+
const onRefresh = vi.fn();
|
|
41
|
+
render(
|
|
42
|
+
<DefinitionDriftNotice drift={drift()} onRefresh={onRefresh} isRefreshing={false} />,
|
|
43
|
+
);
|
|
44
|
+
await userEvent.click(screen.getByRole("button", { name: "Refresh configuration" }));
|
|
45
|
+
expect(onRefresh).toHaveBeenCalledTimes(1);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("disables the button and shows progress while refreshing", () => {
|
|
49
|
+
render(
|
|
50
|
+
<DefinitionDriftNotice drift={drift()} onRefresh={() => {}} isRefreshing />,
|
|
51
|
+
);
|
|
52
|
+
const button = screen.getByRole<HTMLButtonElement>("button", {
|
|
53
|
+
name: "Refreshing…",
|
|
54
|
+
});
|
|
55
|
+
expect(button.disabled).toBe(true);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -5,7 +5,10 @@ import { create } from "@bufbuild/protobuf";
|
|
|
5
5
|
import { createRouterTransport } from "@connectrpc/connect";
|
|
6
6
|
import { Stigmer } from "@stigmer/sdk";
|
|
7
7
|
import { McpServerQueryController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/query_pb";
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
GetOAuthGrantStatusOutputSchema,
|
|
10
|
+
GetOrgOAuthAppOutputSchema,
|
|
11
|
+
} from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
9
12
|
import {
|
|
10
13
|
McpServerSpecSchema,
|
|
11
14
|
McpServerAuthSchema,
|
|
@@ -14,7 +17,6 @@ import {
|
|
|
14
17
|
import {
|
|
15
18
|
McpServerStatusSchema,
|
|
16
19
|
OAuthStatusSchema,
|
|
17
|
-
OAuthAppSource,
|
|
18
20
|
ValidationState,
|
|
19
21
|
} from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/status_pb";
|
|
20
22
|
import { VendorApprovalStatus } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/spec_pb";
|
|
@@ -53,8 +55,11 @@ const DOCS_URL = "https://vendor.example.com/oauth-docs";
|
|
|
53
55
|
|
|
54
56
|
/**
|
|
55
57
|
* An oauth_only vendor-OAuth server whose platform OAuth app is blocked.
|
|
56
|
-
* `withAppRef` controls the BYOA arm: with a ref and
|
|
57
|
-
*
|
|
58
|
+
* `withAppRef` controls the BYOA arm: with a ref and no org override,
|
|
59
|
+
* `canBringOwnApp` is true. The org-override state itself comes from the
|
|
60
|
+
* `getOrgOAuthApp` transport handler (client-side derivation,
|
|
61
|
+
* stigmer-cloud#401) — status.oauth_status carries only the
|
|
62
|
+
* vendor-approval fields, matching what backends actually populate.
|
|
58
63
|
*/
|
|
59
64
|
function buildBlockedOAuthOnlyServer(options: {
|
|
60
65
|
status: VendorApprovalStatus;
|
|
@@ -86,7 +91,6 @@ function buildBlockedOAuthOnlyServer(options: {
|
|
|
86
91
|
oauthStatus: create(OAuthStatusSchema, {
|
|
87
92
|
vendorApprovalStatus: options.status,
|
|
88
93
|
vendorApprovalDocsUrl: DOCS_URL,
|
|
89
|
-
effectiveOauthSource: OAuthAppSource.OAUTH_APP_SOURCE_PLATFORM,
|
|
90
94
|
}),
|
|
91
95
|
});
|
|
92
96
|
return server;
|
|
@@ -96,6 +100,15 @@ function noGrant() {
|
|
|
96
100
|
return create(GetOAuthGrantStatusOutputSchema, { connected: false });
|
|
97
101
|
}
|
|
98
102
|
|
|
103
|
+
// BYOA affordances render only where the org-override surface exists —
|
|
104
|
+
// canBringOwnApp is gated on a getOrgOAuthApp capability probe
|
|
105
|
+
// (stigmer/stigmer#558), so the BYOA arms of these tests must register the
|
|
106
|
+
// RPC to simulate the hosted edition. The OSS arm (probe UNIMPLEMENTED →
|
|
107
|
+
// affordances hidden) is pinned in byoaEditionDegradation.test.tsx.
|
|
108
|
+
function noOverride() {
|
|
109
|
+
return create(GetOrgOAuthAppOutputSchema, { hasOverride: false });
|
|
110
|
+
}
|
|
111
|
+
|
|
99
112
|
function renderWithTransport(
|
|
100
113
|
ui: ReactNode,
|
|
101
114
|
register: Parameters<typeof createRouterTransport>[0] = () => {},
|
|
@@ -128,6 +141,7 @@ describe("McpServerConnectDialog — oauth_only + vendor-blocked", () => {
|
|
|
128
141
|
router.service(McpServerQueryController, {
|
|
129
142
|
getByReference: () => server,
|
|
130
143
|
getOAuthGrantStatus: noGrant,
|
|
144
|
+
getOrgOAuthApp: noOverride,
|
|
131
145
|
});
|
|
132
146
|
},
|
|
133
147
|
);
|
|
@@ -199,6 +213,48 @@ describe("McpServerConnectDialog — oauth_only + vendor-blocked", () => {
|
|
|
199
213
|
});
|
|
200
214
|
expect(docs.getAttribute("href")).toBe(DOCS_URL);
|
|
201
215
|
});
|
|
216
|
+
|
|
217
|
+
it("enables sign-in with the org's own app when a BYOA override is active", async () => {
|
|
218
|
+
// The platform app is still vendor-blocked, but the org brought its
|
|
219
|
+
// own approved app — the block describes an app sign-in won't use
|
|
220
|
+
// (stigmer-cloud#401). Before the client-side derivation this state
|
|
221
|
+
// was a dead end: disabled button AND no way forward.
|
|
222
|
+
renderWithTransport(
|
|
223
|
+
<McpServerConnectDialog
|
|
224
|
+
org={ORG}
|
|
225
|
+
slug={SLUG}
|
|
226
|
+
open
|
|
227
|
+
onClose={() => {}}
|
|
228
|
+
/>,
|
|
229
|
+
(router) => {
|
|
230
|
+
router.service(McpServerQueryController, {
|
|
231
|
+
getByReference: () =>
|
|
232
|
+
buildBlockedOAuthOnlyServer({
|
|
233
|
+
status: VendorApprovalStatus.PENDING,
|
|
234
|
+
withAppRef: true,
|
|
235
|
+
}),
|
|
236
|
+
getOAuthGrantStatus: noGrant,
|
|
237
|
+
getOrgOAuthApp: () =>
|
|
238
|
+
create(GetOrgOAuthAppOutputSchema, {
|
|
239
|
+
hasOverride: true,
|
|
240
|
+
oauthAppId: "oauthapp_01acme",
|
|
241
|
+
clientId: "acme-client-id",
|
|
242
|
+
}),
|
|
243
|
+
});
|
|
244
|
+
},
|
|
245
|
+
);
|
|
246
|
+
|
|
247
|
+
const signIn = await screen.findByRole("button", {
|
|
248
|
+
name: "Sign in with your app",
|
|
249
|
+
});
|
|
250
|
+
expect((signIn as HTMLButtonElement).disabled).toBe(false);
|
|
251
|
+
// The blocked notice describes the platform app — suppressed while
|
|
252
|
+
// the org's own app is the effective one.
|
|
253
|
+
expect(screen.queryByText(/awaiting vendor approval/)).toBeNull();
|
|
254
|
+
expect(
|
|
255
|
+
screen.queryByRole("button", { name: "Use your own OAuth app" }),
|
|
256
|
+
).toBeNull();
|
|
257
|
+
});
|
|
202
258
|
});
|
|
203
259
|
|
|
204
260
|
// ---------------------------------------------------------------------------
|
|
@@ -231,6 +287,7 @@ describe("McpServerDetailView — oauth_only + vendor-blocked", () => {
|
|
|
231
287
|
(router) => {
|
|
232
288
|
router.service(McpServerQueryController, {
|
|
233
289
|
getOAuthGrantStatus: noGrant,
|
|
290
|
+
getOrgOAuthApp: noOverride,
|
|
234
291
|
});
|
|
235
292
|
},
|
|
236
293
|
);
|
|
@@ -252,6 +309,47 @@ describe("McpServerDetailView — oauth_only + vendor-blocked", () => {
|
|
|
252
309
|
// extraction into the shared notice.
|
|
253
310
|
expect(cta.getAttribute("data-cursor-target")).toBe("byoa-cta-button");
|
|
254
311
|
});
|
|
312
|
+
|
|
313
|
+
it("enables 'Sign in with your app' when the org's BYOA override is active", async () => {
|
|
314
|
+
// The vendor block gates the PLATFORM app; with the org's own app
|
|
315
|
+
// effective, sign-in must be enabled and the BYOA CTA retired
|
|
316
|
+
// (stigmer-cloud#401 — the signal these gates key on never fired).
|
|
317
|
+
renderWithTransport(
|
|
318
|
+
<McpServerDetailView
|
|
319
|
+
org={ORG}
|
|
320
|
+
slug={SLUG}
|
|
321
|
+
mcpServerState={loadedState(
|
|
322
|
+
buildBlockedOAuthOnlyServer({
|
|
323
|
+
status: VendorApprovalStatus.PENDING,
|
|
324
|
+
withAppRef: true,
|
|
325
|
+
}),
|
|
326
|
+
)}
|
|
327
|
+
/>,
|
|
328
|
+
(router) => {
|
|
329
|
+
router.service(McpServerQueryController, {
|
|
330
|
+
getOAuthGrantStatus: noGrant,
|
|
331
|
+
getOrgOAuthApp: () =>
|
|
332
|
+
create(GetOrgOAuthAppOutputSchema, {
|
|
333
|
+
hasOverride: true,
|
|
334
|
+
oauthAppId: "oauthapp_01acme",
|
|
335
|
+
clientId: "acme-client-id",
|
|
336
|
+
}),
|
|
337
|
+
});
|
|
338
|
+
},
|
|
339
|
+
);
|
|
340
|
+
|
|
341
|
+
const signIn = await screen.findByRole("button", {
|
|
342
|
+
name: "Sign in with your app",
|
|
343
|
+
});
|
|
344
|
+
expect((signIn as HTMLButtonElement).disabled).toBe(false);
|
|
345
|
+
expect(screen.getByText("Using your OAuth app")).toBeTruthy();
|
|
346
|
+
// The blocked banner and BYOA offer describe the platform app —
|
|
347
|
+
// both retire while the override is active.
|
|
348
|
+
expect(screen.queryByText(/awaiting vendor approval/)).toBeNull();
|
|
349
|
+
expect(
|
|
350
|
+
screen.queryByRole("button", { name: "Use your own OAuth app" }),
|
|
351
|
+
).toBeNull();
|
|
352
|
+
});
|
|
255
353
|
});
|
|
256
354
|
|
|
257
355
|
// ---------------------------------------------------------------------------
|