@xenosystem/agent-interface-ui 0.1.25 → 0.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/agentHostPlatformBridge.d.ts.map +1 -1
- package/dist/adapters/agentHostPlatformBridge.js +96 -16
- package/dist/adapters/agentHostPlatformBridge.js.map +1 -1
- package/dist/adapters/hubAgentPlatformBridge.d.ts.map +1 -1
- package/dist/adapters/hubAgentPlatformBridge.js +2 -0
- package/dist/adapters/hubAgentPlatformBridge.js.map +1 -1
- package/dist/adapters/scopedBackupBridge.d.ts +4 -0
- package/dist/adapters/scopedBackupBridge.d.ts.map +1 -0
- package/dist/adapters/scopedBackupBridge.js +49 -0
- package/dist/adapters/scopedBackupBridge.js.map +1 -0
- package/dist/adapters/xenoAgentCompatibilityBridge.d.ts.map +1 -1
- package/dist/adapters/xenoAgentCompatibilityBridge.js +9 -1
- package/dist/adapters/xenoAgentCompatibilityBridge.js.map +1 -1
- package/dist/agent.css +13227 -0
- package/dist/components/agent/AgentIdentityGenerator.d.ts +16 -0
- package/dist/components/agent/AgentIdentityGenerator.d.ts.map +1 -0
- package/dist/components/agent/AgentIdentityGenerator.js +80 -0
- package/dist/components/agent/AgentIdentityGenerator.js.map +1 -0
- package/dist/components/agent/AgentInterface.d.ts +1 -0
- package/dist/components/agent/AgentInterface.d.ts.map +1 -1
- package/dist/components/agent/AgentInterface.js +1816 -643
- package/dist/components/agent/AgentInterface.js.map +1 -1
- package/dist/components/agent/AgentNotificationBanner.d.ts +10 -0
- package/dist/components/agent/AgentNotificationBanner.d.ts.map +1 -0
- package/dist/components/agent/AgentNotificationBanner.js +28 -0
- package/dist/components/agent/AgentNotificationBanner.js.map +1 -0
- package/dist/components/agent/AgentOnboarding.d.ts +16 -2
- package/dist/components/agent/AgentOnboarding.d.ts.map +1 -1
- package/dist/components/agent/AgentOnboarding.js +93 -201
- package/dist/components/agent/AgentOnboarding.js.map +1 -1
- package/dist/components/agent/AgentView.d.ts.map +1 -1
- package/dist/components/agent/AgentView.js +533 -308
- package/dist/components/agent/AgentView.js.map +1 -1
- package/dist/components/agent/AgentWorkbenchPanel.d.ts +3 -1
- package/dist/components/agent/AgentWorkbenchPanel.d.ts.map +1 -1
- package/dist/components/agent/AgentWorkbenchPanel.js +3 -2
- package/dist/components/agent/AgentWorkbenchPanel.js.map +1 -1
- package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts +4 -1
- package/dist/components/agent/AgentWorkspaceBrowserPanel.d.ts.map +1 -1
- package/dist/components/agent/AgentWorkspaceBrowserPanel.js +23 -195
- package/dist/components/agent/AgentWorkspaceBrowserPanel.js.map +1 -1
- package/dist/components/agent/AgentsWorkspaceView.d.ts +12 -0
- package/dist/components/agent/AgentsWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/AgentsWorkspaceView.js +129 -0
- package/dist/components/agent/AgentsWorkspaceView.js.map +1 -0
- package/dist/components/agent/DevelopmentCoordinationPanel.d.ts +7 -0
- package/dist/components/agent/DevelopmentCoordinationPanel.d.ts.map +1 -1
- package/dist/components/agent/DevelopmentCoordinationPanel.js +57 -49
- package/dist/components/agent/DevelopmentCoordinationPanel.js.map +1 -1
- package/dist/components/agent/KnowledgePanel.d.ts.map +1 -1
- package/dist/components/agent/KnowledgePanel.js +17 -67
- package/dist/components/agent/KnowledgePanel.js.map +1 -1
- package/dist/components/agent/LiveConversationCollaboration.d.ts +27 -0
- package/dist/components/agent/LiveConversationCollaboration.d.ts.map +1 -0
- package/dist/components/agent/LiveConversationCollaboration.js +127 -0
- package/dist/components/agent/LiveConversationCollaboration.js.map +1 -0
- package/dist/components/agent/MonacoDiffWorkbenchEditor.d.ts.map +1 -1
- package/dist/components/agent/MonacoDiffWorkbenchEditor.js +1 -1
- package/dist/components/agent/MonacoDiffWorkbenchEditor.js.map +1 -1
- package/dist/components/agent/MonacoWorkbenchEditor.d.ts.map +1 -1
- package/dist/components/agent/MonacoWorkbenchEditor.js +3 -3
- package/dist/components/agent/MonacoWorkbenchEditor.js.map +1 -1
- package/dist/components/agent/OwnedBrowserController.d.ts +55 -0
- package/dist/components/agent/OwnedBrowserController.d.ts.map +1 -0
- package/dist/components/agent/OwnedBrowserController.js +166 -0
- package/dist/components/agent/OwnedBrowserController.js.map +1 -0
- package/dist/components/agent/OwnedWorkforceView.d.ts +10 -0
- package/dist/components/agent/OwnedWorkforceView.d.ts.map +1 -0
- package/dist/components/agent/OwnedWorkforceView.js +256 -0
- package/dist/components/agent/OwnedWorkforceView.js.map +1 -0
- package/dist/components/agent/PluginManager.d.ts +34 -0
- package/dist/components/agent/PluginManager.d.ts.map +1 -1
- package/dist/components/agent/PluginManager.js +187 -126
- package/dist/components/agent/PluginManager.js.map +1 -1
- package/dist/components/agent/ProjectsWorkspaceView.d.ts +14 -0
- package/dist/components/agent/ProjectsWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/ProjectsWorkspaceView.js +176 -0
- package/dist/components/agent/ProjectsWorkspaceView.js.map +1 -0
- package/dist/components/agent/RunReviewPanel.d.ts +8 -13
- package/dist/components/agent/RunReviewPanel.d.ts.map +1 -1
- package/dist/components/agent/RunReviewPanel.js +120 -106
- package/dist/components/agent/RunReviewPanel.js.map +1 -1
- package/dist/components/agent/ScheduledWorkspaceView.d.ts +19 -0
- package/dist/components/agent/ScheduledWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/ScheduledWorkspaceView.js +150 -0
- package/dist/components/agent/ScheduledWorkspaceView.js.map +1 -0
- package/dist/components/agent/SdkSessionPanel.d.ts +25 -0
- package/dist/components/agent/SdkSessionPanel.d.ts.map +1 -0
- package/dist/components/agent/SdkSessionPanel.js +15 -0
- package/dist/components/agent/SdkSessionPanel.js.map +1 -0
- package/dist/components/agent/SlashCommandAutocomplete.d.ts +12 -0
- package/dist/components/agent/SlashCommandAutocomplete.d.ts.map +1 -0
- package/dist/components/agent/SlashCommandAutocomplete.js +33 -0
- package/dist/components/agent/SlashCommandAutocomplete.js.map +1 -0
- package/dist/components/agent/TeamsWorkspaceView.d.ts +12 -0
- package/dist/components/agent/TeamsWorkspaceView.d.ts.map +1 -0
- package/dist/components/agent/TeamsWorkspaceView.js +127 -0
- package/dist/components/agent/TeamsWorkspaceView.js.map +1 -0
- package/dist/components/agent/WorkspacePersistenceNotice.d.ts +3 -0
- package/dist/components/agent/WorkspacePersistenceNotice.d.ts.map +1 -0
- package/dist/components/agent/WorkspacePersistenceNotice.js +23 -0
- package/dist/components/agent/WorkspacePersistenceNotice.js.map +1 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.d.ts +1 -0
- package/dist/components/agent/acp/AcpAgentConfigForm.d.ts.map +1 -1
- package/dist/components/agent/acp/AcpAgentConfigForm.js +47 -14
- package/dist/components/agent/acp/AcpAgentConfigForm.js.map +1 -1
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js +1 -1
- package/dist/components/agent/acp/AcpAgentDiagnosticsPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpAgentManager.d.ts.map +1 -1
- package/dist/components/agent/acp/AcpAgentManager.js +18 -18
- package/dist/components/agent/acp/AcpAgentManager.js.map +1 -1
- package/dist/components/agent/acp/AcpAgentTestResultPanel.js +1 -1
- package/dist/components/agent/acp/AcpAgentTestResultPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpApprovalPanel.js +2 -2
- package/dist/components/agent/acp/AcpApprovalPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpCertificationPanel.js +1 -1
- package/dist/components/agent/acp/AcpCertificationPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js +1 -1
- package/dist/components/agent/acp/AcpLiveProviderWorkflowPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpProviderManagerPanel.js +1 -1
- package/dist/components/agent/acp/AcpProviderManagerPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpProviderModelsPanel.js +1 -1
- package/dist/components/agent/acp/AcpProviderModelsPanel.js.map +1 -1
- package/dist/components/agent/acp/AcpSupportBundlePanel.js +1 -1
- package/dist/components/agent/acp/AcpSupportBundlePanel.js.map +1 -1
- package/dist/components/agent/collaborationWindow.d.ts +11 -0
- package/dist/components/agent/collaborationWindow.d.ts.map +1 -0
- package/dist/components/agent/collaborationWindow.js +10 -0
- package/dist/components/agent/collaborationWindow.js.map +1 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.d.ts +25 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.d.ts.map +1 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.js +118 -0
- package/dist/components/agent/conversationCollaborationAppendJournal.js.map +1 -0
- package/dist/components/agent/conversationCollaborationController.d.ts +96 -0
- package/dist/components/agent/conversationCollaborationController.d.ts.map +1 -0
- package/dist/components/agent/conversationCollaborationController.js +597 -0
- package/dist/components/agent/conversationCollaborationController.js.map +1 -0
- package/dist/components/agent/destructiveConfirmation.d.ts +76 -0
- package/dist/components/agent/destructiveConfirmation.d.ts.map +1 -0
- package/dist/components/agent/destructiveConfirmation.js +231 -0
- package/dist/components/agent/destructiveConfirmation.js.map +1 -0
- package/dist/components/agent/developmentCoordinationController.d.ts +43 -0
- package/dist/components/agent/developmentCoordinationController.d.ts.map +1 -0
- package/dist/components/agent/developmentCoordinationController.js +94 -0
- package/dist/components/agent/developmentCoordinationController.js.map +1 -0
- package/dist/components/agent/developmentCoordinationProjection.d.ts +24 -0
- package/dist/components/agent/developmentCoordinationProjection.d.ts.map +1 -1
- package/dist/components/agent/developmentCoordinationProjection.js +34 -5
- package/dist/components/agent/developmentCoordinationProjection.js.map +1 -1
- package/dist/components/agent/editorOperationAuthority.d.ts +29 -0
- package/dist/components/agent/editorOperationAuthority.d.ts.map +1 -0
- package/dist/components/agent/editorOperationAuthority.js +73 -0
- package/dist/components/agent/editorOperationAuthority.js.map +1 -0
- package/dist/components/agent/knowledgePagination.d.ts +7 -0
- package/dist/components/agent/knowledgePagination.d.ts.map +1 -0
- package/dist/components/agent/knowledgePagination.js +7 -0
- package/dist/components/agent/knowledgePagination.js.map +1 -0
- package/dist/components/agent/knowledgePanelController.d.ts +32 -0
- package/dist/components/agent/knowledgePanelController.d.ts.map +1 -0
- package/dist/components/agent/knowledgePanelController.js +119 -0
- package/dist/components/agent/knowledgePanelController.js.map +1 -0
- package/dist/components/agent/monacoWorkbenchShared.js +1 -1
- package/dist/components/agent/onboardingModels.d.ts +31 -0
- package/dist/components/agent/onboardingModels.d.ts.map +1 -0
- package/dist/components/agent/onboardingModels.js +107 -0
- package/dist/components/agent/onboardingModels.js.map +1 -0
- package/dist/components/agent/personalConversationScope.d.ts +26 -0
- package/dist/components/agent/personalConversationScope.d.ts.map +1 -0
- package/dist/components/agent/personalConversationScope.js +43 -0
- package/dist/components/agent/personalConversationScope.js.map +1 -0
- package/dist/components/agent/reviewRequestScope.d.ts +16 -0
- package/dist/components/agent/reviewRequestScope.d.ts.map +1 -0
- package/dist/components/agent/reviewRequestScope.js +101 -0
- package/dist/components/agent/reviewRequestScope.js.map +1 -0
- package/dist/components/agent/scheduleCreationAttempt.d.ts +12 -0
- package/dist/components/agent/scheduleCreationAttempt.d.ts.map +1 -0
- package/dist/components/agent/scheduleCreationAttempt.js +30 -0
- package/dist/components/agent/scheduleCreationAttempt.js.map +1 -0
- package/dist/components/agent/settings/EntitySettingsLayout.d.ts +1 -1
- package/dist/components/agent/settings/EntitySettingsLayout.d.ts.map +1 -1
- package/dist/components/agent/settings/EntitySettingsLayout.js +64 -44
- package/dist/components/agent/settings/EntitySettingsLayout.js.map +1 -1
- package/dist/components/agent/settings/SettingsNavigation.d.ts.map +1 -1
- package/dist/components/agent/settings/SettingsNavigation.js +17 -17
- package/dist/components/agent/settings/SettingsNavigation.js.map +1 -1
- package/dist/components/agent/settings/entityArchiveState.d.ts +24 -0
- package/dist/components/agent/settings/entityArchiveState.d.ts.map +1 -0
- package/dist/components/agent/settings/entityArchiveState.js +12 -0
- package/dist/components/agent/settings/entityArchiveState.js.map +1 -0
- package/dist/components/agent/settings/sections/AccessMembersSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/AccessMembersSection.js +10 -25
- package/dist/components/agent/settings/sections/AccessMembersSection.js.map +1 -1
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts +16 -0
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.js +265 -0
- package/dist/components/agent/settings/sections/AccountWorkspacePanel.js.map +1 -0
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js +47 -32
- package/dist/components/agent/settings/sections/AgentPermissionRulesPanel.js.map +1 -1
- package/dist/components/agent/settings/sections/DangerZoneSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/DangerZoneSection.js +30 -6
- package/dist/components/agent/settings/sections/DangerZoneSection.js.map +1 -1
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js +47 -37
- package/dist/components/agent/settings/sections/DefaultAgentConfigSection.js.map +1 -1
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js +30 -43
- package/dist/components/agent/settings/sections/EnvironmentSecretsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/ExportBackupSection.d.ts +3 -1
- package/dist/components/agent/settings/sections/ExportBackupSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/ExportBackupSection.js +14 -12
- package/dist/components/agent/settings/sections/ExportBackupSection.js.map +1 -1
- package/dist/components/agent/settings/sections/GeneralSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/GeneralSection.js +47 -4
- package/dist/components/agent/settings/sections/GeneralSection.js.map +1 -1
- package/dist/components/agent/settings/sections/IntegrationsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/IntegrationsSection.js +14 -21
- package/dist/components/agent/settings/sections/IntegrationsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/NotificationsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/NotificationsSection.js +125 -20
- package/dist/components/agent/settings/sections/NotificationsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/ResourceLimitsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/ResourceLimitsSection.js +7 -7
- package/dist/components/agent/settings/sections/ResourceLimitsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/SecurityComplianceSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/SecurityComplianceSection.js +5 -4
- package/dist/components/agent/settings/sections/SecurityComplianceSection.js.map +1 -1
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.js +2 -3
- package/dist/components/agent/settings/sections/UsageAnalyticsSection.js.map +1 -1
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.d.ts.map +1 -1
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js +39 -26
- package/dist/components/agent/settings/sections/WorkspaceDirectoryAccessSection.js.map +1 -1
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.d.ts +6 -0
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.js +205 -0
- package/dist/components/agent/settings/sections/WorkspaceKeysPanel.js.map +1 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.d.ts +3 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.js +6 -0
- package/dist/components/agent/settings/sections/environmentDraftAction.js.map +1 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.d.ts +3 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.js +9 -0
- package/dist/components/agent/settings/sections/membershipOperationProjection.js.map +1 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.d.ts +6 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.d.ts.map +1 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.js +8 -0
- package/dist/components/agent/settings/sections/workspaceKeyOperationProjection.js.map +1 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts +25 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.js +89 -0
- package/dist/components/agent/settings/shared/InAppConfirmationDialog.js.map +1 -0
- package/dist/components/agent/settings/shared/InputField.d.ts +1 -1
- package/dist/components/agent/settings/shared/InputField.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/InputField.js +4 -3
- package/dist/components/agent/settings/shared/InputField.js.map +1 -1
- package/dist/components/agent/settings/shared/MembersTable.d.ts +3 -3
- package/dist/components/agent/settings/shared/MembersTable.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/MembersTable.js +1 -1
- package/dist/components/agent/settings/shared/MembersTable.js.map +1 -1
- package/dist/components/agent/settings/shared/ScopedAuditPanel.d.ts +5 -0
- package/dist/components/agent/settings/shared/ScopedAuditPanel.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/ScopedAuditPanel.js +70 -0
- package/dist/components/agent/settings/shared/ScopedAuditPanel.js.map +1 -0
- package/dist/components/agent/settings/shared/SettingsCard.d.ts +2 -1
- package/dist/components/agent/settings/shared/SettingsCard.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/SettingsCard.js +2 -2
- package/dist/components/agent/settings/shared/SettingsCard.js.map +1 -1
- package/dist/components/agent/settings/shared/ToggleSwitch.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/ToggleSwitch.js +1 -1
- package/dist/components/agent/settings/shared/ToggleSwitch.js.map +1 -1
- package/dist/components/agent/settings/shared/UsageChart.d.ts +10 -0
- package/dist/components/agent/settings/shared/UsageChart.d.ts.map +1 -1
- package/dist/components/agent/settings/shared/UsageChart.js +16 -10
- package/dist/components/agent/settings/shared/UsageChart.js.map +1 -1
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.d.ts +8 -0
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.js +26 -0
- package/dist/components/agent/settings/shared/WorkspaceRulesControl.js.map +1 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.d.ts +8 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.js +53 -0
- package/dist/components/agent/settings/shared/useScopedConfirmation.js.map +1 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.d.ts +8 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.js +51 -0
- package/dist/components/agent/settings/shared/useSettingsConfirmation.js.map +1 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.d.ts +28 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.d.ts.map +1 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.js +82 -0
- package/dist/components/agent/settings/shared/workspaceRulesController.js.map +1 -0
- package/dist/components/agent/sidebarEntityPins.d.ts +11 -0
- package/dist/components/agent/sidebarEntityPins.d.ts.map +1 -0
- package/dist/components/agent/sidebarEntityPins.js +37 -0
- package/dist/components/agent/sidebarEntityPins.js.map +1 -0
- package/dist/components/agent/workspaceHierarchy.d.ts +24 -0
- package/dist/components/agent/workspaceHierarchy.d.ts.map +1 -0
- package/dist/components/agent/workspaceHierarchy.js +50 -0
- package/dist/components/agent/workspaceHierarchy.js.map +1 -0
- package/dist/components/product/XenoAgentProductHeader.d.ts +4 -2
- package/dist/components/product/XenoAgentProductHeader.d.ts.map +1 -1
- package/dist/components/product/XenoAgentProductHeader.js +22 -4
- package/dist/components/product/XenoAgentProductHeader.js.map +1 -1
- package/dist/components/product/XenoAgentSessionTabs.js +1 -1
- package/dist/components/product/XenoAgentSessionTabs.js.map +1 -1
- package/dist/components/product/XenoAgentWorkspaceSelector.d.ts +7 -0
- package/dist/components/product/XenoAgentWorkspaceSelector.d.ts.map +1 -0
- package/dist/components/product/XenoAgentWorkspaceSelector.js +237 -0
- package/dist/components/product/XenoAgentWorkspaceSelector.js.map +1 -0
- package/dist/components/workspace/WorkspaceCreationWizard.d.ts +6 -0
- package/dist/components/workspace/WorkspaceCreationWizard.d.ts.map +1 -0
- package/dist/components/workspace/WorkspaceCreationWizard.js +48 -0
- package/dist/components/workspace/WorkspaceCreationWizard.js.map +1 -0
- package/dist/hooks/useSidebarLayoutPreference.d.ts +29 -0
- package/dist/hooks/useSidebarLayoutPreference.d.ts.map +1 -0
- package/dist/hooks/useSidebarLayoutPreference.js +83 -0
- package/dist/hooks/useSidebarLayoutPreference.js.map +1 -0
- package/dist/hooks/useWorkspaceCreation.d.ts +8 -0
- package/dist/hooks/useWorkspaceCreation.d.ts.map +1 -0
- package/dist/hooks/useWorkspaceCreation.js +40 -0
- package/dist/hooks/useWorkspaceCreation.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/platformApiTypes.d.ts +77 -36
- package/dist/platformApiTypes.d.ts.map +1 -1
- package/dist/platformBridge.d.ts +4 -0
- package/dist/platformBridge.d.ts.map +1 -1
- package/dist/platformBridge.js +10 -0
- package/dist/platformBridge.js.map +1 -1
- package/dist/stores/agentChatStore.d.ts +120 -2
- package/dist/stores/agentChatStore.d.ts.map +1 -1
- package/dist/stores/agentChatStore.js +329 -35
- package/dist/stores/agentChatStore.js.map +1 -1
- package/dist/stores/agentCreationDefaults.d.ts +25 -0
- package/dist/stores/agentCreationDefaults.d.ts.map +1 -0
- package/dist/stores/agentCreationDefaults.js +11 -0
- package/dist/stores/agentCreationDefaults.js.map +1 -0
- package/dist/stores/entitySettingsStore.d.ts +37 -12
- package/dist/stores/entitySettingsStore.d.ts.map +1 -1
- package/dist/stores/entitySettingsStore.js +558 -585
- package/dist/stores/entitySettingsStore.js.map +1 -1
- package/dist/stores/suggestionStore.d.ts +9 -2
- package/dist/stores/suggestionStore.d.ts.map +1 -1
- package/dist/stores/suggestionStore.js +51 -24
- package/dist/stores/suggestionStore.js.map +1 -1
- package/dist/stores/workspaceCreationAttempt.d.ts +14 -0
- package/dist/stores/workspaceCreationAttempt.d.ts.map +1 -0
- package/dist/stores/workspaceCreationAttempt.js +35 -0
- package/dist/stores/workspaceCreationAttempt.js.map +1 -0
- package/dist/stores/workspaceReconciliation.d.ts +6 -0
- package/dist/stores/workspaceReconciliation.d.ts.map +1 -0
- package/dist/stores/workspaceReconciliation.js +33 -0
- package/dist/stores/workspaceReconciliation.js.map +1 -0
- package/dist/stores/workspaceStore.d.ts +44 -9
- package/dist/stores/workspaceStore.d.ts.map +1 -1
- package/dist/stores/workspaceStore.js +238 -99
- package/dist/stores/workspaceStore.js.map +1 -1
- package/dist/types/agentEditor.d.ts +1 -0
- package/dist/types/agentEditor.d.ts.map +1 -1
- package/dist/utils/advertisedReasoning.d.ts +25 -0
- package/dist/utils/advertisedReasoning.d.ts.map +1 -0
- package/dist/utils/advertisedReasoning.js +62 -0
- package/dist/utils/advertisedReasoning.js.map +1 -0
- package/dist/utils/clipboardCopy.d.ts +4 -0
- package/dist/utils/clipboardCopy.d.ts.map +1 -0
- package/dist/utils/clipboardCopy.js +27 -0
- package/dist/utils/clipboardCopy.js.map +1 -0
- package/dist/utils/providerCommandArgs.d.ts +11 -0
- package/dist/utils/providerCommandArgs.d.ts.map +1 -0
- package/dist/utils/providerCommandArgs.js +18 -0
- package/dist/utils/providerCommandArgs.js.map +1 -0
- package/dist/utils/rendererTeardown.d.ts +6 -0
- package/dist/utils/rendererTeardown.d.ts.map +1 -0
- package/dist/utils/rendererTeardown.js +18 -0
- package/dist/utils/rendererTeardown.js.map +1 -0
- package/package.json +20 -8
- package/src/agent.css +39 -9
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AcpNotification } from '@xenosystem/agent-interface-contract';
|
|
3
|
+
interface AgentNotificationBannerProps {
|
|
4
|
+
notifications: AcpNotification[];
|
|
5
|
+
onDismiss: (notificationId: string) => void;
|
|
6
|
+
onAction?: (action: string, command?: string, url?: string) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const AgentNotificationBanner: React.FC<AgentNotificationBannerProps>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=AgentNotificationBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentNotificationBanner.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentNotificationBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAE3E,UAAU,4BAA4B;IACpC,aAAa,EAAE,eAAe,EAAE,CAAA;IAChC,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACpE;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAyF1E,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { AlertTriangle, AlertCircle, Info, X, ExternalLink, Terminal } from 'lucide-react';
|
|
4
|
+
export const AgentNotificationBanner = ({ notifications, onDismiss, onAction, }) => {
|
|
5
|
+
if (!notifications || notifications.length === 0)
|
|
6
|
+
return null;
|
|
7
|
+
return (_jsx("div", { className: "mb-2.5 flex flex-col gap-2", children: notifications.map((notif) => {
|
|
8
|
+
const isError = notif.severity === 'error';
|
|
9
|
+
const isWarning = notif.severity === 'warning' || notif.category === 'rate_limit';
|
|
10
|
+
const borderClass = isError
|
|
11
|
+
? 'border-red-500/30 bg-red-500/[0.08] text-red-200'
|
|
12
|
+
: isWarning
|
|
13
|
+
? 'border-amber-400/30 bg-amber-400/[0.08] text-amber-100'
|
|
14
|
+
: 'border-blue-400/30 bg-blue-400/[0.08] text-blue-100';
|
|
15
|
+
const iconColor = isError
|
|
16
|
+
? 'text-red-400'
|
|
17
|
+
: isWarning
|
|
18
|
+
? 'text-amber-400'
|
|
19
|
+
: 'text-blue-400';
|
|
20
|
+
const actionBtnClass = isError
|
|
21
|
+
? 'bg-red-500/20 hover:bg-red-500/30 text-red-100 border border-red-500/30'
|
|
22
|
+
: isWarning
|
|
23
|
+
? 'bg-amber-400/20 hover:bg-amber-400/30 text-amber-100 border border-amber-400/30'
|
|
24
|
+
: 'bg-blue-400/20 hover:bg-blue-400/30 text-blue-100 border border-blue-400/30';
|
|
25
|
+
return (_jsxs("div", { className: `relative flex items-start gap-2.5 rounded-md border px-3 py-2.5 text-[12px] shadow-sm transition-all duration-200 ${borderClass}`, role: "alert", children: [_jsx("div", { className: `mt-0.5 shrink-0 ${iconColor}`, children: isError ? (_jsx(AlertCircle, { className: "h-4 w-4" })) : isWarning ? (_jsx(AlertTriangle, { className: "h-4 w-4" })) : (_jsx(Info, { className: "h-4 w-4" })) }), _jsxs("div", { className: "min-w-0 flex-1", children: [notif.title && (_jsx("div", { className: "font-medium tracking-tight mb-0.5 opacity-95", children: notif.title })), _jsx("div", { className: "leading-relaxed opacity-90 break-words", children: notif.message }), notif.actions && notif.actions.length > 0 && (_jsx("div", { className: "mt-2 flex flex-wrap items-center gap-1.5", children: notif.actions.map((act) => (_jsxs("button", { type: "button", onClick: () => onAction?.(act.action, act.command, act.url), className: `inline-flex items-center gap-1 rounded px-2 py-0.5 text-[11px] font-medium transition-colors cursor-pointer focus-visible:outline focus-visible:outline-1 focus-visible:outline-white/40 ${actionBtnClass}`, children: [act.action === 'command' && _jsx(Terminal, { className: "h-3 w-3 opacity-70" }), act.action === 'link' && _jsx(ExternalLink, { className: "h-3 w-3 opacity-70" }), _jsx("span", { children: act.label })] }, act.id))) }))] }), _jsx("button", { type: "button", onClick: () => onDismiss(notif.deduplicationKey || notif.id), className: "shrink-0 rounded p-0.5 opacity-60 hover:opacity-100 transition-opacity cursor-pointer focus-visible:outline focus-visible:outline-1 focus-visible:outline-white/40", "aria-label": "Dismiss notification", title: "Dismiss", children: _jsx(X, { className: "h-3.5 w-3.5" }) })] }, notif.id));
|
|
26
|
+
}) }));
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=AgentNotificationBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentNotificationBanner.js","sourceRoot":"","sources":["../../../src/components/agent/AgentNotificationBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAS1F,MAAM,CAAC,MAAM,uBAAuB,GAA2C,CAAC,EAC9E,aAAa,EACb,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAE7D,OAAO,CACL,cAAK,SAAS,EAAC,4BAA4B,YACxC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAA;YAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,CAAA;YAEjF,MAAM,WAAW,GAAG,OAAO;gBACzB,CAAC,CAAC,kDAAkD;gBACpD,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,wDAAwD;oBAC1D,CAAC,CAAC,qDAAqD,CAAA;YAE3D,MAAM,SAAS,GAAG,OAAO;gBACvB,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,eAAe,CAAA;YAErB,MAAM,cAAc,GAAG,OAAO;gBAC5B,CAAC,CAAC,yEAAyE;gBAC3E,CAAC,CAAC,SAAS;oBACT,CAAC,CAAC,iFAAiF;oBACnF,CAAC,CAAC,6EAA6E,CAAA;YAEnF,OAAO,CACL,eAEE,SAAS,EAAE,qHAAqH,WAAW,EAAE,EAC7I,IAAI,EAAC,OAAO,aAEZ,cAAK,SAAS,EAAE,mBAAmB,SAAS,EAAE,YAC3C,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,CACpC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,KAAC,aAAa,IAAC,SAAS,EAAC,SAAS,GAAG,CACtC,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,CAC7B,GACG,EAEN,eAAK,SAAS,EAAC,gBAAgB,aAC5B,KAAK,CAAC,KAAK,IAAI,CACd,cAAK,SAAS,EAAC,8CAA8C,YAC1D,KAAK,CAAC,KAAK,GACR,CACP,EACD,cAAK,SAAS,EAAC,wCAAwC,YACpD,KAAK,CAAC,OAAO,GACV,EAEL,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,cAAK,SAAS,EAAC,0CAA0C,YACtD,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1B,kBAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAC3D,SAAS,EAAE,4LAA4L,cAAc,EAAE,aAEtN,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,KAAC,QAAQ,IAAC,SAAS,EAAC,oBAAoB,GAAG,EACvE,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,KAAC,YAAY,IAAC,SAAS,EAAC,oBAAoB,GAAG,EACzE,yBAAO,GAAG,CAAC,KAAK,GAAQ,KAPnB,GAAG,CAAC,EAAE,CAQJ,CACV,CAAC,GACE,CACP,IACG,EAEN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,EAAE,CAAC,EAC5D,SAAS,EAAC,oKAAoK,gBACnK,sBAAsB,EACjC,KAAK,EAAC,SAAS,YAEf,KAAC,CAAC,IAAC,SAAS,EAAC,aAAa,GAAG,GACtB,KAlDJ,KAAK,CAAC,EAAE,CAmDT,CACP,CAAA;QACH,CAAC,CAAC,GACE,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,16 +1,30 @@
|
|
|
1
|
+
import { type OnboardingModel } from './onboardingModels.js';
|
|
2
|
+
import type { HubAgentRuntimeSelection } from '../../types/agentRuntimeProvider.js';
|
|
1
3
|
import type { Workspace } from './AgentInterface.js';
|
|
2
4
|
export interface AgentSetupData {
|
|
5
|
+
submissionId: string;
|
|
3
6
|
name: string;
|
|
4
7
|
template: string;
|
|
5
8
|
customInstructions: string;
|
|
6
9
|
model: string;
|
|
10
|
+
runtimeSelection?: HubAgentRuntimeSelection;
|
|
7
11
|
workspace: string;
|
|
8
12
|
team: string;
|
|
9
13
|
workspaceName?: string;
|
|
10
14
|
teamName?: string;
|
|
11
15
|
}
|
|
12
|
-
export declare function
|
|
13
|
-
|
|
16
|
+
export declare function StageModel({ model, setModel, modelSource, models, loading, error, onRefresh }: {
|
|
17
|
+
model: string;
|
|
18
|
+
setModel: (model: string) => void;
|
|
19
|
+
modelSource: OnboardingModel['source'];
|
|
20
|
+
models: OnboardingModel[];
|
|
21
|
+
loading: boolean;
|
|
22
|
+
error?: string;
|
|
23
|
+
onRefresh: () => void;
|
|
24
|
+
}): import("react").JSX.Element;
|
|
25
|
+
export declare function AgentOnboarding({ onComplete, onCreated, workspaces }: {
|
|
26
|
+
onComplete: (data: AgentSetupData) => Promise<string>;
|
|
27
|
+
onCreated: (agentId: string) => void;
|
|
14
28
|
workspaces: Workspace[];
|
|
15
29
|
}): import("react").JSX.Element;
|
|
16
30
|
//# sourceMappingURL=AgentOnboarding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentOnboarding.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentOnboarding.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentOnboarding.d.ts","sourceRoot":"","sources":["../../../src/components/agent/AgentOnboarding.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAoG,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC9J,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAOpD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,wBAAwB,CAAA;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAmLD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAC9F,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,WAAW,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAA;IACxF,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,IAAI,CAAA;CACnF,+BAoCA;AA2RD,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,+BAuP9L"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { getAuxiliaryInferenceBridge } from '../../platformBridge.js';
|
|
3
|
+
import { WorkspaceCreationError } from '../../stores/workspaceCreationAttempt.js';
|
|
3
4
|
/*
|
|
4
5
|
* AgentOnboarding.tsx - 3-Stage Agent Creation Wizard
|
|
5
6
|
*
|
|
@@ -8,7 +9,9 @@ import { getAgentPlatformBridge } from '../../platformBridge.js';
|
|
|
8
9
|
* Stage 3: Placement & Review — workspace/team + summary + deploy
|
|
9
10
|
*/
|
|
10
11
|
import { useState, useEffect, useRef } from 'react';
|
|
11
|
-
import {
|
|
12
|
+
import { onboardingModelKey, onboardingRuntimeSelection, useOnboardingModels, validateOnboardingPlacement } from './onboardingModels.js';
|
|
13
|
+
import { AgentIdentityGenerator } from './AgentIdentityGenerator.js';
|
|
14
|
+
import { Code2, Search, Lightbulb, BarChart3, Sparkles, Info, ArrowRight, ArrowLeft, Rocket, ChevronDown, Plus, Pencil } from 'lucide-react';
|
|
12
15
|
// =============================================================================
|
|
13
16
|
// DATA
|
|
14
17
|
// =============================================================================
|
|
@@ -49,111 +52,10 @@ const templates = [
|
|
|
49
52
|
preview: '',
|
|
50
53
|
},
|
|
51
54
|
];
|
|
52
|
-
const models = [
|
|
53
|
-
{
|
|
54
|
-
id: 'claude-opus-4-6', name: 'Claude Opus 4.6', provider: 'Anthropic', badge: 'Most Capable',
|
|
55
|
-
description: 'Highest-end reasoning and planning for difficult multi-step work', recommended: true,
|
|
56
|
-
context: '200K tokens', pricing: '$15 / 1M tokens',
|
|
57
|
-
benchmarks: [
|
|
58
|
-
{ label: 'Reasoning', score: 97, max: 100 },
|
|
59
|
-
{ label: 'Coding', score: 95, max: 100 },
|
|
60
|
-
{ label: 'Knowledge', score: 94, max: 100 },
|
|
61
|
-
{ label: 'Speed', score: 62, max: 100 },
|
|
62
|
-
],
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: 'claude-sonnet-4-6', name: 'Claude Sonnet 4.6', provider: 'Anthropic', badge: 'Balanced',
|
|
66
|
-
description: 'Fast, strong general-purpose model for most agent tasks',
|
|
67
|
-
context: '200K tokens', pricing: '$3 / 1M tokens',
|
|
68
|
-
benchmarks: [
|
|
69
|
-
{ label: 'Reasoning', score: 89, max: 100 },
|
|
70
|
-
{ label: 'Coding', score: 90, max: 100 },
|
|
71
|
-
{ label: 'Knowledge', score: 88, max: 100 },
|
|
72
|
-
{ label: 'Speed', score: 90, max: 100 },
|
|
73
|
-
],
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
id: 'composer-2.5', name: 'Composer 2.5', provider: 'XENO', badge: 'Product Builder',
|
|
77
|
-
description: 'XENO Composer model for planning, product work, and agent execution through the XENO API',
|
|
78
|
-
context: '128K tokens', pricing: 'Usage-based',
|
|
79
|
-
benchmarks: [
|
|
80
|
-
{ label: 'Reasoning', score: 92, max: 100 },
|
|
81
|
-
{ label: 'Coding', score: 89, max: 100 },
|
|
82
|
-
{ label: 'Knowledge', score: 88, max: 100 },
|
|
83
|
-
{ label: 'Speed', score: 82, max: 100 },
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: 'gpt-5.3-codex', name: 'GPT-5.3 Codex', provider: 'OpenAI', badge: 'Code Expert',
|
|
88
|
-
description: 'Specialized coding model for implementation, editing, and debugging',
|
|
89
|
-
context: '128K tokens', pricing: '$12 / 1M tokens',
|
|
90
|
-
benchmarks: [
|
|
91
|
-
{ label: 'Reasoning', score: 91, max: 100 },
|
|
92
|
-
{ label: 'Coding', score: 97, max: 100 },
|
|
93
|
-
{ label: 'Knowledge', score: 88, max: 100 },
|
|
94
|
-
{ label: 'Speed', score: 72, max: 100 },
|
|
95
|
-
],
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
id: 'gpt-5.4', name: 'GPT-5.4', provider: 'OpenAI', badge: 'Frontier',
|
|
99
|
-
description: 'Frontier general model for reasoning-heavy agent work',
|
|
100
|
-
context: '128K tokens', pricing: '$15 / 1M tokens',
|
|
101
|
-
benchmarks: [
|
|
102
|
-
{ label: 'Reasoning', score: 95, max: 100 },
|
|
103
|
-
{ label: 'Coding', score: 92, max: 100 },
|
|
104
|
-
{ label: 'Knowledge', score: 92, max: 100 },
|
|
105
|
-
{ label: 'Speed', score: 74, max: 100 },
|
|
106
|
-
],
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
id: 'gpt-5.4-mini', name: 'GPT-5.4 Mini', provider: 'OpenAI', badge: 'Efficient',
|
|
110
|
-
description: 'Smaller GPT-5.4 variant for fast general agent work with lower cost',
|
|
111
|
-
context: '128K tokens', pricing: '$3 / 1M tokens',
|
|
112
|
-
benchmarks: [
|
|
113
|
-
{ label: 'Reasoning', score: 88, max: 100 },
|
|
114
|
-
{ label: 'Coding', score: 86, max: 100 },
|
|
115
|
-
{ label: 'Knowledge', score: 86, max: 100 },
|
|
116
|
-
{ label: 'Speed', score: 92, max: 100 },
|
|
117
|
-
],
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
id: 'claude-haiku-4-5-20251001', name: 'Claude Haiku 4.5', provider: 'Anthropic', badge: 'Fastest',
|
|
121
|
-
description: 'Fastest cloud option for lightweight agents and quick interactions',
|
|
122
|
-
context: '200K tokens', pricing: '$1 / 1M tokens',
|
|
123
|
-
benchmarks: [
|
|
124
|
-
{ label: 'Reasoning', score: 81, max: 100 },
|
|
125
|
-
{ label: 'Coding', score: 78, max: 100 },
|
|
126
|
-
{ label: 'Knowledge', score: 82, max: 100 },
|
|
127
|
-
{ label: 'Speed', score: 98, max: 100 },
|
|
128
|
-
],
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
id: 'kimi-k2.5', name: 'Kimi K2.5', provider: 'Moonshot', badge: 'Efficient',
|
|
132
|
-
description: 'Efficient cloud model with strong reasoning and lower cost',
|
|
133
|
-
context: '128K tokens', pricing: '$2 / 1M tokens',
|
|
134
|
-
benchmarks: [
|
|
135
|
-
{ label: 'Reasoning', score: 87, max: 100 },
|
|
136
|
-
{ label: 'Coding', score: 85, max: 100 },
|
|
137
|
-
{ label: 'Knowledge', score: 84, max: 100 },
|
|
138
|
-
{ label: 'Speed', score: 82, max: 100 },
|
|
139
|
-
],
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
id: 'gpt-5.1-codex-mini', name: 'GPT-5.1 Codex Mini', provider: 'OpenAI', badge: 'Fast Code',
|
|
143
|
-
description: 'Lower-cost coding model for quick edits and smaller tasks',
|
|
144
|
-
context: '128K tokens', pricing: '$3 / 1M tokens',
|
|
145
|
-
benchmarks: [
|
|
146
|
-
{ label: 'Reasoning', score: 84, max: 100 },
|
|
147
|
-
{ label: 'Coding', score: 90, max: 100 },
|
|
148
|
-
{ label: 'Knowledge', score: 79, max: 100 },
|
|
149
|
-
{ label: 'Speed', score: 90, max: 100 },
|
|
150
|
-
],
|
|
151
|
-
},
|
|
152
|
-
];
|
|
153
55
|
// =============================================================================
|
|
154
56
|
// STAGE 1 — PURPOSE & IDENTITY
|
|
155
57
|
// =============================================================================
|
|
156
|
-
function StageIdentity({ template, setTemplate, customInstructions, setCustomInstructions, }) {
|
|
58
|
+
function StageIdentity({ template, setTemplate, customInstructions, setCustomInstructions, models, }) {
|
|
157
59
|
const isCustom = template === 'custom';
|
|
158
60
|
const selectedTemplate = templates.find(t => t.id === template);
|
|
159
61
|
const [showHint, setShowHint] = useState(false);
|
|
@@ -184,73 +86,19 @@ function StageIdentity({ template, setTemplate, customInstructions, setCustomIns
|
|
|
184
86
|
`, style: { animationDelay: `${i * 50}ms` }, children: [_jsx("div", { className: `w-7 h-7 rounded-md flex items-center justify-center flex-shrink-0 ${isSelected ? 'bg-white/[0.1] text-white' : 'bg-white/[0.04] text-white/40'}`, children: _jsx(Icon, { className: "w-3.5 h-3.5", strokeWidth: 1.5 }) }), _jsxs("div", { children: [_jsx("div", { className: `text-[11px] font-medium ${isSelected ? 'text-white' : 'text-white/60'}`, children: t.name }), _jsx("div", { className: "text-[8px] text-white/25", children: t.description })] })] }, t.id));
|
|
185
87
|
}) }), _jsx("div", { className: "stage-enter-item flex flex-col", style: { animationDelay: '200ms' }, children: _jsxs("div", { className: "flex-1 flex flex-col min-h-[280px] bg-black/30 border border-white/[0.08] rounded-lg overflow-hidden focus-within:border-white/[0.15] transition-colors", children: [_jsx("textarea", { value: isCustom ? customInstructions : (selectedTemplate?.preview || ''), onChange: (e) => isCustom && setCustomInstructions(e.target.value), readOnly: !isCustom && !!selectedTemplate, placeholder: isCustom
|
|
186
88
|
? "I want an agent that...\n\n• Reviews pull requests and suggests improvements\n• Follows our team's coding standards\n• Explains changes clearly for junior developers\n• Flags security concerns automatically"
|
|
187
|
-
: 'Select a template to see instructions...', className: `flex-1 w-full px-4 py-3 bg-transparent text-[13px] leading-relaxed placeholder-white/15 focus:outline-none resize-none font-mono hide-scrollbar ${isCustom ? 'text-white' : 'text-white/50'}` }), isCustom && (_jsx(
|
|
188
|
-
}
|
|
189
|
-
function formatSize(bytes) {
|
|
190
|
-
const gb = bytes / (1024 * 1024 * 1024);
|
|
191
|
-
return gb >= 1 ? `${gb.toFixed(1)} GB` : `${(bytes / (1024 * 1024)).toFixed(0)} MB`;
|
|
89
|
+
: 'Select a template to see instructions...', className: `flex-1 w-full px-4 py-3 bg-transparent text-[13px] leading-relaxed placeholder-white/15 focus:outline-none resize-none font-mono hide-scrollbar ${isCustom ? 'text-white' : 'text-white/50'}` }), isCustom && (_jsx(AgentIdentityGenerator, { models: models, instructions: customInstructions, onApply: setCustomInstructions }))] }) })] })] }));
|
|
192
90
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
const [
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
setLocalLoading(false);
|
|
205
|
-
}).catch(() => setLocalLoading(false));
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
setLocalLoading(false);
|
|
209
|
-
}
|
|
210
|
-
}, []);
|
|
211
|
-
const handleSelectModel = (id) => {
|
|
212
|
-
setModel(id);
|
|
213
|
-
if (benchmarkOpened.current && !id.startsWith('local:')) {
|
|
214
|
-
setInfoModel(id);
|
|
215
|
-
}
|
|
216
|
-
else if (id.startsWith('local:')) {
|
|
217
|
-
setInfoModel(null);
|
|
218
|
-
benchmarkOpened.current = false;
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
const handleToggleBenchmark = (id) => {
|
|
222
|
-
if (infoModel === id) {
|
|
223
|
-
setInfoModel(null);
|
|
224
|
-
benchmarkOpened.current = false;
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
setInfoModel(id);
|
|
228
|
-
benchmarkOpened.current = true;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
const selectedLocal = model.startsWith('local:') ? localModels.find(m => m.id === model) : null;
|
|
232
|
-
return (_jsxs("div", { className: `grid gap-6 transition-all duration-300 ${(modelSource === 'cloud' && inspected) || (modelSource === 'local' && selectedLocal) ? 'grid-cols-[1.4fr,0.6fr]' : 'grid-cols-1'}`, children: [_jsxs("div", { className: "space-y-1.5", children: [modelSource === 'cloud' && models.map((m, i) => {
|
|
233
|
-
const isSelected = model === m.id;
|
|
234
|
-
return (_jsx("button", { onClick: () => handleSelectModel(m.id), className: `
|
|
235
|
-
stage-enter-item w-full px-4 py-3 rounded-lg border text-left transition-all duration-200
|
|
236
|
-
${isSelected
|
|
237
|
-
? 'border-white/20 bg-white/[0.06]'
|
|
238
|
-
: 'border-white/[0.06] bg-white/[0.02] hover:border-white/[0.1] hover:bg-white/[0.04]'}
|
|
239
|
-
`, style: { animationDelay: `${i * 40}ms` }, children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: `w-1.5 h-5 rounded-sm flex-shrink-0 transition-colors ${isSelected ? 'bg-white' : 'bg-white/[0.08]'}` }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: `text-[12px] font-medium ${isSelected ? 'text-white' : 'text-white/60'}`, children: m.name }), _jsx("span", { className: "text-[9px] text-white/20", children: m.provider }), m.recommended && (_jsx("span", { className: "text-[8px] px-1.5 py-0.5 rounded bg-white/[0.08] text-white/50 uppercase tracking-wider font-medium", children: "Recommended" }))] }), _jsx("p", { className: `text-[10px] mt-0.5 ${isSelected ? 'text-white/35' : 'text-white/20'}`, children: m.description })] })] }), _jsxs("div", { className: "flex items-center gap-2 flex-shrink-0", children: [_jsx("span", { className: `text-[9px] px-2 py-0.5 rounded-md ${isSelected ? 'bg-white/[0.1] text-white/60' : 'bg-white/[0.04] text-white/25'}`, children: m.badge }), _jsx("div", { role: "button", onClick: (e) => {
|
|
240
|
-
e.stopPropagation();
|
|
241
|
-
handleToggleBenchmark(m.id);
|
|
242
|
-
}, className: `w-5 h-5 rounded-[3px] border flex items-center justify-center transition-colors ${infoModel === m.id
|
|
243
|
-
? 'border-white/20 bg-white/[0.08] text-white/50'
|
|
244
|
-
: 'border-white/[0.06] text-white/20 hover:text-white/40 hover:border-white/[0.12]'}`, children: _jsx(BarChart3, { className: "w-2.5 h-2.5" }) })] })] }) }, m.id));
|
|
245
|
-
}), modelSource === 'local' && (_jsxs(_Fragment, { children: [localLoading && (_jsx("div", { className: "flex items-center justify-center py-12", children: _jsx("span", { className: "text-[12px] text-white/25", children: "Scanning xeno-rt model directories..." }) })), !localLoading && localModels.length === 0 && (_jsxs("div", { className: "flex flex-col items-center justify-center py-12 gap-3", children: [_jsx(HardDrive, { className: "w-8 h-8 text-white/10" }), _jsxs("div", { className: "text-center", children: [_jsx("p", { className: "text-[12px] text-white/30", children: "No local models found" }), _jsx("p", { className: "text-[10px] text-white/15 mt-1", children: "Add GGUF models to the xeno-rt cache or .xeno/models to use local inference" })] })] })), !localLoading && localModels.map((m, i) => {
|
|
246
|
-
const isSelected = model === m.id;
|
|
247
|
-
return (_jsx("button", { onClick: () => handleSelectModel(m.id), className: `
|
|
248
|
-
stage-enter-item w-full px-4 py-3 rounded-lg border text-left transition-all duration-200
|
|
249
|
-
${isSelected
|
|
250
|
-
? 'border-white/20 bg-white/[0.06]'
|
|
251
|
-
: 'border-white/[0.06] bg-white/[0.02] hover:border-white/[0.1] hover:bg-white/[0.04]'}
|
|
252
|
-
`, style: { animationDelay: `${i * 40}ms` }, children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: `w-1.5 h-5 rounded-sm flex-shrink-0 transition-colors ${isSelected ? 'bg-white' : 'bg-white/[0.08]'}` }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: `text-[12px] font-medium ${isSelected ? 'text-white' : 'text-white/60'}`, children: m.name }), _jsx("span", { className: "text-[9px] text-white/20", children: m.tag }), m.parameterSize && (_jsx("span", { className: "text-[8px] px-1.5 py-0.5 rounded bg-white/[0.08] text-white/50 font-medium", children: m.parameterSize }))] }), _jsxs("p", { className: `text-[10px] mt-0.5 ${isSelected ? 'text-white/35' : 'text-white/20'}`, children: [m.family ? `${m.family} · ` : '', formatSize(m.size), " \u00C2\u00B7 Runs locally"] })] })] }), _jsx("span", { className: `text-[9px] px-2 py-0.5 rounded-md flex-shrink-0 ${isSelected ? 'bg-white/[0.1] text-white/60' : 'bg-white/[0.04] text-white/25'}`, children: "Local" })] }) }, m.id));
|
|
253
|
-
})] }))] }), modelSource === 'cloud' && inspected && (_jsxs("div", { className: "rounded-lg border border-white/[0.06] bg-white/[0.02] p-4 flex flex-col gap-4", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-[12px] font-medium text-white", children: inspected.name }), _jsx("span", { className: "text-[9px] text-white/25", children: inspected.provider })] }), _jsx("p", { className: "text-[10px] text-white/30 mt-1", children: inspected.description })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("span", { className: "text-[9px] text-white/25 uppercase tracking-wider font-medium", children: "Benchmarks" }), inspected.benchmarks.map((b) => (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between mb-1", children: [_jsx("span", { className: "text-[10px] text-white/40", children: b.label }), _jsx("span", { className: "text-[10px] text-white/50 font-medium", children: b.score })] }), _jsx("div", { className: "h-1 rounded-full bg-white/[0.06] overflow-hidden", children: _jsx("div", { className: "h-full rounded-full bg-white/20 transition-all duration-500", style: { width: `${(b.score / b.max) * 100}%` } }) })] }, b.label)))] }), _jsxs("div", { className: "flex flex-col gap-2 pt-2 border-t border-white/[0.06]", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-[10px] text-white/30", children: "Context" }), _jsx("span", { className: "text-[10px] text-white/50", children: inspected.context })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-[10px] text-white/30", children: "Pricing" }), _jsx("span", { className: "text-[10px] text-white/50", children: inspected.pricing })] })] })] })), modelSource === 'local' && selectedLocal && (_jsxs("div", { className: "rounded-lg border border-white/[0.06] bg-white/[0.02] p-4 flex flex-col gap-4", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("h3", { className: "text-[12px] font-medium text-white", children: selectedLocal.name }), _jsx("span", { className: "text-[9px] text-white/25", children: selectedLocal.tag })] }), _jsx("p", { className: "text-[10px] text-white/30 mt-1", children: "Local model via xeno-rt" })] }), _jsxs("div", { className: "flex flex-col gap-2 pt-2 border-t border-white/[0.06]", children: [selectedLocal.family && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-[10px] text-white/30", children: "Family" }), _jsx("span", { className: "text-[10px] text-white/50", children: selectedLocal.family })] })), selectedLocal.parameterSize && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-[10px] text-white/30", children: "Parameters" }), _jsx("span", { className: "text-[10px] text-white/50", children: selectedLocal.parameterSize })] })), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-[10px] text-white/30", children: "Size" }), _jsx("span", { className: "text-[10px] text-white/50", children: formatSize(selectedLocal.size) })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-[10px] text-white/30", children: "Pricing" }), _jsx("span", { className: "text-[10px] text-green-400/60", children: "Free (local)" })] })] })] }))] }));
|
|
91
|
+
// =============================================================================
|
|
92
|
+
// STAGE 2 — MODEL SELECTION
|
|
93
|
+
// =============================================================================
|
|
94
|
+
export function StageModel({ model, setModel, modelSource, models, loading, error, onRefresh }) {
|
|
95
|
+
const [acpProvider, setAcpProvider] = useState(() => models.find(entry => onboardingModelKey(entry) === model)?.acpAgentConfigId ?? '');
|
|
96
|
+
const sourceModels = models.filter(entry => entry.source === modelSource);
|
|
97
|
+
const providers = [...new Map(sourceModels.filter(entry => entry.acpAgentConfigId).map(entry => [entry.acpAgentConfigId, entry.provider])).entries()];
|
|
98
|
+
const visible = sourceModels.filter(entry => modelSource !== 'acp' || entry.acpAgentConfigId === acpProvider);
|
|
99
|
+
return (_jsxs("div", { className: "space-y-3", "aria-busy": loading, children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("p", { className: "text-[11px] text-white/45", children: "Available models reported by the connected host." }), _jsx("button", { type: "button", onClick: onRefresh, disabled: loading, className: "text-[11px] text-white/65 disabled:opacity-40", children: "Refresh models" })] }), loading && _jsx("p", { role: "status", children: "Loading available models..." }), error && _jsx("p", { role: "alert", className: "text-[11px] text-amber-300", children: error }), modelSource === 'acp' && _jsxs("label", { className: "block text-[11px] text-white/65", children: ["ACP provider", _jsxs("select", { "aria-label": "ACP provider", value: acpProvider, disabled: loading, onChange: event => { setAcpProvider(event.target.value); setModel(''); }, className: "mt-1 w-full rounded border border-white/10 bg-[#111114] p-2", children: [_jsx("option", { value: "", children: "Select a provider..." }), providers.map(([id, label]) => _jsx("option", { value: id, children: label }, id))] })] }), !loading && modelSource === 'acp' && providers.length > 0 && !acpProvider
|
|
100
|
+
? _jsx("p", { className: "text-[12px] text-white/45", children: "Select an ACP provider to see its available models." })
|
|
101
|
+
: !loading && !visible.length && _jsxs("p", { className: "text-[12px] text-white/45", children: ["No available ", modelSource, " models. Check the provider connection and refresh."] }), model && !visible.some(entry => onboardingModelKey(entry) === model) && _jsx("p", { role: "alert", children: "The selected model is no longer available. Select another model." }), _jsx("div", { className: "max-h-[50vh] overflow-auto space-y-2", "aria-label": "Available models", children: visible.map(entry => (_jsxs("button", { type: "button", "aria-pressed": model === onboardingModelKey(entry), onClick: () => setModel(onboardingModelKey(entry)), className: `w-full rounded-md border p-3 text-left focus-visible:outline focus-visible:outline-2 ${model === onboardingModelKey(entry) ? 'border-white/25 bg-white/10' : 'border-white/10 bg-white/[0.02]'}`, children: [_jsx("span", { className: "block text-[12px] text-white", children: entry.name }), _jsxs("span", { className: "block text-[10px] text-white/50", children: [entry.id, " \u00B7 ", entry.provider] }), _jsx("span", { className: "block text-[10px] text-white/40", children: entry.contextWindowTokens ? `Context: ${entry.contextWindowTokens.toLocaleString()} tokens` : 'Context not reported' })] }, onboardingModelKey(entry)))) }), _jsx("p", { className: "text-[10px] text-white/35", children: "Pricing and benchmark measurements are not supplied by this catalog." })] }));
|
|
254
102
|
}
|
|
255
103
|
function Dropdown({ label, value, options, onChange, customName, onCustomNameChange, }) {
|
|
256
104
|
const [open, setOpen] = useState(false);
|
|
@@ -282,9 +130,9 @@ function Dropdown({ label, value, options, onChange, customName, onCustomNameCha
|
|
|
282
130
|
// =============================================================================
|
|
283
131
|
// STAGE 3 — PLACEMENT & REVIEW
|
|
284
132
|
// =============================================================================
|
|
285
|
-
function StagePlacement({ workspace, setWorkspace, team, setTeam, agentName, template, model, workspaces, workspaceName, setWorkspaceName, teamName, setTeamName, }) {
|
|
133
|
+
function StagePlacement({ workspace, setWorkspace, team, setTeam, agentName, template, model, models, workspaces, workspaceName, setWorkspaceName, teamName, setTeamName, }) {
|
|
286
134
|
const templateData = templates.find(t => t.id === template);
|
|
287
|
-
const modelData = models.find(m => m
|
|
135
|
+
const modelData = models.find(m => onboardingModelKey(m) === model);
|
|
288
136
|
const modelDisplay = modelData
|
|
289
137
|
? { name: modelData.name, sub: modelData.provider }
|
|
290
138
|
: model.startsWith('local:')
|
|
@@ -343,14 +191,20 @@ function ProgressSteps({ current }) {
|
|
|
343
191
|
// =============================================================================
|
|
344
192
|
// MAIN ONBOARDING COMPONENT
|
|
345
193
|
// =============================================================================
|
|
346
|
-
export function AgentOnboarding({ onComplete, workspaces }) {
|
|
194
|
+
export function AgentOnboarding({ onComplete, onCreated, workspaces }) {
|
|
347
195
|
const [stage, setStage] = useState(1);
|
|
196
|
+
const mounted = useRef(false);
|
|
197
|
+
const deploying = useRef(false);
|
|
198
|
+
const submitted = useRef(null);
|
|
199
|
+
const [awaitingSave, setAwaitingSave] = useState(false);
|
|
200
|
+
useEffect(() => { mounted.current = true; return () => { mounted.current = false; }; }, []);
|
|
348
201
|
// Stage 1
|
|
349
202
|
const [template, setTemplate] = useState(null);
|
|
350
203
|
const [name, setName] = useState('');
|
|
351
204
|
const [customInstructions, setCustomInstructions] = useState('');
|
|
352
205
|
// Stage 2
|
|
353
|
-
const [model, setModel] = useState('
|
|
206
|
+
const [model, setModel] = useState('');
|
|
207
|
+
const { models, loading: modelsLoading, errors: modelErrors, refresh: refreshModels } = useOnboardingModels();
|
|
354
208
|
const [modelSource, setModelSource] = useState('cloud');
|
|
355
209
|
// Stage 3
|
|
356
210
|
const [workspace, setWorkspace] = useState('');
|
|
@@ -361,16 +215,19 @@ export function AgentOnboarding({ onComplete, workspaces }) {
|
|
|
361
215
|
const [deployStatus, setDeployStatus] = useState('');
|
|
362
216
|
const [deployError, setDeployError] = useState(null);
|
|
363
217
|
const canAdvance = () => {
|
|
218
|
+
if (submitted.current)
|
|
219
|
+
return stage === 3;
|
|
364
220
|
if (stage === 1)
|
|
365
221
|
return template !== null && name.trim().length > 0;
|
|
366
222
|
if (stage === 2)
|
|
367
|
-
return model.
|
|
223
|
+
return !modelsLoading && models.some(entry => onboardingModelKey(entry) === model && entry.source === modelSource);
|
|
368
224
|
if (stage === 3)
|
|
369
|
-
return
|
|
225
|
+
return !modelsLoading && models.some(entry => onboardingModelKey(entry) === model && entry.source === modelSource)
|
|
226
|
+
&& validateOnboardingPlacement(workspaces, workspace, team, workspaceName, teamName);
|
|
370
227
|
return false;
|
|
371
228
|
};
|
|
372
229
|
const handleNext = async () => {
|
|
373
|
-
if (
|
|
230
|
+
if (deploying.current || !canAdvance())
|
|
374
231
|
return;
|
|
375
232
|
if (stage < 3) {
|
|
376
233
|
setDeployError(null);
|
|
@@ -378,46 +235,81 @@ export function AgentOnboarding({ onComplete, workspaces }) {
|
|
|
378
235
|
}
|
|
379
236
|
else {
|
|
380
237
|
setDeployError(null);
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
238
|
+
deploying.current = true;
|
|
239
|
+
setIsDeploying(true);
|
|
240
|
+
try {
|
|
241
|
+
if (submitted.current) {
|
|
242
|
+
setDeployStatus('Retrying workspace save...');
|
|
243
|
+
const agentId = await onComplete(submitted.current);
|
|
244
|
+
if (mounted.current)
|
|
245
|
+
onCreated(agentId);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const currentModels = await refreshModels(true);
|
|
249
|
+
if (!mounted.current)
|
|
250
|
+
return;
|
|
251
|
+
const selectedModel = currentModels.find(entry => onboardingModelKey(entry) === model && entry.source === modelSource);
|
|
252
|
+
if (!selectedModel) {
|
|
253
|
+
setDeployError('The selected model is no longer available. Return to Model and choose an available model.');
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
if (modelSource === 'local') {
|
|
257
|
+
setDeployStatus('Preparing local model...');
|
|
258
|
+
try {
|
|
259
|
+
if (!getAuxiliaryInferenceBridge()?.localWarmup) {
|
|
260
|
+
setDeployError('Local model warmup bridge is unavailable. Restart the app and try again.');
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const warmup = await getAuxiliaryInferenceBridge().localWarmup({ model: selectedModel.id, timeoutMs: 120000 });
|
|
264
|
+
if (!mounted.current)
|
|
265
|
+
return;
|
|
266
|
+
if (!warmup.success) {
|
|
267
|
+
setDeployError(warmup.error || 'Failed to warm up local model.');
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
setDeployStatus('Local model ready. Finalizing deployment...');
|
|
388
271
|
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
setDeployError(warmup.error || 'Failed to warm up local model.');
|
|
272
|
+
catch (err) {
|
|
273
|
+
setDeployError(err instanceof Error ? err.message : 'Failed to warm up local model.');
|
|
392
274
|
return;
|
|
393
275
|
}
|
|
394
|
-
setDeployStatus('Local model ready. Finalizing deployment...');
|
|
395
276
|
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
277
|
+
const submission = { submissionId: crypto.randomUUID(), name, template: template || 'custom', customInstructions: customInstructions || templates.find(t => t.id === template)?.preview || '', model: selectedModel.id, runtimeSelection: onboardingRuntimeSelection(selectedModel), workspace, team, workspaceName: workspaceName || undefined, teamName: teamName || undefined };
|
|
278
|
+
submitted.current = submission;
|
|
279
|
+
setAwaitingSave(true);
|
|
280
|
+
setDeployStatus('Saving agent and placement...');
|
|
281
|
+
const agentId = await onComplete(submission);
|
|
282
|
+
if (mounted.current)
|
|
283
|
+
onCreated(agentId);
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
if (error instanceof WorkspaceCreationError && !error.pendingCreation) {
|
|
287
|
+
submitted.current = null;
|
|
288
|
+
if (mounted.current)
|
|
289
|
+
setAwaitingSave(false);
|
|
399
290
|
}
|
|
400
|
-
|
|
291
|
+
if (mounted.current)
|
|
292
|
+
setDeployError(error instanceof Error ? error.message : 'Agent deployment failed.');
|
|
293
|
+
}
|
|
294
|
+
finally {
|
|
295
|
+
deploying.current = false;
|
|
296
|
+
if (mounted.current)
|
|
401
297
|
setIsDeploying(false);
|
|
402
|
-
}
|
|
403
298
|
}
|
|
404
|
-
onComplete({ name, template: template || 'custom', customInstructions: customInstructions || templates.find(t => t.id === template)?.preview || '', model, workspace, team, workspaceName: workspaceName || undefined, teamName: teamName || undefined });
|
|
405
299
|
}
|
|
406
300
|
};
|
|
407
301
|
const handleBack = () => {
|
|
408
|
-
if (isDeploying)
|
|
302
|
+
if (isDeploying || awaitingSave)
|
|
409
303
|
return;
|
|
410
304
|
if (stage > 1)
|
|
411
305
|
setStage(stage - 1);
|
|
412
306
|
};
|
|
413
|
-
return (_jsxs("div", { className: "flex-1 flex flex-col bg-[#0a0a0c]", children: [_jsx("div", { className: "flex-1 flex items-start justify-center overflow-auto pt-[12vh] pb-16", children: _jsxs("div", { className: `w-full transition-all duration-500 ease-out ${stage === 2 ? 'px-3 max-w-[860px]' : stage === 3 ? 'px-6 max-w-[560px]' : 'px-6 max-w-[720px]'}`, children: [_jsxs("div", { className: "mb-8 text-center", children: [_jsxs("h1", { className: "stage-enter-header text-[20px] font-semibold text-white tracking-tight", children: [stage === 1 && 'Purpose & Identity', stage === 2 && 'Select Model', stage === 3 && 'Placement & Review'] }), _jsxs("p", { className: "stage-enter-header text-[12px] text-white/35 mt-1", style: { animationDelay: '60ms' }, children: [stage === 1 && 'Choose a template or describe your own agent', stage === 2 && 'Pick the AI model that powers your agent', stage === 3 && 'Place your agent and confirm setup'] }), stage === 2 && (_jsxs("div", { className: "stage-enter-item flex items-center justify-center gap-1 mt-4", style: { animationDelay: '90ms' }, children: [_jsx("button", { onClick: () => { setModelSource('cloud');
|
|
414
|
-
setModel('claude-opus-4-6'); }, className: `px-4 py-1.5 rounded-l-md text-[11px] font-medium transition-all ${modelSource === 'cloud'
|
|
307
|
+
return (_jsxs("div", { className: "flex-1 flex flex-col bg-[#0a0a0c]", children: [_jsx("div", { className: "flex-1 flex items-start justify-center overflow-auto pt-[12vh] pb-16", children: _jsxs("div", { className: `w-full transition-all duration-500 ease-out ${stage === 2 ? 'px-3 max-w-[860px]' : stage === 3 ? 'px-6 max-w-[560px]' : 'px-6 max-w-[720px]'}`, children: [_jsxs("div", { className: "mb-8 text-center", children: [_jsxs("h1", { className: "stage-enter-header text-[20px] font-semibold text-white tracking-tight", children: [stage === 1 && 'Purpose & Identity', stage === 2 && 'Select Model', stage === 3 && 'Placement & Review'] }), _jsxs("p", { className: "stage-enter-header text-[12px] text-white/35 mt-1", style: { animationDelay: '60ms' }, children: [stage === 1 && 'Choose a template or describe your own agent', stage === 2 && 'Pick the AI model that powers your agent', stage === 3 && 'Place your agent and confirm setup'] }), stage === 2 && (_jsxs("div", { className: "stage-enter-item flex items-center justify-center gap-1 mt-4", style: { animationDelay: '90ms' }, children: [_jsx("button", { onClick: () => { setModelSource('cloud'); setModel(''); }, className: `px-4 py-1.5 rounded-l-md text-[11px] font-medium transition-all ${modelSource === 'cloud'
|
|
415
308
|
? 'bg-white/[0.12] text-white'
|
|
416
|
-
: 'bg-white/[0.03] text-white/30 hover:text-white/50'}`, children: "Cloud" }), _jsx("button", { onClick: () => { setModelSource('local');
|
|
417
|
-
setModel(''); }, className: `px-4 py-1.5 rounded-r-md text-[11px] font-medium transition-all ${modelSource === 'local'
|
|
309
|
+
: 'bg-white/[0.03] text-white/30 hover:text-white/50'}`, children: "Cloud" }), _jsx("button", { onClick: () => { setModelSource('local'); setModel(''); }, className: `px-4 py-1.5 rounded-r-md text-[11px] font-medium transition-all ${modelSource === 'local'
|
|
418
310
|
? 'bg-white/[0.12] text-white'
|
|
419
|
-
: 'bg-white/[0.03] text-white/30 hover:text-white/50'}`, children: "Local" })] })), stage === 1 && (_jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), placeholder: "Agent name...", className: "stage-enter-item mt-5 w-full max-w-[320px] mx-auto px-3 py-2.5 bg-black/30 border border-white/[0.08] rounded-md text-white text-[13px] text-center placeholder-white/20 focus:outline-none focus:border-white/[0.15] transition-colors", style: { animationDelay: '120ms' } }))] }, `header-${stage}`), _jsxs("
|
|
311
|
+
: 'bg-white/[0.03] text-white/30 hover:text-white/50'}`, children: "Local" }), _jsx("button", { onClick: () => { setModelSource('acp'); setModel(''); }, className: `px-4 py-1.5 rounded-md text-[11px] font-medium ${modelSource === 'acp' ? 'bg-white/[0.12] text-white' : 'bg-white/[0.03] text-white/30'}`, children: "ACP" })] })), stage === 1 && (_jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), placeholder: "Agent name...", className: "stage-enter-item mt-5 w-full max-w-[320px] mx-auto px-3 py-2.5 bg-black/30 border border-white/[0.08] rounded-md text-white text-[13px] text-center placeholder-white/20 focus:outline-none focus:border-white/[0.15] transition-colors", style: { animationDelay: '120ms' } }))] }, `header-${stage}`), _jsxs("fieldset", { disabled: isDeploying || awaitingSave, className: "min-w-0 stage-enter-item", style: { animationDelay: '150ms' }, children: [stage === 1 && (_jsx(StageIdentity, { template: template, setTemplate: setTemplate, customInstructions: customInstructions, setCustomInstructions: setCustomInstructions, models: models })), stage === 2 && (_jsx(StageModel, { model: model, setModel: setModel, modelSource: modelSource, models: models, loading: modelsLoading, error: modelErrors[modelSource], onRefresh: () => { void refreshModels(true); } })), stage === 3 && (_jsx(StagePlacement, { workspace: workspace, setWorkspace: setWorkspace, team: team, setTeam: setTeam, agentName: name, template: template, model: model, models: models, workspaces: workspaces, workspaceName: workspaceName, setWorkspaceName: setWorkspaceName, teamName: teamName, setTeamName: setTeamName }))] }, `content-${stage}`)] }) }), _jsxs("footer", { className: "h-[48px] border-t border-white/[0.06] bg-[#09090b] flex items-center px-5", children: [_jsx("div", { className: "flex-1 flex justify-start", children: stage > 1 ? (_jsxs("button", { onClick: handleBack, disabled: isDeploying || awaitingSave, className: "flex items-center gap-1.5 px-3 py-1.5 text-white/40 hover:text-white/70 text-[12px] transition-colors", children: [_jsx(ArrowLeft, { className: "w-3.5 h-3.5" }), "Back"] })) : (_jsx("div", {})) }), _jsx("div", { className: "flex-1 flex justify-center", children: _jsx(ProgressSteps, { current: stage }) }), _jsxs("div", { className: "flex-1 flex justify-end", children: [stage === 3 && (isDeploying || deployError) && (_jsx("div", { className: "mr-3 flex items-center", children: isDeploying ? (_jsx("span", { className: "text-[11px] text-white/40", children: deployStatus || 'Verifying available model...' })) : deployError ? (_jsxs("span", { role: "alert", className: "text-[11px] text-red-400/80", children: [deployError, awaitingSave ? ' Retry saves this same agent.' : ''] })) : null })), _jsx("button", { onClick: () => { void handleNext(); }, disabled: !canAdvance() || isDeploying, className: `flex items-center gap-2 px-5 py-2 rounded-md text-[12px] font-semibold transition-all ${stage === 3
|
|
420
312
|
? 'bg-white text-black hover:bg-white/90 disabled:bg-white/[0.08] disabled:text-white/25'
|
|
421
|
-
: 'bg-white/[0.1] text-white hover:bg-white/[0.15] disabled:bg-white/[0.04] disabled:text-white/20'}`, children: stage === 3 ? (_jsxs(_Fragment, { children: [isDeploying ? 'Preparing
|
|
313
|
+
: 'bg-white/[0.1] text-white hover:bg-white/[0.15] disabled:bg-white/[0.04] disabled:text-white/20'}`, children: stage === 3 ? (_jsxs(_Fragment, { children: [isDeploying ? 'Preparing agent...' : awaitingSave ? 'Retry saving agent' : 'Deploy Agent', _jsx(Rocket, { className: "w-3.5 h-3.5" })] })) : (_jsxs(_Fragment, { children: ["Next", _jsx(ArrowRight, { className: "w-3.5 h-3.5" })] })) })] })] })] }));
|
|
422
314
|
}
|
|
423
315
|
//# sourceMappingURL=AgentOnboarding.js.map
|