@within-7/minto 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.cjs +32 -154
- package/cli.js +3255 -0
- package/package.json +25 -40
- package/scripts/postinstall.cjs +19 -136
- package/vendor/ripgrep/arm64-linux/rg +0 -0
- package/vendor/ripgrep/x64-darwin/rg +0 -0
- package/vendor/ripgrep/x64-linux/rg +0 -0
- package/vendor/ripgrep/x64-win32/rg.exe +0 -0
- package/dist/Tool.js +0 -39
- package/dist/Tool.js.map +0 -7
- package/dist/commands/agents/AgentsCommand.js +0 -2170
- package/dist/commands/agents/AgentsCommand.js.map +0 -7
- package/dist/commands/agents/constants.js +0 -58
- package/dist/commands/agents/constants.js.map +0 -7
- package/dist/commands/agents/index.js +0 -37
- package/dist/commands/agents/index.js.map +0 -7
- package/dist/commands/agents/types.js +0 -11
- package/dist/commands/agents/types.js.map +0 -7
- package/dist/commands/agents/utils/fileOperations.js +0 -245
- package/dist/commands/agents/utils/fileOperations.js.map +0 -7
- package/dist/commands/agents/utils/index.js +0 -23
- package/dist/commands/agents/utils/index.js.map +0 -7
- package/dist/commands/approvedTools.js +0 -36
- package/dist/commands/approvedTools.js.map +0 -7
- package/dist/commands/bug.js +0 -88
- package/dist/commands/bug.js.map +0 -7
- package/dist/commands/clear.js +0 -40
- package/dist/commands/clear.js.map +0 -7
- package/dist/commands/compact.js +0 -119
- package/dist/commands/compact.js.map +0 -7
- package/dist/commands/config.js +0 -20
- package/dist/commands/config.js.map +0 -7
- package/dist/commands/context.js +0 -116
- package/dist/commands/context.js.map +0 -7
- package/dist/commands/cost.js +0 -19
- package/dist/commands/cost.js.map +0 -7
- package/dist/commands/ctx_viz.js +0 -193
- package/dist/commands/ctx_viz.js.map +0 -7
- package/dist/commands/doctor.js +0 -171
- package/dist/commands/doctor.js.map +0 -7
- package/dist/commands/effort.js +0 -87
- package/dist/commands/effort.js.map +0 -7
- package/dist/commands/export.js +0 -747
- package/dist/commands/export.js.map +0 -7
- package/dist/commands/help.js +0 -20
- package/dist/commands/help.js.map +0 -7
- package/dist/commands/ide.js +0 -18
- package/dist/commands/ide.js.map +0 -7
- package/dist/commands/init.js +0 -38
- package/dist/commands/init.js.map +0 -7
- package/dist/commands/language.js +0 -110
- package/dist/commands/language.js.map +0 -7
- package/dist/commands/mcp-interactive.js +0 -485
- package/dist/commands/mcp-interactive.js.map +0 -7
- package/dist/commands/memory.js +0 -168
- package/dist/commands/memory.js.map +0 -7
- package/dist/commands/model.js +0 -497
- package/dist/commands/model.js.map +0 -7
- package/dist/commands/new.js +0 -56
- package/dist/commands/new.js.map +0 -7
- package/dist/commands/outputStyle.js +0 -64
- package/dist/commands/outputStyle.js.map +0 -7
- package/dist/commands/permissions.js +0 -113
- package/dist/commands/permissions.js.map +0 -7
- package/dist/commands/plugin/AddMarketplaceForm.js +0 -91
- package/dist/commands/plugin/AddMarketplaceForm.js.map +0 -7
- package/dist/commands/plugin/ConfirmDialog.js +0 -84
- package/dist/commands/plugin/ConfirmDialog.js.map +0 -7
- package/dist/commands/plugin/ErrorView.js +0 -34
- package/dist/commands/plugin/ErrorView.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +0 -152
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +0 -7
- package/dist/commands/plugin/InstalledPluginsManager.js +0 -102
- package/dist/commands/plugin/InstalledPluginsManager.js.map +0 -7
- package/dist/commands/plugin/LoadingView.js +0 -14
- package/dist/commands/plugin/LoadingView.js.map +0 -7
- package/dist/commands/plugin/MainMenu.js +0 -67
- package/dist/commands/plugin/MainMenu.js.map +0 -7
- package/dist/commands/plugin/MarketplaceManager.js +0 -201
- package/dist/commands/plugin/MarketplaceManager.js.map +0 -7
- package/dist/commands/plugin/MarketplaceSelector.js +0 -124
- package/dist/commands/plugin/MarketplaceSelector.js.map +0 -7
- package/dist/commands/plugin/PlaceholderScreen.js +0 -31
- package/dist/commands/plugin/PlaceholderScreen.js.map +0 -7
- package/dist/commands/plugin/PluginBrowser.js +0 -183
- package/dist/commands/plugin/PluginBrowser.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsInstall.js +0 -159
- package/dist/commands/plugin/PluginDetailsInstall.js.map +0 -7
- package/dist/commands/plugin/PluginDetailsManage.js +0 -210
- package/dist/commands/plugin/PluginDetailsManage.js.map +0 -7
- package/dist/commands/plugin/components.js +0 -16
- package/dist/commands/plugin/components.js.map +0 -7
- package/dist/commands/plugin/example-usage.js +0 -63
- package/dist/commands/plugin/example-usage.js.map +0 -7
- package/dist/commands/plugin/types.js +0 -1
- package/dist/commands/plugin/types.js.map +0 -7
- package/dist/commands/plugin/utils.js +0 -109
- package/dist/commands/plugin/utils.js.map +0 -7
- package/dist/commands/plugin.js +0 -1410
- package/dist/commands/plugin.js.map +0 -7
- package/dist/commands/quit.js +0 -18
- package/dist/commands/quit.js.map +0 -7
- package/dist/commands/refreshCommands.js +0 -48
- package/dist/commands/refreshCommands.js.map +0 -7
- package/dist/commands/resume.js +0 -271
- package/dist/commands/resume.js.map +0 -7
- package/dist/commands/review.js +0 -51
- package/dist/commands/review.js.map +0 -7
- package/dist/commands/sandbox.js +0 -203
- package/dist/commands/sandbox.js.map +0 -7
- package/dist/commands/sessions.js +0 -224
- package/dist/commands/sessions.js.map +0 -7
- package/dist/commands/setup.js +0 -653
- package/dist/commands/setup.js.map +0 -7
- package/dist/commands/stats.js +0 -292
- package/dist/commands/stats.js.map +0 -7
- package/dist/commands/status.js +0 -127
- package/dist/commands/status.js.map +0 -7
- package/dist/commands/tasks.js +0 -108
- package/dist/commands/tasks.js.map +0 -7
- package/dist/commands/terminalSetup.js +0 -170
- package/dist/commands/terminalSetup.js.map +0 -7
- package/dist/commands/todos.js +0 -123
- package/dist/commands/todos.js.map +0 -7
- package/dist/commands/undo.js +0 -227
- package/dist/commands/undo.js.map +0 -7
- package/dist/commands/vim.js +0 -22
- package/dist/commands/vim.js.map +0 -7
- package/dist/commands.js +0 -128
- package/dist/commands.js.map +0 -7
- package/dist/components/AgentResponseBlock.js +0 -41
- package/dist/components/AgentResponseBlock.js.map +0 -7
- package/dist/components/AgentThinkingBlock.js +0 -32
- package/dist/components/AgentThinkingBlock.js.map +0 -7
- package/dist/components/AsciiLogo.js +0 -18
- package/dist/components/AsciiLogo.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js +0 -142
- package/dist/components/AskUserQuestionDialog/AskUserQuestionDialog.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/QuestionView.js +0 -55
- package/dist/components/AskUserQuestionDialog/QuestionView.js.map +0 -7
- package/dist/components/AskUserQuestionDialog/index.js +0 -7
- package/dist/components/AskUserQuestionDialog/index.js.map +0 -7
- package/dist/components/BackgroundTasksPanel.js +0 -177
- package/dist/components/BackgroundTasksPanel.js.map +0 -7
- package/dist/components/BashStreamingProgress.js +0 -24
- package/dist/components/BashStreamingProgress.js.map +0 -7
- package/dist/components/CollapsibleHint.js +0 -15
- package/dist/components/CollapsibleHint.js.map +0 -7
- package/dist/components/Config.js +0 -181
- package/dist/components/Config.js.map +0 -7
- package/dist/components/ConsoleOAuthFlow.js +0 -179
- package/dist/components/ConsoleOAuthFlow.js.map +0 -7
- package/dist/components/Cost.js +0 -14
- package/dist/components/Cost.js.map +0 -7
- package/dist/components/CostThresholdDialog.js +0 -38
- package/dist/components/CostThresholdDialog.js.map +0 -7
- package/dist/components/CustomSelect/option-map.js +0 -32
- package/dist/components/CustomSelect/option-map.js.map +0 -7
- package/dist/components/CustomSelect/select-option.js +0 -37
- package/dist/components/CustomSelect/select-option.js.map +0 -7
- package/dist/components/CustomSelect/select.js +0 -64
- package/dist/components/CustomSelect/select.js.map +0 -7
- package/dist/components/CustomSelect/theme.js +0 -1
- package/dist/components/CustomSelect/theme.js.map +0 -7
- package/dist/components/CustomSelect/use-select-state.js +0 -220
- package/dist/components/CustomSelect/use-select-state.js.map +0 -7
- package/dist/components/CustomSelect/use-select.js +0 -21
- package/dist/components/CustomSelect/use-select.js.map +0 -7
- package/dist/components/FallbackToolUseRejectedMessage.js +0 -11
- package/dist/components/FallbackToolUseRejectedMessage.js.map +0 -7
- package/dist/components/FileEditToolUpdatedMessage.js +0 -32
- package/dist/components/FileEditToolUpdatedMessage.js.map +0 -7
- package/dist/components/HeaderBar.js +0 -63
- package/dist/components/HeaderBar.js.map +0 -7
- package/dist/components/Help.js +0 -178
- package/dist/components/Help.js.map +0 -7
- package/dist/components/HighlightedCode.js +0 -31
- package/dist/components/HighlightedCode.js.map +0 -7
- package/dist/components/HistorySearchOverlay.js +0 -49
- package/dist/components/HistorySearchOverlay.js.map +0 -7
- package/dist/components/HotkeyHelpPanel.js +0 -136
- package/dist/components/HotkeyHelpPanel.js.map +0 -7
- package/dist/components/InfoPanel/InfoPanel.js +0 -123
- package/dist/components/InfoPanel/InfoPanel.js.map +0 -7
- package/dist/components/InfoPanel/index.js +0 -5
- package/dist/components/InfoPanel/index.js.map +0 -7
- package/dist/components/InfoPanel/types.js +0 -1
- package/dist/components/InfoPanel/types.js.map +0 -7
- package/dist/components/InteractionRoundBlock.js +0 -56
- package/dist/components/InteractionRoundBlock.js.map +0 -7
- package/dist/components/InvalidConfigDialog.js +0 -84
- package/dist/components/InvalidConfigDialog.js.map +0 -7
- package/dist/components/Link.js +0 -18
- package/dist/components/Link.js.map +0 -7
- package/dist/components/LogSelector.js +0 -50
- package/dist/components/LogSelector.js.map +0 -7
- package/dist/components/Logo.js +0 -55
- package/dist/components/Logo.js.map +0 -7
- package/dist/components/MCPServerApprovalDialog.js +0 -81
- package/dist/components/MCPServerApprovalDialog.js.map +0 -7
- package/dist/components/MCPServerDialogCopy.js +0 -12
- package/dist/components/MCPServerDialogCopy.js.map +0 -7
- package/dist/components/MCPServerMultiselectDialog.js +0 -82
- package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
- package/dist/components/Message.js +0 -162
- package/dist/components/Message.js.map +0 -7
- package/dist/components/MessageResponse.js +0 -9
- package/dist/components/MessageResponse.js.map +0 -7
- package/dist/components/MessageSelector.js +0 -127
- package/dist/components/MessageSelector.js.map +0 -7
- package/dist/components/ModeIndicator.js +0 -39
- package/dist/components/ModeIndicator.js.map +0 -7
- package/dist/components/ModelConfig.js +0 -223
- package/dist/components/ModelConfig.js.map +0 -7
- package/dist/components/ModelListManager.js +0 -142
- package/dist/components/ModelListManager.js.map +0 -7
- package/dist/components/ModelSelector/BrandTextInput.js +0 -43
- package/dist/components/ModelSelector/BrandTextInput.js.map +0 -7
- package/dist/components/ModelSelector/ModelSelector.js +0 -2068
- package/dist/components/ModelSelector/ModelSelector.js.map +0 -7
- package/dist/components/ModelSelector/ScreenContainer.js +0 -27
- package/dist/components/ModelSelector/ScreenContainer.js.map +0 -7
- package/dist/components/ModelSelector/WizardContainer.js +0 -45
- package/dist/components/ModelSelector/WizardContainer.js.map +0 -7
- package/dist/components/ModelSelector/constants.js +0 -37
- package/dist/components/ModelSelector/constants.js.map +0 -7
- package/dist/components/ModelSelector/hooks/index.js +0 -5
- package/dist/components/ModelSelector/hooks/index.js.map +0 -7
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js +0 -21
- package/dist/components/ModelSelector/hooks/useEscapeNavigation.js.map +0 -7
- package/dist/components/ModelSelector/index.js +0 -15
- package/dist/components/ModelSelector/index.js.map +0 -7
- package/dist/components/ModelSelector/types.js +0 -1
- package/dist/components/ModelSelector/types.js.map +0 -7
- package/dist/components/Onboarding.js +0 -159
- package/dist/components/Onboarding.js.map +0 -7
- package/dist/components/OperationSummary.js +0 -130
- package/dist/components/OperationSummary.js.map +0 -7
- package/dist/components/PressEnterToContinue.js +0 -10
- package/dist/components/PressEnterToContinue.js.map +0 -7
- package/dist/components/ProgressBar.js +0 -74
- package/dist/components/ProgressBar.js.map +0 -7
- package/dist/components/ProjectOnboarding.js +0 -99
- package/dist/components/ProjectOnboarding.js.map +0 -7
- package/dist/components/PromptInput.js +0 -996
- package/dist/components/PromptInput.js.map +0 -7
- package/dist/components/PulseLabel.js +0 -44
- package/dist/components/PulseLabel.js.map +0 -7
- package/dist/components/QuitSummary.js +0 -88
- package/dist/components/QuitSummary.js.map +0 -7
- package/dist/components/RequestStatusIndicator.js +0 -194
- package/dist/components/RequestStatusIndicator.js.map +0 -7
- package/dist/components/SensitiveFileWarning.js +0 -35
- package/dist/components/SensitiveFileWarning.js.map +0 -7
- package/dist/components/SentryErrorBoundary.js +0 -27
- package/dist/components/SentryErrorBoundary.js.map +0 -7
- package/dist/components/SimpleSelector/SimpleSelector.js +0 -154
- package/dist/components/SimpleSelector/SimpleSelector.js.map +0 -7
- package/dist/components/SimpleSelector/index.js +0 -5
- package/dist/components/SimpleSelector/index.js.map +0 -7
- package/dist/components/SimpleSelector/types.js +0 -1
- package/dist/components/SimpleSelector/types.js.map +0 -7
- package/dist/components/Spinner.js +0 -185
- package/dist/components/Spinner.js.map +0 -7
- package/dist/components/SpinnerSymbol.js +0 -72
- package/dist/components/SpinnerSymbol.js.map +0 -7
- package/dist/components/StartupStatus.js +0 -57
- package/dist/components/StartupStatus.js.map +0 -7
- package/dist/components/StatusOverlayContent.js +0 -21
- package/dist/components/StatusOverlayContent.js.map +0 -7
- package/dist/components/StreamingBashOutput.js +0 -71
- package/dist/components/StreamingBashOutput.js.map +0 -7
- package/dist/components/StructuredDiff.js +0 -146
- package/dist/components/StructuredDiff.js.map +0 -7
- package/dist/components/SubagentBlock.js +0 -196
- package/dist/components/SubagentBlock.js.map +0 -7
- package/dist/components/SubagentManager.js +0 -65
- package/dist/components/SubagentManager.js.map +0 -7
- package/dist/components/SubagentProgress.js +0 -123
- package/dist/components/SubagentProgress.js.map +0 -7
- package/dist/components/SubagentStatusMarker.js +0 -37
- package/dist/components/SubagentStatusMarker.js.map +0 -7
- package/dist/components/TabbedListView/ScrollableList.js +0 -117
- package/dist/components/TabbedListView/ScrollableList.js.map +0 -7
- package/dist/components/TabbedListView/SearchInput.js +0 -23
- package/dist/components/TabbedListView/SearchInput.js.map +0 -7
- package/dist/components/TabbedListView/TabBar.js +0 -25
- package/dist/components/TabbedListView/TabBar.js.map +0 -7
- package/dist/components/TabbedListView/TabbedListView.js +0 -246
- package/dist/components/TabbedListView/TabbedListView.js.map +0 -7
- package/dist/components/TabbedListView/index.js +0 -11
- package/dist/components/TabbedListView/index.js.map +0 -7
- package/dist/components/TabbedListView/types.js +0 -1
- package/dist/components/TabbedListView/types.js.map +0 -7
- package/dist/components/TaskCard.js +0 -176
- package/dist/components/TaskCard.js.map +0 -7
- package/dist/components/TextInput.js +0 -108
- package/dist/components/TextInput.js.map +0 -7
- package/dist/components/TimelineRenderer.js +0 -31
- package/dist/components/TimelineRenderer.js.map +0 -7
- package/dist/components/TodoChangeBlock.js +0 -30
- package/dist/components/TodoChangeBlock.js.map +0 -7
- package/dist/components/TodoChangeLine.js +0 -22
- package/dist/components/TodoChangeLine.js.map +0 -7
- package/dist/components/TodoItem.js +0 -35
- package/dist/components/TodoItem.js.map +0 -7
- package/dist/components/TodoPanel.js +0 -166
- package/dist/components/TodoPanel.js.map +0 -7
- package/dist/components/TokenCounter.js +0 -74
- package/dist/components/TokenCounter.js.map +0 -7
- package/dist/components/TokenWarning.js +0 -20
- package/dist/components/TokenWarning.js.map +0 -7
- package/dist/components/ToolExecutionBlock.js +0 -18
- package/dist/components/ToolExecutionBlock.js.map +0 -7
- package/dist/components/ToolUseLoader.js +0 -29
- package/dist/components/ToolUseLoader.js.map +0 -7
- package/dist/components/TreeConnector.js +0 -26
- package/dist/components/TreeConnector.js.map +0 -7
- package/dist/components/TrustDialog.js +0 -71
- package/dist/components/TrustDialog.js.map +0 -7
- package/dist/components/TurnCompletionIndicator.js +0 -18
- package/dist/components/TurnCompletionIndicator.js.map +0 -7
- package/dist/components/UserQueryBlock.js +0 -12
- package/dist/components/UserQueryBlock.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedback.js +0 -50
- package/dist/components/binary-feedback/BinaryFeedback.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +0 -92
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -140
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
- package/dist/components/binary-feedback/utils.js +0 -108
- package/dist/components/binary-feedback/utils.js.map +0 -7
- package/dist/components/messages/AssistantBashOutputMessage.js +0 -23
- package/dist/components/messages/AssistantBashOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js +0 -36
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +0 -7
- package/dist/components/messages/AssistantRedactedThinkingMessage.js +0 -12
- package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantTextMessage.js +0 -89
- package/dist/components/messages/AssistantTextMessage.js.map +0 -7
- package/dist/components/messages/AssistantThinkingMessage.js +0 -42
- package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantToolUseMessage.js +0 -100
- package/dist/components/messages/AssistantToolUseMessage.js.map +0 -7
- package/dist/components/messages/GroupRenderer.js +0 -54
- package/dist/components/messages/GroupRenderer.js.map +0 -7
- package/dist/components/messages/NestedTasksPreview.js +0 -24
- package/dist/components/messages/NestedTasksPreview.js.map +0 -7
- package/dist/components/messages/ParallelTasksGroupView.js +0 -93
- package/dist/components/messages/ParallelTasksGroupView.js.map +0 -7
- package/dist/components/messages/TaskInModuleView.js +0 -218
- package/dist/components/messages/TaskInModuleView.js.map +0 -7
- package/dist/components/messages/TaskOutputContent.js +0 -56
- package/dist/components/messages/TaskOutputContent.js.map +0 -7
- package/dist/components/messages/TaskProgressMessage.js +0 -11
- package/dist/components/messages/TaskProgressMessage.js.map +0 -7
- package/dist/components/messages/TaskToolMessage.js +0 -39
- package/dist/components/messages/TaskToolMessage.js.map +0 -7
- package/dist/components/messages/UserBashInputMessage.js +0 -18
- package/dist/components/messages/UserBashInputMessage.js.map +0 -7
- package/dist/components/messages/UserCommandMessage.js +0 -20
- package/dist/components/messages/UserCommandMessage.js.map +0 -7
- package/dist/components/messages/UserKodingInputMessage.js +0 -18
- package/dist/components/messages/UserKodingInputMessage.js.map +0 -7
- package/dist/components/messages/UserPromptMessage.js +0 -25
- package/dist/components/messages/UserPromptMessage.js.map +0 -7
- package/dist/components/messages/UserTextMessage.js +0 -25
- package/dist/components/messages/UserTextMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +0 -11
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +0 -15
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +0 -25
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +0 -47
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +0 -22
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/utils.js +0 -50
- package/dist/components/messages/UserToolResultMessage/utils.js.map +0 -7
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +0 -112
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FallbackPermissionRequest.js +0 -131
- package/dist/components/permissions/FallbackPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +0 -159
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +0 -58
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +0 -153
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +0 -7
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +0 -70
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +0 -7
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +0 -212
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequest.js +0 -70
- package/dist/components/permissions/PermissionRequest.js.map +0 -7
- package/dist/components/permissions/PermissionRequestTitle.js +0 -52
- package/dist/components/permissions/PermissionRequestTitle.js.map +0 -7
- package/dist/components/permissions/hooks.js +0 -23
- package/dist/components/permissions/hooks.js.map +0 -7
- package/dist/components/permissions/toolUseOptions.js +0 -46
- package/dist/components/permissions/toolUseOptions.js.map +0 -7
- package/dist/components/permissions/utils.js +0 -21
- package/dist/components/permissions/utils.js.map +0 -7
- package/dist/constants/claude-asterisk-ascii-art.js +0 -242
- package/dist/constants/claude-asterisk-ascii-art.js.map +0 -7
- package/dist/constants/colors.js +0 -192
- package/dist/constants/colors.js.map +0 -7
- package/dist/constants/compressionPrompts.js +0 -73
- package/dist/constants/compressionPrompts.js.map +0 -7
- package/dist/constants/figures.js +0 -6
- package/dist/constants/figures.js.map +0 -7
- package/dist/constants/formatRules.js +0 -102
- package/dist/constants/formatRules.js.map +0 -7
- package/dist/constants/macros.js +0 -11
- package/dist/constants/macros.js.map +0 -7
- package/dist/constants/modelCapabilities.js +0 -239
- package/dist/constants/modelCapabilities.js.map +0 -7
- package/dist/constants/models.js +0 -1034
- package/dist/constants/models.js.map +0 -7
- package/dist/constants/oauth.js +0 -18
- package/dist/constants/oauth.js.map +0 -7
- package/dist/constants/product.js +0 -28
- package/dist/constants/product.js.map +0 -7
- package/dist/constants/prompts/agentPrompt.js +0 -30
- package/dist/constants/prompts/agentPrompt.js.map +0 -7
- package/dist/constants/prompts/codeConventions.js +0 -27
- package/dist/constants/prompts/codeConventions.js.map +0 -7
- package/dist/constants/prompts/doingTasks.js +0 -15
- package/dist/constants/prompts/doingTasks.js.map +0 -7
- package/dist/constants/prompts/envInfo.js +0 -17
- package/dist/constants/prompts/envInfo.js.map +0 -7
- package/dist/constants/prompts/executingWithCare.js +0 -17
- package/dist/constants/prompts/executingWithCare.js.map +0 -7
- package/dist/constants/prompts/identity.js +0 -10
- package/dist/constants/prompts/identity.js.map +0 -7
- package/dist/constants/prompts/index.js +0 -78
- package/dist/constants/prompts/index.js.map +0 -7
- package/dist/constants/prompts/taskManagement.js +0 -60
- package/dist/constants/prompts/taskManagement.js.map +0 -7
- package/dist/constants/prompts/toneAndStyle.js +0 -62
- package/dist/constants/prompts/toneAndStyle.js.map +0 -7
- package/dist/constants/prompts/toolUsagePolicy.js +0 -38
- package/dist/constants/prompts/toolUsagePolicy.js.map +0 -7
- package/dist/constants/prompts.js +0 -13
- package/dist/constants/prompts.js.map +0 -7
- package/dist/constants/providerRegistry.js +0 -235
- package/dist/constants/providerRegistry.js.map +0 -7
- package/dist/constants/providers.js +0 -35
- package/dist/constants/providers.js.map +0 -7
- package/dist/constants/releaseNotes.js +0 -9
- package/dist/constants/releaseNotes.js.map +0 -7
- package/dist/constants/symbols.js +0 -108
- package/dist/constants/symbols.js.map +0 -7
- package/dist/constants/timing.js +0 -39
- package/dist/constants/timing.js.map +0 -7
- package/dist/constants/toolInputExamples.js +0 -88
- package/dist/constants/toolInputExamples.js.map +0 -7
- package/dist/context/PermissionContext.js +0 -110
- package/dist/context/PermissionContext.js.map +0 -7
- package/dist/context.js +0 -334
- package/dist/context.js.map +0 -7
- package/dist/core/backupHook.js +0 -29
- package/dist/core/backupHook.js.map +0 -7
- package/dist/core/backupManager.js +0 -321
- package/dist/core/backupManager.js.map +0 -7
- package/dist/core/config/defaults.js +0 -93
- package/dist/core/config/defaults.js.map +0 -7
- package/dist/core/config/index.js +0 -111
- package/dist/core/config/index.js.map +0 -7
- package/dist/core/config/loader.js +0 -221
- package/dist/core/config/loader.js.map +0 -7
- package/dist/core/config/migrations.js +0 -128
- package/dist/core/config/migrations.js.map +0 -7
- package/dist/core/config/schema.js +0 -196
- package/dist/core/config/schema.js.map +0 -7
- package/dist/core/costTracker.js +0 -131
- package/dist/core/costTracker.js.map +0 -7
- package/dist/core/gitAutoCommit.js +0 -287
- package/dist/core/gitAutoCommit.js.map +0 -7
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -7
- package/dist/core/operationTracker.js +0 -212
- package/dist/core/operationTracker.js.map +0 -7
- package/dist/core/permissions/auditLog.js +0 -204
- package/dist/core/permissions/auditLog.js.map +0 -7
- package/dist/core/permissions/engine/index.js +0 -3
- package/dist/core/permissions/engine/index.js.map +0 -7
- package/dist/core/permissions/engine/permissionEngine.js +0 -106
- package/dist/core/permissions/engine/permissionEngine.js.map +0 -7
- package/dist/core/permissions/engine/types.js +0 -1
- package/dist/core/permissions/engine/types.js.map +0 -7
- package/dist/core/permissions/index.js +0 -84
- package/dist/core/permissions/index.js.map +0 -7
- package/dist/core/permissions/ruleEngine.js +0 -259
- package/dist/core/permissions/ruleEngine.js.map +0 -7
- package/dist/core/permissions/rules/allowedToolsRule.js +0 -62
- package/dist/core/permissions/rules/allowedToolsRule.js.map +0 -7
- package/dist/core/permissions/rules/autoEscalationRule.js +0 -296
- package/dist/core/permissions/rules/autoEscalationRule.js.map +0 -7
- package/dist/core/permissions/rules/index.js +0 -46
- package/dist/core/permissions/rules/index.js.map +0 -7
- package/dist/core/permissions/rules/planModeRule.js +0 -55
- package/dist/core/permissions/rules/planModeRule.js.map +0 -7
- package/dist/core/permissions/rules/projectBoundaryRule.js +0 -173
- package/dist/core/permissions/rules/projectBoundaryRule.js.map +0 -7
- package/dist/core/permissions/rules/safeModeRule.js +0 -65
- package/dist/core/permissions/rules/safeModeRule.js.map +0 -7
- package/dist/core/permissions/rules/sensitivePathsRule.js +0 -345
- package/dist/core/permissions/rules/sensitivePathsRule.js.map +0 -7
- package/dist/core/permissions/types.js +0 -127
- package/dist/core/permissions/types.js.map +0 -7
- package/dist/core/tokenStats.js +0 -9
- package/dist/core/tokenStats.js.map +0 -7
- package/dist/core/tokenStatsManager.js +0 -354
- package/dist/core/tokenStatsManager.js.map +0 -7
- package/dist/core/tools/executor.js +0 -143
- package/dist/core/tools/executor.js.map +0 -7
- package/dist/core/tools/index.js +0 -15
- package/dist/core/tools/index.js.map +0 -7
- package/dist/core/tools/registry.js +0 -183
- package/dist/core/tools/registry.js.map +0 -7
- package/dist/core/tools/types.js +0 -1
- package/dist/core/tools/types.js.map +0 -7
- package/dist/cost-tracker.js +0 -68
- package/dist/cost-tracker.js.map +0 -7
- package/dist/entrypoints/bootstrap.js +0 -56
- package/dist/entrypoints/bootstrap.js.map +0 -7
- package/dist/entrypoints/cli.js +0 -1390
- package/dist/entrypoints/cli.js.map +0 -7
- package/dist/entrypoints/mcp.js +0 -153
- package/dist/entrypoints/mcp.js.map +0 -7
- package/dist/history.js +0 -96
- package/dist/history.js.map +0 -7
- package/dist/hooks/useAgentTokenStats.js +0 -72
- package/dist/hooks/useAgentTokenStats.js.map +0 -7
- package/dist/hooks/useAgentTranscripts.js +0 -141
- package/dist/hooks/useAgentTranscripts.js.map +0 -7
- package/dist/hooks/useAnimationSync.js +0 -53
- package/dist/hooks/useAnimationSync.js.map +0 -7
- package/dist/hooks/useApiKeyVerification.js +0 -12
- package/dist/hooks/useApiKeyVerification.js.map +0 -7
- package/dist/hooks/useArrowKeyHistory.js +0 -52
- package/dist/hooks/useArrowKeyHistory.js.map +0 -7
- package/dist/hooks/useAskUser.js +0 -24
- package/dist/hooks/useAskUser.js.map +0 -7
- package/dist/hooks/useBackgroundShells.js +0 -29
- package/dist/hooks/useBackgroundShells.js.map +0 -7
- package/dist/hooks/useCanUseTool.js +0 -89
- package/dist/hooks/useCanUseTool.js.map +0 -7
- package/dist/hooks/useDeferredLoading.js +0 -64
- package/dist/hooks/useDeferredLoading.js.map +0 -7
- package/dist/hooks/useDoublePress.js +0 -31
- package/dist/hooks/useDoublePress.js.map +0 -7
- package/dist/hooks/useExitOnCtrlCD.js +0 -30
- package/dist/hooks/useExitOnCtrlCD.js.map +0 -7
- package/dist/hooks/useHistorySearch.js +0 -62
- package/dist/hooks/useHistorySearch.js.map +0 -7
- package/dist/hooks/useHookStatus.js +0 -40
- package/dist/hooks/useHookStatus.js.map +0 -7
- package/dist/hooks/useInterval.js +0 -18
- package/dist/hooks/useInterval.js.map +0 -7
- package/dist/hooks/useLogMessages.js +0 -41
- package/dist/hooks/useLogMessages.js.map +0 -7
- package/dist/hooks/useLogStartupTime.js +0 -10
- package/dist/hooks/useLogStartupTime.js.map +0 -7
- package/dist/hooks/useMessageGroups.js +0 -43
- package/dist/hooks/useMessageGroups.js.map +0 -7
- package/dist/hooks/useNotifyAfterTimeout.js +0 -42
- package/dist/hooks/useNotifyAfterTimeout.js.map +0 -7
- package/dist/hooks/usePermissionRequestLogging.js +0 -23
- package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
- package/dist/hooks/useSessionTracking.js +0 -55
- package/dist/hooks/useSessionTracking.js.map +0 -7
- package/dist/hooks/useTerminalSize.js +0 -115
- package/dist/hooks/useTerminalSize.js.map +0 -7
- package/dist/hooks/useTextInput.js +0 -253
- package/dist/hooks/useTextInput.js.map +0 -7
- package/dist/hooks/useUnifiedCompletion.js +0 -1098
- package/dist/hooks/useUnifiedCompletion.js.map +0 -7
- package/dist/i18n/index.js +0 -109
- package/dist/i18n/index.js.map +0 -7
- package/dist/i18n/locales/en.js +0 -928
- package/dist/i18n/locales/en.js.map +0 -7
- package/dist/i18n/locales/index.js +0 -7
- package/dist/i18n/locales/index.js.map +0 -7
- package/dist/i18n/locales/zh-CN.js +0 -928
- package/dist/i18n/locales/zh-CN.js.map +0 -7
- package/dist/i18n/types.js +0 -8
- package/dist/i18n/types.js.map +0 -7
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -7
- package/dist/messages.js +0 -68
- package/dist/messages.js.map +0 -7
- package/dist/package.json +0 -4
- package/dist/permissions.js +0 -430
- package/dist/permissions.js.map +0 -7
- package/dist/query.js +0 -753
- package/dist/query.js.map +0 -7
- package/dist/screens/LogList.js +0 -55
- package/dist/screens/LogList.js.map +0 -7
- package/dist/screens/REPL.js +0 -1097
- package/dist/screens/REPL.js.map +0 -7
- package/dist/screens/ResumeConversation.js +0 -59
- package/dist/screens/ResumeConversation.js.map +0 -7
- package/dist/services/adapters/base.js +0 -29
- package/dist/services/adapters/base.js.map +0 -7
- package/dist/services/adapters/chatCompletions.js +0 -71
- package/dist/services/adapters/chatCompletions.js.map +0 -7
- package/dist/services/adapters/messageNormalizer.js +0 -354
- package/dist/services/adapters/messageNormalizer.js.map +0 -7
- package/dist/services/adapters/responsesAPI.js +0 -137
- package/dist/services/adapters/responsesAPI.js.map +0 -7
- package/dist/services/agentTeams/index.js +0 -35
- package/dist/services/agentTeams/index.js.map +0 -7
- package/dist/services/agentTeams/mailbox.js +0 -114
- package/dist/services/agentTeams/mailbox.js.map +0 -7
- package/dist/services/agentTeams/teamManager.js +0 -149
- package/dist/services/agentTeams/teamManager.js.map +0 -7
- package/dist/services/agentTeams/teamTaskStore.js +0 -114
- package/dist/services/agentTeams/teamTaskStore.js.map +0 -7
- package/dist/services/agentTeams/teammateSpawner.js +0 -80
- package/dist/services/agentTeams/teammateSpawner.js.map +0 -7
- package/dist/services/checkpointManager.js +0 -399
- package/dist/services/checkpointManager.js.map +0 -7
- package/dist/services/claude.js +0 -41
- package/dist/services/claude.js.map +0 -7
- package/dist/services/compressionService.js +0 -259
- package/dist/services/compressionService.js.map +0 -7
- package/dist/services/contextMonitor.js +0 -162
- package/dist/services/contextMonitor.js.map +0 -7
- package/dist/services/customCommands.js +0 -489
- package/dist/services/customCommands.js.map +0 -7
- package/dist/services/fileFreshness.js +0 -275
- package/dist/services/fileFreshness.js.map +0 -7
- package/dist/services/gpt5ConnectionTest.js +0 -263
- package/dist/services/gpt5ConnectionTest.js.map +0 -7
- package/dist/services/hookExecutor.js +0 -728
- package/dist/services/hookExecutor.js.map +0 -7
- package/dist/services/intelligentCompactor.js +0 -281
- package/dist/services/intelligentCompactor.js.map +0 -7
- package/dist/services/llm/anthropicProvider.js +0 -807
- package/dist/services/llm/anthropicProvider.js.map +0 -7
- package/dist/services/llm/dispatch.js +0 -218
- package/dist/services/llm/dispatch.js.map +0 -7
- package/dist/services/llm/index.js +0 -44
- package/dist/services/llm/index.js.map +0 -7
- package/dist/services/llm/mintoContext.js +0 -69
- package/dist/services/llm/mintoContext.js.map +0 -7
- package/dist/services/llm/openaiProvider.js +0 -622
- package/dist/services/llm/openaiProvider.js.map +0 -7
- package/dist/services/llm/types.js +0 -157
- package/dist/services/llm/types.js.map +0 -7
- package/dist/services/lspConfig.js +0 -109
- package/dist/services/lspConfig.js.map +0 -7
- package/dist/services/mainAgentCompressor.js +0 -84
- package/dist/services/mainAgentCompressor.js.map +0 -7
- package/dist/services/mcpClient.js +0 -921
- package/dist/services/mcpClient.js.map +0 -7
- package/dist/services/mcpServerApproval.js +0 -55
- package/dist/services/mcpServerApproval.js.map +0 -7
- package/dist/services/mentionProcessor.js +0 -214
- package/dist/services/mentionProcessor.js.map +0 -7
- package/dist/services/modelAdapterFactory.js +0 -47
- package/dist/services/modelAdapterFactory.js.map +0 -7
- package/dist/services/modelOrchestrator.js +0 -310
- package/dist/services/modelOrchestrator.js.map +0 -7
- package/dist/services/notifier.js +0 -49
- package/dist/services/notifier.js.map +0 -7
- package/dist/services/oauth.js +0 -249
- package/dist/services/oauth.js.map +0 -7
- package/dist/services/openai.js +0 -1049
- package/dist/services/openai.js.map +0 -7
- package/dist/services/outputStyles.js +0 -219
- package/dist/services/outputStyles.js.map +0 -7
- package/dist/services/plugins/index.js +0 -5
- package/dist/services/plugins/index.js.map +0 -7
- package/dist/services/plugins/lspServers.js +0 -188
- package/dist/services/plugins/lspServers.js.map +0 -7
- package/dist/services/plugins/pluginRuntime.js +0 -230
- package/dist/services/plugins/pluginRuntime.js.map +0 -7
- package/dist/services/plugins/pluginValidation.js +0 -226
- package/dist/services/plugins/pluginValidation.js.map +0 -7
- package/dist/services/plugins/skillMarketplace.js +0 -567
- package/dist/services/plugins/skillMarketplace.js.map +0 -7
- package/dist/services/responseStateManager.js +0 -102
- package/dist/services/responseStateManager.js.map +0 -7
- package/dist/services/sandbox/filesystemBoundary.js +0 -341
- package/dist/services/sandbox/filesystemBoundary.js.map +0 -7
- package/dist/services/sandbox/index.js +0 -14
- package/dist/services/sandbox/index.js.map +0 -7
- package/dist/services/sandbox/networkProxy.js +0 -293
- package/dist/services/sandbox/networkProxy.js.map +0 -7
- package/dist/services/sandbox/sandboxController.js +0 -574
- package/dist/services/sandbox/sandboxController.js.map +0 -7
- package/dist/services/sandbox/types.js +0 -50
- package/dist/services/sandbox/types.js.map +0 -7
- package/dist/services/sentry.js +0 -9
- package/dist/services/sentry.js.map +0 -7
- package/dist/services/sessionMemory.js +0 -279
- package/dist/services/sessionMemory.js.map +0 -7
- package/dist/services/subagentAbortManager.js +0 -95
- package/dist/services/subagentAbortManager.js.map +0 -7
- package/dist/services/subagentCompressor.js +0 -146
- package/dist/services/subagentCompressor.js.map +0 -7
- package/dist/services/systemReminder.js +0 -693
- package/dist/services/systemReminder.js.map +0 -7
- package/dist/services/taskRouter.js +0 -324
- package/dist/services/taskRouter.js.map +0 -7
- package/dist/services/taskStore.js +0 -224
- package/dist/services/taskStore.js.map +0 -7
- package/dist/services/vcr.js +0 -133
- package/dist/services/vcr.js.map +0 -7
- package/dist/tools/ArchitectTool/ArchitectTool.js +0 -126
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +0 -7
- package/dist/tools/ArchitectTool/prompt.js +0 -18
- package/dist/tools/ArchitectTool/prompt.js.map +0 -7
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +0 -433
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js +0 -158
- package/dist/tools/AskUserQuestionTool/AskUserQuestionTool.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/index.js +0 -5
- package/dist/tools/AskUserQuestionTool/index.js.map +0 -7
- package/dist/tools/AskUserQuestionTool/prompt.js +0 -167
- package/dist/tools/AskUserQuestionTool/prompt.js.map +0 -7
- package/dist/tools/BaseTool.js +0 -72
- package/dist/tools/BaseTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputTool.js +0 -120
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +0 -7
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +0 -14
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +0 -7
- package/dist/tools/BashOutputTool/prompt.js +0 -13
- package/dist/tools/BashOutputTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/BashTool.js +0 -330
- package/dist/tools/BashTool/BashTool.js.map +0 -7
- package/dist/tools/BashTool/BashToolResultMessage.js +0 -24
- package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
- package/dist/tools/BashTool/OutputLine.js +0 -84
- package/dist/tools/BashTool/OutputLine.js.map +0 -7
- package/dist/tools/BashTool/prompt.js +0 -519
- package/dist/tools/BashTool/prompt.js.map +0 -7
- package/dist/tools/BashTool/utils.js +0 -51
- package/dist/tools/BashTool/utils.js.map +0 -7
- package/dist/tools/FileEditTool/FileEditTool.js +0 -273
- package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
- package/dist/tools/FileEditTool/prompt.js +0 -60
- package/dist/tools/FileEditTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/utils.js +0 -48
- package/dist/tools/FileEditTool/utils.js.map +0 -7
- package/dist/tools/FileReadTool/FileReadTool.js +0 -305
- package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
- package/dist/tools/FileReadTool/prompt.js +0 -25
- package/dist/tools/FileReadTool/prompt.js.map +0 -7
- package/dist/tools/FileWriteTool/FileWriteTool.js +0 -211
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
- package/dist/tools/FileWriteTool/prompt.js +0 -23
- package/dist/tools/FileWriteTool/prompt.js.map +0 -7
- package/dist/tools/GlobTool/GlobTool.js +0 -99
- package/dist/tools/GlobTool/GlobTool.js.map +0 -7
- package/dist/tools/GlobTool/prompt.js +0 -23
- package/dist/tools/GlobTool/prompt.js.map +0 -7
- package/dist/tools/GrepTool/GrepTool.js +0 -406
- package/dist/tools/GrepTool/GrepTool.js.map +0 -7
- package/dist/tools/GrepTool/prompt.js +0 -22
- package/dist/tools/GrepTool/prompt.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellTool.js +0 -92
- package/dist/tools/KillShellTool/KillShellTool.js.map +0 -7
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +0 -14
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +0 -7
- package/dist/tools/KillShellTool/prompt.js +0 -12
- package/dist/tools/KillShellTool/prompt.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js +0 -109
- package/dist/tools/ListMcpResourcesTool/ListMcpResourcesTool.js.map +0 -7
- package/dist/tools/ListMcpResourcesTool/prompt.js +0 -19
- package/dist/tools/ListMcpResourcesTool/prompt.js.map +0 -7
- package/dist/tools/LspTool/LspTool.js +0 -673
- package/dist/tools/LspTool/LspTool.js.map +0 -7
- package/dist/tools/LspTool/prompt.js +0 -27
- package/dist/tools/LspTool/prompt.js.map +0 -7
- package/dist/tools/MCPTool/MCPTool.js +0 -97
- package/dist/tools/MCPTool/MCPTool.js.map +0 -7
- package/dist/tools/MCPTool/prompt.js +0 -7
- package/dist/tools/MCPTool/prompt.js.map +0 -7
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +0 -117
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +0 -7
- package/dist/tools/MemoryReadTool/prompt.js +0 -7
- package/dist/tools/MemoryReadTool/prompt.js.map +0 -7
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +0 -78
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js +0 -7
- package/dist/tools/MemoryWriteTool/prompt.js.map +0 -7
- package/dist/tools/MultiEditTool/MultiEditTool.js +0 -328
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
- package/dist/tools/MultiEditTool/prompt.js +0 -50
- package/dist/tools/MultiEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -257
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +0 -7
- package/dist/tools/NotebookEditTool/prompt.js +0 -7
- package/dist/tools/NotebookEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +0 -218
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +0 -7
- package/dist/tools/NotebookReadTool/prompt.js +0 -7
- package/dist/tools/NotebookReadTool/prompt.js.map +0 -7
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js +0 -81
- package/dist/tools/PlanModeTool/EnterPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js +0 -111
- package/dist/tools/PlanModeTool/ExitPlanModeTool.js.map +0 -7
- package/dist/tools/PlanModeTool/prompt.js +0 -94
- package/dist/tools/PlanModeTool/prompt.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js +0 -130
- package/dist/tools/ReadMcpResourceTool/ReadMcpResourceTool.js.map +0 -7
- package/dist/tools/ReadMcpResourceTool/prompt.js +0 -17
- package/dist/tools/ReadMcpResourceTool/prompt.js.map +0 -7
- package/dist/tools/SkillTool/SkillTool.js +0 -227
- package/dist/tools/SkillTool/SkillTool.js.map +0 -7
- package/dist/tools/SkillTool/prompt.js +0 -81
- package/dist/tools/SkillTool/prompt.js.map +0 -7
- package/dist/tools/SlashCommandTool/SlashCommandTool.js +0 -416
- package/dist/tools/SlashCommandTool/SlashCommandTool.js.map +0 -7
- package/dist/tools/SlashCommandTool/prompt.js +0 -35
- package/dist/tools/SlashCommandTool/prompt.js.map +0 -7
- package/dist/tools/TaskCreateTool/TaskCreateTool.js +0 -102
- package/dist/tools/TaskCreateTool/TaskCreateTool.js.map +0 -7
- package/dist/tools/TaskCreateTool/prompt.js +0 -47
- package/dist/tools/TaskCreateTool/prompt.js.map +0 -7
- package/dist/tools/TaskGetTool/TaskGetTool.js +0 -115
- package/dist/tools/TaskGetTool/TaskGetTool.js.map +0 -7
- package/dist/tools/TaskGetTool/prompt.js +0 -28
- package/dist/tools/TaskGetTool/prompt.js.map +0 -7
- package/dist/tools/TaskListTool/TaskListTool.js +0 -102
- package/dist/tools/TaskListTool/TaskListTool.js.map +0 -7
- package/dist/tools/TaskListTool/prompt.js +0 -27
- package/dist/tools/TaskListTool/prompt.js.map +0 -7
- package/dist/tools/TaskOutputTool/TaskOutputTool.js +0 -190
- package/dist/tools/TaskOutputTool/TaskOutputTool.js.map +0 -7
- package/dist/tools/TaskOutputTool/prompt.js +0 -15
- package/dist/tools/TaskOutputTool/prompt.js.map +0 -7
- package/dist/tools/TaskStopTool/TaskStopTool.js +0 -150
- package/dist/tools/TaskStopTool/TaskStopTool.js.map +0 -7
- package/dist/tools/TaskStopTool/prompt.js +0 -15
- package/dist/tools/TaskStopTool/prompt.js.map +0 -7
- package/dist/tools/TaskTool/TaskTool.js +0 -861
- package/dist/tools/TaskTool/TaskTool.js.map +0 -7
- package/dist/tools/TaskTool/constants.js +0 -5
- package/dist/tools/TaskTool/constants.js.map +0 -7
- package/dist/tools/TaskTool/prompt.js +0 -117
- package/dist/tools/TaskTool/prompt.js.map +0 -7
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js +0 -134
- package/dist/tools/TaskUpdateTool/TaskUpdateTool.js.map +0 -7
- package/dist/tools/TaskUpdateTool/prompt.js +0 -81
- package/dist/tools/TaskUpdateTool/prompt.js.map +0 -7
- package/dist/tools/ThinkTool/ThinkTool.js +0 -45
- package/dist/tools/ThinkTool/ThinkTool.js.map +0 -7
- package/dist/tools/ThinkTool/prompt.js +0 -16
- package/dist/tools/ThinkTool/prompt.js.map +0 -7
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +0 -232
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
- package/dist/tools/TodoWriteTool/prompt.js +0 -87
- package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -143
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
- package/dist/tools/URLFetcherTool/cache.js +0 -95
- package/dist/tools/URLFetcherTool/cache.js.map +0 -7
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -44
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
- package/dist/tools/URLFetcherTool/prompt.js +0 -27
- package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/WebSearchTool.js +0 -91
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
- package/dist/tools/WebSearchTool/prompt.js +0 -23
- package/dist/tools/WebSearchTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/searchProviders.js +0 -58
- package/dist/tools/WebSearchTool/searchProviders.js.map +0 -7
- package/dist/tools/lsTool/lsTool.js +0 -201
- package/dist/tools/lsTool/lsTool.js.map +0 -7
- package/dist/tools/lsTool/prompt.js +0 -5
- package/dist/tools/lsTool/prompt.js.map +0 -7
- package/dist/tools.js +0 -127
- package/dist/tools.js.map +0 -7
- package/dist/types/PermissionMode.js +0 -131
- package/dist/types/PermissionMode.js.map +0 -7
- package/dist/types/RequestContext.js +0 -47
- package/dist/types/RequestContext.js.map +0 -7
- package/dist/types/agentTeams.js +0 -1
- package/dist/types/agentTeams.js.map +0 -7
- package/dist/types/askUserQuestion.js +0 -1
- package/dist/types/askUserQuestion.js.map +0 -7
- package/dist/types/common.d.js +0 -1
- package/dist/types/common.d.js.map +0 -7
- package/dist/types/conversation.js +0 -1
- package/dist/types/conversation.js.map +0 -7
- package/dist/types/core.js +0 -1
- package/dist/types/core.js.map +0 -7
- package/dist/types/hooks.js +0 -45
- package/dist/types/hooks.js.map +0 -7
- package/dist/types/interactionRound.js +0 -1
- package/dist/types/interactionRound.js.map +0 -7
- package/dist/types/logs.js +0 -1
- package/dist/types/logs.js.map +0 -7
- package/dist/types/marketplace.js +0 -107
- package/dist/types/marketplace.js.map +0 -7
- package/dist/types/messageGroup.js +0 -36
- package/dist/types/messageGroup.js.map +0 -7
- package/dist/types/modelCapabilities.js +0 -1
- package/dist/types/modelCapabilities.js.map +0 -7
- package/dist/types/notebook.js +0 -1
- package/dist/types/notebook.js.map +0 -7
- package/dist/types/plugin.js +0 -84
- package/dist/types/plugin.js.map +0 -7
- package/dist/types/subagent.js +0 -1
- package/dist/types/subagent.js.map +0 -7
- package/dist/types/thinking.js +0 -1
- package/dist/types/thinking.js.map +0 -7
- package/dist/utils/BackgroundShellManager.js +0 -378
- package/dist/utils/BackgroundShellManager.js.map +0 -7
- package/dist/utils/CircuitBreaker.js +0 -242
- package/dist/utils/CircuitBreaker.js.map +0 -7
- package/dist/utils/Cursor.js +0 -315
- package/dist/utils/Cursor.js.map +0 -7
- package/dist/utils/MessageBatchBuffer.js +0 -102
- package/dist/utils/MessageBatchBuffer.js.map +0 -7
- package/dist/utils/PersistentShell.js +0 -526
- package/dist/utils/PersistentShell.js.map +0 -7
- package/dist/utils/advancedFuzzyMatcher.js +0 -209
- package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
- package/dist/utils/agentHookExecutor.js +0 -103
- package/dist/utils/agentHookExecutor.js.map +0 -7
- package/dist/utils/agentLoader.js +0 -518
- package/dist/utils/agentLoader.js.map +0 -7
- package/dist/utils/agentMemory.js +0 -134
- package/dist/utils/agentMemory.js.map +0 -7
- package/dist/utils/agentStorage.js +0 -59
- package/dist/utils/agentStorage.js.map +0 -7
- package/dist/utils/agentTranscripts.js +0 -641
- package/dist/utils/agentTranscripts.js.map +0 -7
- package/dist/utils/animationManager.js +0 -213
- package/dist/utils/animationManager.js.map +0 -7
- package/dist/utils/animationSync.js +0 -110
- package/dist/utils/animationSync.js.map +0 -7
- package/dist/utils/array.js +0 -7
- package/dist/utils/array.js.map +0 -7
- package/dist/utils/ask.js +0 -79
- package/dist/utils/ask.js.map +0 -7
- package/dist/utils/async.js +0 -167
- package/dist/utils/async.js.map +0 -7
- package/dist/utils/asyncFile.js +0 -215
- package/dist/utils/asyncFile.js.map +0 -7
- package/dist/utils/auth.js +0 -11
- package/dist/utils/auth.js.map +0 -7
- package/dist/utils/autoCompactCore.js +0 -186
- package/dist/utils/autoCompactCore.js.map +0 -7
- package/dist/utils/autoUpdater.js +0 -113
- package/dist/utils/autoUpdater.js.map +0 -7
- package/dist/utils/backgroundAgentManager.js +0 -231
- package/dist/utils/backgroundAgentManager.js.map +0 -7
- package/dist/utils/browser.js +0 -15
- package/dist/utils/browser.js.map +0 -7
- package/dist/utils/claudeCodeSync.js +0 -439
- package/dist/utils/claudeCodeSync.js.map +0 -7
- package/dist/utils/cleanup.js +0 -54
- package/dist/utils/cleanup.js.map +0 -7
- package/dist/utils/commands.js +0 -219
- package/dist/utils/commands.js.map +0 -7
- package/dist/utils/commonUnixCommands.js +0 -689
- package/dist/utils/commonUnixCommands.js.map +0 -7
- package/dist/utils/compressionMode.js +0 -47
- package/dist/utils/compressionMode.js.map +0 -7
- package/dist/utils/config.js +0 -691
- package/dist/utils/config.js.map +0 -7
- package/dist/utils/configPaths.js +0 -199
- package/dist/utils/configPaths.js.map +0 -7
- package/dist/utils/configSchema.js +0 -227
- package/dist/utils/configSchema.js.map +0 -7
- package/dist/utils/conversationRecovery.js +0 -54
- package/dist/utils/conversationRecovery.js.map +0 -7
- package/dist/utils/credentials/CredentialStore.js +0 -1
- package/dist/utils/credentials/CredentialStore.js.map +0 -7
- package/dist/utils/credentials/EncryptedFileStore.js +0 -157
- package/dist/utils/credentials/EncryptedFileStore.js.map +0 -7
- package/dist/utils/credentials/index.js +0 -37
- package/dist/utils/credentials/index.js.map +0 -7
- package/dist/utils/credentials/migration.js +0 -82
- package/dist/utils/credentials/migration.js.map +0 -7
- package/dist/utils/debugLogger.js +0 -889
- package/dist/utils/debugLogger.js.map +0 -7
- package/dist/utils/diff.js +0 -32
- package/dist/utils/diff.js.map +0 -7
- package/dist/utils/env.js +0 -45
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/envConfig.js +0 -116
- package/dist/utils/envConfig.js.map +0 -7
- package/dist/utils/errorHandling.js +0 -89
- package/dist/utils/errorHandling.js.map +0 -7
- package/dist/utils/errors.js +0 -23
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/execFileNoThrow.js +0 -45
- package/dist/utils/execFileNoThrow.js.map +0 -7
- package/dist/utils/exit.js +0 -73
- package/dist/utils/exit.js.map +0 -7
- package/dist/utils/expertChatStorage.js +0 -78
- package/dist/utils/expertChatStorage.js.map +0 -7
- package/dist/utils/file.js +0 -282
- package/dist/utils/file.js.map +0 -7
- package/dist/utils/fileRecoveryCore.js +0 -41
- package/dist/utils/fileRecoveryCore.js.map +0 -7
- package/dist/utils/format.js +0 -109
- package/dist/utils/format.js.map +0 -7
- package/dist/utils/fuzzyMatcher.js +0 -258
- package/dist/utils/fuzzyMatcher.js.map +0 -7
- package/dist/utils/generators.js +0 -116
- package/dist/utils/generators.js.map +0 -7
- package/dist/utils/git.js +0 -83
- package/dist/utils/git.js.map +0 -7
- package/dist/utils/globalErrorHandler.js +0 -149
- package/dist/utils/globalErrorHandler.js.map +0 -7
- package/dist/utils/gpt5.js +0 -146
- package/dist/utils/gpt5.js.map +0 -7
- package/dist/utils/groupHandlers/index.js +0 -8
- package/dist/utils/groupHandlers/index.js.map +0 -7
- package/dist/utils/groupHandlers/parallelTasksHandler.js +0 -140
- package/dist/utils/groupHandlers/parallelTasksHandler.js.map +0 -7
- package/dist/utils/groupHandlers/taskHandler.js +0 -104
- package/dist/utils/groupHandlers/taskHandler.js.map +0 -7
- package/dist/utils/groupHandlers/types.js +0 -1
- package/dist/utils/groupHandlers/types.js.map +0 -7
- package/dist/utils/historyManager.js +0 -234
- package/dist/utils/historyManager.js.map +0 -7
- package/dist/utils/hookManager.js +0 -482
- package/dist/utils/hookManager.js.map +0 -7
- package/dist/utils/http.js +0 -7
- package/dist/utils/http.js.map +0 -7
- package/dist/utils/imagePaste.js +0 -29
- package/dist/utils/imagePaste.js.map +0 -7
- package/dist/utils/json.js +0 -16
- package/dist/utils/json.js.map +0 -7
- package/dist/utils/log.js +0 -329
- package/dist/utils/log.js.map +0 -7
- package/dist/utils/logRotation.js +0 -224
- package/dist/utils/logRotation.js.map +0 -7
- package/dist/utils/markdown.js +0 -246
- package/dist/utils/markdown.js.map +0 -7
- package/dist/utils/marketplaceManager.js +0 -545
- package/dist/utils/marketplaceManager.js.map +0 -7
- package/dist/utils/memSafety.js +0 -264
- package/dist/utils/memSafety.js.map +0 -7
- package/dist/utils/memoizeWithTTL.js +0 -25
- package/dist/utils/memoizeWithTTL.js.map +0 -7
- package/dist/utils/messageContextManager.js +0 -195
- package/dist/utils/messageContextManager.js.map +0 -7
- package/dist/utils/messageGroupManager.js +0 -274
- package/dist/utils/messageGroupManager.js.map +0 -7
- package/dist/utils/messages.js +0 -667
- package/dist/utils/messages.js.map +0 -7
- package/dist/utils/migration/index.js +0 -37
- package/dist/utils/migration/index.js.map +0 -7
- package/dist/utils/migration/migrateHistory.js +0 -273
- package/dist/utils/migration/migrateHistory.js.map +0 -7
- package/dist/utils/migration/migrateTodos.js +0 -323
- package/dist/utils/migration/migrateTodos.js.map +0 -7
- package/dist/utils/model.js +0 -846
- package/dist/utils/model.js.map +0 -7
- package/dist/utils/pasteCache.js +0 -309
- package/dist/utils/pasteCache.js.map +0 -7
- package/dist/utils/permissions/filesystem.js +0 -236
- package/dist/utils/permissions/filesystem.js.map +0 -7
- package/dist/utils/plan/planMode.js +0 -143
- package/dist/utils/plan/planMode.js.map +0 -7
- package/dist/utils/pluginInstaller.js +0 -518
- package/dist/utils/pluginInstaller.js.map +0 -7
- package/dist/utils/pluginLoader.js +0 -801
- package/dist/utils/pluginLoader.js.map +0 -7
- package/dist/utils/pluginRegistry.js +0 -111
- package/dist/utils/pluginRegistry.js.map +0 -7
- package/dist/utils/pluginValidator.js +0 -798
- package/dist/utils/pluginValidator.js.map +0 -7
- package/dist/utils/ptyCompat.js +0 -125
- package/dist/utils/ptyCompat.js.map +0 -7
- package/dist/utils/replStateMachine.js +0 -145
- package/dist/utils/replStateMachine.js.map +0 -7
- package/dist/utils/repoFetcher.js +0 -110
- package/dist/utils/repoFetcher.js.map +0 -7
- package/dist/utils/ripgrep.js +0 -236
- package/dist/utils/ripgrep.js.map +0 -7
- package/dist/utils/roundConverter.js +0 -262
- package/dist/utils/roundConverter.js.map +0 -7
- package/dist/utils/safeFetch.js +0 -45
- package/dist/utils/safeFetch.js.map +0 -7
- package/dist/utils/safePath.js +0 -132
- package/dist/utils/safePath.js.map +0 -7
- package/dist/utils/sanitizeInput.js +0 -32
- package/dist/utils/sanitizeInput.js.map +0 -7
- package/dist/utils/secureFile.js +0 -512
- package/dist/utils/secureFile.js.map +0 -7
- package/dist/utils/secureKeyStorage.js +0 -312
- package/dist/utils/secureKeyStorage.js.map +0 -7
- package/dist/utils/sensitiveFiles.js +0 -125
- package/dist/utils/sensitiveFiles.js.map +0 -7
- package/dist/utils/session/sessionPlugins.js +0 -67
- package/dist/utils/session/sessionPlugins.js.map +0 -7
- package/dist/utils/sessionIndex.js +0 -192
- package/dist/utils/sessionIndex.js.map +0 -7
- package/dist/utils/sessionState.js +0 -22
- package/dist/utils/sessionState.js.map +0 -7
- package/dist/utils/sessionTracker.js +0 -170
- package/dist/utils/sessionTracker.js.map +0 -7
- package/dist/utils/skillLoader.js +0 -230
- package/dist/utils/skillLoader.js.map +0 -7
- package/dist/utils/state.js +0 -24
- package/dist/utils/state.js.map +0 -7
- package/dist/utils/stats.js +0 -417
- package/dist/utils/stats.js.map +0 -7
- package/dist/utils/streamingState.js +0 -52
- package/dist/utils/streamingState.js.map +0 -7
- package/dist/utils/stringSubstitution.js +0 -106
- package/dist/utils/stringSubstitution.js.map +0 -7
- package/dist/utils/style.js +0 -34
- package/dist/utils/style.js.map +0 -7
- package/dist/utils/taskDisplayUtils.js +0 -257
- package/dist/utils/taskDisplayUtils.js.map +0 -7
- package/dist/utils/teamConfig.js +0 -624
- package/dist/utils/teamConfig.js.map +0 -7
- package/dist/utils/terminal.js +0 -59
- package/dist/utils/terminal.js.map +0 -7
- package/dist/utils/theme.js +0 -134
- package/dist/utils/theme.js.map +0 -7
- package/dist/utils/thinking.js +0 -59
- package/dist/utils/thinking.js.map +0 -7
- package/dist/utils/todoChangeCalculator.js +0 -64
- package/dist/utils/todoChangeCalculator.js.map +0 -7
- package/dist/utils/todoStorage.js +0 -413
- package/dist/utils/todoStorage.js.map +0 -7
- package/dist/utils/tokens.js +0 -30
- package/dist/utils/tokens.js.map +0 -7
- package/dist/utils/toolExecutionController.js +0 -109
- package/dist/utils/toolExecutionController.js.map +0 -7
- package/dist/utils/toolRiskClassification.js +0 -201
- package/dist/utils/toolRiskClassification.js.map +0 -7
- package/dist/utils/toolTimeout.js +0 -136
- package/dist/utils/toolTimeout.js.map +0 -7
- package/dist/utils/tooling/safeRender.js +0 -115
- package/dist/utils/tooling/safeRender.js.map +0 -7
- package/dist/utils/unaryLogging.js +0 -6
- package/dist/utils/unaryLogging.js.map +0 -7
- package/dist/utils/user.js +0 -40
- package/dist/utils/user.js.map +0 -7
- package/dist/utils/userFriendlyError.js +0 -346
- package/dist/utils/userFriendlyError.js.map +0 -7
- package/dist/utils/validate.js +0 -132
- package/dist/utils/validate.js.map +0 -7
- package/dist/version.js +0 -7
- package/dist/version.js.map +0 -7
- package/dist/yoga.wasm +0 -0
- /package/{dist/utils/vendor → vendor}/ripgrep/arm64-darwin/rg +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/commands/agents/AgentsCommand.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n useReducer,\n Fragment,\n} from 'react'\nimport { Box, Text, useInput } from 'ink'\nimport InkTextInput from 'ink-text-input'\nimport {\n getActiveAgents,\n clearAgentCache,\n AgentConfig,\n} from '@utils/agentLoader'\nimport * as path from 'path'\nimport * as os from 'os'\nimport { exec } from 'child_process'\nimport { promisify } from 'util'\nimport { getTheme } from '@utils/theme'\nimport { clearScreen } from '@utils/terminal'\nimport { SEMANTIC_COLORS } from '@constants/colors'\n\nconst execAsync = promisify(exec)\nimport { getMCPTools } from '@services/mcpClient'\nimport { getModelManager } from '@utils/model'\nimport { randomUUID } from 'crypto'\n\n// TabbedListView for consistent UI\nimport { TabbedListView } from '@components/TabbedListView/TabbedListView'\nimport type {\n TabDefinition,\n ListItem,\n StatusOverlay,\n} from '@components/TabbedListView/types'\n\n// Import from local modules\nimport {\n AGENT_LOCATIONS,\n UI_ICONS,\n FOLDER_CONFIG,\n TOOL_CATEGORIES,\n} from './constants'\nimport type {\n AgentLocation,\n ModeState,\n CreateState,\n Tool,\n GeneratedAgent,\n} from './types'\nimport {\n getAgentFilePath,\n saveAgent,\n deleteAgent,\n openInEditor,\n viewInPager,\n updateAgent,\n} from './utils'\n\n// Phase state machine for TabbedListView navigation\ntype AgentPhase =\n | { type: 'main' }\n | { type: 'agent-actions'; agent: AgentConfig }\n | { type: 'edit-actions'; agent: AgentConfig }\n | { type: 'create'; step: ModeState }\n | { type: 'edit-tools'; agent: AgentConfig }\n | { type: 'edit-model'; agent: AgentConfig }\n | { type: 'edit-color'; agent: AgentConfig }\n | { type: 'delete-confirm'; agent: AgentConfig }\n\n// Map a stored model identifier to a display name via ModelManager\nfunction getDisplayModelName(modelId?: string | null): string {\n // null/undefined means inherit from parent (task model)\n if (!modelId) return 'Inherit'\n\n try {\n const profiles = getModelManager().getActiveModelProfiles()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const profile = profiles.find(\n (p: any) => p.modelName === modelId || p.name === modelId,\n )\n return profile ? profile.name : `Custom (${modelId})`\n } catch (error) {\n console.warn('Failed to get model profiles:', error)\n return modelId ? `Custom (${modelId})` : 'Inherit'\n }\n}\n\n// AI generation function (use main pointer model)\nasync function generateAgentWithClaude(\n prompt: string,\n): Promise<GeneratedAgent> {\n // Import Claude service dynamically to avoid circular dependencies\n const { queryModel } = await import('@services/claude')\n\n const systemPrompt = `You are an expert at creating AI agent configurations. Based on the user's description, generate a specialized agent configuration.\n\nReturn your response as a JSON object with exactly these fields:\n- identifier: A short, kebab-case identifier for the agent (e.g., \"code-reviewer\", \"security-auditor\")\n- whenToUse: A clear description of when this agent should be used (50-200 words)\n- systemPrompt: A comprehensive system prompt that defines the agent's role, capabilities, and behavior (200-500 words)\n\nMake the agent highly specialized and effective for the described use case.`\n\n try {\n const messages = [\n {\n type: 'user',\n uuid: randomUUID(),\n message: { role: 'user', content: prompt },\n },\n ] as any\n const response = await queryModel('main', messages, [systemPrompt])\n\n // Get the text content from the response - handle both string and object responses\n let responseText = ''\n if (typeof response.message?.content === 'string') {\n responseText = response.message.content\n } else if (Array.isArray(response.message?.content)) {\n const textContent = response.message.content.find(\n (c: any) => c.type === 'text',\n )\n responseText = textContent?.text || ''\n } else if (response.message?.content?.[0]?.text) {\n responseText = response.message.content[0].text\n }\n\n if (!responseText) {\n throw new Error('No text content in Claude response')\n }\n\n // \u5B89\u5168\u9650\u5236\n const MAX_JSON_SIZE = 100_000 // 100KB\n const MAX_FIELD_LENGTH = 10_000\n\n if (responseText.length > MAX_JSON_SIZE) {\n throw new Error('Response too large')\n }\n\n // \u5B89\u5168\u7684JSON\u63D0\u53D6\u548C\u89E3\u6790\n let parsed: any\n try {\n // \u9996\u5148\u5C1D\u8BD5\u76F4\u63A5\u89E3\u6790\u6574\u4E2A\u54CD\u5E94\n parsed = JSON.parse(responseText.trim())\n } catch {\n // \u5982\u679C\u5931\u8D25\uFF0C\u63D0\u53D6\u7B2C\u4E00\u4E2AJSON\u5BF9\u8C61\uFF0C\u9650\u5236\u641C\u7D22\u8303\u56F4\n const startIdx = responseText.indexOf('{')\n const endIdx = responseText.lastIndexOf('}')\n\n if (startIdx === -1 || endIdx === -1 || startIdx >= endIdx) {\n throw new Error('No valid JSON found in Claude response')\n }\n\n const jsonStr = responseText.substring(startIdx, endIdx + 1)\n if (jsonStr.length > MAX_JSON_SIZE) {\n throw new Error('JSON content too large')\n }\n\n try {\n parsed = JSON.parse(jsonStr)\n } catch (parseError) {\n throw new Error(\n `Invalid JSON format: ${parseError instanceof Error ? parseError.message : 'Unknown error'}`,\n )\n }\n }\n\n // \u6DF1\u5EA6\u9A8C\u8BC1\u548C\u5B89\u5168\u6E05\u7406\n const identifier = String(parsed.identifier || '')\n .slice(0, 100)\n .trim()\n const whenToUse = String(parsed.whenToUse || '')\n .slice(0, MAX_FIELD_LENGTH)\n .trim()\n const agentSystemPrompt = String(parsed.systemPrompt || '')\n .slice(0, MAX_FIELD_LENGTH)\n .trim()\n\n // \u9A8C\u8BC1\u5FC5\u586B\u5B57\u6BB5\n if (!identifier || !whenToUse || !agentSystemPrompt) {\n throw new Error(\n 'Invalid response structure: missing required fields (identifier, whenToUse, systemPrompt)',\n )\n }\n\n // \u6E05\u7406\u5371\u9669\u5B57\u7B26\uFF08\u63A7\u5236\u5B57\u7B26\u548C\u975E\u6253\u5370\u5B57\u7B26\uFF09\n const sanitize = (str: string) => str.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, '')\n\n // \u9A8C\u8BC1identifier\u683C\u5F0F\uFF08\u53EA\u5141\u8BB8\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u8FDE\u5B57\u7B26\uFF09\n const cleanIdentifier = sanitize(identifier)\n if (!/^[a-zA-Z0-9-]+$/.test(cleanIdentifier)) {\n throw new Error(\n 'Invalid identifier format: only letters, numbers, and hyphens allowed',\n )\n }\n\n return {\n identifier: cleanIdentifier,\n whenToUse: sanitize(whenToUse),\n systemPrompt: sanitize(agentSystemPrompt),\n }\n } catch (error) {\n console.error('AI generation failed:', error)\n // Fallback to a reasonable default based on the prompt\n const fallbackId = prompt\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, '')\n .replace(/\\s+/g, '-')\n .slice(0, 30)\n\n return {\n identifier: fallbackId || 'custom-agent',\n whenToUse: `Use this agent when you need assistance with: ${prompt}`,\n systemPrompt: `You are a specialized assistant focused on helping with ${prompt}. Provide expert-level assistance in this domain.`,\n }\n }\n}\n\n// Comprehensive validation system\nfunction validateAgentType(\n agentType: string,\n existingAgents: AgentConfig[] = [],\n): {\n isValid: boolean\n errors: string[]\n warnings: string[]\n} {\n const errors: string[] = []\n const warnings: string[] = []\n\n if (!agentType) {\n errors.push('Agent type is required')\n return { isValid: false, errors, warnings }\n }\n\n if (!/^[a-zA-Z]/.test(agentType)) {\n errors.push('Agent type must start with a letter')\n }\n\n if (!/^[a-zA-Z0-9-]+$/.test(agentType)) {\n errors.push('Agent type can only contain letters, numbers, and hyphens')\n }\n\n if (agentType.length < 3) {\n errors.push('Agent type must be at least 3 characters long')\n }\n\n if (agentType.length > 50) {\n errors.push('Agent type must be less than 50 characters')\n }\n\n // Check for reserved names\n const reserved = ['help', 'exit', 'quit', 'agents', 'task']\n if (reserved.includes(agentType.toLowerCase())) {\n errors.push('This name is reserved')\n }\n\n // Check for duplicates\n const duplicate = existingAgents.find(a => a.agentType === agentType)\n if (duplicate) {\n errors.push(\n `An agent with this name already exists in ${duplicate.location}`,\n )\n }\n\n // Warnings\n if (agentType.includes('--')) {\n warnings.push('Consider avoiding consecutive hyphens')\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\nfunction validateAgentConfig(\n config: Partial<CreateState>,\n existingAgents: AgentConfig[] = [],\n): {\n isValid: boolean\n errors: string[]\n warnings: string[]\n} {\n const errors: string[] = []\n const warnings: string[] = []\n\n // Validate agent type\n if (config.agentType) {\n const typeValidation = validateAgentType(config.agentType, existingAgents)\n errors.push(...typeValidation.errors)\n warnings.push(...typeValidation.warnings)\n }\n\n // Validate description\n if (!config.whenToUse) {\n errors.push('Description is required')\n } else if (config.whenToUse.length < 10) {\n warnings.push(\n 'Description should be more descriptive (at least 10 characters)',\n )\n }\n\n // Validate system prompt\n if (!config.systemPrompt) {\n errors.push('System prompt is required')\n } else if (config.systemPrompt.length < 20) {\n warnings.push(\n 'System prompt might be too short for effective agent behavior',\n )\n }\n\n // Validate tools\n if (!config.selectedTools || config.selectedTools.length === 0) {\n warnings.push('No tools selected - agent will have limited capabilities')\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n }\n}\n\n// Enhanced UI components retained for Claude Code parity\n\ninterface HeaderProps {\n title: string\n subtitle?: string\n step?: number\n totalSteps?: number\n children?: React.ReactNode\n}\n\nfunction Header({ title, subtitle, step, totalSteps, children }: HeaderProps) {\n const theme = getTheme()\n return (\n <Box flexDirection=\"column\">\n <Text bold color={theme.primary}>\n {title}\n </Text>\n {subtitle && (\n <Text color={theme.secondary}>\n {step && totalSteps ? `Step ${step}/${totalSteps}: ` : ''}\n {subtitle}\n </Text>\n )}\n {children}\n </Box>\n )\n}\n\ninterface InstructionBarProps {\n instructions?: string\n}\n\nfunction InstructionBar({\n instructions = 'Press \u2191\u2193 to navigate \u00B7 Enter to select \u00B7 Esc to go back',\n}: InstructionBarProps) {\n const theme = getTheme()\n return (\n <Box marginTop={2}>\n <Box borderStyle=\"round\" borderColor={theme.secondary} paddingX={1}>\n <Text color={theme.secondary}>{instructions}</Text>\n </Box>\n </Box>\n )\n}\n\ninterface SelectListProps {\n options: Array<{ label: string; value: string }>\n selectedIndex: number\n onChange: (value: string) => void\n onCancel?: () => void\n numbered?: boolean\n}\n\nfunction SelectList({\n options,\n selectedIndex,\n onChange,\n onCancel,\n numbered = true,\n isActive = true,\n}: SelectListProps & { isActive?: boolean }) {\n const theme = getTheme()\n\n // Only listen when this component is active to prevent listener accumulation\n useInput(\n (input, key) => {\n if (key.escape && onCancel) {\n onCancel()\n } else if (key.return) {\n onChange(options[selectedIndex].value)\n }\n },\n { isActive },\n )\n\n return (\n <Box flexDirection=\"column\">\n {options.map((option, idx) => (\n <Box key={option.value}>\n <Text color={idx === selectedIndex ? theme.primary : undefined}>\n {idx === selectedIndex ? `${UI_ICONS.pointer} ` : ' '}\n {numbered ? `${idx + 1}. ` : ''}\n {option.label}\n </Text>\n </Box>\n ))}\n </Box>\n )\n}\n\n// Multiline text input component with better UX\ninterface MultilineTextInputProps {\n value: string\n onChange: (value: string) => void\n placeholder?: string\n onSubmit?: () => void\n focus?: boolean\n rows?: number\n error?: string | null\n}\n\nfunction MultilineTextInput({\n value,\n onChange,\n placeholder = '',\n onSubmit,\n focus = true,\n rows = 5,\n error,\n}: MultilineTextInputProps) {\n const theme = getTheme()\n const [internalValue, setInternalValue] = useState(value)\n const [cursorBlink, setCursorBlink] = useState(true)\n\n // Sync with external value changes\n useEffect(() => {\n setInternalValue(value)\n }, [value])\n\n // Cursor blink animation\n useEffect(() => {\n if (!focus) return undefined\n const timer = setInterval(() => {\n setCursorBlink(prev => !prev)\n }, 500)\n return () => clearInterval(timer)\n }, [focus])\n\n // Calculate display metrics\n const lines = internalValue.split('\\n')\n const lineCount = lines.length\n const charCount = internalValue.length\n const isEmpty = !internalValue.trim()\n const hasContent = !isEmpty\n\n // Format lines for display with word wrapping\n const formatLines = (text: string): string[] => {\n if (!text && placeholder) {\n return [placeholder]\n }\n const maxWidth = 70 // Maximum characters per line\n const result: string[] = []\n const textLines = text.split('\\n')\n\n textLines.forEach(line => {\n if (line.length <= maxWidth) {\n result.push(line)\n } else {\n // Word wrap long lines\n let remaining = line\n while (remaining.length > 0) {\n result.push(remaining.slice(0, maxWidth))\n remaining = remaining.slice(maxWidth)\n }\n }\n })\n\n return result.length > 0 ? result : ['']\n }\n\n const displayLines = formatLines(internalValue)\n const visibleLines = displayLines.slice(\n Math.max(0, displayLines.length - rows),\n )\n\n // Handle submit\n const handleSubmit = () => {\n if (internalValue.trim() && onSubmit) {\n onSubmit()\n }\n }\n\n return (\n <Box flexDirection=\"column\" width=\"100%\">\n {/* Modern card-style input container */}\n <Box flexDirection=\"column\">\n {/* Input area */}\n <Box\n borderStyle=\"round\"\n borderColor={focus ? theme.primary : 'gray'}\n paddingX={2}\n paddingY={1}\n minHeight={rows + 2}\n >\n <Box flexDirection=\"column\">\n {/* Use ink-text-input for better input handling */}\n <InkTextInput\n value={internalValue}\n onChange={val => {\n setInternalValue(val)\n onChange(val)\n }}\n onSubmit={handleSubmit}\n focus={focus}\n placeholder={placeholder}\n />\n\n {/* Show cursor indicator when focused */}\n {focus && cursorBlink && hasContent && (\n <Text color={theme.primary}>_</Text>\n )}\n </Box>\n </Box>\n\n {/* Status bar */}\n <Box marginTop={1} flexDirection=\"row\" justifyContent=\"space-between\">\n <Box>\n {hasContent ? (\n <Text color={theme.success}>\n \u2713 {charCount} chars \u2022 {lineCount} line\n {lineCount !== 1 ? 's' : ''}\n </Text>\n ) : (\n <Text color={SEMANTIC_COLORS.dim}>\u25CB Type to begin...</Text>\n )}\n </Box>\n <Box>\n {error ? (\n <Text color={theme.error}>\u26A0 {error}</Text>\n ) : (\n <Text color={SEMANTIC_COLORS.dim}>\n {hasContent ? 'Ready' : 'Waiting'}\n </Text>\n )}\n </Box>\n </Box>\n </Box>\n\n {/* Instructions */}\n <Box marginTop={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n Press Enter to submit \u00B7 Shift+Enter for new line\n </Text>\n </Box>\n </Box>\n )\n}\n\n// Loading spinner component\ninterface LoadingSpinnerProps {\n text?: string\n}\n\nfunction LoadingSpinner({ text }: LoadingSpinnerProps) {\n const theme = getTheme()\n const [frame, setFrame] = useState(0)\n\n useEffect(() => {\n const interval = setInterval(() => {\n setFrame(prev => (prev + 1) % UI_ICONS.loading.length)\n }, 100)\n return () => clearInterval(interval)\n }, [])\n\n return (\n <Box>\n <Text color={theme.primary}>{UI_ICONS.loading[frame]}</Text>\n {text && <Text color={theme.secondary}> {text}</Text>}\n </Box>\n )\n}\n\n// Complete agents UI with comprehensive state management\ninterface AgentsUIProps {\n onExit: (message?: string) => void\n}\n\nfunction AgentsUI({ onExit }: AgentsUIProps) {\n // Phase-based navigation (TabbedListView for main/agent-actions/edit-actions)\n const [phase, setPhase] = useState<AgentPhase>({ type: 'main' })\n const [activeTab, setActiveTab] = useState('all')\n const [searchQuery, setSearchQuery] = useState('')\n const [statusOverlay, setStatusOverlay] = useState<StatusOverlay | null>(null)\n\n // Legacy modeState for creation wizard steps (they still use setModeState)\n const [modeState, setModeState] = useState<ModeState>({\n mode: 'list-agents',\n location: 'all' as AgentLocation,\n })\n\n const [agents, setAgents] = useState<AgentConfig[]>([])\n const [changes, setChanges] = useState<string[]>([])\n const [refreshKey, setRefreshKey] = useState(0)\n const [loading, setLoading] = useState(true)\n const [tools, setTools] = useState<Tool[]>([])\n\n // Creation state using reducer for complex flow management\n const [createState, setCreateState] = useReducer(\n (state: CreateState, action: any) => {\n switch (action.type) {\n case 'RESET':\n return {\n location: null,\n agentType: '',\n method: null,\n generationPrompt: '',\n whenToUse: '',\n selectedTools: [],\n selectedModel: null,\n selectedColor: null,\n systemPrompt: '',\n isGenerating: false,\n wasGenerated: false,\n isAIGenerated: false,\n error: null,\n warnings: [],\n agentTypeCursor: 0,\n whenToUseCursor: 0,\n promptCursor: 0,\n generationPromptCursor: 0,\n }\n case 'SET_LOCATION':\n return { ...state, location: action.value }\n case 'SET_METHOD':\n return { ...state, method: action.value }\n case 'SET_AGENT_TYPE':\n return { ...state, agentType: action.value, error: null }\n case 'SET_GENERATION_PROMPT':\n return { ...state, generationPrompt: action.value }\n case 'SET_WHEN_TO_USE':\n return { ...state, whenToUse: action.value, error: null }\n case 'SET_SELECTED_TOOLS':\n return { ...state, selectedTools: action.value }\n case 'SET_SELECTED_MODEL':\n return { ...state, selectedModel: action.value }\n case 'SET_SELECTED_COLOR':\n return { ...state, selectedColor: action.value }\n case 'SET_SYSTEM_PROMPT':\n return { ...state, systemPrompt: action.value }\n case 'SET_IS_GENERATING':\n return { ...state, isGenerating: action.value }\n case 'SET_WAS_GENERATED':\n return { ...state, wasGenerated: action.value }\n case 'SET_IS_AI_GENERATED':\n return { ...state, isAIGenerated: action.value }\n case 'SET_ERROR':\n return { ...state, error: action.value }\n case 'SET_WARNINGS':\n return { ...state, warnings: action.value }\n case 'SET_CURSOR':\n return { ...state, [action.field]: action.value }\n default:\n return state\n }\n },\n {\n location: null,\n agentType: '',\n method: null,\n generationPrompt: '',\n whenToUse: '',\n selectedTools: [],\n selectedModel: null,\n selectedColor: null,\n systemPrompt: '',\n isGenerating: false,\n wasGenerated: false,\n isAIGenerated: false,\n error: null,\n warnings: [],\n agentTypeCursor: 0,\n whenToUseCursor: 0,\n promptCursor: 0,\n generationPromptCursor: 0,\n },\n )\n\n // Load agents and tools dynamically\n const loadAgents = useCallback(async () => {\n setLoading(true)\n clearAgentCache()\n\n const abortController = new AbortController()\n\n try {\n const result = await getActiveAgents()\n\n if (abortController.signal.aborted) {\n return undefined\n }\n\n setAgents(result)\n\n // Load available tools dynamically from tool registry\n const availableTools: Tool[] = []\n\n // Core built-in tools\n let coreTools = [\n { name: 'Read', description: 'Read files from filesystem' },\n { name: 'Write', description: 'Write files to filesystem' },\n { name: 'Edit', description: 'Edit existing files' },\n { name: 'MultiEdit', description: 'Make multiple edits to files' },\n { name: 'NotebookEdit', description: 'Edit Jupyter notebooks' },\n { name: 'Bash', description: 'Execute bash commands' },\n { name: 'Glob', description: 'Find files matching patterns' },\n { name: 'Grep', description: 'Search file contents' },\n { name: 'LS', description: 'List directory contents' },\n { name: 'WebFetch', description: 'Fetch web content' },\n { name: 'WebSearch', description: 'Search the web' },\n { name: 'TodoWrite', description: 'Manage task lists' },\n ]\n // Hide agent orchestration/self-control tools for subagent configs\n coreTools = coreTools.filter(\n t => t.name !== 'Task' && t.name !== 'ExitPlanMode',\n )\n\n availableTools.push(...coreTools)\n\n // Try to load MCP tools dynamically\n try {\n const mcpTools = await getMCPTools()\n if (Array.isArray(mcpTools) && mcpTools.length > 0) {\n availableTools.push(...mcpTools)\n }\n } catch (error) {\n console.warn('Failed to load MCP tools:', error)\n }\n\n if (!abortController.signal.aborted) {\n setTools(availableTools)\n }\n } catch (error) {\n if (!abortController.signal.aborted) {\n console.error('Failed to load agents:', error)\n }\n } finally {\n if (!abortController.signal.aborted) {\n setLoading(false)\n }\n }\n\n return () => abortController.abort()\n }, [])\n\n useEffect(() => {\n let cleanup: (() => void) | undefined\n\n const load = async () => {\n cleanup = await loadAgents()\n }\n\n load()\n\n return () => {\n if (cleanup) {\n cleanup()\n }\n }\n }, [refreshKey, loadAgents])\n\n // Reload agents when returning to main phase\n useEffect(() => {\n if (phase.type === 'main') {\n setSearchQuery('')\n }\n }, [phase])\n\n // Build active agent map for override detection\n const activeMap = useMemo(() => {\n const map = new Map<string, AgentConfig>()\n agents.forEach(a => map.set(a.agentType, a))\n return map\n }, [agents])\n\n const checkOverride = useCallback(\n (agent: AgentConfig) => {\n const active = activeMap.get(agent.agentType)\n const isOverridden = !!(active && active.location !== agent.location)\n return {\n isOverridden,\n overriddenBy: isOverridden ? active.location : null,\n }\n },\n [activeMap],\n )\n\n // Compute tabs/items/title based on current phase\n const { tabs, items, title, footerHint, searchEnabled } = useMemo(() => {\n switch (phase.type) {\n case 'main': {\n const allAgents = agents\n const customAgents = allAgents.filter(a => a.location !== 'built-in')\n\n const mainTabs: TabDefinition[] = [\n { id: 'all', label: 'All', badge: customAgents.length },\n {\n id: 'plugin',\n label: 'Plugin',\n badge: customAgents.filter(a => a.location === 'plugin').length,\n },\n {\n id: 'user',\n label: 'Personal',\n badge: customAgents.filter(a => a.location === 'user').length,\n },\n {\n id: 'project',\n label: 'Project',\n badge: customAgents.filter(a => a.location === 'project').length,\n },\n ]\n\n let mainItems: ListItem[] = []\n\n // Add \"Create new agent\" item at top\n mainItems.push({\n id: 'create-new',\n label: '+ Create new agent',\n description: 'Create a new specialized agent',\n })\n\n // Filter agents by tab\n const displayAgents =\n activeTab === 'all'\n ? customAgents\n : customAgents.filter(a => a.location === activeTab)\n\n for (const agent of displayAgents) {\n const { isOverridden, overriddenBy } = checkOverride(agent)\n const agentModel = (agent as any).model || null\n const modelDisplay = getDisplayModelName(agentModel)\n\n const locationLabel =\n agent.location === 'plugin'\n ? 'Plugin'\n : agent.location === 'user'\n ? 'Personal'\n : agent.location === 'project'\n ? 'Project'\n : agent.location\n\n mainItems.push({\n id: `${agent.agentType}-${agent.location}`,\n label: agent.agentType,\n description: agent.whenToUse || agent.description || '',\n category: locationLabel,\n metadata: modelDisplay,\n status: isOverridden ? 'disabled' : 'enabled',\n data: agent,\n })\n }\n\n return {\n tabs: mainTabs,\n items: mainItems,\n title: 'Agents',\n footerHint:\n '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Tab/\u2190\u2192 Switch \u00B7 / Search \u00B7 Esc Close',\n searchEnabled: true,\n }\n }\n\n case 'agent-actions': {\n const agent = phase.agent\n const isBuiltIn = agent.location === 'built-in'\n\n const actionItems: ListItem[] = [\n {\n id: 'view',\n label: 'View details',\n description: 'Show agent configuration',\n },\n ]\n\n if (!isBuiltIn) {\n actionItems.push({\n id: 'edit',\n label: 'Edit agent',\n description: 'Modify agent settings',\n })\n actionItems.push({\n id: 'delete',\n label: 'Delete agent',\n description: 'Remove this agent',\n })\n }\n\n actionItems.push({\n id: 'back',\n label: 'Back',\n description: 'Return to agent list',\n })\n\n return {\n tabs: [{ id: 'actions', label: 'Actions' }] as TabDefinition[],\n items: actionItems,\n title: agent.agentType,\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n }\n }\n\n case 'edit-actions': {\n const agent = phase.agent\n\n const editItems: ListItem[] = [\n {\n id: 'open-editor',\n label: 'Open in editor',\n description: 'Edit the agent file directly',\n },\n {\n id: 'edit-tools',\n label: 'Edit tools',\n description: 'Change available tools',\n },\n {\n id: 'edit-model',\n label: 'Edit model',\n description: 'Change the model',\n },\n {\n id: 'edit-color',\n label: 'Edit color',\n description: 'Change the color tag',\n },\n {\n id: 'back',\n label: 'Back',\n description: 'Return to agent actions',\n },\n ]\n\n return {\n tabs: [{ id: 'edit', label: 'Edit' }] as TabDefinition[],\n items: editItems,\n title: `Edit: ${agent.agentType}`,\n footerHint: '\u2191\u2193 Navigate \u00B7 Enter Select \u00B7 Esc Back',\n searchEnabled: false,\n }\n }\n\n default:\n return {\n tabs: [{ id: 'all', label: 'All' }] as TabDefinition[],\n items: [] as ListItem[],\n title: 'Agents',\n footerHint: '',\n searchEnabled: false,\n }\n }\n }, [phase, activeTab, agents, checkOverride])\n\n // Handle tab change\n const handleTabChange = useCallback((tabId: string) => {\n setActiveTab(tabId)\n setSearchQuery('')\n }, [])\n\n // Handle status overlay dismiss\n const handleStatusDismiss = useCallback(() => {\n setStatusOverlay(null)\n setPhase({ type: 'main' })\n }, [])\n\n // Handle back navigation\n const handleBack = useCallback(() => {\n if (statusOverlay && statusOverlay.type !== 'loading') {\n handleStatusDismiss()\n return\n }\n switch (phase.type) {\n case 'main': {\n const changesSummary =\n changes.length > 0\n ? `Agent changes:\\n${changes.join('\\n')}`\n : undefined\n onExit(changesSummary)\n break\n }\n case 'agent-actions':\n setPhase({ type: 'main' })\n break\n case 'edit-actions':\n setPhase({ type: 'agent-actions', agent: phase.agent })\n break\n default:\n setPhase({ type: 'main' })\n break\n }\n }, [phase, statusOverlay, changes, onExit, handleStatusDismiss])\n\n // Handle close\n const handleClose = useCallback(() => {\n if (statusOverlay && statusOverlay.type !== 'loading') {\n handleStatusDismiss()\n return\n }\n if (phase.type === 'main') {\n const changesSummary =\n changes.length > 0 ? `Agent changes:\\n${changes.join('\\n')}` : undefined\n onExit(changesSummary)\n } else {\n setPhase({ type: 'main' })\n setSearchQuery('')\n }\n }, [phase, statusOverlay, changes, onExit, handleStatusDismiss])\n\n // Handle item selection\n const handleSelect = useCallback(\n async (item: ListItem) => {\n switch (phase.type) {\n case 'main': {\n if (item.id === 'create-new') {\n setCreateState({ type: 'RESET' })\n setModeState({ mode: 'create-location' })\n setPhase({ type: 'create', step: { mode: 'create-location' } })\n return\n }\n const agent = item.data as AgentConfig\n if (agent) {\n setPhase({ type: 'agent-actions', agent })\n }\n break\n }\n\n case 'agent-actions': {\n const agent = phase.agent\n if (item.id === 'back') {\n setPhase({ type: 'main' })\n return\n }\n if (item.id === 'view') {\n try {\n viewInPager(agent)\n // Refresh agent data in case anything changed externally\n setRefreshKey(prev => prev + 1)\n } catch (err) {\n setStatusOverlay({\n type: 'error',\n message: `Failed to open pager: ${err instanceof Error ? err.message : String(err)}`,\n })\n }\n } else if (item.id === 'edit') {\n setPhase({ type: 'edit-actions', agent })\n } else if (item.id === 'delete') {\n setPhase({ type: 'delete-confirm', agent })\n }\n break\n }\n\n case 'edit-actions': {\n const agent = phase.agent\n if (item.id === 'back') {\n setPhase({ type: 'agent-actions', agent })\n return\n }\n if (item.id === 'open-editor') {\n try {\n const filePath = getAgentFilePath(agent)\n openInEditor(filePath) // sync \u2014 blocks until editor exits\n // Reload agents in case the file was modified\n clearAgentCache()\n const reloaded = await getActiveAgents()\n setAgents(reloaded)\n const updated = reloaded.find(\n a => a.agentType === agent.agentType,\n )\n if (updated) {\n setPhase({ type: 'edit-actions', agent: updated })\n }\n setStatusOverlay({\n type: 'success',\n message: 'Editor closed',\n })\n } catch (err) {\n setStatusOverlay({\n type: 'error',\n message: `Failed to open editor: ${err instanceof Error ? err.message : String(err)}`,\n })\n }\n } else if (item.id === 'edit-tools') {\n setPhase({ type: 'edit-tools', agent })\n } else if (item.id === 'edit-model') {\n setPhase({ type: 'edit-model', agent })\n } else if (item.id === 'edit-color') {\n setPhase({ type: 'edit-color', agent })\n }\n break\n }\n }\n },\n [phase],\n )\n\n // Callbacks for child components that return to phase navigation\n const handleAgentCreated = useCallback((message: string) => {\n setChanges(prev => [...prev, message])\n setRefreshKey(prev => prev + 1)\n setPhase({ type: 'main' })\n }, [])\n\n const handleAgentDeleted = useCallback((message: string) => {\n setChanges(prev => [...prev, message])\n setRefreshKey(prev => prev + 1)\n setPhase({ type: 'main' })\n }, [])\n\n const handleAgentUpdated = useCallback(\n (message: string, updated: AgentConfig) => {\n setChanges(prev => [...prev, message])\n setRefreshKey(prev => prev + 1)\n setPhase({ type: 'agent-actions', agent: updated })\n },\n [],\n )\n\n // Bridge: creation wizard uses setModeState; intercept transitions back to list\n const wizardSetModeState = useCallback((state: ModeState) => {\n if (state.mode === 'list-agents') {\n setPhase({ type: 'main' })\n return\n }\n setModeState(state)\n }, [])\n\n // Render custom phases (creation wizard, view, edit steps, delete confirm)\n if (phase.type === 'create') {\n // Route based on modeState which the wizard steps use\n switch (modeState.mode) {\n case 'create-location':\n return (\n <LocationSelect\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-method':\n return (\n <MethodSelect\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-generate':\n return (\n <GenerateStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n existingAgents={agents}\n />\n )\n case 'create-type':\n return (\n <TypeStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n existingAgents={agents}\n />\n )\n case 'create-description':\n return (\n <DescriptionStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-tools':\n return (\n <ToolsStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n tools={tools}\n />\n )\n case 'create-model':\n return (\n <ModelStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-color':\n return (\n <ColorStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-prompt':\n return (\n <PromptStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n />\n )\n case 'create-confirm':\n return (\n <ConfirmStep\n createState={createState}\n setCreateState={setCreateState}\n setModeState={wizardSetModeState}\n tools={tools}\n onAgentCreated={handleAgentCreated}\n />\n )\n default:\n // Fallback: wizard navigated to list, return to main\n setPhase({ type: 'main' })\n return null\n }\n }\n\n if (phase.type === 'edit-tools') {\n return (\n <EditToolsStep\n agent={phase.agent}\n tools={tools}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'edit-actions', agent: phase.agent })\n }}\n onAgentUpdated={handleAgentUpdated}\n />\n )\n }\n\n if (phase.type === 'edit-model') {\n return (\n <EditModelStep\n agent={phase.agent}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'edit-actions', agent: phase.agent })\n }}\n onAgentUpdated={handleAgentUpdated}\n />\n )\n }\n\n if (phase.type === 'edit-color') {\n return (\n <EditColorStep\n agent={phase.agent}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'edit-actions', agent: phase.agent })\n }}\n onAgentUpdated={handleAgentUpdated}\n />\n )\n }\n\n if (phase.type === 'delete-confirm') {\n return (\n <DeleteConfirm\n agent={phase.agent}\n setModeState={(state: ModeState) => {\n clearScreen()\n setPhase({ type: 'agent-actions', agent: phase.agent })\n }}\n onAgentDeleted={handleAgentDeleted}\n />\n )\n }\n\n // TabbedListView phases: main, agent-actions, edit-actions\n const currentTab =\n phase.type === 'main'\n ? activeTab\n : phase.type === 'agent-actions'\n ? 'actions'\n : 'edit'\n\n return (\n <TabbedListView\n title={title}\n tabs={tabs}\n activeTab={currentTab}\n onTabChange={handleTabChange}\n items={items}\n searchEnabled={searchEnabled}\n searchQuery={searchQuery}\n onSearchChange={setSearchQuery}\n onSelect={handleSelect}\n onClose={handleClose}\n onBack={handleBack}\n statusOverlay={statusOverlay}\n footerHint={footerHint}\n groupByCategory={phase.type === 'main' && activeTab === 'all'}\n isLoading={loading}\n loadingText=\"Loading agents...\"\n emptyText={\n phase.type === 'main'\n ? 'No agents found. Select \"+ Create new agent\" to get started.'\n : 'No items'\n }\n statusDismissHint=\"Enter Continue \u00B7 Esc Back\"\n />\n )\n}\n\n// (AgentListView, AgentMenu, EditMenu removed \u2014 replaced by TabbedListView phases in AgentsUI)\n\n// Common interface for creation step props\ninterface StepProps {\n createState: CreateState\n setCreateState: React.Dispatch<any>\n setModeState: (state: ModeState) => void\n}\n\n// Step 3: AI Generation\ninterface GenerateStepProps extends StepProps {\n existingAgents: AgentConfig[]\n}\n\nfunction GenerateStep({\n createState,\n setCreateState,\n setModeState,\n existingAgents,\n}: GenerateStepProps) {\n const handleSubmit = async () => {\n if (createState.generationPrompt.trim()) {\n setCreateState({ type: 'SET_IS_GENERATING', value: true })\n setCreateState({ type: 'SET_ERROR', value: null })\n\n try {\n const generated = await generateAgentWithClaude(\n createState.generationPrompt,\n )\n\n // Validate the generated identifier doesn't conflict\n const validation = validateAgentType(\n generated.identifier,\n existingAgents,\n )\n let finalIdentifier = generated.identifier\n\n if (!validation.isValid) {\n // Add a suffix to make it unique\n let counter = 1\n while (true) {\n const testId = `${generated.identifier}-${counter}`\n const testValidation = validateAgentType(testId, existingAgents)\n if (testValidation.isValid) {\n finalIdentifier = testId\n break\n }\n counter++\n if (counter > 10) {\n finalIdentifier = `custom-agent-${Date.now()}`\n break\n }\n }\n }\n\n setCreateState({ type: 'SET_AGENT_TYPE', value: finalIdentifier })\n setCreateState({ type: 'SET_WHEN_TO_USE', value: generated.whenToUse })\n setCreateState({\n type: 'SET_SYSTEM_PROMPT',\n value: generated.systemPrompt,\n })\n setCreateState({ type: 'SET_WAS_GENERATED', value: true })\n setCreateState({ type: 'SET_IS_GENERATING', value: false })\n setModeState({ mode: 'create-tools', location: createState.location })\n } catch (error) {\n console.error('Generation failed:', error)\n setCreateState({\n type: 'SET_ERROR',\n value:\n 'Failed to generate agent. Please try again or use manual configuration.',\n })\n setCreateState({ type: 'SET_IS_GENERATING', value: false })\n }\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"\u2728 New Agent\"\n subtitle=\"What should it do?\"\n step={2}\n totalSteps={8}\n >\n <Box marginTop={1}>\n {createState.isGenerating ? (\n <Box flexDirection=\"column\">\n <Text color={SEMANTIC_COLORS.dim}>\n {createState.generationPrompt}\n </Text>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Generating agent configuration...\" />\n </Box>\n </Box>\n ) : (\n <MultilineTextInput\n value={createState.generationPrompt}\n onChange={value =>\n setCreateState({ type: 'SET_GENERATION_PROMPT', value })\n }\n placeholder=\"An expert that reviews pull requests for best practices, security issues, and suggests improvements...\"\n onSubmit={handleSubmit}\n error={createState.error}\n rows={3}\n />\n )}\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 4: Manual type input (for manual method)\ninterface TypeStepProps extends StepProps {\n existingAgents: AgentConfig[]\n}\n\nfunction TypeStep({\n createState,\n setCreateState,\n setModeState,\n existingAgents,\n}: TypeStepProps) {\n const handleSubmit = () => {\n const validation = validateAgentType(createState.agentType, existingAgents)\n if (validation.isValid) {\n setModeState({ mode: 'create-prompt', location: createState.location })\n } else {\n setCreateState({ type: 'SET_ERROR', value: validation.errors[0] })\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"Enter agent identifier\"\n step={3}\n totalSteps={8}\n >\n <Box marginTop={1}>\n <InkTextInput\n value={createState.agentType}\n onChange={value =>\n setCreateState({ type: 'SET_AGENT_TYPE', value })\n }\n placeholder=\"e.g. code-reviewer, tech-lead\"\n onSubmit={handleSubmit}\n />\n {createState.error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u26A0 {createState.error}</Text>\n </Box>\n )}\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 5: Description input\nfunction DescriptionStep({\n createState,\n setCreateState,\n setModeState,\n}: StepProps) {\n const handleSubmit = () => {\n if (createState.whenToUse.trim()) {\n setModeState({ mode: 'create-tools', location: createState.location })\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"Describe when to use this agent\"\n step={5}\n totalSteps={8}\n >\n <Box marginTop={1}>\n <MultilineTextInput\n value={createState.whenToUse}\n onChange={value =>\n setCreateState({ type: 'SET_WHEN_TO_USE', value })\n }\n placeholder=\"Use this agent when you need to review code for best practices, security issues...\"\n onSubmit={handleSubmit}\n error={createState.error}\n rows={4}\n />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 6: Tools selection\ninterface ToolsStepProps extends StepProps {\n tools: Tool[]\n}\n\nfunction ToolsStep({\n createState,\n setCreateState,\n setModeState,\n tools,\n}: ToolsStepProps) {\n const [selectedIndex, setSelectedIndex] = useState(0)\n // Default to all tools selected initially\n const initialSelection =\n createState.selectedTools.length > 0\n ? new Set(createState.selectedTools)\n : new Set(tools.map(t => t.name)) // Select all tools by default\n const [selectedTools, setSelectedTools] =\n useState<Set<string>>(initialSelection)\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [selectedCategory, setSelectedCategory] = useState<\n keyof typeof TOOL_CATEGORIES | 'mcp' | 'all'\n >('all')\n\n // Categorize tools\n const categorizedTools = useMemo(() => {\n const categories: Record<string, Tool[]> = {\n read: [],\n edit: [],\n execution: [],\n web: [],\n mcp: [],\n other: [],\n }\n\n tools.forEach(tool => {\n let categorized = false\n\n // Check MCP tools first\n if (tool.name.startsWith('mcp__')) {\n categories.mcp.push(tool)\n categorized = true\n } else {\n // Check built-in categories\n for (const [category, toolNames] of Object.entries(TOOL_CATEGORIES)) {\n if (Array.isArray(toolNames) && toolNames.includes(tool.name)) {\n categories[category as keyof typeof categories]?.push(tool)\n categorized = true\n break\n }\n }\n }\n\n if (!categorized) {\n categories.other.push(tool)\n }\n })\n\n return categories\n }, [tools])\n\n const displayTools = useMemo(() => {\n if (selectedCategory === 'all') {\n return tools\n }\n return categorizedTools[selectedCategory] || []\n }, [selectedCategory, tools, categorizedTools])\n\n const allSelected = selectedTools.size === tools.length && tools.length > 0\n const categoryOptions = [\n { id: 'all', label: `All (${tools.length})` },\n { id: 'read', label: `Read (${categorizedTools.read.length})` },\n { id: 'edit', label: `Edit (${categorizedTools.edit.length})` },\n {\n id: 'execution',\n label: `Execution (${categorizedTools.execution.length})`,\n },\n { id: 'web', label: `Web (${categorizedTools.web.length})` },\n { id: 'mcp', label: `MCP (${categorizedTools.mcp.length})` },\n { id: 'other', label: `Other (${categorizedTools.other.length})` },\n ].filter(cat => cat.id === 'all' || categorizedTools[cat.id]?.length > 0)\n\n // Calculate category selections\n const readSelected = categorizedTools.read.every(tool =>\n selectedTools.has(tool.name),\n )\n const editSelected = categorizedTools.edit.every(tool =>\n selectedTools.has(tool.name),\n )\n const execSelected = categorizedTools.execution.every(tool =>\n selectedTools.has(tool.name),\n )\n const webSelected = categorizedTools.web.every(tool =>\n selectedTools.has(tool.name),\n )\n\n const options: Array<{\n id: string\n label: string\n isContinue?: boolean\n isAll?: boolean\n isTool?: boolean\n isCategory?: boolean\n isAdvancedToggle?: boolean\n isSeparator?: boolean\n }> = [\n { id: 'continue', label: 'Save', isContinue: true },\n {\n id: 'separator1',\n label: '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500',\n isSeparator: true,\n },\n {\n id: 'all',\n label: `${allSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} All tools`,\n isAll: true,\n },\n {\n id: 'read',\n label: `${readSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Read-only tools`,\n isCategory: true,\n },\n {\n id: 'edit',\n label: `${editSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Edit tools`,\n isCategory: true,\n },\n {\n id: 'execution',\n label: `${execSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Execution tools`,\n isCategory: true,\n },\n {\n id: 'separator2',\n label: '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500',\n isSeparator: true,\n },\n {\n id: 'advanced',\n label: `[ ${showAdvanced ? 'Hide' : 'Show'} advanced options ]`,\n isAdvancedToggle: true,\n },\n ...(showAdvanced\n ? displayTools.map(tool => ({\n id: tool.name,\n label: `${selectedTools.has(tool.name) ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} ${tool.name}`,\n isTool: true,\n }))\n : []),\n ]\n\n const handleSelect = () => {\n const option = options[selectedIndex] as any // Type assertion for union type\n if (!option) return\n if (option.isSeparator) return\n\n if (option.isContinue) {\n const result = allSelected ? ['*'] : Array.from(selectedTools)\n setCreateState({ type: 'SET_SELECTED_TOOLS', value: result })\n setModeState({ mode: 'create-model', location: createState.location })\n } else if (option.isAdvancedToggle) {\n setShowAdvanced(!showAdvanced)\n } else if (option.isAll) {\n if (allSelected) {\n setSelectedTools(new Set())\n } else {\n setSelectedTools(new Set(tools.map(t => t.name)))\n }\n } else if (option.isCategory) {\n const categoryName = option.id as keyof typeof categorizedTools\n const categoryTools = categorizedTools[categoryName] || []\n const newSelected = new Set(selectedTools)\n\n const categorySelected = categoryTools.every(tool =>\n selectedTools.has(tool.name),\n )\n if (categorySelected) {\n // Unselect all tools in this category\n categoryTools.forEach(tool => newSelected.delete(tool.name))\n } else {\n // Select all tools in this category\n categoryTools.forEach(tool => newSelected.add(tool.name))\n }\n setSelectedTools(newSelected)\n } else if (option.isTool) {\n const newSelected = new Set(selectedTools)\n if (newSelected.has(option.id)) {\n newSelected.delete(option.id)\n } else {\n newSelected.add(option.id)\n }\n setSelectedTools(newSelected)\n }\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleSelect()\n } else if (key.upArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev > 0 ? prev - 1 : options.length - 1\n // Skip separators when going up\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex > 0 ? newIndex - 1 : options.length - 1\n }\n return newIndex\n })\n } else if (key.downArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev < options.length - 1 ? prev + 1 : 0\n // Skip separators when going down\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex < options.length - 1 ? newIndex + 1 : 0\n }\n return newIndex\n })\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83D\uDD27 Tool Permissions\" subtitle=\"\" step={3} totalSteps={5}>\n <Box flexDirection=\"column\" marginTop={1}>\n {options.map((option, idx) => {\n const isSelected = idx === selectedIndex\n const isContinue = option.isContinue\n const isAdvancedToggle = option.isAdvancedToggle\n const isSeparator = option.isSeparator\n\n return (\n <Box key={option.id}>\n <Text\n color={\n isSelected && !isSeparator\n ? 'cyan'\n : isSeparator\n ? SEMANTIC_COLORS.dim\n : undefined\n }\n bold={isContinue}\n >\n {isSeparator\n ? option.label\n : `${isSelected ? `${UI_ICONS.pointer} ` : ' '}${isContinue || isAdvancedToggle ? `${option.label}` : option.label}`}\n </Text>\n {option.isTool &&\n isSelected &&\n tools.find(t => t.name === option.id)?.description && (\n <Box marginLeft={4}>\n <Text color={SEMANTIC_COLORS.dim}>\n {tools.find(t => t.name === option.id)?.description}\n </Text>\n </Box>\n )}\n </Box>\n )\n })}\n\n <Box marginTop={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n {allSelected\n ? 'All tools selected'\n : `${selectedTools.size} of ${tools.length} tools selected`}\n </Text>\n {selectedCategory !== 'all' && (\n <Text color={SEMANTIC_COLORS.dim}>\n Filtering: {selectedCategory} tools\n </Text>\n )}\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Toggle \u2022 Esc Back\" />\n </Box>\n )\n}\n\n// Step 6: Model selection (clean design like /models)\nfunction ModelStep({ createState, setCreateState, setModeState }: StepProps) {\n const theme = getTheme()\n const manager = getModelManager()\n const profiles = manager.getActiveModelProfiles()\n\n // Group models by provider\n const groupedModels = profiles.reduce((acc: any, profile: any) => {\n const provider = profile.provider || 'Default'\n if (!acc[provider]) acc[provider] = []\n acc[provider].push(profile)\n return acc\n }, {})\n\n // Flatten with inherit option\n const modelOptions = [\n {\n id: null,\n name: '\u25C8 Inherit from parent',\n provider: 'System',\n modelName: 'default',\n },\n ...Object.entries(groupedModels).flatMap(([provider, models]: any) =>\n models.map((p: any) => ({\n id: p.modelName,\n name: p.name,\n provider: provider,\n modelName: p.modelName,\n })),\n ),\n ]\n\n const [selectedIndex, setSelectedIndex] = useState(() => {\n const idx = modelOptions.findIndex(m => m.id === createState.selectedModel)\n return idx >= 0 ? idx : 0\n })\n\n const handleSelect = (modelId: string | null) => {\n setCreateState({ type: 'SET_SELECTED_MODEL', value: modelId })\n setModeState({ mode: 'create-color', location: createState.location })\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleSelect(modelOptions[selectedIndex].id)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : modelOptions.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < modelOptions.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83E\uDD16 Select Model\" subtitle=\"\" step={4} totalSteps={5}>\n <Box marginTop={1} flexDirection=\"column\">\n {modelOptions.map((model, index) => {\n const isSelected = index === selectedIndex\n const isInherit = model.id === null\n\n return (\n <Box key={model.id || 'inherit'} marginBottom={0}>\n <Box flexDirection=\"row\" gap={1}>\n <Text color={isSelected ? theme.primary : undefined}>\n {isSelected ? UI_ICONS.pointer : ' '}\n </Text>\n <Box flexDirection=\"column\" flexGrow={1}>\n <Box flexDirection=\"row\" gap={1}>\n <Text\n bold={isInherit}\n color={isSelected ? theme.primary : undefined}\n >\n {model.name}\n </Text>\n {!isInherit && (\n <Text color={SEMANTIC_COLORS.dim}>\n {model.provider} \u2022 {model.modelName}\n </Text>\n )}\n </Box>\n </Box>\n </Box>\n </Box>\n )\n })}\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Select\" />\n </Box>\n )\n}\n\n// Step 7: Color selection (using hex colors for display)\nfunction ColorStep({ createState, setCreateState, setModeState }: StepProps) {\n const theme = getTheme()\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n // Color options without red/green due to display issues\n const colors = [\n { label: 'Default', value: null, displayColor: null },\n { label: 'Yellow', value: 'yellow', displayColor: 'yellow' },\n { label: 'Blue', value: 'blue', displayColor: 'blue' },\n { label: 'Magenta', value: 'magenta', displayColor: 'magenta' },\n { label: 'Cyan', value: 'cyan', displayColor: 'cyan' },\n { label: 'Gray', value: 'gray', displayColor: 'gray' },\n { label: 'White', value: 'white', displayColor: 'white' },\n ]\n\n const handleSelect = (value: string | null) => {\n setCreateState({ type: 'SET_SELECTED_COLOR', value: value })\n setModeState({ mode: 'create-confirm', location: createState.location })\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleSelect(colors[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : colors.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < colors.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83C\uDFA8 Color Theme\" subtitle=\"\" step={5} totalSteps={5}>\n <Box marginTop={1} flexDirection=\"column\">\n <Box marginBottom={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n Choose how your agent appears in the list:\n </Text>\n </Box>\n {colors.map((color, idx) => {\n const isSelected = idx === selectedIndex\n return (\n <Box key={idx} flexDirection=\"row\">\n <Text color={isSelected ? theme.primary : undefined}>\n {isSelected ? '\u276F ' : ' '}\n </Text>\n <Box minWidth={12}>\n <Text\n bold={isSelected}\n color={color.displayColor || undefined}\n >\n {color.label}\n </Text>\n </Box>\n </Box>\n )\n })}\n <Box marginTop={1} paddingLeft={2}>\n <Text>Preview: </Text>\n <Text bold color={colors[selectedIndex].displayColor || undefined}>\n {createState.agentType || 'your-agent'}\n </Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Select\" />\n </Box>\n )\n}\n\n// Step 8: System prompt\nfunction PromptStep({ createState, setCreateState, setModeState }: StepProps) {\n const handleSubmit = () => {\n if (createState.systemPrompt.trim()) {\n setModeState({\n mode: 'create-description',\n location: createState.location,\n })\n }\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"System prompt\"\n step={4}\n totalSteps={8}\n >\n <Box marginTop={1}>\n <MultilineTextInput\n value={createState.systemPrompt}\n onChange={value =>\n setCreateState({ type: 'SET_SYSTEM_PROMPT', value })\n }\n placeholder=\"You are a helpful assistant that specializes in...\"\n onSubmit={handleSubmit}\n error={createState.error}\n rows={5}\n />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// Step 9: Confirmation\ninterface ConfirmStepProps extends StepProps {\n tools: Tool[]\n onAgentCreated: (message: string) => void\n}\n\nfunction ConfirmStep({\n createState,\n setCreateState,\n setModeState,\n tools,\n onAgentCreated,\n}: ConfirmStepProps) {\n const [isCreating, setIsCreating] = useState(false)\n const theme = getTheme()\n\n const handleConfirm = async () => {\n setIsCreating(true)\n try {\n await saveAgent(\n createState.location!,\n createState.agentType,\n createState.whenToUse,\n createState.selectedTools,\n createState.systemPrompt,\n createState.selectedModel,\n createState.selectedColor || undefined,\n )\n onAgentCreated(`Created agent: ${createState.agentType}`)\n } catch (error) {\n setCreateState({ type: 'SET_ERROR', value: (error as Error).message })\n setIsCreating(false)\n }\n }\n\n const validation = validateAgentConfig(createState)\n const toolNames = createState.selectedTools.includes('*')\n ? 'All tools'\n : createState.selectedTools.length > 0\n ? createState.selectedTools.join(', ')\n : 'No tools'\n\n const handleEditInEditor = async () => {\n const filePath =\n createState.location === 'project'\n ? path.join(\n process.cwd(),\n '.minto',\n 'agents',\n `${createState.agentType}.md`,\n )\n : path.join(\n os.homedir(),\n '.minto',\n 'agents',\n `${createState.agentType}.md`,\n )\n\n try {\n // First, save the agent file\n await saveAgent(\n createState.location!,\n createState.agentType,\n createState.whenToUse,\n createState.selectedTools,\n createState.systemPrompt,\n createState.selectedModel,\n createState.selectedColor || undefined,\n )\n\n // Then open it in editor\n const command =\n process.platform === 'win32'\n ? 'start'\n : process.platform === 'darwin'\n ? 'open'\n : 'xdg-open'\n await execAsync(`${command} \"${filePath}\"`)\n onAgentCreated(`Created agent: ${createState.agentType}`)\n } catch (error) {\n setCreateState({ type: 'SET_ERROR', value: (error as Error).message })\n }\n }\n\n useInput((input, key) => {\n if (isCreating) return\n\n if ((key.return || input === 's') && !isCreating) {\n handleConfirm()\n } else if (input === 'e') {\n handleEditInEditor()\n } else if (key.escape) {\n setModeState({ mode: 'create-color', location: createState.location! })\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\u2705 Review & Create\" subtitle=\"\">\n <Box flexDirection=\"column\" marginTop={1}>\n <Box marginBottom={1}>\n <Text bold color={theme.primary}>\n \uD83D\uDCCB Configuration\n </Text>\n </Box>\n\n <Box flexDirection=\"column\" gap={0}>\n <Text>\n \u2022 <Text bold>Agent ID:</Text> {createState.agentType}\n </Text>\n <Text>\n \u2022 <Text bold>Location:</Text>{' '}\n {createState.location === 'project' ? 'Project' : 'Personal'}\n </Text>\n <Text>\n \u2022 <Text bold>Tools:</Text>{' '}\n {toolNames.length > 50\n ? toolNames.slice(0, 50) + '...'\n : toolNames}\n </Text>\n <Text>\n \u2022 <Text bold>Model:</Text>{' '}\n {getDisplayModelName(createState.selectedModel)}\n </Text>\n {createState.selectedColor && (\n <Text>\n \u2022 <Text bold>Color:</Text>{' '}\n <Text color={createState.selectedColor}>\n {createState.selectedColor}\n </Text>\n </Text>\n )}\n </Box>\n\n <Box marginTop={1} marginBottom={1}>\n <Text bold color={theme.primary}>\n \uD83D\uDCDD Purpose\n </Text>\n </Box>\n <Box paddingLeft={1}>\n <Text>{createState.whenToUse}</Text>\n </Box>\n\n {validation.warnings.length > 0 && (\n <Box marginTop={1}>\n <Text>\n <Text bold>Warnings:</Text>\n </Text>\n {validation.warnings.map((warning, idx) => (\n <Fragment key={idx}>\n <Text color={theme.warning}> \u2022 {warning}</Text>\n </Fragment>\n ))}\n </Box>\n )}\n\n {createState.error && (\n <Box marginTop={1}>\n <Text color={theme.error}>\u2717 {createState.error}</Text>\n </Box>\n )}\n\n <Box marginTop={2}>\n {isCreating ? <LoadingSpinner text=\"Creating agent...\" /> : null}\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"Enter Save \u2022 E Edit \u2022 Esc Back\" />\n </Box>\n )\n}\n\n// Step 1: Location selection\ninterface LocationSelectProps {\n createState: CreateState\n setCreateState: React.Dispatch<any>\n setModeState: (state: ModeState) => void\n}\n\nfunction LocationSelect({\n createState,\n setCreateState,\n setModeState,\n}: LocationSelectProps) {\n const theme = getTheme()\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n const options = [\n { label: '\uD83D\uDCC1 Project', value: 'project', desc: '.minto/agents/' },\n { label: '\uD83C\uDFE0 Personal', value: 'user', desc: '~/.minto/agents/' },\n ]\n\n const handleChange = (value: string) => {\n setCreateState({ type: 'SET_LOCATION', value: value as AgentLocation })\n setCreateState({ type: 'SET_METHOD', value: 'generate' }) // Always use generate method\n setModeState({ mode: 'create-generate', location: value as AgentLocation })\n }\n\n const handleCancel = () => {\n setModeState({ mode: 'list-agents', location: 'all' as AgentLocation })\n }\n\n useInput((input, key) => {\n if (key.escape) {\n handleCancel()\n } else if (key.return) {\n handleChange(options[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : options.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < options.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"\uD83D\uDCE6 Save Location\" subtitle=\"\" step={1} totalSteps={5}>\n <Box marginTop={1} flexDirection=\"column\">\n {options.map((opt, idx) => (\n <Box key={opt.value} flexDirection=\"column\" marginBottom={1}>\n <Text color={idx === selectedIndex ? theme.primary : undefined}>\n {idx === selectedIndex ? '\u276F ' : ' '}\n {opt.label}\n </Text>\n <Box marginLeft={3}>\n <Text color={SEMANTIC_COLORS.dim}>{opt.desc}</Text>\n </Box>\n </Box>\n ))}\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 Navigate \u2022 Enter Select\" />\n </Box>\n )\n}\n\n// Step 2: Method selection\ninterface MethodSelectProps {\n createState: CreateState\n setCreateState: React.Dispatch<any>\n setModeState: (state: ModeState) => void\n}\n\nfunction MethodSelect({\n createState,\n setCreateState,\n setModeState,\n}: MethodSelectProps) {\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n const options = [\n { label: 'Generate with Claude (recommended)', value: 'generate' },\n { label: 'Manual configuration', value: 'manual' },\n ]\n\n const handleChange = (value: string) => {\n setCreateState({\n type: 'SET_METHOD',\n value: value as 'generate' | 'manual',\n })\n if (value === 'generate') {\n setCreateState({ type: 'SET_IS_AI_GENERATED', value: true })\n setModeState({ mode: 'create-generate', location: createState.location })\n } else {\n setCreateState({ type: 'SET_IS_AI_GENERATED', value: false })\n setModeState({ mode: 'create-type', location: createState.location })\n }\n }\n\n const handleCancel = () => {\n setModeState({ mode: 'create-location' })\n }\n\n useInput((input, key) => {\n if (key.escape) {\n handleCancel()\n } else if (key.return) {\n handleChange(options[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : options.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < options.length - 1 ? prev + 1 : 0))\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title=\"Create new agent\"\n subtitle=\"Creation method\"\n step={2}\n totalSteps={9}\n >\n <Box marginTop={1}>\n <SelectList\n options={options}\n selectedIndex={selectedIndex}\n onChange={handleChange}\n onCancel={handleCancel}\n />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\n// (AgentMenu + EditMenu removed \u2014 replaced by TabbedListView phases in AgentsUI)\n\n// Edit tools step\ninterface EditToolsStepProps {\n agent: AgentConfig\n tools: Tool[]\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string, updated: AgentConfig) => void\n}\n\nfunction EditToolsStep({\n agent,\n tools,\n setModeState,\n onAgentUpdated,\n}: EditToolsStepProps) {\n const [selectedIndex, setSelectedIndex] = useState(0)\n\n // Initialize selected tools based on agent.tools\n const initialTools = Array.isArray(agent.tools)\n ? agent.tools\n : agent.tools === '*'\n ? tools.map(t => t.name)\n : []\n const [selectedTools, setSelectedTools] = useState<Set<string>>(\n new Set(initialTools),\n )\n const [showAdvanced, setShowAdvanced] = useState(false)\n const [isUpdating, setIsUpdating] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n // Categorize tools\n const categorizedTools = useMemo(() => {\n const categories: Record<string, Tool[]> = {\n read: [],\n edit: [],\n execution: [],\n web: [],\n other: [],\n }\n\n tools.forEach(tool => {\n let categorized = false\n\n // Check built-in categories\n for (const [category, toolNames] of Object.entries(TOOL_CATEGORIES)) {\n if (Array.isArray(toolNames) && toolNames.includes(tool.name)) {\n categories[category as keyof typeof categories]?.push(tool)\n categorized = true\n break\n }\n }\n\n if (!categorized) {\n categories.other.push(tool)\n }\n })\n\n return categories\n }, [tools])\n\n const allSelected = selectedTools.size === tools.length && tools.length > 0\n const readSelected =\n categorizedTools.read.every(tool => selectedTools.has(tool.name)) &&\n categorizedTools.read.length > 0\n const editSelected =\n categorizedTools.edit.every(tool => selectedTools.has(tool.name)) &&\n categorizedTools.edit.length > 0\n const execSelected =\n categorizedTools.execution.every(tool => selectedTools.has(tool.name)) &&\n categorizedTools.execution.length > 0\n\n const options = [\n { id: 'continue', label: 'Save', isContinue: true },\n {\n id: 'separator1',\n label: '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500',\n isSeparator: true,\n },\n {\n id: 'all',\n label: `${allSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} All tools`,\n isAll: true,\n },\n {\n id: 'read',\n label: `${readSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Read-only tools`,\n isCategory: true,\n },\n {\n id: 'edit',\n label: `${editSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Edit tools`,\n isCategory: true,\n },\n {\n id: 'execution',\n label: `${execSelected ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} Execution tools`,\n isCategory: true,\n },\n {\n id: 'separator2',\n label: '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500',\n isSeparator: true,\n },\n {\n id: 'advanced',\n label: `[ ${showAdvanced ? 'Hide' : 'Show'} advanced options ]`,\n isAdvancedToggle: true,\n },\n ...(showAdvanced\n ? tools.map(tool => ({\n id: tool.name,\n label: `${selectedTools.has(tool.name) ? UI_ICONS.checkboxOn : UI_ICONS.checkboxOff} ${tool.name}`,\n isTool: true,\n }))\n : []),\n ]\n\n const handleSave = async () => {\n setIsUpdating(true)\n try {\n // Type-safe tools conversion for updateAgent\n const toolsArray: string[] | '*' = allSelected\n ? '*'\n : Array.from(selectedTools)\n await updateAgent(\n agent,\n agent.whenToUse,\n toolsArray,\n agent.systemPrompt,\n agent.color,\n (agent as any).model,\n )\n\n // Clear cache and reload fresh agent data from file system\n clearAgentCache()\n const freshAgents = await getActiveAgents()\n const updatedAgent = freshAgents.find(\n a => a.agentType === agent.agentType,\n )\n\n if (updatedAgent) {\n onAgentUpdated(\n `Updated tools for agent: ${agent.agentType}`,\n updatedAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: updatedAgent })\n } else {\n console.error('Failed to find updated agent after save')\n // Fallback to manual update\n const fallbackAgent: AgentConfig = {\n ...agent,\n tools:\n toolsArray.length === 1 && toolsArray[0] === '*' ? '*' : toolsArray,\n }\n onAgentUpdated(\n `Updated tools for agent: ${agent.agentType}`,\n fallbackAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: fallbackAgent })\n }\n } catch (err) {\n console.error('Failed to update agent tools:', err)\n setError(\n `Failed to update tools: ${err instanceof Error ? err.message : String(err)}`,\n )\n } finally {\n setIsUpdating(false)\n }\n }\n\n const handleSelect = () => {\n setError(null) // Clear previous error on new action\n const option = options[selectedIndex] as any // Type assertion for union type\n if (!option) return\n if (option.isSeparator) return\n\n if (option.isContinue) {\n handleSave()\n } else if (option.isAdvancedToggle) {\n setShowAdvanced(!showAdvanced)\n } else if (option.isAll) {\n if (allSelected) {\n setSelectedTools(new Set())\n } else {\n setSelectedTools(new Set(tools.map(t => t.name)))\n }\n } else if (option.isCategory) {\n const categoryName = option.id as keyof typeof categorizedTools\n const categoryTools = categorizedTools[categoryName] || []\n const newSelected = new Set(selectedTools)\n\n const categorySelected = categoryTools.every(tool =>\n selectedTools.has(tool.name),\n )\n if (categorySelected) {\n categoryTools.forEach(tool => newSelected.delete(tool.name))\n } else {\n categoryTools.forEach(tool => newSelected.add(tool.name))\n }\n setSelectedTools(newSelected)\n } else if (option.isTool) {\n const newSelected = new Set(selectedTools)\n if (newSelected.has(option.id)) {\n newSelected.delete(option.id)\n } else {\n newSelected.add(option.id)\n }\n setSelectedTools(newSelected)\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n setModeState({ mode: 'edit-agent', selectedAgent: agent })\n } else if (key.return && !isUpdating) {\n handleSelect()\n } else if (key.upArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev > 0 ? prev - 1 : options.length - 1\n // Skip separators when going up\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex > 0 ? newIndex - 1 : options.length - 1\n }\n return newIndex\n })\n } else if (key.downArrow) {\n setSelectedIndex(prev => {\n let newIndex = prev < options.length - 1 ? prev + 1 : 0\n // Skip separators when going down\n while (options[newIndex] && (options[newIndex] as any).isSeparator) {\n newIndex = newIndex < options.length - 1 ? newIndex + 1 : 0\n }\n return newIndex\n })\n }\n })\n\n if (isUpdating) {\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Updating agent tools...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n {error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u2717 {error}</Text>\n </Box>\n )}\n <Box flexDirection=\"column\" marginTop={1}>\n {options.map((option, idx) => {\n const isSelected = idx === selectedIndex\n const isContinue = 'isContinue' in option && option.isContinue\n const isAdvancedToggle = (option as any).isAdvancedToggle\n const isSeparator = (option as any).isSeparator\n\n return (\n <Box key={option.id}>\n <Text\n color={\n isSelected && !isSeparator\n ? 'cyan'\n : isSeparator\n ? SEMANTIC_COLORS.dim\n : undefined\n }\n bold={isContinue}\n >\n {isSeparator\n ? option.label\n : `${isSelected ? `${UI_ICONS.pointer} ` : ' '}${isContinue || isAdvancedToggle ? option.label : option.label}`}\n </Text>\n {(option as any).isTool &&\n isSelected &&\n tools.find(t => t.name === option.id)?.description && (\n <Box marginLeft={4}>\n <Text color={SEMANTIC_COLORS.dim}>\n {tools.find(t => t.name === option.id)?.description}\n </Text>\n </Box>\n )}\n </Box>\n )\n })}\n\n <Box marginTop={1}>\n <Text color={SEMANTIC_COLORS.dim}>\n {allSelected\n ? 'All tools selected'\n : `${selectedTools.size} of ${tools.length} tools selected`}\n </Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"Enter toggle selection \u00B7 \u2191\u2193 navigate \u00B7 Esc back\" />\n </Box>\n )\n}\n\n// Edit model step\ninterface EditModelStepProps {\n agent: AgentConfig\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string, updated: AgentConfig) => void\n}\n\nfunction EditModelStep({\n agent,\n setModeState,\n onAgentUpdated,\n}: EditModelStepProps) {\n const manager = getModelManager()\n const profiles = manager.getActiveModelProfiles()\n const currentModel = (agent as any).model || null\n\n // Build model options array\n const modelOptions = [\n {\n id: null,\n name: 'Inherit from parent',\n description: 'Use the model from task configuration',\n },\n ...profiles.map((p: any) => ({\n id: p.modelName,\n name: p.name,\n description: `${p.provider || 'provider'} \u00B7 ${p.modelName}`,\n })),\n ]\n\n // Find the index of current model\n const defaultIndex = modelOptions.findIndex(m => m.id === currentModel)\n const [selectedIndex, setSelectedIndex] = useState(\n defaultIndex >= 0 ? defaultIndex : 0,\n )\n const [isUpdating, setIsUpdating] = useState(false)\n\n const handleSave = async (modelId: string | null) => {\n setIsUpdating(true)\n try {\n const modelValue = modelId === null ? undefined : modelId\n await updateAgent(\n agent,\n agent.whenToUse,\n agent.tools,\n agent.systemPrompt,\n agent.color,\n modelValue,\n )\n\n // Clear cache and reload fresh agent data from file system\n clearAgentCache()\n const freshAgents = await getActiveAgents()\n const updatedAgent = freshAgents.find(\n a => a.agentType === agent.agentType,\n )\n\n if (updatedAgent) {\n onAgentUpdated(\n `Updated model for agent: ${agent.agentType}`,\n updatedAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: updatedAgent })\n } else {\n console.error('Failed to find updated agent after save')\n // Fallback to manual update\n const fallbackAgent: AgentConfig = { ...agent }\n if (modelValue) {\n ;(fallbackAgent as any).model = modelValue\n } else {\n delete (fallbackAgent as any).model\n }\n onAgentUpdated(\n `Updated model for agent: ${agent.agentType}`,\n fallbackAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: fallbackAgent })\n }\n } catch (error) {\n console.error('Failed to update agent model:', error)\n } finally {\n setIsUpdating(false)\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n setModeState({ mode: 'edit-agent', selectedAgent: agent })\n } else if (key.return && !isUpdating) {\n handleSave(modelOptions[selectedIndex].id)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : modelOptions.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < modelOptions.length - 1 ? prev + 1 : 0))\n }\n })\n\n if (isUpdating) {\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Updating agent model...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title={`Edit agent: ${agent.agentType}`}\n subtitle=\"Model determines the agent's reasoning capabilities and speed.\"\n >\n <Box marginTop={2}>\n <SelectList\n options={modelOptions.map((m, i) => ({\n label: `${i + 1}. ${m.name}${m.description ? `\\n${m.description}` : ''}`,\n value: m.id,\n }))}\n selectedIndex={selectedIndex}\n onChange={val => handleSave(val)}\n numbered={false}\n />\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 navigate \u00B7 Enter select \u00B7 Esc back\" />\n </Box>\n )\n}\n\n// Edit color step\ninterface EditColorStepProps {\n agent: AgentConfig\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string, updated: AgentConfig) => void\n}\n\nfunction EditColorStep({\n agent,\n setModeState,\n onAgentUpdated,\n}: EditColorStepProps) {\n const currentColor = agent.color || null\n\n // Define color options (removed red/green due to display issues)\n const colors = [\n { label: 'Automatic color', value: null },\n { label: 'Yellow', value: 'yellow' },\n { label: 'Blue', value: 'blue' },\n { label: 'Magenta', value: 'magenta' },\n { label: 'Cyan', value: 'cyan' },\n { label: 'Gray', value: 'gray' },\n { label: 'White', value: 'white' },\n ]\n\n // Find current color index\n const defaultIndex = colors.findIndex(color => color.value === currentColor)\n const [selectedIndex, setSelectedIndex] = useState(\n defaultIndex >= 0 ? defaultIndex : 0,\n )\n const [isUpdating, setIsUpdating] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const handleSave = async (color: string | null) => {\n setError(null)\n setIsUpdating(true)\n try {\n const colorValue = color === null ? undefined : color\n await updateAgent(\n agent,\n agent.whenToUse,\n agent.tools,\n agent.systemPrompt,\n colorValue,\n (agent as any).model,\n )\n\n // Clear cache and reload fresh agent data from file system\n clearAgentCache()\n const freshAgents = await getActiveAgents()\n const updatedAgent = freshAgents.find(\n a => a.agentType === agent.agentType,\n )\n\n if (updatedAgent) {\n onAgentUpdated(\n `Updated color for agent: ${agent.agentType}`,\n updatedAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: updatedAgent })\n } else {\n console.error('Failed to find updated agent after save')\n // Fallback to manual update\n const fallbackAgent: AgentConfig = {\n ...agent,\n ...(colorValue ? { color: colorValue } : { color: undefined }),\n }\n onAgentUpdated(\n `Updated color for agent: ${agent.agentType}`,\n fallbackAgent,\n )\n setModeState({ mode: 'edit-agent', selectedAgent: fallbackAgent })\n }\n } catch (err) {\n console.error('Failed to update agent color:', err)\n setError(\n `Failed to update color: ${err instanceof Error ? err.message : String(err)}`,\n )\n } finally {\n setIsUpdating(false)\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n setModeState({ mode: 'edit-agent', selectedAgent: agent })\n } else if (key.return && !isUpdating) {\n setError(null)\n handleSave(colors[selectedIndex].value)\n } else if (key.upArrow) {\n setSelectedIndex(prev => (prev > 0 ? prev - 1 : colors.length - 1))\n } else if (key.downArrow) {\n setSelectedIndex(prev => (prev < colors.length - 1 ? prev + 1 : 0))\n }\n })\n\n if (isUpdating) {\n return (\n <Box flexDirection=\"column\">\n <Header title={`Edit agent: ${agent.agentType}`}>\n <Box marginTop={1}>\n <LoadingSpinner text=\"Updating agent color...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n const selectedColor = colors[selectedIndex]\n const previewColor = selectedColor.value || undefined\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title={`Edit agent: ${agent.agentType}`}\n subtitle=\"Choose background color\"\n >\n {error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u2717 {error}</Text>\n </Box>\n )}\n <Box flexDirection=\"column\" marginTop={1}>\n {colors.map((color, index) => {\n const isSelected = index === selectedIndex\n const isCurrent = color.value === currentColor\n\n return (\n <Box key={color.value || 'automatic'}>\n <Text color={isSelected ? 'cyan' : undefined}>\n {isSelected ? '\u276F ' : ' '}\n </Text>\n <Text color={color.value || undefined}>\u25CF</Text>\n <Text>\n {' '}\n {color.label}\n {isCurrent && <Text color=\"green\"> \u2714</Text>}\n </Text>\n </Box>\n )\n })}\n\n <Box marginTop={2}>\n <Text>Preview: </Text>\n <Text color={previewColor}>{agent.agentType}</Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar instructions=\"\u2191\u2193 navigate \u00B7 Enter select \u00B7 Esc back\" />\n </Box>\n )\n}\n\n// Edit agent component\ninterface EditAgentProps {\n agent: AgentConfig\n tools: Tool[]\n setModeState: (state: ModeState) => void\n onAgentUpdated: (message: string) => void\n}\n\nfunction EditAgent({\n agent,\n tools,\n setModeState,\n onAgentUpdated,\n}: EditAgentProps) {\n const theme = getTheme()\n const [currentStep, setCurrentStep] = useState<\n 'description' | 'tools' | 'prompt' | 'confirm'\n >('description')\n const [isUpdating, setIsUpdating] = useState(false)\n\n // \u7F16\u8F91\u72B6\u6001\n const [editedDescription, setEditedDescription] = useState(agent.whenToUse)\n const [editedTools, setEditedTools] = useState<string[]>(\n Array.isArray(agent.tools) ? agent.tools : agent.tools === '*' ? ['*'] : [],\n )\n const [editedPrompt, setEditedPrompt] = useState(agent.systemPrompt)\n const [error, setError] = useState<string | null>(null)\n\n const handleSave = async () => {\n setIsUpdating(true)\n try {\n await updateAgent(\n agent,\n editedDescription,\n editedTools,\n editedPrompt,\n agent.color,\n )\n clearAgentCache()\n onAgentUpdated(`Updated agent: ${agent.agentType}`)\n } catch (error) {\n setError((error as Error).message)\n setIsUpdating(false)\n }\n }\n\n const renderStepContent = () => {\n switch (currentStep) {\n case 'description':\n return (\n <Box flexDirection=\"column\">\n <Text bold>Edit Description:</Text>\n <Box marginTop={1}>\n <MultilineTextInput\n value={editedDescription}\n onChange={setEditedDescription}\n placeholder=\"Describe when to use this agent...\"\n onSubmit={() => setCurrentStep('tools')}\n error={error}\n rows={4}\n />\n </Box>\n </Box>\n )\n\n case 'tools':\n return (\n <Box flexDirection=\"column\">\n <Text bold>Edit Tools:</Text>\n <Box marginTop={1}>\n <ToolsStep\n createState={\n {\n selectedTools: editedTools,\n } as CreateState\n }\n setCreateState={action => {\n if (action.type === 'SET_SELECTED_TOOLS') {\n setEditedTools(action.value)\n setCurrentStep('prompt')\n }\n }}\n setModeState={() => {}}\n tools={tools}\n />\n </Box>\n </Box>\n )\n\n case 'prompt':\n return (\n <Box flexDirection=\"column\">\n <Text bold>Edit System Prompt:</Text>\n <Box marginTop={1}>\n <MultilineTextInput\n value={editedPrompt}\n onChange={setEditedPrompt}\n placeholder=\"System prompt for the agent...\"\n onSubmit={() => setCurrentStep('confirm')}\n error={error}\n rows={5}\n />\n </Box>\n </Box>\n )\n\n case 'confirm':\n const validation = validateAgentConfig({\n agentType: agent.agentType,\n whenToUse: editedDescription,\n systemPrompt: editedPrompt,\n selectedTools: editedTools,\n })\n\n return (\n <Box flexDirection=\"column\">\n <Text bold>Confirm Changes:</Text>\n <Box flexDirection=\"column\" marginTop={1}>\n <Text>\n <Text bold>Agent:</Text> {agent.agentType}\n </Text>\n <Text>\n <Text bold>Description:</Text> {editedDescription}\n </Text>\n <Text>\n <Text bold>Tools:</Text>{' '}\n {editedTools.includes('*')\n ? 'All tools'\n : editedTools.join(', ')}\n </Text>\n <Text>\n <Text bold>System Prompt:</Text> {editedPrompt.slice(0, 100)}\n {editedPrompt.length > 100 ? '...' : ''}\n </Text>\n\n {validation.warnings.length > 0 && (\n <Box marginTop={1}>\n {validation.warnings.map((warning, idx) => (\n <Fragment key={idx}>\n <Text color={theme.warning}>\u26A0 {warning}</Text>\n </Fragment>\n ))}\n </Box>\n )}\n\n {error && (\n <Box marginTop={1}>\n <Text color={theme.error}>\u2717 {error}</Text>\n </Box>\n )}\n\n <Box marginTop={2}>\n {isUpdating ? (\n <LoadingSpinner text=\"Updating agent...\" />\n ) : (\n <Text>Press Enter to save changes</Text>\n )}\n </Box>\n </Box>\n </Box>\n )\n }\n }\n\n useInput((input, key) => {\n if (key.escape) {\n if (currentStep === 'description') {\n setModeState({ mode: 'agent-menu', selectedAgent: agent })\n } else {\n // \u8FD4\u56DE\u4E0A\u4E00\u6B65\n const steps: Array<typeof currentStep> = [\n 'description',\n 'tools',\n 'prompt',\n 'confirm',\n ]\n const currentIndex = steps.indexOf(currentStep)\n if (currentIndex > 0) {\n setCurrentStep(steps[currentIndex - 1])\n }\n }\n return\n }\n\n if (key.return && currentStep === 'confirm' && !isUpdating) {\n handleSave()\n }\n })\n\n return (\n <Box flexDirection=\"column\">\n <Header\n title={`Edit Agent: ${agent.agentType}`}\n subtitle={`Step ${['description', 'tools', 'prompt', 'confirm'].indexOf(currentStep) + 1}/4`}\n >\n <Box marginTop={1}>{renderStepContent()}</Box>\n </Header>\n <InstructionBar\n instructions={\n currentStep === 'confirm'\n ? 'Press Enter to save \u00B7 Esc to go back'\n : 'Enter to continue \u00B7 Esc to go back'\n }\n />\n </Box>\n )\n}\n\n// Delete confirmation\ninterface DeleteConfirmProps {\n agent: AgentConfig\n setModeState: (state: ModeState) => void\n onAgentDeleted: (message: string) => void\n}\n\nfunction DeleteConfirm({\n agent,\n setModeState,\n onAgentDeleted,\n}: DeleteConfirmProps) {\n const [isDeleting, setIsDeleting] = useState(false)\n const [selected, setSelected] = useState(false) // false = No, true = Yes\n const [error, setError] = useState<string | null>(null)\n\n const handleConfirm = async () => {\n if (selected) {\n setIsDeleting(true)\n setError(null)\n try {\n await deleteAgent(agent)\n clearAgentCache()\n onAgentDeleted(`Deleted agent: ${agent.agentType}`)\n } catch (err) {\n console.error('Failed to delete agent:', err)\n setIsDeleting(false)\n setError(\n `Failed to delete agent: ${err instanceof Error ? err.message : String(err)}`,\n )\n }\n } else {\n setModeState({ mode: 'agent-menu', selectedAgent: agent })\n }\n }\n\n useInput((input, key) => {\n if (key.return) {\n handleConfirm()\n } else if (key.leftArrow || key.rightArrow || key.tab) {\n setSelected(!selected)\n }\n })\n\n if (isDeleting) {\n return (\n <Box flexDirection=\"column\">\n <Header title=\"Delete agent\" subtitle=\"Deleting...\">\n <Box marginTop={1}>\n <LoadingSpinner text=\"Deleting agent...\" />\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n }\n\n return (\n <Box flexDirection=\"column\">\n <Header title=\"Delete agent\" subtitle={`Delete \"${agent.agentType}\"?`}>\n {error && (\n <Box marginTop={1}>\n <Text color=\"red\">\u2717 {error}</Text>\n </Box>\n )}\n <Box marginTop={1}>\n <Text>\n This action cannot be undone. The agent file will be permanently\n deleted.\n </Text>\n <Box marginTop={2} gap={3}>\n <Text color={!selected ? 'cyan' : undefined}>\n {!selected ? `${UI_ICONS.pointer} ` : ' '}No\n </Text>\n <Text color={selected ? 'red' : undefined}>\n {selected ? `${UI_ICONS.pointer} ` : ' '}Yes, delete\n </Text>\n </Box>\n </Box>\n </Header>\n <InstructionBar />\n </Box>\n )\n}\n\nexport default {\n name: 'agents',\n description: 'Manage agent configurations',\n type: 'local-jsx' as const,\n isEnabled: true,\n isHidden: false,\n hidePromptInput: true,\n\n async call(onExit: (message?: string) => void) {\n return <AgentsUI onExit={onExit} />\n },\n\n userFacingName() {\n return 'agents'\n },\n}\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,KAAK,MAAM,gBAAgB;AACpC,OAAO,kBAAkB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAEhC,MAAM,YAAY,UAAU,IAAI;AAChC,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAG3B,SAAS,sBAAsB;AAQ/B;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;AAQP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP,SAAS,oBAAoB,SAAiC;AAE5D,MAAI,CAAC,QAAS,QAAO;AAErB,MAAI;AACF,UAAM,WAAW,gBAAgB,EAAE,uBAAuB;AAE1D,UAAM,UAAU,SAAS;AAAA,MACvB,CAAC,MAAW,EAAE,cAAc,WAAW,EAAE,SAAS;AAAA,IACpD;AACA,WAAO,UAAU,QAAQ,OAAO,WAAW,OAAO;AAAA,EACpD,SAAS,OAAO;AACd,YAAQ,KAAK,iCAAiC,KAAK;AACnD,WAAO,UAAU,WAAW,OAAO,MAAM;AAAA,EAC3C;AACF;AAGA,eAAe,wBACb,QACyB;AAEzB,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,kBAAkB;AAEtD,QAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASrB,MAAI;AACF,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,MAAM,WAAW;AAAA,QACjB,SAAS,EAAE,MAAM,QAAQ,SAAS,OAAO;AAAA,MAC3C;AAAA,IACF;AACA,UAAM,WAAW,MAAM,WAAW,QAAQ,UAAU,CAAC,YAAY,CAAC;AAGlE,QAAI,eAAe;AACnB,QAAI,OAAO,SAAS,SAAS,YAAY,UAAU;AACjD,qBAAe,SAAS,QAAQ;AAAA,IAClC,WAAW,MAAM,QAAQ,SAAS,SAAS,OAAO,GAAG;AACnD,YAAM,cAAc,SAAS,QAAQ,QAAQ;AAAA,QAC3C,CAAC,MAAW,EAAE,SAAS;AAAA,MACzB;AACA,qBAAe,aAAa,QAAQ;AAAA,IACtC,WAAW,SAAS,SAAS,UAAU,CAAC,GAAG,MAAM;AAC/C,qBAAe,SAAS,QAAQ,QAAQ,CAAC,EAAE;AAAA,IAC7C;AAEA,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACtD;AAGA,UAAM,gBAAgB;AACtB,UAAM,mBAAmB;AAEzB,QAAI,aAAa,SAAS,eAAe;AACvC,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACtC;AAGA,QAAI;AACJ,QAAI;AAEF,eAAS,KAAK,MAAM,aAAa,KAAK,CAAC;AAAA,IACzC,QAAQ;AAEN,YAAM,WAAW,aAAa,QAAQ,GAAG;AACzC,YAAM,SAAS,aAAa,YAAY,GAAG;AAE3C,UAAI,aAAa,MAAM,WAAW,MAAM,YAAY,QAAQ;AAC1D,cAAM,IAAI,MAAM,wCAAwC;AAAA,MAC1D;AAEA,YAAM,UAAU,aAAa,UAAU,UAAU,SAAS,CAAC;AAC3D,UAAI,QAAQ,SAAS,eAAe;AAClC,cAAM,IAAI,MAAM,wBAAwB;AAAA,MAC1C;AAEA,UAAI;AACF,iBAAS,KAAK,MAAM,OAAO;AAAA,MAC7B,SAAS,YAAY;AACnB,cAAM,IAAI;AAAA,UACR,wBAAwB,sBAAsB,QAAQ,WAAW,UAAU,eAAe;AAAA,QAC5F;AAAA,MACF;AAAA,IACF;AAGA,UAAM,aAAa,OAAO,OAAO,cAAc,EAAE,EAC9C,MAAM,GAAG,GAAG,EACZ,KAAK;AACR,UAAM,YAAY,OAAO,OAAO,aAAa,EAAE,EAC5C,MAAM,GAAG,gBAAgB,EACzB,KAAK;AACR,UAAM,oBAAoB,OAAO,OAAO,gBAAgB,EAAE,EACvD,MAAM,GAAG,gBAAgB,EACzB,KAAK;AAGR,QAAI,CAAC,cAAc,CAAC,aAAa,CAAC,mBAAmB;AACnD,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAGA,UAAM,WAAW,CAAC,QAAgB,IAAI,QAAQ,yBAAyB,EAAE;AAGzE,UAAM,kBAAkB,SAAS,UAAU;AAC3C,QAAI,CAAC,kBAAkB,KAAK,eAAe,GAAG;AAC5C,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,WAAW,SAAS,SAAS;AAAA,MAC7B,cAAc,SAAS,iBAAiB;AAAA,IAC1C;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,yBAAyB,KAAK;AAE5C,UAAM,aAAa,OAChB,YAAY,EACZ,QAAQ,iBAAiB,EAAE,EAC3B,QAAQ,QAAQ,GAAG,EACnB,MAAM,GAAG,EAAE;AAEd,WAAO;AAAA,MACL,YAAY,cAAc;AAAA,MAC1B,WAAW,iDAAiD,MAAM;AAAA,MAClE,cAAc,2DAA2D,MAAM;AAAA,IACjF;AAAA,EACF;AACF;AAGA,SAAS,kBACP,WACA,iBAAgC,CAAC,GAKjC;AACA,QAAM,SAAmB,CAAC;AAC1B,QAAM,WAAqB,CAAC;AAE5B,MAAI,CAAC,WAAW;AACd,WAAO,KAAK,wBAAwB;AACpC,WAAO,EAAE,SAAS,OAAO,QAAQ,SAAS;AAAA,EAC5C;AAEA,MAAI,CAAC,YAAY,KAAK,SAAS,GAAG;AAChC,WAAO,KAAK,qCAAqC;AAAA,EACnD;AAEA,MAAI,CAAC,kBAAkB,KAAK,SAAS,GAAG;AACtC,WAAO,KAAK,2DAA2D;AAAA,EACzE;AAEA,MAAI,UAAU,SAAS,GAAG;AACxB,WAAO,KAAK,+CAA+C;AAAA,EAC7D;AAEA,MAAI,UAAU,SAAS,IAAI;AACzB,WAAO,KAAK,4CAA4C;AAAA,EAC1D;AAGA,QAAM,WAAW,CAAC,QAAQ,QAAQ,QAAQ,UAAU,MAAM;AAC1D,MAAI,SAAS,SAAS,UAAU,YAAY,CAAC,GAAG;AAC9C,WAAO,KAAK,uBAAuB;AAAA,EACrC;AAGA,QAAM,YAAY,eAAe,KAAK,OAAK,EAAE,cAAc,SAAS;AACpE,MAAI,WAAW;AACb,WAAO;AAAA,MACL,6CAA6C,UAAU,QAAQ;AAAA,IACjE;AAAA,EACF;AAGA,MAAI,UAAU,SAAS,IAAI,GAAG;AAC5B,aAAS,KAAK,uCAAuC;AAAA,EACvD;AAEA,SAAO;AAAA,IACL,SAAS,OAAO,WAAW;AAAA,IAC3B;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,oBACP,QACA,iBAAgC,CAAC,GAKjC;AACA,QAAM,SAAmB,CAAC;AAC1B,QAAM,WAAqB,CAAC;AAG5B,MAAI,OAAO,WAAW;AACpB,UAAM,iBAAiB,kBAAkB,OAAO,WAAW,cAAc;AACzE,WAAO,KAAK,GAAG,eAAe,MAAM;AACpC,aAAS,KAAK,GAAG,eAAe,QAAQ;AAAA,EAC1C;AAGA,MAAI,CAAC,OAAO,WAAW;AACrB,WAAO,KAAK,yBAAyB;AAAA,EACvC,WAAW,OAAO,UAAU,SAAS,IAAI;AACvC,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAGA,MAAI,CAAC,OAAO,cAAc;AACxB,WAAO,KAAK,2BAA2B;AAAA,EACzC,WAAW,OAAO,aAAa,SAAS,IAAI;AAC1C,aAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAGA,MAAI,CAAC,OAAO,iBAAiB,OAAO,cAAc,WAAW,GAAG;AAC9D,aAAS,KAAK,0DAA0D;AAAA,EAC1E;AAEA,SAAO;AAAA,IACL,SAAS,OAAO,WAAW;AAAA,IAC3B;AAAA,IACA;AAAA,EACF;AACF;AAYA,SAAS,OAAO,EAAE,OAAO,UAAU,MAAM,YAAY,SAAS,GAAgB;AAC5E,QAAM,QAAQ,SAAS;AACvB,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,QAAK,MAAI,MAAC,OAAO,MAAM,WACrB,KACH,GACC,YACC,oCAAC,QAAK,OAAO,MAAM,aAChB,QAAQ,aAAa,QAAQ,IAAI,IAAI,UAAU,OAAO,IACtD,QACH,GAED,QACH;AAEJ;AAMA,SAAS,eAAe;AAAA,EACtB,eAAe;AACjB,GAAwB;AACtB,QAAM,QAAQ,SAAS;AACvB,SACE,oCAAC,OAAI,WAAW,KACd,oCAAC,OAAI,aAAY,SAAQ,aAAa,MAAM,WAAW,UAAU,KAC/D,oCAAC,QAAK,OAAO,MAAM,aAAY,YAAa,CAC9C,CACF;AAEJ;AAUA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AACb,GAA6C;AAC3C,QAAM,QAAQ,SAAS;AAGvB;AAAA,IACE,CAAC,OAAO,QAAQ;AACd,UAAI,IAAI,UAAU,UAAU;AAC1B,iBAAS;AAAA,MACX,WAAW,IAAI,QAAQ;AACrB,iBAAS,QAAQ,aAAa,EAAE,KAAK;AAAA,MACvC;AAAA,IACF;AAAA,IACA,EAAE,SAAS;AAAA,EACb;AAEA,SACE,oCAAC,OAAI,eAAc,YAChB,QAAQ,IAAI,CAAC,QAAQ,QACpB,oCAAC,OAAI,KAAK,OAAO,SACf,oCAAC,QAAK,OAAO,QAAQ,gBAAgB,MAAM,UAAU,UAClD,QAAQ,gBAAgB,GAAG,SAAS,OAAO,MAAM,MACjD,WAAW,GAAG,MAAM,CAAC,OAAO,IAC5B,OAAO,KACV,CACF,CACD,CACH;AAEJ;AAaA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AACF,GAA4B;AAC1B,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AACxD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,IAAI;AAGnD,YAAU,MAAM;AACd,qBAAiB,KAAK;AAAA,EACxB,GAAG,CAAC,KAAK,CAAC;AAGV,YAAU,MAAM;AACd,QAAI,CAAC,MAAO,QAAO;AACnB,UAAM,QAAQ,YAAY,MAAM;AAC9B,qBAAe,UAAQ,CAAC,IAAI;AAAA,IAC9B,GAAG,GAAG;AACN,WAAO,MAAM,cAAc,KAAK;AAAA,EAClC,GAAG,CAAC,KAAK,CAAC;AAGV,QAAM,QAAQ,cAAc,MAAM,IAAI;AACtC,QAAM,YAAY,MAAM;AACxB,QAAM,YAAY,cAAc;AAChC,QAAM,UAAU,CAAC,cAAc,KAAK;AACpC,QAAM,aAAa,CAAC;AAGpB,QAAM,cAAc,CAAC,SAA2B;AAC9C,QAAI,CAAC,QAAQ,aAAa;AACxB,aAAO,CAAC,WAAW;AAAA,IACrB;AACA,UAAM,WAAW;AACjB,UAAM,SAAmB,CAAC;AAC1B,UAAM,YAAY,KAAK,MAAM,IAAI;AAEjC,cAAU,QAAQ,UAAQ;AACxB,UAAI,KAAK,UAAU,UAAU;AAC3B,eAAO,KAAK,IAAI;AAAA,MAClB,OAAO;AAEL,YAAI,YAAY;AAChB,eAAO,UAAU,SAAS,GAAG;AAC3B,iBAAO,KAAK,UAAU,MAAM,GAAG,QAAQ,CAAC;AACxC,sBAAY,UAAU,MAAM,QAAQ;AAAA,QACtC;AAAA,MACF;AAAA,IACF,CAAC;AAED,WAAO,OAAO,SAAS,IAAI,SAAS,CAAC,EAAE;AAAA,EACzC;AAEA,QAAM,eAAe,YAAY,aAAa;AAC9C,QAAM,eAAe,aAAa;AAAA,IAChC,KAAK,IAAI,GAAG,aAAa,SAAS,IAAI;AAAA,EACxC;AAGA,QAAM,eAAe,MAAM;AACzB,QAAI,cAAc,KAAK,KAAK,UAAU;AACpC,eAAS;AAAA,IACX;AAAA,EACF;AAEA,SACE,oCAAC,OAAI,eAAc,UAAS,OAAM,UAEhC,oCAAC,OAAI,eAAc,YAEjB;AAAA,IAAC;AAAA;AAAA,MACC,aAAY;AAAA,MACZ,aAAa,QAAQ,MAAM,UAAU;AAAA,MACrC,UAAU;AAAA,MACV,UAAU;AAAA,MACV,WAAW,OAAO;AAAA;AAAA,IAElB,oCAAC,OAAI,eAAc,YAEjB;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU,SAAO;AACf,2BAAiB,GAAG;AACpB,mBAAS,GAAG;AAAA,QACd;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA;AAAA,IACF,GAGC,SAAS,eAAe,cACvB,oCAAC,QAAK,OAAO,MAAM,WAAS,GAAC,CAEjC;AAAA,EACF,GAGA,oCAAC,OAAI,WAAW,GAAG,eAAc,OAAM,gBAAe,mBACpD,oCAAC,WACE,aACC,oCAAC,QAAK,OAAO,MAAM,WAAS,WACvB,WAAU,kBAAU,WAAU,SAChC,cAAc,IAAI,MAAM,EAC3B,IAEA,oCAAC,QAAK,OAAO,gBAAgB,OAAK,yBAAkB,CAExD,GACA,oCAAC,WACE,QACC,oCAAC,QAAK,OAAO,MAAM,SAAO,WAAG,KAAM,IAEnC,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,aAAa,UAAU,SAC1B,CAEJ,CACF,CACF,GAGA,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAO,gBAAgB,OAAK,qDAElC,CACF,CACF;AAEJ;AAOA,SAAS,eAAe,EAAE,KAAK,GAAwB;AACrD,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,CAAC;AAEpC,YAAU,MAAM;AACd,UAAM,WAAW,YAAY,MAAM;AACjC,eAAS,WAAS,OAAO,KAAK,SAAS,QAAQ,MAAM;AAAA,IACvD,GAAG,GAAG;AACN,WAAO,MAAM,cAAc,QAAQ;AAAA,EACrC,GAAG,CAAC,CAAC;AAEL,SACE,oCAAC,WACC,oCAAC,QAAK,OAAO,MAAM,WAAU,SAAS,QAAQ,KAAK,CAAE,GACpD,QAAQ,oCAAC,QAAK,OAAO,MAAM,aAAW,KAAE,IAAK,CAChD;AAEJ;AAOA,SAAS,SAAS,EAAE,OAAO,GAAkB;AAE3C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAqB,EAAE,MAAM,OAAO,CAAC;AAC/D,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,EAAE;AACjD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA+B,IAAI;AAG7E,QAAM,CAAC,WAAW,YAAY,IAAI,SAAoB;AAAA,IACpD,MAAM;AAAA,IACN,UAAU;AAAA,EACZ,CAAC;AAED,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAwB,CAAC,CAAC;AACtD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAmB,CAAC,CAAC;AACnD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,CAAC;AAC9C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,CAAC,CAAC;AAG7C,QAAM,CAAC,aAAa,cAAc,IAAI;AAAA,IACpC,CAAC,OAAoB,WAAgB;AACnC,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK;AACH,iBAAO;AAAA,YACL,UAAU;AAAA,YACV,WAAW;AAAA,YACX,QAAQ;AAAA,YACR,kBAAkB;AAAA,YAClB,WAAW;AAAA,YACX,eAAe,CAAC;AAAA,YAChB,eAAe;AAAA,YACf,eAAe;AAAA,YACf,cAAc;AAAA,YACd,cAAc;AAAA,YACd,cAAc;AAAA,YACd,eAAe;AAAA,YACf,OAAO;AAAA,YACP,UAAU,CAAC;AAAA,YACX,iBAAiB;AAAA,YACjB,iBAAiB;AAAA,YACjB,cAAc;AAAA,YACd,wBAAwB;AAAA,UAC1B;AAAA,QACF,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,UAAU,OAAO,MAAM;AAAA,QAC5C,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,QAAQ,OAAO,MAAM;AAAA,QAC1C,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,WAAW,OAAO,OAAO,OAAO,KAAK;AAAA,QAC1D,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,kBAAkB,OAAO,MAAM;AAAA,QACpD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,WAAW,OAAO,OAAO,OAAO,KAAK;AAAA,QAC1D,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,eAAe,OAAO,MAAM;AAAA,QACjD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,eAAe,OAAO,MAAM;AAAA,QACjD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,eAAe,OAAO,MAAM;AAAA,QACjD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,cAAc,OAAO,MAAM;AAAA,QAChD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,cAAc,OAAO,MAAM;AAAA,QAChD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,cAAc,OAAO,MAAM;AAAA,QAChD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,eAAe,OAAO,MAAM;AAAA,QACjD,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,OAAO,OAAO,MAAM;AAAA,QACzC,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,UAAU,OAAO,MAAM;AAAA,QAC5C,KAAK;AACH,iBAAO,EAAE,GAAG,OAAO,CAAC,OAAO,KAAK,GAAG,OAAO,MAAM;AAAA,QAClD;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AAAA,IACA;AAAA,MACE,UAAU;AAAA,MACV,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,eAAe,CAAC;AAAA,MAChB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,cAAc;AAAA,MACd,cAAc;AAAA,MACd,cAAc;AAAA,MACd,eAAe;AAAA,MACf,OAAO;AAAA,MACP,UAAU,CAAC;AAAA,MACX,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,wBAAwB;AAAA,IAC1B;AAAA,EACF;AAGA,QAAM,aAAa,YAAY,YAAY;AACzC,eAAW,IAAI;AACf,oBAAgB;AAEhB,UAAM,kBAAkB,IAAI,gBAAgB;AAE5C,QAAI;AACF,YAAM,SAAS,MAAM,gBAAgB;AAErC,UAAI,gBAAgB,OAAO,SAAS;AAClC,eAAO;AAAA,MACT;AAEA,gBAAU,MAAM;AAGhB,YAAM,iBAAyB,CAAC;AAGhC,UAAI,YAAY;AAAA,QACd,EAAE,MAAM,QAAQ,aAAa,6BAA6B;AAAA,QAC1D,EAAE,MAAM,SAAS,aAAa,4BAA4B;AAAA,QAC1D,EAAE,MAAM,QAAQ,aAAa,sBAAsB;AAAA,QACnD,EAAE,MAAM,aAAa,aAAa,+BAA+B;AAAA,QACjE,EAAE,MAAM,gBAAgB,aAAa,yBAAyB;AAAA,QAC9D,EAAE,MAAM,QAAQ,aAAa,wBAAwB;AAAA,QACrD,EAAE,MAAM,QAAQ,aAAa,+BAA+B;AAAA,QAC5D,EAAE,MAAM,QAAQ,aAAa,uBAAuB;AAAA,QACpD,EAAE,MAAM,MAAM,aAAa,0BAA0B;AAAA,QACrD,EAAE,MAAM,YAAY,aAAa,oBAAoB;AAAA,QACrD,EAAE,MAAM,aAAa,aAAa,iBAAiB;AAAA,QACnD,EAAE,MAAM,aAAa,aAAa,oBAAoB;AAAA,MACxD;AAEA,kBAAY,UAAU;AAAA,QACpB,OAAK,EAAE,SAAS,UAAU,EAAE,SAAS;AAAA,MACvC;AAEA,qBAAe,KAAK,GAAG,SAAS;AAGhC,UAAI;AACF,cAAM,WAAW,MAAM,YAAY;AACnC,YAAI,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,GAAG;AAClD,yBAAe,KAAK,GAAG,QAAQ;AAAA,QACjC;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,KAAK,6BAA6B,KAAK;AAAA,MACjD;AAEA,UAAI,CAAC,gBAAgB,OAAO,SAAS;AACnC,iBAAS,cAAc;AAAA,MACzB;AAAA,IACF,SAAS,OAAO;AACd,UAAI,CAAC,gBAAgB,OAAO,SAAS;AACnC,gBAAQ,MAAM,0BAA0B,KAAK;AAAA,MAC/C;AAAA,IACF,UAAE;AACA,UAAI,CAAC,gBAAgB,OAAO,SAAS;AACnC,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAEA,WAAO,MAAM,gBAAgB,MAAM;AAAA,EACrC,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,QAAI;AAEJ,UAAM,OAAO,YAAY;AACvB,gBAAU,MAAM,WAAW;AAAA,IAC7B;AAEA,SAAK;AAEL,WAAO,MAAM;AACX,UAAI,SAAS;AACX,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF,GAAG,CAAC,YAAY,UAAU,CAAC;AAG3B,YAAU,MAAM;AACd,QAAI,MAAM,SAAS,QAAQ;AACzB,qBAAe,EAAE;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAGV,QAAM,YAAY,QAAQ,MAAM;AAC9B,UAAM,MAAM,oBAAI,IAAyB;AACzC,WAAO,QAAQ,OAAK,IAAI,IAAI,EAAE,WAAW,CAAC,CAAC;AAC3C,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,gBAAgB;AAAA,IACpB,CAAC,UAAuB;AACtB,YAAM,SAAS,UAAU,IAAI,MAAM,SAAS;AAC5C,YAAM,eAAe,CAAC,EAAE,UAAU,OAAO,aAAa,MAAM;AAC5D,aAAO;AAAA,QACL;AAAA,QACA,cAAc,eAAe,OAAO,WAAW;AAAA,MACjD;AAAA,IACF;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AAGA,QAAM,EAAE,MAAM,OAAO,OAAO,YAAY,cAAc,IAAI,QAAQ,MAAM;AACtE,YAAQ,MAAM,MAAM;AAAA,MAClB,KAAK,QAAQ;AACX,cAAM,YAAY;AAClB,cAAM,eAAe,UAAU,OAAO,OAAK,EAAE,aAAa,UAAU;AAEpE,cAAM,WAA4B;AAAA,UAChC,EAAE,IAAI,OAAO,OAAO,OAAO,OAAO,aAAa,OAAO;AAAA,UACtD;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,OAAO,aAAa,OAAO,OAAK,EAAE,aAAa,QAAQ,EAAE;AAAA,UAC3D;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,OAAO,aAAa,OAAO,OAAK,EAAE,aAAa,MAAM,EAAE;AAAA,UACzD;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,OAAO,aAAa,OAAO,OAAK,EAAE,aAAa,SAAS,EAAE;AAAA,UAC5D;AAAA,QACF;AAEA,YAAI,YAAwB,CAAC;AAG7B,kBAAU,KAAK;AAAA,UACb,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,QACf,CAAC;AAGD,cAAM,gBACJ,cAAc,QACV,eACA,aAAa,OAAO,OAAK,EAAE,aAAa,SAAS;AAEvD,mBAAW,SAAS,eAAe;AACjC,gBAAM,EAAE,cAAc,aAAa,IAAI,cAAc,KAAK;AAC1D,gBAAM,aAAc,MAAc,SAAS;AAC3C,gBAAM,eAAe,oBAAoB,UAAU;AAEnD,gBAAM,gBACJ,MAAM,aAAa,WACf,WACA,MAAM,aAAa,SACjB,aACA,MAAM,aAAa,YACjB,YACA,MAAM;AAEhB,oBAAU,KAAK;AAAA,YACb,IAAI,GAAG,MAAM,SAAS,IAAI,MAAM,QAAQ;AAAA,YACxC,OAAO,MAAM;AAAA,YACb,aAAa,MAAM,aAAa,MAAM,eAAe;AAAA,YACrD,UAAU;AAAA,YACV,UAAU;AAAA,YACV,QAAQ,eAAe,aAAa;AAAA,YACpC,MAAM;AAAA,UACR,CAAC;AAAA,QACH;AAEA,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,OAAO;AAAA,UACP,YACE;AAAA,UACF,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MAEA,KAAK,iBAAiB;AACpB,cAAM,QAAQ,MAAM;AACpB,cAAM,YAAY,MAAM,aAAa;AAErC,cAAM,cAA0B;AAAA,UAC9B;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf;AAAA,QACF;AAEA,YAAI,CAAC,WAAW;AACd,sBAAY,KAAK;AAAA,YACf,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf,CAAC;AACD,sBAAY,KAAK;AAAA,YACf,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf,CAAC;AAAA,QACH;AAEA,oBAAY,KAAK;AAAA,UACf,IAAI;AAAA,UACJ,OAAO;AAAA,UACP,aAAa;AAAA,QACf,CAAC;AAED,eAAO;AAAA,UACL,MAAM,CAAC,EAAE,IAAI,WAAW,OAAO,UAAU,CAAC;AAAA,UAC1C,OAAO;AAAA,UACP,OAAO,MAAM;AAAA,UACb,YAAY;AAAA,UACZ,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MAEA,KAAK,gBAAgB;AACnB,cAAM,QAAQ,MAAM;AAEpB,cAAM,YAAwB;AAAA,UAC5B;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf;AAAA,UACA;AAAA,YACE,IAAI;AAAA,YACJ,OAAO;AAAA,YACP,aAAa;AAAA,UACf;AAAA,QACF;AAEA,eAAO;AAAA,UACL,MAAM,CAAC,EAAE,IAAI,QAAQ,OAAO,OAAO,CAAC;AAAA,UACpC,OAAO;AAAA,UACP,OAAO,SAAS,MAAM,SAAS;AAAA,UAC/B,YAAY;AAAA,UACZ,eAAe;AAAA,QACjB;AAAA,MACF;AAAA,MAEA;AACE,eAAO;AAAA,UACL,MAAM,CAAC,EAAE,IAAI,OAAO,OAAO,MAAM,CAAC;AAAA,UAClC,OAAO,CAAC;AAAA,UACR,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,eAAe;AAAA,QACjB;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,OAAO,WAAW,QAAQ,aAAa,CAAC;AAG5C,QAAM,kBAAkB,YAAY,CAAC,UAAkB;AACrD,iBAAa,KAAK;AAClB,mBAAe,EAAE;AAAA,EACnB,GAAG,CAAC,CAAC;AAGL,QAAM,sBAAsB,YAAY,MAAM;AAC5C,qBAAiB,IAAI;AACrB,aAAS,EAAE,MAAM,OAAO,CAAC;AAAA,EAC3B,GAAG,CAAC,CAAC;AAGL,QAAM,aAAa,YAAY,MAAM;AACnC,QAAI,iBAAiB,cAAc,SAAS,WAAW;AACrD,0BAAoB;AACpB;AAAA,IACF;AACA,YAAQ,MAAM,MAAM;AAAA,MAClB,KAAK,QAAQ;AACX,cAAM,iBACJ,QAAQ,SAAS,IACb;AAAA,EAAmB,QAAQ,KAAK,IAAI,CAAC,KACrC;AACN,eAAO,cAAc;AACrB;AAAA,MACF;AAAA,MACA,KAAK;AACH,iBAAS,EAAE,MAAM,OAAO,CAAC;AACzB;AAAA,MACF,KAAK;AACH,iBAAS,EAAE,MAAM,iBAAiB,OAAO,MAAM,MAAM,CAAC;AACtD;AAAA,MACF;AACE,iBAAS,EAAE,MAAM,OAAO,CAAC;AACzB;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,OAAO,eAAe,SAAS,QAAQ,mBAAmB,CAAC;AAG/D,QAAM,cAAc,YAAY,MAAM;AACpC,QAAI,iBAAiB,cAAc,SAAS,WAAW;AACrD,0BAAoB;AACpB;AAAA,IACF;AACA,QAAI,MAAM,SAAS,QAAQ;AACzB,YAAM,iBACJ,QAAQ,SAAS,IAAI;AAAA,EAAmB,QAAQ,KAAK,IAAI,CAAC,KAAK;AACjE,aAAO,cAAc;AAAA,IACvB,OAAO;AACL,eAAS,EAAE,MAAM,OAAO,CAAC;AACzB,qBAAe,EAAE;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,OAAO,eAAe,SAAS,QAAQ,mBAAmB,CAAC;AAG/D,QAAM,eAAe;AAAA,IACnB,OAAO,SAAmB;AACxB,cAAQ,MAAM,MAAM;AAAA,QAClB,KAAK,QAAQ;AACX,cAAI,KAAK,OAAO,cAAc;AAC5B,2BAAe,EAAE,MAAM,QAAQ,CAAC;AAChC,yBAAa,EAAE,MAAM,kBAAkB,CAAC;AACxC,qBAAS,EAAE,MAAM,UAAU,MAAM,EAAE,MAAM,kBAAkB,EAAE,CAAC;AAC9D;AAAA,UACF;AACA,gBAAM,QAAQ,KAAK;AACnB,cAAI,OAAO;AACT,qBAAS,EAAE,MAAM,iBAAiB,MAAM,CAAC;AAAA,UAC3C;AACA;AAAA,QACF;AAAA,QAEA,KAAK,iBAAiB;AACpB,gBAAM,QAAQ,MAAM;AACpB,cAAI,KAAK,OAAO,QAAQ;AACtB,qBAAS,EAAE,MAAM,OAAO,CAAC;AACzB;AAAA,UACF;AACA,cAAI,KAAK,OAAO,QAAQ;AACtB,gBAAI;AACF,0BAAY,KAAK;AAEjB,4BAAc,UAAQ,OAAO,CAAC;AAAA,YAChC,SAAS,KAAK;AACZ,+BAAiB;AAAA,gBACf,MAAM;AAAA,gBACN,SAAS,yBAAyB,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,cACpF,CAAC;AAAA,YACH;AAAA,UACF,WAAW,KAAK,OAAO,QAAQ;AAC7B,qBAAS,EAAE,MAAM,gBAAgB,MAAM,CAAC;AAAA,UAC1C,WAAW,KAAK,OAAO,UAAU;AAC/B,qBAAS,EAAE,MAAM,kBAAkB,MAAM,CAAC;AAAA,UAC5C;AACA;AAAA,QACF;AAAA,QAEA,KAAK,gBAAgB;AACnB,gBAAM,QAAQ,MAAM;AACpB,cAAI,KAAK,OAAO,QAAQ;AACtB,qBAAS,EAAE,MAAM,iBAAiB,MAAM,CAAC;AACzC;AAAA,UACF;AACA,cAAI,KAAK,OAAO,eAAe;AAC7B,gBAAI;AACF,oBAAM,WAAW,iBAAiB,KAAK;AACvC,2BAAa,QAAQ;AAErB,8BAAgB;AAChB,oBAAM,WAAW,MAAM,gBAAgB;AACvC,wBAAU,QAAQ;AAClB,oBAAM,UAAU,SAAS;AAAA,gBACvB,OAAK,EAAE,cAAc,MAAM;AAAA,cAC7B;AACA,kBAAI,SAAS;AACX,yBAAS,EAAE,MAAM,gBAAgB,OAAO,QAAQ,CAAC;AAAA,cACnD;AACA,+BAAiB;AAAA,gBACf,MAAM;AAAA,gBACN,SAAS;AAAA,cACX,CAAC;AAAA,YACH,SAAS,KAAK;AACZ,+BAAiB;AAAA,gBACf,MAAM;AAAA,gBACN,SAAS,0BAA0B,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,cACrF,CAAC;AAAA,YACH;AAAA,UACF,WAAW,KAAK,OAAO,cAAc;AACnC,qBAAS,EAAE,MAAM,cAAc,MAAM,CAAC;AAAA,UACxC,WAAW,KAAK,OAAO,cAAc;AACnC,qBAAS,EAAE,MAAM,cAAc,MAAM,CAAC;AAAA,UACxC,WAAW,KAAK,OAAO,cAAc;AACnC,qBAAS,EAAE,MAAM,cAAc,MAAM,CAAC;AAAA,UACxC;AACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AAGA,QAAM,qBAAqB,YAAY,CAAC,YAAoB;AAC1D,eAAW,UAAQ,CAAC,GAAG,MAAM,OAAO,CAAC;AACrC,kBAAc,UAAQ,OAAO,CAAC;AAC9B,aAAS,EAAE,MAAM,OAAO,CAAC;AAAA,EAC3B,GAAG,CAAC,CAAC;AAEL,QAAM,qBAAqB,YAAY,CAAC,YAAoB;AAC1D,eAAW,UAAQ,CAAC,GAAG,MAAM,OAAO,CAAC;AACrC,kBAAc,UAAQ,OAAO,CAAC;AAC9B,aAAS,EAAE,MAAM,OAAO,CAAC;AAAA,EAC3B,GAAG,CAAC,CAAC;AAEL,QAAM,qBAAqB;AAAA,IACzB,CAAC,SAAiB,YAAyB;AACzC,iBAAW,UAAQ,CAAC,GAAG,MAAM,OAAO,CAAC;AACrC,oBAAc,UAAQ,OAAO,CAAC;AAC9B,eAAS,EAAE,MAAM,iBAAiB,OAAO,QAAQ,CAAC;AAAA,IACpD;AAAA,IACA,CAAC;AAAA,EACH;AAGA,QAAM,qBAAqB,YAAY,CAAC,UAAqB;AAC3D,QAAI,MAAM,SAAS,eAAe;AAChC,eAAS,EAAE,MAAM,OAAO,CAAC;AACzB;AAAA,IACF;AACA,iBAAa,KAAK;AAAA,EACpB,GAAG,CAAC,CAAC;AAGL,MAAI,MAAM,SAAS,UAAU;AAE3B,YAAQ,UAAU,MAAM;AAAA,MACtB,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA;AAAA,QAChB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA;AAAA,QAChB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA,YACd,gBAAgB;AAAA;AAAA,QAClB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA,YACd,gBAAgB;AAAA;AAAA,QAClB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA;AAAA,QAChB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA,YACd;AAAA;AAAA,QACF;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA;AAAA,QAChB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA;AAAA,QAChB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA;AAAA,QAChB;AAAA,MAEJ,KAAK;AACH,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA,cAAc;AAAA,YACd;AAAA,YACA,gBAAgB;AAAA;AAAA,QAClB;AAAA,MAEJ;AAEE,iBAAS,EAAE,MAAM,OAAO,CAAC;AACzB,eAAO;AAAA,IACX;AAAA,EACF;AAEA,MAAI,MAAM,SAAS,cAAc;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb;AAAA,QACA,cAAc,CAAC,UAAqB;AAClC,sBAAY;AACZ,mBAAS,EAAE,MAAM,gBAAgB,OAAO,MAAM,MAAM,CAAC;AAAA,QACvD;AAAA,QACA,gBAAgB;AAAA;AAAA,IAClB;AAAA,EAEJ;AAEA,MAAI,MAAM,SAAS,cAAc;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,cAAc,CAAC,UAAqB;AAClC,sBAAY;AACZ,mBAAS,EAAE,MAAM,gBAAgB,OAAO,MAAM,MAAM,CAAC;AAAA,QACvD;AAAA,QACA,gBAAgB;AAAA;AAAA,IAClB;AAAA,EAEJ;AAEA,MAAI,MAAM,SAAS,cAAc;AAC/B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,cAAc,CAAC,UAAqB;AAClC,sBAAY;AACZ,mBAAS,EAAE,MAAM,gBAAgB,OAAO,MAAM,MAAM,CAAC;AAAA,QACvD;AAAA,QACA,gBAAgB;AAAA;AAAA,IAClB;AAAA,EAEJ;AAEA,MAAI,MAAM,SAAS,kBAAkB;AACnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,cAAc,CAAC,UAAqB;AAClC,sBAAY;AACZ,mBAAS,EAAE,MAAM,iBAAiB,OAAO,MAAM,MAAM,CAAC;AAAA,QACxD;AAAA,QACA,gBAAgB;AAAA;AAAA,IAClB;AAAA,EAEJ;AAGA,QAAM,aACJ,MAAM,SAAS,SACX,YACA,MAAM,SAAS,kBACb,YACA;AAER,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA,iBAAiB,MAAM,SAAS,UAAU,cAAc;AAAA,MACxD,WAAW;AAAA,MACX,aAAY;AAAA,MACZ,WACE,MAAM,SAAS,SACX,iEACA;AAAA,MAEN,mBAAkB;AAAA;AAAA,EACpB;AAEJ;AAgBA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,eAAe,YAAY;AAC/B,QAAI,YAAY,iBAAiB,KAAK,GAAG;AACvC,qBAAe,EAAE,MAAM,qBAAqB,OAAO,KAAK,CAAC;AACzD,qBAAe,EAAE,MAAM,aAAa,OAAO,KAAK,CAAC;AAEjD,UAAI;AACF,cAAM,YAAY,MAAM;AAAA,UACtB,YAAY;AAAA,QACd;AAGA,cAAM,aAAa;AAAA,UACjB,UAAU;AAAA,UACV;AAAA,QACF;AACA,YAAI,kBAAkB,UAAU;AAEhC,YAAI,CAAC,WAAW,SAAS;AAEvB,cAAI,UAAU;AACd,iBAAO,MAAM;AACX,kBAAM,SAAS,GAAG,UAAU,UAAU,IAAI,OAAO;AACjD,kBAAM,iBAAiB,kBAAkB,QAAQ,cAAc;AAC/D,gBAAI,eAAe,SAAS;AAC1B,gCAAkB;AAClB;AAAA,YACF;AACA;AACA,gBAAI,UAAU,IAAI;AAChB,gCAAkB,gBAAgB,KAAK,IAAI,CAAC;AAC5C;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,uBAAe,EAAE,MAAM,kBAAkB,OAAO,gBAAgB,CAAC;AACjE,uBAAe,EAAE,MAAM,mBAAmB,OAAO,UAAU,UAAU,CAAC;AACtE,uBAAe;AAAA,UACb,MAAM;AAAA,UACN,OAAO,UAAU;AAAA,QACnB,CAAC;AACD,uBAAe,EAAE,MAAM,qBAAqB,OAAO,KAAK,CAAC;AACzD,uBAAe,EAAE,MAAM,qBAAqB,OAAO,MAAM,CAAC;AAC1D,qBAAa,EAAE,MAAM,gBAAgB,UAAU,YAAY,SAAS,CAAC;AAAA,MACvE,SAAS,OAAO;AACd,gBAAQ,MAAM,sBAAsB,KAAK;AACzC,uBAAe;AAAA,UACb,MAAM;AAAA,UACN,OACE;AAAA,QACJ,CAAC;AACD,uBAAe,EAAE,MAAM,qBAAqB,OAAO,MAAM,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,EACF;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,UAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,OAAI,WAAW,KACb,YAAY,eACX,oCAAC,OAAI,eAAc,YACjB,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,YAAY,gBACf,GACA,oCAAC,OAAI,WAAW,KACd,oCAAC,kBAAe,MAAK,qCAAoC,CAC3D,CACF,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,YAAY;AAAA,QACnB,UAAU,WACR,eAAe,EAAE,MAAM,yBAAyB,MAAM,CAAC;AAAA,QAEzD,aAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO,YAAY;AAAA,QACnB,MAAM;AAAA;AAAA,IACR,CAEJ;AAAA,EACF,GACA,oCAAC,oBAAe,CAClB;AAEJ;AAOA,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAkB;AAChB,QAAM,eAAe,MAAM;AACzB,UAAM,aAAa,kBAAkB,YAAY,WAAW,cAAc;AAC1E,QAAI,WAAW,SAAS;AACtB,mBAAa,EAAE,MAAM,iBAAiB,UAAU,YAAY,SAAS,CAAC;AAAA,IACxE,OAAO;AACL,qBAAe,EAAE,MAAM,aAAa,OAAO,WAAW,OAAO,CAAC,EAAE,CAAC;AAAA,IACnE;AAAA,EACF;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,UAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,OAAI,WAAW,KACd;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,YAAY;AAAA,QACnB,UAAU,WACR,eAAe,EAAE,MAAM,kBAAkB,MAAM,CAAC;AAAA,QAElD,aAAY;AAAA,QACZ,UAAU;AAAA;AAAA,IACZ,GACC,YAAY,SACX,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAM,SAAM,WAAG,YAAY,KAAM,CACzC,CAEJ;AAAA,EACF,GACA,oCAAC,oBAAe,CAClB;AAEJ;AAGA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,GAAc;AACZ,QAAM,eAAe,MAAM;AACzB,QAAI,YAAY,UAAU,KAAK,GAAG;AAChC,mBAAa,EAAE,MAAM,gBAAgB,UAAU,YAAY,SAAS,CAAC;AAAA,IACvE;AAAA,EACF;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,UAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,OAAI,WAAW,KACd;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,YAAY;AAAA,QACnB,UAAU,WACR,eAAe,EAAE,MAAM,mBAAmB,MAAM,CAAC;AAAA,QAEnD,aAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO,YAAY;AAAA,QACnB,MAAM;AAAA;AAAA,IACR,CACF;AAAA,EACF,GACA,oCAAC,oBAAe,CAClB;AAEJ;AAOA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmB;AACjB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC;AAEpD,QAAM,mBACJ,YAAY,cAAc,SAAS,IAC/B,IAAI,IAAI,YAAY,aAAa,IACjC,IAAI,IAAI,MAAM,IAAI,OAAK,EAAE,IAAI,CAAC;AACpC,QAAM,CAAC,eAAe,gBAAgB,IACpC,SAAsB,gBAAgB;AACxC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAE9C,KAAK;AAGP,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,aAAqC;AAAA,MACzC,MAAM,CAAC;AAAA,MACP,MAAM,CAAC;AAAA,MACP,WAAW,CAAC;AAAA,MACZ,KAAK,CAAC;AAAA,MACN,KAAK,CAAC;AAAA,MACN,OAAO,CAAC;AAAA,IACV;AAEA,UAAM,QAAQ,UAAQ;AACpB,UAAI,cAAc;AAGlB,UAAI,KAAK,KAAK,WAAW,OAAO,GAAG;AACjC,mBAAW,IAAI,KAAK,IAAI;AACxB,sBAAc;AAAA,MAChB,OAAO;AAEL,mBAAW,CAAC,UAAU,SAAS,KAAK,OAAO,QAAQ,eAAe,GAAG;AACnE,cAAI,MAAM,QAAQ,SAAS,KAAK,UAAU,SAAS,KAAK,IAAI,GAAG;AAC7D,uBAAW,QAAmC,GAAG,KAAK,IAAI;AAC1D,0BAAc;AACd;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,aAAa;AAChB,mBAAW,MAAM,KAAK,IAAI;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,eAAe,QAAQ,MAAM;AACjC,QAAI,qBAAqB,OAAO;AAC9B,aAAO;AAAA,IACT;AACA,WAAO,iBAAiB,gBAAgB,KAAK,CAAC;AAAA,EAChD,GAAG,CAAC,kBAAkB,OAAO,gBAAgB,CAAC;AAE9C,QAAM,cAAc,cAAc,SAAS,MAAM,UAAU,MAAM,SAAS;AAC1E,QAAM,kBAAkB;AAAA,IACtB,EAAE,IAAI,OAAO,OAAO,QAAQ,MAAM,MAAM,IAAI;AAAA,IAC5C,EAAE,IAAI,QAAQ,OAAO,SAAS,iBAAiB,KAAK,MAAM,IAAI;AAAA,IAC9D,EAAE,IAAI,QAAQ,OAAO,SAAS,iBAAiB,KAAK,MAAM,IAAI;AAAA,IAC9D;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,cAAc,iBAAiB,UAAU,MAAM;AAAA,IACxD;AAAA,IACA,EAAE,IAAI,OAAO,OAAO,QAAQ,iBAAiB,IAAI,MAAM,IAAI;AAAA,IAC3D,EAAE,IAAI,OAAO,OAAO,QAAQ,iBAAiB,IAAI,MAAM,IAAI;AAAA,IAC3D,EAAE,IAAI,SAAS,OAAO,UAAU,iBAAiB,MAAM,MAAM,IAAI;AAAA,EACnE,EAAE,OAAO,SAAO,IAAI,OAAO,SAAS,iBAAiB,IAAI,EAAE,GAAG,SAAS,CAAC;AAGxE,QAAM,eAAe,iBAAiB,KAAK;AAAA,IAAM,UAC/C,cAAc,IAAI,KAAK,IAAI;AAAA,EAC7B;AACA,QAAM,eAAe,iBAAiB,KAAK;AAAA,IAAM,UAC/C,cAAc,IAAI,KAAK,IAAI;AAAA,EAC7B;AACA,QAAM,eAAe,iBAAiB,UAAU;AAAA,IAAM,UACpD,cAAc,IAAI,KAAK,IAAI;AAAA,EAC7B;AACA,QAAM,cAAc,iBAAiB,IAAI;AAAA,IAAM,UAC7C,cAAc,IAAI,KAAK,IAAI;AAAA,EAC7B;AAEA,QAAM,UASD;AAAA,IACH,EAAE,IAAI,YAAY,OAAO,QAAQ,YAAY,KAAK;AAAA,IAClD;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,cAAc,SAAS,aAAa,SAAS,WAAW;AAAA,MAClE,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,eAAe,SAAS,aAAa,SAAS,WAAW;AAAA,MACnE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,eAAe,SAAS,aAAa,SAAS,WAAW;AAAA,MACnE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,eAAe,SAAS,aAAa,SAAS,WAAW;AAAA,MACnE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,KAAK,eAAe,SAAS,MAAM;AAAA,MAC1C,kBAAkB;AAAA,IACpB;AAAA,IACA,GAAI,eACA,aAAa,IAAI,WAAS;AAAA,MACxB,IAAI,KAAK;AAAA,MACT,OAAO,GAAG,cAAc,IAAI,KAAK,IAAI,IAAI,SAAS,aAAa,SAAS,WAAW,IAAI,KAAK,IAAI;AAAA,MAChG,QAAQ;AAAA,IACV,EAAE,IACF,CAAC;AAAA,EACP;AAEA,QAAM,eAAe,MAAM;AACzB,UAAM,SAAS,QAAQ,aAAa;AACpC,QAAI,CAAC,OAAQ;AACb,QAAI,OAAO,YAAa;AAExB,QAAI,OAAO,YAAY;AACrB,YAAM,SAAS,cAAc,CAAC,GAAG,IAAI,MAAM,KAAK,aAAa;AAC7D,qBAAe,EAAE,MAAM,sBAAsB,OAAO,OAAO,CAAC;AAC5D,mBAAa,EAAE,MAAM,gBAAgB,UAAU,YAAY,SAAS,CAAC;AAAA,IACvE,WAAW,OAAO,kBAAkB;AAClC,sBAAgB,CAAC,YAAY;AAAA,IAC/B,WAAW,OAAO,OAAO;AACvB,UAAI,aAAa;AACf,yBAAiB,oBAAI,IAAI,CAAC;AAAA,MAC5B,OAAO;AACL,yBAAiB,IAAI,IAAI,MAAM,IAAI,OAAK,EAAE,IAAI,CAAC,CAAC;AAAA,MAClD;AAAA,IACF,WAAW,OAAO,YAAY;AAC5B,YAAM,eAAe,OAAO;AAC5B,YAAM,gBAAgB,iBAAiB,YAAY,KAAK,CAAC;AACzD,YAAM,cAAc,IAAI,IAAI,aAAa;AAEzC,YAAM,mBAAmB,cAAc;AAAA,QAAM,UAC3C,cAAc,IAAI,KAAK,IAAI;AAAA,MAC7B;AACA,UAAI,kBAAkB;AAEpB,sBAAc,QAAQ,UAAQ,YAAY,OAAO,KAAK,IAAI,CAAC;AAAA,MAC7D,OAAO;AAEL,sBAAc,QAAQ,UAAQ,YAAY,IAAI,KAAK,IAAI,CAAC;AAAA,MAC1D;AACA,uBAAiB,WAAW;AAAA,IAC9B,WAAW,OAAO,QAAQ;AACxB,YAAM,cAAc,IAAI,IAAI,aAAa;AACzC,UAAI,YAAY,IAAI,OAAO,EAAE,GAAG;AAC9B,oBAAY,OAAO,OAAO,EAAE;AAAA,MAC9B,OAAO;AACL,oBAAY,IAAI,OAAO,EAAE;AAAA,MAC3B;AACA,uBAAiB,WAAW;AAAA,IAC9B;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa;AAAA,IACf,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAQ;AACvB,YAAI,WAAW,OAAO,IAAI,OAAO,IAAI,QAAQ,SAAS;AAEtD,eAAO,QAAQ,QAAQ,KAAM,QAAQ,QAAQ,EAAU,aAAa;AAClE,qBAAW,WAAW,IAAI,WAAW,IAAI,QAAQ,SAAS;AAAA,QAC5D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAQ;AACvB,YAAI,WAAW,OAAO,QAAQ,SAAS,IAAI,OAAO,IAAI;AAEtD,eAAO,QAAQ,QAAQ,KAAM,QAAQ,QAAQ,EAAU,aAAa;AAClE,qBAAW,WAAW,QAAQ,SAAS,IAAI,WAAW,IAAI;AAAA,QAC5D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,8BAAsB,UAAS,IAAG,MAAM,GAAG,YAAY,KACnE,oCAAC,OAAI,eAAc,UAAS,WAAW,KACpC,QAAQ,IAAI,CAAC,QAAQ,QAAQ;AAC5B,UAAM,aAAa,QAAQ;AAC3B,UAAM,aAAa,OAAO;AAC1B,UAAM,mBAAmB,OAAO;AAChC,UAAM,cAAc,OAAO;AAE3B,WACE,oCAAC,OAAI,KAAK,OAAO,MACf;AAAA,MAAC;AAAA;AAAA,QACC,OACE,cAAc,CAAC,cACX,SACA,cACE,gBAAgB,MAChB;AAAA,QAER,MAAM;AAAA;AAAA,MAEL,cACG,OAAO,QACP,GAAG,aAAa,GAAG,SAAS,OAAO,MAAM,IAAI,GAAG,cAAc,mBAAmB,GAAG,OAAO,KAAK,KAAK,OAAO,KAAK;AAAA,IACvH,GACC,OAAO,UACN,cACA,MAAM,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,GAAG,eACrC,oCAAC,OAAI,YAAY,KACf,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,MAAM,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,GAAG,WAC1C,CACF,CAEN;AAAA,EAEJ,CAAC,GAED,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,cACG,uBACA,GAAG,cAAc,IAAI,OAAO,MAAM,MAAM,iBAC9C,GACC,qBAAqB,SACpB,oCAAC,QAAK,OAAO,gBAAgB,OAAK,eACpB,kBAAiB,QAC/B,CAEJ,CACF,CACF,GACA,oCAAC,kBAAe,cAAa,6DAAwC,CACvE;AAEJ;AAGA,SAAS,UAAU,EAAE,aAAa,gBAAgB,aAAa,GAAc;AAC3E,QAAM,QAAQ,SAAS;AACvB,QAAM,UAAU,gBAAgB;AAChC,QAAM,WAAW,QAAQ,uBAAuB;AAGhD,QAAM,gBAAgB,SAAS,OAAO,CAAC,KAAU,YAAiB;AAChE,UAAM,WAAW,QAAQ,YAAY;AACrC,QAAI,CAAC,IAAI,QAAQ,EAAG,KAAI,QAAQ,IAAI,CAAC;AACrC,QAAI,QAAQ,EAAE,KAAK,OAAO;AAC1B,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAGL,QAAM,eAAe;AAAA,IACnB;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,WAAW;AAAA,IACb;AAAA,IACA,GAAG,OAAO,QAAQ,aAAa,EAAE;AAAA,MAAQ,CAAC,CAAC,UAAU,MAAM,MACzD,OAAO,IAAI,CAAC,OAAY;AAAA,QACtB,IAAI,EAAE;AAAA,QACN,MAAM,EAAE;AAAA,QACR;AAAA,QACA,WAAW,EAAE;AAAA,MACf,EAAE;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,MAAM;AACvD,UAAM,MAAM,aAAa,UAAU,OAAK,EAAE,OAAO,YAAY,aAAa;AAC1E,WAAO,OAAO,IAAI,MAAM;AAAA,EAC1B,CAAC;AAED,QAAM,eAAe,CAAC,YAA2B;AAC/C,mBAAe,EAAE,MAAM,sBAAsB,OAAO,QAAQ,CAAC;AAC7D,iBAAa,EAAE,MAAM,gBAAgB,UAAU,YAAY,SAAS,CAAC;AAAA,EACvE;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa,aAAa,aAAa,EAAE,EAAE;AAAA,IAC7C,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAS,OAAO,IAAI,OAAO,IAAI,aAAa,SAAS,CAAE;AAAA,IAC1E,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAS,OAAO,aAAa,SAAS,IAAI,OAAO,IAAI,CAAE;AAAA,IAC1E;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,0BAAkB,UAAS,IAAG,MAAM,GAAG,YAAY,KAC/D,oCAAC,OAAI,WAAW,GAAG,eAAc,YAC9B,aAAa,IAAI,CAAC,OAAO,UAAU;AAClC,UAAM,aAAa,UAAU;AAC7B,UAAM,YAAY,MAAM,OAAO;AAE/B,WACE,oCAAC,OAAI,KAAK,MAAM,MAAM,WAAW,cAAc,KAC7C,oCAAC,OAAI,eAAc,OAAM,KAAK,KAC5B,oCAAC,QAAK,OAAO,aAAa,MAAM,UAAU,UACvC,aAAa,SAAS,UAAU,GACnC,GACA,oCAAC,OAAI,eAAc,UAAS,UAAU,KACpC,oCAAC,OAAI,eAAc,OAAM,KAAK,KAC5B;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,OAAO,aAAa,MAAM,UAAU;AAAA;AAAA,MAEnC,MAAM;AAAA,IACT,GACC,CAAC,aACA,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,MAAM,UAAS,YAAI,MAAM,SAC5B,CAEJ,CACF,CACF,CACF;AAAA,EAEJ,CAAC,CACH,CACF,GACA,oCAAC,kBAAe,cAAa,6CAA6B,CAC5D;AAEJ;AAGA,SAAS,UAAU,EAAE,aAAa,gBAAgB,aAAa,GAAc;AAC3E,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC;AAGpD,QAAM,SAAS;AAAA,IACb,EAAE,OAAO,WAAW,OAAO,MAAM,cAAc,KAAK;AAAA,IACpD,EAAE,OAAO,UAAU,OAAO,UAAU,cAAc,SAAS;AAAA,IAC3D,EAAE,OAAO,QAAQ,OAAO,QAAQ,cAAc,OAAO;AAAA,IACrD,EAAE,OAAO,WAAW,OAAO,WAAW,cAAc,UAAU;AAAA,IAC9D,EAAE,OAAO,QAAQ,OAAO,QAAQ,cAAc,OAAO;AAAA,IACrD,EAAE,OAAO,QAAQ,OAAO,QAAQ,cAAc,OAAO;AAAA,IACrD,EAAE,OAAO,SAAS,OAAO,SAAS,cAAc,QAAQ;AAAA,EAC1D;AAEA,QAAM,eAAe,CAAC,UAAyB;AAC7C,mBAAe,EAAE,MAAM,sBAAsB,MAAa,CAAC;AAC3D,iBAAa,EAAE,MAAM,kBAAkB,UAAU,YAAY,SAAS,CAAC;AAAA,EACzE;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa,OAAO,aAAa,EAAE,KAAK;AAAA,IAC1C,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAS,OAAO,IAAI,OAAO,IAAI,OAAO,SAAS,CAAE;AAAA,IACpE,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAS,OAAO,OAAO,SAAS,IAAI,OAAO,IAAI,CAAE;AAAA,IACpE;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,yBAAiB,UAAS,IAAG,MAAM,GAAG,YAAY,KAC9D,oCAAC,OAAI,WAAW,GAAG,eAAc,YAC/B,oCAAC,OAAI,cAAc,KACjB,oCAAC,QAAK,OAAO,gBAAgB,OAAK,4CAElC,CACF,GACC,OAAO,IAAI,CAAC,OAAO,QAAQ;AAC1B,UAAM,aAAa,QAAQ;AAC3B,WACE,oCAAC,OAAI,KAAK,KAAK,eAAc,SAC3B,oCAAC,QAAK,OAAO,aAAa,MAAM,UAAU,UACvC,aAAa,YAAO,IACvB,GACA,oCAAC,OAAI,UAAU,MACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,OAAO,MAAM,gBAAgB;AAAA;AAAA,MAE5B,MAAM;AAAA,IACT,CACF,CACF;AAAA,EAEJ,CAAC,GACD,oCAAC,OAAI,WAAW,GAAG,aAAa,KAC9B,oCAAC,YAAK,WAAS,GACf,oCAAC,QAAK,MAAI,MAAC,OAAO,OAAO,aAAa,EAAE,gBAAgB,UACrD,YAAY,aAAa,YAC5B,CACF,CACF,CACF,GACA,oCAAC,kBAAe,cAAa,6CAA6B,CAC5D;AAEJ;AAGA,SAAS,WAAW,EAAE,aAAa,gBAAgB,aAAa,GAAc;AAC5E,QAAM,eAAe,MAAM;AACzB,QAAI,YAAY,aAAa,KAAK,GAAG;AACnC,mBAAa;AAAA,QACX,MAAM;AAAA,QACN,UAAU,YAAY;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,UAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,OAAI,WAAW,KACd;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,YAAY;AAAA,QACnB,UAAU,WACR,eAAe,EAAE,MAAM,qBAAqB,MAAM,CAAC;AAAA,QAErD,aAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO,YAAY;AAAA,QACnB,MAAM;AAAA;AAAA,IACR,CACF;AAAA,EACF,GACA,oCAAC,oBAAe,CAClB;AAEJ;AAQA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAqB;AACnB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,QAAQ,SAAS;AAEvB,QAAM,gBAAgB,YAAY;AAChC,kBAAc,IAAI;AAClB,QAAI;AACF,YAAM;AAAA,QACJ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY,iBAAiB;AAAA,MAC/B;AACA,qBAAe,kBAAkB,YAAY,SAAS,EAAE;AAAA,IAC1D,SAAS,OAAO;AACd,qBAAe,EAAE,MAAM,aAAa,OAAQ,MAAgB,QAAQ,CAAC;AACrE,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,QAAM,aAAa,oBAAoB,WAAW;AAClD,QAAM,YAAY,YAAY,cAAc,SAAS,GAAG,IACpD,cACA,YAAY,cAAc,SAAS,IACjC,YAAY,cAAc,KAAK,IAAI,IACnC;AAEN,QAAM,qBAAqB,YAAY;AACrC,UAAM,WACJ,YAAY,aAAa,YACrB,KAAK;AAAA,MACH,QAAQ,IAAI;AAAA,MACZ;AAAA,MACA;AAAA,MACA,GAAG,YAAY,SAAS;AAAA,IAC1B,IACA,KAAK;AAAA,MACH,GAAG,QAAQ;AAAA,MACX;AAAA,MACA;AAAA,MACA,GAAG,YAAY,SAAS;AAAA,IAC1B;AAEN,QAAI;AAEF,YAAM;AAAA,QACJ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,YAAY,iBAAiB;AAAA,MAC/B;AAGA,YAAM,UACJ,QAAQ,aAAa,UACjB,UACA,QAAQ,aAAa,WACnB,SACA;AACR,YAAM,UAAU,GAAG,OAAO,KAAK,QAAQ,GAAG;AAC1C,qBAAe,kBAAkB,YAAY,SAAS,EAAE;AAAA,IAC1D,SAAS,OAAO;AACd,qBAAe,EAAE,MAAM,aAAa,OAAQ,MAAgB,QAAQ,CAAC;AAAA,IACvE;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,WAAY;AAEhB,SAAK,IAAI,UAAU,UAAU,QAAQ,CAAC,YAAY;AAChD,oBAAc;AAAA,IAChB,WAAW,UAAU,KAAK;AACxB,yBAAmB;AAAA,IACrB,WAAW,IAAI,QAAQ;AACrB,mBAAa,EAAE,MAAM,gBAAgB,UAAU,YAAY,SAAU,CAAC;AAAA,IACxE;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,0BAAoB,UAAS,MACzC,oCAAC,OAAI,eAAc,UAAS,WAAW,KACrC,oCAAC,OAAI,cAAc,KACjB,oCAAC,QAAK,MAAI,MAAC,OAAO,MAAM,WAAS,yBAEjC,CACF,GAEA,oCAAC,OAAI,eAAc,UAAS,KAAK,KAC/B,oCAAC,YAAK,WACF,oCAAC,QAAK,MAAI,QAAC,WAAS,GAAO,KAAE,YAAY,SAC7C,GACA,oCAAC,YAAK,WACF,oCAAC,QAAK,MAAI,QAAC,WAAS,GAAQ,KAC7B,YAAY,aAAa,YAAY,YAAY,UACpD,GACA,oCAAC,YAAK,WACF,oCAAC,QAAK,MAAI,QAAC,QAAM,GAAQ,KAC1B,UAAU,SAAS,KAChB,UAAU,MAAM,GAAG,EAAE,IAAI,QACzB,SACN,GACA,oCAAC,YAAK,WACF,oCAAC,QAAK,MAAI,QAAC,QAAM,GAAQ,KAC1B,oBAAoB,YAAY,aAAa,CAChD,GACC,YAAY,iBACX,oCAAC,YAAK,WACF,oCAAC,QAAK,MAAI,QAAC,QAAM,GAAQ,KAC3B,oCAAC,QAAK,OAAO,YAAY,iBACtB,YAAY,aACf,CACF,CAEJ,GAEA,oCAAC,OAAI,WAAW,GAAG,cAAc,KAC/B,oCAAC,QAAK,MAAI,MAAC,OAAO,MAAM,WAAS,mBAEjC,CACF,GACA,oCAAC,OAAI,aAAa,KAChB,oCAAC,YAAM,YAAY,SAAU,CAC/B,GAEC,WAAW,SAAS,SAAS,KAC5B,oCAAC,OAAI,WAAW,KACd,oCAAC,YACC,oCAAC,QAAK,MAAI,QAAC,WAAS,CACtB,GACC,WAAW,SAAS,IAAI,CAAC,SAAS,QACjC,oCAAC,YAAS,KAAK,OACb,oCAAC,QAAK,OAAO,MAAM,WAAS,YAAI,OAAQ,CAC1C,CACD,CACH,GAGD,YAAY,SACX,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAO,MAAM,SAAO,WAAG,YAAY,KAAM,CACjD,GAGF,oCAAC,OAAI,WAAW,KACb,aAAa,oCAAC,kBAAe,MAAK,qBAAoB,IAAK,IAC9D,CACF,CACF,GACA,oCAAC,kBAAe,cAAa,4CAAiC,CAChE;AAEJ;AASA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC;AAEpD,QAAM,UAAU;AAAA,IACd,EAAE,OAAO,qBAAc,OAAO,WAAW,MAAM,iBAAiB;AAAA,IAChE,EAAE,OAAO,sBAAe,OAAO,QAAQ,MAAM,mBAAmB;AAAA,EAClE;AAEA,QAAM,eAAe,CAAC,UAAkB;AACtC,mBAAe,EAAE,MAAM,gBAAgB,MAA8B,CAAC;AACtE,mBAAe,EAAE,MAAM,cAAc,OAAO,WAAW,CAAC;AACxD,iBAAa,EAAE,MAAM,mBAAmB,UAAU,MAAuB,CAAC;AAAA,EAC5E;AAEA,QAAM,eAAe,MAAM;AACzB,iBAAa,EAAE,MAAM,eAAe,UAAU,MAAuB,CAAC;AAAA,EACxE;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa;AAAA,IACf,WAAW,IAAI,QAAQ;AACrB,mBAAa,QAAQ,aAAa,EAAE,KAAK;AAAA,IAC3C,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAS,OAAO,IAAI,OAAO,IAAI,QAAQ,SAAS,CAAE;AAAA,IACrE,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAS,OAAO,QAAQ,SAAS,IAAI,OAAO,IAAI,CAAE;AAAA,IACrE;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,2BAAmB,UAAS,IAAG,MAAM,GAAG,YAAY,KAChE,oCAAC,OAAI,WAAW,GAAG,eAAc,YAC9B,QAAQ,IAAI,CAAC,KAAK,QACjB,oCAAC,OAAI,KAAK,IAAI,OAAO,eAAc,UAAS,cAAc,KACxD,oCAAC,QAAK,OAAO,QAAQ,gBAAgB,MAAM,UAAU,UAClD,QAAQ,gBAAgB,YAAO,MAC/B,IAAI,KACP,GACA,oCAAC,OAAI,YAAY,KACf,oCAAC,QAAK,OAAO,gBAAgB,OAAM,IAAI,IAAK,CAC9C,CACF,CACD,CACH,CACF,GACA,oCAAC,kBAAe,cAAa,6CAA6B,CAC5D;AAEJ;AASA,SAAS,aAAa;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC;AAEpD,QAAM,UAAU;AAAA,IACd,EAAE,OAAO,sCAAsC,OAAO,WAAW;AAAA,IACjE,EAAE,OAAO,wBAAwB,OAAO,SAAS;AAAA,EACnD;AAEA,QAAM,eAAe,CAAC,UAAkB;AACtC,mBAAe;AAAA,MACb,MAAM;AAAA,MACN;AAAA,IACF,CAAC;AACD,QAAI,UAAU,YAAY;AACxB,qBAAe,EAAE,MAAM,uBAAuB,OAAO,KAAK,CAAC;AAC3D,mBAAa,EAAE,MAAM,mBAAmB,UAAU,YAAY,SAAS,CAAC;AAAA,IAC1E,OAAO;AACL,qBAAe,EAAE,MAAM,uBAAuB,OAAO,MAAM,CAAC;AAC5D,mBAAa,EAAE,MAAM,eAAe,UAAU,YAAY,SAAS,CAAC;AAAA,IACtE;AAAA,EACF;AAEA,QAAM,eAAe,MAAM;AACzB,iBAAa,EAAE,MAAM,kBAAkB,CAAC;AAAA,EAC1C;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa;AAAA,IACf,WAAW,IAAI,QAAQ;AACrB,mBAAa,QAAQ,aAAa,EAAE,KAAK;AAAA,IAC3C,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAS,OAAO,IAAI,OAAO,IAAI,QAAQ,SAAS,CAAE;AAAA,IACrE,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAS,OAAO,QAAQ,SAAS,IAAI,OAAO,IAAI,CAAE;AAAA,IACrE;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,UAAS;AAAA,MACT,MAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,OAAI,WAAW,KACd;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA;AAAA,IACZ,CACF;AAAA,EACF,GACA,oCAAC,oBAAe,CAClB;AAEJ;AAYA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC;AAGpD,QAAM,eAAe,MAAM,QAAQ,MAAM,KAAK,IAC1C,MAAM,QACN,MAAM,UAAU,MACd,MAAM,IAAI,OAAK,EAAE,IAAI,IACrB,CAAC;AACP,QAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,IACxC,IAAI,IAAI,YAAY;AAAA,EACtB;AACA,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AAGtD,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,aAAqC;AAAA,MACzC,MAAM,CAAC;AAAA,MACP,MAAM,CAAC;AAAA,MACP,WAAW,CAAC;AAAA,MACZ,KAAK,CAAC;AAAA,MACN,OAAO,CAAC;AAAA,IACV;AAEA,UAAM,QAAQ,UAAQ;AACpB,UAAI,cAAc;AAGlB,iBAAW,CAAC,UAAU,SAAS,KAAK,OAAO,QAAQ,eAAe,GAAG;AACnE,YAAI,MAAM,QAAQ,SAAS,KAAK,UAAU,SAAS,KAAK,IAAI,GAAG;AAC7D,qBAAW,QAAmC,GAAG,KAAK,IAAI;AAC1D,wBAAc;AACd;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,aAAa;AAChB,mBAAW,MAAM,KAAK,IAAI;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,KAAK,CAAC;AAEV,QAAM,cAAc,cAAc,SAAS,MAAM,UAAU,MAAM,SAAS;AAC1E,QAAM,eACJ,iBAAiB,KAAK,MAAM,UAAQ,cAAc,IAAI,KAAK,IAAI,CAAC,KAChE,iBAAiB,KAAK,SAAS;AACjC,QAAM,eACJ,iBAAiB,KAAK,MAAM,UAAQ,cAAc,IAAI,KAAK,IAAI,CAAC,KAChE,iBAAiB,KAAK,SAAS;AACjC,QAAM,eACJ,iBAAiB,UAAU,MAAM,UAAQ,cAAc,IAAI,KAAK,IAAI,CAAC,KACrE,iBAAiB,UAAU,SAAS;AAEtC,QAAM,UAAU;AAAA,IACd,EAAE,IAAI,YAAY,OAAO,QAAQ,YAAY,KAAK;AAAA,IAClD;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,cAAc,SAAS,aAAa,SAAS,WAAW;AAAA,MAClE,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,eAAe,SAAS,aAAa,SAAS,WAAW;AAAA,MACnE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,eAAe,SAAS,aAAa,SAAS,WAAW;AAAA,MACnE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,GAAG,eAAe,SAAS,aAAa,SAAS,WAAW;AAAA,MACnE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,IAAI;AAAA,MACJ,OAAO,KAAK,eAAe,SAAS,MAAM;AAAA,MAC1C,kBAAkB;AAAA,IACpB;AAAA,IACA,GAAI,eACA,MAAM,IAAI,WAAS;AAAA,MACjB,IAAI,KAAK;AAAA,MACT,OAAO,GAAG,cAAc,IAAI,KAAK,IAAI,IAAI,SAAS,aAAa,SAAS,WAAW,IAAI,KAAK,IAAI;AAAA,MAChG,QAAQ;AAAA,IACV,EAAE,IACF,CAAC;AAAA,EACP;AAEA,QAAM,aAAa,YAAY;AAC7B,kBAAc,IAAI;AAClB,QAAI;AAEF,YAAM,aAA6B,cAC/B,MACA,MAAM,KAAK,aAAa;AAC5B,YAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,QACL,MAAc;AAAA,MACjB;AAGA,sBAAgB;AAChB,YAAM,cAAc,MAAM,gBAAgB;AAC1C,YAAM,eAAe,YAAY;AAAA,QAC/B,OAAK,EAAE,cAAc,MAAM;AAAA,MAC7B;AAEA,UAAI,cAAc;AAChB;AAAA,UACE,4BAA4B,MAAM,SAAS;AAAA,UAC3C;AAAA,QACF;AACA,qBAAa,EAAE,MAAM,cAAc,eAAe,aAAa,CAAC;AAAA,MAClE,OAAO;AACL,gBAAQ,MAAM,yCAAyC;AAEvD,cAAM,gBAA6B;AAAA,UACjC,GAAG;AAAA,UACH,OACE,WAAW,WAAW,KAAK,WAAW,CAAC,MAAM,MAAM,MAAM;AAAA,QAC7D;AACA;AAAA,UACE,4BAA4B,MAAM,SAAS;AAAA,UAC3C;AAAA,QACF;AACA,qBAAa,EAAE,MAAM,cAAc,eAAe,cAAc,CAAC;AAAA,MACnE;AAAA,IACF,SAAS,KAAK;AACZ,cAAQ,MAAM,iCAAiC,GAAG;AAClD;AAAA,QACE,2BAA2B,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,MAC7E;AAAA,IACF,UAAE;AACA,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,QAAM,eAAe,MAAM;AACzB,aAAS,IAAI;AACb,UAAM,SAAS,QAAQ,aAAa;AACpC,QAAI,CAAC,OAAQ;AACb,QAAI,OAAO,YAAa;AAExB,QAAI,OAAO,YAAY;AACrB,iBAAW;AAAA,IACb,WAAW,OAAO,kBAAkB;AAClC,sBAAgB,CAAC,YAAY;AAAA,IAC/B,WAAW,OAAO,OAAO;AACvB,UAAI,aAAa;AACf,yBAAiB,oBAAI,IAAI,CAAC;AAAA,MAC5B,OAAO;AACL,yBAAiB,IAAI,IAAI,MAAM,IAAI,OAAK,EAAE,IAAI,CAAC,CAAC;AAAA,MAClD;AAAA,IACF,WAAW,OAAO,YAAY;AAC5B,YAAM,eAAe,OAAO;AAC5B,YAAM,gBAAgB,iBAAiB,YAAY,KAAK,CAAC;AACzD,YAAM,cAAc,IAAI,IAAI,aAAa;AAEzC,YAAM,mBAAmB,cAAc;AAAA,QAAM,UAC3C,cAAc,IAAI,KAAK,IAAI;AAAA,MAC7B;AACA,UAAI,kBAAkB;AACpB,sBAAc,QAAQ,UAAQ,YAAY,OAAO,KAAK,IAAI,CAAC;AAAA,MAC7D,OAAO;AACL,sBAAc,QAAQ,UAAQ,YAAY,IAAI,KAAK,IAAI,CAAC;AAAA,MAC1D;AACA,uBAAiB,WAAW;AAAA,IAC9B,WAAW,OAAO,QAAQ;AACxB,YAAM,cAAc,IAAI,IAAI,aAAa;AACzC,UAAI,YAAY,IAAI,OAAO,EAAE,GAAG;AAC9B,oBAAY,OAAO,OAAO,EAAE;AAAA,MAC9B,OAAO;AACL,oBAAY,IAAI,OAAO,EAAE;AAAA,MAC3B;AACA,uBAAiB,WAAW;AAAA,IAC9B;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa,EAAE,MAAM,cAAc,eAAe,MAAM,CAAC;AAAA,IAC3D,WAAW,IAAI,UAAU,CAAC,YAAY;AACpC,mBAAa;AAAA,IACf,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAQ;AACvB,YAAI,WAAW,OAAO,IAAI,OAAO,IAAI,QAAQ,SAAS;AAEtD,eAAO,QAAQ,QAAQ,KAAM,QAAQ,QAAQ,EAAU,aAAa;AAClE,qBAAW,WAAW,IAAI,WAAW,IAAI,QAAQ,SAAS;AAAA,QAC5D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAQ;AACvB,YAAI,WAAW,OAAO,QAAQ,SAAS,IAAI,OAAO,IAAI;AAEtD,eAAO,QAAQ,QAAQ,KAAM,QAAQ,QAAQ,EAAU,aAAa;AAClE,qBAAW,WAAW,QAAQ,SAAS,IAAI,WAAW,IAAI;AAAA,QAC5D;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,MAAI,YAAY;AACd,WACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAO,eAAe,MAAM,SAAS,MAC3C,oCAAC,OAAI,WAAW,KACd,oCAAC,kBAAe,MAAK,2BAA0B,CACjD,CACF,GACA,oCAAC,oBAAe,CAClB;AAAA,EAEJ;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAO,eAAe,MAAM,SAAS,MAC1C,SACC,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAM,SAAM,WAAG,KAAM,CAC7B,GAEF,oCAAC,OAAI,eAAc,UAAS,WAAW,KACpC,QAAQ,IAAI,CAAC,QAAQ,QAAQ;AAC5B,UAAM,aAAa,QAAQ;AAC3B,UAAM,aAAa,gBAAgB,UAAU,OAAO;AACpD,UAAM,mBAAoB,OAAe;AACzC,UAAM,cAAe,OAAe;AAEpC,WACE,oCAAC,OAAI,KAAK,OAAO,MACf;AAAA,MAAC;AAAA;AAAA,QACC,OACE,cAAc,CAAC,cACX,SACA,cACE,gBAAgB,MAChB;AAAA,QAER,MAAM;AAAA;AAAA,MAEL,cACG,OAAO,QACP,GAAG,aAAa,GAAG,SAAS,OAAO,MAAM,IAAI,GAAG,cAAc,mBAAmB,OAAO,QAAQ,OAAO,KAAK;AAAA,IAClH,GACE,OAAe,UACf,cACA,MAAM,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,GAAG,eACrC,oCAAC,OAAI,YAAY,KACf,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,MAAM,KAAK,OAAK,EAAE,SAAS,OAAO,EAAE,GAAG,WAC1C,CACF,CAEN;AAAA,EAEJ,CAAC,GAED,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAO,gBAAgB,OAC1B,cACG,uBACA,GAAG,cAAc,IAAI,OAAO,MAAM,MAAM,iBAC9C,CACF,CACF,CACF,GACA,oCAAC,kBAAe,cAAa,mEAAkD,CACjF;AAEJ;AASA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,UAAU,gBAAgB;AAChC,QAAM,WAAW,QAAQ,uBAAuB;AAChD,QAAM,eAAgB,MAAc,SAAS;AAG7C,QAAM,eAAe;AAAA,IACnB;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,GAAG,SAAS,IAAI,CAAC,OAAY;AAAA,MAC3B,IAAI,EAAE;AAAA,MACN,MAAM,EAAE;AAAA,MACR,aAAa,GAAG,EAAE,YAAY,UAAU,SAAM,EAAE,SAAS;AAAA,IAC3D,EAAE;AAAA,EACJ;AAGA,QAAM,eAAe,aAAa,UAAU,OAAK,EAAE,OAAO,YAAY;AACtE,QAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,IACxC,gBAAgB,IAAI,eAAe;AAAA,EACrC;AACA,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,QAAM,aAAa,OAAO,YAA2B;AACnD,kBAAc,IAAI;AAClB,QAAI;AACF,YAAM,aAAa,YAAY,OAAO,SAAY;AAClD,YAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,MACF;AAGA,sBAAgB;AAChB,YAAM,cAAc,MAAM,gBAAgB;AAC1C,YAAM,eAAe,YAAY;AAAA,QAC/B,OAAK,EAAE,cAAc,MAAM;AAAA,MAC7B;AAEA,UAAI,cAAc;AAChB;AAAA,UACE,4BAA4B,MAAM,SAAS;AAAA,UAC3C;AAAA,QACF;AACA,qBAAa,EAAE,MAAM,cAAc,eAAe,aAAa,CAAC;AAAA,MAClE,OAAO;AACL,gBAAQ,MAAM,yCAAyC;AAEvD,cAAM,gBAA6B,EAAE,GAAG,MAAM;AAC9C,YAAI,YAAY;AACd;AAAC,UAAC,cAAsB,QAAQ;AAAA,QAClC,OAAO;AACL,iBAAQ,cAAsB;AAAA,QAChC;AACA;AAAA,UACE,4BAA4B,MAAM,SAAS;AAAA,UAC3C;AAAA,QACF;AACA,qBAAa,EAAE,MAAM,cAAc,eAAe,cAAc,CAAC;AAAA,MACnE;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD,UAAE;AACA,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa,EAAE,MAAM,cAAc,eAAe,MAAM,CAAC;AAAA,IAC3D,WAAW,IAAI,UAAU,CAAC,YAAY;AACpC,iBAAW,aAAa,aAAa,EAAE,EAAE;AAAA,IAC3C,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAS,OAAO,IAAI,OAAO,IAAI,aAAa,SAAS,CAAE;AAAA,IAC1E,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAS,OAAO,aAAa,SAAS,IAAI,OAAO,IAAI,CAAE;AAAA,IAC1E;AAAA,EACF,CAAC;AAED,MAAI,YAAY;AACd,WACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAO,eAAe,MAAM,SAAS,MAC3C,oCAAC,OAAI,WAAW,KACd,oCAAC,kBAAe,MAAK,2BAA0B,CACjD,CACF,GACA,oCAAC,oBAAe,CAClB;AAAA,EAEJ;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,eAAe,MAAM,SAAS;AAAA,MACrC,UAAS;AAAA;AAAA,IAET,oCAAC,OAAI,WAAW,KACd;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,aAAa,IAAI,CAAC,GAAG,OAAO;AAAA,UACnC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,cAAc;AAAA,EAAK,EAAE,WAAW,KAAK,EAAE;AAAA,UACtE,OAAO,EAAE;AAAA,QACX,EAAE;AAAA,QACF;AAAA,QACA,UAAU,SAAO,WAAW,GAAG;AAAA,QAC/B,UAAU;AAAA;AAAA,IACZ,CACF;AAAA,EACF,GACA,oCAAC,kBAAe,cAAa,yDAAwC,CACvE;AAEJ;AASA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,eAAe,MAAM,SAAS;AAGpC,QAAM,SAAS;AAAA,IACb,EAAE,OAAO,mBAAmB,OAAO,KAAK;AAAA,IACxC,EAAE,OAAO,UAAU,OAAO,SAAS;AAAA,IACnC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,IAC/B,EAAE,OAAO,WAAW,OAAO,UAAU;AAAA,IACrC,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,IAC/B,EAAE,OAAO,QAAQ,OAAO,OAAO;AAAA,IAC/B,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,EACnC;AAGA,QAAM,eAAe,OAAO,UAAU,WAAS,MAAM,UAAU,YAAY;AAC3E,QAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,IACxC,gBAAgB,IAAI,eAAe;AAAA,EACrC;AACA,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AAEtD,QAAM,aAAa,OAAO,UAAyB;AACjD,aAAS,IAAI;AACb,kBAAc,IAAI;AAClB,QAAI;AACF,YAAM,aAAa,UAAU,OAAO,SAAY;AAChD,YAAM;AAAA,QACJ;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACC,MAAc;AAAA,MACjB;AAGA,sBAAgB;AAChB,YAAM,cAAc,MAAM,gBAAgB;AAC1C,YAAM,eAAe,YAAY;AAAA,QAC/B,OAAK,EAAE,cAAc,MAAM;AAAA,MAC7B;AAEA,UAAI,cAAc;AAChB;AAAA,UACE,4BAA4B,MAAM,SAAS;AAAA,UAC3C;AAAA,QACF;AACA,qBAAa,EAAE,MAAM,cAAc,eAAe,aAAa,CAAC;AAAA,MAClE,OAAO;AACL,gBAAQ,MAAM,yCAAyC;AAEvD,cAAM,gBAA6B;AAAA,UACjC,GAAG;AAAA,UACH,GAAI,aAAa,EAAE,OAAO,WAAW,IAAI,EAAE,OAAO,OAAU;AAAA,QAC9D;AACA;AAAA,UACE,4BAA4B,MAAM,SAAS;AAAA,UAC3C;AAAA,QACF;AACA,qBAAa,EAAE,MAAM,cAAc,eAAe,cAAc,CAAC;AAAA,MACnE;AAAA,IACF,SAAS,KAAK;AACZ,cAAQ,MAAM,iCAAiC,GAAG;AAClD;AAAA,QACE,2BAA2B,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,MAC7E;AAAA,IACF,UAAE;AACA,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,mBAAa,EAAE,MAAM,cAAc,eAAe,MAAM,CAAC;AAAA,IAC3D,WAAW,IAAI,UAAU,CAAC,YAAY;AACpC,eAAS,IAAI;AACb,iBAAW,OAAO,aAAa,EAAE,KAAK;AAAA,IACxC,WAAW,IAAI,SAAS;AACtB,uBAAiB,UAAS,OAAO,IAAI,OAAO,IAAI,OAAO,SAAS,CAAE;AAAA,IACpE,WAAW,IAAI,WAAW;AACxB,uBAAiB,UAAS,OAAO,OAAO,SAAS,IAAI,OAAO,IAAI,CAAE;AAAA,IACpE;AAAA,EACF,CAAC;AAED,MAAI,YAAY;AACd,WACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAO,eAAe,MAAM,SAAS,MAC3C,oCAAC,OAAI,WAAW,KACd,oCAAC,kBAAe,MAAK,2BAA0B,CACjD,CACF,GACA,oCAAC,oBAAe,CAClB;AAAA,EAEJ;AAEA,QAAM,gBAAgB,OAAO,aAAa;AAC1C,QAAM,eAAe,cAAc,SAAS;AAE5C,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,eAAe,MAAM,SAAS;AAAA,MACrC,UAAS;AAAA;AAAA,IAER,SACC,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAM,SAAM,WAAG,KAAM,CAC7B;AAAA,IAEF,oCAAC,OAAI,eAAc,UAAS,WAAW,KACpC,OAAO,IAAI,CAAC,OAAO,UAAU;AAC5B,YAAM,aAAa,UAAU;AAC7B,YAAM,YAAY,MAAM,UAAU;AAElC,aACE,oCAAC,OAAI,KAAK,MAAM,SAAS,eACvB,oCAAC,QAAK,OAAO,aAAa,SAAS,UAChC,aAAa,YAAO,IACvB,GACA,oCAAC,QAAK,OAAO,MAAM,SAAS,UAAW,QAAC,GACxC,oCAAC,YACE,KACA,MAAM,OACN,aAAa,oCAAC,QAAK,OAAM,WAAQ,SAAE,CACtC,CACF;AAAA,IAEJ,CAAC,GAED,oCAAC,OAAI,WAAW,KACd,oCAAC,YAAK,WAAS,GACf,oCAAC,QAAK,OAAO,gBAAe,MAAM,SAAU,CAC9C,CACF;AAAA,EACF,GACA,oCAAC,kBAAe,cAAa,yDAAwC,CACvE;AAEJ;AAUA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmB;AACjB,QAAM,QAAQ,SAAS;AACvB,QAAM,CAAC,aAAa,cAAc,IAAI,SAEpC,aAAa;AACf,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAGlD,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,MAAM,SAAS;AAC1E,QAAM,CAAC,aAAa,cAAc,IAAI;AAAA,IACpC,MAAM,QAAQ,MAAM,KAAK,IAAI,MAAM,QAAQ,MAAM,UAAU,MAAM,CAAC,GAAG,IAAI,CAAC;AAAA,EAC5E;AACA,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,MAAM,YAAY;AACnE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AAEtD,QAAM,aAAa,YAAY;AAC7B,kBAAc,IAAI;AAClB,QAAI;AACF,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR;AACA,sBAAgB;AAChB,qBAAe,kBAAkB,MAAM,SAAS,EAAE;AAAA,IACpD,SAASA,QAAO;AACd,eAAUA,OAAgB,OAAO;AACjC,oBAAc,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,QAAM,oBAAoB,MAAM;AAC9B,YAAQ,aAAa;AAAA,MACnB,KAAK;AACH,eACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,QAAK,MAAI,QAAC,mBAAiB,GAC5B,oCAAC,OAAI,WAAW,KACd;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,UAAU;AAAA,YACV,aAAY;AAAA,YACZ,UAAU,MAAM,eAAe,OAAO;AAAA,YACtC;AAAA,YACA,MAAM;AAAA;AAAA,QACR,CACF,CACF;AAAA,MAGJ,KAAK;AACH,eACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,QAAK,MAAI,QAAC,aAAW,GACtB,oCAAC,OAAI,WAAW,KACd;AAAA,UAAC;AAAA;AAAA,YACC,aACE;AAAA,cACE,eAAe;AAAA,YACjB;AAAA,YAEF,gBAAgB,YAAU;AACxB,kBAAI,OAAO,SAAS,sBAAsB;AACxC,+BAAe,OAAO,KAAK;AAC3B,+BAAe,QAAQ;AAAA,cACzB;AAAA,YACF;AAAA,YACA,cAAc,MAAM;AAAA,YAAC;AAAA,YACrB;AAAA;AAAA,QACF,CACF,CACF;AAAA,MAGJ,KAAK;AACH,eACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,QAAK,MAAI,QAAC,qBAAmB,GAC9B,oCAAC,OAAI,WAAW,KACd;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,UAAU;AAAA,YACV,aAAY;AAAA,YACZ,UAAU,MAAM,eAAe,SAAS;AAAA,YACxC;AAAA,YACA,MAAM;AAAA;AAAA,QACR,CACF,CACF;AAAA,MAGJ,KAAK;AACH,cAAM,aAAa,oBAAoB;AAAA,UACrC,WAAW,MAAM;AAAA,UACjB,WAAW;AAAA,UACX,cAAc;AAAA,UACd,eAAe;AAAA,QACjB,CAAC;AAED,eACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,QAAK,MAAI,QAAC,kBAAgB,GAC3B,oCAAC,OAAI,eAAc,UAAS,WAAW,KACrC,oCAAC,YACC,oCAAC,QAAK,MAAI,QAAC,QAAM,GAAO,KAAE,MAAM,SAClC,GACA,oCAAC,YACC,oCAAC,QAAK,MAAI,QAAC,cAAY,GAAO,KAAE,iBAClC,GACA,oCAAC,YACC,oCAAC,QAAK,MAAI,QAAC,QAAM,GAAQ,KACxB,YAAY,SAAS,GAAG,IACrB,cACA,YAAY,KAAK,IAAI,CAC3B,GACA,oCAAC,YACC,oCAAC,QAAK,MAAI,QAAC,gBAAc,GAAO,KAAE,aAAa,MAAM,GAAG,GAAG,GAC1D,aAAa,SAAS,MAAM,QAAQ,EACvC,GAEC,WAAW,SAAS,SAAS,KAC5B,oCAAC,OAAI,WAAW,KACb,WAAW,SAAS,IAAI,CAAC,SAAS,QACjC,oCAAC,YAAS,KAAK,OACb,oCAAC,QAAK,OAAO,MAAM,WAAS,WAAG,OAAQ,CACzC,CACD,CACH,GAGD,SACC,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAO,MAAM,SAAO,WAAG,KAAM,CACrC,GAGF,oCAAC,OAAI,WAAW,KACb,aACC,oCAAC,kBAAe,MAAK,qBAAoB,IAEzC,oCAAC,YAAK,6BAA2B,CAErC,CACF,CACF;AAAA,IAEN;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,UAAI,gBAAgB,eAAe;AACjC,qBAAa,EAAE,MAAM,cAAc,eAAe,MAAM,CAAC;AAAA,MAC3D,OAAO;AAEL,cAAM,QAAmC;AAAA,UACvC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AACA,cAAM,eAAe,MAAM,QAAQ,WAAW;AAC9C,YAAI,eAAe,GAAG;AACpB,yBAAe,MAAM,eAAe,CAAC,CAAC;AAAA,QACxC;AAAA,MACF;AACA;AAAA,IACF;AAEA,QAAI,IAAI,UAAU,gBAAgB,aAAa,CAAC,YAAY;AAC1D,iBAAW;AAAA,IACb;AAAA,EACF,CAAC;AAED,SACE,oCAAC,OAAI,eAAc,YACjB;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,eAAe,MAAM,SAAS;AAAA,MACrC,UAAU,QAAQ,CAAC,eAAe,SAAS,UAAU,SAAS,EAAE,QAAQ,WAAW,IAAI,CAAC;AAAA;AAAA,IAExF,oCAAC,OAAI,WAAW,KAAI,kBAAkB,CAAE;AAAA,EAC1C,GACA;AAAA,IAAC;AAAA;AAAA,MACC,cACE,gBAAgB,YACZ,4CACA;AAAA;AAAA,EAER,CACF;AAEJ;AASA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF,GAAuB;AACrB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AAEtD,QAAM,gBAAgB,YAAY;AAChC,QAAI,UAAU;AACZ,oBAAc,IAAI;AAClB,eAAS,IAAI;AACb,UAAI;AACF,cAAM,YAAY,KAAK;AACvB,wBAAgB;AAChB,uBAAe,kBAAkB,MAAM,SAAS,EAAE;AAAA,MACpD,SAAS,KAAK;AACZ,gBAAQ,MAAM,2BAA2B,GAAG;AAC5C,sBAAc,KAAK;AACnB;AAAA,UACE,2BAA2B,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,QAC7E;AAAA,MACF;AAAA,IACF,OAAO;AACL,mBAAa,EAAE,MAAM,cAAc,eAAe,MAAM,CAAC;AAAA,IAC3D;AAAA,EACF;AAEA,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,IAAI,QAAQ;AACd,oBAAc;AAAA,IAChB,WAAW,IAAI,aAAa,IAAI,cAAc,IAAI,KAAK;AACrD,kBAAY,CAAC,QAAQ;AAAA,IACvB;AAAA,EACF,CAAC;AAED,MAAI,YAAY;AACd,WACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,gBAAe,UAAS,iBACpC,oCAAC,OAAI,WAAW,KACd,oCAAC,kBAAe,MAAK,qBAAoB,CAC3C,CACF,GACA,oCAAC,oBAAe,CAClB;AAAA,EAEJ;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,UAAO,OAAM,gBAAe,UAAU,WAAW,MAAM,SAAS,QAC9D,SACC,oCAAC,OAAI,WAAW,KACd,oCAAC,QAAK,OAAM,SAAM,WAAG,KAAM,CAC7B,GAEF,oCAAC,OAAI,WAAW,KACd,oCAAC,YAAK,2EAGN,GACA,oCAAC,OAAI,WAAW,GAAG,KAAK,KACtB,oCAAC,QAAK,OAAO,CAAC,WAAW,SAAS,UAC/B,CAAC,WAAW,GAAG,SAAS,OAAO,MAAM,MAAK,IAC7C,GACA,oCAAC,QAAK,OAAO,WAAW,QAAQ,UAC7B,WAAW,GAAG,SAAS,OAAO,MAAM,MAAK,aAC5C,CACF,CACF,CACF,GACA,oCAAC,oBAAe,CAClB;AAEJ;AAEA,IAAO,wBAAQ;AAAA,EACb,MAAM;AAAA,EACN,aAAa;AAAA,EACb,MAAM;AAAA,EACN,WAAW;AAAA,EACX,UAAU;AAAA,EACV,iBAAiB;AAAA,EAEjB,MAAM,KAAK,QAAoC;AAC7C,WAAO,oCAAC,YAAS,QAAgB;AAAA,EACnC;AAAA,EAEA,iBAAiB;AACf,WAAO;AAAA,EACT;AACF;",
|
|
6
|
-
"names": ["error"]
|
|
7
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { AGENT_LOCATIONS } from "./types.js";
|
|
2
|
-
const UI_ICONS = {
|
|
3
|
-
pointer: "\u276F",
|
|
4
|
-
checkboxOn: "\u2611",
|
|
5
|
-
checkboxOff: "\u2610",
|
|
6
|
-
warning: "\u26A0",
|
|
7
|
-
separator: "\u2500",
|
|
8
|
-
loading: "\u25D0\u25D1\u25D2\u25D3"
|
|
9
|
-
};
|
|
10
|
-
const FOLDER_CONFIG = {
|
|
11
|
-
FOLDER_NAME: ".minto",
|
|
12
|
-
AGENTS_DIR: "agents"
|
|
13
|
-
};
|
|
14
|
-
const TOOL_CATEGORIES = {
|
|
15
|
-
read: ["Read", "Glob", "Grep", "LS"],
|
|
16
|
-
edit: ["Edit", "MultiEdit", "Write", "NotebookEdit"],
|
|
17
|
-
execution: ["Bash", "BashOutput", "KillBash"],
|
|
18
|
-
web: ["WebFetch", "WebSearch"],
|
|
19
|
-
other: ["TodoWrite", "ExitPlanMode", "Task"]
|
|
20
|
-
};
|
|
21
|
-
const AGENT_COLORS = [
|
|
22
|
-
{ name: "Default", value: null, color: void 0 },
|
|
23
|
-
{ name: "Blue", value: "blue", color: "blue" },
|
|
24
|
-
{ name: "Green", value: "green", color: "green" },
|
|
25
|
-
{ name: "Yellow", value: "yellow", color: "yellow" },
|
|
26
|
-
{ name: "Red", value: "red", color: "red" },
|
|
27
|
-
{ name: "Magenta", value: "magenta", color: "magenta" },
|
|
28
|
-
{ name: "Cyan", value: "cyan", color: "cyan" }
|
|
29
|
-
];
|
|
30
|
-
const INITIAL_CREATE_STATE = {
|
|
31
|
-
location: null,
|
|
32
|
-
agentType: "",
|
|
33
|
-
method: null,
|
|
34
|
-
generationPrompt: "",
|
|
35
|
-
whenToUse: "",
|
|
36
|
-
selectedTools: [],
|
|
37
|
-
selectedModel: null,
|
|
38
|
-
selectedColor: null,
|
|
39
|
-
systemPrompt: "",
|
|
40
|
-
isGenerating: false,
|
|
41
|
-
wasGenerated: false,
|
|
42
|
-
isAIGenerated: false,
|
|
43
|
-
error: null,
|
|
44
|
-
warnings: [],
|
|
45
|
-
agentTypeCursor: 0,
|
|
46
|
-
whenToUseCursor: 0,
|
|
47
|
-
promptCursor: 0,
|
|
48
|
-
generationPromptCursor: 0
|
|
49
|
-
};
|
|
50
|
-
export {
|
|
51
|
-
AGENT_COLORS,
|
|
52
|
-
AGENT_LOCATIONS,
|
|
53
|
-
FOLDER_CONFIG,
|
|
54
|
-
INITIAL_CREATE_STATE,
|
|
55
|
-
TOOL_CATEGORIES,
|
|
56
|
-
UI_ICONS
|
|
57
|
-
};
|
|
58
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/commands/agents/constants.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Constants for the agents command\n */\nimport { AGENT_LOCATIONS } from './types'\n\n// Re-export for convenience\nexport { AGENT_LOCATIONS }\n\nexport const UI_ICONS = {\n pointer: '\u276F',\n checkboxOn: '\u2611',\n checkboxOff: '\u2610',\n warning: '\u26A0',\n separator: '\u2500',\n loading: '\u25D0\u25D1\u25D2\u25D3',\n} as const\n\nexport const FOLDER_CONFIG = {\n FOLDER_NAME: '.minto',\n AGENTS_DIR: 'agents',\n} as const\n\n// Tool categories for sophisticated selection\nexport const TOOL_CATEGORIES = {\n read: ['Read', 'Glob', 'Grep', 'LS'],\n edit: ['Edit', 'MultiEdit', 'Write', 'NotebookEdit'],\n execution: ['Bash', 'BashOutput', 'KillBash'],\n web: ['WebFetch', 'WebSearch'],\n other: ['TodoWrite', 'ExitPlanMode', 'Task'],\n} as const\n\n// Agent color options\nexport const AGENT_COLORS = [\n { name: 'Default', value: null, color: undefined },\n { name: 'Blue', value: 'blue', color: 'blue' },\n { name: 'Green', value: 'green', color: 'green' },\n { name: 'Yellow', value: 'yellow', color: 'yellow' },\n { name: 'Red', value: 'red', color: 'red' },\n { name: 'Magenta', value: 'magenta', color: 'magenta' },\n { name: 'Cyan', value: 'cyan', color: 'cyan' },\n] as const\n\nexport const INITIAL_CREATE_STATE = {\n location: null,\n agentType: '',\n method: null,\n generationPrompt: '',\n whenToUse: '',\n selectedTools: [],\n selectedModel: null,\n selectedColor: null,\n systemPrompt: '',\n isGenerating: false,\n wasGenerated: false,\n isAIGenerated: false,\n error: null,\n warnings: [],\n agentTypeCursor: 0,\n whenToUseCursor: 0,\n promptCursor: 0,\n generationPromptCursor: 0,\n} as const\n"],
|
|
5
|
-
"mappings": "AAGA,SAAS,uBAAuB;AAKzB,MAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AACX;AAEO,MAAM,gBAAgB;AAAA,EAC3B,aAAa;AAAA,EACb,YAAY;AACd;AAGO,MAAM,kBAAkB;AAAA,EAC7B,MAAM,CAAC,QAAQ,QAAQ,QAAQ,IAAI;AAAA,EACnC,MAAM,CAAC,QAAQ,aAAa,SAAS,cAAc;AAAA,EACnD,WAAW,CAAC,QAAQ,cAAc,UAAU;AAAA,EAC5C,KAAK,CAAC,YAAY,WAAW;AAAA,EAC7B,OAAO,CAAC,aAAa,gBAAgB,MAAM;AAC7C;AAGO,MAAM,eAAe;AAAA,EAC1B,EAAE,MAAM,WAAW,OAAO,MAAM,OAAO,OAAU;AAAA,EACjD,EAAE,MAAM,QAAQ,OAAO,QAAQ,OAAO,OAAO;AAAA,EAC7C,EAAE,MAAM,SAAS,OAAO,SAAS,OAAO,QAAQ;AAAA,EAChD,EAAE,MAAM,UAAU,OAAO,UAAU,OAAO,SAAS;AAAA,EACnD,EAAE,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM;AAAA,EAC1C,EAAE,MAAM,WAAW,OAAO,WAAW,OAAO,UAAU;AAAA,EACtD,EAAE,MAAM,QAAQ,OAAO,QAAQ,OAAO,OAAO;AAC/C;AAEO,MAAM,uBAAuB;AAAA,EAClC,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,OAAO;AAAA,EACP,UAAU,CAAC;AAAA,EACX,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,wBAAwB;AAC1B;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { default as default2 } from "./AgentsCommand.js";
|
|
2
|
-
import {
|
|
3
|
-
AGENT_LOCATIONS,
|
|
4
|
-
UI_ICONS,
|
|
5
|
-
FOLDER_CONFIG,
|
|
6
|
-
TOOL_CATEGORIES,
|
|
7
|
-
AGENT_COLORS,
|
|
8
|
-
INITIAL_CREATE_STATE
|
|
9
|
-
} from "./constants.js";
|
|
10
|
-
import {
|
|
11
|
-
getAgentDirectory,
|
|
12
|
-
getAgentFilePath,
|
|
13
|
-
ensureDirectoryExists,
|
|
14
|
-
generateAgentFileContent,
|
|
15
|
-
saveAgent,
|
|
16
|
-
deleteAgent,
|
|
17
|
-
openInEditor,
|
|
18
|
-
updateAgent
|
|
19
|
-
} from "./utils/index.js";
|
|
20
|
-
export {
|
|
21
|
-
AGENT_COLORS,
|
|
22
|
-
AGENT_LOCATIONS,
|
|
23
|
-
FOLDER_CONFIG,
|
|
24
|
-
INITIAL_CREATE_STATE,
|
|
25
|
-
TOOL_CATEGORIES,
|
|
26
|
-
UI_ICONS,
|
|
27
|
-
default2 as default,
|
|
28
|
-
deleteAgent,
|
|
29
|
-
ensureDirectoryExists,
|
|
30
|
-
generateAgentFileContent,
|
|
31
|
-
getAgentDirectory,
|
|
32
|
-
getAgentFilePath,
|
|
33
|
-
openInEditor,
|
|
34
|
-
saveAgent,
|
|
35
|
-
updateAgent
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/commands/agents/index.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * Agents Command Module\n *\n * This module provides an interactive interface for managing AI agents.\n * The component is being incrementally refactored into smaller, focused modules.\n *\n * Structure:\n * - AgentsCommand.tsx - Main command component (being refactored)\n * - types.ts - Type definitions\n * - constants.ts - Configuration constants\n * - utils/ - Utility functions\n * - components/ - Shared UI components (to be extracted)\n */\n\n// Re-export the default export for backward compatibility\nexport { default } from './AgentsCommand'\n\n// Export types for external use\nexport type {\n AgentLocation,\n ModeType,\n ModeState,\n CreateState,\n Tool,\n GeneratedAgent,\n} from './types'\n\n// Export constants\nexport {\n AGENT_LOCATIONS,\n UI_ICONS,\n FOLDER_CONFIG,\n TOOL_CATEGORIES,\n AGENT_COLORS,\n INITIAL_CREATE_STATE,\n} from './constants'\n\n// Export utilities\nexport {\n getAgentDirectory,\n getAgentFilePath,\n ensureDirectoryExists,\n generateAgentFileContent,\n saveAgent,\n deleteAgent,\n openInEditor,\n updateAgent,\n} from './utils'\n"],
|
|
5
|
-
"mappings": "AAeA,SAAS,WAAAA,gBAAe;AAaxB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;",
|
|
6
|
-
"names": ["default"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/commands/agents/types.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Type definitions for the agents command\n */\nimport type { AgentConfig } from '@utils/agentLoader'\n\nexport const AGENT_LOCATIONS = {\n USER: 'user',\n PROJECT: 'project',\n PLUGIN: 'plugin',\n BUILT_IN: 'built-in',\n ALL: 'all',\n} as const\n\nexport type AgentLocation =\n (typeof AGENT_LOCATIONS)[keyof typeof AGENT_LOCATIONS]\n\nexport type ModeType =\n | 'list-agents'\n | 'create-location'\n | 'create-method'\n | 'create-generate'\n | 'create-type'\n | 'create-description'\n | 'create-tools'\n | 'create-model'\n | 'create-color'\n | 'create-prompt'\n | 'create-confirm'\n | 'agent-menu'\n | 'view-agent'\n | 'edit-agent'\n | 'edit-tools'\n | 'edit-model'\n | 'edit-color'\n | 'delete-confirm'\n\nexport type ModeState = {\n mode: ModeType\n location?: AgentLocation\n selectedAgent?: AgentConfig\n previousMode?: ModeState\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n}\n\nexport type CreateState = {\n location: AgentLocation | null\n agentType: string\n method: 'generate' | 'manual' | null\n generationPrompt: string\n whenToUse: string\n selectedTools: string[]\n selectedModel: string | null\n selectedColor: string | null\n systemPrompt: string\n isGenerating: boolean\n wasGenerated: boolean\n isAIGenerated: boolean\n error: string | null\n warnings: string[]\n agentTypeCursor: number\n whenToUseCursor: number\n promptCursor: number\n generationPromptCursor: number\n}\n\nexport type Tool = {\n name: string\n description?: string | (() => Promise<string>)\n}\n\nexport type GeneratedAgent = {\n identifier: string\n whenToUse: string\n systemPrompt: string\n suggestedTools?: string[]\n suggestedModel?: string\n}\n"],
|
|
5
|
-
"mappings": "AAKO,MAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AACP;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|