@shareai-lab/kode 1.2.0 → 2.0.1
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-CW7AYLVL.js +42 -0
- package/dist/acp-VEPJ74LT.js +1357 -0
- package/dist/acp-VEPJ74LT.js.map +7 -0
- package/dist/agentsValidate-7LH4HTNR.js +373 -0
- package/dist/agentsValidate-7LH4HTNR.js.map +7 -0
- package/dist/ask-3NHFFUQG.js +125 -0
- package/dist/ask-3NHFFUQG.js.map +7 -0
- package/dist/autoUpdater-ITPIHCOI.js +17 -0
- package/dist/{utils/autoUpdater.js → chunk-3IN27HA5.js} +38 -21
- package/dist/chunk-3IN27HA5.js.map +7 -0
- package/dist/chunk-3RUXVV4S.js +23 -0
- package/dist/chunk-3RUXVV4S.js.map +7 -0
- package/dist/chunk-4FX3IVPT.js +164 -0
- package/dist/chunk-4FX3IVPT.js.map +7 -0
- package/dist/chunk-4RTX4AG4.js +249 -0
- package/dist/chunk-4RTX4AG4.js.map +7 -0
- package/dist/chunk-5PDP7R6N.js +515 -0
- package/dist/chunk-5PDP7R6N.js.map +7 -0
- package/dist/chunk-73WGVYLQ.js +735 -0
- package/dist/chunk-73WGVYLQ.js.map +7 -0
- package/dist/{services/systemReminder.js → chunk-7M2YN6TU.js} +221 -59
- package/dist/chunk-7M2YN6TU.js.map +7 -0
- package/dist/{utils/theme.js → chunk-7U7L4NMD.js} +28 -6
- package/dist/chunk-7U7L4NMD.js.map +7 -0
- package/dist/chunk-ABLVTESJ.js +19 -0
- package/dist/chunk-ABLVTESJ.js.map +7 -0
- package/dist/chunk-AFFSCMYS.js +191 -0
- package/dist/chunk-AFFSCMYS.js.map +7 -0
- package/dist/chunk-ARZSBOAO.js +1256 -0
- package/dist/chunk-ARZSBOAO.js.map +7 -0
- package/dist/chunk-CIG63V4E.js +72 -0
- package/dist/chunk-CIG63V4E.js.map +7 -0
- package/dist/chunk-CM3EGTG6.js +1609 -0
- package/dist/chunk-CM3EGTG6.js.map +7 -0
- package/dist/{services/openai.js → chunk-DZE5YA7L.js} +168 -234
- package/dist/chunk-DZE5YA7L.js.map +7 -0
- package/dist/chunk-E6YNABER.js +24 -0
- package/dist/chunk-E6YNABER.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-F2SJXUDI.js +148 -0
- package/dist/chunk-F2SJXUDI.js.map +7 -0
- package/dist/chunk-FC5ZCKBI.js +30167 -0
- package/dist/chunk-FC5ZCKBI.js.map +7 -0
- package/dist/chunk-HCBELH4J.js +145 -0
- package/dist/chunk-HCBELH4J.js.map +7 -0
- package/dist/chunk-HN4E4UUQ.js +96 -0
- package/dist/chunk-HN4E4UUQ.js.map +7 -0
- package/dist/{utils/model.js → chunk-IZVMU4S2.js} +194 -227
- package/dist/chunk-IZVMU4S2.js.map +7 -0
- package/dist/chunk-JC6NCUG5.js +11 -0
- package/dist/chunk-K2CWOTI2.js +196 -0
- package/dist/chunk-K2CWOTI2.js.map +7 -0
- package/dist/chunk-KAA5BGMQ.js +12 -0
- package/dist/chunk-KAA5BGMQ.js.map +7 -0
- package/dist/{utils/config.js → chunk-LC4TVOCZ.js} +351 -171
- package/dist/chunk-LC4TVOCZ.js.map +7 -0
- package/dist/chunk-MIW7N2MY.js +2613 -0
- package/dist/chunk-MIW7N2MY.js.map +7 -0
- package/dist/chunk-MWRSY4X6.js +240 -0
- package/dist/chunk-MWRSY4X6.js.map +7 -0
- package/dist/chunk-ND3XWFO6.js +34 -0
- package/dist/chunk-ND3XWFO6.js.map +7 -0
- package/dist/chunk-NPFOMITO.js +21 -0
- package/dist/chunk-NPFOMITO.js.map +7 -0
- package/dist/chunk-QVLYOPO5.js +1097 -0
- package/dist/chunk-QVLYOPO5.js.map +7 -0
- package/dist/chunk-RZWOUA25.js +490 -0
- package/dist/chunk-RZWOUA25.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/debugLogger.js → chunk-STSX7GIX.js} +107 -204
- package/dist/chunk-STSX7GIX.js.map +7 -0
- package/dist/chunk-UHYRLID6.js +472 -0
- package/dist/chunk-UHYRLID6.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-W7GRKO7Q.js +766 -0
- package/dist/chunk-W7GRKO7Q.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/chunk-YC6LJCDE.js +511 -0
- package/dist/chunk-YC6LJCDE.js.map +7 -0
- package/dist/chunk-YXYYDIMI.js +2931 -0
- package/dist/chunk-YXYYDIMI.js.map +7 -0
- package/dist/chunk-ZVDRDPII.js +138 -0
- package/dist/chunk-ZVDRDPII.js.map +7 -0
- package/dist/cli-DOPVY2CW.js +3917 -0
- package/dist/cli-DOPVY2CW.js.map +7 -0
- package/dist/commands-2BF2CJ3A.js +46 -0
- package/dist/config-RUSD6G5Y.js +81 -0
- package/dist/context-6FXPETYH.js +30 -0
- package/dist/costTracker-6SL26FDB.js +19 -0
- package/dist/customCommands-TOIJFZAL.js +25 -0
- package/dist/customCommands-TOIJFZAL.js.map +7 -0
- package/dist/env-XGKBLU3D.js +22 -0
- package/dist/env-XGKBLU3D.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-MITZADPB.js +18 -0
- package/dist/kodeAgentSessionLoad-MITZADPB.js.map +7 -0
- package/dist/kodeAgentSessionResume-GVRWB4WO.js +16 -0
- package/dist/kodeAgentSessionResume-GVRWB4WO.js.map +7 -0
- package/dist/kodeAgentStreamJson-NXFN7TXH.js +13 -0
- package/dist/kodeAgentStreamJson-NXFN7TXH.js.map +7 -0
- package/dist/kodeAgentStreamJsonSession-UGEZJJEB.js +131 -0
- package/dist/kodeAgentStreamJsonSession-UGEZJJEB.js.map +7 -0
- package/dist/kodeAgentStructuredStdio-HGWJT7CU.js +10 -0
- package/dist/kodeAgentStructuredStdio-HGWJT7CU.js.map +7 -0
- package/dist/kodeHooks-QWM36A3D.js +36 -0
- package/dist/kodeHooks-QWM36A3D.js.map +7 -0
- package/dist/llm-ZUQC4WYM.js +3118 -0
- package/dist/llm-ZUQC4WYM.js.map +7 -0
- package/dist/llmLazy-54QQHA54.js +15 -0
- package/dist/llmLazy-54QQHA54.js.map +7 -0
- package/dist/loader-FYHJQES5.js +28 -0
- package/dist/loader-FYHJQES5.js.map +7 -0
- package/dist/mcp-J332IKT3.js +49 -0
- package/dist/mcp-J332IKT3.js.map +7 -0
- package/dist/{services/mentionProcessor.js → mentionProcessor-EE3XFHCJ.js} +61 -50
- package/dist/mentionProcessor-EE3XFHCJ.js.map +7 -0
- package/dist/messages-EOYQKPGM.js +63 -0
- package/dist/messages-EOYQKPGM.js.map +7 -0
- package/dist/model-FV3JDJKH.js +30 -0
- package/dist/model-FV3JDJKH.js.map +7 -0
- package/dist/openai-RRCWW33N.js +29 -0
- package/dist/openai-RRCWW33N.js.map +7 -0
- package/dist/outputStyles-62Q3VH2J.js +28 -0
- package/dist/outputStyles-62Q3VH2J.js.map +7 -0
- package/dist/package.json +1 -1
- package/dist/pluginRuntime-6ETCZ2LL.js +218 -0
- package/dist/pluginRuntime-6ETCZ2LL.js.map +7 -0
- package/dist/pluginValidation-I4YKUWGS.js +17 -0
- package/dist/pluginValidation-I4YKUWGS.js.map +7 -0
- package/dist/prompts-ZLEKDD77.js +48 -0
- package/dist/prompts-ZLEKDD77.js.map +7 -0
- package/dist/query-VFRJPBGD.js +50 -0
- package/dist/query-VFRJPBGD.js.map +7 -0
- package/dist/responsesStreaming-AW344PQO.js +10 -0
- package/dist/responsesStreaming-AW344PQO.js.map +7 -0
- package/dist/ripgrep-3NTIKQYW.js +17 -0
- package/dist/ripgrep-3NTIKQYW.js.map +7 -0
- package/dist/skillMarketplace-3RXQBVOL.js +37 -0
- package/dist/skillMarketplace-3RXQBVOL.js.map +7 -0
- package/dist/state-P5G6CO5V.js +16 -0
- package/dist/state-P5G6CO5V.js.map +7 -0
- package/dist/theme-3LWP3BG7.js +14 -0
- package/dist/theme-3LWP3BG7.js.map +7 -0
- package/dist/toolPermissionContext-65L65VEZ.js +17 -0
- package/dist/toolPermissionContext-65L65VEZ.js.map +7 -0
- package/dist/toolPermissionSettings-3ROBVTUK.js +18 -0
- package/dist/toolPermissionSettings-3ROBVTUK.js.map +7 -0
- package/dist/tools-RO7HSSE5.js +47 -0
- package/dist/tools-RO7HSSE5.js.map +7 -0
- package/dist/userInput-JSBJRFSK.js +311 -0
- package/dist/userInput-JSBJRFSK.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-CW7AYLVL.js.map} +0 -0
- /package/dist/{components/CustomSelect/theme.js.map → autoUpdater-ITPIHCOI.js.map} +0 -0
- /package/dist/{types/common.d.js.map → chunk-JC6NCUG5.js.map} +0 -0
- /package/dist/{types/conversation.js.map → commands-2BF2CJ3A.js.map} +0 -0
- /package/dist/{types/logs.js.map → config-RUSD6G5Y.js.map} +0 -0
- /package/dist/{types/modelCapabilities.js.map → context-6FXPETYH.js.map} +0 -0
- /package/dist/{types/notebook.js.map → costTracker-6SL26FDB.js.map} +0 -0
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
getSessionState,
|
|
5
|
+
setSessionState
|
|
6
|
+
} from "./chunk-E6YNABER.js";
|
|
7
|
+
import {
|
|
8
|
+
getGlobalConfig
|
|
9
|
+
} from "./chunk-LC4TVOCZ.js";
|
|
10
|
+
import {
|
|
11
|
+
debug,
|
|
12
|
+
getCurrentRequest,
|
|
13
|
+
logAPIError
|
|
14
|
+
} from "./chunk-STSX7GIX.js";
|
|
15
|
+
|
|
16
|
+
// src/services/ai/openai.ts
|
|
2
17
|
import { ProxyAgent, fetch } from "undici";
|
|
3
|
-
|
|
4
|
-
import { logEvent } from "../services/statsig.js";
|
|
5
|
-
import { debug as debugLogger, getCurrentRequest, logAPIError } from "../utils/debugLogger.js";
|
|
6
|
-
const RETRY_CONFIG = {
|
|
18
|
+
var RETRY_CONFIG = {
|
|
7
19
|
BASE_DELAY_MS: 1e3,
|
|
8
20
|
MAX_DELAY_MS: 32e3,
|
|
9
21
|
MAX_SERVER_DELAY_MS: 6e4,
|
|
@@ -38,15 +50,6 @@ function abortableDelay(delayMs, signal) {
|
|
|
38
50
|
}
|
|
39
51
|
});
|
|
40
52
|
}
|
|
41
|
-
var ModelErrorType = /* @__PURE__ */ ((ModelErrorType2) => {
|
|
42
|
-
ModelErrorType2["MaxLength"] = "1024";
|
|
43
|
-
ModelErrorType2["MaxCompletionTokens"] = "max_completion_tokens";
|
|
44
|
-
ModelErrorType2["TemperatureRestriction"] = "temperature_restriction";
|
|
45
|
-
ModelErrorType2["StreamOptions"] = "stream_options";
|
|
46
|
-
ModelErrorType2["Citations"] = "citations";
|
|
47
|
-
ModelErrorType2["RateLimit"] = "rate_limit";
|
|
48
|
-
return ModelErrorType2;
|
|
49
|
-
})(ModelErrorType || {});
|
|
50
53
|
function getModelErrorKey(baseURL, model, type) {
|
|
51
54
|
return `${baseURL}:${model}:${type}`;
|
|
52
55
|
}
|
|
@@ -58,20 +61,18 @@ function setModelError(baseURL, model, type, error) {
|
|
|
58
61
|
[getModelErrorKey(baseURL, model, type)]: error
|
|
59
62
|
});
|
|
60
63
|
}
|
|
61
|
-
|
|
64
|
+
var GPT5_ERROR_HANDLERS = [
|
|
62
65
|
{
|
|
63
66
|
type: "max_completion_tokens" /* MaxCompletionTokens */,
|
|
64
67
|
detect: (errMsg) => {
|
|
65
68
|
const lowerMsg = errMsg.toLowerCase();
|
|
66
|
-
return (
|
|
67
|
-
// Exact OpenAI GPT-5 error message
|
|
68
|
-
lowerMsg.includes("unsupported parameter: 'max_tokens'") && lowerMsg.includes("'max_completion_tokens'") || // Generic max_tokens error patterns
|
|
69
|
-
lowerMsg.includes("max_tokens") && lowerMsg.includes("max_completion_tokens") || lowerMsg.includes("max_tokens") && lowerMsg.includes("not supported") || lowerMsg.includes("max_tokens") && lowerMsg.includes("use max_completion_tokens") || // Additional patterns for various providers
|
|
70
|
-
lowerMsg.includes("invalid parameter") && lowerMsg.includes("max_tokens") || lowerMsg.includes("parameter error") && lowerMsg.includes("max_tokens")
|
|
71
|
-
);
|
|
69
|
+
return lowerMsg.includes("unsupported parameter: 'max_tokens'") && lowerMsg.includes("'max_completion_tokens'") || lowerMsg.includes("max_tokens") && lowerMsg.includes("max_completion_tokens") || lowerMsg.includes("max_tokens") && lowerMsg.includes("not supported") || lowerMsg.includes("max_tokens") && lowerMsg.includes("use max_completion_tokens") || lowerMsg.includes("invalid parameter") && lowerMsg.includes("max_tokens") || lowerMsg.includes("parameter error") && lowerMsg.includes("max_tokens");
|
|
72
70
|
},
|
|
73
71
|
fix: async (opts) => {
|
|
74
|
-
|
|
72
|
+
debug.api("GPT5_FIX_MAX_TOKENS", {
|
|
73
|
+
from: opts.max_tokens,
|
|
74
|
+
to: opts.max_tokens
|
|
75
|
+
});
|
|
75
76
|
if ("max_tokens" in opts) {
|
|
76
77
|
opts.max_completion_tokens = opts.max_tokens;
|
|
77
78
|
delete opts.max_tokens;
|
|
@@ -85,13 +86,15 @@ const GPT5_ERROR_HANDLERS = [
|
|
|
85
86
|
return lowerMsg.includes("temperature") && (lowerMsg.includes("only supports") || lowerMsg.includes("must be 1") || lowerMsg.includes("invalid temperature"));
|
|
86
87
|
},
|
|
87
88
|
fix: async (opts) => {
|
|
88
|
-
|
|
89
|
+
debug.api("GPT5_FIX_TEMPERATURE", {
|
|
90
|
+
from: opts.temperature,
|
|
91
|
+
to: 1
|
|
92
|
+
});
|
|
89
93
|
opts.temperature = 1;
|
|
90
94
|
}
|
|
91
95
|
}
|
|
92
|
-
// Add more GPT-5 specific handlers as needed
|
|
93
96
|
];
|
|
94
|
-
|
|
97
|
+
var ERROR_HANDLERS = [
|
|
95
98
|
{
|
|
96
99
|
type: "1024" /* MaxLength */,
|
|
97
100
|
detect: (errMsg) => errMsg.includes("Expected a string with maximum length 1024"),
|
|
@@ -108,12 +111,6 @@ const ERROR_HANDLERS = [
|
|
|
108
111
|
remainder += line + "\n";
|
|
109
112
|
}
|
|
110
113
|
}
|
|
111
|
-
logEvent("truncated_tool_description", {
|
|
112
|
-
name: tool.function.name,
|
|
113
|
-
original_length: String(tool.function.description.length),
|
|
114
|
-
truncated_length: String(str.length),
|
|
115
|
-
remainder_length: String(remainder.length)
|
|
116
|
-
});
|
|
117
114
|
tool.function.description = str;
|
|
118
115
|
toolDescriptions[tool.function.name] = remainder;
|
|
119
116
|
}
|
|
@@ -180,19 +177,12 @@ ${description}
|
|
|
180
177
|
}
|
|
181
178
|
}
|
|
182
179
|
];
|
|
183
|
-
|
|
184
|
-
if (!errMsg) return false;
|
|
185
|
-
const lowerMsg = errMsg.toLowerCase();
|
|
186
|
-
return lowerMsg.includes("rate limit") || lowerMsg.includes("too many requests") || lowerMsg.includes("429");
|
|
187
|
-
}
|
|
188
|
-
const MODEL_FEATURES = {
|
|
189
|
-
// OpenAI thinking models
|
|
180
|
+
var MODEL_FEATURES = {
|
|
190
181
|
o1: { usesMaxCompletionTokens: true },
|
|
191
182
|
"o1-preview": { usesMaxCompletionTokens: true },
|
|
192
183
|
"o1-mini": { usesMaxCompletionTokens: true },
|
|
193
184
|
"o1-pro": { usesMaxCompletionTokens: true },
|
|
194
185
|
"o3-mini": { usesMaxCompletionTokens: true },
|
|
195
|
-
// GPT-5 models
|
|
196
186
|
"gpt-5": {
|
|
197
187
|
usesMaxCompletionTokens: true,
|
|
198
188
|
supportsResponsesAPI: true,
|
|
@@ -220,7 +210,6 @@ const MODEL_FEATURES = {
|
|
|
220
210
|
"gpt-5-chat-latest": {
|
|
221
211
|
usesMaxCompletionTokens: true,
|
|
222
212
|
supportsResponsesAPI: false,
|
|
223
|
-
// Uses Chat Completions only
|
|
224
213
|
requiresTemperatureOne: true,
|
|
225
214
|
supportsVerbosityControl: true
|
|
226
215
|
}
|
|
@@ -257,15 +246,20 @@ function applyModelSpecificTransformations(opts) {
|
|
|
257
246
|
const isGPT5 = opts.model.toLowerCase().includes("gpt-5");
|
|
258
247
|
if (isGPT5 || features.usesMaxCompletionTokens) {
|
|
259
248
|
if ("max_tokens" in opts && !("max_completion_tokens" in opts)) {
|
|
260
|
-
|
|
249
|
+
debug.api("OPENAI_TRANSFORM_MAX_TOKENS", {
|
|
250
|
+
model: opts.model,
|
|
251
|
+
from: opts.max_tokens
|
|
252
|
+
});
|
|
261
253
|
opts.max_completion_tokens = opts.max_tokens;
|
|
262
254
|
delete opts.max_tokens;
|
|
263
255
|
}
|
|
264
256
|
if (features.requiresTemperatureOne && "temperature" in opts) {
|
|
265
257
|
if (opts.temperature !== 1 && opts.temperature !== void 0) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
258
|
+
debug.api("OPENAI_TRANSFORM_TEMPERATURE", {
|
|
259
|
+
model: opts.model,
|
|
260
|
+
from: opts.temperature,
|
|
261
|
+
to: 1
|
|
262
|
+
});
|
|
269
263
|
opts.temperature = 1;
|
|
270
264
|
}
|
|
271
265
|
}
|
|
@@ -311,22 +305,27 @@ async function tryWithEndpointFallback(baseURL, opts, headers, provider, proxy,
|
|
|
311
305
|
body: JSON.stringify(opts.stream ? { ...opts, stream: true } : opts),
|
|
312
306
|
dispatcher: proxy,
|
|
313
307
|
signal
|
|
314
|
-
// 🔧 Connect AbortSignal to fetch call
|
|
315
308
|
});
|
|
316
309
|
if (response.ok) {
|
|
317
310
|
return { response, endpoint };
|
|
318
311
|
}
|
|
319
312
|
if (response.status === 404 && endpointsToTry.length > 1) {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
313
|
+
debug.api("OPENAI_ENDPOINT_FALLBACK", {
|
|
314
|
+
endpoint,
|
|
315
|
+
status: 404,
|
|
316
|
+
reason: "not_found"
|
|
317
|
+
});
|
|
323
318
|
continue;
|
|
324
319
|
}
|
|
325
320
|
return { response, endpoint };
|
|
326
321
|
} catch (error) {
|
|
327
322
|
lastError = error;
|
|
328
323
|
if (endpointsToTry.indexOf(endpoint) < endpointsToTry.length - 1) {
|
|
329
|
-
|
|
324
|
+
debug.api("OPENAI_ENDPOINT_FALLBACK", {
|
|
325
|
+
endpoint,
|
|
326
|
+
reason: "network_error",
|
|
327
|
+
error: error instanceof Error ? error.message : String(error)
|
|
328
|
+
});
|
|
330
329
|
continue;
|
|
331
330
|
}
|
|
332
331
|
}
|
|
@@ -353,7 +352,7 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
353
352
|
}
|
|
354
353
|
applyModelSpecificTransformations(opts);
|
|
355
354
|
await applyModelErrorFixes(opts, baseURL || "");
|
|
356
|
-
|
|
355
|
+
debug.api("OPENAI_API_CALL_START", {
|
|
357
356
|
endpoint: baseURL || "DEFAULT_OPENAI",
|
|
358
357
|
model: opts.model,
|
|
359
358
|
provider,
|
|
@@ -399,6 +398,7 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
399
398
|
"siliconflow",
|
|
400
399
|
"qwen",
|
|
401
400
|
"glm",
|
|
401
|
+
"glm-coding",
|
|
402
402
|
"baidu-qianfan",
|
|
403
403
|
"openai",
|
|
404
404
|
"mistral",
|
|
@@ -416,7 +416,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
416
416
|
provider,
|
|
417
417
|
proxy,
|
|
418
418
|
signal
|
|
419
|
-
// 🔧 Pass AbortSignal to endpoint fallback
|
|
420
419
|
);
|
|
421
420
|
response2 = result.response;
|
|
422
421
|
usedEndpoint2 = result.endpoint;
|
|
@@ -427,7 +426,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
427
426
|
body: JSON.stringify({ ...opts, stream: true }),
|
|
428
427
|
dispatcher: proxy,
|
|
429
428
|
signal
|
|
430
|
-
// 🔧 CRITICAL FIX: Connect AbortSignal to fetch call
|
|
431
429
|
});
|
|
432
430
|
usedEndpoint2 = endpoint;
|
|
433
431
|
}
|
|
@@ -445,10 +443,23 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
445
443
|
const handlers = isGPT5 ? [...GPT5_ERROR_HANDLERS, ...ERROR_HANDLERS] : ERROR_HANDLERS;
|
|
446
444
|
for (const handler of handlers) {
|
|
447
445
|
if (handler.detect(errorMessage)) {
|
|
448
|
-
|
|
449
|
-
|
|
446
|
+
debug.api("OPENAI_MODEL_ERROR_DETECTED", {
|
|
447
|
+
model: opts.model,
|
|
448
|
+
type: handler.type,
|
|
449
|
+
errorMessage,
|
|
450
|
+
status: response2.status
|
|
451
|
+
});
|
|
452
|
+
setModelError(
|
|
453
|
+
baseURL || "",
|
|
454
|
+
opts.model,
|
|
455
|
+
handler.type,
|
|
456
|
+
errorMessage
|
|
457
|
+
);
|
|
450
458
|
await handler.fix(opts);
|
|
451
|
-
|
|
459
|
+
debug.api("OPENAI_MODEL_ERROR_FIXED", {
|
|
460
|
+
model: opts.model,
|
|
461
|
+
type: handler.type
|
|
462
|
+
});
|
|
452
463
|
return getCompletionWithProfile(
|
|
453
464
|
modelProfile,
|
|
454
465
|
opts,
|
|
@@ -458,7 +469,11 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
458
469
|
);
|
|
459
470
|
}
|
|
460
471
|
}
|
|
461
|
-
|
|
472
|
+
debug.warn("OPENAI_API_ERROR_UNHANDLED", {
|
|
473
|
+
model: opts.model,
|
|
474
|
+
status: response2.status,
|
|
475
|
+
errorMessage
|
|
476
|
+
});
|
|
462
477
|
logAPIError({
|
|
463
478
|
model: opts.model,
|
|
464
479
|
endpoint: `${baseURL}${endpoint}`,
|
|
@@ -469,7 +484,11 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
469
484
|
provider
|
|
470
485
|
});
|
|
471
486
|
} catch (parseError) {
|
|
472
|
-
|
|
487
|
+
debug.warn("OPENAI_API_ERROR_PARSE_FAILED", {
|
|
488
|
+
model: opts.model,
|
|
489
|
+
status: response2.status,
|
|
490
|
+
error: parseError instanceof Error ? parseError.message : String(parseError)
|
|
491
|
+
});
|
|
473
492
|
logAPIError({
|
|
474
493
|
model: opts.model,
|
|
475
494
|
endpoint: `${baseURL}${endpoint}`,
|
|
@@ -481,9 +500,13 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
481
500
|
});
|
|
482
501
|
}
|
|
483
502
|
const delayMs = getRetryDelay(attempt);
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
503
|
+
debug.warn("OPENAI_API_RETRY", {
|
|
504
|
+
model: opts.model,
|
|
505
|
+
status: response2.status,
|
|
506
|
+
attempt: attempt + 1,
|
|
507
|
+
maxAttempts,
|
|
508
|
+
delayMs
|
|
509
|
+
});
|
|
487
510
|
try {
|
|
488
511
|
await abortableDelay(delayMs, signal);
|
|
489
512
|
} catch (error) {
|
|
@@ -498,7 +521,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
498
521
|
attempt + 1,
|
|
499
522
|
maxAttempts,
|
|
500
523
|
signal
|
|
501
|
-
// 🔧 Pass AbortSignal to recursive call
|
|
502
524
|
);
|
|
503
525
|
}
|
|
504
526
|
const stream = createStreamProcessor(response2.body, signal);
|
|
@@ -528,7 +550,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
528
550
|
provider,
|
|
529
551
|
proxy,
|
|
530
552
|
signal
|
|
531
|
-
// 🔧 Pass AbortSignal to endpoint fallback
|
|
532
553
|
);
|
|
533
554
|
response = result.response;
|
|
534
555
|
usedEndpoint = result.endpoint;
|
|
@@ -539,7 +560,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
539
560
|
body: JSON.stringify(opts),
|
|
540
561
|
dispatcher: proxy,
|
|
541
562
|
signal
|
|
542
|
-
// 🔧 CRITICAL FIX: Connect AbortSignal to non-streaming fetch call
|
|
543
563
|
});
|
|
544
564
|
usedEndpoint = endpoint;
|
|
545
565
|
}
|
|
@@ -557,10 +577,18 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
557
577
|
const handlers = isGPT5 ? [...GPT5_ERROR_HANDLERS, ...ERROR_HANDLERS] : ERROR_HANDLERS;
|
|
558
578
|
for (const handler of handlers) {
|
|
559
579
|
if (handler.detect(errorMessage)) {
|
|
560
|
-
|
|
580
|
+
debug.api("OPENAI_MODEL_ERROR_DETECTED", {
|
|
581
|
+
model: opts.model,
|
|
582
|
+
type: handler.type,
|
|
583
|
+
errorMessage,
|
|
584
|
+
status: response.status
|
|
585
|
+
});
|
|
561
586
|
setModelError(baseURL || "", opts.model, handler.type, errorMessage);
|
|
562
587
|
await handler.fix(opts);
|
|
563
|
-
|
|
588
|
+
debug.api("OPENAI_MODEL_ERROR_FIXED", {
|
|
589
|
+
model: opts.model,
|
|
590
|
+
type: handler.type
|
|
591
|
+
});
|
|
564
592
|
return getCompletionWithProfile(
|
|
565
593
|
modelProfile,
|
|
566
594
|
opts,
|
|
@@ -570,14 +598,26 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
570
598
|
);
|
|
571
599
|
}
|
|
572
600
|
}
|
|
573
|
-
|
|
601
|
+
debug.warn("OPENAI_API_ERROR_UNHANDLED", {
|
|
602
|
+
model: opts.model,
|
|
603
|
+
status: response.status,
|
|
604
|
+
errorMessage
|
|
605
|
+
});
|
|
574
606
|
} catch (parseError) {
|
|
575
|
-
|
|
607
|
+
debug.warn("OPENAI_API_ERROR_PARSE_FAILED", {
|
|
608
|
+
model: opts.model,
|
|
609
|
+
status: response.status,
|
|
610
|
+
error: parseError instanceof Error ? parseError.message : String(parseError)
|
|
611
|
+
});
|
|
576
612
|
}
|
|
577
613
|
const delayMs = getRetryDelay(attempt);
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
614
|
+
debug.warn("OPENAI_API_RETRY", {
|
|
615
|
+
model: opts.model,
|
|
616
|
+
status: response.status,
|
|
617
|
+
attempt: attempt + 1,
|
|
618
|
+
maxAttempts,
|
|
619
|
+
delayMs
|
|
620
|
+
});
|
|
581
621
|
try {
|
|
582
622
|
await abortableDelay(delayMs, signal);
|
|
583
623
|
} catch (error) {
|
|
@@ -592,7 +632,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
592
632
|
attempt + 1,
|
|
593
633
|
maxAttempts,
|
|
594
634
|
signal
|
|
595
|
-
// 🔧 Pass AbortSignal to recursive call
|
|
596
635
|
);
|
|
597
636
|
}
|
|
598
637
|
const responseData = await response.json();
|
|
@@ -606,9 +645,13 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
606
645
|
throw new Error("Request cancelled by user");
|
|
607
646
|
}
|
|
608
647
|
const delayMs = getRetryDelay(attempt);
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
648
|
+
debug.warn("OPENAI_NETWORK_RETRY", {
|
|
649
|
+
model: opts.model,
|
|
650
|
+
attempt: attempt + 1,
|
|
651
|
+
maxAttempts,
|
|
652
|
+
delayMs,
|
|
653
|
+
error: error instanceof Error ? error.message : String(error)
|
|
654
|
+
});
|
|
612
655
|
try {
|
|
613
656
|
await abortableDelay(delayMs, signal);
|
|
614
657
|
} catch (error2) {
|
|
@@ -623,7 +666,6 @@ async function getCompletionWithProfile(modelProfile, opts, attempt = 0, maxAtte
|
|
|
623
666
|
attempt + 1,
|
|
624
667
|
maxAttempts,
|
|
625
668
|
signal
|
|
626
|
-
// 🔧 Pass AbortSignal to recursive call
|
|
627
669
|
);
|
|
628
670
|
}
|
|
629
671
|
throw error;
|
|
@@ -649,7 +691,9 @@ function createStreamProcessor(stream, signal) {
|
|
|
649
691
|
if (signal?.aborted) {
|
|
650
692
|
break;
|
|
651
693
|
}
|
|
652
|
-
|
|
694
|
+
debug.warn("OPENAI_STREAM_READ_ERROR", {
|
|
695
|
+
error: e instanceof Error ? e.message : String(e)
|
|
696
|
+
});
|
|
653
697
|
break;
|
|
654
698
|
}
|
|
655
699
|
const { done, value } = readResult;
|
|
@@ -672,7 +716,10 @@ function createStreamProcessor(stream, signal) {
|
|
|
672
716
|
const parsed = JSON.parse(data);
|
|
673
717
|
yield parsed;
|
|
674
718
|
} catch (e) {
|
|
675
|
-
|
|
719
|
+
debug.warn("OPENAI_STREAM_JSON_PARSE_ERROR", {
|
|
720
|
+
data,
|
|
721
|
+
error: e instanceof Error ? e.message : String(e)
|
|
722
|
+
});
|
|
676
723
|
}
|
|
677
724
|
}
|
|
678
725
|
lineEnd = buffer.indexOf("\n");
|
|
@@ -688,18 +735,25 @@ function createStreamProcessor(stream, signal) {
|
|
|
688
735
|
const parsed = JSON.parse(data);
|
|
689
736
|
yield parsed;
|
|
690
737
|
} catch (e) {
|
|
691
|
-
|
|
738
|
+
debug.warn("OPENAI_STREAM_FINAL_JSON_PARSE_ERROR", {
|
|
739
|
+
data,
|
|
740
|
+
error: e instanceof Error ? e.message : String(e)
|
|
741
|
+
});
|
|
692
742
|
}
|
|
693
743
|
}
|
|
694
744
|
}
|
|
695
745
|
}
|
|
696
746
|
} catch (e) {
|
|
697
|
-
|
|
747
|
+
debug.warn("OPENAI_STREAM_UNEXPECTED_ERROR", {
|
|
748
|
+
error: e instanceof Error ? e.message : String(e)
|
|
749
|
+
});
|
|
698
750
|
} finally {
|
|
699
751
|
try {
|
|
700
752
|
reader.releaseLock();
|
|
701
753
|
} catch (e) {
|
|
702
|
-
|
|
754
|
+
debug.warn("OPENAI_STREAM_RELEASE_LOCK_ERROR", {
|
|
755
|
+
error: e instanceof Error ? e.message : String(e)
|
|
756
|
+
});
|
|
703
757
|
}
|
|
704
758
|
}
|
|
705
759
|
})();
|
|
@@ -707,7 +761,7 @@ function createStreamProcessor(stream, signal) {
|
|
|
707
761
|
function streamCompletion(stream, signal) {
|
|
708
762
|
return createStreamProcessor(stream, signal);
|
|
709
763
|
}
|
|
710
|
-
async function callGPT5ResponsesAPI(modelProfile,
|
|
764
|
+
async function callGPT5ResponsesAPI(modelProfile, request, signal) {
|
|
711
765
|
const baseURL = modelProfile?.baseURL || "https://api.openai.com/v1";
|
|
712
766
|
const apiKey = modelProfile?.apiKey;
|
|
713
767
|
const proxy = getGlobalConfig().proxy ? new ProxyAgent(getGlobalConfig().proxy) : void 0;
|
|
@@ -715,59 +769,7 @@ async function callGPT5ResponsesAPI(modelProfile, opts, signal) {
|
|
|
715
769
|
"Content-Type": "application/json",
|
|
716
770
|
Authorization: `Bearer ${apiKey}`
|
|
717
771
|
};
|
|
718
|
-
const responsesParams =
|
|
719
|
-
model: opts.model,
|
|
720
|
-
input: opts.messages
|
|
721
|
-
// Responses API uses 'input' instead of 'messages'
|
|
722
|
-
};
|
|
723
|
-
if (opts.max_completion_tokens) {
|
|
724
|
-
responsesParams.max_completion_tokens = opts.max_completion_tokens;
|
|
725
|
-
} else if (opts.max_tokens) {
|
|
726
|
-
responsesParams.max_completion_tokens = opts.max_tokens;
|
|
727
|
-
}
|
|
728
|
-
if (opts.temperature === 1) {
|
|
729
|
-
responsesParams.temperature = 1;
|
|
730
|
-
}
|
|
731
|
-
const reasoningEffort = opts.reasoning_effort || "medium";
|
|
732
|
-
responsesParams.reasoning = {
|
|
733
|
-
effort: reasoningEffort,
|
|
734
|
-
// 🚀 Enable reasoning summaries for transparency in coding tasks
|
|
735
|
-
generate_summary: true
|
|
736
|
-
};
|
|
737
|
-
if (opts.tools && opts.tools.length > 0) {
|
|
738
|
-
responsesParams.tools = opts.tools;
|
|
739
|
-
if (opts.tool_choice) {
|
|
740
|
-
responsesParams.tool_choice = opts.tool_choice;
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
const systemMessages = opts.messages.filter((msg) => msg.role === "system");
|
|
744
|
-
const nonSystemMessages = opts.messages.filter((msg) => msg.role !== "system");
|
|
745
|
-
if (systemMessages.length > 0) {
|
|
746
|
-
responsesParams.instructions = systemMessages.map((msg) => msg.content).join("\n\n");
|
|
747
|
-
responsesParams.input = nonSystemMessages;
|
|
748
|
-
}
|
|
749
|
-
const features = getModelFeatures(opts.model);
|
|
750
|
-
if (features.supportsVerbosityControl) {
|
|
751
|
-
responsesParams.text = {
|
|
752
|
-
verbosity: "high"
|
|
753
|
-
};
|
|
754
|
-
}
|
|
755
|
-
if (opts.model.startsWith("gpt-5")) {
|
|
756
|
-
if (!responsesParams.reasoning) {
|
|
757
|
-
responsesParams.reasoning = {
|
|
758
|
-
effort: "medium"
|
|
759
|
-
// Balanced for most coding tasks
|
|
760
|
-
};
|
|
761
|
-
}
|
|
762
|
-
if (!responsesParams.instructions) {
|
|
763
|
-
responsesParams.instructions = `You are an expert programmer working in a terminal-based coding environment. Follow these guidelines:
|
|
764
|
-
- Provide clear, concise code solutions
|
|
765
|
-
- Use proper error handling and validation
|
|
766
|
-
- Follow coding best practices and patterns
|
|
767
|
-
- Explain complex logic when necessary
|
|
768
|
-
- Focus on maintainable, readable code`;
|
|
769
|
-
}
|
|
770
|
-
}
|
|
772
|
+
const responsesParams = request;
|
|
771
773
|
try {
|
|
772
774
|
const response = await fetch(`${baseURL}/responses`, {
|
|
773
775
|
method: "POST",
|
|
@@ -777,10 +779,12 @@ async function callGPT5ResponsesAPI(modelProfile, opts, signal) {
|
|
|
777
779
|
signal
|
|
778
780
|
});
|
|
779
781
|
if (!response.ok) {
|
|
780
|
-
|
|
782
|
+
const errorText = await response.text();
|
|
783
|
+
throw new Error(
|
|
784
|
+
`GPT-5 Responses API error: ${response.status} ${response.statusText} - ${errorText}`
|
|
785
|
+
);
|
|
781
786
|
}
|
|
782
|
-
|
|
783
|
-
return convertResponsesAPIToChatCompletion(responseData);
|
|
787
|
+
return response;
|
|
784
788
|
} catch (error) {
|
|
785
789
|
if (signal?.aborted) {
|
|
786
790
|
throw new Error("Request cancelled by user");
|
|
@@ -788,116 +792,43 @@ async function callGPT5ResponsesAPI(modelProfile, opts, signal) {
|
|
|
788
792
|
throw error;
|
|
789
793
|
}
|
|
790
794
|
}
|
|
791
|
-
function convertResponsesAPIToChatCompletion(responsesData) {
|
|
792
|
-
let outputText = responsesData.output_text || "";
|
|
793
|
-
const usage = responsesData.usage || {};
|
|
794
|
-
if (responsesData.output && Array.isArray(responsesData.output)) {
|
|
795
|
-
const reasoningItems = responsesData.output.filter((item) => item.type === "reasoning" && item.summary);
|
|
796
|
-
const messageItems = responsesData.output.filter((item) => item.type === "message");
|
|
797
|
-
if (reasoningItems.length > 0 && messageItems.length > 0) {
|
|
798
|
-
const reasoningSummary = reasoningItems.map((item) => item.summary?.map((s) => s.text).join("\n")).filter(Boolean).join("\n\n");
|
|
799
|
-
const mainContent = messageItems.map((item) => item.content?.map((c) => c.text).join("\n")).filter(Boolean).join("\n\n");
|
|
800
|
-
if (reasoningSummary) {
|
|
801
|
-
outputText = `**\u{1F9E0} Reasoning Process:**
|
|
802
|
-
${reasoningSummary}
|
|
803
|
-
|
|
804
|
-
**\u{1F4DD} Response:**
|
|
805
|
-
${mainContent}`;
|
|
806
|
-
} else {
|
|
807
|
-
outputText = mainContent;
|
|
808
|
-
}
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
return {
|
|
812
|
-
id: responsesData.id || `chatcmpl-${Date.now()}`,
|
|
813
|
-
object: "chat.completion",
|
|
814
|
-
created: Math.floor(Date.now() / 1e3),
|
|
815
|
-
model: responsesData.model || "",
|
|
816
|
-
choices: [
|
|
817
|
-
{
|
|
818
|
-
index: 0,
|
|
819
|
-
message: {
|
|
820
|
-
role: "assistant",
|
|
821
|
-
content: outputText,
|
|
822
|
-
// 🚀 Include reasoning metadata if available
|
|
823
|
-
...responsesData.reasoning && {
|
|
824
|
-
reasoning: {
|
|
825
|
-
effort: responsesData.reasoning.effort,
|
|
826
|
-
summary: responsesData.reasoning.summary
|
|
827
|
-
}
|
|
828
|
-
}
|
|
829
|
-
},
|
|
830
|
-
finish_reason: responsesData.status === "completed" ? "stop" : "length"
|
|
831
|
-
}
|
|
832
|
-
],
|
|
833
|
-
usage: {
|
|
834
|
-
prompt_tokens: usage.input_tokens || 0,
|
|
835
|
-
completion_tokens: usage.output_tokens || 0,
|
|
836
|
-
total_tokens: (usage.input_tokens || 0) + (usage.output_tokens || 0),
|
|
837
|
-
// 🔧 GPT-5 Enhanced Usage Details
|
|
838
|
-
prompt_tokens_details: {
|
|
839
|
-
cached_tokens: usage.input_tokens_details?.cached_tokens || 0
|
|
840
|
-
},
|
|
841
|
-
completion_tokens_details: {
|
|
842
|
-
reasoning_tokens: usage.output_tokens_details?.reasoning_tokens || 0
|
|
843
|
-
}
|
|
844
|
-
}
|
|
845
|
-
};
|
|
846
|
-
}
|
|
847
795
|
async function getGPT5CompletionWithProfile(modelProfile, opts, attempt = 0, maxAttempts = 10, signal) {
|
|
848
796
|
const features = getModelFeatures(opts.model);
|
|
849
797
|
const isOfficialOpenAI = !modelProfile.baseURL || modelProfile.baseURL.includes("api.openai.com");
|
|
850
|
-
if (
|
|
851
|
-
|
|
852
|
-
debugLogger.api("ATTEMPTING_GPT5_RESPONSES_API", {
|
|
853
|
-
model: opts.model,
|
|
854
|
-
baseURL: modelProfile.baseURL || "official",
|
|
855
|
-
provider: modelProfile.provider,
|
|
856
|
-
stream: opts.stream,
|
|
857
|
-
requestId: getCurrentRequest()?.id
|
|
858
|
-
});
|
|
859
|
-
const result = await callGPT5ResponsesAPI(modelProfile, opts, signal);
|
|
860
|
-
debugLogger.api("GPT5_RESPONSES_API_SUCCESS", {
|
|
861
|
-
model: opts.model,
|
|
862
|
-
baseURL: modelProfile.baseURL || "official",
|
|
863
|
-
requestId: getCurrentRequest()?.id
|
|
864
|
-
});
|
|
865
|
-
return result;
|
|
866
|
-
} catch (error) {
|
|
867
|
-
debugLogger.api("GPT5_RESPONSES_API_FALLBACK", {
|
|
868
|
-
model: opts.model,
|
|
869
|
-
error: error.message,
|
|
870
|
-
baseURL: modelProfile.baseURL || "official",
|
|
871
|
-
requestId: getCurrentRequest()?.id
|
|
872
|
-
});
|
|
873
|
-
console.warn(
|
|
874
|
-
`\u{1F504} GPT-5 Responses API failed, falling back to Chat Completions: ${error.message}`
|
|
875
|
-
);
|
|
876
|
-
}
|
|
877
|
-
} else if (!isOfficialOpenAI) {
|
|
878
|
-
debugLogger.api("GPT5_THIRD_PARTY_PROVIDER", {
|
|
798
|
+
if (!isOfficialOpenAI) {
|
|
799
|
+
debug.api("GPT5_THIRD_PARTY_PROVIDER", {
|
|
879
800
|
model: opts.model,
|
|
880
801
|
baseURL: modelProfile.baseURL,
|
|
881
802
|
provider: modelProfile.provider,
|
|
882
803
|
supportsResponsesAPI: features.supportsResponsesAPI,
|
|
883
804
|
requestId: getCurrentRequest()?.id
|
|
884
805
|
});
|
|
885
|
-
|
|
806
|
+
debug.api("GPT5_PROVIDER_THIRD_PARTY_NOTICE", {
|
|
807
|
+
model: opts.model,
|
|
808
|
+
provider: modelProfile.provider,
|
|
809
|
+
baseURL: modelProfile.baseURL
|
|
810
|
+
});
|
|
886
811
|
if (modelProfile.provider === "azure") {
|
|
887
812
|
delete opts.reasoning_effort;
|
|
888
813
|
} else if (modelProfile.provider === "custom-openai") {
|
|
889
|
-
|
|
814
|
+
debug.api("GPT5_CUSTOM_PROVIDER_OPTIMIZATIONS", {
|
|
815
|
+
model: opts.model,
|
|
816
|
+
provider: modelProfile.provider
|
|
817
|
+
});
|
|
890
818
|
}
|
|
891
819
|
} else if (opts.stream) {
|
|
892
|
-
|
|
820
|
+
debug.api("GPT5_STREAMING_MODE", {
|
|
893
821
|
model: opts.model,
|
|
894
822
|
baseURL: modelProfile.baseURL || "official",
|
|
895
823
|
reason: "responses_api_no_streaming",
|
|
896
824
|
requestId: getCurrentRequest()?.id
|
|
897
825
|
});
|
|
898
|
-
|
|
826
|
+
debug.api("GPT5_STREAMING_FALLBACK_TO_CHAT_COMPLETIONS", {
|
|
827
|
+
model: opts.model,
|
|
828
|
+
reason: "responses_api_no_streaming"
|
|
829
|
+
});
|
|
899
830
|
}
|
|
900
|
-
|
|
831
|
+
debug.api("USING_CHAT_COMPLETIONS_FOR_GPT5", {
|
|
901
832
|
model: opts.model,
|
|
902
833
|
baseURL: modelProfile.baseURL || "official",
|
|
903
834
|
provider: modelProfile.provider,
|
|
@@ -978,7 +909,10 @@ async function fetchCustomModels(baseURL, apiKey) {
|
|
|
978
909
|
if (error instanceof Error && (error.message.includes("API key") || error.message.includes("API endpoint") || error.message.includes("API service") || error.message.includes("response format"))) {
|
|
979
910
|
throw error;
|
|
980
911
|
}
|
|
981
|
-
|
|
912
|
+
debug.warn("CUSTOM_API_MODELS_FETCH_FAILED", {
|
|
913
|
+
baseURL,
|
|
914
|
+
error: error instanceof Error ? error.message : String(error)
|
|
915
|
+
});
|
|
982
916
|
if (error instanceof Error && error.message.includes("fetch")) {
|
|
983
917
|
throw new Error(
|
|
984
918
|
"Unable to connect to the API. Please check the base URL and your internet connection."
|
|
@@ -989,14 +923,14 @@ async function fetchCustomModels(baseURL, apiKey) {
|
|
|
989
923
|
);
|
|
990
924
|
}
|
|
991
925
|
}
|
|
926
|
+
|
|
992
927
|
export {
|
|
928
|
+
getModelFeatures,
|
|
993
929
|
applyModelSpecificTransformations,
|
|
994
|
-
callGPT5ResponsesAPI,
|
|
995
|
-
createStreamProcessor,
|
|
996
|
-
fetchCustomModels,
|
|
997
930
|
getCompletionWithProfile,
|
|
931
|
+
createStreamProcessor,
|
|
932
|
+
streamCompletion,
|
|
933
|
+
callGPT5ResponsesAPI,
|
|
998
934
|
getGPT5CompletionWithProfile,
|
|
999
|
-
|
|
1000
|
-
streamCompletion
|
|
935
|
+
fetchCustomModels
|
|
1001
936
|
};
|
|
1002
|
-
//# sourceMappingURL=openai.js.map
|