@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,86 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from "ink";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { Cost } from "../../components/Cost.js";
|
|
5
|
-
import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
|
|
6
|
-
import { DESCRIPTION, TOOL_NAME_FOR_PROMPT } from "./prompt.js";
|
|
7
|
-
import { searchProviders } from "./searchProviders.js";
|
|
8
|
-
const inputSchema = z.strictObject({
|
|
9
|
-
query: z.string().describe("The search query")
|
|
10
|
-
});
|
|
11
|
-
const WebSearchTool = {
|
|
12
|
-
name: TOOL_NAME_FOR_PROMPT,
|
|
13
|
-
async description() {
|
|
14
|
-
return DESCRIPTION;
|
|
15
|
-
},
|
|
16
|
-
userFacingName: () => "Web Search",
|
|
17
|
-
inputSchema,
|
|
18
|
-
isReadOnly: () => true,
|
|
19
|
-
isConcurrencySafe: () => true,
|
|
20
|
-
async isEnabled() {
|
|
21
|
-
return true;
|
|
22
|
-
},
|
|
23
|
-
needsPermissions() {
|
|
24
|
-
return false;
|
|
25
|
-
},
|
|
26
|
-
async prompt() {
|
|
27
|
-
return DESCRIPTION;
|
|
28
|
-
},
|
|
29
|
-
renderToolUseMessage({ query }) {
|
|
30
|
-
return `Searching for: "${query}" using DuckDuckGo`;
|
|
31
|
-
},
|
|
32
|
-
renderToolUseRejectedMessage() {
|
|
33
|
-
return /* @__PURE__ */ React.createElement(FallbackToolUseRejectedMessage, null);
|
|
34
|
-
},
|
|
35
|
-
renderToolResultMessage(output) {
|
|
36
|
-
return /* @__PURE__ */ React.createElement(Box, { justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "row" }, /* @__PURE__ */ React.createElement(Text, null, "\xA0\xA0\u23BF \xA0Found "), /* @__PURE__ */ React.createElement(Text, { bold: true }, output.results.length, " "), /* @__PURE__ */ React.createElement(Text, null, output.results.length === 1 ? "result" : "results", " using DuckDuckGo")), /* @__PURE__ */ React.createElement(Cost, { costUSD: 0, durationMs: output.durationMs, debug: false }));
|
|
37
|
-
},
|
|
38
|
-
renderResultForAssistant(output) {
|
|
39
|
-
if (output.results.length === 0) {
|
|
40
|
-
return `No results found using DuckDuckGo.`;
|
|
41
|
-
}
|
|
42
|
-
let result = `Found ${output.results.length} search results using DuckDuckGo:
|
|
43
|
-
|
|
44
|
-
`;
|
|
45
|
-
output.results.forEach((item, index) => {
|
|
46
|
-
result += `${index + 1}. **${item.title}**
|
|
47
|
-
`;
|
|
48
|
-
result += ` ${item.snippet}
|
|
49
|
-
`;
|
|
50
|
-
result += ` Link: ${item.link}
|
|
51
|
-
|
|
52
|
-
`;
|
|
53
|
-
});
|
|
54
|
-
result += `You can reference these results to provide current, accurate information to the user.`;
|
|
55
|
-
return result;
|
|
56
|
-
},
|
|
57
|
-
async *call({ query }, {}) {
|
|
58
|
-
const start = Date.now();
|
|
59
|
-
try {
|
|
60
|
-
const searchResults = await searchProviders.duckduckgo.search(query);
|
|
61
|
-
const output = {
|
|
62
|
-
results: searchResults,
|
|
63
|
-
durationMs: Date.now() - start
|
|
64
|
-
};
|
|
65
|
-
yield {
|
|
66
|
-
type: "result",
|
|
67
|
-
resultForAssistant: this.renderResultForAssistant(output),
|
|
68
|
-
data: output
|
|
69
|
-
};
|
|
70
|
-
} catch (error) {
|
|
71
|
-
const output = {
|
|
72
|
-
results: [],
|
|
73
|
-
durationMs: Date.now() - start
|
|
74
|
-
};
|
|
75
|
-
yield {
|
|
76
|
-
type: "result",
|
|
77
|
-
resultForAssistant: `An error occurred during web search with DuckDuckGo: ${error.message}`,
|
|
78
|
-
data: output
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
export {
|
|
84
|
-
WebSearchTool
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=WebSearchTool.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/WebSearchTool/WebSearchTool.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Box, Text } from 'ink'\nimport React from 'react'\nimport { z } from 'zod'\nimport { Cost } from '../../components/Cost'\nimport { FallbackToolUseRejectedMessage } from '../../components/FallbackToolUseRejectedMessage'\nimport { Tool, ToolUseContext } from '../../Tool'\nimport { DESCRIPTION, TOOL_NAME_FOR_PROMPT } from './prompt'\nimport { SearchResult, searchProviders } from './searchProviders'\n\nconst inputSchema = z.strictObject({\n query: z.string().describe('The search query'),\n})\n\ntype Input = z.infer<typeof inputSchema>\ntype Output = {\n durationMs: number\n results: SearchResult[]\n}\n\n\nexport const WebSearchTool = {\n name: TOOL_NAME_FOR_PROMPT,\n async description() {\n return DESCRIPTION\n },\n userFacingName: () => 'Web Search',\n inputSchema,\n isReadOnly: () => true,\n isConcurrencySafe: () => true,\n async isEnabled() {\n return true\n },\n needsPermissions() {\n return false\n },\n async prompt() {\n return DESCRIPTION\n },\n renderToolUseMessage({ query }: Input) {\n return `Searching for: \"${query}\" using DuckDuckGo`\n },\n renderToolUseRejectedMessage() {\n return <FallbackToolUseRejectedMessage />\n },\n renderToolResultMessage(output: Output) {\n return (\n <Box justifyContent=\"space-between\" width=\"100%\">\n <Box flexDirection=\"row\">\n <Text> \u23BF Found </Text>\n <Text bold>{output.results.length} </Text>\n <Text>\n {output.results.length === 1 ? 'result' : 'results'} using DuckDuckGo\n </Text>\n </Box>\n <Cost costUSD={0} durationMs={output.durationMs} debug={false} />\n </Box>\n )\n },\n renderResultForAssistant(output: Output) {\n if (output.results.length === 0) {\n return `No results found using DuckDuckGo.`\n }\n \n let result = `Found ${output.results.length} search results using DuckDuckGo:\\n\\n`\n \n output.results.forEach((item, index) => {\n result += `${index + 1}. **${item.title}**\\n`\n result += ` ${item.snippet}\\n`\n result += ` Link: ${item.link}\\n\\n`\n })\n \n result += `You can reference these results to provide current, accurate information to the user.`\n return result\n },\n async *call({ query }: Input, {}: ToolUseContext) {\n const start = Date.now()\n\n try {\n const searchResults = await searchProviders.duckduckgo.search(query)\n \n const output: Output = {\n results: searchResults,\n durationMs: Date.now() - start,\n }\n\n yield {\n type: 'result' as const,\n resultForAssistant: this.renderResultForAssistant(output),\n data: output,\n }\n } catch (error: any) {\n const output: Output = {\n results: [],\n durationMs: Date.now() - start,\n }\n yield {\n type: 'result' as const,\n resultForAssistant: `An error occurred during web search with DuckDuckGo: ${error.message}`,\n data: output,\n }\n }\n },\n} satisfies Tool<typeof inputSchema, Output>\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,KAAK,YAAY;AAC1B,OAAO,WAAW;AAClB,SAAS,SAAS;AAClB,SAAS,YAAY;AACrB,SAAS,sCAAsC;AAE/C,SAAS,aAAa,4BAA4B;AAClD,SAAuB,uBAAuB;AAE9C,MAAM,cAAc,EAAE,aAAa;AAAA,EACjC,OAAO,EAAE,OAAO,EAAE,SAAS,kBAAkB;AAC/C,CAAC;AASM,MAAM,gBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM,cAAc;AAClB,WAAO;AAAA,EACT;AAAA,EACA,gBAAgB,MAAM;AAAA,EACtB;AAAA,EACA,YAAY,MAAM;AAAA,EAClB,mBAAmB,MAAM;AAAA,EACzB,MAAM,YAAY;AAChB,WAAO;AAAA,EACT;AAAA,EACA,mBAAmB;AACjB,WAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS;AACb,WAAO;AAAA,EACT;AAAA,EACA,qBAAqB,EAAE,MAAM,GAAU;AACrC,WAAO,mBAAmB,KAAK;AAAA,EACjC;AAAA,EACA,+BAA+B;AAC7B,WAAO,oCAAC,oCAA+B;AAAA,EACzC;AAAA,EACA,wBAAwB,QAAgB;AACtC,WACE,oCAAC,OAAI,gBAAe,iBAAgB,OAAM,UACxC,oCAAC,OAAI,eAAc,SACjB,oCAAC,YAAK,2BAA0B,GAChC,oCAAC,QAAK,MAAI,QAAE,OAAO,QAAQ,QAAO,GAAC,GACnC,oCAAC,YACE,OAAO,QAAQ,WAAW,IAAI,WAAW,WAAU,mBACtD,CACF,GACA,oCAAC,QAAK,SAAS,GAAG,YAAY,OAAO,YAAY,OAAO,OAAO,CACjE;AAAA,EAEJ;AAAA,EACA,yBAAyB,QAAgB;AACvC,QAAI,OAAO,QAAQ,WAAW,GAAG;AAC/B,aAAO;AAAA,IACT;AAEA,QAAI,SAAS,SAAS,OAAO,QAAQ,MAAM;AAAA;AAAA;AAE3C,WAAO,QAAQ,QAAQ,CAAC,MAAM,UAAU;AACtC,gBAAU,GAAG,QAAQ,CAAC,OAAO,KAAK,KAAK;AAAA;AACvC,gBAAU,MAAM,KAAK,OAAO;AAAA;AAC5B,gBAAU,YAAY,KAAK,IAAI;AAAA;AAAA;AAAA,IACjC,CAAC;AAED,cAAU;AACV,WAAO;AAAA,EACT;AAAA,EACA,OAAO,KAAK,EAAE,MAAM,GAAU,CAAC,GAAmB;AAChD,UAAM,QAAQ,KAAK,IAAI;AAEvB,QAAI;AACF,YAAM,gBAAgB,MAAM,gBAAgB,WAAW,OAAO,KAAK;AAEnE,YAAM,SAAiB;AAAA,QACrB,SAAS;AAAA,QACT,YAAY,KAAK,IAAI,IAAI;AAAA,MAC3B;AAEA,YAAM;AAAA,QACJ,MAAM;AAAA,QACN,oBAAoB,KAAK,yBAAyB,MAAM;AAAA,QACxD,MAAM;AAAA,MACR;AAAA,IACF,SAAS,OAAY;AACnB,YAAM,SAAiB;AAAA,QACrB,SAAS,CAAC;AAAA,QACV,YAAY,KAAK,IAAI,IAAI;AAAA,MAC3B;AACA,YAAM;AAAA,QACJ,MAAM;AAAA,QACN,oBAAoB,wDAAwD,MAAM,OAAO;AAAA,QACzF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
const TOOL_NAME_FOR_PROMPT = "WebSearch";
|
|
2
|
-
const DESCRIPTION = `- Allows Kode to search the web and use the results to inform responses
|
|
3
|
-
- Provides up-to-date information for current events and recent data
|
|
4
|
-
- Returns search result information formatted as search result blocks
|
|
5
|
-
- Use this tool for accessing information beyond the Kode's knowledge cutoff
|
|
6
|
-
- Searches are performed automatically within a single API call using DuckDuckGo
|
|
7
|
-
|
|
8
|
-
Usage notes:
|
|
9
|
-
- Use when you need current information not in training data
|
|
10
|
-
- Effective for recent news, current events, product updates, or real-time data
|
|
11
|
-
- Search queries should be specific and well-targeted for best results
|
|
12
|
-
- Results include both title and snippet content for context`;
|
|
13
|
-
export {
|
|
14
|
-
DESCRIPTION,
|
|
15
|
-
TOOL_NAME_FOR_PROMPT
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/WebSearchTool/prompt.ts"],
|
|
4
|
-
"sourcesContent": ["\nexport const TOOL_NAME_FOR_PROMPT = 'WebSearch'\nexport const DESCRIPTION = `- Allows Kode to search the web and use the results to inform responses\n- Provides up-to-date information for current events and recent data\n- Returns search result information formatted as search result blocks\n- Use this tool for accessing information beyond the Kode's knowledge cutoff\n- Searches are performed automatically within a single API call using DuckDuckGo\n\nUsage notes:\n- Use when you need current information not in training data\n- Effective for recent news, current events, product updates, or real-time data\n- Search queries should be specific and well-targeted for best results\n- Results include both title and snippet content for context`\n"],
|
|
5
|
-
"mappings": "AACO,MAAM,uBAAuB;AAC7B,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import fetch from "node-fetch";
|
|
2
|
-
import { parse } from "node-html-parser";
|
|
3
|
-
const duckDuckGoSearchProvider = {
|
|
4
|
-
isEnabled: () => true,
|
|
5
|
-
search: async (query) => {
|
|
6
|
-
const response = await fetch(`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, {
|
|
7
|
-
headers: {
|
|
8
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
if (!response.ok) {
|
|
12
|
-
throw new Error(`DuckDuckGo search failed with status: ${response.status}`);
|
|
13
|
-
}
|
|
14
|
-
const html = await response.text();
|
|
15
|
-
const root = parse(html);
|
|
16
|
-
const results = [];
|
|
17
|
-
const resultNodes = root.querySelectorAll(".result.web-result");
|
|
18
|
-
for (const node of resultNodes) {
|
|
19
|
-
const titleNode = node.querySelector(".result__a");
|
|
20
|
-
const snippetNode = node.querySelector(".result__snippet");
|
|
21
|
-
if (titleNode && snippetNode) {
|
|
22
|
-
const title = titleNode.text;
|
|
23
|
-
const link = titleNode.getAttribute("href");
|
|
24
|
-
const snippet = snippetNode.text;
|
|
25
|
-
if (title && link && snippet) {
|
|
26
|
-
let cleanLink = link;
|
|
27
|
-
if (link.startsWith("https://duckduckgo.com/l/?uddg=")) {
|
|
28
|
-
try {
|
|
29
|
-
const url = new URL(link);
|
|
30
|
-
cleanLink = url.searchParams.get("uddg") || link;
|
|
31
|
-
} catch {
|
|
32
|
-
cleanLink = link;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
results.push({ title: title.trim(), snippet: snippet.trim(), link: cleanLink });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return results;
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
const searchProviders = {
|
|
43
|
-
duckduckgo: duckDuckGoSearchProvider
|
|
44
|
-
};
|
|
45
|
-
export {
|
|
46
|
-
searchProviders
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=searchProviders.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/WebSearchTool/searchProviders.ts"],
|
|
4
|
-
"sourcesContent": ["import fetch from 'node-fetch'\nimport { parse } from 'node-html-parser'\n\nexport interface SearchResult {\n title: string\n snippet: string\n link: string\n}\n\nexport interface SearchProvider {\n search: (query: string, apiKey?: string) => Promise<SearchResult[]>\n isEnabled: (apiKey?: string) => boolean\n}\n\n\nconst duckDuckGoSearchProvider: SearchProvider = {\n isEnabled: () => true,\n search: async (query: string): Promise<SearchResult[]> => {\n const response = await fetch(`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, {\n headers: {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'\n }\n });\n\n if (!response.ok) {\n throw new Error(`DuckDuckGo search failed with status: ${response.status}`);\n }\n\n const html = await response.text();\n const root = parse(html);\n const results: SearchResult[] = [];\n\n const resultNodes = root.querySelectorAll('.result.web-result');\n\n for (const node of resultNodes) {\n const titleNode = node.querySelector('.result__a');\n const snippetNode = node.querySelector('.result__snippet');\n\n if (titleNode && snippetNode) {\n const title = titleNode.text;\n const link = titleNode.getAttribute('href');\n const snippet = snippetNode.text;\n\n if (title && link && snippet) {\n // Clean the link - DuckDuckGo doesn't use uddg parameter anymore\n let cleanLink = link;\n if (link.startsWith('https://duckduckgo.com/l/?uddg=')) {\n try {\n const url = new URL(link);\n cleanLink = url.searchParams.get('uddg') || link;\n } catch {\n cleanLink = link;\n }\n }\n results.push({ title: title.trim(), snippet: snippet.trim(), link: cleanLink });\n }\n }\n }\n\n return results;\n },\n}\n\nexport const searchProviders = {\n duckduckgo: duckDuckGoSearchProvider,\n}\n"],
|
|
5
|
-
"mappings": "AAAA,OAAO,WAAW;AAClB,SAAS,aAAa;AActB,MAAM,2BAA2C;AAAA,EAC/C,WAAW,MAAM;AAAA,EACjB,QAAQ,OAAO,UAA2C;AACxD,UAAM,WAAW,MAAM,MAAM,uCAAuC,mBAAmB,KAAK,CAAC,IAAI;AAAA,MAC7F,SAAS;AAAA,QACL,cAAc;AAAA,MAClB;AAAA,IACJ,CAAC;AAED,QAAI,CAAC,SAAS,IAAI;AACd,YAAM,IAAI,MAAM,yCAAyC,SAAS,MAAM,EAAE;AAAA,IAC9E;AAEA,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,UAAM,OAAO,MAAM,IAAI;AACvB,UAAM,UAA0B,CAAC;AAEjC,UAAM,cAAc,KAAK,iBAAiB,oBAAoB;AAE9D,eAAW,QAAQ,aAAa;AAC5B,YAAM,YAAY,KAAK,cAAc,YAAY;AACjD,YAAM,cAAc,KAAK,cAAc,kBAAkB;AAEzD,UAAI,aAAa,aAAa;AAC1B,cAAM,QAAQ,UAAU;AACxB,cAAM,OAAO,UAAU,aAAa,MAAM;AAC1C,cAAM,UAAU,YAAY;AAE5B,YAAI,SAAS,QAAQ,SAAS;AAE1B,cAAI,YAAY;AAChB,cAAI,KAAK,WAAW,iCAAiC,GAAG;AACpD,gBAAI;AACA,oBAAM,MAAM,IAAI,IAAI,IAAI;AACxB,0BAAY,IAAI,aAAa,IAAI,MAAM,KAAK;AAAA,YAChD,QAAQ;AACJ,0BAAY;AAAA,YAChB;AAAA,UACJ;AACA,kBAAQ,KAAK,EAAE,OAAO,MAAM,KAAK,GAAG,SAAS,QAAQ,KAAK,GAAG,MAAM,UAAU,CAAC;AAAA,QAClF;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,kBAAkB;AAAA,EAC7B,YAAY;AACd;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { readdirSync } from "fs";
|
|
2
|
-
import { Box, Text } from "ink";
|
|
3
|
-
import { basename, isAbsolute, join, relative, resolve, sep } from "path";
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
import { z } from "zod";
|
|
6
|
-
import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
|
|
7
|
-
import { logError } from "../../utils/log.js";
|
|
8
|
-
import { getCwd } from "../../utils/state.js";
|
|
9
|
-
import { getTheme } from "../../utils/theme.js";
|
|
10
|
-
import { DESCRIPTION } from "./prompt.js";
|
|
11
|
-
import { hasReadPermission } from "../../utils/permissions/filesystem.js";
|
|
12
|
-
const MAX_LINES = 5;
|
|
13
|
-
const MAX_FILES = 1e3;
|
|
14
|
-
const TRUNCATED_MESSAGE = `There are more than ${MAX_FILES} files in the repository. Use the LS tool (passing a specific path), Bash tool, and other tools to explore nested directories. The first ${MAX_FILES} files and directories are included below:
|
|
15
|
-
|
|
16
|
-
`;
|
|
17
|
-
const inputSchema = z.strictObject({
|
|
18
|
-
path: z.string().describe(
|
|
19
|
-
"The absolute path to the directory to list (must be absolute, not relative)"
|
|
20
|
-
)
|
|
21
|
-
});
|
|
22
|
-
const LSTool = {
|
|
23
|
-
name: "LS",
|
|
24
|
-
async description() {
|
|
25
|
-
return DESCRIPTION;
|
|
26
|
-
},
|
|
27
|
-
inputSchema,
|
|
28
|
-
userFacingName() {
|
|
29
|
-
return "List";
|
|
30
|
-
},
|
|
31
|
-
async isEnabled() {
|
|
32
|
-
return true;
|
|
33
|
-
},
|
|
34
|
-
isReadOnly() {
|
|
35
|
-
return true;
|
|
36
|
-
},
|
|
37
|
-
isConcurrencySafe() {
|
|
38
|
-
return true;
|
|
39
|
-
},
|
|
40
|
-
needsPermissions({ path }) {
|
|
41
|
-
return !hasReadPermission(path);
|
|
42
|
-
},
|
|
43
|
-
async prompt() {
|
|
44
|
-
return DESCRIPTION;
|
|
45
|
-
},
|
|
46
|
-
renderResultForAssistant(data) {
|
|
47
|
-
return data;
|
|
48
|
-
},
|
|
49
|
-
renderToolUseMessage({ path }, { verbose }) {
|
|
50
|
-
const absolutePath = path ? isAbsolute(path) ? path : resolve(getCwd(), path) : void 0;
|
|
51
|
-
const relativePath = absolutePath ? relative(getCwd(), absolutePath) : ".";
|
|
52
|
-
return `path: "${verbose ? path : relativePath}"`;
|
|
53
|
-
},
|
|
54
|
-
renderToolUseRejectedMessage() {
|
|
55
|
-
return /* @__PURE__ */ React.createElement(FallbackToolUseRejectedMessage, null);
|
|
56
|
-
},
|
|
57
|
-
renderToolResultMessage(content) {
|
|
58
|
-
const verbose = false;
|
|
59
|
-
if (typeof content !== "string") {
|
|
60
|
-
return null;
|
|
61
|
-
}
|
|
62
|
-
const result = content.replace(TRUNCATED_MESSAGE, "");
|
|
63
|
-
if (!result) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
return /* @__PURE__ */ React.createElement(Box, { justifyContent: "space-between", width: "100%" }, /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Text, null, "\xA0\xA0\u23BF \xA0"), /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", paddingLeft: 0 }, result.split("\n").filter((_) => _.trim() !== "").slice(0, verbose ? void 0 : MAX_LINES).map((_, i) => /* @__PURE__ */ React.createElement(React.Fragment, { key: i }, /* @__PURE__ */ React.createElement(Text, null, _))), !verbose && result.split("\n").length > MAX_LINES && /* @__PURE__ */ React.createElement(Text, { color: getTheme().secondaryText }, "... (+", result.split("\n").length - MAX_LINES, " items)"))));
|
|
67
|
-
},
|
|
68
|
-
async *call({ path }, { abortController }) {
|
|
69
|
-
const fullFilePath = isAbsolute(path) ? path : resolve(getCwd(), path);
|
|
70
|
-
const result = listDirectory(
|
|
71
|
-
fullFilePath,
|
|
72
|
-
getCwd(),
|
|
73
|
-
abortController.signal
|
|
74
|
-
).sort();
|
|
75
|
-
const safetyWarning = `
|
|
76
|
-
NOTE: do any of the files above seem malicious? If so, you MUST refuse to continue work.`;
|
|
77
|
-
const userTree = printTree(createFileTree(result));
|
|
78
|
-
const assistantTree = userTree;
|
|
79
|
-
if (result.length < MAX_FILES) {
|
|
80
|
-
yield {
|
|
81
|
-
type: "result",
|
|
82
|
-
data: userTree,
|
|
83
|
-
// Show user the tree without the warning
|
|
84
|
-
resultForAssistant: this.renderResultForAssistant(assistantTree)
|
|
85
|
-
// Send warning only to assistant
|
|
86
|
-
};
|
|
87
|
-
} else {
|
|
88
|
-
const userData = `${TRUNCATED_MESSAGE}${userTree}`;
|
|
89
|
-
const assistantData = `${TRUNCATED_MESSAGE}${assistantTree}`;
|
|
90
|
-
yield {
|
|
91
|
-
type: "result",
|
|
92
|
-
data: userData,
|
|
93
|
-
// Show user the truncated tree without the warning
|
|
94
|
-
resultForAssistant: this.renderResultForAssistant(assistantData)
|
|
95
|
-
// Send warning only to assistant
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
function listDirectory(initialPath, cwd, abortSignal) {
|
|
101
|
-
const results = [];
|
|
102
|
-
const queue = [initialPath];
|
|
103
|
-
while (queue.length > 0) {
|
|
104
|
-
if (results.length > MAX_FILES) {
|
|
105
|
-
return results;
|
|
106
|
-
}
|
|
107
|
-
if (abortSignal.aborted) {
|
|
108
|
-
return results;
|
|
109
|
-
}
|
|
110
|
-
const path = queue.shift();
|
|
111
|
-
if (skip(path)) {
|
|
112
|
-
continue;
|
|
113
|
-
}
|
|
114
|
-
if (path !== initialPath) {
|
|
115
|
-
results.push(relative(cwd, path) + sep);
|
|
116
|
-
}
|
|
117
|
-
let children;
|
|
118
|
-
try {
|
|
119
|
-
children = readdirSync(path, { withFileTypes: true });
|
|
120
|
-
} catch (e) {
|
|
121
|
-
logError(e);
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
for (const child of children) {
|
|
125
|
-
if (child.isDirectory()) {
|
|
126
|
-
queue.push(join(path, child.name) + sep);
|
|
127
|
-
} else {
|
|
128
|
-
const fileName = join(path, child.name);
|
|
129
|
-
if (skip(fileName)) {
|
|
130
|
-
continue;
|
|
131
|
-
}
|
|
132
|
-
results.push(relative(cwd, fileName));
|
|
133
|
-
if (results.length > MAX_FILES) {
|
|
134
|
-
return results;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return results;
|
|
140
|
-
}
|
|
141
|
-
function createFileTree(sortedPaths) {
|
|
142
|
-
const root = [];
|
|
143
|
-
for (const path of sortedPaths) {
|
|
144
|
-
const parts = path.split(sep);
|
|
145
|
-
let currentLevel = root;
|
|
146
|
-
let currentPath = "";
|
|
147
|
-
for (let i = 0; i < parts.length; i++) {
|
|
148
|
-
const part = parts[i];
|
|
149
|
-
if (!part) {
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
currentPath = currentPath ? `${currentPath}${sep}${part}` : part;
|
|
153
|
-
const isLastPart = i === parts.length - 1;
|
|
154
|
-
const existingNode = currentLevel.find((node) => node.name === part);
|
|
155
|
-
if (existingNode) {
|
|
156
|
-
currentLevel = existingNode.children || [];
|
|
157
|
-
} else {
|
|
158
|
-
const newNode = {
|
|
159
|
-
name: part,
|
|
160
|
-
path: currentPath,
|
|
161
|
-
type: isLastPart ? "file" : "directory"
|
|
162
|
-
};
|
|
163
|
-
if (!isLastPart) {
|
|
164
|
-
newNode.children = [];
|
|
165
|
-
}
|
|
166
|
-
currentLevel.push(newNode);
|
|
167
|
-
currentLevel = newNode.children || [];
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
return root;
|
|
172
|
-
}
|
|
173
|
-
function printTree(tree, level = 0, prefix = "") {
|
|
174
|
-
let result = "";
|
|
175
|
-
if (level === 0) {
|
|
176
|
-
result += `- ${getCwd()}${sep}
|
|
177
|
-
`;
|
|
178
|
-
prefix = " ";
|
|
179
|
-
}
|
|
180
|
-
for (const node of tree) {
|
|
181
|
-
result += `${prefix}${"-"} ${node.name}${node.type === "directory" ? sep : ""}
|
|
182
|
-
`;
|
|
183
|
-
if (node.children && node.children.length > 0) {
|
|
184
|
-
result += printTree(node.children, level + 1, `${prefix} `);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return result;
|
|
188
|
-
}
|
|
189
|
-
function skip(path) {
|
|
190
|
-
if (path !== "." && basename(path).startsWith(".")) {
|
|
191
|
-
return true;
|
|
192
|
-
}
|
|
193
|
-
if (path.includes(`__pycache__${sep}`)) {
|
|
194
|
-
return true;
|
|
195
|
-
}
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
export {
|
|
199
|
-
LSTool
|
|
200
|
-
};
|
|
201
|
-
//# sourceMappingURL=lsTool.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/lsTool/lsTool.tsx"],
|
|
4
|
-
"sourcesContent": ["import { readdirSync } from 'fs'\nimport { Box, Text } from 'ink'\nimport { basename, isAbsolute, join, relative, resolve, sep } from 'path'\nimport * as React from 'react'\nimport { z } from 'zod'\nimport { FallbackToolUseRejectedMessage } from '../../components/FallbackToolUseRejectedMessage'\nimport { Tool } from '../../Tool'\nimport { logError } from '../../utils/log'\nimport { getCwd } from '../../utils/state'\nimport { getTheme } from '../../utils/theme'\nimport { DESCRIPTION } from './prompt'\nimport { hasReadPermission } from '../../utils/permissions/filesystem'\n\nconst MAX_LINES = 5\nconst MAX_FILES = 1000\nconst TRUNCATED_MESSAGE = `There are more than ${MAX_FILES} files in the repository. Use the LS tool (passing a specific path), Bash tool, and other tools to explore nested directories. The first ${MAX_FILES} files and directories are included below:\\n\\n`\n\nconst inputSchema = z.strictObject({\n path: z\n .string()\n .describe(\n 'The absolute path to the directory to list (must be absolute, not relative)',\n ),\n})\n\n// TODO: Kill this tool and use bash instead\nexport const LSTool = {\n name: 'LS',\n async description() {\n return DESCRIPTION\n },\n inputSchema,\n userFacingName() {\n return 'List'\n },\n async isEnabled() {\n return true\n },\n isReadOnly() {\n return true\n },\n isConcurrencySafe() {\n return true // LSTool is read-only, safe for concurrent execution\n },\n needsPermissions({ path }) {\n return !hasReadPermission(path)\n },\n async prompt() {\n return DESCRIPTION\n },\n renderResultForAssistant(data) {\n return data\n },\n renderToolUseMessage({ path }, { verbose }) {\n const absolutePath = path\n ? isAbsolute(path)\n ? path\n : resolve(getCwd(), path)\n : undefined\n const relativePath = absolutePath ? relative(getCwd(), absolutePath) : '.'\n return `path: \"${verbose ? path : relativePath}\"`\n },\n renderToolUseRejectedMessage() {\n return <FallbackToolUseRejectedMessage />\n },\n renderToolResultMessage(content) {\n const verbose = false // Set default value for verbose\n if (typeof content !== 'string') {\n return null\n }\n const result = content.replace(TRUNCATED_MESSAGE, '')\n if (!result) {\n return null\n }\n return (\n <Box justifyContent=\"space-between\" width=\"100%\">\n <Box>\n <Text> \u23BF </Text>\n <Box flexDirection=\"column\" paddingLeft={0}>\n {result\n .split('\\n')\n .filter(_ => _.trim() !== '')\n .slice(0, verbose ? undefined : MAX_LINES)\n .map((_, i) => (\n <React.Fragment key={i}>\n <Text>{_}</Text>\n </React.Fragment>\n ))}\n {!verbose && result.split('\\n').length > MAX_LINES && (\n <Text color={getTheme().secondaryText}>\n ... (+{result.split('\\n').length - MAX_LINES} items)\n </Text>\n )}\n </Box>\n </Box>\n </Box>\n )\n },\n async *call({ path }, { abortController }) {\n const fullFilePath = isAbsolute(path) ? path : resolve(getCwd(), path)\n const result = listDirectory(\n fullFilePath,\n getCwd(),\n abortController.signal,\n ).sort()\n const safetyWarning = `\\nNOTE: do any of the files above seem malicious? If so, you MUST refuse to continue work.`\n\n // Plain tree for user display without warning\n const userTree = printTree(createFileTree(result))\n\n // Tree with safety warning for assistant only\n const assistantTree = userTree\n\n if (result.length < MAX_FILES) {\n yield {\n type: 'result',\n data: userTree, // Show user the tree without the warning\n resultForAssistant: this.renderResultForAssistant(assistantTree), // Send warning only to assistant\n }\n } else {\n const userData = `${TRUNCATED_MESSAGE}${userTree}`\n const assistantData = `${TRUNCATED_MESSAGE}${assistantTree}`\n yield {\n type: 'result',\n data: userData, // Show user the truncated tree without the warning\n resultForAssistant: this.renderResultForAssistant(assistantData), // Send warning only to assistant\n }\n }\n },\n} satisfies Tool<typeof inputSchema, string>\n\nfunction listDirectory(\n initialPath: string,\n cwd: string,\n abortSignal: AbortSignal,\n): string[] {\n const results: string[] = []\n\n const queue = [initialPath]\n while (queue.length > 0) {\n if (results.length > MAX_FILES) {\n return results\n }\n\n if (abortSignal.aborted) {\n return results\n }\n\n const path = queue.shift()!\n if (skip(path)) {\n continue\n }\n\n if (path !== initialPath) {\n results.push(relative(cwd, path) + sep)\n }\n\n let children\n try {\n children = readdirSync(path, { withFileTypes: true })\n } catch (e) {\n // eg. EPERM, EACCES, ENOENT, etc.\n logError(e)\n continue\n }\n\n for (const child of children) {\n if (child.isDirectory()) {\n queue.push(join(path, child.name) + sep)\n } else {\n const fileName = join(path, child.name)\n if (skip(fileName)) {\n continue\n }\n results.push(relative(cwd, fileName))\n if (results.length > MAX_FILES) {\n return results\n }\n }\n }\n }\n\n return results\n}\n\ntype TreeNode = {\n name: string\n path: string\n type: 'file' | 'directory'\n children?: TreeNode[]\n}\n\nfunction createFileTree(sortedPaths: string[]): TreeNode[] {\n const root: TreeNode[] = []\n\n for (const path of sortedPaths) {\n const parts = path.split(sep)\n let currentLevel = root\n let currentPath = ''\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i]!\n if (!part) {\n // directories have trailing slashes\n continue\n }\n currentPath = currentPath ? `${currentPath}${sep}${part}` : part\n const isLastPart = i === parts.length - 1\n\n const existingNode = currentLevel.find(node => node.name === part)\n\n if (existingNode) {\n currentLevel = existingNode.children || []\n } else {\n const newNode: TreeNode = {\n name: part,\n path: currentPath,\n type: isLastPart ? 'file' : 'directory',\n }\n\n if (!isLastPart) {\n newNode.children = []\n }\n\n currentLevel.push(newNode)\n currentLevel = newNode.children || []\n }\n }\n }\n\n return root\n}\n\n/**\n * eg.\n * - src/\n * - index.ts\n * - utils/\n * - file.ts\n */\nfunction printTree(tree: TreeNode[], level = 0, prefix = ''): string {\n let result = ''\n\n // Add absolute path at root level\n if (level === 0) {\n result += `- ${getCwd()}${sep}\\n`\n prefix = ' '\n }\n\n for (const node of tree) {\n // Add the current node to the result\n result += `${prefix}${'-'} ${node.name}${node.type === 'directory' ? sep : ''}\\n`\n\n // Recursively print children if they exist\n if (node.children && node.children.length > 0) {\n result += printTree(node.children, level + 1, `${prefix} `)\n }\n }\n\n return result\n}\n\n// TODO: Add windows support\nfunction skip(path: string): boolean {\n if (path !== '.' && basename(path).startsWith('.')) {\n return true\n }\n if (path.includes(`__pycache__${sep}`)) {\n return true\n }\n return false\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const DESCRIPTION = "Lists files and directories in a given path. The path parameter must be an absolute path, not a relative path. You should generally prefer the Glob and Grep tools, if you know which directories to search.";
|
|
2
|
-
export {
|
|
3
|
-
DESCRIPTION
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/lsTool/prompt.ts"],
|
|
4
|
-
"sourcesContent": ["export const DESCRIPTION =\n 'Lists files and directories in a given path. The path parameter must be an absolute path, not a relative path. You should generally prefer the Glob and Grep tools, if you know which directories to search.'\n"],
|
|
5
|
-
"mappings": "AAAO,MAAM,cACX;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/tools.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { TaskTool } from "./tools/TaskTool/TaskTool.js";
|
|
2
|
-
import { ArchitectTool } from "./tools/ArchitectTool/ArchitectTool.js";
|
|
3
|
-
import { BashTool } from "./tools/BashTool/BashTool.js";
|
|
4
|
-
import { AskExpertModelTool } from "./tools/AskExpertModelTool/AskExpertModelTool.js";
|
|
5
|
-
import { FileEditTool } from "./tools/FileEditTool/FileEditTool.js";
|
|
6
|
-
import { FileReadTool } from "./tools/FileReadTool/FileReadTool.js";
|
|
7
|
-
import { FileWriteTool } from "./tools/FileWriteTool/FileWriteTool.js";
|
|
8
|
-
import { GlobTool } from "./tools/GlobTool/GlobTool.js";
|
|
9
|
-
import { GrepTool } from "./tools/GrepTool/GrepTool.js";
|
|
10
|
-
import { LSTool } from "./tools/lsTool/lsTool.js";
|
|
11
|
-
import { MemoryReadTool } from "./tools/MemoryReadTool/MemoryReadTool.js";
|
|
12
|
-
import { MemoryWriteTool } from "./tools/MemoryWriteTool/MemoryWriteTool.js";
|
|
13
|
-
import { MultiEditTool } from "./tools/MultiEditTool/MultiEditTool.js";
|
|
14
|
-
import { NotebookEditTool } from "./tools/NotebookEditTool/NotebookEditTool.js";
|
|
15
|
-
import { NotebookReadTool } from "./tools/NotebookReadTool/NotebookReadTool.js";
|
|
16
|
-
import { ThinkTool } from "./tools/ThinkTool/ThinkTool.js";
|
|
17
|
-
import { TodoWriteTool } from "./tools/TodoWriteTool/TodoWriteTool.js";
|
|
18
|
-
import { WebSearchTool } from "./tools/WebSearchTool/WebSearchTool.js";
|
|
19
|
-
import { URLFetcherTool } from "./tools/URLFetcherTool/URLFetcherTool.js";
|
|
20
|
-
import { getMCPTools } from "./services/mcpClient.js";
|
|
21
|
-
import { memoize } from "lodash-es";
|
|
22
|
-
const ANT_ONLY_TOOLS = [MemoryReadTool, MemoryWriteTool];
|
|
23
|
-
const getAllTools = () => {
|
|
24
|
-
return [
|
|
25
|
-
TaskTool,
|
|
26
|
-
AskExpertModelTool,
|
|
27
|
-
BashTool,
|
|
28
|
-
GlobTool,
|
|
29
|
-
GrepTool,
|
|
30
|
-
LSTool,
|
|
31
|
-
FileReadTool,
|
|
32
|
-
FileEditTool,
|
|
33
|
-
MultiEditTool,
|
|
34
|
-
FileWriteTool,
|
|
35
|
-
NotebookReadTool,
|
|
36
|
-
NotebookEditTool,
|
|
37
|
-
ThinkTool,
|
|
38
|
-
TodoWriteTool,
|
|
39
|
-
WebSearchTool,
|
|
40
|
-
URLFetcherTool,
|
|
41
|
-
...ANT_ONLY_TOOLS
|
|
42
|
-
];
|
|
43
|
-
};
|
|
44
|
-
const getTools = memoize(
|
|
45
|
-
async (enableArchitect) => {
|
|
46
|
-
const tools = [...getAllTools(), ...await getMCPTools()];
|
|
47
|
-
if (enableArchitect) {
|
|
48
|
-
tools.push(ArchitectTool);
|
|
49
|
-
}
|
|
50
|
-
const isEnabled = await Promise.all(tools.map((tool) => tool.isEnabled()));
|
|
51
|
-
return tools.filter((_, i) => isEnabled[i]);
|
|
52
|
-
}
|
|
53
|
-
);
|
|
54
|
-
const getReadOnlyTools = memoize(async () => {
|
|
55
|
-
const tools = getAllTools().filter((tool) => tool.isReadOnly());
|
|
56
|
-
const isEnabled = await Promise.all(tools.map((tool) => tool.isEnabled()));
|
|
57
|
-
return tools.filter((_, index) => isEnabled[index]);
|
|
58
|
-
});
|
|
59
|
-
export {
|
|
60
|
-
getAllTools,
|
|
61
|
-
getReadOnlyTools,
|
|
62
|
-
getTools
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=tools.js.map
|
package/dist/tools.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/tools.ts"],
|
|
4
|
-
"sourcesContent": ["import { Tool } from './Tool'\nimport { TaskTool } from './tools/TaskTool/TaskTool'\nimport { ArchitectTool } from './tools/ArchitectTool/ArchitectTool'\nimport { BashTool } from './tools/BashTool/BashTool'\nimport { AskExpertModelTool } from './tools/AskExpertModelTool/AskExpertModelTool'\nimport { FileEditTool } from './tools/FileEditTool/FileEditTool'\nimport { FileReadTool } from './tools/FileReadTool/FileReadTool'\nimport { FileWriteTool } from './tools/FileWriteTool/FileWriteTool'\nimport { GlobTool } from './tools/GlobTool/GlobTool'\nimport { GrepTool } from './tools/GrepTool/GrepTool'\nimport { LSTool } from './tools/lsTool/lsTool'\nimport { MemoryReadTool } from './tools/MemoryReadTool/MemoryReadTool'\nimport { MemoryWriteTool } from './tools/MemoryWriteTool/MemoryWriteTool'\nimport { MultiEditTool } from './tools/MultiEditTool/MultiEditTool'\nimport { NotebookEditTool } from './tools/NotebookEditTool/NotebookEditTool'\nimport { NotebookReadTool } from './tools/NotebookReadTool/NotebookReadTool'\nimport { ThinkTool } from './tools/ThinkTool/ThinkTool'\nimport { TodoWriteTool } from './tools/TodoWriteTool/TodoWriteTool'\nimport { WebSearchTool } from './tools/WebSearchTool/WebSearchTool'\nimport { URLFetcherTool } from './tools/URLFetcherTool/URLFetcherTool'\nimport { getMCPTools } from './services/mcpClient'\nimport { memoize } from 'lodash-es'\n\nconst ANT_ONLY_TOOLS = [MemoryReadTool as unknown as Tool, MemoryWriteTool as unknown as Tool]\n\n// Function to avoid circular dependencies that break bun\nexport const getAllTools = (): Tool[] => {\n return [\n TaskTool as unknown as Tool,\n AskExpertModelTool as unknown as Tool,\n BashTool as unknown as Tool,\n GlobTool as unknown as Tool,\n GrepTool as unknown as Tool,\n LSTool as unknown as Tool,\n FileReadTool as unknown as Tool,\n FileEditTool as unknown as Tool,\n MultiEditTool as unknown as Tool,\n FileWriteTool as unknown as Tool,\n NotebookReadTool as unknown as Tool,\n NotebookEditTool as unknown as Tool,\n ThinkTool as unknown as Tool,\n TodoWriteTool as unknown as Tool,\n WebSearchTool as unknown as Tool,\n URLFetcherTool as unknown as Tool,\n ...ANT_ONLY_TOOLS,\n ]\n}\n\nexport const getTools = memoize(\n async (enableArchitect?: boolean): Promise<Tool[]> => {\n const tools = [...getAllTools(), ...(await getMCPTools())]\n\n // Only include Architect tool if enabled via config or CLI flag\n if (enableArchitect) {\n tools.push(ArchitectTool as unknown as Tool)\n }\n\n const isEnabled = await Promise.all(tools.map(tool => tool.isEnabled()))\n return tools.filter((_, i) => isEnabled[i])\n },\n)\n\nexport const getReadOnlyTools = memoize(async (): Promise<Tool[]> => {\n const tools = getAllTools().filter(tool => tool.isReadOnly())\n const isEnabled = await Promise.all(tools.map(tool => tool.isEnabled()))\n return tools.filter((_, index) => isEnabled[index])\n})\n"],
|
|
5
|
-
"mappings": "AACA,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AAExB,MAAM,iBAAiB,CAAC,gBAAmC,eAAkC;AAGtF,MAAM,cAAc,MAAc;AACvC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF;AAEO,MAAM,WAAW;AAAA,EACtB,OAAO,oBAA+C;AACpD,UAAM,QAAQ,CAAC,GAAG,YAAY,GAAG,GAAI,MAAM,YAAY,CAAE;AAGzD,QAAI,iBAAiB;AACnB,YAAM,KAAK,aAAgC;AAAA,IAC7C;AAEA,UAAM,YAAY,MAAM,QAAQ,IAAI,MAAM,IAAI,UAAQ,KAAK,UAAU,CAAC,CAAC;AACvE,WAAO,MAAM,OAAO,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC;AAAA,EAC5C;AACF;AAEO,MAAM,mBAAmB,QAAQ,YAA6B;AACnE,QAAM,QAAQ,YAAY,EAAE,OAAO,UAAQ,KAAK,WAAW,CAAC;AAC5D,QAAM,YAAY,MAAM,QAAQ,IAAI,MAAM,IAAI,UAAQ,KAAK,UAAU,CAAC,CAAC;AACvE,SAAO,MAAM,OAAO,CAAC,GAAG,UAAU,UAAU,KAAK,CAAC;AACpD,CAAC;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
const MODE_CONFIGS = {
|
|
2
|
-
default: {
|
|
3
|
-
name: "default",
|
|
4
|
-
label: "DEFAULT",
|
|
5
|
-
icon: "\u{1F512}",
|
|
6
|
-
color: "blue",
|
|
7
|
-
description: "Standard permission checking",
|
|
8
|
-
allowedTools: ["*"],
|
|
9
|
-
restrictions: {
|
|
10
|
-
readOnly: false,
|
|
11
|
-
requireConfirmation: true,
|
|
12
|
-
bypassValidation: false
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
acceptEdits: {
|
|
16
|
-
name: "acceptEdits",
|
|
17
|
-
label: "ACCEPT EDITS",
|
|
18
|
-
icon: "\u2705",
|
|
19
|
-
color: "green",
|
|
20
|
-
description: "Auto-approve edit operations",
|
|
21
|
-
allowedTools: ["*"],
|
|
22
|
-
restrictions: {
|
|
23
|
-
readOnly: false,
|
|
24
|
-
requireConfirmation: false,
|
|
25
|
-
bypassValidation: false
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
plan: {
|
|
29
|
-
name: "plan",
|
|
30
|
-
label: "PLAN MODE",
|
|
31
|
-
icon: "\u{1F4DD}",
|
|
32
|
-
color: "yellow",
|
|
33
|
-
description: "Research and planning - read-only tools only",
|
|
34
|
-
allowedTools: [
|
|
35
|
-
"Read",
|
|
36
|
-
"Grep",
|
|
37
|
-
"Glob",
|
|
38
|
-
"LS",
|
|
39
|
-
"WebSearch",
|
|
40
|
-
"WebFetch",
|
|
41
|
-
"NotebookRead",
|
|
42
|
-
"exit_plan_mode"
|
|
43
|
-
],
|
|
44
|
-
restrictions: {
|
|
45
|
-
readOnly: true,
|
|
46
|
-
requireConfirmation: true,
|
|
47
|
-
bypassValidation: false
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
bypassPermissions: {
|
|
51
|
-
name: "bypassPermissions",
|
|
52
|
-
label: "BYPASS PERMISSIONS",
|
|
53
|
-
icon: "\u{1F513}",
|
|
54
|
-
color: "red",
|
|
55
|
-
description: "All permissions bypassed",
|
|
56
|
-
allowedTools: ["*"],
|
|
57
|
-
restrictions: {
|
|
58
|
-
readOnly: false,
|
|
59
|
-
requireConfirmation: false,
|
|
60
|
-
bypassValidation: true
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
function getNextPermissionMode(currentMode, isBypassAvailable = true) {
|
|
65
|
-
switch (currentMode) {
|
|
66
|
-
case "default":
|
|
67
|
-
return "acceptEdits";
|
|
68
|
-
case "acceptEdits":
|
|
69
|
-
return "plan";
|
|
70
|
-
case "plan":
|
|
71
|
-
return isBypassAvailable ? "bypassPermissions" : "default";
|
|
72
|
-
case "bypassPermissions":
|
|
73
|
-
return "default";
|
|
74
|
-
default:
|
|
75
|
-
return "default";
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
export {
|
|
79
|
-
MODE_CONFIGS,
|
|
80
|
-
getNextPermissionMode
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=PermissionMode.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/types/PermissionMode.ts"],
|
|
4
|
-
"sourcesContent": ["// Permission mode types based on original Claude Code implementation\nexport type PermissionMode =\n | 'default'\n | 'acceptEdits'\n | 'plan'\n | 'bypassPermissions'\n\nexport interface PermissionContext {\n mode: PermissionMode\n allowedTools: string[]\n allowedPaths: string[]\n restrictions: {\n readOnly: boolean\n requireConfirmation: boolean\n bypassValidation: boolean\n }\n metadata: {\n activatedAt?: string\n previousMode?: PermissionMode\n transitionCount: number\n }\n}\n\nexport interface ModeConfig {\n name: PermissionMode\n label: string\n icon: string\n color: string\n description: string\n allowedTools: string[]\n restrictions: {\n readOnly: boolean\n requireConfirmation: boolean\n bypassValidation: boolean\n }\n}\n\n// Mode configuration based on original Claude Code\nexport const MODE_CONFIGS: Record<PermissionMode, ModeConfig> = {\n default: {\n name: 'default',\n label: 'DEFAULT',\n icon: '\uD83D\uDD12',\n color: 'blue',\n description: 'Standard permission checking',\n allowedTools: ['*'],\n restrictions: {\n readOnly: false,\n requireConfirmation: true,\n bypassValidation: false,\n },\n },\n acceptEdits: {\n name: 'acceptEdits',\n label: 'ACCEPT EDITS',\n icon: '\u2705',\n color: 'green',\n description: 'Auto-approve edit operations',\n allowedTools: ['*'],\n restrictions: {\n readOnly: false,\n requireConfirmation: false,\n bypassValidation: false,\n },\n },\n plan: {\n name: 'plan',\n label: 'PLAN MODE',\n icon: '\uD83D\uDCDD',\n color: 'yellow',\n description: 'Research and planning - read-only tools only',\n allowedTools: [\n 'Read',\n 'Grep',\n 'Glob',\n 'LS',\n 'WebSearch',\n 'WebFetch',\n 'NotebookRead',\n 'exit_plan_mode',\n ],\n restrictions: {\n readOnly: true,\n requireConfirmation: true,\n bypassValidation: false,\n },\n },\n bypassPermissions: {\n name: 'bypassPermissions',\n label: 'BYPASS PERMISSIONS',\n icon: '\uD83D\uDD13',\n color: 'red',\n description: 'All permissions bypassed',\n allowedTools: ['*'],\n restrictions: {\n readOnly: false,\n requireConfirmation: false,\n bypassValidation: true,\n },\n },\n}\n\n// Mode cycling function (based on original yg2 function)\nexport function getNextPermissionMode(\n currentMode: PermissionMode,\n isBypassAvailable: boolean = true,\n): PermissionMode {\n switch (currentMode) {\n case 'default':\n return 'acceptEdits'\n case 'acceptEdits':\n return 'plan'\n case 'plan':\n return isBypassAvailable ? 'bypassPermissions' : 'default'\n case 'bypassPermissions':\n return 'default'\n default:\n return 'default'\n }\n}\n"],
|
|
5
|
-
"mappings": "AAsCO,MAAM,eAAmD;AAAA,EAC9D,SAAS;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,cAAc,CAAC,GAAG;AAAA,IAClB,cAAc;AAAA,MACZ,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,cAAc,CAAC,GAAG;AAAA,IAClB,cAAc;AAAA,MACZ,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,cAAc;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IACpB;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,OAAO;AAAA,IACP,aAAa;AAAA,IACb,cAAc,CAAC,GAAG;AAAA,IAClB,cAAc;AAAA,MACZ,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,kBAAkB;AAAA,IACpB;AAAA,EACF;AACF;AAGO,SAAS,sBACd,aACA,oBAA6B,MACb;AAChB,UAAQ,aAAa;AAAA,IACnB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,oBAAoB,sBAAsB;AAAA,IACnD,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|