@xenosystem/agent-interface-ui 0.1.3
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/LICENSE +67 -0
- package/dist/adapters/agentHostPlatformBridge.d.ts +24 -0
- package/dist/adapters/agentHostPlatformBridge.d.ts.map +1 -0
- package/dist/adapters/agentHostPlatformBridge.js +1244 -0
- package/dist/adapters/agentHostPlatformBridge.js.map +1 -0
- package/dist/adapters/hubAgentPlatformBridge.d.ts +17 -0
- package/dist/adapters/hubAgentPlatformBridge.d.ts.map +1 -0
- package/dist/adapters/hubAgentPlatformBridge.js +109 -0
- package/dist/adapters/hubAgentPlatformBridge.js.map +1 -0
- package/dist/adapters/xenoAgentCompatibilityBridge.d.ts +14 -0
- package/dist/adapters/xenoAgentCompatibilityBridge.d.ts.map +1 -0
- package/dist/adapters/xenoAgentCompatibilityBridge.js +237 -0
- package/dist/adapters/xenoAgentCompatibilityBridge.js.map +1 -0
- package/dist/adapters/xenoAgentHostCatalog.d.ts +40 -0
- package/dist/adapters/xenoAgentHostCatalog.d.ts.map +1 -0
- package/dist/adapters/xenoAgentHostCatalog.js +228 -0
- package/dist/adapters/xenoAgentHostCatalog.js.map +1 -0
- package/dist/components/agent/AIStatusIndicator.d.ts +25 -0
- package/dist/components/agent/AIStatusIndicator.d.ts.map +1 -0
- package/dist/components/agent/AIStatusIndicator.js +85 -0
- package/dist/components/agent/AIStatusIndicator.js.map +1 -0
- package/dist/components/agent/AgentInterface.d.ts +21 -0
- package/dist/components/agent/AgentInterface.d.ts.map +1 -0
- package/dist/components/agent/AgentInterface.js +7586 -0
- package/dist/components/agent/AgentInterface.js.map +1 -0
- package/dist/components/agent/AgentOnboarding.d.ts +16 -0
- package/dist/components/agent/AgentOnboarding.d.ts.map +1 -0
- package/dist/components/agent/AgentOnboarding.js +423 -0
- package/dist/components/agent/AgentOnboarding.js.map +1 -0
- package/dist/components/agent/AgentPtyTerminalPanel.d.ts +13 -0
- package/dist/components/agent/AgentPtyTerminalPanel.d.ts.map +1 -0
- package/dist/components/agent/AgentPtyTerminalPanel.js +129 -0
- package/dist/components/agent/AgentPtyTerminalPanel.js.map +1 -0
- package/dist/components/agent/AgentView.d.ts +143 -0
- package/dist/components/agent/AgentView.d.ts.map +1 -0
- package/dist/components/agent/AgentView.js +7250 -0
- package/dist/components/agent/AgentView.js.map +1 -0
- package/dist/components/agent/AgentWorkbenchCliPanel.d.ts +15 -0
- package/dist/components/agent/AgentWorkbenchCliPanel.d.ts.map +1 -0
- package/dist/components/agent/AgentWorkbenchCliPanel.js +275 -0
- package/dist/components/agent/AgentWorkbenchCliPanel.js.map +1 -0
- package/dist/components/agent/AgentWorkbenchPanel.d.ts +791 -0
- package/dist/components/agent/AgentWorkbenchPanel.d.ts.map +1 -0
- package/dist/components/agent/AgentWorkbenchPanel.js +584 -0
- package/dist/components/agent/AgentWorkbenchPanel.js.map +1 -0
- package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts +11 -0
- package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts.map +1 -0
- package/dist/components/agent/AgentWorkspaceBrowserPanel.js +198 -0
- package/dist/components/agent/AgentWorkspaceBrowserPanel.js.map +1 -0
- package/dist/components/agent/AssistantTurnStatusNotice.d.ts +16 -0
- package/dist/components/agent/AssistantTurnStatusNotice.d.ts.map +1 -0
- package/dist/components/agent/AssistantTurnStatusNotice.js +54 -0
- package/dist/components/agent/AssistantTurnStatusNotice.js.map +1 -0
- package/dist/components/agent/CommandToolCard.d.ts +11 -0
- package/dist/components/agent/CommandToolCard.d.ts.map +1 -0
- package/dist/components/agent/CommandToolCard.js +29 -0
- package/dist/components/agent/CommandToolCard.js.map +1 -0
- package/dist/components/agent/FleetPanel.d.ts +28 -0
- package/dist/components/agent/FleetPanel.d.ts.map +1 -0
- package/dist/components/agent/FleetPanel.js +175 -0
- package/dist/components/agent/FleetPanel.js.map +1 -0
- package/dist/components/agent/GhostTextArea.d.ts +13 -0
- package/dist/components/agent/GhostTextArea.d.ts.map +1 -0
- package/dist/components/agent/GhostTextArea.js +21 -0
- package/dist/components/agent/GhostTextArea.js.map +1 -0
- package/dist/components/agent/IntakePanel.d.ts +29 -0
- package/dist/components/agent/IntakePanel.d.ts.map +1 -0
- package/dist/components/agent/IntakePanel.js +81 -0
- package/dist/components/agent/IntakePanel.js.map +1 -0
- package/dist/components/agent/KnowledgePanel.d.ts +25 -0
- package/dist/components/agent/KnowledgePanel.d.ts.map +1 -0
- package/dist/components/agent/KnowledgePanel.js +99 -0
- package/dist/components/agent/KnowledgePanel.js.map +1 -0
- package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts +9 -0
- package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts.map +1 -0
- package/dist/components/agent/MonacoDiffWorkbenchEditor.js +204 -0
- package/dist/components/agent/MonacoDiffWorkbenchEditor.js.map +1 -0
- package/dist/components/agent/MonacoWorkbenchEditor.d.ts +15 -0
- package/dist/components/agent/MonacoWorkbenchEditor.d.ts.map +1 -0
- package/dist/components/agent/MonacoWorkbenchEditor.js +380 -0
- package/dist/components/agent/MonacoWorkbenchEditor.js.map +1 -0
- package/dist/components/agent/PermissionDialog.d.ts +34 -0
- package/dist/components/agent/PermissionDialog.d.ts.map +1 -0
- package/dist/components/agent/PermissionDialog.js +67 -0
- package/dist/components/agent/PermissionDialog.js.map +1 -0
- package/dist/components/agent/PluginManager.d.ts +20 -0
- package/dist/components/agent/PluginManager.d.ts.map +1 -0
- package/dist/components/agent/PluginManager.js +506 -0
- package/dist/components/agent/PluginManager.js.map +1 -0
- package/dist/components/agent/RunReviewPanel.d.ts +52 -0
- package/dist/components/agent/RunReviewPanel.d.ts.map +1 -0
- package/dist/components/agent/RunReviewPanel.js +236 -0
- package/dist/components/agent/RunReviewPanel.js.map +1 -0
- package/dist/components/agent/SessionsPanel.d.ts +30 -0
- package/dist/components/agent/SessionsPanel.d.ts.map +1 -0
- package/dist/components/agent/SessionsPanel.js +247 -0
- package/dist/components/agent/SessionsPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.d.ts +19 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.js +85 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.js.map +1 -0
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.d.ts +10 -0
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js +80 -0
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpAgentManager.d.ts +3 -0
- package/dist/components/agent/acp/AcpAgentManager.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpAgentManager.js +152 -0
- package/dist/components/agent/acp/AcpAgentManager.js.map +1 -0
- package/dist/components/agent/acp/AcpAgentTestResultPanel.d.ts +9 -0
- package/dist/components/agent/acp/AcpAgentTestResultPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpAgentTestResultPanel.js +24 -0
- package/dist/components/agent/acp/AcpAgentTestResultPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpApprovalPanel.d.ts +29 -0
- package/dist/components/agent/acp/AcpApprovalPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpApprovalPanel.js +37 -0
- package/dist/components/agent/acp/AcpApprovalPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpCertificationPanel.d.ts +10 -0
- package/dist/components/agent/acp/AcpCertificationPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpCertificationPanel.js +41 -0
- package/dist/components/agent/acp/AcpCertificationPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.d.ts +11 -0
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js +32 -0
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpProviderManagerPanel.d.ts +7 -0
- package/dist/components/agent/acp/AcpProviderManagerPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpProviderManagerPanel.js +69 -0
- package/dist/components/agent/acp/AcpProviderManagerPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpProviderModelsPanel.d.ts +7 -0
- package/dist/components/agent/acp/AcpProviderModelsPanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpProviderModelsPanel.js +108 -0
- package/dist/components/agent/acp/AcpProviderModelsPanel.js.map +1 -0
- package/dist/components/agent/acp/AcpSupportBundlePanel.d.ts +8 -0
- package/dist/components/agent/acp/AcpSupportBundlePanel.d.ts.map +1 -0
- package/dist/components/agent/acp/AcpSupportBundlePanel.js +56 -0
- package/dist/components/agent/acp/AcpSupportBundlePanel.js.map +1 -0
- package/dist/components/agent/compactionSummary.d.ts +28 -0
- package/dist/components/agent/compactionSummary.d.ts.map +1 -0
- package/dist/components/agent/compactionSummary.js +41 -0
- package/dist/components/agent/compactionSummary.js.map +1 -0
- package/dist/components/agent/monacoWorkbenchShared.d.ts +13 -0
- package/dist/components/agent/monacoWorkbenchShared.d.ts.map +1 -0
- package/dist/components/agent/monacoWorkbenchShared.js +226 -0
- package/dist/components/agent/monacoWorkbenchShared.js.map +1 -0
- package/dist/components/agent/settings/EntitySettingsLayout.d.ts +61 -0
- package/dist/components/agent/settings/EntitySettingsLayout.d.ts.map +1 -0
- package/dist/components/agent/settings/EntitySettingsLayout.js +72 -0
- package/dist/components/agent/settings/EntitySettingsLayout.js.map +1 -0
- package/dist/components/agent/settings/SettingsNavigation.d.ts +8 -0
- package/dist/components/agent/settings/SettingsNavigation.d.ts.map +1 -0
- package/dist/components/agent/settings/SettingsNavigation.js +39 -0
- package/dist/components/agent/settings/SettingsNavigation.js.map +1 -0
- package/dist/components/agent/settings/sections/AccessMembersSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/AccessMembersSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/AccessMembersSection.js +31 -0
- package/dist/components/agent/settings/sections/AccessMembersSection.js.map +1 -0
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts +25 -0
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js +56 -0
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js.map +1 -0
- package/dist/components/agent/settings/sections/DangerZoneSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/DangerZoneSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/DangerZoneSection.js +19 -0
- package/dist/components/agent/settings/sections/DangerZoneSection.js.map +1 -0
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js +66 -0
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js.map +1 -0
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js +87 -0
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js.map +1 -0
- package/dist/components/agent/settings/sections/ExportBackupSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/ExportBackupSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/ExportBackupSection.js +23 -0
- package/dist/components/agent/settings/sections/ExportBackupSection.js.map +1 -0
- package/dist/components/agent/settings/sections/GeneralSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/GeneralSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/GeneralSection.js +15 -0
- package/dist/components/agent/settings/sections/GeneralSection.js.map +1 -0
- package/dist/components/agent/settings/sections/IntegrationsSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/IntegrationsSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/IntegrationsSection.js +40 -0
- package/dist/components/agent/settings/sections/IntegrationsSection.js.map +1 -0
- package/dist/components/agent/settings/sections/NotificationsSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/NotificationsSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/NotificationsSection.js +28 -0
- package/dist/components/agent/settings/sections/NotificationsSection.js.map +1 -0
- package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/ResourceLimitsSection.js +17 -0
- package/dist/components/agent/settings/sections/ResourceLimitsSection.js.map +1 -0
- package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/SecurityComplianceSection.js +28 -0
- package/dist/components/agent/settings/sections/SecurityComplianceSection.js.map +1 -0
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts +3 -0
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.js +17 -0
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.js.map +1 -0
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts +54 -0
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js +333 -0
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js.map +1 -0
- package/dist/components/agent/settings/shared/CheckboxField.d.ts +13 -0
- package/dist/components/agent/settings/shared/CheckboxField.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/CheckboxField.js +8 -0
- package/dist/components/agent/settings/shared/CheckboxField.js.map +1 -0
- package/dist/components/agent/settings/shared/InputField.d.ts +15 -0
- package/dist/components/agent/settings/shared/InputField.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/InputField.js +7 -0
- package/dist/components/agent/settings/shared/InputField.js.map +1 -0
- package/dist/components/agent/settings/shared/MembersTable.d.ts +11 -0
- package/dist/components/agent/settings/shared/MembersTable.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/MembersTable.js +7 -0
- package/dist/components/agent/settings/shared/MembersTable.js.map +1 -0
- package/dist/components/agent/settings/shared/SettingRow.d.ts +11 -0
- package/dist/components/agent/settings/shared/SettingRow.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/SettingRow.js +6 -0
- package/dist/components/agent/settings/shared/SettingRow.js.map +1 -0
- package/dist/components/agent/settings/shared/SettingsCard.d.ts +11 -0
- package/dist/components/agent/settings/shared/SettingsCard.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/SettingsCard.js +8 -0
- package/dist/components/agent/settings/shared/SettingsCard.js.map +1 -0
- package/dist/components/agent/settings/shared/ToggleSwitch.d.ts +8 -0
- package/dist/components/agent/settings/shared/ToggleSwitch.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/ToggleSwitch.js +6 -0
- package/dist/components/agent/settings/shared/ToggleSwitch.js.map +1 -0
- package/dist/components/agent/settings/shared/UsageChart.d.ts +12 -0
- package/dist/components/agent/settings/shared/UsageChart.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/UsageChart.js +16 -0
- package/dist/components/agent/settings/shared/UsageChart.js.map +1 -0
- package/dist/components/agent/toolCardDisplay.d.ts +24 -0
- package/dist/components/agent/toolCardDisplay.d.ts.map +1 -0
- package/dist/components/agent/toolCardDisplay.js +85 -0
- package/dist/components/agent/toolCardDisplay.js.map +1 -0
- package/dist/components/product/XenoAgentProductHeader.d.ts +18 -0
- package/dist/components/product/XenoAgentProductHeader.d.ts.map +1 -0
- package/dist/components/product/XenoAgentProductHeader.js +25 -0
- package/dist/components/product/XenoAgentProductHeader.js.map +1 -0
- package/dist/components/product/XenoAgentSessionTabs.d.ts +18 -0
- package/dist/components/product/XenoAgentSessionTabs.d.ts.map +1 -0
- package/dist/components/product/XenoAgentSessionTabs.js +103 -0
- package/dist/components/product/XenoAgentSessionTabs.js.map +1 -0
- package/dist/components/ui/CodeBlock.d.ts +8 -0
- package/dist/components/ui/CodeBlock.d.ts.map +1 -0
- package/dist/components/ui/CodeBlock.js +89 -0
- package/dist/components/ui/CodeBlock.js.map +1 -0
- package/dist/components/ui/XenoLogo.d.ts +11 -0
- package/dist/components/ui/XenoLogo.d.ts.map +1 -0
- package/dist/components/ui/XenoLogo.js +9 -0
- package/dist/components/ui/XenoLogo.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +127 -0
- package/dist/index.js.map +1 -0
- package/dist/platformApiTypes.d.ts +3992 -0
- package/dist/platformApiTypes.d.ts.map +1 -0
- package/dist/platformApiTypes.js +2 -0
- package/dist/platformApiTypes.js.map +1 -0
- package/dist/platformBridge.d.ts +9 -0
- package/dist/platformBridge.d.ts.map +1 -0
- package/dist/platformBridge.js +19 -0
- package/dist/platformBridge.js.map +1 -0
- package/dist/providerSelector.d.ts +28 -0
- package/dist/providerSelector.d.ts.map +1 -0
- package/dist/providerSelector.js +104 -0
- package/dist/providerSelector.js.map +1 -0
- package/dist/services/connectionMode.d.ts +13 -0
- package/dist/services/connectionMode.d.ts.map +1 -0
- package/dist/services/connectionMode.js +31 -0
- package/dist/services/connectionMode.js.map +1 -0
- package/dist/sessionTabs.d.ts +48 -0
- package/dist/sessionTabs.d.ts.map +1 -0
- package/dist/sessionTabs.js +106 -0
- package/dist/sessionTabs.js.map +1 -0
- package/dist/stores/acpAgentStore.d.ts +264 -0
- package/dist/stores/acpAgentStore.d.ts.map +1 -0
- package/dist/stores/acpAgentStore.js +825 -0
- package/dist/stores/acpAgentStore.js.map +1 -0
- package/dist/stores/agentChatStore.d.ts +529 -0
- package/dist/stores/agentChatStore.d.ts.map +1 -0
- package/dist/stores/agentChatStore.js +5309 -0
- package/dist/stores/agentChatStore.js.map +1 -0
- package/dist/stores/agentIdeStore.d.ts +9 -0
- package/dist/stores/agentIdeStore.d.ts.map +1 -0
- package/dist/stores/agentIdeStore.js +8 -0
- package/dist/stores/agentIdeStore.js.map +1 -0
- package/dist/stores/agentSearchStore.d.ts +174 -0
- package/dist/stores/agentSearchStore.d.ts.map +1 -0
- package/dist/stores/agentSearchStore.js +305 -0
- package/dist/stores/agentSearchStore.js.map +1 -0
- package/dist/stores/authStore.d.ts +26 -0
- package/dist/stores/authStore.d.ts.map +1 -0
- package/dist/stores/authStore.js +163 -0
- package/dist/stores/authStore.js.map +1 -0
- package/dist/stores/entitySettingsStore.d.ts +236 -0
- package/dist/stores/entitySettingsStore.d.ts.map +1 -0
- package/dist/stores/entitySettingsStore.js +916 -0
- package/dist/stores/entitySettingsStore.js.map +1 -0
- package/dist/stores/permissionStore.d.ts +25 -0
- package/dist/stores/permissionStore.d.ts.map +1 -0
- package/dist/stores/permissionStore.js +58 -0
- package/dist/stores/permissionStore.js.map +1 -0
- package/dist/stores/suggestionStore.d.ts +29 -0
- package/dist/stores/suggestionStore.d.ts.map +1 -0
- package/dist/stores/suggestionStore.js +160 -0
- package/dist/stores/suggestionStore.js.map +1 -0
- package/dist/stores/tabStore.d.ts +30 -0
- package/dist/stores/tabStore.d.ts.map +1 -0
- package/dist/stores/tabStore.js +252 -0
- package/dist/stores/tabStore.js.map +1 -0
- package/dist/stores/themeStore.d.ts +13 -0
- package/dist/stores/themeStore.d.ts.map +1 -0
- package/dist/stores/themeStore.js +77 -0
- package/dist/stores/themeStore.js.map +1 -0
- package/dist/stores/workspaceStore.d.ts +175 -0
- package/dist/stores/workspaceStore.d.ts.map +1 -0
- package/dist/stores/workspaceStore.js +694 -0
- package/dist/stores/workspaceStore.js.map +1 -0
- package/dist/stores/xenoChatStore.d.ts +88 -0
- package/dist/stores/xenoChatStore.d.ts.map +1 -0
- package/dist/stores/xenoChatStore.js +572 -0
- package/dist/stores/xenoChatStore.js.map +1 -0
- package/dist/toolCardProjection.d.ts +33 -0
- package/dist/toolCardProjection.d.ts.map +1 -0
- package/dist/toolCardProjection.js +62 -0
- package/dist/toolCardProjection.js.map +1 -0
- package/dist/types/agentEditor.d.ts +39 -0
- package/dist/types/agentEditor.d.ts.map +1 -0
- package/dist/types/agentEditor.js +2 -0
- package/dist/types/agentEditor.js.map +1 -0
- package/dist/types/agentRuntimeProvider.d.ts +2 -0
- package/dist/types/agentRuntimeProvider.d.ts.map +1 -0
- package/dist/types/agentRuntimeProvider.js +2 -0
- package/dist/types/agentRuntimeProvider.js.map +1 -0
- package/dist/utils/acpExecutionAuthority.d.ts +18 -0
- package/dist/utils/acpExecutionAuthority.d.ts.map +1 -0
- package/dist/utils/acpExecutionAuthority.js +22 -0
- package/dist/utils/acpExecutionAuthority.js.map +1 -0
- package/dist/utils/agentAttachedContextPrompt.d.ts +2 -0
- package/dist/utils/agentAttachedContextPrompt.d.ts.map +1 -0
- package/dist/utils/agentAttachedContextPrompt.js +2 -0
- package/dist/utils/agentAttachedContextPrompt.js.map +1 -0
- package/dist/utils/agentModelContext.d.ts +2 -0
- package/dist/utils/agentModelContext.d.ts.map +1 -0
- package/dist/utils/agentModelContext.js +2 -0
- package/dist/utils/agentModelContext.js.map +1 -0
- package/dist/utils/agentReasoningEffort.d.ts +3 -0
- package/dist/utils/agentReasoningEffort.d.ts.map +1 -0
- package/dist/utils/agentReasoningEffort.js +2 -0
- package/dist/utils/agentReasoningEffort.js.map +1 -0
- package/dist/utils/agentRuntimeProvider.d.ts +3 -0
- package/dist/utils/agentRuntimeProvider.d.ts.map +1 -0
- package/dist/utils/agentRuntimeProvider.js +2 -0
- package/dist/utils/agentRuntimeProvider.js.map +1 -0
- package/dist/utils/cloudModels.d.ts +3 -0
- package/dist/utils/cloudModels.d.ts.map +1 -0
- package/dist/utils/cloudModels.js +181 -0
- package/dist/utils/cloudModels.js.map +1 -0
- package/dist/utils/conversationRuntime.d.ts +3 -0
- package/dist/utils/conversationRuntime.d.ts.map +1 -0
- package/dist/utils/conversationRuntime.js +2 -0
- package/dist/utils/conversationRuntime.js.map +1 -0
- package/dist/utils/fileCreateIntent.d.ts +16 -0
- package/dist/utils/fileCreateIntent.d.ts.map +1 -0
- package/dist/utils/fileCreateIntent.js +123 -0
- package/dist/utils/fileCreateIntent.js.map +1 -0
- package/dist/utils/legacyAgentRuntimeEvents.d.ts +2 -0
- package/dist/utils/legacyAgentRuntimeEvents.d.ts.map +1 -0
- package/dist/utils/legacyAgentRuntimeEvents.js +2 -0
- package/dist/utils/legacyAgentRuntimeEvents.js.map +1 -0
- package/dist/utils/markdownWindowsPaths.d.ts +2 -0
- package/dist/utils/markdownWindowsPaths.d.ts.map +1 -0
- package/dist/utils/markdownWindowsPaths.js +2 -0
- package/dist/utils/markdownWindowsPaths.js.map +1 -0
- package/dist/utils/workspaceSelectionContinuation.d.ts +2 -0
- package/dist/utils/workspaceSelectionContinuation.d.ts.map +1 -0
- package/dist/utils/workspaceSelectionContinuation.js +2 -0
- package/dist/utils/workspaceSelectionContinuation.js.map +1 -0
- package/package.json +53 -0
- package/src/agent.css +1156 -0
- package/src/foundation.css +62 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getAgentPlatformBridge } from '../../../platformBridge';
|
|
3
|
+
/**
|
|
4
|
+
* Whether this surface can perform ACP provider approval.
|
|
5
|
+
*
|
|
6
|
+
* ✅ `true` since the `acp.provider.approve` host method landed. It was `false`
|
|
7
|
+
* while BOTH bridges answered `unsupported` and the host protocol had no `acp.*`
|
|
8
|
+
* method at all — the buttons were enabled and every click failed with "not
|
|
9
|
+
* available on this host yet", a message that was true of the bridge and false
|
|
10
|
+
* of the host.
|
|
11
|
+
*
|
|
12
|
+
* Still a constant rather than a probe: the standalone bridge implements it
|
|
13
|
+
* unconditionally, so there is nothing to detect at runtime. A surface whose
|
|
14
|
+
* bridge does not should pass `false` — the prop is REQUIRED so it has to
|
|
15
|
+
* decide rather than inherit a default.
|
|
16
|
+
*/
|
|
17
|
+
const APPROVAL_SUPPORTED = true;
|
|
18
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
19
|
+
import { AlertTriangle, Bot, Check, ChevronDown, ExternalLink, Loader2, MoreHorizontal, Plus, RefreshCw, Search, Settings2, Star, } from 'lucide-react';
|
|
20
|
+
import { useAcpAgentStore, } from '../../../stores/acpAgentStore';
|
|
21
|
+
import { AcpAgentConfigForm } from './AcpAgentConfigForm';
|
|
22
|
+
import { AcpProviderManagerPanel } from './AcpProviderManagerPanel';
|
|
23
|
+
import { AcpAgentTestResultPanel } from './AcpAgentTestResultPanel';
|
|
24
|
+
const FIXTURE_UI_AVAILABLE = import.meta.env.DEV || import.meta.env.MODE === 'test';
|
|
25
|
+
const AcpAgentDiagnosticsPanel = React.lazy(async () => ({ default: (await import('./AcpAgentDiagnosticsPanel')).AcpAgentDiagnosticsPanel }));
|
|
26
|
+
const AcpApprovalPanel = React.lazy(async () => ({ default: (await import('./AcpApprovalPanel')).AcpApprovalPanel }));
|
|
27
|
+
const AcpCertificationPanel = React.lazy(async () => ({ default: (await import('./AcpCertificationPanel')).AcpCertificationPanel }));
|
|
28
|
+
const AcpSupportBundlePanel = React.lazy(async () => ({ default: (await import('./AcpSupportBundlePanel')).AcpSupportBundlePanel }));
|
|
29
|
+
const AcpLiveProviderWorkflowPanel = React.lazy(async () => ({ default: (await import('./AcpLiveProviderWorkflowPanel')).AcpLiveProviderWorkflowPanel }));
|
|
30
|
+
const AcpProviderModelsPanel = React.lazy(async () => ({ default: (await import('./AcpProviderModelsPanel')).AcpProviderModelsPanel }));
|
|
31
|
+
export function AcpAgentManager() {
|
|
32
|
+
const { agents, runtimeAgentDetails, catalog, diagnostics, testResult, certificationResult, approvalResult, catalogLoading, catalogSyncing, catalogActionId, updatingProviderId, saving, diagnosticsLoading, testingAgentId, certifyingAgentId, approvingAgentId, catalogError, formError, loadCatalog, load, loadAgentDetails, refreshDiagnostics, saveAgent, testAgent, certifyAgent, approveProvider, revokeProvider, createFixtureAgent, setCatalogEnabled, setCatalogProviderEnabled, updateCatalogProvider, setPreferredCatalogProvider, } = useAcpAgentStore();
|
|
33
|
+
const [query, setQuery] = useState('');
|
|
34
|
+
const [menuProviderId, setMenuProviderId] = useState(null);
|
|
35
|
+
const [configureProviderId, setConfigureProviderId] = useState(null);
|
|
36
|
+
const [showCustomAgent, setShowCustomAgent] = useState(false);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
void loadCatalog(false);
|
|
39
|
+
}, [loadCatalog]);
|
|
40
|
+
/**
|
|
41
|
+
* Reload when SOMEONE ELSE changes the catalog — another window, or the host.
|
|
42
|
+
*
|
|
43
|
+
* 🔴 The store already reloads after its own mutations, so this list is
|
|
44
|
+
* self-consistent for the surface that edited it and stale for every other
|
|
45
|
+
* one. This repo ships one Agent UI into several surfaces on purpose, so a
|
|
46
|
+
* second window is the ordinary case, not an edge.
|
|
47
|
+
*/
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
const subscribe = getAgentPlatformBridge()?.acp?.subscribeCatalogChanged;
|
|
50
|
+
if (!subscribe)
|
|
51
|
+
return;
|
|
52
|
+
return subscribe(() => {
|
|
53
|
+
void load();
|
|
54
|
+
void loadCatalog(false);
|
|
55
|
+
});
|
|
56
|
+
}, [load, loadCatalog]);
|
|
57
|
+
const visibleProviders = useMemo(() => {
|
|
58
|
+
const normalized = query.trim().toLowerCase();
|
|
59
|
+
if (!normalized)
|
|
60
|
+
return catalog?.entries || [];
|
|
61
|
+
return (catalog?.entries || []).filter((provider) => `${provider.name} ${provider.description} ${provider.authors.join(' ')}`.toLowerCase().includes(normalized));
|
|
62
|
+
}, [catalog?.entries, query]);
|
|
63
|
+
const configuredProvider = useMemo(() => {
|
|
64
|
+
const entry = catalog?.entries.find((provider) => provider.id === configureProviderId);
|
|
65
|
+
if (!entry?.agentConfigId)
|
|
66
|
+
return null;
|
|
67
|
+
return runtimeAgentDetails[entry.agentConfigId]
|
|
68
|
+
|| agents.find((agent) => agent.id === entry.agentConfigId)
|
|
69
|
+
|| null;
|
|
70
|
+
}, [agents, catalog?.entries, configureProviderId, runtimeAgentDetails]);
|
|
71
|
+
const openProviderSetup = (provider) => {
|
|
72
|
+
const url = provider.website || provider.repository;
|
|
73
|
+
if (url)
|
|
74
|
+
void getAgentPlatformBridge()?.window?.openExternal?.(url);
|
|
75
|
+
};
|
|
76
|
+
return (_jsxs("div", { className: "acp-agent-manager flex h-full min-h-0 flex-col overflow-hidden rounded-[6px] border border-white/[0.07] bg-[#151518]", children: [_jsxs("header", { className: "border-b border-white/[0.07] px-4 py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-4", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h3", { className: "text-[14px] font-semibold text-white/84", children: "Agents" }), _jsx("p", { className: "mt-1 text-[10px] leading-relaxed text-white/34", children: "XENO discovers installed ACP agents and completes setup automatically." })] }), _jsxs("button", { type: "button", onClick: () => { void loadCatalog(true); }, disabled: catalogLoading, className: "inline-flex h-7 items-center gap-1.5 rounded-[4px] px-2 text-[10px] text-white/38 hover:bg-white/[0.06] hover:text-white/62 disabled:opacity-35", title: "Refresh the official ACP provider catalog", children: [_jsx(RefreshCw, { className: `h-3.5 w-3.5 ${catalogLoading ? 'animate-spin' : ''}` }), "Refresh"] })] }), _jsxs("div", { className: "mt-3 flex items-center justify-between gap-3 rounded-[5px] border border-white/[0.06] bg-black/20 px-3 py-2.5", children: [_jsxs("div", { children: [_jsx("p", { className: "text-[11px] font-medium text-white/72", children: "Enable ACP" }), _jsx("p", { className: "mt-0.5 text-[10px] text-white/30", children: "Use external agents through the Agent Client Protocol" })] }), _jsx("button", { type: "button", role: "switch", "aria-checked": catalog?.acpEnabled !== false, onClick: () => { void setCatalogEnabled(!(catalog?.acpEnabled !== false)); }, disabled: !catalog || catalogActionId === 'catalog', className: `relative h-5 w-9 rounded-[5px] border transition-colors disabled:opacity-35 ${catalog?.acpEnabled !== false ? 'border-white/24 bg-white/75' : 'border-white/10 bg-white/[0.05]'}`, children: _jsx("span", { className: `absolute top-[3px] h-3 w-3 rounded-[2px] bg-[#151518] transition-transform ${catalog?.acpEnabled !== false ? 'translate-x-[18px]' : 'translate-x-[3px]'}` }) })] }), _jsxs("label", { className: "mt-3 flex h-8 items-center gap-2 rounded-[4px] border border-white/[0.07] bg-black/20 px-2.5 focus-within:border-white/[0.15]", children: [_jsx(Search, { className: "h-3.5 w-3.5 text-white/24" }), _jsx("input", { value: query, onChange: (event) => setQuery(event.target.value), placeholder: "Search agents...", className: "min-w-0 flex-1 bg-transparent text-[11px] text-white/72 outline-none placeholder:text-white/24" })] })] }), _jsxs("main", { className: "min-h-0 flex-1 overflow-y-auto p-3", children: [catalogLoading && !catalog ? (_jsx(CatalogSkeleton, {})) : (_jsxs("div", { className: "overflow-visible rounded-[6px] border border-white/[0.06] bg-black/10 px-2", children: [visibleProviders.map((provider) => (_jsx(ProviderCatalogRow, { provider: provider, busy: catalogActionId === provider.id, updating: updatingProviderId === provider.id, menuOpen: menuProviderId === provider.id, configureOpen: configureProviderId === provider.id, onToggleMenu: () => setMenuProviderId((current) => current === provider.id ? null : provider.id), onEnable: () => { void setCatalogProviderEnabled(provider.id, true); }, onRetry: () => {
|
|
77
|
+
setMenuProviderId(null);
|
|
78
|
+
void setCatalogProviderEnabled(provider.id, true);
|
|
79
|
+
}, onDisable: () => {
|
|
80
|
+
setMenuProviderId(null);
|
|
81
|
+
void setCatalogProviderEnabled(provider.id, false);
|
|
82
|
+
}, onUpdate: () => {
|
|
83
|
+
setMenuProviderId(null);
|
|
84
|
+
void updateCatalogProvider(provider.id);
|
|
85
|
+
}, onPreferred: () => {
|
|
86
|
+
setMenuProviderId(null);
|
|
87
|
+
void setPreferredCatalogProvider(provider.id);
|
|
88
|
+
}, onConfigure: () => {
|
|
89
|
+
setMenuProviderId(null);
|
|
90
|
+
const opening = configureProviderId !== provider.id;
|
|
91
|
+
setConfigureProviderId(opening ? provider.id : null);
|
|
92
|
+
if (opening) {
|
|
93
|
+
void load();
|
|
94
|
+
if (provider.agentConfigId)
|
|
95
|
+
void loadAgentDetails(provider.agentConfigId);
|
|
96
|
+
}
|
|
97
|
+
}, onSetup: () => {
|
|
98
|
+
setMenuProviderId(null);
|
|
99
|
+
openProviderSetup(provider);
|
|
100
|
+
}, children: configureProviderId === provider.id && (_jsx(ProviderConfiguration, { provider: provider, agent: provider.agentConfigId ? agents.find((agent) => agent.id === provider.agentConfigId) || null : null, saving: saving, error: formError, onSave: saveAgent })) }, provider.id))), !visibleProviders.length && (_jsxs("div", { className: "px-3 py-10 text-center", children: [_jsx(Bot, { className: "mx-auto h-5 w-5 text-white/20" }), _jsxs("p", { className: "mt-2 text-[11px] text-white/42", children: ["No agents match \u00E2\u20AC\u0153", query, "\u00E2\u20AC\u009D."] })] }))] })), (catalogError || catalog?.syncErrors.length) ? (_jsx("div", { className: "mt-2 rounded-[5px] border border-[#5f4a22]/60 bg-[#171309] px-3 py-2 text-[10px] leading-relaxed text-[#ffd38a]/76", children: catalogError || catalog?.syncErrors[0] })) : null, _jsxs("div", { className: "mt-3 flex items-center justify-between gap-3", children: [_jsx("p", { className: "text-[9px] text-white/22", children: catalogSyncing
|
|
101
|
+
? 'Discovering installed agents in the background…'
|
|
102
|
+
: catalog
|
|
103
|
+
? `${catalog.entries.length} providers · ${catalog.source === 'network' ? 'official ACP Registry' : `${catalog.source} catalog`}`
|
|
104
|
+
: 'Loading provider catalog' }), _jsxs("button", { type: "button", onClick: () => setShowCustomAgent((value) => !value), className: "inline-flex h-7 items-center gap-1.5 rounded-[4px] px-2 text-[10px] text-white/36 hover:bg-white/[0.06] hover:text-white/62", children: [_jsx(Plus, { className: "h-3.5 w-3.5" }), "Add custom agent"] })] }), showCustomAgent && (_jsx("section", { className: "mt-2 rounded-[6px] border border-white/[0.07] bg-black/15 p-3", children: _jsx(AcpAgentConfigForm, { agent: null, saving: saving, error: formError, onSave: saveAgent }) })), FIXTURE_UI_AVAILABLE && (_jsx("button", { type: "button", onClick: () => { void createFixtureAgent(); }, disabled: saving, className: "mt-2 text-[9px] text-white/18 hover:text-white/38 disabled:opacity-30", children: "Add fixture ACP agent" })), configuredProvider && (_jsx(AdvancedProviderTools, { agent: configuredProvider, diagnostics: diagnostics, diagnosticsLoading: diagnosticsLoading, testing: testingAgentId === configuredProvider.id, certifying: certifyingAgentId === configuredProvider.id, approving: approvingAgentId === configuredProvider.id, testResult: testResult, certificationResult: certificationResult, approvalResult: approvalResult, onRefreshDiagnostics: () => { void refreshDiagnostics(); }, onTest: () => { void testAgent(configuredProvider.id); }, onCertify: (agentId) => { void certifyAgent(agentId); }, onApprove: (agentId, providerId) => { void approveProvider(agentId, providerId); }, onRevoke: (agentId, providerId) => { void revokeProvider(agentId, providerId); }, approvalSupported: APPROVAL_SUPPORTED }))] })] }));
|
|
105
|
+
}
|
|
106
|
+
function ProviderCatalogRow(props) {
|
|
107
|
+
const { provider } = props;
|
|
108
|
+
const primaryAction = provider.primaryAction || (provider.canAutoSetup
|
|
109
|
+
? { id: 'enable', label: 'Enable', mode: 'automatic' }
|
|
110
|
+
: { id: 'install', label: 'Install', mode: 'external' });
|
|
111
|
+
const automaticEnable = primaryAction.id === 'enable' && primaryAction.mode === 'automatic';
|
|
112
|
+
return (_jsxs("article", { className: "relative border-b border-white/[0.055] last:border-b-0", children: [_jsxs("div", { className: "flex min-h-[60px] items-center gap-3 px-2.5 py-2.5", children: [_jsx(ProviderIcon, { provider: provider }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("p", { className: "truncate text-[11px] font-medium text-white/76", children: provider.name }), provider.preferred && _jsx(Star, { className: "h-3 w-3 fill-white/55 text-white/55", "aria-label": "Preferred provider" })] }), _jsx("p", { className: "mt-0.5 truncate text-[10px] text-white/30", children: provider.description })] }), _jsx(ProviderStatusLabel, { provider: provider, busy: props.busy, updating: props.updating }), provider.enabled ? (_jsx("button", { type: "button", onClick: props.onToggleMenu, disabled: props.busy, className: "flex h-7 w-7 items-center justify-center rounded-[4px] text-white/30 hover:bg-white/[0.07] hover:text-white/62", "aria-label": `Manage ${provider.name}`, children: _jsx(MoreHorizontal, { className: "h-4 w-4" }) })) : (_jsxs("button", { type: "button", onClick: automaticEnable ? props.onEnable : props.onSetup, disabled: props.busy || (!automaticEnable && !provider.website && !provider.repository), className: "inline-flex h-7 min-w-[54px] items-center justify-center gap-1 rounded-[4px] border border-white/[0.09] px-2 text-[10px] text-white/58 hover:bg-white/[0.06] disabled:opacity-30", children: [props.busy ? _jsx(Loader2, { className: "h-3 w-3 animate-spin" }) : !automaticEnable ? _jsx(ExternalLink, { className: "h-3 w-3" }) : null, props.busy ? 'Setting up' : primaryAction.label] }))] }), props.menuOpen && (_jsxs("div", { className: "absolute right-2 top-11 z-20 w-40 rounded-[6px] border border-white/[0.1] bg-[#202024] p-1 shadow-xl shadow-black/40", children: [provider.primaryAction?.id === 'certify' && (_jsx(CatalogMenuButton, { onClick: props.onRetry, children: provider.primaryAction.label })), provider.primaryAction?.id === 'login' && (_jsx(CatalogMenuButton, { onClick: props.onSetup, children: provider.primaryAction.label })), provider.status === 'update_required' && (_jsx(CatalogMenuButton, { onClick: props.onUpdate, children: "Update" })), _jsx(CatalogMenuButton, { onClick: props.onDisable, children: "Disable" }), _jsx(CatalogMenuButton, { onClick: props.onPreferred, disabled: provider.preferred || provider.status !== 'ready', children: provider.preferred ? 'Preferred' : 'Set as preferred' }), _jsx(CatalogMenuButton, { onClick: props.onConfigure, children: "Configure" })] })), props.configureOpen && props.children] }));
|
|
113
|
+
}
|
|
114
|
+
function ProviderConfiguration({ provider, agent, saving, error, onSave, }) {
|
|
115
|
+
return (_jsxs("div", { className: "border-t border-white/[0.055] bg-white/[0.018] px-3 py-3", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx("p", { className: "text-[10px] font-medium text-white/58", children: "Automatic provider setup" }), _jsx("p", { className: "mt-1 max-w-[680px] text-[10px] leading-relaxed text-white/30", children: provider.statusMessage })] }), _jsxs("div", { className: "flex gap-1.5 text-[9px] text-white/24", children: [_jsx("span", { children: provider.distributionKind }), provider.version && _jsxs("span", { children: ["v", provider.version] })] })] }), _jsxs("p", { className: "mt-2 text-[10px] leading-relaxed text-white/28", children: ["Authentication, subscriptions, and model selection stay with ", provider.name, ". XENO never copies provider credentials."] }), agent && (_jsxs("details", { className: "mt-3 rounded-[5px] border border-white/[0.06] bg-black/15", children: [_jsxs("summary", { className: "flex cursor-pointer list-none items-center justify-between px-3 py-2 text-[10px] text-white/42 hover:text-white/62", children: ["Environment and advanced configuration", _jsx(ChevronDown, { className: "h-3.5 w-3.5" })] }), _jsx("div", { className: "border-t border-white/[0.06] p-3", children: _jsx(AcpAgentConfigForm, { agent: agent, saving: saving, error: error, onSave: onSave }) })] }))] }));
|
|
116
|
+
}
|
|
117
|
+
function AdvancedProviderTools(props) {
|
|
118
|
+
const canTest = props.agent.enabled && (isLikelyFixtureAgent(props.agent) || props.agent.certification?.status === 'certified');
|
|
119
|
+
return (_jsxs("details", { className: "mt-3 rounded-[6px] border border-white/[0.06] bg-black/10", children: [_jsxs("summary", { className: "flex cursor-pointer list-none items-center gap-2 px-3 py-2 text-[10px] text-white/30 hover:text-white/52", children: [_jsx(Settings2, { className: "h-3.5 w-3.5" }), "Advanced provider diagnostics"] }), _jsx("div", { className: "space-y-3 border-t border-white/[0.06] p-3", children: _jsxs(React.Suspense, { fallback: null, children: [_jsxs("div", { className: "grid grid-cols-1 gap-3 xl:grid-cols-3", children: [_jsx(AcpApprovalPanel, { agent: props.agent, result: props.approvalResult, approving: props.approving, supported: props.approvalSupported, onApprove: props.onApprove, onRevoke: props.onRevoke }), _jsx(AcpCertificationPanel, { agent: props.agent, result: props.certificationResult, certifying: props.certifying, onCertify: props.onCertify }), _jsx(AcpProviderModelsPanel, { agent: props.agent }, props.agent.id)] }), _jsxs("div", { className: "grid grid-cols-1 gap-3 xl:grid-cols-2", children: [_jsx(AcpProviderManagerPanel, { agent: props.agent }), _jsxs("div", { className: "space-y-2", children: [_jsx(AcpLiveProviderWorkflowPanel, { agent: props.agent, canTest: canTest, testing: props.testing, onRun: props.onTest }), _jsx(AcpAgentTestResultPanel, { result: props.testResult, testing: props.testing })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-3 xl:grid-cols-2", children: [_jsx(AcpAgentDiagnosticsPanel, { diagnostics: props.diagnostics, loading: props.diagnosticsLoading, onRefresh: props.onRefreshDiagnostics }), _jsx(AcpSupportBundlePanel, { agent: props.agent })] })] }) })] }));
|
|
120
|
+
}
|
|
121
|
+
function ProviderIcon({ provider }) {
|
|
122
|
+
if (provider.iconUrl) {
|
|
123
|
+
return (_jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-[5px] bg-white/[0.045]", children: _jsx("img", { src: provider.iconUrl, alt: "", referrerPolicy: "no-referrer", className: "h-5 w-5 object-contain opacity-80" }) }));
|
|
124
|
+
}
|
|
125
|
+
const initials = provider.name.split(/\s+/).slice(0, 2).map((part) => part[0]).join('').toUpperCase();
|
|
126
|
+
return _jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-[5px] bg-white/[0.045] text-[9px] font-semibold text-white/42", children: initials });
|
|
127
|
+
}
|
|
128
|
+
function ProviderStatusLabel({ provider, busy, updating }) {
|
|
129
|
+
if (updating) {
|
|
130
|
+
return _jsxs("span", { className: "inline-flex items-center gap-1 text-[10px] text-white/36", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Updating"] });
|
|
131
|
+
}
|
|
132
|
+
if (busy || provider.status === 'setting_up') {
|
|
133
|
+
return _jsxs("span", { className: "inline-flex items-center gap-1 text-[10px] text-white/36", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin" }), "Setting up"] });
|
|
134
|
+
}
|
|
135
|
+
if (provider.status === 'ready') {
|
|
136
|
+
return _jsxs("span", { className: "inline-flex items-center gap-1 text-[10px] text-[#96e59d]/76", children: [_jsx(Check, { className: "h-3 w-3" }), "Enabled"] });
|
|
137
|
+
}
|
|
138
|
+
if (provider.status === 'update_required' || provider.status === 'needs_attention') {
|
|
139
|
+
return (_jsxs("span", { tabIndex: 0, "aria-label": `Attention: ${provider.statusMessage}`, className: "group relative inline-flex cursor-help items-center gap-1 text-[10px] text-[#ffd38a]/72 outline-none", children: [_jsx(AlertTriangle, { className: "h-3 w-3" }), "Attention", _jsx("span", { role: "tooltip", className: "pointer-events-none absolute right-0 top-full z-30 mt-1.5 w-max max-w-[320px] rounded-[5px] border border-white/[0.1] bg-[#252529] px-2.5 py-2 text-left text-[10px] font-normal leading-relaxed text-white/72 opacity-0 shadow-xl shadow-black/40 transition-opacity group-hover:opacity-100 group-focus-visible:opacity-100", children: provider.statusMessage })] }));
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
function CatalogMenuButton({ children, onClick, disabled = false }) {
|
|
144
|
+
return (_jsx("button", { type: "button", onClick: onClick, disabled: disabled, className: "block h-8 w-full rounded-[4px] px-2.5 text-left text-[10px] text-white/58 hover:bg-white/[0.07] disabled:text-white/20", children: children }));
|
|
145
|
+
}
|
|
146
|
+
function CatalogSkeleton() {
|
|
147
|
+
return (_jsx("div", { className: "space-y-1 rounded-[6px] border border-white/[0.06] p-2", children: [0, 1, 2, 3, 4, 5].map((index) => _jsx("div", { className: "h-[60px] animate-pulse rounded-[5px] bg-white/[0.035]" }, index)) }));
|
|
148
|
+
}
|
|
149
|
+
function isLikelyFixtureAgent(agent) {
|
|
150
|
+
return agent.id.includes('fixture') || agent.name.toLowerCase().includes('fixture');
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=AcpAgentManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpAgentManager.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentManager.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AcpAgentTestResult } from '../../../stores/acpAgentStore';
|
|
3
|
+
interface AcpAgentTestResultPanelProps {
|
|
4
|
+
result: AcpAgentTestResult | null;
|
|
5
|
+
testing: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function AcpAgentTestResultPanel({ result, testing }: AcpAgentTestResultPanelProps): React.JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=AcpAgentTestResultPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpAgentTestResultPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentTestResultPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAEvE,UAAU,4BAA4B;IACpC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACjC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,4BAA4B,qBA0CxF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export function AcpAgentTestResultPanel({ result, testing }) {
|
|
4
|
+
return (_jsxs("section", { className: "rounded border border-white/[0.06] bg-black/20", children: [_jsxs("div", { className: "border-b border-white/[0.05] px-3 py-2", children: [_jsx("p", { className: "text-[10px] uppercase tracking-[0.14em] text-white/28", children: "Test fixture agent" }), _jsx("p", { className: "mt-0.5 text-[10px] text-white/25", children: "Fixture ACP configs are test-only. External ACP agents require AGENT-009E certified by harness metadata before registry-backed tests." })] }), _jsx("div", { className: "p-3", children: testing ? (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "h-2 w-2 animate-pulse rounded-[2px] bg-[#ffd38a]" }), _jsx("p", { className: "text-[11px] text-white/34", children: "Running registry-backed ACP protocol check..." })] })) : !result ? (_jsx("p", { className: "text-[11px] leading-relaxed text-white/30", children: "Run a fixture or certified external test to verify initialize, session/new, session/prompt, updates, and shutdown." })) : (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: `rounded border px-3 py-2 ${result.success ? 'border-[#96e59d]/20 bg-[#0f1a11]' : 'border-[#4b1f24] bg-[#1a0f12]'}`, children: [_jsx("p", { className: `text-[10px] uppercase tracking-[0.14em] ${result.success ? 'text-[#96e59d]/80' : 'text-[#ffb0b0]'}`, children: result.success ? 'ACP protocol pass' : 'ACP test blocked or failed' }), _jsx("p", { className: "mt-1 text-[11px] leading-relaxed text-white/45", children: result.error || `Stop reason: ${result.stopReason || 'unknown'}` })] }), _jsxs("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-2", children: [_jsx(Metric, { label: "Protocol", value: String(result.protocolVersion || 'n/a') }), _jsx(Metric, { label: "Updates", value: String(result.updateCount) }), _jsx(Metric, { label: "Stop", value: result.stopReason || 'n/a' }), _jsx(Metric, { label: "Agent", value: result.agentInfo?.title || result.agentInfo?.name || 'n/a' })] }), _jsx("pre", { className: "max-h-[170px] overflow-auto rounded border border-white/[0.05] bg-black/25 p-2.5 text-[10px] leading-relaxed text-white/34", children: JSON.stringify(redactDiagnosticPreview(result.diagnostics), null, 2) })] })) })] }));
|
|
5
|
+
}
|
|
6
|
+
function Metric({ label, value }) {
|
|
7
|
+
return (_jsxs("div", { className: "rounded border border-white/[0.045] bg-white/[0.025] px-2.5 py-2", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.14em] text-white/20", children: label }), _jsx("p", { className: "mt-1 truncate font-mono text-[11px] text-white/54", children: value })] }));
|
|
8
|
+
}
|
|
9
|
+
function redactDiagnosticPreview(value) {
|
|
10
|
+
return {
|
|
11
|
+
agentConfigId: value.agentConfigId,
|
|
12
|
+
command: value.command,
|
|
13
|
+
args: value.args,
|
|
14
|
+
cwd: value.cwd,
|
|
15
|
+
envKeys: value.envKeys,
|
|
16
|
+
status: value.status,
|
|
17
|
+
activeSessionCount: value.activeSessionCount,
|
|
18
|
+
pendingRequestCount: value.pendingRequestCount,
|
|
19
|
+
malformedMessageCount: value.malformedMessageCount,
|
|
20
|
+
unsupportedMethodCount: value.unsupportedMethodCount,
|
|
21
|
+
lastStopReason: value.lastStopReason,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=AcpAgentTestResultPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpAgentTestResultPanel.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpAgentTestResultPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AcpAgentView, AcpProviderApprovalResultView } from '../../../stores/acpAgentStore';
|
|
2
|
+
interface AcpApprovalPanelProps {
|
|
3
|
+
agent: AcpAgentView | null;
|
|
4
|
+
result: AcpProviderApprovalResultView | null;
|
|
5
|
+
approving: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the surface can actually perform approval.
|
|
8
|
+
*
|
|
9
|
+
* 🔴 Required, not optional-with-a-true-default. No bridge implements
|
|
10
|
+
* `approveProvider` today — both return `unsupported` — so the buttons were
|
|
11
|
+
* enabled and every click failed. The repo rule is explicit: *"No unfinished
|
|
12
|
+
* buttons — if an action is not wired, disable it or mark it a scaffold."*
|
|
13
|
+
*
|
|
14
|
+
* A defaulted `true` would let a new surface forget to pass it and silently
|
|
15
|
+
* re-create the dead end, which is exactly how this survived. Making it
|
|
16
|
+
* required means a caller has to state what its bridge can do.
|
|
17
|
+
*
|
|
18
|
+
* See `orchestrator/briefs/2026-08-13-acp-provider-approval-dead-end.md`: the
|
|
19
|
+
* HOST implements this (`AcpProviderApprovalService` shells out to
|
|
20
|
+
* `xeno-acp providers approve`); the missing link is a host method for the
|
|
21
|
+
* bridge to call.
|
|
22
|
+
*/
|
|
23
|
+
supported: boolean;
|
|
24
|
+
onApprove: (agentId: string, providerId?: string) => void;
|
|
25
|
+
onRevoke: (agentId: string, providerId?: string) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare function AcpApprovalPanel({ agent, result, approving, supported, onApprove, onRevoke }: AcpApprovalPanelProps): import("react").JSX.Element;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=AcpApprovalPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpApprovalPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpApprovalPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAA;AAEhG,UAAU,qBAAqB;IAC7B,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,6BAA6B,GAAG,IAAI,CAAA;IAC5C,SAAS,EAAE,OAAO,CAAA;IAClB;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACzD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACzD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,qBAAqB,+BAyDnH"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { BadgeCheck, ShieldAlert } from 'lucide-react';
|
|
3
|
+
export function AcpApprovalPanel({ agent, result, approving, supported, onApprove, onRevoke }) {
|
|
4
|
+
const fixture = !!agent && isLikelyFixtureAgent(agent);
|
|
5
|
+
const nativeAcp = agent?.endpointKind === 'native-acp';
|
|
6
|
+
const providerId = agent?.providerReview?.providerId;
|
|
7
|
+
const approvalState = agent?.providerReview?.approvalState;
|
|
8
|
+
const approved = fixture || nativeAcp || approvalState === 'approved' || approvalState === 'not_required';
|
|
9
|
+
const canApprove = supported && !!agent && agent.enabled && !fixture && !nativeAcp && !approving && !approved;
|
|
10
|
+
const canRevoke = supported && !!agent && agent.enabled && !fixture && !nativeAcp && !approving && approvalState === 'approved';
|
|
11
|
+
return (_jsxs("section", { className: `rounded border p-3 ${approved ? 'border-[#27442b] bg-[#111a12]' : 'border-[#27272a] bg-[#18181b]'}`, children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.16em] text-white/28", children: "Approval UX" }), _jsxs("div", { className: "mt-1 flex items-center justify-between gap-2", children: [_jsx("h3", { className: "truncate text-[14px] font-semibold text-white/82", children: "Hash-pinned provider approval" }), approved && _jsx(BadgeCheck, { className: "h-4 w-4 shrink-0 text-[#96e59d]/72" })] }), _jsx("p", { className: "mt-2 text-[10px] leading-relaxed text-white/30", children: supported
|
|
12
|
+
? approvalMessage(agent, result, fixture, nativeAcp)
|
|
13
|
+
: 'Approval is not wired on this surface yet. Approve this provider with the xeno-acp CLI: providers approve --provider <id>.' }), _jsxs("div", { className: "mt-3 grid grid-cols-1 gap-1.5 sm:grid-cols-2", children: [_jsxs("button", { type: "button", disabled: !canApprove, onClick: () => agent && onApprove(agent.id, providerId), className: "inline-flex h-8 items-center justify-center gap-2 rounded bg-white/[0.08] px-3 text-[10px] uppercase tracking-[0.12em] text-white/66 disabled:opacity-35", children: [_jsx(BadgeCheck, { className: "h-3.5 w-3.5" }), approved ? 'Approved' : approving ? 'Approving provider policy' : 'Approve provider policy'] }), _jsxs("button", { type: "button", disabled: !canRevoke, onClick: () => agent && onRevoke(agent.id, providerId), className: "inline-flex h-8 items-center justify-center gap-2 rounded border border-white/[0.06] px-3 text-[10px] uppercase tracking-[0.12em] text-white/44 disabled:opacity-35", children: [_jsx(ShieldAlert, { className: "h-3.5 w-3.5" }), "Revoke provider policy"] })] }), !agent && _jsx("p", { className: "mt-2 text-[10px] text-white/28", children: "Select an ACP agent before approval." }), agent && !agent.enabled && _jsx("p", { className: "mt-2 text-[10px] text-[#ffd38a]/62", children: "This config is disabled. Enable it before approval." }), fixture && _jsx("p", { className: "mt-2 text-[10px] text-white/28", children: "Fixture ACP agents do not require provider approval." }), nativeAcp && _jsx("p", { className: "mt-2 text-[10px] text-white/28", children: "Native ACP agents use provider-owned local authentication and do not use the xeno-acp adapter approval store." }), result && (_jsxs("p", { className: "mt-2 break-words rounded border border-white/[0.045] bg-black/20 px-2.5 py-2 text-[10px] leading-relaxed text-white/58", children: [result.status, ": provider ", _jsx("span", { className: "font-mono", children: result.providerId || providerId || 'unknown' }), ", command basename ", _jsx("span", { className: "font-mono", children: result.commandBasename }), ", args count ", result.argsCount, ", stdout/stderr ", result.stdoutTail.length, " / ", result.stderrTail.length, " redacted tail lines"] }))] }));
|
|
14
|
+
}
|
|
15
|
+
function approvalMessage(agent, result, fixture, nativeAcp) {
|
|
16
|
+
if (!agent)
|
|
17
|
+
return 'Approval runs only for a selected xeno-acp provider endpoint.';
|
|
18
|
+
if (fixture)
|
|
19
|
+
return 'Fixture endpoint is already fixture-only and needs no provider approval.';
|
|
20
|
+
if (nativeAcp)
|
|
21
|
+
return 'Provider-policy approval is not applicable. Complete the CLI\'s own local login, then run Hub certification.';
|
|
22
|
+
if (agent.providerReview?.approvalState === 'approved')
|
|
23
|
+
return 'Approved locally. This provider policy is current.';
|
|
24
|
+
if (agent.providerReview?.approvalState === 'not_required')
|
|
25
|
+
return 'Provider policy does not require approval.';
|
|
26
|
+
if (result?.status === 'approved')
|
|
27
|
+
return 'Approved locally. This provider can now be certified and used through ACP.';
|
|
28
|
+
if (result?.status === 'revoked')
|
|
29
|
+
return 'Approval revoked. This provider will stay blocked until approved again.';
|
|
30
|
+
if (result?.status === 'failed')
|
|
31
|
+
return result.error || 'failed: provider approval did not complete.';
|
|
32
|
+
return 'Runs providers approve/revoke --yes with the selected endpoint policy and approval store paths; output is redacted.';
|
|
33
|
+
}
|
|
34
|
+
function isLikelyFixtureAgent(agent) {
|
|
35
|
+
return agent.id.includes('fixture') || agent.name.toLowerCase().includes('fixture');
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=AcpApprovalPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpApprovalPanel.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpApprovalPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AcpAgentView, AcpExternalCertificationResultView } from '../../../stores/acpAgentStore';
|
|
2
|
+
interface AcpCertificationPanelProps {
|
|
3
|
+
agent: AcpAgentView | null;
|
|
4
|
+
result: AcpExternalCertificationResultView | null;
|
|
5
|
+
certifying: boolean;
|
|
6
|
+
onCertify: (agentId: string) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function AcpCertificationPanel({ agent, result, certifying, onCertify }: AcpCertificationPanelProps): import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=AcpCertificationPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpCertificationPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpCertificationPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAA;AAErG,UAAU,0BAA0B;IAClC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,kCAAkC,GAAG,IAAI,CAAA;IACjD,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,0BAA0B,+BAuDzG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { BadgeCheck, ShieldAlert } from 'lucide-react';
|
|
3
|
+
export function AcpCertificationPanel({ agent, result, certifying, onCertify }) {
|
|
4
|
+
const certified = agent?.certification?.status === 'certified' || agent?.certification?.status === 'fixture_only';
|
|
5
|
+
const canCertify = !!agent && agent.enabled && !certifying && !certified;
|
|
6
|
+
return (_jsxs("section", { className: `rounded border ${certified ? 'border-[#27442b] bg-[#111a12]' : 'border-[#27272a] bg-[#18181b]'}`, children: [_jsxs("div", { className: "border-b border-[#27272a] px-3 py-2", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.16em] text-white/28", children: "Certification UI" }), _jsx("h3", { className: "mt-1 truncate text-[14px] font-semibold tracking-tight text-white/82", children: "Registry-backed certification harness" })] }), _jsx(BadgeCheck, { className: `mt-0.5 h-4 w-4 shrink-0 ${certified ? 'text-[#96e59d]/72' : 'text-white/28'}` })] }), _jsx("p", { className: "mt-2 text-[10px] leading-relaxed text-white/30", children: certificationMessage(agent, result) })] }), _jsxs("div", { className: "space-y-2 p-3", children: [_jsxs("button", { type: "button", disabled: !canCertify, onClick: () => agent && onCertify(agent.id), className: "inline-flex h-8 w-full items-center justify-center gap-2 rounded-[4px] bg-white/[0.08] px-3 text-[10px] uppercase tracking-[0.12em] text-white/66 transition-transform hover:bg-white/[0.12] active:translate-y-[1px] disabled:opacity-35", children: [_jsx(BadgeCheck, { className: "h-3.5 w-3.5" }), certified ? 'Certified' : certifying ? 'Certifying ACP agent' : 'Certify ACP agent'] }), !agent && (_jsx("p", { className: "text-[10px] leading-relaxed text-white/28", children: "Select an ACP agent before running certification." })), agent && !agent.enabled && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/62", children: "This config is disabled. Enable it before certification." })), result && (_jsxs("div", { className: "space-y-1.5", children: [_jsx(CertificationStatus, { status: result.status }), (result.error || result.certification?.notes) && (_jsx("div", { className: "rounded border border-[#5f4a22]/60 bg-[#171309] px-2.5 py-2 text-[10px] leading-relaxed text-[#ffd38a]/76", children: result.error || result.certification?.notes })), _jsx(CertificationFact, { label: "certification", value: result.certification?.status || 'not_certified' }), _jsx(CertificationFact, { label: "command basename", value: result.commandBasename, mono: true }), _jsx(CertificationFact, { label: "args count", value: String(result.argsCount) }), _jsx(CertificationFact, { label: "env keys only", value: envKeyLabel(result.envKeys), mono: true }), _jsx(CertificationFact, { label: "updates", value: `${result.updateCount} / ${result.stopReason || 'none'}` })] }))] })] }));
|
|
7
|
+
}
|
|
8
|
+
function CertificationStatus({ status }) {
|
|
9
|
+
const ok = status === 'PASSED' || status === 'FALLBACK_FIXTURE_ONLY';
|
|
10
|
+
return (_jsx("div", { className: `rounded border px-2.5 py-2 ${ok ? 'border-[#27442b] bg-[#111a12]' : 'border-[#5f4a22]/60 bg-[#171309]'}`, children: _jsxs("div", { className: `flex items-center gap-2 ${ok ? 'text-[#96e59d]/72' : 'text-[#ffd38a]/76'}`, children: [ok ? _jsx(BadgeCheck, { className: "h-3.5 w-3.5 shrink-0" }) : _jsx(ShieldAlert, { className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "break-words font-mono text-[10px] uppercase tracking-[0.1em]", children: status })] }) }));
|
|
11
|
+
}
|
|
12
|
+
function CertificationFact({ label, value, mono = false }) {
|
|
13
|
+
return (_jsxs("div", { className: "min-w-0 rounded border border-white/[0.045] bg-black/20 px-2.5 py-2", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.14em] text-white/24", children: label }), _jsx("p", { className: `mt-1 break-words text-[10px] leading-relaxed text-white/58 ${mono ? 'font-mono' : ''}`, children: value })] }));
|
|
14
|
+
}
|
|
15
|
+
function certificationMessage(agent, result) {
|
|
16
|
+
if (!agent)
|
|
17
|
+
return 'Certification runs only for a selected ACP registry entry.';
|
|
18
|
+
if (agent.certification?.status === 'certified')
|
|
19
|
+
return 'Certified by the ACP protocol harness.';
|
|
20
|
+
if (agent.certification?.status === 'fixture_only')
|
|
21
|
+
return 'Fixture-only endpoint already passed harness simulation.';
|
|
22
|
+
if (result?.status === 'PASSED')
|
|
23
|
+
return 'PASSED: real external ACP config certified by harness metadata.';
|
|
24
|
+
if (result?.status === 'FALLBACK_FIXTURE_ONLY')
|
|
25
|
+
return 'FALLBACK_FIXTURE_ONLY: fixture simulation certified the harness only.';
|
|
26
|
+
if (result?.status === 'AUTHENTICATION_REQUIRED')
|
|
27
|
+
return 'AUTHENTICATION_REQUIRED: complete the CLI provider\'s local login, then retry.';
|
|
28
|
+
if (result?.status === 'BLOCKED_BY_ENVIRONMENT')
|
|
29
|
+
return 'BLOCKED_BY_ENVIRONMENT: command missing or unavailable in this environment.';
|
|
30
|
+
if (result?.status === 'FAILED_WITH_BUG')
|
|
31
|
+
return result.error || result.certification?.notes || 'Automatic setup could not complete. Review the provider message below.';
|
|
32
|
+
return 'Verifies the selected provider through the registry-backed certification harness.';
|
|
33
|
+
}
|
|
34
|
+
function envKeyLabel(keys) {
|
|
35
|
+
if (!keys.length)
|
|
36
|
+
return 'none';
|
|
37
|
+
if (keys.length <= 3)
|
|
38
|
+
return keys.join(', ');
|
|
39
|
+
return `${keys.slice(0, 3).join(', ')} +${keys.length - 3}`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=AcpCertificationPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpCertificationPanel.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpCertificationPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AcpAgentView } from '../../../stores/acpAgentStore';
|
|
3
|
+
interface AcpLiveProviderWorkflowPanelProps {
|
|
4
|
+
agent: AcpAgentView | null;
|
|
5
|
+
testing: boolean;
|
|
6
|
+
canTest: boolean;
|
|
7
|
+
onRun: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function AcpLiveProviderWorkflowPanel({ agent, testing, canTest, onRun }: AcpLiveProviderWorkflowPanelProps): React.JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=AcpLiveProviderWorkflowPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpLiveProviderWorkflowPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpLiveProviderWorkflowPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEjE,UAAU,iCAAiC;IACzC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,wBAAgB,4BAA4B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,iCAAiC,qBA0DjH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { FlaskConical, PlayCircle } from 'lucide-react';
|
|
4
|
+
export function AcpLiveProviderWorkflowPanel({ agent, testing, canTest, onRun }) {
|
|
5
|
+
const steps = buildWorkflowSteps(agent);
|
|
6
|
+
return (_jsxs("section", { className: "rounded border border-[#27272a] bg-[#18181b]", children: [_jsxs("div", { className: "border-b border-[#27272a] px-3 py-2", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.16em] text-white/28", children: "Live provider workflow UX" }), _jsx("p", { className: "mt-1 text-[10px] leading-relaxed text-white/28", children: "Final provider smoke through the registry-backed backend path. No direct renderer launch." })] }), _jsxs("div", { className: "space-y-2 p-3", children: [_jsx("div", { className: "grid grid-cols-2 gap-2", children: steps.map((step) => (_jsxs("div", { className: "rounded border border-white/[0.045] bg-black/20 px-2.5 py-2", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.12em] text-white/22", children: step.label }), _jsx("p", { className: `mt-1 text-[11px] ${step.ready ? 'text-[#96e59d]/72' : 'text-[#ffd38a]/72'}`, children: step.value })] }, step.label))) }), _jsxs("button", { type: "button", disabled: !canTest || testing, onClick: onRun, className: "inline-flex h-8 w-full items-center justify-center gap-2 rounded-[4px] bg-white/[0.08] px-3 text-[10px] uppercase tracking-[0.12em] text-white/66 transition-transform hover:bg-white/[0.12] active:translate-y-[1px] disabled:opacity-35", children: [testing ? _jsx(FlaskConical, { className: "h-3.5 w-3.5" }) : _jsx(PlayCircle, { className: "h-3.5 w-3.5" }), testing ? 'Running gated provider smoke' : 'Run gated provider smoke'] }), !agent && (_jsx("p", { className: "text-[10px] leading-relaxed text-white/30", children: "Select an ACP agent to inspect the gated live provider workflow." })), agent && !agent.enabled && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/62", children: "This config is disabled. Enable it before running the registry-backed smoke path." })), agent && !isLikelyFixtureAgent(agent) && agent.certification?.status !== 'certified' && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/62", children: "External ACP agent: Not certified. Certification harness must mark this config before gated provider smoke runs are allowed." })), agent?.providerReview && !agent.providerReview.runnable && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/62", children: "Provider review is not runnable yet. Resolve approval state and missing required refs before live workflow use." })), agent && agent.certification?.status === 'certified' && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#96e59d]/62", children: "External ACP agent: certified by harness. The workflow still uses the typed registry-backed backend path." })), agent && agent.certification?.status === 'blocked_by_environment' && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/62", children: "Certification blocked by environment. Check certification evidence before retrying the workflow." })), agent && agent.certification?.status === 'authentication_required' && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffd38a]/62", children: "Provider login required. Complete this CLI's own local login, then retry automatic certification." })), agent && agent.certification?.status === 'failed' && (_jsx("p", { className: "text-[10px] leading-relaxed text-[#ffb0b0]/62", children: "Certification failed with bug. Do not launch this external ACP config." }))] })] }));
|
|
7
|
+
}
|
|
8
|
+
function buildWorkflowSteps(agent) {
|
|
9
|
+
const fixture = agent ? isLikelyFixtureAgent(agent) : false;
|
|
10
|
+
const nativeAcp = agent?.endpointKind === 'native-acp';
|
|
11
|
+
const certified = fixture || agent?.certification?.status === 'certified';
|
|
12
|
+
const versionReady = !agent?.providerVersionReadiness
|
|
13
|
+
|| agent.providerVersionReadiness.ok
|
|
14
|
+
|| agent.providerVersionReadiness.status === 'not_applicable';
|
|
15
|
+
const providerRunnable = agent?.providerReview ? agent.providerReview.runnable : fixture || Boolean(nativeAcp && certified && versionReady);
|
|
16
|
+
const approvalReady = nativeAcp || !agent?.providerReview
|
|
17
|
+
|| agent.providerReview.approvalState === 'approved'
|
|
18
|
+
|| agent.providerReview.approvalState === 'not_required';
|
|
19
|
+
const secretsReady = !agent?.providerReview?.secretBinding || agent.providerReview.secretBinding.complete;
|
|
20
|
+
return [
|
|
21
|
+
{ label: 'Config', value: agent?.enabled ? 'enabled' : 'blocked', ready: agent?.enabled === true },
|
|
22
|
+
{ label: 'Certification', value: certified ? (fixture ? 'fixture only' : 'certified') : 'required', ready: certified },
|
|
23
|
+
{ label: 'Approval', value: approvalReady ? 'ready' : agent?.providerReview?.approvalState || 'unknown', ready: approvalReady },
|
|
24
|
+
{ label: 'Provider review', value: nativeAcp ? 'native ACP' : providerRunnable ? 'runnable' : 'blocked', ready: nativeAcp ? versionReady : providerRunnable },
|
|
25
|
+
{ label: 'Secret refs', value: secretsReady ? 'complete' : 'missing required refs', ready: secretsReady },
|
|
26
|
+
{ label: 'Launch path', value: 'registry-backed', ready: true },
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
function isLikelyFixtureAgent(agent) {
|
|
30
|
+
return agent.id.includes('fixture') || agent.name.toLowerCase().includes('fixture');
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=AcpLiveProviderWorkflowPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpLiveProviderWorkflowPanel.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpLiveProviderWorkflowPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AcpAgentView } from '../../../stores/acpAgentStore';
|
|
2
|
+
interface AcpProviderManagerPanelProps {
|
|
3
|
+
agent: AcpAgentView | null;
|
|
4
|
+
}
|
|
5
|
+
export declare function AcpProviderManagerPanel({ agent }: AcpProviderManagerPanelProps): import("react").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=AcpProviderManagerPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpProviderManagerPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpProviderManagerPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,+BAA+B,CAAA;AAE3F,UAAU,4BAA4B;IACpC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CAC3B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,4BAA4B,+BAsD9E"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { KeyRound, ShieldCheck } from 'lucide-react';
|
|
3
|
+
export function AcpProviderManagerPanel({ agent }) {
|
|
4
|
+
const review = agent?.providerReview;
|
|
5
|
+
const nativeAcp = agent?.endpointKind === 'native-acp';
|
|
6
|
+
const providerName = review?.displayName || agent?.name || 'No provider selected';
|
|
7
|
+
const providerId = review?.providerId || agent?.id || 'none';
|
|
8
|
+
const envKeys = review?.runtimeEnvKeys.length ? review.runtimeEnvKeys : (agent?.envKeys || []);
|
|
9
|
+
const secretBinding = nativeAcp ? 'provider-owned local auth' : secretBindingLabel(review);
|
|
10
|
+
const network = review?.enforcementClassification?.network || 'network: not_enforced';
|
|
11
|
+
const filesystem = review?.enforcementClassification?.filesystem || 'filesystem: not_enforced_against_hostile_process';
|
|
12
|
+
return (_jsxs("section", { className: "rounded border border-[#27272a] bg-[#18181b]", children: [_jsxs("div", { className: "border-b border-[#27272a] px-3 py-2", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.16em] text-white/28", children: "Provider manager" }), _jsx("h3", { className: "mt-1 truncate text-[14px] font-semibold tracking-tight text-white/82", children: providerName })] }), _jsx(ShieldCheck, { className: "mt-0.5 h-4 w-4 shrink-0 text-white/28" })] }), _jsx("p", { className: "mt-2 text-[10px] leading-relaxed text-white/30", children: providerManagerMessage(agent, review) })] }), _jsxs("div", { className: "space-y-2 p-3", children: [_jsxs("div", { className: "grid grid-cols-1 gap-1.5", children: [_jsx(ProviderFact, { label: "provider", value: providerId, mono: true }), _jsx(ProviderFact, { label: "approval", value: providerApprovalLabel(agent, review) }), _jsx(ProviderFact, { label: "secret refs", value: secretBinding }), _jsx(ProviderFact, { label: "runtime env", value: envKeyLabel(envKeys), mono: true })] }), _jsxs("div", { className: "grid grid-cols-1 gap-1.5", children: [_jsx(ProviderBoundary, { value: nativeAcp ? 'certification-gated native ACP' : 'approval-gated' }), _jsx(ProviderBoundary, { value: secretBinding.includes('metadata-only') ? secretBinding : 'secret refs: metadata-only' }), _jsx(ProviderBoundary, { value: network }), _jsx(ProviderBoundary, { value: filesystem })] }), review?.secretBinding?.missingRequiredRefs.length ? (_jsxs("div", { className: "rounded border border-[#5f4a22]/60 bg-[#171309] px-2.5 py-2", children: [_jsxs("div", { className: "flex items-center gap-2 text-[#ffd38a]/76", children: [_jsx(KeyRound, { className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "text-[10px] uppercase tracking-[0.12em]", children: "missing required refs" })] }), _jsx("p", { className: "mt-1 break-words font-mono text-[10px] leading-relaxed text-[#ffd38a]/58", children: listLabel(review.secretBinding.missingRequiredRefs) })] })) : null] })] }));
|
|
13
|
+
}
|
|
14
|
+
function ProviderFact({ label, value, mono = false }) {
|
|
15
|
+
return (_jsxs("div", { className: "min-w-0 rounded border border-white/[0.045] bg-black/20 px-2.5 py-2", children: [_jsx("p", { className: "text-[9px] uppercase tracking-[0.14em] text-white/24", children: label }), _jsx("p", { className: `mt-1 break-words text-[10px] leading-relaxed text-white/58 ${mono ? 'font-mono' : ''}`, children: value })] }));
|
|
16
|
+
}
|
|
17
|
+
function ProviderBoundary({ value }) {
|
|
18
|
+
return (_jsx("span", { className: "min-w-0 rounded-[3px] border border-white/[0.045] bg-white/[0.035] px-2 py-1 font-mono text-[9px] leading-4 text-white/32 break-words", children: value }));
|
|
19
|
+
}
|
|
20
|
+
function providerManagerMessage(agent, review) {
|
|
21
|
+
if (!agent)
|
|
22
|
+
return 'Select an ACP endpoint to inspect xeno-acp provider review metadata.';
|
|
23
|
+
if (isLikelyFixtureAgent(agent))
|
|
24
|
+
return 'Fixture ACP endpoint: no real provider secrets, no production provider claim.';
|
|
25
|
+
if (agent.endpointKind === 'native-acp')
|
|
26
|
+
return 'Native ACP endpoint: Hub launches the provider CLI directly over stdio after version checks and certification. Authentication remains provider-owned.';
|
|
27
|
+
if (!review)
|
|
28
|
+
return 'No xeno-acp provider review JSON loaded for this endpoint. Approval, binding, certify, and run stay blocked.';
|
|
29
|
+
if (review.secretBinding && !review.secretBinding.complete)
|
|
30
|
+
return 'Provider review is incomplete because required secret refs are missing.';
|
|
31
|
+
if (review.runnable && review.approvalState === 'approved')
|
|
32
|
+
return 'Provider review is complete; certification and launch still use the registry-backed path.';
|
|
33
|
+
return 'Provider is approval-gated and not runnable until xeno-acp review marks it safe.';
|
|
34
|
+
}
|
|
35
|
+
function providerApprovalLabel(agent, review) {
|
|
36
|
+
if (!agent)
|
|
37
|
+
return 'none';
|
|
38
|
+
if (isLikelyFixtureAgent(agent))
|
|
39
|
+
return 'fixture only';
|
|
40
|
+
if (agent.endpointKind === 'native-acp')
|
|
41
|
+
return 'not applicable (native ACP)';
|
|
42
|
+
if (!review)
|
|
43
|
+
return 'review not loaded';
|
|
44
|
+
return review.approvalState || (review.runnable ? 'approved' : 'blocked');
|
|
45
|
+
}
|
|
46
|
+
function secretBindingLabel(review) {
|
|
47
|
+
if (!review)
|
|
48
|
+
return 'secret refs: review not loaded';
|
|
49
|
+
if (!review.requiredAuthRefs.length && !review.optionalAuthRefs.length)
|
|
50
|
+
return 'secret refs: none, metadata-only';
|
|
51
|
+
const policy = review.secretBinding?.valuePolicy || 'metadata-only';
|
|
52
|
+
if (!review.secretBinding)
|
|
53
|
+
return `secret refs: ${review.requiredAuthRefs.length} required, ${policy}`;
|
|
54
|
+
if (review.secretBinding.complete)
|
|
55
|
+
return `secret refs: complete (${review.secretBinding.bindingCount}), ${policy}`;
|
|
56
|
+
return `secret refs: missing ${review.secretBinding.missingRequiredRefs.length}, ${policy}`;
|
|
57
|
+
}
|
|
58
|
+
function envKeyLabel(keys) {
|
|
59
|
+
return keys.length ? listLabel(keys) : 'none';
|
|
60
|
+
}
|
|
61
|
+
function listLabel(items) {
|
|
62
|
+
if (items.length <= 3)
|
|
63
|
+
return items.join(', ');
|
|
64
|
+
return `${items.slice(0, 3).join(', ')} +${items.length - 3}`;
|
|
65
|
+
}
|
|
66
|
+
function isLikelyFixtureAgent(agent) {
|
|
67
|
+
return agent.id.includes('fixture') || agent.name.toLowerCase().includes('fixture');
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=AcpProviderManagerPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcpProviderManagerPanel.js","sourceRoot":"","sources":["../../../../src/components/agent/acp/AcpProviderManagerPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAOpD,MAAM,UAAU,uBAAuB,CAAC,EAAE,KAAK,EAAgC;IAC7E,MAAM,MAAM,GAAG,KAAK,EAAE,cAAc,CAAA;IACpC,MAAM,SAAS,GAAG,KAAK,EAAE,YAAY,KAAK,YAAY,CAAA;IACtD,MAAM,YAAY,GAAG,MAAM,EAAE,WAAW,IAAI,KAAK,EAAE,IAAI,IAAI,sBAAsB,CAAA;IACjF,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,KAAK,EAAE,EAAE,IAAI,MAAM,CAAA;IAC5D,MAAM,OAAO,GAAG,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;IAC9F,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC1F,MAAM,OAAO,GAAG,MAAM,EAAE,yBAAyB,EAAE,OAAO,IAAI,uBAAuB,CAAA;IACrF,MAAM,UAAU,GAAG,MAAM,EAAE,yBAAyB,EAAE,UAAU,IAAI,kDAAkD,CAAA;IAEtH,OAAO,CACL,mBAAS,SAAS,EAAC,8CAA8C,aAC/D,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAK,SAAS,EAAC,wCAAwC,aACrD,eAAK,SAAS,EAAC,SAAS,aACtB,YAAG,SAAS,EAAC,sDAAsD,iCAAqB,EACxF,aAAI,SAAS,EAAC,sEAAsE,YAAE,YAAY,GAAM,IACpG,EACN,KAAC,WAAW,IAAC,SAAS,EAAC,uCAAuC,GAAG,IAC7D,EACN,YAAG,SAAS,EAAC,gDAAgD,YAC1D,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,GACpC,IACA,EAEN,eAAK,SAAS,EAAC,eAAe,aAC5B,eAAK,SAAS,EAAC,0BAA0B,aACvC,KAAC,YAAY,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,SAAG,EACzD,KAAC,YAAY,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAI,EAC9E,KAAC,YAAY,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,aAAa,GAAI,EAC1D,KAAC,YAAY,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,SAAG,IAClE,EAEN,eAAK,SAAS,EAAC,0BAA0B,aACvC,KAAC,gBAAgB,IAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,gBAAgB,GAAI,EAC5F,KAAC,gBAAgB,IAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,4BAA4B,GAAI,EACnH,KAAC,gBAAgB,IAAC,KAAK,EAAE,OAAO,GAAI,EACpC,KAAC,gBAAgB,IAAC,KAAK,EAAE,UAAU,GAAI,IACnC,EAEL,MAAM,EAAE,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CACnD,eAAK,SAAS,EAAC,6DAA6D,aAC1E,eAAK,SAAS,EAAC,2CAA2C,aACxD,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAC7C,eAAM,SAAS,EAAC,yCAAyC,sCAA6B,IAClF,EACN,YAAG,SAAS,EAAC,0EAA0E,YACpF,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,GAClD,IACA,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,IACE,CACX,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,KAAK,EAAoD;IACpG,OAAO,CACL,eAAK,SAAS,EAAC,qEAAqE,aAClF,YAAG,SAAS,EAAC,sDAAsD,YAAE,KAAK,GAAK,EAC/E,YAAG,SAAS,EAAE,8DAA8D,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,YAClG,KAAK,GACJ,IACA,CACP,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,KAAK,EAAqB;IACpD,OAAO,CACL,eAAM,SAAS,EAAC,uIAAuI,YACpJ,KAAK,GACD,CACR,CAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA0B,EAAE,MAA4C;IACtG,IAAI,CAAC,KAAK;QAAE,OAAO,sEAAsE,CAAA;IACzF,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,+EAA+E,CAAA;IACvH,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,uJAAuJ,CAAA;IACvM,IAAI,CAAC,MAAM;QAAE,OAAO,8GAA8G,CAAA;IAClI,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ;QAAE,OAAO,yEAAyE,CAAA;IAC5I,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,UAAU;QAAE,OAAO,2FAA2F,CAAA;IAC9J,OAAO,kFAAkF,CAAA;AAC3F,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA0B,EAAE,MAA4C;IACrG,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAA;IACzB,IAAI,oBAAoB,CAAC,KAAK,CAAC;QAAE,OAAO,cAAc,CAAA;IACtD,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,6BAA6B,CAAA;IAC7E,IAAI,CAAC,MAAM;QAAE,OAAO,mBAAmB,CAAA;IACvC,OAAO,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;AAC3E,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA4C;IACtE,IAAI,CAAC,MAAM;QAAE,OAAO,gCAAgC,CAAA;IACpD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM;QAAE,OAAO,kCAAkC,CAAA;IACjH,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,WAAW,IAAI,eAAe,CAAA;IACnE,IAAI,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,gBAAgB,MAAM,CAAC,gBAAgB,CAAC,MAAM,cAAc,MAAM,EAAE,CAAA;IACtG,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ;QAAE,OAAO,0BAA0B,MAAM,CAAC,aAAa,CAAC,YAAY,MAAM,MAAM,EAAE,CAAA;IACnH,OAAO,wBAAwB,MAAM,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,KAAK,MAAM,EAAE,CAAA;AAC7F,CAAC;AAED,SAAS,WAAW,CAAC,IAAc;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAA;AAC/D,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAmB;IAC/C,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AACrF,CAAC"}
|