@stigmer/react 3.12.0 → 3.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/access/ManageAccessDialog.d.ts.map +1 -1
- package/access/ManageAccessDialog.js +7 -2
- package/access/ManageAccessDialog.js.map +1 -1
- package/activity/format-relative-time.d.ts +11 -9
- package/activity/format-relative-time.d.ts.map +1 -1
- package/activity/format-relative-time.js +11 -9
- package/activity/format-relative-time.js.map +1 -1
- package/agent/steps/CapabilitiesStep.js +5 -2
- package/agent/steps/CapabilitiesStep.js.map +1 -1
- package/agent/steps/IdentityStep.d.ts.map +1 -1
- package/agent/steps/IdentityStep.js +6 -5
- package/agent/steps/IdentityStep.js.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -1
- package/agent-instance/CreateAgentInstanceDialog.js +10 -2
- package/agent-instance/CreateAgentInstanceDialog.js.map +1 -1
- package/api-key/ApiKeyCreatedAlert.d.ts.map +1 -1
- package/api-key/ApiKeyCreatedAlert.js +12 -20
- package/api-key/ApiKeyCreatedAlert.js.map +1 -1
- package/api-key/ApiKeyListPanel.d.ts.map +1 -1
- package/api-key/ApiKeyListPanel.js +3 -23
- package/api-key/ApiKeyListPanel.js.map +1 -1
- package/api-key/CreateApiKeyForm.d.ts.map +1 -1
- package/api-key/CreateApiKeyForm.js +6 -10
- package/api-key/CreateApiKeyForm.js.map +1 -1
- package/approval-defaults-context.d.ts +47 -0
- package/approval-defaults-context.d.ts.map +1 -0
- package/approval-defaults-context.js +27 -0
- package/approval-defaults-context.js.map +1 -0
- package/attachment/index.d.ts +2 -0
- package/attachment/index.d.ts.map +1 -1
- package/attachment/index.js +1 -0
- package/attachment/index.js.map +1 -1
- package/attachment/vision-preflight.d.ts +113 -0
- package/attachment/vision-preflight.d.ts.map +1 -0
- package/attachment/vision-preflight.js +143 -0
- package/attachment/vision-preflight.js.map +1 -0
- package/billing/AutoRechargeCard.d.ts.map +1 -1
- package/billing/AutoRechargeCard.js +3 -2
- package/billing/AutoRechargeCard.js.map +1 -1
- package/billing/BillingSection.d.ts.map +1 -1
- package/billing/BillingSection.js +3 -2
- package/billing/BillingSection.js.map +1 -1
- package/channel/ChannelConversationsDialog.d.ts.map +1 -1
- package/channel/ChannelConversationsDialog.js +5 -4
- package/channel/ChannelConversationsDialog.js.map +1 -1
- package/channel/ChannelCredentialsDialog.d.ts.map +1 -1
- package/channel/ChannelCredentialsDialog.js +9 -4
- package/channel/ChannelCredentialsDialog.js.map +1 -1
- package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
- package/channel/ChannelTemplatesDialog.js +5 -4
- package/channel/ChannelTemplatesDialog.js.map +1 -1
- package/channel/ConnectSlackDialog.d.ts.map +1 -1
- package/channel/ConnectSlackDialog.js +9 -4
- package/channel/ConnectSlackDialog.js.map +1 -1
- package/channel/ConnectWhatsAppDialog.d.ts.map +1 -1
- package/channel/ConnectWhatsAppDialog.js +9 -4
- package/channel/ConnectWhatsAppDialog.js.map +1 -1
- package/channel/useChannelSessions.d.ts.map +1 -1
- package/channel/useChannelSessions.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.d.ts.map +1 -1
- package/channel-app/ChannelAppDetailPanel.js +8 -5
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/channel-app/CreateChannelAppForm.d.ts.map +1 -1
- package/channel-app/CreateChannelAppForm.js +12 -7
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/channel-app/internal.d.ts +0 -1
- package/channel-app/internal.d.ts.map +1 -1
- package/channel-app/internal.js +5 -10
- package/channel-app/internal.js.map +1 -1
- package/composer/ComposerToolbar.js +2 -1
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/SessionComposer.d.ts +1 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +120 -13
- package/composer/SessionComposer.js.map +1 -1
- package/composer/icons.d.ts +0 -1
- package/composer/icons.d.ts.map +1 -1
- package/composer/icons.js +0 -3
- package/composer/icons.js.map +1 -1
- package/conversation/ConversationComposer.js +1 -1
- package/conversation/ConversationComposer.js.map +1 -1
- package/conversation/ConversationListPane.d.ts.map +1 -1
- package/conversation/ConversationListPane.js +3 -2
- package/conversation/ConversationListPane.js.map +1 -1
- package/cursor-accounts/MemberCoverageTable.js +3 -14
- package/cursor-accounts/MemberCoverageTable.js.map +1 -1
- package/dashboard/DashboardFailedRuns.d.ts.map +1 -1
- package/dashboard/DashboardFailedRuns.js +2 -14
- package/dashboard/DashboardFailedRuns.js.map +1 -1
- package/environment/CreateEnvironmentForm.d.ts.map +1 -1
- package/environment/CreateEnvironmentForm.js +4 -8
- package/environment/CreateEnvironmentForm.js.map +1 -1
- package/environment/EnvVarForm.d.ts.map +1 -1
- package/environment/EnvVarForm.js +2 -4
- package/environment/EnvVarForm.js.map +1 -1
- package/environment/EnvironmentVariableEditor.d.ts.map +1 -1
- package/environment/EnvironmentVariableEditor.js +5 -7
- package/environment/EnvironmentVariableEditor.js.map +1 -1
- package/execution/ArtifactApplyButton.d.ts.map +1 -1
- package/execution/ArtifactApplyButton.js +2 -4
- package/execution/ArtifactApplyButton.js.map +1 -1
- package/execution/ExecutionErrorNotice.d.ts +36 -0
- package/execution/ExecutionErrorNotice.d.ts.map +1 -0
- package/execution/ExecutionErrorNotice.js +39 -0
- package/execution/ExecutionErrorNotice.js.map +1 -0
- package/execution/FilePathLink.d.ts.map +1 -1
- package/execution/FilePathLink.js +5 -8
- package/execution/FilePathLink.js.map +1 -1
- package/execution/FileReviewCard.d.ts.map +1 -1
- package/execution/FileReviewCard.js +1 -6
- package/execution/FileReviewCard.js.map +1 -1
- package/execution/FollowUpInput.d.ts.map +1 -1
- package/execution/FollowUpInput.js +1 -3
- package/execution/FollowUpInput.js.map +1 -1
- package/execution/LivenessStatusLine.d.ts +40 -0
- package/execution/LivenessStatusLine.d.ts.map +1 -0
- package/execution/LivenessStatusLine.js +34 -0
- package/execution/LivenessStatusLine.js.map +1 -0
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +31 -3
- package/execution/MessageEntry.js.map +1 -1
- package/execution/MessageThread.d.ts +25 -0
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +51 -36
- package/execution/MessageThread.js.map +1 -1
- package/execution/SetupProgress.d.ts.map +1 -1
- package/execution/SetupProgress.js +1 -1
- package/execution/SetupProgress.js.map +1 -1
- package/execution/SubAgentSection.d.ts.map +1 -1
- package/execution/SubAgentSection.js +9 -7
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/TerminalSession.d.ts +30 -0
- package/execution/TerminalSession.d.ts.map +1 -1
- package/execution/TerminalSession.js +37 -1
- package/execution/TerminalSession.js.map +1 -1
- package/execution/ToolCallDetail.d.ts +9 -0
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +16 -0
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallItem.d.ts +20 -6
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +102 -29
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/ToolRunGroup.d.ts.map +1 -1
- package/execution/ToolRunGroup.js +11 -11
- package/execution/ToolRunGroup.js.map +1 -1
- package/execution/WriteBackCard.d.ts.map +1 -1
- package/execution/WriteBackCard.js +5 -20
- package/execution/WriteBackCard.js.map +1 -1
- package/execution/index.d.ts +6 -2
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +3 -1
- package/execution/index.js.map +1 -1
- package/execution/tool-categories.d.ts +42 -7
- package/execution/tool-categories.d.ts.map +1 -1
- package/execution/tool-categories.js +38 -4
- package/execution/tool-categories.js.map +1 -1
- package/execution/tool-presenter.d.ts +17 -1
- package/execution/tool-presenter.d.ts.map +1 -1
- package/execution/tool-presenter.js +4 -1
- package/execution/tool-presenter.js.map +1 -1
- package/execution/useArtifactInspection.d.ts.map +1 -1
- package/execution/useArtifactInspection.js +4 -7
- package/execution/useArtifactInspection.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +3 -2
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/iam-policy/GrantAccessForm.d.ts.map +1 -1
- package/iam-policy/GrantAccessForm.js +2 -4
- package/iam-policy/GrantAccessForm.js.map +1 -1
- package/iam-policy/OrgMembersPanel.d.ts.map +1 -1
- package/iam-policy/OrgMembersPanel.js +3 -5
- package/iam-policy/OrgMembersPanel.js.map +1 -1
- package/iam-policy/RoleSelector.d.ts.map +1 -1
- package/iam-policy/RoleSelector.js +7 -1
- package/iam-policy/RoleSelector.js.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.js +6 -9
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +17 -26
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderListPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderListPanel.js +2 -4
- package/identity-provider/IdentityProviderListPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +8 -7
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/identity-provider/SsoLoginPrompt.js +5 -6
- package/identity-provider/SsoLoginPrompt.js.map +1 -1
- package/index.d.ts +9 -8
- package/index.d.ts.map +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/internal/DecisionButton.d.ts.map +1 -1
- package/internal/DecisionButton.js +1 -6
- package/internal/DecisionButton.js.map +1 -1
- package/internal/SpinnerIcon.d.ts +22 -0
- package/internal/SpinnerIcon.d.ts.map +1 -0
- package/internal/SpinnerIcon.js +23 -0
- package/internal/SpinnerIcon.js.map +1 -0
- package/internal/isUnimplemented.d.ts +17 -0
- package/internal/isUnimplemented.d.ts.map +1 -0
- package/internal/isUnimplemented.js +26 -0
- package/internal/isUnimplemented.js.map +1 -0
- package/internal/select-element-text.d.ts +11 -0
- package/internal/select-element-text.d.ts.map +1 -0
- package/internal/select-element-text.js +19 -0
- package/internal/select-element-text.js.map +1 -0
- package/internal/thread-card/ThreadCardShell.d.ts +27 -10
- package/internal/thread-card/ThreadCardShell.d.ts.map +1 -1
- package/internal/thread-card/ThreadCardShell.js +11 -5
- package/internal/thread-card/ThreadCardShell.js.map +1 -1
- package/internal/thread-card/glyphs.d.ts +11 -2
- package/internal/thread-card/glyphs.d.ts.map +1 -1
- package/internal/thread-card/glyphs.js +9 -3
- package/internal/thread-card/glyphs.js.map +1 -1
- package/internal/thread-card/index.d.ts +1 -1
- package/internal/thread-card/index.d.ts.map +1 -1
- package/internal/thread-card/index.js.map +1 -1
- package/internal/useCopyFeedback.d.ts +28 -0
- package/internal/useCopyFeedback.d.ts.map +1 -0
- package/internal/useCopyFeedback.js +40 -0
- package/internal/useCopyFeedback.js.map +1 -0
- package/invitation/InvitationCreatedAlert.d.ts.map +1 -1
- package/invitation/InvitationCreatedAlert.js +12 -19
- package/invitation/InvitationCreatedAlert.js.map +1 -1
- package/invitation/InvitationManager.d.ts.map +1 -1
- package/invitation/InvitationManager.js +14 -21
- package/invitation/InvitationManager.js.map +1 -1
- package/invitation/InvitationRedemption.d.ts.map +1 -1
- package/invitation/InvitationRedemption.js +2 -4
- package/invitation/InvitationRedemption.js.map +1 -1
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +16 -27
- package/library/useExportResource.js.map +1 -1
- package/manifest/ApplyManifestDialog.js +1 -1
- package/manifest/EditResourceYamlDialog.js +1 -1
- package/mcp-server/DefinitionDriftNotice.d.ts +42 -0
- package/mcp-server/DefinitionDriftNotice.d.ts.map +1 -0
- package/mcp-server/DefinitionDriftNotice.js +52 -0
- package/mcp-server/DefinitionDriftNotice.js.map +1 -0
- package/mcp-server/McpServerConnectDialog.js +8 -4
- package/mcp-server/McpServerConnectDialog.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +47 -14
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/OAuthAppForm.d.ts.map +1 -1
- package/mcp-server/OAuthAppForm.js +2 -4
- package/mcp-server/OAuthAppForm.js.map +1 -1
- package/mcp-server/internal/definitionDrift.d.ts +39 -0
- package/mcp-server/internal/definitionDrift.d.ts.map +1 -0
- package/mcp-server/internal/definitionDrift.js +122 -0
- package/mcp-server/internal/definitionDrift.js.map +1 -0
- package/mcp-server/internal/mcpServerToInput.d.ts.map +1 -1
- package/mcp-server/internal/mcpServerToInput.js +3 -0
- package/mcp-server/internal/mcpServerToInput.js.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.d.ts.map +1 -1
- package/mcp-server/steps/EnvironmentAuthStep.js +8 -4
- package/mcp-server/steps/EnvironmentAuthStep.js.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.js +5 -4
- package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
- package/mcp-server/useMcpServerConnect.d.ts +1 -1
- package/mcp-server/useMcpServerCredentials.d.ts +38 -10
- package/mcp-server/useMcpServerCredentials.d.ts.map +1 -1
- package/mcp-server/useMcpServerCredentials.js +50 -7
- package/mcp-server/useMcpServerCredentials.js.map +1 -1
- package/mcp-server/useMcpServerDefinitionDrift.d.ts +44 -0
- package/mcp-server/useMcpServerDefinitionDrift.d.ts.map +1 -0
- package/mcp-server/useMcpServerDefinitionDrift.js +61 -0
- package/mcp-server/useMcpServerDefinitionDrift.js.map +1 -0
- package/mcp-server/useOrgOAuthApp.d.ts +22 -0
- package/mcp-server/useOrgOAuthApp.d.ts.map +1 -1
- package/mcp-server/useOrgOAuthApp.js +39 -7
- package/mcp-server/useOrgOAuthApp.js.map +1 -1
- package/models/ModelRegistryContext.d.ts +7 -1
- package/models/ModelRegistryContext.d.ts.map +1 -1
- package/models/ModelRegistryContext.js.map +1 -1
- package/models/ModelSelector.js +9 -1
- package/models/ModelSelector.js.map +1 -1
- package/models/index.d.ts +2 -2
- package/models/index.d.ts.map +1 -1
- package/models/index.js +1 -1
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +88 -6
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +133 -27
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts +7 -1
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +3 -2
- package/models/useModelRegistry.js.map +1 -1
- package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -1
- package/oauth-app/CreateOAuthAppForm.js +4 -5
- package/oauth-app/CreateOAuthAppForm.js.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.js +5 -6
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
- package/organization/CreateOrganizationForm.d.ts.map +1 -1
- package/organization/CreateOrganizationForm.js +5 -9
- package/organization/CreateOrganizationForm.js.map +1 -1
- package/organization/OrgProfilePanel.d.ts.map +1 -1
- package/organization/OrgProfilePanel.js +7 -16
- package/organization/OrgProfilePanel.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/CreatePlatformClientForm.d.ts.map +1 -1
- package/platform-client/CreatePlatformClientForm.js +5 -6
- package/platform-client/CreatePlatformClientForm.js.map +1 -1
- package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +6 -7
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/platform-client/PlatformClientListPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientListPanel.js +2 -4
- package/platform-client/PlatformClientListPanel.js.map +1 -1
- package/platform-client/PlatformClientSecretAlert.d.ts.map +1 -1
- package/platform-client/PlatformClientSecretAlert.js +18 -25
- package/platform-client/PlatformClientSecretAlert.js.map +1 -1
- package/provider.d.ts +34 -1
- package/provider.d.ts.map +1 -1
- package/provider.js +14 -7
- package/provider.js.map +1 -1
- package/resource-creation/WizardNav.d.ts.map +1 -1
- package/resource-creation/WizardNav.js +2 -4
- package/resource-creation/WizardNav.js.map +1 -1
- package/resource-detail/ConfirmDialog.js +1 -1
- package/resource-detail/useCopyResource.d.ts +4 -3
- package/resource-detail/useCopyResource.d.ts.map +1 -1
- package/resource-detail/useCopyResource.js +10 -19
- package/resource-detail/useCopyResource.js.map +1 -1
- package/schedule/ScheduleDetailView.d.ts.map +1 -1
- package/schedule/ScheduleDetailView.js +2 -4
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/schedule/ScheduleForm.d.ts.map +1 -1
- package/schedule/ScheduleForm.js +6 -7
- package/schedule/ScheduleForm.js.map +1 -1
- package/session/NewSessionViewer.d.ts +52 -2
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +21 -6
- package/session/NewSessionViewer.js.map +1 -1
- package/session/SessionViewer.d.ts +63 -2
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +43 -17
- package/session/SessionViewer.js.map +1 -1
- package/session/audience.d.ts +17 -0
- package/session/audience.d.ts.map +1 -1
- package/session/index.d.ts +2 -1
- package/session/index.d.ts.map +1 -1
- package/session/index.js.map +1 -1
- package/session/run-config.d.ts +50 -0
- package/session/run-config.d.ts.map +1 -0
- package/session/run-config.js +15 -0
- package/session/run-config.js.map +1 -0
- package/session/useNewSessionFlow.d.ts +11 -0
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +29 -2
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +11 -9
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +2 -0
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +18 -4
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +33 -6
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionPanel.d.ts +37 -2
- package/session/useSessionPanel.d.ts.map +1 -1
- package/session/useSessionPanel.js +44 -10
- package/session/useSessionPanel.js.map +1 -1
- package/settings/ApiKeysSection.d.ts.map +1 -1
- package/settings/ApiKeysSection.js +3 -2
- package/settings/ApiKeysSection.js.map +1 -1
- package/settings/ChannelAppsSection.d.ts.map +1 -1
- package/settings/ChannelAppsSection.js +3 -2
- package/settings/ChannelAppsSection.js.map +1 -1
- package/settings/EnvironmentsSection.js +5 -3
- package/settings/EnvironmentsSection.js.map +1 -1
- package/settings/IdentityProvidersSection.d.ts.map +1 -1
- package/settings/IdentityProvidersSection.js +3 -2
- package/settings/IdentityProvidersSection.js.map +1 -1
- package/settings/InvitationsSection.d.ts.map +1 -1
- package/settings/InvitationsSection.js +3 -1
- package/settings/InvitationsSection.js.map +1 -1
- package/settings/MembersSection.d.ts.map +1 -1
- package/settings/MembersSection.js +3 -1
- package/settings/MembersSection.js.map +1 -1
- package/settings/OAuthAppsSection.d.ts.map +1 -1
- package/settings/OAuthAppsSection.js +3 -2
- package/settings/OAuthAppsSection.js.map +1 -1
- package/settings/OrgProfileSection.d.ts.map +1 -1
- package/settings/OrgProfileSection.js +3 -2
- package/settings/OrgProfileSection.js.map +1 -1
- package/settings/PlatformClientsSection.d.ts.map +1 -1
- package/settings/PlatformClientsSection.js +3 -2
- package/settings/PlatformClientsSection.js.map +1 -1
- package/settings/UsageSection.d.ts.map +1 -1
- package/settings/UsageSection.js +3 -1
- package/settings/UsageSection.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +18 -7
- package/sharing/ShareAgentDialog.js.map +1 -1
- package/sidebar/chrome.d.ts +3 -4
- package/sidebar/chrome.d.ts.map +1 -1
- package/sidebar/chrome.js +5 -4
- package/sidebar/chrome.js.map +1 -1
- package/skill/SkillDiffDialog.js +1 -1
- package/skill/useSkillVersions.d.ts.map +1 -1
- package/skill/useSkillVersions.js +1 -9
- package/skill/useSkillVersions.js.map +1 -1
- package/src/access/ManageAccessDialog.tsx +10 -4
- package/src/activity/format-relative-time.ts +11 -9
- package/src/agent/steps/CapabilitiesStep.tsx +6 -3
- package/src/agent/steps/IdentityStep.tsx +19 -12
- package/src/agent-instance/CreateAgentInstanceDialog.tsx +17 -8
- package/src/api-key/ApiKeyCreatedAlert.tsx +10 -19
- package/src/api-key/ApiKeyListPanel.tsx +3 -39
- package/src/api-key/CreateApiKeyForm.tsx +12 -26
- package/src/approval-defaults-context.ts +56 -0
- package/src/attachment/__tests__/vision-preflight.test.ts +311 -0
- package/src/attachment/index.ts +12 -0
- package/src/attachment/vision-preflight.ts +236 -0
- package/src/billing/AutoRechargeCard.tsx +5 -4
- package/src/billing/BillingSection.tsx +4 -3
- package/src/channel/ChannelConversationsDialog.tsx +8 -4
- package/src/channel/ChannelCredentialsDialog.tsx +14 -4
- package/src/channel/ChannelTemplatesDialog.tsx +8 -4
- package/src/channel/ConnectSlackDialog.tsx +14 -4
- package/src/channel/ConnectWhatsAppDialog.tsx +14 -4
- package/src/channel/useChannelSessions.ts +3 -0
- package/src/channel-app/ChannelAppDetailPanel.tsx +15 -12
- package/src/channel-app/CreateChannelAppForm.tsx +17 -12
- package/src/channel-app/internal.tsx +5 -25
- package/src/composer/ComposerToolbar.tsx +1 -1
- package/src/composer/SessionComposer.tsx +160 -13
- package/src/composer/__tests__/SessionComposer-modelCoherence.test.tsx +220 -0
- package/src/composer/__tests__/SessionComposer-visionPreflight.test.tsx +222 -0
- package/src/composer/icons.tsx +0 -18
- package/src/conversation/ConversationComposer.tsx +1 -1
- package/src/conversation/ConversationListPane.tsx +4 -3
- package/src/cursor-accounts/MemberCoverageTable.tsx +3 -14
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +2 -10
- package/src/dashboard/DashboardFailedRuns.tsx +2 -12
- package/src/environment/CreateEnvironmentForm.tsx +8 -27
- package/src/environment/EnvVarForm.tsx +2 -18
- package/src/environment/EnvironmentVariableEditor.tsx +5 -21
- package/src/execution/ArtifactApplyButton.tsx +2 -17
- package/src/execution/ExecutionErrorNotice.tsx +99 -0
- package/src/execution/FilePathLink.tsx +5 -9
- package/src/execution/FileReviewCard.tsx +1 -20
- package/src/execution/FollowUpInput.tsx +1 -16
- package/src/execution/LivenessStatusLine.tsx +59 -0
- package/src/execution/MessageEntry.tsx +136 -25
- package/src/execution/MessageThread.tsx +84 -83
- package/src/execution/SetupProgress.tsx +5 -1
- package/src/execution/SubAgentSection.tsx +9 -20
- package/src/execution/TerminalSession.tsx +97 -10
- package/src/execution/ToolCallDetail.tsx +19 -0
- package/src/execution/ToolCallItem.tsx +157 -37
- package/src/execution/ToolRunGroup.tsx +30 -32
- package/src/execution/WriteBackCard.tsx +5 -24
- package/src/execution/__tests__/MessageEntry-copy.test.tsx +125 -0
- package/src/execution/__tests__/MessageThread.test.tsx +97 -0
- package/src/execution/__tests__/TerminalSession.test.tsx +71 -1
- package/src/execution/__tests__/ToolCallDetail.test.tsx +33 -1
- package/src/execution/__tests__/ToolCallItem.test.tsx +299 -11
- package/src/execution/__tests__/ToolRunGroup.test.tsx +41 -9
- package/src/execution/__tests__/message-thread-slots.test.tsx +92 -0
- package/src/execution/__tests__/tool-presenter.test.tsx +41 -4
- package/src/execution/index.ts +8 -2
- package/src/execution/tool-categories.ts +72 -8
- package/src/execution/tool-presenter.ts +22 -1
- package/src/execution/useArtifactInspection.ts +4 -8
- package/src/execution/useCreateAgentExecution.ts +3 -2
- package/src/iam-policy/GrantAccessForm.tsx +2 -18
- package/src/iam-policy/OrgMembersPanel.tsx +3 -19
- package/src/iam-policy/RoleSelector.tsx +8 -1
- package/src/identity-provider/CreateIdentityProviderForm.tsx +13 -31
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +24 -49
- package/src/identity-provider/IdentityProviderListPanel.tsx +2 -18
- package/src/identity-provider/IdentityProviderWizard.tsx +15 -32
- package/src/identity-provider/SsoLoginPrompt.tsx +6 -21
- package/src/index.ts +23 -1
- package/src/internal/DecisionButton.tsx +1 -20
- package/src/internal/SpinnerIcon.tsx +42 -0
- package/src/internal/__tests__/ThreadCardShell.test.tsx +43 -7
- package/src/internal/__tests__/useCopyFeedback.test.ts +92 -0
- package/src/internal/isUnimplemented.ts +26 -0
- package/src/internal/select-element-text.ts +17 -0
- package/src/internal/thread-card/ThreadCardShell.tsx +53 -21
- package/src/internal/thread-card/glyphs.tsx +24 -3
- package/src/internal/thread-card/index.ts +1 -0
- package/src/internal/useCopyFeedback.ts +61 -0
- package/src/invitation/InvitationCreatedAlert.tsx +10 -18
- package/src/invitation/InvitationManager.tsx +23 -34
- package/src/invitation/InvitationRedemption.tsx +2 -18
- package/src/library/useExportResource.ts +15 -29
- package/src/manifest/ApplyManifestDialog.tsx +1 -1
- package/src/manifest/EditResourceYamlDialog.tsx +1 -1
- package/src/mcp-server/DefinitionDriftNotice.tsx +120 -0
- package/src/mcp-server/McpServerConnectDialog.tsx +30 -12
- package/src/mcp-server/McpServerDetailView.tsx +58 -26
- package/src/mcp-server/OAuthAppForm.tsx +2 -18
- package/src/mcp-server/__tests__/DefinitionDriftNotice.test.tsx +57 -0
- package/src/mcp-server/__tests__/VendorApprovalBlocked.surfaces.test.tsx +103 -5
- package/src/mcp-server/__tests__/byoaEditionDegradation.test.tsx +323 -0
- package/src/mcp-server/__tests__/definitionDrift.test.ts +245 -0
- package/src/mcp-server/__tests__/mcpServerToInput.test.ts +201 -0
- package/src/mcp-server/__tests__/useMcpServerCredentials.test.tsx +306 -0
- package/src/mcp-server/__tests__/useMcpServerDefinitionDrift.test.tsx +173 -0
- package/src/mcp-server/internal/definitionDrift.ts +158 -0
- package/src/mcp-server/internal/mcpServerToInput.ts +3 -0
- package/src/mcp-server/steps/EnvironmentAuthStep.tsx +19 -19
- package/src/mcp-server/steps/IdentityTransportStep.tsx +24 -23
- package/src/mcp-server/useMcpServerConnect.ts +1 -1
- package/src/mcp-server/useMcpServerCredentials.ts +87 -19
- package/src/mcp-server/useMcpServerDefinitionDrift.ts +95 -0
- package/src/mcp-server/useOrgOAuthApp.ts +54 -8
- package/src/models/ModelRegistryContext.ts +7 -1
- package/src/models/ModelSelector.tsx +37 -0
- package/src/models/__tests__/ModelSelector-visionIndicator.test.tsx +129 -0
- package/src/models/__tests__/resolveDefaultModel.test.ts +115 -0
- package/src/models/__tests__/useModelRegistry.test.tsx +99 -4
- package/src/models/index.ts +2 -2
- package/src/models/registry.ts +196 -29
- package/src/models/useModelRegistry.ts +10 -2
- package/src/oauth-app/CreateOAuthAppForm.tsx +16 -31
- package/src/oauth-app/OAuthAppDetailPanel.tsx +16 -31
- package/src/organization/CreateOrganizationForm.tsx +10 -29
- package/src/organization/OrgProfilePanel.tsx +13 -44
- package/src/platform-client/CreatePlatformClientForm.tsx +9 -29
- package/src/platform-client/PlatformClientDetailPanel.tsx +10 -30
- package/src/platform-client/PlatformClientListPanel.tsx +2 -18
- package/src/platform-client/PlatformClientSecretAlert.tsx +26 -55
- package/src/provider.tsx +76 -33
- package/src/resource-creation/WizardNav.tsx +2 -18
- package/src/resource-detail/ConfirmDialog.tsx +1 -1
- package/src/resource-detail/useCopyResource.ts +17 -23
- package/src/schedule/ScheduleDetailView.tsx +2 -18
- package/src/schedule/ScheduleForm.tsx +19 -34
- package/src/session/NewSessionViewer.tsx +85 -7
- package/src/session/SessionViewer.tsx +120 -17
- package/src/session/__tests__/audienceWiring.test.tsx +76 -0
- package/src/session/__tests__/panelNegotiation.test.tsx +302 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +134 -5
- package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +74 -0
- package/src/session/__tests__/useSessionPageFlow.runConfig.test.tsx +157 -0
- package/src/session/__tests__/useSessionPanel.test.ts +114 -0
- package/src/session/audience.ts +18 -0
- package/src/session/index.ts +2 -1
- package/src/session/run-config.ts +59 -0
- package/src/session/useNewSessionFlow.ts +39 -2
- package/src/session/useSessionConversation.ts +14 -10
- package/src/session/useSessionPageFlow.ts +51 -10
- package/src/session/useSessionPanel.ts +91 -10
- package/src/settings/ApiKeysSection.tsx +4 -3
- package/src/settings/ChannelAppsSection.tsx +4 -3
- package/src/settings/EnvironmentsSection.tsx +8 -5
- package/src/settings/IdentityProvidersSection.tsx +4 -3
- package/src/settings/InvitationsSection.tsx +4 -2
- package/src/settings/MembersSection.tsx +4 -2
- package/src/settings/OAuthAppsSection.tsx +4 -3
- package/src/settings/OrgProfileSection.tsx +4 -3
- package/src/settings/PlatformClientsSection.tsx +4 -3
- package/src/settings/UsageSection.tsx +4 -2
- package/src/sharing/ShareAgentDialog.tsx +28 -10
- package/src/sidebar/__tests__/WorkspaceSidebar.test.tsx +4 -1
- package/src/sidebar/chrome.tsx +6 -6
- package/src/skill/SkillDiffDialog.tsx +1 -1
- package/src/skill/useSkillVersions.ts +1 -11
- package/src/styles.css +43 -0
- package/src/version-history/VersionTimelineEntry.tsx +1 -21
- package/src/workflow/FailedRunsWidget.tsx +2 -9
- package/src/workflow/PendingApprovalsWidget.tsx +2 -9
- package/src/workflow/ViewYamlDialog.tsx +7 -22
- package/src/workflow/WorkflowArchitectDialog.tsx +8 -27
- package/src/workflow/WorkflowArtifactDocument.tsx +5 -9
- package/src/workflow/WorkflowCanvasEditor.tsx +39 -7
- package/src/workflow/WorkflowCanvasInner.tsx +14 -1
- package/src/workflow/WorkflowDiffGraph.tsx +7 -1
- package/src/workflow/WorkflowExecutionGraph.tsx +26 -1
- package/src/workflow/WorkflowExecutionViewer.tsx +115 -24
- package/src/workflow/WorkflowExplainDialog.tsx +8 -24
- package/src/workflow/WorkflowNode.tsx +5 -2
- package/src/workflow/WorkflowOverviewGraph.tsx +9 -1
- package/src/workflow/WorkflowRefinePanel.tsx +2 -18
- package/src/workflow/WorkflowRepairCard.tsx +2 -18
- package/src/workflow/WorkflowRunDialog.tsx +31 -24
- package/src/workflow/WorkflowTaskApprovalSummary.tsx +2 -17
- package/src/workflow/WorkflowVersionBadge.tsx +4 -13
- package/src/workflow/WorkflowVersionTimeline.tsx +1 -25
- package/src/workflow/__tests__/WorkflowExecutionViewer.reconciliation.test.tsx +48 -1
- package/src/workflow/__tests__/WorkflowNode.test.tsx +93 -0
- package/src/workflow/__tests__/WorkflowRunDialog.test.tsx +127 -0
- package/src/workflow/__tests__/graph-history.test.ts +103 -0
- package/src/workflow/__tests__/overview-graph.test.ts +17 -0
- package/src/workflow/__tests__/panelNegotiation.test.tsx +230 -0
- package/src/workflow/__tests__/useCanvasKeyboardShortcuts.undo.test.ts +115 -0
- package/src/workflow/__tests__/useWorkflowCanvas.dirty.test.tsx +178 -0
- package/src/workflow/__tests__/useWorkflowCanvas.drag.test.tsx +224 -0
- package/src/workflow/__tests__/useWorkflowCanvas.undo.test.tsx +133 -0
- package/src/workflow/__tests__/useWorkflowExecutionPanel.test.ts +100 -0
- package/src/workflow/execution-comparison/ExecutionComparisonPicker.tsx +7 -11
- package/src/workflow/execution-history/ExecutionHistoryTable.tsx +1 -25
- package/src/workflow/index.ts +1 -0
- package/src/workflow/instance/CreateWorkflowInstanceDialog.tsx +17 -8
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -1
- package/src/workflow/instance/useDeleteWorkflowInstance.ts +9 -4
- package/src/workflow/layout/registry-dimensions.ts +2 -5
- package/src/workflow/node-shell/NodeShell.tsx +4 -0
- package/src/workflow/picker/BranchAddPopover.tsx +4 -3
- package/src/workflow/task-type-visual-registry.ts +5 -3
- package/src/workflow/templates/WorkflowTemplatePreview.tsx +1 -1
- package/src/workflow/useApprovalBoundary.ts +1 -1
- package/src/workflow/useCanvasKeyboardShortcuts.ts +33 -3
- package/src/workflow/useGraphHistory.ts +22 -41
- package/src/workflow/useWorkflowCanvas.ts +126 -21
- package/src/workflow/useWorkflowExecutionPanel.ts +95 -13
- package/src/workflow/useWorkflowSave.ts +2 -15
- package/src/workflow/workflow-graph-conversions.ts +25 -3
- package/styles.css +1 -1
- package/version-history/VersionTimelineEntry.d.ts.map +1 -1
- package/version-history/VersionTimelineEntry.js +1 -23
- package/version-history/VersionTimelineEntry.js.map +1 -1
- package/workflow/CanvasTransitionEdge.d.ts +1 -1
- package/workflow/FailedRunsWidget.d.ts.map +1 -1
- package/workflow/FailedRunsWidget.js +2 -11
- package/workflow/FailedRunsWidget.js.map +1 -1
- package/workflow/PendingApprovalsWidget.d.ts.map +1 -1
- package/workflow/PendingApprovalsWidget.js +2 -11
- package/workflow/PendingApprovalsWidget.js.map +1 -1
- package/workflow/ViewYamlDialog.d.ts.map +1 -1
- package/workflow/ViewYamlDialog.js +7 -23
- package/workflow/ViewYamlDialog.js.map +1 -1
- package/workflow/WorkflowArchitectDialog.d.ts.map +1 -1
- package/workflow/WorkflowArchitectDialog.js +7 -11
- package/workflow/WorkflowArchitectDialog.js.map +1 -1
- package/workflow/WorkflowArtifactDocument.d.ts.map +1 -1
- package/workflow/WorkflowArtifactDocument.js +5 -8
- package/workflow/WorkflowArtifactDocument.js.map +1 -1
- package/workflow/WorkflowCanvasEditor.d.ts.map +1 -1
- package/workflow/WorkflowCanvasEditor.js +31 -6
- package/workflow/WorkflowCanvasEditor.js.map +1 -1
- package/workflow/WorkflowCanvasInner.d.ts +4 -2
- package/workflow/WorkflowCanvasInner.d.ts.map +1 -1
- package/workflow/WorkflowCanvasInner.js +7 -3
- package/workflow/WorkflowCanvasInner.js.map +1 -1
- package/workflow/WorkflowDiffGraph.js +6 -2
- package/workflow/WorkflowDiffGraph.js.map +1 -1
- package/workflow/WorkflowExecutionGraph.d.ts.map +1 -1
- package/workflow/WorkflowExecutionGraph.js +27 -1
- package/workflow/WorkflowExecutionGraph.js.map +1 -1
- package/workflow/WorkflowExecutionViewer.d.ts +51 -0
- package/workflow/WorkflowExecutionViewer.d.ts.map +1 -1
- package/workflow/WorkflowExecutionViewer.js +49 -18
- package/workflow/WorkflowExecutionViewer.js.map +1 -1
- package/workflow/WorkflowExplainDialog.d.ts.map +1 -1
- package/workflow/WorkflowExplainDialog.js +6 -8
- package/workflow/WorkflowExplainDialog.js.map +1 -1
- package/workflow/WorkflowNode.d.ts.map +1 -1
- package/workflow/WorkflowNode.js +2 -2
- package/workflow/WorkflowNode.js.map +1 -1
- package/workflow/WorkflowOverviewGraph.js +8 -2
- package/workflow/WorkflowOverviewGraph.js.map +1 -1
- package/workflow/WorkflowRefinePanel.d.ts.map +1 -1
- package/workflow/WorkflowRefinePanel.js +2 -4
- package/workflow/WorkflowRefinePanel.js.map +1 -1
- package/workflow/WorkflowRepairCard.d.ts.map +1 -1
- package/workflow/WorkflowRepairCard.js +2 -4
- package/workflow/WorkflowRepairCard.js.map +1 -1
- package/workflow/WorkflowRunDialog.d.ts +11 -1
- package/workflow/WorkflowRunDialog.d.ts.map +1 -1
- package/workflow/WorkflowRunDialog.js +18 -9
- package/workflow/WorkflowRunDialog.js.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.d.ts.map +1 -1
- package/workflow/WorkflowTaskApprovalSummary.js +2 -4
- package/workflow/WorkflowTaskApprovalSummary.js.map +1 -1
- package/workflow/WorkflowVersionBadge.d.ts.map +1 -1
- package/workflow/WorkflowVersionBadge.js +4 -13
- package/workflow/WorkflowVersionBadge.js.map +1 -1
- package/workflow/WorkflowVersionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowVersionTimeline.js +1 -26
- package/workflow/WorkflowVersionTimeline.js.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.d.ts.map +1 -1
- package/workflow/execution-comparison/ExecutionComparisonPicker.js +7 -15
- package/workflow/execution-comparison/ExecutionComparisonPicker.js.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.d.ts.map +1 -1
- package/workflow/execution-history/ExecutionHistoryTable.js +1 -24
- package/workflow/execution-history/ExecutionHistoryTable.js.map +1 -1
- package/workflow/index.d.ts +1 -1
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js.map +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.d.ts.map +1 -1
- package/workflow/instance/CreateWorkflowInstanceDialog.js +10 -2
- package/workflow/instance/CreateWorkflowInstanceDialog.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/instance/useDeleteWorkflowInstance.d.ts +9 -4
- package/workflow/instance/useDeleteWorkflowInstance.d.ts.map +1 -1
- package/workflow/instance/useDeleteWorkflowInstance.js +4 -2
- package/workflow/instance/useDeleteWorkflowInstance.js.map +1 -1
- package/workflow/layout/registry-dimensions.d.ts.map +1 -1
- package/workflow/layout/registry-dimensions.js +2 -5
- package/workflow/layout/registry-dimensions.js.map +1 -1
- package/workflow/node-shell/NodeShell.js +1 -1
- package/workflow/node-shell/NodeShell.js.map +1 -1
- package/workflow/picker/BranchAddPopover.d.ts.map +1 -1
- package/workflow/picker/BranchAddPopover.js +3 -2
- package/workflow/picker/BranchAddPopover.js.map +1 -1
- package/workflow/task-type-visual-registry.d.ts.map +1 -1
- package/workflow/task-type-visual-registry.js +5 -3
- package/workflow/task-type-visual-registry.js.map +1 -1
- package/workflow/templates/WorkflowTemplatePreview.js +1 -1
- package/workflow/useApprovalBoundary.d.ts +1 -1
- package/workflow/useApprovalBoundary.js +1 -1
- package/workflow/useCanvasKeyboardShortcuts.d.ts +15 -4
- package/workflow/useCanvasKeyboardShortcuts.d.ts.map +1 -1
- package/workflow/useCanvasKeyboardShortcuts.js +25 -4
- package/workflow/useCanvasKeyboardShortcuts.js.map +1 -1
- package/workflow/useGraphHistory.d.ts +16 -9
- package/workflow/useGraphHistory.d.ts.map +1 -1
- package/workflow/useGraphHistory.js +19 -33
- package/workflow/useGraphHistory.js.map +1 -1
- package/workflow/useWorkflowCanvas.d.ts +6 -4
- package/workflow/useWorkflowCanvas.d.ts.map +1 -1
- package/workflow/useWorkflowCanvas.js +115 -23
- package/workflow/useWorkflowCanvas.js.map +1 -1
- package/workflow/useWorkflowExecutionPanel.d.ts +38 -2
- package/workflow/useWorkflowExecutionPanel.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionPanel.js +46 -13
- package/workflow/useWorkflowExecutionPanel.js.map +1 -1
- package/workflow/useWorkflowSave.d.ts.map +1 -1
- package/workflow/useWorkflowSave.js +2 -15
- package/workflow/useWorkflowSave.js.map +1 -1
- package/workflow/workflow-graph-conversions.d.ts +19 -1
- package/workflow/workflow-graph-conversions.d.ts.map +1 -1
- package/workflow/workflow-graph-conversions.js +17 -3
- package/workflow/workflow-graph-conversions.js.map +1 -1
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useCallback,
|
|
3
|
+
import { useCallback, useRef } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { selectElementText } from "../internal/select-element-text.js";
|
|
6
|
+
import { useCopyFeedback } from "../internal/useCopyFeedback.js";
|
|
5
7
|
|
|
6
8
|
/** Props for {@link PlatformClientSecretAlert}. */
|
|
7
9
|
export interface PlatformClientSecretAlertProps {
|
|
@@ -17,8 +19,6 @@ export interface PlatformClientSecretAlertProps {
|
|
|
17
19
|
readonly className?: string;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
const COPIED_FEEDBACK_MS = 2000;
|
|
21
|
-
|
|
22
22
|
/**
|
|
23
23
|
* One-time reveal component displayed after a platform client is
|
|
24
24
|
* created or its secret is rotated.
|
|
@@ -50,34 +50,6 @@ export function PlatformClientSecretAlert({
|
|
|
50
50
|
onDismiss,
|
|
51
51
|
className,
|
|
52
52
|
}: PlatformClientSecretAlertProps) {
|
|
53
|
-
const [copiedField, setCopiedField] = useState<
|
|
54
|
-
"id" | "secret" | null
|
|
55
|
-
>(null);
|
|
56
|
-
|
|
57
|
-
const handleCopy = useCallback(
|
|
58
|
-
async (value: string, field: "id" | "secret") => {
|
|
59
|
-
try {
|
|
60
|
-
await navigator.clipboard.writeText(value);
|
|
61
|
-
setCopiedField(field);
|
|
62
|
-
setTimeout(() => setCopiedField(null), COPIED_FEEDBACK_MS);
|
|
63
|
-
} catch {
|
|
64
|
-
const el = document.getElementById(
|
|
65
|
-
field === "secret"
|
|
66
|
-
? "stgm-pc-secret-reveal"
|
|
67
|
-
: "stgm-pc-client-id-reveal",
|
|
68
|
-
);
|
|
69
|
-
if (el) {
|
|
70
|
-
const selection = window.getSelection();
|
|
71
|
-
const range = document.createRange();
|
|
72
|
-
range.selectNodeContents(el);
|
|
73
|
-
selection?.removeAllRanges();
|
|
74
|
-
selection?.addRange(range);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
[],
|
|
79
|
-
);
|
|
80
|
-
|
|
81
53
|
const title =
|
|
82
54
|
context === "created"
|
|
83
55
|
? "Platform client created"
|
|
@@ -114,30 +86,14 @@ export function PlatformClientSecretAlert({
|
|
|
114
86
|
|
|
115
87
|
<div className="stg:space-y-2">
|
|
116
88
|
<CopyableField
|
|
117
|
-
id="stgm-pc-client-id-reveal"
|
|
118
89
|
label="Client ID"
|
|
119
90
|
value={clientId}
|
|
120
|
-
copied={copiedField === "id"}
|
|
121
|
-
onCopy={() => handleCopy(clientId, "id")}
|
|
122
91
|
/>
|
|
123
92
|
<CopyableField
|
|
124
|
-
id="stgm-pc-secret-reveal"
|
|
125
93
|
label="Client secret"
|
|
126
94
|
value={clientSecret}
|
|
127
|
-
copied={copiedField === "secret"}
|
|
128
|
-
onCopy={() => handleCopy(clientSecret, "secret")}
|
|
129
95
|
/>
|
|
130
96
|
</div>
|
|
131
|
-
|
|
132
|
-
<div
|
|
133
|
-
role="status"
|
|
134
|
-
aria-live="polite"
|
|
135
|
-
aria-atomic="true"
|
|
136
|
-
className="stg:sr-only"
|
|
137
|
-
>
|
|
138
|
-
{copiedField === "id" && "Client ID copied to clipboard"}
|
|
139
|
-
{copiedField === "secret" && "Client secret copied to clipboard"}
|
|
140
|
-
</div>
|
|
141
97
|
</div>
|
|
142
98
|
);
|
|
143
99
|
}
|
|
@@ -147,18 +103,24 @@ export function PlatformClientSecretAlert({
|
|
|
147
103
|
// ---------------------------------------------------------------------------
|
|
148
104
|
|
|
149
105
|
function CopyableField({
|
|
150
|
-
id,
|
|
151
106
|
label,
|
|
152
107
|
value,
|
|
153
|
-
copied,
|
|
154
|
-
onCopy,
|
|
155
108
|
}: {
|
|
156
|
-
id: string;
|
|
157
109
|
label: string;
|
|
158
110
|
value: string;
|
|
159
|
-
copied: boolean;
|
|
160
|
-
onCopy: () => void;
|
|
161
111
|
}) {
|
|
112
|
+
// Each field owns its feedback: the copied flag and the select-text
|
|
113
|
+
// fallback belong to the markup they describe, so two fields never
|
|
114
|
+
// share (and race on) one parent-level "which field copied" state.
|
|
115
|
+
const { copy, copied } = useCopyFeedback();
|
|
116
|
+
const revealRef = useRef<HTMLElement>(null);
|
|
117
|
+
|
|
118
|
+
const handleCopy = useCallback(async () => {
|
|
119
|
+
if (await copy(value)) return;
|
|
120
|
+
// Rejected write: select the revealed value so the user can copy manually.
|
|
121
|
+
if (revealRef.current) selectElementText(revealRef.current);
|
|
122
|
+
}, [copy, value]);
|
|
123
|
+
|
|
162
124
|
return (
|
|
163
125
|
<div>
|
|
164
126
|
<span className="stg:text-[0.65rem] stg:font-medium stg:text-muted-foreground">
|
|
@@ -166,7 +128,7 @@ function CopyableField({
|
|
|
166
128
|
</span>
|
|
167
129
|
<div className="stg:mt-0.5 stg:flex stg:items-center stg:gap-2">
|
|
168
130
|
<code
|
|
169
|
-
|
|
131
|
+
ref={revealRef}
|
|
170
132
|
className={cn(
|
|
171
133
|
"stg:min-w-0 stg:flex-1 stg:select-all stg:truncate stg:rounded-md",
|
|
172
134
|
"stg:border stg:border-input stg:bg-background stg:px-2.5 stg:py-1.5",
|
|
@@ -177,7 +139,7 @@ function CopyableField({
|
|
|
177
139
|
</code>
|
|
178
140
|
<button
|
|
179
141
|
type="button"
|
|
180
|
-
onClick={
|
|
142
|
+
onClick={() => void handleCopy()}
|
|
181
143
|
aria-label={`Copy ${label}`}
|
|
182
144
|
className={cn(
|
|
183
145
|
"stg:inline-flex stg:shrink-0 stg:items-center stg:gap-1.5 stg:rounded-md stg:px-3 stg:py-1.5 stg:text-xs stg:font-medium",
|
|
@@ -189,6 +151,15 @@ function CopyableField({
|
|
|
189
151
|
{copied ? "Copied" : "Copy"}
|
|
190
152
|
</button>
|
|
191
153
|
</div>
|
|
154
|
+
|
|
155
|
+
<div
|
|
156
|
+
role="status"
|
|
157
|
+
aria-live="polite"
|
|
158
|
+
aria-atomic="true"
|
|
159
|
+
className="stg:sr-only"
|
|
160
|
+
>
|
|
161
|
+
{copied && `${label} copied to clipboard`}
|
|
162
|
+
</div>
|
|
192
163
|
</div>
|
|
193
164
|
);
|
|
194
165
|
}
|
package/src/provider.tsx
CHANGED
|
@@ -14,6 +14,8 @@ import type { ThemePresetId } from "@stigmer/theme";
|
|
|
14
14
|
import { StigmerContext } from "./context.js";
|
|
15
15
|
import { DeploymentModeContext } from "./deployment-mode.js";
|
|
16
16
|
import { ExecutionTargetContext } from "./execution-target-context.js";
|
|
17
|
+
import { ApprovalDefaultsContext } from "./approval-defaults-context.js";
|
|
18
|
+
import type { ApprovalDefaults } from "./approval-defaults-context.js";
|
|
17
19
|
import type { ExecutionTargetOption } from "./session/execution-target.js";
|
|
18
20
|
import type { RunnerAdapter } from "./runner-adapter.js";
|
|
19
21
|
import { RunnerAdapterContext } from "./runner-adapter.js";
|
|
@@ -22,7 +24,7 @@ import { ColorModeContext, useSystemColorMode } from "./color-mode.js";
|
|
|
22
24
|
import { PortalContainerContext } from "./portal-container.js";
|
|
23
25
|
import { ModelRegistryContext } from "./models/ModelRegistryContext.js";
|
|
24
26
|
import type { ModelRegistryState } from "./models/ModelRegistryContext.js";
|
|
25
|
-
import {
|
|
27
|
+
import { fetchModelRegistryDocument } from "./models/registry.js";
|
|
26
28
|
import { TaskKindRegistryContext } from "./workflow/TaskKindRegistryContext.js";
|
|
27
29
|
import type { TaskKindRegistryState } from "./workflow/TaskKindRegistryContext.js";
|
|
28
30
|
import type { TaskKindDescriptor } from "./workflow/types.js";
|
|
@@ -84,6 +86,38 @@ export interface StigmerProviderProps {
|
|
|
84
86
|
* ```
|
|
85
87
|
*/
|
|
86
88
|
readonly runnerAdapter?: RunnerAdapter;
|
|
89
|
+
/**
|
|
90
|
+
* Approval defaults for all interactive sessions in this provider scope.
|
|
91
|
+
*
|
|
92
|
+
* This is an app-level trust judgment, not a per-session choice (the
|
|
93
|
+
* `executionTarget` precedent): a host embedding sessions over a surface
|
|
94
|
+
* it has already judged trusted — e.g. a desktop app operating on the
|
|
95
|
+
* user's own local folder — can arm `autoApproveAll` so users are not
|
|
96
|
+
* re-asked at every fresh conversation's first mutating tool call. The
|
|
97
|
+
* user keeps the last word: the "Auto-approving tool calls" notice shows
|
|
98
|
+
* from the first render with its "Turn off" affordance.
|
|
99
|
+
*
|
|
100
|
+
* Consumed by the interactive-session surface only (`useNewSessionFlow`,
|
|
101
|
+
* `useSessionPageFlow` and the organisms composing them). Specialized
|
|
102
|
+
* flows (workflow architect/explain/diagnose) and headless creation are
|
|
103
|
+
* deliberately unaffected — those callers pass `autoApproveAll`
|
|
104
|
+
* explicitly when they mean it.
|
|
105
|
+
*
|
|
106
|
+
* Omit on shared or sensitive surfaces — everything stays fail-closed
|
|
107
|
+
* exactly as today. Pass a referentially stable object (module constant
|
|
108
|
+
* or `useMemo`).
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* // A desktop host whose sessions operate on the user's own machine
|
|
113
|
+
* const APPROVAL_DEFAULTS = { autoApproveAll: true };
|
|
114
|
+
*
|
|
115
|
+
* <StigmerProvider client={client} approvalDefaults={APPROVAL_DEFAULTS}>
|
|
116
|
+
* <App />
|
|
117
|
+
* </StigmerProvider>
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
readonly approvalDefaults?: ApprovalDefaults;
|
|
87
121
|
/**
|
|
88
122
|
* Built-in theme preset to apply.
|
|
89
123
|
*
|
|
@@ -238,6 +272,7 @@ export function StigmerProvider({
|
|
|
238
272
|
deploymentMode = "cloud",
|
|
239
273
|
executionTarget,
|
|
240
274
|
runnerAdapter,
|
|
275
|
+
approvalDefaults,
|
|
241
276
|
preset,
|
|
242
277
|
className,
|
|
243
278
|
colorMode = "light",
|
|
@@ -258,34 +293,36 @@ export function StigmerProvider({
|
|
|
258
293
|
<StigmerContext.Provider value={client}>
|
|
259
294
|
<DeploymentModeContext.Provider value={deploymentMode}>
|
|
260
295
|
<ExecutionTargetContext.Provider value={executionTarget}>
|
|
261
|
-
<
|
|
262
|
-
<
|
|
263
|
-
<
|
|
264
|
-
<
|
|
265
|
-
<
|
|
266
|
-
<
|
|
267
|
-
{
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
296
|
+
<ApprovalDefaultsContext.Provider value={approvalDefaults}>
|
|
297
|
+
<RunnerAdapterContext.Provider value={runnerAdapter ?? null}>
|
|
298
|
+
<ColorModeContext.Provider value={resolvedMode}>
|
|
299
|
+
<ModelRegistryContext.Provider value={registryState}>
|
|
300
|
+
<TaskKindRegistryContext.Provider value={taskKindRegistryState}>
|
|
301
|
+
<ReviewRendererContext.Provider value={reviewRenderers ?? EMPTY_REVIEW_RENDERERS}>
|
|
302
|
+
<PortalContainerContext.Provider value={portalContainer}>
|
|
303
|
+
{/*
|
|
304
|
+
The in-tree scoping container. `data-stgm-root` is a
|
|
305
|
+
stable public selector — the documented seam for hosts
|
|
306
|
+
to style THIS element only (e.g. the fixed-height
|
|
307
|
+
embedding recipe, #260). It must never be mirrored
|
|
308
|
+
onto the portal container, whose own `data-stgm-portal`
|
|
309
|
+
marker keeps host in-tree-only CSS away from the
|
|
310
|
+
off-tree element.
|
|
311
|
+
*/}
|
|
312
|
+
<div
|
|
313
|
+
className={scope.className}
|
|
314
|
+
data-stgm-root=""
|
|
315
|
+
data-stgm-color-mode={scope.colorMode}
|
|
316
|
+
>
|
|
317
|
+
{children}
|
|
318
|
+
</div>
|
|
319
|
+
</PortalContainerContext.Provider>
|
|
320
|
+
</ReviewRendererContext.Provider>
|
|
321
|
+
</TaskKindRegistryContext.Provider>
|
|
322
|
+
</ModelRegistryContext.Provider>
|
|
323
|
+
</ColorModeContext.Provider>
|
|
324
|
+
</RunnerAdapterContext.Provider>
|
|
325
|
+
</ApprovalDefaultsContext.Provider>
|
|
289
326
|
</ExecutionTargetContext.Provider>
|
|
290
327
|
</DeploymentModeContext.Provider>
|
|
291
328
|
</StigmerContext.Provider>
|
|
@@ -310,6 +347,7 @@ function useModelRegistryFetch(client: Stigmer): ModelRegistryState {
|
|
|
310
347
|
const [version, setVersion] = useState(0);
|
|
311
348
|
const [state, setState] = useState<Omit<ModelRegistryState, "refetch">>({
|
|
312
349
|
models: [],
|
|
350
|
+
visionLimits: undefined,
|
|
313
351
|
isLoading: true,
|
|
314
352
|
error: null,
|
|
315
353
|
});
|
|
@@ -333,7 +371,7 @@ function useModelRegistryFetch(client: Stigmer): ModelRegistryState {
|
|
|
333
371
|
}
|
|
334
372
|
}
|
|
335
373
|
|
|
336
|
-
return
|
|
374
|
+
return fetchModelRegistryDocument(c.baseUrl, token, c.fetch);
|
|
337
375
|
}, []);
|
|
338
376
|
|
|
339
377
|
useEffect(() => {
|
|
@@ -348,9 +386,14 @@ function useModelRegistryFetch(client: Stigmer): ModelRegistryState {
|
|
|
348
386
|
setState((prev) => (prev.isLoading ? prev : { ...prev, isLoading: true }));
|
|
349
387
|
|
|
350
388
|
try {
|
|
351
|
-
const
|
|
352
|
-
if (!signal.aborted &&
|
|
353
|
-
setState({
|
|
389
|
+
const document = await doFetch(signal);
|
|
390
|
+
if (!signal.aborted && document) {
|
|
391
|
+
setState({
|
|
392
|
+
models: document.models,
|
|
393
|
+
visionLimits: document.visionLimits,
|
|
394
|
+
isLoading: false,
|
|
395
|
+
error: null,
|
|
396
|
+
});
|
|
354
397
|
fetchAttemptRef.current = 0;
|
|
355
398
|
}
|
|
356
399
|
} catch (err: unknown) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { cn } from "@stigmer/theme";
|
|
4
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
4
5
|
|
|
5
6
|
/** Props for {@link WizardNav}. */
|
|
6
7
|
export interface WizardNavProps {
|
|
@@ -98,7 +99,7 @@ export function WizardNav({
|
|
|
98
99
|
"stg:disabled:pointer-events-none stg:disabled:opacity-40",
|
|
99
100
|
)}
|
|
100
101
|
>
|
|
101
|
-
{isSubmitting && <SpinnerIcon />}
|
|
102
|
+
{isSubmitting && <SpinnerIcon size={14} />}
|
|
102
103
|
{nextLabel}
|
|
103
104
|
{!isSubmitting && <ArrowRightIcon className="stg:size-3.5" />}
|
|
104
105
|
</button>
|
|
@@ -145,20 +146,3 @@ function ArrowRightIcon({ className }: { readonly className?: string }) {
|
|
|
145
146
|
);
|
|
146
147
|
}
|
|
147
148
|
|
|
148
|
-
function SpinnerIcon() {
|
|
149
|
-
return (
|
|
150
|
-
<svg
|
|
151
|
-
width="14"
|
|
152
|
-
height="14"
|
|
153
|
-
viewBox="0 0 16 16"
|
|
154
|
-
fill="none"
|
|
155
|
-
stroke="currentColor"
|
|
156
|
-
strokeWidth="2"
|
|
157
|
-
strokeLinecap="round"
|
|
158
|
-
className="stg:animate-spin"
|
|
159
|
-
aria-hidden="true"
|
|
160
|
-
>
|
|
161
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
162
|
-
</svg>
|
|
163
|
-
);
|
|
164
|
-
}
|
|
@@ -81,7 +81,7 @@ export function ConfirmDialog({
|
|
|
81
81
|
onCancel={handleDialogCancel}
|
|
82
82
|
className={cn(
|
|
83
83
|
"stg:fixed stg:inset-0 stg:z-50 stg:m-auto stg:w-full stg:max-w-sm stg:rounded-lg stg:border stg:border-border stg:bg-popover stg:p-0 stg:text-popover-foreground stg:shadow-lg",
|
|
84
|
-
"stg:backdrop:bg-
|
|
84
|
+
"stg:backdrop:bg-backdrop",
|
|
85
85
|
"stg:open:animate-in stg:open:fade-in-0 stg:open:zoom-in-95",
|
|
86
86
|
)}
|
|
87
87
|
>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useMemo } from "react";
|
|
4
4
|
import { toast } from "../feedback/toast.js";
|
|
5
|
+
import { useCopyFeedback } from "../internal/useCopyFeedback.js";
|
|
5
6
|
|
|
6
7
|
export interface UseCopyResourceReturn {
|
|
7
8
|
/** Copy arbitrary text to the clipboard with toast feedback. */
|
|
@@ -17,9 +18,10 @@ export interface UseCopyResourceReturn {
|
|
|
17
18
|
/**
|
|
18
19
|
* Clipboard helper for resource detail pages.
|
|
19
20
|
*
|
|
20
|
-
* Wraps `
|
|
21
|
-
* copy action is confirmed visually (Nielsen heuristic #1 — visibility
|
|
22
|
-
* of system status).
|
|
21
|
+
* Wraps the shared copy behavior (`useCopyFeedback`) with toast feedback so
|
|
22
|
+
* every copy action is confirmed visually (Nielsen heuristic #1 — visibility
|
|
23
|
+
* of system status). A rejected write (insecure context, denied permission)
|
|
24
|
+
* toasts an error instead of claiming a copy that didn't happen.
|
|
23
25
|
*
|
|
24
26
|
* @example
|
|
25
27
|
* ```tsx
|
|
@@ -31,15 +33,18 @@ export interface UseCopyResourceReturn {
|
|
|
31
33
|
* ```
|
|
32
34
|
*/
|
|
33
35
|
export function useCopyResource(): UseCopyResourceReturn {
|
|
34
|
-
const copy =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
const { copy: copyText } = useCopyFeedback();
|
|
37
|
+
|
|
38
|
+
const copy = useCallback(
|
|
39
|
+
async (text: string, label: string) => {
|
|
40
|
+
if (await copyText(text)) {
|
|
41
|
+
toast.success(`${label} copied`);
|
|
42
|
+
} else {
|
|
43
|
+
toast.error(`Couldn't copy ${label}`);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
[copyText],
|
|
47
|
+
);
|
|
43
48
|
|
|
44
49
|
const copyId = useCallback(
|
|
45
50
|
(id: string) => copy(id, "ID"),
|
|
@@ -61,14 +66,3 @@ export function useCopyResource(): UseCopyResourceReturn {
|
|
|
61
66
|
[copy, copyId, copySlug, copyQualifiedSlug],
|
|
62
67
|
);
|
|
63
68
|
}
|
|
64
|
-
|
|
65
|
-
function fallbackCopy(text: string): void {
|
|
66
|
-
const textarea = document.createElement("textarea");
|
|
67
|
-
textarea.value = text;
|
|
68
|
-
textarea.style.position = "fixed";
|
|
69
|
-
textarea.style.opacity = "0";
|
|
70
|
-
document.body.appendChild(textarea);
|
|
71
|
-
textarea.select();
|
|
72
|
-
document.execCommand("copy");
|
|
73
|
-
document.body.removeChild(textarea);
|
|
74
|
-
}
|
|
@@ -71,6 +71,7 @@ import { useResumeSchedule } from "./useResumeSchedule.js";
|
|
|
71
71
|
import { useSetScheduleEnabled } from "./useSetScheduleEnabled.js";
|
|
72
72
|
import { useTriggerSchedule } from "./useTriggerSchedule.js";
|
|
73
73
|
import { useUpdateScheduleSpec } from "./useUpdateScheduleSpec.js";
|
|
74
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
74
75
|
|
|
75
76
|
/** Props for {@link ScheduleDetailView}. */
|
|
76
77
|
export interface ScheduleDetailViewProps {
|
|
@@ -1311,7 +1312,7 @@ function InlineEditActions({
|
|
|
1311
1312
|
"stg:focus-visible:outline-none stg:focus-visible:ring-2 stg:focus-visible:ring-ring",
|
|
1312
1313
|
)}
|
|
1313
1314
|
>
|
|
1314
|
-
{isSaving && <SpinnerIcon />}
|
|
1315
|
+
{isSaving && <SpinnerIcon size={14} />}
|
|
1315
1316
|
Save
|
|
1316
1317
|
</button>
|
|
1317
1318
|
</div>
|
|
@@ -1632,20 +1633,3 @@ function PencilIcon({ className }: { readonly className?: string }) {
|
|
|
1632
1633
|
);
|
|
1633
1634
|
}
|
|
1634
1635
|
|
|
1635
|
-
function SpinnerIcon() {
|
|
1636
|
-
return (
|
|
1637
|
-
<svg
|
|
1638
|
-
width="14"
|
|
1639
|
-
height="14"
|
|
1640
|
-
viewBox="0 0 16 16"
|
|
1641
|
-
fill="none"
|
|
1642
|
-
stroke="currentColor"
|
|
1643
|
-
strokeWidth="2"
|
|
1644
|
-
strokeLinecap="round"
|
|
1645
|
-
className="stg:animate-spin"
|
|
1646
|
-
aria-hidden="true"
|
|
1647
|
-
>
|
|
1648
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
1649
|
-
</svg>
|
|
1650
|
-
);
|
|
1651
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useCallback,
|
|
3
|
+
import { type FormEvent, useCallback, useId, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import {
|
|
6
6
|
getUserMessage,
|
|
@@ -24,6 +24,7 @@ import { CadenceField } from "./CadenceField.js";
|
|
|
24
24
|
import { TimeZoneField, browserTimeZone } from "./TimeZoneField.js";
|
|
25
25
|
import { useCreateSchedule } from "./useCreateSchedule.js";
|
|
26
26
|
import { cadenceToCron, validateCron, type CadencePreset } from "./cadence.js";
|
|
27
|
+
import { SpinnerIcon } from "../internal/SpinnerIcon.js";
|
|
27
28
|
|
|
28
29
|
// ---------------------------------------------------------------------------
|
|
29
30
|
// Public API
|
|
@@ -84,6 +85,7 @@ export function ScheduleForm({
|
|
|
84
85
|
onCancel,
|
|
85
86
|
className,
|
|
86
87
|
}: ScheduleFormProps) {
|
|
88
|
+
const baseId = useId();
|
|
87
89
|
const { create, isCreating, error, clearError } = useCreateSchedule();
|
|
88
90
|
|
|
89
91
|
const [name, setName] = useState("");
|
|
@@ -209,11 +211,11 @@ export function ScheduleForm({
|
|
|
209
211
|
>
|
|
210
212
|
{/* Name */}
|
|
211
213
|
<div className="stg:space-y-1">
|
|
212
|
-
<label htmlFor=
|
|
214
|
+
<label htmlFor={`${baseId}-name`} className={labelClasses}>
|
|
213
215
|
Name
|
|
214
216
|
</label>
|
|
215
217
|
<input
|
|
216
|
-
id=
|
|
218
|
+
id={`${baseId}-name`}
|
|
217
219
|
type="text"
|
|
218
220
|
value={name}
|
|
219
221
|
onChange={(e) => setName(e.target.value)}
|
|
@@ -227,13 +229,13 @@ export function ScheduleForm({
|
|
|
227
229
|
|
|
228
230
|
{/* Target agent */}
|
|
229
231
|
<div className="stg:space-y-1">
|
|
230
|
-
<span id=
|
|
232
|
+
<span id={`${baseId}-agent-label`} className={labelClasses}>
|
|
231
233
|
Agent to run
|
|
232
234
|
</span>
|
|
233
235
|
<Popover.Root open={pickerOpen} onOpenChange={setPickerOpen}>
|
|
234
236
|
<Popover.Trigger
|
|
235
237
|
disabled={isCreating}
|
|
236
|
-
aria-labelledby=
|
|
238
|
+
aria-labelledby={`${baseId}-agent-label`}
|
|
237
239
|
className={cn(
|
|
238
240
|
"stg:flex stg:w-full stg:items-center stg:justify-between stg:rounded-md stg:border stg:border-input stg:bg-background stg:px-2.5 stg:py-1.5 stg:text-left stg:text-xs",
|
|
239
241
|
"stg:focus-visible:outline-none stg:focus-visible:ring-1 stg:focus-visible:ring-ring",
|
|
@@ -267,11 +269,11 @@ export function ScheduleForm({
|
|
|
267
269
|
|
|
268
270
|
{/* Message */}
|
|
269
271
|
<div className="stg:space-y-1">
|
|
270
|
-
<label htmlFor=
|
|
272
|
+
<label htmlFor={`${baseId}-message`} className={labelClasses}>
|
|
271
273
|
Message
|
|
272
274
|
</label>
|
|
273
275
|
<textarea
|
|
274
|
-
id=
|
|
276
|
+
id={`${baseId}-message`}
|
|
275
277
|
value={message}
|
|
276
278
|
onChange={(e) => setMessage(e.target.value)}
|
|
277
279
|
placeholder="The instruction the agent receives on every fire — write it for a run with no human present."
|
|
@@ -314,7 +316,7 @@ export function ScheduleForm({
|
|
|
314
316
|
schedule fire, so the picker is filtered to visibility_org —
|
|
315
317
|
the same credential surface a channel binding uses. */}
|
|
316
318
|
<div className="stg:space-y-1">
|
|
317
|
-
<span id=
|
|
319
|
+
<span id={`${baseId}-env-label`} className={labelClasses}>
|
|
318
320
|
Environments <span className="stg:font-normal stg:text-muted-foreground">(optional)</span>
|
|
319
321
|
</span>
|
|
320
322
|
<EnvironmentPicker
|
|
@@ -391,12 +393,12 @@ export function ScheduleForm({
|
|
|
391
393
|
surface: nobody is watching a 3 AM fire (DD-018 D-5). Clamped
|
|
392
394
|
by the platform profile; tool-round bounds stay API-only. */}
|
|
393
395
|
<div className="stg:space-y-1">
|
|
394
|
-
<label htmlFor=
|
|
396
|
+
<label htmlFor={`${baseId}-budget`} className={labelClasses}>
|
|
395
397
|
Budget per run (USD){" "}
|
|
396
398
|
<span className="stg:font-normal stg:text-muted-foreground">(optional)</span>
|
|
397
399
|
</label>
|
|
398
400
|
<input
|
|
399
|
-
id=
|
|
401
|
+
id={`${baseId}-budget`}
|
|
400
402
|
type="number"
|
|
401
403
|
min="0"
|
|
402
404
|
step="any"
|
|
@@ -415,11 +417,11 @@ export function ScheduleForm({
|
|
|
415
417
|
|
|
416
418
|
{/* Time zone */}
|
|
417
419
|
<div className="stg:space-y-1">
|
|
418
|
-
<label htmlFor=
|
|
420
|
+
<label htmlFor={`${baseId}-tz`} className={labelClasses}>
|
|
419
421
|
Time zone
|
|
420
422
|
</label>
|
|
421
423
|
<TimeZoneField
|
|
422
|
-
id=
|
|
424
|
+
id={`${baseId}-tz`}
|
|
423
425
|
value={timeZone}
|
|
424
426
|
onChange={setTimeZone}
|
|
425
427
|
disabled={isCreating}
|
|
@@ -429,16 +431,16 @@ export function ScheduleForm({
|
|
|
429
431
|
{/* Enabled */}
|
|
430
432
|
<div className="stg:flex stg:items-start stg:gap-3">
|
|
431
433
|
<Switch
|
|
432
|
-
id=
|
|
434
|
+
id={`${baseId}-enabled`}
|
|
433
435
|
checked={enabled}
|
|
434
436
|
onCheckedChange={setEnabled}
|
|
435
437
|
disabled={isCreating}
|
|
436
|
-
aria-labelledby=
|
|
438
|
+
aria-labelledby={`${baseId}-enabled-label`}
|
|
437
439
|
/>
|
|
438
440
|
<div className="stg:space-y-0.5">
|
|
439
441
|
<label
|
|
440
|
-
id=
|
|
441
|
-
htmlFor=
|
|
442
|
+
id={`${baseId}-enabled-label`}
|
|
443
|
+
htmlFor={`${baseId}-enabled`}
|
|
442
444
|
className={labelClasses}
|
|
443
445
|
>
|
|
444
446
|
Enabled
|
|
@@ -467,7 +469,7 @@ export function ScheduleForm({
|
|
|
467
469
|
"stg:disabled:pointer-events-none stg:disabled:opacity-40",
|
|
468
470
|
)}
|
|
469
471
|
>
|
|
470
|
-
{isCreating && <SpinnerIcon />}
|
|
472
|
+
{isCreating && <SpinnerIcon size={14} />}
|
|
471
473
|
Create schedule
|
|
472
474
|
</button>
|
|
473
475
|
|
|
@@ -597,20 +599,3 @@ function ChevronIcon() {
|
|
|
597
599
|
);
|
|
598
600
|
}
|
|
599
601
|
|
|
600
|
-
function SpinnerIcon() {
|
|
601
|
-
return (
|
|
602
|
-
<svg
|
|
603
|
-
width="14"
|
|
604
|
-
height="14"
|
|
605
|
-
viewBox="0 0 16 16"
|
|
606
|
-
fill="none"
|
|
607
|
-
stroke="currentColor"
|
|
608
|
-
strokeWidth="2"
|
|
609
|
-
strokeLinecap="round"
|
|
610
|
-
className="stg:animate-spin"
|
|
611
|
-
aria-hidden="true"
|
|
612
|
-
>
|
|
613
|
-
<path d="M8 2a6 6 0 1 0 6 6" />
|
|
614
|
-
</svg>
|
|
615
|
-
);
|
|
616
|
-
}
|