@stigmer/react 3.12.4 → 3.12.6
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/AgentDetailView.js +2 -2
- package/agent/AgentDetailView.js.map +1 -1
- package/agent/index.d.ts +0 -1
- package/agent/index.d.ts.map +1 -1
- package/agent/index.js +0 -1
- package/agent/index.js.map +1 -1
- package/agent/useUpdateAgent.d.ts +3 -3
- package/agent/useUpdateAgent.js +3 -3
- package/agent-instance/AgentInstanceDetailPanel.d.ts.map +1 -1
- package/agent-instance/AgentInstanceDetailPanel.js +5 -7
- package/agent-instance/AgentInstanceDetailPanel.js.map +1 -1
- package/agent-instance/useUpdateAgentInstance.d.ts +1 -1
- package/agent-instance/useUpdateAgentInstance.js +1 -1
- package/attachment/AttachmentChipList.js +16 -6
- package/attachment/AttachmentChipList.js.map +1 -1
- package/attachment/index.d.ts +1 -1
- package/attachment/index.d.ts.map +1 -1
- package/attachment/index.js.map +1 -1
- package/attachment/useAttachments.d.ts +51 -8
- package/attachment/useAttachments.d.ts.map +1 -1
- package/attachment/useAttachments.js +74 -3
- package/attachment/useAttachments.js.map +1 -1
- package/channel/AgentChannelsPanel.d.ts.map +1 -1
- package/channel/AgentChannelsPanel.js +10 -5
- package/channel/AgentChannelsPanel.js.map +1 -1
- package/channel/ChannelRunConfigDialog.d.ts +51 -0
- package/channel/ChannelRunConfigDialog.d.ts.map +1 -0
- package/channel/ChannelRunConfigDialog.js +121 -0
- package/channel/ChannelRunConfigDialog.js.map +1 -0
- package/channel/index.d.ts +2 -0
- package/channel/index.d.ts.map +1 -1
- package/channel/index.js +1 -0
- package/channel/index.js.map +1 -1
- package/channel/useSaveAgentChannel.d.ts.map +1 -1
- package/channel/useSaveAgentChannel.js +6 -3
- package/channel/useSaveAgentChannel.js.map +1 -1
- package/channel-app/ChannelAppDetailPanel.js +9 -9
- package/channel-app/ChannelAppDetailPanel.js.map +1 -1
- package/composer/ComposerToolbar.d.ts +6 -1
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +2 -2
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/SessionComposer.d.ts +9 -0
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +39 -13
- package/composer/SessionComposer.js.map +1 -1
- package/conversation/ConversationComposer.d.ts +19 -3
- package/conversation/ConversationComposer.d.ts.map +1 -1
- package/conversation/ConversationComposer.js +4 -4
- package/conversation/ConversationComposer.js.map +1 -1
- package/conversation/ConversationTemplatePickerDialog.d.ts +63 -0
- package/conversation/ConversationTemplatePickerDialog.d.ts.map +1 -0
- package/conversation/ConversationTemplatePickerDialog.js +151 -0
- package/conversation/ConversationTemplatePickerDialog.js.map +1 -0
- package/conversation/ConversationsWorkbench.d.ts.map +1 -1
- package/conversation/ConversationsWorkbench.js +16 -5
- package/conversation/ConversationsWorkbench.js.map +1 -1
- package/conversation/index.d.ts +3 -1
- package/conversation/index.d.ts.map +1 -1
- package/conversation/index.js +1 -0
- package/conversation/index.js.map +1 -1
- package/conversation/useConversationParticipation.d.ts +41 -4
- package/conversation/useConversationParticipation.d.ts.map +1 -1
- package/conversation/useConversationParticipation.js +13 -2
- package/conversation/useConversationParticipation.js.map +1 -1
- package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -1
- package/cursor-accounts/CursorAccountsConsole.js +12 -3
- package/cursor-accounts/CursorAccountsConsole.js.map +1 -1
- package/cursor-accounts/cursor-account-coverage.d.ts +30 -1
- package/cursor-accounts/cursor-account-coverage.d.ts.map +1 -1
- package/cursor-accounts/cursor-account-coverage.js +21 -0
- package/cursor-accounts/cursor-account-coverage.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +15 -0
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js +5 -0
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/identity-account/AccountPreferencesPanel.d.ts +36 -0
- package/identity-account/AccountPreferencesPanel.d.ts.map +1 -0
- package/identity-account/AccountPreferencesPanel.js +202 -0
- package/identity-account/AccountPreferencesPanel.js.map +1 -0
- package/identity-account/index.d.ts +8 -0
- package/identity-account/index.d.ts.map +1 -1
- package/identity-account/index.js +4 -0
- package/identity-account/index.js.map +1 -1
- package/identity-account/useAccountExecutionDefaults.d.ts +36 -0
- package/identity-account/useAccountExecutionDefaults.d.ts.map +1 -0
- package/identity-account/useAccountExecutionDefaults.js +46 -0
- package/identity-account/useAccountExecutionDefaults.js.map +1 -0
- package/identity-account/useMyIdentityAccount.d.ts +55 -0
- package/identity-account/useMyIdentityAccount.d.ts.map +1 -0
- package/identity-account/useMyIdentityAccount.js +37 -0
- package/identity-account/useMyIdentityAccount.js.map +1 -0
- package/identity-account/useUpdateIdentityAccount.d.ts +42 -0
- package/identity-account/useUpdateIdentityAccount.d.ts.map +1 -0
- package/identity-account/useUpdateIdentityAccount.js +53 -0
- package/identity-account/useUpdateIdentityAccount.js.map +1 -0
- package/identity-provider/IdentityProviderDetailPanel.d.ts.map +1 -1
- package/identity-provider/IdentityProviderDetailPanel.js +16 -15
- package/identity-provider/IdentityProviderDetailPanel.js.map +1 -1
- package/index.d.ts +15 -13
- package/index.d.ts.map +1 -1
- package/index.js +11 -8
- package/index.js.map +1 -1
- package/internal/StandingContextField.d.ts +37 -0
- package/internal/StandingContextField.d.ts.map +1 -0
- package/internal/StandingContextField.js +24 -0
- package/internal/StandingContextField.js.map +1 -0
- package/library/InstanceVisibilitySelector.d.ts.map +1 -1
- package/library/InstanceVisibilitySelector.js +9 -2
- package/library/InstanceVisibilitySelector.js.map +1 -1
- package/library/ResourceVisibilityControl.d.ts +13 -3
- package/library/ResourceVisibilityControl.d.ts.map +1 -1
- package/library/ResourceVisibilityControl.js +33 -5
- package/library/ResourceVisibilityControl.js.map +1 -1
- package/library/VisibilityOptionRow.d.ts +6 -0
- package/library/VisibilityOptionRow.d.ts.map +1 -1
- package/library/VisibilityOptionRow.js +11 -1
- package/library/VisibilityOptionRow.js.map +1 -1
- package/library/VisibilitySelector.d.ts.map +1 -1
- package/library/VisibilitySelector.js +14 -2
- package/library/VisibilitySelector.js.map +1 -1
- package/library/index.d.ts +4 -2
- package/library/index.d.ts.map +1 -1
- package/library/index.js +2 -1
- package/library/index.js.map +1 -1
- package/library/useCanSetPublicVisibility.d.ts +30 -0
- package/library/useCanSetPublicVisibility.d.ts.map +1 -0
- package/library/useCanSetPublicVisibility.js +41 -0
- package/library/useCanSetPublicVisibility.js.map +1 -0
- package/library/visibilityLevels.d.ts +32 -1
- package/library/visibilityLevels.d.ts.map +1 -1
- package/library/visibilityLevels.js +34 -14
- package/library/visibilityLevels.js.map +1 -1
- package/mcp-server/McpServerDetailView.js +2 -2
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/index.d.ts +0 -1
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +0 -1
- package/mcp-server/index.js.map +1 -1
- package/mcp-server/internal/definitionDrift.d.ts +14 -12
- package/mcp-server/internal/definitionDrift.d.ts.map +1 -1
- package/mcp-server/internal/definitionDrift.js +22 -19
- package/mcp-server/internal/definitionDrift.js.map +1 -1
- package/mcp-server/useMcpServerConnect.d.ts +8 -5
- package/mcp-server/useMcpServerConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerConnect.js +2 -1
- package/mcp-server/useMcpServerConnect.js.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.d.ts.map +1 -1
- package/mcp-server/useMcpServerOAuthConnect.js +7 -2
- package/mcp-server/useMcpServerOAuthConnect.js.map +1 -1
- package/mcp-server/useUpdateMcpServer.d.ts +3 -3
- package/mcp-server/useUpdateMcpServer.js +3 -3
- package/models/ModelSelector.d.ts +33 -1
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +37 -4
- package/models/ModelSelector.js.map +1 -1
- package/models/index.d.ts +2 -0
- package/models/index.d.ts.map +1 -1
- package/models/index.js +1 -0
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +16 -0
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +13 -0
- package/models/registry.js.map +1 -1
- package/models/thinking-mode.d.ts +27 -0
- package/models/thinking-mode.d.ts.map +1 -0
- package/models/thinking-mode.js +32 -0
- package/models/thinking-mode.js.map +1 -0
- package/oauth-app/CreateOAuthAppForm.d.ts +2 -2
- package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -1
- package/oauth-app/CreateOAuthAppForm.js +13 -4
- package/oauth-app/CreateOAuthAppForm.js.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -1
- package/oauth-app/OAuthAppDetailPanel.js +50 -22
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -1
- package/organization/OrgPreferencesPanel.d.ts +32 -0
- package/organization/OrgPreferencesPanel.d.ts.map +1 -0
- package/organization/OrgPreferencesPanel.js +90 -0
- package/organization/OrgPreferencesPanel.js.map +1 -0
- package/organization/OrgProfilePanel.d.ts.map +1 -1
- package/organization/OrgProfilePanel.js +5 -4
- package/organization/OrgProfilePanel.js.map +1 -1
- package/organization/index.d.ts +2 -0
- package/organization/index.d.ts.map +1 -1
- package/organization/index.js +1 -0
- package/organization/index.js.map +1 -1
- package/package.json +4 -4
- package/platform-client/PlatformClientDetailPanel.d.ts.map +1 -1
- package/platform-client/PlatformClientDetailPanel.js +12 -13
- package/platform-client/PlatformClientDetailPanel.js.map +1 -1
- package/schedule/ScheduleDetailView.d.ts.map +1 -1
- package/schedule/ScheduleDetailView.js +21 -10
- package/schedule/ScheduleDetailView.js.map +1 -1
- package/schedule/ScheduleForm.d.ts.map +1 -1
- package/schedule/ScheduleForm.js +13 -3
- package/schedule/ScheduleForm.js.map +1 -1
- package/session/NewSessionViewer.d.ts +10 -1
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +2 -1
- package/session/NewSessionViewer.js.map +1 -1
- package/session/run-config.d.ts +9 -0
- package/session/run-config.d.ts.map +1 -1
- package/session/run-config.js +5 -0
- package/session/run-config.js.map +1 -1
- package/session/useNewSessionFlow.d.ts +27 -1
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +51 -8
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +12 -1
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +15 -24
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +14 -10
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useUpdateSession.d.ts +18 -24
- package/session/useUpdateSession.d.ts.map +1 -1
- package/session/useUpdateSession.js +18 -24
- package/session/useUpdateSession.js.map +1 -1
- package/settings/AccountPreferencesSection.d.ts +3 -0
- package/settings/AccountPreferencesSection.d.ts.map +1 -0
- package/settings/AccountPreferencesSection.js +10 -0
- package/settings/AccountPreferencesSection.js.map +1 -0
- package/settings/OrgPreferencesSection.d.ts +3 -0
- package/settings/OrgPreferencesSection.d.ts.map +1 -0
- package/settings/OrgPreferencesSection.js +13 -0
- package/settings/OrgPreferencesSection.js.map +1 -0
- package/settings/index.d.ts +2 -0
- package/settings/index.d.ts.map +1 -1
- package/settings/index.js +2 -0
- package/settings/index.js.map +1 -1
- package/settings/settings-nav.d.ts.map +1 -1
- package/settings/settings-nav.js +17 -1
- package/settings/settings-nav.js.map +1 -1
- package/src/agent/AgentDetailView.tsx +2 -2
- package/src/agent/index.ts +0 -2
- package/src/agent/useUpdateAgent.ts +3 -3
- package/src/agent-instance/AgentInstanceDetailPanel.tsx +5 -7
- package/src/agent-instance/__tests__/AgentInstanceDetailPanel.test.tsx +75 -0
- package/src/agent-instance/useUpdateAgentInstance.ts +1 -1
- package/src/attachment/AttachmentChipList.tsx +19 -8
- package/src/attachment/__tests__/AttachmentChipList.test.tsx +12 -0
- package/src/attachment/__tests__/useAttachments.test.ts +293 -0
- package/src/attachment/index.ts +1 -0
- package/src/attachment/useAttachments.ts +143 -11
- package/src/channel/AgentChannelsPanel.tsx +26 -1
- package/src/channel/ChannelRunConfigDialog.tsx +351 -0
- package/src/channel/__tests__/ChannelRunConfigDialog.test.tsx +210 -0
- package/src/channel/index.ts +2 -0
- package/src/channel/useSaveAgentChannel.ts +6 -3
- package/src/channel-app/ChannelAppDetailPanel.tsx +9 -9
- package/src/channel-app/__tests__/channelAppWhatsApp.test.tsx +2 -0
- package/src/channel-app/__tests__/channelAppWipeSafety.test.tsx +87 -0
- package/src/composer/ComposerToolbar.tsx +9 -0
- package/src/composer/SessionComposer.tsx +59 -16
- package/src/composer/__tests__/SessionComposer-thinkingMode.test.tsx +176 -0
- package/src/conversation/ConversationComposer.tsx +38 -4
- package/src/conversation/ConversationTemplatePickerDialog.tsx +441 -0
- package/src/conversation/ConversationsWorkbench.tsx +40 -4
- package/src/conversation/__tests__/ConversationComposer.test.tsx +56 -1
- package/src/conversation/__tests__/ConversationTemplatePickerDialog.test.tsx +224 -0
- package/src/conversation/__tests__/useConversationParticipation.test.tsx +45 -4
- package/src/conversation/index.ts +4 -0
- package/src/conversation/useConversationParticipation.ts +58 -6
- package/src/cursor-accounts/CursorAccountsConsole.tsx +40 -5
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +32 -0
- package/src/cursor-accounts/__tests__/cursor-account-coverage.test.ts +58 -1
- package/src/cursor-accounts/cursor-account-coverage.ts +55 -0
- package/src/execution/useCreateAgentExecution.ts +19 -0
- package/src/identity-account/AccountPreferencesPanel.tsx +532 -0
- package/src/identity-account/__tests__/AccountPreferencesPanel.test.tsx +267 -0
- package/src/identity-account/__tests__/useAccountExecutionDefaults.test.tsx +116 -0
- package/src/identity-account/__tests__/useMyIdentityAccount.test.tsx +121 -0
- package/src/identity-account/index.ts +11 -0
- package/src/identity-account/useAccountExecutionDefaults.ts +63 -0
- package/src/identity-account/useMyIdentityAccount.ts +75 -0
- package/src/identity-account/useUpdateIdentityAccount.ts +73 -0
- package/src/identity-provider/IdentityProviderDetailPanel.tsx +18 -15
- package/src/identity-provider/__tests__/IdentityProviderDetailPanel.test.tsx +80 -0
- package/src/index.ts +26 -4
- package/src/internal/StandingContextField.tsx +92 -0
- package/src/library/InstanceVisibilitySelector.tsx +9 -2
- package/src/library/ResourceVisibilityControl.tsx +46 -13
- package/src/library/VisibilityOptionRow.tsx +28 -6
- package/src/library/VisibilitySelector.tsx +14 -2
- package/src/library/__tests__/VisibilitySelector.test.tsx +48 -1
- package/src/library/__tests__/visibilityLevels.test.ts +67 -1
- package/src/library/index.ts +6 -1
- package/src/library/useCanSetPublicVisibility.ts +56 -0
- package/src/library/visibilityLevels.ts +65 -14
- package/src/mcp-server/McpServerDetailView.tsx +2 -2
- package/src/mcp-server/__tests__/useMcpServerConnect.asyncLane.test.tsx +117 -0
- package/src/mcp-server/index.ts +0 -2
- package/src/mcp-server/internal/definitionDrift.ts +22 -20
- package/src/mcp-server/useMcpServerConnect.ts +9 -6
- package/src/mcp-server/useMcpServerOAuthConnect.ts +7 -2
- package/src/mcp-server/useUpdateMcpServer.ts +3 -3
- package/src/models/ModelSelector.tsx +94 -1
- package/src/models/index.ts +2 -0
- package/src/models/registry.ts +29 -0
- package/src/models/thinking-mode.ts +48 -0
- package/src/oauth-app/CreateOAuthAppForm.tsx +58 -3
- package/src/oauth-app/OAuthAppDetailPanel.tsx +103 -20
- package/src/oauth-app/__tests__/OAuthAppDetailPanel.test.tsx +94 -0
- package/src/organization/OrgPreferencesPanel.tsx +221 -0
- package/src/organization/OrgProfilePanel.tsx +5 -4
- package/src/organization/__tests__/OrgPreferencesPanel.test.tsx +145 -0
- package/src/organization/__tests__/OrgProfilePanel.test.tsx +108 -0
- package/src/organization/index.ts +2 -0
- package/src/platform-client/PlatformClientDetailPanel.tsx +14 -13
- package/src/platform-client/__tests__/PlatformClientDetailPanel.test.tsx +82 -0
- package/src/schedule/ScheduleDetailView.tsx +29 -4
- package/src/schedule/ScheduleForm.tsx +14 -1
- package/src/session/NewSessionViewer.tsx +12 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +151 -0
- package/src/session/run-config.ts +16 -0
- package/src/session/useNewSessionFlow.ts +82 -9
- package/src/session/useSessionConversation.ts +32 -40
- package/src/session/useSessionPageFlow.ts +14 -11
- package/src/session/useUpdateSession.ts +18 -24
- package/src/settings/AccountPreferencesSection.tsx +25 -0
- package/src/settings/OrgPreferencesSection.tsx +35 -0
- package/src/settings/__tests__/settings-nav.test.ts +27 -0
- package/src/settings/index.ts +2 -0
- package/src/settings/settings-nav.ts +18 -0
- package/src/workflow/ApprovalFormBuilder.tsx +20 -27
- package/src/workflow/WorkflowDetailView.tsx +2 -2
- package/src/workflow/__tests__/WorkflowInstanceDetailPanel.test.tsx +83 -0
- package/src/workflow/index.ts +0 -2
- package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +6 -7
- package/src/workflow/useUpdateWorkflow.ts +3 -3
- package/styles.css +1 -1
- package/workflow/ApprovalFormBuilder.d.ts.map +1 -1
- package/workflow/ApprovalFormBuilder.js +10 -5
- package/workflow/ApprovalFormBuilder.js.map +1 -1
- package/workflow/WorkflowDetailView.js +2 -2
- package/workflow/WorkflowDetailView.js.map +1 -1
- package/workflow/index.d.ts +0 -1
- package/workflow/index.d.ts.map +1 -1
- package/workflow/index.js +0 -1
- package/workflow/index.js.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
- package/workflow/instance/WorkflowInstanceDetailPanel.js +6 -7
- package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
- package/workflow/useUpdateWorkflow.d.ts +3 -3
- package/workflow/useUpdateWorkflow.js +3 -3
- package/agent/internal/agentToInput.d.ts +0 -15
- package/agent/internal/agentToInput.d.ts.map +0 -1
- package/agent/internal/agentToInput.js +0 -84
- package/agent/internal/agentToInput.js.map +0 -1
- package/mcp-server/internal/mcpServerToInput.d.ts +0 -12
- package/mcp-server/internal/mcpServerToInput.d.ts.map +0 -1
- package/mcp-server/internal/mcpServerToInput.js +0 -84
- package/mcp-server/internal/mcpServerToInput.js.map +0 -1
- package/session/session-spec-converters.d.ts +0 -24
- package/session/session-spec-converters.d.ts.map +0 -1
- package/session/session-spec-converters.js +0 -72
- package/session/session-spec-converters.js.map +0 -1
- package/src/agent/internal/__tests__/agentToInput.test.ts +0 -145
- package/src/agent/internal/agentToInput.ts +0 -102
- package/src/mcp-server/__tests__/mcpServerToInput.test.ts +0 -201
- package/src/mcp-server/internal/mcpServerToInput.ts +0 -98
- package/src/session/__tests__/session-spec-converters.test.ts +0 -183
- package/src/session/session-spec-converters.ts +0 -86
- package/src/workflow/internal/workflowToInput.ts +0 -96
- package/workflow/internal/workflowToInput.d.ts +0 -12
- package/workflow/internal/workflowToInput.d.ts.map +0 -1
- package/workflow/internal/workflowToInput.js +0 -73
- package/workflow/internal/workflowToInput.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionPageFlow.js","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAkC,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAkC,MAAM,qCAAqC,CAAC;AAE1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAA8B,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAqC,MAAM,6BAA6B,CAAC;AACxG,OAAO,EAAE,0BAA0B,EAA2B,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAgC,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"useSessionPageFlow.js","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,40 +19,34 @@ export interface UseUpdateSessionReturn {
|
|
|
19
19
|
* by the backend to identify the resource) and all spec fields.
|
|
20
20
|
*
|
|
21
21
|
* **Full-replace semantics.** The backend replaces the entire spec with
|
|
22
|
-
* what you send — there is no field mask.
|
|
23
|
-
*
|
|
24
|
-
* from a reconstructed partial spec silently
|
|
25
|
-
* (workspace entries, MCP servers, and
|
|
26
|
-
* as the embedder session context).
|
|
27
|
-
*
|
|
22
|
+
* what you send — there is no field mask. Spread the SDK's complete
|
|
23
|
+
* `toSessionUpdateInput()` mapper and override only the fields you
|
|
24
|
+
* change: an update built from a reconstructed partial spec silently
|
|
25
|
+
* wipes the fields it omits (workspace entries, MCP servers, and
|
|
26
|
+
* `stigmer.ai/*` metadata keys such as the embedder session context).
|
|
27
|
+
* To change only the subject, prefer the field-level
|
|
28
|
+
* `session.updateSubject()` RPC instead of this hook.
|
|
28
29
|
*
|
|
29
30
|
* Typically composed into higher-level hooks like
|
|
30
|
-
* {@link useSessionConversation} (whose update path
|
|
31
|
-
* fetched
|
|
32
|
-
* direct session mutation can use this hook
|
|
31
|
+
* {@link useSessionConversation} (whose update path spreads the mapper
|
|
32
|
+
* over a freshly fetched session) rather than used directly. Platform
|
|
33
|
+
* builders who need direct session mutation can use this hook
|
|
34
|
+
* standalone.
|
|
33
35
|
*
|
|
34
36
|
* @example
|
|
35
37
|
* ```tsx
|
|
38
|
+
* import { toSessionUpdateInput } from "@stigmer/sdk";
|
|
39
|
+
*
|
|
36
40
|
* function TagSession({ session }: { session: Session }) {
|
|
37
41
|
* const { update, isUpdating } = useUpdateSession();
|
|
38
42
|
*
|
|
39
43
|
* async function handleTag() {
|
|
40
|
-
* const
|
|
44
|
+
* const mapped = toSessionUpdateInput(session);
|
|
41
45
|
* await update({
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* //
|
|
45
|
-
*
|
|
46
|
-
* subject: spec?.subject,
|
|
47
|
-
* harnessStateId: spec?.harnessStateId,
|
|
48
|
-
* harness: spec?.harness,
|
|
49
|
-
* cursorMode: spec?.cursorMode,
|
|
50
|
-
* executionTarget: spec?.executionTarget,
|
|
51
|
-
* // ...including the spec lists (workspaceEntries, mcpServerUsages,
|
|
52
|
-
* // skillRefs), converted from the fetched proto exactly as
|
|
53
|
-
* // useSessionConversation's update path does...
|
|
54
|
-
* // ...then apply the one change on top of the carried metadata.
|
|
55
|
-
* metadata: { ...spec?.metadata, "acme/reviewed": "true" },
|
|
46
|
+
* ...mapped,
|
|
47
|
+
* // Nested values follow the same rule: spread the mapper's
|
|
48
|
+
* // complete value, then apply the one change on top.
|
|
49
|
+
* metadata: { ...mapped.metadata, "acme/reviewed": "true" },
|
|
56
50
|
* });
|
|
57
51
|
* }
|
|
58
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateSession.d.ts","sourceRoot":"","sources":["../../src/session/useUpdateSession.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sDAAsD,CAAC;AAGpF,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED
|
|
1
|
+
{"version":3,"file":"useUpdateSession.d.ts","sourceRoot":"","sources":["../../src/session/useUpdateSession.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sDAAsD,CAAC;AAGpF,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CA2BzD"}
|
|
@@ -9,40 +9,34 @@ import { useStigmer } from "../hooks.js";
|
|
|
9
9
|
* by the backend to identify the resource) and all spec fields.
|
|
10
10
|
*
|
|
11
11
|
* **Full-replace semantics.** The backend replaces the entire spec with
|
|
12
|
-
* what you send — there is no field mask.
|
|
13
|
-
*
|
|
14
|
-
* from a reconstructed partial spec silently
|
|
15
|
-
* (workspace entries, MCP servers, and
|
|
16
|
-
* as the embedder session context).
|
|
17
|
-
*
|
|
12
|
+
* what you send — there is no field mask. Spread the SDK's complete
|
|
13
|
+
* `toSessionUpdateInput()` mapper and override only the fields you
|
|
14
|
+
* change: an update built from a reconstructed partial spec silently
|
|
15
|
+
* wipes the fields it omits (workspace entries, MCP servers, and
|
|
16
|
+
* `stigmer.ai/*` metadata keys such as the embedder session context).
|
|
17
|
+
* To change only the subject, prefer the field-level
|
|
18
|
+
* `session.updateSubject()` RPC instead of this hook.
|
|
18
19
|
*
|
|
19
20
|
* Typically composed into higher-level hooks like
|
|
20
|
-
* {@link useSessionConversation} (whose update path
|
|
21
|
-
* fetched
|
|
22
|
-
* direct session mutation can use this hook
|
|
21
|
+
* {@link useSessionConversation} (whose update path spreads the mapper
|
|
22
|
+
* over a freshly fetched session) rather than used directly. Platform
|
|
23
|
+
* builders who need direct session mutation can use this hook
|
|
24
|
+
* standalone.
|
|
23
25
|
*
|
|
24
26
|
* @example
|
|
25
27
|
* ```tsx
|
|
28
|
+
* import { toSessionUpdateInput } from "@stigmer/sdk";
|
|
29
|
+
*
|
|
26
30
|
* function TagSession({ session }: { session: Session }) {
|
|
27
31
|
* const { update, isUpdating } = useUpdateSession();
|
|
28
32
|
*
|
|
29
33
|
* async function handleTag() {
|
|
30
|
-
* const
|
|
34
|
+
* const mapped = toSessionUpdateInput(session);
|
|
31
35
|
* await update({
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* //
|
|
35
|
-
*
|
|
36
|
-
* subject: spec?.subject,
|
|
37
|
-
* harnessStateId: spec?.harnessStateId,
|
|
38
|
-
* harness: spec?.harness,
|
|
39
|
-
* cursorMode: spec?.cursorMode,
|
|
40
|
-
* executionTarget: spec?.executionTarget,
|
|
41
|
-
* // ...including the spec lists (workspaceEntries, mcpServerUsages,
|
|
42
|
-
* // skillRefs), converted from the fetched proto exactly as
|
|
43
|
-
* // useSessionConversation's update path does...
|
|
44
|
-
* // ...then apply the one change on top of the carried metadata.
|
|
45
|
-
* metadata: { ...spec?.metadata, "acme/reviewed": "true" },
|
|
36
|
+
* ...mapped,
|
|
37
|
+
* // Nested values follow the same rule: spread the mapper's
|
|
38
|
+
* // complete value, then apply the one change on top.
|
|
39
|
+
* metadata: { ...mapped.metadata, "acme/reviewed": "true" },
|
|
46
40
|
* });
|
|
47
41
|
* }
|
|
48
42
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateSession.js","sourceRoot":"","sources":["../../src/session/useUpdateSession.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAczC
|
|
1
|
+
{"version":3,"file":"useUpdateSession.js","sourceRoot":"","sources":["../../src/session/useUpdateSession.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAczC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EAAE,KAAmB,EAAoB,EAAE;QAC9C,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;YAClE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountPreferencesSection.d.ts","sourceRoot":"","sources":["../../src/settings/AccountPreferencesSection.tsx"],"names":[],"mappings":"AAKA,4EAA4E;AAC5E,wBAAgB,yBAAyB,4CAkBxC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from "react";
|
|
4
|
+
import { AccountPreferencesPanel } from "../identity-account/AccountPreferencesPanel.js";
|
|
5
|
+
/** Settings section for editing the current user's declared preferences. */
|
|
6
|
+
export function AccountPreferencesSection() {
|
|
7
|
+
const headingId = useId();
|
|
8
|
+
return (_jsxs("section", { "aria-labelledby": headingId, children: [_jsx("h2", { id: headingId, className: "stg:text-foreground stg:mb-1 stg:text-sm stg:font-semibold", children: "Account Preferences" }), _jsx("p", { className: "stg:text-muted-foreground stg:mb-6 stg:text-xs", children: "Personal standing context shared with agents on executions you run." }), _jsx(AccountPreferencesPanel, {})] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=AccountPreferencesSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountPreferencesSection.js","sourceRoot":"","sources":["../../src/settings/AccountPreferencesSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,4EAA4E;AAC5E,MAAM,UAAU,yBAAyB;IACvC,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAE1B,OAAO,CACL,sCAA0B,SAAS,aACjC,aACE,EAAE,EAAE,SAAS,EACb,SAAS,EAAC,4DAA4D,oCAGnE,EACL,YAAG,SAAS,EAAC,gDAAgD,oFAEzD,EAEJ,KAAC,uBAAuB,KAAG,IACnB,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgPreferencesSection.d.ts","sourceRoot":"","sources":["../../src/settings/OrgPreferencesSection.tsx"],"names":[],"mappings":"AAMA,mFAAmF;AACnF,wBAAgB,qBAAqB,4CA2BpC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from "react";
|
|
4
|
+
import { OrgPreferencesPanel } from "../organization/OrgPreferencesPanel.js";
|
|
5
|
+
import { useOrg } from "../organization/OrgProvider.js";
|
|
6
|
+
/** Settings section for editing the active organization's declared preferences. */
|
|
7
|
+
export function OrgPreferencesSection() {
|
|
8
|
+
const headingId = useId();
|
|
9
|
+
const { activeOrg } = useOrg();
|
|
10
|
+
const orgId = activeOrg?.metadata?.id ?? "";
|
|
11
|
+
return (_jsxs("section", { "aria-labelledby": headingId, children: [_jsx("h2", { id: headingId, className: "stg:text-foreground stg:mb-1 stg:text-sm stg:font-semibold", children: "Organization Preferences" }), _jsx("p", { className: "stg:text-muted-foreground stg:mb-6 stg:text-xs", children: "Standing context shared with agents on every execution run by this organization's members." }), !orgId ? (_jsx("p", { className: "stg:text-muted-foreground stg:py-4 stg:text-center stg:text-xs", children: "Select an organization to view its preferences." })) : (_jsx(OrgPreferencesPanel, { orgId: orgId }))] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=OrgPreferencesSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrgPreferencesSection.js","sourceRoot":"","sources":["../../src/settings/OrgPreferencesSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,mFAAmF;AACnF,MAAM,UAAU,qBAAqB;IACnC,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;IAE5C,OAAO,CACL,sCAA0B,SAAS,aACjC,aACE,EAAE,EAAE,SAAS,EACb,SAAS,EAAC,4DAA4D,yCAGnE,EACL,YAAG,SAAS,EAAC,gDAAgD,2GAGzD,EAEH,CAAC,KAAK,CAAC,CAAC,CAAC,CACR,YAAG,SAAS,EAAC,gEAAgE,gEAEzE,CACL,CAAC,CAAC,CAAC,CACF,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,GAAI,CACtC,IACO,CACX,CAAC;AACJ,CAAC"}
|
package/settings/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export { BillingSection } from "./BillingSection.js";
|
|
|
6
6
|
export type { BillingSectionProps } from "./BillingSection.js";
|
|
7
7
|
export { MembersSection } from "./MembersSection.js";
|
|
8
8
|
export { OrgProfileSection } from "./OrgProfileSection.js";
|
|
9
|
+
export { OrgPreferencesSection } from "./OrgPreferencesSection.js";
|
|
10
|
+
export { AccountPreferencesSection } from "./AccountPreferencesSection.js";
|
|
9
11
|
export { EnvironmentsSection } from "./EnvironmentsSection.js";
|
|
10
12
|
export { InvitationsSection } from "./InvitationsSection.js";
|
|
11
13
|
export { IdentityProvidersSection } from "./IdentityProvidersSection.js";
|
package/settings/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/settings/index.js
CHANGED
|
@@ -4,6 +4,8 @@ export { ApiKeysSection } from "./ApiKeysSection.js";
|
|
|
4
4
|
export { BillingSection } from "./BillingSection.js";
|
|
5
5
|
export { MembersSection } from "./MembersSection.js";
|
|
6
6
|
export { OrgProfileSection } from "./OrgProfileSection.js";
|
|
7
|
+
export { OrgPreferencesSection } from "./OrgPreferencesSection.js";
|
|
8
|
+
export { AccountPreferencesSection } from "./AccountPreferencesSection.js";
|
|
7
9
|
export { EnvironmentsSection } from "./EnvironmentsSection.js";
|
|
8
10
|
export { InvitationsSection } from "./InvitationsSection.js";
|
|
9
11
|
export { IdentityProvidersSection } from "./IdentityProvidersSection.js";
|
package/settings/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-nav.d.ts","sourceRoot":"","sources":["../../src/settings/settings-nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"settings-nav.d.ts","sourceRoot":"","sources":["../../src/settings/settings-nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAoB3C,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAC3B,mDAAmD;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;CAC5C;AAED,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EA4D1D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,2BAA2B,EAAE,gBAwBzC,CAAC"}
|
package/settings/settings-nav.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Activity, AppWindow, BarChart3, Box, Building2, CreditCard, KeyRound, Link, MessageSquare, MousePointerClick, Plug, Scale, ShieldCheck, Users, } from "lucide-react";
|
|
1
|
+
import { Activity, AppWindow, BarChart3, Box, Building2, CreditCard, KeyRound, Link, MessageSquare, MousePointerClick, Plug, Scale, ShieldCheck, SlidersHorizontal, UserCog, Users, } from "lucide-react";
|
|
2
2
|
/** Canonical settings sidebar/grouped navigation model. */
|
|
3
3
|
export const SETTINGS_NAV_GROUPS = [
|
|
4
4
|
{
|
|
@@ -6,6 +6,11 @@ export const SETTINGS_NAV_GROUPS = [
|
|
|
6
6
|
description: "Manage your team, organization identity, and identity providers.",
|
|
7
7
|
items: [
|
|
8
8
|
{ href: "/settings/org-profile", label: "Org Profile", icon: Building2 },
|
|
9
|
+
{
|
|
10
|
+
href: "/settings/org-preferences",
|
|
11
|
+
label: "Preferences",
|
|
12
|
+
icon: SlidersHorizontal,
|
|
13
|
+
},
|
|
9
14
|
{ href: "/settings/members", label: "Members", icon: Users },
|
|
10
15
|
{ href: "/settings/invitations", label: "Invitations", icon: Link },
|
|
11
16
|
{
|
|
@@ -42,6 +47,17 @@ export const SETTINGS_NAV_GROUPS = [
|
|
|
42
47
|
{ href: "/settings/usage", label: "Usage", icon: BarChart3 },
|
|
43
48
|
],
|
|
44
49
|
},
|
|
50
|
+
{
|
|
51
|
+
label: "Account",
|
|
52
|
+
description: "Personal settings that apply to you across the platform.",
|
|
53
|
+
items: [
|
|
54
|
+
{
|
|
55
|
+
href: "/settings/account-preferences",
|
|
56
|
+
label: "Preferences",
|
|
57
|
+
icon: UserCog,
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
45
61
|
];
|
|
46
62
|
/**
|
|
47
63
|
* Stigmer-internal platform-operator navigation group.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-nav.js","sourceRoot":"","sources":["../../src/settings/settings-nav.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,GAAG,EACH,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,iBAAiB,EACjB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,KAAK,GACN,MAAM,cAAc,CAAC;AAiCtB,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,kEAAkE;QACpE,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5D,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE;YACnE;gBACE,IAAI,EAAE,8BAA8B;gBACpC,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE,WAAW;aAClB;SACF;KACF;IACD;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,mFAAmF;QACrF,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjE;gBACE,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,IAAI;aACX;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE;YACpE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACtE;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,aAAa;aACpB;SACF;KACF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,sCAAsC;QACnD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;YACjE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7D;KACF;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqB;IAC3D,KAAK,EAAE,UAAU;IACjB,WAAW,EACT,kEAAkE;IACpE,KAAK,EAAE;QACL;YACE,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,KAAK;YACX,kBAAkB,EAAE,0BAA0B;SAC/C;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,iBAAiB;YACvB,kBAAkB,EAAE,4BAA4B;SACjD;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,4BAA4B;SACjD;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"settings-nav.js","sourceRoot":"","sources":["../../src/settings/settings-nav.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,SAAS,EACT,GAAG,EACH,SAAS,EACT,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,iBAAiB,EACjB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,KAAK,GACN,MAAM,cAAc,CAAC;AAiCtB,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,kEAAkE;QACpE,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxE;gBACE,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,iBAAiB;aACxB;YACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5D,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE;YACnE;gBACE,IAAI,EAAE,8BAA8B;gBACpC,KAAK,EAAE,oBAAoB;gBAC3B,IAAI,EAAE,WAAW;aAClB;SACF;KACF;IACD;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,mFAAmF;QACrF,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjE;gBACE,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,kBAAkB;gBACzB,IAAI,EAAE,IAAI;aACX;YACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE;YACpE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACtE;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,aAAa;aACpB;SACF;KACF;IACD;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,sCAAsC;QACnD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;YACjE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7D;KACF;IACD;QACE,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,0DAA0D;QACvE,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,+BAA+B;gBACrC,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,OAAO;aACd;SACF;KACF;CACF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqB;IAC3D,KAAK,EAAE,UAAU;IACjB,WAAW,EACT,kEAAkE;IACpE,KAAK,EAAE;QACL;YACE,IAAI,EAAE,8BAA8B;YACpC,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,KAAK;YACX,kBAAkB,EAAE,0BAA0B;SAC/C;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,iBAAiB;YACvB,kBAAkB,EAAE,4BAA4B;SACjD;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,4BAA4B;SACjD;KACF;CACF,CAAC"}
|
|
@@ -13,7 +13,7 @@ import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinst
|
|
|
13
13
|
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
14
14
|
import { useAgent } from "./useAgent.js";
|
|
15
15
|
import { useUpdateAgent } from "./useUpdateAgent.js";
|
|
16
|
-
import {
|
|
16
|
+
import { toAgentUpdateInput } from "@stigmer/sdk";
|
|
17
17
|
import { toError } from "../internal/toError.js";
|
|
18
18
|
import { ErrorMessage } from "../error/ErrorMessage.js";
|
|
19
19
|
import { VisibilityBadge } from "../library/VisibilitySelector.js";
|
|
@@ -253,7 +253,7 @@ export function AgentDetailView({
|
|
|
253
253
|
): Promise<boolean> => {
|
|
254
254
|
if (!agent) return false;
|
|
255
255
|
setSaveError(null);
|
|
256
|
-
const input =
|
|
256
|
+
const input = toAgentUpdateInput(agent);
|
|
257
257
|
(input as unknown as Record<string, unknown>)[field] = value;
|
|
258
258
|
try {
|
|
259
259
|
const updated = await update(input);
|
package/src/agent/index.ts
CHANGED
|
@@ -54,8 +54,6 @@ export type { UseCreateAgentReturn } from "./useCreateAgent.js";
|
|
|
54
54
|
export { useUpdateAgent } from "./useUpdateAgent.js";
|
|
55
55
|
export type { UseUpdateAgentReturn } from "./useUpdateAgent.js";
|
|
56
56
|
|
|
57
|
-
export { agentToInput } from "./internal/agentToInput.js";
|
|
58
|
-
|
|
59
57
|
export { AgentCreationWizard } from "./AgentCreationWizard.js";
|
|
60
58
|
export type {
|
|
61
59
|
AgentCreationWizardProps,
|
|
@@ -23,9 +23,9 @@ export interface UseUpdateAgentReturn {
|
|
|
23
23
|
*
|
|
24
24
|
* Wraps `stigmer.agent.update(input)` with loading and error state.
|
|
25
25
|
* The caller must provide a **complete** `AgentInput` — the backend
|
|
26
|
-
* performs full spec replacement. Use `
|
|
27
|
-
* the input from a fetched agent, modify
|
|
28
|
-
* the result here.
|
|
26
|
+
* performs full spec replacement. Use `toAgentUpdateInput()` (from
|
|
27
|
+
* `@stigmer/sdk`) to reconstruct the input from a fetched agent, modify
|
|
28
|
+
* the desired field, and pass the result here.
|
|
29
29
|
*/
|
|
30
30
|
export function useUpdateAgent(): UseUpdateAgentReturn {
|
|
31
31
|
const stigmer = useStigmer();
|
|
@@ -8,7 +8,7 @@ import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinst
|
|
|
8
8
|
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
9
9
|
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
10
10
|
import type { ResourceRef } from "@stigmer/sdk";
|
|
11
|
-
import { getUserMessage } from "@stigmer/sdk";
|
|
11
|
+
import { getUserMessage, toAgentInstanceUpdateInput } from "@stigmer/sdk";
|
|
12
12
|
import { useUpdateAgentInstance } from "./useUpdateAgentInstance.js";
|
|
13
13
|
import { useDeleteAgentInstance } from "./useDeleteAgentInstance.js";
|
|
14
14
|
import { VisibilityBadge } from "../library/VisibilitySelector.js";
|
|
@@ -75,20 +75,18 @@ export function AgentInstanceDetailPanel({
|
|
|
75
75
|
|
|
76
76
|
const handleSaveEnvs = useCallback(async () => {
|
|
77
77
|
try {
|
|
78
|
+
// Full-spec-replace safety: spread the complete mapped input so
|
|
79
|
+
// any spec field this form does not edit survives the save.
|
|
78
80
|
await update({
|
|
79
|
-
|
|
80
|
-
org: meta?.org ?? org,
|
|
81
|
-
agentId: spec?.agentId ?? "",
|
|
82
|
-
description: spec?.description,
|
|
81
|
+
...toAgentInstanceUpdateInput(instance),
|
|
83
82
|
environmentRefs: editEnvRefs,
|
|
84
|
-
visibility: meta?.visibility,
|
|
85
83
|
});
|
|
86
84
|
setIsEditingEnvs(false);
|
|
87
85
|
onUpdated?.();
|
|
88
86
|
} catch {
|
|
89
87
|
// error displayed by hook
|
|
90
88
|
}
|
|
91
|
-
}, [update,
|
|
89
|
+
}, [update, instance, editEnvRefs, onUpdated]);
|
|
92
90
|
|
|
93
91
|
const handleDelete = useCallback(async () => {
|
|
94
92
|
setDeleteError(null);
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { describe, it, expect, vi, afterEach } from "vitest";
|
|
2
|
+
import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import {
|
|
5
|
+
AgentInstanceSchema,
|
|
6
|
+
type AgentInstance,
|
|
7
|
+
} from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
|
|
8
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
9
|
+
import type { AgentInstanceInput } from "@stigmer/sdk";
|
|
10
|
+
import { StigmerContext } from "../../context";
|
|
11
|
+
import { AgentInstanceDetailPanel } from "../AgentInstanceDetailPanel";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Regression suite for the full-spec-replace wipe bug: the environment
|
|
15
|
+
* editor must spread `toAgentInstanceUpdateInput` and override only the
|
|
16
|
+
* environment refs, so agent_id/description (and any future spec field)
|
|
17
|
+
* survive an environments-only save.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const INSTANCE: AgentInstance = create(AgentInstanceSchema, {
|
|
21
|
+
metadata: {
|
|
22
|
+
id: "inst-1",
|
|
23
|
+
name: "Prod Support Bot",
|
|
24
|
+
slug: "prod-support-bot",
|
|
25
|
+
org: "acme",
|
|
26
|
+
},
|
|
27
|
+
spec: {
|
|
28
|
+
agentId: "agent-1",
|
|
29
|
+
description: "Production instance.",
|
|
30
|
+
environmentRefs: [
|
|
31
|
+
{ org: "acme", slug: "prod", kind: ApiResourceKind.environment },
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
function renderPanel(update: ReturnType<typeof vi.fn>) {
|
|
37
|
+
const client = {
|
|
38
|
+
agentInstance: { update },
|
|
39
|
+
iamPolicy: {
|
|
40
|
+
checkMyPermission: vi.fn(async () => ({ isAuthorized: true })),
|
|
41
|
+
},
|
|
42
|
+
environment: {
|
|
43
|
+
list: vi.fn(async () => ({ items: [], totalCount: 0 })),
|
|
44
|
+
},
|
|
45
|
+
} as never;
|
|
46
|
+
return render(
|
|
47
|
+
<StigmerContext.Provider value={client}>
|
|
48
|
+
<AgentInstanceDetailPanel instance={INSTANCE} org="acme" onClose={() => {}} />
|
|
49
|
+
</StigmerContext.Provider>,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
afterEach(cleanup);
|
|
54
|
+
|
|
55
|
+
describe("AgentInstanceDetailPanel save payload", () => {
|
|
56
|
+
it("round-trips agent_id and description on an environments-only save", async () => {
|
|
57
|
+
const update = vi.fn(async (_input: AgentInstanceInput) => INSTANCE);
|
|
58
|
+
renderPanel(update);
|
|
59
|
+
|
|
60
|
+
fireEvent.click(await screen.findByRole("button", { name: "Edit" }));
|
|
61
|
+
fireEvent.click(screen.getByRole("button", { name: "Save" }));
|
|
62
|
+
|
|
63
|
+
await waitFor(() => expect(update).toHaveBeenCalledTimes(1));
|
|
64
|
+
const input = update.mock.calls[0]![0];
|
|
65
|
+
|
|
66
|
+
// The wipe-bug guard: fields the environment editor does not render.
|
|
67
|
+
expect(input.agentId).toBe("agent-1");
|
|
68
|
+
expect(input.description).toBe("Production instance.");
|
|
69
|
+
// The form-owned field.
|
|
70
|
+
expect(input.environmentRefs).toEqual([{ org: "acme", slug: "prod" }]);
|
|
71
|
+
// Addressing fields.
|
|
72
|
+
expect(input.org).toBe("acme");
|
|
73
|
+
expect(input.slug).toBe("prod-support-bot");
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -154,9 +154,20 @@ function AttachmentChip({
|
|
|
154
154
|
|
|
155
155
|
/** Shared accessible name: filename, size, and upload status. */
|
|
156
156
|
function chipAriaLabel(entry: AttachmentEntry): string {
|
|
157
|
+
const isPreparing = entry.phase === "preparing";
|
|
157
158
|
const isUploading = entry.phase === "uploading";
|
|
158
159
|
const isError = entry.phase === "error";
|
|
159
|
-
return `${entry.file.name}, ${formatFileSize(entry.file.size)}${isUploading ? ", uploading" : ""}${isError ? ", upload failed" : ""}`;
|
|
160
|
+
return `${entry.file.name}, ${formatFileSize(entry.file.size)}${isPreparing ? ", preparing" : ""}${isUploading ? ", uploading" : ""}${isError ? ", upload failed" : ""}`;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* True while the entry has work in flight (`preparing` or `uploading`) —
|
|
165
|
+
* the chips render both identically (dimmed + spinner): to the user each
|
|
166
|
+
* means "your file is on its way", and the split is audible in the
|
|
167
|
+
* accessible label where it actually informs.
|
|
168
|
+
*/
|
|
169
|
+
function isChipBusy(entry: AttachmentEntry): boolean {
|
|
170
|
+
return entry.phase === "preparing" || entry.phase === "uploading";
|
|
160
171
|
}
|
|
161
172
|
|
|
162
173
|
// ---------------------------------------------------------------------------
|
|
@@ -212,7 +223,7 @@ function ImageAttachmentChip({
|
|
|
212
223
|
}
|
|
213
224
|
|
|
214
225
|
const isError = entry.phase === "error";
|
|
215
|
-
const
|
|
226
|
+
const isBusy = isChipBusy(entry);
|
|
216
227
|
|
|
217
228
|
return (
|
|
218
229
|
// The remove badge and retry pill are SIBLINGS of the preview button,
|
|
@@ -250,7 +261,7 @@ function ImageAttachmentChip({
|
|
|
250
261
|
onError={() => setLoadFailed(true)}
|
|
251
262
|
className={cn(
|
|
252
263
|
"stg:h-full stg:w-full stg:object-cover",
|
|
253
|
-
(
|
|
264
|
+
(isBusy || isError) && "stg:opacity-50",
|
|
254
265
|
)}
|
|
255
266
|
/>
|
|
256
267
|
) : (
|
|
@@ -261,7 +272,7 @@ function ImageAttachmentChip({
|
|
|
261
272
|
aria-hidden="true"
|
|
262
273
|
/>
|
|
263
274
|
)}
|
|
264
|
-
{
|
|
275
|
+
{isBusy && (
|
|
265
276
|
<span className="stg:absolute stg:inset-0 stg:flex stg:items-center stg:justify-center">
|
|
266
277
|
<ChipSpinner size={16} />
|
|
267
278
|
</span>
|
|
@@ -322,7 +333,7 @@ function FileAttachmentChip({
|
|
|
322
333
|
readonly disabled?: boolean;
|
|
323
334
|
}) {
|
|
324
335
|
const isError = entry.phase === "error";
|
|
325
|
-
const
|
|
336
|
+
const isBusy = isChipBusy(entry);
|
|
326
337
|
|
|
327
338
|
return (
|
|
328
339
|
<span
|
|
@@ -333,12 +344,12 @@ function FileAttachmentChip({
|
|
|
333
344
|
isError
|
|
334
345
|
? "stg:border stg:border-destructive/30 stg:bg-destructive-subtle stg:text-destructive"
|
|
335
346
|
: "stg:bg-muted-subtle stg:text-foreground",
|
|
336
|
-
|
|
347
|
+
isBusy && "stg:opacity-70",
|
|
337
348
|
)}
|
|
338
349
|
>
|
|
339
|
-
{
|
|
350
|
+
{isBusy && <ChipSpinner />}
|
|
340
351
|
{isError && <ErrorDot />}
|
|
341
|
-
{!
|
|
352
|
+
{!isBusy && !isError && <FileIcon />}
|
|
342
353
|
|
|
343
354
|
<span className="stg:truncate">{entry.file.name}</span>
|
|
344
355
|
|
|
@@ -101,6 +101,18 @@ describe("AttachmentChipList — image miniature", () => {
|
|
|
101
101
|
expect(container.querySelector("svg.stg\\:animate-spin")).toBeTruthy();
|
|
102
102
|
});
|
|
103
103
|
|
|
104
|
+
it("treats the preparing phase as busy: spinner over the miniature, 'preparing' in the accessible label (#369)", async () => {
|
|
105
|
+
const preparing = entry({ id: "prep", phase: "preparing", storageKey: null });
|
|
106
|
+
|
|
107
|
+
const { container } = renderChips([preparing]);
|
|
108
|
+
|
|
109
|
+
await waitFor(() => expect(chipImage(container)).toBeTruthy());
|
|
110
|
+
expect(container.querySelector("svg.stg\\:animate-spin")).toBeTruthy();
|
|
111
|
+
expect(
|
|
112
|
+
screen.getByRole("listitem", { name: /shot\.png.*preparing/ }),
|
|
113
|
+
).toBeTruthy();
|
|
114
|
+
});
|
|
115
|
+
|
|
104
116
|
it("renders image chips preview-only: no visible filename or size text", async () => {
|
|
105
117
|
const { container } = renderChips([entry()]);
|
|
106
118
|
|