@sunub/obsidian-mcp-server 0.2.0 → 0.3.0
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/README.md +201 -25
- package/build/cli/AppContainer.d.ts +1 -0
- package/build/cli/AppContainer.js +197 -0
- package/build/cli/AppContainer.js.map +1 -0
- package/build/cli/app.js +7 -0
- package/build/cli/app.js.map +1 -0
- package/build/cli/config/SettingContext.d.ts +1 -0
- package/build/cli/config/SettingContext.js +2 -0
- package/build/cli/config/SettingContext.js.map +1 -0
- package/build/cli/config/mcpServersConfig.d.ts +18 -0
- package/build/cli/config/mcpServersConfig.js +119 -0
- package/build/cli/config/mcpServersConfig.js.map +1 -0
- package/build/cli/config/settingSchema.d.ts +180 -0
- package/build/cli/config/settingSchema.js +128 -0
- package/build/cli/config/settingSchema.js.map +1 -0
- package/build/cli/context/InputContext.d.ts +12 -0
- package/build/cli/context/InputContext.js +10 -0
- package/build/cli/context/InputContext.js.map +1 -0
- package/build/cli/context/KeypressContext.d.ts +30 -0
- package/build/cli/context/KeypressContext.js +200 -0
- package/build/cli/context/KeypressContext.js.map +1 -0
- package/build/cli/context/KeypressContext.util.d.ts +7 -0
- package/build/cli/context/KeypressContext.util.js +474 -0
- package/build/cli/context/KeypressContext.util.js.map +1 -0
- package/build/cli/hooks/useAtCompletion.d.ts +12 -0
- package/build/cli/hooks/useAtCompletion.js +5 -0
- package/build/cli/hooks/useAtCompletion.js.map +1 -0
- package/build/cli/hooks/useCommandCompletion.d.ts +59 -0
- package/build/cli/hooks/useCommandCompletion.js +344 -0
- package/build/cli/hooks/useCommandCompletion.js.map +1 -0
- package/build/cli/hooks/useCompletion.d.ts +22 -0
- package/build/cli/hooks/useCompletion.js +84 -0
- package/build/cli/hooks/useCompletion.js.map +1 -0
- package/build/cli/hooks/useDispatcher.d.ts +6 -0
- package/build/cli/hooks/useDispatcher.js +286 -0
- package/build/cli/hooks/useDispatcher.js.map +1 -0
- package/build/cli/hooks/useFocus.d.ts +2 -0
- package/build/cli/hooks/useFocus.js +3 -0
- package/build/cli/hooks/useFocus.js.map +1 -0
- package/build/cli/hooks/useInputHistory.d.ts +24 -0
- package/build/cli/hooks/useInputHistory.js +159 -0
- package/build/cli/hooks/useInputHistory.js.map +1 -0
- package/build/cli/hooks/useKeyMatchers.d.ts +17 -0
- package/build/cli/hooks/useKeyMatchers.js +13 -0
- package/build/cli/hooks/useKeyMatchers.js.map +1 -0
- package/build/cli/hooks/useKeypress.d.ts +19 -0
- package/build/cli/hooks/useKeypress.js +28 -0
- package/build/cli/hooks/useKeypress.js.map +1 -0
- package/build/cli/hooks/useLlmStream.d.ts +12 -0
- package/build/cli/hooks/useLlmStream.js +365 -0
- package/build/cli/hooks/useLlmStream.js.map +1 -0
- package/build/cli/hooks/useMcpClient.d.ts +10 -0
- package/build/cli/hooks/useMcpClient.js +100 -0
- package/build/cli/hooks/useMcpClient.js.map +1 -0
- package/build/cli/hooks/useMcpManager.d.ts +22 -0
- package/build/cli/hooks/useMcpManager.js +86 -0
- package/build/cli/hooks/useMcpManager.js.map +1 -0
- package/build/cli/hooks/usePromptCompletion.d.ts +19 -0
- package/build/cli/hooks/usePromptCompletion.js +13 -0
- package/build/cli/hooks/usePromptCompletion.js.map +1 -0
- package/build/cli/hooks/useRagContext.d.ts +6 -0
- package/build/cli/hooks/useRagContext.js +83 -0
- package/build/cli/hooks/useRagContext.js.map +1 -0
- package/build/cli/hooks/useShellCompletion.d.ts +18 -0
- package/build/cli/hooks/useShellCompletion.js +10 -0
- package/build/cli/hooks/useShellCompletion.js.map +1 -0
- package/build/cli/hooks/useSlashCompletion.d.ts +21 -0
- package/build/cli/hooks/useSlashCompletion.js +11 -0
- package/build/cli/hooks/useSlashCompletion.js.map +1 -0
- package/build/cli/hooks/useTerminalSize.d.ts +9 -0
- package/build/cli/hooks/useTerminalSize.js +26 -0
- package/build/cli/hooks/useTerminalSize.js.map +1 -0
- package/build/cli/index.js +27 -0
- package/build/cli/index.js.map +1 -0
- package/build/cli/key/keyBindings.d.ts +152 -0
- package/build/cli/key/keyBindings.js +630 -0
- package/build/cli/key/keyBindings.js.map +1 -0
- package/build/cli/key/keyMatchers.d.ts +27 -0
- package/build/cli/key/keyMatchers.js +33 -0
- package/build/cli/key/keyMatchers.js.map +1 -0
- package/build/cli/key/text-buffer-bestcase.js +2754 -0
- package/build/cli/key/text-buffer-bestcase.js.map +1 -0
- package/build/cli/key/text-buffer.js +918 -0
- package/build/cli/key/text-buffer.js.map +1 -0
- package/build/cli/reference/HistoryItemDisplay.d.ts +23 -0
- package/build/cli/reference/HistoryItemDisplay.js +63 -0
- package/build/cli/reference/HistoryItemDisplay.js.map +1 -0
- package/build/cli/reference/InputContext.d.ts +17 -0
- package/build/cli/reference/InputContext.js +16 -0
- package/build/cli/reference/InputContext.js.map +1 -0
- package/build/cli/reference/KerypressContext.d.ts +37 -0
- package/build/cli/reference/KerypressContext.js +791 -0
- package/build/cli/reference/KerypressContext.js.map +1 -0
- package/build/cli/reference/MainContent.d.ts +6 -0
- package/build/cli/reference/MainContent.js +207 -0
- package/build/cli/reference/MainContent.js.map +1 -0
- package/build/cli/reference/UIStateContext.d.ts +188 -0
- package/build/cli/reference/UIStateContext.js +16 -0
- package/build/cli/reference/UIStateContext.js.map +1 -0
- package/build/cli/reference/useGeminiStream.d.ts +42 -0
- package/build/cli/reference/useGeminiStream.js +1404 -0
- package/build/cli/reference/useGeminiStream.js.map +1 -0
- package/build/cli/services/McpClientService.d.ts +32 -0
- package/build/cli/services/McpClientService.js +123 -0
- package/build/cli/services/McpClientService.js.map +1 -0
- package/build/cli/services/McpManager.d.ts +28 -0
- package/build/cli/services/McpManager.js +146 -0
- package/build/cli/services/McpManager.js.map +1 -0
- package/build/cli/theme/builtin/no-color.js +125 -0
- package/build/cli/theme/builtin/no-color.js.map +1 -0
- package/build/cli/theme/builtin/tokyonight-dark.js +146 -0
- package/build/cli/theme/builtin/tokyonight-dark.js.map +1 -0
- package/build/cli/theme/semantic-colors.js +19 -0
- package/build/cli/theme/semantic-colors.js.map +1 -0
- package/build/cli/theme/semantic-tokens.js +77 -0
- package/build/cli/theme/semantic-tokens.js.map +1 -0
- package/build/cli/theme/theme-manager.d.ts +32 -0
- package/build/cli/theme/theme-manager.js +150 -0
- package/build/cli/theme/theme-manager.js.map +1 -0
- package/build/cli/theme/theme.js +333 -0
- package/build/cli/theme/theme.js.map +1 -0
- package/build/cli/tmp.js +27 -0
- package/build/cli/tmp.js.map +1 -0
- package/build/cli/types.d.ts +72 -0
- package/build/cli/types.js +8 -0
- package/build/cli/types.js.map +1 -0
- package/build/cli/ui/ConnectionStatus.d.ts +13 -0
- package/build/cli/ui/ConnectionStatus.js +24 -0
- package/build/cli/ui/ConnectionStatus.js.map +1 -0
- package/build/cli/ui/HelpCommands.d.ts +5 -0
- package/build/cli/ui/HelpCommands.js +11 -0
- package/build/cli/ui/HelpCommands.js.map +1 -0
- package/build/cli/ui/HistoryItemDisplay.d.ts +9 -0
- package/build/cli/ui/HistoryItemDisplay.js +38 -0
- package/build/cli/ui/HistoryItemDisplay.js.map +1 -0
- package/build/cli/ui/InputPrompt-bestcase.d.ts +63 -0
- package/build/cli/ui/InputPrompt-bestcase.js +1301 -0
- package/build/cli/ui/InputPrompt-bestcase.js.map +1 -0
- package/build/cli/ui/InputPrompt.d.ts +12 -0
- package/build/cli/ui/InputPrompt.js +145 -0
- package/build/cli/ui/InputPrompt.js.map +1 -0
- package/build/cli/ui/InputPrompt.tmp.d.ts +7 -0
- package/build/cli/ui/InputPrompt.tmp.js +215 -0
- package/build/cli/ui/InputPrompt.tmp.js.map +1 -0
- package/build/cli/ui/MainContent.d.ts +10 -0
- package/build/cli/ui/MainContent.js +24 -0
- package/build/cli/ui/MainContent.js.map +1 -0
- package/build/cli/ui/MouseContext.d.ts +1 -0
- package/build/cli/ui/MouseContext.js +2 -0
- package/build/cli/ui/MouseContext.js.map +1 -0
- package/build/cli/ui/SuggestionsDisplay.d.ts +25 -0
- package/build/cli/ui/SuggestionsDisplay.js +45 -0
- package/build/cli/ui/SuggestionsDisplay.js.map +1 -0
- package/build/cli/ui/ThinkingIndicator.d.ts +2 -0
- package/build/cli/ui/ThinkingIndicator.js +16 -0
- package/build/cli/ui/ThinkingIndicator.js.map +1 -0
- package/build/cli/ui/layout/DefaultAppLayout.d.ts +2 -0
- package/build/cli/ui/layout/DefaultAppLayout.js +6 -0
- package/build/cli/ui/layout/DefaultAppLayout.js.map +1 -0
- package/build/cli/ui/shared/ExpandableText.d.ts +14 -0
- package/build/cli/ui/shared/ExpandableText.js +19 -0
- package/build/cli/ui/shared/ExpandableText.js.map +1 -0
- package/build/cli/utils/commandUtils.d.ts +11 -0
- package/build/cli/utils/commandUtils.js +16 -0
- package/build/cli/utils/commandUtils.js.map +1 -0
- package/build/cli/utils/debugLogger.d.ts +12 -0
- package/build/cli/utils/debugLogger.js +52 -0
- package/build/cli/utils/debugLogger.js.map +1 -0
- package/build/cli/utils/historyStorage.d.ts +13 -0
- package/build/cli/utils/historyStorage.js +64 -0
- package/build/cli/utils/historyStorage.js.map +1 -0
- package/build/cli/utils/textUtil.d.ts +68 -0
- package/build/cli/utils/textUtil.js +236 -0
- package/build/cli/utils/textUtil.js.map +1 -0
- package/build/config.js +31 -5
- package/build/config.js.map +1 -0
- package/build/db.js +55 -0
- package/build/db.js.map +1 -0
- package/build/index.js +4 -0
- package/build/index.js.map +1 -0
- package/build/tools/create_document_with_properties/index.d.ts +60 -0
- package/build/tools/create_document_with_properties/index.js +6 -0
- package/build/tools/create_document_with_properties/index.js.map +1 -0
- package/build/tools/create_document_with_properties/params.d.ts +66 -0
- package/build/tools/generate_property/index.js +6 -0
- package/build/tools/generate_property/index.js.map +1 -0
- package/build/tools/index.d.ts +184 -0
- package/build/tools/organize_attachments/index.js +6 -0
- package/build/tools/organize_attachments/index.js.map +1 -0
- package/build/tools/organize_attachments/params.d.ts +122 -0
- package/build/tools/vault/index.js +16 -2
- package/build/tools/vault/index.js.map +1 -0
- package/build/tools/vault/params.d.ts +115 -0
- package/build/tools/vault/types/collect_context.d.ts +1340 -0
- package/build/tools/vault/types/list_all.d.ts +387 -0
- package/build/tools/vault/types/read_specific.d.ts +297 -0
- package/build/tools/vault/types/search.d.ts +598 -0
- package/build/tools/vault/utils/actions/collect_context.js +26 -1
- package/build/tools/vault/utils/actions/collect_context.js.map +1 -0
- package/build/tools/vault/utils/actions/index_rag.js +27 -0
- package/build/tools/vault/utils/actions/index_rag.js.map +1 -0
- package/build/tools/vault/utils/actions/list_all.js +1 -0
- package/build/tools/vault/utils/actions/list_all.js.map +1 -0
- package/build/tools/vault/utils/actions/load_memory.js +23 -13
- package/build/tools/vault/utils/actions/load_memory.js.map +1 -0
- package/build/tools/vault/utils/actions/read.js +2 -1
- package/build/tools/vault/utils/actions/read.js.map +1 -0
- package/build/tools/vault/utils/actions/search.js +2 -1
- package/build/tools/vault/utils/actions/search.js.map +1 -0
- package/build/tools/vault/utils/actions/search_semantic.js +54 -0
- package/build/tools/vault/utils/actions/search_semantic.js.map +1 -0
- package/build/tools/vault/utils/actions/stats.js +1 -0
- package/build/tools/vault/utils/actions/stats.js.map +1 -0
- package/build/tools/vault/utils/document.js +1 -0
- package/build/tools/vault/utils/document.js.map +1 -0
- package/build/tools/write_property/index.d.ts +58 -0
- package/build/tools/write_property/index.js +6 -0
- package/build/tools/write_property/index.js.map +1 -0
- package/build/utils/DirectoryWalker.d.ts +6 -0
- package/build/utils/DirectoryWalker.js +7 -0
- package/build/utils/DirectoryWalker.js.map +1 -0
- package/build/utils/Indexer.d.ts +18 -0
- package/build/utils/Indexer.js +5 -9
- package/build/utils/Indexer.js.map +1 -0
- package/build/utils/LLMClient.d.ts +37 -0
- package/build/utils/LLMClient.js +82 -0
- package/build/utils/LLMClient.js.map +1 -0
- package/build/utils/RAGIndexer.d.ts +22 -0
- package/build/utils/RAGIndexer.js +206 -0
- package/build/utils/RAGIndexer.js.map +1 -0
- package/build/utils/RerankerClient.d.ts +27 -0
- package/build/utils/RerankerClient.js +69 -0
- package/build/utils/RerankerClient.js.map +1 -0
- package/build/utils/VaultManger/VaultManager.d.ts +34 -0
- package/build/utils/VaultManger/VaultManager.js +1 -0
- package/build/utils/VaultManger/VaultManager.js.map +1 -0
- package/build/utils/VaultManger/VaultPathError.d.ts +6 -0
- package/build/utils/VaultManger/VaultPathError.js +1 -0
- package/build/utils/VaultManger/VaultPathError.js.map +1 -0
- package/build/utils/VaultManger/index.d.ts +3 -0
- package/build/utils/VaultManger/index.js +1 -0
- package/build/utils/VaultManger/index.js.map +1 -0
- package/build/utils/VaultManger/types.d.ts +16 -0
- package/build/utils/VaultManger/types.js +1 -0
- package/build/utils/VaultManger/types.js.map +1 -0
- package/build/utils/VaultWatcher.d.ts +8 -0
- package/build/utils/VaultWatcher.js +96 -0
- package/build/utils/VaultWatcher.js.map +1 -0
- package/build/utils/VectorDB.d.ts +53 -0
- package/build/utils/VectorDB.js +243 -0
- package/build/utils/VectorDB.js.map +1 -0
- package/build/utils/createToolError.d.ts +2 -0
- package/build/utils/createToolError.js +1 -0
- package/build/utils/createToolError.js.map +1 -0
- package/build/utils/getVaultManager.d.ts +2 -0
- package/build/utils/getVaultManager.js +1 -0
- package/build/utils/getVaultManager.js.map +1 -0
- package/build/utils/processor/LinkExtractor.d.ts +2 -0
- package/build/utils/processor/LinkExtractor.js +1 -0
- package/build/utils/processor/LinkExtractor.js.map +1 -0
- package/build/utils/processor/MatterParser.d.ts +2 -0
- package/build/utils/processor/MatterParser.js +12 -3
- package/build/utils/processor/MatterParser.js.map +1 -0
- package/build/utils/processor/types.d.ts +100 -0
- package/package.json +28 -3
- package/build/server.js +0 -32
- package/build/tools/create_document_with_properties/params.js +0 -32
- package/build/tools/generate_property/params.js +0 -54
- package/build/tools/index.js +0 -12
- package/build/tools/organize_attachments/params.js +0 -60
- package/build/tools/organize_attachments/utils.js +0 -65
- package/build/tools/vault/metrics.js +0 -126
- package/build/tools/vault/params.js +0 -141
- package/build/tools/vault/types/collect_context.js +0 -102
- package/build/tools/vault/types/list_all.js +0 -52
- package/build/tools/vault/types/read_specific.js +0 -40
- package/build/tools/vault/types/search.js +0 -58
- package/build/tools/vault/utils/constants.js +0 -2
- package/build/tools/vault/utils/shared.js +0 -74
- package/build/tools/vault/utils.js +0 -6
- package/build/tools/write_property/params.js +0 -51
- package/build/utils/processor/types.js +0 -27
- package/build/utils/semaphore.js +0 -25
|
@@ -0,0 +1,630 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
export var Command;
|
|
8
|
+
(function (Command) {
|
|
9
|
+
// Basic Controls
|
|
10
|
+
Command["RETURN"] = "basic.confirm";
|
|
11
|
+
Command["ESCAPE"] = "basic.cancel";
|
|
12
|
+
Command["QUIT"] = "basic.quit";
|
|
13
|
+
Command["EXIT"] = "basic.exit";
|
|
14
|
+
// Cursor Movement
|
|
15
|
+
Command["HOME"] = "cursor.home";
|
|
16
|
+
Command["END"] = "cursor.end";
|
|
17
|
+
Command["MOVE_UP"] = "cursor.up";
|
|
18
|
+
Command["MOVE_DOWN"] = "cursor.down";
|
|
19
|
+
Command["MOVE_LEFT"] = "cursor.left";
|
|
20
|
+
Command["MOVE_RIGHT"] = "cursor.right";
|
|
21
|
+
Command["MOVE_WORD_LEFT"] = "cursor.wordLeft";
|
|
22
|
+
Command["MOVE_WORD_RIGHT"] = "cursor.wordRight";
|
|
23
|
+
// Editing
|
|
24
|
+
Command["KILL_LINE_RIGHT"] = "edit.deleteRightAll";
|
|
25
|
+
Command["KILL_LINE_LEFT"] = "edit.deleteLeftAll";
|
|
26
|
+
Command["CLEAR_INPUT"] = "edit.clear";
|
|
27
|
+
Command["DELETE_WORD_BACKWARD"] = "edit.deleteWordLeft";
|
|
28
|
+
Command["DELETE_WORD_FORWARD"] = "edit.deleteWordRight";
|
|
29
|
+
Command["DELETE_CHAR_LEFT"] = "edit.deleteLeft";
|
|
30
|
+
Command["DELETE_CHAR_RIGHT"] = "edit.deleteRight";
|
|
31
|
+
Command["UNDO"] = "edit.undo";
|
|
32
|
+
Command["REDO"] = "edit.redo";
|
|
33
|
+
// Scrolling
|
|
34
|
+
Command["SCROLL_UP"] = "scroll.up";
|
|
35
|
+
Command["SCROLL_DOWN"] = "scroll.down";
|
|
36
|
+
Command["SCROLL_HOME"] = "scroll.home";
|
|
37
|
+
Command["SCROLL_END"] = "scroll.end";
|
|
38
|
+
Command["PAGE_UP"] = "scroll.pageUp";
|
|
39
|
+
Command["PAGE_DOWN"] = "scroll.pageDown";
|
|
40
|
+
// History & Search
|
|
41
|
+
Command["HISTORY_UP"] = "history.previous";
|
|
42
|
+
Command["HISTORY_DOWN"] = "history.next";
|
|
43
|
+
Command["REVERSE_SEARCH"] = "history.search.start";
|
|
44
|
+
Command["SUBMIT_REVERSE_SEARCH"] = "history.search.submit";
|
|
45
|
+
Command["ACCEPT_SUGGESTION_REVERSE_SEARCH"] = "history.search.accept";
|
|
46
|
+
// Navigation
|
|
47
|
+
Command["NAVIGATION_UP"] = "nav.up";
|
|
48
|
+
Command["NAVIGATION_DOWN"] = "nav.down";
|
|
49
|
+
Command["DIALOG_NAVIGATION_UP"] = "nav.dialog.up";
|
|
50
|
+
Command["DIALOG_NAVIGATION_DOWN"] = "nav.dialog.down";
|
|
51
|
+
Command["DIALOG_NEXT"] = "nav.dialog.next";
|
|
52
|
+
Command["DIALOG_PREV"] = "nav.dialog.previous";
|
|
53
|
+
// Suggestions & Completions
|
|
54
|
+
Command["ACCEPT_SUGGESTION"] = "suggest.accept";
|
|
55
|
+
Command["COMPLETION_UP"] = "suggest.focusPrevious";
|
|
56
|
+
Command["COMPLETION_DOWN"] = "suggest.focusNext";
|
|
57
|
+
Command["EXPAND_SUGGESTION"] = "suggest.expand";
|
|
58
|
+
Command["COLLAPSE_SUGGESTION"] = "suggest.collapse";
|
|
59
|
+
// Text Input
|
|
60
|
+
Command["SUBMIT"] = "input.submit";
|
|
61
|
+
Command["QUEUE_MESSAGE"] = "input.queueMessage";
|
|
62
|
+
Command["NEWLINE"] = "input.newline";
|
|
63
|
+
Command["OPEN_EXTERNAL_EDITOR"] = "input.openExternalEditor";
|
|
64
|
+
Command["DEPRECATED_OPEN_EXTERNAL_EDITOR"] = "input.deprecatedOpenExternalEditor";
|
|
65
|
+
Command["PASTE_CLIPBOARD"] = "input.paste";
|
|
66
|
+
// App Controls
|
|
67
|
+
Command["SHOW_ERROR_DETAILS"] = "app.showErrorDetails";
|
|
68
|
+
Command["SHOW_FULL_TODOS"] = "app.showFullTodos";
|
|
69
|
+
Command["SHOW_IDE_CONTEXT_DETAIL"] = "app.showIdeContextDetail";
|
|
70
|
+
Command["TOGGLE_MARKDOWN"] = "app.toggleMarkdown";
|
|
71
|
+
Command["TOGGLE_COPY_MODE"] = "app.toggleCopyMode";
|
|
72
|
+
Command["TOGGLE_MOUSE_MODE"] = "app.toggleMouseMode";
|
|
73
|
+
Command["TOGGLE_YOLO"] = "app.toggleYolo";
|
|
74
|
+
Command["CYCLE_APPROVAL_MODE"] = "app.cycleApprovalMode";
|
|
75
|
+
Command["SHOW_MORE_LINES"] = "app.showMoreLines";
|
|
76
|
+
Command["EXPAND_PASTE"] = "app.expandPaste";
|
|
77
|
+
Command["FOCUS_SHELL_INPUT"] = "app.focusShellInput";
|
|
78
|
+
Command["UNFOCUS_SHELL_INPUT"] = "app.unfocusShellInput";
|
|
79
|
+
Command["CLEAR_SCREEN"] = "app.clearScreen";
|
|
80
|
+
Command["RESTART_APP"] = "app.restart";
|
|
81
|
+
Command["SUSPEND_APP"] = "app.suspend";
|
|
82
|
+
Command["SHOW_SHELL_INPUT_UNFOCUS_WARNING"] = "app.showShellUnfocusWarning";
|
|
83
|
+
// Background Shell Controls
|
|
84
|
+
Command["BACKGROUND_SHELL_ESCAPE"] = "background.escape";
|
|
85
|
+
Command["BACKGROUND_SHELL_SELECT"] = "background.select";
|
|
86
|
+
Command["TOGGLE_BACKGROUND_SHELL"] = "background.toggle";
|
|
87
|
+
Command["TOGGLE_BACKGROUND_SHELL_LIST"] = "background.toggleList";
|
|
88
|
+
Command["KILL_BACKGROUND_SHELL"] = "background.kill";
|
|
89
|
+
Command["UNFOCUS_BACKGROUND_SHELL"] = "background.unfocus";
|
|
90
|
+
Command["UNFOCUS_BACKGROUND_SHELL_LIST"] = "background.unfocusList";
|
|
91
|
+
Command["SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING"] = "background.unfocusWarning";
|
|
92
|
+
// Extension Controls
|
|
93
|
+
Command["UPDATE_EXTENSION"] = "extension.update";
|
|
94
|
+
Command["LINK_EXTENSION"] = "extension.link";
|
|
95
|
+
Command["DUMP_FRAME"] = "app.dumpFrame";
|
|
96
|
+
Command["START_RECORDING"] = "app.startRecording";
|
|
97
|
+
Command["STOP_RECORDING"] = "app.stopRecording";
|
|
98
|
+
})(Command || (Command = {}));
|
|
99
|
+
/**
|
|
100
|
+
* Data-driven key binding structure for user configuration
|
|
101
|
+
*/
|
|
102
|
+
export class KeyBinding {
|
|
103
|
+
static VALID_LONG_KEYS = new Set([
|
|
104
|
+
...Array.from({ length: 35 }, (_, i) => `f${i + 1}`), // Function Keys
|
|
105
|
+
...Array.from({ length: 10 }, (_, i) => `numpad${i}`), // Numpad Numbers
|
|
106
|
+
// Navigation & Actions
|
|
107
|
+
"left",
|
|
108
|
+
"up",
|
|
109
|
+
"right",
|
|
110
|
+
"down",
|
|
111
|
+
"pageup",
|
|
112
|
+
"pagedown",
|
|
113
|
+
"end",
|
|
114
|
+
"home",
|
|
115
|
+
"tab",
|
|
116
|
+
"enter",
|
|
117
|
+
"escape",
|
|
118
|
+
"space",
|
|
119
|
+
"backspace",
|
|
120
|
+
"delete",
|
|
121
|
+
"clear",
|
|
122
|
+
"pausebreak",
|
|
123
|
+
"capslock",
|
|
124
|
+
"insert",
|
|
125
|
+
"numlock",
|
|
126
|
+
"scrolllock",
|
|
127
|
+
"printscreen",
|
|
128
|
+
"numpad_multiply",
|
|
129
|
+
"numpad_add",
|
|
130
|
+
"numpad_separator",
|
|
131
|
+
"numpad_subtract",
|
|
132
|
+
"numpad_decimal",
|
|
133
|
+
"numpad_divide",
|
|
134
|
+
]);
|
|
135
|
+
/** The key name (e.g., 'a', 'enter', 'tab', 'escape') */
|
|
136
|
+
name;
|
|
137
|
+
shift;
|
|
138
|
+
alt;
|
|
139
|
+
ctrl;
|
|
140
|
+
cmd;
|
|
141
|
+
constructor(pattern) {
|
|
142
|
+
let remains = pattern.trim();
|
|
143
|
+
let shift = false;
|
|
144
|
+
let alt = false;
|
|
145
|
+
let ctrl = false;
|
|
146
|
+
let cmd = false;
|
|
147
|
+
let matched;
|
|
148
|
+
do {
|
|
149
|
+
matched = false;
|
|
150
|
+
const lowerRemains = remains.toLowerCase();
|
|
151
|
+
if (lowerRemains.startsWith("ctrl+")) {
|
|
152
|
+
ctrl = true;
|
|
153
|
+
remains = remains.slice(5);
|
|
154
|
+
matched = true;
|
|
155
|
+
}
|
|
156
|
+
else if (lowerRemains.startsWith("shift+")) {
|
|
157
|
+
shift = true;
|
|
158
|
+
remains = remains.slice(6);
|
|
159
|
+
matched = true;
|
|
160
|
+
}
|
|
161
|
+
else if (lowerRemains.startsWith("alt+")) {
|
|
162
|
+
alt = true;
|
|
163
|
+
remains = remains.slice(4);
|
|
164
|
+
matched = true;
|
|
165
|
+
}
|
|
166
|
+
else if (lowerRemains.startsWith("option+")) {
|
|
167
|
+
alt = true;
|
|
168
|
+
remains = remains.slice(7);
|
|
169
|
+
matched = true;
|
|
170
|
+
}
|
|
171
|
+
else if (lowerRemains.startsWith("opt+")) {
|
|
172
|
+
alt = true;
|
|
173
|
+
remains = remains.slice(4);
|
|
174
|
+
matched = true;
|
|
175
|
+
}
|
|
176
|
+
else if (lowerRemains.startsWith("cmd+")) {
|
|
177
|
+
cmd = true;
|
|
178
|
+
remains = remains.slice(4);
|
|
179
|
+
matched = true;
|
|
180
|
+
}
|
|
181
|
+
else if (lowerRemains.startsWith("meta+")) {
|
|
182
|
+
cmd = true;
|
|
183
|
+
remains = remains.slice(5);
|
|
184
|
+
matched = true;
|
|
185
|
+
}
|
|
186
|
+
} while (matched);
|
|
187
|
+
const key = remains;
|
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-spread
|
|
189
|
+
const isSingleChar = [...key].length === 1;
|
|
190
|
+
if (!isSingleChar && !KeyBinding.VALID_LONG_KEYS.has(key.toLowerCase())) {
|
|
191
|
+
throw new Error(`Invalid keybinding key: "${key}" in "${pattern}".` +
|
|
192
|
+
` Must be a single character or one of: ${[...KeyBinding.VALID_LONG_KEYS].join(", ")}`);
|
|
193
|
+
}
|
|
194
|
+
this.name = key.toLowerCase();
|
|
195
|
+
this.shift = shift || (isSingleChar && this.name !== key);
|
|
196
|
+
this.alt = alt;
|
|
197
|
+
this.ctrl = ctrl;
|
|
198
|
+
this.cmd = cmd;
|
|
199
|
+
}
|
|
200
|
+
matches(key) {
|
|
201
|
+
return (key.name === this.name &&
|
|
202
|
+
!!key.shift === !!this.shift &&
|
|
203
|
+
!!key.alt === !!this.alt &&
|
|
204
|
+
!!key.ctrl === !!this.ctrl &&
|
|
205
|
+
!!key.cmd === !!this.cmd);
|
|
206
|
+
}
|
|
207
|
+
equals(other) {
|
|
208
|
+
return (this.name === other.name &&
|
|
209
|
+
this.shift === other.shift &&
|
|
210
|
+
this.alt === other.alt &&
|
|
211
|
+
this.ctrl === other.ctrl &&
|
|
212
|
+
this.cmd === other.cmd);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Default key binding configuration
|
|
217
|
+
* Matches the original hard-coded logic exactly
|
|
218
|
+
*/
|
|
219
|
+
export const defaultKeyBindingConfig = new Map([
|
|
220
|
+
// Basic Controls
|
|
221
|
+
[Command.RETURN, [new KeyBinding("enter")]],
|
|
222
|
+
[Command.ESCAPE, [new KeyBinding("escape"), new KeyBinding("ctrl+[")]],
|
|
223
|
+
[Command.QUIT, [new KeyBinding("ctrl+c")]],
|
|
224
|
+
[Command.EXIT, [new KeyBinding("ctrl+d")]],
|
|
225
|
+
// Cursor Movement
|
|
226
|
+
[Command.HOME, [new KeyBinding("ctrl+a"), new KeyBinding("home")]],
|
|
227
|
+
[Command.END, [new KeyBinding("ctrl+e"), new KeyBinding("end")]],
|
|
228
|
+
[Command.MOVE_UP, [new KeyBinding("up")]],
|
|
229
|
+
[Command.MOVE_DOWN, [new KeyBinding("down")]],
|
|
230
|
+
[Command.MOVE_LEFT, [new KeyBinding("left")]],
|
|
231
|
+
[Command.MOVE_RIGHT, [new KeyBinding("right"), new KeyBinding("ctrl+f")]],
|
|
232
|
+
[
|
|
233
|
+
Command.MOVE_WORD_LEFT,
|
|
234
|
+
[
|
|
235
|
+
new KeyBinding("ctrl+left"),
|
|
236
|
+
new KeyBinding("alt+left"),
|
|
237
|
+
new KeyBinding("alt+b"),
|
|
238
|
+
],
|
|
239
|
+
],
|
|
240
|
+
[
|
|
241
|
+
Command.MOVE_WORD_RIGHT,
|
|
242
|
+
[
|
|
243
|
+
new KeyBinding("ctrl+right"),
|
|
244
|
+
new KeyBinding("alt+right"),
|
|
245
|
+
new KeyBinding("alt+f"),
|
|
246
|
+
],
|
|
247
|
+
],
|
|
248
|
+
// Editing
|
|
249
|
+
[Command.KILL_LINE_RIGHT, [new KeyBinding("ctrl+k")]],
|
|
250
|
+
[Command.KILL_LINE_LEFT, [new KeyBinding("ctrl+u")]],
|
|
251
|
+
[Command.CLEAR_INPUT, [new KeyBinding("ctrl+c")]],
|
|
252
|
+
[
|
|
253
|
+
Command.DELETE_WORD_BACKWARD,
|
|
254
|
+
[
|
|
255
|
+
new KeyBinding("ctrl+backspace"),
|
|
256
|
+
new KeyBinding("alt+backspace"),
|
|
257
|
+
new KeyBinding("ctrl+w"),
|
|
258
|
+
],
|
|
259
|
+
],
|
|
260
|
+
[
|
|
261
|
+
Command.DELETE_WORD_FORWARD,
|
|
262
|
+
[
|
|
263
|
+
new KeyBinding("ctrl+delete"),
|
|
264
|
+
new KeyBinding("alt+delete"),
|
|
265
|
+
new KeyBinding("alt+d"),
|
|
266
|
+
],
|
|
267
|
+
],
|
|
268
|
+
[
|
|
269
|
+
Command.DELETE_CHAR_LEFT,
|
|
270
|
+
[new KeyBinding("backspace"), new KeyBinding("ctrl+h")],
|
|
271
|
+
],
|
|
272
|
+
[
|
|
273
|
+
Command.DELETE_CHAR_RIGHT,
|
|
274
|
+
[new KeyBinding("delete"), new KeyBinding("ctrl+d")],
|
|
275
|
+
],
|
|
276
|
+
[Command.UNDO, [new KeyBinding("cmd+z"), new KeyBinding("alt+z")]],
|
|
277
|
+
[
|
|
278
|
+
Command.REDO,
|
|
279
|
+
[
|
|
280
|
+
new KeyBinding("ctrl+shift+z"),
|
|
281
|
+
new KeyBinding("cmd+shift+z"),
|
|
282
|
+
new KeyBinding("alt+shift+z"),
|
|
283
|
+
],
|
|
284
|
+
],
|
|
285
|
+
// Scrolling
|
|
286
|
+
[Command.SCROLL_UP, [new KeyBinding("shift+up")]],
|
|
287
|
+
[Command.SCROLL_DOWN, [new KeyBinding("shift+down")]],
|
|
288
|
+
[
|
|
289
|
+
Command.SCROLL_HOME,
|
|
290
|
+
[new KeyBinding("ctrl+home"), new KeyBinding("shift+home")],
|
|
291
|
+
],
|
|
292
|
+
[
|
|
293
|
+
Command.SCROLL_END,
|
|
294
|
+
[new KeyBinding("ctrl+end"), new KeyBinding("shift+end")],
|
|
295
|
+
],
|
|
296
|
+
[Command.PAGE_UP, [new KeyBinding("pageup")]],
|
|
297
|
+
[Command.PAGE_DOWN, [new KeyBinding("pagedown")]],
|
|
298
|
+
// History & Search
|
|
299
|
+
[Command.HISTORY_UP, [new KeyBinding("ctrl+p")]],
|
|
300
|
+
[Command.HISTORY_DOWN, [new KeyBinding("ctrl+n")]],
|
|
301
|
+
[Command.REVERSE_SEARCH, [new KeyBinding("ctrl+r")]],
|
|
302
|
+
[Command.SUBMIT_REVERSE_SEARCH, [new KeyBinding("enter")]],
|
|
303
|
+
[Command.ACCEPT_SUGGESTION_REVERSE_SEARCH, [new KeyBinding("tab")]],
|
|
304
|
+
// Navigation
|
|
305
|
+
[Command.NAVIGATION_UP, [new KeyBinding("up")]],
|
|
306
|
+
[Command.NAVIGATION_DOWN, [new KeyBinding("down")]],
|
|
307
|
+
// Navigation shortcuts appropriate for dialogs where we do not need to accept
|
|
308
|
+
// text input.
|
|
309
|
+
[Command.DIALOG_NAVIGATION_UP, [new KeyBinding("up"), new KeyBinding("k")]],
|
|
310
|
+
[
|
|
311
|
+
Command.DIALOG_NAVIGATION_DOWN,
|
|
312
|
+
[new KeyBinding("down"), new KeyBinding("j")],
|
|
313
|
+
],
|
|
314
|
+
[Command.DIALOG_NEXT, [new KeyBinding("tab")]],
|
|
315
|
+
[Command.DIALOG_PREV, [new KeyBinding("shift+tab")]],
|
|
316
|
+
// Suggestions & Completions
|
|
317
|
+
[Command.ACCEPT_SUGGESTION, [new KeyBinding("tab"), new KeyBinding("enter")]],
|
|
318
|
+
[Command.COMPLETION_UP, [new KeyBinding("up"), new KeyBinding("ctrl+p")]],
|
|
319
|
+
[Command.COMPLETION_DOWN, [new KeyBinding("down"), new KeyBinding("ctrl+n")]],
|
|
320
|
+
[Command.EXPAND_SUGGESTION, [new KeyBinding("right")]],
|
|
321
|
+
[Command.COLLAPSE_SUGGESTION, [new KeyBinding("left")]],
|
|
322
|
+
// Text Input
|
|
323
|
+
// Must also exclude shift to allow shift+enter for newline
|
|
324
|
+
[Command.SUBMIT, [new KeyBinding("enter")]],
|
|
325
|
+
[Command.QUEUE_MESSAGE, [new KeyBinding("tab")]],
|
|
326
|
+
[
|
|
327
|
+
Command.NEWLINE,
|
|
328
|
+
[
|
|
329
|
+
new KeyBinding("ctrl+enter"),
|
|
330
|
+
new KeyBinding("cmd+enter"),
|
|
331
|
+
new KeyBinding("alt+enter"),
|
|
332
|
+
new KeyBinding("shift+enter"),
|
|
333
|
+
new KeyBinding("ctrl+j"),
|
|
334
|
+
],
|
|
335
|
+
],
|
|
336
|
+
[
|
|
337
|
+
Command.OPEN_EXTERNAL_EDITOR,
|
|
338
|
+
[new KeyBinding("ctrl+g"), new KeyBinding("ctrl+shift+g")],
|
|
339
|
+
],
|
|
340
|
+
[Command.DEPRECATED_OPEN_EXTERNAL_EDITOR, [new KeyBinding("ctrl+x")]],
|
|
341
|
+
[
|
|
342
|
+
Command.PASTE_CLIPBOARD,
|
|
343
|
+
[
|
|
344
|
+
new KeyBinding("ctrl+v"),
|
|
345
|
+
new KeyBinding("cmd+v"),
|
|
346
|
+
new KeyBinding("alt+v"),
|
|
347
|
+
],
|
|
348
|
+
],
|
|
349
|
+
// App Controls
|
|
350
|
+
[Command.SHOW_ERROR_DETAILS, [new KeyBinding("f12")]],
|
|
351
|
+
[Command.SHOW_FULL_TODOS, [new KeyBinding("ctrl+t")]],
|
|
352
|
+
[Command.SHOW_IDE_CONTEXT_DETAIL, [new KeyBinding("f4")]],
|
|
353
|
+
[Command.TOGGLE_MARKDOWN, [new KeyBinding("alt+m")]],
|
|
354
|
+
[Command.TOGGLE_COPY_MODE, [new KeyBinding("f9")]],
|
|
355
|
+
[Command.TOGGLE_MOUSE_MODE, [new KeyBinding("ctrl+s")]],
|
|
356
|
+
[Command.TOGGLE_YOLO, [new KeyBinding("ctrl+y")]],
|
|
357
|
+
[Command.CYCLE_APPROVAL_MODE, [new KeyBinding("shift+tab")]],
|
|
358
|
+
[Command.SHOW_MORE_LINES, [new KeyBinding("ctrl+o")]],
|
|
359
|
+
[Command.EXPAND_PASTE, [new KeyBinding("ctrl+o")]],
|
|
360
|
+
[Command.FOCUS_SHELL_INPUT, [new KeyBinding("tab")]],
|
|
361
|
+
[Command.UNFOCUS_SHELL_INPUT, [new KeyBinding("shift+tab")]],
|
|
362
|
+
[Command.CLEAR_SCREEN, [new KeyBinding("ctrl+l")]],
|
|
363
|
+
[Command.RESTART_APP, [new KeyBinding("r"), new KeyBinding("shift+r")]],
|
|
364
|
+
[Command.SUSPEND_APP, [new KeyBinding("ctrl+z")]],
|
|
365
|
+
[Command.SHOW_SHELL_INPUT_UNFOCUS_WARNING, [new KeyBinding("tab")]],
|
|
366
|
+
[Command.DUMP_FRAME, [new KeyBinding("f8")]],
|
|
367
|
+
[Command.START_RECORDING, [new KeyBinding("f6")]],
|
|
368
|
+
[Command.STOP_RECORDING, [new KeyBinding("f7")]],
|
|
369
|
+
// Background Shell Controls
|
|
370
|
+
[Command.BACKGROUND_SHELL_ESCAPE, [new KeyBinding("escape")]],
|
|
371
|
+
[Command.BACKGROUND_SHELL_SELECT, [new KeyBinding("enter")]],
|
|
372
|
+
[Command.TOGGLE_BACKGROUND_SHELL, [new KeyBinding("ctrl+b")]],
|
|
373
|
+
[Command.TOGGLE_BACKGROUND_SHELL_LIST, [new KeyBinding("ctrl+l")]],
|
|
374
|
+
[Command.KILL_BACKGROUND_SHELL, [new KeyBinding("ctrl+k")]],
|
|
375
|
+
[Command.UNFOCUS_BACKGROUND_SHELL, [new KeyBinding("shift+tab")]],
|
|
376
|
+
[Command.UNFOCUS_BACKGROUND_SHELL_LIST, [new KeyBinding("tab")]],
|
|
377
|
+
[Command.SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING, [new KeyBinding("tab")]],
|
|
378
|
+
// Extension Controls
|
|
379
|
+
[Command.UPDATE_EXTENSION, [new KeyBinding("i")]],
|
|
380
|
+
[Command.LINK_EXTENSION, [new KeyBinding("l")]],
|
|
381
|
+
]);
|
|
382
|
+
/**
|
|
383
|
+
* Presentation metadata for grouping commands in documentation or UI.
|
|
384
|
+
*/
|
|
385
|
+
export const commandCategories = [
|
|
386
|
+
{
|
|
387
|
+
title: "Basic Controls",
|
|
388
|
+
commands: [Command.RETURN, Command.ESCAPE, Command.QUIT, Command.EXIT],
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
title: "Cursor Movement",
|
|
392
|
+
commands: [
|
|
393
|
+
Command.HOME,
|
|
394
|
+
Command.END,
|
|
395
|
+
Command.MOVE_UP,
|
|
396
|
+
Command.MOVE_DOWN,
|
|
397
|
+
Command.MOVE_LEFT,
|
|
398
|
+
Command.MOVE_RIGHT,
|
|
399
|
+
Command.MOVE_WORD_LEFT,
|
|
400
|
+
Command.MOVE_WORD_RIGHT,
|
|
401
|
+
],
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
title: "Editing",
|
|
405
|
+
commands: [
|
|
406
|
+
Command.KILL_LINE_RIGHT,
|
|
407
|
+
Command.KILL_LINE_LEFT,
|
|
408
|
+
Command.CLEAR_INPUT,
|
|
409
|
+
Command.DELETE_WORD_BACKWARD,
|
|
410
|
+
Command.DELETE_WORD_FORWARD,
|
|
411
|
+
Command.DELETE_CHAR_LEFT,
|
|
412
|
+
Command.DELETE_CHAR_RIGHT,
|
|
413
|
+
Command.UNDO,
|
|
414
|
+
Command.REDO,
|
|
415
|
+
],
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
title: "Scrolling",
|
|
419
|
+
commands: [
|
|
420
|
+
Command.SCROLL_UP,
|
|
421
|
+
Command.SCROLL_DOWN,
|
|
422
|
+
Command.SCROLL_HOME,
|
|
423
|
+
Command.SCROLL_END,
|
|
424
|
+
Command.PAGE_UP,
|
|
425
|
+
Command.PAGE_DOWN,
|
|
426
|
+
],
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
title: "History & Search",
|
|
430
|
+
commands: [
|
|
431
|
+
Command.HISTORY_UP,
|
|
432
|
+
Command.HISTORY_DOWN,
|
|
433
|
+
Command.REVERSE_SEARCH,
|
|
434
|
+
Command.SUBMIT_REVERSE_SEARCH,
|
|
435
|
+
Command.ACCEPT_SUGGESTION_REVERSE_SEARCH,
|
|
436
|
+
],
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
title: "Navigation",
|
|
440
|
+
commands: [
|
|
441
|
+
Command.NAVIGATION_UP,
|
|
442
|
+
Command.NAVIGATION_DOWN,
|
|
443
|
+
Command.DIALOG_NAVIGATION_UP,
|
|
444
|
+
Command.DIALOG_NAVIGATION_DOWN,
|
|
445
|
+
Command.DIALOG_NEXT,
|
|
446
|
+
Command.DIALOG_PREV,
|
|
447
|
+
],
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
title: "Suggestions & Completions",
|
|
451
|
+
commands: [
|
|
452
|
+
Command.ACCEPT_SUGGESTION,
|
|
453
|
+
Command.COMPLETION_UP,
|
|
454
|
+
Command.COMPLETION_DOWN,
|
|
455
|
+
Command.EXPAND_SUGGESTION,
|
|
456
|
+
Command.COLLAPSE_SUGGESTION,
|
|
457
|
+
],
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
title: "Text Input",
|
|
461
|
+
commands: [
|
|
462
|
+
Command.SUBMIT,
|
|
463
|
+
Command.QUEUE_MESSAGE,
|
|
464
|
+
Command.NEWLINE,
|
|
465
|
+
Command.OPEN_EXTERNAL_EDITOR,
|
|
466
|
+
Command.DEPRECATED_OPEN_EXTERNAL_EDITOR,
|
|
467
|
+
Command.PASTE_CLIPBOARD,
|
|
468
|
+
],
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
title: "App Controls",
|
|
472
|
+
commands: [
|
|
473
|
+
Command.SHOW_ERROR_DETAILS,
|
|
474
|
+
Command.SHOW_FULL_TODOS,
|
|
475
|
+
Command.SHOW_IDE_CONTEXT_DETAIL,
|
|
476
|
+
Command.TOGGLE_MARKDOWN,
|
|
477
|
+
Command.TOGGLE_COPY_MODE,
|
|
478
|
+
Command.TOGGLE_MOUSE_MODE,
|
|
479
|
+
Command.TOGGLE_YOLO,
|
|
480
|
+
Command.CYCLE_APPROVAL_MODE,
|
|
481
|
+
Command.SHOW_MORE_LINES,
|
|
482
|
+
Command.EXPAND_PASTE,
|
|
483
|
+
Command.FOCUS_SHELL_INPUT,
|
|
484
|
+
Command.UNFOCUS_SHELL_INPUT,
|
|
485
|
+
Command.CLEAR_SCREEN,
|
|
486
|
+
Command.RESTART_APP,
|
|
487
|
+
Command.SUSPEND_APP,
|
|
488
|
+
Command.SHOW_SHELL_INPUT_UNFOCUS_WARNING,
|
|
489
|
+
],
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
title: "Background Shell Controls",
|
|
493
|
+
commands: [
|
|
494
|
+
Command.BACKGROUND_SHELL_ESCAPE,
|
|
495
|
+
Command.BACKGROUND_SHELL_SELECT,
|
|
496
|
+
Command.TOGGLE_BACKGROUND_SHELL,
|
|
497
|
+
Command.TOGGLE_BACKGROUND_SHELL_LIST,
|
|
498
|
+
Command.KILL_BACKGROUND_SHELL,
|
|
499
|
+
Command.UNFOCUS_BACKGROUND_SHELL,
|
|
500
|
+
Command.UNFOCUS_BACKGROUND_SHELL_LIST,
|
|
501
|
+
Command.SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING,
|
|
502
|
+
Command.DUMP_FRAME,
|
|
503
|
+
Command.START_RECORDING,
|
|
504
|
+
Command.STOP_RECORDING,
|
|
505
|
+
],
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
title: "Extension Controls",
|
|
509
|
+
commands: [Command.UPDATE_EXTENSION, Command.LINK_EXTENSION],
|
|
510
|
+
},
|
|
511
|
+
];
|
|
512
|
+
/**
|
|
513
|
+
* Human-readable descriptions for each command, used in docs/tooling.
|
|
514
|
+
*/
|
|
515
|
+
export const commandDescriptions = {
|
|
516
|
+
// Basic Controls
|
|
517
|
+
[Command.RETURN]: "Confirm the current selection or choice.",
|
|
518
|
+
[Command.ESCAPE]: "Dismiss dialogs or cancel the current focus.",
|
|
519
|
+
[Command.QUIT]: "Cancel the current request or quit the CLI when input is empty.",
|
|
520
|
+
[Command.EXIT]: "Exit the CLI when the input buffer is empty.",
|
|
521
|
+
// Cursor Movement
|
|
522
|
+
[Command.HOME]: "Move the cursor to the start of the line.",
|
|
523
|
+
[Command.END]: "Move the cursor to the end of the line.",
|
|
524
|
+
[Command.MOVE_UP]: "Move the cursor up one line.",
|
|
525
|
+
[Command.MOVE_DOWN]: "Move the cursor down one line.",
|
|
526
|
+
[Command.MOVE_LEFT]: "Move the cursor one character to the left.",
|
|
527
|
+
[Command.MOVE_RIGHT]: "Move the cursor one character to the right.",
|
|
528
|
+
[Command.MOVE_WORD_LEFT]: "Move the cursor one word to the left.",
|
|
529
|
+
[Command.MOVE_WORD_RIGHT]: "Move the cursor one word to the right.",
|
|
530
|
+
// Editing
|
|
531
|
+
[Command.KILL_LINE_RIGHT]: "Delete from the cursor to the end of the line.",
|
|
532
|
+
[Command.KILL_LINE_LEFT]: "Delete from the cursor to the start of the line.",
|
|
533
|
+
[Command.CLEAR_INPUT]: "Clear all text in the input field.",
|
|
534
|
+
[Command.DELETE_WORD_BACKWARD]: "Delete the previous word.",
|
|
535
|
+
[Command.DELETE_WORD_FORWARD]: "Delete the next word.",
|
|
536
|
+
[Command.DELETE_CHAR_LEFT]: "Delete the character to the left.",
|
|
537
|
+
[Command.DELETE_CHAR_RIGHT]: "Delete the character to the right.",
|
|
538
|
+
[Command.UNDO]: "Undo the most recent text edit.",
|
|
539
|
+
[Command.REDO]: "Redo the most recent undone text edit.",
|
|
540
|
+
// Scrolling
|
|
541
|
+
[Command.SCROLL_UP]: "Scroll content up.",
|
|
542
|
+
[Command.SCROLL_DOWN]: "Scroll content down.",
|
|
543
|
+
[Command.SCROLL_HOME]: "Scroll to the top.",
|
|
544
|
+
[Command.SCROLL_END]: "Scroll to the bottom.",
|
|
545
|
+
[Command.PAGE_UP]: "Scroll up by one page.",
|
|
546
|
+
[Command.PAGE_DOWN]: "Scroll down by one page.",
|
|
547
|
+
// History & Search
|
|
548
|
+
[Command.HISTORY_UP]: "Show the previous entry in history.",
|
|
549
|
+
[Command.HISTORY_DOWN]: "Show the next entry in history.",
|
|
550
|
+
[Command.REVERSE_SEARCH]: "Start reverse search through history.",
|
|
551
|
+
[Command.SUBMIT_REVERSE_SEARCH]: "Submit the selected reverse-search match.",
|
|
552
|
+
[Command.ACCEPT_SUGGESTION_REVERSE_SEARCH]: "Accept a suggestion while reverse searching.",
|
|
553
|
+
// Navigation
|
|
554
|
+
[Command.NAVIGATION_UP]: "Move selection up in lists.",
|
|
555
|
+
[Command.NAVIGATION_DOWN]: "Move selection down in lists.",
|
|
556
|
+
[Command.DIALOG_NAVIGATION_UP]: "Move up within dialog options.",
|
|
557
|
+
[Command.DIALOG_NAVIGATION_DOWN]: "Move down within dialog options.",
|
|
558
|
+
[Command.DIALOG_NEXT]: "Move to the next item or question in a dialog.",
|
|
559
|
+
[Command.DIALOG_PREV]: "Move to the previous item or question in a dialog.",
|
|
560
|
+
// Suggestions & Completions
|
|
561
|
+
[Command.ACCEPT_SUGGESTION]: "Accept the inline suggestion.",
|
|
562
|
+
[Command.COMPLETION_UP]: "Move to the previous completion option.",
|
|
563
|
+
[Command.COMPLETION_DOWN]: "Move to the next completion option.",
|
|
564
|
+
[Command.EXPAND_SUGGESTION]: "Expand an inline suggestion.",
|
|
565
|
+
[Command.COLLAPSE_SUGGESTION]: "Collapse an inline suggestion.",
|
|
566
|
+
// Text Input
|
|
567
|
+
[Command.SUBMIT]: "Submit the current prompt.",
|
|
568
|
+
[Command.QUEUE_MESSAGE]: "Queue the current prompt to be processed after the current task finishes.",
|
|
569
|
+
[Command.NEWLINE]: "Insert a newline without submitting.",
|
|
570
|
+
[Command.OPEN_EXTERNAL_EDITOR]: "Open the current prompt or the plan in an external editor.",
|
|
571
|
+
[Command.DEPRECATED_OPEN_EXTERNAL_EDITOR]: "Deprecated command to open external editor.",
|
|
572
|
+
[Command.PASTE_CLIPBOARD]: "Paste from the clipboard.",
|
|
573
|
+
// App Controls
|
|
574
|
+
[Command.SHOW_ERROR_DETAILS]: "Toggle the debug console for detailed error information.",
|
|
575
|
+
[Command.SHOW_FULL_TODOS]: "Toggle the full TODO list.",
|
|
576
|
+
[Command.SHOW_IDE_CONTEXT_DETAIL]: "Show IDE context details.",
|
|
577
|
+
[Command.TOGGLE_MARKDOWN]: "Toggle Markdown rendering.",
|
|
578
|
+
[Command.TOGGLE_COPY_MODE]: "Toggle copy mode when in alternate buffer mode.",
|
|
579
|
+
[Command.TOGGLE_MOUSE_MODE]: "Toggle mouse mode (scrolling and clicking).",
|
|
580
|
+
[Command.TOGGLE_YOLO]: "Toggle YOLO (auto-approval) mode for tool calls.",
|
|
581
|
+
[Command.CYCLE_APPROVAL_MODE]: "Cycle through approval modes: default (prompt), auto_edit (auto-approve edits), and plan (read-only). Plan mode is skipped when the agent is busy.",
|
|
582
|
+
[Command.SHOW_MORE_LINES]: "Expand and collapse blocks of content when not in alternate buffer mode.",
|
|
583
|
+
[Command.EXPAND_PASTE]: "Expand or collapse a paste placeholder when cursor is over placeholder.",
|
|
584
|
+
[Command.FOCUS_SHELL_INPUT]: "Move focus from Gemini to the active shell.",
|
|
585
|
+
[Command.UNFOCUS_SHELL_INPUT]: "Move focus from the shell back to Gemini.",
|
|
586
|
+
[Command.CLEAR_SCREEN]: "Clear the terminal screen and redraw the UI.",
|
|
587
|
+
[Command.RESTART_APP]: "Restart the application.",
|
|
588
|
+
[Command.SUSPEND_APP]: "Suspend the CLI and move it to the background.",
|
|
589
|
+
[Command.SHOW_SHELL_INPUT_UNFOCUS_WARNING]: "Show warning when trying to move focus away from shell input.",
|
|
590
|
+
// Background Shell Controls
|
|
591
|
+
[Command.BACKGROUND_SHELL_ESCAPE]: "Dismiss background shell list.",
|
|
592
|
+
[Command.BACKGROUND_SHELL_SELECT]: "Confirm selection in background shell list.",
|
|
593
|
+
[Command.TOGGLE_BACKGROUND_SHELL]: "Toggle current background shell visibility.",
|
|
594
|
+
[Command.TOGGLE_BACKGROUND_SHELL_LIST]: "Toggle background shell list.",
|
|
595
|
+
[Command.KILL_BACKGROUND_SHELL]: "Kill the active background shell.",
|
|
596
|
+
[Command.UNFOCUS_BACKGROUND_SHELL]: "Move focus from background shell to Gemini.",
|
|
597
|
+
[Command.UNFOCUS_BACKGROUND_SHELL_LIST]: "Move focus from background shell list to Gemini.",
|
|
598
|
+
[Command.SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING]: "Show warning when trying to move focus away from background shell.",
|
|
599
|
+
// Extension Controls
|
|
600
|
+
[Command.UPDATE_EXTENSION]: "Update the current extension if available.",
|
|
601
|
+
[Command.LINK_EXTENSION]: "Link the current extension to a local path.",
|
|
602
|
+
[Command.DUMP_FRAME]: "Dump the current frame as a snapshot.",
|
|
603
|
+
[Command.START_RECORDING]: "Start recording the session.",
|
|
604
|
+
[Command.STOP_RECORDING]: "Stop recording the session.",
|
|
605
|
+
};
|
|
606
|
+
export const keybindingsSchema = z.array(z
|
|
607
|
+
.object({
|
|
608
|
+
command: z.string().transform((val, ctx) => {
|
|
609
|
+
const negate = val.startsWith("-");
|
|
610
|
+
const commandId = negate ? val.slice(1) : val;
|
|
611
|
+
const result = z.nativeEnum(Command).safeParse(commandId);
|
|
612
|
+
if (!result.success) {
|
|
613
|
+
ctx.addIssue({
|
|
614
|
+
code: z.ZodIssueCode.custom,
|
|
615
|
+
message: `Invalid command: "${val}".`,
|
|
616
|
+
});
|
|
617
|
+
return z.NEVER;
|
|
618
|
+
}
|
|
619
|
+
return {
|
|
620
|
+
command: result.data,
|
|
621
|
+
negate,
|
|
622
|
+
};
|
|
623
|
+
}),
|
|
624
|
+
key: z.string(),
|
|
625
|
+
})
|
|
626
|
+
.transform((val) => ({
|
|
627
|
+
commandEntry: val.command,
|
|
628
|
+
key: val.key,
|
|
629
|
+
})));
|
|
630
|
+
//# sourceMappingURL=keyBindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyBindings.js","sourceRoot":"","sources":["../../../src/cli/key/keyBindings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,CAAN,IAAY,OAqGX;AArGD,WAAY,OAAO;IAClB,iBAAiB;IACjB,mCAAwB,CAAA;IACxB,kCAAuB,CAAA;IACvB,8BAAmB,CAAA;IACnB,8BAAmB,CAAA;IAEnB,kBAAkB;IAClB,+BAAoB,CAAA;IACpB,6BAAkB,CAAA;IAClB,gCAAqB,CAAA;IACrB,oCAAyB,CAAA;IACzB,oCAAyB,CAAA;IACzB,sCAA2B,CAAA;IAC3B,6CAAkC,CAAA;IAClC,+CAAoC,CAAA;IAEpC,UAAU;IACV,kDAAuC,CAAA;IACvC,gDAAqC,CAAA;IACrC,qCAA0B,CAAA;IAC1B,uDAA4C,CAAA;IAC5C,uDAA4C,CAAA;IAC5C,+CAAoC,CAAA;IACpC,iDAAsC,CAAA;IACtC,6BAAkB,CAAA;IAClB,6BAAkB,CAAA;IAElB,YAAY;IACZ,kCAAuB,CAAA;IACvB,sCAA2B,CAAA;IAC3B,sCAA2B,CAAA;IAC3B,oCAAyB,CAAA;IACzB,oCAAyB,CAAA;IACzB,wCAA6B,CAAA;IAE7B,mBAAmB;IACnB,0CAA+B,CAAA;IAC/B,wCAA6B,CAAA;IAC7B,kDAAuC,CAAA;IACvC,0DAA+C,CAAA;IAC/C,qEAA0D,CAAA;IAE1D,aAAa;IACb,mCAAwB,CAAA;IACxB,uCAA4B,CAAA;IAC5B,iDAAsC,CAAA;IACtC,qDAA0C,CAAA;IAC1C,0CAA+B,CAAA;IAC/B,8CAAmC,CAAA;IAEnC,4BAA4B;IAC5B,+CAAoC,CAAA;IACpC,kDAAuC,CAAA;IACvC,gDAAqC,CAAA;IACrC,+CAAoC,CAAA;IACpC,mDAAwC,CAAA;IAExC,aAAa;IACb,kCAAuB,CAAA;IACvB,+CAAoC,CAAA;IACpC,oCAAyB,CAAA;IACzB,4DAAiD,CAAA;IACjD,iFAAsE,CAAA;IACtE,0CAA+B,CAAA;IAE/B,eAAe;IACf,sDAA2C,CAAA;IAC3C,gDAAqC,CAAA;IACrC,+DAAoD,CAAA;IACpD,iDAAsC,CAAA;IACtC,kDAAuC,CAAA;IACvC,oDAAyC,CAAA;IACzC,yCAA8B,CAAA;IAC9B,wDAA6C,CAAA;IAC7C,gDAAqC,CAAA;IACrC,2CAAgC,CAAA;IAChC,oDAAyC,CAAA;IACzC,wDAA6C,CAAA;IAC7C,2CAAgC,CAAA;IAChC,sCAA2B,CAAA;IAC3B,sCAA2B,CAAA;IAC3B,2EAAgE,CAAA;IAEhE,4BAA4B;IAC5B,wDAA6C,CAAA;IAC7C,wDAA6C,CAAA;IAC7C,wDAA6C,CAAA;IAC7C,iEAAsD,CAAA;IACtD,oDAAyC,CAAA;IACzC,0DAA+C,CAAA;IAC/C,mEAAwD,CAAA;IACxD,8EAAmE,CAAA;IAEnE,qBAAqB;IACrB,gDAAqC,CAAA;IACrC,4CAAiC,CAAA;IAEjC,uCAA4B,CAAA;IAC5B,iDAAsC,CAAA;IACtC,+CAAoC,CAAA;AACrC,CAAC,EArGW,OAAO,KAAP,OAAO,QAqGlB;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IACd,MAAM,CAAU,eAAe,GAAG,IAAI,GAAG,CAAC;QACjD,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,gBAAgB;QACtE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,iBAAiB;QACxE,uBAAuB;QACvB,MAAM;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,QAAQ;QACR,UAAU;QACV,KAAK;QACL,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;QACX,QAAQ;QACR,OAAO;QACP,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,YAAY;QACZ,kBAAkB;QAClB,iBAAiB;QACjB,gBAAgB;QAChB,eAAe;KACf,CAAC,CAAC;IAEH,yDAAyD;IAChD,IAAI,CAAS;IACb,KAAK,CAAU;IACf,GAAG,CAAU;IACb,IAAI,CAAU;IACd,GAAG,CAAU;IAEtB,YAAY,OAAe;QAC1B,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,IAAI,OAAgB,CAAC;QACrB,GAAG,CAAC;YACH,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAC3C,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,IAAI,GAAG,IAAI,CAAC;gBACZ,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,GAAG,GAAG,IAAI,CAAC;gBACX,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,GAAG,GAAG,IAAI,CAAC;gBACX,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,GAAG,GAAG,IAAI,CAAC;gBACX,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5C,GAAG,GAAG,IAAI,CAAC;gBACX,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;iBAAM,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,GAAG,GAAG,IAAI,CAAC;gBACX,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;QACF,CAAC,QAAQ,OAAO,EAAE;QAElB,MAAM,GAAG,GAAG,OAAO,CAAC;QAEpB,gEAAgE;QAChE,MAAM,YAAY,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACd,4BAA4B,GAAG,SAAS,OAAO,IAAI;gBAClD,0CAA0C,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAQ;QACf,OAAO,CACN,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YACtB,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK;YAC5B,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG;YACxB,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI;YAC1B,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAiB;QACvB,OAAO,CACN,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACxB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YAC1B,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;YACtB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACxB,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACtB,CAAC;IACH,CAAC;;AAQF;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAqB,IAAI,GAAG,CAAC;IAChE,iBAAiB;IACjB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1C,kBAAkB;IAClB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE;QACC,OAAO,CAAC,cAAc;QACtB;YACC,IAAI,UAAU,CAAC,WAAW,CAAC;YAC3B,IAAI,UAAU,CAAC,UAAU,CAAC;YAC1B,IAAI,UAAU,CAAC,OAAO,CAAC;SACvB;KACD;IACD;QACC,OAAO,CAAC,eAAe;QACvB;YACC,IAAI,UAAU,CAAC,YAAY,CAAC;YAC5B,IAAI,UAAU,CAAC,WAAW,CAAC;YAC3B,IAAI,UAAU,CAAC,OAAO,CAAC;SACvB;KACD;IAED,UAAU;IACV,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD;QACC,OAAO,CAAC,oBAAoB;QAC5B;YACC,IAAI,UAAU,CAAC,gBAAgB,CAAC;YAChC,IAAI,UAAU,CAAC,eAAe,CAAC;YAC/B,IAAI,UAAU,CAAC,QAAQ,CAAC;SACxB;KACD;IACD;QACC,OAAO,CAAC,mBAAmB;QAC3B;YACC,IAAI,UAAU,CAAC,aAAa,CAAC;YAC7B,IAAI,UAAU,CAAC,YAAY,CAAC;YAC5B,IAAI,UAAU,CAAC,OAAO,CAAC;SACvB;KACD;IACD;QACC,OAAO,CAAC,gBAAgB;QACxB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;KACvD;IACD;QACC,OAAO,CAAC,iBAAiB;QACzB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;KACpD;IACD,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE;QACC,OAAO,CAAC,IAAI;QACZ;YACC,IAAI,UAAU,CAAC,cAAc,CAAC;YAC9B,IAAI,UAAU,CAAC,aAAa,CAAC;YAC7B,IAAI,UAAU,CAAC,aAAa,CAAC;SAC7B;KACD;IAED,YAAY;IACZ,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IACrD;QACC,OAAO,CAAC,WAAW;QACnB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;KAC3D;IACD;QACC,OAAO,CAAC,UAAU;QAClB,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;KACzD;IACD,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjD,mBAAmB;IACnB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAEnE,aAAa;IACb,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,8EAA8E;IAC9E,cAAc;IACd,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E;QACC,OAAO,CAAC,sBAAsB;QAC9B,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;KAC7C;IACD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAEpD,4BAA4B;IAC5B,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvD,aAAa;IACb,2DAA2D;IAC3D,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD;QACC,OAAO,CAAC,OAAO;QACf;YACC,IAAI,UAAU,CAAC,YAAY,CAAC;YAC5B,IAAI,UAAU,CAAC,WAAW,CAAC;YAC3B,IAAI,UAAU,CAAC,WAAW,CAAC;YAC3B,IAAI,UAAU,CAAC,aAAa,CAAC;YAC7B,IAAI,UAAU,CAAC,QAAQ,CAAC;SACxB;KACD;IACD;QACC,OAAO,CAAC,oBAAoB;QAC5B,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;KAC1D;IACD,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE;QACC,OAAO,CAAC,eAAe;QACvB;YACC,IAAI,UAAU,CAAC,QAAQ,CAAC;YACxB,IAAI,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,UAAU,CAAC,OAAO,CAAC;SACvB;KACD;IAED,eAAe;IACf,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IACvE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,4BAA4B;IAC5B,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC,OAAO,CAAC,qCAAqC,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAExE,qBAAqB;IACrB,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;CAC/C,CAAC,CAAC;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC5D;QACC,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;KACtE;IACD;QACC,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE;YACT,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,GAAG;YACX,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,cAAc;YACtB,OAAO,CAAC,eAAe;SACvB;KACD;IACD;QACC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE;YACT,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,cAAc;YACtB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,oBAAoB;YAC5B,OAAO,CAAC,mBAAmB;YAC3B,OAAO,CAAC,gBAAgB;YACxB,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,IAAI;YACZ,OAAO,CAAC,IAAI;SACZ;KACD;IACD;QACC,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACT,OAAO,CAAC,SAAS;YACjB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,SAAS;SACjB;KACD;IACD;QACC,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE;YACT,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,cAAc;YACtB,OAAO,CAAC,qBAAqB;YAC7B,OAAO,CAAC,gCAAgC;SACxC;KACD;IACD;QACC,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE;YACT,OAAO,CAAC,aAAa;YACrB,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,oBAAoB;YAC5B,OAAO,CAAC,sBAAsB;YAC9B,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,WAAW;SACnB;KACD;IACD;QACC,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE;YACT,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,aAAa;YACrB,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,mBAAmB;SAC3B;KACD;IACD;QACC,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE;YACT,OAAO,CAAC,MAAM;YACd,OAAO,CAAC,aAAa;YACrB,OAAO,CAAC,OAAO;YACf,OAAO,CAAC,oBAAoB;YAC5B,OAAO,CAAC,+BAA+B;YACvC,OAAO,CAAC,eAAe;SACvB;KACD;IACD;QACC,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE;YACT,OAAO,CAAC,kBAAkB;YAC1B,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,uBAAuB;YAC/B,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,gBAAgB;YACxB,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,mBAAmB;YAC3B,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,iBAAiB;YACzB,OAAO,CAAC,mBAAmB;YAC3B,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,WAAW;YACnB,OAAO,CAAC,gCAAgC;SACxC;KACD;IACD;QACC,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE;YACT,OAAO,CAAC,uBAAuB;YAC/B,OAAO,CAAC,uBAAuB;YAC/B,OAAO,CAAC,uBAAuB;YAC/B,OAAO,CAAC,4BAA4B;YACpC,OAAO,CAAC,qBAAqB;YAC7B,OAAO,CAAC,wBAAwB;YAChC,OAAO,CAAC,6BAA6B;YACrC,OAAO,CAAC,qCAAqC;YAC7C,OAAO,CAAC,UAAU;YAClB,OAAO,CAAC,eAAe;YACvB,OAAO,CAAC,cAAc;SACtB;KACD;IACD;QACC,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC;KAC5D;CACD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsC;IACrE,iBAAiB;IACjB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,0CAA0C;IAC5D,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,8CAA8C;IAChE,CAAC,OAAO,CAAC,IAAI,CAAC,EACb,iEAAiE;IAClE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,8CAA8C;IAE9D,kBAAkB;IAClB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,2CAA2C;IAC3D,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,yCAAyC;IACxD,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,8BAA8B;IACjD,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,gCAAgC;IACrD,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,4CAA4C;IACjE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,6CAA6C;IACnE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,uCAAuC;IACjE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,wCAAwC;IAEnE,UAAU;IACV,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,gDAAgD;IAC3E,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,kDAAkD;IAC5E,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,oCAAoC;IAC3D,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,2BAA2B;IAC3D,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,uBAAuB;IACtD,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,mCAAmC;IAC/D,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,oCAAoC;IACjE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,iCAAiC;IACjD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,wCAAwC;IAExD,YAAY;IACZ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,oBAAoB;IACzC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,sBAAsB;IAC7C,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,oBAAoB;IAC3C,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7C,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,wBAAwB;IAC3C,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,0BAA0B;IAE/C,mBAAmB;IACnB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,qCAAqC;IAC3D,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,iCAAiC;IACzD,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,uCAAuC;IACjE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,2CAA2C;IAC5E,CAAC,OAAO,CAAC,gCAAgC,CAAC,EACzC,8CAA8C;IAE/C,aAAa;IACb,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,6BAA6B;IACtD,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,+BAA+B;IAC1D,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,gCAAgC;IAChE,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,kCAAkC;IACpE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,gDAAgD;IACvE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,oDAAoD;IAE3E,4BAA4B;IAC5B,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,+BAA+B;IAC5D,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,yCAAyC;IAClE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,qCAAqC;IAChE,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,8BAA8B;IAC3D,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,gCAAgC;IAE/D,aAAa;IACb,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,4BAA4B;IAC9C,CAAC,OAAO,CAAC,aAAa,CAAC,EACtB,2EAA2E;IAC5E,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,sCAAsC;IACzD,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAC7B,4DAA4D;IAC7D,CAAC,OAAO,CAAC,+BAA+B,CAAC,EACxC,6CAA6C;IAC9C,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,2BAA2B;IAEtD,eAAe;IACf,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAC3B,0DAA0D;IAC3D,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,4BAA4B;IACvD,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,2BAA2B;IAC9D,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,4BAA4B;IACvD,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,iDAAiD;IAC7E,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,6CAA6C;IAC1E,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,kDAAkD;IACzE,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAC5B,oJAAoJ;IACrJ,CAAC,OAAO,CAAC,eAAe,CAAC,EACxB,0EAA0E;IAC3E,CAAC,OAAO,CAAC,YAAY,CAAC,EACrB,yEAAyE;IAC1E,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,6CAA6C;IAC1E,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,2CAA2C;IAC1E,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,8CAA8C;IACtE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,0BAA0B;IACjD,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,gDAAgD;IACvE,CAAC,OAAO,CAAC,gCAAgC,CAAC,EACzC,+DAA+D;IAEhE,4BAA4B;IAC5B,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,gCAAgC;IACnE,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAChC,6CAA6C;IAC9C,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAChC,6CAA6C;IAC9C,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,+BAA+B;IACvE,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,mCAAmC;IACpE,CAAC,OAAO,CAAC,wBAAwB,CAAC,EACjC,6CAA6C;IAC9C,CAAC,OAAO,CAAC,6BAA6B,CAAC,EACtC,kDAAkD;IACnD,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAC9C,oEAAoE;IAErE,qBAAqB;IACrB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,4CAA4C;IACxE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,6CAA6C;IAEvE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,uCAAuC;IAC7D,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,8BAA8B;IACzD,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,6BAA6B;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CACvC,CAAC;KACC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAE9C,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,GAAG,CAAC,QAAQ,CAAC;gBACZ,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,qBAAqB,GAAG,IAAI;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC;QAChB,CAAC;QAED,OAAO;YACN,OAAO,EAAE,MAAM,CAAC,IAAI;YACpB,MAAM;SACN,CAAC;IACH,CAAC,CAAC;IACF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;CACf,CAAC;KACD,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,OAAO;IACzB,GAAG,EAAE,GAAG,CAAC,GAAG;CACZ,CAAC,CAAC,CACJ,CAAC"}
|