@stigmer/react 3.12.3 → 3.12.4
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/agent/steps/IdentityStep.d.ts.map +1 -1
- package/agent/steps/IdentityStep.js +2 -1
- package/agent/steps/IdentityStep.js.map +1 -1
- package/agent-instance/AgentInstanceDetailPanel.d.ts.map +1 -1
- package/agent-instance/AgentInstanceDetailPanel.js +2 -1
- package/agent-instance/AgentInstanceDetailPanel.js.map +1 -1
- package/api-key/CreateApiKeyForm.d.ts.map +1 -1
- package/api-key/CreateApiKeyForm.js +2 -1
- package/api-key/CreateApiKeyForm.js.map +1 -1
- package/channel/ChannelConversationsDialog.d.ts.map +1 -1
- package/channel/ChannelConversationsDialog.js +2 -1
- package/channel/ChannelConversationsDialog.js.map +1 -1
- package/channel/ChannelTemplatesDialog.d.ts.map +1 -1
- package/channel/ChannelTemplatesDialog.js +2 -1
- package/channel/ChannelTemplatesDialog.js.map +1 -1
- package/channel/ConnectSlackDialog.d.ts.map +1 -1
- package/channel/ConnectSlackDialog.js +2 -1
- package/channel/ConnectSlackDialog.js.map +1 -1
- package/channel/connect/ServingAppSection.d.ts.map +1 -1
- package/channel/connect/ServingAppSection.js +2 -1
- package/channel/connect/ServingAppSection.js.map +1 -1
- package/channel-app/CreateChannelAppForm.d.ts.map +1 -1
- package/channel-app/CreateChannelAppForm.js +2 -1
- package/channel-app/CreateChannelAppForm.js.map +1 -1
- package/conversation/ConversationListPane.d.ts.map +1 -1
- package/conversation/ConversationListPane.js +2 -1
- package/conversation/ConversationListPane.js.map +1 -1
- package/conversation/ConversationTimelineView.d.ts.map +1 -1
- package/conversation/ConversationTimelineView.js +2 -1
- package/conversation/ConversationTimelineView.js.map +1 -1
- package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -1
- package/cursor-accounts/CursorAccountsConsole.js +2 -1
- package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
- package/cursor-accounts/MemberKeysPanel.d.ts.map +1 -1
- package/cursor-accounts/MemberKeysPanel.js +2 -1
- package/cursor-accounts/MemberKeysPanel.js.map +1 -1
- package/dashboard/DashboardFailedRuns.d.ts.map +1 -1
- package/dashboard/DashboardFailedRuns.js +2 -1
- package/dashboard/DashboardFailedRuns.js.map +1 -1
- package/dependency-graph/DependencyGraph.d.ts.map +1 -1
- package/dependency-graph/DependencyGraph.js +2 -1
- package/dependency-graph/DependencyGraph.js.map +1 -1
- package/dependency-graph/DependencyTreeNode.d.ts.map +1 -1
- package/dependency-graph/DependencyTreeNode.js +2 -1
- package/dependency-graph/DependencyTreeNode.js.map +1 -1
- package/environment/EnvironmentPicker.d.ts.map +1 -1
- package/environment/EnvironmentPicker.js +2 -1
- package/environment/EnvironmentPicker.js.map +1 -1
- package/error/SecretFlowErrorGuide.d.ts.map +1 -1
- package/error/SecretFlowErrorGuide.js +2 -1
- package/error/SecretFlowErrorGuide.js.map +1 -1
- package/execution/ArtifactContentBody.d.ts.map +1 -1
- package/execution/ArtifactContentBody.js +2 -1
- package/execution/ArtifactContentBody.js.map +1 -1
- package/execution/ArtifactsWidget.d.ts.map +1 -1
- package/execution/ArtifactsWidget.js +2 -1
- package/execution/ArtifactsWidget.js.map +1 -1
- package/execution/FileChangeProgressBar.d.ts.map +1 -1
- package/execution/FileChangeProgressBar.js +2 -1
- package/execution/FileChangeProgressBar.js.map +1 -1
- package/execution/TodoList.d.ts.map +1 -1
- package/execution/TodoList.js +2 -1
- package/execution/TodoList.js.map +1 -1
- package/execution/WriteBacksWidget.d.ts.map +1 -1
- package/execution/WriteBacksWidget.js +2 -1
- package/execution/WriteBacksWidget.js.map +1 -1
- package/execution/tool-categories.d.ts +5 -22
- package/execution/tool-categories.d.ts.map +1 -1
- package/execution/tool-categories.js +8 -38
- package/execution/tool-categories.js.map +1 -1
- package/iam-policy/PeopleWithAccess.d.ts.map +1 -1
- package/iam-policy/PeopleWithAccess.js +2 -1
- package/iam-policy/PeopleWithAccess.js.map +1 -1
- package/iam-policy/PrincipalPicker.d.ts.map +1 -1
- package/iam-policy/PrincipalPicker.js +2 -1
- package/iam-policy/PrincipalPicker.js.map +1 -1
- package/iam-policy/RoleSelector.d.ts.map +1 -1
- package/iam-policy/RoleSelector.js +2 -1
- package/iam-policy/RoleSelector.js.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.d.ts.map +1 -1
- package/identity-provider/CreateIdentityProviderForm.js +2 -1
- package/identity-provider/CreateIdentityProviderForm.js.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +2 -1
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/identity-provider/IdentityProviderWizard.d.ts.map +1 -1
- package/identity-provider/IdentityProviderWizard.js +2 -1
- package/identity-provider/IdentityProviderWizard.js.map +1 -1
- package/index.d.ts +3 -1
- package/index.d.ts.map +1 -1
- package/index.js +3 -0
- package/index.js.map +1 -1
- package/internal/element-resets.d.ts +17 -0
- package/internal/element-resets.d.ts.map +1 -0
- package/internal/element-resets.js +32 -0
- package/internal/element-resets.js.map +1 -0
- package/internal/file-tree/FileTreeNode.d.ts.map +1 -1
- package/internal/file-tree/FileTreeNode.js +2 -1
- package/internal/file-tree/FileTreeNode.js.map +1 -1
- package/internal/markdown-components.d.ts +7 -0
- package/internal/markdown-components.d.ts.map +1 -1
- package/internal/markdown-components.js +15 -5
- package/internal/markdown-components.js.map +1 -1
- package/invitation/InvitationManager.d.ts.map +1 -1
- package/invitation/InvitationManager.js +2 -1
- package/invitation/InvitationManager.js.map +1 -1
- package/manifest/ApplyManifestDialog.d.ts.map +1 -1
- package/manifest/ApplyManifestDialog.js +2 -1
- package/manifest/ApplyManifestDialog.js.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.d.ts.map +1 -1
- package/mcp-server/steps/IdentityTransportStep.js +2 -1
- package/mcp-server/steps/IdentityTransportStep.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/CreatePlatformClientForm.d.ts.map +1 -1
- package/platform-client/CreatePlatformClientForm.js +2 -1
- package/platform-client/CreatePlatformClientForm.js.map +1 -1
- package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +2 -1
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/pricing-governance/BaselineEditor.d.ts.map +1 -1
- package/pricing-governance/BaselineEditor.js +2 -1
- package/pricing-governance/BaselineEditor.js.map +1 -1
- package/pricing-governance/PricingGovernanceConsole.d.ts.map +1 -1
- package/pricing-governance/PricingGovernanceConsole.js +2 -1
- package/pricing-governance/PricingGovernanceConsole.js.map +1 -1
- package/provider-standing/ProviderStandingAccessNotice.d.ts +11 -0
- package/provider-standing/ProviderStandingAccessNotice.d.ts.map +1 -0
- package/provider-standing/ProviderStandingAccessNotice.js +14 -0
- package/provider-standing/ProviderStandingAccessNotice.js.map +1 -0
- package/provider-standing/ProviderStandingConsole.d.ts +24 -0
- package/provider-standing/ProviderStandingConsole.d.ts.map +1 -0
- package/provider-standing/ProviderStandingConsole.js +98 -0
- package/provider-standing/ProviderStandingConsole.js.map +1 -0
- package/provider-standing/index.d.ts +6 -0
- package/provider-standing/index.d.ts.map +1 -0
- package/provider-standing/index.js +6 -0
- package/provider-standing/index.js.map +1 -0
- package/provider-standing/useProviderStanding.d.ts +34 -0
- package/provider-standing/useProviderStanding.d.ts.map +1 -0
- package/provider-standing/useProviderStanding.js +26 -0
- package/provider-standing/useProviderStanding.js.map +1 -0
- package/provider.d.ts +12 -0
- package/provider.d.ts.map +1 -1
- package/provider.js +12 -0
- package/provider.js.map +1 -1
- package/resource-creation/StepIndicator.d.ts.map +1 -1
- package/resource-creation/StepIndicator.js +2 -1
- package/resource-creation/StepIndicator.js.map +1 -1
- package/schedule/ScheduleDetailView.d.ts.map +1 -1
- package/schedule/ScheduleDetailView.js +3 -2
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/schedule/ScheduleRunsTable.d.ts.map +1 -1
- package/schedule/ScheduleRunsTable.js +2 -1
- package/schedule/ScheduleRunsTable.js.map +1 -1
- package/session/facets/ArtifactsTab.d.ts.map +1 -1
- package/session/facets/ArtifactsTab.js +2 -1
- package/session/facets/ArtifactsTab.js.map +1 -1
- package/session/facets/ChangesTab.d.ts.map +1 -1
- package/session/facets/ChangesTab.js +2 -1
- package/session/facets/ChangesTab.js.map +1 -1
- package/session/facets/UsageTab.d.ts +10 -3
- package/session/facets/UsageTab.d.ts.map +1 -1
- package/session/facets/UsageTab.js +42 -6
- package/session/facets/UsageTab.js.map +1 -1
- package/session/index.d.ts +1 -1
- package/session/index.d.ts.map +1 -1
- package/session/index.js.map +1 -1
- package/session/useSessionUsage.d.ts +25 -0
- package/session/useSessionUsage.d.ts.map +1 -1
- package/session/useSessionUsage.js +11 -0
- package/session/useSessionUsage.js.map +1 -1
- package/settings/settings-nav.d.ts.map +1 -1
- package/settings/settings-nav.js +7 -1
- package/settings/settings-nav.js.map +1 -1
- package/settings/useSettingsNavGroups.d.ts.map +1 -1
- package/settings/useSettingsNavGroups.js +4 -1
- package/settings/useSettingsNavGroups.js.map +1 -1
- package/sharing/ShareAgentDialog.d.ts.map +1 -1
- package/sharing/ShareAgentDialog.js +2 -1
- package/sharing/ShareAgentDialog.js.map +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/SkillFileBrowser.d.ts.map +1 -1
- package/skill/SkillFileBrowser.js +2 -1
- package/skill/SkillFileBrowser.js.map +1 -1
- package/skill/internal/fetchAndUnpackArtifact.d.ts +1 -1
- package/skill/internal/fetchAndUnpackArtifact.d.ts.map +1 -1
- package/skill/internal/fetchAndUnpackArtifact.js +47 -3
- package/skill/internal/fetchAndUnpackArtifact.js.map +1 -1
- package/skill/useSkillDiff.d.ts.map +1 -1
- package/skill/useSkillDiff.js +7 -1
- package/skill/useSkillDiff.js.map +1 -1
- package/skill/useSkillUpload.d.ts.map +1 -1
- package/skill/useSkillUpload.js +22 -4
- package/skill/useSkillUpload.js.map +1 -1
- package/src/__tests__/bare-host-resets.layout.test.tsx +184 -0
- package/src/agent/steps/IdentityStep.tsx +2 -1
- package/src/agent-instance/AgentInstanceDetailPanel.tsx +2 -1
- package/src/api-key/CreateApiKeyForm.tsx +2 -1
- package/src/channel/ChannelConversationsDialog.tsx +2 -1
- package/src/channel/ChannelTemplatesDialog.tsx +2 -1
- package/src/channel/ConnectSlackDialog.tsx +2 -1
- package/src/channel/connect/ServingAppSection.tsx +2 -1
- package/src/channel-app/CreateChannelAppForm.tsx +2 -1
- package/src/conversation/ConversationListPane.tsx +2 -5
- package/src/conversation/ConversationTimelineView.tsx +2 -1
- package/src/cursor-accounts/CursorAccountsConsole.tsx +2 -1
- package/src/cursor-accounts/MemberKeysPanel.tsx +2 -1
- package/src/dashboard/DashboardFailedRuns.tsx +2 -1
- package/src/dependency-graph/DependencyGraph.tsx +2 -1
- package/src/dependency-graph/DependencyTreeNode.tsx +2 -1
- package/src/environment/EnvironmentPicker.tsx +2 -1
- package/src/error/SecretFlowErrorGuide.tsx +3 -2
- package/src/execution/ArtifactContentBody.tsx +2 -1
- package/src/execution/ArtifactsWidget.tsx +2 -1
- package/src/execution/FileChangeProgressBar.tsx +2 -1
- package/src/execution/TodoList.tsx +2 -1
- package/src/execution/WriteBacksWidget.tsx +2 -1
- package/src/execution/tool-categories.ts +17 -41
- package/src/iam-policy/PeopleWithAccess.tsx +2 -1
- package/src/iam-policy/PrincipalPicker.tsx +2 -0
- package/src/iam-policy/RoleSelector.tsx +2 -1
- package/src/identity-provider/CreateIdentityProviderForm.tsx +2 -1
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +2 -1
- package/src/identity-provider/IdentityProviderWizard.tsx +2 -1
- package/src/index.ts +13 -0
- package/src/internal/element-resets.ts +33 -0
- package/src/internal/file-tree/FileTreeNode.tsx +2 -1
- package/src/internal/markdown-components.tsx +15 -5
- package/src/invitation/InvitationManager.tsx +3 -2
- package/src/manifest/ApplyManifestDialog.tsx +2 -1
- package/src/mcp-server/steps/IdentityTransportStep.tsx +3 -2
- package/src/platform-client/CreatePlatformClientForm.tsx +4 -3
- package/src/platform-client/PlatformClientDetailPanel.tsx +4 -3
- package/src/pricing-governance/BaselineEditor.tsx +3 -2
- package/src/pricing-governance/PricingGovernanceConsole.tsx +2 -1
- package/src/provider-standing/ProviderStandingAccessNotice.tsx +36 -0
- package/src/provider-standing/ProviderStandingConsole.tsx +216 -0
- package/src/provider-standing/__tests__/ProviderStandingConsole.test.tsx +143 -0
- package/src/provider-standing/index.ts +8 -0
- package/src/provider-standing/useProviderStanding.ts +50 -0
- package/src/provider.tsx +12 -0
- package/src/resource-creation/StepIndicator.tsx +2 -1
- package/src/schedule/ScheduleDetailView.tsx +3 -2
- package/src/schedule/ScheduleRunsTable.tsx +2 -1
- package/src/session/__tests__/UsageTab.test.tsx +136 -0
- package/src/session/__tests__/useSessionUsage.test.ts +19 -0
- package/src/session/facets/ArtifactsTab.tsx +2 -1
- package/src/session/facets/ChangesTab.tsx +2 -1
- package/src/session/facets/UsageTab.tsx +98 -6
- package/src/session/index.ts +1 -0
- package/src/session/useSessionUsage.ts +37 -0
- package/src/settings/__tests__/useSettingsNavGroups.test.tsx +11 -1
- package/src/settings/settings-nav.ts +7 -0
- package/src/settings/useSettingsNavGroups.ts +8 -1
- package/src/sharing/ShareAgentDialog.tsx +2 -1
- package/src/sidebar/WorkspaceSidebar.tsx +2 -1
- package/src/skill/SkillFileBrowser.tsx +2 -1
- package/src/skill/__tests__/SkillFileBrowser.test.tsx +10 -2
- package/src/skill/__tests__/fetchAndUnpackArtifact.test.ts +90 -0
- package/src/skill/__tests__/useSkillUpload.test.ts +69 -0
- package/src/skill/internal/fetchAndUnpackArtifact.ts +54 -4
- package/src/skill/useSkillDiff.ts +7 -1
- package/src/skill/useSkillUpload.ts +25 -6
- package/src/workflow/FailedRunsWidget.tsx +2 -1
- package/src/workflow/PendingApprovalsWidget.tsx +2 -1
- package/src/workflow/facets/WorkflowArtifactsTab.tsx +2 -1
- package/src/workflow/facets/WorkflowUsageTab.tsx +2 -1
- package/src/workflow/inspector/WorkflowSummaryPanel.tsx +2 -1
- package/src/workflow/inspector/tabs/BranchesTab.tsx +2 -1
- package/src/workflow/inspector/tabs/IterationTab.tsx +2 -1
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -1
- package/src/workspace/ExplorerTree.tsx +2 -1
- package/src/workspace/WorkspaceContentSearch.tsx +2 -1
- package/src/workspace/WorkspaceFileSearch.tsx +2 -1
- package/src/workspace/WorkspaceSummary.tsx +2 -1
- package/styles.css +1 -1
- package/workflow/FailedRunsWidget.d.ts.map +1 -1
- package/workflow/FailedRunsWidget.js +2 -1
- package/workflow/FailedRunsWidget.js.map +1 -1
- package/workflow/PendingApprovalsWidget.d.ts.map +1 -1
- package/workflow/PendingApprovalsWidget.js +2 -1
- package/workflow/PendingApprovalsWidget.js.map +1 -1
- package/workflow/facets/WorkflowArtifactsTab.d.ts.map +1 -1
- package/workflow/facets/WorkflowArtifactsTab.js +2 -1
- package/workflow/facets/WorkflowArtifactsTab.js.map +1 -1
- package/workflow/facets/WorkflowUsageTab.d.ts.map +1 -1
- package/workflow/facets/WorkflowUsageTab.js +2 -1
- package/workflow/facets/WorkflowUsageTab.js.map +1 -1
- package/workflow/inspector/WorkflowSummaryPanel.d.ts.map +1 -1
- package/workflow/inspector/WorkflowSummaryPanel.js +2 -1
- package/workflow/inspector/WorkflowSummaryPanel.js.map +1 -1
- package/workflow/inspector/tabs/BranchesTab.d.ts.map +1 -1
- package/workflow/inspector/tabs/BranchesTab.js +2 -1
- package/workflow/inspector/tabs/BranchesTab.js.map +1 -1
- package/workflow/inspector/tabs/IterationTab.d.ts.map +1 -1
- package/workflow/inspector/tabs/IterationTab.js +2 -1
- package/workflow/inspector/tabs/IterationTab.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +2 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workspace/ExplorerTree.d.ts.map +1 -1
- package/workspace/ExplorerTree.js +2 -1
- package/workspace/ExplorerTree.js.map +1 -1
- package/workspace/WorkspaceContentSearch.d.ts.map +1 -1
- package/workspace/WorkspaceContentSearch.js +2 -1
- package/workspace/WorkspaceContentSearch.js.map +1 -1
- package/workspace/WorkspaceFileSearch.d.ts.map +1 -1
- package/workspace/WorkspaceFileSearch.js +2 -1
- package/workspace/WorkspaceFileSearch.js.map +1 -1
- package/workspace/WorkspaceSummary.d.ts.map +1 -1
- package/workspace/WorkspaceSummary.js +2 -1
- package/workspace/WorkspaceSummary.js.map +1 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { memo, useState } from "react";
|
|
4
4
|
import type { FileChangeProgress } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
6
7
|
import { FileKindBadge, FileLineStats } from "./FileReviewAtoms.js";
|
|
7
8
|
import { FilePathLink } from "./FilePathLink.js";
|
|
8
9
|
|
|
@@ -91,7 +92,7 @@ export const FileChangeProgressBar = memo(function FileChangeProgressBar({
|
|
|
91
92
|
<FileLineStats linesAdded={linesAdded} linesRemoved={linesRemoved} />
|
|
92
93
|
</div>
|
|
93
94
|
{expanded && (
|
|
94
|
-
<ul className="stg:mt-2 stg:max-h-[30vh] stg:space-y-1 stg:overflow-y-auto">
|
|
95
|
+
<ul className={cn(UNSTYLED_LIST, "stg:mt-2 stg:max-h-[30vh] stg:space-y-1 stg:overflow-y-auto")}>
|
|
95
96
|
{entries.map((entry) => {
|
|
96
97
|
const path = entry.pathAfter || entry.pathBefore;
|
|
97
98
|
return (
|
|
@@ -4,6 +4,7 @@ import { useMemo, type ComponentType } from "react";
|
|
|
4
4
|
import type { TodoItem } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/todo_pb";
|
|
5
5
|
import { TodoStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
6
6
|
import { cn } from "@stigmer/theme";
|
|
7
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
7
8
|
|
|
8
9
|
/** Props for {@link TodoList}. */
|
|
9
10
|
export interface TodoListProps {
|
|
@@ -69,7 +70,7 @@ export function TodoList({
|
|
|
69
70
|
return (
|
|
70
71
|
<ul
|
|
71
72
|
role="list"
|
|
72
|
-
className={cn("stg:flex stg:flex-col stg:gap-1", className)}
|
|
73
|
+
className={cn(UNSTYLED_LIST, "stg:flex stg:flex-col stg:gap-1", className)}
|
|
73
74
|
aria-label="Tasks"
|
|
74
75
|
>
|
|
75
76
|
{sortedTodos.map((item) => (
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import { useSessionWriteBacks } from "../session/useSessionWriteBacks.js";
|
|
6
7
|
import { WriteBackCard } from "./WriteBackCard.js";
|
|
7
8
|
|
|
@@ -71,7 +72,7 @@ export function WriteBacksWidget({
|
|
|
71
72
|
</span>
|
|
72
73
|
</div>
|
|
73
74
|
|
|
74
|
-
<ul role="list" className="stg:flex stg:flex-col stg:gap-3">
|
|
75
|
+
<ul role="list" className={cn(UNSTYLED_LIST, "stg:flex stg:flex-col stg:gap-3")}>
|
|
75
76
|
{writeBacks.map((entry) => (
|
|
76
77
|
<li key={entry.writeBack.workspaceEntryName}>
|
|
77
78
|
<WriteBackCard writeBack={entry.writeBack} />
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import type { ToolCall } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
2
2
|
import { ToolCallStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
3
3
|
import type { JsonObject } from "@bufbuild/protobuf";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
ToolKind,
|
|
6
|
+
resolveToolKind,
|
|
7
|
+
resolveToolKindByName,
|
|
8
|
+
shellIntentFromArgs,
|
|
9
|
+
} from "@stigmer/sdk";
|
|
5
10
|
|
|
6
11
|
/**
|
|
7
12
|
* Discriminated tool categories for type-aware rendering.
|
|
8
13
|
*
|
|
9
14
|
* This is the presentation taxonomy. Classification (name -> kind) lives in
|
|
10
15
|
* `@stigmer/sdk`'s `resolveToolKind` (single source of truth, shared with the
|
|
11
|
-
* runner and
|
|
12
|
-
* metadata (label, primary argument).
|
|
13
|
-
* MCP server, whose names are
|
|
16
|
+
* runner, @stigmer/ink, and the CLI's headless renderers); this file maps each
|
|
17
|
+
* {@link ToolKind} to its presentation metadata (label, primary argument).
|
|
18
|
+
* `"mcp"` covers tools originating from an MCP server, whose names are
|
|
19
|
+
* dynamic.
|
|
14
20
|
*/
|
|
15
21
|
export type ToolCategory =
|
|
16
22
|
| "shell"
|
|
@@ -497,42 +503,12 @@ export function extractIntentFromPreview(
|
|
|
497
503
|
}
|
|
498
504
|
}
|
|
499
505
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
* harness's tool-intent middleware (`backend/services/runner/src/middleware/
|
|
507
|
-
* tool-intent.ts`, `INTENT_ARG`) extends the shell tool's bind-time schema
|
|
508
|
-
* with it, and the Cursor harness's built-in Shell tool carries it natively.
|
|
509
|
-
* The shared, machine-checked contract is
|
|
510
|
-
* `test/fixtures/tool-view/intent-title.json` — keep all three in lockstep.
|
|
511
|
-
*/
|
|
512
|
-
export const SHELL_INTENT_ARG_FIELD = "description";
|
|
513
|
-
|
|
514
|
-
/**
|
|
515
|
-
* The intent-title extraction core: SHELL-kind-scoped on purpose, because
|
|
516
|
-
* `description` means other things on other tools (a task tool's description
|
|
517
|
-
* is the sub-agent subject, never a row title). Blank and non-string values
|
|
518
|
-
* degrade to null — the caller falls back to the category label.
|
|
519
|
-
*/
|
|
520
|
-
function extractIntentFromArgs(kind: ToolKind, args: JsonObject | undefined): string | null {
|
|
521
|
-
if (kind !== ToolKind.SHELL || !args) return null;
|
|
522
|
-
const value = args[SHELL_INTENT_ARG_FIELD];
|
|
523
|
-
if (typeof value !== "string") return null;
|
|
524
|
-
const trimmed = value.trim();
|
|
525
|
-
return trimmed.length > 0 ? trimmed : null;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
/**
|
|
529
|
-
* Extracts the model-authored intent phrase from a SHELL tool call, or null
|
|
530
|
-
* when absent (legacy executions, models that skipped the optional arg, and
|
|
531
|
-
* every non-shell kind). See {@link SHELL_INTENT_ARG_FIELD}.
|
|
532
|
-
*/
|
|
533
|
-
export function extractShellIntent(toolCall: ToolCall): string | null {
|
|
534
|
-
return extractIntentFromArgs(resolveToolKind(toolCall), toolCall.args);
|
|
535
|
-
}
|
|
506
|
+
// Intent-title extraction lives in @stigmer/sdk's tool-view module — the
|
|
507
|
+
// cross-surface single source of truth the intent-title.json fixture pins —
|
|
508
|
+
// so React, Ink, and the CLI's headless renderers share one implementation.
|
|
509
|
+
// Re-exported here because this module is where React's public tool-view API
|
|
510
|
+
// surfaced them first (#677).
|
|
511
|
+
export { SHELL_INTENT_ARG_FIELD, extractShellIntent } from "@stigmer/sdk";
|
|
536
512
|
|
|
537
513
|
/**
|
|
538
514
|
* Preview-string twin of {@link extractShellIntent} for surfaces that carry a
|
|
@@ -556,7 +532,7 @@ export function extractShellIntentFromPreview(
|
|
|
556
532
|
try {
|
|
557
533
|
const parsed = JSON.parse(argsPreview);
|
|
558
534
|
if (typeof parsed !== "object" || parsed === null) return null;
|
|
559
|
-
return
|
|
535
|
+
return shellIntentFromArgs(kind, parsed as JsonObject);
|
|
560
536
|
} catch {
|
|
561
537
|
return null;
|
|
562
538
|
}
|
|
@@ -4,6 +4,7 @@ import { useCallback, useState } from "react";
|
|
|
4
4
|
import type { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
5
5
|
import type { PrincipalAccess } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/io_pb";
|
|
6
6
|
import { cn } from "@stigmer/theme";
|
|
7
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
7
8
|
import { getUserMessage } from "@stigmer/sdk";
|
|
8
9
|
import { useShareFlow, type ShareFlowResource } from "./useShareFlow.js";
|
|
9
10
|
import { GrantAccessForm } from "./GrantAccessForm.js";
|
|
@@ -83,7 +84,7 @@ export function PeopleWithAccess({
|
|
|
83
84
|
)}
|
|
84
85
|
|
|
85
86
|
{!isLoading && accessList.length > 0 && (
|
|
86
|
-
<ul className="stg:space-y-1 stg:mt-2" aria-label="People with access">
|
|
87
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-1 stg:mt-2")} aria-label="People with access">
|
|
87
88
|
{accessList.map((entry) => (
|
|
88
89
|
<AccessEntry
|
|
89
90
|
key={entry.principal?.id ?? "unknown"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useId, useMemo, useRef, useState } from "react";
|
|
4
4
|
import type { ApiResourceRefView } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/io_pb";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
6
7
|
import { getUserMessage } from "@stigmer/sdk";
|
|
7
8
|
import { useResourceAccess } from "./useResourceAccess.js";
|
|
8
9
|
import { ProviderBadge, providerLabel } from "./ProviderBadge.js";
|
|
@@ -238,6 +239,7 @@ export function PrincipalPicker({
|
|
|
238
239
|
role="listbox"
|
|
239
240
|
aria-label="Organization members"
|
|
240
241
|
className={cn(
|
|
242
|
+
UNSTYLED_LIST,
|
|
241
243
|
"stg:absolute stg:z-10 stg:mt-1 stg:max-h-56 stg:w-full stg:overflow-auto stg:rounded-md stg:border stg:border-border stg:bg-popover stg:py-1 stg:shadow-md",
|
|
242
244
|
)}
|
|
243
245
|
>
|
|
@@ -4,6 +4,7 @@ import { useId } from "react";
|
|
|
4
4
|
import type { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
5
5
|
import type { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
6
6
|
import { cn } from "@stigmer/theme";
|
|
7
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
7
8
|
import { useRoleSelector } from "./useRoleSelector.js";
|
|
8
9
|
|
|
9
10
|
/** Props for {@link RoleSelector}. */
|
|
@@ -73,7 +74,7 @@ export function RoleSelector({
|
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
return (
|
|
76
|
-
<fieldset className={cn("stg:space-y-1.5", className)}>
|
|
77
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-1.5", className)}>
|
|
77
78
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">Role</legend>
|
|
78
79
|
<div className="stg:flex stg:flex-wrap stg:gap-2">
|
|
79
80
|
{options.map((opt) => {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { type FormEvent, useCallback, useId, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
5
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
|
|
7
8
|
import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
@@ -388,7 +389,7 @@ function JitSection({
|
|
|
388
389
|
}
|
|
389
390
|
|
|
390
391
|
return (
|
|
391
|
-
<fieldset className="stg:space-y-2.5" disabled={disabled}>
|
|
392
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2.5")} disabled={disabled}>
|
|
392
393
|
<hr className="stg:border-border-muted" />
|
|
393
394
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
394
395
|
JIT provisioning
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { type FormEvent, useCallback, useId, useRef, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
5
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
|
|
7
8
|
import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
@@ -674,7 +675,7 @@ function JitEditSection({
|
|
|
674
675
|
}
|
|
675
676
|
|
|
676
677
|
return (
|
|
677
|
-
<fieldset className="stg:space-y-2.5" disabled={disabled}>
|
|
678
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2.5")} disabled={disabled}>
|
|
678
679
|
<hr className="stg:border-border-muted" />
|
|
679
680
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
680
681
|
JIT provisioning
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { type FormEvent, useCallback, useId, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
5
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import type { IdentityProvider } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
|
|
7
8
|
import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
@@ -838,7 +839,7 @@ function JitProvisioningSection({
|
|
|
838
839
|
}
|
|
839
840
|
|
|
840
841
|
return (
|
|
841
|
-
<fieldset className="stg:space-y-2.5" disabled={disabled}>
|
|
842
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2.5")} disabled={disabled}>
|
|
842
843
|
<hr className="stg:border-border-muted" />
|
|
843
844
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
844
845
|
JIT provisioning
|
package/src/index.ts
CHANGED
|
@@ -196,6 +196,7 @@ export type {
|
|
|
196
196
|
UseSessionFileChangesReturn,
|
|
197
197
|
ModelCostEntry,
|
|
198
198
|
UseSessionUsageReturn,
|
|
199
|
+
ExecutionUsageEntry,
|
|
199
200
|
UseAgentRefFromSessionReturn,
|
|
200
201
|
UseNewSessionFlowOptions,
|
|
201
202
|
UseNewSessionFlowReturn,
|
|
@@ -1042,6 +1043,18 @@ export type {
|
|
|
1042
1043
|
CursorAccountEditorProps,
|
|
1043
1044
|
} from "./cursor-accounts/index.js";
|
|
1044
1045
|
|
|
1046
|
+
// Provider standing — read-only platform-operator view of the platform's
|
|
1047
|
+
// LLM provider account health (canary-probe verdicts, cloud#447)
|
|
1048
|
+
export {
|
|
1049
|
+
useProviderStanding,
|
|
1050
|
+
ProviderStandingConsole,
|
|
1051
|
+
ProviderStandingAccessNotice,
|
|
1052
|
+
} from "./provider-standing/index.js";
|
|
1053
|
+
export type {
|
|
1054
|
+
UseProviderStandingReturn,
|
|
1055
|
+
ProviderStandingConsoleProps,
|
|
1056
|
+
} from "./provider-standing/index.js";
|
|
1057
|
+
|
|
1045
1058
|
// Settings — navigation structure + section components shared across app shells
|
|
1046
1059
|
export {
|
|
1047
1060
|
SETTINGS_NAV_GROUPS,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Per-element UA-default resets for preflight-less hosts (#695).
|
|
3
|
+
// Internal — never exported from the package barrel.
|
|
4
|
+
//
|
|
5
|
+
// Why these are per-component classes and NOT stylesheet rules: the #374
|
|
6
|
+
// scoped form-control preflight in `styles.css` could reset every button
|
|
7
|
+
// under `.stgm` because UA control chrome is never wanted. Lists are
|
|
8
|
+
// different — "UI list" vs "content list" is a semantic distinction CSS
|
|
9
|
+
// scoping cannot express. The documented quickstart wraps the host's whole
|
|
10
|
+
// app in `StigmerProvider`, so a `.stgm ul { list-style: none }` rule would
|
|
11
|
+
// strip the bullets off the HOST's own content. Every SDK-rendered UI list
|
|
12
|
+
// therefore declares its own reset (enforced by the `stigmer/require-list-reset`
|
|
13
|
+
// lint rule); markdown-rendered content lists instead declare their bullets
|
|
14
|
+
// explicitly (`stg:list-disc stg:pl-5 ...` in markdown-components.tsx).
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* UA-default reset for a UI `<ul>`/`<ol>` (no bullets, no indent, no
|
|
19
|
+
* margins). Without it, a host that ships no global CSS reset renders list
|
|
20
|
+
* markers and ~40px of `padding-inline-start` on every SDK list — invisible
|
|
21
|
+
* on first-party surfaces (console, desktop, docs tours all ship global
|
|
22
|
+
* resets), broken in exactly the third-party embeds the SDK exists for.
|
|
23
|
+
* Spacing utilities (`stg:space-y-*`, `stg:p-*`) compose on top.
|
|
24
|
+
*/
|
|
25
|
+
export const UNSTYLED_LIST = "stg:m-0 stg:list-none stg:p-0";
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* UA-default reset for `<fieldset>` (margin-inline, padding, and
|
|
29
|
+
* `min-inline-size: min-content` — the last one silently breaks flex/grid
|
|
30
|
+
* shrinking). The UA border is already cleared by the `.stgm *` border reset
|
|
31
|
+
* in `styles.css`, so it is not repeated here.
|
|
32
|
+
*/
|
|
33
|
+
export const UNSTYLED_FIELDSET = "stg:m-0 stg:min-w-0 stg:p-0";
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState, type DragEvent } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../element-resets.js";
|
|
5
6
|
import { FileTypeIcon, FolderTypeIcon } from "../file-icons/index.js";
|
|
6
7
|
import type { TreeNode } from "./tree-node.js";
|
|
7
8
|
|
|
@@ -151,7 +152,7 @@ export function FileTreeNode({
|
|
|
151
152
|
{isFolder && expanded && node.children && (
|
|
152
153
|
<ul
|
|
153
154
|
role="group"
|
|
154
|
-
className={cn(indentGuides && "stg:ml-3 stg:border-l stg:border-border")}
|
|
155
|
+
className={cn(UNSTYLED_LIST, indentGuides && "stg:ml-3 stg:border-l stg:border-border")}
|
|
155
156
|
>
|
|
156
157
|
{node.children.map((child) => (
|
|
157
158
|
<FileTreeNode
|
|
@@ -152,12 +152,19 @@ function extractMermaidSource(children: ReactNode): string | null {
|
|
|
152
152
|
* ensuring correct rendering in both the Stigmer Console and third-party
|
|
153
153
|
* host applications with custom themes.
|
|
154
154
|
*
|
|
155
|
+
* Margin-bearing elements (`p`, `ul`, `ol`, `pre`, `blockquote`) declare
|
|
156
|
+
* their top margin (`stg:mt-0`) and blockquote its inline margins
|
|
157
|
+
* explicitly: the spacing rhythm here is authored via `mb-*` on the
|
|
158
|
+
* assumption that UA base margins are zero, which is only true when the
|
|
159
|
+
* host ships a global reset — preflight-less embeds otherwise stack
|
|
160
|
+
* `margin-top: 1em` (and 40px blockquote indents) on top (#695).
|
|
161
|
+
*
|
|
155
162
|
* Used by `MessageEntry` (chat messages) and `SkillDetailView` (SKILL.md).
|
|
156
163
|
*/
|
|
157
164
|
export const MARKDOWN_COMPONENTS: Components = {
|
|
158
165
|
p({ children, ...props }: MdProps<"p">) {
|
|
159
166
|
return (
|
|
160
|
-
<p className="stg:text-sm stg:text-foreground stg:mb-3 stg:last:mb-0 stg:leading-relaxed stg:break-words" {...props}>
|
|
167
|
+
<p className="stg:text-sm stg:text-foreground stg:mt-0 stg:mb-3 stg:last:mb-0 stg:leading-relaxed stg:break-words" {...props}>
|
|
161
168
|
{children}
|
|
162
169
|
</p>
|
|
163
170
|
);
|
|
@@ -211,7 +218,7 @@ export const MARKDOWN_COMPONENTS: Components = {
|
|
|
211
218
|
|
|
212
219
|
ul({ children, ...props }: MdProps<"ul">) {
|
|
213
220
|
return (
|
|
214
|
-
<ul className="stg:list-disc stg:pl-5 stg:mb-3 stg:last:mb-0 stg:space-y-1 stg:text-sm stg:text-foreground" {...props}>
|
|
221
|
+
<ul className="stg:list-disc stg:pl-5 stg:mt-0 stg:mb-3 stg:last:mb-0 stg:space-y-1 stg:text-sm stg:text-foreground" {...props}>
|
|
215
222
|
{children}
|
|
216
223
|
</ul>
|
|
217
224
|
);
|
|
@@ -219,7 +226,7 @@ export const MARKDOWN_COMPONENTS: Components = {
|
|
|
219
226
|
|
|
220
227
|
ol({ children, ...props }: MdProps<"ol">) {
|
|
221
228
|
return (
|
|
222
|
-
<ol className="stg:list-decimal stg:pl-5 stg:mb-3 stg:last:mb-0 stg:space-y-1 stg:text-sm stg:text-foreground" {...props}>
|
|
229
|
+
<ol className="stg:list-decimal stg:pl-5 stg:mt-0 stg:mb-3 stg:last:mb-0 stg:space-y-1 stg:text-sm stg:text-foreground" {...props}>
|
|
223
230
|
{children}
|
|
224
231
|
</ol>
|
|
225
232
|
);
|
|
@@ -245,7 +252,7 @@ export const MARKDOWN_COMPONENTS: Components = {
|
|
|
245
252
|
|
|
246
253
|
return (
|
|
247
254
|
<pre
|
|
248
|
-
className="stg:mb-3 stg:last:mb-0 stg:overflow-x-auto stg:rounded-md stg:bg-muted stg:p-3"
|
|
255
|
+
className="stg:mt-0 stg:mb-3 stg:last:mb-0 stg:overflow-x-auto stg:rounded-md stg:bg-muted stg:p-3"
|
|
249
256
|
{...props}
|
|
250
257
|
>
|
|
251
258
|
{children}
|
|
@@ -293,9 +300,12 @@ export const MARKDOWN_COMPONENTS: Components = {
|
|
|
293
300
|
},
|
|
294
301
|
|
|
295
302
|
blockquote({ children, ...props }: MdProps<"blockquote">) {
|
|
303
|
+
// mx-0 matters as much as mt-0 here: UA blockquote margin is `1em 40px`,
|
|
304
|
+
// so a preflight-less host renders a double indent on BOTH sides on top
|
|
305
|
+
// of the border-l + pl-4 treatment.
|
|
296
306
|
return (
|
|
297
307
|
<blockquote
|
|
298
|
-
className="stg:border-l-2 stg:border-border stg:
|
|
308
|
+
className="stg:border-l-2 stg:border-border stg:mx-0 stg:mt-0 stg:mb-3 stg:pl-4 stg:last:mb-0 stg:text-muted-foreground stg:italic"
|
|
299
309
|
{...props}
|
|
300
310
|
>
|
|
301
311
|
{children}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useId, useState, type FormEvent } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
5
6
|
import {
|
|
6
7
|
getUserMessage,
|
|
7
8
|
iamRoleDisplayName,
|
|
@@ -302,7 +303,7 @@ function CreateInvitationForm({
|
|
|
302
303
|
/>
|
|
303
304
|
|
|
304
305
|
{/* Expiry */}
|
|
305
|
-
<fieldset className="stg:space-y-1.5">
|
|
306
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-1.5")}>
|
|
306
307
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
307
308
|
Expires in
|
|
308
309
|
</legend>
|
|
@@ -324,7 +325,7 @@ function CreateInvitationForm({
|
|
|
324
325
|
</fieldset>
|
|
325
326
|
|
|
326
327
|
{/* Redemption mode */}
|
|
327
|
-
<fieldset className="stg:space-y-1.5">
|
|
328
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-1.5")}>
|
|
328
329
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
329
330
|
Usage limit
|
|
330
331
|
</legend>
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { lazy, Suspense, useCallback, useEffect, useRef } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { DialogShell } from "../internal/DialogShell.js";
|
|
6
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
6
7
|
import { toast } from "../feedback/toast.js";
|
|
7
8
|
import { RedactedSecretsNotice } from "./RedactedSecretsNotice.js";
|
|
8
9
|
import {
|
|
@@ -189,7 +190,7 @@ export function ApplyManifestDialog({
|
|
|
189
190
|
|
|
190
191
|
{/* Per-document preview */}
|
|
191
192
|
{manifest.entries && manifest.entries.length > 0 && (
|
|
192
|
-
<ul className="stg:flex stg:max-h-48 stg:flex-col stg:gap-2 stg:overflow-y-auto" aria-label="Resources to apply">
|
|
193
|
+
<ul className={cn(UNSTYLED_LIST, "stg:flex stg:max-h-48 stg:flex-col stg:gap-2 stg:overflow-y-auto")} aria-label="Resources to apply">
|
|
193
194
|
{manifest.entries.map((entry, index) => (
|
|
194
195
|
<PreviewRow key={`${entry.document.handler.yamlKind}/${entry.document.org}/${entry.document.slug}/${index}`} entry={entry} />
|
|
195
196
|
))}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useId } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../../internal/element-resets.js";
|
|
5
6
|
import { generateSlug } from "../../internal/slug.js";
|
|
6
7
|
import type { McpServerWizardData, KeyValueEntry } from "./types.js";
|
|
7
8
|
|
|
@@ -179,7 +180,7 @@ export function IdentityTransportStep({
|
|
|
179
180
|
/>
|
|
180
181
|
</div>
|
|
181
182
|
|
|
182
|
-
<fieldset className="stg:space-y-1.5">
|
|
183
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-1.5")}>
|
|
183
184
|
<legend className="stg:text-sm stg:font-medium stg:text-foreground">
|
|
184
185
|
Visibility
|
|
185
186
|
</legend>
|
|
@@ -204,7 +205,7 @@ export function IdentityTransportStep({
|
|
|
204
205
|
|
|
205
206
|
{/* data-scroll-target: guided tours/demos scroll the transport config
|
|
206
207
|
(the step's decision point) into view within the wizard's scroll area. */}
|
|
207
|
-
<fieldset className="stg:space-y-3" data-scroll-target="mcp-transport">
|
|
208
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-3")} data-scroll-target="mcp-transport">
|
|
208
209
|
<legend className="stg:text-sm stg:font-medium stg:text-foreground">
|
|
209
210
|
Transport <span className="stg:text-destructive">*</span>
|
|
210
211
|
</legend>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { type FormEvent, type KeyboardEvent, useCallback, useId, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
5
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
7
8
|
import type { PlatformClientCreateResponse } from "@stigmer/protos/ai/stigmer/iam/platformclient/v1/io_pb";
|
|
@@ -167,7 +168,7 @@ export function CreatePlatformClientForm({
|
|
|
167
168
|
/>
|
|
168
169
|
|
|
169
170
|
{/* Expiry */}
|
|
170
|
-
<fieldset className="stg:space-y-2" disabled={isCreating}>
|
|
171
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2")} disabled={isCreating}>
|
|
171
172
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
172
173
|
Expiry
|
|
173
174
|
</legend>
|
|
@@ -202,7 +203,7 @@ export function CreatePlatformClientForm({
|
|
|
202
203
|
</fieldset>
|
|
203
204
|
|
|
204
205
|
{/* JIT provisioning */}
|
|
205
|
-
<fieldset className="stg:space-y-2.5" disabled={isCreating}>
|
|
206
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2.5")} disabled={isCreating}>
|
|
206
207
|
<hr className="stg:border-border-muted" />
|
|
207
208
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
208
209
|
JIT provisioning
|
|
@@ -263,7 +264,7 @@ export function CreatePlatformClientForm({
|
|
|
263
264
|
</fieldset>
|
|
264
265
|
|
|
265
266
|
{/* Allowed origins */}
|
|
266
|
-
<fieldset className="stg:space-y-2" disabled={isCreating}>
|
|
267
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2")} disabled={isCreating}>
|
|
267
268
|
<hr className="stg:border-border-muted" />
|
|
268
269
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
269
270
|
Allowed origins
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { type FormEvent, type KeyboardEvent, useCallback, useId, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
5
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import { IamRole } from "@stigmer/protos/ai/stigmer/iam/v1/enum_pb";
|
|
7
8
|
import { timestampDate, type Timestamp } from "@bufbuild/protobuf/wkt";
|
|
@@ -302,7 +303,7 @@ export function PlatformClientDetailPanel({
|
|
|
302
303
|
</div>
|
|
303
304
|
|
|
304
305
|
{/* Expiry */}
|
|
305
|
-
<fieldset className="stg:space-y-2" disabled={isUpdating}>
|
|
306
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2")} disabled={isUpdating}>
|
|
306
307
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
307
308
|
Expiry
|
|
308
309
|
</legend>
|
|
@@ -337,7 +338,7 @@ export function PlatformClientDetailPanel({
|
|
|
337
338
|
</fieldset>
|
|
338
339
|
|
|
339
340
|
{/* JIT provisioning */}
|
|
340
|
-
<fieldset className="stg:space-y-2.5" disabled={isUpdating}>
|
|
341
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2.5")} disabled={isUpdating}>
|
|
341
342
|
<hr className="stg:border-border-muted" />
|
|
342
343
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
343
344
|
JIT provisioning
|
|
@@ -393,7 +394,7 @@ export function PlatformClientDetailPanel({
|
|
|
393
394
|
</fieldset>
|
|
394
395
|
|
|
395
396
|
{/* Allowed origins */}
|
|
396
|
-
<fieldset className="stg:space-y-2" disabled={isUpdating}>
|
|
397
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-2")} disabled={isUpdating}>
|
|
397
398
|
<hr className="stg:border-border-muted" />
|
|
398
399
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
399
400
|
Allowed origins
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState, type FormEvent } from "react";
|
|
4
|
+
import { UNSTYLED_FIELDSET } from "../internal/element-resets.js";
|
|
4
5
|
import { create } from "@bufbuild/protobuf";
|
|
5
6
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import {
|
|
@@ -546,7 +547,7 @@ export function BaselineEditor({
|
|
|
546
547
|
Featured (appears in the curated default picker list)
|
|
547
548
|
</label>
|
|
548
549
|
|
|
549
|
-
<fieldset className=
|
|
550
|
+
<fieldset className={`${UNSTYLED_FIELDSET} stg:space-y-2`}>
|
|
550
551
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
551
552
|
Rates ($ per million tokens)
|
|
552
553
|
</legend>
|
|
@@ -565,7 +566,7 @@ export function BaselineEditor({
|
|
|
565
566
|
</div>
|
|
566
567
|
</fieldset>
|
|
567
568
|
|
|
568
|
-
<fieldset className=
|
|
569
|
+
<fieldset className={`${UNSTYLED_FIELDSET} stg:space-y-2`}>
|
|
569
570
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">Pricing variants</legend>
|
|
570
571
|
{form.variants.map((variant, index) => (
|
|
571
572
|
<div key={index} className="stg:space-y-2 stg:rounded-md stg:border stg:border-border-muted stg:px-2.5 stg:py-2">
|
|
@@ -11,6 +11,7 @@ import { RetireConfirm } from "./RetireConfirm.js";
|
|
|
11
11
|
import { ModelGovernanceDetail } from "./ModelGovernanceDetail.js";
|
|
12
12
|
import { OperatorAccessNotice } from "./OperatorAccessNotice.js";
|
|
13
13
|
import { GovernanceBadge, PendingOverrideCard, RateCell } from "./governance-primitives.js";
|
|
14
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
14
15
|
import { INPUT_CLASSES } from "../internal/form-primitives.js";
|
|
15
16
|
import { TruncatedText } from "../internal/truncated-text.js";
|
|
16
17
|
import { ZERO } from "./pricing-format.js";
|
|
@@ -328,7 +329,7 @@ function ModelsTab({
|
|
|
328
329
|
: "The catalog is empty — has the baseline seed migration run?"}
|
|
329
330
|
</p>
|
|
330
331
|
) : (
|
|
331
|
-
<ul role="list" aria-label="Models" className=
|
|
332
|
+
<ul role="list" aria-label="Models" className={UNSTYLED_LIST}>
|
|
332
333
|
{view.models.map((row) => (
|
|
333
334
|
<ModelRow key={row.key} row={row} onOpen={() => view.openDetail(row.key)} />
|
|
334
335
|
))}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { cn } from "@stigmer/theme";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The access-denied state for the provider-standing operator surface.
|
|
7
|
+
* Server-side authorization (`can_view_provider_standing` on
|
|
8
|
+
* `platform:stigmer`) is the real gate — this is the honest, designed
|
|
9
|
+
* face of that denial for anyone who navigates to the operator route
|
|
10
|
+
* without the permission, instead of a raw RPC error string.
|
|
11
|
+
*/
|
|
12
|
+
export function ProviderStandingAccessNotice({
|
|
13
|
+
className,
|
|
14
|
+
}: {
|
|
15
|
+
readonly className?: string;
|
|
16
|
+
}) {
|
|
17
|
+
return (
|
|
18
|
+
<div
|
|
19
|
+
className={cn(
|
|
20
|
+
"stg:rounded-lg stg:border stg:border-border stg:bg-card stg:px-4 stg:py-6 stg:text-center",
|
|
21
|
+
className,
|
|
22
|
+
)}
|
|
23
|
+
role="status"
|
|
24
|
+
>
|
|
25
|
+
<p className="stg:text-xs stg:font-semibold stg:text-foreground">
|
|
26
|
+
Platform operator access required
|
|
27
|
+
</p>
|
|
28
|
+
<p className="stg:mx-auto stg:mt-1 stg:max-w-md stg:text-xs stg:text-muted-foreground">
|
|
29
|
+
Provider standing reports the health of the platform's own LLM
|
|
30
|
+
provider accounts, which is Stigmer-internal. It needs the platform
|
|
31
|
+
operator role — organization roles do not grant it. If you believe
|
|
32
|
+
you should have access, contact a platform operator.
|
|
33
|
+
</p>
|
|
34
|
+
</div>
|
|
35
|
+
);
|
|
36
|
+
}
|