@shareai-lab/kode 1.2.0 → 2.0.2
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 +25 -388
- package/cli-acp.js +82 -0
- package/cli.js +89 -79
- package/dist/REPL-GIU4ZIXM.js +42 -0
- package/dist/acp-H3VJ77YG.js +1357 -0
- package/dist/acp-H3VJ77YG.js.map +7 -0
- package/dist/agentsValidate-XP3CFN6F.js +373 -0
- package/dist/agentsValidate-XP3CFN6F.js.map +7 -0
- package/dist/ask-3G5H5KD5.js +125 -0
- package/dist/ask-3G5H5KD5.js.map +7 -0
- package/dist/autoUpdater-DNRMJWFQ.js +17 -0
- package/dist/chunk-2KWKUXLT.js +490 -0
- package/dist/chunk-2KWKUXLT.js.map +7 -0
- package/dist/chunk-2PMO2FS2.js +1097 -0
- package/dist/chunk-2PMO2FS2.js.map +7 -0
- package/dist/chunk-3RUXVV4S.js +23 -0
- package/dist/chunk-3RUXVV4S.js.map +7 -0
- package/dist/chunk-3TXNP6HH.js +240 -0
- package/dist/chunk-3TXNP6HH.js.map +7 -0
- package/dist/chunk-4GAIJGRH.js +472 -0
- package/dist/chunk-4GAIJGRH.js.map +7 -0
- package/dist/chunk-4RTX4AG4.js +249 -0
- package/dist/chunk-4RTX4AG4.js.map +7 -0
- package/dist/chunk-54DNHKOD.js +511 -0
- package/dist/chunk-54DNHKOD.js.map +7 -0
- package/dist/chunk-67PY5IX6.js +34 -0
- package/dist/chunk-67PY5IX6.js.map +7 -0
- package/dist/chunk-6DRDLOLP.js +2613 -0
- package/dist/chunk-6DRDLOLP.js.map +7 -0
- package/dist/chunk-7CQVZNQV.js +1609 -0
- package/dist/chunk-7CQVZNQV.js.map +7 -0
- package/dist/chunk-ABLVTESJ.js +19 -0
- package/dist/chunk-ABLVTESJ.js.map +7 -0
- package/dist/{utils/config.js → chunk-AIMIPK4B.js} +351 -171
- package/dist/chunk-AIMIPK4B.js.map +7 -0
- package/dist/{utils/autoUpdater.js → chunk-BHGTA6JQ.js} +38 -21
- package/dist/chunk-BHGTA6JQ.js.map +7 -0
- package/dist/chunk-CIG63V4E.js +72 -0
- package/dist/chunk-CIG63V4E.js.map +7 -0
- package/dist/chunk-E6YNABER.js +24 -0
- package/dist/chunk-E6YNABER.js.map +7 -0
- package/dist/chunk-EH34V7CY.js +191 -0
- package/dist/chunk-EH34V7CY.js.map +7 -0
- package/dist/{cost-tracker.js → chunk-EZXMVTDU.js} +51 -32
- package/dist/chunk-EZXMVTDU.js.map +7 -0
- package/dist/chunk-FH5CHM6L.js +148 -0
- package/dist/chunk-FH5CHM6L.js.map +7 -0
- package/dist/chunk-G6I7XROM.js +138 -0
- package/dist/chunk-G6I7XROM.js.map +7 -0
- package/dist/chunk-HN4E4UUQ.js +96 -0
- package/dist/chunk-HN4E4UUQ.js.map +7 -0
- package/dist/chunk-HSPVVDIW.js +30198 -0
- package/dist/chunk-HSPVVDIW.js.map +7 -0
- package/dist/{services/systemReminder.js → chunk-IE2CG2TV.js} +221 -59
- package/dist/chunk-IE2CG2TV.js.map +7 -0
- package/dist/chunk-JC6NCUG5.js +11 -0
- package/dist/chunk-K2MI4TPB.js +1256 -0
- package/dist/chunk-K2MI4TPB.js.map +7 -0
- package/dist/chunk-KAA5BGMQ.js +12 -0
- package/dist/chunk-KAA5BGMQ.js.map +7 -0
- package/dist/chunk-MN77D2F7.js +2931 -0
- package/dist/chunk-MN77D2F7.js.map +7 -0
- package/dist/chunk-NPFOMITO.js +21 -0
- package/dist/chunk-NPFOMITO.js.map +7 -0
- package/dist/chunk-NQLEUHMS.js +196 -0
- package/dist/chunk-NQLEUHMS.js.map +7 -0
- package/dist/chunk-OIFQB3S4.js +515 -0
- package/dist/chunk-OIFQB3S4.js.map +7 -0
- package/dist/chunk-OWTG2W3A.js +164 -0
- package/dist/chunk-OWTG2W3A.js.map +7 -0
- package/dist/chunk-OZNRLY3E.js +735 -0
- package/dist/chunk-OZNRLY3E.js.map +7 -0
- package/dist/{utils/debugLogger.js → chunk-QYFKRZQC.js} +107 -204
- package/dist/chunk-QYFKRZQC.js.map +7 -0
- package/dist/chunk-S3J2TLV6.js +16 -0
- package/dist/chunk-S3J2TLV6.js.map +7 -0
- package/dist/chunk-S6HRABTA.js +95 -0
- package/dist/chunk-S6HRABTA.js.map +7 -0
- package/dist/{utils/theme.js → chunk-SDGKPKDK.js} +28 -6
- package/dist/chunk-SDGKPKDK.js.map +7 -0
- package/dist/chunk-SRZZFAS7.js +766 -0
- package/dist/chunk-SRZZFAS7.js.map +7 -0
- package/dist/chunk-UKHTVRJM.js +47 -0
- package/dist/chunk-UKHTVRJM.js.map +7 -0
- package/dist/chunk-UYXEDKOZ.js +24 -0
- package/dist/chunk-UYXEDKOZ.js.map +7 -0
- package/dist/chunk-VBXVYQYY.js +145 -0
- package/dist/chunk-VBXVYQYY.js.map +7 -0
- package/dist/chunk-WVHORZQ5.js +17 -0
- package/dist/chunk-WVHORZQ5.js.map +7 -0
- package/dist/chunk-WWUWDNWW.js +49 -0
- package/dist/chunk-WWUWDNWW.js.map +7 -0
- package/dist/{utils/model.js → chunk-Z33T5YN5.js} +194 -227
- package/dist/chunk-Z33T5YN5.js.map +7 -0
- package/dist/{services/openai.js → chunk-ZQU3TXLC.js} +168 -234
- package/dist/chunk-ZQU3TXLC.js.map +7 -0
- package/dist/cli-SRV2INSL.js +3917 -0
- package/dist/cli-SRV2INSL.js.map +7 -0
- package/dist/commands-TWH6PGVG.js +46 -0
- package/dist/config-6ZMBCL23.js +81 -0
- package/dist/context-JQIOOI4W.js +30 -0
- package/dist/costTracker-6SL26FDB.js +19 -0
- package/dist/customCommands-DNEJS3ZU.js +25 -0
- package/dist/customCommands-DNEJS3ZU.js.map +7 -0
- package/dist/env-OFAXZ3XG.js +22 -0
- package/dist/env-OFAXZ3XG.js.map +7 -0
- package/dist/index.js +34 -5
- package/dist/index.js.map +4 -4
- package/dist/kodeAgentSessionId-X6XWQW7B.js +13 -0
- package/dist/kodeAgentSessionId-X6XWQW7B.js.map +7 -0
- package/dist/kodeAgentSessionLoad-6N27AC5K.js +18 -0
- package/dist/kodeAgentSessionLoad-6N27AC5K.js.map +7 -0
- package/dist/kodeAgentSessionResume-HUSAEO24.js +16 -0
- package/dist/kodeAgentSessionResume-HUSAEO24.js.map +7 -0
- package/dist/kodeAgentStreamJson-NXFN7TXH.js +13 -0
- package/dist/kodeAgentStreamJson-NXFN7TXH.js.map +7 -0
- package/dist/kodeAgentStreamJsonSession-GRWG3SPE.js +131 -0
- package/dist/kodeAgentStreamJsonSession-GRWG3SPE.js.map +7 -0
- package/dist/kodeAgentStructuredStdio-HGWJT7CU.js +10 -0
- package/dist/kodeAgentStructuredStdio-HGWJT7CU.js.map +7 -0
- package/dist/kodeHooks-TDMXFWSO.js +36 -0
- package/dist/kodeHooks-TDMXFWSO.js.map +7 -0
- package/dist/llm-XVXWYOHK.js +3118 -0
- package/dist/llm-XVXWYOHK.js.map +7 -0
- package/dist/llmLazy-7TD5N7XP.js +15 -0
- package/dist/llmLazy-7TD5N7XP.js.map +7 -0
- package/dist/loader-AUXIJTY6.js +28 -0
- package/dist/loader-AUXIJTY6.js.map +7 -0
- package/dist/mcp-BXJ3K7NZ.js +49 -0
- package/dist/mcp-BXJ3K7NZ.js.map +7 -0
- package/dist/{services/mentionProcessor.js → mentionProcessor-YD7YXYGF.js} +61 -50
- package/dist/mentionProcessor-YD7YXYGF.js.map +7 -0
- package/dist/messages-OFUJSPRV.js +63 -0
- package/dist/messages-OFUJSPRV.js.map +7 -0
- package/dist/model-KPYCXWBK.js +30 -0
- package/dist/model-KPYCXWBK.js.map +7 -0
- package/dist/openai-5G5D5Q4B.js +29 -0
- package/dist/openai-5G5D5Q4B.js.map +7 -0
- package/dist/outputStyles-HLDXFQK3.js +28 -0
- package/dist/outputStyles-HLDXFQK3.js.map +7 -0
- package/dist/package.json +1 -1
- package/dist/pluginRuntime-FPTKK6NY.js +218 -0
- package/dist/pluginRuntime-FPTKK6NY.js.map +7 -0
- package/dist/pluginValidation-DSFXZ4GF.js +17 -0
- package/dist/pluginValidation-DSFXZ4GF.js.map +7 -0
- package/dist/prompts-LWLAJRS2.js +48 -0
- package/dist/prompts-LWLAJRS2.js.map +7 -0
- package/dist/query-HVPWL27C.js +50 -0
- package/dist/query-HVPWL27C.js.map +7 -0
- package/dist/responsesStreaming-AW344PQO.js +10 -0
- package/dist/responsesStreaming-AW344PQO.js.map +7 -0
- package/dist/ripgrep-YOPCY2GO.js +17 -0
- package/dist/ripgrep-YOPCY2GO.js.map +7 -0
- package/dist/skillMarketplace-PSNKDINM.js +37 -0
- package/dist/skillMarketplace-PSNKDINM.js.map +7 -0
- package/dist/state-KNRWP3FO.js +16 -0
- package/dist/state-KNRWP3FO.js.map +7 -0
- package/dist/theme-7S2QN2FO.js +14 -0
- package/dist/theme-7S2QN2FO.js.map +7 -0
- package/dist/toolPermissionContext-65L65VEZ.js +17 -0
- package/dist/toolPermissionContext-65L65VEZ.js.map +7 -0
- package/dist/toolPermissionSettings-GPOBH4IV.js +18 -0
- package/dist/toolPermissionSettings-GPOBH4IV.js.map +7 -0
- package/dist/tools-FZU2FZBD.js +47 -0
- package/dist/tools-FZU2FZBD.js.map +7 -0
- package/dist/userInput-VHNBN2MW.js +311 -0
- package/dist/userInput-VHNBN2MW.js.map +7 -0
- package/dist/uuid-QN2CNKKN.js +9 -0
- package/dist/uuid-QN2CNKKN.js.map +7 -0
- package/package.json +43 -14
- package/scripts/binary-utils.cjs +62 -0
- package/scripts/cli-acp-wrapper.cjs +82 -0
- package/scripts/cli-wrapper.cjs +105 -0
- package/scripts/postinstall.js +135 -9
- package/LICENSE +0 -201
- package/README.zh-CN.md +0 -312
- package/dist/ProjectOnboarding.js +0 -99
- package/dist/ProjectOnboarding.js.map +0 -7
- package/dist/Tool.js +0 -1
- package/dist/commands/agents.js +0 -2087
- package/dist/commands/agents.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 -21
- package/dist/commands/bug.js.map +0 -7
- package/dist/commands/clear.js +0 -37
- package/dist/commands/clear.js.map +0 -7
- package/dist/commands/compact.js +0 -104
- 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/cost.js +0 -19
- package/dist/commands/cost.js.map +0 -7
- package/dist/commands/ctx_viz.js +0 -152
- package/dist/commands/ctx_viz.js.map +0 -7
- package/dist/commands/doctor.js +0 -25
- package/dist/commands/doctor.js.map +0 -7
- package/dist/commands/help.js +0 -20
- package/dist/commands/help.js.map +0 -7
- package/dist/commands/init.js +0 -38
- package/dist/commands/init.js.map +0 -7
- package/dist/commands/listen.js +0 -37
- package/dist/commands/listen.js.map +0 -7
- package/dist/commands/login.js +0 -37
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/logout.js +0 -33
- package/dist/commands/logout.js.map +0 -7
- package/dist/commands/mcp.js +0 -34
- package/dist/commands/mcp.js.map +0 -7
- package/dist/commands/model.js +0 -41
- package/dist/commands/model.js.map +0 -7
- package/dist/commands/modelstatus.js +0 -21
- package/dist/commands/modelstatus.js.map +0 -7
- package/dist/commands/onboarding.js +0 -36
- package/dist/commands/onboarding.js.map +0 -7
- package/dist/commands/pr_comments.js +0 -61
- package/dist/commands/pr_comments.js.map +0 -7
- package/dist/commands/refreshCommands.js +0 -37
- package/dist/commands/refreshCommands.js.map +0 -7
- package/dist/commands/release-notes.js +0 -30
- package/dist/commands/release-notes.js.map +0 -7
- package/dist/commands/resume.js +0 -35
- 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/terminalSetup.js +0 -163
- package/dist/commands/terminalSetup.js.map +0 -7
- package/dist/commands.js +0 -84
- package/dist/commands.js.map +0 -7
- package/dist/components/ApproveApiKey.js +0 -74
- package/dist/components/ApproveApiKey.js.map +0 -7
- package/dist/components/AsciiLogo.js +0 -12
- package/dist/components/AsciiLogo.js.map +0 -7
- package/dist/components/AutoUpdater.js +0 -74
- package/dist/components/AutoUpdater.js.map +0 -7
- package/dist/components/Bug.js +0 -147
- package/dist/components/Bug.js.map +0 -7
- package/dist/components/Config.js +0 -166
- package/dist/components/Config.js.map +0 -7
- package/dist/components/ConsoleOAuthFlow.js +0 -188
- package/dist/components/ConsoleOAuthFlow.js.map +0 -7
- package/dist/components/Cost.js +0 -13
- 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 -34
- 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/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/Help.js +0 -41
- package/dist/components/Help.js.map +0 -7
- package/dist/components/HighlightedCode.js +0 -30
- package/dist/components/HighlightedCode.js.map +0 -7
- package/dist/components/InvalidConfigDialog.js +0 -83
- 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 -94
- package/dist/components/Logo.js.map +0 -7
- package/dist/components/MCPServerApprovalDialog.js +0 -79
- package/dist/components/MCPServerApprovalDialog.js.map +0 -7
- package/dist/components/MCPServerDialogCopy.js +0 -11
- package/dist/components/MCPServerDialogCopy.js.map +0 -7
- package/dist/components/MCPServerMultiselectDialog.js +0 -80
- package/dist/components/MCPServerMultiselectDialog.js.map +0 -7
- package/dist/components/Message.js +0 -146
- 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 -133
- package/dist/components/MessageSelector.js.map +0 -7
- package/dist/components/ModeIndicator.js +0 -38
- package/dist/components/ModeIndicator.js.map +0 -7
- package/dist/components/ModelConfig.js +0 -208
- package/dist/components/ModelConfig.js.map +0 -7
- package/dist/components/ModelListManager.js +0 -140
- package/dist/components/ModelListManager.js.map +0 -7
- package/dist/components/ModelSelector.js +0 -1985
- package/dist/components/ModelSelector.js.map +0 -7
- package/dist/components/ModelStatusDisplay.js +0 -87
- package/dist/components/ModelStatusDisplay.js.map +0 -7
- package/dist/components/Onboarding.js +0 -153
- package/dist/components/Onboarding.js.map +0 -7
- package/dist/components/PressEnterToContinue.js +0 -10
- package/dist/components/PressEnterToContinue.js.map +0 -7
- package/dist/components/PromptInput.js +0 -488
- package/dist/components/PromptInput.js.map +0 -7
- package/dist/components/SentryErrorBoundary.js +0 -27
- package/dist/components/SentryErrorBoundary.js.map +0 -7
- package/dist/components/Spinner.js +0 -101
- package/dist/components/Spinner.js.map +0 -7
- package/dist/components/StickerRequestForm.js +0 -7
- package/dist/components/StickerRequestForm.js.map +0 -7
- package/dist/components/StructuredDiff.js +0 -148
- package/dist/components/StructuredDiff.js.map +0 -7
- package/dist/components/TextInput.js +0 -100
- package/dist/components/TextInput.js.map +0 -7
- package/dist/components/TodoItem.js +0 -35
- package/dist/components/TodoItem.js.map +0 -7
- package/dist/components/TokenWarning.js +0 -19
- package/dist/components/TokenWarning.js.map +0 -7
- package/dist/components/ToolUseLoader.js +0 -24
- package/dist/components/ToolUseLoader.js.map +0 -7
- package/dist/components/TrustDialog.js +0 -76
- package/dist/components/TrustDialog.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 -94
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +0 -7
- package/dist/components/binary-feedback/BinaryFeedbackView.js +0 -139
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +0 -7
- package/dist/components/binary-feedback/utils.js +0 -161
- 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 -78
- package/dist/components/messages/AssistantTextMessage.js.map +0 -7
- package/dist/components/messages/AssistantThinkingMessage.js +0 -27
- package/dist/components/messages/AssistantThinkingMessage.js.map +0 -7
- package/dist/components/messages/AssistantToolUseMessage.js +0 -91
- package/dist/components/messages/AssistantToolUseMessage.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 -20
- 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 -10
- 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 -23
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +0 -7
- package/dist/components/messages/UserToolResultMessage/utils.js +0 -42
- 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 -28
- 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/betas.js +0 -11
- package/dist/constants/betas.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/figures.js +0 -6
- package/dist/constants/figures.js.map +0 -7
- package/dist/constants/keys.js +0 -7
- package/dist/constants/keys.js.map +0 -7
- package/dist/constants/macros.js +0 -13
- package/dist/constants/macros.js.map +0 -7
- package/dist/constants/modelCapabilities.js +0 -154
- 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 -26
- package/dist/constants/product.js.map +0 -7
- package/dist/constants/prompts.js +0 -168
- package/dist/constants/prompts.js.map +0 -7
- package/dist/constants/releaseNotes.js +0 -9
- package/dist/constants/releaseNotes.js.map +0 -7
- package/dist/context/PermissionContext.js +0 -111
- package/dist/context/PermissionContext.js.map +0 -7
- package/dist/context.js +0 -259
- package/dist/context.js.map +0 -7
- package/dist/cost-tracker.js.map +0 -7
- package/dist/entrypoints/cli.js +0 -1107
- package/dist/entrypoints/cli.js.map +0 -7
- package/dist/entrypoints/mcp.js +0 -150
- package/dist/entrypoints/mcp.js.map +0 -7
- package/dist/history.js +0 -25
- package/dist/history.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 -50
- package/dist/hooks/useArrowKeyHistory.js.map +0 -7
- package/dist/hooks/useCanUseTool.js +0 -112
- package/dist/hooks/useCanUseTool.js.map +0 -7
- package/dist/hooks/useCancelRequest.js +0 -30
- package/dist/hooks/useCancelRequest.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 -26
- package/dist/hooks/useExitOnCtrlCD.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 -14
- package/dist/hooks/useLogMessages.js.map +0 -7
- package/dist/hooks/useLogStartupTime.js +0 -15
- package/dist/hooks/useLogStartupTime.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 -28
- package/dist/hooks/usePermissionRequestLogging.js.map +0 -7
- package/dist/hooks/useTerminalSize.js +0 -38
- package/dist/hooks/useTerminalSize.js.map +0 -7
- package/dist/hooks/useTextInput.js +0 -250
- package/dist/hooks/useTextInput.js.map +0 -7
- package/dist/hooks/useUnifiedCompletion.js +0 -929
- package/dist/hooks/useUnifiedCompletion.js.map +0 -7
- package/dist/messages.js +0 -33
- package/dist/messages.js.map +0 -7
- package/dist/permissions.js +0 -194
- package/dist/permissions.js.map +0 -7
- package/dist/query.js +0 -492
- package/dist/query.js.map +0 -7
- package/dist/screens/ConfigureNpmPrefix.js +0 -128
- package/dist/screens/ConfigureNpmPrefix.js.map +0 -7
- package/dist/screens/Doctor.js +0 -22
- package/dist/screens/Doctor.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 -593
- package/dist/screens/REPL.js.map +0 -7
- package/dist/screens/ResumeConversation.js +0 -56
- 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 -69
- package/dist/services/adapters/chatCompletions.js.map +0 -7
- package/dist/services/adapters/responsesAPI.js +0 -126
- package/dist/services/adapters/responsesAPI.js.map +0 -7
- package/dist/services/browserMocks.js +0 -48
- package/dist/services/browserMocks.js.map +0 -7
- package/dist/services/claude.js +0 -1605
- package/dist/services/claude.js.map +0 -7
- package/dist/services/customCommands.js +0 -359
- package/dist/services/customCommands.js.map +0 -7
- package/dist/services/fileFreshness.js +0 -280
- package/dist/services/fileFreshness.js.map +0 -7
- package/dist/services/gpt5ConnectionTest.js +0 -248
- package/dist/services/gpt5ConnectionTest.js.map +0 -7
- package/dist/services/mcpClient.js +0 -435
- 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.map +0 -7
- package/dist/services/modelAdapterFactory.js +0 -47
- package/dist/services/modelAdapterFactory.js.map +0 -7
- package/dist/services/notifier.js +0 -35
- package/dist/services/notifier.js.map +0 -7
- package/dist/services/oauth.js +0 -259
- package/dist/services/oauth.js.map +0 -7
- package/dist/services/openai.js.map +0 -7
- package/dist/services/responseStateManager.js +0 -68
- package/dist/services/responseStateManager.js.map +0 -7
- package/dist/services/sentry.js +0 -9
- package/dist/services/sentry.js.map +0 -7
- package/dist/services/statsig.js +0 -112
- package/dist/services/statsig.js.map +0 -7
- package/dist/services/statsigStorage.js +0 -75
- package/dist/services/statsigStorage.js.map +0 -7
- package/dist/services/systemReminder.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 -119
- 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 -423
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +0 -7
- package/dist/tools/BashTool/BashTool.js +0 -188
- package/dist/tools/BashTool/BashTool.js.map +0 -7
- package/dist/tools/BashTool/BashToolResultMessage.js +0 -21
- package/dist/tools/BashTool/BashToolResultMessage.js.map +0 -7
- package/dist/tools/BashTool/OutputLine.js +0 -30
- package/dist/tools/BashTool/OutputLine.js.map +0 -7
- package/dist/tools/BashTool/prompt.js +0 -179
- 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 -228
- package/dist/tools/FileEditTool/FileEditTool.js.map +0 -7
- package/dist/tools/FileEditTool/prompt.js +0 -54
- package/dist/tools/FileEditTool/prompt.js.map +0 -7
- package/dist/tools/FileEditTool/utils.js +0 -42
- package/dist/tools/FileEditTool/utils.js.map +0 -7
- package/dist/tools/FileReadTool/FileReadTool.js +0 -272
- package/dist/tools/FileReadTool/FileReadTool.js.map +0 -7
- package/dist/tools/FileReadTool/prompt.js +0 -10
- package/dist/tools/FileReadTool/prompt.js.map +0 -7
- package/dist/tools/FileWriteTool/FileWriteTool.js +0 -204
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +0 -7
- package/dist/tools/FileWriteTool/prompt.js +0 -14
- package/dist/tools/FileWriteTool/prompt.js.map +0 -7
- package/dist/tools/GlobTool/GlobTool.js +0 -88
- package/dist/tools/GlobTool/GlobTool.js.map +0 -7
- package/dist/tools/GlobTool/prompt.js +0 -12
- package/dist/tools/GlobTool/prompt.js.map +0 -7
- package/dist/tools/GrepTool/GrepTool.js +0 -107
- package/dist/tools/GrepTool/GrepTool.js.map +0 -7
- package/dist/tools/GrepTool/prompt.js +0 -15
- package/dist/tools/GrepTool/prompt.js.map +0 -7
- package/dist/tools/MCPTool/MCPTool.js +0 -90
- 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 -103
- 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 -77
- 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 -308
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +0 -7
- package/dist/tools/MultiEditTool/prompt.js +0 -48
- package/dist/tools/MultiEditTool/prompt.js.map +0 -7
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +0 -238
- 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 -212
- 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/StickerRequestTool/StickerRequestTool.js +0 -86
- package/dist/tools/StickerRequestTool/StickerRequestTool.js.map +0 -7
- package/dist/tools/StickerRequestTool/prompt.js +0 -23
- package/dist/tools/StickerRequestTool/prompt.js.map +0 -7
- package/dist/tools/TaskTool/TaskTool.js +0 -351
- 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 -82
- package/dist/tools/TaskTool/prompt.js.map +0 -7
- package/dist/tools/ThinkTool/ThinkTool.js +0 -48
- 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 -216
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +0 -7
- package/dist/tools/TodoWriteTool/prompt.js +0 -66
- package/dist/tools/TodoWriteTool/prompt.js.map +0 -7
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +0 -137
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +0 -7
- package/dist/tools/URLFetcherTool/cache.js +0 -45
- package/dist/tools/URLFetcherTool/cache.js.map +0 -7
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +0 -42
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +0 -7
- package/dist/tools/URLFetcherTool/prompt.js +0 -22
- package/dist/tools/URLFetcherTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/WebSearchTool.js +0 -86
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +0 -7
- package/dist/tools/WebSearchTool/prompt.js +0 -17
- package/dist/tools/WebSearchTool/prompt.js.map +0 -7
- package/dist/tools/WebSearchTool/searchProviders.js +0 -48
- 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 -64
- package/dist/tools.js.map +0 -7
- package/dist/types/PermissionMode.js +0 -82
- 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/common.d.js +0 -1
- package/dist/types/conversation.js +0 -1
- package/dist/types/logs.js +0 -1
- package/dist/types/modelCapabilities.js +0 -1
- package/dist/types/notebook.js +0 -1
- package/dist/utils/Cursor.js +0 -313
- package/dist/utils/Cursor.js.map +0 -7
- package/dist/utils/PersistentShell.js +0 -382
- package/dist/utils/PersistentShell.js.map +0 -7
- package/dist/utils/advancedFuzzyMatcher.js +0 -206
- package/dist/utils/advancedFuzzyMatcher.js.map +0 -7
- package/dist/utils/agentLoader.js +0 -199
- package/dist/utils/agentLoader.js.map +0 -7
- package/dist/utils/agentStorage.js +0 -59
- package/dist/utils/agentStorage.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 -77
- package/dist/utils/ask.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 -149
- package/dist/utils/autoCompactCore.js.map +0 -7
- package/dist/utils/autoUpdater.js.map +0 -7
- package/dist/utils/betas.js +0 -21
- package/dist/utils/betas.js.map +0 -7
- package/dist/utils/browser.js +0 -15
- package/dist/utils/browser.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 -207
- package/dist/utils/commands.js.map +0 -7
- package/dist/utils/commonUnixCommands.js +0 -687
- package/dist/utils/commonUnixCommands.js.map +0 -7
- package/dist/utils/config.js.map +0 -7
- package/dist/utils/conversationRecovery.js +0 -35
- package/dist/utils/conversationRecovery.js.map +0 -7
- 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 -44
- package/dist/utils/env.js.map +0 -7
- package/dist/utils/errors.js +0 -23
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/exampleCommands.js +0 -80
- package/dist/utils/exampleCommands.js.map +0 -7
- package/dist/utils/execFileNoThrow.js +0 -44
- package/dist/utils/execFileNoThrow.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 -41
- package/dist/utils/format.js.map +0 -7
- package/dist/utils/fuzzyMatcher.js +0 -252
- package/dist/utils/fuzzyMatcher.js.map +0 -7
- package/dist/utils/generators.js +0 -46
- 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/globalLogger.js +0 -54
- package/dist/utils/globalLogger.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 -298
- package/dist/utils/log.js.map +0 -7
- package/dist/utils/markdown.js +0 -187
- package/dist/utils/markdown.js.map +0 -7
- package/dist/utils/messageContextManager.js +0 -195
- package/dist/utils/messageContextManager.js.map +0 -7
- package/dist/utils/messages.js +0 -633
- package/dist/utils/messages.js.map +0 -7
- package/dist/utils/model.js.map +0 -7
- package/dist/utils/permissions/filesystem.js +0 -80
- package/dist/utils/permissions/filesystem.js.map +0 -7
- package/dist/utils/responseState.js +0 -20
- package/dist/utils/responseState.js.map +0 -7
- package/dist/utils/ripgrep.js +0 -131
- package/dist/utils/ripgrep.js.map +0 -7
- package/dist/utils/secureFile.js +0 -483
- package/dist/utils/secureFile.js.map +0 -7
- package/dist/utils/sessionState.js +0 -31
- package/dist/utils/sessionState.js.map +0 -7
- package/dist/utils/state.js +0 -24
- package/dist/utils/state.js.map +0 -7
- package/dist/utils/style.js +0 -31
- package/dist/utils/style.js.map +0 -7
- package/dist/utils/terminal.js +0 -43
- package/dist/utils/terminal.js.map +0 -7
- package/dist/utils/theme.js.map +0 -7
- package/dist/utils/thinking.js +0 -103
- package/dist/utils/thinking.js.map +0 -7
- package/dist/utils/todoStorage.js +0 -291
- 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/unaryLogging.js +0 -14
- 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/validate.js +0 -132
- package/dist/utils/validate.js.map +0 -7
- /package/dist/{Tool.js.map → REPL-GIU4ZIXM.js.map} +0 -0
- /package/dist/{components/CustomSelect/theme.js.map → autoUpdater-DNRMJWFQ.js.map} +0 -0
- /package/dist/{types/common.d.js.map → chunk-JC6NCUG5.js.map} +0 -0
- /package/dist/{types/conversation.js.map → commands-TWH6PGVG.js.map} +0 -0
- /package/dist/{types/logs.js.map → config-6ZMBCL23.js.map} +0 -0
- /package/dist/{types/modelCapabilities.js.map → context-JQIOOI4W.js.map} +0 -0
- /package/dist/{types/notebook.js.map → costTracker-6SL26FDB.js.map} +0 -0
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from "ink";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { SelectOption } from "./select-option.js";
|
|
4
|
-
import { useSelectState } from "./use-select-state.js";
|
|
5
|
-
import { useSelect } from "./use-select.js";
|
|
6
|
-
import { getTheme } from "../../utils/theme.js";
|
|
7
|
-
const optionHeaderKey = (optionHeader) => `HEADER-${optionHeader.optionValues.join(",")}`;
|
|
8
|
-
function Select({
|
|
9
|
-
isDisabled = false,
|
|
10
|
-
visibleOptionCount = 5,
|
|
11
|
-
highlightText,
|
|
12
|
-
options,
|
|
13
|
-
defaultValue,
|
|
14
|
-
onChange,
|
|
15
|
-
onFocus,
|
|
16
|
-
focusValue
|
|
17
|
-
}) {
|
|
18
|
-
const state = useSelectState({
|
|
19
|
-
visibleOptionCount,
|
|
20
|
-
options,
|
|
21
|
-
defaultValue,
|
|
22
|
-
onChange,
|
|
23
|
-
onFocus,
|
|
24
|
-
focusValue
|
|
25
|
-
});
|
|
26
|
-
useSelect({ isDisabled, state });
|
|
27
|
-
const appTheme = getTheme();
|
|
28
|
-
const styles = {
|
|
29
|
-
container: () => ({
|
|
30
|
-
flexDirection: "column"
|
|
31
|
-
}),
|
|
32
|
-
highlightedText: () => ({
|
|
33
|
-
color: appTheme.text,
|
|
34
|
-
backgroundColor: appTheme.warning
|
|
35
|
-
})
|
|
36
|
-
};
|
|
37
|
-
return /* @__PURE__ */ React.createElement(Box, { ...styles.container() }, state.visibleOptions.map((option) => {
|
|
38
|
-
const key = "value" in option ? option.value : optionHeaderKey(option);
|
|
39
|
-
const isFocused = !isDisabled && state.focusedValue !== void 0 && ("value" in option ? state.focusedValue === option.value : option.optionValues.includes(state.focusedValue));
|
|
40
|
-
const isSelected = !!state.value && ("value" in option ? state.value === option.value : option.optionValues.includes(state.value));
|
|
41
|
-
const smallPointer = "header" in option;
|
|
42
|
-
const labelText = "label" in option ? option.label : option.header;
|
|
43
|
-
let label = labelText;
|
|
44
|
-
if (highlightText && labelText.includes(highlightText)) {
|
|
45
|
-
const index = labelText.indexOf(highlightText);
|
|
46
|
-
label = /* @__PURE__ */ React.createElement(React.Fragment, null, labelText.slice(0, index), /* @__PURE__ */ React.createElement(Text, { ...styles.highlightedText() }, highlightText), labelText.slice(index + highlightText.length));
|
|
47
|
-
}
|
|
48
|
-
return /* @__PURE__ */ React.createElement(
|
|
49
|
-
SelectOption,
|
|
50
|
-
{
|
|
51
|
-
key,
|
|
52
|
-
isFocused,
|
|
53
|
-
isSelected,
|
|
54
|
-
smallPointer,
|
|
55
|
-
children: label
|
|
56
|
-
}
|
|
57
|
-
);
|
|
58
|
-
}));
|
|
59
|
-
}
|
|
60
|
-
export {
|
|
61
|
-
Select,
|
|
62
|
-
optionHeaderKey
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=select.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CustomSelect/select.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Box, Text } from 'ink'\nimport React, { type ReactNode } from 'react'\nimport { SelectOption } from './select-option'\nimport { type Theme } from './theme'\nimport { useSelectState } from './use-select-state'\nimport { useSelect } from './use-select'\nimport { Option } from '@inkjs/ui'\nimport { getTheme } from '../../utils/theme'\n\nexport type OptionSubtree = {\n /**\n * Header to show above sub-options.\n */\n readonly header?: string\n\n /**\n * Options.\n */\n readonly options: (Option | OptionSubtree)[]\n}\n\nexport type OptionHeader = {\n readonly header: string\n\n readonly optionValues: string[]\n}\n\nexport const optionHeaderKey = (optionHeader: OptionHeader): string =>\n `HEADER-${optionHeader.optionValues.join(',')}`\n\nexport type SelectProps = {\n /**\n * When disabled, user input is ignored.\n *\n * @default false\n */\n readonly isDisabled?: boolean\n\n /**\n * Number of visible options.\n *\n * @default 5\n */\n readonly visibleOptionCount?: number\n\n /**\n * Highlight text in option labels.\n */\n readonly highlightText?: string\n\n /**\n * Options.\n */\n readonly options: (Option | OptionSubtree)[]\n\n /**\n * Default value.\n */\n readonly defaultValue?: string\n\n /**\n * Callback when selected option changes.\n */\n readonly onChange?: (value: string) => void\n\n /**\n * Callback when focused option changes.\n */\n readonly onFocus?: (value: string) => void\n\n /**\n * Value to focus\n */\n readonly focusValue?: string\n}\n\nexport function Select({\n isDisabled = false,\n visibleOptionCount = 5,\n highlightText,\n options,\n defaultValue,\n onChange,\n onFocus,\n focusValue,\n}: SelectProps) {\n const state = useSelectState({\n visibleOptionCount,\n options,\n defaultValue,\n onChange,\n onFocus,\n focusValue,\n })\n\n useSelect({ isDisabled, state })\n\n const appTheme = getTheme()\n const styles = {\n container: () => ({\n flexDirection: 'column' as const,\n }),\n highlightedText: () => ({\n color: appTheme.text,\n backgroundColor: appTheme.warning,\n }),\n }\n\n return (\n <Box {...styles.container()}>\n {state.visibleOptions.map(option => {\n const key = 'value' in option ? option.value : optionHeaderKey(option)\n const isFocused =\n !isDisabled &&\n state.focusedValue !== undefined &&\n ('value' in option\n ? state.focusedValue === option.value\n : option.optionValues.includes(state.focusedValue))\n const isSelected =\n !!state.value &&\n ('value' in option\n ? state.value === option.value\n : option.optionValues.includes(state.value))\n const smallPointer = 'header' in option\n const labelText = 'label' in option ? option.label : option.header\n let label: ReactNode = labelText\n\n if (highlightText && labelText.includes(highlightText)) {\n const index = labelText.indexOf(highlightText)\n\n label = (\n <>\n {labelText.slice(0, index)}\n <Text {...styles.highlightedText()}>{highlightText}</Text>\n {labelText.slice(index + highlightText.length)}\n </>\n )\n }\n\n return (\n <SelectOption\n key={key}\n isFocused={isFocused}\n isSelected={isSelected}\n smallPointer={smallPointer}\n children={label}\n />\n )\n })}\n </Box>\n )\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,KAAK,YAAY;AAC1B,OAAO,WAA+B;AACtC,SAAS,oBAAoB;AAE7B,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAE1B,SAAS,gBAAgB;AAoBlB,MAAM,kBAAkB,CAAC,iBAC9B,UAAU,aAAa,aAAa,KAAK,GAAG,CAAC;AAgDxC,SAAS,OAAO;AAAA,EACrB,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAgB;AACd,QAAM,QAAQ,eAAe;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,YAAU,EAAE,YAAY,MAAM,CAAC;AAE/B,QAAM,WAAW,SAAS;AAC1B,QAAM,SAAS;AAAA,IACb,WAAW,OAAO;AAAA,MAChB,eAAe;AAAA,IACjB;AAAA,IACA,iBAAiB,OAAO;AAAA,MACtB,OAAO,SAAS;AAAA,MAChB,iBAAiB,SAAS;AAAA,IAC5B;AAAA,EACF;AAEA,SACE,oCAAC,OAAK,GAAG,OAAO,UAAU,KACvB,MAAM,eAAe,IAAI,YAAU;AAClC,UAAM,MAAM,WAAW,SAAS,OAAO,QAAQ,gBAAgB,MAAM;AACrE,UAAM,YACJ,CAAC,cACD,MAAM,iBAAiB,WACtB,WAAW,SACR,MAAM,iBAAiB,OAAO,QAC9B,OAAO,aAAa,SAAS,MAAM,YAAY;AACrD,UAAM,aACJ,CAAC,CAAC,MAAM,UACP,WAAW,SACR,MAAM,UAAU,OAAO,QACvB,OAAO,aAAa,SAAS,MAAM,KAAK;AAC9C,UAAM,eAAe,YAAY;AACjC,UAAM,YAAY,WAAW,SAAS,OAAO,QAAQ,OAAO;AAC5D,QAAI,QAAmB;AAEvB,QAAI,iBAAiB,UAAU,SAAS,aAAa,GAAG;AACtD,YAAM,QAAQ,UAAU,QAAQ,aAAa;AAE7C,cACE,0DACG,UAAU,MAAM,GAAG,KAAK,GACzB,oCAAC,QAAM,GAAG,OAAO,gBAAgB,KAAI,aAAc,GAClD,UAAU,MAAM,QAAQ,cAAc,MAAM,CAC/C;AAAA,IAEJ;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,IACZ;AAAA,EAEJ,CAAC,CACH;AAEJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=theme.js.map
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { isDeepStrictEqual } from "node:util";
|
|
2
|
-
import {
|
|
3
|
-
useReducer,
|
|
4
|
-
useCallback,
|
|
5
|
-
useMemo,
|
|
6
|
-
useState,
|
|
7
|
-
useEffect
|
|
8
|
-
} from "react";
|
|
9
|
-
import OptionMap from "./option-map.js";
|
|
10
|
-
const reducer = (state, action) => {
|
|
11
|
-
switch (action.type) {
|
|
12
|
-
case "focus-next-option": {
|
|
13
|
-
if (!state.focusedValue) {
|
|
14
|
-
return state;
|
|
15
|
-
}
|
|
16
|
-
const item = state.optionMap.get(state.focusedValue);
|
|
17
|
-
if (!item) {
|
|
18
|
-
return state;
|
|
19
|
-
}
|
|
20
|
-
let next = item.next;
|
|
21
|
-
while (next && !("value" in next)) {
|
|
22
|
-
next = next.next;
|
|
23
|
-
}
|
|
24
|
-
if (!next) {
|
|
25
|
-
return state;
|
|
26
|
-
}
|
|
27
|
-
const needsToScroll = next.index >= state.visibleToIndex;
|
|
28
|
-
if (!needsToScroll) {
|
|
29
|
-
return {
|
|
30
|
-
...state,
|
|
31
|
-
focusedValue: next.value
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
const nextVisibleToIndex = Math.min(
|
|
35
|
-
state.optionMap.size,
|
|
36
|
-
state.visibleToIndex + 1
|
|
37
|
-
);
|
|
38
|
-
const nextVisibleFromIndex = nextVisibleToIndex - state.visibleOptionCount;
|
|
39
|
-
return {
|
|
40
|
-
...state,
|
|
41
|
-
focusedValue: next.value,
|
|
42
|
-
visibleFromIndex: nextVisibleFromIndex,
|
|
43
|
-
visibleToIndex: nextVisibleToIndex
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
case "focus-previous-option": {
|
|
47
|
-
if (!state.focusedValue) {
|
|
48
|
-
return state;
|
|
49
|
-
}
|
|
50
|
-
const item = state.optionMap.get(state.focusedValue);
|
|
51
|
-
if (!item) {
|
|
52
|
-
return state;
|
|
53
|
-
}
|
|
54
|
-
let previous = item.previous;
|
|
55
|
-
while (previous && !("value" in previous)) {
|
|
56
|
-
previous = previous.previous;
|
|
57
|
-
}
|
|
58
|
-
if (!previous) {
|
|
59
|
-
return state;
|
|
60
|
-
}
|
|
61
|
-
const needsToScroll = previous.index <= state.visibleFromIndex;
|
|
62
|
-
if (!needsToScroll) {
|
|
63
|
-
return {
|
|
64
|
-
...state,
|
|
65
|
-
focusedValue: previous.value
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
const nextVisibleFromIndex = Math.max(0, state.visibleFromIndex - 1);
|
|
69
|
-
const nextVisibleToIndex = nextVisibleFromIndex + state.visibleOptionCount;
|
|
70
|
-
return {
|
|
71
|
-
...state,
|
|
72
|
-
focusedValue: previous.value,
|
|
73
|
-
visibleFromIndex: nextVisibleFromIndex,
|
|
74
|
-
visibleToIndex: nextVisibleToIndex
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
case "select-focused-option": {
|
|
78
|
-
return {
|
|
79
|
-
...state,
|
|
80
|
-
previousValue: state.value,
|
|
81
|
-
value: state.focusedValue
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
case "reset": {
|
|
85
|
-
return action.state;
|
|
86
|
-
}
|
|
87
|
-
case "set-focus": {
|
|
88
|
-
return {
|
|
89
|
-
...state,
|
|
90
|
-
focusedValue: action.value
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
const flattenOptions = (options) => options.flatMap((option) => {
|
|
96
|
-
if ("options" in option) {
|
|
97
|
-
const flatSubtree = flattenOptions(option.options);
|
|
98
|
-
const optionValues = flatSubtree.flatMap(
|
|
99
|
-
(o) => "value" in o ? o.value : []
|
|
100
|
-
);
|
|
101
|
-
const header = option.header !== void 0 ? [{ header: option.header, optionValues }] : [];
|
|
102
|
-
return [...header, ...flatSubtree];
|
|
103
|
-
}
|
|
104
|
-
return option;
|
|
105
|
-
});
|
|
106
|
-
const createDefaultState = ({
|
|
107
|
-
visibleOptionCount: customVisibleOptionCount,
|
|
108
|
-
defaultValue,
|
|
109
|
-
options
|
|
110
|
-
}) => {
|
|
111
|
-
const flatOptions = flattenOptions(options);
|
|
112
|
-
const visibleOptionCount = typeof customVisibleOptionCount === "number" ? Math.min(customVisibleOptionCount, flatOptions.length) : flatOptions.length;
|
|
113
|
-
const optionMap = new OptionMap(flatOptions);
|
|
114
|
-
const firstOption = optionMap.first;
|
|
115
|
-
let focusedValue;
|
|
116
|
-
if (defaultValue && optionMap.get(defaultValue)) {
|
|
117
|
-
focusedValue = defaultValue;
|
|
118
|
-
} else {
|
|
119
|
-
focusedValue = firstOption && "value" in firstOption ? firstOption.value : void 0;
|
|
120
|
-
}
|
|
121
|
-
let visibleFromIndex = 0;
|
|
122
|
-
let visibleToIndex = visibleOptionCount;
|
|
123
|
-
if (focusedValue && optionMap.get(focusedValue)) {
|
|
124
|
-
const focusedIndex = optionMap.get(focusedValue).index;
|
|
125
|
-
const halfVisible = Math.floor(visibleOptionCount / 2);
|
|
126
|
-
visibleFromIndex = Math.max(0, focusedIndex - halfVisible);
|
|
127
|
-
visibleToIndex = Math.min(
|
|
128
|
-
flatOptions.length,
|
|
129
|
-
visibleFromIndex + visibleOptionCount
|
|
130
|
-
);
|
|
131
|
-
if (visibleToIndex - visibleFromIndex < visibleOptionCount) {
|
|
132
|
-
visibleFromIndex = Math.max(0, visibleToIndex - visibleOptionCount);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
optionMap,
|
|
137
|
-
visibleOptionCount,
|
|
138
|
-
focusedValue,
|
|
139
|
-
visibleFromIndex,
|
|
140
|
-
visibleToIndex,
|
|
141
|
-
previousValue: defaultValue,
|
|
142
|
-
value: defaultValue
|
|
143
|
-
};
|
|
144
|
-
};
|
|
145
|
-
const useSelectState = ({
|
|
146
|
-
visibleOptionCount = 5,
|
|
147
|
-
options,
|
|
148
|
-
defaultValue,
|
|
149
|
-
onChange,
|
|
150
|
-
onFocus,
|
|
151
|
-
focusValue
|
|
152
|
-
}) => {
|
|
153
|
-
const flatOptions = flattenOptions(options);
|
|
154
|
-
const [state, dispatch] = useReducer(
|
|
155
|
-
reducer,
|
|
156
|
-
{ visibleOptionCount, defaultValue, options },
|
|
157
|
-
createDefaultState
|
|
158
|
-
);
|
|
159
|
-
const [lastOptions, setLastOptions] = useState(flatOptions);
|
|
160
|
-
if (flatOptions !== lastOptions && !isDeepStrictEqual(flatOptions, lastOptions)) {
|
|
161
|
-
dispatch({
|
|
162
|
-
type: "reset",
|
|
163
|
-
state: createDefaultState({ visibleOptionCount, defaultValue, options })
|
|
164
|
-
});
|
|
165
|
-
setLastOptions(flatOptions);
|
|
166
|
-
}
|
|
167
|
-
const focusNextOption = useCallback(() => {
|
|
168
|
-
dispatch({
|
|
169
|
-
type: "focus-next-option"
|
|
170
|
-
});
|
|
171
|
-
}, []);
|
|
172
|
-
const focusPreviousOption = useCallback(() => {
|
|
173
|
-
dispatch({
|
|
174
|
-
type: "focus-previous-option"
|
|
175
|
-
});
|
|
176
|
-
}, []);
|
|
177
|
-
const selectFocusedOption = useCallback(() => {
|
|
178
|
-
dispatch({
|
|
179
|
-
type: "select-focused-option"
|
|
180
|
-
});
|
|
181
|
-
}, []);
|
|
182
|
-
const visibleOptions = useMemo(() => {
|
|
183
|
-
return flatOptions.map((option, index) => ({
|
|
184
|
-
...option,
|
|
185
|
-
index
|
|
186
|
-
})).slice(state.visibleFromIndex, state.visibleToIndex);
|
|
187
|
-
}, [flatOptions, state.visibleFromIndex, state.visibleToIndex]);
|
|
188
|
-
useEffect(() => {
|
|
189
|
-
if (state.value && state.previousValue !== state.value) {
|
|
190
|
-
onChange?.(state.value);
|
|
191
|
-
}
|
|
192
|
-
}, [state.previousValue, state.value, options, onChange]);
|
|
193
|
-
useEffect(() => {
|
|
194
|
-
if (state.focusedValue) {
|
|
195
|
-
onFocus?.(state.focusedValue);
|
|
196
|
-
}
|
|
197
|
-
}, [state.focusedValue, onFocus]);
|
|
198
|
-
useEffect(() => {
|
|
199
|
-
if (focusValue) {
|
|
200
|
-
dispatch({
|
|
201
|
-
type: "set-focus",
|
|
202
|
-
value: focusValue
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
}, [focusValue]);
|
|
206
|
-
return {
|
|
207
|
-
focusedValue: state.focusedValue,
|
|
208
|
-
visibleFromIndex: state.visibleFromIndex,
|
|
209
|
-
visibleToIndex: state.visibleToIndex,
|
|
210
|
-
value: state.value,
|
|
211
|
-
visibleOptions,
|
|
212
|
-
focusNextOption,
|
|
213
|
-
focusPreviousOption,
|
|
214
|
-
selectFocusedOption
|
|
215
|
-
};
|
|
216
|
-
};
|
|
217
|
-
export {
|
|
218
|
-
useSelectState
|
|
219
|
-
};
|
|
220
|
-
//# sourceMappingURL=use-select-state.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CustomSelect/use-select-state.ts"],
|
|
4
|
-
"sourcesContent": ["import { isDeepStrictEqual } from 'node:util'\nimport {\n useReducer,\n type Reducer,\n useCallback,\n useMemo,\n useState,\n useEffect,\n} from 'react'\nimport OptionMap from './option-map'\nimport { Option } from '@inkjs/ui'\nimport type { OptionHeader, OptionSubtree } from './select'\n\ntype State = {\n /**\n * Map where key is option's value and value is option's index.\n */\n optionMap: OptionMap\n\n /**\n * Number of visible options.\n */\n visibleOptionCount: number\n\n /**\n * Value of the currently focused option.\n */\n focusedValue: string | undefined\n\n /**\n * Index of the first visible option.\n */\n visibleFromIndex: number\n\n /**\n * Index of the last visible option.\n */\n visibleToIndex: number\n\n /**\n * Value of the previously selected option.\n */\n previousValue: string | undefined\n\n /**\n * Value of the selected option.\n */\n value: string | undefined\n}\n\ntype Action =\n | FocusNextOptionAction\n | FocusPreviousOptionAction\n | SelectFocusedOptionAction\n | SetFocusAction\n | ResetAction\n\ntype SetFocusAction = {\n type: 'set-focus'\n value: string\n}\n\ntype FocusNextOptionAction = {\n type: 'focus-next-option'\n}\n\ntype FocusPreviousOptionAction = {\n type: 'focus-previous-option'\n}\n\ntype SelectFocusedOptionAction = {\n type: 'select-focused-option'\n}\n\ntype ResetAction = {\n type: 'reset'\n state: State\n}\n\nconst reducer: Reducer<State, Action> = (state, action) => {\n switch (action.type) {\n case 'focus-next-option': {\n if (!state.focusedValue) {\n return state\n }\n\n const item = state.optionMap.get(state.focusedValue)\n\n if (!item) {\n return state\n }\n\n let next = item.next\n while (next && !('value' in next)) {\n // Skip headers\n next = next.next\n }\n\n if (!next) {\n return state\n }\n\n const needsToScroll = next.index >= state.visibleToIndex\n\n if (!needsToScroll) {\n return {\n ...state,\n focusedValue: next.value,\n }\n }\n\n const nextVisibleToIndex = Math.min(\n state.optionMap.size,\n state.visibleToIndex + 1,\n )\n\n const nextVisibleFromIndex = nextVisibleToIndex - state.visibleOptionCount\n\n return {\n ...state,\n focusedValue: next.value,\n visibleFromIndex: nextVisibleFromIndex,\n visibleToIndex: nextVisibleToIndex,\n }\n }\n\n case 'focus-previous-option': {\n if (!state.focusedValue) {\n return state\n }\n\n const item = state.optionMap.get(state.focusedValue)\n\n if (!item) {\n return state\n }\n\n let previous = item.previous\n while (previous && !('value' in previous)) {\n // Skip headers\n previous = previous.previous\n }\n\n if (!previous) {\n return state\n }\n\n const needsToScroll = previous.index <= state.visibleFromIndex\n\n if (!needsToScroll) {\n return {\n ...state,\n focusedValue: previous.value,\n }\n }\n\n const nextVisibleFromIndex = Math.max(0, state.visibleFromIndex - 1)\n\n const nextVisibleToIndex = nextVisibleFromIndex + state.visibleOptionCount\n\n return {\n ...state,\n focusedValue: previous.value,\n visibleFromIndex: nextVisibleFromIndex,\n visibleToIndex: nextVisibleToIndex,\n }\n }\n\n case 'select-focused-option': {\n return {\n ...state,\n previousValue: state.value,\n value: state.focusedValue,\n }\n }\n\n case 'reset': {\n return action.state\n }\n\n case 'set-focus': {\n return {\n ...state,\n focusedValue: action.value,\n }\n }\n }\n}\n\nexport type UseSelectStateProps = {\n /**\n * Number of items to display.\n *\n * @default 5\n */\n visibleOptionCount?: number\n\n /**\n * Options.\n */\n options: (Option | OptionSubtree)[]\n\n /**\n * Initially selected option's value.\n */\n defaultValue?: string\n\n /**\n * Callback for selecting an option.\n */\n onChange?: (value: string) => void\n\n /**\n * Callback for focusing an option.\n */\n onFocus?: (value: string) => void\n\n /**\n * Value to focus\n */\n focusValue?: string\n}\n\nexport type SelectState = Pick<\n State,\n 'focusedValue' | 'visibleFromIndex' | 'visibleToIndex' | 'value'\n> & {\n /**\n * Visible options.\n */\n visibleOptions: Array<(Option | OptionHeader) & { index: number }>\n\n /**\n * Focus next option and scroll the list down, if needed.\n */\n focusNextOption: () => void\n\n /**\n * Focus previous option and scroll the list up, if needed.\n */\n focusPreviousOption: () => void\n\n /**\n * Select currently focused option.\n */\n selectFocusedOption: () => void\n}\n\nconst flattenOptions = (\n options: (Option | OptionSubtree)[],\n): (Option | OptionHeader)[] =>\n options.flatMap(option => {\n if ('options' in option) {\n const flatSubtree = flattenOptions(option.options)\n const optionValues = flatSubtree.flatMap(o =>\n 'value' in o ? o.value : [],\n )\n const header =\n option.header !== undefined\n ? [{ header: option.header, optionValues }]\n : []\n\n return [...header, ...flatSubtree]\n }\n return option\n })\n\nconst createDefaultState = ({\n visibleOptionCount: customVisibleOptionCount,\n defaultValue,\n options,\n}: Pick<\n UseSelectStateProps,\n 'visibleOptionCount' | 'defaultValue' | 'options'\n>) => {\n const flatOptions = flattenOptions(options)\n\n const visibleOptionCount =\n typeof customVisibleOptionCount === 'number'\n ? Math.min(customVisibleOptionCount, flatOptions.length)\n : flatOptions.length\n\n const optionMap = new OptionMap(flatOptions)\n const firstOption = optionMap.first\n\n // Use defaultValue for focusedValue if it exists and is valid, otherwise use first option\n let focusedValue: string | undefined\n if (defaultValue && optionMap.get(defaultValue)) {\n focusedValue = defaultValue\n } else {\n focusedValue =\n firstOption && 'value' in firstOption ? firstOption.value : undefined\n }\n\n // Calculate visible range based on focused value\n let visibleFromIndex = 0\n let visibleToIndex = visibleOptionCount\n\n if (focusedValue && optionMap.get(focusedValue)) {\n const focusedIndex = optionMap.get(focusedValue)!.index\n // Center the focused option in the visible area if possible\n const halfVisible = Math.floor(visibleOptionCount / 2)\n visibleFromIndex = Math.max(0, focusedIndex - halfVisible)\n visibleToIndex = Math.min(\n flatOptions.length,\n visibleFromIndex + visibleOptionCount,\n )\n\n // Adjust if we can't show enough items at the end\n if (visibleToIndex - visibleFromIndex < visibleOptionCount) {\n visibleFromIndex = Math.max(0, visibleToIndex - visibleOptionCount)\n }\n }\n\n return {\n optionMap,\n visibleOptionCount,\n focusedValue,\n visibleFromIndex,\n visibleToIndex,\n previousValue: defaultValue,\n value: defaultValue,\n }\n}\n\nexport const useSelectState = ({\n visibleOptionCount = 5,\n options,\n defaultValue,\n onChange,\n onFocus,\n focusValue,\n}: UseSelectStateProps) => {\n const flatOptions = flattenOptions(options)\n\n const [state, dispatch] = useReducer(\n reducer,\n { visibleOptionCount, defaultValue, options },\n createDefaultState,\n )\n\n const [lastOptions, setLastOptions] = useState(flatOptions)\n\n if (\n flatOptions !== lastOptions &&\n !isDeepStrictEqual(flatOptions, lastOptions)\n ) {\n dispatch({\n type: 'reset',\n state: createDefaultState({ visibleOptionCount, defaultValue, options }),\n })\n\n setLastOptions(flatOptions)\n }\n\n const focusNextOption = useCallback(() => {\n dispatch({\n type: 'focus-next-option',\n })\n }, [])\n\n const focusPreviousOption = useCallback(() => {\n dispatch({\n type: 'focus-previous-option',\n })\n }, [])\n\n const selectFocusedOption = useCallback(() => {\n dispatch({\n type: 'select-focused-option',\n })\n }, [])\n\n const visibleOptions = useMemo(() => {\n return flatOptions\n .map((option, index) => ({\n ...option,\n index,\n }))\n .slice(state.visibleFromIndex, state.visibleToIndex)\n }, [flatOptions, state.visibleFromIndex, state.visibleToIndex])\n\n useEffect(() => {\n if (state.value && state.previousValue !== state.value) {\n onChange?.(state.value)\n }\n }, [state.previousValue, state.value, options, onChange])\n\n useEffect(() => {\n if (state.focusedValue) {\n onFocus?.(state.focusedValue)\n }\n }, [state.focusedValue, onFocus])\n\n useEffect(() => {\n if (focusValue) {\n dispatch({\n type: 'set-focus',\n value: focusValue,\n })\n }\n }, [focusValue])\n\n return {\n focusedValue: state.focusedValue,\n visibleFromIndex: state.visibleFromIndex,\n visibleToIndex: state.visibleToIndex,\n value: state.value,\n visibleOptions,\n focusNextOption,\n focusPreviousOption,\n selectFocusedOption,\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { useInput } from "ink";
|
|
2
|
-
const useSelect = ({ isDisabled = false, state }) => {
|
|
3
|
-
useInput(
|
|
4
|
-
(_input, key) => {
|
|
5
|
-
if (key.downArrow) {
|
|
6
|
-
state.focusNextOption();
|
|
7
|
-
}
|
|
8
|
-
if (key.upArrow) {
|
|
9
|
-
state.focusPreviousOption();
|
|
10
|
-
}
|
|
11
|
-
if (key.return) {
|
|
12
|
-
state.selectFocusedOption();
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
{ isActive: !isDisabled }
|
|
16
|
-
);
|
|
17
|
-
};
|
|
18
|
-
export {
|
|
19
|
-
useSelect
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=use-select.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/CustomSelect/use-select.ts"],
|
|
4
|
-
"sourcesContent": ["import { useInput } from 'ink'\nimport { type SelectState } from './use-select-state'\n\nexport type UseSelectProps = {\n /**\n * When disabled, user input is ignored.\n *\n * @default false\n */\n isDisabled?: boolean\n\n /**\n * Select state.\n */\n state: SelectState\n}\n\nexport const useSelect = ({ isDisabled = false, state }: UseSelectProps) => {\n useInput(\n (_input, key) => {\n if (key.downArrow) {\n state.focusNextOption()\n }\n\n if (key.upArrow) {\n state.focusPreviousOption()\n }\n\n if (key.return) {\n state.selectFocusedOption()\n }\n },\n { isActive: !isDisabled },\n )\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,gBAAgB;AAiBlB,MAAM,YAAY,CAAC,EAAE,aAAa,OAAO,MAAM,MAAsB;AAC1E;AAAA,IACE,CAAC,QAAQ,QAAQ;AACf,UAAI,IAAI,WAAW;AACjB,cAAM,gBAAgB;AAAA,MACxB;AAEA,UAAI,IAAI,SAAS;AACf,cAAM,oBAAoB;AAAA,MAC5B;AAEA,UAAI,IAAI,QAAQ;AACd,cAAM,oBAAoB;AAAA,MAC5B;AAAA,IACF;AAAA,IACA,EAAE,UAAU,CAAC,WAAW;AAAA,EAC1B;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import { getTheme } from "../utils/theme.js";
|
|
3
|
-
import { Text } from "ink";
|
|
4
|
-
import { PRODUCT_NAME } from "../constants/product.js";
|
|
5
|
-
function FallbackToolUseRejectedMessage() {
|
|
6
|
-
return /* @__PURE__ */ React.createElement(Text, null, "\xA0\xA0\u23BF \xA0", /* @__PURE__ */ React.createElement(Text, { color: getTheme().error }, "No (tell ", PRODUCT_NAME, " what to do differently)"));
|
|
7
|
-
}
|
|
8
|
-
export {
|
|
9
|
-
FallbackToolUseRejectedMessage
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=FallbackToolUseRejectedMessage.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/FallbackToolUseRejectedMessage.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport { getTheme } from '../utils/theme'\nimport { Text } from 'ink'\nimport { PRODUCT_NAME } from '../constants/product'\n\nexport function FallbackToolUseRejectedMessage(): React.ReactNode {\n return (\n <Text>\n \u23BF \n <Text color={getTheme().error}>\n No (tell {PRODUCT_NAME} what to do differently)\n </Text>\n </Text>\n )\n}\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAEtB,SAAS,iCAAkD;AAChE,SACE,oCAAC,YAAK,uBAEJ,oCAAC,QAAK,OAAO,SAAS,EAAE,SAAO,aACnB,cAAa,0BACzB,CACF;AAEJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from "ink";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { intersperse } from "../utils/array.js";
|
|
4
|
-
import { StructuredDiff } from "./StructuredDiff.js";
|
|
5
|
-
import { getTheme } from "../utils/theme.js";
|
|
6
|
-
import { getCwd } from "../utils/state.js";
|
|
7
|
-
import { relative } from "path";
|
|
8
|
-
import { useTerminalSize } from "../hooks/useTerminalSize.js";
|
|
9
|
-
function FileEditToolUpdatedMessage({
|
|
10
|
-
filePath,
|
|
11
|
-
structuredPatch,
|
|
12
|
-
verbose
|
|
13
|
-
}) {
|
|
14
|
-
const { columns } = useTerminalSize();
|
|
15
|
-
const patches = Array.isArray(structuredPatch) ? structuredPatch : [];
|
|
16
|
-
const numAdditions = patches.reduce(
|
|
17
|
-
(count, hunk) => count + hunk.lines.filter((_) => _.startsWith("+")).length,
|
|
18
|
-
0
|
|
19
|
-
);
|
|
20
|
-
const numRemovals = patches.reduce(
|
|
21
|
-
(count, hunk) => count + hunk.lines.filter((_) => _.startsWith("-")).length,
|
|
22
|
-
0
|
|
23
|
-
);
|
|
24
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, null, " ", "\u23BF Updated", " ", /* @__PURE__ */ React.createElement(Text, { bold: true }, verbose ? filePath : relative(getCwd(), filePath)), numAdditions > 0 || numRemovals > 0 ? " with " : "", numAdditions > 0 ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Text, { bold: true }, numAdditions), " ", numAdditions > 1 ? "additions" : "addition") : null, numAdditions > 0 && numRemovals > 0 ? " and " : null, numRemovals > 0 ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Text, { bold: true }, numRemovals), " ", numRemovals > 1 ? "removals" : "removal") : null), patches.length > 0 && intersperse(
|
|
25
|
-
patches.map((_) => /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", paddingLeft: 5, key: _.newStart }, /* @__PURE__ */ React.createElement(StructuredDiff, { patch: _, dim: false, width: columns - 12 }))),
|
|
26
|
-
(i) => /* @__PURE__ */ React.createElement(Box, { paddingLeft: 5, key: `ellipsis-${i}` }, /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "..."))
|
|
27
|
-
));
|
|
28
|
-
}
|
|
29
|
-
export {
|
|
30
|
-
FileEditToolUpdatedMessage
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=FileEditToolUpdatedMessage.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/FileEditToolUpdatedMessage.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Hunk } from 'diff'\nimport { Box, Text } from 'ink'\nimport * as React from 'react'\nimport { intersperse } from '../utils/array'\nimport { StructuredDiff } from './StructuredDiff'\nimport { getTheme } from '../utils/theme'\nimport { getCwd } from '../utils/state'\nimport { relative } from 'path'\nimport { useTerminalSize } from '../hooks/useTerminalSize'\n\ntype Props = {\n filePath: string\n structuredPatch?: Hunk[]\n verbose: boolean\n}\n\nexport function FileEditToolUpdatedMessage({\n filePath,\n structuredPatch,\n verbose,\n}: Props): React.ReactNode {\n const { columns } = useTerminalSize()\n const patches = Array.isArray(structuredPatch) ? structuredPatch : []\n const numAdditions = patches.reduce(\n (count, hunk) => count + hunk.lines.filter(_ => _.startsWith('+')).length,\n 0,\n )\n const numRemovals = patches.reduce(\n (count, hunk) => count + hunk.lines.filter(_ => _.startsWith('-')).length,\n 0,\n )\n\n return (\n <Box flexDirection=\"column\">\n <Text>\n {' '}\u23BF Updated{' '}\n <Text bold>{verbose ? filePath : relative(getCwd(), filePath)}</Text>\n {numAdditions > 0 || numRemovals > 0 ? ' with ' : ''}\n {numAdditions > 0 ? (\n <>\n <Text bold>{numAdditions}</Text>{' '}\n {numAdditions > 1 ? 'additions' : 'addition'}\n </>\n ) : null}\n {numAdditions > 0 && numRemovals > 0 ? ' and ' : null}\n {numRemovals > 0 ? (\n <>\n <Text bold>{numRemovals}</Text>{' '}\n {numRemovals > 1 ? 'removals' : 'removal'}\n </>\n ) : null}\n </Text>\n {patches.length > 0 &&\n intersperse(\n patches.map(_ => (\n <Box flexDirection=\"column\" paddingLeft={5} key={_.newStart}>\n <StructuredDiff patch={_} dim={false} width={columns - 12} />\n </Box>\n )),\n i => (\n <Box paddingLeft={5} key={`ellipsis-${i}`}>\n <Text color={getTheme().secondaryText}>...</Text>\n </Box>\n ),\n )}\n </Box>\n )\n}\n"],
|
|
5
|
-
"mappings": "AACA,SAAS,KAAK,YAAY;AAC1B,YAAY,WAAW;AACvB,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAQzB,SAAS,2BAA2B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,QAAM,EAAE,QAAQ,IAAI,gBAAgB;AACpC,QAAM,UAAU,MAAM,QAAQ,eAAe,IAAI,kBAAkB,CAAC;AACpE,QAAM,eAAe,QAAQ;AAAA,IAC3B,CAAC,OAAO,SAAS,QAAQ,KAAK,MAAM,OAAO,OAAK,EAAE,WAAW,GAAG,CAAC,EAAE;AAAA,IACnE;AAAA,EACF;AACA,QAAM,cAAc,QAAQ;AAAA,IAC1B,CAAC,OAAO,SAAS,QAAQ,KAAK,MAAM,OAAO,OAAK,EAAE,WAAW,GAAG,CAAC,EAAE;AAAA,IACnE;AAAA,EACF;AAEA,SACE,oCAAC,OAAI,eAAc,YACjB,oCAAC,YACE,MAAK,kBAAU,KAChB,oCAAC,QAAK,MAAI,QAAE,UAAU,WAAW,SAAS,OAAO,GAAG,QAAQ,CAAE,GAC7D,eAAe,KAAK,cAAc,IAAI,WAAW,IACjD,eAAe,IACd,0DACE,oCAAC,QAAK,MAAI,QAAE,YAAa,GAAQ,KAChC,eAAe,IAAI,cAAc,UACpC,IACE,MACH,eAAe,KAAK,cAAc,IAAI,UAAU,MAChD,cAAc,IACb,0DACE,oCAAC,QAAK,MAAI,QAAE,WAAY,GAAQ,KAC/B,cAAc,IAAI,aAAa,SAClC,IACE,IACN,GACC,QAAQ,SAAS,KAChB;AAAA,IACE,QAAQ,IAAI,OACV,oCAAC,OAAI,eAAc,UAAS,aAAa,GAAG,KAAK,EAAE,YACjD,oCAAC,kBAAe,OAAO,GAAG,KAAK,OAAO,OAAO,UAAU,IAAI,CAC7D,CACD;AAAA,IACD,OACE,oCAAC,OAAI,aAAa,GAAG,KAAK,YAAY,CAAC,MACrC,oCAAC,QAAK,OAAO,SAAS,EAAE,iBAAe,KAAG,CAC5C;AAAA,EAEJ,CACJ;AAEJ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/components/Help.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { PRODUCT_COMMAND, PRODUCT_NAME } from "../constants/product.js";
|
|
2
|
-
import {
|
|
3
|
-
getCustomCommandDirectories,
|
|
4
|
-
hasCustomCommands
|
|
5
|
-
} from "../services/customCommands.js";
|
|
6
|
-
import * as React from "react";
|
|
7
|
-
import { Box, Text, useInput } from "ink";
|
|
8
|
-
import { getTheme } from "../utils/theme.js";
|
|
9
|
-
import { PressEnterToContinue } from "./PressEnterToContinue.js";
|
|
10
|
-
import { MACRO } from "../constants/macros.js";
|
|
11
|
-
function Help({
|
|
12
|
-
commands,
|
|
13
|
-
onClose
|
|
14
|
-
}) {
|
|
15
|
-
const theme = getTheme();
|
|
16
|
-
const moreHelp = `Learn more at: ${MACRO.README_URL}`;
|
|
17
|
-
const filteredCommands = commands.filter((cmd) => !cmd.isHidden);
|
|
18
|
-
const builtInCommands = filteredCommands.filter(
|
|
19
|
-
(cmd) => !cmd.name.startsWith("project:") && !cmd.name.startsWith("user:")
|
|
20
|
-
);
|
|
21
|
-
const customCommands = filteredCommands.filter(
|
|
22
|
-
(cmd) => cmd.name.startsWith("project:") || cmd.name.startsWith("user:")
|
|
23
|
-
);
|
|
24
|
-
const [count, setCount] = React.useState(0);
|
|
25
|
-
React.useEffect(() => {
|
|
26
|
-
const timer = setTimeout(() => {
|
|
27
|
-
if (count < 3) {
|
|
28
|
-
setCount(count + 1);
|
|
29
|
-
}
|
|
30
|
-
}, 250);
|
|
31
|
-
return () => clearTimeout(timer);
|
|
32
|
-
}, [count]);
|
|
33
|
-
useInput((_, key) => {
|
|
34
|
-
if (key.return) onClose();
|
|
35
|
-
});
|
|
36
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", padding: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: theme.kode }, `${PRODUCT_NAME} v${MACRO.VERSION}`), /* @__PURE__ */ React.createElement(Box, { marginTop: 1, flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, null, PRODUCT_NAME, " is a beta research preview. Always review", " ", PRODUCT_NAME, "'s responses, especially when running code.", " ", PRODUCT_NAME, " has read access to files in the current directory and can run commands and edit files with your permission.")), count >= 1 && /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true }, "Usage Modes:"), /* @__PURE__ */ React.createElement(Text, null, "\u2022 REPL: ", /* @__PURE__ */ React.createElement(Text, { bold: true }, PRODUCT_COMMAND), " (interactive session)"), /* @__PURE__ */ React.createElement(Text, null, "\u2022 Non-interactive:", " ", /* @__PURE__ */ React.createElement(Text, { bold: true }, PRODUCT_COMMAND, ' -p "question"')), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, null, "Run ", /* @__PURE__ */ React.createElement(Text, { bold: true }, PRODUCT_COMMAND, " -h"), " for all command line options"))), count >= 2 && /* @__PURE__ */ React.createElement(Box, { marginTop: 1, flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, { bold: true }, "Common Tasks:"), /* @__PURE__ */ React.createElement(Text, null, "\u2022 Ask questions about your codebase", " ", /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "> How does foo.py work?")), /* @__PURE__ */ React.createElement(Text, null, "\u2022 Edit files", " ", /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "> Update bar.ts to...")), /* @__PURE__ */ React.createElement(Text, null, "\u2022 Fix errors", " ", /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "> cargo build")), /* @__PURE__ */ React.createElement(Text, null, "\u2022 Run commands", " ", /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "> /help")), /* @__PURE__ */ React.createElement(Text, null, "\u2022 Run bash commands", " ", /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "> !ls"))), count >= 3 && /* @__PURE__ */ React.createElement(Box, { marginTop: 1, flexDirection: "column" }, /* @__PURE__ */ React.createElement(Text, { bold: true }, "Built-in Commands:"), /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, builtInCommands.map((cmd, i) => /* @__PURE__ */ React.createElement(Box, { key: i, marginLeft: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true }, `/${cmd.name}`), /* @__PURE__ */ React.createElement(Text, null, " - ", cmd.description)))), customCommands.length > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true }, "Custom Commands:")), /* @__PURE__ */ React.createElement(Box, { flexDirection: "column" }, customCommands.map((cmd, i) => /* @__PURE__ */ React.createElement(Box, { key: i, marginLeft: 1 }, /* @__PURE__ */ React.createElement(Text, { bold: true, color: theme.kode }, `/${cmd.name}`), /* @__PURE__ */ React.createElement(Text, null, " - ", cmd.description), cmd.aliases && cmd.aliases.length > 0 && /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, " ", "(aliases: ", cmd.aliases.join(", "), ")"), cmd.scope && /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, " [", cmd.scope, "]"))))), hasCustomCommands() || customCommands.length > 0 ? /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "Custom commands loaded from:"), /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "\u2022 ", getCustomCommandDirectories().userClaude, " (user: prefix)"), /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "\u2022 ", getCustomCommandDirectories().projectClaude, " (project: prefix)"), /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "Use /refresh-commands to reload after changes")) : /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "Create custom commands by adding .md files to:"), /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "\u2022 ", getCustomCommandDirectories().userClaude, " (user: prefix)"), /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "\u2022 ", getCustomCommandDirectories().projectClaude, " (project: prefix)"), /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, "Use /refresh-commands to reload after creation"))), /* @__PURE__ */ React.createElement(Box, { marginTop: 1 }, /* @__PURE__ */ React.createElement(Text, { color: theme.secondaryText }, moreHelp)), /* @__PURE__ */ React.createElement(Box, { marginTop: 2 }, /* @__PURE__ */ React.createElement(PressEnterToContinue, null)));
|
|
37
|
-
}
|
|
38
|
-
export {
|
|
39
|
-
Help
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=Help.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/Help.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Command } from '../commands'\nimport { PRODUCT_COMMAND, PRODUCT_NAME } from '../constants/product'\nimport {\n getCustomCommandDirectories,\n hasCustomCommands,\n type CustomCommandWithScope,\n} from '../services/customCommands'\nimport * as React from 'react'\nimport { Box, Text, useInput } from 'ink'\nimport { getTheme } from '../utils/theme'\nimport { PressEnterToContinue } from './PressEnterToContinue'\nimport { MACRO } from '../constants/macros'\n\n/**\n * Help Component - Interactive help system with progressive disclosure\n *\n * This component provides a comprehensive help interface that progressively\n * reveals information to avoid overwhelming users. It categorizes commands\n * into built-in and custom types, providing clear guidance on usage.\n *\n * The progressive disclosure pattern (count-based) ensures users can absorb\n * information at their own pace while maintaining a responsive interface.\n */\nexport function Help({\n commands,\n onClose,\n}: {\n commands: Command[]\n onClose: () => void\n}): React.ReactNode {\n const theme = getTheme()\n const moreHelp = `Learn more at: ${MACRO.README_URL}`\n\n // Filter out hidden commands from the help display\n const filteredCommands = commands.filter(cmd => !cmd.isHidden)\n\n // Separate built-in commands from custom commands\n // Built-in commands are those that don't follow the custom command patterns\n const builtInCommands = filteredCommands.filter(\n cmd => !cmd.name.startsWith('project:') && !cmd.name.startsWith('user:'),\n )\n\n // Custom commands are those with project: or user: prefixes\n const customCommands = filteredCommands.filter(\n cmd => cmd.name.startsWith('project:') || cmd.name.startsWith('user:'),\n ) as CustomCommandWithScope[]\n\n // Progressive disclosure state for managing information flow\n const [count, setCount] = React.useState(0)\n\n // Timer-based progressive disclosure to prevent information overload\n React.useEffect(() => {\n const timer = setTimeout(() => {\n if (count < 3) {\n setCount(count + 1)\n }\n }, 250)\n\n return () => clearTimeout(timer)\n }, [count])\n\n // Handle Enter key to close help\n useInput((_, key) => {\n if (key.return) onClose()\n })\n\n return (\n <Box flexDirection=\"column\" padding={1}>\n <Text bold color={theme.kode}>\n {`${PRODUCT_NAME} v${MACRO.VERSION}`}\n </Text>\n\n <Box marginTop={1} flexDirection=\"column\">\n <Text>\n {PRODUCT_NAME} is a beta research preview. Always review{' '}\n {PRODUCT_NAME}'s responses, especially when running code.{' '}\n {PRODUCT_NAME} has read access to files in the current directory and\n can run commands and edit files with your permission.\n </Text>\n </Box>\n\n {count >= 1 && (\n <Box flexDirection=\"column\" marginTop={1}>\n <Text bold>Usage Modes:</Text>\n <Text>\n \u2022 REPL: <Text bold>{PRODUCT_COMMAND}</Text> (interactive session)\n </Text>\n <Text>\n \u2022 Non-interactive:{' '}\n <Text bold>{PRODUCT_COMMAND} -p "question"</Text>\n </Text>\n <Box marginTop={1}>\n <Text>\n Run <Text bold>{PRODUCT_COMMAND} -h</Text> for all command line\n options\n </Text>\n </Box>\n </Box>\n )}\n\n {count >= 2 && (\n <Box marginTop={1} flexDirection=\"column\">\n <Text bold>Common Tasks:</Text>\n <Text>\n \u2022 Ask questions about your codebase{' '}\n <Text color={getTheme().secondaryText}>\n > How does foo.py work?\n </Text>\n </Text>\n <Text>\n \u2022 Edit files{' '}\n <Text color={getTheme().secondaryText}>\n > Update bar.ts to...\n </Text>\n </Text>\n <Text>\n \u2022 Fix errors{' '}\n <Text color={getTheme().secondaryText}>> cargo build</Text>\n </Text>\n <Text>\n \u2022 Run commands{' '}\n <Text color={getTheme().secondaryText}>> /help</Text>\n </Text>\n <Text>\n \u2022 Run bash commands{' '}\n <Text color={getTheme().secondaryText}>> !ls</Text>\n </Text>\n </Box>\n )}\n\n {count >= 3 && (\n <Box marginTop={1} flexDirection=\"column\">\n <Text bold>Built-in Commands:</Text>\n\n <Box flexDirection=\"column\">\n {builtInCommands.map((cmd, i) => (\n <Box key={i} marginLeft={1}>\n <Text bold>{`/${cmd.name}`}</Text>\n <Text> - {cmd.description}</Text>\n </Box>\n ))}\n </Box>\n\n {customCommands.length > 0 && (\n <>\n <Box marginTop={1}>\n <Text bold>Custom Commands:</Text>\n </Box>\n\n <Box flexDirection=\"column\">\n {customCommands.map((cmd, i) => (\n <Box key={i} marginLeft={1}>\n <Text bold color={theme.kode}>{`/${cmd.name}`}</Text>\n <Text> - {cmd.description}</Text>\n {cmd.aliases && cmd.aliases.length > 0 && (\n <Text color={theme.secondaryText}>\n {' '}\n (aliases: {cmd.aliases.join(', ')})\n </Text>\n )}\n {/* Show scope indicator for debugging */}\n {cmd.scope && (\n <Text color={theme.secondaryText}> [{cmd.scope}]</Text>\n )}\n </Box>\n ))}\n </Box>\n </>\n )}\n\n {/* Show custom command directory information */}\n {hasCustomCommands() || customCommands.length > 0 ? (\n <Box marginTop={1}>\n <Text color={theme.secondaryText}>\n Custom commands loaded from:\n </Text>\n <Text color={theme.secondaryText}>\n \u2022 {getCustomCommandDirectories().userClaude} (user: prefix)\n </Text>\n <Text color={theme.secondaryText}>\n \u2022 {getCustomCommandDirectories().projectClaude} (project: prefix)\n </Text>\n <Text color={theme.secondaryText}>\n Use /refresh-commands to reload after changes\n </Text>\n </Box>\n ) : (\n <Box marginTop={1}>\n <Text color={theme.secondaryText}>\n Create custom commands by adding .md files to:\n </Text>\n <Text color={theme.secondaryText}>\n \u2022 {getCustomCommandDirectories().userClaude} (user: prefix)\n </Text>\n <Text color={theme.secondaryText}>\n \u2022 {getCustomCommandDirectories().projectClaude} (project: prefix)\n </Text>\n <Text color={theme.secondaryText}>\n Use /refresh-commands to reload after creation\n </Text>\n </Box>\n )}\n </Box>\n )}\n\n <Box marginTop={1}>\n <Text color={theme.secondaryText}>{moreHelp}</Text>\n </Box>\n\n <Box marginTop={2}>\n <PressEnterToContinue />\n </Box>\n </Box>\n )\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { highlight, supportsLanguage } from "cli-highlight";
|
|
2
|
-
import { Text } from "ink";
|
|
3
|
-
import React, { useMemo } from "react";
|
|
4
|
-
import { logError } from "../utils/log.js";
|
|
5
|
-
function HighlightedCode({ code, language }) {
|
|
6
|
-
const highlightedCode = useMemo(() => {
|
|
7
|
-
try {
|
|
8
|
-
if (supportsLanguage(language)) {
|
|
9
|
-
return highlight(code, { language });
|
|
10
|
-
} else {
|
|
11
|
-
logError(
|
|
12
|
-
`Language not supported while highlighting code, falling back to markdown: ${language}`
|
|
13
|
-
);
|
|
14
|
-
return highlight(code, { language: "markdown" });
|
|
15
|
-
}
|
|
16
|
-
} catch (e) {
|
|
17
|
-
if (e instanceof Error && e.message.includes("Unknown language")) {
|
|
18
|
-
logError(
|
|
19
|
-
`Language not supported while highlighting code, falling back to markdown: ${e}`
|
|
20
|
-
);
|
|
21
|
-
return highlight(code, { language: "markdown" });
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}, [code, language]);
|
|
25
|
-
return /* @__PURE__ */ React.createElement(Text, null, highlightedCode);
|
|
26
|
-
}
|
|
27
|
-
export {
|
|
28
|
-
HighlightedCode
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=HighlightedCode.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/HighlightedCode.tsx"],
|
|
4
|
-
"sourcesContent": ["import { highlight, supportsLanguage } from 'cli-highlight'\nimport { Text } from 'ink'\nimport React, { useMemo } from 'react'\nimport { logError } from '../utils/log'\n\ntype Props = {\n code: string\n language: string\n}\n\nexport function HighlightedCode({ code, language }: Props): React.ReactElement {\n const highlightedCode = useMemo(() => {\n try {\n if (supportsLanguage(language)) {\n return highlight(code, { language })\n } else {\n logError(\n `Language not supported while highlighting code, falling back to markdown: ${language}`,\n )\n return highlight(code, { language: 'markdown' })\n }\n } catch (e) {\n if (e instanceof Error && e.message.includes('Unknown language')) {\n logError(\n `Language not supported while highlighting code, falling back to markdown: ${e}`,\n )\n return highlight(code, { language: 'markdown' })\n }\n }\n }, [code, language])\n\n return <Text>{highlightedCode}</Text>\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,WAAW,wBAAwB;AAC5C,SAAS,YAAY;AACrB,OAAO,SAAS,eAAe;AAC/B,SAAS,gBAAgB;AAOlB,SAAS,gBAAgB,EAAE,MAAM,SAAS,GAA8B;AAC7E,QAAM,kBAAkB,QAAQ,MAAM;AACpC,QAAI;AACF,UAAI,iBAAiB,QAAQ,GAAG;AAC9B,eAAO,UAAU,MAAM,EAAE,SAAS,CAAC;AAAA,MACrC,OAAO;AACL;AAAA,UACE,6EAA6E,QAAQ;AAAA,QACvF;AACA,eAAO,UAAU,MAAM,EAAE,UAAU,WAAW,CAAC;AAAA,MACjD;AAAA,IACF,SAAS,GAAG;AACV,UAAI,aAAa,SAAS,EAAE,QAAQ,SAAS,kBAAkB,GAAG;AAChE;AAAA,UACE,6EAA6E,CAAC;AAAA,QAChF;AACA,eAAO,UAAU,MAAM,EAAE,UAAU,WAAW,CAAC;AAAA,MACjD;AAAA,IACF;AAAA,EACF,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,SAAO,oCAAC,YAAM,eAAgB;AAChC;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|