@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
|
@@ -15,7 +15,7 @@ export interface UseCreateBillingPortalSessionReturn {
|
|
|
15
15
|
* portal returns to `redirect.returnUrl` when given, else to the page
|
|
16
16
|
* the person is on.
|
|
17
17
|
*/
|
|
18
|
-
readonly openPortal: (
|
|
18
|
+
readonly openPortal: (org: string) => Promise<void>;
|
|
19
19
|
/** `true` while the portal session is being created. */
|
|
20
20
|
readonly isLoading: boolean;
|
|
21
21
|
/** Error from the last failed attempt, or `null` when healthy. */
|
|
@@ -36,7 +36,7 @@ export interface UseCreateBillingPortalSessionReturn {
|
|
|
36
36
|
* ```tsx
|
|
37
37
|
* const { openPortal, isLoading } = useCreateBillingPortalSession();
|
|
38
38
|
*
|
|
39
|
-
* <button onClick={() => openPortal(
|
|
39
|
+
* <button onClick={() => openPortal(org)} disabled={isLoading}>
|
|
40
40
|
* Manage payment methods
|
|
41
41
|
* </button>
|
|
42
42
|
* ```
|
|
@@ -53,7 +53,7 @@ export function useCreateBillingPortalSession(
|
|
|
53
53
|
const clearError = useCallback(() => setError(null), []);
|
|
54
54
|
|
|
55
55
|
const openPortal = useCallback(
|
|
56
|
-
async (
|
|
56
|
+
async (org: string): Promise<void> => {
|
|
57
57
|
setIsLoading(true);
|
|
58
58
|
setError(null);
|
|
59
59
|
|
|
@@ -66,7 +66,7 @@ export function useCreateBillingPortalSession(
|
|
|
66
66
|
: "";
|
|
67
67
|
|
|
68
68
|
const response = await stigmer.billing.createBillingPortalSession({
|
|
69
|
-
|
|
69
|
+
org,
|
|
70
70
|
returnUrl,
|
|
71
71
|
});
|
|
72
72
|
|
|
@@ -9,7 +9,7 @@ import { leaveForStripe, type BillingRedirect } from "./redirect.js";
|
|
|
9
9
|
/** Parameters for {@link useCreateCheckoutSession}'s `createSession` callback. */
|
|
10
10
|
export interface CreateCheckoutSessionInput {
|
|
11
11
|
/** Organization purchasing credits. */
|
|
12
|
-
readonly
|
|
12
|
+
readonly org: string;
|
|
13
13
|
/** Credit pack to purchase: its id, e.g. "starter", "growth" or "team" (the pack named Scale). */
|
|
14
14
|
readonly packId: string;
|
|
15
15
|
/** URL to redirect to after successful payment. */
|
|
@@ -54,7 +54,7 @@ export interface UseCreateCheckoutSessionReturn {
|
|
|
54
54
|
*
|
|
55
55
|
* const handleBuy = () => {
|
|
56
56
|
* createSession({
|
|
57
|
-
*
|
|
57
|
+
* org,
|
|
58
58
|
* packId: "growth",
|
|
59
59
|
* successUrl: `${window.location.origin}/settings/billing?checkout=success`,
|
|
60
60
|
* cancelUrl: `${window.location.origin}/settings/billing`,
|
|
@@ -81,7 +81,7 @@ export function useCreateCheckoutSession(
|
|
|
81
81
|
|
|
82
82
|
try {
|
|
83
83
|
const response = await stigmer.billing.createCreditCheckoutSession({
|
|
84
|
-
|
|
84
|
+
org: input.org,
|
|
85
85
|
packId: input.packId,
|
|
86
86
|
successUrl: input.successUrl,
|
|
87
87
|
cancelUrl: input.cancelUrl,
|
|
@@ -14,7 +14,7 @@ export interface UseCreatePaymentMethodSetupSessionReturn {
|
|
|
14
14
|
* page can reopen that choice), or without a query when they leave.
|
|
15
15
|
* The saved card becomes the organization's default for every invoice.
|
|
16
16
|
*/
|
|
17
|
-
readonly addPaymentMethod: (
|
|
17
|
+
readonly addPaymentMethod: (org: string, planId?: string) => Promise<void>;
|
|
18
18
|
/** `true` while the setup session is being created. */
|
|
19
19
|
readonly isSubmitting: boolean;
|
|
20
20
|
/** Error from the last failed attempt, or `null` when healthy. */
|
|
@@ -41,7 +41,7 @@ export function useCreatePaymentMethodSetupSession(
|
|
|
41
41
|
const [error, setError] = useState<Error | null>(null);
|
|
42
42
|
|
|
43
43
|
const addPaymentMethod = useCallback(
|
|
44
|
-
async (
|
|
44
|
+
async (org: string, planId?: string): Promise<void> => {
|
|
45
45
|
setIsSubmitting(true);
|
|
46
46
|
setError(null);
|
|
47
47
|
try {
|
|
@@ -51,7 +51,7 @@ export function useCreatePaymentMethodSetupSession(
|
|
|
51
51
|
success.set("plan", planId);
|
|
52
52
|
}
|
|
53
53
|
const response = await stigmer.billing.createPaymentMethodSetupSession({
|
|
54
|
-
|
|
54
|
+
org,
|
|
55
55
|
successUrl: `${billingPage}?${success.toString()}`,
|
|
56
56
|
cancelUrl: billingPage,
|
|
57
57
|
});
|
|
@@ -48,14 +48,14 @@ export interface UseCreditLedgerOptions {
|
|
|
48
48
|
* filtering. Returns the entries and total page count for building
|
|
49
49
|
* pagination controls.
|
|
50
50
|
*
|
|
51
|
-
* Pass `null` as `
|
|
51
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
52
52
|
*
|
|
53
|
-
* @param
|
|
53
|
+
* @param org - Organization ID, or `null` to skip.
|
|
54
54
|
* @param options - Pagination and filter options.
|
|
55
55
|
*
|
|
56
56
|
* @example
|
|
57
57
|
* ```tsx
|
|
58
|
-
* const { ledger, isLoading } = useCreditLedger(
|
|
58
|
+
* const { ledger, isLoading } = useCreditLedger(org, { pageNum: 1 });
|
|
59
59
|
*
|
|
60
60
|
* if (isLoading) return <Skeleton />;
|
|
61
61
|
* if (!ledger) return null;
|
|
@@ -64,7 +64,7 @@ export interface UseCreditLedgerOptions {
|
|
|
64
64
|
* ```
|
|
65
65
|
*/
|
|
66
66
|
export function useCreditLedger(
|
|
67
|
-
|
|
67
|
+
org: string | null,
|
|
68
68
|
options: UseCreditLedgerOptions = {},
|
|
69
69
|
): UseCreditLedgerReturn {
|
|
70
70
|
const stigmer = useStigmer();
|
|
@@ -73,10 +73,10 @@ export function useCreditLedger(
|
|
|
73
73
|
const typeFilterKey = typeFilter?.join(",") ?? "";
|
|
74
74
|
|
|
75
75
|
const { data: ledger, isLoading, isRefetching, error, refetch } = useFetch(
|
|
76
|
-
|
|
76
|
+
org
|
|
77
77
|
? () =>
|
|
78
78
|
stigmer.billing.getCreditLedger({
|
|
79
|
-
|
|
79
|
+
org,
|
|
80
80
|
// The SDK page number is 0-based (matches the proto/backend); the
|
|
81
81
|
// hook's pageNum is 1-based for ergonomic UI controls.
|
|
82
82
|
page: { num: pageNum - 1, size: pageSize },
|
|
@@ -84,7 +84,7 @@ export function useCreditLedger(
|
|
|
84
84
|
view,
|
|
85
85
|
})
|
|
86
86
|
: null,
|
|
87
|
-
[
|
|
87
|
+
[org, pageNum, pageSize, typeFilterKey, view, stigmer],
|
|
88
88
|
null as CreditLedgerResponse | null,
|
|
89
89
|
);
|
|
90
90
|
|
|
@@ -27,15 +27,15 @@ export interface UseCustomerModelPricingReturn {
|
|
|
27
27
|
* billing policy markup already applied, organized by harness
|
|
28
28
|
* and cost tier.
|
|
29
29
|
*
|
|
30
|
-
* Pass `null` as `
|
|
30
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
31
31
|
* Pass `undefined` to fetch default pricing (no org override).
|
|
32
32
|
*
|
|
33
|
-
* @param
|
|
33
|
+
* @param org - Organization ID for org-specific overrides,
|
|
34
34
|
* `undefined` for default pricing, or `null` to skip.
|
|
35
35
|
*
|
|
36
36
|
* @example
|
|
37
37
|
* ```tsx
|
|
38
|
-
* const { pricing, isLoading } = useCustomerModelPricing(
|
|
38
|
+
* const { pricing, isLoading } = useCustomerModelPricing(org);
|
|
39
39
|
*
|
|
40
40
|
* if (isLoading) return <Skeleton />;
|
|
41
41
|
* if (!pricing) return null;
|
|
@@ -46,20 +46,20 @@ export interface UseCustomerModelPricingReturn {
|
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
48
|
export function useCustomerModelPricing(
|
|
49
|
-
|
|
49
|
+
org: string | undefined | null,
|
|
50
50
|
): UseCustomerModelPricingReturn {
|
|
51
51
|
const stigmer = useStigmer();
|
|
52
52
|
|
|
53
|
-
const skip =
|
|
53
|
+
const skip = org === null;
|
|
54
54
|
|
|
55
55
|
const { data: pricing, isLoading, isRefetching, error, refetch } = useFetch(
|
|
56
56
|
skip
|
|
57
57
|
? null
|
|
58
58
|
: () =>
|
|
59
59
|
stigmer.billing.getCustomerModelPricing(
|
|
60
|
-
|
|
60
|
+
org ? { org } : undefined,
|
|
61
61
|
),
|
|
62
|
-
[
|
|
62
|
+
[org, stigmer],
|
|
63
63
|
null as CustomerModelPricingResponse | null,
|
|
64
64
|
);
|
|
65
65
|
|
|
@@ -50,19 +50,19 @@ export interface UseEntitlementsReturn {
|
|
|
50
50
|
*
|
|
51
51
|
* @example
|
|
52
52
|
* ```tsx
|
|
53
|
-
* const { allows } = useEntitlements(
|
|
53
|
+
* const { allows } = useEntitlements(org);
|
|
54
54
|
* if (allows(Feature.teams) === false) return <UpgradeNotice feature={Feature.teams} />;
|
|
55
55
|
* ```
|
|
56
56
|
*/
|
|
57
57
|
export function useEntitlements(
|
|
58
|
-
|
|
58
|
+
org: string | null,
|
|
59
59
|
options?: UseEntitlementsOptions,
|
|
60
60
|
): UseEntitlementsReturn {
|
|
61
61
|
const stigmer = useStigmer();
|
|
62
|
-
const enabled = (options?.enabled ?? true) &&
|
|
62
|
+
const enabled = (options?.enabled ?? true) && org !== null && org !== "";
|
|
63
63
|
const { data: entitlements, isLoading, error, refetch } = useFetch(
|
|
64
|
-
enabled &&
|
|
65
|
-
[enabled,
|
|
64
|
+
enabled && org ? () => stigmer.subscription.getEntitlements(create(GetEntitlementsInputSchema, { org })) : null,
|
|
65
|
+
[enabled, org, stigmer],
|
|
66
66
|
null as GetEntitlementsOutput | null,
|
|
67
67
|
{ refetchOnWindowFocus: true },
|
|
68
68
|
);
|
|
@@ -44,14 +44,14 @@ export interface UsePeriodEstimateReturn {
|
|
|
44
44
|
* Cloud-only; the caller needs `can_view_billing` on the organization.
|
|
45
45
|
*/
|
|
46
46
|
export function usePeriodEstimate(
|
|
47
|
-
|
|
47
|
+
org: string | null,
|
|
48
48
|
options?: UsePeriodEstimateOptions,
|
|
49
49
|
): UsePeriodEstimateReturn {
|
|
50
50
|
const stigmer = useStigmer();
|
|
51
|
-
const enabled = (options?.enabled ?? true) &&
|
|
51
|
+
const enabled = (options?.enabled ?? true) && org !== null && org !== "";
|
|
52
52
|
const { data: estimate, isLoading, error, refetch } = useFetch(
|
|
53
|
-
enabled &&
|
|
54
|
-
[enabled,
|
|
53
|
+
enabled && org ? () => stigmer.subscription.getPeriodEstimate(create(GetPeriodEstimateInputSchema, { org })) : null,
|
|
54
|
+
[enabled, org, stigmer],
|
|
55
55
|
null as PeriodEstimate | null,
|
|
56
56
|
{ refetchOnWindowFocus: true },
|
|
57
57
|
);
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useMemo, useState } from "react";
|
|
4
|
+
import { create } from "@bufbuild/protobuf";
|
|
5
|
+
import type { ProviderKey } from "@stigmer/protos/ai/stigmer/billing/providerkey/v1/api_pb";
|
|
6
|
+
import {
|
|
7
|
+
DeleteProviderKeyInputSchema,
|
|
8
|
+
ListProviderKeysInputSchema,
|
|
9
|
+
SetProviderKeyInputSchema,
|
|
10
|
+
} from "@stigmer/protos/ai/stigmer/billing/providerkey/v1/io_pb";
|
|
11
|
+
import { useStigmer } from "../hooks.js";
|
|
12
|
+
import { toError } from "../internal/toError.js";
|
|
13
|
+
import { useFetch } from "../internal/useFetch.js";
|
|
14
|
+
|
|
15
|
+
/** The providers an organization may bring its own key for, by their wire names. */
|
|
16
|
+
export type ProviderKeyProvider = "anthropic" | "openai";
|
|
17
|
+
|
|
18
|
+
/** Options for {@link useProviderKeys}. */
|
|
19
|
+
export interface UseProviderKeysOptions {
|
|
20
|
+
/** Skip fetching while `false` (stable no-op). Default `true`. */
|
|
21
|
+
readonly enabled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Return value of {@link useProviderKeys}. */
|
|
25
|
+
export interface UseProviderKeysReturn {
|
|
26
|
+
/**
|
|
27
|
+
* The keys that serve the organization, its own and any it inherits from
|
|
28
|
+
* its integrator, without their secrets; `null` before the first
|
|
29
|
+
* successful fetch.
|
|
30
|
+
*/
|
|
31
|
+
readonly keys: readonly ProviderKey[] | null;
|
|
32
|
+
/** `true` while the initial fetch is in flight. */
|
|
33
|
+
readonly isLoading: boolean;
|
|
34
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
35
|
+
readonly error: Error | null;
|
|
36
|
+
/** Discard cached data and re-fetch from the server. */
|
|
37
|
+
readonly refetch: () => void;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Data hook that lists an organization's own LLM provider keys.
|
|
42
|
+
*
|
|
43
|
+
* No answer carries a key: each row names the provider, the key's last
|
|
44
|
+
* four characters, who saved it and when, when it last served a call, and
|
|
45
|
+
* whether the organization's plan still lets it be used. A managed
|
|
46
|
+
* organization's list includes its integrator's keys for the providers it
|
|
47
|
+
* holds none of (`inheritedFromOrg`). Every member may read it
|
|
48
|
+
* (`can_view_billing`).
|
|
49
|
+
*
|
|
50
|
+
* Cloud-only.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* const { keys } = useProviderKeys(org);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function useProviderKeys(org: string | null, options?: UseProviderKeysOptions): UseProviderKeysReturn {
|
|
58
|
+
const stigmer = useStigmer();
|
|
59
|
+
const enabled = (options?.enabled ?? true) && org !== null && org !== "";
|
|
60
|
+
const { data, isLoading, error, refetch } = useFetch(
|
|
61
|
+
enabled && org ? () => stigmer.providerkey.list(create(ListProviderKeysInputSchema, { org })) : null,
|
|
62
|
+
[enabled, org, stigmer],
|
|
63
|
+
null as { readonly keys: readonly ProviderKey[] } | null,
|
|
64
|
+
);
|
|
65
|
+
const keys = data?.keys ?? null;
|
|
66
|
+
return useMemo(() => ({ keys, isLoading, error, refetch }), [keys, isLoading, error, refetch]);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Return value of {@link useProviderKeyActions}. */
|
|
70
|
+
export interface UseProviderKeyActionsReturn {
|
|
71
|
+
/**
|
|
72
|
+
* Save the organization's key for a provider, replacing any it holds.
|
|
73
|
+
* The provider is asked about the key once first, and a key it rejects is
|
|
74
|
+
* refused. Refused with the `PLAN_UPGRADE_REQUIRED` reason when the
|
|
75
|
+
* organization's plan does not include bring-your-own provider keys.
|
|
76
|
+
* Resolves with the saved key, without its secret.
|
|
77
|
+
*/
|
|
78
|
+
readonly setKey: (org: string, provider: ProviderKeyProvider, apiKey: string) => Promise<ProviderKey>;
|
|
79
|
+
/** Remove the organization's key for a provider; allowed on every plan. */
|
|
80
|
+
readonly removeKey: (org: string, provider: ProviderKeyProvider) => Promise<ProviderKey>;
|
|
81
|
+
/** `true` while a save or a removal is in flight. */
|
|
82
|
+
readonly isSubmitting: boolean;
|
|
83
|
+
/** Error from the last failed attempt, or `null` when healthy. */
|
|
84
|
+
readonly error: Error | null;
|
|
85
|
+
/** Reset `error` to `null`. */
|
|
86
|
+
readonly clearError: () => void;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Behaviour hook that saves and removes an organization's own provider
|
|
91
|
+
* keys. The caller needs `can_manage_billing` on the organization (its
|
|
92
|
+
* admins). Refetch {@link useProviderKeys} after a change.
|
|
93
|
+
*/
|
|
94
|
+
export function useProviderKeyActions(): UseProviderKeyActionsReturn {
|
|
95
|
+
const stigmer = useStigmer();
|
|
96
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
97
|
+
const [error, setError] = useState<Error | null>(null);
|
|
98
|
+
|
|
99
|
+
const run = useCallback(async (call: () => Promise<ProviderKey>): Promise<ProviderKey> => {
|
|
100
|
+
setIsSubmitting(true);
|
|
101
|
+
setError(null);
|
|
102
|
+
try {
|
|
103
|
+
return await call();
|
|
104
|
+
} catch (e) {
|
|
105
|
+
const err = toError(e);
|
|
106
|
+
setError(err);
|
|
107
|
+
throw err;
|
|
108
|
+
} finally {
|
|
109
|
+
setIsSubmitting(false);
|
|
110
|
+
}
|
|
111
|
+
}, []);
|
|
112
|
+
|
|
113
|
+
const setKey = useCallback(
|
|
114
|
+
(org: string, provider: ProviderKeyProvider, apiKey: string) =>
|
|
115
|
+
run(() => stigmer.providerkey.set(create(SetProviderKeyInputSchema, { org, provider, apiKey }))),
|
|
116
|
+
[run, stigmer.providerkey],
|
|
117
|
+
);
|
|
118
|
+
const removeKey = useCallback(
|
|
119
|
+
(org: string, provider: ProviderKeyProvider) =>
|
|
120
|
+
run(() => stigmer.providerkey.delete(create(DeleteProviderKeyInputSchema, { org, provider }))),
|
|
121
|
+
[run, stigmer.providerkey],
|
|
122
|
+
);
|
|
123
|
+
const clearError = useCallback(() => setError(null), []);
|
|
124
|
+
|
|
125
|
+
return useMemo(
|
|
126
|
+
() => ({ setKey, removeKey, isSubmitting, error, clearError }),
|
|
127
|
+
[setKey, removeKey, isSubmitting, error, clearError],
|
|
128
|
+
);
|
|
129
|
+
}
|
|
@@ -8,7 +8,7 @@ import type { BillingAccount } from "@stigmer/protos/ai/stigmer/billing/v1/billi
|
|
|
8
8
|
/** Input for {@link useSetAutoRechargeConfig}. */
|
|
9
9
|
export interface SetAutoRechargeConfigInput {
|
|
10
10
|
/** Organization ID to configure auto-recharge for. */
|
|
11
|
-
readonly
|
|
11
|
+
readonly org: string;
|
|
12
12
|
/** Whether auto-recharge is enabled. */
|
|
13
13
|
readonly enabled: boolean;
|
|
14
14
|
/** Trigger threshold in micro-USD. */
|
|
@@ -46,7 +46,7 @@ export interface UseSetAutoRechargeConfigReturn {
|
|
|
46
46
|
* const { setConfig, isSubmitting, error } = useSetAutoRechargeConfig();
|
|
47
47
|
*
|
|
48
48
|
* await setConfig({
|
|
49
|
-
*
|
|
49
|
+
* org,
|
|
50
50
|
* enabled: true,
|
|
51
51
|
* thresholdMicros: BigInt(5_000_000),
|
|
52
52
|
* rechargeAmountMicros: BigInt(50_000_000),
|
|
@@ -68,7 +68,7 @@ export function useSetAutoRechargeConfig(): UseSetAutoRechargeConfigReturn {
|
|
|
68
68
|
|
|
69
69
|
try {
|
|
70
70
|
const account = await stigmer.billing.setAutoRechargeConfig({
|
|
71
|
-
|
|
71
|
+
org: input.org,
|
|
72
72
|
enabled: input.enabled,
|
|
73
73
|
thresholdMicros: input.thresholdMicros,
|
|
74
74
|
rechargeAmountMicros: input.rechargeAmountMicros,
|
|
@@ -4,7 +4,7 @@ import { useMemo } from "react";
|
|
|
4
4
|
import { create } from "@bufbuild/protobuf";
|
|
5
5
|
import { isNotFound } from "@stigmer/sdk";
|
|
6
6
|
import type { Subscription } from "@stigmer/protos/ai/stigmer/billing/subscription/v1/api_pb";
|
|
7
|
-
import {
|
|
7
|
+
import { GetSubscriptionForOrgInputSchema } from "@stigmer/protos/ai/stigmer/billing/subscription/v1/io_pb";
|
|
8
8
|
import { useStigmer } from "../hooks.js";
|
|
9
9
|
import { useFetch } from "../internal/useFetch.js";
|
|
10
10
|
|
|
@@ -34,7 +34,7 @@ export interface UseSubscriptionReturn {
|
|
|
34
34
|
* this hook reads that as `null`, because never subscribed is a state (the
|
|
35
35
|
* Free plan), not a failure.
|
|
36
36
|
*
|
|
37
|
-
* Pass `null` as `
|
|
37
|
+
* Pass `null` as `org` to skip fetching. Refetches when the window
|
|
38
38
|
* regains focus, so a plan changed in another window, or a card saved in
|
|
39
39
|
* the system browser, shows on return.
|
|
40
40
|
*
|
|
@@ -42,16 +42,16 @@ export interface UseSubscriptionReturn {
|
|
|
42
42
|
*
|
|
43
43
|
* @example
|
|
44
44
|
* ```tsx
|
|
45
|
-
* const { subscription } = useSubscription(
|
|
45
|
+
* const { subscription } = useSubscription(org);
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
|
-
export function useSubscription(
|
|
48
|
+
export function useSubscription(org: string | null): UseSubscriptionReturn {
|
|
49
49
|
const stigmer = useStigmer();
|
|
50
50
|
const { data: subscription, isLoading, isRefetching, error, refetch } = useFetch(
|
|
51
|
-
|
|
51
|
+
org
|
|
52
52
|
? () =>
|
|
53
53
|
stigmer.subscription
|
|
54
|
-
.
|
|
54
|
+
.getForOrg(create(GetSubscriptionForOrgInputSchema, { org }))
|
|
55
55
|
.catch((err: unknown) => {
|
|
56
56
|
if (isNotFound(err)) {
|
|
57
57
|
return null;
|
|
@@ -59,7 +59,7 @@ export function useSubscription(orgId: string | null): UseSubscriptionReturn {
|
|
|
59
59
|
throw err;
|
|
60
60
|
})
|
|
61
61
|
: null,
|
|
62
|
-
[
|
|
62
|
+
[org, stigmer],
|
|
63
63
|
null as Subscription | null,
|
|
64
64
|
{ refetchOnWindowFocus: true },
|
|
65
65
|
);
|
|
@@ -119,19 +119,21 @@ export function AgentChannelsPanel({
|
|
|
119
119
|
// label worth showing.
|
|
120
120
|
const { channelApps } = useChannelAppList(agent.metadata?.org || null);
|
|
121
121
|
|
|
122
|
-
// Mirrors the server's create bar (agent
|
|
123
|
-
// create/apply handlers enforce on the referenced agent
|
|
124
|
-
//
|
|
122
|
+
// Mirrors the server's create bar (agent can_manage_audience — the
|
|
123
|
+
// permission the create/apply handlers enforce on the referenced agent:
|
|
124
|
+
// a channel puts the agent in front of a wider audience, the owner's
|
|
125
|
+
// decision, not an editor's) so the connect affordance never appears to
|
|
126
|
+
// someone whose create would be refused.
|
|
125
127
|
const { allowed: canCreate } = useCheckPermission(
|
|
126
128
|
agentId ? { kind: "agent", id: agentId } : null,
|
|
127
|
-
"
|
|
129
|
+
"can_manage_audience",
|
|
128
130
|
);
|
|
129
131
|
|
|
130
|
-
// Installs
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
//
|
|
134
|
-
//
|
|
132
|
+
// Installs need a channel delivery runtime, and only Stigmer Cloud
|
|
133
|
+
// composes one today; CRUD needs none. Outside Cloud the cards render and
|
|
134
|
+
// toggles work, but connect affordances give way to the notice. When a
|
|
135
|
+
// self-hosted edition composes a runtime, this becomes a probe of that
|
|
136
|
+
// runtime rather than an edition compare.
|
|
135
137
|
const installsAvailable = useDeploymentMode() === "cloud";
|
|
136
138
|
|
|
137
139
|
const { deleteChannel } = useDeleteAgentChannel();
|
|
@@ -175,7 +175,7 @@ function ServingAppOption({
|
|
|
175
175
|
checked={checked}
|
|
176
176
|
onChange={onSelect}
|
|
177
177
|
disabled={disabled}
|
|
178
|
-
className="stg:mt-0.5
|
|
178
|
+
className="stg:mt-0.5"
|
|
179
179
|
/>
|
|
180
180
|
<span className="stg:min-w-0">
|
|
181
181
|
<span className="stg:block stg:text-xs stg:font-medium stg:text-foreground">{label}</span>
|
|
@@ -4,7 +4,7 @@ import { type FormEvent, useCallback, useId, useMemo, useState } from "react";
|
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { getUserMessage, toChannelAppUpdateInput } from "@stigmer/sdk";
|
|
6
6
|
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
7
|
-
import {
|
|
7
|
+
import { usePublicBaseUrl } from "../public-base-url-context.js";
|
|
8
8
|
import { useUpdateChannelApp } from "./useUpdateChannelApp.js";
|
|
9
9
|
import { useDeleteChannelApp } from "./useDeleteChannelApp.js";
|
|
10
10
|
import type { ChannelAppCreateHandoff } from "./CreateChannelAppForm.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
WHATSAPP_CHANNEL_APP_WEBHOOK_FIELDS,
|
|
18
18
|
whatsappChannelAppWebhookUrl,
|
|
19
19
|
} from "./whatsappAppSetup.js";
|
|
20
|
-
import { CopyBlock, CopyRow, FormField } from "./internal.js";
|
|
20
|
+
import { CopyBlock, CopyRow, FormField, UnknownAddressRow } from "./internal.js";
|
|
21
21
|
import { PermissionGate } from "../iam-policy/PermissionGate.js";
|
|
22
22
|
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
23
23
|
|
|
@@ -70,8 +70,8 @@ export interface ChannelAppDetailPanelProps {
|
|
|
70
70
|
*
|
|
71
71
|
* The credentials form is offered to a caller who may edit the app
|
|
72
72
|
* (`can_edit`) and the deletion section to one who may delete it
|
|
73
|
-
* (`can_delete`):
|
|
74
|
-
*
|
|
73
|
+
* (`can_delete`): the organization's admins. Someone granted viewer on an
|
|
74
|
+
* app sees its setup values with no actions.
|
|
75
75
|
*/
|
|
76
76
|
export function ChannelAppDetailPanel({
|
|
77
77
|
channelApp,
|
|
@@ -200,7 +200,7 @@ function SlackAppDetail({
|
|
|
200
200
|
readonly onUpdated?: (app: ChannelApp) => void;
|
|
201
201
|
}) {
|
|
202
202
|
const baseId = useId();
|
|
203
|
-
const
|
|
203
|
+
const publicBaseUrl = usePublicBaseUrl();
|
|
204
204
|
const { update, isUpdating, error: updateError, clearError } = useUpdateChannelApp();
|
|
205
205
|
|
|
206
206
|
const slack = channelApp.spec?.providerConfig?.case === "slack"
|
|
@@ -214,9 +214,14 @@ function SlackAppDetail({
|
|
|
214
214
|
const appId = channelApp.metadata?.id ?? "";
|
|
215
215
|
const name = channelApp.metadata?.name ?? "";
|
|
216
216
|
|
|
217
|
+
// `undefined` while the server's public address is unknown: the row
|
|
218
|
+
// says so, and the manifest leaves out its event subscriptions.
|
|
217
219
|
const webhookUrl = useMemo(
|
|
218
|
-
() =>
|
|
219
|
-
|
|
220
|
+
() =>
|
|
221
|
+
publicBaseUrl === null
|
|
222
|
+
? undefined
|
|
223
|
+
: slackChannelAppWebhookUrl(publicBaseUrl, appId),
|
|
224
|
+
[publicBaseUrl, appId],
|
|
220
225
|
);
|
|
221
226
|
const redirectUrl = useMemo(
|
|
222
227
|
() => slackChannelAppRedirectUrl(consoleOrigin),
|
|
@@ -271,11 +276,15 @@ function SlackAppDetail({
|
|
|
271
276
|
below (Slack verifies it immediately). The completed manifest is
|
|
272
277
|
also available for review or re-paste.
|
|
273
278
|
</p>
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
+
{webhookUrl !== undefined ? (
|
|
280
|
+
<CopyRow
|
|
281
|
+
label="Events request URL"
|
|
282
|
+
value={webhookUrl}
|
|
283
|
+
copyTargetId="stgm-chapp-webhook-copy"
|
|
284
|
+
/>
|
|
285
|
+
) : (
|
|
286
|
+
<UnknownAddressRow label="Events request URL" subject="the events request URL" />
|
|
287
|
+
)}
|
|
279
288
|
<CopyRow label="OAuth redirect URL" value={redirectUrl} />
|
|
280
289
|
<CopyBlock label="Completed app manifest" value={manifest} />
|
|
281
290
|
</section>
|
|
@@ -361,7 +370,7 @@ function WhatsAppAppDetail({
|
|
|
361
370
|
readonly onUpdated?: (app: ChannelApp) => void;
|
|
362
371
|
}) {
|
|
363
372
|
const baseId = useId();
|
|
364
|
-
const
|
|
373
|
+
const publicBaseUrl = usePublicBaseUrl();
|
|
365
374
|
const { update, isUpdating, error: updateError, clearError } = useUpdateChannelApp();
|
|
366
375
|
|
|
367
376
|
const whatsapp = channelApp.spec?.providerConfig?.case === "whatsapp"
|
|
@@ -376,9 +385,13 @@ function WhatsAppAppDetail({
|
|
|
376
385
|
const appId = channelApp.metadata?.id ?? "";
|
|
377
386
|
const name = channelApp.metadata?.name ?? "";
|
|
378
387
|
|
|
388
|
+
// `undefined` while the server's public address is unknown: the row says so.
|
|
379
389
|
const webhookUrl = useMemo(
|
|
380
|
-
() =>
|
|
381
|
-
|
|
390
|
+
() =>
|
|
391
|
+
publicBaseUrl === null
|
|
392
|
+
? undefined
|
|
393
|
+
: whatsappChannelAppWebhookUrl(publicBaseUrl, appId),
|
|
394
|
+
[publicBaseUrl, appId],
|
|
382
395
|
);
|
|
383
396
|
|
|
384
397
|
const canSave =
|
|
@@ -432,11 +445,15 @@ function WhatsAppAppDetail({
|
|
|
432
445
|
</span>{" "}
|
|
433
446
|
webhook field.
|
|
434
447
|
</p>
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
448
|
+
{webhookUrl !== undefined ? (
|
|
449
|
+
<CopyRow
|
|
450
|
+
label="Callback URL"
|
|
451
|
+
value={webhookUrl}
|
|
452
|
+
copyTargetId="stgm-chapp-webhook-copy"
|
|
453
|
+
/>
|
|
454
|
+
) : (
|
|
455
|
+
<UnknownAddressRow label="Callback URL" subject="the callback URL" />
|
|
456
|
+
)}
|
|
440
457
|
{createHandoff?.verifyToken ? (
|
|
441
458
|
<CopyRow
|
|
442
459
|
label="Verify token"
|
|
@@ -7,6 +7,7 @@ import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
|
7
7
|
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
8
8
|
import { channelProviderOf } from "../channel/providers.js";
|
|
9
9
|
import { useChannelAppList } from "./useChannelAppList.js";
|
|
10
|
+
import { LoadingRegion } from "../internal/LoadingRegion.js";
|
|
10
11
|
|
|
11
12
|
// ---------------------------------------------------------------------------
|
|
12
13
|
// Public API
|
|
@@ -25,8 +26,8 @@ export interface ChannelAppListPanelProps {
|
|
|
25
26
|
readonly onRefetchRef?: (refetch: () => void) => void;
|
|
26
27
|
/**
|
|
27
28
|
* Shown when the list is empty. Defaults to "No channel apps registered
|
|
28
|
-
* yet." The list holds only the apps the caller may view (
|
|
29
|
-
* anyone granted viewer on
|
|
29
|
+
* yet." The list holds only the apps the caller may view (the
|
|
30
|
+
* organization's admins, and anyone granted viewer on an app), so a host
|
|
30
31
|
* that knows the caller may not manage channel apps should say who does
|
|
31
32
|
* instead.
|
|
32
33
|
*/
|
|
@@ -69,15 +70,14 @@ export function ChannelAppListPanel({
|
|
|
69
70
|
|
|
70
71
|
if (isLoading) {
|
|
71
72
|
return (
|
|
72
|
-
<
|
|
73
|
+
<LoadingRegion
|
|
73
74
|
className={cn("stg:space-y-2", className)}
|
|
74
|
-
|
|
75
|
-
aria-label="Loading channel apps"
|
|
75
|
+
label="Loading channel apps"
|
|
76
76
|
>
|
|
77
77
|
{Array.from({ length: 2 }, (_, i) => (
|
|
78
78
|
<div key={i} className="stg:bg-muted-subtle stg:h-14 stg:animate-pulse stg:rounded-lg" />
|
|
79
79
|
))}
|
|
80
|
-
</
|
|
80
|
+
</LoadingRegion>
|
|
81
81
|
);
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -311,7 +311,6 @@ function ProviderPicker({
|
|
|
311
311
|
checked={checked}
|
|
312
312
|
onChange={() => onChange(p.id)}
|
|
313
313
|
disabled={disabled}
|
|
314
|
-
className="stg:accent-current"
|
|
315
314
|
/>
|
|
316
315
|
<p.Icon className="stg:size-3.5 stg:shrink-0 stg:text-foreground" />
|
|
317
316
|
<span className="stg:text-xs stg:font-medium stg:text-foreground">{p.label}</span>
|
package/src/channel-app/copy.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* thing.
|
|
5
5
|
*
|
|
6
6
|
* A channel app carries its organization's Slack or Meta app secrets, so the
|
|
7
|
-
* model shows it to
|
|
8
|
-
*
|
|
9
|
-
* (stigmer/stigmer#1384). An empty list is therefore not evidence that none
|
|
7
|
+
* model shows it to the organization's admins and anyone granted viewer on
|
|
8
|
+
* it, and plain members and viewers may not see it at all
|
|
9
|
+
* (stigmer/stigmer#1384, #1409). An empty list is therefore not evidence that none
|
|
10
10
|
* is registered, so a caller who may not create channel apps is told who
|
|
11
11
|
* manages them instead of being told that nothing exists.
|
|
12
12
|
*/
|