@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,8 @@
|
|
|
1
|
+
interface ToggleSwitchProps {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
onChange: (value: boolean) => void;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function ToggleSwitch({ enabled, onChange, disabled }: ToggleSwitchProps): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ToggleSwitch.d.ts.map
|
|
@@ -0,0 +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,+BAmBtF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { clsx } from 'clsx';
|
|
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') }) }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ToggleSwitch.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface UsageChartProps {
|
|
3
|
+
data: {
|
|
4
|
+
label: string;
|
|
5
|
+
value: number;
|
|
6
|
+
}[];
|
|
7
|
+
height?: number;
|
|
8
|
+
color?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function UsageChart({ data, height, color }: UsageChartProps): React.JSX.Element | null;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=UsageChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsageChart.d.ts","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/UsageChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,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,UAAU,CAAC,EAAE,IAAI,EAAE,MAAY,EAAE,KAAgC,EAAE,EAAE,eAAe,4BAyBnG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export function UsageChart({ data, height = 120, color = 'rgba(255,255,255,0.35)' }) {
|
|
4
|
+
if (data.length === 0)
|
|
5
|
+
return null;
|
|
6
|
+
const max = Math.max(...data.map(d => d.value), 1);
|
|
7
|
+
const barWidth = Math.max(20, Math.floor((100 / data.length) * 0.6));
|
|
8
|
+
const gap = Math.floor((100 / data.length) * 0.4);
|
|
9
|
+
return (_jsx("div", { className: "w-full", children: _jsx("svg", { width: "100%", height: height, viewBox: `0 0 ${data.length * (barWidth + gap)} ${height}`, preserveAspectRatio: "none", children: data.map((d, i) => {
|
|
10
|
+
const barH = (d.value / max) * (height - 24);
|
|
11
|
+
const x = i * (barWidth + gap);
|
|
12
|
+
const y = height - barH - 16;
|
|
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
|
+
}) }) }));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=UsageChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsageChart.js","sourceRoot":"","sources":["../../../../../src/components/agent/settings/shared/UsageChart.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,wBAAwB,EAAmB;IAClG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAA;IAEjD,OAAO,CACL,cAAK,SAAS,EAAC,QAAQ,YACrB,cAAK,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,MAAM,EAAE,EAAE,mBAAmB,EAAC,MAAM,YACrH,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;gBAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;gBAC9B,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,EAAE,CAAA;gBAC5B,OAAO,CACL,wBACE,eAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAI,EAC7G,eAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,uBAAuB,EAAC,QAAQ,EAAC,GAAG,EAAC,UAAU,EAAC,WAAW,YAC3H,CAAC,CAAC,KAAK,GACH,KAJD,CAAC,CAKL,CACL,CAAA;YACH,CAAC,CAAC,GACE,GACF,CACP,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ToolCardDisplay {
|
|
2
|
+
eyebrow: string;
|
|
3
|
+
title: string;
|
|
4
|
+
}
|
|
5
|
+
export type ToolInteractionState = 'running' | 'awaiting_user' | 'succeeded' | 'cancelled' | 'failed';
|
|
6
|
+
export interface ToolCardInteractionInput {
|
|
7
|
+
toolName: string;
|
|
8
|
+
params?: Record<string, unknown>;
|
|
9
|
+
status: 'running' | 'done';
|
|
10
|
+
outcome?: 'succeeded' | 'cancelled' | 'failed';
|
|
11
|
+
success?: boolean;
|
|
12
|
+
permissionRequest?: {
|
|
13
|
+
status: 'pending' | 'granted' | 'denied' | 'cancelled';
|
|
14
|
+
};
|
|
15
|
+
askUserRequest?: {
|
|
16
|
+
status: 'pending' | 'answered' | 'cancelled';
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare function isCommandToolCall(toolCall: Pick<ToolCardInteractionInput, 'toolName' | 'params'>): boolean;
|
|
20
|
+
export declare function commandPreviewText(value: string): string;
|
|
21
|
+
export declare function compactCommandPreview(value: string, maxCharacters?: number): string;
|
|
22
|
+
export declare function deriveToolInteractionState(toolCall: ToolCardInteractionInput): ToolInteractionState;
|
|
23
|
+
export declare function hideDuplicateToolTitle(display: ToolCardDisplay): ToolCardDisplay;
|
|
24
|
+
//# sourceMappingURL=toolCardDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolCardDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/agent/toolCardDisplay.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAA;AAErG,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE;QAClB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAA;KACvD,CAAA;IACD,cAAc,CAAC,EAAE;QACf,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;KAC7C,CAAA;CACF;AAYD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG,OAAO,CAG1G;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA6BxD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,SAAM,GAAG,MAAM,CAIhF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,oBAAoB,CAwBnG;AAUD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAMhF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const COMMAND_TOOL_NAMES = new Set([
|
|
2
|
+
'bash',
|
|
3
|
+
'run_command',
|
|
4
|
+
'runcommand',
|
|
5
|
+
'shell',
|
|
6
|
+
'shell_command',
|
|
7
|
+
'shellcommand',
|
|
8
|
+
'terminal',
|
|
9
|
+
]);
|
|
10
|
+
export function isCommandToolCall(toolCall) {
|
|
11
|
+
if (COMMAND_TOOL_NAMES.has((toolCall.toolName || '').trim().toLowerCase()))
|
|
12
|
+
return true;
|
|
13
|
+
return typeof toolCall.params?.command === 'string' && toolCall.params.command.trim().length > 0;
|
|
14
|
+
}
|
|
15
|
+
export function commandPreviewText(value) {
|
|
16
|
+
let command = value.trim();
|
|
17
|
+
const powershellWrapper = /^(?:"[^"\r\n]*(?:powershell|pwsh)\.exe"|(?:powershell|pwsh)(?:\.exe)?)\s+(?:(?:-NoProfile|-NonInteractive|-NoLogo)\s+)*(?:-Command\s+)?/i;
|
|
18
|
+
const wrapped = powershellWrapper.test(command);
|
|
19
|
+
if (wrapped) {
|
|
20
|
+
command = command.replace(powershellWrapper, '').trim();
|
|
21
|
+
// Codex reports its Windows process argv here, not the logical command. Decode only this
|
|
22
|
+
// known wrapper so historical ACP events remain readable without rewriting stored history.
|
|
23
|
+
if (command.startsWith("'") || command.startsWith('"')) {
|
|
24
|
+
const wrapperQuote = command[0];
|
|
25
|
+
command = command.slice(1);
|
|
26
|
+
if (command.endsWith(wrapperQuote))
|
|
27
|
+
command = command.slice(0, -1);
|
|
28
|
+
}
|
|
29
|
+
command = command
|
|
30
|
+
.replace(/'"'"'/g, "'")
|
|
31
|
+
.replace(/'"'/g, "'")
|
|
32
|
+
.replace(/\\""'/g, '"')
|
|
33
|
+
.replace(/\\"/g, '"')
|
|
34
|
+
.replace(/"'(?=[!$`"])/g, '')
|
|
35
|
+
.replace(/\\\\/g, '\\');
|
|
36
|
+
}
|
|
37
|
+
command = command.trim().replace(/\s+/g, ' ');
|
|
38
|
+
const cmd = command.match(/^"[^"]*cmd\.exe"\s+\/d\s+\/c\s+(.+)$/i);
|
|
39
|
+
if (cmd?.[1])
|
|
40
|
+
command = cmd[1].trim();
|
|
41
|
+
return command;
|
|
42
|
+
}
|
|
43
|
+
export function compactCommandPreview(value, maxCharacters = 140) {
|
|
44
|
+
const command = commandPreviewText(value);
|
|
45
|
+
if (command.length <= maxCharacters)
|
|
46
|
+
return command;
|
|
47
|
+
return `${command.slice(0, Math.max(1, maxCharacters - 1)).trimEnd()}…`;
|
|
48
|
+
}
|
|
49
|
+
export function deriveToolInteractionState(toolCall) {
|
|
50
|
+
if (toolCall.permissionRequest?.status === 'pending'
|
|
51
|
+
|| toolCall.askUserRequest?.status === 'pending') {
|
|
52
|
+
return 'awaiting_user';
|
|
53
|
+
}
|
|
54
|
+
if (toolCall.status === 'running')
|
|
55
|
+
return 'running';
|
|
56
|
+
if (toolCall.outcome === 'succeeded')
|
|
57
|
+
return 'succeeded';
|
|
58
|
+
if (toolCall.outcome === 'failed')
|
|
59
|
+
return 'failed';
|
|
60
|
+
if (toolCall.outcome === 'cancelled')
|
|
61
|
+
return 'cancelled';
|
|
62
|
+
if (toolCall.permissionRequest?.status === 'cancelled'
|
|
63
|
+
|| toolCall.askUserRequest?.status === 'cancelled') {
|
|
64
|
+
return 'cancelled';
|
|
65
|
+
}
|
|
66
|
+
if (toolCall.success === false
|
|
67
|
+
|| toolCall.permissionRequest?.status === 'denied') {
|
|
68
|
+
return 'failed';
|
|
69
|
+
}
|
|
70
|
+
return 'succeeded';
|
|
71
|
+
}
|
|
72
|
+
function normalizeToolCardLabel(value) {
|
|
73
|
+
return value
|
|
74
|
+
.trim()
|
|
75
|
+
.replace(/\(\s*\)\s*$/, '')
|
|
76
|
+
.replace(/\s+/g, ' ')
|
|
77
|
+
.toLowerCase();
|
|
78
|
+
}
|
|
79
|
+
export function hideDuplicateToolTitle(display) {
|
|
80
|
+
if (normalizeToolCardLabel(display.eyebrow) !== normalizeToolCardLabel(display.title)) {
|
|
81
|
+
return display;
|
|
82
|
+
}
|
|
83
|
+
return { ...display, title: '' };
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=toolCardDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolCardDisplay.js","sourceRoot":"","sources":["../../../src/components/agent/toolCardDisplay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type XenoAgentWindowAction = () => void | Promise<void>;
|
|
3
|
+
export interface XenoAgentProductHeaderProps {
|
|
4
|
+
title?: string;
|
|
5
|
+
centerContent?: ReactNode;
|
|
6
|
+
onMinimize?: XenoAgentWindowAction;
|
|
7
|
+
onMaximize?: XenoAgentWindowAction;
|
|
8
|
+
onClose?: XenoAgentWindowAction;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Standalone XENO Agent product chrome.
|
|
12
|
+
*
|
|
13
|
+
* The component intentionally receives native actions from its composition
|
|
14
|
+
* root. It never reaches into Electron or a host global, so embedded surfaces
|
|
15
|
+
* can reuse or omit it without inheriting native authority.
|
|
16
|
+
*/
|
|
17
|
+
export declare function XenoAgentProductHeader({ title, centerContent, onMinimize, onMaximize, onClose, }: XenoAgentProductHeaderProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=XenoAgentProductHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XenoAgentProductHeader.d.ts","sourceRoot":"","sources":["../../../src/components/product/XenoAgentProductHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,MAAM,MAAM,qBAAqB,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE9D,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,OAAO,CAAC,EAAE,qBAAqB,CAAA;CAChC;AAWD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAoB,EACpB,aAAa,EACb,UAAU,EACV,UAAU,EACV,OAAO,GACR,EAAE,2BAA2B,+BAyE7B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Minus, Square, X } from 'lucide-react';
|
|
3
|
+
import { XenoLogo } from '../ui/XenoLogo.js';
|
|
4
|
+
function invokeWindowAction(action) {
|
|
5
|
+
if (!action)
|
|
6
|
+
return;
|
|
7
|
+
try {
|
|
8
|
+
void Promise.resolve(action()).catch(() => { });
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
// Window chrome must remain usable even if the host is already shutting down.
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Standalone XENO Agent product chrome.
|
|
16
|
+
*
|
|
17
|
+
* The component intentionally receives native actions from its composition
|
|
18
|
+
* root. It never reaches into Electron or a host global, so embedded surfaces
|
|
19
|
+
* can reuse or omit it without inheriting native authority.
|
|
20
|
+
*/
|
|
21
|
+
export function XenoAgentProductHeader({ title = 'XENO Agent', centerContent, onMinimize, onMaximize, onClose, }) {
|
|
22
|
+
const showWindowControls = Boolean(onMinimize || onMaximize || onClose);
|
|
23
|
+
return (_jsxs("header", { className: "xeno-chrome-shell xeno-border-subtle relative z-50 flex h-10 flex-shrink-0 items-center justify-between border-b select-none", style: { WebkitAppRegion: 'drag' }, "data-xeno-product-header": "agent", "data-xeno-hub-header-style": "true", "data-xeno-agent-titlebar-drag-region": "true", children: [_jsx("div", { className: "pointer-events-none absolute inset-0 right-36" }), _jsxs("div", { className: "relative z-10 flex h-full min-w-0 flex-1 items-center", style: { WebkitAppRegion: 'drag' }, "data-xeno-agent-titlebar-drag-surface": "true", children: [_jsx("div", { className: "flex h-full w-[46px] flex-shrink-0 items-center justify-center", children: _jsx(XenoLogo, { className: "h-4 w-4", fill: "currentColor" }) }), _jsx("div", { className: "xeno-border-subtle h-4 w-px flex-shrink-0 border-r" }), _jsx("div", { className: "flex h-full min-w-0 flex-1 items-center", children: centerContent || (_jsx("span", { className: "xeno-text-primary mx-1 rounded bg-[var(--xeno-accent-soft)] px-3 py-1 text-[10px] font-medium tracking-wider", children: title })) })] }), showWindowControls && (_jsxs("div", { className: "relative z-10 ml-auto flex h-full items-stretch", style: { WebkitAppRegion: 'no-drag' }, "data-xeno-agent-window-controls": "true", children: [_jsx("button", { type: "button", onClick: () => invokeWindowAction(onMinimize), disabled: !onMinimize, className: "xeno-text-muted flex h-10 w-12 items-center justify-center transition-colors hover:bg-[var(--xeno-bg-subtle)] disabled:pointer-events-none disabled:opacity-30", "aria-label": "Minimize window", title: "Minimize", children: _jsx(Minus, { className: "h-4 w-4", strokeWidth: 2 }) }), _jsx("button", { type: "button", onClick: () => invokeWindowAction(onMaximize), disabled: !onMaximize, className: "xeno-text-muted flex h-10 w-12 items-center justify-center transition-colors hover:bg-[var(--xeno-bg-subtle)] disabled:pointer-events-none disabled:opacity-30", "aria-label": "Maximize window", title: "Maximize", children: _jsx(Square, { className: "h-3.5 w-3.5", strokeWidth: 2 }) }), _jsx("button", { type: "button", onClick: () => invokeWindowAction(onClose), disabled: !onClose, className: "group flex h-10 w-12 items-center justify-center transition-colors hover:bg-red-500/80 disabled:pointer-events-none disabled:opacity-30", "aria-label": "Close window", title: "Close", children: _jsx(X, { className: "xeno-text-muted h-4 w-4 group-hover:text-[var(--xeno-ink-primary)]", strokeWidth: 2 }) })] }))] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=XenoAgentProductHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XenoAgentProductHeader.js","sourceRoot":"","sources":["../../../src/components/product/XenoAgentProductHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAY5C,SAAS,kBAAkB,CAAC,MAAyC;IACnE,IAAI,CAAC,MAAM;QAAE,OAAM;IACnB,IAAI,CAAC;QACH,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,KAAK,GAAG,YAAY,EACpB,aAAa,EACb,UAAU,EACV,UAAU,EACV,OAAO,GACqB;IAC5B,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU,IAAI,OAAO,CAAC,CAAA;IAEvE,OAAO,CACL,kBACE,SAAS,EAAC,8HAA8H,EACxI,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAmB,8BAC1B,OAAO,gCACL,MAAM,0CACI,MAAM,aAE3C,cAAK,SAAS,EAAC,+CAA+C,GAAG,EAEjE,eACE,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAmB,2CACb,MAAM,aAE5C,cAAK,SAAS,EAAC,gEAAgE,YAC7E,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,cAAc,GAAG,GAChD,EAEN,cAAK,SAAS,EAAC,oDAAoD,GAAG,EAEtE,cAAK,SAAS,EAAC,yCAAyC,YACrD,aAAa,IAAI,CAChB,eAAM,SAAS,EAAC,8GAA8G,YAC3H,KAAK,GACD,CACR,GACG,IACF,EAEL,kBAAkB,IAAI,CACrB,eACE,SAAS,EAAC,iDAAiD,EAC3D,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,EAAmB,qCACtB,MAAM,aAEtC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAC7C,QAAQ,EAAE,CAAC,UAAU,EACrB,SAAS,EAAC,gKAAgK,gBAC/J,iBAAiB,EAC5B,KAAK,EAAC,UAAU,YAEhB,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,GAAI,GACtC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAC7C,QAAQ,EAAE,CAAC,UAAU,EACrB,SAAS,EAAC,gKAAgK,gBAC/J,iBAAiB,EAC5B,KAAK,EAAC,UAAU,YAEhB,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,CAAC,GAAI,GAC3C,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAC1C,QAAQ,EAAE,CAAC,OAAO,EAClB,SAAS,EAAC,yIAAyI,gBACxI,cAAc,EACzB,KAAK,EAAC,OAAO,YAEb,KAAC,CAAC,IAAC,SAAS,EAAC,oEAAoE,EAAC,WAAW,EAAE,CAAC,GAAI,GAC7F,IACL,CACP,IACM,CACV,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type XenoAgentSessionTabStatus = 'idle' | 'running' | 'queued' | 'blocked' | 'error' | 'unread';
|
|
2
|
+
export interface XenoAgentSessionTab {
|
|
3
|
+
conversationId: string;
|
|
4
|
+
title: string;
|
|
5
|
+
status: XenoAgentSessionTabStatus;
|
|
6
|
+
}
|
|
7
|
+
export interface XenoAgentSessionTabsProps {
|
|
8
|
+
tabs: XenoAgentSessionTab[];
|
|
9
|
+
activeConversationId: string | null;
|
|
10
|
+
placement?: 'titlebar' | 'embedded';
|
|
11
|
+
onActivate: (conversationId: string) => void;
|
|
12
|
+
onClose: (conversationId: string) => void;
|
|
13
|
+
onCloseMany?: (conversationIds: string[], fallbackConversationId: string) => void;
|
|
14
|
+
onCreate: () => void;
|
|
15
|
+
onReorder: (draggedConversationId: string, targetConversationId: string) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function XenoAgentSessionTabs({ tabs, activeConversationId, placement, onActivate, onClose, onCloseMany, onCreate, onReorder, }: XenoAgentSessionTabsProps): import("react").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=XenoAgentSessionTabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XenoAgentSessionTabs.d.ts","sourceRoot":"","sources":["../../../src/components/product/XenoAgentSessionTabs.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,yBAAyB,GACjC,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,CAAA;AAEZ,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,yBAAyB,CAAA;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,mBAAmB,EAAE,CAAA;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;IACnC,UAAU,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,WAAW,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,sBAAsB,EAAE,MAAM,KAAK,IAAI,CAAA;IACjF,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,qBAAqB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,KAAK,IAAI,CAAA;CACjF;AAoBD,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,oBAAoB,EACpB,SAAsB,EACtB,UAAU,EACV,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,yBAAyB,+BAwN3B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Plus, X } from 'lucide-react';
|
|
3
|
+
import { useEffect, useRef, useState, } from 'react';
|
|
4
|
+
import { resolveAgentSessionTabContextTargets } from '../../sessionTabs.js';
|
|
5
|
+
const STATUS_CLASSES = {
|
|
6
|
+
idle: 'bg-white/18',
|
|
7
|
+
running: 'bg-emerald-400 shadow-[0_0_8px_rgba(52,211,153,0.55)] animate-pulse',
|
|
8
|
+
queued: 'bg-amber-300',
|
|
9
|
+
blocked: 'bg-orange-400 shadow-[0_0_7px_rgba(251,146,60,0.45)]',
|
|
10
|
+
error: 'bg-red-400 shadow-[0_0_7px_rgba(248,113,113,0.45)]',
|
|
11
|
+
unread: 'bg-sky-400 shadow-[0_0_7px_rgba(56,189,248,0.45)]',
|
|
12
|
+
};
|
|
13
|
+
const STATUS_LABELS = {
|
|
14
|
+
idle: 'Idle',
|
|
15
|
+
running: 'Running',
|
|
16
|
+
queued: 'Queued',
|
|
17
|
+
blocked: 'Needs attention',
|
|
18
|
+
error: 'Failed',
|
|
19
|
+
unread: 'Unread activity',
|
|
20
|
+
};
|
|
21
|
+
export function XenoAgentSessionTabs({ tabs, activeConversationId, placement = 'embedded', onActivate, onClose, onCloseMany, onCreate, onReorder, }) {
|
|
22
|
+
const [draggedConversationId, setDraggedConversationId] = useState(null);
|
|
23
|
+
const [contextMenu, setContextMenu] = useState(null);
|
|
24
|
+
const contextMenuRef = useRef(null);
|
|
25
|
+
const titlebar = placement === 'titlebar';
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!contextMenu)
|
|
28
|
+
return;
|
|
29
|
+
const handlePointerDown = (event) => {
|
|
30
|
+
if (!contextMenuRef.current?.contains(event.target))
|
|
31
|
+
setContextMenu(null);
|
|
32
|
+
};
|
|
33
|
+
const handleKeyDown = (event) => {
|
|
34
|
+
if (event.key === 'Escape')
|
|
35
|
+
setContextMenu(null);
|
|
36
|
+
};
|
|
37
|
+
document.addEventListener('mousedown', handlePointerDown);
|
|
38
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
39
|
+
return () => {
|
|
40
|
+
document.removeEventListener('mousedown', handlePointerDown);
|
|
41
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
42
|
+
};
|
|
43
|
+
}, [contextMenu]);
|
|
44
|
+
const handleDrop = (event, targetConversationId) => {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
if (draggedConversationId && draggedConversationId !== targetConversationId) {
|
|
47
|
+
onReorder(draggedConversationId, targetConversationId);
|
|
48
|
+
}
|
|
49
|
+
setDraggedConversationId(null);
|
|
50
|
+
};
|
|
51
|
+
const handleContextMenu = (event, conversationId) => {
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
setContextMenu({
|
|
54
|
+
x: event.clientX,
|
|
55
|
+
y: event.clientY,
|
|
56
|
+
conversationId,
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const closeMany = (conversationIds, fallbackConversationId) => {
|
|
60
|
+
if (conversationIds.length === 0)
|
|
61
|
+
return;
|
|
62
|
+
if (onCloseMany)
|
|
63
|
+
onCloseMany(conversationIds, fallbackConversationId);
|
|
64
|
+
else
|
|
65
|
+
conversationIds.forEach((conversationId) => onClose(conversationId));
|
|
66
|
+
setContextMenu(null);
|
|
67
|
+
};
|
|
68
|
+
const contextMenuTargets = contextMenu
|
|
69
|
+
? resolveAgentSessionTabContextTargets(tabs.map((tab) => tab.conversationId), contextMenu.conversationId)
|
|
70
|
+
: {
|
|
71
|
+
otherConversationIds: [],
|
|
72
|
+
rightConversationIds: [],
|
|
73
|
+
};
|
|
74
|
+
return (_jsxs("div", { className: `xeno-agent-session-tabs flex h-full min-w-0 items-center ${titlebar ? 'w-fit max-w-[min(920px,72vw)]' : 'w-fit max-w-full'}`, role: "tablist", "aria-label": "Agent sessions", "data-xeno-agent-session-tabs": placement, "data-xeno-hub-tab-style": "true", style: titlebar ? { WebkitAppRegion: 'no-drag' } : undefined, children: [_jsx("div", { className: "xeno-agent-session-tabs-scroll flex min-w-0 flex-auto items-center gap-0.5 overflow-x-auto px-1", children: tabs.map((tab) => {
|
|
75
|
+
const active = tab.conversationId === activeConversationId;
|
|
76
|
+
const closeFadeColor = active
|
|
77
|
+
? 'var(--xeno-accent-soft)'
|
|
78
|
+
: 'var(--xeno-bg-subtle)';
|
|
79
|
+
return (_jsxs("div", { className: `group relative flex max-w-[210px] flex-shrink-0 items-center rounded outline-none ring-0 transition-all duration-100 ${active
|
|
80
|
+
? 'xeno-text-primary bg-[var(--xeno-accent-soft)]'
|
|
81
|
+
: 'xeno-text-muted hover:text-[var(--xeno-ink-secondary)] hover:bg-[var(--xeno-bg-subtle)]'} ${draggedConversationId === tab.conversationId ? 'opacity-45' : ''}`, draggable: true, onDragStart: (event) => {
|
|
82
|
+
setDraggedConversationId(tab.conversationId);
|
|
83
|
+
event.dataTransfer.effectAllowed = 'move';
|
|
84
|
+
event.dataTransfer.setData('text/plain', tab.conversationId);
|
|
85
|
+
}, onDragEnd: () => setDraggedConversationId(null), onDragOver: (event) => {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
event.dataTransfer.dropEffect = 'move';
|
|
88
|
+
}, onDrop: (event) => handleDrop(event, tab.conversationId), onContextMenu: (event) => handleContextMenu(event, tab.conversationId), "data-xeno-agent-session-tab": tab.conversationId, "data-session-status": tab.status, "data-active": active ? 'true' : 'false', children: [_jsxs("button", { type: "button", role: "tab", "aria-selected": active, "aria-controls": `xeno-agent-session-${tab.conversationId}`, className: "flex min-w-0 flex-1 items-center justify-center gap-2 rounded px-3 py-1 text-[10px] font-medium tracking-wider outline-none ring-0 focus:outline-none focus-visible:outline-none focus:ring-0 focus-visible:ring-0", onClick: () => onActivate(tab.conversationId), title: `${tab.title} · ${STATUS_LABELS[tab.status]}`, children: [tab.status !== 'idle' && (_jsx("span", { className: `h-1.5 w-1.5 flex-shrink-0 rounded-full ${STATUS_CLASSES[tab.status]}`, "aria-label": STATUS_LABELS[tab.status] })), _jsx("span", { className: "truncate", children: tab.title || 'New conversation' })] }), _jsx("span", { className: "xeno-agent-session-tab-close-fade pointer-events-none absolute inset-y-0 right-0 z-[1] w-10 rounded-r opacity-0 transition-opacity duration-100 group-hover:opacity-100 group-focus-within:opacity-100", "aria-hidden": "true", "data-xeno-agent-session-close-fade": "true", style: {
|
|
89
|
+
background: `linear-gradient(90deg, transparent 0%, ${closeFadeColor} 58%, ${closeFadeColor} 100%)`,
|
|
90
|
+
boxShadow: `inset -6px 0 8px -6px ${closeFadeColor}`,
|
|
91
|
+
} }), _jsx("button", { type: "button", className: "xeno-text-muted absolute right-0.5 top-1/2 z-[2] inline-flex h-5 w-5 -translate-y-1/2 flex-shrink-0 items-center justify-center rounded opacity-0 outline-none ring-0 transition-all hover:bg-[var(--xeno-bg-subtle)] hover:text-[var(--xeno-ink-secondary)] focus:outline-none focus-visible:opacity-100 focus-visible:outline-none focus:ring-0 focus-visible:ring-0 group-hover:opacity-100", onClick: (event) => {
|
|
92
|
+
event.stopPropagation();
|
|
93
|
+
onClose(tab.conversationId);
|
|
94
|
+
}, "aria-label": `Close ${tab.title || 'session'} tab`, title: "Close session tab (Ctrl+W)", children: _jsx(X, { size: 11 }) })] }, tab.conversationId));
|
|
95
|
+
}) }), _jsx("button", { type: "button", onClick: onCreate, className: "xeno-text-muted mr-1 flex h-6 w-6 flex-shrink-0 items-center justify-center rounded outline-none ring-0 transition-all hover:bg-[var(--xeno-bg-subtle)] hover:text-[var(--xeno-ink-secondary)] focus:outline-none focus-visible:outline-none focus:ring-0 focus-visible:ring-0", "aria-label": "New agent session", title: "New agent session (Ctrl+T)", "data-xeno-agent-session-new": "true", children: _jsx(Plus, { className: "h-3.5 w-3.5", strokeWidth: 2 }) }), contextMenu && (_jsxs("div", { ref: contextMenuRef, role: "menu", "aria-label": "Session tab actions", className: "xeno-panel-shell xeno-border-subtle fixed z-[220] w-[160px] rounded-md border py-0.5 shadow-xl", style: {
|
|
96
|
+
left: Math.max(4, Math.min(contextMenu.x, window.innerWidth - 168)),
|
|
97
|
+
top: Math.max(4, Math.min(contextMenu.y, window.innerHeight - 92)),
|
|
98
|
+
}, "data-xeno-agent-session-context-menu": "true", children: [_jsx("button", { type: "button", role: "menuitem", className: "w-full px-2 py-1 text-left text-[10px] text-red-400/80 transition-colors hover:bg-red-500/[0.08] hover:text-red-400", onClick: () => {
|
|
99
|
+
onClose(contextMenu.conversationId);
|
|
100
|
+
setContextMenu(null);
|
|
101
|
+
}, "data-xeno-agent-session-context-action": "close", children: "Close" }), _jsx("div", { className: "my-0.5 h-px bg-[var(--xeno-border-subtle)]" }), _jsx("button", { type: "button", role: "menuitem", disabled: contextMenuTargets.otherConversationIds.length === 0, className: "xeno-text-secondary w-full px-2 py-1 text-left text-[10px] transition-colors hover:bg-[var(--xeno-bg-subtle)] hover:text-[var(--xeno-ink-primary)] disabled:pointer-events-none disabled:opacity-35", onClick: () => closeMany(contextMenuTargets.otherConversationIds, contextMenu.conversationId), "data-xeno-agent-session-context-action": "close-others", children: "Close other tabs" }), _jsx("button", { type: "button", role: "menuitem", disabled: contextMenuTargets.rightConversationIds.length === 0, className: "xeno-text-secondary w-full px-2 py-1 text-left text-[10px] transition-colors hover:bg-[var(--xeno-bg-subtle)] hover:text-[var(--xeno-ink-primary)] disabled:pointer-events-none disabled:opacity-35", onClick: () => closeMany(contextMenuTargets.rightConversationIds, contextMenu.conversationId), "data-xeno-agent-session-context-action": "close-right", children: "Close tabs to the right" })] }))] }));
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=XenoAgentSessionTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XenoAgentSessionTabs.js","sourceRoot":"","sources":["../../../src/components/product/XenoAgentSessionTabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface CodeBlockProps {
|
|
2
|
+
inline?: boolean;
|
|
3
|
+
className?: string;
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export default function CodeBlock({ inline, className, children }: CodeBlockProps): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=CodeBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../../src/components/ui/CodeBlock.tsx"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAwDD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAmFhF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* CodeBlock — Enhanced code block for markdown rendering.
|
|
4
|
+
* Displays language label, copy button, and basic syntax highlighting via CSS classes.
|
|
5
|
+
* Used as a custom component override for ReactMarkdown's `code` element.
|
|
6
|
+
*/
|
|
7
|
+
import { useState, useCallback } from 'react';
|
|
8
|
+
import { Copy, Check } from 'lucide-react';
|
|
9
|
+
// Language display names
|
|
10
|
+
const LANG_LABELS = {
|
|
11
|
+
js: 'JavaScript',
|
|
12
|
+
jsx: 'JSX',
|
|
13
|
+
ts: 'TypeScript',
|
|
14
|
+
tsx: 'TSX',
|
|
15
|
+
py: 'Python',
|
|
16
|
+
python: 'Python',
|
|
17
|
+
rb: 'Ruby',
|
|
18
|
+
ruby: 'Ruby',
|
|
19
|
+
rs: 'Rust',
|
|
20
|
+
rust: 'Rust',
|
|
21
|
+
go: 'Go',
|
|
22
|
+
java: 'Java',
|
|
23
|
+
cpp: 'C++',
|
|
24
|
+
c: 'C',
|
|
25
|
+
cs: 'C#',
|
|
26
|
+
csharp: 'C#',
|
|
27
|
+
html: 'HTML',
|
|
28
|
+
css: 'CSS',
|
|
29
|
+
scss: 'SCSS',
|
|
30
|
+
json: 'JSON',
|
|
31
|
+
yaml: 'YAML',
|
|
32
|
+
yml: 'YAML',
|
|
33
|
+
xml: 'XML',
|
|
34
|
+
sql: 'SQL',
|
|
35
|
+
sh: 'Shell',
|
|
36
|
+
bash: 'Bash',
|
|
37
|
+
zsh: 'Zsh',
|
|
38
|
+
powershell: 'PowerShell',
|
|
39
|
+
ps1: 'PowerShell',
|
|
40
|
+
dockerfile: 'Dockerfile',
|
|
41
|
+
docker: 'Docker',
|
|
42
|
+
toml: 'TOML',
|
|
43
|
+
ini: 'INI',
|
|
44
|
+
md: 'Markdown',
|
|
45
|
+
markdown: 'Markdown',
|
|
46
|
+
graphql: 'GraphQL',
|
|
47
|
+
swift: 'Swift',
|
|
48
|
+
kotlin: 'Kotlin',
|
|
49
|
+
dart: 'Dart',
|
|
50
|
+
lua: 'Lua',
|
|
51
|
+
r: 'R',
|
|
52
|
+
tex: 'LaTeX',
|
|
53
|
+
latex: 'LaTeX',
|
|
54
|
+
diff: 'Diff',
|
|
55
|
+
plaintext: 'Text',
|
|
56
|
+
text: 'Text',
|
|
57
|
+
txt: 'Text',
|
|
58
|
+
};
|
|
59
|
+
const COMPACT_SINGLE_LINE_LANGUAGES = new Set(['', 'text', 'txt', 'plaintext']);
|
|
60
|
+
const COMPACT_SINGLE_LINE_MAX_CHARS = 120;
|
|
61
|
+
export default function CodeBlock({ inline, className, children }) {
|
|
62
|
+
const [copied, setCopied] = useState(false);
|
|
63
|
+
// Extract language from className (e.g., "language-typescript")
|
|
64
|
+
const langMatch = className?.match(/language-(\w+)/);
|
|
65
|
+
const language = langMatch?.[1] || '';
|
|
66
|
+
const displayLabel = LANG_LABELS[language] || (language ? language.charAt(0).toUpperCase() + language.slice(1) : '');
|
|
67
|
+
const codeText = String(children).replace(/\n$/, '');
|
|
68
|
+
const isCompactSingleLineBlock = !inline
|
|
69
|
+
&& COMPACT_SINGLE_LINE_LANGUAGES.has(language)
|
|
70
|
+
&& !codeText.includes('\n')
|
|
71
|
+
&& codeText.trim().length > 0
|
|
72
|
+
&& codeText.length <= COMPACT_SINGLE_LINE_MAX_CHARS;
|
|
73
|
+
const handleCopy = useCallback(() => {
|
|
74
|
+
navigator.clipboard.writeText(codeText).then(() => {
|
|
75
|
+
setCopied(true);
|
|
76
|
+
setTimeout(() => setCopied(false), 2000);
|
|
77
|
+
});
|
|
78
|
+
}, [codeText]);
|
|
79
|
+
// Inline code
|
|
80
|
+
if (inline) {
|
|
81
|
+
return (_jsx("code", { className: className, children: children }));
|
|
82
|
+
}
|
|
83
|
+
if (isCompactSingleLineBlock) {
|
|
84
|
+
return (_jsxs("div", { className: "group/code relative my-1 inline-flex max-w-full items-center overflow-hidden rounded-[4px] border border-white/[0.055] bg-white/[0.035] align-middle", children: [_jsx("code", { className: `${className || ''} !m-0 !border-0 !bg-transparent !px-2 !py-0.5 min-w-0 overflow-x-auto whitespace-pre font-mono text-[12px] font-semibold leading-5 text-white/82`, children: codeText }), _jsx("button", { onClick: handleCopy, className: "flex h-5 items-center gap-1 border-l border-white/[0.055] px-1.5 text-white/20 opacity-0 transition-colors hover:bg-white/[0.06] hover:text-white/55 group-hover/code:opacity-100", "aria-label": "Copy code", children: copied ? (_jsx(Check, { className: "h-3 w-3", strokeWidth: 1.5 })) : (_jsx(Copy, { className: "h-3 w-3", strokeWidth: 1.5 })) })] }));
|
|
85
|
+
}
|
|
86
|
+
// Block code
|
|
87
|
+
return (_jsxs("div", { className: "relative group/code", children: [_jsxs("div", { className: "flex items-center justify-between h-7 px-3 bg-white/[0.03] border-b border-white/[0.04] rounded-t-lg", children: [_jsx("span", { className: "text-[9px] font-medium tracking-wide text-white/25 uppercase select-none", children: displayLabel }), _jsx("button", { onClick: handleCopy, className: "flex items-center gap-1 h-5 px-1.5 rounded text-white/20 hover:text-white/50 hover:bg-white/[0.06] transition-colors opacity-0 group-hover/code:opacity-100", "aria-label": "Copy code", children: copied ? (_jsxs(_Fragment, { children: [_jsx(Check, { className: "w-3 h-3", strokeWidth: 1.5 }), _jsx("span", { className: "text-[9px]", children: "Copied" })] })) : (_jsxs(_Fragment, { children: [_jsx(Copy, { className: "w-3 h-3", strokeWidth: 1.5 }), _jsx("span", { className: "text-[9px]", children: "Copy" })] })) })] }), _jsx("code", { className: `${className || ''} block`, children: children })] }));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=CodeBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../../src/components/ui/CodeBlock.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface XenoLogoProps {
|
|
2
|
+
className?: string;
|
|
3
|
+
fill?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Canonical XENO mark used by the product chrome in Pixel, Motion, Canvas,
|
|
7
|
+
* Hub, and Agent.
|
|
8
|
+
*/
|
|
9
|
+
export declare function XenoLogo({ className, fill }: XenoLogoProps): import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=XenoLogo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XenoLogo.d.ts","sourceRoot":"","sources":["../../../src/components/ui/XenoLogo.tsx"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,SAAc,EAAE,IAAqB,EAAE,EAAE,aAAa,+BA2BhF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Canonical XENO mark used by the product chrome in Pixel, Motion, Canvas,
|
|
4
|
+
* Hub, and Agent.
|
|
5
|
+
*/
|
|
6
|
+
export function XenoLogo({ className = '', fill = 'currentColor' }) {
|
|
7
|
+
return (_jsxs("svg", { viewBox: "0 0 1082 1082", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: className, "aria-hidden": "true", children: [_jsx("path", { d: "M489.1 219.763L323.457 39.7072L101.649 30.4597C51.6926 28.3769 39.5494 67.5718 39.7224 87.4296L30.4124 310.735L347.816 655.757L475.833 537.987L241.73 283.514C207.644 246.462 222.019 240.156 233.467 241.634L455.275 250.881L489.1 219.763Z", fill: fill }), _jsx("path", { d: "M861.765 489.52L1041.69 323.704L1050.94 101.684C1053.03 51.6793 1013.87 39.5273 994.024 39.7019L770.9 30.3995L426.135 348.133L543.8 476.263L798.083 241.917C835.108 207.796 841.408 222.184 839.931 233.644L830.674 455.664L861.765 489.52Z", fill: fill }), _jsx("path", { d: "M592.871 862.143L758.514 1042.2L980.322 1051.45C1030.28 1053.53 1042.42 1014.33 1042.25 994.477L1051.56 771.171L734.155 426.15L606.138 543.919L840.241 798.392C874.327 835.444 859.952 841.751 848.504 840.272L626.696 831.025L592.871 862.143Z", fill: fill }), _jsx("path", { d: "M220.763 592.907L40.7063 758.55L31.4588 980.358C29.3761 1030.31 68.5709 1042.46 88.4287 1042.28L311.735 1051.59L656.756 734.191L538.986 606.174L284.514 840.277C247.462 874.363 241.155 859.988 242.633 848.54L251.881 626.733L220.763 592.907Z", fill: fill })] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=XenoLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XenoLogo.js","sourceRoot":"","sources":["../../../src/components/ui/XenoLogo.tsx"],"names":[],"mappings":";AAKA;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,GAAG,cAAc,EAAiB;IAC/E,OAAO,CACL,eACE,OAAO,EAAC,eAAe,EACvB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAE,SAAS,iBACR,MAAM,aAElB,eACE,CAAC,EAAC,8OAA8O,EAChP,IAAI,EAAE,IAAI,GACV,EACF,eACE,CAAC,EAAC,6OAA6O,EAC/O,IAAI,EAAE,IAAI,GACV,EACF,eACE,CAAC,EAAC,iPAAiP,EACnP,IAAI,EAAE,IAAI,GACV,EACF,eACE,CAAC,EAAC,iPAAiP,EACnP,IAAI,EAAE,IAAI,GACV,IACE,CACP,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { AgentHostHandshake, AgentRuntimeProviderDescriptor, AgentSurfaceKind } from '@xenosystem/agent-interface-contract';
|
|
2
|
+
import { AgentHostClient } from '@xenosystem/agent-interface-client';
|
|
3
|
+
export * from './providerSelector.js';
|
|
4
|
+
export * from './toolCardProjection.js';
|
|
5
|
+
export * from './sessionTabs.js';
|
|
6
|
+
export * from './components/agent/CommandToolCard.js';
|
|
7
|
+
export * from './components/agent/RunReviewPanel.js';
|
|
8
|
+
export * from './components/agent/FleetPanel.js';
|
|
9
|
+
export * from './components/agent/SessionsPanel.js';
|
|
10
|
+
export * from './components/agent/IntakePanel.js';
|
|
11
|
+
export * from './components/agent/KnowledgePanel.js';
|
|
12
|
+
export * from './components/agent/toolCardDisplay.js';
|
|
13
|
+
export * from './components/product/XenoAgentProductHeader.js';
|
|
14
|
+
export * from './components/product/XenoAgentSessionTabs.js';
|
|
15
|
+
export * from './components/ui/XenoLogo.js';
|
|
16
|
+
export * from './platformBridge.js';
|
|
17
|
+
export * from './adapters/agentHostPlatformBridge.js';
|
|
18
|
+
export * from './adapters/hubAgentPlatformBridge.js';
|
|
19
|
+
export * from './adapters/xenoAgentCompatibilityBridge.js';
|
|
20
|
+
export * from './adapters/xenoAgentHostCatalog.js';
|
|
21
|
+
export type { XenoAPI } from './platformApiTypes.js';
|
|
22
|
+
export { default as XenoAgentInterface } from './components/agent/AgentInterface.js';
|
|
23
|
+
export type { Agent, AgentApprovalRule, AgentCapabilities, AgentInterfaceProps, AgentPermissionProfileName, Conversation, Team, Workspace, WorkspaceApp, } from './components/agent/AgentInterface.js';
|
|
24
|
+
export type AgentInterfaceSurfacePhase = 'idle' | 'connecting' | 'ready' | 'error' | 'stopped';
|
|
25
|
+
export interface AgentInterfaceSurfaceSnapshot {
|
|
26
|
+
phase: AgentInterfaceSurfacePhase;
|
|
27
|
+
surface: AgentSurfaceKind;
|
|
28
|
+
handshake: AgentHostHandshake | null;
|
|
29
|
+
providers: AgentRuntimeProviderDescriptor[];
|
|
30
|
+
developmentProviderIds: string[];
|
|
31
|
+
safeError: string | null;
|
|
32
|
+
}
|
|
33
|
+
export type AgentInterfaceSurfaceListener = (snapshot: AgentInterfaceSurfaceSnapshot) => void;
|
|
34
|
+
export declare class AgentInterfaceSurfaceController {
|
|
35
|
+
private readonly client;
|
|
36
|
+
private readonly listeners;
|
|
37
|
+
private unsubscribeHost;
|
|
38
|
+
private startPromise;
|
|
39
|
+
private snapshotValue;
|
|
40
|
+
constructor(client: AgentHostClient);
|
|
41
|
+
get snapshot(): AgentInterfaceSurfaceSnapshot;
|
|
42
|
+
subscribe(listener: AgentInterfaceSurfaceListener): () => void;
|
|
43
|
+
start(): Promise<AgentInterfaceSurfaceSnapshot>;
|
|
44
|
+
stop(): void;
|
|
45
|
+
private startInternal;
|
|
46
|
+
private refreshProviders;
|
|
47
|
+
private setReady;
|
|
48
|
+
private setSnapshot;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,gBAAgB,EACjB,MAAM,sCAAsC,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AAEpE,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uCAAuC,CAAA;AACrD,cAAc,sCAAsC,CAAA;AACpD,cAAc,kCAAkC,CAAA;AAChD,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,sCAAsC,CAAA;AACpD,cAAc,uCAAuC,CAAA;AACrD,cAAc,gDAAgD,CAAA;AAC9D,cAAc,8CAA8C,CAAA;AAC5D,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,uCAAuC,CAAA;AACrD,cAAc,sCAAsC,CAAA;AACpD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,oCAAoC,CAAA;AAClD,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACpF,YAAY,EACV,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,YAAY,GACb,MAAM,sCAAsC,CAAA;AAE7C,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;AAE9F,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,0BAA0B,CAAA;IACjC,OAAO,EAAE,gBAAgB,CAAA;IACzB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACpC,SAAS,EAAE,8BAA8B,EAAE,CAAA;IAC3C,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,MAAM,6BAA6B,GAAG,CAAC,QAAQ,EAAE,6BAA6B,KAAK,IAAI,CAAA;AAE7F,qBAAa,+BAA+B;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2C;IACrE,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,YAAY,CAAsD;IAC1E,OAAO,CAAC,aAAa,CAA+B;gBAExC,MAAM,EAAE,eAAe;IAYnC,IAAI,QAAQ,IAAI,6BAA6B,CAE5C;IAED,SAAS,CAAC,QAAQ,EAAE,6BAA6B,GAAG,MAAM,IAAI;IAQ9D,KAAK,IAAI,OAAO,CAAC,6BAA6B,CAAC;IAM/C,IAAI,IAAI,IAAI;YAeE,aAAa;YAyBb,gBAAgB;IAU9B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,WAAW;CAIpB"}
|