ummaya 0.2.14 → 0.2.15
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/npm-shrinkwrap.json +2 -2
- package/package.json +7 -4
- package/pyproject.toml +2 -2
- package/tui/package.json +1 -1
- package/tui/src/buddy/CompanionSprite.tsx +1 -2
- package/tui/src/buddy/useBuddyNotification.tsx +1 -2
- package/tui/src/cli/controlAuth.ts +20 -0
- package/tui/src/cli/handlers/auth.ts +7 -7
- package/tui/src/cli/handlers/mcp.tsx +0 -1
- package/tui/src/cli/handlers/util.tsx +2 -3
- package/tui/src/cli/print.ts +7 -4
- package/tui/src/commands/add-dir/add-dir.tsx +1 -2
- package/tui/src/commands/agents/agents.tsx +1 -2
- package/tui/src/commands/bridge/bridge.tsx +1 -2
- package/tui/src/commands/btw/btw.tsx +1 -2
- package/tui/src/commands/config/config.tsx +1 -2
- package/tui/src/commands/context/context.tsx +1 -2
- package/tui/src/commands/copy/copy.tsx +1 -2
- package/tui/src/commands/desktop/desktop.tsx +1 -2
- package/tui/src/commands/diff/diff.tsx +1 -2
- package/tui/src/commands/doctor/doctor.tsx +1 -2
- package/tui/src/commands/effort/effort.tsx +1 -2
- package/tui/src/commands/exit/exit.tsx +1 -2
- package/tui/src/commands/export/export.tsx +1 -2
- package/tui/src/commands/extra-usage/extra-usage.tsx +1 -2
- package/tui/src/commands/fast/fast.tsx +0 -1
- package/tui/src/commands/feedback/feedback.tsx +1 -2
- package/tui/src/commands/help/help.tsx +1 -2
- package/tui/src/commands/hooks/hooks.tsx +1 -2
- package/tui/src/commands/ide/ide.tsx +0 -1
- package/tui/src/commands/install.tsx +0 -1
- package/tui/src/commands/login/login.tsx +1 -2
- package/tui/src/commands/logout/logout.tsx +0 -1
- package/tui/src/commands/mcp/mcp.tsx +1 -2
- package/tui/src/commands/memory/memory.tsx +0 -1
- package/tui/src/commands/mobile/mobile.tsx +0 -1
- package/tui/src/commands/model/model.tsx +0 -1
- package/tui/src/commands/output-style/output-style.tsx +1 -2
- package/tui/src/commands/passes/passes.tsx +1 -2
- package/tui/src/commands/permissions/permissions.tsx +1 -2
- package/tui/src/commands/plan/plan.tsx +1 -2
- package/tui/src/commands/plugin/AddMarketplace.tsx +1 -2
- package/tui/src/commands/plugin/BrowseMarketplace.tsx +1 -2
- package/tui/src/commands/plugin/DiscoverPlugins.tsx +0 -1
- package/tui/src/commands/plugin/ManageMarketplaces.tsx +0 -1
- package/tui/src/commands/plugin/ManagePlugins.tsx +1 -2
- package/tui/src/commands/plugin/PluginErrors.tsx +1 -2
- package/tui/src/commands/plugin/PluginOptionsDialog.tsx +1 -2
- package/tui/src/commands/plugin/PluginOptionsFlow.tsx +1 -2
- package/tui/src/commands/plugin/PluginSettings.tsx +1 -2
- package/tui/src/commands/plugin/PluginTrustWarning.tsx +0 -1
- package/tui/src/commands/plugin/UnifiedInstalledCell.tsx +1 -2
- package/tui/src/commands/plugin/ValidatePlugin.tsx +1 -2
- package/tui/src/commands/plugin/index.tsx +0 -1
- package/tui/src/commands/plugin/plugin.tsx +1 -2
- package/tui/src/commands/plugin/pluginDetailsHelpers.tsx +1 -2
- package/tui/src/commands/privacy-settings/privacy-settings.tsx +0 -1
- package/tui/src/commands/rate-limit-options/rate-limit-options.tsx +1 -2
- package/tui/src/commands/remote-env/remote-env.tsx +1 -2
- package/tui/src/commands/remote-setup/remote-setup.tsx +0 -1
- package/tui/src/commands/resume/resume.tsx +1 -2
- package/tui/src/commands/review/UltrareviewOverageDialog.tsx +1 -2
- package/tui/src/commands/review/ultrareviewCommand.tsx +0 -1
- package/tui/src/commands/sandbox-toggle/sandbox-toggle.tsx +1 -2
- package/tui/src/commands/session/session.tsx +0 -1
- package/tui/src/commands/skills/skills.tsx +1 -2
- package/tui/src/commands/stats/stats.tsx +1 -2
- package/tui/src/commands/status/status.tsx +1 -2
- package/tui/src/commands/statusline.tsx +0 -1
- package/tui/src/commands/tag/tag.tsx +1 -2
- package/tui/src/commands/tasks/tasks.tsx +1 -2
- package/tui/src/commands/terminalSetup/terminalSetup.tsx +1 -2
- package/tui/src/commands/theme/theme.tsx +1 -2
- package/tui/src/commands/thinkback/thinkback.tsx +0 -1
- package/tui/src/commands/ultraplan.tsx +0 -1
- package/tui/src/commands/usage/usage.tsx +1 -2
- package/tui/src/commands/voice/voice.ts +2 -2
- package/tui/src/components/AgentProgressLine.tsx +1 -2
- package/tui/src/components/App.tsx +1 -2
- package/tui/src/components/ApproveApiKey.tsx +1 -2
- package/tui/src/components/AutoModeOptInDialog.tsx +0 -1
- package/tui/src/components/AutoUpdater.tsx +1 -2
- package/tui/src/components/AutoUpdaterWrapper.tsx +1 -2
- package/tui/src/components/AwsAuthStatusBox.tsx +1 -2
- package/tui/src/components/BaseTextInput.tsx +0 -1
- package/tui/src/components/BashModeProgress.tsx +1 -2
- package/tui/src/components/BridgeDialog.tsx +1 -2
- package/tui/src/components/BypassPermissionsModeDialog.tsx +0 -1
- package/tui/src/components/ChannelDowngradeDialog.tsx +1 -2
- package/tui/src/components/ClaudeCodeHint/PluginHintMenu.tsx +1 -2
- package/tui/src/components/ClaudeMdExternalIncludesDialog.tsx +0 -1
- package/tui/src/components/ClickableImageRef.tsx +1 -2
- package/tui/src/components/CompactSummary.tsx +1 -2
- package/tui/src/components/ConfigurableShortcutHint.tsx +1 -2
- package/tui/src/components/ContextSuggestions.tsx +1 -2
- package/tui/src/components/ContextVisualization.tsx +1 -2
- package/tui/src/components/CoordinatorAgentStatus.tsx +1 -2
- package/tui/src/components/CostThresholdDialog.tsx +0 -1
- package/tui/src/components/CtrlOToExpand.tsx +1 -2
- package/tui/src/components/CustomSelect/SelectMulti.tsx +1 -2
- package/tui/src/components/CustomSelect/select-input-option.tsx +1 -2
- package/tui/src/components/CustomSelect/select-option.tsx +1 -2
- package/tui/src/components/CustomSelect/select.tsx +1 -2
- package/tui/src/components/DesktopHandoff.tsx +0 -1
- package/tui/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +0 -1
- package/tui/src/components/DevBar.tsx +1 -2
- package/tui/src/components/DevChannelsDialog.tsx +1 -2
- package/tui/src/components/DiagnosticsDisplay.tsx +1 -2
- package/tui/src/components/EffortCallout.tsx +1 -2
- package/tui/src/components/ExitFlow.tsx +1 -2
- package/tui/src/components/ExportDialog.tsx +1 -2
- package/tui/src/components/FallbackToolUseErrorMessage.tsx +0 -1
- package/tui/src/components/FallbackToolUseRejectedMessage.tsx +1 -2
- package/tui/src/components/FastIcon.tsx +1 -2
- package/tui/src/components/Feedback.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/FeedbackSurvey.tsx +1 -2
- package/tui/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/useFeedbackSurvey.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/useMemorySurvey.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/useSurveyState.tsx +1 -2
- package/tui/src/components/FileEditToolDiff.tsx +1 -2
- package/tui/src/components/FileEditToolUpdatedMessage.tsx +1 -2
- package/tui/src/components/FileEditToolUseRejectedMessage.tsx +1 -2
- package/tui/src/components/FilePathLink.tsx +1 -2
- package/tui/src/components/FullscreenLayout.tsx +1 -2
- package/tui/src/components/GlobalSearchDialog.tsx +1 -2
- package/tui/src/components/HelpV2/Commands.tsx +1 -2
- package/tui/src/components/HelpV2/General.tsx +0 -1
- package/tui/src/components/HelpV2/HelpV2.tsx +0 -1
- package/tui/src/components/HighlightedCode/Fallback.tsx +1 -2
- package/tui/src/components/HighlightedCode.tsx +1 -2
- package/tui/src/components/HistorySearchDialog.tsx +1 -2
- package/tui/src/components/IdeAutoConnectDialog.tsx +1 -2
- package/tui/src/components/IdeOnboardingDialog.tsx +0 -1
- package/tui/src/components/IdeStatusIndicator.tsx +1 -2
- package/tui/src/components/IdleReturnDialog.tsx +1 -2
- package/tui/src/components/InterruptedByUser.tsx +0 -1
- package/tui/src/components/InvalidConfigDialog.tsx +1 -2
- package/tui/src/components/InvalidSettingsDialog.tsx +1 -2
- package/tui/src/components/KeybindingWarnings.tsx +1 -2
- package/tui/src/components/LanguagePicker.tsx +1 -2
- package/tui/src/components/LogSelector.tsx +0 -1
- package/tui/src/components/LogoV2/AnimatedAsterisk.tsx +1 -2
- package/tui/src/components/LogoV2/AnimatedClawd.tsx +1 -2
- package/tui/src/components/LogoV2/ChannelsNotice.tsx +0 -1
- package/tui/src/components/LogoV2/Clawd.tsx +1 -2
- package/tui/src/components/LogoV2/CondensedLogo.tsx +0 -1
- package/tui/src/components/LogoV2/EmergencyTip.tsx +0 -1
- package/tui/src/components/LogoV2/Feed.tsx +1 -2
- package/tui/src/components/LogoV2/FeedColumn.tsx +1 -2
- package/tui/src/components/LogoV2/GuestPassesUpsell.tsx +0 -1
- package/tui/src/components/LogoV2/LogoV2.tsx +0 -1
- package/tui/src/components/LogoV2/Opus1mMergeNotice.tsx +1 -2
- package/tui/src/components/LogoV2/OverageCreditUpsell.tsx +1 -2
- package/tui/src/components/LogoV2/VoiceModeNotice.tsx +1 -2
- package/tui/src/components/LogoV2/feedConfigs.tsx +0 -1
- package/tui/src/components/LspRecommendation/LspRecommendationMenu.tsx +1 -2
- package/tui/src/components/MCPServerApprovalDialog.tsx +1 -2
- package/tui/src/components/MCPServerDesktopImportDialog.tsx +0 -1
- package/tui/src/components/MCPServerDialogCopy.tsx +0 -1
- package/tui/src/components/MCPServerMultiselectDialog.tsx +1 -2
- package/tui/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +0 -1
- package/tui/src/components/Markdown.tsx +1 -2
- package/tui/src/components/MarkdownTable.tsx +1 -2
- package/tui/src/components/MemoryUsageIndicator.tsx +1 -2
- package/tui/src/components/Message.tsx +1 -2
- package/tui/src/components/MessageModel.tsx +1 -2
- package/tui/src/components/MessageResponse.tsx +1 -2
- package/tui/src/components/MessageRow.tsx +1 -2
- package/tui/src/components/MessageSelector.tsx +1 -2
- package/tui/src/components/MessageTimestamp.tsx +1 -2
- package/tui/src/components/Messages.tsx +0 -1
- package/tui/src/components/ModelPicker.tsx +0 -1
- package/tui/src/components/NativeAutoUpdater.tsx +1 -2
- package/tui/src/components/NotebookEditToolUseRejectedMessage.tsx +1 -2
- package/tui/src/components/OffscreenFreeze.tsx +1 -2
- package/tui/src/components/Onboarding.tsx +2 -3
- package/tui/src/components/OutputStylePicker.tsx +0 -1
- package/tui/src/components/PackageManagerAutoUpdater.tsx +0 -1
- package/tui/src/components/Passes/Passes.tsx +0 -1
- package/tui/src/components/PrBadge.tsx +1 -2
- package/tui/src/components/PressEnterToContinue.tsx +1 -2
- package/tui/src/components/PromptInput/HistorySearchInput.tsx +1 -2
- package/tui/src/components/PromptInput/IssueFlagBanner.tsx +1 -2
- package/tui/src/components/PromptInput/Notifications.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInput.tsx +0 -1
- package/tui/src/components/PromptInput/PromptInputFooter.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputFooterLeftSide.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputFooterSuggestions.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputHelpMenu.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputModeIndicator.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputQueuedCommands.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputStashNotice.tsx +1 -2
- package/tui/src/components/PromptInput/SandboxPromptFooterHint.tsx +1 -2
- package/tui/src/components/PromptInput/ShimmeredInput.tsx +1 -2
- package/tui/src/components/PromptInput/VoiceIndicator.tsx +1 -2
- package/tui/src/components/QuickOpenDialog.tsx +1 -2
- package/tui/src/components/RemoteCallout.tsx +0 -1
- package/tui/src/components/RemoteEnvironmentDialog.tsx +0 -1
- package/tui/src/components/ResumeTask.tsx +0 -1
- package/tui/src/components/SandboxViolationExpandedView.tsx +1 -2
- package/tui/src/components/ScrollKeybindingHandler.tsx +0 -1
- package/tui/src/components/SearchBox.tsx +1 -2
- package/tui/src/components/SessionBackgroundHint.tsx +1 -2
- package/tui/src/components/SessionPreview.tsx +1 -2
- package/tui/src/components/Settings/Config.tsx +0 -1
- package/tui/src/components/Settings/Settings.tsx +1 -2
- package/tui/src/components/Settings/Status.tsx +1 -2
- package/tui/src/components/Settings/Usage.tsx +1 -2
- package/tui/src/components/ShowInIDEPrompt.tsx +1 -2
- package/tui/src/components/SkillImprovementSurvey.tsx +1 -2
- package/tui/src/components/Spinner/FlashingChar.tsx +1 -2
- package/tui/src/components/Spinner/GlimmerMessage.tsx +1 -2
- package/tui/src/components/Spinner/ShimmerChar.tsx +1 -2
- package/tui/src/components/Spinner/SpinnerAnimationRow.tsx +1 -2
- package/tui/src/components/Spinner/SpinnerGlyph.tsx +1 -2
- package/tui/src/components/Spinner/TeammateSpinnerLine.tsx +1 -2
- package/tui/src/components/Spinner/TeammateSpinnerTree.tsx +1 -2
- package/tui/src/components/Spinner.tsx +0 -1
- package/tui/src/components/Stats.tsx +0 -1
- package/tui/src/components/StatusLine.tsx +1 -2
- package/tui/src/components/StatusNotices.tsx +1 -2
- package/tui/src/components/StructuredDiff/Fallback.tsx +1 -2
- package/tui/src/components/StructuredDiff.tsx +1 -2
- package/tui/src/components/StructuredDiffList.tsx +1 -2
- package/tui/src/components/TagTabs.tsx +1 -2
- package/tui/src/components/TaskListV2.tsx +1 -2
- package/tui/src/components/TeammateViewHeader.tsx +1 -2
- package/tui/src/components/TeleportError.tsx +0 -1
- package/tui/src/components/TeleportProgress.tsx +1 -2
- package/tui/src/components/TeleportRepoMismatchDialog.tsx +0 -1
- package/tui/src/components/TeleportStash.tsx +1 -2
- package/tui/src/components/TextInput.tsx +1 -2
- package/tui/src/components/ThemePicker.tsx +0 -1
- package/tui/src/components/ThinkingToggle.tsx +0 -1
- package/tui/src/components/TokenWarning.tsx +1 -2
- package/tui/src/components/ToolUseLoader.tsx +1 -2
- package/tui/src/components/TrustDialog/TrustDialog.tsx +0 -1
- package/tui/src/components/ValidationErrorsList.tsx +1 -2
- package/tui/src/components/VimTextInput.tsx +1 -2
- package/tui/src/components/VirtualMessageList.tsx +1 -2
- package/tui/src/components/WorktreeExitDialog.tsx +1 -2
- package/tui/src/components/agents/AgentDetail.tsx +0 -1
- package/tui/src/components/agents/AgentEditor.tsx +1 -2
- package/tui/src/components/agents/AgentNavigationFooter.tsx +1 -2
- package/tui/src/components/agents/AgentsList.tsx +0 -1
- package/tui/src/components/agents/AgentsMenu.tsx +1 -2
- package/tui/src/components/agents/ColorPicker.tsx +1 -2
- package/tui/src/components/agents/ModelSelector.tsx +1 -2
- package/tui/src/components/agents/ToolSelector.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +0 -1
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +0 -1
- package/tui/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +0 -1
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +1 -2
- package/tui/src/components/design-system/Byline.tsx +1 -2
- package/tui/src/components/design-system/Dialog.tsx +1 -2
- package/tui/src/components/design-system/Divider.tsx +1 -2
- package/tui/src/components/design-system/FuzzyPicker.tsx +1 -2
- package/tui/src/components/design-system/KeyboardShortcutHint.tsx +1 -2
- package/tui/src/components/design-system/ListItem.tsx +1 -2
- package/tui/src/components/design-system/LoadingState.tsx +0 -1
- package/tui/src/components/design-system/Pane.tsx +1 -2
- package/tui/src/components/design-system/ProgressBar.tsx +1 -2
- package/tui/src/components/design-system/Ratchet.tsx +1 -2
- package/tui/src/components/design-system/StatusIcon.tsx +1 -2
- package/tui/src/components/design-system/Tabs.tsx +1 -2
- package/tui/src/components/design-system/ThemeProvider.tsx +1 -2
- package/tui/src/components/design-system/ThemedBox.tsx +1 -2
- package/tui/src/components/design-system/ThemedText.tsx +1 -2
- package/tui/src/components/diff/DiffDetailView.tsx +1 -2
- package/tui/src/components/diff/DiffDialog.tsx +1 -2
- package/tui/src/components/diff/DiffFileList.tsx +1 -2
- package/tui/src/components/grove/Grove.tsx +0 -1
- package/tui/src/components/hooks/HooksConfigMenu.tsx +0 -1
- package/tui/src/components/hooks/PromptDialog.tsx +1 -2
- package/tui/src/components/hooks/SelectEventMode.tsx +0 -1
- package/tui/src/components/hooks/SelectHookMode.tsx +0 -1
- package/tui/src/components/hooks/SelectMatcherMode.tsx +0 -1
- package/tui/src/components/hooks/ViewHookMode.tsx +0 -1
- package/tui/src/components/mcp/CapabilitiesSection.tsx +1 -2
- package/tui/src/components/mcp/ElicitationDialog.tsx +0 -1
- package/tui/src/components/mcp/MCPAgentServerMenu.tsx +1 -2
- package/tui/src/components/mcp/MCPListPanel.tsx +0 -1
- package/tui/src/components/mcp/MCPReconnect.tsx +1 -2
- package/tui/src/components/mcp/MCPRemoteServerMenu.tsx +2 -3
- package/tui/src/components/mcp/MCPSettings.tsx +0 -1
- package/tui/src/components/mcp/MCPStdioServerMenu.tsx +1 -2
- package/tui/src/components/mcp/MCPToolDetailView.tsx +1 -2
- package/tui/src/components/mcp/MCPToolListView.tsx +1 -2
- package/tui/src/components/mcp/McpParsingWarnings.tsx +0 -1
- package/tui/src/components/mcp/utils/reconnectHelpers.tsx +1 -2
- package/tui/src/components/memory/MemoryFileSelector.tsx +1 -2
- package/tui/src/components/memory/MemoryUpdateNotification.tsx +1 -2
- package/tui/src/components/messageActions.tsx +1 -2
- package/tui/src/components/messages/AdvisorMessage.tsx +1 -2
- package/tui/src/components/messages/AssistantRedactedThinkingMessage.tsx +1 -2
- package/tui/src/components/messages/AssistantThinkingMessage.tsx +1 -2
- package/tui/src/components/messages/AssistantToolUseMessage.tsx +0 -1
- package/tui/src/components/messages/AttachmentMessage.tsx +1 -2
- package/tui/src/components/messages/CollapsedReadSearchContent.tsx +1 -2
- package/tui/src/components/messages/CompactBoundaryMessage.tsx +1 -2
- package/tui/src/components/messages/GroupedToolUseContent.tsx +1 -2
- package/tui/src/components/messages/HighlightedThinkingText.tsx +1 -2
- package/tui/src/components/messages/HookProgressMessage.tsx +1 -2
- package/tui/src/components/messages/PlanApprovalMessage.tsx +1 -2
- package/tui/src/components/messages/RateLimitMessage.tsx +1 -2
- package/tui/src/components/messages/ShutdownMessage.tsx +1 -2
- package/tui/src/components/messages/SystemAPIErrorMessage.tsx +1 -2
- package/tui/src/components/messages/SystemTextMessage.tsx +1 -2
- package/tui/src/components/messages/TaskAssignmentMessage.tsx +1 -2
- package/tui/src/components/messages/UserAgentNotificationMessage.tsx +1 -2
- package/tui/src/components/messages/UserBashInputMessage.tsx +1 -2
- package/tui/src/components/messages/UserBashOutputMessage.tsx +1 -2
- package/tui/src/components/messages/UserChannelMessage.tsx +1 -2
- package/tui/src/components/messages/UserCommandMessage.tsx +1 -2
- package/tui/src/components/messages/UserImageMessage.tsx +1 -2
- package/tui/src/components/messages/UserLocalCommandOutputMessage.tsx +1 -2
- package/tui/src/components/messages/UserMemoryInputMessage.tsx +1 -2
- package/tui/src/components/messages/UserPlanMessage.tsx +1 -2
- package/tui/src/components/messages/UserPromptMessage.tsx +1 -2
- package/tui/src/components/messages/UserResourceUpdateMessage.tsx +1 -2
- package/tui/src/components/messages/UserTeammateMessage.tsx +1 -2
- package/tui/src/components/messages/UserTextMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +0 -1
- package/tui/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/utils.tsx +0 -1
- package/tui/src/components/messages/teamMemCollapsed.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +1 -2
- package/tui/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +0 -1
- package/tui/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +0 -1
- package/tui/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/FallbackPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +1 -2
- package/tui/src/components/permissions/FilePermissionDialog/permissionOptions.tsx +0 -1
- package/tui/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +1 -2
- package/tui/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +1 -2
- package/tui/src/components/permissions/PermissionDecisionDebugInfo.tsx +1 -2
- package/tui/src/components/permissions/PermissionDialog.tsx +1 -2
- package/tui/src/components/permissions/PermissionExplanation.tsx +1 -2
- package/tui/src/components/permissions/PermissionPrompt.tsx +0 -1
- package/tui/src/components/permissions/PermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/PermissionRequestTitle.tsx +1 -2
- package/tui/src/components/permissions/PermissionRuleExplanation.tsx +1 -2
- package/tui/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx +0 -1
- package/tui/src/components/permissions/SandboxPermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/WorkerBadge.tsx +1 -2
- package/tui/src/components/permissions/WorkerPendingPermission.tsx +1 -2
- package/tui/src/components/permissions/rules/AddPermissionRules.tsx +0 -1
- package/tui/src/components/permissions/rules/AddWorkspaceDirectory.tsx +0 -1
- package/tui/src/components/permissions/rules/PermissionRuleDescription.tsx +1 -2
- package/tui/src/components/permissions/rules/PermissionRuleInput.tsx +1 -2
- package/tui/src/components/permissions/rules/PermissionRuleList.tsx +0 -1
- package/tui/src/components/permissions/rules/RecentDenialsTab.tsx +1 -2
- package/tui/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +0 -1
- package/tui/src/components/permissions/rules/WorkspaceTab.tsx +1 -2
- package/tui/src/components/permissions/shellPermissionHelpers.tsx +1 -2
- package/tui/src/components/sandbox/SandboxConfigTab.tsx +1 -2
- package/tui/src/components/sandbox/SandboxDependenciesTab.tsx +1 -2
- package/tui/src/components/sandbox/SandboxDoctorSection.tsx +1 -2
- package/tui/src/components/sandbox/SandboxOverridesTab.tsx +0 -1
- package/tui/src/components/sandbox/SandboxSettings.tsx +0 -1
- package/tui/src/components/shell/ExpandShellOutputContext.tsx +1 -2
- package/tui/src/components/shell/OutputLine.tsx +1 -2
- package/tui/src/components/shell/ShellProgressMessage.tsx +1 -2
- package/tui/src/components/shell/ShellTimeDisplay.tsx +1 -2
- package/tui/src/components/skills/SkillsMenu.tsx +0 -1
- package/tui/src/components/tasks/AsyncAgentDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/BackgroundTask.tsx +1 -2
- package/tui/src/components/tasks/BackgroundTaskStatus.tsx +1 -2
- package/tui/src/components/tasks/BackgroundTasksDialog.tsx +1 -2
- package/tui/src/components/tasks/DreamDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/InProcessTeammateDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/RemoteSessionDetailDialog.tsx +0 -1
- package/tui/src/components/tasks/RemoteSessionProgress.tsx +1 -2
- package/tui/src/components/tasks/ShellDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/ShellProgress.tsx +1 -2
- package/tui/src/components/tasks/renderToolActivity.tsx +1 -2
- package/tui/src/components/tasks/taskStatusUtils.tsx +1 -2
- package/tui/src/components/teams/TeamStatus.tsx +1 -2
- package/tui/src/components/teams/TeamsDialog.tsx +1 -2
- package/tui/src/components/ui/OrderedList.tsx +1 -2
- package/tui/src/components/ui/OrderedListItem.tsx +1 -2
- package/tui/src/components/ui/TreeSelect.tsx +1 -2
- package/tui/src/components/wizard/WizardDialogLayout.tsx +1 -2
- package/tui/src/components/wizard/WizardNavigationFooter.tsx +1 -2
- package/tui/src/components/wizard/WizardProvider.tsx +1 -2
- package/tui/src/context/QueuedMessageContext.tsx +1 -2
- package/tui/src/context/fpsMetrics.tsx +1 -2
- package/tui/src/context/mailbox.tsx +1 -2
- package/tui/src/context/modalContext.tsx +1 -2
- package/tui/src/context/notifications.tsx +1 -2
- package/tui/src/context/overlayContext.tsx +1 -2
- package/tui/src/context/promptOverlayContext.tsx +1 -2
- package/tui/src/context/stats.tsx +1 -2
- package/tui/src/context/voice.tsx +1 -2
- package/tui/src/dialogLaunchers.tsx +0 -1
- package/tui/src/entrypoints/cli.tsx +0 -1
- package/tui/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +0 -1
- package/tui/src/hooks/notifs/useDeprecationWarningNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useFastModeNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useIDEStatusIndicator.tsx +1 -2
- package/tui/src/hooks/notifs/useInstallMessages.tsx +1 -2
- package/tui/src/hooks/notifs/useLspInitializationNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useMcpConnectivityStatus.tsx +0 -1
- package/tui/src/hooks/notifs/useModelMigrationNotifications.tsx +1 -2
- package/tui/src/hooks/notifs/useNpmDeprecationNotification.tsx +1 -2
- package/tui/src/hooks/notifs/usePluginAutoupdateNotification.tsx +1 -2
- package/tui/src/hooks/notifs/usePluginInstallationStatus.tsx +1 -2
- package/tui/src/hooks/notifs/useRateLimitWarningNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useSettingsErrors.tsx +1 -2
- package/tui/src/hooks/useApiKeyVerification.ts +7 -7
- package/tui/src/hooks/useArrowKeyHistory.tsx +1 -2
- package/tui/src/hooks/useCanUseTool.tsx +0 -1
- package/tui/src/hooks/useChromeExtensionNotification.tsx +0 -1
- package/tui/src/hooks/useClaudeCodeHintRecommendation.tsx +1 -2
- package/tui/src/hooks/useCommandKeybindings.tsx +1 -2
- package/tui/src/hooks/useGlobalKeybindings.tsx +1 -2
- package/tui/src/hooks/useIDEIntegration.tsx +1 -2
- package/tui/src/hooks/useLspPluginRecommendation.tsx +1 -2
- package/tui/src/hooks/useOfficialMarketplaceNotification.tsx +0 -1
- package/tui/src/hooks/usePluginRecommendationBase.tsx +1 -2
- package/tui/src/hooks/usePromptsFromClaudeInChrome.tsx +1 -2
- package/tui/src/hooks/useReplBridge.tsx +1 -2
- package/tui/src/hooks/useTypeahead.tsx +0 -1
- package/tui/src/hooks/useVoiceIntegration.tsx +1 -2
- package/tui/src/ink/Ansi.tsx +1 -2
- package/tui/src/ink/components/AlternateScreen.tsx +1 -2
- package/tui/src/ink/components/App.tsx +0 -1
- package/tui/src/ink/components/Box.tsx +1 -2
- package/tui/src/ink/components/Button.tsx +1 -2
- package/tui/src/ink/components/ClockContext.tsx +1 -2
- package/tui/src/ink/components/ErrorOverview.tsx +1 -2
- package/tui/src/ink/components/Link.tsx +1 -2
- package/tui/src/ink/components/Newline.tsx +1 -2
- package/tui/src/ink/components/NoSelect.tsx +1 -2
- package/tui/src/ink/components/RawAnsi.tsx +1 -2
- package/tui/src/ink/components/ScrollBox.tsx +1 -2
- package/tui/src/ink/components/Spacer.tsx +1 -2
- package/tui/src/ink/components/TerminalFocusContext.tsx +1 -2
- package/tui/src/ink/components/TerminalSizeContext.tsx +1 -2
- package/tui/src/ink/components/Text.tsx +1 -2
- package/tui/src/ink/ink.tsx +0 -1
- package/tui/src/interactiveHelpers.tsx +0 -1
- package/tui/src/keybindings/KeybindingContext.tsx +1 -2
- package/tui/src/keybindings/KeybindingProviderSetup.tsx +1 -2
- package/tui/src/main.tsx +0 -1
- package/tui/src/moreright/useMoreRight.tsx +1 -2
- package/tui/src/replLauncher.tsx +1 -2
- package/tui/src/screens/Doctor.tsx +0 -1
- package/tui/src/screens/REPL.tsx +0 -1
- package/tui/src/screens/ResumeConversation.tsx +0 -1
- package/tui/src/services/mcp/MCPConnectionManager.tsx +1 -2
- package/tui/src/services/mcp/claudeai.ts +1 -1
- package/tui/src/services/mcpServerApproval.tsx +1 -2
- package/tui/src/services/oauth/client.ts +15 -15
- package/tui/src/services/oauth/getOauthProfile.ts +2 -2
- package/tui/src/services/oauth/index.ts +12 -18
- package/tui/src/services/policyLimits/index.ts +3 -3
- package/tui/src/services/remoteManagedSettings/index.ts +3 -3
- package/tui/src/services/remoteManagedSettings/securityCheck.tsx +1 -2
- package/tui/src/services/remoteManagedSettings/syncCache.ts +3 -3
- package/tui/src/services/voiceStreamSTT.ts +2 -2
- package/tui/src/state/AppState.tsx +1 -2
- package/tui/src/tasks/InProcessTeammateTask/InProcessTeammateTask.tsx +1 -2
- package/tui/src/tasks/LocalAgentTask/LocalAgentTask.tsx +1 -2
- package/tui/src/tasks/LocalShellTask/LocalShellTask.tsx +1 -2
- package/tui/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +0 -1
- package/tui/src/tools/AgentTool/UI.tsx +1 -2
- package/tui/src/tools/BashTool/BashToolResultMessage.tsx +0 -1
- package/tui/src/tools/BashTool/UI.tsx +1 -2
- package/tui/src/tools/BriefTool/UI.tsx +0 -1
- package/tui/src/tools/ConfigTool/ConfigTool.ts +2 -2
- package/tui/src/tools/ConfigTool/UI.tsx +1 -2
- package/tui/src/tools/EnterPlanModeTool/UI.tsx +0 -1
- package/tui/src/tools/EnterWorktreeTool/UI.tsx +1 -2
- package/tui/src/tools/ExitPlanModeTool/UI.tsx +0 -1
- package/tui/src/tools/ExitWorktreeTool/UI.tsx +1 -2
- package/tui/src/tools/FileEditTool/UI.tsx +1 -2
- package/tui/src/tools/FileReadTool/UI.tsx +1 -2
- package/tui/src/tools/FileWriteTool/UI.tsx +1 -2
- package/tui/src/tools/GlobTool/UI.tsx +1 -2
- package/tui/src/tools/GrepTool/UI.tsx +1 -2
- package/tui/src/tools/LSPTool/UI.tsx +1 -2
- package/tui/src/tools/ListMcpResourcesTool/UI.tsx +1 -2
- package/tui/src/tools/MCPTool/UI.tsx +1 -2
- package/tui/src/tools/NotebookEditTool/UI.tsx +1 -2
- package/tui/src/tools/PowerShellTool/UI.tsx +0 -1
- package/tui/src/tools/ReadMcpResourceTool/UI.tsx +1 -2
- package/tui/src/tools/RemoteTriggerTool/UI.tsx +1 -2
- package/tui/src/tools/ScheduleCronTool/UI.tsx +1 -2
- package/tui/src/tools/SendMessageTool/UI.tsx +1 -2
- package/tui/src/tools/SkillTool/UI.tsx +1 -2
- package/tui/src/tools/TaskStopTool/UI.tsx +1 -2
- package/tui/src/tools/TeamCreateTool/UI.tsx +1 -2
- package/tui/src/tools/TeamDeleteTool/UI.tsx +1 -2
- package/tui/src/tools/WebFetchTool/UI.tsx +1 -2
- package/tui/src/tools/testing/TestingPermissionTool.tsx +1 -2
- package/tui/src/utils/auth.ts +6 -12
- package/tui/src/utils/autoRunIssue.tsx +1 -2
- package/tui/src/utils/billing.ts +2 -2
- package/tui/src/utils/computerUse/toolRendering.tsx +1 -2
- package/tui/src/utils/computerUse/wrapper.tsx +0 -1
- package/tui/src/utils/exportRenderer.tsx +1 -2
- package/tui/src/utils/fastMode.ts +2 -2
- package/tui/src/utils/highlightMatch.tsx +1 -2
- package/tui/src/utils/http.ts +2 -2
- package/tui/src/utils/managedEnv.ts +1 -1
- package/tui/src/utils/messages/systemInit.ts +2 -2
- package/tui/src/utils/plugins/performStartupChecks.tsx +1 -2
- package/tui/src/utils/preflightChecks.tsx +0 -1
- package/tui/src/utils/processUserInput/processBashCommand.tsx +1 -2
- package/tui/src/utils/processUserInput/processSlashCommand.tsx +0 -1
- package/tui/src/utils/staticRender.tsx +1 -2
- package/tui/src/utils/status.tsx +1 -2
- package/tui/src/utils/statusNoticeDefinitions.tsx +5 -6
- package/tui/src/utils/swarm/It2SetupPrompt.tsx +1 -2
- package/tui/src/utils/teleport.tsx +0 -1
- package/tui/src/voice/voiceModeEnabled.ts +3 -3
- package/uv.lock +1 -1
- package/src/ummaya/llm/_cc_reference/README.md +0 -104
- package/src/ummaya/llm/_cc_reference/api.ts +0 -721
- package/src/ummaya/llm/_cc_reference/claude.ts +0 -3422
- package/src/ummaya/llm/_cc_reference/client.ts +0 -392
- package/src/ummaya/llm/_cc_reference/emptyUsage.ts +0 -25
- package/src/ummaya/llm/_cc_reference/errors.ts +0 -1210
- package/src/ummaya/llm/_cc_reference/messages.ts +0 -5515
- package/src/ummaya/llm/_cc_reference/permissions.ts +0 -1489
- package/src/ummaya/llm/_cc_reference/prompts.ts +0 -917
- package/src/ummaya/llm/_cc_reference/query.ts +0 -1732
- package/src/ummaya/llm/_cc_reference/toolExecution.ts +0 -1748
- package/src/ummaya/llm/_cc_reference/toolOrchestration.ts +0 -191
- package/src/ummaya/llm/_cc_reference/toolResultStorage.ts +0 -1043
- package/src/ummaya/llm/_cc_reference/tools.ts +0 -392
package/tui/src/utils/auth.ts
CHANGED
|
@@ -134,8 +134,6 @@ export function isTeamPremiumSubscriber(): boolean { return false }
|
|
|
134
134
|
|
|
135
135
|
export function isEnterpriseSubscriber(): boolean { return false }
|
|
136
136
|
|
|
137
|
-
export function isAnthropicAuthEnabled(): boolean { return false }
|
|
138
|
-
|
|
139
137
|
export function isFriendliAuthEnabled(): boolean { return false }
|
|
140
138
|
|
|
141
139
|
export function is1PApiCustomer(): boolean { return false }
|
|
@@ -165,15 +163,11 @@ export function getAuthTokenSource(): {
|
|
|
165
163
|
|
|
166
164
|
export function getRateLimitTier(): 0 { return 0 }
|
|
167
165
|
|
|
168
|
-
export function getAnthropicApiKey(): null | string {
|
|
169
|
-
return getAnthropicApiKeyWithSource().key
|
|
170
|
-
}
|
|
171
|
-
|
|
172
166
|
export function getFriendliApiKey(): null | string {
|
|
173
|
-
return
|
|
167
|
+
return getFriendliApiKeyWithSource().key
|
|
174
168
|
}
|
|
175
169
|
|
|
176
|
-
export function
|
|
170
|
+
export function getFriendliApiKeyWithSource(
|
|
177
171
|
_opts: { skipRetrievingKeyFromApiKeyHelper?: boolean } = {},
|
|
178
172
|
): { key: null | string; source: ApiKeySource } {
|
|
179
173
|
const envKey = process.env[FRIENDLI_PRIMARY_ENV]?.trim()
|
|
@@ -191,7 +185,7 @@ export function getAnthropicApiKeyWithSource(
|
|
|
191
185
|
|
|
192
186
|
export function hasAnthropicApiKeyAuth(): boolean {
|
|
193
187
|
return (
|
|
194
|
-
|
|
188
|
+
getFriendliApiKeyWithSource({
|
|
195
189
|
skipRetrievingKeyFromApiKeyHelper: true,
|
|
196
190
|
}).key !== null
|
|
197
191
|
)
|
|
@@ -280,7 +274,7 @@ export function assertFriendliApiKeyForUse(
|
|
|
280
274
|
}
|
|
281
275
|
|
|
282
276
|
if (env === process.env) {
|
|
283
|
-
const { key } =
|
|
277
|
+
const { key } = getFriendliApiKeyWithSource()
|
|
284
278
|
if (key) {
|
|
285
279
|
env[FRIENDLI_PRIMARY_ENV] = key
|
|
286
280
|
return key
|
|
@@ -291,9 +285,9 @@ export function assertFriendliApiKeyForUse(
|
|
|
291
285
|
}
|
|
292
286
|
|
|
293
287
|
export default {
|
|
294
|
-
getClaudeAIOAuthTokens, isClaudeAISubscriber, isConsumerSubscriber, isMaxSubscriber, isProSubscriber, isTeamSubscriber, isTeamPremiumSubscriber, isEnterpriseSubscriber,
|
|
288
|
+
getClaudeAIOAuthTokens, isClaudeAISubscriber, isConsumerSubscriber, isMaxSubscriber, isProSubscriber, isTeamSubscriber, isTeamPremiumSubscriber, isEnterpriseSubscriber, isFriendliAuthEnabled, is1PApiCustomer,
|
|
295
289
|
isUsing3PServices, isOverageProvisioningAllowed, hasProfileScope, getAccountInformation, getOauthAccountInfo, getOauthOrgUUID, getSubscriptionType, getAuthTokenSource, getRateLimitTier,
|
|
296
|
-
|
|
290
|
+
getFriendliApiKey, getFriendliApiKeyWithSource, hasAnthropicApiKeyAuth, saveApiKey, removeApiKey, getApiKeyFromApiKeyHelper, getApiKeyFromConfigOrMacOSKeychain, getConfiguredApiKeyHelper,
|
|
297
291
|
getApiKeyHelperElapsedMs, checkAndRefreshOAuthTokenIfNeeded, refreshAndGetAwsCredentials, prefetchAwsCredentialsAndBedRockInfoIfSafe, prefetchGcpCredentialsIfSafe, prefetchApiKeyFromApiKeyHelperIfSafe,
|
|
298
292
|
clearApiKeyHelperCache, clearAwsCredentialsCache, clearGcpCredentialsCache, clearOAuthTokenCache, handleOAuth401Error, saveOAuthTokensIfNeeded, validateForceLoginOrg, assertFriendliApiKeyForUse,
|
|
299
293
|
}
|
|
@@ -118,5 +118,4 @@ export function getAutoRunIssueReasonText(reason: AutoRunIssueReason): string {
|
|
|
118
118
|
default:
|
|
119
119
|
return 'Unknown reason';
|
|
120
120
|
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsIktleWJvYXJkU2hvcnRjdXRIaW50IiwiQm94IiwiVGV4dCIsInVzZUtleWJpbmRpbmciLCJQcm9wcyIsIm9uUnVuIiwib25DYW5jZWwiLCJyZWFzb24iLCJBdXRvUnVuSXNzdWVOb3RpZmljYXRpb24iLCJ0MCIsIiQiLCJfYyIsImhhc1J1blJlZiIsInQxIiwiU3ltYm9sIiwiZm9yIiwiY29udGV4dCIsInQyIiwidDMiLCJjdXJyZW50IiwidDQiLCJ0NSIsInQ2IiwiQXV0b1J1bklzc3VlUmVhc29uIiwic2hvdWxkQXV0b1J1bklzc3VlIiwiZ2V0QXV0b1J1bkNvbW1hbmQiLCJnZXRBdXRvUnVuSXNzdWVSZWFzb25UZXh0Il0sInNvdXJjZXMiOlsiYXV0b1J1bklzc3VlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBLZXlib2FyZFNob3J0Y3V0SGludCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGVzaWduLXN5c3RlbS9LZXlib2FyZFNob3J0Y3V0SGludC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBvblJ1bjogKCkgPT4gdm9pZFxuICBvbkNhbmNlbDogKCkgPT4gdm9pZFxuICByZWFzb246IHN0cmluZ1xufVxuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHNob3dzIGEgbm90aWZpY2F0aW9uIGFib3V0IHJ1bm5pbmcgL2lzc3VlIGNvbW1hbmRcbiAqIHdpdGggdGhlIGFiaWxpdHkgdG8gY2FuY2VsIHZpYSBFU0Mga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBBdXRvUnVuSXNzdWVOb3RpZmljYXRpb24oe1xuICBvblJ1bixcbiAgb25DYW5jZWwsXG4gIHJlYXNvbixcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgaGFzUnVuUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIC8vIEhhbmRsZSBFU0Mga2V5IHRvIGNhbmNlbFxuICB1c2VLZXliaW5kaW5nKCdjb25maXJtOm5vJywgb25DYW5jZWwsIHsgY29udGV4dDogJ0NvbmZpcm1hdGlvbicgfSlcblxuICAvLyBSdW4gL2lzc3VlIGltbWVkaWF0ZWx5IG9uIG1vdW50XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFoYXNSdW5SZWYuY3VycmVudCkge1xuICAgICAgaGFzUnVuUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICBvblJ1bigpXG4gICAgfVxuICB9LCBbb25SdW5dKVxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWFyZ2luVG9wPXsxfT5cbiAgICAgIDxCb3g+XG4gICAgICAgIDxUZXh0IGJvbGQ+UnVubmluZyBmZWVkYmFjayBjYXB0dXJlLi4uPC9UZXh0PlxuICAgICAgPC9Cb3g+XG4gICAgICA8Qm94PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICBQcmVzcyA8S2V5Ym9hcmRTaG9ydGN1dEhpbnQgc2hvcnRjdXQ9XCJFc2NcIiBhY3Rpb249XCJjYW5jZWxcIiAvPiBhbnl0aW1lXG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgICAgPEJveD5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+UmVhc29uOiB7cmVhc29ufTwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG5cbmV4cG9ydCB0eXBlIEF1dG9SdW5Jc3N1ZVJlYXNvbiA9ICdmZWVkYmFja19zdXJ2ZXlfYmFkJyB8ICdmZWVkYmFja19zdXJ2ZXlfZ29vZCdcblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIC9pc3N1ZSBzaG91bGQgYXV0by1ydW4gZm9yIEFudCB1c2Vyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQXV0b1J1bklzc3VlKHJlYXNvbjogQXV0b1J1bklzc3VlUmVhc29uKTogYm9vbGVhbiB7XG4gIC8vIE9ubHkgZm9yIEFudCB1c2Vyc1xuICBpZiAoXCJleHRlcm5hbFwiICE9PSAnYW50Jykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgc3dpdGNoIChyZWFzb24pIHtcbiAgICBjYXNlICdmZWVkYmFja19zdXJ2ZXlfYmFkJzpcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIGNhc2UgJ2ZlZWRiYWNrX3N1cnZleV9nb29kJzpcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGFwcHJvcHJpYXRlIGNvbW1hbmQgdG8gYXV0by1ydW4gYmFzZWQgb24gdGhlIHJlYXNvblxuICogQU5ULU9OTFk6IGdvb2QtY2xhdWRlIGNvbW1hbmQgb25seSBleGlzdHMgaW4gYW50IGJ1aWxkc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0b1J1bkNvbW1hbmQocmVhc29uOiBBdXRvUnVuSXNzdWVSZWFzb24pOiBzdHJpbmcge1xuICAvLyBPbmx5IGFudCBidWlsZHMgaGF2ZSB0aGUgL2dvb2QtY2xhdWRlIGNvbW1hbmRcbiAgaWYgKFwiZXh0ZXJuYWxcIiA9PT0gJ2FudCcgJiYgcmVhc29uID09PSAnZmVlZGJhY2tfc3VydmV5X2dvb2QnKSB7XG4gICAgcmV0dXJuICcvZ29vZC1jbGF1ZGUnXG4gIH1cbiAgcmV0dXJuICcvaXNzdWUnXG59XG5cbi8qKlxuICogR2V0cyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIG9mIHdoeSAvaXNzdWUgaXMgYmVpbmcgYXV0by1ydW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF1dG9SdW5Jc3N1ZVJlYXNvblRleHQocmVhc29uOiBBdXRvUnVuSXNzdWVSZWFzb24pOiBzdHJpbmcge1xuICBzd2l0Y2ggKHJlYXNvbikge1xuICAgIGNhc2UgJ2ZlZWRiYWNrX3N1cnZleV9iYWQnOlxuICAgICAgcmV0dXJuICdZb3UgcmVzcG9uZGVkIFwiQmFkXCIgdG8gdGhlIGZlZWRiYWNrIHN1cnZleSdcbiAgICBjYXNlICdmZWVkYmFja19zdXJ2ZXlfZ29vZCc6XG4gICAgICByZXR1cm4gJ1lvdSByZXNwb25kZWQgXCJHb29kXCIgdG8gdGhlIGZlZWRiYWNrIHN1cnZleSdcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICdVbmtub3duIHJlYXNvbidcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxTQUFTLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3pDLFNBQVNDLG9CQUFvQixRQUFRLHFEQUFxRDtBQUMxRixTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxXQUFXO0FBQ3JDLFNBQVNDLGFBQWEsUUFBUSxpQ0FBaUM7QUFFL0QsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSTtFQUNqQkMsUUFBUSxFQUFFLEdBQUcsR0FBRyxJQUFJO0VBQ3BCQyxNQUFNLEVBQUUsTUFBTTtBQUNoQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFBQyx5QkFBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUFrQztJQUFBTixLQUFBO0lBQUFDLFFBQUE7SUFBQUM7RUFBQSxJQUFBRSxFQUlqQztFQUNOLE1BQUFHLFNBQUEsR0FBa0JiLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFBQSxJQUFBYyxFQUFBO0VBQUEsSUFBQUgsQ0FBQSxRQUFBSSxNQUFBLENBQUFDLEdBQUE7SUFHT0YsRUFBQTtNQUFBRyxPQUFBLEVBQVc7SUFBZSxDQUFDO0lBQUFOLENBQUEsTUFBQUcsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQUgsQ0FBQTtFQUFBO0VBQWpFUCxhQUFhLENBQUMsWUFBWSxFQUFFRyxRQUFRLEVBQUVPLEVBQTJCLENBQUM7RUFBQSxJQUFBSSxFQUFBO0VBQUEsSUFBQUMsRUFBQTtFQUFBLElBQUFSLENBQUEsUUFBQUwsS0FBQTtJQUd4RFksRUFBQSxHQUFBQSxDQUFBO01BQ1IsSUFBSSxDQUFDTCxTQUFTLENBQUFPLE9BQVE7UUFDcEJQLFNBQVMsQ0FBQU8sT0FBQSxHQUFXLElBQUg7UUFDakJkLEtBQUssQ0FBQyxDQUFDO01BQUE7SUFDUixDQUNGO0lBQUVhLEVBQUEsSUFBQ2IsS0FBSyxDQUFDO0lBQUFLLENBQUEsTUFBQUwsS0FBQTtJQUFBSyxDQUFBLE1BQUFPLEVBQUE7SUFBQVAsQ0FBQSxNQUFBUSxFQUFBO0VBQUE7SUFBQUQsRUFBQSxHQUFBUCxDQUFBO0lBQUFRLEVBQUEsR0FBQVIsQ0FBQTtFQUFBO0VBTFZaLFNBQVMsQ0FBQ21CLEVBS1QsRUFBRUMsRUFBTyxDQUFDO0VBQUEsSUFBQUUsRUFBQTtFQUFBLElBQUFWLENBQUEsUUFBQUksTUFBQSxDQUFBQyxHQUFBO0lBSVBLLEVBQUEsSUFBQyxHQUFHLENBQ0YsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFKLEtBQUcsQ0FBQyxDQUFDLDJCQUEyQixFQUFyQyxJQUFJLENBQ1AsRUFGQyxHQUFHLENBRUU7SUFBQVYsQ0FBQSxNQUFBVSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBVixDQUFBO0VBQUE7RUFBQSxJQUFBVyxFQUFBO0VBQUEsSUFBQVgsQ0FBQSxRQUFBSSxNQUFBLENBQUFDLEdBQUE7SUFDTk0sRUFBQSxJQUFDLEdBQUcsQ0FDRixDQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQUMsTUFDUCxDQUFDLG9CQUFvQixDQUFVLFFBQUssQ0FBTCxLQUFLLENBQVEsTUFBUSxDQUFSLFFBQVEsR0FBRyxRQUMvRCxFQUZDLElBQUksQ0FHUCxFQUpDLEdBQUcsQ0FJRTtJQUFBWCxDQUFBLE1BQUFXLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFYLENBQUE7RUFBQTtFQUFBLElBQUFZLEVBQUE7RUFBQSxJQUFBWixDQUFBLFFBQUFILE1BQUE7SUFSUmUsRUFBQSxJQUFDLEdBQUcsQ0FBZSxhQUFRLENBQVIsUUFBUSxDQUFZLFNBQUMsQ0FBRCxHQUFDLENBQ3RDLENBQUFGLEVBRUssQ0FDTCxDQUFBQyxFQUlLLENBQ0wsQ0FBQyxHQUFHLENBQ0YsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFSLEtBQU8sQ0FBQyxDQUFDLFFBQVNkLE9BQUssQ0FBRSxFQUE5QixJQUFJLENBQ1AsRUFGQyxHQUFHLENBR04sRUFaQyxHQUFHLENBWUU7SUFBQUcsQ0FBQSxNQUFBSCxNQUFBO0lBQUFHLENBQUEsTUFBQVksRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQVosQ0FBQTtFQUFBO0VBQUEsT0FaTlksRUFZTTtBQUFBO0FBSVYsT0FBTyxLQUFLQyxrQkFBa0IsR0FBRyxxQkFBcUIsR0FBRyxzQkFBc0I7O0FBRS9FO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0Msa0JBQWtCQSxDQUFDakIsTUFBTSxFQUFFZ0Isa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7RUFDdEU7RUFDQSxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUU7SUFDeEIsT0FBTyxLQUFLO0VBQ2Q7RUFFQSxRQUFRaEIsTUFBTTtJQUNaLEtBQUsscUJBQXFCO01BQ3hCLE9BQU8sS0FBSztJQUNkLEtBQUssc0JBQXNCO01BQ3pCLE9BQU8sS0FBSztJQUNkO01BQ0UsT0FBTyxLQUFLO0VBQ2hCO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNrQixpQkFBaUJBLENBQUNsQixNQUFNLEVBQUVnQixrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztFQUNwRTtFQUNBLElBQUksVUFBVSxLQUFLLEtBQUssSUFBSWhCLE1BQU0sS0FBSyxzQkFBc0IsRUFBRTtJQUM3RCxPQUFPLGNBQWM7RUFDdkI7RUFDQSxPQUFPLFFBQVE7QUFDakI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTbUIseUJBQXlCQSxDQUFDbkIsTUFBTSxFQUFFZ0Isa0JBQWtCLENBQUMsRUFBRSxNQUFNLENBQUM7RUFDNUUsUUFBUWhCLE1BQU07SUFDWixLQUFLLHFCQUFxQjtNQUN4QixPQUFPLDRDQUE0QztJQUNyRCxLQUFLLHNCQUFzQjtNQUN6QixPQUFPLDZDQUE2QztJQUN0RDtNQUNFLE9BQU8sZ0JBQWdCO0VBQzNCO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
121
|
+
}
|
package/tui/src/utils/billing.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
getFriendliApiKey,
|
|
3
3
|
getAuthTokenSource,
|
|
4
4
|
getSubscriptionType,
|
|
5
5
|
isClaudeAISubscriber,
|
|
@@ -21,7 +21,7 @@ export function hasConsoleBillingAccess(): boolean {
|
|
|
21
21
|
|
|
22
22
|
// Check if user has a configured authentication source
|
|
23
23
|
const authSource = getAuthTokenSource()
|
|
24
|
-
const hasApiKey =
|
|
24
|
+
const hasApiKey = getFriendliApiKey() !== null
|
|
25
25
|
|
|
26
26
|
// If user has no authentication at all (logged out), don't show costs
|
|
27
27
|
if (!authSource.hasToken && !hasApiKey) {
|
|
@@ -121,5 +121,4 @@ export function getComputerUseMCPRenderingOverrides(toolName: string): {
|
|
|
121
121
|
</MessageResponse>;
|
|
122
122
|
}
|
|
123
123
|
};
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk1lc3NhZ2VSZXNwb25zZSIsIlRleHQiLCJ0cnVuY2F0ZVRvV2lkdGgiLCJNQ1BUb29sUmVzdWx0IiwiQ3VUb29sSW5wdXQiLCJSZWNvcmQiLCJjb29yZGluYXRlIiwic3RhcnRfY29vcmRpbmF0ZSIsInRleHQiLCJhcHBzIiwiQXJyYXkiLCJkaXNwbGF5TmFtZSIsInJlZ2lvbiIsImRpcmVjdGlvbiIsImFtb3VudCIsImR1cmF0aW9uIiwiZm10Q29vcmQiLCJjIiwiUkVTVUxUX1NVTU1BUlkiLCJSZWFkb25seSIsIlBhcnRpYWwiLCJzY3JlZW5zaG90Iiwiem9vbSIsInJlcXVlc3RfYWNjZXNzIiwibGVmdF9jbGljayIsInJpZ2h0X2NsaWNrIiwibWlkZGxlX2NsaWNrIiwiZG91YmxlX2NsaWNrIiwidHJpcGxlX2NsaWNrIiwidHlwZSIsImtleSIsImhvbGRfa2V5Iiwic2Nyb2xsIiwibGVmdF9jbGlja19kcmFnIiwib3Blbl9hcHBsaWNhdGlvbiIsImdldENvbXB1dGVyVXNlTUNQUmVuZGVyaW5nT3ZlcnJpZGVzIiwidG9vbE5hbWUiLCJ1c2VyRmFjaW5nTmFtZSIsInJlbmRlclRvb2xVc2VNZXNzYWdlIiwiaW5wdXQiLCJvcHRpb25zIiwidmVyYm9zZSIsIlJlYWN0Tm9kZSIsInJlbmRlclRvb2xSZXN1bHRNZXNzYWdlIiwib3V0cHV0IiwicHJvZ3Jlc3NNZXNzYWdlcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiciIsImlzQXJyYXkiLCJsZW5ndGgiLCJidW5kbGVfaWQiLCJTdHJpbmciLCJuYW1lcyIsIm1hcCIsImEiLCJhY3Rpb25zIiwiX3Byb2dyZXNzIiwic3VtbWFyeSJdLCJzb3VyY2VzIjpbInRvb2xSZW5kZXJpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9NZXNzYWdlUmVzcG9uc2UuanMnXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgdHJ1bmNhdGVUb1dpZHRoIH0gZnJvbSAnLi4vZm9ybWF0LmpzJ1xuaW1wb3J0IHR5cGUgeyBNQ1BUb29sUmVzdWx0IH0gZnJvbSAnLi4vbWNwVmFsaWRhdGlvbi5qcydcblxudHlwZSBDdVRvb2xJbnB1dCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYge1xuICBjb29yZGluYXRlPzogW251bWJlciwgbnVtYmVyXVxuICBzdGFydF9jb29yZGluYXRlPzogW251bWJlciwgbnVtYmVyXVxuICB0ZXh0Pzogc3RyaW5nXG4gIGFwcHM/OiBBcnJheTx7IGRpc3BsYXlOYW1lPzogc3RyaW5nIH0+XG4gIHJlZ2lvbj86IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXG4gIGRpcmVjdGlvbj86IHN0cmluZ1xuICBhbW91bnQ/OiBudW1iZXJcbiAgZHVyYXRpb24/OiBudW1iZXJcbn1cblxuZnVuY3Rpb24gZm10Q29vcmQoYzogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIHJldHVybiBjID8gYCgke2NbMF19LCAke2NbMV19KWAgOiAnJ1xufVxuXG5jb25zdCBSRVNVTFRfU1VNTUFSWTogUmVhZG9ubHk8UGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNjcmVlbnNob3Q6ICdDYXB0dXJlZCcsXG4gIHpvb206ICdDYXB0dXJlZCcsXG4gIHJlcXVlc3RfYWNjZXNzOiAnQWNjZXNzIHVwZGF0ZWQnLFxuICBsZWZ0X2NsaWNrOiAnQ2xpY2tlZCcsXG4gIHJpZ2h0X2NsaWNrOiAnQ2xpY2tlZCcsXG4gIG1pZGRsZV9jbGljazogJ0NsaWNrZWQnLFxuICBkb3VibGVfY2xpY2s6ICdDbGlja2VkJyxcbiAgdHJpcGxlX2NsaWNrOiAnQ2xpY2tlZCcsXG4gIHR5cGU6ICdUeXBlZCcsXG4gIGtleTogJ1ByZXNzZWQnLFxuICBob2xkX2tleTogJ1ByZXNzZWQnLFxuICBzY3JvbGw6ICdTY3JvbGxlZCcsXG4gIGxlZnRfY2xpY2tfZHJhZzogJ0RyYWdnZWQnLFxuICBvcGVuX2FwcGxpY2F0aW9uOiAnT3BlbmVkJyxcbn1cblxuLyoqXG4gKiBSZW5kZXJpbmcgb3ZlcnJpZGVzIGZvciBgbWNwX19jb21wdXRlci11c2VfXypgIHRvb2xzLiBTcHJlYWQgaW50byB0aGUgTUNQXG4gKiB0b29sIG9iamVjdCBpbiBgY2xpZW50LnRzYCBhZnRlciB0aGUgZGVmYXVsdCBgdXNlckZhY2luZ05hbWVgLCBzbyB0aGVzZSB3aW4uXG4gKiBNaXJyb3Igb2YgYGdldENsYXVkZUluQ2hyb21lTUNQVG9vbE92ZXJyaWRlc2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wdXRlclVzZU1DUFJlbmRlcmluZ092ZXJyaWRlcyh0b29sTmFtZTogc3RyaW5nKToge1xuICB1c2VyRmFjaW5nTmFtZTogKCkgPT4gc3RyaW5nXG4gIHJlbmRlclRvb2xVc2VNZXNzYWdlOiAoXG4gICAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIG9wdGlvbnM6IHsgdmVyYm9zZTogYm9vbGVhbiB9LFxuICApID0+IFJlYWN0LlJlYWN0Tm9kZVxuICByZW5kZXJUb29sUmVzdWx0TWVzc2FnZTogKFxuICAgIG91dHB1dDogTUNQVG9vbFJlc3VsdCxcbiAgICBwcm9ncmVzc01lc3NhZ2VzOiB1bmtub3duW10sXG4gICAgb3B0aW9uczogeyB2ZXJib3NlOiBib29sZWFuIH0sXG4gICkgPT4gUmVhY3QuUmVhY3ROb2RlXG59IHtcbiAgcmV0dXJuIHtcbiAgICB1c2VyRmFjaW5nTmFtZSgpIHtcbiAgICAgIHJldHVybiBgQ29tcHV0ZXIgVXNlWyR7dG9vbE5hbWV9XWBcbiAgICB9LFxuXG4gICAgLy8gQXNzaXN0YW50VG9vbFVzZU1lc3NhZ2UudHN4IGNvbnRyYWN0OiBudWxsIGhpZGVzIHRoZSBFTlRJUkUgcm93LCAnJyBzaG93c1xuICAgIC8vIHRoZSB0b29sIG5hbWUgd2l0aG91dCBcIihhcmdzKVwiLiBFdmVyeSBwYXRoIGJlbG93IHJldHVybnMgJycgd2hlbiB0aGVyZSdzXG4gICAgLy8gbm90aGluZyB0byBzaG93IOKAlCBuZXZlciBudWxsLlxuICAgIHJlbmRlclRvb2xVc2VNZXNzYWdlKGlucHV0OiBDdVRvb2xJbnB1dCkge1xuICAgICAgc3dpdGNoICh0b29sTmFtZSkge1xuICAgICAgICBjYXNlICdzY3JlZW5zaG90JzpcbiAgICAgICAgY2FzZSAnbGVmdF9tb3VzZV9kb3duJzpcbiAgICAgICAgY2FzZSAnbGVmdF9tb3VzZV91cCc6XG4gICAgICAgIGNhc2UgJ2N1cnNvcl9wb3NpdGlvbic6XG4gICAgICAgIGNhc2UgJ2xpc3RfZ3JhbnRlZF9hcHBsaWNhdGlvbnMnOlxuICAgICAgICBjYXNlICdyZWFkX2NsaXBib2FyZCc6XG4gICAgICAgICAgcmV0dXJuICcnXG5cbiAgICAgICAgY2FzZSAnbGVmdF9jbGljayc6XG4gICAgICAgIGNhc2UgJ3JpZ2h0X2NsaWNrJzpcbiAgICAgICAgY2FzZSAnbWlkZGxlX2NsaWNrJzpcbiAgICAgICAgY2FzZSAnZG91YmxlX2NsaWNrJzpcbiAgICAgICAgY2FzZSAndHJpcGxlX2NsaWNrJzpcbiAgICAgICAgY2FzZSAnbW91c2VfbW92ZSc6XG4gICAgICAgICAgcmV0dXJuIGZtdENvb3JkKGlucHV0LmNvb3JkaW5hdGUpXG5cbiAgICAgICAgY2FzZSAnbGVmdF9jbGlja19kcmFnJzpcbiAgICAgICAgICByZXR1cm4gaW5wdXQuc3RhcnRfY29vcmRpbmF0ZVxuICAgICAgICAgICAgPyBgJHtmbXRDb29yZChpbnB1dC5zdGFydF9jb29yZGluYXRlKX0g4oaSICR7Zm10Q29vcmQoaW5wdXQuY29vcmRpbmF0ZSl9YFxuICAgICAgICAgICAgOiBgdG8gJHtmbXRDb29yZChpbnB1dC5jb29yZGluYXRlKX1gXG5cbiAgICAgICAgY2FzZSAndHlwZSc6XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dC50ZXh0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBgXCIke3RydW5jYXRlVG9XaWR0aChpbnB1dC50ZXh0LCA0MCl9XCJgXG4gICAgICAgICAgICA6ICcnXG5cbiAgICAgICAgY2FzZSAna2V5JzpcbiAgICAgICAgY2FzZSAnaG9sZF9rZXknOlxuICAgICAgICAgIHJldHVybiB0eXBlb2YgaW5wdXQudGV4dCA9PT0gJ3N0cmluZycgPyBpbnB1dC50ZXh0IDogJydcblxuICAgICAgICBjYXNlICdzY3JvbGwnOlxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBpbnB1dC5kaXJlY3Rpb24sXG4gICAgICAgICAgICBpbnB1dC5hbW91bnQgJiYgYMOXJHtpbnB1dC5hbW91bnR9YCxcbiAgICAgICAgICAgIGlucHV0LmNvb3JkaW5hdGUgJiYgYGF0ICR7Zm10Q29vcmQoaW5wdXQuY29vcmRpbmF0ZSl9YCxcbiAgICAgICAgICBdXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAuam9pbignICcpXG5cbiAgICAgICAgY2FzZSAnem9vbSc6IHtcbiAgICAgICAgICBjb25zdCByID0gaW5wdXQucmVnaW9uXG4gICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocikgJiYgci5sZW5ndGggPT09IDRcbiAgICAgICAgICAgID8gYFske3JbMF19LCAke3JbMV19LCAke3JbMl19LCAke3JbM119XWBcbiAgICAgICAgICAgIDogJydcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgJ3dhaXQnOlxuICAgICAgICAgIHJldHVybiB0eXBlb2YgaW5wdXQuZHVyYXRpb24gPT09ICdudW1iZXInID8gYCR7aW5wdXQuZHVyYXRpb259c2AgOiAnJ1xuXG4gICAgICAgIGNhc2UgJ3dyaXRlX2NsaXBib2FyZCc6XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dC50ZXh0ID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBgXCIke3RydW5jYXRlVG9XaWR0aChpbnB1dC50ZXh0LCA0MCl9XCJgXG4gICAgICAgICAgICA6ICcnXG5cbiAgICAgICAgY2FzZSAnb3Blbl9hcHBsaWNhdGlvbic6XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dC5idW5kbGVfaWQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IFN0cmluZyhpbnB1dC5idW5kbGVfaWQpXG4gICAgICAgICAgICA6ICcnXG5cbiAgICAgICAgY2FzZSAncmVxdWVzdF9hY2Nlc3MnOiB7XG4gICAgICAgICAgY29uc3QgYXBwcyA9IGlucHV0LmFwcHNcbiAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXBwcykpIHJldHVybiAnJ1xuICAgICAgICAgIGNvbnN0IG5hbWVzID0gYXBwc1xuICAgICAgICAgICAgLm1hcChhID0+ICh0eXBlb2YgYT8uZGlzcGxheU5hbWUgPT09ICdzdHJpbmcnID8gYS5kaXNwbGF5TmFtZSA6ICcnKSlcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICByZXR1cm4gbmFtZXMuam9pbignLCAnKVxuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSAnY29tcHV0ZXJfYmF0Y2gnOiB7XG4gICAgICAgICAgY29uc3QgYWN0aW9ucyA9IGlucHV0LmFjdGlvbnNcbiAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShhY3Rpb25zKSA/IGAke2FjdGlvbnMubGVuZ3RofSBhY3Rpb25zYCA6ICcnXG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAnJ1xuICAgICAgfVxuICAgIH0sXG5cbiAgICByZW5kZXJUb29sUmVzdWx0TWVzc2FnZShvdXRwdXQsIF9wcm9ncmVzcywgeyB2ZXJib3NlIH0pIHtcbiAgICAgIGlmICh2ZXJib3NlIHx8IHR5cGVvZiBvdXRwdXQgIT09ICdvYmplY3QnIHx8IG91dHB1dCA9PT0gbnVsbCkgcmV0dXJuIG51bGxcblxuICAgICAgLy8gTm9uLXZlcmJvc2U6IG9uZS1saW5lIGRpbSBzdW1tYXJ5LCBsaWtlIENocm9tZSdzIHBhdHRlcm4uXG4gICAgICBjb25zdCBzdW1tYXJ5ID0gUkVTVUxUX1NVTU1BUllbdG9vbE5hbWVdXG4gICAgICBpZiAoIXN1bW1hcnkpIHJldHVybiBudWxsXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWVzc2FnZVJlc3BvbnNlIGhlaWdodD17MX0+XG4gICAgICAgICAgPFRleHQgZGltQ29sb3I+e3N1bW1hcnl9PC9UZXh0PlxuICAgICAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgICAgIClcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsZUFBZSxRQUFRLHFDQUFxQztBQUNyRSxTQUFTQyxJQUFJLFFBQVEsY0FBYztBQUNuQyxTQUFTQyxlQUFlLFFBQVEsY0FBYztBQUM5QyxjQUFjQyxhQUFhLFFBQVEscUJBQXFCO0FBRXhELEtBQUtDLFdBQVcsR0FBR0MsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRztFQUMzQ0MsVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0VBQzdCQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztFQUNuQ0MsSUFBSSxDQUFDLEVBQUUsTUFBTTtFQUNiQyxJQUFJLENBQUMsRUFBRUMsS0FBSyxDQUFDO0lBQUVDLFdBQVcsQ0FBQyxFQUFFLE1BQU07RUFBQyxDQUFDLENBQUM7RUFDdENDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO0VBQ3pDQyxTQUFTLENBQUMsRUFBRSxNQUFNO0VBQ2xCQyxNQUFNLENBQUMsRUFBRSxNQUFNO0VBQ2ZDLFFBQVEsQ0FBQyxFQUFFLE1BQU07QUFDbkIsQ0FBQztBQUVELFNBQVNDLFFBQVFBLENBQUNDLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7RUFDekQsT0FB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
|
|
124
|
+
}
|
|
@@ -333,4 +333,3 @@ async function runPermissionDialog(req: CuPermissionRequest): Promise<CuPermissi
|
|
|
333
333
|
setToolJSX(null);
|
|
334
334
|
}
|
|
335
335
|
}
|
|
336
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJiaW5kU2Vzc2lvbkNvbnRleHQiLCJDb21wdXRlclVzZVNlc3Npb25Db250ZXh0IiwiQ3VDYWxsVG9vbFJlc3VsdCIsIkN1UGVybWlzc2lvblJlcXVlc3QiLCJDdVBlcm1pc3Npb25SZXNwb25zZSIsIkRFRkFVTFRfR1JBTlRfRkxBR1MiLCJTY3JlZW5zaG90RGltcyIsIlJlYWN0IiwiZ2V0U2Vzc2lvbklkIiwiQ29tcHV0ZXJVc2VBcHByb3ZhbCIsIlRvb2wiLCJUb29sVXNlQ29udGV4dCIsImxvZ0ZvckRlYnVnZ2luZyIsImNoZWNrQ29tcHV0ZXJVc2VMb2NrIiwidHJ5QWNxdWlyZUNvbXB1dGVyVXNlTG9jayIsInJlZ2lzdGVyRXNjSG90a2V5IiwiZ2V0Q2hpY2Fnb0Nvb3JkaW5hdGVNb2RlIiwiZ2V0Q29tcHV0ZXJVc2VIb3N0QWRhcHRlciIsImdldENvbXB1dGVyVXNlTUNQUmVuZGVyaW5nT3ZlcnJpZGVzIiwiQ2FsbE92ZXJyaWRlIiwiUGljayIsIkJpbmRpbmciLCJjdHgiLCJkaXNwYXRjaCIsIm5hbWUiLCJhcmdzIiwiUHJvbWlzZSIsImJpbmRpbmciLCJjdXJyZW50VG9vbFVzZUNvbnRleHQiLCJ0dWMiLCJmb3JtYXRMb2NrSGVsZCIsImhvbGRlciIsInNsaWNlIiwiYnVpbGRTZXNzaW9uQ29udGV4dCIsImdldEFsbG93ZWRBcHBzIiwiZ2V0QXBwU3RhdGUiLCJjb21wdXRlclVzZU1jcFN0YXRlIiwiYWxsb3dlZEFwcHMiLCJnZXRHcmFudEZsYWdzIiwiZ3JhbnRGbGFncyIsImdldFVzZXJEZW5pZWRCdW5kbGVJZHMiLCJnZXRTZWxlY3RlZERpc3BsYXlJZCIsInNlbGVjdGVkRGlzcGxheUlkIiwiZ2V0RGlzcGxheVBpbm5lZEJ5TW9kZWwiLCJkaXNwbGF5UGlubmVkQnlNb2RlbCIsImdldERpc3BsYXlSZXNvbHZlZEZvckFwcHMiLCJkaXNwbGF5UmVzb2x2ZWRGb3JBcHBzIiwiZ2V0TGFzdFNjcmVlbnNob3REaW1zIiwiZCIsImxhc3RTY3JlZW5zaG90RGltcyIsImRpc3BsYXlJZCIsIm9yaWdpblgiLCJvcmlnaW5ZIiwidW5kZWZpbmVkIiwib25QZXJtaXNzaW9uUmVxdWVzdCIsInJlcSIsIl9kaWFsb2dTaWduYWwiLCJydW5QZXJtaXNzaW9uRGlhbG9nIiwib25BbGxvd2VkQXBwc0NoYW5nZWQiLCJhcHBzIiwiZmxhZ3MiLCJzZXRBcHBTdGF0ZSIsInByZXYiLCJjdSIsInByZXZBcHBzIiwicHJldkZsYWdzIiwic2FtZUFwcHMiLCJsZW5ndGgiLCJldmVyeSIsImEiLCJpIiwiYnVuZGxlSWQiLCJzYW1lRmxhZ3MiLCJjbGlwYm9hcmRSZWFkIiwiY2xpcGJvYXJkV3JpdGUiLCJzeXN0ZW1LZXlDb21ib3MiLCJvbkFwcHNIaWRkZW4iLCJpZHMiLCJleGlzdGluZyIsImhpZGRlbkR1cmluZ1R1cm4iLCJpZCIsImhhcyIsIlNldCIsIm9uUmVzb2x2ZWREaXNwbGF5VXBkYXRlZCIsIm9uRGlzcGxheVBpbm5lZCIsInBpbm5lZCIsIm5leHRSZXNvbHZlZEZvciIsIm9uRGlzcGxheVJlc29sdmVkRm9yQXBwcyIsImtleSIsIm9uU2NyZWVuc2hvdENhcHR1cmVkIiwiZGltcyIsInAiLCJ3aWR0aCIsImhlaWdodCIsImRpc3BsYXlXaWR0aCIsImRpc3BsYXlIZWlnaHQiLCJjaGVja0N1TG9jayIsImMiLCJraW5kIiwiaXNTZWxmIiwiYnkiLCJhY3F1aXJlQ3VMb2NrIiwiciIsIkVycm9yIiwiZnJlc2giLCJlc2NSZWdpc3RlcmVkIiwiYWJvcnRDb250cm9sbGVyIiwiYWJvcnQiLCJzZW5kT1NOb3RpZmljYXRpb24iLCJtZXNzYWdlIiwibm90aWZpY2F0aW9uVHlwZSIsImZvcm1hdExvY2tIZWxkTWVzc2FnZSIsImdldE9yQmluZCIsIkNvbXB1dGVyVXNlTUNQVG9vbE92ZXJyaWRlcyIsIlJldHVyblR5cGUiLCJjYWxsIiwiZ2V0Q29tcHV0ZXJVc2VNQ1BUb29sT3ZlcnJpZGVzIiwidG9vbE5hbWUiLCJjb250ZXh0IiwidGVsZW1ldHJ5IiwicmVzdWx0IiwiZXJyb3Jfa2luZCIsImRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJjb250ZW50IiwibWFwIiwiaXRlbSIsInR5cGUiLCJjb25zdCIsInNvdXJjZSIsIm1lZGlhX3R5cGUiLCJtaW1lVHlwZSIsInRleHQiLCJzZXRUb29sSlNYIiwiZ3JhbnRlZCIsImRlbmllZCIsInJlc29sdmUiLCJyZWplY3QiLCJzaWduYWwiLCJhYm9ydGVkIiwib25BYm9ydCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhZGRFdmVudExpc3RlbmVyIiwianN4IiwiY3JlYXRlRWxlbWVudCIsInJlcXVlc3QiLCJvbkRvbmUiLCJyZXNwIiwic2hvdWxkSGlkZVByb21wdElucHV0Il0sInNvdXJjZXMiOlsid3JhcHBlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYC5jYWxsKClgIG92ZXJyaWRlIOKAlCB0aGluIGFkYXB0ZXIgYmV0d2VlbiBgVG9vbFVzZUNvbnRleHRgIGFuZFxuICogYGJpbmRTZXNzaW9uQ29udGV4dGAuIFNwcmVhZCBpbnRvIHRoZSBNQ1AgdG9vbCBvYmplY3QgaW4gYGNsaWVudC50c2BcbiAqIChzYW1lIHBhdHRlcm4gYXMgQ2hyb21lJ3MgcmVuZGVyaW5nIG92ZXJyaWRlcywgcGx1cyBgLmNhbGwoKWApLlxuICpcbiAqIFRoZSB3cmFwcGVyLWNsb3N1cmUgbG9naWMgKGJ1aWxkIG92ZXJyaWRlcyBmcmVzaCwgbG9jayBnYXRlLCBwZXJtaXNzaW9uXG4gKiBtZXJnZSwgc2NyZWVuc2hvdCBzdGFzaCkgbGl2ZXMgaW4gYEBhbnQvY29tcHV0ZXItdXNlLW1jcGAnc1xuICogYGJpbmRTZXNzaW9uQ29udGV4dGAuIFRoaXMgZmlsZSBiaW5kcyBpdCBvbmNlIHBlciBwcm9jZXNzLFxuICogY2FjaGVzIHRoZSBkaXNwYXRjaGVyLCBhbmQgdXBkYXRlcyBhIHBlci1jYWxsIHJlZiBmb3IgdGhlIHBpZWNlcyBvZlxuICogYFRvb2xVc2VDb250ZXh0YCB0aGF0IHZhcnkgcGVyLWNhbGwgKGBhYm9ydENvbnRyb2xsZXJgLCBgc2V0VG9vbEpTWGAsXG4gKiBgc2VuZE9TTm90aWZpY2F0aW9uYCkuIEFwcFN0YXRlIGFjY2Vzc29ycyBhcmUgcmVhZCB0aHJvdWdoIHRoZSByZWYgdG9vIOKAlFxuICogdGhleSdyZSBsaWtlbHkgc3RhYmxlIGJ1dCB3ZSBkb24ndCBkZXBlbmQgb24gdGhhdC5cbiAqXG4gKiBFeHRlcm5hbCBjYWxsZXJzIHJlYWNoIHRoaXMgdmlhIHRoZSBsYXp5IHJlcXVpcmUgdGh1bmsgaW4gYGNsaWVudC50c2AsIGdhdGVkXG4gKiBvbiBgZmVhdHVyZSgnQ0hJQ0FHT19NQ1AnKWAuIFJ1bnRpbWUgZW5hYmxlbWVudCBpcyBjb250cm9sbGVkIGJ5IHRoZVxuICogR3Jvd3RoQm9vayBnYXRlIGB0ZW5ndV9tYWxvcnRfcGVkd2F5YCAoc2VlIGdhdGVzLnRzKS5cbiAqL1xuXG5pbXBvcnQge1xuICBiaW5kU2Vzc2lvbkNvbnRleHQsXG4gIHR5cGUgQ29tcHV0ZXJVc2VTZXNzaW9uQ29udGV4dCxcbiAgdHlwZSBDdUNhbGxUb29sUmVzdWx0LFxuICB0eXBlIEN1UGVybWlzc2lvblJlcXVlc3QsXG4gIHR5cGUgQ3VQZXJtaXNzaW9uUmVzcG9uc2UsXG4gIERFRkFVTFRfR1JBTlRfRkxBR1MsXG4gIHR5cGUgU2NyZWVuc2hvdERpbXMsXG59IGZyb20gJ0BhbnQvY29tcHV0ZXItdXNlLW1jcCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZ2V0U2Vzc2lvbklkIH0gZnJvbSAnLi4vLi4vYm9vdHN0cmFwL3N0YXRlLmpzJ1xuaW1wb3J0IHsgQ29tcHV0ZXJVc2VBcHByb3ZhbCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcGVybWlzc2lvbnMvQ29tcHV0ZXJVc2VBcHByb3ZhbC9Db21wdXRlclVzZUFwcHJvdmFsLmpzJ1xuaW1wb3J0IHR5cGUgeyBUb29sLCBUb29sVXNlQ29udGV4dCB9IGZyb20gJy4uLy4uL1Rvb2wuanMnXG5pbXBvcnQgeyBsb2dGb3JEZWJ1Z2dpbmcgfSBmcm9tICcuLi9kZWJ1Zy5qcydcbmltcG9ydCB7XG4gIGNoZWNrQ29tcHV0ZXJVc2VMb2NrLFxuICB0cnlBY3F1aXJlQ29tcHV0ZXJVc2VMb2NrLFxufSBmcm9tICcuL2NvbXB1dGVyVXNlTG9jay5qcydcbmltcG9ydCB7IHJlZ2lzdGVyRXNjSG90a2V5IH0gZnJvbSAnLi9lc2NIb3RrZXkuanMnXG5pbXBvcnQgeyBnZXRDaGljYWdvQ29vcmRpbmF0ZU1vZGUgfSBmcm9tICcuL2dhdGVzLmpzJ1xuaW1wb3J0IHsgZ2V0Q29tcHV0ZXJVc2VIb3N0QWRhcHRlciB9IGZyb20gJy4vaG9zdEFkYXB0ZXIuanMnXG5pbXBvcnQgeyBnZXRDb21wdXRlclVzZU1DUFJlbmRlcmluZ092ZXJyaWRlcyB9IGZyb20gJy4vdG9vbFJlbmRlcmluZy5qcydcblxudHlwZSBDYWxsT3ZlcnJpZGUgPSBQaWNrPFRvb2wsICdjYWxsJz5bJ2NhbGwnXVxuXG50eXBlIEJpbmRpbmcgPSB7XG4gIGN0eDogQ29tcHV0ZXJVc2VTZXNzaW9uQ29udGV4dFxuICBkaXNwYXRjaDogKG5hbWU6IHN0cmluZywgYXJnczogdW5rbm93bikgPT4gUHJvbWlzZTxDdUNhbGxUb29sUmVzdWx0PlxufVxuXG4vKipcbiAqIENhY2hlZCBiaW5kaW5nIOKAlCBidWlsdCBvbiBmaXJzdCBgLmNhbGwoKWAsIHJldXNlZCBmb3IgcHJvY2VzcyBsaWZldGltZS5cbiAqIFRoZSBkaXNwYXRjaGVyJ3MgY2xvc3VyZS1oZWxkIHNjcmVlbnNob3QgYmxvYiBwZXJzaXN0cyBhY3Jvc3MgY2FsbHMuXG4gKlxuICogYGN1cnJlbnRUb29sVXNlQ29udGV4dGAgaXMgdXBkYXRlZCBvbiBldmVyeSBjYWxsLiBFdmVyeSBnZXR0ZXIvY2FsbGJhY2sgaW5cbiAqIGBjdHhgIHJlYWRzIHRocm91Z2ggaXQsIHNvIHRoZSBwZXItY2FsbCBwaWVjZXMgKGBhYm9ydENvbnRyb2xsZXJgLFxuICogYHNldFRvb2xKU1hgLCBgc2VuZE9TTm90aWZpY2F0aW9uYCkgYXJlIGFsd2F5cyBjdXJyZW50LlxuICpcbiAqIE1vZHVsZS1sZXZlbCBgbGV0YCBpcyBhIGRlbGliZXJhdGUgZXhjZXB0aW9uIHRvIHRoZSBuby1tb2R1bGUtc2NvcGUtc3RhdGVcbiAqIHJ1bGUgKHNyYy9DTEFVREUubWQpOiB0aGUgZGlzcGF0Y2hlciBjbG9zdXJlIG11c3QgcGVyc2lzdCBhY3Jvc3MgY2FsbHMgc29cbiAqIGl0cyBpbnRlcm5hbCBzY3JlZW5zaG90IGJsb2Igc3Vydml2ZXMsIGJ1dCBgVG9vbFVzZUNvbnRleHRgIGlzIHBlci1jYWxsLlxuICogVGVzdHMgd2lsbCBuZWVkIHRvIGVpdGhlciBpbmplY3QgdGhlIGNhY2hlIG9yIHJ1biBzZXJpYWxseS5cbiAqL1xubGV0IGJpbmRpbmc6IEJpbmRpbmcgfCB1bmRlZmluZWRcbmxldCBjdXJyZW50VG9vbFVzZUNvbnRleHQ6IFRvb2xVc2VDb250ZXh0IHwgdW5kZWZpbmVkXG5cbmZ1bmN0aW9uIHR1YygpOiBUb29sVXNlQ29udGV4dCB7XG4gIC8vIFNhZmU6IGBiaW5kaW5nYCBpcyBvbmx5IHBvcHVsYXRlZCB3aGVuIGBjdXJyZW50VG9vbFVzZUNvbnRleHRgIGlzIHNldC5cbiAgLy8gQ2FsbGVkIG9ubHkgZnJvbSB3aXRoaW4gYGN0eGAgY2FsbGJhY2tzLCB3aGljaCBvbmx5IGZpcmUgZHVyaW5nIGRpc3BhdGNoLlxuICByZXR1cm4gY3VycmVudFRvb2xVc2VDb250ZXh0IVxufVxuXG5mdW5jdGlvbiBmb3JtYXRMb2NrSGVsZChob2xkZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgQ29tcHV0ZXIgdXNlIGlzIGluIHVzZSBieSBhbm90aGVyIENsYXVkZSBzZXNzaW9uICgke2hvbGRlci5zbGljZSgwLCA4KX3igKYpLiBXYWl0IGZvciB0aGF0IHNlc3Npb24gdG8gZmluaXNoIG9yIHJ1biAvZXhpdCB0aGVyZS5gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNlc3Npb25Db250ZXh0KCk6IENvbXB1dGVyVXNlU2Vzc2lvbkNvbnRleHQge1xuICByZXR1cm4ge1xuICAgIC8vIOKUgOKUgCBSZWFkIHN0YXRlIGZyZXNoIHZpYSB0aGUgcGVyLWNhbGwgcmVmIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgIGdldEFsbG93ZWRBcHBzOiAoKSA9PlxuICAgICAgdHVjKCkuZ2V0QXBwU3RhdGUoKS5jb21wdXRlclVzZU1jcFN0YXRlPy5hbGxvd2VkQXBwcyA/PyBbXSxcbiAgICBnZXRHcmFudEZsYWdzOiAoKSA9PlxuICAgICAgdHVjKCkuZ2V0QXBwU3RhdGUoKS5jb21wdXRlclVzZU1jcFN0YXRlPy5ncmFudEZsYWdzID8/XG4gICAgICBERUZBVUxUX0dSQU5UX0ZMQUdTLFxuICAgIC8vIGNjLTIgaGFzIG5vIFNldHRpbmdzIHBhZ2UgZm9yIHVzZXItZGVuaWVkIGFwcHMgeWV0LlxuICAgIGdldFVzZXJEZW5pZWRCdW5kbGVJZHM6ICgpID0+IFtdLFxuICAgIGdldFNlbGVjdGVkRGlzcGxheUlkOiAoKSA9PlxuICAgICAgdHVjKCkuZ2V0QXBwU3RhdGUoKS5jb21wdXRlclVzZU1jcFN0YXRlPy5zZWxlY3RlZERpc3BsYXlJZCxcbiAgICBnZXREaXNwbGF5UGlubmVkQnlNb2RlbDogKCkgPT5cbiAgICAgIHR1YygpLmdldEFwcFN0YXRlKCkuY29tcHV0ZXJVc2VNY3BTdGF0ZT8uZGlzcGxheVBpbm5lZEJ5TW9kZWwgPz8gZmFsc2UsXG4gICAgZ2V0RGlzcGxheVJlc29sdmVkRm9yQXBwczogKCkgPT5cbiAgICAgIHR1YygpLmdldEFwcFN0YXRlKCkuY29tcHV0ZXJVc2VNY3BTdGF0ZT8uZGlzcGxheVJlc29sdmVkRm9yQXBwcyxcbiAgICBnZXRMYXN0U2NyZWVuc2hvdERpbXM6ICgpOiBTY3JlZW5zaG90RGltcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICBjb25zdCBkID0gdHVjKCkuZ2V0QXBwU3RhdGUoKS5jb21wdXRlclVzZU1jcFN0YXRlPy5sYXN0U2NyZWVuc2hvdERpbXNcbiAgICAgIHJldHVybiBkXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uZCxcbiAgICAgICAgICAgIGRpc3BsYXlJZDogZC5kaXNwbGF5SWQgPz8gMCxcbiAgICAgICAgICAgIG9yaWdpblg6IGQub3JpZ2luWCA/PyAwLFxuICAgICAgICAgICAgb3JpZ2luWTogZC5vcmlnaW5ZID8/IDAsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZFxuICAgIH0sXG5cbiAgICAvLyDilIDilIAgV3JpdGUtYmFja3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgLy8gYHNldFRvb2xKU1hgIGlzIGd1YXJhbnRlZWQgcHJlc2VudCDigJQgdGhlIGdhdGUgaW4gYG1haW4udHN4YCBleGNsdWRlc1xuICAgIC8vIG5vbi1pbnRlcmFjdGl2ZSBzZXNzaW9ucy4gVGhlIHBhY2thZ2UncyBgX2RpYWxvZ1NpZ25hbGAgKHRvb2wtZmluaXNoZWRcbiAgICAvLyBkaXNtaXNzYWwpIGlzIGlycmVsZXZhbnQgaGVyZTogYHNldFRvb2xKU1hgIGJsb2NrcyB0aGUgdG9vbCBjYWxsLCBzb1xuICAgIC8vIHRoZSBkaWFsb2cgY2FuJ3Qgb3V0bGl2ZSBpdC4gQ3RybCtDIGlzIHdoYXQgbWF0dGVycywgYW5kXG4gICAgLy8gYHJ1blBlcm1pc3Npb25EaWFsb2dgIHdpcmVzIHRoYXQgZnJvbSB0aGUgcGVyLWNhbGwgcmVmJ3MgYWJvcnRDb250cm9sbGVyLlxuICAgIG9uUGVybWlzc2lvblJlcXVlc3Q6IChyZXEsIF9kaWFsb2dTaWduYWwpID0+IHJ1blBlcm1pc3Npb25EaWFsb2cocmVxKSxcblxuICAgIC8vIFBhY2thZ2UgZG9lcyB0aGUgbWVyZ2UgKGRlZHVwZSArIHRydXRoeS1vbmx5IGZsYWdzKS4gV2UganVzdCBwZXJzaXN0LlxuICAgIG9uQWxsb3dlZEFwcHNDaGFuZ2VkOiAoYXBwcywgZmxhZ3MpID0+XG4gICAgICB0dWMoKS5zZXRBcHBTdGF0ZShwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgY3UgPSBwcmV2LmNvbXB1dGVyVXNlTWNwU3RhdGVcbiAgICAgICAgY29uc3QgcHJldkFwcHMgPSBjdT8uYWxsb3dlZEFwcHNcbiAgICAgICAgY29uc3QgcHJldkZsYWdzID0gY3U/LmdyYW50RmxhZ3NcbiAgICAgICAgY29uc3Qgc2FtZUFwcHMgPVxuICAgICAgICAgIHByZXZBcHBzPy5sZW5ndGggPT09IGFwcHMubGVuZ3RoICYmXG4gICAgICAgICAgYXBwcy5ldmVyeSgoYSwgaSkgPT4gcHJldkFwcHNbaV0/LmJ1bmRsZUlkID09PSBhLmJ1bmRsZUlkKVxuICAgICAgICBjb25zdCBzYW1lRmxhZ3MgPVxuICAgICAgICAgIHByZXZGbGFncz8uY2xpcGJvYXJkUmVhZCA9PT0gZmxhZ3MuY2xpcGJvYXJkUmVhZCAmJlxuICAgICAgICAgIHByZXZGbGFncz8uY2xpcGJvYXJkV3JpdGUgPT09IGZsYWdzLmNsaXBib2FyZFdyaXRlICYmXG4gICAgICAgICAgcHJldkZsYWdzPy5zeXN0ZW1LZXlDb21ib3MgPT09IGZsYWdzLnN5c3RlbUtleUNvbWJvc1xuICAgICAgICByZXR1cm4gc2FtZUFwcHMgJiYgc2FtZUZsYWdzXG4gICAgICAgICAgPyBwcmV2XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIGNvbXB1dGVyVXNlTWNwU3RhdGU6IHtcbiAgICAgICAgICAgICAgICAuLi5jdSxcbiAgICAgICAgICAgICAgICBhbGxvd2VkQXBwczogWy4uLmFwcHNdLFxuICAgICAgICAgICAgICAgIGdyYW50RmxhZ3M6IGZsYWdzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgfSksXG5cbiAgICBvbkFwcHNIaWRkZW46IGlkcyA9PiB7XG4gICAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG4gICAgICB0dWMoKS5zZXRBcHBTdGF0ZShwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgY3UgPSBwcmV2LmNvbXB1dGVyVXNlTWNwU3RhdGVcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBjdT8uaGlkZGVuRHVyaW5nVHVyblxuICAgICAgICBpZiAoZXhpc3RpbmcgJiYgaWRzLmV2ZXJ5KGlkID0+IGV4aXN0aW5nLmhhcyhpZCkpKSByZXR1cm4gcHJldlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgY29tcHV0ZXJVc2VNY3BTdGF0ZToge1xuICAgICAgICAgICAgLi4uY3UsXG4gICAgICAgICAgICBoaWRkZW5EdXJpbmdUdXJuOiBuZXcgU2V0KFsuLi4oZXhpc3RpbmcgPz8gW10pLCAuLi5pZHNdKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG5cbiAgICAvLyBSZXNvbHZlciB3cml0ZWJhY2sgb25seSBmaXJlcyB1bmRlciBhIHBpbiB3aGVuIFN3aWZ0IGZlbGwgYmFjayB0byBtYWluXG4gICAgLy8gKHBpbm5lZCBkaXNwbGF5IHVucGx1Z2dlZCkg4oCUIHRoZSBwaW4gaXMgc2VtYW50aWNhbGx5IGRlYWQsIHNvIGNsZWFyIGl0XG4gICAgLy8gYW5kIHRoZSBhcHAtc2V0IGtleSBzbyB0aGUgY2hhc2UgY2hhaW4gcnVucyBuZXh0IHRpbWUuIFdoZW4gYXV0b1Jlc29sdmVcbiAgICAvLyB3YXMgdHJ1ZSwgb25EaXNwbGF5UmVzb2x2ZWRGb3JBcHBzIHJlLXNldHMgdGhlIGtleSBpbiB0aGUgc2FtZSB0aWNrLlxuICAgIG9uUmVzb2x2ZWREaXNwbGF5VXBkYXRlZDogaWQgPT5cbiAgICAgIHR1YygpLnNldEFwcFN0YXRlKHByZXYgPT4ge1xuICAgICAgICBjb25zdCBjdSA9IHByZXYuY29tcHV0ZXJVc2VNY3BTdGF0ZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgY3U/LnNlbGVjdGVkRGlzcGxheUlkID09PSBpZCAmJlxuICAgICAgICAgICFjdS5kaXNwbGF5UGlubmVkQnlNb2RlbCAmJlxuICAgICAgICAgIGN1LmRpc3BsYXlSZXNvbHZlZEZvckFwcHMgPT09IHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gcHJldlxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBjb21wdXRlclVzZU1jcFN0YXRlOiB7XG4gICAgICAgICAgICAuLi5jdSxcbiAgICAgICAgICAgIHNlbGVjdGVkRGlzcGxheUlkOiBpZCxcbiAgICAgICAgICAgIGRpc3BsYXlQaW5uZWRCeU1vZGVsOiBmYWxzZSxcbiAgICAgICAgICAgIGRpc3BsYXlSZXNvbHZlZEZvckFwcHM6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICB9KSxcblxuICAgIC8vIHN3aXRjaF9kaXNwbGF5KG5hbWUpIHBpbnM7IHN3aXRjaF9kaXNwbGF5KFwiYXV0b1wiKSB1bnBpbnMgYW5kIGNsZWFycyB0aGVcbiAgICAvLyBhcHAtc2V0IGtleSBzbyB0aGUgbmV4dCBzY3JlZW5zaG90IGF1dG8tcmVzb2x2ZXMgZnJlc2guXG4gICAgb25EaXNwbGF5UGlubmVkOiBpZCA9PlxuICAgICAgdHVjKCkuc2V0QXBwU3RhdGUocHJldiA9PiB7XG4gICAgICAgIGNvbnN0IGN1ID0gcHJldi5jb21wdXRlclVzZU1jcFN0YXRlXG4gICAgICAgIGNvbnN0IHBpbm5lZCA9IGlkICE9PSB1bmRlZmluZWRcbiAgICAgICAgY29uc3QgbmV4dFJlc29sdmVkRm9yID0gcGlubmVkID8gY3U/LmRpc3BsYXlSZXNvbHZlZEZvckFwcHMgOiB1bmRlZmluZWRcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGN1Py5zZWxlY3RlZERpc3BsYXlJZCA9PT0gaWQgJiZcbiAgICAgICAgICBjdT8uZGlzcGxheVBpbm5lZEJ5TW9kZWwgPT09IHBpbm5lZCAmJlxuICAgICAgICAgIGN1Py5kaXNwbGF5UmVzb2x2ZWRGb3JBcHBzID09PSBuZXh0UmVzb2x2ZWRGb3JcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIHByZXZcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgY29tcHV0ZXJVc2VNY3BTdGF0ZToge1xuICAgICAgICAgICAgLi4uY3UsXG4gICAgICAgICAgICBzZWxlY3RlZERpc3BsYXlJZDogaWQsXG4gICAgICAgICAgICBkaXNwbGF5UGlubmVkQnlNb2RlbDogcGlubmVkLFxuICAgICAgICAgICAgZGlzcGxheVJlc29sdmVkRm9yQXBwczogbmV4dFJlc29sdmVkRm9yLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgIH0pLFxuXG4gICAgb25EaXNwbGF5UmVzb2x2ZWRGb3JBcHBzOiBrZXkgPT5cbiAgICAgIHR1YygpLnNldEFwcFN0YXRlKHByZXYgPT4ge1xuICAgICAgICBjb25zdCBjdSA9IHByZXYuY29tcHV0ZXJVc2VNY3BTdGF0ZVxuICAgICAgICBpZiAoY3U/LmRpc3BsYXlSZXNvbHZlZEZvckFwcHMgPT09IGtleSkgcmV0dXJuIHByZXZcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGNvbXB1dGVyVXNlTWNwU3RhdGU6IHsgLi4uY3UsIGRpc3BsYXlSZXNvbHZlZEZvckFwcHM6IGtleSB9LFxuICAgICAgICB9XG4gICAgICB9KSxcblxuICAgIG9uU2NyZWVuc2hvdENhcHR1cmVkOiBkaW1zID0+XG4gICAgICB0dWMoKS5zZXRBcHBTdGF0ZShwcmV2ID0+IHtcbiAgICAgICAgY29uc3QgY3UgPSBwcmV2LmNvbXB1dGVyVXNlTWNwU3RhdGVcbiAgICAgICAgY29uc3QgcCA9IGN1Py5sYXN0U2NyZWVuc2hvdERpbXNcbiAgICAgICAgcmV0dXJuIHA/LndpZHRoID09PSBkaW1zLndpZHRoICYmXG4gICAgICAgICAgcD8uaGVpZ2h0ID09PSBkaW1zLmhlaWdodCAmJlxuICAgICAgICAgIHA/LmRpc3BsYXlXaWR0aCA9PT0gZGltcy5kaXNwbGF5V2lkdGggJiZcbiAgICAgICAgICBwPy5kaXNwbGF5SGVpZ2h0ID09PSBkaW1zLmRpc3BsYXlIZWlnaHQgJiZcbiAgICAgICAgICBwPy5kaXNwbGF5SWQgPT09IGRpbXMuZGlzcGxheUlkICYmXG4gICAgICAgICAgcD8ub3JpZ2luWCA9PT0gZGltcy5vcmlnaW5YICYmXG4gICAgICAgICAgcD8ub3JpZ2luWSA9PT0gZGltcy5vcmlnaW5ZXG4gICAgICAgICAgPyBwcmV2XG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIGNvbXB1dGVyVXNlTWNwU3RhdGU6IHsgLi4uY3UsIGxhc3RTY3JlZW5zaG90RGltczogZGltcyB9LFxuICAgICAgICAgICAgfVxuICAgICAgfSksXG5cbiAgICAvLyDilIDilIAgTG9jayDigJQgYXN5bmMsIGRpcmVjdCBmaWxlLWxvY2sgY2FsbHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICAgLy8gTm8gYGxvY2tIb2xkZXJGb3JHYXRlYCBkYW5jZTogdGhlIHBhY2thZ2UncyBnYXRlIGlzIGFzeW5jIG5vdy4gSXRcbiAgICAvLyBhd2FpdHMgYGNoZWNrQ3VMb2NrYCwgYW5kIG9uIGBob2xkZXI6IHVuZGVmaW5lZGAgKyBub24tZGVmZXJyaW5nIHRvb2xcbiAgICAvLyBhd2FpdHMgYGFjcXVpcmVDdUxvY2tgLiBgZGVmZXJzTG9ja0FjcXVpcmVgIGlzIHRoZSBQQUNLQUdFJ3Mgc2V0IOKAlFxuICAgIC8vIHRoZSBsb2NhbCBjb3B5IGlzIGdvbmUuXG4gICAgY2hlY2tDdUxvY2s6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGMgPSBhd2FpdCBjaGVja0NvbXB1dGVyVXNlTG9jaygpXG4gICAgICBzd2l0Y2ggKGMua2luZCkge1xuICAgICAgICBjYXNlICdmcmVlJzpcbiAgICAgICAgICByZXR1cm4geyBob2xkZXI6IHVuZGVmaW5lZCwgaXNTZWxmOiBmYWxzZSB9XG4gICAgICAgIGNhc2UgJ2hlbGRfYnlfc2VsZic6XG4gICAgICAgICAgcmV0dXJuIHsgaG9sZGVyOiBnZXRTZXNzaW9uSWQoKSwgaXNTZWxmOiB0cnVlIH1cbiAgICAgICAgY2FzZSAnYmxvY2tlZCc6XG4gICAgICAgICAgcmV0dXJuIHsgaG9sZGVyOiBjLmJ5LCBpc1NlbGY6IGZhbHNlIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgLy8gQ2FsbGVkIG9ubHkgd2hlbiBjaGVja0N1TG9jayByZXR1cm5lZCBgaG9sZGVyOiB1bmRlZmluZWRgLiBUaGUgT19FWENMXG4gICAgLy8gYWNxdWlyZSBpcyBhdG9taWMg4oCUIGlmIGFub3RoZXIgcHJvY2VzcyBncmFiYmVkIGl0IGluIHRoZSBnYXAgKHJhcmUpLFxuICAgIC8vIHRocm93IHNvIHRoZSB0b29sIGZhaWxzIGluc3RlYWQgb2YgcHJvY2VlZGluZyB3aXRob3V0IHRoZSBsb2NrLlxuICAgIC8vIGBmcmVzaDogZmFsc2VgIChyZS1lbnRyYW50KSBzaG91bGRuJ3QgaGFwcGVuIGdpdmVuIGNoZWNrIHNhaWQgZnJlZSxcbiAgICAvLyBidXQgaXMgcG9zc2libGUgdW5kZXIgcGFyYWxsZWwgdG9vbC11c2UgaW50ZXJsZWF2aW5nIOKAlCBkb24ndCBzcGFtIHRoZVxuICAgIC8vIG5vdGlmaWNhdGlvbiBpbiB0aGF0IGNhc2UuXG4gICAgYWNxdWlyZUN1TG9jazogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgciA9IGF3YWl0IHRyeUFjcXVpcmVDb21wdXRlclVzZUxvY2soKVxuICAgICAgaWYgKHIua2luZCA9PT0gJ2Jsb2NrZWQnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihmb3JtYXRMb2NrSGVsZChyLmJ5KSlcbiAgICAgIH1cbiAgICAgIGlmIChyLmZyZXNoKSB7XG4gICAgICAgIC8vIEdsb2JhbCBFc2NhcGUg4oaSIGFib3J0LiBDb25zdW1lcyB0aGUgZXZlbnQgKFBJIGRlZmVuc2Ug4oCUIHByb21wdFxuICAgICAgICAvLyBpbmplY3Rpb24gY2FuJ3QgZGlzbWlzcyBkaWFsb2dzIHdpdGggRXNjYXBlKS4gVGhlIENHRXZlbnRUYXAnc1xuICAgICAgICAvLyBDRlJ1bkxvb3BTb3VyY2UgaXMgcHJvY2Vzc2VkIGJ5IHRoZSBkcmFpblJ1bkxvb3AgcHVtcCwgc28gdGhpc1xuICAgICAgICAvLyBob2xkcyBhIHB1bXAgcmV0YWluIHVudGlsIHVucmVnaXN0ZXJFc2NIb3RrZXkoKSBpbiBjbGVhbnVwLnRzLlxuICAgICAgICBjb25zdCBlc2NSZWdpc3RlcmVkID0gcmVnaXN0ZXJFc2NIb3RrZXkoKCkgPT4ge1xuICAgICAgICAgIGxvZ0ZvckRlYnVnZ2luZygnW2N1LWVzY10gdXNlciBlc2NhcGUsIGFib3J0aW5nIHR1cm4nKVxuICAgICAgICAgIHR1YygpLmFib3J0Q29udHJvbGxlci5hYm9ydCgpXG4gICAgICAgIH0pXG4gICAgICAgIHR1YygpLnNlbmRPU05vdGlmaWNhdGlvbj8uKHtcbiAgICAgICAgICBtZXNzYWdlOiBlc2NSZWdpc3RlcmVkXG4gICAgICAgICAgICA/ICdDbGF1ZGUgaXMgdXNpbmcgeW91ciBjb21wdXRlciDCtyBwcmVzcyBFc2MgdG8gc3RvcCdcbiAgICAgICAgICAgIDogJ0NsYXVkZSBpcyB1c2luZyB5b3VyIGNvbXB1dGVyIMK3IHByZXNzIEN0cmwrQyB0byBzdG9wJyxcbiAgICAgICAgICBub3RpZmljYXRpb25UeXBlOiAnY29tcHV0ZXJfdXNlX2VudGVyJyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgZm9ybWF0TG9ja0hlbGRNZXNzYWdlOiBmb3JtYXRMb2NrSGVsZCxcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRPckJpbmQoKTogQmluZGluZyB7XG4gIGlmIChiaW5kaW5nKSByZXR1cm4gYmluZGluZ1xuICBjb25zdCBjdHggPSBidWlsZFNlc3Npb25Db250ZXh0KClcbiAgYmluZGluZyA9IHtcbiAgICBjdHgsXG4gICAgZGlzcGF0Y2g6IGJpbmRTZXNzaW9uQ29udGV4dChcbiAgICAgIGdldENvbXB1dGVyVXNlSG9zdEFkYXB0ZXIoKSxcbiAgICAgIGdldENoaWNhZ29Db29yZGluYXRlTW9kZSgpLFxuICAgICAgY3R4LFxuICAgICksXG4gIH1cbiAgcmV0dXJuIGJpbmRpbmdcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBmdWxsIG92ZXJyaWRlIG9iamVjdCBmb3IgYSBzaW5nbGUgYG1jcF9fY29tcHV0ZXItdXNlX197dG9vbE5hbWV9YFxuICogdG9vbDogcmVuZGVyaW5nIG92ZXJyaWRlcyBmcm9tIGB0b29sUmVuZGVyaW5nLnRzeGAgcGx1cyBhIGAuY2FsbCgpYCB0aGF0XG4gKiBkaXNwYXRjaGVzIHRocm91Z2ggdGhlIGNhY2hlZCBiaW5kZXIuXG4gKi9cbnR5cGUgQ29tcHV0ZXJVc2VNQ1BUb29sT3ZlcnJpZGVzID0gUmV0dXJuVHlwZTxcbiAgdHlwZW9mIGdldENvbXB1dGVyVXNlTUNQUmVuZGVyaW5nT3ZlcnJpZGVzXG4+ICYge1xuICBjYWxsOiBDYWxsT3ZlcnJpZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbXB1dGVyVXNlTUNQVG9vbE92ZXJyaWRlcyhcbiAgdG9vbE5hbWU6IHN0cmluZyxcbik6IENvbXB1dGVyVXNlTUNQVG9vbE92ZXJyaWRlcyB7XG4gIGNvbnN0IGNhbGw6IENhbGxPdmVycmlkZSA9IGFzeW5jIChhcmdzLCBjb250ZXh0OiBUb29sVXNlQ29udGV4dCkgPT4ge1xuICAgIGN1cnJlbnRUb29sVXNlQ29udGV4dCA9IGNvbnRleHRcbiAgICBjb25zdCB7IGRpc3BhdGNoIH0gPSBnZXRPckJpbmQoKVxuXG4gICAgY29uc3QgeyB0ZWxlbWV0cnksIC4uLnJlc3VsdCB9ID0gYXdhaXQgZGlzcGF0Y2godG9vbE5hbWUsIGFyZ3MpXG5cbiAgICBpZiAodGVsZW1ldHJ5Py5lcnJvcl9raW5kKSB7XG4gICAgICBsb2dGb3JEZWJ1Z2dpbmcoXG4gICAgICAgIGBbQ29tcHV0ZXIgVXNlIE1DUF0gJHt0b29sTmFtZX0gZXJyb3Jfa2luZD0ke3RlbGVtZXRyeS5lcnJvcl9raW5kfWAsXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gTUNQIGNvbnRlbnQgYmxvY2tzIOKGkiBBbnRocm9waWMgQVBJIGJsb2Nrcy4gQ1Ugb25seSBwcm9kdWNlcyB0ZXh0IGFuZFxuICAgIC8vIHByZS1zaXplZCBKUEVHIChleGVjdXRvci50cyBjb21wdXRlVGFyZ2V0RGltcyDihpIgdGFyZ2V0SW1hZ2VTaXplKSwgc29cbiAgICAvLyB1bmxpa2UgdGhlIGdlbmVyaWMgTUNQIHBhdGggdGhlcmUncyBubyByZXNpemUgbmVlZGVkIOKAlCB0aGUgTUNQIGltYWdlXG4gICAgLy8gc2hhcGUganVzdCBtYXBzIHRvIHRoZSBBUEkncyBiYXNlNjQtc291cmNlIHNoYXBlLiBUaGUgcGFja2FnZSdzIHJlc3VsdFxuICAgIC8vIHR5cGUgYWRtaXRzIGF1ZGlvL3Jlc291cmNlIHRvbywgYnV0IENVJ3MgaGFuZGxlVG9vbENhbGwgbmV2ZXIgZW1pdHNcbiAgICAvLyB0aG9zZTsgdGhlIGZhbGx0aHJvdWdoIGNvZXJjZXMgdGhlbSB0byBlbXB0eSB0ZXh0LlxuICAgIGNvbnN0IGRhdGEgPSBBcnJheS5pc0FycmF5KHJlc3VsdC5jb250ZW50KVxuICAgICAgPyByZXN1bHQuY29udGVudC5tYXAoaXRlbSA9PlxuICAgICAgICAgIGl0ZW0udHlwZSA9PT0gJ2ltYWdlJ1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2ltYWdlJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdiYXNlNjQnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICAgICAgbWVkaWFfdHlwZTogaXRlbS5taW1lVHlwZSA/PyAnaW1hZ2UvanBlZycsXG4gICAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLmRhdGEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0udHlwZSA9PT0gJ3RleHQnID8gaXRlbS50ZXh0IDogJycsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgIDogcmVzdWx0LmNvbnRlbnRcbiAgICByZXR1cm4geyBkYXRhIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Q29tcHV0ZXJVc2VNQ1BSZW5kZXJpbmdPdmVycmlkZXModG9vbE5hbWUpLFxuICAgIGNhbGwsXG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGFwcHJvdmFsIGRpYWxvZyBtaWQtY2FsbCB2aWEgYHNldFRvb2xKU1hgICsgYFByb21pc2VgLCB3YWl0IGZvclxuICogdGhlIHVzZXIuIE1pcnJvcnMgYHNwYXduTXVsdGlBZ2VudC50czo0MTktNDM2YCAodGhlIGBJdDJTZXR1cFByb21wdGAgcGF0dGVybikuXG4gKlxuICogVGhlIG1lcmdlLWludG8tQXBwU3RhdGUgdGhhdCB1c2VkIHRvIGxpdmUgaGVyZSAoZGVkdXBlICsgdHJ1dGh5LW9ubHkgZmxhZ3MpXG4gKiBpcyBub3cgaW4gdGhlIHBhY2thZ2UncyBgYmluZFNlc3Npb25Db250ZXh0YCDihpIgYG9uQWxsb3dlZEFwcHNDaGFuZ2VkYC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuUGVybWlzc2lvbkRpYWxvZyhcbiAgcmVxOiBDdVBlcm1pc3Npb25SZXF1ZXN0LFxuKTogUHJvbWlzZTxDdVBlcm1pc3Npb25SZXNwb25zZT4ge1xuICBjb25zdCBjb250ZXh0ID0gdHVjKClcbiAgY29uc3Qgc2V0VG9vbEpTWCA9IGNvbnRleHQuc2V0VG9vbEpTWFxuICBpZiAoIXNldFRvb2xKU1gpIHtcbiAgICAvLyBTaG91bGRuJ3QgaGFwcGVuIOKAlCBtYWluLnRzeCBnYXRlIGV4Y2x1ZGVzIG5vbi1pbnRlcmFjdGl2ZS4gRmFpbCBzYWZlLlxuICAgIHJldHVybiB7IGdyYW50ZWQ6IFtdLCBkZW5pZWQ6IFtdLCBmbGFnczogREVGQVVMVF9HUkFOVF9GTEFHUyB9XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxDdVBlcm1pc3Npb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc2lnbmFsID0gY29udGV4dC5hYm9ydENvbnRyb2xsZXIuc2lnbmFsXG4gICAgICAvLyBJZiBhbHJlYWR5IGFib3J0ZWQsIGFkZEV2ZW50TGlzdGVuZXIgd29uJ3QgZmlyZSDigJQgcmVqZWN0IG5vdyBzbyB0aGVcbiAgICAgIC8vIHByb21pc2UgZG9lc24ndCBoYW5nIHdhaXRpbmcgZm9yIGEgdXNlciB3aG8gQ3RybCtDJ2QuXG4gICAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ29tcHV0ZXIgVXNlIHBlcm1pc3Npb24gZGlhbG9nIGFib3J0ZWQnKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBvbkFib3J0ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KVxuICAgICAgICByZWplY3QobmV3IEVycm9yKCdDb21wdXRlciBVc2UgcGVybWlzc2lvbiBkaWFsb2cgYWJvcnRlZCcpKVxuICAgICAgfVxuICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydClcblxuICAgICAgc2V0VG9vbEpTWCh7XG4gICAgICAgIGpzeDogUmVhY3QuY3JlYXRlRWxlbWVudChDb21wdXRlclVzZUFwcHJvdmFsLCB7XG4gICAgICAgICAgcmVxdWVzdDogcmVxLFxuICAgICAgICAgIG9uRG9uZTogKHJlc3A6IEN1UGVybWlzc2lvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KVxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwKVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBzaG91bGRIaWRlUHJvbXB0SW5wdXQ6IHRydWUsXG4gICAgICB9KVxuICAgIH0pXG4gIH0gZmluYWxseSB7XG4gICAgc2V0VG9vbEpTWChudWxsKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FDRUEsa0JBQWtCLEVBQ2xCLEtBQUtDLHlCQUF5QixFQUM5QixLQUFLQyxnQkFBZ0IsRUFDckIsS0FBS0MsbUJBQW1CLEVBQ3hCLEtBQUtDLG9CQUFvQixFQUN6QkMsbUJBQW1CLEVBQ25CLEtBQUtDLGNBQWMsUUFDZCx1QkFBdUI7QUFDOUIsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxZQUFZLFFBQVEsMEJBQTBCO0FBQ3ZELFNBQVNDLG1CQUFtQixRQUFRLHlFQUF5RTtBQUM3RyxjQUFjQyxJQUFJLEVBQUVDLGNBQWMsUUFBUSxlQUFlO0FBQ3pELFNBQVNDLGVBQWUsUUFBUSxhQUFhO0FBQzdDLFNBQ0VDLG9CQUFvQixFQUNwQkMseUJBQXlCLFFBQ3BCLHNCQUFzQjtBQUM3QixTQUFTQyxpQkFBaUIsUUFBUSxnQkFBZ0I7QUFDbEQsU0FBU0Msd0JBQXdCLFFBQVEsWUFBWTtBQUNyRCxTQUFTQyx5QkFBeUIsUUFBUSxrQkFBa0I7QUFDNUQsU0FBU0MsbUNBQW1DLFFBQVEsb0JBQW9CO0FBRXhFLEtBQUtDLFlBQVksR0FBR0MsSUFBSSxDQUFDVixJQUFJLEVBQUUsTUFBTSxDQUFDLENB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QUFtQixDQUN6QixFQUFFdUIsT0FBTyxDQUFDdEIsb0JBQW9CLENBQUMsQ0FBQztFQUMvQixNQUFNa0gsT0FBTyxHQUFHekYsR0FBRyxDQUFDLENBQUM7RUFDckIsTUFBTXlHLFVBQVUsR0FBR2hCLE9BQU8sQ0FBQ2dCLFVBQVU7RUFDckMsSUFBSSxDQUFDQSxVQUFVLEVBQUU7SUFDZjtJQUNBLE9BQU87TUFBRUMsT0FBTyxFQUFFLEVBQUU7TUFBRUMsTUFBTSxFQUFFLEVBQUU7TUFBRTVFLEtBQUssRUFBRXZEO0lBQW9CLENBQUM7RUFDaEU7RUFFQSxJQUFJO0lBQ0YsT0FBTyxNQUFNLElBQUlxQixPQUFPLENBQUN0QixvQkFBb0IsQ0FBQyxDQUFDLENBQUNxSSxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUNsRSxNQUFNQyxNQUFNLEdBQUdyQixPQUFPLENBQUNaLGVBQWUsQ0FBQ2lDLE1BQU07TUFDN0M7TUFDQTtNQUNBLElBQUlBLE1BQU0sQ0FBQ0MsT0FBTyxFQUFFO1FBQ2xCRixNQUFNLENBQUMsSUFBSW5DLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQzNEO01BQ0Y7TUFDQSxNQUFNc0MsT0FBTyxHQUFHQSxDQUFBLENBQUUsRUFBRSxJQUFJLElBQUk7UUFDMUJGLE1BQU0sQ0FBQ0csbUJBQW1CLENBQUMsT0FBTyxFQUFFRCxPQUFPLENBQUM7UUFDNUNILE1BQU0sQ0FBQyxJQUFJbkMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7TUFDN0QsQ0FBQztNQUNEb0MsTUFBTSxDQUFDSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUVGLE9BQU8sQ0FBQztNQUV6Q1AsVUFBVSxDQUFDO1FBQ1RVLEdBQUcsRUFBRXpJLEtBQUssQ0FBQzBJLGFBQWEsQ0FBQ3hJLG1CQUFtQixFQUFFO1VBQzVDeUksT0FBTyxFQUFFM0YsR0FBRztVQUNaNEYsTUFBTSxFQUFFQSxDQUFDQyxJQUFJLEVBQUVoSixvQkFBb0IsS0FBSztZQUN0Q3VJLE1BQU0sQ0FBQ0csbUJBQW1CLENBQUMsT0FBTyxFQUFFRCxPQUFPLENBQUM7WUFDNUNKLE9BQU8sQ0FBQ1csSUFBSSxDQUFDO1VBQ2Y7UUFDRixDQUFDLENBQUM7UUFDRkMscUJBQXFCLEVBQUU7TUFDekIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0VBQ0osQ0FBQyxTQUFTO0lBQ1JmLFVBQVUsQ0FBQyxJQUFJLENBQUM7RUFDbEI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -94,5 +94,4 @@ export async function renderMessagesToPlainText(messages: Message[], tools: Tool
|
|
|
94
94
|
columns
|
|
95
95
|
});
|
|
96
96
|
return parts.join('');
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVJlZiIsInN0cmlwQW5zaSIsIk1lc3NhZ2VzIiwiS2V5YmluZGluZ1Byb3ZpZGVyIiwibG9hZEtleWJpbmRpbmdzU3luY1dpdGhXYXJuaW5ncyIsIktleWJpbmRpbmdDb250ZXh0TmFtZSIsIkFwcFN0YXRlUHJvdmlkZXIiLCJUb29scyIsIk1lc3NhZ2UiLCJyZW5kZXJUb0Fuc2lTdHJpbmciLCJTdGF0aWNLZXliaW5kaW5nUHJvdmlkZXIiLCJjaGlsZHJlbiIsIlJlYWN0Tm9kZSIsImJpbmRpbmdzIiwicGVuZGluZ0Nob3JkUmVmIiwiaGFuZGxlclJlZ2lzdHJ5UmVmIiwiTWFwIiwiYWN0aXZlQ29udGV4dHMiLCJTZXQiLCJjdXJyZW50Iiwibm9ybWFsaXplZFVwcGVyQm91bmQiLCJtIiwiYyIsIm1lc3NhZ2UiLCJjb250ZW50IiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwic3RyZWFtUmVuZGVyZWRNZXNzYWdlcyIsIm1lc3NhZ2VzIiwidG9vbHMiLCJzaW5rIiwiYW5zaUNodW5rIiwiUHJvbWlzZSIsImNvbHVtbnMiLCJ2ZXJib3NlIiwiY2h1bmtTaXplIiwib25Qcm9ncmVzcyIsInJlbmRlcmVkIiwicmVuZGVyQ2h1bmsiLCJyYW5nZSIsImNlaWxpbmciLCJvZmZzZXQiLCJhbnNpIiwidHJpbSIsInJlbmRlck1lc3NhZ2VzVG9QbGFpblRleHQiLCJwYXJ0cyIsImNodW5rIiwicHVzaCIsImpvaW4iXSwic291cmNlcyI6WyJleHBvcnRSZW5kZXJlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHN0cmlwQW5zaSBmcm9tICdzdHJpcC1hbnNpJ1xuaW1wb3J0IHsgTWVzc2FnZXMgfSBmcm9tICcuLi9jb21wb25lbnRzL01lc3NhZ2VzLmpzJ1xuaW1wb3J0IHsgS2V5YmluZGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi4va2V5YmluZGluZ3MvS2V5YmluZGluZ0NvbnRleHQuanMnXG5pbXBvcnQgeyBsb2FkS2V5YmluZGluZ3NTeW5jV2l0aFdhcm5pbmdzIH0gZnJvbSAnLi4va2V5YmluZGluZ3MvbG9hZFVzZXJCaW5kaW5ncy5qcydcbmltcG9ydCB0eXBlIHsgS2V5YmluZGluZ0NvbnRleHROYW1lIH0gZnJvbSAnLi4va2V5YmluZGluZ3MvdHlwZXMuanMnXG5pbXBvcnQgeyBBcHBTdGF0ZVByb3ZpZGVyIH0gZnJvbSAnLi4vc3RhdGUvQXBwU3RhdGUuanMnXG5pbXBvcnQgdHlwZSB7IFRvb2xzIH0gZnJvbSAnLi4vVG9vbC5qcydcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSB9IGZyb20gJy4uL3R5cGVzL21lc3NhZ2UuanMnXG5pbXBvcnQgeyByZW5kZXJUb0Fuc2lTdHJpbmcgfSBmcm9tICcuL3N0YXRpY1JlbmRlci5qcydcblxuLyoqXG4gKiBNaW5pbWFsIGtleWJpbmRpbmcgcHJvdmlkZXIgZm9yIHN0YXRpYy9oZWFkbGVzcyByZW5kZXJzLlxuICogUHJvdmlkZXMga2V5YmluZGluZyBjb250ZXh0IHdpdGhvdXQgdGhlIENob3JkSW50ZXJjZXB0b3IgKHdoaWNoIHVzZXMgdXNlSW5wdXRcbiAqIGFuZCB3b3VsZCBoYW5nIGluIGhlYWRsZXNzIHJlbmRlcnMgd2l0aCBubyBzdGRpbikuXG4gKi9cbmZ1bmN0aW9uIFN0YXRpY0tleWJpbmRpbmdQcm92aWRlcih7XG4gIGNoaWxkcmVuLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgeyBiaW5kaW5ncyB9ID0gbG9hZEtleWJpbmRpbmdzU3luY1dpdGhXYXJuaW5ncygpXG4gIGNvbnN0IHBlbmRpbmdDaG9yZFJlZiA9IHVzZVJlZihudWxsKVxuICBjb25zdCBoYW5kbGVyUmVnaXN0cnlSZWYgPSB1c2VSZWYobmV3IE1hcCgpKVxuICBjb25zdCBhY3RpdmVDb250ZXh0cyA9IHVzZVJlZihuZXcgU2V0PEtleWJpbmRpbmdDb250ZXh0TmFtZT4oKSkuY3VycmVudFxuXG4gIHJldHVybiAoXG4gICAgPEtleWJpbmRpbmdQcm92aWRlclxuICAgICAgYmluZGluZ3M9e2JpbmRpbmdzfVxuICAgICAgcGVuZGluZ0Nob3JkUmVmPXtwZW5kaW5nQ2hvcmRSZWZ9XG4gICAgICBwZW5kaW5nQ2hvcmQ9e251bGx9XG4gICAgICBzZXRQZW5kaW5nQ2hvcmQ9eygpID0+IHt9fVxuICAgICAgYWN0aXZlQ29udGV4dHM9e2FjdGl2ZUNvbnRleHRzfVxuICAgICAgcmVnaXN0ZXJBY3RpdmVDb250ZXh0PXsoKSA9PiB7fX1cbiAgICAgIHVucmVnaXN0ZXJBY3RpdmVDb250ZXh0PXsoKSA9PiB7fX1cbiAgICAgIGhhbmRsZXJSZWdpc3RyeVJlZj17aGFuZGxlclJlZ2lzdHJ5UmVmfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0tleWJpbmRpbmdQcm92aWRlcj5cbiAgKVxufVxuXG4vLyBVcHBlci1ib3VuZCBob3cgbWFueSBOb3JtYWxpemVkTWVzc2FnZXMgYSBNZXNzYWdlIGNhbiBwcm9kdWNlLlxuLy8gbm9ybWFsaXplTWVzc2FnZXMgc3BsaXRzIG9uZSBNZXNzYWdlIHdpdGggTiBjb250ZW50IGJsb2NrcyBpbnRvIE5cbi8vIE5vcm1hbGl6ZWRNZXNzYWdlcyDigJQgMToxIHdpdGggYmxvY2sgY291bnQuIFN0cmluZyBjb250ZW50ID0gMSBibG9jay5cbi8vIEF0dGFjaG1lbnRNZXNzYWdlIGV0Yy4gaGF2ZSBubyAubWVzc2FnZSBhbmQgbm9ybWFsaXplIHRvIOKJpDEuXG5mdW5jdGlvbiBub3JtYWxpemVkVXBwZXJCb3VuZChtOiBNZXNzYWdlKTogbnVtYmVyIHtcbiAgaWYgKCEoJ21lc3NhZ2UnIGluIG0pKSByZXR1cm4gMVxuICBjb25zdCBjID0gbS5tZXNzYWdlLmNvbnRlbnRcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYykgPyBjLmxlbmd0aCA6IDFcbn1cblxuLyoqXG4gKiBTdHJlYW1zIHJlbmRlcmVkIG1lc3NhZ2VzIGluIGNodW5rcywgQU5TSSBjb2RlcyBwcmVzZXJ2ZWQuIEVhY2ggY2h1bmsgaXMgYVxuICogZnJlc2ggcmVuZGVyVG9BbnNpU3RyaW5nIOKAlCB5b2dhIGxheW91dCB0cmVlICsgSW5rJ3Mgc2NyZWVuIGJ1ZmZlciBhcmUgc2l6ZWRcbiAqIHRvIHRoZSB0YWxsZXN0IENIVU5LIGluc3RlYWQgb2YgdGhlIGZ1bGwgc2Vzc2lvbi4gTWVhc3VyZWQgKE1hciAyMDI2LFxuICogNTM4LW1zZyBzZXNzaW9uKTog4oiSNTUlIHBsYXRlYXUgUlNTIHZzIGEgc2luZ2xlIGZ1bGwgcmVuZGVyLiBUaGUgc2luayBvd25zXG4gKiB0aGUgb3V0cHV0IOKAlCB3cml0ZSB0byBzdGRvdXQgZm9yIGBbYCBkdW1wLXRvLXNjcm9sbGJhY2ssIGFwcGVuZEZpbGUgZm9yIGB2YC5cbiAqXG4gKiBNZXNzYWdlcy5yZW5kZXJSYW5nZSBzbGljZXMgQUZURVIgbm9ybWFsaXpl4oaSZ3JvdXDihpJjb2xsYXBzZSwgc28gdG9vbC1jYWxsXG4gKiBncm91cGluZyBzdGF5cyBjb3JyZWN0IGFjcm9zcyBjaHVuayBzZWFtczsgYnVpbGRNZXNzYWdlTG9va3VwcyBydW5zIG9uXG4gKiB0aGUgZnVsbCBub3JtYWxpemVkIGFycmF5IHNvIHRvb2xfdXNl4oaUdG9vbF9yZXN1bHQgcmVzb2x2ZXMgcmVnYXJkbGVzcyBvZlxuICogd2hpY2ggY2h1bmsgZWFjaCBsYW5kZWQgaW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdHJlYW1SZW5kZXJlZE1lc3NhZ2VzKFxuICBtZXNzYWdlczogTWVzc2FnZVtdLFxuICB0b29sczogVG9vbHMsXG4gIHNpbms6IChhbnNpQ2h1bms6IHN0cmluZykgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4sXG4gIHtcbiAgICBjb2x1bW5zLFxuICAgIHZlcmJvc2UgPSBmYWxzZSxcbiAgICBjaHVua1NpemUgPSA0MCxcbiAgICBvblByb2dyZXNzLFxuICB9OiB7XG4gICAgY29sdW1ucz86IG51bWJlclxuICAgIHZlcmJvc2U/OiBib29sZWFuXG4gICAgY2h1bmtTaXplPzogbnVtYmVyXG4gICAgb25Qcm9ncmVzcz86IChyZW5kZXJlZDogbnVtYmVyKSA9PiB2b2lkXG4gIH0gPSB7fSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZW5kZXJDaHVuayA9IChyYW5nZTogcmVhZG9ubHkgW251bWJlciwgbnVtYmVyXSkgPT5cbiAgICByZW5kZXJUb0Fuc2lTdHJpbmcoXG4gICAgICA8QXBwU3RhdGVQcm92aWRlcj5cbiAgICAgICAgPFN0YXRpY0tleWJpbmRpbmdQcm92aWRlcj5cbiAgICAgICAgICA8TWVzc2FnZXNcbiAgICAgICAgICAgIG1lc3NhZ2VzPXttZXNzYWdlc31cbiAgICAgICAgICAgIHRvb2xzPXt0b29sc31cbiAgICAgICAgICAgIGNvbW1hbmRzPXtbXX1cbiAgICAgICAgICAgIHZlcmJvc2U9e3ZlcmJvc2V9XG4gICAgICAgICAgICB0b29sSlNYPXtudWxsfVxuICAgICAgICAgICAgdG9vbFVzZUNvbmZpcm1RdWV1ZT17W119XG4gICAgICAgICAgICBpblByb2dyZXNzVG9vbFVzZUlEcz17bmV3IFNldCgpfVxuICAgICAgICAgICAgaXNNZXNzYWdlU2VsZWN0b3JWaXNpYmxlPXtmYWxzZX1cbiAgICAgICAgICAgIGNvbnZlcnNhdGlvbklkPVwiZXhwb3J0XCJcbiAgICAgICAgICAgIHNjcmVlbj1cInByb21wdFwiXG4gICAgICAgICAgICBzdHJlYW1pbmdUb29sVXNlcz17W119XG4gICAgICAgICAgICBzaG93QWxsSW5UcmFuc2NyaXB0PXt0cnVlfVxuICAgICAgICAgICAgaXNMb2FkaW5nPXtmYWxzZX1cbiAgICAgICAgICAgIHJlbmRlclJhbmdlPXtyYW5nZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0YXRpY0tleWJpbmRpbmdQcm92aWRlcj5cbiAgICAgIDwvQXBwU3RhdGVQcm92aWRlcj4sXG4gICAgICBjb2x1bW5zLFxuICAgIClcblxuICAvLyByZW5kZXJSYW5nZSBpbmRleGVzIGludG8gdGhlIHBvc3QtY29sbGFwc2UgYXJyYXkgd2hvc2UgbGVuZ3RoIHdlIGNhbid0XG4gIC8vIHNlZSBmcm9tIGhlcmUg4oCUIG5vcm1hbGl6ZSBzcGxpdHMgZWFjaCBNZXNzYWdlIGludG8gb25lIE5vcm1hbGl6ZWRNZXNzYWdlXG4gIC8vIHBlciBjb250ZW50IGJsb2NrICh1bmJvdW5kZWQgcGVyIG1lc3NhZ2UpLCBjb2xsYXBzZSBtZXJnZXMgc29tZSBiYWNrLlxuICAvLyBDZWlsaW5nIGlzIHRoZSBleGFjdCBub3JtYWxpemUgb3V0cHV0IGNvdW50ICsgY2h1bmtTaXplIHNvIHRoZSBsb29wXG4gIC8vIGFsd2F5cyByZWFjaGVzIHRoZSBlbXB0eSBzbGljZSB3aGVyZSBicmVhayBmaXJlcyAoY29sbGFwc2Ugb25seSBzaHJpbmtzKS5cbiAgbGV0IGNlaWxpbmcgPSBjaHVua1NpemVcbiAgZm9yIChjb25zdCBtIG9mIG1lc3NhZ2VzKSBjZWlsaW5nICs9IG5vcm1hbGl6ZWRVcHBlckJvdW5kKG0pXG4gIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGNlaWxpbmc7IG9mZnNldCArPSBjaHVua1NpemUpIHtcbiAgICBjb25zdCBhbnNpID0gYXdhaXQgcmVuZGVyQ2h1bmsoW29mZnNldCwgb2Zmc2V0ICsgY2h1bmtTaXplXSlcbiAgICBpZiAoc3RyaXBBbnNpKGFuc2kpLnRyaW0oKSA9PT0gJycpIGJyZWFrXG4gICAgYXdhaXQgc2luayhhbnNpKVxuICAgIG9uUHJvZ3Jlc3M/LihvZmZzZXQgKyBjaHVua1NpemUpXG4gIH1cbn1cblxuLyoqXG4gKiBSZW5kZXJzIG1lc3NhZ2VzIHRvIGEgcGxhaW4gdGV4dCBzdHJpbmcgc3VpdGFibGUgZm9yIGV4cG9ydC5cbiAqIFVzZXMgdGhlIHNhbWUgUmVhY3QgcmVuZGVyaW5nIGxvZ2ljIGFzIHRoZSBpbnRlcmFjdGl2ZSBVSS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlck1lc3NhZ2VzVG9QbGFpblRleHQoXG4gIG1lc3NhZ2VzOiBNZXNzYWdlW10sXG4gIHRvb2xzOiBUb29scyA9IFtdLFxuICBjb2x1bW5zPzogbnVtYmVyLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW11cbiAgYXdhaXQgc3RyZWFtUmVuZGVyZWRNZXNzYWdlcyhcbiAgICBtZXNzYWdlcyxcbiAgICB0b29scyxcbiAgICBjaHVuayA9PiB2b2lkIHBhcnRzLnB1c2goc3RyaXBBbnNpKGNodW5rKSksXG4gICAgeyBjb2x1bW5zIH0sXG4gIClcbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBSUMsTUFBTSxRQUFRLE9BQU87QUFDckMsT0FBT0MsU0FBUyxNQUFNLFlBQVk7QUFDbEMsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxrQkFBa0IsUUFBUSxxQ0FBcUM7QUFDeEUsU0FBU0MsK0JBQStCLFFBQVEsb0NBQW9DO0FBQ3BGLGNBQWNDLHFCQUFxQixRQUFRLHlCQUF5QjtBQUNwRSxTQUFTQyxnQkFBZ0IsUUFBUSxzQkFBc0I7QUFDdkQsY0FBY0MsS0FBSyxRQUFRLFlBQVk7QUFDdkMsY0FBY0MsT0FBTyxRQUFRLHFCQUFxQjtBQUNsRCxTQUFTQyxrQkFBa0IsUUFBUSxtQkFBbUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQyx3QkFBd0JBLENBQUM7RUFDaENDO0FBR0YsQ0FGQyxFQUFFO0VBQ0RBLFFBQVEsRUFBRVosS0FBSyxDQUFDYSxTQUFTO0FBQzNCLENBQUMsQ0FBQyxFQUFFYixLQUFLLENBQUNhLFNBQVMsQ0FBQztFQUNsQixNQUFNO0lBQUVDO0VBQVMsQ0FBQyxHQUFHVCwrQkFBK0IsQ0FBQyxDQUFDO0VBQ3RELE1BQU1VLGVBQWUsR0FBR2QsTUFBTSxDQUFDLElBQUksQ0FBQztFQUNwQyxNQUFNZSxrQkFBa0IsR0FBR2YsTUFBTSxDQUFDLElBQUlnQixHQUFHLENBQUMsQ0FBQyxDQUFDO0VBQzVDLE1BQU1DLGNB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
|
|
97
|
+
}
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
logEvent,
|
|
12
12
|
} from '../services/analytics/index.js'
|
|
13
13
|
import {
|
|
14
|
-
|
|
14
|
+
getFriendliApiKey,
|
|
15
15
|
getClaudeAIOAuthTokens,
|
|
16
16
|
handleOAuth401Error,
|
|
17
17
|
hasProfileScope,
|
|
@@ -424,7 +424,7 @@ export async function prefetchFastModeStatus(): Promise<void> {
|
|
|
424
424
|
// Service key OAuth sessions lack user:profile scope → endpoint 403s.
|
|
425
425
|
// Resolve orgStatus from cache and bail before burning the throttle window.
|
|
426
426
|
// API key auth is unaffected.
|
|
427
|
-
const apiKey =
|
|
427
|
+
const apiKey = getFriendliApiKey()
|
|
428
428
|
const hasUsableOAuth =
|
|
429
429
|
getClaudeAIOAuthTokens()?.accessToken && hasProfileScope()
|
|
430
430
|
if (!hasUsableOAuth && !apiKey) {
|
|
@@ -24,5 +24,4 @@ export function highlightMatch(text: string, query: string): React.ReactNode {
|
|
|
24
24
|
}
|
|
25
25
|
if (offset < text.length) parts.push(text.slice(offset));
|
|
26
26
|
return <>{parts}</>;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRleHQiLCJoaWdobGlnaHRNYXRjaCIsInRleHQiLCJxdWVyeSIsIlJlYWN0Tm9kZSIsInF1ZXJ5TG93ZXIiLCJ0b0xvd2VyQ2FzZSIsInRleHRMb3dlciIsInBhcnRzIiwib2Zmc2V0IiwiaWR4IiwiaW5kZXhPZiIsInB1c2giLCJzbGljZSIsImxlbmd0aCJdLCJzb3VyY2VzIjpbImhpZ2hsaWdodE1hdGNoLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5cbi8qKlxuICogSW52ZXJzZS1oaWdobGlnaHQgZXZlcnkgb2NjdXJyZW5jZSBvZiBgcXVlcnlgIGluIGB0ZXh0YCAoY2FzZS1pbnNlbnNpdGl2ZSkuXG4gKiBVc2VkIGJ5IHNlYXJjaCBkaWFsb2dzIHRvIHNob3cgd2hlcmUgdGhlIHF1ZXJ5IG1hdGNoZWQgaW4gcmVzdWx0IHJvd3NcbiAqIGFuZCBwcmV2aWV3IHBhbmVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGlnaGxpZ2h0TWF0Y2godGV4dDogc3RyaW5nLCBxdWVyeTogc3RyaW5nKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgaWYgKCFxdWVyeSkgcmV0dXJuIHRleHRcbiAgY29uc3QgcXVlcnlMb3dlciA9IHF1ZXJ5LnRvTG93ZXJDYXNlKClcbiAgY29uc3QgdGV4dExvd2VyID0gdGV4dC50b0xvd2VyQ2FzZSgpXG4gIGNvbnN0IHBhcnRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gIGxldCBvZmZzZXQgPSAwXG4gIGxldCBpZHggPSB0ZXh0TG93ZXIuaW5kZXhPZihxdWVyeUxvd2VyLCBvZmZzZXQpXG4gIGlmIChpZHggPT09IC0xKSByZXR1cm4gdGV4dFxuICB3aGlsZSAoaWR4ICE9PSAtMSkge1xuICAgIGlmIChpZHggPiBvZmZzZXQpIHBhcnRzLnB1c2godGV4dC5zbGljZShvZmZzZXQsIGlkeCkpXG4gICAgcGFydHMucHVzaChcbiAgICAgIDxUZXh0IGtleT17aWR4fSBpbnZlcnNlPlxuICAgICAgICB7dGV4dC5zbGljZShpZHgsIGlkeCArIHF1ZXJ5Lmxlbmd0aCl9XG4gICAgICA8L1RleHQ+LFxuICAgIClcbiAgICBvZmZzZXQgPSBpZHggKyBxdWVyeS5sZW5ndGhcbiAgICBpZHggPSB0ZXh0TG93ZXIuaW5kZXhPZihxdWVyeUxvd2VyLCBvZmZzZXQpXG4gIH1cbiAgaWYgKG9mZnNldCA8IHRleHQubGVuZ3RoKSBwYXJ0cy5wdXNoKHRleHQuc2xpY2Uob2Zmc2V0KSlcbiAgcmV0dXJuIDw+e3BhcnRzfTwvPlxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUtBLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLElBQUksUUFBUSxXQUFXOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQyxjQUFjQSxDQUFDQyxJQUFJLEVBQUUsTUFBTSxFQUFFQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUVKLEtBQUssQ0FBQ0ssU0FBUyxDQUFDO0VBQzNFLElBQUksQ0FBQ0QsS0FBSyxFQUFFLE9BQU9ELElBQUk7RUFDdkIsTUFBTUcsVUFBVSxHQUFHRixLQUFLLENBQUNHLFdBQVcsQ0FBQyxDQUFDO0VBQ3RDLE1BQU1DLFNBQVMsR0FBR0wsSUFBSSxDQUFDSSxXQUFXLENBQUMsQ0FBQztFQUNwQyxNQUFNRSxLQUFLLEVBQUVULEtBQUssQ0FBQ0ssU0FBUyxFQUFFLEdBQUcsRUFBRTtFQUNuQyxJQUFJSyxNQUFNLEdBQUcsQ0FBQztFQUNkLElBQUlDLEdBQUcsR0FBR0gsU0FBUyxDQUFDSSxPQUFPLENBQUNOLFVBQVUsRUFBRUksTUFBTSxDQUFDO0VBQy9DLElBQUlDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPUixJQUFJO0VBQzNCLE9BQU9RLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtJQUNqQixJQUFJQSxHQUFHLEdBQUdELE1BQU0sRUFBRUQsS0FBSyxDQUFDSSxJQUFJLENBQUNWLElBQUksQ0FBQ1csS0FBSyxDQUFDSixNQUFNLEVBQUVDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JERixLQUFLLENBQUNJLElBQUksQ0FDUixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQ0YsR0FBRyxDQUFDLENBQUMsT0FBTztBQUM3QixRQUFRLENBQUNSLElBQUksQ0FBQ1csS0FBSyxDQUFDSCxHQUFHLEVBQUVBLEdBQUcsR0FBR1AsS0FBSyxDQUFDVyxNQUFNLENBQUM7QUFDNUMsTUFBTSxFQUFFLElBQUksQ0FDUixDQUFDO0lBQ0RMLE1BQU0sR0FBR0MsR0FBRyxHQUFHUCxLQUFLLENBQUNXLE1BQU07SUFDM0JKLEdBQUcsR0FBR0gsU0FBUyxDQUFDSSxPQUFPLENBQUNOLFVBQVUsRUFBRUksTUFBTSxDQUFDO0VBQzdDO0VBQ0EsSUFBSUEsTUFBTSxHQUFHUCxJQUFJLENBQUNZLE1BQU0sRUFBRU4sS0FBSyxDQUFDSSxJQUFJLENBQUNWLElBQUksQ0FBQ1csS0FBSyxDQUFDSixNQUFNLENBQUMsQ0FBQztFQUN4RCxPQUFPLEVBQUUsQ0FBQ0QsS0FBSyxDQUFDLEdBQUc7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
27
|
+
}
|
package/tui/src/utils/http.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import axios from 'axios'
|
|
6
6
|
import { OAUTH_BETA_HEADER } from '../constants/oauth.js'
|
|
7
7
|
import {
|
|
8
|
-
|
|
8
|
+
getFriendliApiKey,
|
|
9
9
|
getClaudeAIOAuthTokens,
|
|
10
10
|
handleOAuth401Error,
|
|
11
11
|
isClaudeAISubscriber,
|
|
@@ -79,7 +79,7 @@ export function getAuthHeaders(): AuthHeaders {
|
|
|
79
79
|
}
|
|
80
80
|
// TODO: this will fail if the API key is being set to an LLM Gateway key
|
|
81
81
|
// should we try to query keychain / credentials for a valid Anthropic key?
|
|
82
|
-
const apiKey =
|
|
82
|
+
const apiKey = getFriendliApiKey()
|
|
83
83
|
if (!apiKey) {
|
|
84
84
|
return {
|
|
85
85
|
headers: {},
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
* `claude ssh` remote: ANTHROPIC_UNIX_SOCKET routes auth through a -R forwarded
|
|
20
20
|
* socket to a local proxy, and the launcher sets a handful of placeholder auth
|
|
21
21
|
* env vars that the remote's ~/.claude settings.env MUST NOT clobber (see
|
|
22
|
-
*
|
|
22
|
+
* isFriendliAuthEnabled). Strip them from any settings-sourced env object.
|
|
23
23
|
*/
|
|
24
24
|
function withoutSSHTunnelVars(
|
|
25
25
|
env: Record<string, string> | undefined,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
AGENT_TOOL_NAME,
|
|
12
12
|
LEGACY_AGENT_TOOL_NAME,
|
|
13
13
|
} from 'src/tools/AgentTool/constants.js'
|
|
14
|
-
import {
|
|
14
|
+
import { getFriendliApiKeyWithSource } from '../auth.js'
|
|
15
15
|
import { getCwd } from '../cwd.js'
|
|
16
16
|
import { getFastModeState } from '../fastMode.js'
|
|
17
17
|
import { getSettings_DEPRECATED } from '../settings/settings.js'
|
|
@@ -69,7 +69,7 @@ export function buildSystemInitMessage(inputs: SystemInitInputs): SDKMessage {
|
|
|
69
69
|
slash_commands: inputs.commands
|
|
70
70
|
.filter(c => c.userInvocable !== false)
|
|
71
71
|
.map(c => c.name),
|
|
72
|
-
apiKeySource:
|
|
72
|
+
apiKeySource: getFriendliApiKeyWithSource().source as ApiKeySource,
|
|
73
73
|
betas: getSdkBetas(),
|
|
74
74
|
claude_code_version: MACRO.VERSION,
|
|
75
75
|
output_style: outputStyle,
|
|
@@ -66,5 +66,4 @@ export async function performStartupChecks(setAppState: SetAppState): Promise<vo
|
|
|
66
66
|
// Even if something fails here, don't block startup
|
|
67
67
|
logForDebugging(`Error initiating background plugin installations: ${error}`);
|
|
68
68
|
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwZXJmb3JtQmFja2dyb3VuZFBsdWdpbkluc3RhbGxhdGlvbnMiLCJBcHBTdGF0ZSIsImNoZWNrSGFzVHJ1c3REaWFsb2dBY2NlcHRlZCIsImxvZ0ZvckRlYnVnZ2luZyIsImNsZWFyTWFya2V0cGxhY2VzQ2FjaGUiLCJyZWdpc3RlclNlZWRNYXJrZXRwbGFjZXMiLCJjbGVhclBsdWdpbkNhY2hlIiwiU2V0QXBwU3RhdGUiLCJmIiwicHJldlN0YXRlIiwicGVyZm9ybVN0YXJ0dXBDaGVja3MiLCJzZXRBcHBTdGF0ZSIsIlByb21pc2UiLCJzZWVkQ2hhbmdlZCIsInByZXYiLCJwbHVnaW5zIiwibmVlZHNSZWZyZXNoIiwiZXJyb3IiXSwic291cmNlcyI6WyJwZXJmb3JtU3RhcnR1cENoZWNrcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGVyZm9ybUJhY2tncm91bmRQbHVnaW5JbnN0YWxsYXRpb25zIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGx1Z2lucy9QbHVnaW5JbnN0YWxsYXRpb25NYW5hZ2VyLmpzJ1xuaW1wb3J0IHR5cGUgeyBBcHBTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHsgY2hlY2tIYXNUcnVzdERpYWxvZ0FjY2VwdGVkIH0gZnJvbSAnLi4vY29uZmlnLmpzJ1xuaW1wb3J0IHsgbG9nRm9yRGVidWdnaW5nIH0gZnJvbSAnLi4vZGVidWcuanMnXG5pbXBvcnQge1xuICBjbGVhck1hcmtldHBsYWNlc0NhY2hlLFxuICByZWdpc3RlclNlZWRNYXJrZXRwbGFjZXMsXG59IGZyb20gJy4vbWFya2V0cGxhY2VNYW5hZ2VyLmpzJ1xuaW1wb3J0IHsgY2xlYXJQbHVnaW5DYWNoZSB9IGZyb20gJy4vcGx1Z2luTG9hZGVyLmpzJ1xuXG50eXBlIFNldEFwcFN0YXRlID0gKGY6IChwcmV2U3RhdGU6IEFwcFN0YXRlKSA9PiBBcHBTdGF0ZSkgPT4gdm9pZFxuXG4vKipcbiAqIFBlcmZvcm0gcGx1Z2luIHN0YXJ0dXAgY2hlY2tzIGFuZCBpbml0aWF0ZSBiYWNrZ3JvdW5kIGluc3RhbGxhdGlvbnNcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHN0YXJ0cyBiYWNrZ3JvdW5kIGluc3RhbGxhdGlvbiBvZiBtYXJrZXRwbGFjZXMgYW5kIHBsdWdpbnNcbiAqIGZyb20gdHJ1c3RlZCBzb3VyY2VzIChyZXBvc2l0b3J5IGFuZCB1c2VyIHNldHRpbmdzKSB3aXRob3V0IGJsb2NraW5nIHN0YXJ0dXAuXG4gKiBJbnN0YWxsYXRpb24gcHJvZ3Jlc3MgYW5kIGVycm9ycyBhcmUgdHJhY2tlZCBpbiBBcHBTdGF0ZSBhbmQgc2hvd24gdmlhIG5vdGlmaWNhdGlvbnMuXG4gKlxuICogU0VDVVJJVFk6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBSRVBMLnRzeCBhZnRlciB0aGUgXCJ0cnVzdCB0aGlzIGZvbGRlclwiXG4gKiBkaWFsb2cgaGFzIGJlZW4gY29uZmlybWVkLiBUaGUgdHJ1c3QgZGlhbG9nIGluIGNsaS50c3ggYmxvY2tzIGFsbCBleGVjdXRpb24gdW50aWxcbiAqIHRoZSB1c2VyIGV4cGxpY2l0bHkgdHJ1c3RzIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LCBlbnN1cmluZyB0aGF0IHBsdWdpblxuICogaW5zdGFsbGF0aW9ucyBvbmx5IGhhcHBlbiB3aXRoIHVzZXIgY29uc2VudC4gVGhpcyBwcmV2ZW50cyBtYWxpY2lvdXMgcmVwb3NpdG9yaWVzXG4gKiBmcm9tIGF1dG9tYXRpY2FsbHkgaW5zdGFsbGluZyBwbHVnaW5zIHdpdGhvdXQgdXNlciBhcHByb3ZhbC5cbiAqXG4gKiBAcGFyYW0gc2V0QXBwU3RhdGUgRnVuY3Rpb24gdG8gdXBkYXRlIGFwcCBzdGF0ZSB3aXRoIGluc3RhbGxhdGlvbiBwcm9ncmVzc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGVyZm9ybVN0YXJ0dXBDaGVja3MoXG4gIHNldEFwcFN0YXRlOiBTZXRBcHBTdGF0ZSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBsb2dGb3JEZWJ1Z2dpbmcoJ3BlcmZvcm1TdGFydHVwQ2hlY2tzIGNhbGxlZCcpXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGhhcyBiZWVuIHRydXN0ZWRcbiAgaWYgKCFjaGVja0hhc1RydXN0RGlhbG9nQWNjZXB0ZWQoKSkge1xuICAgIGxvZ0ZvckRlYnVnZ2luZyhcbiAgICAgICdUcnVzdCBub3QgYWNjZXB0ZWQgZm9yIGN1cnJlbnQgZGlyZWN0b3J5IC0gc2tpcHBpbmcgcGx1Z2luIGluc3RhbGxhdGlvbnMnLFxuICAgIClcbiAgICByZXR1cm5cbiAgfVxuXG4gIHRyeSB7XG4gICAgbG9nRm9yRGVidWdnaW5nKCdTdGFydGluZyBiYWNrZ3JvdW5kIHBsdWdpbiBpbnN0YWxsYXRpb25zJylcblxuICAgIC8vIFJlZ2lzdGVyIHNlZWQgbWFya2V0cGxhY2VzIChDTEFVREVfQ09ERV9QTFVHSU5fU0VFRF9ESVIpIGJlZm9yZSBkaWZmaW5nLlxuICAgIC8vIElkZW1wb3RlbnQ7IG5vLW9wIGlmIHNlZWQgbm90IGNvbmZpZ3VyZWQuIFdpdGhvdXQgdGhpcywgYmFja2dyb3VuZCBpbnN0YWxsXG4gICAgLy8gd291bGQgc2VlIHNlZWQgbWFya2V0cGxhY2VzIGFzIG1pc3Npbmcg4oaSIGNsb25lIOKGkiBkZWZlYXRzIHNlZWQncyBwdXJwb3NlLlxuICAgIC8vXG4gICAgLy8gSWYgcmVnaXN0cmF0aW9uIGNoYW5nZWQgc3RhdGUsIGNsZWFyIGNhY2hlcyBzbyBlYXJsaWVyIHBsdWdpbi1sb2FkIHBhc3Nlc1xuICAgIC8vIChlLmcuIGdldEFsbE1jcENvbmZpZ3MgZHVyaW5nIFJFUEwgaW5pdCkgZG9uJ3Qga2VlcCBzdGFsZSBcIm1hcmtldHBsYWNlXG4gICAgLy8gbm90IGZvdW5kXCIgcmVzdWx0cy5cbiAgICBjb25zdCBzZWVkQ2hhbmdlZCA9IGF3YWl0IHJlZ2lzdGVyU2VlZE1hcmtldHBsYWNlcygpXG4gICAgaWYgKHNlZWRDaGFuZ2VkKSB7XG4gICAgICBjbGVhck1hcmtldHBsYWNlc0NhY2hlKClcbiAgICAgIGNsZWFyUGx1Z2luQ2FjaGUoJ3BlcmZvcm1TdGFydHVwQ2hlY2tzOiBzZWVkIG1hcmtldHBsYWNlcyBjaGFuZ2VkJylcbiAgICAgIC8vIFNldCBuZWVkc1JlZnJlc2ggc28gdXNlTWFuYWdlUGx1Z2lucyBub3RpZmllcyB0aGUgdXNlciB0byBydW5cbiAgICAgIC8vIC9yZWxvYWQtcGx1Z2lucy4gV2l0aG91dCB0aGlzIHNpZ25hbCwgdGhlIGluaXRpYWwgcGx1Z2luLWxvYWRcbiAgICAgIC8vICh3aGljaCByYWNlZCBhbmQgY2FjaGVkIFwibWFya2V0cGxhY2Ugbm90IGZvdW5kXCIpIHdvdWxkIHBlcnNpc3RcbiAgICAgIC8vIHVudGlsIHRoZSB1c2VyIG1hbnVhbGx5IHJlbG9hZHMuXG4gICAgICBzZXRBcHBTdGF0ZShwcmV2ID0+IHtcbiAgICAgICAgaWYgKHByZXYucGx1Z2lucy5uZWVkc1JlZnJlc2gpIHJldHVybiBwcmV2XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBwbHVnaW5zOiB7IC4uLnByZXYucGx1Z2lucywgbmVlZHNSZWZyZXNoOiB0cnVlIH0sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gU3RhcnQgYmFja2dyb3VuZCBpbnN0YWxsYXRpb25zIHdpdGhvdXQgd2FpdGluZ1xuICAgIC8vIFRoaXMgd2lsbCB1cGRhdGUgQXBwU3RhdGUgYXMgaW5zdGFsbGF0aW9ucyBwcm9ncmVzc1xuICAgIGF3YWl0IHBlcmZvcm1CYWNrZ3JvdW5kUGx1Z2luSW5zdGFsbGF0aW9ucyhzZXRBcHBTdGF0ZSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBFdmVuIGlmIHNvbWV0aGluZyBmYWlscyBoZXJlLCBkb24ndCBibG9jayBzdGFydHVwXG4gICAgbG9nRm9yRGVidWdnaW5nKFxuICAgICAgYEVycm9yIGluaXRpYXRpbmcgYmFja2dyb3VuZCBwbHVnaW4gaW5zdGFsbGF0aW9uczogJHtlcnJvcn1gLFxuICAgIClcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxvQ0FBb0MsUUFBUSxxREFBcUQ7QUFDMUcsY0FBY0MsUUFBUSxRQUFRLHlCQUF5QjtBQUN2RCxTQUFTQywyQkFBMkIsUUFBUSxjQUFjO0FBQzFELFNBQVNDLGVBQWUsUUFBUSxhQUFhO0FBQzdDLFNBQ0VDLHNCQUFzQixFQUN0QkMsd0JBQXdCLFFBQ25CLHlCQUF5QjtBQUNoQyxTQUFTQyxnQkFBZ0IsUUFBUSxtQkFBbUI7QUFFcEQsS0FBS0MsV0FBVyxHQUFHLENBQUNDLENBQUMsRUFBRSxDQUFDQyxTQUFTLEVBQUVSLFFBQVEsRUFBRSxHQUFHQSxRQUFRLEVBQUUsR0FBRyxJQUFJOztBQUVqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLGVBQWVTLG9CQUFvQkEsQ0FDeENDLFdBQVcsRUFBRUosV0FBVyxDQUN6QixFQUFFSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7RUFDZlQsZUFBZSxDQUFDLDZCQUE2QixDQUFDOztFQUU5QztFQUNBLElBQUksQ0FBQ0QsMkJBQTJCLENBQUMsQ0FBQyxFQUFFO0lBQ2xDQyxlQUFlLENBQ2IsMEVBQ0YsQ0FBQztJQUNEO0VBQ0Y7RUFFQSxJQUFJO0lBQ0ZBLGVBQWUsQ0FBQywwQ0FBMEMsQ0FBQzs7SUFFM0Q7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQSxNQUFNVSxXQUFXLEdBQUcsTUFBTVIsd0JBQXdCLENBQUMsQ0FBQztJQUNwRCxJQUFJUSxXQUFXLEVBQUU7TUFDZlQsc0JBQXNCLENBQUMsQ0FBQztNQUN4QkUsZ0JBQWdCLENBQUMsaURBQWlELENBQUM7TUFDbkU7TUFDQTtNQUNBO01BQ0E7TUFDQUssV0FBVyxDQUFDRyxJQUFJLElBQUk7UUFDbEIsSUFBSUEsSUFBSSxDQUFDQyxPQUFPLENBQUNDLFlBQVksRUFBRSxPQUFPRixJQUFJO1FBQzFDLE9BQU87VUFDTCxHQUFHQSxJQUFJO1VBQ1BDLE9BQU8sRUFBRTtZQUFFLEdBQUdELElBQUksQ0FBQ0MsT0FBTztZQUFFQyxZQUFZLEVBQUU7VUFBSztRQUNqRCxDQUFDO01BQ0gsQ0FBQyxDQUFDO0lBQ0o7O0lBRUE7SUFDQTtJQUNBLE1BQU1oQixvQ0FBb0MsQ0FBQ1csV0FBVyxDQUFDO0VBQ3pELENBQUMsQ0FBQyxPQUFPTSxLQUFLLEVBQUU7SUFDZDtJQUNBZCxlQUFlLENBQ2IscURBQXFEYyxLQUFLLEVBQzVELENBQUM7RUFDSDtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
69
|
+
}
|
|
@@ -150,4 +150,3 @@ export function PreflightStep(t0) {
|
|
|
150
150
|
function _temp() {
|
|
151
151
|
return process.exit(1);
|
|
152
152
|
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJheGlvcyIsIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJsb2dFdmVudCIsIlNwaW5uZXIiLCJnZXRPYXV0aENvbmZpZyIsInVzZVRpbWVvdXQiLCJCb3giLCJUZXh0IiwiZ2V0U1NMRXJyb3JIaW50IiwiZ2V0VXNlckFnZW50IiwibG9nRXJyb3IiLCJQcmVmbGlnaHRDaGVja1Jlc3VsdCIsInN1Y2Nlc3MiLCJlcnJvciIsInNzbEhpbnQiLCJjaGVja0VuZHBvaW50cyIsIlByb21pc2UiLCJvYXV0aENvbmZpZyIsInRva2VuVXJsIiwiVVJMIiwiVE9LRU5fVVJMIiwiZW5kcG9pbnRzIiwiQkFTRV9BUElfVVJMIiwib3JpZ2luIiwiY2hlY2tFbmRwb2ludCIsInVybCIsInJlc3BvbnNlIiwiZ2V0IiwiaGVhZGVycyIsInN0YXR1cyIsImhvc3RuYW1lIiwiRXJyb3IiLCJFcnJub0V4Y2VwdGlvbiIsImNvZGUiLCJtZXNzYWdlIiwiU3RyaW5nIiwidW5kZWZpbmVkIiwicmVzdWx0cyIsImFsbCIsIm1hcCIsImZhaWxlZFJlc3VsdCIsImZpbmQiLCJyZXN1bHQiLCJpc0Nvbm5lY3Rpdml0eUVycm9yIiwiaGFzRXJyb3JNZXNzYWdlIiwiaXNTU0xFcnJvciIsIlByZWZsaWdodFN0ZXBQcm9wcyIsIm9uU3VjY2VzcyIsIlByZWZsaWdodFN0ZXAiLCJ0MCIsIiQiLCJfYyIsInNldFJlc3VsdCIsImlzQ2hlY2tpbmciLCJzZXRJc0NoZWNraW5nIiwic2hvd1NwaW5uZXIiLCJ0MSIsInQyIiwiU3ltYm9sIiwiZm9yIiwicnVuIiwiY2hlY2tSZXN1bHQiLCJ0MyIsInQ0IiwidGltZXIiLCJzZXRUaW1lb3V0IiwiX3RlbXAiLCJjbGVhclRpbWVvdXQiLCJ0NSIsInQ2IiwicHJvY2VzcyIsImV4aXQiXSwic291cmNlcyI6WyJwcmVmbGlnaHRDaGVja3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBsb2dFdmVudCB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbmFseXRpY3MvaW5kZXguanMnXG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vY29tcG9uZW50cy9TcGlubmVyLmpzJ1xuaW1wb3J0IHsgZ2V0T2F1dGhDb25maWcgfSBmcm9tICcuLi9jb25zdGFudHMvb2F1dGguanMnXG5pbXBvcnQgeyB1c2VUaW1lb3V0IH0gZnJvbSAnLi4vaG9va3MvdXNlVGltZW91dC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB7IGdldFNTTEVycm9ySGludCB9IGZyb20gJy4uL3NlcnZpY2VzL2FwaS9lcnJvclV0aWxzLmpzJ1xuaW1wb3J0IHsgZ2V0VXNlckFnZW50IH0gZnJvbSAnLi9odHRwLmpzJ1xuaW1wb3J0IHsgbG9nRXJyb3IgfSBmcm9tICcuL2xvZy5qcydcblxuZXhwb3J0IGludGVyZmFjZSBQcmVmbGlnaHRDaGVja1Jlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW5cbiAgZXJyb3I/OiBzdHJpbmdcbiAgc3NsSGludD86IHN0cmluZ1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGVja0VuZHBvaW50cygpOiBQcm9taXNlPFByZWZsaWdodENoZWNrUmVzdWx0PiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgb2F1dGhDb25maWcgPSBnZXRPYXV0aENvbmZpZygpXG4gICAgY29uc3QgdG9rZW5VcmwgPSBuZXcgVVJMKG9hdXRoQ29uZmlnLlRPS0VOX1VSTClcbiAgICBjb25zdCBlbmRwb2ludHMgPSBbXG4gICAgICBgJHtvYXV0aENvbmZpZy5CQVNFX0FQSV9VUkx9L2FwaS9oZWxsb2AsXG4gICAgICBgJHt0b2tlblVybC5vcmlnaW59L3YxL29hdXRoL2hlbGxvYCxcbiAgICBdXG5cbiAgICBjb25zdCBjaGVja0VuZHBvaW50ID0gYXN5bmMgKFxuICAgICAgdXJsOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTxQcmVmbGlnaHRDaGVja1Jlc3VsdD4gPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQodXJsLCB7XG4gICAgICAgICAgaGVhZGVyczogeyAnVXNlci1BZ2VudCc6IGdldFVzZXJBZ2VudCgpIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgIGNvbnN0IGhvc3RuYW1lID0gbmV3IFVSTCh1cmwpLmhvc3RuYW1lXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IGBGYWlsZWQgdG8gY29ubmVjdCB0byAke2hvc3RuYW1lfTogU3RhdHVzICR7cmVzcG9uc2Uuc3RhdHVzfWAsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgaG9zdG5hbWUgPSBuZXcgVVJMKHVybCkuaG9zdG5hbWVcbiAgICAgICAgY29uc3Qgc3NsSGludCA9IGdldFNTTEVycm9ySGludChlcnJvcilcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogYEZhaWxlZCB0byBjb25uZWN0IHRvICR7aG9zdG5hbWV9OiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyAoZXJyb3IgYXMgRXJybm9FeGNlcHRpb24pLmNvZGUgfHwgZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YCxcbiAgICAgICAgICBzc2xIaW50OiBzc2xIaW50ID8/IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChlbmRwb2ludHMubWFwKGNoZWNrRW5kcG9pbnQpKVxuICAgIGNvbnN0IGZhaWxlZFJlc3VsdCA9IHJlc3VsdHMuZmluZChyZXN1bHQgPT4gIXJlc3VsdC5zdWNjZXNzKVxuXG4gICAgaWYgKGZhaWxlZFJlc3VsdCkge1xuICAgICAgLy8gTG9nIGZhaWx1cmUgdG8gU3RhdHNpZ1xuICAgICAgbG9nRXZlbnQoJ3Rlbmd1X3ByZWZsaWdodF9jaGVja19mYWlsZWQnLCB7XG4gICAgICAgIGlzQ29ubmVjdGl2aXR5RXJyb3I6IGZhbHNlLFxuICAgICAgICBoYXNFcnJvck1lc3NhZ2U6ICEhZmFpbGVkUmVzdWx0LmVycm9yLFxuICAgICAgICBpc1NTTEVycm9yOiAhIWZhaWxlZFJlc3VsdC5zc2xIaW50LFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gZmFpbGVkUmVzdWx0IHx8IHsgc3VjY2VzczogdHJ1ZSB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nRXJyb3IoZXJyb3IgYXMgRXJyb3IpXG5cbiAgICAvLyBMb2cgdG8gU3RhdHNpZ1xuICAgIGxvZ0V2ZW50KCd0ZW5ndV9wcmVmbGlnaHRfY2hlY2tfZmFpbGVkJywge1xuICAgICAgaXNDb25uZWN0aXZpdHlFcnJvcjogdHJ1ZSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgZXJyb3I6IGBDb25uZWN0aXZpdHkgY2hlY2sgZXJyb3I6ICR7ZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IChlcnJvciBhcyBFcnJub0V4Y2VwdGlvbikuY29kZSB8fCBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gLFxuICAgIH1cbiAgfVxufVxuXG5pbnRlcmZhY2UgUHJlZmxpZ2h0U3RlcFByb3BzIHtcbiAgb25TdWNjZXNzOiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQcmVmbGlnaHRTdGVwKHtcbiAgb25TdWNjZXNzLFxufTogUHJlZmxpZ2h0U3RlcFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3Jlc3VsdCwgc2V0UmVzdWx0XSA9IHVzZVN0YXRlPFByZWZsaWdodENoZWNrUmVzdWx0IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzQ2hlY2tpbmcsIHNldElzQ2hlY2tpbmddID0gdXNlU3RhdGUodHJ1ZSlcblxuICAvLyBkZWxheSBzaG93aW5nIHRoZSBjaGVjayBzaW5jZSBpdCdzIHNvIGZhc3QgdGhhdCB3ZSBub3JtYWxseVxuICAvLyB3YW50IHRvIGp1c3QgaW1tZWRpYXRlbHkgc2hvdyB0aGUgbmV4dCBzdGVwIHdpdGhvdXQgYSBmbGFzaFxuICBjb25zdCBzaG93U3Bpbm5lciA9IHVzZVRpbWVvdXQoMTAwMCkgJiYgaXNDaGVja2luZ1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXN5bmMgZnVuY3Rpb24gcnVuKCkge1xuICAgICAgY29uc3QgY2hlY2tSZXN1bHQgPSBhd2FpdCBjaGVja0VuZHBvaW50cygpXG4gICAgICBzZXRSZXN1bHQoY2hlY2tSZXN1bHQpXG4gICAgICBzZXRJc0NoZWNraW5nKGZhbHNlKVxuICAgIH1cbiAgICB2b2lkIHJ1bigpXG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHJlc3VsdD8uc3VjY2Vzcykge1xuICAgICAgb25TdWNjZXNzKClcbiAgICB9IGVsc2UgaWYgKHJlc3VsdCAmJiAhcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiBwcm9jZXNzLmV4aXQoMSksIDEwMClcbiAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpXG4gICAgfVxuICB9LCBbcmVzdWx0LCBvblN1Y2Nlc3NdKVxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgZ2FwPXsxfSBwYWRkaW5nTGVmdD17MX0+XG4gICAgICB7aXNDaGVja2luZyAmJiBzaG93U3Bpbm5lciA/IChcbiAgICAgICAgPEJveCBwYWRkaW5nTGVmdD17MX0+XG4gICAgICAgICAgPFNwaW5uZXIgLz5cbiAgICAgICAgICA8VGV4dD5DaGVja2luZyBjb25uZWN0aXZpdHkuLi48L1RleHQ+XG4gICAgICAgIDwvQm94PlxuICAgICAgKSA6IChcbiAgICAgICAgIXJlc3VsdD8uc3VjY2VzcyAmJlxuICAgICAgICAhaXNDaGVja2luZyAmJiAoXG4gICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgZ2FwPXsxfT5cbiAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwiZXJyb3JcIj5VbmFibGUgdG8gY29ubmVjdCB0byBBbnRocm9waWMgc2VydmljZXM8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj1cImVycm9yXCI+e3Jlc3VsdD8uZXJyb3J9PC9UZXh0PlxuICAgICAgICAgICAge3Jlc3VsdD8uc3NsSGludCA/IChcbiAgICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICA8VGV4dD57cmVzdWx0LnNzbEhpbnR9PC9UZXh0PlxuICAgICAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwic3VnZ2VzdGlvblwiPlxuICAgICAgICAgICAgICAgICAgU2VlIGh0dHBzOi8vY29kZS5jbGF1ZGUuY29tL2RvY3MvZW4vbmV0d29yay1jb25maWdcbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgZ2FwPXsxfT5cbiAgICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICAgIFBsZWFzZSBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIG5ldHdvcmsgc2V0dGluZ3MuXG4gICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgTm90ZTogQ2xhdWRlIENvZGUgbWlnaHQgbm90IGJlIGF2YWlsYWJsZSBpbiB5b3VyIGNvdW50cnkuXG4gICAgICAgICAgICAgICAgICBDaGVjayBzdXBwb3J0ZWQgY291bnRyaWVzIGF0eycgJ31cbiAgICAgICAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwic3VnZ2VzdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICBodHRwczovL2FudGhyb3BpYy5jb20vc3VwcG9ydGVkLWNvdW50cmllc1xuICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvQm94PlxuICAgICAgICApXG4gICAgICApfVxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPQyxLQUFLLElBQUlDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDbEQsU0FBU0MsUUFBUSxRQUFRLGlDQUFpQztBQUMxRCxTQUFTQyxPQUFPLFFBQVEsMEJBQTBCO0FBQ2xELFNBQVNDLGNBQWMsUUFBUSx1QkFBdUI7QUFDdEQsU0FBU0MsVUFBVSxRQUFRLHdCQUF3QjtBQUNuRCxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxXQUFXO0FBQ3JDLFNBQVNDLGVBQWUsUUFBUSwrQkFBK0I7QUFDL0QsU0FBU0MsWUFBWSxRQUFRLFdBQVc7QUFDeEMsU0FBU0MsUUFBUSxRQUFRLFVBQVU7QUFFbkMsT0FBTyxVQUFVQyxvQkFBb0IsQ0FBQztFQUNwQ0MsT0FBTyxFQUFFLE9BQU87RUFDaEJDLEtBQUssQ0FBQyxFQUFFLE1BQU07RUFDZEMsT0FBTyxDQUFDLEVBQUUsTUFBTTtBQUNsQjtBQUVBLGVBQWVDLGNBQWNBLENBQUEsQ0FBRSxFQUFFQyxPQUFPLENBQUNMLG9CQUFvQixDQUFDLENBQUM7RUFDN0QsSUFBSTtJQUNGLE1BQU1NLFdBQVcsR0FBR2IsY0FBYyxDQUFDLENBQUM7SUFDcEMsTUFB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
|
|
@@ -136,5 +136,4 @@ export async function processBashCommand(inputString: string, precedingInputBloc
|
|
|
136
136
|
} finally {
|
|
137
137
|
setToolJSX(null);
|
|
138
138
|
}
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250ZW50QmxvY2tQYXJhbSIsInJhbmRvbVVVSUQiLCJSZWFjdCIsIkJhc2hNb2RlUHJvZ3Jlc3MiLCJTZXRUb29sSlNYRm4iLCJCYXNoVG9vbCIsIkF0dGFjaG1lbnRNZXNzYWdlIiwiU3lzdGVtTWVzc2FnZSIsIlVzZXJNZXNzYWdlIiwiU2hlbGxQcm9ncmVzcyIsImxvZ0V2ZW50IiwiZXJyb3JNZXNzYWdlIiwiU2hlbGxFcnJvciIsImNyZWF0ZVN5bnRoZXRpY1VzZXJDYXZlYXRNZXNzYWdlIiwiY3JlYXRlVXNlckludGVycnVwdGlvbk1lc3NhZ2UiLCJjcmVhdGVVc2VyTWVzc2FnZSIsInByZXBhcmVVc2VyQ29udGVudCIsInJlc29sdmVEZWZhdWx0U2hlbGwiLCJpc1Bvd2VyU2hlbGxUb29sRW5hYmxlZCIsInByb2Nlc3NUb29sUmVzdWx0QmxvY2siLCJlc2NhcGVYbWwiLCJQcm9jZXNzVXNlcklucHV0Q29udGV4dCIsInByb2Nlc3NCYXNoQ29tbWFuZCIsImlucHV0U3RyaW5nIiwicHJlY2VkaW5nSW5wdXRCbG9ja3MiLCJhdHRhY2htZW50TWVzc2FnZXMiLCJjb250ZXh0Iiwic2V0VG9vbEpTWCIsIlByb21pc2UiLCJtZXNzYWdlcyIsInNob3VsZFF1ZXJ5IiwidXNlUG93ZXJTaGVsbCIsInBvd2Vyc2hlbGwiLCJ1c2VyTWVzc2FnZSIsImNvbnRlbnQiLCJqc3giLCJSZWFjdE5vZGUiLCJvcHRpb25zIiwidmVyYm9zZSIsInNob3VsZEhpZGVQcm9tcHRJbnB1dCIsImJhc2hNb2RlQ29udGV4dCIsIl8iLCJvblByb2dyZXNzIiwicHJvZ3Jlc3MiLCJkYXRhIiwic2hvd1NwaW5uZXIiLCJQU01vZCIsIlBvd2VyU2hlbGxUb29sIiwicmVxdWlyZSIsInNoZWxsVG9vbCIsInJlc3BvbnNlIiwiY2FsbCIsImNvbW1hbmQiLCJkYW5nZXJvdXNseURpc2FibGVTYW5kYm94IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJzdGRlcnIiLCJtYXBwZWQiLCJzdGRvdXQiLCJlIiwiaW50ZXJydXB0ZWQiLCJ0b29sVXNlIl0sInNvdXJjZXMiOlsicHJvY2Vzc0Jhc2hDb21tYW5kLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnRlbnRCbG9ja1BhcmFtIH0gZnJvbSAnQGFudGhyb3BpYy1haS9zZGsvcmVzb3VyY2VzJ1xuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0bydcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQmFzaE1vZGVQcm9ncmVzcyB9IGZyb20gJ3NyYy9jb21wb25lbnRzL0Jhc2hNb2RlUHJvZ3Jlc3MuanMnXG5pbXBvcnQgdHlwZSB7IFNldFRvb2xKU1hGbiB9IGZyb20gJ3NyYy9Ub29sLmpzJ1xuaW1wb3J0IHsgQmFzaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvQmFzaFRvb2wvQmFzaFRvb2wuanMnXG5pbXBvcnQgdHlwZSB7XG4gIEF0dGFjaG1lbnRNZXNzYWdlLFxuICBTeXN0ZW1NZXNzYWdlLFxuICBVc2VyTWVzc2FnZSxcbn0gZnJvbSAnc3JjL3R5cGVzL21lc3NhZ2UuanMnXG5pbXBvcnQgdHlwZSB7IFNoZWxsUHJvZ3Jlc3MgfSBmcm9tICdzcmMvdHlwZXMvdG9vbHMuanMnXG5pbXBvcnQgeyBsb2dFdmVudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7IGVycm9yTWVzc2FnZSwgU2hlbGxFcnJvciB9IGZyb20gJy4uL2Vycm9ycy5qcydcbmltcG9ydCB7XG4gIGNyZWF0ZVN5bnRoZXRpY1VzZXJDYXZlYXRNZXNzYWdlLFxuICBjcmVhdGVVc2VySW50ZXJydXB0aW9uTWVzc2FnZSxcbiAgY3JlYXRlVXNlck1lc3NhZ2UsXG4gIHByZXBhcmVVc2VyQ29udGVudCxcbn0gZnJvbSAnLi4vbWVzc2FnZXMuanMnXG5pbXBvcnQgeyByZXNvbHZlRGVmYXVsdFNoZWxsIH0gZnJvbSAnLi4vc2hlbGwvcmVzb2x2ZURlZmF1bHRTaGVsbC5qcydcbmltcG9ydCB7IGlzUG93ZXJTaGVsbFRvb2xFbmFibGVkIH0gZnJvbSAnLi4vc2hlbGwvc2hlbGxUb29sVXRpbHMuanMnXG5pbXBvcnQgeyBwcm9jZXNzVG9vbFJlc3VsdEJsb2NrIH0gZnJvbSAnLi4vdG9vbFJlc3VsdFN0b3JhZ2UuanMnXG5pbXBvcnQgeyBlc2NhcGVYbWwgfSBmcm9tICcuLi94bWwuanMnXG5pbXBvcnQgdHlwZSB7IFByb2Nlc3NVc2VySW5wdXRDb250ZXh0IH0gZnJvbSAnLi9wcm9jZXNzVXNlcklucHV0LmpzJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0Jhc2hDb21tYW5kKFxuICBpbnB1dFN0cmluZzogc3RyaW5nLFxuICBwcmVjZWRpbmdJbnB1dEJsb2NrczogQ29udGVudEJsb2NrUGFyYW1bXSxcbiAgYXR0YWNobWVudE1lc3NhZ2VzOiBBdHRhY2htZW50TWVzc2FnZVtdLFxuICBjb250ZXh0OiBQcm9jZXNzVXNlcklucHV0Q29udGV4dCxcbiAgc2V0VG9vbEpTWDogU2V0VG9vbEpTWEZuLFxuKTogUHJvbWlzZTx7XG4gIG1lc3NhZ2VzOiAoVXNlck1lc3NhZ2UgfCBBdHRhY2htZW50TWVzc2FnZSB8IFN5c3RlbU1lc3NhZ2UpW11cbiAgc2hvdWxkUXVlcnk6IGJvb2xlYW5cbn0+IHtcbiAgLy8gU2hlbGwgcm91dGluZyAoZG9jcy9kZXNpZ24vcHMtc2hlbGwtc2VsZWN0aW9uLm1kIMKnNS4yKTogY29uc3VsdFxuICAvLyBkZWZhdWx0U2hlbGwsIGZhbGwgYmFjayB0byBiYXNoLiBpc1Bvd2VyU2hlbGxUb29sRW5hYmxlZCgpIGFwcGxpZXMgdGhlXG4gIC8vIHNhbWUgcGxhdGZvcm0gKyBlbnYtdmFyIGdhdGUgYXMgdG9vbHMudHMgc28gaW5wdXQtYm94IHJvdXRpbmcgbWF0Y2hlc1xuICAvLyB0b29sLWxpc3QgdmlzaWJpbGl0eS4gQ29tcHV0ZWQgdXAgZnJvbnQgc28gdGVsZW1ldHJ5IHJlY29yZHMgdGhlXG4gIC8vIGFjdHVhbCBzaGVsbCwgbm90IHRoZSByYXcgc2V0dGluZy5cbiAgY29uc3QgdXNlUG93ZXJTaGVsbCA9XG4gICAgaXNQb3dlclNoZWxsVG9vbEVuYWJsZWQoKSAmJiByZXNvbHZlRGVmYXVsdFNoZWxsKCkgPT09ICdwb3dlcnNoZWxsJ1xuXG4gIGxvZ0V2ZW50KCd0ZW5ndV9pbnB1dF9iYXNoJywgeyBwb3dlcnNoZWxsOiB1c2VQb3dlclNoZWxsIH0pXG5cbiAgY29uc3QgdXNlck1lc3NhZ2UgPSBjcmVhdGVVc2VyTWVzc2FnZSh7XG4gICAgY29udGVudDogcHJlcGFyZVVzZXJDb250ZW50KHtcbiAgICAgIGlucHV0U3RyaW5nOiBgPGJhc2gtaW5wdXQ+JHtpbnB1dFN0cmluZ308L2Jhc2gtaW5wdXQ+YCxcbiAgICAgIHByZWNlZGluZ0lucHV0QmxvY2tzLFxuICAgIH0pLFxuICB9KVxuXG4gIC8vIGN0cmwrYiB0byBiYWNrZ3JvdW5kIGluZGljYXRvclxuICBsZXQganN4OiBSZWFjdC5SZWFjdE5vZGVcblxuICAvLyBKdXN0IHNob3cgaW5pdGlhbCBVSVxuICBzZXRUb29sSlNYKHtcbiAgICBqc3g6IChcbiAgICAgIDxCYXNoTW9kZVByb2dyZXNzXG4gICAgICAgIGlucHV0PXtpbnB1dFN0cmluZ31cbiAgICAgICAgcHJvZ3Jlc3M9e251bGx9XG4gICAgICAgIHZlcmJvc2U9e2NvbnRleHQub3B0aW9ucy52ZXJib3NlfVxuICAgICAgLz5cbiAgICApLFxuICAgIHNob3VsZEhpZGVQcm9tcHRJbnB1dDogZmFsc2UsXG4gIH0pXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBiYXNoTW9kZUNvbnRleHQ6IFByb2Nlc3NVc2VySW5wdXRDb250ZXh0ID0ge1xuICAgICAgLi4uY29udGV4dCxcbiAgICAgIC8vIFRPRE86IENsZWFuIHVwIHRoaXMgaGFja1xuICAgICAgc2V0VG9vbEpTWDogXyA9PiB7XG4gICAgICAgIGpzeCA9IF8/LmpzeFxuICAgICAgfSxcbiAgICB9XG5cbiAgICAvLyBQcm9ncmVzcyBVSSDigJQgc2hhcmVkIGFjcm9zcyBib3RoIHNoZWxsIGJhY2tlbmRzIChib3RoIGVtaXQgU2hlbGxQcm9ncmVzcylcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHByb2dyZXNzOiB7IGRhdGE6IFNoZWxsUHJvZ3Jlc3MgfSkgPT4ge1xuICAgICAgc2V0VG9vbEpTWCh7XG4gICAgICAgIGpzeDogKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8QmFzaE1vZGVQcm9ncmVzc1xuICAgICAgICAgICAgICBpbnB1dD17aW5wdXRTdHJpbmchfVxuICAgICAgICAgICAgICBwcm9ncmVzcz17cHJvZ3Jlc3MuZGF0YX1cbiAgICAgICAgICAgICAgdmVyYm9zZT17Y29udGV4dC5vcHRpb25zLnZlcmJvc2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2pzeH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSxcbiAgICAgICAgc2hvdWxkSGlkZVByb21wdElucHV0OiBmYWxzZSxcbiAgICAgICAgc2hvd1NwaW5uZXI6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBVc2VyLWluaXRpYXRlZCBgIWAgY29tbWFuZHMgcnVuIG91dHNpZGUgc2FuZGJveC4gQm90aCBzaGVsbCB0b29scyBob25vclxuICAgIC8vIGRhbmdlcm91c2x5RGlzYWJsZVNhbmRib3ggKGNoZWNrZWQgYWdhaW5zdCBhcmVVbnNhbmRib3hlZENvbW1hbmRzQWxsb3dlZCgpXG4gICAgLy8gaW4gc2hvdWxkVXNlU2FuZGJveC50cykuIFBTIHNhbmRib3ggaXMgTGludXgvbWFjT1MvV1NMMiBvbmx5IOKAlCBvbiBXaW5kb3dzXG4gICAgLy8gbmF0aXZlLCBzaG91bGRVc2VTYW5kYm94KCkgcmV0dXJucyBmYWxzZSByZWdhcmRsZXNzICh1bnN1cHBvcnRlZCBwbGF0Zm9ybSkuXG4gICAgLy8gTGF6eS1yZXF1aXJlIFBvd2VyU2hlbGxUb29sIHNvIGl0cyB+MzAwS0IgY2h1bmsgb25seSBsb2FkcyB3aGVuIHRoZVxuICAgIC8vIHVzZXIgaGFzIGFjdHVhbGx5IHNlbGVjdGVkIHRoZSBwb3dlcnNoZWxsIGRlZmF1bHQgc2hlbGwuXG4gICAgdHlwZSBQU01vZCA9IHR5cGVvZiBpbXBvcnQoJ3NyYy90b29scy9Qb3dlclNoZWxsVG9vbC9Qb3dlclNoZWxsVG9vbC5qcycpXG4gICAgbGV0IFBvd2VyU2hlbGxUb29sOiBQU01vZFsnUG93ZXJTaGVsbFRvb2wnXSB8IG51bGwgPSBudWxsXG4gICAgaWYgKHVzZVBvd2VyU2hlbGwpIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHMgKi9cbiAgICAgIFBvd2VyU2hlbGxUb29sID0gKFxuICAgICAgICByZXF1aXJlKCdzcmMvdG9vbHMvUG93ZXJTaGVsbFRvb2wvUG93ZXJTaGVsbFRvb2wuanMnKSBhcyBQU01vZFxuICAgICAgKS5Qb3dlclNoZWxsVG9vbFxuICAgICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG4gICAgfVxuICAgIGNvbnN0IHNoZWxsVG9vbCA9IFBvd2VyU2hlbGxUb29sID8/IEJhc2hUb29sXG5cbiAgICBjb25zdCByZXNwb25zZSA9IFBvd2VyU2hlbGxUb29sXG4gICAgICA/IGF3YWl0IFBvd2VyU2hlbGxUb29sLmNhbGwoXG4gICAgICAgICAgeyBjb21tYW5kOiBpbnB1dFN0cmluZywgZGFuZ2Vyb3VzbHlEaXNhYmxlU2FuZGJveDogdHJ1ZSB9LFxuICAgICAgICAgIGJhc2hNb2RlQ29udGV4dCxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIG9uUHJvZ3Jlc3MsXG4gICAgICAgIClcbiAgICAgIDogYXdhaXQgQmFzaFRvb2wuY2FsbChcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21tYW5kOiBpbnB1dFN0cmluZyxcbiAgICAgICAgICAgIGRhbmdlcm91c2x5RGlzYWJsZVNhbmRib3g6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBiYXNoTW9kZUNvbnRleHQsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICBvblByb2dyZXNzLFxuICAgICAgICApXG4gICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGFcblxuICAgIGlmICghZGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXN1bHQgcmVjZWl2ZWQgZnJvbSBzaGVsbCBjb21tYW5kJylcbiAgICB9XG5cbiAgICBjb25zdCBzdGRlcnIgPSBkYXRhLnN0ZGVyclxuICAgIC8vIFJldXNlIHRoZSBzYW1lIGZvcm1hdHRpbmcgcGlwZWxpbmUgYXMgaW5saW5lICFgY21kYCBiYXNoIChwcm9tcHRTaGVsbEV4ZWN1dGlvbilcbiAgICAvLyBhbmQgbW9kZWwtaW5pdGlhdGVkIEJhc2guIFdoZW4gQmFzaFRvb2wuY2FsbCgpIHBlcnNpc3RzIGxhcmdlIG91dHB1dCB0byBkaXNrLFxuICAgIC8vIGRhdGEucGVyc2lzdGVkT3V0cHV0UGF0aCBpcyBzZXQgYW5kIHRoZSBmb3JtYXR0ZXIgd3JhcHMgaW4gPHBlcnNpc3RlZC1vdXRwdXQ+LlxuICAgIC8vIFBhc3Mgc3RkZXJyOicnIHRvIGtlZXAgaXQgc2VwYXJhdGUgZm9yIHRoZSA8YmFzaC1zdGRlcnI+IFVJIHRhZy5cbiAgICBjb25zdCBtYXBwZWQgPSBhd2FpdCBwcm9jZXNzVG9vbFJlc3VsdEJsb2NrKFxuICAgICAgc2hlbGxUb29sLFxuICAgICAgeyAuLi5kYXRhLCBzdGRlcnI6ICcnIH0sXG4gICAgICByYW5kb21VVUlEKCksXG4gICAgKVxuICAgIC8vIG1hcHBlZC5jb250ZW50IG1heSBjb250YWluIG91ciBvd24gPHBlcnNpc3RlZC1vdXRwdXQ+IHdyYXBwZXIgKHRydXN0ZWRcbiAgICAvLyBYTUwgZnJvbSBidWlsZExhcmdlVG9vbFJlc3VsdE1lc3NhZ2UpLiBFc2NhcGluZyBpdCB3b3VsZCB0dXJuIHN0cnVjdHVyYWxcbiAgICAvLyB0YWdzIGludG8gJmx0O3BlcnNpc3RlZC1vdXRwdXQmZ3Q7LCBicmVha2luZyB0aGUgbW9kZWwncyBwYXJzZSBhbmRcbiAgICAvLyBVc2VyQmFzaE91dHB1dE1lc3NhZ2UncyBleHRyYWN0VGFnLiBFc2NhcGUgdGhlIHJhdyBmYWxsYmFjayBvbmx5LlxuICAgIGNvbnN0IHN0ZG91dCA9XG4gICAgICB0eXBlb2YgbWFwcGVkLmNvbnRlbnQgPT09ICdzdHJpbmcnXG4gICAgICAgID8gbWFwcGVkLmNvbnRlbnRcbiAgICAgICAgOiBlc2NhcGVYbWwoZGF0YS5zdGRvdXQpXG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VzOiBbXG4gICAgICAgIGNyZWF0ZVN5bnRoZXRpY1VzZXJDYXZlYXRNZXNzYWdlKCksXG4gICAgICAgIHVzZXJNZXNzYWdlLFxuICAgICAgICAuLi5hdHRhY2htZW50TWVzc2FnZXMsXG4gICAgICAgIGNyZWF0ZVVzZXJNZXNzYWdlKHtcbiAgICAgICAgICBjb250ZW50OiBgPGJhc2gtc3Rkb3V0PiR7c3Rkb3V0fTwvYmFzaC1zdGRvdXQ+PGJhc2gtc3RkZXJyPiR7ZXNjYXBlWG1sKHN0ZGVycil9PC9iYXNoLXN0ZGVycj5gLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBzaG91bGRRdWVyeTogZmFsc2UsXG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBTaGVsbEVycm9yKSB7XG4gICAgICBpZiAoZS5pbnRlcnJ1cHRlZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1lc3NhZ2VzOiBbXG4gICAgICAgICAgICBjcmVhdGVTeW50aGV0aWNVc2VyQ2F2ZWF0TWVzc2FnZSgpLFxuICAgICAgICAgICAgdXNlck1lc3NhZ2UsXG4gICAgICAgICAgICBjcmVhdGVVc2VySW50ZXJydXB0aW9uTWVzc2FnZSh7IHRvb2xVc2U6IGZhbHNlIH0pLFxuICAgICAgICAgICAgLi4uYXR0YWNobWVudE1lc3NhZ2VzLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc2hvdWxkUXVlcnk6IGZhbHNlLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZXNzYWdlczogW1xuICAgICAgICAgIGNyZWF0ZVN5bnRoZXRpY1VzZXJDYXZlYXRNZXNzYWdlKCksXG4gICAgICAgICAgdXNlck1lc3NhZ2UsXG4gICAgICAgICAgLi4uYXR0YWNobWVudE1lc3NhZ2VzLFxuICAgICAgICAgIGNyZWF0ZVVzZXJNZXNzYWdlKHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGA8YmFzaC1zdGRvdXQ+JHtlc2NhcGVYbWwoZS5zdGRvdXQpfTwvYmFzaC1zdGRvdXQ+PGJhc2gtc3RkZXJyPiR7ZXNjYXBlWG1sKGUuc3RkZXJyKX08L2Jhc2gtc3RkZXJyPmAsXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIHNob3VsZFF1ZXJ5OiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VzOiBbXG4gICAgICAgIGNyZWF0ZVN5bnRoZXRpY1VzZXJDYXZlYXRNZXNzYWdlKCksXG4gICAgICAgIHVzZXJNZXNzYWdlLFxuICAgICAgICAuLi5hdHRhY2htZW50TWVzc2FnZXMsXG4gICAgICAgIGNyZWF0ZVVzZXJNZXNzYWdlKHtcbiAgICAgICAgICBjb250ZW50OiBgPGJhc2gtc3RkZXJyPkNvbW1hbmQgZmFpbGVkOiAke2VzY2FwZVhtbChlcnJvck1lc3NhZ2UoZSkpfTwvYmFzaC1zdGRlcnI+YCxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgc2hvdWxkUXVlcnk6IGZhbHNlLFxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBzZXRUb29sSlNYKG51bGwpXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsY0FBY0EsaUJBQWlCLFFBQVEsNkJBQTZCO0FBQ3BFLFNBQVNDLFVBQVUsUUFBUSxRQUFRO0FBQ25DLE9BQU8sS0FBS0MsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsZ0JBQWdCLFFB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TUFBTXlELE1BQU0sR0FDVixPQUFPRCxNQUFNLENBQUN2QixPQUFPLEtBQUssUUFBUSxHQUM5QnVCLE1BQU0sQ0FBQ3ZCLE9BQU8sR0FDZGQsU0FBUyxDQUFDd0IsSUFBSSxDQUFDYyxNQUFNLENBQUM7SUFDNUIsT0FBTztNQUNMN0IsUUFBUSxFQUFFLENBQ1JoQixnQ0FBZ0MsQ0FBQyxDQUFDLEVBQ2xDb0IsV0FBVyxFQUNYLEdBQUdSLGtCQUFrQixFQUNyQlYsaUJBQWlCLENBQUM7UUFDaEJtQixPQUFPLEVBQUUsZ0JBQWdCd0IsTUFBTSw4QkFBOEJ0QyxTQUFTLENBQUNvQyxNQUFNLENBQUM7TUFDaEYsQ0FBQyxDQUFDLENBQ0g7TUFDRDFCLFdBQVcsRUFBRTtJQUNmLENBQUM7RUFDSCxDQUFDLENBQUMsT0FBTzZCLENBQUMsRUFBRTtJQUNWLElBQUlBLENBQUMsWUFBWS9DLFVBQVUsRUFBRTtNQUMzQixJQUFJK0MsQ0FBQyxDQUFDQyxXQUFXLEVBQUU7UUFDakIsT0FBTztVQUNML0IsUUFBUSxFQUFFLENBQ1JoQixnQ0FBZ0MsQ0FBQyxDQUFDLEVBQ2xDb0IsV0FBVyxFQUNYbkIsNkJBQTZCLENBQUM7WUFBRStDLE9BQU8sRUFBRTtVQUFNLENBQUMsQ0FBQyxFQUNqRCxHQUFHcEMsa0JBQWtCLENBQ3RCO1VBQ0RLLFdBQVcsRUFBRTtRQUNmLENBQUM7TUFDSDtNQUNBLE9BQU87UUFDTEQsUUFBUSxFQUFFLENBQ1JoQixnQ0FBZ0MsQ0FBQyxDQUFDLEVBQ2xDb0IsV0FBVyxFQUNYLEdBQUdSLGtCQUFrQixFQUNyQlYsaUJBQWlCLENBQUM7VUFDaEJtQixPQUFPLEVBQUUsZ0JBQWdCZCxTQUFTLENBQUN1QyxDQUFDLENBQUNELE1BQU0sQ0FBQyw4QkFBOEJ0QyxTQUFTLENBQUN1QyxDQUFDLENBQUNILE1BQU0sQ0FBQztRQUMvRixDQUFDLENBQUMsQ0FDSDtRQUNEMUIsV0FBVyxFQUFFO01BQ2YsQ0FBQztJQUNIO0lBQ0EsT0FBTztNQUNMRCxRQUFRLEVBQUUsQ0FDUmhCLGdDQUFnQyxDQUFDLENBQUMsRUFDbENvQixXQUFXLEVBQ1gsR0FBR1Isa0JBQWtCLEVBQ3JCVixpQkFBaUIsQ0FBQztRQUNoQm1CLE9BQU8sRUFBRSxnQ0FBZ0NkLFNBQVMsQ0FBQ1QsWUFBWSxDQUFDZ0QsQ0FBQyxDQUFDLENBQUM7TUFDckUsQ0FBQyxDQUFDLENBQ0g7TUFDRDdCLFdBQVcsRUFBRTtJQUNmLENBQUM7RUFDSCxDQUFDLFNBQVM7SUFDUkgsVUFBVSxDQUFDLElBQUksQ0FBQztFQUNsQjtBQUNGIiwiaWdub3JlTGlzdCI6W119
|
|
139
|
+
}
|