@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkillDiff.js","sourceRoot":"","sources":["../../src/skill/useSkillDiff.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAiBlF
|
|
1
|
+
{"version":3,"file":"useSkillDiff.js","sourceRoot":"","sources":["../../src/skill/useSkillDiff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkillUpload.d.ts","sourceRoot":"","sources":["../../src/skill/useSkillUpload.ts"],"names":[],"mappings":"AASA,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IACjC,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5C,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;CACtC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"useSkillUpload.d.ts","sourceRoot":"","sources":["../../src/skill/useSkillUpload.ts"],"names":[],"mappings":"AASA,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IACjC,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,8CAA8C;AAC9C,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC5C,qEAAqE;IACrE,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;CACtC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,CA2GrD"}
|
package/skill/useSkillUpload.js
CHANGED
|
@@ -73,9 +73,13 @@ export function useSkillUpload() {
|
|
|
73
73
|
if (abortRef.current !== callId)
|
|
74
74
|
return;
|
|
75
75
|
const entries = Object.entries(unzipped);
|
|
76
|
-
const skillMdEntry =
|
|
76
|
+
const skillMdEntry = findRootSkillMd(entries);
|
|
77
77
|
if (!skillMdEntry) {
|
|
78
|
-
|
|
78
|
+
const nestedPath = findNestedSkillMd(entries);
|
|
79
|
+
setValidationError(nestedPath
|
|
80
|
+
? `Found ${nestedPath} — SKILL.md must be at the archive root. ` +
|
|
81
|
+
"Zip the skill folder's contents, not the folder itself."
|
|
82
|
+
: "ZIP must contain a SKILL.md file at the root level");
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
81
85
|
const skillMdContent = strFromU8(skillMdEntry[1]);
|
|
@@ -136,8 +140,22 @@ function isZip(bytes) {
|
|
|
136
140
|
bytes[2] === ZIP_MAGIC_BYTES[2] &&
|
|
137
141
|
bytes[3] === ZIP_MAGIC_BYTES[3]);
|
|
138
142
|
}
|
|
139
|
-
|
|
140
|
-
|
|
143
|
+
/**
|
|
144
|
+
* The layout contract is root-only on both editions (DD-018, #452): the
|
|
145
|
+
* server rejects an archive whose only SKILL.md is nested, so the preview
|
|
146
|
+
* must too — accepting it here converts a clear pre-upload error into a
|
|
147
|
+
* confusing post-upload rejection (issue #684).
|
|
148
|
+
*/
|
|
149
|
+
function findRootSkillMd(entries) {
|
|
150
|
+
return entries.find(([path]) => path === "SKILL.md");
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Detect the "zipped the folder instead of its contents" mistake so the
|
|
154
|
+
* error can say what to do. Any-depth suffix match, mirroring the server's
|
|
155
|
+
* nested-occurrence detection (skill/storage/zip_extractor.go).
|
|
156
|
+
*/
|
|
157
|
+
function findNestedSkillMd(entries) {
|
|
158
|
+
return entries.find(([path]) => path.endsWith("/SKILL.md"))?.[0];
|
|
141
159
|
}
|
|
142
160
|
function parseFrontmatter(content) {
|
|
143
161
|
const match = content.match(FRONTMATTER_RE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkillUpload.js","sourceRoot":"","sources":["../../src/skill/useSkillUpload.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AA8C1C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAC5C,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAErD,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA4B,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,EAAE,IAAU,EAAE,EAAE;QACnD,MAAM,MAAM,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,WAAW,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEvD,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO;YAExC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClB,kBAAkB,CAAC,iCAAiC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM;gBAAE,OAAO;YAExC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"useSkillUpload.js","sourceRoot":"","sources":["../../src/skill/useSkillUpload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
// Bare-host regression suite for the per-element UA resets (#695).
|
|
2
|
+
//
|
|
3
|
+
// Runs in a real Chromium via `vitest.a11y.config.ts` — the defect under
|
|
4
|
+
// guard is the user agent's OWN default list/fieldset/flow-content styling
|
|
5
|
+
// (bullets, 40px indents, stacked margins), which only a real browser
|
|
6
|
+
// applies. happy-dom has no UA stylesheet, so it would pass vacuously.
|
|
7
|
+
//
|
|
8
|
+
// The contract: every SDK component is authored against a zeroed-margin
|
|
9
|
+
// baseline (our consoles ship a global reset). In a host WITHOUT one —
|
|
10
|
+
// third-party embeds, the SDK's stated audience — UI lists and fieldsets
|
|
11
|
+
// carry the `UNSTYLED_LIST`/`UNSTYLED_FIELDSET` per-component resets
|
|
12
|
+
// (`internal/element-resets.ts` records why this class of reset cannot live
|
|
13
|
+
// in styles.css), and the markdown map declares its own top/inline margins.
|
|
14
|
+
// Like the sibling #374 suite (preflight-parity.layout.test.tsx), this
|
|
15
|
+
// renders against the SHIPPED stylesheet (`dist/styles.css`, rebuilt by
|
|
16
|
+
// `npm run build:css`) and nothing else — the page IS the bare host.
|
|
17
|
+
//
|
|
18
|
+
// Three directions, all load-bearing:
|
|
19
|
+
// 1. A control proving the harness is genuinely bare (a raw <ul> DOES show
|
|
20
|
+
// UA bullets — if this fails, every other assertion here is vacuous).
|
|
21
|
+
// 2. The resets neutralize UA defaults on real, swept components.
|
|
22
|
+
// 3. Utilities and deliberate styling still win (markdown lists keep their
|
|
23
|
+
// explicit bullets; spacing utilities compose on top of the reset).
|
|
24
|
+
|
|
25
|
+
import "../../dist/styles.css";
|
|
26
|
+
|
|
27
|
+
import { describe, it, expect, afterEach } from "vitest";
|
|
28
|
+
import { render, cleanup } from "@testing-library/react";
|
|
29
|
+
import { create } from "@bufbuild/protobuf";
|
|
30
|
+
import Markdown from "react-markdown";
|
|
31
|
+
import type { Stigmer } from "@stigmer/sdk";
|
|
32
|
+
import { TodoItemSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/todo_pb";
|
|
33
|
+
import { TodoStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
34
|
+
import { StigmerProvider } from "../provider";
|
|
35
|
+
import { TodoList } from "../execution/TodoList.js";
|
|
36
|
+
import { UNSTYLED_FIELDSET, UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
37
|
+
import { MARKDOWN_COMPONENTS } from "../internal/markdown-components.js";
|
|
38
|
+
|
|
39
|
+
afterEach(cleanup);
|
|
40
|
+
|
|
41
|
+
// A minimal client (the preflight-parity suite's idiom): a null credential
|
|
42
|
+
// keeps the provider's registry fetches non-blocking so rendering is
|
|
43
|
+
// synchronous and never touches the network.
|
|
44
|
+
function makeClient(): Stigmer {
|
|
45
|
+
return {
|
|
46
|
+
baseUrl: "https://example.test",
|
|
47
|
+
getAuthCredential: async () => null,
|
|
48
|
+
fetch: (async () => {
|
|
49
|
+
throw new Error("network disabled in test");
|
|
50
|
+
}) as unknown as typeof globalThis.fetch,
|
|
51
|
+
} as unknown as Stigmer;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function renderScoped(ui: React.ReactNode): HTMLElement {
|
|
55
|
+
render(
|
|
56
|
+
<StigmerProvider client={makeClient()}>
|
|
57
|
+
<div data-testid="probe">{ui}</div>
|
|
58
|
+
</StigmerProvider>,
|
|
59
|
+
);
|
|
60
|
+
return document.querySelector('[data-testid="probe"]') as HTMLElement;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function computed(el: Element): CSSStyleDeclaration {
|
|
64
|
+
return getComputedStyle(el);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const ZERO_MARGINS = ["0px", "0px", "0px", "0px"];
|
|
68
|
+
|
|
69
|
+
function margins(style: CSSStyleDeclaration): string[] {
|
|
70
|
+
return [style.marginTop, style.marginRight, style.marginBottom, style.marginLeft];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
describe("bare-host per-element resets (#695)", () => {
|
|
74
|
+
it("CONTROL: the harness is genuinely bare — a raw <ul> wears UA bullets and indent", () => {
|
|
75
|
+
const probe = renderScoped(
|
|
76
|
+
<ul>
|
|
77
|
+
<li>raw</li>
|
|
78
|
+
</ul>,
|
|
79
|
+
);
|
|
80
|
+
const style = computed(probe.querySelector("ul")!);
|
|
81
|
+
|
|
82
|
+
expect(style.listStyleType, "no global reset may leak into this page").toBe("disc");
|
|
83
|
+
expect(style.paddingLeft, "UA padding-inline-start must be present").toBe("40px");
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
describe("UNSTYLED_LIST", () => {
|
|
87
|
+
it("neutralizes bullets, indent, and margins", () => {
|
|
88
|
+
const probe = renderScoped(
|
|
89
|
+
<ul className={UNSTYLED_LIST}>
|
|
90
|
+
<li>item</li>
|
|
91
|
+
</ul>,
|
|
92
|
+
);
|
|
93
|
+
const style = computed(probe.querySelector("ul")!);
|
|
94
|
+
|
|
95
|
+
expect(style.listStyleType).toBe("none");
|
|
96
|
+
expect(style.paddingLeft).toBe("0px");
|
|
97
|
+
expect(margins(style)).toEqual(ZERO_MARGINS);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it("spacing utilities still win over the reset (tailwind-merge + layer order)", () => {
|
|
101
|
+
const probe = renderScoped(
|
|
102
|
+
<ul className={`${UNSTYLED_LIST} stg:p-2`}>
|
|
103
|
+
<li>item</li>
|
|
104
|
+
</ul>,
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
expect(computed(probe.querySelector("ul")!).paddingLeft).toBe("8px");
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it("a real swept organism (TodoList) renders without UA list styling", () => {
|
|
111
|
+
const probe = renderScoped(
|
|
112
|
+
<TodoList
|
|
113
|
+
todos={{
|
|
114
|
+
t1: create(TodoItemSchema, {
|
|
115
|
+
id: "t1",
|
|
116
|
+
content: "Scaffold the component",
|
|
117
|
+
status: TodoStatus.TODO_IN_PROGRESS,
|
|
118
|
+
}),
|
|
119
|
+
}}
|
|
120
|
+
/>,
|
|
121
|
+
);
|
|
122
|
+
const style = computed(probe.querySelector('ul[aria-label="Tasks"]')!);
|
|
123
|
+
|
|
124
|
+
expect(style.listStyleType).toBe("none");
|
|
125
|
+
expect(style.paddingLeft).toBe("0px");
|
|
126
|
+
expect(margins(style)).toEqual(ZERO_MARGINS);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
describe("UNSTYLED_FIELDSET", () => {
|
|
131
|
+
it("neutralizes UA fieldset margins, padding, and min-inline-size", () => {
|
|
132
|
+
const probe = renderScoped(
|
|
133
|
+
<>
|
|
134
|
+
<fieldset data-testid="raw">
|
|
135
|
+
<legend>raw</legend>
|
|
136
|
+
</fieldset>
|
|
137
|
+
<fieldset data-testid="reset" className={UNSTYLED_FIELDSET}>
|
|
138
|
+
<legend>reset</legend>
|
|
139
|
+
</fieldset>
|
|
140
|
+
</>,
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
// Control half: UA fieldset padding really is present in this page.
|
|
144
|
+
expect(computed(probe.querySelector('[data-testid="raw"]')!).paddingLeft).not.toBe("0px");
|
|
145
|
+
|
|
146
|
+
const style = computed(probe.querySelector('[data-testid="reset"]')!);
|
|
147
|
+
expect(margins(style)).toEqual(ZERO_MARGINS);
|
|
148
|
+
expect(style.paddingLeft).toBe("0px");
|
|
149
|
+
expect(style.minWidth, "min-inline-size: min-content breaks flex shrinking").toBe("0px");
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
describe("markdown map (content elements declare their own margins)", () => {
|
|
154
|
+
function renderMarkdown(md: string): HTMLElement {
|
|
155
|
+
return renderScoped(<Markdown components={MARKDOWN_COMPONENTS}>{md}</Markdown>);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
it("paragraphs carry no UA top margin, so mb-* spacing is the whole rhythm", () => {
|
|
159
|
+
const probe = renderMarkdown("first\n\nsecond");
|
|
160
|
+
const [, second] = Array.from(probe.querySelectorAll("p"));
|
|
161
|
+
|
|
162
|
+
expect(computed(second).marginTop).toBe("0px");
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
it("blockquotes lose the UA 1em/40px box but keep the authored border+padding treatment", () => {
|
|
166
|
+
const probe = renderMarkdown("> quoted");
|
|
167
|
+
const style = computed(probe.querySelector("blockquote")!);
|
|
168
|
+
|
|
169
|
+
expect(style.marginTop).toBe("0px");
|
|
170
|
+
expect(style.marginLeft, "UA margin-inline: 40px must be cleared").toBe("0px");
|
|
171
|
+
expect(style.marginRight).toBe("0px");
|
|
172
|
+
expect(style.paddingLeft, "the authored pl-4 treatment stays").toBe("16px");
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it("content lists KEEP their bullets — the reset is for UI lists only", () => {
|
|
176
|
+
const probe = renderMarkdown("- one\n- two");
|
|
177
|
+
const style = computed(probe.querySelector("ul")!);
|
|
178
|
+
|
|
179
|
+
expect(style.listStyleType).toBe("disc");
|
|
180
|
+
expect(style.marginTop, "stacked UA margin-top must be cleared").toBe("0px");
|
|
181
|
+
expect(style.paddingLeft, "authored pl-5 replaces the UA 40px").toBe("20px");
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
});
|
|
@@ -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 { AgentWizardData } from "./types.js";
|
|
7
8
|
|
|
@@ -173,7 +174,7 @@ export function IdentityStep({
|
|
|
173
174
|
/>
|
|
174
175
|
</div>
|
|
175
176
|
|
|
176
|
-
<fieldset className="stg:space-y-1.5">
|
|
177
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-1.5")}>
|
|
177
178
|
<legend className="stg:text-sm stg:font-medium stg:text-foreground">
|
|
178
179
|
Visibility
|
|
179
180
|
</legend>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
6
7
|
import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
|
|
7
8
|
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
@@ -233,7 +234,7 @@ export function AgentInstanceDetailPanel({
|
|
|
233
234
|
{(spec?.environmentRefs?.length ?? 0) === 0 ? (
|
|
234
235
|
<p className="stg:text-xs stg:text-muted-foreground">No environments bound.</p>
|
|
235
236
|
) : (
|
|
236
|
-
<ol className="stg:space-y-1">
|
|
237
|
+
<ol className={cn(UNSTYLED_LIST, "stg:space-y-1")}>
|
|
237
238
|
{spec!.environmentRefs.map((ref, idx) => (
|
|
238
239
|
<li key={`${ref.slug}-${idx}`} className="stg:flex stg:items-center stg:gap-2 stg:text-sm">
|
|
239
240
|
<span className="stg:text-xs stg:text-muted-foreground stg:w-4 stg:text-right">{idx + 1}.</span>
|
|
@@ -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 { getUserMessage } from "@stigmer/sdk";
|
|
6
7
|
import type { ApiKey } from "@stigmer/protos/ai/stigmer/iam/apikey/v1/api_pb";
|
|
7
8
|
import { useCreateApiKey } from "./useCreateApiKey.js";
|
|
@@ -122,7 +123,7 @@ export function CreateApiKeyForm({
|
|
|
122
123
|
</div>
|
|
123
124
|
|
|
124
125
|
{/* Expiry */}
|
|
125
|
-
<fieldset className="stg:space-y-1.5">
|
|
126
|
+
<fieldset className={cn(UNSTYLED_FIELDSET, "stg:space-y-1.5")}>
|
|
126
127
|
<legend className="stg:text-xs stg:font-medium stg:text-foreground">
|
|
127
128
|
Expiration
|
|
128
129
|
</legend>
|
|
@@ -5,6 +5,7 @@ import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
|
5
5
|
import { MessageSquare, User, X } from "lucide-react";
|
|
6
6
|
import { cn } from "@stigmer/theme";
|
|
7
7
|
import { DialogShell } from "../internal/DialogShell.js";
|
|
8
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
8
9
|
import { getUserMessage } from "@stigmer/sdk";
|
|
9
10
|
import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
|
|
10
11
|
import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
@@ -153,7 +154,7 @@ function ChannelConversationsDialogBody({
|
|
|
153
154
|
description="When someone messages this channel, the sessions serving them appear here."
|
|
154
155
|
/>
|
|
155
156
|
) : (
|
|
156
|
-
<ul className="stg:space-y-1">
|
|
157
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-1")}>
|
|
157
158
|
{sessions.map((session) => (
|
|
158
159
|
<ConversationRow
|
|
159
160
|
key={session.metadata?.id}
|
|
@@ -4,6 +4,7 @@ import { useCallback, useId, type ReactNode } from "react";
|
|
|
4
4
|
import { ExternalLink, LayoutTemplate, X } from "lucide-react";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
6
|
import { DialogShell } from "../internal/DialogShell.js";
|
|
7
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
7
8
|
import { getUserMessage } from "@stigmer/sdk";
|
|
8
9
|
import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
|
|
9
10
|
import type { ChannelTemplate } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/message_io_pb";
|
|
@@ -297,7 +298,7 @@ function ChannelTemplatesList({
|
|
|
297
298
|
</p>
|
|
298
299
|
<WhatsAppManagerLink label="Manage in WhatsApp Manager" />
|
|
299
300
|
</div>
|
|
300
|
-
<ul className="stg:space-y-2">
|
|
301
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-2")}>
|
|
301
302
|
{templates.map((template) => (
|
|
302
303
|
<TemplateRow
|
|
303
304
|
key={`${template.name}\u0000${template.language}`}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useId, useMemo, useState } 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 { getErrorReason, type ResourceRef } from "@stigmer/sdk";
|
|
7
8
|
import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
|
|
8
9
|
import type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
|
|
@@ -527,7 +528,7 @@ function FlowProgress({
|
|
|
527
528
|
|
|
528
529
|
return (
|
|
529
530
|
<div className="stg:space-y-3" aria-live="polite">
|
|
530
|
-
<ul className="stg:space-y-2">
|
|
531
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-2")}>
|
|
531
532
|
{FLOW_STEPS.map((step, i) => {
|
|
532
533
|
const isActive = i === activeIndex;
|
|
533
534
|
const isDone = activeIndex > i;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import type { ReactNode } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_FIELDSET } from "../../internal/element-resets.js";
|
|
5
6
|
import type { ResourceRef } from "@stigmer/sdk";
|
|
6
7
|
import type { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
7
8
|
|
|
@@ -67,7 +68,7 @@ export function ServingAppSection({
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
return (
|
|
70
|
-
<fieldset>
|
|
71
|
+
<fieldset className={UNSTYLED_FIELDSET}>
|
|
71
72
|
<legend className="stg:mb-1.5 stg:block stg:text-xs stg:font-medium stg:text-foreground">
|
|
72
73
|
Connect as
|
|
73
74
|
</legend>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { type FormEvent, useCallback, useId, useMemo, 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 { ChannelApp } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
|
|
7
8
|
import {
|
|
@@ -286,7 +287,7 @@ function ProviderPicker({
|
|
|
286
287
|
}) {
|
|
287
288
|
const groupName = useId();
|
|
288
289
|
return (
|
|
289
|
-
<fieldset>
|
|
290
|
+
<fieldset className={UNSTYLED_FIELDSET}>
|
|
290
291
|
<legend className="stg:mb-1.5 stg:block stg:text-xs stg:font-medium stg:text-foreground">
|
|
291
292
|
Provider
|
|
292
293
|
</legend>
|
|
@@ -4,6 +4,7 @@ import { memo, useCallback, useId, useRef } from "react";
|
|
|
4
4
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
5
5
|
import { MessageSquare, TriangleAlert, User } from "lucide-react";
|
|
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 type { AgentChannel } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
|
|
9
10
|
import {
|
|
@@ -193,11 +194,7 @@ export function ConversationListPane({
|
|
|
193
194
|
{/* One context-only provider arms every row's attention
|
|
194
195
|
tooltip (the WorkspaceSidebar recents-list precedent). */}
|
|
195
196
|
<TooltipProvider>
|
|
196
|
-
{
|
|
197
|
-
convention): hosts without a global preflight would
|
|
198
|
-
otherwise render inbox rows with UA bullets and
|
|
199
|
-
indent. */}
|
|
200
|
-
<ul className="stg:m-0 stg:list-none stg:space-y-0.5 stg:p-0">
|
|
197
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-0.5")}>
|
|
201
198
|
{conversations.map((conversation) => (
|
|
202
199
|
<ConversationRow
|
|
203
200
|
key={`${conversation.agentChannelId}:${conversation.conversationKey}`}
|
|
@@ -4,6 +4,7 @@ import { memo, useMemo } from "react";
|
|
|
4
4
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
5
5
|
import { Ban, Check, CheckCheck, Clock, Info, MessageSquare, TriangleAlert } from "lucide-react";
|
|
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 type { ConversationTimelineItem } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/conversation_io_pb";
|
|
9
10
|
import { channelProviderOf, type ChannelProviderId } from "../channel/providers.js";
|
|
@@ -165,7 +166,7 @@ export function ConversationTimelineView({
|
|
|
165
166
|
>
|
|
166
167
|
{day.label}
|
|
167
168
|
</div>
|
|
168
|
-
<ul className="stg:space-y-1.5">
|
|
169
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-1.5")}>
|
|
169
170
|
{day.items.map((item) => (
|
|
170
171
|
<TimelineItemRow
|
|
171
172
|
key={item.itemId}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import { getUserMessage, isPermissionDenied } from "@stigmer/sdk";
|
|
6
7
|
import type { CursorAccount } from "@stigmer/protos/ai/stigmer/platform/cursoraccount/v1/cursor_account_pb";
|
|
7
8
|
import type { CursorAccountSummary } from "@stigmer/protos/ai/stigmer/platform/cursoraccount/v1/io_pb";
|
|
@@ -145,7 +146,7 @@ export function CursorAccountsConsole({ className }: CursorAccountsConsoleProps)
|
|
|
145
146
|
add member execution keys to make it routable.
|
|
146
147
|
</p>
|
|
147
148
|
) : (
|
|
148
|
-
<ul role="list" aria-label="Cursor accounts" className=
|
|
149
|
+
<ul role="list" aria-label="Cursor accounts" className={UNSTYLED_LIST}>
|
|
149
150
|
{accounts.map((summary) => (
|
|
150
151
|
<AccountRow
|
|
151
152
|
key={summary.account?.accountId}
|
|
@@ -5,6 +5,7 @@ import { cn } from "@stigmer/theme";
|
|
|
5
5
|
import { getUserMessage } from "@stigmer/sdk";
|
|
6
6
|
import type { CursorAccountView } from "@stigmer/protos/ai/stigmer/platform/cursoraccount/v1/io_pb";
|
|
7
7
|
import { Button } from "../button/index.js";
|
|
8
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
8
9
|
import { INPUT_CLASSES } from "../internal/form-primitives.js";
|
|
9
10
|
import { toError } from "../internal/toError.js";
|
|
10
11
|
import type { CursorAccountCoverage } from "./cursor-account-coverage.js";
|
|
@@ -259,7 +260,7 @@ export function MemberKeysPanel({
|
|
|
259
260
|
<ul
|
|
260
261
|
role="list"
|
|
261
262
|
aria-label="Import results"
|
|
262
|
-
className="stg:
|
|
263
|
+
className={cn(UNSTYLED_LIST, "stg:space-y-0.5 stg:text-[11px]")}
|
|
263
264
|
>
|
|
264
265
|
{importResults.map((result) => (
|
|
265
266
|
<li
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import type { DashboardFailedRun } from "./types.js";
|
|
6
7
|
import { formatRelativeTime } from "../activity/format-relative-time.js";
|
|
7
8
|
|
|
@@ -54,7 +55,7 @@ export const DashboardFailedRuns = memo(function DashboardFailedRuns({
|
|
|
54
55
|
No recent failures
|
|
55
56
|
</p>
|
|
56
57
|
) : (
|
|
57
|
-
<ul className="stg:space-y-1.5" role="list">
|
|
58
|
+
<ul className={cn(UNSTYLED_LIST, "stg:space-y-1.5")} role="list">
|
|
58
59
|
{failedRuns.map((run) => (
|
|
59
60
|
<li
|
|
60
61
|
key={run.id}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useRef, type KeyboardEvent } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import type { DependencyGraphProps } from "./types.js";
|
|
6
7
|
import { DependencyTreeNode } from "./DependencyTreeNode.js";
|
|
7
8
|
|
|
@@ -114,7 +115,7 @@ export function DependencyGraph({
|
|
|
114
115
|
role="tree"
|
|
115
116
|
aria-label={`Dependencies of ${root.label}`}
|
|
116
117
|
onKeyDown={handleKeyDown}
|
|
117
|
-
className="stg:rounded-lg stg:border stg:border-border stg:p-2"
|
|
118
|
+
className={cn(UNSTYLED_LIST, "stg:rounded-lg stg:border stg:border-border stg:p-2")}
|
|
118
119
|
>
|
|
119
120
|
<DependencyTreeNode
|
|
120
121
|
node={root}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useState, type KeyboardEvent } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import type { DependencyNode, NodeKind } from "./types.js";
|
|
6
7
|
|
|
7
8
|
interface DependencyTreeNodeProps {
|
|
@@ -152,7 +153,7 @@ export function DependencyTreeNode({
|
|
|
152
153
|
{showChildren && (
|
|
153
154
|
<ul
|
|
154
155
|
role="group"
|
|
155
|
-
className="stg:relative stg:ml-[11px] stg:border-l stg:border-border stg:pl-3"
|
|
156
|
+
className={cn(UNSTYLED_LIST, "stg:relative stg:ml-[11px] stg:border-l stg:border-border stg:pl-3")}
|
|
156
157
|
>
|
|
157
158
|
{node.children.map((child) => (
|
|
158
159
|
<DependencyTreeNode
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useId, useMemo } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import type { Environment } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
|
|
6
7
|
import type { ResourceRef } from "@stigmer/sdk";
|
|
7
8
|
import { useEnvironmentList } from "./useEnvironmentList.js";
|
|
@@ -217,7 +218,7 @@ function SelectedList({
|
|
|
217
218
|
total,
|
|
218
219
|
}: SelectedListProps) {
|
|
219
220
|
return (
|
|
220
|
-
<ol className="stg:space-y-1.5" aria-label="Selected environments (merge order)">
|
|
221
|
+
<ol className={cn(UNSTYLED_LIST, "stg:space-y-1.5")} aria-label="Selected environments (merge order)">
|
|
221
222
|
{value.map((ref, index) => (
|
|
222
223
|
<li
|
|
223
224
|
key={`${ref.org}-${ref.slug}-${index}`}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
import { StigmerError, getUserMessage } from "@stigmer/sdk";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
6
7
|
|
|
7
8
|
/** Props for {@link SecretFlowErrorGuide}. */
|
|
8
9
|
export interface SecretFlowErrorGuideProps {
|
|
@@ -113,7 +114,7 @@ export function SecretFlowErrorGuide({
|
|
|
113
114
|
<p className="stg:text-xs stg:text-amber-700 stg:dark:text-amber-300">
|
|
114
115
|
<span className="stg:font-medium">{server}</span> requires:
|
|
115
116
|
</p>
|
|
116
|
-
<ul className="stg:mt-0.5 stg:space-y-0.5">
|
|
117
|
+
<ul className={cn(UNSTYLED_LIST, "stg:mt-0.5 stg:space-y-0.5")}>
|
|
117
118
|
{vars.map((v) => (
|
|
118
119
|
<li
|
|
119
120
|
key={v}
|
|
@@ -131,7 +132,7 @@ export function SecretFlowErrorGuide({
|
|
|
131
132
|
<p className="stg:text-xs stg:text-amber-700/90 stg:dark:text-amber-300/90">
|
|
132
133
|
You can provide these values in two ways:
|
|
133
134
|
</p>
|
|
134
|
-
<ul className="stg:mt-1 stg:space-y-0.5 stg:text-xs stg:text-amber-700/80 stg:dark:text-amber-300/80">
|
|
135
|
+
<ul className={cn(UNSTYLED_LIST, "stg:mt-1 stg:space-y-0.5 stg:text-xs stg:text-amber-700/80 stg:dark:text-amber-300/80")}>
|
|
135
136
|
<li className="stg:flex stg:items-start stg:gap-1.5">
|
|
136
137
|
<span className="stg:mt-px stg:shrink-0">•</span>
|
|
137
138
|
<span>
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
|
|
4
4
|
import { ExecutionArtifactKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
5
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
5
6
|
import { ArtifactFileContent } from "./ArtifactFileContent.js";
|
|
6
7
|
import type { SkillPackageDetection } from "../library/detect-skill-package.js";
|
|
7
8
|
|
|
@@ -103,7 +104,7 @@ function DirectoryContentView({
|
|
|
103
104
|
<h3 className="stg:mb-2 stg:text-xs stg:font-medium stg:text-muted-foreground">
|
|
104
105
|
Files ({entries.length})
|
|
105
106
|
</h3>
|
|
106
|
-
<ul className=
|
|
107
|
+
<ul className={`${UNSTYLED_LIST} stg:space-y-0.5`} role="list">
|
|
107
108
|
{entries.map((entry) => (
|
|
108
109
|
<li
|
|
109
110
|
key={entry}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useMemo, useState } from "react";
|
|
4
4
|
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
|
+
import { UNSTYLED_LIST } from "../internal/element-resets.js";
|
|
6
7
|
import {
|
|
7
8
|
useSessionArtifacts,
|
|
8
9
|
artifactKey,
|
|
@@ -116,7 +117,7 @@ export function ArtifactsWidget({
|
|
|
116
117
|
</span>
|
|
117
118
|
</div>
|
|
118
119
|
|
|
119
|
-
<ul role="list" className="stg:flex stg:flex-col">
|
|
120
|
+
<ul role="list" className={cn(UNSTYLED_LIST, "stg:flex stg:flex-col")}>
|
|
120
121
|
{artifacts.map((entry) => (
|
|
121
122
|
<ArtifactRow
|
|
122
123
|
key={artifactKey(entry.artifact)}
|