@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,29 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { logError } from "./log.js";
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
4
3
|
import {
|
|
5
4
|
getGlobalConfig,
|
|
6
5
|
saveGlobalConfig
|
|
7
|
-
} from "./
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
} from "./chunk-AIMIPK4B.js";
|
|
7
|
+
import {
|
|
8
|
+
debug
|
|
9
|
+
} from "./chunk-QYFKRZQC.js";
|
|
10
|
+
import {
|
|
11
|
+
logError
|
|
12
|
+
} from "./chunk-MN77D2F7.js";
|
|
13
|
+
|
|
14
|
+
// src/utils/model/index.ts
|
|
15
|
+
import { memoize } from "lodash-es";
|
|
16
|
+
var USE_BEDROCK = !!(process.env.KODE_USE_BEDROCK ?? process.env.CLAUDE_CODE_USE_BEDROCK);
|
|
17
|
+
var USE_VERTEX = !!(process.env.KODE_USE_VERTEX ?? process.env.CLAUDE_CODE_USE_VERTEX);
|
|
18
|
+
var DEFAULT_MODEL_CONFIG = {
|
|
11
19
|
bedrock: "us.anthropic.claude-3-7-sonnet-20250219-v1:0",
|
|
12
20
|
vertex: "claude-3-7-sonnet@20250219",
|
|
13
21
|
firstParty: "claude-sonnet-4-20250514"
|
|
14
22
|
};
|
|
15
23
|
async function getModelConfig() {
|
|
16
|
-
|
|
17
|
-
return await getDynamicConfig(
|
|
18
|
-
"tengu-capable-model-config",
|
|
19
|
-
DEFAULT_MODEL_CONFIG
|
|
20
|
-
);
|
|
21
|
-
} catch (error) {
|
|
22
|
-
logError(error);
|
|
23
|
-
return DEFAULT_MODEL_CONFIG;
|
|
24
|
-
}
|
|
24
|
+
return DEFAULT_MODEL_CONFIG;
|
|
25
25
|
}
|
|
26
|
-
|
|
26
|
+
var getSlowAndCapableModel = memoize(async () => {
|
|
27
27
|
const config = await getGlobalConfig();
|
|
28
28
|
const modelManager = new ModelManager(config);
|
|
29
29
|
const model = modelManager.getMainAgentModel();
|
|
@@ -47,17 +47,13 @@ function getVertexRegionForModel(model) {
|
|
|
47
47
|
return process.env.VERTEX_REGION_CLAUDE_3_7_SONNET;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
|
|
50
|
+
var ModelManager = class {
|
|
51
51
|
config;
|
|
52
|
-
// Using any to handle legacy properties
|
|
53
52
|
modelProfiles;
|
|
54
53
|
constructor(config) {
|
|
55
54
|
this.config = config;
|
|
56
55
|
this.modelProfiles = config.modelProfiles || [];
|
|
57
56
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Get the current terminal model (for interactive CLI sessions)
|
|
60
|
-
*/
|
|
61
57
|
getCurrentModel() {
|
|
62
58
|
const mainModelName = this.config.modelPointers?.main;
|
|
63
59
|
if (mainModelName) {
|
|
@@ -68,9 +64,6 @@ class ModelManager {
|
|
|
68
64
|
}
|
|
69
65
|
return this.getMainAgentModel();
|
|
70
66
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Get the main agent default model (for non-terminal mode and MCP calls)
|
|
73
|
-
*/
|
|
74
67
|
getMainAgentModel() {
|
|
75
68
|
const mainModelName = this.config.modelPointers?.main;
|
|
76
69
|
if (mainModelName) {
|
|
@@ -85,9 +78,6 @@ class ModelManager {
|
|
|
85
78
|
}
|
|
86
79
|
return null;
|
|
87
80
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Get the task tool default model (for Task tool sub-agents)
|
|
90
|
-
*/
|
|
91
81
|
getTaskToolModel() {
|
|
92
82
|
const taskModelName = this.config.modelPointers?.task;
|
|
93
83
|
if (taskModelName) {
|
|
@@ -98,13 +88,6 @@ class ModelManager {
|
|
|
98
88
|
}
|
|
99
89
|
return this.getMainAgentModel();
|
|
100
90
|
}
|
|
101
|
-
/**
|
|
102
|
-
* Switch to the next available model with simple context overflow handling
|
|
103
|
-
* If target model can't handle current context, shows warning and reverts after delay
|
|
104
|
-
*
|
|
105
|
-
* @param currentContextTokens - Current conversation token count for validation
|
|
106
|
-
* @returns Object with model name and context status information
|
|
107
|
-
*/
|
|
108
91
|
switchToNextModelWithContextCheck(currentContextTokens = 0) {
|
|
109
92
|
const allProfiles = this.getAllConfiguredModels();
|
|
110
93
|
if (allProfiles.length === 0) {
|
|
@@ -113,127 +96,151 @@ class ModelManager {
|
|
|
113
96
|
modelName: null,
|
|
114
97
|
previousModelName: null,
|
|
115
98
|
contextOverflow: false,
|
|
116
|
-
usagePercentage: 0
|
|
99
|
+
usagePercentage: 0,
|
|
100
|
+
currentContextTokens
|
|
117
101
|
};
|
|
118
102
|
}
|
|
119
|
-
allProfiles.sort((a, b) =>
|
|
120
|
-
return a.createdAt - b.createdAt;
|
|
121
|
-
});
|
|
103
|
+
allProfiles.sort((a, b) => a.createdAt - b.createdAt);
|
|
122
104
|
const currentMainModelName = this.config.modelPointers?.main;
|
|
123
105
|
const currentModel = currentMainModelName ? this.findModelProfile(currentMainModelName) : null;
|
|
124
106
|
const previousModelName = currentModel?.name || null;
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
if (!
|
|
128
|
-
|
|
107
|
+
const budgetForModel = (model) => {
|
|
108
|
+
const contextLength = Number(model.contextLength);
|
|
109
|
+
if (!Number.isFinite(contextLength) || contextLength <= 0) {
|
|
110
|
+
return { budgetTokens: null, usagePercentage: 0, compatible: true };
|
|
129
111
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const analysis2 = this.analyzeContextCompatibility(
|
|
133
|
-
firstModel,
|
|
134
|
-
currentContextTokens
|
|
135
|
-
);
|
|
112
|
+
const budgetTokens = Math.floor(contextLength * 0.9);
|
|
113
|
+
const usagePercentage = budgetTokens > 0 ? currentContextTokens / budgetTokens * 100 : 0;
|
|
136
114
|
return {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
contextOverflow: !analysis2.compatible,
|
|
141
|
-
usagePercentage: analysis2.usagePercentage
|
|
115
|
+
budgetTokens,
|
|
116
|
+
usagePercentage,
|
|
117
|
+
compatible: budgetTokens > 0 ? currentContextTokens <= budgetTokens : true
|
|
142
118
|
};
|
|
143
|
-
}
|
|
144
|
-
const currentIndex = allProfiles.findIndex(
|
|
145
|
-
|
|
146
|
-
)
|
|
147
|
-
if (currentIndex === -1) {
|
|
148
|
-
const firstModel = allProfiles[0];
|
|
149
|
-
if (!firstModel.isActive) {
|
|
150
|
-
firstModel.isActive = true;
|
|
151
|
-
}
|
|
152
|
-
this.setPointer("main", firstModel.modelName);
|
|
153
|
-
this.updateLastUsed(firstModel.modelName);
|
|
154
|
-
const analysis2 = this.analyzeContextCompatibility(
|
|
155
|
-
firstModel,
|
|
156
|
-
currentContextTokens
|
|
157
|
-
);
|
|
119
|
+
};
|
|
120
|
+
const currentIndex = currentMainModelName ? allProfiles.findIndex((p) => p.modelName === currentMainModelName) : -1;
|
|
121
|
+
const startIndex = currentIndex >= 0 ? currentIndex : -1;
|
|
122
|
+
if (allProfiles.length === 1) {
|
|
158
123
|
return {
|
|
159
|
-
success:
|
|
160
|
-
modelName:
|
|
124
|
+
success: false,
|
|
125
|
+
modelName: null,
|
|
161
126
|
previousModelName,
|
|
162
|
-
contextOverflow:
|
|
163
|
-
usagePercentage:
|
|
127
|
+
contextOverflow: false,
|
|
128
|
+
usagePercentage: 0,
|
|
129
|
+
currentContextTokens
|
|
164
130
|
};
|
|
165
131
|
}
|
|
166
|
-
|
|
132
|
+
const maxOffsets = startIndex === -1 ? allProfiles.length : allProfiles.length - 1;
|
|
133
|
+
const skippedModels = [];
|
|
134
|
+
let selected = null;
|
|
135
|
+
let selectedUsagePercentage = 0;
|
|
136
|
+
for (let offset = 1; offset <= maxOffsets; offset++) {
|
|
137
|
+
const candidateIndex = (startIndex + offset + allProfiles.length) % allProfiles.length;
|
|
138
|
+
const candidate = allProfiles[candidateIndex];
|
|
139
|
+
if (!candidate) continue;
|
|
140
|
+
const { budgetTokens, usagePercentage, compatible } = budgetForModel(candidate);
|
|
141
|
+
if (compatible) {
|
|
142
|
+
selected = candidate;
|
|
143
|
+
selectedUsagePercentage = usagePercentage;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
skippedModels.push({
|
|
147
|
+
name: candidate.name,
|
|
148
|
+
provider: candidate.provider,
|
|
149
|
+
contextLength: candidate.contextLength,
|
|
150
|
+
budgetTokens,
|
|
151
|
+
usagePercentage
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
if (!selected) {
|
|
155
|
+
const firstSkipped = skippedModels[0];
|
|
167
156
|
return {
|
|
168
157
|
success: false,
|
|
169
158
|
modelName: null,
|
|
170
159
|
previousModelName,
|
|
171
|
-
contextOverflow:
|
|
172
|
-
usagePercentage: 0
|
|
160
|
+
contextOverflow: true,
|
|
161
|
+
usagePercentage: firstSkipped?.usagePercentage ?? 0,
|
|
162
|
+
currentContextTokens,
|
|
163
|
+
skippedModels
|
|
173
164
|
};
|
|
174
165
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const wasInactive = !nextModel.isActive;
|
|
178
|
-
if (!nextModel.isActive) {
|
|
179
|
-
nextModel.isActive = true;
|
|
180
|
-
}
|
|
181
|
-
const analysis = this.analyzeContextCompatibility(
|
|
182
|
-
nextModel,
|
|
183
|
-
currentContextTokens
|
|
184
|
-
);
|
|
185
|
-
this.setPointer("main", nextModel.modelName);
|
|
186
|
-
this.updateLastUsed(nextModel.modelName);
|
|
187
|
-
if (wasInactive) {
|
|
188
|
-
this.saveConfig();
|
|
166
|
+
if (!selected.isActive) {
|
|
167
|
+
selected.isActive = true;
|
|
189
168
|
}
|
|
169
|
+
this.setPointer("main", selected.modelName);
|
|
170
|
+
this.updateLastUsed(selected.modelName);
|
|
190
171
|
return {
|
|
191
172
|
success: true,
|
|
192
|
-
modelName:
|
|
173
|
+
modelName: selected.name,
|
|
193
174
|
previousModelName,
|
|
194
|
-
contextOverflow:
|
|
195
|
-
usagePercentage:
|
|
175
|
+
contextOverflow: false,
|
|
176
|
+
usagePercentage: selectedUsagePercentage,
|
|
177
|
+
currentContextTokens,
|
|
178
|
+
skippedModels
|
|
196
179
|
};
|
|
197
180
|
}
|
|
198
|
-
/**
|
|
199
|
-
* Simple model switching for UI components (compatible interface)
|
|
200
|
-
* @param currentContextTokens - Current conversation token count for validation
|
|
201
|
-
* @returns Compatible interface for PromptInput component
|
|
202
|
-
*/
|
|
203
181
|
switchToNextModel(currentContextTokens = 0) {
|
|
204
182
|
const result = this.switchToNextModelWithContextCheck(currentContextTokens);
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
183
|
+
const formatTokens = (tokens) => {
|
|
184
|
+
if (!Number.isFinite(tokens)) return "unknown";
|
|
185
|
+
if (tokens >= 1e3) return `${Math.round(tokens / 1e3)}k`;
|
|
186
|
+
return String(Math.round(tokens));
|
|
187
|
+
};
|
|
188
|
+
const allModels = this.getAllConfiguredModels();
|
|
189
|
+
if (allModels.length === 0) {
|
|
190
|
+
return {
|
|
191
|
+
success: false,
|
|
192
|
+
modelName: null,
|
|
193
|
+
blocked: false,
|
|
194
|
+
message: "\u274C No models configured. Use /model to add models."
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
if (allModels.length === 1) {
|
|
198
|
+
return {
|
|
199
|
+
success: false,
|
|
200
|
+
modelName: null,
|
|
201
|
+
blocked: false,
|
|
202
|
+
message: `\u26A0\uFE0F Only one model configured (${allModels[0].modelName}). Use /model to add more models for switching.`
|
|
203
|
+
};
|
|
222
204
|
}
|
|
223
205
|
const currentModel = this.findModelProfile(this.config.modelPointers?.main);
|
|
224
|
-
const
|
|
225
|
-
|
|
226
|
-
|
|
206
|
+
const modelsSorted = [...allModels].sort(
|
|
207
|
+
(a, b) => a.createdAt - b.createdAt
|
|
208
|
+
);
|
|
209
|
+
const currentIndex = modelsSorted.findIndex(
|
|
210
|
+
(m) => m.modelName === currentModel?.modelName
|
|
211
|
+
);
|
|
212
|
+
const totalModels = modelsSorted.length;
|
|
213
|
+
if (result.success && result.modelName) {
|
|
214
|
+
const skippedCount = result.skippedModels?.length ?? 0;
|
|
215
|
+
const skippedSuffix = skippedCount > 0 ? ` \xB7 skipped ${skippedCount} incompatible` : "";
|
|
216
|
+
const contextSuffix = currentModel?.contextLength && result.currentContextTokens ? ` \xB7 context ~${formatTokens(result.currentContextTokens)}/${formatTokens(currentModel.contextLength)}` : "";
|
|
217
|
+
return {
|
|
218
|
+
success: true,
|
|
219
|
+
modelName: result.modelName,
|
|
220
|
+
blocked: false,
|
|
221
|
+
message: `\u2705 Switched to ${result.modelName} (${currentIndex + 1}/${totalModels})${currentModel?.provider ? ` [${currentModel.provider}]` : ""}${skippedSuffix}${contextSuffix}`
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
if (result.contextOverflow) {
|
|
225
|
+
const attempted = result.skippedModels?.[0];
|
|
226
|
+
const attemptedContext = attempted?.contextLength;
|
|
227
|
+
const attemptedBudget = attempted?.budgetTokens;
|
|
228
|
+
const currentLabel = currentModel?.name || currentModel?.modelName || "current model";
|
|
229
|
+
const attemptedText = attempted ? `Can't switch to ${attempted.name}: current ~${formatTokens(result.currentContextTokens)} tokens exceeds safe budget (~${formatTokens(attemptedBudget ?? 0)} tokens, 90% of ${formatTokens(attemptedContext ?? 0)}).` : `Can't switch models due to context size (~${formatTokens(result.currentContextTokens)} tokens).`;
|
|
230
|
+
return {
|
|
231
|
+
success: false,
|
|
232
|
+
modelName: null,
|
|
233
|
+
blocked: true,
|
|
234
|
+
message: `\u26A0\uFE0F ${attemptedText} Keeping ${currentLabel}.`
|
|
235
|
+
};
|
|
236
|
+
}
|
|
227
237
|
return {
|
|
228
|
-
success:
|
|
229
|
-
modelName:
|
|
230
|
-
blocked:
|
|
231
|
-
message:
|
|
238
|
+
success: false,
|
|
239
|
+
modelName: null,
|
|
240
|
+
blocked: false,
|
|
241
|
+
message: "\u274C Failed to switch models"
|
|
232
242
|
};
|
|
233
243
|
}
|
|
234
|
-
/**
|
|
235
|
-
* Revert to previous model (used when context overflow requires rollback)
|
|
236
|
-
*/
|
|
237
244
|
revertToPreviousModel(previousModelName) {
|
|
238
245
|
const previousModel = this.modelProfiles.find(
|
|
239
246
|
(p) => p.name === previousModelName && p.isActive
|
|
@@ -245,9 +252,6 @@ class ModelManager {
|
|
|
245
252
|
this.updateLastUsed(previousModel.modelName);
|
|
246
253
|
return true;
|
|
247
254
|
}
|
|
248
|
-
/**
|
|
249
|
-
* Enhanced context validation with different severity levels
|
|
250
|
-
*/
|
|
251
255
|
analyzeContextCompatibility(model, contextTokens) {
|
|
252
256
|
const usableContext = Math.floor(model.contextLength * 0.8);
|
|
253
257
|
const usagePercentage = contextTokens / usableContext * 100;
|
|
@@ -274,9 +278,6 @@ class ModelManager {
|
|
|
274
278
|
};
|
|
275
279
|
}
|
|
276
280
|
}
|
|
277
|
-
/**
|
|
278
|
-
* Switch to next model with enhanced context analysis
|
|
279
|
-
*/
|
|
280
281
|
switchToNextModelWithAnalysis(currentContextTokens = 0) {
|
|
281
282
|
const result = this.switchToNextModel(currentContextTokens);
|
|
282
283
|
if (!result.success || !result.modelName) {
|
|
@@ -307,22 +308,13 @@ class ModelManager {
|
|
|
307
308
|
estimatedTokensAfterSwitch: currentContextTokens
|
|
308
309
|
};
|
|
309
310
|
}
|
|
310
|
-
/**
|
|
311
|
-
* Check if a model can handle the given context size (legacy method)
|
|
312
|
-
*/
|
|
313
311
|
canModelHandleContext(model, contextTokens) {
|
|
314
312
|
const analysis = this.analyzeContextCompatibility(model, contextTokens);
|
|
315
313
|
return analysis.compatible;
|
|
316
314
|
}
|
|
317
|
-
/**
|
|
318
|
-
* Find the first model that can handle the given context size
|
|
319
|
-
*/
|
|
320
315
|
findModelWithSufficientContext(models, contextTokens) {
|
|
321
316
|
return models.find((model) => this.canModelHandleContext(model, contextTokens)) || null;
|
|
322
317
|
}
|
|
323
|
-
/**
|
|
324
|
-
* Unified model getter for different contexts
|
|
325
|
-
*/
|
|
326
318
|
getModelForContext(contextType) {
|
|
327
319
|
switch (contextType) {
|
|
328
320
|
case "terminal":
|
|
@@ -335,22 +327,12 @@ class ModelManager {
|
|
|
335
327
|
return this.getMainAgentModel();
|
|
336
328
|
}
|
|
337
329
|
}
|
|
338
|
-
/**
|
|
339
|
-
* Get all active model profiles
|
|
340
|
-
*/
|
|
341
330
|
getActiveModelProfiles() {
|
|
342
331
|
return this.modelProfiles.filter((p) => p.isActive);
|
|
343
332
|
}
|
|
344
|
-
/**
|
|
345
|
-
* Check if any models are configured
|
|
346
|
-
*/
|
|
347
333
|
hasConfiguredModels() {
|
|
348
334
|
return this.getActiveModelProfiles().length > 0;
|
|
349
335
|
}
|
|
350
|
-
// New model pointer system methods
|
|
351
|
-
/**
|
|
352
|
-
* Get model by pointer type (main, task, reasoning, quick)
|
|
353
|
-
*/
|
|
354
336
|
getModel(pointer) {
|
|
355
337
|
const pointerId = this.config.modelPointers?.[pointer];
|
|
356
338
|
if (!pointerId) {
|
|
@@ -359,28 +341,16 @@ class ModelManager {
|
|
|
359
341
|
const profile = this.findModelProfile(pointerId);
|
|
360
342
|
return profile && profile.isActive ? profile : this.getDefaultModel();
|
|
361
343
|
}
|
|
362
|
-
/**
|
|
363
|
-
* Get model name by pointer type
|
|
364
|
-
*/
|
|
365
344
|
getModelName(pointer) {
|
|
366
345
|
const profile = this.getModel(pointer);
|
|
367
346
|
return profile ? profile.modelName : null;
|
|
368
347
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
*/
|
|
372
|
-
getReasoningModel() {
|
|
373
|
-
return this.getModelName("reasoning") || this.getModelName("main");
|
|
348
|
+
getCompactModel() {
|
|
349
|
+
return this.getModelName("compact") || this.getModelName("main");
|
|
374
350
|
}
|
|
375
|
-
/**
|
|
376
|
-
* Get quick model (with fallback)
|
|
377
|
-
*/
|
|
378
351
|
getQuickModel() {
|
|
379
352
|
return this.getModelName("quick") || this.getModelName("task") || this.getModelName("main");
|
|
380
353
|
}
|
|
381
|
-
/**
|
|
382
|
-
* Add a new model profile with duplicate validation
|
|
383
|
-
*/
|
|
384
354
|
async addModel(config) {
|
|
385
355
|
const existingByModelName = this.modelProfiles.find(
|
|
386
356
|
(p) => p.modelName === config.modelName
|
|
@@ -404,17 +374,25 @@ class ModelManager {
|
|
|
404
374
|
this.config.modelPointers = {
|
|
405
375
|
main: config.modelName,
|
|
406
376
|
task: config.modelName,
|
|
407
|
-
|
|
377
|
+
compact: config.modelName,
|
|
408
378
|
quick: config.modelName
|
|
409
379
|
};
|
|
410
380
|
this.config.defaultModelName = config.modelName;
|
|
381
|
+
} else {
|
|
382
|
+
if (!this.config.modelPointers) {
|
|
383
|
+
this.config.modelPointers = {
|
|
384
|
+
main: config.modelName,
|
|
385
|
+
task: "",
|
|
386
|
+
compact: "",
|
|
387
|
+
quick: ""
|
|
388
|
+
};
|
|
389
|
+
} else {
|
|
390
|
+
this.config.modelPointers.main = config.modelName;
|
|
391
|
+
}
|
|
411
392
|
}
|
|
412
393
|
this.saveConfig();
|
|
413
394
|
return config.modelName;
|
|
414
395
|
}
|
|
415
|
-
/**
|
|
416
|
-
* Set model pointer assignment
|
|
417
|
-
*/
|
|
418
396
|
setPointer(pointer, modelName) {
|
|
419
397
|
if (!this.findModelProfile(modelName)) {
|
|
420
398
|
throw new Error(`Model '${modelName}' not found`);
|
|
@@ -423,40 +401,25 @@ class ModelManager {
|
|
|
423
401
|
this.config.modelPointers = {
|
|
424
402
|
main: "",
|
|
425
403
|
task: "",
|
|
426
|
-
|
|
404
|
+
compact: "",
|
|
427
405
|
quick: ""
|
|
428
406
|
};
|
|
429
407
|
}
|
|
430
408
|
this.config.modelPointers[pointer] = modelName;
|
|
431
409
|
this.saveConfig();
|
|
432
410
|
}
|
|
433
|
-
/**
|
|
434
|
-
* Get all active models for pointer assignment
|
|
435
|
-
*/
|
|
436
411
|
getAvailableModels() {
|
|
437
412
|
return this.modelProfiles.filter((p) => p.isActive);
|
|
438
413
|
}
|
|
439
|
-
/**
|
|
440
|
-
* Get all configured models (both active and inactive) for switching
|
|
441
|
-
*/
|
|
442
414
|
getAllConfiguredModels() {
|
|
443
415
|
return this.modelProfiles;
|
|
444
416
|
}
|
|
445
|
-
/**
|
|
446
|
-
* Get all available model names (modelName field) - active only
|
|
447
|
-
*/
|
|
448
417
|
getAllAvailableModelNames() {
|
|
449
418
|
return this.getAvailableModels().map((p) => p.modelName);
|
|
450
419
|
}
|
|
451
|
-
/**
|
|
452
|
-
* Get all configured model names (both active and inactive)
|
|
453
|
-
*/
|
|
454
420
|
getAllConfiguredModelNames() {
|
|
455
421
|
return this.getAllConfiguredModels().map((p) => p.modelName);
|
|
456
422
|
}
|
|
457
|
-
/**
|
|
458
|
-
* Debug method to get detailed model switching information
|
|
459
|
-
*/
|
|
460
423
|
getModelSwitchingDebugInfo() {
|
|
461
424
|
const availableModels = this.getAvailableModels();
|
|
462
425
|
const currentMainModelName = this.config.modelPointers?.main;
|
|
@@ -475,9 +438,6 @@ class ModelManager {
|
|
|
475
438
|
modelPointers: this.config.modelPointers || {}
|
|
476
439
|
};
|
|
477
440
|
}
|
|
478
|
-
/**
|
|
479
|
-
* Remove a model profile
|
|
480
|
-
*/
|
|
481
441
|
removeModel(modelName) {
|
|
482
442
|
this.modelProfiles = this.modelProfiles.filter(
|
|
483
443
|
(p) => p.modelName !== modelName
|
|
@@ -491,9 +451,6 @@ class ModelManager {
|
|
|
491
451
|
}
|
|
492
452
|
this.saveConfig();
|
|
493
453
|
}
|
|
494
|
-
/**
|
|
495
|
-
* Get default model profile
|
|
496
|
-
*/
|
|
497
454
|
getDefaultModel() {
|
|
498
455
|
if (this.config.defaultModelId) {
|
|
499
456
|
const profile = this.findModelProfile(this.config.defaultModelId);
|
|
@@ -503,9 +460,6 @@ class ModelManager {
|
|
|
503
460
|
}
|
|
504
461
|
return this.modelProfiles.find((p) => p.isActive) || null;
|
|
505
462
|
}
|
|
506
|
-
/**
|
|
507
|
-
* Save configuration changes
|
|
508
|
-
*/
|
|
509
463
|
saveConfig() {
|
|
510
464
|
const updatedConfig = {
|
|
511
465
|
...this.config,
|
|
@@ -513,22 +467,14 @@ class ModelManager {
|
|
|
513
467
|
};
|
|
514
468
|
saveGlobalConfig(updatedConfig);
|
|
515
469
|
}
|
|
516
|
-
/**
|
|
517
|
-
* Get a fallback model when no specific model is configured
|
|
518
|
-
*/
|
|
519
470
|
async getFallbackModel() {
|
|
520
471
|
const modelConfig = await getModelConfig();
|
|
521
472
|
if (USE_BEDROCK) return modelConfig.bedrock;
|
|
522
473
|
if (USE_VERTEX) return modelConfig.vertex;
|
|
523
474
|
return modelConfig.firstParty;
|
|
524
475
|
}
|
|
525
|
-
/**
|
|
526
|
-
* 统一的模型解析方法:支持指针、model ID 和真实模型名称
|
|
527
|
-
* @param modelParam - 可以是模型指针 ('main', 'task', etc.)、内部model ID 或真实模型名称 ('gpt-4o', 'claude-3-5-sonnet')
|
|
528
|
-
* @returns ModelProfile 或 null
|
|
529
|
-
*/
|
|
530
476
|
resolveModel(modelParam) {
|
|
531
|
-
if (["main", "task", "
|
|
477
|
+
if (["main", "task", "compact", "quick"].includes(modelParam)) {
|
|
532
478
|
const pointerId = this.config.modelPointers?.[modelParam];
|
|
533
479
|
if (pointerId) {
|
|
534
480
|
let profile2 = this.findModelProfile(pointerId);
|
|
@@ -553,15 +499,16 @@ class ModelManager {
|
|
|
553
499
|
if (profile && profile.isActive) {
|
|
554
500
|
return profile;
|
|
555
501
|
}
|
|
502
|
+
if (typeof modelParam === "string") {
|
|
503
|
+
const qualified = this.resolveProviderQualifiedModel(modelParam);
|
|
504
|
+
if (qualified && qualified.isActive) {
|
|
505
|
+
return qualified;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
556
508
|
return this.getDefaultModel();
|
|
557
509
|
}
|
|
558
|
-
/**
|
|
559
|
-
* 解析模型参数并返回完整信息
|
|
560
|
-
*/
|
|
561
510
|
resolveModelWithInfo(modelParam) {
|
|
562
|
-
const isPointer = ["main", "task", "
|
|
563
|
-
modelParam
|
|
564
|
-
);
|
|
511
|
+
const isPointer = ["main", "task", "compact", "quick"].includes(modelParam);
|
|
565
512
|
if (isPointer) {
|
|
566
513
|
const pointerId = this.config.modelPointers?.[modelParam];
|
|
567
514
|
if (!pointerId) {
|
|
@@ -601,11 +548,14 @@ class ModelManager {
|
|
|
601
548
|
if (!profile) {
|
|
602
549
|
profile = this.findModelProfileByName(modelParam);
|
|
603
550
|
}
|
|
551
|
+
if (!profile && typeof modelParam === "string") {
|
|
552
|
+
profile = this.resolveProviderQualifiedModel(modelParam);
|
|
553
|
+
}
|
|
604
554
|
if (!profile) {
|
|
605
555
|
return {
|
|
606
556
|
success: false,
|
|
607
557
|
profile: null,
|
|
608
|
-
error: `Model '${modelParam}' not found. Use /model to add models.`
|
|
558
|
+
error: `Model '${modelParam}' not found. Use /model to add models, or run 'kode models list' to see configured profiles.`
|
|
609
559
|
};
|
|
610
560
|
}
|
|
611
561
|
if (!profile.isActive) {
|
|
@@ -621,7 +571,23 @@ class ModelManager {
|
|
|
621
571
|
};
|
|
622
572
|
}
|
|
623
573
|
}
|
|
624
|
-
|
|
574
|
+
resolveProviderQualifiedModel(input) {
|
|
575
|
+
const trimmed = input.trim();
|
|
576
|
+
const colonIndex = trimmed.indexOf(":");
|
|
577
|
+
if (colonIndex <= 0 || colonIndex >= trimmed.length - 1) return null;
|
|
578
|
+
const provider = trimmed.slice(0, colonIndex).trim().toLowerCase();
|
|
579
|
+
const modelOrName = trimmed.slice(colonIndex + 1).trim();
|
|
580
|
+
if (!provider || !modelOrName) return null;
|
|
581
|
+
const providerProfiles = this.modelProfiles.filter(
|
|
582
|
+
(p) => String(p.provider).trim().toLowerCase() === provider
|
|
583
|
+
);
|
|
584
|
+
if (providerProfiles.length === 0) return null;
|
|
585
|
+
const byModelName = providerProfiles.find((p) => p.modelName === modelOrName);
|
|
586
|
+
if (byModelName) return byModelName;
|
|
587
|
+
const byName = providerProfiles.find((p) => p.name === modelOrName);
|
|
588
|
+
if (byName) return byName;
|
|
589
|
+
return null;
|
|
590
|
+
}
|
|
625
591
|
findModelProfile(modelName) {
|
|
626
592
|
return this.modelProfiles.find((p) => p.modelName === modelName) || null;
|
|
627
593
|
}
|
|
@@ -637,19 +603,17 @@ class ModelManager {
|
|
|
637
603
|
profile.lastUsed = Date.now();
|
|
638
604
|
}
|
|
639
605
|
}
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
|
|
606
|
+
};
|
|
607
|
+
var globalModelManager = null;
|
|
608
|
+
var getModelManager = () => {
|
|
643
609
|
try {
|
|
644
610
|
if (!globalModelManager) {
|
|
645
611
|
const config = getGlobalConfig();
|
|
646
612
|
if (!config) {
|
|
647
|
-
|
|
648
|
-
"No global config available, creating ModelManager with empty config"
|
|
649
|
-
);
|
|
613
|
+
debug.warn("MODEL_MANAGER_GLOBAL_CONFIG_MISSING", {});
|
|
650
614
|
globalModelManager = new ModelManager({
|
|
651
615
|
modelProfiles: [],
|
|
652
|
-
modelPointers: { main: "", task: "",
|
|
616
|
+
modelPointers: { main: "", task: "", compact: "", quick: "" }
|
|
653
617
|
});
|
|
654
618
|
} else {
|
|
655
619
|
globalModelManager = new ModelManager(config);
|
|
@@ -657,31 +621,34 @@ const getModelManager = () => {
|
|
|
657
621
|
}
|
|
658
622
|
return globalModelManager;
|
|
659
623
|
} catch (error) {
|
|
660
|
-
|
|
624
|
+
logError(error);
|
|
625
|
+
debug.error("MODEL_MANAGER_CREATE_FAILED", {
|
|
626
|
+
error: error instanceof Error ? error.message : String(error)
|
|
627
|
+
});
|
|
661
628
|
return new ModelManager({
|
|
662
629
|
modelProfiles: [],
|
|
663
|
-
modelPointers: { main: "", task: "",
|
|
630
|
+
modelPointers: { main: "", task: "", compact: "", quick: "" }
|
|
664
631
|
});
|
|
665
632
|
}
|
|
666
633
|
};
|
|
667
|
-
|
|
634
|
+
var reloadModelManager = () => {
|
|
668
635
|
globalModelManager = null;
|
|
669
636
|
getModelManager();
|
|
670
637
|
};
|
|
671
|
-
|
|
638
|
+
var getQuickModel = () => {
|
|
672
639
|
const manager = getModelManager();
|
|
673
640
|
const quickModel = manager.getModel("quick");
|
|
674
641
|
return quickModel?.modelName || "quick";
|
|
675
642
|
};
|
|
643
|
+
|
|
676
644
|
export {
|
|
677
|
-
ModelManager,
|
|
678
645
|
USE_BEDROCK,
|
|
679
646
|
USE_VERTEX,
|
|
680
|
-
getModelManager,
|
|
681
|
-
getQuickModel,
|
|
682
647
|
getSlowAndCapableModel,
|
|
683
|
-
getVertexRegionForModel,
|
|
684
648
|
isDefaultSlowAndCapableModel,
|
|
685
|
-
|
|
649
|
+
getVertexRegionForModel,
|
|
650
|
+
ModelManager,
|
|
651
|
+
getModelManager,
|
|
652
|
+
reloadModelManager,
|
|
653
|
+
getQuickModel
|
|
686
654
|
};
|
|
687
|
-
//# sourceMappingURL=model.js.map
|