@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
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
ConnectInputSchema,
|
|
11
11
|
} from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
|
|
12
12
|
import { useStigmer } from "../hooks.js";
|
|
13
|
-
import { resolveDeclaredSystemEnvVars } from "../environment/systemEnvVars.js";
|
|
14
13
|
import { toError } from "../internal/toError.js";
|
|
15
14
|
import {
|
|
16
15
|
openOAuthPopup,
|
|
@@ -81,11 +80,9 @@ export interface UseMcpServerOAuthConnectReturn {
|
|
|
81
80
|
*
|
|
82
81
|
* @param mcpServerId - System-generated ID (metadata.id) of the MCP server.
|
|
83
82
|
* @param org - Organization context for token storage (caller's active org).
|
|
84
|
-
* @param declaredEnvKeys - Keys from the server's `spec.env` declaration.
|
|
85
|
-
* System vars are only injected when declared here.
|
|
86
83
|
* @returns The updated McpServer after tool discovery completes.
|
|
87
84
|
*/
|
|
88
|
-
readonly startOAuth: (mcpServerId: string, org: string
|
|
85
|
+
readonly startOAuth: (mcpServerId: string, org: string) => Promise<McpServer>;
|
|
89
86
|
/** `true` while any phase of the OAuth flow is in progress. */
|
|
90
87
|
readonly isInProgress: boolean;
|
|
91
88
|
/** Current phase of the OAuth flow. */
|
|
@@ -182,7 +179,7 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
|
|
|
182
179
|
}, [advancePhase]);
|
|
183
180
|
|
|
184
181
|
const startOAuth = useCallback(
|
|
185
|
-
async (mcpServerId: string, org: string
|
|
182
|
+
async (mcpServerId: string, org: string): Promise<McpServer> => {
|
|
186
183
|
advancePhase("initiating");
|
|
187
184
|
setError(null);
|
|
188
185
|
setFailedPhase(null);
|
|
@@ -229,24 +226,11 @@ export function useMcpServerOAuthConnect(): UseMcpServerOAuthConnectReturn {
|
|
|
229
226
|
|
|
230
227
|
advancePhase("connecting");
|
|
231
228
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
runtimeEnvMap[key] = {
|
|
238
|
-
value: envInput.value,
|
|
239
|
-
isSecret: envInput.isSecret ?? false,
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
const input = create(ConnectInputSchema, {
|
|
244
|
-
mcpServerId,
|
|
245
|
-
org,
|
|
246
|
-
...(Object.keys(runtimeEnvMap).length > 0
|
|
247
|
-
? { runtimeEnv: runtimeEnvMap }
|
|
248
|
-
: {}),
|
|
249
|
-
});
|
|
229
|
+
// No runtime env: the backend resolves the token this flow just
|
|
230
|
+
// stored from the managed grant, and every other declared variable
|
|
231
|
+
// from the caller's personal environment. A runtime env would
|
|
232
|
+
// replace that resolution whole (stigmer/stigmer#1453).
|
|
233
|
+
const input = create(ConnectInputSchema, { mcpServerId, org });
|
|
250
234
|
|
|
251
235
|
// Async connect lane (stigmer/stigmer#425): startConnect + poll via
|
|
252
236
|
// the SDK's shared protocol, so the discovery wait can outlive the
|
|
@@ -14,6 +14,7 @@ import { useDeleteMemory } from "./useDeleteMemory.js";
|
|
|
14
14
|
import { useMemories } from "./useMemories.js";
|
|
15
15
|
import { useRejectMemory } from "./useRejectMemory.js";
|
|
16
16
|
import { useUpdateMemoryContent } from "./useUpdateMemoryContent.js";
|
|
17
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
17
18
|
|
|
18
19
|
// ---------------------------------------------------------------------------
|
|
19
20
|
// Public API
|
|
@@ -71,10 +72,9 @@ export function MemoryListPanel({ org, className, now }: MemoryListPanelProps) {
|
|
|
71
72
|
|
|
72
73
|
if (isLoading) {
|
|
73
74
|
return (
|
|
74
|
-
<
|
|
75
|
+
<LoadingRegion
|
|
75
76
|
className={cn("stg:space-y-2", className)}
|
|
76
|
-
|
|
77
|
-
aria-label="Loading memories"
|
|
77
|
+
label="Loading memories"
|
|
78
78
|
>
|
|
79
79
|
{Array.from({ length: 2 }, (_, i) => (
|
|
80
80
|
<div
|
|
@@ -82,7 +82,7 @@ export function MemoryListPanel({ org, className, now }: MemoryListPanelProps) {
|
|
|
82
82
|
className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
|
|
83
83
|
/>
|
|
84
84
|
))}
|
|
85
|
-
</
|
|
85
|
+
</LoadingRegion>
|
|
86
86
|
);
|
|
87
87
|
}
|
|
88
88
|
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { useCallback, useRef, type KeyboardEvent } from "react";
|
|
4
|
-
import { HARNESS_LABELS, type HarnessOption } from "./harness.js";
|
|
5
|
-
|
|
6
|
-
const OPTIONS: readonly HarnessOption[] = ["native", "cursor"];
|
|
4
|
+
import { HARNESS_LABELS, HARNESS_OPTIONS as OPTIONS, type HarnessOption } from "./harness.js";
|
|
7
5
|
|
|
8
6
|
/** Props for {@link HarnessSelector}. */
|
|
9
7
|
export interface HarnessSelectorProps {
|
|
@@ -47,7 +47,7 @@ export interface ModelSelectorProps {
|
|
|
47
47
|
readonly onHarnessChange?: (harness: HarnessOption) => void;
|
|
48
48
|
/**
|
|
49
49
|
* Restrict which harnesses appear in the dropdown.
|
|
50
|
-
* When omitted, shows
|
|
50
|
+
* When omitted, shows every harness the platform runs ({@link HARNESS_OPTIONS}).
|
|
51
51
|
*/
|
|
52
52
|
readonly availableHarnesses?: readonly HarnessOption[];
|
|
53
53
|
/** Override the curated (featured) list for the current harness. */
|
|
@@ -218,12 +218,7 @@ export function ModelSelector({
|
|
|
218
218
|
const searchRef = useRef<HTMLInputElement>(null);
|
|
219
219
|
const listRef = useRef<HTMLDivElement>(null);
|
|
220
220
|
|
|
221
|
-
const resolvedHarnesses =
|
|
222
|
-
if (availableHarnesses) return availableHarnesses;
|
|
223
|
-
// For now, show native and cursor (the two harnesses with models in the registry).
|
|
224
|
-
// Future harnesses will be added to the registry and appear here automatically.
|
|
225
|
-
return HARNESS_OPTIONS.filter((h) => h === "native" || h === "cursor");
|
|
226
|
-
}, [availableHarnesses]);
|
|
221
|
+
const resolvedHarnesses = availableHarnesses ?? HARNESS_OPTIONS;
|
|
227
222
|
|
|
228
223
|
const selectedModel = (value ? getModel(value) : undefined) ?? defaultModel ?? undefined;
|
|
229
224
|
|
package/src/models/harness.ts
CHANGED
|
@@ -4,18 +4,33 @@ import { Harness } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
|
|
|
4
4
|
* String literal alias for the proto {@link Harness} enum.
|
|
5
5
|
*
|
|
6
6
|
* Used on component props and hook options so platform builders
|
|
7
|
-
* do not need to import proto enums to use the SDK.
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
* do not need to import proto enums to use the SDK. Exactly the
|
|
8
|
+
* engines the platform runs; it grows only when the proto enum does.
|
|
9
|
+
*/
|
|
10
|
+
export type HarnessOption = "native" | "cursor";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The proto {@link Harness} member for each option — the one table the
|
|
14
|
+
* option set is read from, so the SDK can never offer an engine the proto
|
|
15
|
+
* does not name (stigmer/stigmer#1143: four extra options once mapped
|
|
16
|
+
* silently to NATIVE). Listed in proto enum order.
|
|
17
|
+
*/
|
|
18
|
+
const HARNESS_BY_OPTION = {
|
|
19
|
+
native: Harness.NATIVE,
|
|
20
|
+
cursor: Harness.CURSOR,
|
|
21
|
+
} as const satisfies Record<HarnessOption, Exclude<Harness, Harness.UNSPECIFIED>>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The reverse of {@link HARNESS_BY_OPTION}, keyed by every engine the proto
|
|
25
|
+
* names. Typed over the whole enum (minus UNSPECIFIED), so a member added
|
|
26
|
+
* to the proto is a compile error here until it has an option — and then
|
|
27
|
+
* in {@link HARNESS_BY_OPTION} and {@link HARNESS_META} until it has an
|
|
28
|
+
* entry in each.
|
|
11
29
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
| "claude_code"
|
|
17
|
-
| "codex"
|
|
18
|
-
| "devin";
|
|
30
|
+
const OPTION_BY_HARNESS: Readonly<Record<Exclude<Harness, Harness.UNSPECIFIED>, HarnessOption>> = {
|
|
31
|
+
[Harness.NATIVE]: "native",
|
|
32
|
+
[Harness.CURSOR]: "cursor",
|
|
33
|
+
};
|
|
19
34
|
|
|
20
35
|
/** Display metadata for a single harness. */
|
|
21
36
|
export interface HarnessDisplayInfo {
|
|
@@ -34,10 +49,6 @@ export interface HarnessDisplayInfo {
|
|
|
34
49
|
export const HARNESS_META: Readonly<Record<HarnessOption, HarnessDisplayInfo>> = {
|
|
35
50
|
native: { label: "Stigmer", description: "Stigmer's native agent runtime" },
|
|
36
51
|
cursor: { label: "Cursor", description: "Cursor IDE agent with codebase indexing" },
|
|
37
|
-
copilot: { label: "GitHub Copilot", description: "GitHub-native sub-agent orchestration" },
|
|
38
|
-
claude_code: { label: "Claude Agent SDK", description: "Anthropic's agent SDK with built-in tools" },
|
|
39
|
-
codex: { label: "OpenAI Codex", description: "Thread-based execution with structured output" },
|
|
40
|
-
devin: { label: "Devin", description: "Full autonomous engineer, session-based" },
|
|
41
52
|
};
|
|
42
53
|
|
|
43
54
|
/**
|
|
@@ -50,28 +61,24 @@ export const HARNESS_LABELS: Readonly<Record<HarnessOption, string>> = Object.fr
|
|
|
50
61
|
Object.entries(HARNESS_META).map(([k, v]) => [k, v.label]),
|
|
51
62
|
) as Record<HarnessOption, string>;
|
|
52
63
|
|
|
53
|
-
/** Ordered list of all registered harness IDs. */
|
|
54
|
-
export const HARNESS_OPTIONS: readonly HarnessOption[] = [
|
|
55
|
-
"native",
|
|
56
|
-
"cursor",
|
|
57
|
-
"copilot",
|
|
58
|
-
"claude_code",
|
|
59
|
-
"codex",
|
|
60
|
-
"devin",
|
|
61
|
-
];
|
|
64
|
+
/** Ordered list of all registered harness IDs, in proto enum order. */
|
|
65
|
+
export const HARNESS_OPTIONS: readonly HarnessOption[] = Object.keys(HARNESS_BY_OPTION) as HarnessOption[];
|
|
62
66
|
|
|
63
67
|
/** Platform default — resolves to the native engine. */
|
|
64
68
|
export const DEFAULT_HARNESS: HarnessOption = "native";
|
|
65
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Whether a string names a {@link HarnessOption} — the check for a value
|
|
72
|
+
* the SDK did not write itself (a stored preference, a URL parameter),
|
|
73
|
+
* which may name an engine this platform does not run.
|
|
74
|
+
*/
|
|
75
|
+
export function isHarnessOption(value: string): value is HarnessOption {
|
|
76
|
+
return Object.hasOwn(HARNESS_BY_OPTION, value);
|
|
77
|
+
}
|
|
78
|
+
|
|
66
79
|
/** Convert a {@link HarnessOption} string to the proto {@link Harness} enum. */
|
|
67
80
|
export function toProtoHarness(h: HarnessOption): Harness {
|
|
68
|
-
|
|
69
|
-
case "cursor":
|
|
70
|
-
return Harness.CURSOR;
|
|
71
|
-
case "native":
|
|
72
|
-
default:
|
|
73
|
-
return Harness.NATIVE;
|
|
74
|
-
}
|
|
81
|
+
return HARNESS_BY_OPTION[h];
|
|
75
82
|
}
|
|
76
83
|
|
|
77
84
|
/**
|
|
@@ -80,12 +87,7 @@ export function toProtoHarness(h: HarnessOption): Harness {
|
|
|
80
87
|
* `UNSPECIFIED` and any unknown values map to `"native"`.
|
|
81
88
|
*/
|
|
82
89
|
export function fromProtoHarness(h: Harness): HarnessOption {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
case Harness.NATIVE:
|
|
87
|
-
case Harness.UNSPECIFIED:
|
|
88
|
-
default:
|
|
89
|
-
return "native";
|
|
90
|
-
}
|
|
90
|
+
// A wire value may be UNSPECIFIED, or an engine newer than this build.
|
|
91
|
+
const known: Partial<Record<Harness, HarnessOption>> = OPTION_BY_HARNESS;
|
|
92
|
+
return known[h] ?? DEFAULT_HARNESS;
|
|
91
93
|
}
|
package/src/models/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ export { ModelSelector } from "./ModelSelector.js";
|
|
|
9
9
|
export type { ModelSelectorProps } from "./ModelSelector.js";
|
|
10
10
|
export { HarnessSelector } from "./HarnessSelector.js";
|
|
11
11
|
export type { HarnessSelectorProps } from "./HarnessSelector.js";
|
|
12
|
-
export { DEFAULT_HARNESS, HARNESS_LABELS, HARNESS_META, HARNESS_OPTIONS, toProtoHarness, fromProtoHarness } from "./harness.js";
|
|
12
|
+
export { DEFAULT_HARNESS, HARNESS_LABELS, HARNESS_META, HARNESS_OPTIONS, isHarnessOption, toProtoHarness, fromProtoHarness } from "./harness.js";
|
|
13
13
|
export type { HarnessOption, HarnessDisplayInfo } from "./harness.js";
|
|
14
14
|
export { FAST_SERVICE_TIER, toProtoServiceTier, fromProtoServiceTier } from "./service-tier.js";
|
|
15
15
|
export type { ServiceTierOption } from "./service-tier.js";
|
|
@@ -7,6 +7,7 @@ import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
|
7
7
|
import type { OAuthApp } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/api_pb";
|
|
8
8
|
import { Tooltip, TooltipContent, TooltipTrigger } from "../internal/tooltip.js";
|
|
9
9
|
import { useOAuthAppList } from "./useOAuthAppList.js";
|
|
10
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
10
11
|
|
|
11
12
|
// ---------------------------------------------------------------------------
|
|
12
13
|
// Public API
|
|
@@ -76,10 +77,9 @@ export function OAuthAppListPanel({
|
|
|
76
77
|
|
|
77
78
|
if (isLoading) {
|
|
78
79
|
return (
|
|
79
|
-
<
|
|
80
|
+
<LoadingRegion
|
|
80
81
|
className={cn("stg:space-y-2", className)}
|
|
81
|
-
|
|
82
|
-
aria-label="Loading OAuth apps"
|
|
82
|
+
label="Loading OAuth apps"
|
|
83
83
|
>
|
|
84
84
|
{Array.from({ length: 2 }, (_, i) => (
|
|
85
85
|
<div
|
|
@@ -87,7 +87,7 @@ export function OAuthAppListPanel({
|
|
|
87
87
|
className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
|
|
88
88
|
/>
|
|
89
89
|
))}
|
|
90
|
-
</
|
|
90
|
+
</LoadingRegion>
|
|
91
91
|
);
|
|
92
92
|
}
|
|
93
93
|
|
|
@@ -7,14 +7,24 @@ import type { Organization } from "@stigmer/protos/ai/stigmer/tenancy/organizati
|
|
|
7
7
|
import { useOrganization } from "./useOrganization.js";
|
|
8
8
|
import { useUpdateOrganization } from "./useUpdateOrganization.js";
|
|
9
9
|
import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
|
|
10
|
+
import { useServerInfo } from "../server-info.js";
|
|
10
11
|
import { MemoryEnabledRow } from "../internal/MemoryEnabledRow.js";
|
|
11
12
|
import { StandingContextField } from "../internal/StandingContextField.js";
|
|
12
13
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
14
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
15
|
+
|
|
16
|
+
/** The memory row's copy where each member's own switch must also be on. */
|
|
17
|
+
const MEMBER_CONSENT_MEMORY_HELPER_TEXT =
|
|
18
|
+
"Allow agents to remember confirmed facts about members of this organization. Each member must also turn memory on in their own account preferences; once a member has many memories, each conversation recalls their most relevant ones, shown on the execution. Changes apply immediately.";
|
|
19
|
+
|
|
20
|
+
/** The memory row's copy on a server where this switch alone decides memory. */
|
|
21
|
+
const ORG_ALONE_MEMORY_HELPER_TEXT =
|
|
22
|
+
"Allow agents to remember confirmed facts. On this server this switch alone decides memory; once there are many memories, each conversation recalls the most relevant ones, shown on the execution. Changes apply immediately.";
|
|
13
23
|
|
|
14
24
|
/** Props for {@link OrgPreferencesPanel}. */
|
|
15
25
|
export interface OrgPreferencesPanelProps {
|
|
16
26
|
/** The ID of the organization whose preferences to display and edit. */
|
|
17
|
-
readonly
|
|
27
|
+
readonly org: string;
|
|
18
28
|
/** Fired with the updated resource after a successful save. */
|
|
19
29
|
readonly onUpdated?: (org: Organization) => void;
|
|
20
30
|
/** Additional CSS class names for the root container. */
|
|
@@ -38,11 +48,11 @@ export interface OrgPreferencesPanelProps {
|
|
|
38
48
|
*
|
|
39
49
|
* @example
|
|
40
50
|
* ```tsx
|
|
41
|
-
* <OrgPreferencesPanel
|
|
51
|
+
* <OrgPreferencesPanel org="org-id-123" />
|
|
42
52
|
* ```
|
|
43
53
|
*/
|
|
44
54
|
export function OrgPreferencesPanel({
|
|
45
|
-
|
|
55
|
+
org,
|
|
46
56
|
onUpdated,
|
|
47
57
|
className,
|
|
48
58
|
}: OrgPreferencesPanelProps) {
|
|
@@ -52,7 +62,7 @@ export function OrgPreferencesPanel({
|
|
|
52
62
|
isLoading: isFetching,
|
|
53
63
|
error: fetchError,
|
|
54
64
|
refetch,
|
|
55
|
-
} = useOrganization(
|
|
65
|
+
} = useOrganization(org || null);
|
|
56
66
|
|
|
57
67
|
const {
|
|
58
68
|
update,
|
|
@@ -69,10 +79,19 @@ export function OrgPreferencesPanel({
|
|
|
69
79
|
error: memoryFlagError,
|
|
70
80
|
} = useUpdateOrganization();
|
|
71
81
|
|
|
82
|
+
// On a server that trusts every request, this switch alone decides memory:
|
|
83
|
+
// there is no person's switch to also turn on (the account panel says so
|
|
84
|
+
// in its place).
|
|
85
|
+
const { serverInfo } = useServerInfo();
|
|
86
|
+
const memoryHelperText =
|
|
87
|
+
serverInfo?.authenticationRequired === false
|
|
88
|
+
? ORG_ALONE_MEMORY_HELPER_TEXT
|
|
89
|
+
: MEMBER_CONSENT_MEMORY_HELPER_TEXT;
|
|
90
|
+
|
|
72
91
|
// Fail-open: OSS local mode has no IAM service, so editing stays
|
|
73
92
|
// available there; cloud gets a genuine server verdict.
|
|
74
93
|
const { allowed: canEdit } = useCheckPermission(
|
|
75
|
-
|
|
94
|
+
org ? { kind: "organization", id: org } : null,
|
|
76
95
|
"can_edit",
|
|
77
96
|
);
|
|
78
97
|
|
|
@@ -159,14 +178,13 @@ export function OrgPreferencesPanel({
|
|
|
159
178
|
|
|
160
179
|
if (isFetching && !organization) {
|
|
161
180
|
return (
|
|
162
|
-
<
|
|
181
|
+
<LoadingRegion
|
|
163
182
|
className={cn("stg:space-y-4", className)}
|
|
164
|
-
|
|
165
|
-
aria-label="Loading organization preferences"
|
|
183
|
+
label="Loading organization preferences"
|
|
166
184
|
>
|
|
167
185
|
<div className="stg:bg-muted-subtle stg:h-28 stg:animate-pulse stg:rounded" />
|
|
168
186
|
<div className="stg:bg-muted-subtle stg:h-8 stg:w-32 stg:animate-pulse stg:rounded" />
|
|
169
|
-
</
|
|
187
|
+
</LoadingRegion>
|
|
170
188
|
);
|
|
171
189
|
}
|
|
172
190
|
|
|
@@ -221,7 +239,7 @@ export function OrgPreferencesPanel({
|
|
|
221
239
|
saving={isSavingMemoryFlag}
|
|
222
240
|
readOnly={!canEdit}
|
|
223
241
|
error={memoryFlagError}
|
|
224
|
-
helperText=
|
|
242
|
+
helperText={memoryHelperText}
|
|
225
243
|
/>
|
|
226
244
|
|
|
227
245
|
{!canEdit && (
|
|
@@ -12,6 +12,7 @@ import { useResourceAvailable, ApiResourceKind } from "../deployment-mode.js";
|
|
|
12
12
|
import { useCheckPermission } from "../iam-policy/useCheckPermission.js";
|
|
13
13
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
14
14
|
import { useCopyFeedback } from "../internal/useCopyFeedback.js";
|
|
15
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
15
16
|
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
18
|
// Constants
|
|
@@ -27,7 +28,7 @@ const LOGO_URL_MAX_LEN = 2048;
|
|
|
27
28
|
/** Props for {@link OrgProfilePanel}. */
|
|
28
29
|
export interface OrgProfilePanelProps {
|
|
29
30
|
/** The ID of the organization to display and edit. */
|
|
30
|
-
readonly
|
|
31
|
+
readonly org: string;
|
|
31
32
|
/** Fired with the updated resource after a successful save. */
|
|
32
33
|
readonly onUpdated?: (org: Organization) => void;
|
|
33
34
|
/** Additional CSS class names for the root container. */
|
|
@@ -48,13 +49,13 @@ export interface OrgProfilePanelProps {
|
|
|
48
49
|
* @example
|
|
49
50
|
* ```tsx
|
|
50
51
|
* <OrgProfilePanel
|
|
51
|
-
*
|
|
52
|
+
* org="org-id-123"
|
|
52
53
|
* onUpdated={(org) => console.log("Saved:", org.metadata?.name)}
|
|
53
54
|
* />
|
|
54
55
|
* ```
|
|
55
56
|
*/
|
|
56
57
|
export function OrgProfilePanel({
|
|
57
|
-
|
|
58
|
+
org,
|
|
58
59
|
onUpdated,
|
|
59
60
|
className,
|
|
60
61
|
}: OrgProfilePanelProps) {
|
|
@@ -64,7 +65,7 @@ export function OrgProfilePanel({
|
|
|
64
65
|
isLoading: isFetching,
|
|
65
66
|
error: fetchError,
|
|
66
67
|
refetch,
|
|
67
|
-
} = useOrganization(
|
|
68
|
+
} = useOrganization(org || null);
|
|
68
69
|
|
|
69
70
|
const {
|
|
70
71
|
update,
|
|
@@ -152,10 +153,9 @@ export function OrgProfilePanel({
|
|
|
152
153
|
|
|
153
154
|
if (isFetching && !organization) {
|
|
154
155
|
return (
|
|
155
|
-
<
|
|
156
|
+
<LoadingRegion
|
|
156
157
|
className={cn("stg:space-y-4", className)}
|
|
157
|
-
|
|
158
|
-
aria-label="Loading organization profile"
|
|
158
|
+
label="Loading organization profile"
|
|
159
159
|
>
|
|
160
160
|
{Array.from({ length: 4 }, (_, i) => (
|
|
161
161
|
<div
|
|
@@ -164,7 +164,7 @@ export function OrgProfilePanel({
|
|
|
164
164
|
style={{ width: `${90 - i * 12}%` }}
|
|
165
165
|
/>
|
|
166
166
|
))}
|
|
167
|
-
</
|
|
167
|
+
</LoadingRegion>
|
|
168
168
|
);
|
|
169
169
|
}
|
|
170
170
|
|
|
@@ -342,7 +342,7 @@ export function OrgProfilePanel({
|
|
|
342
342
|
</div>
|
|
343
343
|
|
|
344
344
|
{/* -- Identity Providers summary -- */}
|
|
345
|
-
<IdentityProvidersSummary
|
|
345
|
+
<IdentityProvidersSummary org={org} orgSlug={serverSlug} />
|
|
346
346
|
</form>
|
|
347
347
|
);
|
|
348
348
|
}
|
|
@@ -357,10 +357,10 @@ export function OrgProfilePanel({
|
|
|
357
357
|
* not create providers; otherwise it says who manages them.
|
|
358
358
|
*/
|
|
359
359
|
function IdentityProvidersSummary({
|
|
360
|
-
|
|
360
|
+
org,
|
|
361
361
|
orgSlug,
|
|
362
362
|
}: {
|
|
363
|
-
|
|
363
|
+
org: string;
|
|
364
364
|
orgSlug: string;
|
|
365
365
|
}) {
|
|
366
366
|
const idpAvailable = useResourceAvailable(ApiResourceKind.identity_provider);
|
|
@@ -368,7 +368,7 @@ function IdentityProvidersSummary({
|
|
|
368
368
|
idpAvailable && orgSlug ? orgSlug : null,
|
|
369
369
|
);
|
|
370
370
|
const createCheck = useCheckPermission(
|
|
371
|
-
idpAvailable &&
|
|
371
|
+
idpAvailable && org ? { kind: "organization", id: org } : null,
|
|
372
372
|
"can_create_idp",
|
|
373
373
|
);
|
|
374
374
|
const deniedCreate = !createCheck.isLoading && !createCheck.allowed;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { OrgProvider, useOrg, useActiveOrgSlug, useActiveOrgId } from "./OrgProvider.js";
|
|
2
2
|
export type { OrgContextValue } from "./OrgProvider.js";
|
|
3
|
+
export { useFollowSessionOrganization } from "./useFollowSessionOrganization.js";
|
|
3
4
|
export { useOrgGate } from "./useOrgGate.js";
|
|
4
5
|
export type {
|
|
5
6
|
UseOrgGateOptions,
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* useFollowSessionOrganization: a session page's shell follows the session
|
|
5
|
+
* into its own organization (stigmer/stigmer#1580).
|
|
6
|
+
*
|
|
7
|
+
* Session URLs name no organization, so a link can open a conversation
|
|
8
|
+
* that belongs to an organization other than the active one. The session
|
|
9
|
+
* surface already acts in the session's organization (SessionViewer reads
|
|
10
|
+
* `session.metadata.org`); this hook makes the rest of the shell agree
|
|
11
|
+
* with it: when the loaded session's organization is one of the person's
|
|
12
|
+
* and is not the active one, it becomes the active one, so the
|
|
13
|
+
* organization menu, the sidebar and every host control keyed on the
|
|
14
|
+
* active organization name the conversation's.
|
|
15
|
+
*
|
|
16
|
+
* It aligns once per visit to a conversation, when that session and the
|
|
17
|
+
* organization list have both loaded. A choice the person makes while the
|
|
18
|
+
* conversation stays open stands, so the hook never fights the
|
|
19
|
+
* organization menu; opening a conversation again is a new visit, and it
|
|
20
|
+
* follows that conversation again, as a link to it would. A session in an organization
|
|
21
|
+
* the person does not belong to (a guest's view of a share) switches
|
|
22
|
+
* nothing. The switch goes through OrgProvider's `setActiveOrg`, the
|
|
23
|
+
* programmatic path: it persists the choice and clears the fetch cache
|
|
24
|
+
* like any switch, and it fires no host `onOrgChanged` navigation.
|
|
25
|
+
*/
|
|
26
|
+
import { useEffect, useRef } from "react";
|
|
27
|
+
import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
28
|
+
|
|
29
|
+
import { useOrg } from "./OrgProvider.js";
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Makes the loaded session's organization the active one, once per visit
|
|
33
|
+
* to the conversation, when the person belongs to it.
|
|
34
|
+
*
|
|
35
|
+
* @param session - The session the page shows, or null while it loads.
|
|
36
|
+
*/
|
|
37
|
+
export function useFollowSessionOrganization(session: Session | null): void {
|
|
38
|
+
const { orgs, activeOrg, setActiveOrg, isLoading } = useOrg();
|
|
39
|
+
const followedSessionRef = useRef<string | null>(null);
|
|
40
|
+
|
|
41
|
+
const sessionId = session?.metadata?.id ?? "";
|
|
42
|
+
const sessionOrg = session?.metadata?.org ?? "";
|
|
43
|
+
const activeSlug = activeOrg?.metadata?.slug ?? "";
|
|
44
|
+
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (sessionId === "" || sessionOrg === "" || isLoading || activeSlug === "")
|
|
47
|
+
return;
|
|
48
|
+
if (followedSessionRef.current === sessionId) return;
|
|
49
|
+
followedSessionRef.current = sessionId;
|
|
50
|
+
if (sessionOrg === activeSlug) return;
|
|
51
|
+
const target = orgs.find((org) => org.metadata?.slug === sessionOrg);
|
|
52
|
+
if (target !== undefined) setActiveOrg(target);
|
|
53
|
+
}, [sessionId, sessionOrg, activeSlug, isLoading, orgs, setActiveOrg]);
|
|
54
|
+
}
|
|
@@ -81,7 +81,7 @@ export function planInputFromDraft(draft: PlanDraft): PlanDraftResult {
|
|
|
81
81
|
}
|
|
82
82
|
const managed = draft.features.includes(Feature.managed_organizations);
|
|
83
83
|
let includedManagedOrganizations: number | undefined;
|
|
84
|
-
let
|
|
84
|
+
let perExtraOrgMicros: bigint | undefined;
|
|
85
85
|
if (managed && draft.includedManagedOrganizations.trim() !== "") {
|
|
86
86
|
const included = Number(draft.includedManagedOrganizations.trim());
|
|
87
87
|
if (!Number.isInteger(included) || included < 0) {
|
|
@@ -92,7 +92,7 @@ export function planInputFromDraft(draft: PlanDraft): PlanDraftResult {
|
|
|
92
92
|
if (fee === null) {
|
|
93
93
|
return { ok: false, field: "perExtraOrganizationUsd", message: "A dollar amount per organization, e.g. 25." };
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
perExtraOrgMicros = fee;
|
|
96
96
|
}
|
|
97
97
|
return {
|
|
98
98
|
ok: true,
|
|
@@ -108,7 +108,7 @@ export function planInputFromDraft(draft: PlanDraft): PlanDraftResult {
|
|
|
108
108
|
terms: {
|
|
109
109
|
monthlyMinimumMicros: minimum,
|
|
110
110
|
usageShareBasisPoints: share,
|
|
111
|
-
...(
|
|
111
|
+
...(perExtraOrgMicros === undefined ? {} : { perExtraOrgMicros }),
|
|
112
112
|
},
|
|
113
113
|
},
|
|
114
114
|
};
|
|
@@ -13,6 +13,7 @@ import { usePlatformClientList } from "./usePlatformClientList.js";
|
|
|
13
13
|
import { useDeletePlatformClient } from "./useDeletePlatformClient.js";
|
|
14
14
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
15
15
|
import { isPlatformClientExpired } from "./expiry.js";
|
|
16
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
16
17
|
|
|
17
18
|
/** Props for {@link PlatformClientListPanel}. */
|
|
18
19
|
export interface PlatformClientListPanelProps {
|
|
@@ -87,10 +88,9 @@ export function PlatformClientListPanel({
|
|
|
87
88
|
|
|
88
89
|
if (isLoading) {
|
|
89
90
|
return (
|
|
90
|
-
<
|
|
91
|
+
<LoadingRegion
|
|
91
92
|
className={cn("stg:space-y-2", className)}
|
|
92
|
-
|
|
93
|
-
aria-label="Loading platform clients"
|
|
93
|
+
label="Loading platform clients"
|
|
94
94
|
>
|
|
95
95
|
{Array.from({ length: 2 }, (_, i) => (
|
|
96
96
|
<div
|
|
@@ -98,7 +98,7 @@ export function PlatformClientListPanel({
|
|
|
98
98
|
className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg"
|
|
99
99
|
/>
|
|
100
100
|
))}
|
|
101
|
-
</
|
|
101
|
+
</LoadingRegion>
|
|
102
102
|
);
|
|
103
103
|
}
|
|
104
104
|
|
|
@@ -49,6 +49,7 @@ import { PluginIcon } from "./PluginIcon.js";
|
|
|
49
49
|
import { usePlugin } from "./usePlugin.js";
|
|
50
50
|
import { usePluginMembers } from "./usePluginMembers.js";
|
|
51
51
|
import { usePluginVersions } from "./usePluginVersions.js";
|
|
52
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
52
53
|
|
|
53
54
|
const OVERVIEW_TAB: TabItem = { id: "overview", label: "Overview" };
|
|
54
55
|
const VERSIONS_TAB: TabItem = { id: "versions", label: "Versions" };
|
|
@@ -526,7 +527,7 @@ function stateLabel(state: PluginState): string | undefined {
|
|
|
526
527
|
|
|
527
528
|
function LoadingSkeleton({ className }: { readonly className?: string }) {
|
|
528
529
|
return (
|
|
529
|
-
<
|
|
530
|
+
<LoadingRegion className={cn("stg:flex stg:flex-col stg:gap-6", className)} label="Loading plugin details">
|
|
530
531
|
<div className="stg:flex stg:items-start stg:gap-3">
|
|
531
532
|
<div className="stg:mt-1 stg:size-6 stg:shrink-0 stg:animate-pulse stg:rounded stg:bg-muted" />
|
|
532
533
|
<div className="stg:flex-1 stg:space-y-2">
|
|
@@ -535,7 +536,7 @@ function LoadingSkeleton({ className }: { readonly className?: string }) {
|
|
|
535
536
|
</div>
|
|
536
537
|
</div>
|
|
537
538
|
<div className="stg:h-24 stg:animate-pulse stg:rounded-lg stg:bg-muted" />
|
|
538
|
-
</
|
|
539
|
+
</LoadingRegion>
|
|
539
540
|
);
|
|
540
541
|
}
|
|
541
542
|
|
|
@@ -109,14 +109,14 @@ export function useMcpServerReadiness(
|
|
|
109
109
|
oauth.clearError();
|
|
110
110
|
// A sign-in that fails leaves the row on "Sign in" with the reason; one
|
|
111
111
|
// that lands refetches so the row says "Signed in" from the grant.
|
|
112
|
-
void oauth.startOAuth(id, org
|
|
112
|
+
void oauth.startOAuth(id, org).then(
|
|
113
113
|
() => {
|
|
114
114
|
refetch();
|
|
115
115
|
onSignedIn?.(id);
|
|
116
116
|
},
|
|
117
117
|
() => undefined,
|
|
118
118
|
);
|
|
119
|
-
}, [kind, mcpServer, org, oauth.clearError, oauth.startOAuth,
|
|
119
|
+
}, [kind, mcpServer, org, oauth.clearError, oauth.startOAuth, refetch, onSignedIn]);
|
|
120
120
|
|
|
121
121
|
const error = useMemo(() => {
|
|
122
122
|
if (readError) return readError;
|
package/src/portal-container.ts
CHANGED
|
@@ -29,6 +29,14 @@ import { createContext, useContext } from "react";
|
|
|
29
29
|
* - an `HTMLElement` (the mounted themed container): portaled content
|
|
30
30
|
* renders inside it and inherits the `--stgm-*` token scope.
|
|
31
31
|
*
|
|
32
|
+
* One more source sets the value: an SDK modal dialog (`DialogShell`)
|
|
33
|
+
* re-provides it with an element inside the `<dialog>`, `null` until that
|
|
34
|
+
* element mounts. A modal dialog is in the browser's top layer and makes
|
|
35
|
+
* the rest of the document inert, so a popup portaled to `document.body`
|
|
36
|
+
* from inside it would paint beneath it and take no input (stigmer#1509).
|
|
37
|
+
* The element inherits the theme from the provider's in-tree scope, and
|
|
38
|
+
* carries no `data-stgm-portal` marker.
|
|
39
|
+
*
|
|
32
40
|
* The default MUST stay `undefined`, never `null`: an explicit `null`
|
|
33
41
|
* makes Base UI portals render NOWHERE, which breaks every popup for
|
|
34
42
|
* consumers embedding components outside a provider (stigmer-cloud#271).
|
|
@@ -110,7 +110,7 @@ export function ProviderStandingConsole({ className }: ProviderStandingConsolePr
|
|
|
110
110
|
completed a pass since this deployment came up.
|
|
111
111
|
</p>
|
|
112
112
|
) : (
|
|
113
|
-
<ul className="stg:m-0 stg:grid stg:list-none stg:gap-2 stg:p-0 sm:
|
|
113
|
+
<ul className="stg:m-0 stg:grid stg:list-none stg:gap-2 stg:p-0 stg:sm:grid-cols-2">
|
|
114
114
|
{providers.map((entry) => (
|
|
115
115
|
<StandingCard key={entry.provider} entry={entry} />
|
|
116
116
|
))}
|