@stigmer/react 3.40.1 → 3.41.1-dev.20261003094357.g39d6aa748646
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/README.md +2 -1
- package/access/ManageAccessButton.d.ts +1 -1
- package/access/ManageAccessButton.js +1 -1
- package/access/ManageAccessDialog.d.ts +1 -1
- package/access/ManageAccessDialog.js +2 -2
- package/access/ManageAccessDialog.js.map +1 -1
- package/access/types.d.ts +1 -1
- package/agent/AgentDetailView.d.ts.map +1 -1
- package/agent/AgentDetailView.js +2 -1
- package/agent/AgentDetailView.js.map +1 -1
- package/api-key/ApiKeyListPanel.d.ts.map +1 -1
- package/api-key/ApiKeyListPanel.js +2 -1
- package/api-key/ApiKeyListPanel.js.map +1 -1
- package/attachment/AttachmentImageLightbox.d.ts.map +1 -1
- package/attachment/AttachmentImageLightbox.js.map +1 -1
- package/billing/AutoRechargeCard.d.ts +3 -3
- package/billing/AutoRechargeCard.d.ts.map +1 -1
- package/billing/AutoRechargeCard.js +4 -4
- package/billing/AutoRechargeCard.js.map +1 -1
- package/billing/BillingSection.d.ts.map +1 -1
- package/billing/BillingSection.js +7 -6
- package/billing/BillingSection.js.map +1 -1
- package/billing/ChangePlanDialog.d.ts.map +1 -1
- package/billing/ChangePlanDialog.js +13 -1
- package/billing/ChangePlanDialog.js.map +1 -1
- package/billing/CreditLedgerTable.d.ts +3 -3
- package/billing/CreditLedgerTable.d.ts.map +1 -1
- package/billing/CreditLedgerTable.js +3 -3
- package/billing/CreditLedgerTable.js.map +1 -1
- package/billing/CreditPackGrid.d.ts +1 -1
- package/billing/CreditPackGrid.js +1 -1
- package/billing/PaymentMethodCard.d.ts +1 -1
- package/billing/PaymentMethodCard.js +1 -1
- package/billing/PlanSection.d.ts +3 -3
- package/billing/PlanSection.d.ts.map +1 -1
- package/billing/PlanSection.js +4 -3
- package/billing/PlanSection.js.map +1 -1
- package/billing/ProviderKeysSection.d.ts +33 -0
- package/billing/ProviderKeysSection.d.ts.map +1 -0
- package/billing/ProviderKeysSection.js +143 -0
- package/billing/ProviderKeysSection.js.map +1 -0
- package/billing/UpgradeNotice.d.ts.map +1 -1
- package/billing/UpgradeNotice.js +1 -0
- package/billing/UpgradeNotice.js.map +1 -1
- package/billing/index.d.ts +4 -0
- package/billing/index.d.ts.map +1 -1
- package/billing/index.js +2 -0
- package/billing/index.js.map +1 -1
- package/billing/plan-features.d.ts +3 -2
- package/billing/plan-features.d.ts.map +1 -1
- package/billing/plan-features.js +5 -4
- package/billing/plan-features.js.map +1 -1
- package/billing/useBillingAccount.d.ts +4 -4
- package/billing/useBillingAccount.d.ts.map +1 -1
- package/billing/useBillingAccount.js +7 -7
- package/billing/useBillingAccount.js.map +1 -1
- package/billing/useBillingUsageReport.d.ts +4 -4
- package/billing/useBillingUsageReport.d.ts.map +1 -1
- package/billing/useBillingUsageReport.js +7 -7
- package/billing/useBillingUsageReport.js.map +1 -1
- package/billing/useChangePlan.d.ts +2 -2
- package/billing/useChangePlan.d.ts.map +1 -1
- package/billing/useChangePlan.js +4 -4
- package/billing/useChangePlan.js.map +1 -1
- package/billing/useCreateBillingPortalSession.d.ts +2 -2
- package/billing/useCreateBillingPortalSession.d.ts.map +1 -1
- package/billing/useCreateBillingPortalSession.js +3 -3
- package/billing/useCreateBillingPortalSession.js.map +1 -1
- package/billing/useCreateCheckoutSession.d.ts +2 -2
- package/billing/useCreateCheckoutSession.d.ts.map +1 -1
- package/billing/useCreateCheckoutSession.js +2 -2
- package/billing/useCreateCheckoutSession.js.map +1 -1
- package/billing/useCreatePaymentMethodSetupSession.d.ts +1 -1
- package/billing/useCreatePaymentMethodSetupSession.d.ts.map +1 -1
- package/billing/useCreatePaymentMethodSetupSession.js +2 -2
- package/billing/useCreatePaymentMethodSetupSession.js.map +1 -1
- package/billing/useCreditLedger.d.ts +4 -4
- package/billing/useCreditLedger.d.ts.map +1 -1
- package/billing/useCreditLedger.js +7 -7
- package/billing/useCreditLedger.js.map +1 -1
- package/billing/useCustomerModelPricing.d.ts +4 -4
- package/billing/useCustomerModelPricing.d.ts.map +1 -1
- package/billing/useCustomerModelPricing.js +6 -6
- package/billing/useCustomerModelPricing.js.map +1 -1
- package/billing/useEntitlements.d.ts +2 -2
- package/billing/useEntitlements.d.ts.map +1 -1
- package/billing/useEntitlements.js +4 -4
- package/billing/useEntitlements.js.map +1 -1
- package/billing/usePeriodEstimate.d.ts +1 -1
- package/billing/usePeriodEstimate.d.ts.map +1 -1
- package/billing/usePeriodEstimate.js +3 -3
- package/billing/usePeriodEstimate.js.map +1 -1
- package/billing/useProviderKeys.d.ts +67 -0
- package/billing/useProviderKeys.d.ts.map +1 -0
- package/billing/useProviderKeys.js +61 -0
- package/billing/useProviderKeys.js.map +1 -0
- package/billing/useSetAutoRechargeConfig.d.ts +2 -2
- package/billing/useSetAutoRechargeConfig.d.ts.map +1 -1
- package/billing/useSetAutoRechargeConfig.js +2 -2
- package/billing/useSetAutoRechargeConfig.js.map +1 -1
- package/billing/useSubscription.d.ts +3 -3
- package/billing/useSubscription.d.ts.map +1 -1
- package/billing/useSubscription.js +7 -7
- package/billing/useSubscription.js.map +1 -1
- package/channel/AgentChannelsPanel.d.ts.map +1 -1
- package/channel/AgentChannelsPanel.js +11 -9
- package/channel/AgentChannelsPanel.js.map +1 -1
- package/channel/connect/ServingAppSection.js +1 -1
- package/channel/connect/ServingAppSection.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.d.ts +2 -2
- package/channel-app/ChannelAppDetailPanel.js +17 -10
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/channel-app/ChannelAppListPanel.d.ts +2 -2
- package/channel-app/ChannelAppListPanel.d.ts.map +1 -1
- package/channel-app/ChannelAppListPanel.js +2 -1
- package/channel-app/ChannelAppListPanel.js.map +1 -1
- package/channel-app/CreateChannelAppForm.js +1 -1
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/channel-app/copy.d.ts +3 -3
- package/channel-app/copy.js +3 -3
- package/channel-app/internal.d.ts +9 -0
- package/channel-app/internal.d.ts.map +1 -1
- package/channel-app/internal.js +9 -0
- package/channel-app/internal.js.map +1 -1
- package/channel-app/slackAppSetup.d.ts +3 -24
- package/channel-app/slackAppSetup.d.ts.map +1 -1
- package/channel-app/slackAppSetup.js +6 -3
- package/channel-app/slackAppSetup.js.map +1 -1
- package/channel-app/whatsappAppSetup.d.ts +3 -27
- package/channel-app/whatsappAppSetup.d.ts.map +1 -1
- package/channel-app/whatsappAppSetup.js +5 -2
- package/channel-app/whatsappAppSetup.js.map +1 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +5 -9
- package/composer/SessionComposer.js.map +1 -1
- package/cursor-accounts/CursorAccountEditor.js +3 -3
- package/cursor-accounts/CursorAccountEditor.js.map +1 -1
- package/cursor-accounts/CursorAccountsConsole.js +3 -3
- package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
- package/dashboard/OperationalDashboard.d.ts +1 -4
- package/dashboard/OperationalDashboard.d.ts.map +1 -1
- package/dashboard/OperationalDashboard.js +1 -3
- package/dashboard/OperationalDashboard.js.map +1 -1
- package/dashboard/useDashboardSummary.d.ts +1 -3
- package/dashboard/useDashboardSummary.d.ts.map +1 -1
- package/dashboard/useDashboardSummary.js +1 -1
- package/dashboard/useDashboardSummary.js.map +1 -1
- package/environment/EnvironmentListPanel.d.ts.map +1 -1
- package/environment/EnvironmentListPanel.js +2 -1
- package/environment/EnvironmentListPanel.js.map +1 -1
- package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
- package/environment/EnvironmentVariableEditor.js +3 -2
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/environment/index.d.ts +1 -1
- package/environment/index.d.ts.map +1 -1
- package/environment/index.js +1 -1
- package/environment/index.js.map +1 -1
- package/environment/systemEnvVars.d.ts +4 -63
- package/environment/systemEnvVars.d.ts.map +1 -1
- package/environment/systemEnvVars.js +21 -113
- package/environment/systemEnvVars.js.map +1 -1
- package/execution/ArtifactFileContent.d.ts.map +1 -1
- package/execution/ArtifactFileContent.js +2 -1
- package/execution/ArtifactFileContent.js.map +1 -1
- package/execution/McpToolDetail.d.ts.map +1 -1
- package/execution/McpToolDetail.js +2 -1
- package/execution/McpToolDetail.js.map +1 -1
- package/execution/RecalledMemoriesCard.js +1 -1
- package/execution/ResultView.d.ts.map +1 -1
- package/execution/ResultView.js +2 -1
- package/execution/ResultView.js.map +1 -1
- package/execution/TerminalSession.js +1 -1
- package/execution/TerminalSession.js.map +1 -1
- package/execution/ThreadSkeleton.d.ts.map +1 -1
- package/execution/ThreadSkeleton.js +2 -1
- package/execution/ThreadSkeleton.js.map +1 -1
- package/execution/file-path-resolver.d.ts.map +1 -1
- package/execution/file-path-resolver.js +3 -2
- package/execution/file-path-resolver.js.map +1 -1
- package/execution/sandbox-path-normalizer.d.ts +0 -11
- package/execution/sandbox-path-normalizer.d.ts.map +1 -1
- package/execution/sandbox-path-normalizer.js +2 -1
- package/execution/sandbox-path-normalizer.js.map +1 -1
- package/github/parseGitUrl.d.ts.map +1 -1
- package/github/parseGitUrl.js +16 -4
- package/github/parseGitUrl.js.map +1 -1
- package/iam-policy/GrantAccessForm.d.ts +3 -3
- package/iam-policy/GrantAccessForm.d.ts.map +1 -1
- package/iam-policy/GrantAccessForm.js +3 -3
- package/iam-policy/GrantAccessForm.js.map +1 -1
- package/iam-policy/OrgMembersPanel.d.ts +3 -3
- package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
- package/iam-policy/OrgMembersPanel.js +5 -4
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/iam-policy/PeopleWithAccess.d.ts +2 -2
- package/iam-policy/PeopleWithAccess.d.ts.map +1 -1
- package/iam-policy/PeopleWithAccess.js +2 -2
- package/iam-policy/PeopleWithAccess.js.map +1 -1
- package/iam-policy/PrincipalPicker.d.ts +2 -2
- package/iam-policy/PrincipalPicker.d.ts.map +1 -1
- package/iam-policy/PrincipalPicker.js +2 -2
- package/iam-policy/PrincipalPicker.js.map +1 -1
- package/iam-policy/SharePanel.d.ts +3 -3
- package/iam-policy/SharePanel.d.ts.map +1 -1
- package/iam-policy/SharePanel.js +3 -3
- package/iam-policy/SharePanel.js.map +1 -1
- package/iam-policy/useCheckPermission.d.ts +4 -1
- package/iam-policy/useCheckPermission.d.ts.map +1 -1
- package/iam-policy/useCheckPermission.js +4 -1
- package/iam-policy/useCheckPermission.js.map +1 -1
- package/iam-policy/useCreateIamPolicy.d.ts +1 -1
- package/iam-policy/useCreateIamPolicy.js +1 -1
- package/iam-policy/useDeleteIamPolicy.d.ts +1 -1
- package/iam-policy/useDeleteIamPolicy.js +1 -1
- package/iam-policy/useGrantableRoles.d.ts +1 -1
- package/iam-policy/useGrantableRoles.js +1 -1
- package/iam-policy/useGranteeCandidates.d.ts +3 -3
- package/iam-policy/useGranteeCandidates.d.ts.map +1 -1
- package/iam-policy/useGranteeCandidates.js +2 -2
- package/iam-policy/useGranteeCandidates.js.map +1 -1
- package/iam-policy/useOwnerAssignment.d.ts +2 -2
- package/iam-policy/useOwnerAssignment.d.ts.map +1 -1
- package/iam-policy/useOwnerAssignment.js +3 -3
- package/iam-policy/useOwnerAssignment.js.map +1 -1
- package/iam-policy/usePrincipalsCount.d.ts +4 -4
- package/iam-policy/usePrincipalsCount.d.ts.map +1 -1
- package/iam-policy/usePrincipalsCount.js +7 -7
- package/iam-policy/usePrincipalsCount.js.map +1 -1
- package/iam-policy/useResourceAccess.d.ts +1 -1
- package/iam-policy/useResourceAccess.js +1 -1
- package/iam-policy/useRevokeOrgAccess.d.ts +11 -9
- package/iam-policy/useRevokeOrgAccess.d.ts.map +1 -1
- package/iam-policy/useRevokeOrgAccess.js +6 -6
- package/iam-policy/useRevokeOrgAccess.js.map +1 -1
- package/identity-account/AccountPreferencesPanel.d.ts +6 -0
- package/identity-account/AccountPreferencesPanel.d.ts.map +1 -1
- package/identity-account/AccountPreferencesPanel.js +35 -3
- package/identity-account/AccountPreferencesPanel.js.map +1 -1
- package/identity-account/useAccountExecutionDefaults.d.ts +1 -1
- package/identity-account/useAccountExecutionDefaults.d.ts.map +1 -1
- package/identity-account/useAccountExecutionDefaults.js +2 -3
- package/identity-account/useAccountExecutionDefaults.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +4 -4
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderListPanel.js +2 -1
- package/identity-provider/IdentityProviderListPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +1 -1
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/identity-provider/SsoLoginPrompt.js +2 -1
- package/identity-provider/SsoLoginPrompt.js.map +1 -1
- package/identity-provider/useIdentityProviderList.d.ts +2 -2
- package/identity-provider/useIdentityProviderList.js +2 -2
- package/index.d.ts +4 -4
- package/index.d.ts.map +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/inline-edit/InlineEditImage.d.ts +4 -0
- package/inline-edit/InlineEditImage.d.ts.map +1 -1
- package/inline-edit/InlineEditImage.js +12 -11
- package/inline-edit/InlineEditImage.js.map +1 -1
- package/inline-edit/InlineEditText.d.ts +4 -0
- package/inline-edit/InlineEditText.d.ts.map +1 -1
- package/inline-edit/InlineEditText.js +12 -11
- package/inline-edit/InlineEditText.js.map +1 -1
- package/inline-edit/InlineEditTextarea.d.ts +4 -0
- package/inline-edit/InlineEditTextarea.d.ts.map +1 -1
- package/inline-edit/InlineEditTextarea.js +11 -16
- package/inline-edit/InlineEditTextarea.js.map +1 -1
- package/inline-edit/useInlineDraft.d.ts +26 -0
- package/inline-edit/useInlineDraft.d.ts.map +1 -0
- package/inline-edit/useInlineDraft.js +61 -0
- package/inline-edit/useInlineDraft.js.map +1 -0
- package/internal/DialogShell.d.ts +21 -0
- package/internal/DialogShell.d.ts.map +1 -1
- package/internal/DialogShell.js +51 -4
- package/internal/DialogShell.js.map +1 -1
- package/internal/LoadingRegion.d.ts +35 -0
- package/internal/LoadingRegion.d.ts.map +1 -0
- package/internal/LoadingRegion.js +33 -0
- package/internal/LoadingRegion.js.map +1 -0
- package/internal/UnknownPublicAddressNotice.d.ts +20 -0
- package/internal/UnknownPublicAddressNotice.d.ts.map +1 -0
- package/internal/UnknownPublicAddressNotice.js +19 -0
- package/internal/UnknownPublicAddressNotice.js.map +1 -0
- package/internal/features.js +2 -2
- package/internal/features.js.map +1 -1
- package/internal/markdown-components.d.ts.map +1 -1
- package/internal/markdown-components.js +18 -4
- package/internal/markdown-components.js.map +1 -1
- package/internal/trim.d.ts +7 -0
- package/internal/trim.d.ts.map +1 -0
- package/internal/trim.js +12 -0
- package/internal/trim.js.map +1 -0
- package/invitation/InvitationManager.d.ts.map +1 -1
- package/invitation/InvitationManager.js +2 -1
- package/invitation/InvitationManager.js.map +1 -1
- package/invitation/InvitationRedemption.d.ts.map +1 -1
- package/invitation/InvitationRedemption.js +5 -4
- package/invitation/InvitationRedemption.js.map +1 -1
- package/invitation/useInvitationPreview.d.ts +1 -1
- package/invitation/useInvitationPreview.js +1 -1
- package/library/InstanceVisibilitySelector.d.ts +1 -1
- package/library/InstanceVisibilitySelector.d.ts.map +1 -1
- package/library/ResourceVisibilityControl.d.ts +6 -3
- package/library/ResourceVisibilityControl.d.ts.map +1 -1
- package/library/ResourceVisibilityControl.js +7 -4
- package/library/ResourceVisibilityControl.js.map +1 -1
- package/library/VisibilitySelector.d.ts +2 -2
- package/library/VisibilitySelector.d.ts.map +1 -1
- package/library/VisibilitySelector.js +1 -1
- package/licenses/LicenseDetail.d.ts.map +1 -1
- package/licenses/LicenseDetail.js +3 -3
- package/licenses/LicenseDetail.js.map +1 -1
- package/licenses/LicenseIssueForm.js +7 -7
- package/licenses/LicenseIssueForm.js.map +1 -1
- package/licenses/license-draft.d.ts +1 -1
- package/licenses/license-draft.d.ts.map +1 -1
- package/licenses/license-draft.js +3 -3
- package/licenses/license-draft.js.map +1 -1
- package/licenses/license-format.d.ts +7 -5
- package/licenses/license-format.d.ts.map +1 -1
- package/licenses/license-format.js +2 -4
- package/licenses/license-format.js.map +1 -1
- package/mcp-server/McpServerConnectDialog.js +4 -5
- package/mcp-server/McpServerConnectDialog.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +5 -7
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +2 -6
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/McpToolSelector.js +1 -1
- package/mcp-server/McpToolSelector.js.map +1 -1
- package/mcp-server/useMcpServerConnect.d.ts +14 -25
- package/mcp-server/useMcpServerConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerConnect.js +7 -19
- package/mcp-server/useMcpServerConnect.js.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.d.ts +1 -3
- package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.js +6 -19
- package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
- package/memory/MemoryListPanel.d.ts.map +1 -1
- package/memory/MemoryListPanel.js +2 -1
- package/memory/MemoryListPanel.js.map +1 -1
- package/models/HarnessSelector.d.ts.map +1 -1
- package/models/HarnessSelector.js +1 -2
- package/models/HarnessSelector.js.map +1 -1
- package/models/ModelSelector.d.ts +1 -1
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +1 -7
- package/models/ModelSelector.js.map +1 -1
- package/models/harness.d.ts +10 -6
- package/models/harness.d.ts.map +1 -1
- package/models/harness.js +35 -28
- package/models/harness.js.map +1 -1
- package/models/index.d.ts +1 -1
- package/models/index.d.ts.map +1 -1
- package/models/index.js +1 -1
- package/models/index.js.map +1 -1
- package/oauth-app/OAuthAppListPanel.d.ts.map +1 -1
- package/oauth-app/OAuthAppListPanel.js +2 -1
- package/oauth-app/OAuthAppListPanel.js.map +1 -1
- package/organization/OrgPreferencesPanel.d.ts +3 -3
- package/organization/OrgPreferencesPanel.d.ts.map +1 -1
- package/organization/OrgPreferencesPanel.js +19 -6
- package/organization/OrgPreferencesPanel.js.map +1 -1
- package/organization/OrgProfilePanel.d.ts +3 -3
- package/organization/OrgProfilePanel.d.ts.map +1 -1
- package/organization/OrgProfilePanel.js +8 -7
- package/organization/OrgProfilePanel.js.map +1 -1
- package/organization/index.d.ts +1 -0
- package/organization/index.d.ts.map +1 -1
- package/organization/index.js +1 -0
- package/organization/index.js.map +1 -1
- package/organization/useFollowSessionOrganization.d.ts +9 -0
- package/organization/useFollowSessionOrganization.d.ts.map +1 -0
- package/organization/useFollowSessionOrganization.js +52 -0
- package/organization/useFollowSessionOrganization.js.map +1 -0
- package/package.json +5 -5
- package/plan-catalog/plan-draft.js +3 -3
- package/plan-catalog/plan-draft.js.map +1 -1
- package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientListPanel.js +2 -1
- package/platform-client/PlatformClientListPanel.js.map +1 -1
- package/plugin/PluginDetailView.d.ts.map +1 -1
- package/plugin/PluginDetailView.js +2 -1
- package/plugin/PluginDetailView.js.map +1 -1
- package/plugin/useMcpServerReadiness.js +2 -2
- package/plugin/useMcpServerReadiness.js.map +1 -1
- package/portal-container.d.ts +8 -0
- package/portal-container.d.ts.map +1 -1
- package/portal-container.js +8 -0
- package/portal-container.js.map +1 -1
- package/provider-standing/ProviderStandingConsole.js +1 -1
- package/provider.d.ts +31 -2
- package/provider.d.ts.map +1 -1
- package/provider.js +7 -3
- package/provider.js.map +1 -1
- package/public-base-url-context.d.ts +35 -0
- package/public-base-url-context.d.ts.map +1 -0
- package/public-base-url-context.js +63 -0
- package/public-base-url-context.js.map +1 -0
- package/resource-workbench/components/SelectionCheckbox.js +1 -1
- package/resource-workbench/components/SelectionCheckbox.js.map +1 -1
- package/schedule/ScheduleDetailView.d.ts.map +1 -1
- package/schedule/ScheduleDetailView.js +2 -1
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/session/SessionViewer.d.ts +7 -2
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +7 -2
- package/session/SessionViewer.js.map +1 -1
- package/session/useLocalSessionWorker.d.ts +19 -3
- package/session/useLocalSessionWorker.d.ts.map +1 -1
- package/session/useLocalSessionWorker.js +37 -4
- package/session/useLocalSessionWorker.js.map +1 -1
- package/session/useSessionConversation.d.ts +10 -1
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +5 -3
- package/session/useSessionConversation.js.map +1 -1
- package/settings/ChannelAppsSection.d.ts +4 -4
- package/settings/ChannelAppsSection.js +4 -4
- package/settings/EnvironmentsSection.d.ts.map +1 -1
- package/settings/EnvironmentsSection.js +2 -1
- package/settings/EnvironmentsSection.js.map +1 -1
- package/settings/MembersSection.js +2 -2
- package/settings/MembersSection.js.map +1 -1
- package/settings/OrgPreferencesSection.js +1 -1
- package/settings/OrgPreferencesSection.js.map +1 -1
- package/settings/OrgProfileSection.js +1 -1
- package/settings/OrgProfileSection.js.map +1 -1
- package/settings/ProviderKeysSection.d.ts +3 -0
- package/settings/ProviderKeysSection.d.ts.map +1 -0
- package/settings/ProviderKeysSection.js +3 -0
- package/settings/ProviderKeysSection.js.map +1 -0
- package/settings/TeamsSection.js +1 -1
- package/settings/TeamsSection.js.map +1 -1
- package/settings/UsageSection.js +1 -1
- package/settings/UsageSection.js.map +1 -1
- package/settings/index.d.ts +2 -0
- package/settings/index.d.ts.map +1 -1
- package/settings/index.js +1 -0
- package/settings/index.js.map +1 -1
- package/settings/settings-nav.d.ts.map +1 -1
- package/settings/settings-nav.js +2 -1
- package/settings/settings-nav.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +14 -9
- package/sharing/ShareAgentDialog.js.map +1 -1
- package/sharing/SharedAgentChat.d.ts.map +1 -1
- package/sharing/SharedAgentChat.js +2 -1
- package/sharing/SharedAgentChat.js.map +1 -1
- package/sharing/useCanCreateAgentShare.d.ts +3 -1
- package/sharing/useCanCreateAgentShare.d.ts.map +1 -1
- package/sharing/useCanCreateAgentShare.js +5 -3
- package/sharing/useCanCreateAgentShare.js.map +1 -1
- package/sharing/useSaveAgentShare.d.ts +1 -1
- package/sharing/useSaveAgentShare.js +1 -1
- package/sidebar/WorkspaceSidebar.d.ts.map +1 -1
- package/sidebar/WorkspaceSidebar.js +2 -1
- package/sidebar/WorkspaceSidebar.js.map +1 -1
- package/skill/SkillDetailView.d.ts.map +1 -1
- package/skill/SkillDetailView.js +2 -1
- package/skill/SkillDetailView.js.map +1 -1
- package/skill/SkillDiffDialog.d.ts.map +1 -1
- package/skill/SkillDiffDialog.js +2 -1
- package/skill/SkillDiffDialog.js.map +1 -1
- package/skill/SkillFileBrowser.d.ts.map +1 -1
- package/skill/SkillFileBrowser.js +2 -1
- package/skill/SkillFileBrowser.js.map +1 -1
- package/src/access/ManageAccessButton.tsx +1 -1
- package/src/access/ManageAccessDialog.tsx +2 -2
- package/src/access/types.ts +1 -1
- package/src/agent/AgentDetailView.tsx +4 -4
- package/src/api-key/ApiKeyListPanel.tsx +4 -4
- package/src/attachment/AttachmentImageLightbox.tsx +3 -4
- package/src/billing/AutoRechargeCard.tsx +5 -5
- package/src/billing/BillingSection.tsx +10 -9
- package/src/billing/ChangePlanDialog.tsx +14 -2
- package/src/billing/CreditLedgerTable.tsx +4 -4
- package/src/billing/CreditPackGrid.tsx +1 -1
- package/src/billing/PaymentMethodCard.tsx +1 -1
- package/src/billing/PlanSection.tsx +6 -5
- package/src/billing/ProviderKeysSection.tsx +324 -0
- package/src/billing/UpgradeNotice.tsx +1 -0
- package/src/billing/index.ts +9 -0
- package/src/billing/plan-features.ts +5 -4
- package/src/billing/useBillingAccount.ts +7 -7
- package/src/billing/useBillingUsageReport.ts +7 -7
- package/src/billing/useChangePlan.ts +6 -6
- package/src/billing/useCreateBillingPortalSession.ts +4 -4
- package/src/billing/useCreateCheckoutSession.ts +3 -3
- package/src/billing/useCreatePaymentMethodSetupSession.ts +3 -3
- package/src/billing/useCreditLedger.ts +7 -7
- package/src/billing/useCustomerModelPricing.ts +7 -7
- package/src/billing/useEntitlements.ts +5 -5
- package/src/billing/usePeriodEstimate.ts +4 -4
- package/src/billing/useProviderKeys.ts +129 -0
- package/src/billing/useSetAutoRechargeConfig.ts +3 -3
- package/src/billing/useSubscription.ts +7 -7
- package/src/channel/AgentChannelsPanel.tsx +11 -9
- package/src/channel/connect/ServingAppSection.tsx +1 -1
- package/src/channel-app/ChannelAppDetailPanel.tsx +37 -20
- package/src/channel-app/ChannelAppListPanel.tsx +6 -6
- package/src/channel-app/CreateChannelAppForm.tsx +0 -1
- package/src/channel-app/copy.ts +3 -3
- package/src/channel-app/internal.tsx +21 -0
- package/src/channel-app/slackAppSetup.ts +6 -3
- package/src/channel-app/whatsappAppSetup.ts +5 -2
- package/src/composer/SessionComposer.tsx +5 -14
- package/src/cursor-accounts/CursorAccountEditor.tsx +3 -3
- package/src/cursor-accounts/CursorAccountsConsole.tsx +5 -5
- package/src/dashboard/OperationalDashboard.tsx +1 -6
- package/src/dashboard/useDashboardSummary.ts +2 -4
- package/src/environment/EnvironmentListPanel.tsx +4 -4
- package/src/environment/EnvironmentVariableEditor.tsx +5 -5
- package/src/environment/index.ts +1 -7
- package/src/environment/systemEnvVars.ts +21 -133
- package/src/execution/ArtifactFileContent.tsx +3 -2
- package/src/execution/McpToolDetail.tsx +3 -3
- package/src/execution/RecalledMemoriesCard.tsx +1 -1
- package/src/execution/ResultView.tsx +3 -3
- package/src/execution/TerminalSession.tsx +1 -1
- package/src/execution/ThreadSkeleton.tsx +4 -4
- package/src/execution/file-path-resolver.ts +3 -2
- package/src/execution/sandbox-path-normalizer.ts +2 -1
- package/src/github/parseGitUrl.ts +13 -4
- package/src/iam-policy/GrantAccessForm.tsx +4 -4
- package/src/iam-policy/OrgMembersPanel.tsx +10 -8
- package/src/iam-policy/PeopleWithAccess.tsx +3 -3
- package/src/iam-policy/PrincipalPicker.tsx +3 -3
- package/src/iam-policy/SharePanel.tsx +4 -4
- package/src/iam-policy/useCheckPermission.ts +4 -1
- package/src/iam-policy/useCreateIamPolicy.ts +1 -1
- package/src/iam-policy/useDeleteIamPolicy.ts +1 -1
- package/src/iam-policy/useGrantableRoles.ts +1 -1
- package/src/iam-policy/useGranteeCandidates.ts +3 -3
- package/src/iam-policy/useOwnerAssignment.ts +3 -3
- package/src/iam-policy/usePrincipalsCount.ts +7 -7
- package/src/iam-policy/useResourceAccess.ts +1 -1
- package/src/iam-policy/useRevokeOrgAccess.ts +13 -11
- package/src/identity-account/AccountPreferencesPanel.tsx +60 -13
- package/src/identity-account/useAccountExecutionDefaults.ts +2 -5
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +3 -9
- package/src/identity-provider/IdentityProviderListPanel.tsx +4 -4
- package/src/identity-provider/IdentityProviderWizard.tsx +1 -1
- package/src/identity-provider/SsoLoginPrompt.tsx +6 -5
- package/src/identity-provider/useIdentityProviderList.ts +2 -2
- package/src/index.ts +10 -5
- package/src/inline-edit/InlineEditImage.tsx +13 -11
- package/src/inline-edit/InlineEditText.tsx +13 -11
- package/src/inline-edit/InlineEditTextarea.tsx +12 -16
- package/src/inline-edit/useInlineDraft.ts +85 -0
- package/src/internal/DialogShell.tsx +80 -3
- package/src/internal/LoadingRegion.tsx +46 -0
- package/src/internal/UnknownPublicAddressNotice.tsx +31 -0
- package/src/internal/features.ts +2 -2
- package/src/internal/loading-region-markup.json +71 -0
- package/src/internal/markdown-components.tsx +15 -4
- package/src/internal/trim.ts +10 -0
- package/src/invitation/InvitationManager.tsx +4 -4
- package/src/invitation/InvitationRedemption.tsx +7 -7
- package/src/invitation/useInvitationPreview.ts +1 -1
- package/src/library/InstanceVisibilitySelector.tsx +1 -1
- package/src/library/ResourceVisibilityControl.tsx +7 -4
- package/src/library/VisibilitySelector.tsx +2 -2
- package/src/licenses/LicenseDetail.tsx +8 -6
- package/src/licenses/LicenseIssueForm.tsx +7 -7
- package/src/licenses/license-draft.ts +4 -4
- package/src/licenses/license-format.ts +12 -8
- package/src/mcp-server/McpServerConnectDialog.tsx +4 -6
- package/src/mcp-server/McpServerDetailView.tsx +7 -10
- package/src/mcp-server/McpServerPicker.tsx +2 -12
- package/src/mcp-server/McpToolSelector.tsx +1 -1
- package/src/mcp-server/useMcpServerConnect.ts +14 -33
- package/src/mcp-server/useMcpServerOAuthConnect.ts +7 -23
- package/src/memory/MemoryListPanel.tsx +4 -4
- package/src/models/HarnessSelector.tsx +1 -3
- package/src/models/ModelSelector.tsx +2 -7
- package/src/models/harness.ts +41 -39
- package/src/models/index.ts +1 -1
- package/src/oauth-app/OAuthAppListPanel.tsx +4 -4
- package/src/organization/OrgPreferencesPanel.tsx +28 -10
- package/src/organization/OrgProfilePanel.tsx +12 -12
- package/src/organization/index.ts +1 -0
- package/src/organization/useFollowSessionOrganization.ts +54 -0
- package/src/plan-catalog/plan-draft.ts +3 -3
- package/src/platform-client/PlatformClientListPanel.tsx +4 -4
- package/src/plugin/PluginDetailView.tsx +3 -2
- package/src/plugin/useMcpServerReadiness.ts +2 -2
- package/src/portal-container.ts +8 -0
- package/src/provider-standing/ProviderStandingConsole.tsx +1 -1
- package/src/provider.tsx +60 -27
- package/src/public-base-url-context.ts +71 -0
- package/src/resource-workbench/components/SelectionCheckbox.tsx +1 -1
- package/src/schedule/ScheduleDetailView.tsx +4 -4
- package/src/session/SessionViewer.tsx +13 -3
- package/src/session/useLocalSessionWorker.ts +35 -4
- package/src/session/useSessionConversation.ts +14 -3
- package/src/settings/ChannelAppsSection.tsx +4 -4
- package/src/settings/EnvironmentsSection.tsx +3 -2
- package/src/settings/MembersSection.tsx +3 -3
- package/src/settings/OrgPreferencesSection.tsx +1 -1
- package/src/settings/OrgProfileSection.tsx +1 -1
- package/src/settings/ProviderKeysSection.tsx +4 -0
- package/src/settings/TeamsSection.tsx +1 -1
- package/src/settings/UsageSection.tsx +1 -1
- package/src/settings/index.ts +2 -0
- package/src/settings/settings-nav.ts +2 -0
- package/src/sharing/ShareAgentDialog.tsx +32 -15
- package/src/sharing/SharedAgentChat.tsx +4 -4
- package/src/sharing/useCanCreateAgentShare.ts +6 -4
- package/src/sharing/useSaveAgentShare.ts +1 -1
- package/src/sidebar/WorkspaceSidebar.tsx +3 -2
- package/src/skill/SkillDetailView.tsx +4 -4
- package/src/skill/SkillDiffDialog.tsx +4 -4
- package/src/skill/SkillFileBrowser.tsx +4 -4
- package/src/styles.css +14 -4
- package/src/team/TeamDetailPanel.tsx +3 -3
- package/src/team/TeamListPanel.tsx +3 -2
- package/src/team/TeamMembersPanel.tsx +3 -3
- package/src/usage/OrgUsagePanel.tsx +9 -9
- package/src/usage/useExportCSV.ts +9 -9
- package/src/usage/useOrgUsageReport.ts +7 -7
- package/src/version-history/VersionTimeline.tsx +4 -4
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +14 -7
- package/src/workflow/WorkflowVersionDiffViewer.tsx +4 -4
- package/src/workflow/WorkflowVersionTimeline.tsx +4 -4
- package/src/workflow/inspector/tabs/BranchesTab.tsx +2 -2
- package/src/workflow/inspector/tabs/CatchTab.tsx +1 -1
- package/src/workflow/inspector/tabs/IterationTab.tsx +1 -1
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +7 -6
- package/src/workflow/task-detail/task-approval.ts +20 -13
- package/src/workflow/useDiagnoseExecutionFlow.ts +23 -18
- package/src/workflow/useExplainWorkflowFlow.ts +7 -3
- package/src/workflow/useRefineWorkflowFlow.ts +17 -10
- package/src/workflow/useWorkflowArchitectFlow.ts +7 -3
- package/src/workspace/ExplorerTree.tsx +4 -8
- package/src/workspace/FileViewer.tsx +4 -5
- package/styles.css +1 -1
- package/team/TeamDetailPanel.d.ts +2 -2
- package/team/TeamDetailPanel.d.ts.map +1 -1
- package/team/TeamDetailPanel.js +2 -2
- package/team/TeamDetailPanel.js.map +1 -1
- package/team/TeamListPanel.d.ts.map +1 -1
- package/team/TeamListPanel.js +2 -1
- package/team/TeamListPanel.js.map +1 -1
- package/team/TeamMembersPanel.d.ts +2 -2
- package/team/TeamMembersPanel.d.ts.map +1 -1
- package/team/TeamMembersPanel.js +2 -2
- package/team/TeamMembersPanel.js.map +1 -1
- package/usage/OrgUsagePanel.d.ts +3 -3
- package/usage/OrgUsagePanel.d.ts.map +1 -1
- package/usage/OrgUsagePanel.js +6 -5
- package/usage/OrgUsagePanel.js.map +1 -1
- package/usage/useExportCSV.d.ts +2 -2
- package/usage/useExportCSV.d.ts.map +1 -1
- package/usage/useExportCSV.js +9 -9
- package/usage/useExportCSV.js.map +1 -1
- package/usage/useOrgUsageReport.d.ts +4 -4
- package/usage/useOrgUsageReport.d.ts.map +1 -1
- package/usage/useOrgUsageReport.js +7 -7
- package/usage/useOrgUsageReport.js.map +1 -1
- package/version-history/VersionTimeline.d.ts.map +1 -1
- package/version-history/VersionTimeline.js +2 -1
- package/version-history/VersionTimeline.js.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts +7 -4
- package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.js +8 -3
- package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
- package/workflow/WorkflowVersionDiffViewer.d.ts.map +1 -1
- package/workflow/WorkflowVersionDiffViewer.js +2 -1
- package/workflow/WorkflowVersionDiffViewer.js.map +1 -1
- package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowVersionTimeline.js +2 -1
- package/workflow/WorkflowVersionTimeline.js.map +1 -1
- package/workflow/inspector/tabs/BranchesTab.js +1 -1
- package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
- package/workflow/inspector/tabs/CatchTab.js +1 -1
- package/workflow/inspector/tabs/CatchTab.js.map +1 -1
- package/workflow/inspector/tabs/IterationTab.js +1 -1
- package/workflow/inspector/tabs/IterationTab.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +6 -5
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/task-detail/task-approval.d.ts +13 -11
- package/workflow/task-detail/task-approval.d.ts.map +1 -1
- package/workflow/task-detail/task-approval.js +8 -4
- package/workflow/task-detail/task-approval.js.map +1 -1
- package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -1
- package/workflow/useDiagnoseExecutionFlow.js +23 -18
- package/workflow/useDiagnoseExecutionFlow.js.map +1 -1
- package/workflow/useExplainWorkflowFlow.d.ts.map +1 -1
- package/workflow/useExplainWorkflowFlow.js +7 -3
- package/workflow/useExplainWorkflowFlow.js.map +1 -1
- package/workflow/useRefineWorkflowFlow.d.ts.map +1 -1
- package/workflow/useRefineWorkflowFlow.js +14 -10
- package/workflow/useRefineWorkflowFlow.js.map +1 -1
- package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -1
- package/workflow/useWorkflowArchitectFlow.js +7 -3
- package/workflow/useWorkflowArchitectFlow.js.map +1 -1
- package/workspace/ExplorerTree.d.ts.map +1 -1
- package/workspace/ExplorerTree.js +2 -5
- package/workspace/ExplorerTree.js.map +1 -1
- package/workspace/FileViewer.d.ts.map +1 -1
- package/workspace/FileViewer.js +2 -1
- package/workspace/FileViewer.js.map +1 -1
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @module
|
|
11
11
|
*/
|
|
12
|
+
import { trimTrailing } from "../internal/trim.js";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Replace absolute sandbox workspace paths with workspace-relative
|
|
@@ -49,7 +50,7 @@ export function normalizeSandboxPaths(
|
|
|
49
50
|
): string {
|
|
50
51
|
if (!text || !workspaceRoot) return text;
|
|
51
52
|
|
|
52
|
-
const wsRoot = workspaceRoot
|
|
53
|
+
const wsRoot = trimTrailing(workspaceRoot, "/");
|
|
53
54
|
|
|
54
55
|
// 1) Strip workspace root prefix (with trailing slash) → workspace-relative
|
|
55
56
|
text = replaceAll(text, wsRoot + "/", "");
|
|
@@ -9,7 +9,7 @@ export interface ParsedGitRepo {
|
|
|
9
9
|
readonly repo: string;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const GITHUB_HOST = "github.com";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Extract the owner and repository name from a GitHub URL.
|
|
@@ -22,7 +22,16 @@ const GITHUB_URL_RE = /github\.com[/:]([^/]+)\/([^/.]+?)(?:\.git)?$/;
|
|
|
22
22
|
* Returns `null` for non-GitHub or unparseable URLs.
|
|
23
23
|
*/
|
|
24
24
|
export function parseGitUrl(url: string): ParsedGitRepo | null {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
// Read by position rather than by a pattern: the lazy repository group of
|
|
26
|
+
// `github\.com[/:]([^/]+)\/([^/.]+?)(?:\.git)?$` backtracks on a long input.
|
|
27
|
+
const at = url.indexOf(GITHUB_HOST);
|
|
28
|
+
if (at === -1) return null;
|
|
29
|
+
const separator = url[at + GITHUB_HOST.length];
|
|
30
|
+
if (separator !== "/" && separator !== ":") return null;
|
|
31
|
+
const parts = url.slice(at + GITHUB_HOST.length + 1).split("/");
|
|
32
|
+
if (parts.length !== 2) return null;
|
|
33
|
+
const [owner, name] = parts as [string, string];
|
|
34
|
+
const repo = name.endsWith(".git") ? name.slice(0, -".git".length) : name;
|
|
35
|
+
if (owner === "" || repo === "" || repo.includes(".")) return null;
|
|
36
|
+
return { owner, repo };
|
|
28
37
|
}
|
|
@@ -45,7 +45,7 @@ export interface GrantAccessFormProps {
|
|
|
45
45
|
* Organization whose people (and teams) can be granted access. Drives
|
|
46
46
|
* the {@link PrincipalPicker} typeahead.
|
|
47
47
|
*/
|
|
48
|
-
readonly
|
|
48
|
+
readonly org: string;
|
|
49
49
|
/**
|
|
50
50
|
* Offer the organization's teams beside its people. Set it where the
|
|
51
51
|
* resource can be shared with a team (`useShareFlow().canShareWithTeams`).
|
|
@@ -72,7 +72,7 @@ export interface GrantAccessFormProps {
|
|
|
72
72
|
* resourceKind={ApiResourceKind.agent}
|
|
73
73
|
* resourceKindString="agent"
|
|
74
74
|
* resourceId={agentId}
|
|
75
|
-
*
|
|
75
|
+
* org={org}
|
|
76
76
|
* includeTeams={share.canShareWithTeams}
|
|
77
77
|
* onGranted={() => share.refetch()}
|
|
78
78
|
* onCancel={() => setShowForm(false)}
|
|
@@ -83,7 +83,7 @@ export function GrantAccessForm({
|
|
|
83
83
|
resourceKind,
|
|
84
84
|
resourceKindString,
|
|
85
85
|
resourceId,
|
|
86
|
-
|
|
86
|
+
org,
|
|
87
87
|
includeTeams = false,
|
|
88
88
|
excludeGrantees,
|
|
89
89
|
onGranted,
|
|
@@ -150,7 +150,7 @@ export function GrantAccessForm({
|
|
|
150
150
|
<form onSubmit={handleSubmit} className={cn("stg:space-y-3", className)}>
|
|
151
151
|
<div className="stg:space-y-3">
|
|
152
152
|
<PrincipalPicker
|
|
153
|
-
|
|
153
|
+
org={org}
|
|
154
154
|
value={grantee}
|
|
155
155
|
onChange={chooseGrantee}
|
|
156
156
|
includeTeams={includeTeams}
|
|
@@ -26,6 +26,7 @@ import { useDeleteIamPolicy } from "./useDeleteIamPolicy.js";
|
|
|
26
26
|
import { RoleSelector } from "./RoleSelector.js";
|
|
27
27
|
import { ProviderBadge } from "./ProviderBadge.js";
|
|
28
28
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
29
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
29
30
|
|
|
30
31
|
// ---------------------------------------------------------------------------
|
|
31
32
|
// Public API
|
|
@@ -34,7 +35,7 @@ import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
|
34
35
|
/** Props for {@link OrgMembersPanel}. */
|
|
35
36
|
export interface OrgMembersPanelProps {
|
|
36
37
|
/** Organization ID (`metadata.id`) whose members to manage. */
|
|
37
|
-
readonly
|
|
38
|
+
readonly org: string;
|
|
38
39
|
/** Exposed refetch for parent-triggered refresh. */
|
|
39
40
|
readonly onRefetchRef?: (refetch: () => void) => void;
|
|
40
41
|
/** Additional CSS class names for the root container. */
|
|
@@ -71,11 +72,11 @@ export interface OrgMembersPanelProps {
|
|
|
71
72
|
*
|
|
72
73
|
* @example
|
|
73
74
|
* ```tsx
|
|
74
|
-
* <OrgMembersPanel
|
|
75
|
+
* <OrgMembersPanel org={activeOrg.metadata.id} />
|
|
75
76
|
* ```
|
|
76
77
|
*/
|
|
77
78
|
export function OrgMembersPanel({
|
|
78
|
-
orgId,
|
|
79
|
+
org: orgId,
|
|
79
80
|
onRefetchRef,
|
|
80
81
|
className,
|
|
81
82
|
}: OrgMembersPanelProps) {
|
|
@@ -127,10 +128,9 @@ export function OrgMembersPanel({
|
|
|
127
128
|
|
|
128
129
|
if (isLoading) {
|
|
129
130
|
return (
|
|
130
|
-
<
|
|
131
|
+
<LoadingRegion
|
|
131
132
|
className={cn("stg:space-y-2", className)}
|
|
132
|
-
|
|
133
|
-
aria-label="Loading members"
|
|
133
|
+
label="Loading members"
|
|
134
134
|
>
|
|
135
135
|
{Array.from({ length: 3 }, (_, i) => (
|
|
136
136
|
<div
|
|
@@ -138,7 +138,7 @@ export function OrgMembersPanel({
|
|
|
138
138
|
className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
|
|
139
139
|
/>
|
|
140
140
|
))}
|
|
141
|
-
</
|
|
141
|
+
</LoadingRegion>
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -496,7 +496,9 @@ function RemoveCopy({
|
|
|
496
496
|
case "member":
|
|
497
497
|
return (
|
|
498
498
|
<>
|
|
499
|
-
Remove {name} from this organization?
|
|
499
|
+
Remove {name} from this organization? They lose access to everything
|
|
500
|
+
in it, including what was shared with them and their teams. What
|
|
501
|
+
they created stays with the organization.
|
|
500
502
|
</>
|
|
501
503
|
);
|
|
502
504
|
case "productUser":
|
|
@@ -42,7 +42,7 @@ export interface PeopleWithAccessProps {
|
|
|
42
42
|
* Organization the resource belongs to (`metadata.org`). Drives the
|
|
43
43
|
* people-and-teams typeahead in the grant form.
|
|
44
44
|
*/
|
|
45
|
-
readonly
|
|
45
|
+
readonly org: string;
|
|
46
46
|
/** Additional CSS class names for the root container. */
|
|
47
47
|
readonly className?: string;
|
|
48
48
|
}
|
|
@@ -72,7 +72,7 @@ export function PeopleWithAccess({
|
|
|
72
72
|
resource,
|
|
73
73
|
resourceKindString,
|
|
74
74
|
resourceKind,
|
|
75
|
-
|
|
75
|
+
org,
|
|
76
76
|
className,
|
|
77
77
|
}: PeopleWithAccessProps) {
|
|
78
78
|
const {
|
|
@@ -155,7 +155,7 @@ export function PeopleWithAccess({
|
|
|
155
155
|
resourceKind={resourceKind}
|
|
156
156
|
resourceKindString={resourceKindString}
|
|
157
157
|
resourceId={resource.id}
|
|
158
|
-
|
|
158
|
+
org={org}
|
|
159
159
|
includeTeams={canShareWithTeams}
|
|
160
160
|
excludeGrantees={existingGrantees}
|
|
161
161
|
onGranted={() => {
|
|
@@ -37,7 +37,7 @@ export type SelectedGrantee = GranteeCandidate;
|
|
|
37
37
|
/** Props for {@link PrincipalPicker}. */
|
|
38
38
|
export interface PrincipalPickerProps {
|
|
39
39
|
/** Organization whose people (and teams) are selectable. */
|
|
40
|
-
readonly
|
|
40
|
+
readonly org: string;
|
|
41
41
|
/** Currently selected grantee, or `null`. Controlled. */
|
|
42
42
|
readonly value: SelectedGrantee | null;
|
|
43
43
|
/** Fired when the selection changes. */
|
|
@@ -73,7 +73,7 @@ export interface PrincipalPickerProps {
|
|
|
73
73
|
* All visual properties flow through `--stgm-*` design tokens.
|
|
74
74
|
*/
|
|
75
75
|
export function PrincipalPicker({
|
|
76
|
-
|
|
76
|
+
org,
|
|
77
77
|
value,
|
|
78
78
|
onChange,
|
|
79
79
|
includeTeams = false,
|
|
@@ -85,7 +85,7 @@ export function PrincipalPicker({
|
|
|
85
85
|
}: PrincipalPickerProps) {
|
|
86
86
|
const listboxId = useId();
|
|
87
87
|
const { people, teams, isLoading, error } = useGranteeCandidates({
|
|
88
|
-
|
|
88
|
+
org: org || null,
|
|
89
89
|
includeTeams,
|
|
90
90
|
});
|
|
91
91
|
|
|
@@ -17,7 +17,7 @@ export interface SharePanelProps {
|
|
|
17
17
|
* Organization the resource belongs to (`metadata.org`). Drives the
|
|
18
18
|
* org-member typeahead in the grant form.
|
|
19
19
|
*/
|
|
20
|
-
readonly
|
|
20
|
+
readonly org: string;
|
|
21
21
|
/** Fired when the user closes the panel. */
|
|
22
22
|
readonly onClose?: () => void;
|
|
23
23
|
/** Additional CSS class names for the root container. */
|
|
@@ -42,7 +42,7 @@ export interface SharePanelProps {
|
|
|
42
42
|
* resource={{ kind: "session", id: sessionId, resourceKind: ApiResourceKind.session }}
|
|
43
43
|
* resourceKindString="session"
|
|
44
44
|
* resourceKind={ApiResourceKind.session}
|
|
45
|
-
*
|
|
45
|
+
* org={org}
|
|
46
46
|
* onClose={() => setOpen(false)}
|
|
47
47
|
* />
|
|
48
48
|
* ```
|
|
@@ -51,7 +51,7 @@ export function SharePanel({
|
|
|
51
51
|
resource,
|
|
52
52
|
resourceKindString,
|
|
53
53
|
resourceKind,
|
|
54
|
-
|
|
54
|
+
org,
|
|
55
55
|
onClose,
|
|
56
56
|
className,
|
|
57
57
|
}: SharePanelProps) {
|
|
@@ -85,7 +85,7 @@ export function SharePanel({
|
|
|
85
85
|
resource={resource}
|
|
86
86
|
resourceKindString={resourceKindString}
|
|
87
87
|
resourceKind={resourceKind}
|
|
88
|
-
|
|
88
|
+
org={org}
|
|
89
89
|
/>
|
|
90
90
|
</div>
|
|
91
91
|
);
|
|
@@ -69,7 +69,10 @@ interface SettledCheck {
|
|
|
69
69
|
* `false` (so operator-only navigation never appears where the seat
|
|
70
70
|
* does not exist), `can_grant_access` on a resource the edition does not
|
|
71
71
|
* share per person is `false` (open source grants roles on organizations
|
|
72
|
-
* only), and everything else is the edition's authorizer's answer.
|
|
72
|
+
* only), and everything else is the edition's authorizer's answer. So a
|
|
73
|
+
* control that changes who reaches a resource (its visibility, a share, a
|
|
74
|
+
* channel) asks `can_manage_audience`, never `can_grant_access`: the owner
|
|
75
|
+
* holds it in every edition. By
|
|
73
76
|
* default the hook *fails open* while the check is in flight or when the
|
|
74
77
|
* RPC fails, so a transient error never hides a control the server would
|
|
75
78
|
* honor. Pass `{ fail: "closed" }` for surfaces that must stay hidden
|
|
@@ -33,7 +33,7 @@ export interface UseCreateIamPolicyReturn {
|
|
|
33
33
|
*
|
|
34
34
|
* await create({
|
|
35
35
|
* principal: { kind: "identity_account", id: accountId },
|
|
36
|
-
* resource: { kind: "organization", id:
|
|
36
|
+
* resource: { kind: "organization", id: org },
|
|
37
37
|
* relation: "admin",
|
|
38
38
|
* });
|
|
39
39
|
* ```
|
|
@@ -32,7 +32,7 @@ export interface UseDeleteIamPolicyReturn {
|
|
|
32
32
|
*
|
|
33
33
|
* await remove({
|
|
34
34
|
* principal: { kind: "identity_account", id: accountId },
|
|
35
|
-
* resource: { kind: "organization", id:
|
|
35
|
+
* resource: { kind: "organization", id: org },
|
|
36
36
|
* relation: "admin",
|
|
37
37
|
* });
|
|
38
38
|
* ```
|
|
@@ -26,7 +26,7 @@ export interface UseGrantableRolesReturn {
|
|
|
26
26
|
* @example
|
|
27
27
|
* ```tsx
|
|
28
28
|
* const { roles, hasRoles } = useGrantableRoles(ApiResourceKind.agent);
|
|
29
|
-
* // roles = [IamRole.owner, IamRole.viewer]
|
|
29
|
+
* // roles = [IamRole.owner, IamRole.editor, IamRole.viewer]
|
|
30
30
|
* // hasRoles = true
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
@@ -49,7 +49,7 @@ export type GranteeCandidate = PersonCandidate | TeamCandidate;
|
|
|
49
49
|
/** Options for {@link useGranteeCandidates}. */
|
|
50
50
|
export interface UseGranteeCandidatesOptions {
|
|
51
51
|
/** The organization whose people (and teams) are offered, or `null` to skip. */
|
|
52
|
-
readonly
|
|
52
|
+
readonly org: string | null;
|
|
53
53
|
/** Offer the organization's teams too. Pass `false` where teams cannot be granted. */
|
|
54
54
|
readonly includeTeams: boolean;
|
|
55
55
|
}
|
|
@@ -70,13 +70,13 @@ export interface UseGranteeCandidatesReturn {
|
|
|
70
70
|
* @example
|
|
71
71
|
* ```tsx
|
|
72
72
|
* const { people, teams } = useGranteeCandidates({
|
|
73
|
-
*
|
|
73
|
+
* org,
|
|
74
74
|
* includeTeams: share.canShareWithTeams,
|
|
75
75
|
* });
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
78
|
export function useGranteeCandidates({
|
|
79
|
-
orgId,
|
|
79
|
+
org: orgId,
|
|
80
80
|
includeTeams,
|
|
81
81
|
}: UseGranteeCandidatesOptions): UseGranteeCandidatesReturn {
|
|
82
82
|
const access = useResourceAccess(orgId ? { kind: "organization", id: orgId } : null);
|
|
@@ -26,11 +26,11 @@ export interface UseOwnerAssignmentReturn {
|
|
|
26
26
|
* change asks the same question here. Fails open, like every capability
|
|
27
27
|
* gate: the server refuses whatever this lets through.
|
|
28
28
|
*
|
|
29
|
-
* @param
|
|
29
|
+
* @param org - The organization's id, or `null` to skip the check.
|
|
30
30
|
*/
|
|
31
|
-
export function useOwnerAssignment(
|
|
31
|
+
export function useOwnerAssignment(org: string | null): UseOwnerAssignmentReturn {
|
|
32
32
|
const { allowed } = useCheckPermission(
|
|
33
|
-
|
|
33
|
+
org ? { kind: "organization", id: org } : null,
|
|
34
34
|
"can_assign_roles",
|
|
35
35
|
);
|
|
36
36
|
return {
|
|
@@ -33,33 +33,33 @@ export interface UsePrincipalsCountReturn {
|
|
|
33
33
|
* `isPlatformClientAccount` (from `@stigmer/sdk`) marks, as
|
|
34
34
|
* `OrgMembersPanel` does.
|
|
35
35
|
*
|
|
36
|
-
* Pass `null` as `
|
|
36
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
37
37
|
*
|
|
38
|
-
* @param
|
|
38
|
+
* @param org - Organization ID, or `null` to skip.
|
|
39
39
|
* @param principalKind - Kind of principals to count. Defaults to `"identity_account"`.
|
|
40
40
|
*
|
|
41
41
|
* @example
|
|
42
42
|
* ```tsx
|
|
43
|
-
* const { count, isLoading } = usePrincipalsCount(
|
|
43
|
+
* const { count, isLoading } = usePrincipalsCount(org);
|
|
44
44
|
* // count = 5
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
export function usePrincipalsCount(
|
|
48
|
-
|
|
48
|
+
org: string | null,
|
|
49
49
|
principalKind: string = "identity_account",
|
|
50
50
|
): UsePrincipalsCountReturn {
|
|
51
51
|
const stigmer = useStigmer();
|
|
52
52
|
|
|
53
53
|
const { data: count, isLoading, isRefetching, error, refetch } = useFetch(
|
|
54
|
-
|
|
54
|
+
org
|
|
55
55
|
? () =>
|
|
56
56
|
stigmer.iamPolicy
|
|
57
57
|
.getPrincipalsCount(
|
|
58
|
-
create(GetPrincipalsCountInputSchema, {
|
|
58
|
+
create(GetPrincipalsCountInputSchema, { org, principalKind }),
|
|
59
59
|
)
|
|
60
60
|
.then((r) => r.count)
|
|
61
61
|
: null,
|
|
62
|
-
[
|
|
62
|
+
[org, principalKind, stigmer],
|
|
63
63
|
0,
|
|
64
64
|
);
|
|
65
65
|
|
|
@@ -9,13 +9,15 @@ import { toError } from "../internal/toError.js";
|
|
|
9
9
|
/** Return value of {@link useRevokeOrgAccess}. */
|
|
10
10
|
export interface UseRevokeOrgAccessReturn {
|
|
11
11
|
/**
|
|
12
|
-
* Remove
|
|
12
|
+
* Remove a person from an organization.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Revokes their roles on the organization and everything they hold on
|
|
15
|
+
* its resources: what was shared with them (agents, environments,
|
|
16
|
+
* sessions and the rest) and their team memberships, in a single
|
|
17
|
+
* operation. What they created stays with the organization; it is
|
|
18
|
+
* theirs again only if they are invited back.
|
|
17
19
|
*/
|
|
18
|
-
readonly revoke: (accountId: string,
|
|
20
|
+
readonly revoke: (accountId: string, org: string) => Promise<void>;
|
|
19
21
|
/** `true` while the revoke request is in flight. */
|
|
20
22
|
readonly isRevoking: boolean;
|
|
21
23
|
/** Error from the last failed revoke, or `null` when healthy. */
|
|
@@ -28,10 +30,10 @@ export interface UseRevokeOrgAccessReturn {
|
|
|
28
30
|
* Behavior hook that wraps `iamPolicy.revokeOrgAccess()` with
|
|
29
31
|
* loading/error state.
|
|
30
32
|
*
|
|
31
|
-
* Removes
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* operation.
|
|
33
|
+
* Removes a person from an organization: their roles on it, what was
|
|
34
|
+
* shared with them on its resources and their team memberships. From
|
|
35
|
+
* then on they reach nothing in the organization; what they created
|
|
36
|
+
* stays with it. This is the "remove member from org" operation.
|
|
35
37
|
*
|
|
36
38
|
* @example
|
|
37
39
|
* ```tsx
|
|
@@ -49,7 +51,7 @@ export function useRevokeOrgAccess(): UseRevokeOrgAccessReturn {
|
|
|
49
51
|
const clearError = useCallback(() => setError(null), []);
|
|
50
52
|
|
|
51
53
|
const revoke = useCallback(
|
|
52
|
-
async (accountId: string,
|
|
54
|
+
async (accountId: string, org: string): Promise<void> => {
|
|
53
55
|
setIsRevoking(true);
|
|
54
56
|
setError(null);
|
|
55
57
|
|
|
@@ -57,7 +59,7 @@ export function useRevokeOrgAccess(): UseRevokeOrgAccessReturn {
|
|
|
57
59
|
await stigmer.iamPolicy.revokeOrgAccess(
|
|
58
60
|
create(RevokeOrgAccessInputSchema, {
|
|
59
61
|
identityAccountId: accountId,
|
|
60
|
-
|
|
62
|
+
org,
|
|
61
63
|
}),
|
|
62
64
|
);
|
|
63
65
|
} catch (err) {
|
|
@@ -15,11 +15,13 @@ import type { IdentityAccount } from "@stigmer/protos/ai/stigmer/iam/identityacc
|
|
|
15
15
|
import { useMyIdentityAccount } from "./useMyIdentityAccount.js";
|
|
16
16
|
import { useUpdateIdentityAccount } from "./useUpdateIdentityAccount.js";
|
|
17
17
|
import { useModelRegistry } from "../models/index.js";
|
|
18
|
+
import { useServerInfo } from "../server-info.js";
|
|
18
19
|
import { HARNESS_META, type HarnessOption } from "../models/harness.js";
|
|
19
20
|
import { MemoryEnabledRow } from "../internal/MemoryEnabledRow.js";
|
|
20
21
|
import { StandingContextField } from "../internal/StandingContextField.js";
|
|
21
22
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
22
23
|
import { Switch } from "../switch/Switch.js";
|
|
24
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
23
25
|
|
|
24
26
|
/** Props for {@link AccountPreferencesPanel}. */
|
|
25
27
|
export interface AccountPreferencesPanelProps {
|
|
@@ -49,6 +51,12 @@ export interface AccountPreferencesPanelProps {
|
|
|
49
51
|
* answer with. A server that cannot answer surfaces its error through the
|
|
50
52
|
* fetch-error state below, never a hidden branch.
|
|
51
53
|
*
|
|
54
|
+
* The one posture question it does ask is about memory. The person's own
|
|
55
|
+
* memory switch is honoured only by a server that authenticates its
|
|
56
|
+
* callers; on a server that trusts every request (the single-operator
|
|
57
|
+
* laptop), memory is the organization's switch alone, so the panel says
|
|
58
|
+
* that in the switch's place rather than offering one that does nothing.
|
|
59
|
+
*
|
|
52
60
|
* All visual properties flow through `--stgm-*` design tokens. Zero
|
|
53
61
|
* dependencies on Console routing, auth context, or layout — platform
|
|
54
62
|
* builders can embed it directly:
|
|
@@ -86,6 +94,8 @@ export function AccountPreferencesPanel({
|
|
|
86
94
|
error: memoryFlagError,
|
|
87
95
|
} = useUpdateIdentityAccount();
|
|
88
96
|
|
|
97
|
+
const memoryGovernance = useMemoryGovernance();
|
|
98
|
+
|
|
89
99
|
const [standingContext, setStandingContext] = useState("");
|
|
90
100
|
const [defaultHarness, setDefaultHarness] = useState("");
|
|
91
101
|
const [defaultNativeModel, setDefaultNativeModel] = useState("");
|
|
@@ -223,14 +233,13 @@ export function AccountPreferencesPanel({
|
|
|
223
233
|
|
|
224
234
|
if (isFetching && !account) {
|
|
225
235
|
return (
|
|
226
|
-
<
|
|
236
|
+
<LoadingRegion
|
|
227
237
|
className={cn("stg:space-y-4", className)}
|
|
228
|
-
|
|
229
|
-
aria-label="Loading account preferences"
|
|
238
|
+
label="Loading account preferences"
|
|
230
239
|
>
|
|
231
240
|
<div className="stg:bg-muted-subtle stg:h-28 stg:animate-pulse stg:rounded" />
|
|
232
241
|
<div className="stg:bg-muted-subtle stg:h-8 stg:w-32 stg:animate-pulse stg:rounded" />
|
|
233
|
-
</
|
|
242
|
+
</LoadingRegion>
|
|
234
243
|
);
|
|
235
244
|
}
|
|
236
245
|
|
|
@@ -377,14 +386,17 @@ export function AccountPreferencesPanel({
|
|
|
377
386
|
</div>
|
|
378
387
|
</div>
|
|
379
388
|
|
|
380
|
-
<
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
389
|
+
{memoryGovernance === "organization" && <OrganizationGovernedMemory />}
|
|
390
|
+
{memoryGovernance === "person" && (
|
|
391
|
+
<MemoryEnabledRow
|
|
392
|
+
id={`${baseId}-memory-enabled`}
|
|
393
|
+
checked={account.spec?.preferences?.memoryEnabled ?? false}
|
|
394
|
+
onToggle={(next) => void handleMemoryToggle(next)}
|
|
395
|
+
saving={isSavingMemoryFlag}
|
|
396
|
+
error={memoryFlagError}
|
|
397
|
+
helperText="When on, agents may propose facts to remember about you; only facts you confirm are stored. Confirmed memories are shared with your future sessions and appear on those executions' records; once you have many, each conversation recalls the most relevant ones, shown on the execution. Requires your organization to have memory enabled. Changes apply immediately."
|
|
398
|
+
/>
|
|
399
|
+
)}
|
|
388
400
|
|
|
389
401
|
{updateError && (
|
|
390
402
|
<p className="stg:text-destructive stg:text-[0.65rem]" role="alert">
|
|
@@ -494,7 +506,7 @@ function HarnessOptionRow({
|
|
|
494
506
|
disabled={disabled}
|
|
495
507
|
aria-labelledby={titleId}
|
|
496
508
|
aria-describedby={descriptionId}
|
|
497
|
-
className="stg:mt-0.5 stg:
|
|
509
|
+
className="stg:mt-0.5 stg:focus-visible:outline-none stg:focus-visible:ring-1 stg:focus-visible:ring-ring"
|
|
498
510
|
/>
|
|
499
511
|
<span className="stg:min-w-0 stg:flex-1">
|
|
500
512
|
<span
|
|
@@ -584,3 +596,38 @@ function DefaultModelSelect({
|
|
|
584
596
|
</div>
|
|
585
597
|
);
|
|
586
598
|
}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Who decides memory on the connected server, for the memory row.
|
|
602
|
+
*
|
|
603
|
+
* - `"person"`: the person's own switch counts (a server that authenticates
|
|
604
|
+
* its callers, one too old to report its posture, or one whose answer
|
|
605
|
+
* failed: an unknown posture offers the control and lets the server
|
|
606
|
+
* decide, as `authentication_required`'s contract says).
|
|
607
|
+
* - `"organization"`: the server trusts every request, so its one operator
|
|
608
|
+
* decides memory through the organization's switch alone.
|
|
609
|
+
* - `null`: the server has not answered yet, so the row renders nothing
|
|
610
|
+
* rather than a switch that flashes and disappears.
|
|
611
|
+
*/
|
|
612
|
+
function useMemoryGovernance(): "person" | "organization" | null {
|
|
613
|
+
const { serverInfo, error } = useServerInfo();
|
|
614
|
+
if (serverInfo !== null) {
|
|
615
|
+
return serverInfo.authenticationRequired === false ? "organization" : "person";
|
|
616
|
+
}
|
|
617
|
+
return error !== null ? "person" : null;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
/** The memory row on a server where the organization's switch alone decides. */
|
|
621
|
+
function OrganizationGovernedMemory() {
|
|
622
|
+
return (
|
|
623
|
+
<div className="stg:space-y-1">
|
|
624
|
+
<span className="stg:block stg:text-xs stg:font-medium stg:text-foreground">
|
|
625
|
+
Memory
|
|
626
|
+
</span>
|
|
627
|
+
<p className="stg:text-[0.65rem] stg:leading-snug stg:text-muted-foreground">
|
|
628
|
+
On this server, memory follows your organization's setting. Turn it
|
|
629
|
+
on or off in the organization's preferences.
|
|
630
|
+
</p>
|
|
631
|
+
</div>
|
|
632
|
+
);
|
|
633
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
import { useMyIdentityAccount } from "./useMyIdentityAccount.js";
|
|
5
|
-
import type
|
|
5
|
+
import { isHarnessOption, type HarnessOption } from "../models/harness.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* The current user's account-level execution defaults, shaped for the
|
|
@@ -57,10 +57,7 @@ export function useAccountExecutionDefaults(): AccountExecutionDefaults | undefi
|
|
|
57
57
|
// The proto validates default_harness to the shipped set, but a client
|
|
58
58
|
// must not trust persisted data it did not write — unknown values are
|
|
59
59
|
// treated as undeclared.
|
|
60
|
-
const harness =
|
|
61
|
-
prefs.defaultHarness === "native" || prefs.defaultHarness === "cursor"
|
|
62
|
-
? (prefs.defaultHarness satisfies HarnessOption)
|
|
63
|
-
: undefined;
|
|
60
|
+
const harness = isHarnessOption(prefs.defaultHarness) ? prefs.defaultHarness : undefined;
|
|
64
61
|
const nativeModel = prefs.defaultNativeModel || undefined;
|
|
65
62
|
const cursorModel = prefs.defaultCursorModel || undefined;
|
|
66
63
|
// Only a declared `true` travels — an unset bool is "no preference",
|
|
@@ -136,8 +136,8 @@ export function IdentityProviderDetailPanel({
|
|
|
136
136
|
clearError();
|
|
137
137
|
try {
|
|
138
138
|
// Full-spec-replace safety: spread the complete mapped input and
|
|
139
|
-
// override only the edited fields, so
|
|
140
|
-
//
|
|
139
|
+
// override only the edited fields, so a spec field the form does
|
|
140
|
+
// not list survives the save. Fields the form clears
|
|
141
141
|
// (SSO providers have no JIT settings) are set to undefined
|
|
142
142
|
// explicitly — omitting them would carry the stale mapped value.
|
|
143
143
|
const updated = await update({
|
|
@@ -289,7 +289,7 @@ export function IdentityProviderDetailPanel({
|
|
|
289
289
|
value={userinfoEndpoint}
|
|
290
290
|
onChange={setUserinfoEndpoint}
|
|
291
291
|
placeholder="https://example.com/userinfo"
|
|
292
|
-
hint="Optional
|
|
292
|
+
hint="Optional. Read only when Stigmer creates an account from a token with no email claim"
|
|
293
293
|
disabled={isUpdating}
|
|
294
294
|
/>
|
|
295
295
|
|
|
@@ -421,12 +421,6 @@ function ViewMode({
|
|
|
421
421
|
hint="Share this URL with your team members to sign in via SSO"
|
|
422
422
|
/>
|
|
423
423
|
)}
|
|
424
|
-
{(spec?.rateLimitBudget ?? 0) > 0 && (
|
|
425
|
-
<Field
|
|
426
|
-
label="Rate limit"
|
|
427
|
-
value={`${spec!.rateLimitBudget} req/min`}
|
|
428
|
-
/>
|
|
429
|
-
)}
|
|
430
424
|
|
|
431
425
|
{/* JIT provisioning fields */}
|
|
432
426
|
{!spec?.isSsoProvider && spec?.autoProvisionAccounts && (
|
|
@@ -10,6 +10,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js"
|
|
|
10
10
|
import { useIdentityProviderList } from "./useIdentityProviderList.js";
|
|
11
11
|
import { useDeleteIdentityProvider } from "./useDeleteIdentityProvider.js";
|
|
12
12
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
13
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
13
14
|
|
|
14
15
|
/** Props for {@link IdentityProviderListPanel}. */
|
|
15
16
|
export interface IdentityProviderListPanelProps {
|
|
@@ -75,10 +76,9 @@ export function IdentityProviderListPanel({
|
|
|
75
76
|
|
|
76
77
|
if (isLoading) {
|
|
77
78
|
return (
|
|
78
|
-
<
|
|
79
|
+
<LoadingRegion
|
|
79
80
|
className={cn("stg:space-y-2", className)}
|
|
80
|
-
|
|
81
|
-
aria-label="Loading identity providers"
|
|
81
|
+
label="Loading identity providers"
|
|
82
82
|
>
|
|
83
83
|
{Array.from({ length: 2 }, (_, i) => (
|
|
84
84
|
<div
|
|
@@ -86,7 +86,7 @@ export function IdentityProviderListPanel({
|
|
|
86
86
|
className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
|
|
87
87
|
/>
|
|
88
88
|
))}
|
|
89
|
-
</
|
|
89
|
+
</LoadingRegion>
|
|
90
90
|
);
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -557,7 +557,7 @@ function ReviewStep({
|
|
|
557
557
|
value={userinfoEndpoint}
|
|
558
558
|
onChange={onUserinfoEndpointChange}
|
|
559
559
|
placeholder="https://example.com/userinfo"
|
|
560
|
-
hint="Optional
|
|
560
|
+
hint="Optional. Read only when Stigmer creates an account from a token with no email claim"
|
|
561
561
|
disabled={isCreating}
|
|
562
562
|
/>
|
|
563
563
|
|