@xenosystem/agent-interface-ui 0.1.25 → 0.1.26
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/dist/adapters/agentHostPlatformBridge.d.ts.map +1 -1
- package/dist/adapters/agentHostPlatformBridge.js +96 -16
- package/dist/adapters/agentHostPlatformBridge.js.map +1 -1
- package/dist/adapters/hubAgentPlatformBridge.d.ts.map +1 -1
- package/dist/adapters/hubAgentPlatformBridge.js +2 -0
- package/dist/adapters/hubAgentPlatformBridge.js.map +1 -1
- package/dist/adapters/scopedBackupBridge.d.ts +4 -0
- package/dist/adapters/scopedBackupBridge.d.ts.map +1 -0
- package/dist/adapters/scopedBackupBridge.js +49 -0
- package/dist/adapters/scopedBackupBridge.js.map +1 -0
- package/dist/adapters/xenoAgentCompatibilityBridge.d.ts.map +1 -1
- package/dist/adapters/xenoAgentCompatibilityBridge.js +9 -1
- package/dist/adapters/xenoAgentCompatibilityBridge.js.map +1 -1
- package/dist/agent.css +13227 -0
- package/dist/components/agent/AgentIdentityGenerator.d.ts +16 -0
- package/dist/components/agent/AgentIdentityGenerator.d.ts.map +1 -0
- package/dist/components/agent/AgentIdentityGenerator.js +80 -0
- package/dist/components/agent/AgentIdentityGenerator.js.map +1 -0
- package/dist/components/agent/AgentInterface.d.ts +1 -0
- package/dist/components/agent/AgentInterface.d.ts.map +1 -1
- package/dist/components/agent/AgentInterface.js +1816 -643
- package/dist/components/agent/AgentInterface.js.map +1 -1
- package/dist/components/agent/AgentNotificationBanner.d.ts +10 -0
- package/dist/components/agent/AgentNotificationBanner.d.ts.map +1 -0
- package/dist/components/agent/AgentNotificationBanner.js +28 -0
- package/dist/components/agent/AgentNotificationBanner.js.map +1 -0
- package/dist/components/agent/AgentOnboarding.d.ts +16 -2
- package/dist/components/agent/AgentOnboarding.d.ts.map +1 -1
- package/dist/components/agent/AgentOnboarding.js +93 -201
- package/dist/components/agent/AgentOnboarding.js.map +1 -1
- package/dist/components/agent/AgentView.d.ts.map +1 -1
- package/dist/components/agent/AgentView.js +533 -308
- package/dist/components/agent/AgentView.js.map +1 -1
- package/dist/components/agent/AgentWorkbenchPanel.d.ts +3 -1
- package/dist/components/agent/AgentWorkbenchPanel.d.ts.map +1 -1
- package/dist/components/agent/AgentWorkbenchPanel.js +3 -2
- package/dist/components/agent/AgentWorkbenchPanel.js.map +1 -1
- package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts +4 -1
- package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts.map +1 -1
- package/dist/components/agent/AgentWorkspaceBrowserPanel.js +23 -195
- package/dist/components/agent/AgentWorkspaceBrowserPanel.js.map +1 -1
- package/dist/components/agent/AgentsWorkspaceView.d.ts +12 -0
- package/dist/components/agent/AgentsWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/AgentsWorkspaceView.js +129 -0
- package/dist/components/agent/AgentsWorkspaceView.js.map +1 -0
- package/dist/components/agent/DevelopmentCoordinationPanel.d.ts +7 -0
- package/dist/components/agent/DevelopmentCoordinationPanel.d.ts.map +1 -1
- package/dist/components/agent/DevelopmentCoordinationPanel.js +57 -49
- package/dist/components/agent/DevelopmentCoordinationPanel.js.map +1 -1
- package/dist/components/agent/KnowledgePanel.d.ts.map +1 -1
- package/dist/components/agent/KnowledgePanel.js +17 -67
- package/dist/components/agent/KnowledgePanel.js.map +1 -1
- package/dist/components/agent/LiveConversationCollaboration.d.ts +27 -0
- package/dist/components/agent/LiveConversationCollaboration.d.ts.map +1 -0
- package/dist/components/agent/LiveConversationCollaboration.js +127 -0
- package/dist/components/agent/LiveConversationCollaboration.js.map +1 -0
- package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts.map +1 -1
- package/dist/components/agent/MonacoDiffWorkbenchEditor.js +1 -1
- package/dist/components/agent/MonacoDiffWorkbenchEditor.js.map +1 -1
- package/dist/components/agent/MonacoWorkbenchEditor.d.ts.map +1 -1
- package/dist/components/agent/MonacoWorkbenchEditor.js +3 -3
- package/dist/components/agent/MonacoWorkbenchEditor.js.map +1 -1
- package/dist/components/agent/OwnedBrowserController.d.ts +55 -0
- package/dist/components/agent/OwnedBrowserController.d.ts.map +1 -0
- package/dist/components/agent/OwnedBrowserController.js +166 -0
- package/dist/components/agent/OwnedBrowserController.js.map +1 -0
- package/dist/components/agent/OwnedWorkforceView.d.ts +10 -0
- package/dist/components/agent/OwnedWorkforceView.d.ts.map +1 -0
- package/dist/components/agent/OwnedWorkforceView.js +256 -0
- package/dist/components/agent/OwnedWorkforceView.js.map +1 -0
- package/dist/components/agent/PluginManager.d.ts +34 -0
- package/dist/components/agent/PluginManager.d.ts.map +1 -1
- package/dist/components/agent/PluginManager.js +187 -126
- package/dist/components/agent/PluginManager.js.map +1 -1
- package/dist/components/agent/ProjectsWorkspaceView.d.ts +14 -0
- package/dist/components/agent/ProjectsWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/ProjectsWorkspaceView.js +176 -0
- package/dist/components/agent/ProjectsWorkspaceView.js.map +1 -0
- package/dist/components/agent/RunReviewPanel.d.ts +8 -13
- package/dist/components/agent/RunReviewPanel.d.ts.map +1 -1
- package/dist/components/agent/RunReviewPanel.js +120 -106
- package/dist/components/agent/RunReviewPanel.js.map +1 -1
- package/dist/components/agent/ScheduledWorkspaceView.d.ts +19 -0
- package/dist/components/agent/ScheduledWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/ScheduledWorkspaceView.js +150 -0
- package/dist/components/agent/ScheduledWorkspaceView.js.map +1 -0
- package/dist/components/agent/SdkSessionPanel.d.ts +25 -0
- package/dist/components/agent/SdkSessionPanel.d.ts.map +1 -0
- package/dist/components/agent/SdkSessionPanel.js +15 -0
- package/dist/components/agent/SdkSessionPanel.js.map +1 -0
- package/dist/components/agent/SlashCommandAutocomplete.d.ts +12 -0
- package/dist/components/agent/SlashCommandAutocomplete.d.ts.map +1 -0
- package/dist/components/agent/SlashCommandAutocomplete.js +33 -0
- package/dist/components/agent/SlashCommandAutocomplete.js.map +1 -0
- package/dist/components/agent/TeamsWorkspaceView.d.ts +12 -0
- package/dist/components/agent/TeamsWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/TeamsWorkspaceView.js +127 -0
- package/dist/components/agent/TeamsWorkspaceView.js.map +1 -0
- package/dist/components/agent/WorkspacePersistenceNotice.d.ts +3 -0
- package/dist/components/agent/WorkspacePersistenceNotice.d.ts.map +1 -0
- package/dist/components/agent/WorkspacePersistenceNotice.js +23 -0
- package/dist/components/agent/WorkspacePersistenceNotice.js.map +1 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.d.ts +1 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.d.ts.map +1 -1
- package/dist/components/agent/acp/AcpAgentConfigForm.js +47 -14
- package/dist/components/agent/acp/AcpAgentConfigForm.js.map +1 -1
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js +1 -1
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpAgentManager.d.ts.map +1 -1
- package/dist/components/agent/acp/AcpAgentManager.js +18 -18
- package/dist/components/agent/acp/AcpAgentManager.js.map +1 -1
- package/dist/components/agent/acp/AcpAgentTestResultPanel.js +1 -1
- package/dist/components/agent/acp/AcpAgentTestResultPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpApprovalPanel.js +2 -2
- package/dist/components/agent/acp/AcpApprovalPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpCertificationPanel.js +1 -1
- package/dist/components/agent/acp/AcpCertificationPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js +1 -1
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpProviderManagerPanel.js +1 -1
- package/dist/components/agent/acp/AcpProviderManagerPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpProviderModelsPanel.js +1 -1
- package/dist/components/agent/acp/AcpProviderModelsPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpSupportBundlePanel.js +1 -1
- package/dist/components/agent/acp/AcpSupportBundlePanel.js.map +1 -1
- package/dist/components/agent/collaborationWindow.d.ts +11 -0
- package/dist/components/agent/collaborationWindow.d.ts.map +1 -0
- package/dist/components/agent/collaborationWindow.js +10 -0
- package/dist/components/agent/collaborationWindow.js.map +1 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.d.ts +25 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.d.ts.map +1 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.js +118 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.js.map +1 -0
- package/dist/components/agent/conversationCollaborationController.d.ts +96 -0
- package/dist/components/agent/conversationCollaborationController.d.ts.map +1 -0
- package/dist/components/agent/conversationCollaborationController.js +597 -0
- package/dist/components/agent/conversationCollaborationController.js.map +1 -0
- package/dist/components/agent/destructiveConfirmation.d.ts +76 -0
- package/dist/components/agent/destructiveConfirmation.d.ts.map +1 -0
- package/dist/components/agent/destructiveConfirmation.js +231 -0
- package/dist/components/agent/destructiveConfirmation.js.map +1 -0
- package/dist/components/agent/developmentCoordinationController.d.ts +43 -0
- package/dist/components/agent/developmentCoordinationController.d.ts.map +1 -0
- package/dist/components/agent/developmentCoordinationController.js +94 -0
- package/dist/components/agent/developmentCoordinationController.js.map +1 -0
- package/dist/components/agent/developmentCoordinationProjection.d.ts +24 -0
- package/dist/components/agent/developmentCoordinationProjection.d.ts.map +1 -1
- package/dist/components/agent/developmentCoordinationProjection.js +34 -5
- package/dist/components/agent/developmentCoordinationProjection.js.map +1 -1
- package/dist/components/agent/editorOperationAuthority.d.ts +29 -0
- package/dist/components/agent/editorOperationAuthority.d.ts.map +1 -0
- package/dist/components/agent/editorOperationAuthority.js +73 -0
- package/dist/components/agent/editorOperationAuthority.js.map +1 -0
- package/dist/components/agent/knowledgePagination.d.ts +7 -0
- package/dist/components/agent/knowledgePagination.d.ts.map +1 -0
- package/dist/components/agent/knowledgePagination.js +7 -0
- package/dist/components/agent/knowledgePagination.js.map +1 -0
- package/dist/components/agent/knowledgePanelController.d.ts +32 -0
- package/dist/components/agent/knowledgePanelController.d.ts.map +1 -0
- package/dist/components/agent/knowledgePanelController.js +119 -0
- package/dist/components/agent/knowledgePanelController.js.map +1 -0
- package/dist/components/agent/monacoWorkbenchShared.js +1 -1
- package/dist/components/agent/onboardingModels.d.ts +31 -0
- package/dist/components/agent/onboardingModels.d.ts.map +1 -0
- package/dist/components/agent/onboardingModels.js +107 -0
- package/dist/components/agent/onboardingModels.js.map +1 -0
- package/dist/components/agent/personalConversationScope.d.ts +26 -0
- package/dist/components/agent/personalConversationScope.d.ts.map +1 -0
- package/dist/components/agent/personalConversationScope.js +43 -0
- package/dist/components/agent/personalConversationScope.js.map +1 -0
- package/dist/components/agent/reviewRequestScope.d.ts +16 -0
- package/dist/components/agent/reviewRequestScope.d.ts.map +1 -0
- package/dist/components/agent/reviewRequestScope.js +101 -0
- package/dist/components/agent/reviewRequestScope.js.map +1 -0
- package/dist/components/agent/scheduleCreationAttempt.d.ts +12 -0
- package/dist/components/agent/scheduleCreationAttempt.d.ts.map +1 -0
- package/dist/components/agent/scheduleCreationAttempt.js +30 -0
- package/dist/components/agent/scheduleCreationAttempt.js.map +1 -0
- package/dist/components/agent/settings/EntitySettingsLayout.d.ts +1 -1
- package/dist/components/agent/settings/EntitySettingsLayout.d.ts.map +1 -1
- package/dist/components/agent/settings/EntitySettingsLayout.js +64 -44
- package/dist/components/agent/settings/EntitySettingsLayout.js.map +1 -1
- package/dist/components/agent/settings/SettingsNavigation.d.ts.map +1 -1
- package/dist/components/agent/settings/SettingsNavigation.js +17 -17
- package/dist/components/agent/settings/SettingsNavigation.js.map +1 -1
- package/dist/components/agent/settings/entityArchiveState.d.ts +24 -0
- package/dist/components/agent/settings/entityArchiveState.d.ts.map +1 -0
- package/dist/components/agent/settings/entityArchiveState.js +12 -0
- package/dist/components/agent/settings/entityArchiveState.js.map +1 -0
- package/dist/components/agent/settings/sections/AccessMembersSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/AccessMembersSection.js +10 -25
- package/dist/components/agent/settings/sections/AccessMembersSection.js.map +1 -1
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts +16 -0
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.js +265 -0
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.js.map +1 -0
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js +47 -32
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js.map +1 -1
- package/dist/components/agent/settings/sections/DangerZoneSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/DangerZoneSection.js +30 -6
- package/dist/components/agent/settings/sections/DangerZoneSection.js.map +1 -1
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js +47 -37
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js.map +1 -1
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js +30 -43
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/ExportBackupSection.d.ts +3 -1
- package/dist/components/agent/settings/sections/ExportBackupSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/ExportBackupSection.js +14 -12
- package/dist/components/agent/settings/sections/ExportBackupSection.js.map +1 -1
- package/dist/components/agent/settings/sections/GeneralSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/GeneralSection.js +47 -4
- package/dist/components/agent/settings/sections/GeneralSection.js.map +1 -1
- package/dist/components/agent/settings/sections/IntegrationsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/IntegrationsSection.js +14 -21
- package/dist/components/agent/settings/sections/IntegrationsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/NotificationsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/NotificationsSection.js +125 -20
- package/dist/components/agent/settings/sections/NotificationsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/ResourceLimitsSection.js +7 -7
- package/dist/components/agent/settings/sections/ResourceLimitsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/SecurityComplianceSection.js +5 -4
- package/dist/components/agent/settings/sections/SecurityComplianceSection.js.map +1 -1
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.js +2 -3
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js +39 -26
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js.map +1 -1
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.d.ts +6 -0
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.js +205 -0
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.js.map +1 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.d.ts +3 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.js +6 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.js.map +1 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.d.ts +3 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.js +9 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.js.map +1 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.d.ts +6 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.js +8 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.js.map +1 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts +25 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.js +89 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.js.map +1 -0
- package/dist/components/agent/settings/shared/InputField.d.ts +1 -1
- package/dist/components/agent/settings/shared/InputField.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/InputField.js +4 -3
- package/dist/components/agent/settings/shared/InputField.js.map +1 -1
- package/dist/components/agent/settings/shared/MembersTable.d.ts +3 -3
- package/dist/components/agent/settings/shared/MembersTable.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/MembersTable.js +1 -1
- package/dist/components/agent/settings/shared/MembersTable.js.map +1 -1
- package/dist/components/agent/settings/shared/ScopedAuditPanel.d.ts +5 -0
- package/dist/components/agent/settings/shared/ScopedAuditPanel.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/ScopedAuditPanel.js +70 -0
- package/dist/components/agent/settings/shared/ScopedAuditPanel.js.map +1 -0
- package/dist/components/agent/settings/shared/SettingsCard.d.ts +2 -1
- package/dist/components/agent/settings/shared/SettingsCard.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/SettingsCard.js +2 -2
- package/dist/components/agent/settings/shared/SettingsCard.js.map +1 -1
- package/dist/components/agent/settings/shared/ToggleSwitch.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/ToggleSwitch.js +1 -1
- package/dist/components/agent/settings/shared/ToggleSwitch.js.map +1 -1
- package/dist/components/agent/settings/shared/UsageChart.d.ts +10 -0
- package/dist/components/agent/settings/shared/UsageChart.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/UsageChart.js +16 -10
- package/dist/components/agent/settings/shared/UsageChart.js.map +1 -1
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.d.ts +8 -0
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.js +26 -0
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.js.map +1 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.d.ts +8 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.js +53 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.js.map +1 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.d.ts +8 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.js +51 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.js.map +1 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.d.ts +28 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.js +82 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.js.map +1 -0
- package/dist/components/agent/sidebarEntityPins.d.ts +11 -0
- package/dist/components/agent/sidebarEntityPins.d.ts.map +1 -0
- package/dist/components/agent/sidebarEntityPins.js +37 -0
- package/dist/components/agent/sidebarEntityPins.js.map +1 -0
- package/dist/components/agent/workspaceHierarchy.d.ts +24 -0
- package/dist/components/agent/workspaceHierarchy.d.ts.map +1 -0
- package/dist/components/agent/workspaceHierarchy.js +50 -0
- package/dist/components/agent/workspaceHierarchy.js.map +1 -0
- package/dist/components/product/XenoAgentProductHeader.d.ts +4 -2
- package/dist/components/product/XenoAgentProductHeader.d.ts.map +1 -1
- package/dist/components/product/XenoAgentProductHeader.js +22 -4
- package/dist/components/product/XenoAgentProductHeader.js.map +1 -1
- package/dist/components/product/XenoAgentSessionTabs.js +1 -1
- package/dist/components/product/XenoAgentSessionTabs.js.map +1 -1
- package/dist/components/product/XenoAgentWorkspaceSelector.d.ts +7 -0
- package/dist/components/product/XenoAgentWorkspaceSelector.d.ts.map +1 -0
- package/dist/components/product/XenoAgentWorkspaceSelector.js +237 -0
- package/dist/components/product/XenoAgentWorkspaceSelector.js.map +1 -0
- package/dist/components/workspace/WorkspaceCreationWizard.d.ts +6 -0
- package/dist/components/workspace/WorkspaceCreationWizard.d.ts.map +1 -0
- package/dist/components/workspace/WorkspaceCreationWizard.js +48 -0
- package/dist/components/workspace/WorkspaceCreationWizard.js.map +1 -0
- package/dist/hooks/useSidebarLayoutPreference.d.ts +29 -0
- package/dist/hooks/useSidebarLayoutPreference.d.ts.map +1 -0
- package/dist/hooks/useSidebarLayoutPreference.js +83 -0
- package/dist/hooks/useSidebarLayoutPreference.js.map +1 -0
- package/dist/hooks/useWorkspaceCreation.d.ts +8 -0
- package/dist/hooks/useWorkspaceCreation.d.ts.map +1 -0
- package/dist/hooks/useWorkspaceCreation.js +40 -0
- package/dist/hooks/useWorkspaceCreation.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/platformApiTypes.d.ts +77 -36
- package/dist/platformApiTypes.d.ts.map +1 -1
- package/dist/platformBridge.d.ts +4 -0
- package/dist/platformBridge.d.ts.map +1 -1
- package/dist/platformBridge.js +10 -0
- package/dist/platformBridge.js.map +1 -1
- package/dist/stores/agentChatStore.d.ts +120 -2
- package/dist/stores/agentChatStore.d.ts.map +1 -1
- package/dist/stores/agentChatStore.js +329 -35
- package/dist/stores/agentChatStore.js.map +1 -1
- package/dist/stores/agentCreationDefaults.d.ts +25 -0
- package/dist/stores/agentCreationDefaults.d.ts.map +1 -0
- package/dist/stores/agentCreationDefaults.js +11 -0
- package/dist/stores/agentCreationDefaults.js.map +1 -0
- package/dist/stores/entitySettingsStore.d.ts +37 -12
- package/dist/stores/entitySettingsStore.d.ts.map +1 -1
- package/dist/stores/entitySettingsStore.js +558 -585
- package/dist/stores/entitySettingsStore.js.map +1 -1
- package/dist/stores/suggestionStore.d.ts +9 -2
- package/dist/stores/suggestionStore.d.ts.map +1 -1
- package/dist/stores/suggestionStore.js +51 -24
- package/dist/stores/suggestionStore.js.map +1 -1
- package/dist/stores/workspaceCreationAttempt.d.ts +14 -0
- package/dist/stores/workspaceCreationAttempt.d.ts.map +1 -0
- package/dist/stores/workspaceCreationAttempt.js +35 -0
- package/dist/stores/workspaceCreationAttempt.js.map +1 -0
- package/dist/stores/workspaceReconciliation.d.ts +6 -0
- package/dist/stores/workspaceReconciliation.d.ts.map +1 -0
- package/dist/stores/workspaceReconciliation.js +33 -0
- package/dist/stores/workspaceReconciliation.js.map +1 -0
- package/dist/stores/workspaceStore.d.ts +44 -9
- package/dist/stores/workspaceStore.d.ts.map +1 -1
- package/dist/stores/workspaceStore.js +238 -99
- package/dist/stores/workspaceStore.js.map +1 -1
- package/dist/types/agentEditor.d.ts +1 -0
- package/dist/types/agentEditor.d.ts.map +1 -1
- package/dist/utils/advertisedReasoning.d.ts +25 -0
- package/dist/utils/advertisedReasoning.d.ts.map +1 -0
- package/dist/utils/advertisedReasoning.js +62 -0
- package/dist/utils/advertisedReasoning.js.map +1 -0
- package/dist/utils/clipboardCopy.d.ts +4 -0
- package/dist/utils/clipboardCopy.d.ts.map +1 -0
- package/dist/utils/clipboardCopy.js +27 -0
- package/dist/utils/clipboardCopy.js.map +1 -0
- package/dist/utils/providerCommandArgs.d.ts +11 -0
- package/dist/utils/providerCommandArgs.d.ts.map +1 -0
- package/dist/utils/providerCommandArgs.js +18 -0
- package/dist/utils/providerCommandArgs.js.map +1 -0
- package/dist/utils/rendererTeardown.d.ts +6 -0
- package/dist/utils/rendererTeardown.d.ts.map +1 -0
- package/dist/utils/rendererTeardown.js +18 -0
- package/dist/utils/rendererTeardown.js.map +1 -0
- package/package.json +20 -8
- package/src/agent.css +39 -9
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { isAgentAuditResult } from '@xenosystem/agent-interface-contract';
|
|
4
|
+
import { getAgentPlatformBridge } from '../../../../platformBridge.js';
|
|
5
|
+
/** Key this component by the exact selected entity so old completions cannot cross scopes. */
|
|
6
|
+
export function ScopedAuditPanel({ entityType, entityId }) {
|
|
7
|
+
const [entries, setEntries] = useState([]);
|
|
8
|
+
const [cursor, setCursor] = useState(null);
|
|
9
|
+
const [error, setError] = useState('');
|
|
10
|
+
const [busy, setBusy] = useState(false);
|
|
11
|
+
const [loaded, setLoaded] = useState(false);
|
|
12
|
+
const active = useRef(false);
|
|
13
|
+
const generation = useRef(0);
|
|
14
|
+
const pending = useRef(false);
|
|
15
|
+
const request = async (operation, more = false) => {
|
|
16
|
+
if (pending.current)
|
|
17
|
+
return;
|
|
18
|
+
pending.current = true;
|
|
19
|
+
const attempt = ++generation.current;
|
|
20
|
+
setBusy(true);
|
|
21
|
+
setError('');
|
|
22
|
+
try {
|
|
23
|
+
const api = getAgentPlatformBridge().audit?.snapshot;
|
|
24
|
+
if (!api)
|
|
25
|
+
throw new Error('Scoped runtime audit is unavailable on this host.');
|
|
26
|
+
const result = await api({ entityType, entityId, operation, ...(operation === 'list' ? { limit: 50 } : {}), ...(more && cursor ? { before: cursor } : {}) });
|
|
27
|
+
if (!active.current || generation.current !== attempt)
|
|
28
|
+
return;
|
|
29
|
+
if (!isAgentAuditResult(result))
|
|
30
|
+
throw new Error('The host returned invalid audit evidence.');
|
|
31
|
+
if (!result.success)
|
|
32
|
+
throw new Error(result.error);
|
|
33
|
+
if (operation === 'export') {
|
|
34
|
+
if (!result.complete || result.nextCursor)
|
|
35
|
+
throw new Error('The host did not provide a complete audit export.');
|
|
36
|
+
const url = URL.createObjectURL(new Blob([JSON.stringify({ entityType, entityId, ...result }, null, 2)], { type: 'application/json' }));
|
|
37
|
+
const link = document.createElement('a');
|
|
38
|
+
link.href = url;
|
|
39
|
+
link.download = 'xeno-scoped-runtime-audit.json';
|
|
40
|
+
link.click();
|
|
41
|
+
setTimeout(() => URL.revokeObjectURL(url), 1000);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Keep one bounded page mounted. Long histories must not grow the DOM
|
|
45
|
+
// on every click; Refresh returns to the newest page.
|
|
46
|
+
setEntries(result.entries);
|
|
47
|
+
setCursor(result.nextCursor);
|
|
48
|
+
setLoaded(true);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch (e) {
|
|
52
|
+
if (active.current && generation.current === attempt)
|
|
53
|
+
setError(e instanceof Error ? e.message : 'Unable to load audit evidence.');
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
if (active.current && generation.current === attempt) {
|
|
57
|
+
pending.current = false;
|
|
58
|
+
setBusy(false);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
active.current = true;
|
|
64
|
+
pending.current = false;
|
|
65
|
+
void request('list');
|
|
66
|
+
return () => { active.current = false; generation.current++; };
|
|
67
|
+
}, []);
|
|
68
|
+
return _jsxs("div", { className: "space-y-2", children: [_jsx("p", { className: "text-[11px] text-white/50", children: "Persisted runtime events for this entity. This is not an account sign-in audit; prompts, tool arguments and outputs are excluded." }), _jsxs("div", { className: "flex gap-3 text-[11px]", children: [_jsx("button", { type: "button", disabled: busy, onClick: () => void request('list'), children: "Refresh audit" }), _jsx("button", { type: "button", disabled: busy || !loaded, onClick: () => void request('export'), children: "Export runtime audit" })] }), busy && _jsx("p", { role: "status", children: "Loading audit evidence\u2026" }), error && _jsx("p", { role: "alert", className: "text-rose-400 text-[11px]", children: error }), loaded && !entries.length && !error && _jsx("p", { className: "text-[11px] text-white/50", children: "No scoped runtime events recorded." }), _jsx("div", { className: "max-h-80 overflow-auto", children: entries.map(entry => _jsxs("div", { className: "border-b border-white/5 py-2 text-[11px]", children: [_jsx("div", { className: "text-white break-words", children: entry.action }), _jsx("time", { className: "text-white/50", children: entry.timestamp }), _jsxs("div", { className: "text-white/50 break-all", children: [entry.actor, " \u00B7 ", entry.target, " \u00B7 ", entry.details] })] }, entry.id)) }), cursor && _jsx("button", { type: "button", disabled: busy, className: "text-[11px]", onClick: () => void request('list', true), children: "Load older events" })] });
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=ScopedAuditPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScopedAuditPanel.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/ScopedAuditPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ interface SettingsCardProps {
|
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
variant?: 'default' | 'danger';
|
|
6
6
|
headerRight?: React.ReactNode;
|
|
7
|
+
footerRight?: React.ReactNode;
|
|
7
8
|
className?: string;
|
|
8
9
|
}
|
|
9
|
-
export declare function SettingsCard({ title, children, variant, headerRight, className }: SettingsCardProps): React.JSX.Element;
|
|
10
|
+
export declare function SettingsCard({ title, children, variant, headerRight, footerRight, className, }: SettingsCardProps): React.JSX.Element;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=SettingsCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/SettingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"SettingsCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/SettingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,OAAmB,EACnB,WAAW,EACX,WAAW,EACX,SAAc,GACf,EAAE,iBAAiB,qBA2CnB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export function SettingsCard({ title, children, variant = 'default', headerRight, className = '' }) {
|
|
3
|
+
export function SettingsCard({ title, children, variant = 'default', headerRight, footerRight, className = '', }) {
|
|
4
4
|
const isDanger = variant === 'danger';
|
|
5
5
|
const isFlex = className.includes('flex');
|
|
6
|
-
return (_jsxs("div", { className: `
|
|
6
|
+
return (_jsxs("div", { className: `group flex flex-col bg-[#08080a] border ${isDanger ? 'border-rose-500/25 hover:border-rose-500/40' : 'border-white/[0.06] hover:border-white/[0.14]'} rounded-[6px] p-1 gap-[2px] transition-all duration-150 ${isFlex ? 'min-h-0' : ''} ${className}`, children: [_jsxs("div", { className: `rounded-t-[4px] px-3 py-1.5 flex items-center justify-between flex-shrink-0 ${isDanger ? 'bg-rose-950/20 text-rose-300' : 'bg-[#18181a]'}`, children: [_jsx("h2", { className: `text-[9.5px] font-semibold uppercase tracking-[0.12em] ${isDanger ? 'text-rose-400/90' : 'text-[#7f7f86]'}`, children: title }), headerRight] }), _jsx("div", { className: `bg-[#111113] px-3 py-2.5 ${isFlex ? 'flex-1 flex flex-col min-h-0' : ''} ${!footerRight ? 'rounded-b-[4px]' : ''}`, children: children }), footerRight && (_jsx("div", { className: "bg-[#161618] rounded-b-[4px] px-3 py-1.5 flex items-center justify-end flex-shrink-0", children: footerRight }))] }));
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=SettingsCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsCard.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/SettingsCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SettingsCard.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/SettingsCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,WAAW,EACX,WAAW,EACX,SAAS,GAAG,EAAE,GACI;IAClB,MAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,CAAA;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAEzC,OAAO,CACL,eACE,SAAS,EAAE,2CACT,QAAQ,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,+CAC7D,4DAA4D,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,EAAE,aAGlG,eACE,SAAS,EAAE,+EACT,QAAQ,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,cAC9C,EAAE,aAEF,aACE,SAAS,EAAE,0DACT,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAClC,EAAE,YAED,KAAK,GACH,EACJ,WAAW,IACR,EAGN,cACE,SAAS,EAAE,4BACT,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAC5C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,YAE1C,QAAQ,GACL,EAGL,WAAW,IAAI,CACd,cAAK,SAAS,EAAC,sFAAsF,YAClG,WAAW,GACR,CACP,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleSwitch.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/ToggleSwitch.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"ToggleSwitch.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/ToggleSwitch.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAgB,EAAE,EAAE,iBAAiB,+BAsBtF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { clsx } from 'clsx';
|
|
3
3
|
export function ToggleSwitch({ enabled, onChange, disabled = false }) {
|
|
4
|
-
return (_jsx("button", { onClick: () => !disabled && onChange(!enabled), disabled: disabled, className: clsx('relative w-10 h-5 rounded transition-colors duration-150 flex-shrink-0', enabled ? 'bg-white' : 'bg-white/[0.1]', disabled && 'opacity-40 cursor-not-allowed'), children: _jsx("span", { className: clsx('absolute top-0.5 left-0.5 w-4 h-4 transition-all duration-150', enabled ? 'translate-x-5 bg-[#08080a] rounded' : 'translate-x-0 bg-white/50 rounded-sm') }) }));
|
|
4
|
+
return (_jsx("button", { type: "button", role: "switch", "aria-checked": enabled, onClick: () => !disabled && onChange(!enabled), disabled: disabled, className: clsx('relative w-10 h-5 rounded transition-colors duration-150 flex-shrink-0', enabled ? 'bg-white' : 'bg-white/[0.1]', disabled && 'opacity-40 cursor-not-allowed'), children: _jsx("span", { className: clsx('absolute top-0.5 left-0.5 w-4 h-4 transition-all duration-150', enabled ? 'translate-x-5 bg-[#08080a] rounded' : 'translate-x-0 bg-white/50 rounded-sm') }) }));
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=ToggleSwitch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleSwitch.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/ToggleSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAQ3B,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAqB;IACrF,OAAO,CACL,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,EAC9C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,CACb,wEAAwE,EACxE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,EACvC,QAAQ,IAAI,+BAA+B,CAC5C,YAED,eACE,SAAS,EAAE,IAAI,CACb,+DAA+D,EAC/D,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,sCAAsC,CACxF,GACD,GACK,CACV,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"ToggleSwitch.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/ToggleSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAQ3B,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAqB;IACrF,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,kBACC,OAAO,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,EAC9C,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,CACb,wEAAwE,EACxE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,EACvC,QAAQ,IAAI,+BAA+B,CAC5C,YAED,eACE,SAAS,EAAE,IAAI,CACb,+DAA+D,EAC/D,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,sCAAsC,CACxF,GACD,GACK,CACV,CAAA;AACH,CAAC"}
|
|
@@ -7,6 +7,16 @@ interface UsageChartProps {
|
|
|
7
7
|
height?: number;
|
|
8
8
|
color?: string;
|
|
9
9
|
}
|
|
10
|
+
export declare function usageChartPage(data: UsageChartProps['data'], olderPage: number): {
|
|
11
|
+
entries: {
|
|
12
|
+
label: string;
|
|
13
|
+
value: number;
|
|
14
|
+
}[];
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
page: number;
|
|
18
|
+
pageCount: number;
|
|
19
|
+
};
|
|
10
20
|
export declare function UsageChart({ data, height, color }: UsageChartProps): React.JSX.Element | null;
|
|
11
21
|
export {};
|
|
12
22
|
//# sourceMappingURL=UsageChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/UsageChart.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"UsageChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/UsageChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,UAAU,eAAe;IACvB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM;;eAL9D,MAAM;eAAS,MAAM;;;;;;EAWrC;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,MAAY,EAAE,KAAgC,EAAE,EAAE,eAAe,4BAiCnG"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
export function usageChartPage(data, olderPage) {
|
|
4
|
+
const pageCount = Math.max(1, Math.ceil(data.length / 30));
|
|
5
|
+
const page = Math.max(0, Math.min(Number.isSafeInteger(olderPage) ? olderPage : 0, pageCount - 1));
|
|
6
|
+
const end = data.length - page * 30;
|
|
7
|
+
const start = Math.max(0, end - 30);
|
|
8
|
+
return { entries: data.slice(start, end), start, end, page, pageCount };
|
|
9
|
+
}
|
|
3
10
|
export function UsageChart({ data, height = 120, color = 'rgba(255,255,255,0.35)' }) {
|
|
11
|
+
const [olderPage, setOlderPage] = useState(0);
|
|
4
12
|
if (data.length === 0)
|
|
5
13
|
return null;
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
return (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return (_jsxs("g", { children: [_jsx("rect", { x: x, y: y, width: barWidth, height: barH, rx: 3, fill: color, opacity: 0.6 + (d.value / max) * 0.4 }), _jsx("text", { x: x + barWidth / 2, y: height - 2, textAnchor: "middle", fill: "rgba(255,255,255,0.3)", fontSize: "9", fontFamily: "system-ui", children: d.label })] }, i));
|
|
14
|
-
}) }) }));
|
|
14
|
+
const { entries, start, end, page, pageCount } = usageChartPage(data, olderPage);
|
|
15
|
+
const max = Math.max(...entries.map(d => Number.isFinite(d.value) && d.value >= 0 ? d.value : 0), 1);
|
|
16
|
+
const plotHeight = Math.max(48, height - 28);
|
|
17
|
+
return (_jsxs("div", { className: "w-full min-w-0", children: [_jsx("div", { className: "overflow-x-auto", role: "group", "aria-label": "Recorded token usage chart", children: _jsx("div", { className: "flex items-end gap-3", style: { height, minWidth: entries.length * 86 }, children: entries.map((d, i) => {
|
|
18
|
+
const value = Number.isFinite(d.value) && d.value >= 0 ? d.value : 0;
|
|
19
|
+
return (_jsxs("div", { className: "flex flex-1 min-w-[74px] flex-col items-center justify-end gap-1", style: { height }, children: [_jsx("div", { className: "flex items-end justify-center w-full", style: { height: plotHeight }, children: _jsx("div", { role: "img", "aria-label": `${d.label}: ${value.toLocaleString()} tokens`, title: `${d.label}: ${value.toLocaleString()} tokens`, style: { width: 40, maxWidth: '75%', height: (value / max) * plotHeight, backgroundColor: color, borderRadius: '3px 3px 0 0' } }) }), _jsx("span", { className: "text-[9px] whitespace-nowrap text-[#7f7f86]", children: d.label })] }, `${start + i}:${d.label}`));
|
|
20
|
+
}) }) }), pageCount > 1 && (_jsxs("div", { className: "flex items-center justify-between gap-2 mt-2 text-[10px] text-[#7f7f86]", children: [_jsx("button", { type: "button", className: "disabled:opacity-40", disabled: page >= pageCount - 1, onClick: () => setOlderPage(page + 1), children: "Earlier periods" }), _jsxs("span", { role: "status", children: [start + 1, "\u2013", end, " of ", data.length] }), _jsx("button", { type: "button", className: "disabled:opacity-40", disabled: page === 0, onClick: () => setOlderPage(page - 1), children: "Later periods" })] }))] }));
|
|
15
21
|
}
|
|
16
22
|
//# sourceMappingURL=UsageChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageChart.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/UsageChart.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"UsageChart.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/UsageChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export { requireRulesAcknowledgement } from './workspaceRulesController.js';
|
|
3
|
+
export declare function WorkspaceRulesControl({ workspaceId, inherited }: {
|
|
4
|
+
workspaceId: string | undefined;
|
|
5
|
+
inherited: boolean;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
|
+
export declare function rulesValidationLabel(bytes: number | undefined, dirty: boolean): string;
|
|
8
|
+
//# sourceMappingURL=WorkspaceRulesControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceRulesControl.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/WorkspaceRulesControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAE3E,wBAAgB,qBAAqB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE;IAAE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,qBA2BxH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAItF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { getAgentPlatformBridge } from '../../../../platformBridge.js';
|
|
4
|
+
import { WorkspaceRulesController } from './workspaceRulesController.js';
|
|
5
|
+
export { requireRulesAcknowledgement } from './workspaceRulesController.js';
|
|
6
|
+
export function WorkspaceRulesControl({ workspaceId, inherited }) {
|
|
7
|
+
const inputId = React.useId();
|
|
8
|
+
const controller = React.useMemo(() => new WorkspaceRulesController(workspaceId, inherited, input => {
|
|
9
|
+
const api = getAgentPlatformBridge().workspaceRules;
|
|
10
|
+
if (!api)
|
|
11
|
+
return Promise.reject(new Error('Workspace rules service is unavailable.'));
|
|
12
|
+
return api.request(input);
|
|
13
|
+
}), [workspaceId, inherited]);
|
|
14
|
+
const { result: state, path, dirty, busy, notice } = React.useSyncExternalStore(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
void controller.run('get');
|
|
17
|
+
return () => controller.invalidate();
|
|
18
|
+
}, [controller]);
|
|
19
|
+
return _jsxs("div", { children: [_jsx("label", { className: "block text-[10px] font-medium text-[#7f7f86] uppercase tracking-[0.08em] mb-1", htmlFor: inputId, children: "Workspace rules override" }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("input", { id: inputId, "aria-label": "Workspace rules file", value: path, onChange: event => controller.edit(event.target.value), readOnly: inherited, disabled: busy || !state?.success, placeholder: "Default runtime rules (no XENO override)", className: "min-w-0 flex-1 h-8 px-2.5 bg-[#0c0c0e] border border-white/[0.06] rounded-[4px] text-white text-[11.5px] font-mono" }), !inherited && _jsxs(_Fragment, { children: [_jsx("button", { type: "button", disabled: busy || !state?.success || !path.trim(), onClick: () => void controller.run('set'), className: "text-xs disabled:opacity-40", children: "Apply" }), _jsx("button", { type: "button", disabled: busy || !state?.success || state.mode !== 'override', onClick: () => void controller.run('reset'), className: "text-xs disabled:opacity-40", children: "Reset" })] }), _jsx("button", { type: "button", disabled: busy || !workspaceId, onClick: () => void controller.run('get'), className: "text-xs disabled:opacity-40", children: "Reload rules" })] }), _jsxs("p", { className: "text-[10px] text-[#7f7f86] mt-1", children: [inherited ? 'Inherited from the workspace. Change this in workspace settings. ' : '', "Validated UTF-8 file, up to 64 KiB, inside granted workspace roots. SDK and supported structured ACP providers use this override. Native-TUI handoff of selected override files is not yet implemented; interactive providers retain their own AGENTS.md or CLAUDE.md discovery."] }), state?.mode === 'override' && state.valid && _jsx("p", { className: "text-[10px] text-white/50", children: rulesValidationLabel(state.bytes, dirty) }), state?.error && _jsx("p", { role: "alert", className: "text-xs text-red-200", children: state.error }), busy && _jsx("p", { role: "status", className: "text-xs text-white/60", children: "Checking workspace rules\u2026" }), notice && _jsx("p", { role: "status", className: "text-xs text-white/60", children: notice })] });
|
|
20
|
+
}
|
|
21
|
+
export function rulesValidationLabel(bytes, dirty) {
|
|
22
|
+
return dirty
|
|
23
|
+
? `Saved selection: ${bytes ?? 'Unknown'} bytes · edited path is not validated or saved`
|
|
24
|
+
: `${bytes ?? 'Unknown'} bytes · validated at last check; applied turns recheck the file`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=WorkspaceRulesControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkspaceRulesControl.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/WorkspaceRulesControl.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/** View-scoped consent is consumed once. The action still checks its canonical
|
|
3
|
+
* target at dispatch; this hook is not a replacement for host authorization. */
|
|
4
|
+
export declare function useScopedConfirmation(scope: unknown, selection: string): {
|
|
5
|
+
requestConfirmation: (title: string, description: string, confirmLabel: string, execute: () => unknown) => void;
|
|
6
|
+
confirmation: React.JSX.Element;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=useScopedConfirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScopedConfirmation.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/useScopedConfirmation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAA;AAKzE;gFACgF;AAChF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM;iCAajC,MAAM,eAAe,MAAM,gBAAgB,MAAM,WAAW,MAAM,OAAO;;EAuB9G"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { ConfirmationController, InAppConfirmationDialog } from './InAppConfirmationDialog.js';
|
|
4
|
+
/** View-scoped consent is consumed once. The action still checks its canonical
|
|
5
|
+
* target at dispatch; this hook is not a replacement for host authorization. */
|
|
6
|
+
export function useScopedConfirmation(scope, selection) {
|
|
7
|
+
const [controller] = useState(() => new ConfirmationController());
|
|
8
|
+
const [prompt, setPrompt] = useState(null);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
const incarnation = useRef(0), mounted = useRef(false), inFlight = useRef(false);
|
|
11
|
+
const owner = useMemo(() => ({}), [scope, selection]);
|
|
12
|
+
const activeOwner = useRef(owner);
|
|
13
|
+
useLayoutEffect(() => {
|
|
14
|
+
activeOwner.current = owner;
|
|
15
|
+
mounted.current = true;
|
|
16
|
+
incarnation.current++;
|
|
17
|
+
controller.invalidate();
|
|
18
|
+
setPrompt(null);
|
|
19
|
+
setError(null);
|
|
20
|
+
return () => { mounted.current = false; incarnation.current++; controller.invalidate(); };
|
|
21
|
+
}, [controller, owner]);
|
|
22
|
+
const requestConfirmation = (title, description, confirmLabel, execute) => {
|
|
23
|
+
if (!mounted.current || inFlight.current || activeOwner.current !== owner)
|
|
24
|
+
return;
|
|
25
|
+
setError(null);
|
|
26
|
+
setPrompt(controller.begin({ authority: String(incarnation.current), title, description, confirmLabel, execute }));
|
|
27
|
+
};
|
|
28
|
+
const confirm = async () => {
|
|
29
|
+
if (!prompt || !mounted.current || inFlight.current)
|
|
30
|
+
return;
|
|
31
|
+
const accepted = controller.confirm(String(incarnation.current), prompt.id);
|
|
32
|
+
if (!accepted)
|
|
33
|
+
return;
|
|
34
|
+
const generation = incarnation.current;
|
|
35
|
+
setPrompt(null);
|
|
36
|
+
inFlight.current = true;
|
|
37
|
+
try {
|
|
38
|
+
if (await accepted.execute() === false)
|
|
39
|
+
throw new Error('The action was refused. Refresh the workspace state before retrying.');
|
|
40
|
+
}
|
|
41
|
+
catch (cause) {
|
|
42
|
+
if (mounted.current && incarnation.current === generation)
|
|
43
|
+
setError(cause instanceof Error ? cause.message : 'The action was not confirmed.');
|
|
44
|
+
}
|
|
45
|
+
finally {
|
|
46
|
+
inFlight.current = false;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const confirmation = _jsxs(_Fragment, { children: [error && _jsx("p", { role: "alert", className: "text-[12px] text-red-400", children: error }), prompt && _jsx(InAppConfirmationDialog, { prompt: prompt, onConfirm: () => { void confirm(); }, onCancel: () => { if (controller.cancel(prompt.id))
|
|
50
|
+
setPrompt(null); } }, prompt.id)] });
|
|
51
|
+
return { requestConfirmation, confirmation };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=useScopedConfirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScopedConfirmation.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/useScopedConfirmation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/** Settings actions read the selected store scope at invocation. A dialog must
|
|
3
|
+
* therefore retain the exact load generation, not merely an entity ID (ABA). */
|
|
4
|
+
export declare function useSettingsConfirmation(blocked?: boolean, invalidationKey?: string): {
|
|
5
|
+
requestConfirmation: (title: string, description: string, confirmLabel: string, execute: () => unknown) => void;
|
|
6
|
+
confirmation: React.JSX.Element;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=useSettingsConfirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSettingsConfirmation.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/useSettingsConfirmation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAA;AAMhE;gFACgF;AAChF,wBAAgB,uBAAuB,CAAC,OAAO,UAAQ,EAAE,eAAe,SAAK;iCAWvC,MAAM,eAAe,MAAM,gBAAgB,MAAM,WAAW,MAAM,OAAO;;EAuB9G"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useLayoutEffect, useRef, useState } from 'react';
|
|
3
|
+
import { useEntitySettingsStore } from '../../../../stores/entitySettingsStore.js';
|
|
4
|
+
import { ConfirmationController, InAppConfirmationDialog } from './InAppConfirmationDialog.js';
|
|
5
|
+
/** Settings actions read the selected store scope at invocation. A dialog must
|
|
6
|
+
* therefore retain the exact load generation, not merely an entity ID (ABA). */
|
|
7
|
+
export function useSettingsConfirmation(blocked = false, invalidationKey = '') {
|
|
8
|
+
const generation = useEntitySettingsStore(state => state.loadGeneration);
|
|
9
|
+
const [controller] = useState(() => new ConfirmationController());
|
|
10
|
+
const [prompt, setPrompt] = useState(null);
|
|
11
|
+
const [error, setError] = useState(null);
|
|
12
|
+
const inFlight = useRef(false), blockedNow = useRef(blocked);
|
|
13
|
+
blockedNow.current = blocked;
|
|
14
|
+
useLayoutEffect(() => {
|
|
15
|
+
controller.invalidate();
|
|
16
|
+
setPrompt(null);
|
|
17
|
+
setError(null);
|
|
18
|
+
return () => controller.invalidate();
|
|
19
|
+
}, [controller, generation, blocked, invalidationKey]);
|
|
20
|
+
const requestConfirmation = (title, description, confirmLabel, execute) => {
|
|
21
|
+
if (blockedNow.current || inFlight.current || useEntitySettingsStore.getState().loadGeneration !== generation)
|
|
22
|
+
return;
|
|
23
|
+
setError(null);
|
|
24
|
+
setPrompt(controller.begin({ authority: String(generation), title, description, confirmLabel, execute }));
|
|
25
|
+
};
|
|
26
|
+
const confirm = async () => {
|
|
27
|
+
if (!prompt)
|
|
28
|
+
return;
|
|
29
|
+
const accepted = controller.confirm(String(useEntitySettingsStore.getState().loadGeneration), prompt.id);
|
|
30
|
+
if (!accepted)
|
|
31
|
+
return;
|
|
32
|
+
setPrompt(null);
|
|
33
|
+
if (blockedNow.current || inFlight.current)
|
|
34
|
+
return;
|
|
35
|
+
inFlight.current = true;
|
|
36
|
+
try {
|
|
37
|
+
await accepted.execute();
|
|
38
|
+
}
|
|
39
|
+
catch (cause) {
|
|
40
|
+
if (useEntitySettingsStore.getState().loadGeneration === generation)
|
|
41
|
+
setError(cause instanceof Error ? cause.message : 'The action was not confirmed.');
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
inFlight.current = false;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const confirmation = _jsxs(_Fragment, { children: [error && _jsx("p", { role: "alert", children: error }), prompt && _jsx(InAppConfirmationDialog, { prompt: prompt, onConfirm: () => { void confirm(); }, onCancel: () => { if (controller.cancel(prompt.id))
|
|
48
|
+
setPrompt(null); } }, prompt.id)] });
|
|
49
|
+
return { requestConfirmation, confirmation };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=useSettingsConfirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSettingsConfirmation.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/useSettingsConfirmation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AgentWorkspaceRulesRequest, AgentWorkspaceRulesResult } from '@xenosystem/agent-interface-contract';
|
|
2
|
+
type Request = (input: AgentWorkspaceRulesRequest) => Promise<AgentWorkspaceRulesResult>;
|
|
3
|
+
export interface WorkspaceRulesState {
|
|
4
|
+
result: AgentWorkspaceRulesResult | null;
|
|
5
|
+
path: string;
|
|
6
|
+
dirty: boolean;
|
|
7
|
+
busy: boolean;
|
|
8
|
+
notice: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function requireRulesAcknowledgement(request: Request, input: AgentWorkspaceRulesRequest): Promise<AgentWorkspaceRulesResult>;
|
|
11
|
+
/** Presentation state only: the host owns validation, revisions and project directives. */
|
|
12
|
+
export declare class WorkspaceRulesController {
|
|
13
|
+
private readonly workspaceId;
|
|
14
|
+
private readonly inherited;
|
|
15
|
+
private readonly request;
|
|
16
|
+
private state;
|
|
17
|
+
private generation;
|
|
18
|
+
private listeners;
|
|
19
|
+
constructor(workspaceId: string | undefined, inherited: boolean, request: Request);
|
|
20
|
+
getSnapshot: () => WorkspaceRulesState;
|
|
21
|
+
subscribe: (listener: () => void) => (() => void);
|
|
22
|
+
private set;
|
|
23
|
+
invalidate(): void;
|
|
24
|
+
edit(path: string): void;
|
|
25
|
+
run(action: 'get' | 'set' | 'reset'): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=workspaceRulesController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceRulesController.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/workspaceRulesController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAEjH,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,0BAA0B,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAA;AACxF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAA;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAWzI;AAED,2FAA2F;AAC3F,qBAAa,wBAAwB;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAAsB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAAW,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH3H,OAAO,CAAC,KAAK,CAAyF;IACtG,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,SAAS,CAAwB;gBACZ,WAAW,EAAE,MAAM,GAAG,SAAS,EAAmB,SAAS,EAAE,OAAO,EAAmB,OAAO,EAAE,OAAO;IACpI,WAAW,QAAO,mBAAmB,CAAc;IACnD,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAAsF;IACtI,OAAO,CAAC,GAAG;IAIX,UAAU,IAAI,IAAI;IAClB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAClB,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA6B1D"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export async function requireRulesAcknowledgement(request, input) {
|
|
2
|
+
const result = await request(input);
|
|
3
|
+
if (!result?.success)
|
|
4
|
+
throw new Error(result?.error ?? 'Rules selection was not saved. Reload settings before retrying.');
|
|
5
|
+
if (!result.revision || !result.rulesRevision || !['default', 'override'].includes(result.mode ?? '')
|
|
6
|
+
|| typeof result.valid !== 'boolean' || (result.mode === 'override' && typeof result.path !== 'string')
|
|
7
|
+
|| (input.action !== 'get' && !result.valid)
|
|
8
|
+
|| (input.action === 'set' && result.mode !== 'override')
|
|
9
|
+
|| (input.action === 'reset' && result.mode !== 'default')) {
|
|
10
|
+
throw new Error('The host returned incomplete rules acknowledgement. Reload before retrying.');
|
|
11
|
+
}
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
/** Presentation state only: the host owns validation, revisions and project directives. */
|
|
15
|
+
export class WorkspaceRulesController {
|
|
16
|
+
workspaceId;
|
|
17
|
+
inherited;
|
|
18
|
+
request;
|
|
19
|
+
state = { result: null, path: '', dirty: false, busy: false, notice: '' };
|
|
20
|
+
generation = 0;
|
|
21
|
+
listeners = new Set();
|
|
22
|
+
constructor(workspaceId, inherited, request) {
|
|
23
|
+
this.workspaceId = workspaceId;
|
|
24
|
+
this.inherited = inherited;
|
|
25
|
+
this.request = request;
|
|
26
|
+
}
|
|
27
|
+
getSnapshot = () => this.state;
|
|
28
|
+
subscribe = (listener) => { this.listeners.add(listener); return () => { this.listeners.delete(listener); }; };
|
|
29
|
+
set(patch) {
|
|
30
|
+
this.state = { ...this.state, ...patch };
|
|
31
|
+
for (const notify of this.listeners)
|
|
32
|
+
notify();
|
|
33
|
+
}
|
|
34
|
+
invalidate() { this.generation++; this.set({ busy: false }); }
|
|
35
|
+
edit(path) { if (!this.inherited)
|
|
36
|
+
this.set({ path, dirty: path !== (this.state.result?.path ?? '') }); }
|
|
37
|
+
async run(action) {
|
|
38
|
+
if (this.state.busy || (this.inherited && action !== 'get'))
|
|
39
|
+
return;
|
|
40
|
+
if (!this.workspaceId) {
|
|
41
|
+
this.set({ notice: 'Select a workspace to configure project rules.' });
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const previous = this.state.result;
|
|
45
|
+
if (action !== 'get' && (!previous?.success || !previous.revision || !previous.rulesRevision)) {
|
|
46
|
+
this.set({ notice: 'Reload workspace rules before saving.' });
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (action === 'set' && !this.state.path.trim()) {
|
|
50
|
+
this.set({ notice: 'Enter a rules file path.' });
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const submitted = this.state.path;
|
|
54
|
+
const attempt = ++this.generation;
|
|
55
|
+
// Synchronous admission prevents duplicate events before React paints disabled buttons.
|
|
56
|
+
this.set({ busy: true, notice: '' });
|
|
57
|
+
try {
|
|
58
|
+
const result = await requireRulesAcknowledgement(this.request, {
|
|
59
|
+
workspaceId: this.workspaceId, action,
|
|
60
|
+
...(action !== 'get' ? { expectedRevision: previous.revision, expectedRulesRevision: previous.rulesRevision } : {}),
|
|
61
|
+
...(action === 'set' ? { path: submitted } : {}),
|
|
62
|
+
});
|
|
63
|
+
if (attempt !== this.generation)
|
|
64
|
+
return;
|
|
65
|
+
const preserveDraft = action === 'get' ? this.state.dirty : this.state.path !== submitted;
|
|
66
|
+
this.set({ result, ...(preserveDraft ? {} : { path: result.path ?? '', dirty: false }),
|
|
67
|
+
notice: action === 'get' ? (preserveDraft ? 'Rules reloaded; your unsaved path is retained.' : '')
|
|
68
|
+
: action === 'reset' ? 'Override reset; runtime defaults are unchanged.'
|
|
69
|
+
: 'Rules file validated and saved. Changes apply to subsequent supported turns.' });
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (attempt === this.generation)
|
|
73
|
+
this.set({ ...(action === 'get' ? { result: null } : {}),
|
|
74
|
+
notice: error instanceof Error ? error.message.slice(0, 2000) : 'Workspace rules request failed. Reload before retrying.' });
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
if (attempt === this.generation)
|
|
78
|
+
this.set({ busy: false });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=workspaceRulesController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceRulesController.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/workspaceRulesController.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface SidebarEntityPin {
|
|
2
|
+
type: 'workspace' | 'team' | 'agent';
|
|
3
|
+
workspaceId: string;
|
|
4
|
+
teamId?: string;
|
|
5
|
+
agentId?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const SIDEBAR_ENTITY_PINS_KEY = "xeno:pinned-entities:v1";
|
|
8
|
+
export declare function entityPinKey(pin: SidebarEntityPin): string;
|
|
9
|
+
export declare function parseEntityPins(raw: string | null): SidebarEntityPin[];
|
|
10
|
+
export declare function toggleEntityPin(pins: SidebarEntityPin[], pin: SidebarEntityPin): SidebarEntityPin[];
|
|
11
|
+
//# sourceMappingURL=sidebarEntityPins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebarEntityPins.d.ts","sourceRoot":"","sources":["../../../src/components/agent/sidebarEntityPins.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAAG,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AAClI,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAA4F;AACvJ,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB,EAAE,CAkBtE;AACD,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAKnG"}
|