@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
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/entrypoints/cli/agentsValidate.ts"],
|
|
4
|
+
"sourcesContent": ["import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { basename, dirname, join, resolve } from 'node:path'\nimport matter from 'gray-matter'\nimport yaml from 'js-yaml'\nimport { getModelManager } from '@utils/model'\n\nexport type AgentValidateIssue = {\n level: 'error' | 'warning'\n message: string\n}\n\nexport type AgentValidateFileResult = {\n filePath: string\n agentType: string | null\n issues: AgentValidateIssue[]\n model?: string\n normalizedModel?: string\n}\n\nconst VALID_PERMISSION_MODES = new Set([\n 'default',\n 'acceptEdits',\n 'plan',\n 'bypassPermissions',\n 'dontAsk',\n 'delegate',\n])\n\nconst SUBAGENT_HARD_BLOCKED_TOOLS = new Set([\n 'Task',\n 'TaskOutput',\n 'KillShell',\n 'EnterPlanMode',\n 'ExitPlanMode',\n 'AskUserQuestion',\n])\n\nfunction normalizeString(value: unknown): string | null {\n if (typeof value !== 'string') return null\n const trimmed = value.trim()\n return trimmed ? trimmed : null\n}\n\nfunction getClaudePolicyBaseDir(): string {\n switch (process.platform) {\n case 'darwin':\n return '/Library/Application Support/ClaudeCode'\n case 'win32':\n return existsSync('C:\\\\Program Files\\\\ClaudeCode')\n ? 'C:\\\\Program Files\\\\ClaudeCode'\n : 'C:\\\\ProgramData\\\\ClaudeCode'\n default:\n return '/etc/claude-code'\n }\n}\n\nfunction normalizeOverride(value: unknown): string | null {\n const normalized = normalizeString(value)\n return normalized ? resolve(normalized) : null\n}\n\nfunction getUserConfigRoots(): string[] {\n const claudeOverride = normalizeOverride(process.env.CLAUDE_CONFIG_DIR)\n const kodeOverride = normalizeOverride(process.env.KODE_CONFIG_DIR)\n const hasAnyOverride = Boolean(claudeOverride || kodeOverride)\n if (hasAnyOverride) {\n return Array.from(new Set([claudeOverride, kodeOverride].filter(Boolean))) as string[]\n }\n return [join(homedir(), '.claude'), join(homedir(), '.kode')]\n}\n\nfunction findProjectAgentDirs(cwd: string): string[] {\n const result: string[] = []\n const home = resolve(homedir())\n let current = resolve(cwd)\n\n while (current !== home) {\n const claudeDir = join(current, '.claude', 'agents')\n if (existsSync(claudeDir)) result.push(claudeDir)\n\n const kodeDir = join(current, '.kode', 'agents')\n if (existsSync(kodeDir)) result.push(kodeDir)\n\n const parent = dirname(current)\n if (parent === current) break\n current = parent\n }\n\n return result\n}\n\nfunction listMarkdownFilesRecursively(rootDir: string): string[] {\n const files: string[] = []\n const visitedDirs = new Set<string>()\n\n const walk = (dirPath: string) => {\n let dirStat: ReturnType<typeof statSync>\n try {\n dirStat = statSync(dirPath)\n } catch {\n return\n }\n if (!dirStat.isDirectory()) return\n\n const dirKey = `${(dirStat as any).dev}:${(dirStat as any).ino}`\n if (visitedDirs.has(dirKey)) return\n visitedDirs.add(dirKey)\n\n let entries: Array<{\n name: string\n isDirectory(): boolean\n isFile(): boolean\n isSymbolicLink(): boolean\n }>\n try {\n entries = readdirSync(dirPath, { withFileTypes: true }) as any\n } catch {\n return\n }\n\n for (const entry of entries) {\n const name = String(entry.name ?? '')\n const fullPath = join(dirPath, name)\n\n if (entry.isDirectory()) {\n walk(fullPath)\n continue\n }\n\n if (entry.isFile()) {\n if (name.toLowerCase().endsWith('.md')) files.push(fullPath)\n continue\n }\n\n if (entry.isSymbolicLink()) {\n try {\n const st = statSync(fullPath)\n if (st.isDirectory()) {\n walk(fullPath)\n } else if (st.isFile() && name.toLowerCase().endsWith('.md')) {\n files.push(fullPath)\n }\n } catch {\n continue\n }\n }\n }\n }\n\n if (!existsSync(rootDir)) return []\n walk(rootDir)\n return files\n}\n\nfunction readMarkdownFile(filePath: string):\n | { frontmatter: any; content: string }\n | { error: string } {\n try {\n const raw = readFileSync(filePath, 'utf8')\n const yamlSchema = (yaml as any).JSON_SCHEMA\n const parsed = matter(raw, {\n engines: {\n yaml: {\n parse: (input: string) =>\n yaml.load(input, yamlSchema ? { schema: yamlSchema } : undefined) ??\n {},\n },\n },\n })\n return { frontmatter: (parsed.data as any) ?? {}, content: String(parsed.content ?? '') }\n } catch (err) {\n return { error: err instanceof Error ? err.message : String(err) }\n }\n}\n\nfunction splitCliList(values: string[]): string[] {\n if (values.length === 0) return []\n const out: string[] = []\n\n for (const value of values) {\n if (!value) continue\n let current = ''\n let inParens = false\n\n for (const ch of value) {\n switch (ch) {\n case '(':\n inParens = true\n current += ch\n break\n case ')':\n inParens = false\n current += ch\n break\n case ',':\n case ' ': {\n if (inParens) {\n current += ch\n break\n }\n const trimmed = current.trim()\n if (trimmed) out.push(trimmed)\n current = ''\n break\n }\n default:\n current += ch\n }\n }\n\n const trimmed = current.trim()\n if (trimmed) out.push(trimmed)\n }\n\n return out\n}\n\nfunction normalizeToolList(value: unknown): string[] | null {\n if (value === undefined || value === null) return null\n if (!value) return []\n\n let raw: string[] = []\n if (typeof value === 'string') raw = [value]\n else if (Array.isArray(value))\n raw = value.filter((v): v is string => typeof v === 'string')\n\n if (raw.length === 0) return []\n const parsed = splitCliList(raw)\n if (parsed.includes('*')) return ['*']\n return parsed\n}\n\nfunction z2A(value: unknown): string[] | undefined {\n const normalized = normalizeToolList(value)\n if (normalized === null) return value === undefined ? undefined : []\n if (normalized.includes('*')) return undefined\n return normalized\n}\n\nfunction toolNameFromSpec(spec: string): string {\n const trimmed = spec.trim()\n if (!trimmed) return trimmed\n const match = trimmed.match(/^([^(]+)\\(([^)]+)\\)$/)\n if (!match) return trimmed\n const toolName = match[1]?.trim()\n return toolName || trimmed\n}\n\nfunction mapClaudeModelToKode(model: string): string | 'inherit' {\n if (model === 'inherit') return 'inherit'\n if (model === 'opus') return 'main'\n if (model === 'sonnet') return 'task'\n if (model === 'haiku') return 'quick'\n return model\n}\n\nfunction validateOneAgentFile(args: {\n filePath: string\n knownToolNames?: Set<string>\n}): AgentValidateFileResult {\n const issues: AgentValidateIssue[] = []\n const read = readMarkdownFile(args.filePath)\n if ('error' in read) {\n issues.push({ level: 'error', message: `Failed to parse file: ${read.error}` })\n return { filePath: args.filePath, agentType: null, issues }\n }\n\n const fm = read.frontmatter ?? {}\n const agentType = normalizeString(fm.name)\n const description = normalizeString(fm.description)\n\n if (!agentType) {\n issues.push({ level: 'error', message: `Missing required frontmatter field 'name'` })\n }\n if (!description) {\n issues.push({ level: 'error', message: `Missing required frontmatter field 'description'` })\n }\n\n const toolsList = z2A(fm.tools)\n const tools = toolsList === undefined ? '*' : toolsList\n if (Array.isArray(tools) && tools.length === 0) {\n issues.push({ level: 'warning', message: `No tools selected (tools: [])` })\n }\n\n const disallowedRaw = fm.disallowedTools ?? fm['disallowed-tools'] ?? fm['disallowed_tools']\n const disallowed = disallowedRaw !== undefined ? z2A(disallowedRaw) : undefined\n if (disallowedRaw !== undefined && disallowed === undefined) {\n issues.push({\n level: 'warning',\n message: `disallowedTools contains '*' and will be ignored (compatibility behavior)`,\n })\n }\n\n if (Array.isArray(tools)) {\n for (const spec of tools) {\n const toolName = toolNameFromSpec(spec)\n if (SUBAGENT_HARD_BLOCKED_TOOLS.has(toolName)) {\n issues.push({\n level: 'warning',\n message: `Tool '${toolName}' is not available to subagents and will be ignored`,\n })\n }\n if (args.knownToolNames && toolName && !args.knownToolNames.has(toolName)) {\n issues.push({\n level: 'warning',\n message: `Unknown tool '${toolName}' (from '${spec}')`,\n })\n }\n }\n }\n\n const permissionMode = normalizeString(fm.permissionMode)\n if (permissionMode && !VALID_PERMISSION_MODES.has(permissionMode)) {\n issues.push({\n level: 'error',\n message: `Invalid permissionMode '${permissionMode}' (expected: ${Array.from(VALID_PERMISSION_MODES).join(', ')})`,\n })\n }\n\n const forkContextValue: unknown = fm.forkContext\n if (\n forkContextValue !== undefined &&\n forkContextValue !== 'true' &&\n forkContextValue !== 'false'\n ) {\n issues.push({\n level: 'error',\n message: `Invalid forkContext value '${String(forkContextValue)}' (must be the string 'true' or 'false')`,\n })\n }\n const forkContext = forkContextValue === 'true'\n\n let modelRaw: unknown = fm.model\n if (typeof modelRaw !== 'string' && typeof fm.model_name === 'string') {\n modelRaw = fm.model_name\n }\n const model = typeof modelRaw === 'string' ? modelRaw.trim() : undefined\n\n if (forkContext && model && model !== 'inherit') {\n issues.push({\n level: 'warning',\n message: `forkContext is true, so model will be forced to 'inherit' (compatibility behavior)`,\n })\n }\n\n const normalizedModel =\n model && model.length > 0 ? mapClaudeModelToKode(model) : undefined\n\n if (normalizedModel && normalizedModel !== 'inherit') {\n const manager = getModelManager()\n const resolved = manager.resolveModelWithInfo(normalizedModel as any)\n if (!resolved.success || !resolved.profile) {\n issues.push({\n level: 'error',\n message:\n resolved.error ??\n `Model '${String(normalizedModel)}' could not be resolved`,\n })\n }\n }\n\n const filename = basename(args.filePath, '.md')\n if (agentType && filename !== agentType) {\n issues.push({\n level: 'warning',\n message: `Filename '${filename}.md' does not match agent name '${agentType}'`,\n })\n }\n\n return {\n filePath: args.filePath,\n agentType: agentType ?? null,\n issues,\n ...(model ? { model } : {}),\n ...(normalizedModel ? { normalizedModel } : {}),\n }\n}\n\nfunction defaultValidationPaths(cwd: string): string[] {\n const out: string[] = []\n\n const policyDir = join(getClaudePolicyBaseDir(), '.claude', 'agents')\n if (existsSync(policyDir)) out.push(policyDir)\n\n for (const root of getUserConfigRoots()) {\n const dirPath = join(root, 'agents')\n if (existsSync(dirPath)) out.push(dirPath)\n }\n\n for (const dirPath of findProjectAgentDirs(cwd)) {\n if (existsSync(dirPath)) out.push(dirPath)\n }\n\n return out\n}\n\nexport async function validateAgentTemplates(args: {\n cwd: string\n paths: string[]\n checkTools: boolean\n}): Promise<{\n ok: boolean\n errorCount: number\n warningCount: number\n results: AgentValidateFileResult[]\n}> {\n const inputPaths = args.paths.length > 0 ? args.paths : defaultValidationPaths(args.cwd)\n const markdownFiles = new Set<string>()\n for (const inputPath of inputPaths) {\n const resolved = resolve(args.cwd, inputPath)\n if (!existsSync(resolved)) continue\n let st: ReturnType<typeof statSync>\n try {\n st = statSync(resolved)\n } catch {\n continue\n }\n if (st.isFile()) {\n if (resolved.toLowerCase().endsWith('.md')) markdownFiles.add(resolved)\n continue\n }\n if (st.isDirectory()) {\n for (const f of listMarkdownFilesRecursively(resolved)) markdownFiles.add(f)\n }\n }\n\n let knownToolNames: Set<string> | undefined\n if (args.checkTools) {\n try {\n const { getTools } = await import('@tools')\n const { getCurrentProjectConfig } = await import('@utils/config')\n const allTools = await getTools(getCurrentProjectConfig().enableArchitectTool)\n knownToolNames = new Set(allTools.map(t => t.name))\n } catch {\n knownToolNames = undefined\n }\n }\n\n const results = Array.from(markdownFiles)\n .sort((a, b) => a.localeCompare(b))\n .map(filePath =>\n validateOneAgentFile({\n filePath,\n knownToolNames,\n }),\n )\n\n const errorCount = results.reduce(\n (sum, r) => sum + r.issues.filter(i => i.level === 'error').length,\n 0,\n )\n const warningCount = results.reduce(\n (sum, r) => sum + r.issues.filter(i => i.level === 'warning').length,\n 0,\n )\n\n return { ok: errorCount === 0, errorCount, warningCount, results }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["trimmed"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
getSystemPrompt,
|
|
5
|
+
query
|
|
6
|
+
} from "./chunk-FC5ZCKBI.js";
|
|
7
|
+
import "./chunk-K2CWOTI2.js";
|
|
8
|
+
import "./chunk-CM3EGTG6.js";
|
|
9
|
+
import "./chunk-UHYRLID6.js";
|
|
10
|
+
import "./chunk-QVLYOPO5.js";
|
|
11
|
+
import "./chunk-ZVDRDPII.js";
|
|
12
|
+
import "./chunk-MWRSY4X6.js";
|
|
13
|
+
import "./chunk-KAA5BGMQ.js";
|
|
14
|
+
import "./chunk-3RUXVV4S.js";
|
|
15
|
+
import "./chunk-ARZSBOAO.js";
|
|
16
|
+
import "./chunk-NPFOMITO.js";
|
|
17
|
+
import "./chunk-YC6LJCDE.js";
|
|
18
|
+
import "./chunk-DZE5YA7L.js";
|
|
19
|
+
import "./chunk-ND3XWFO6.js";
|
|
20
|
+
import "./chunk-4FX3IVPT.js";
|
|
21
|
+
import "./chunk-W7GRKO7Q.js";
|
|
22
|
+
import "./chunk-AFFSCMYS.js";
|
|
23
|
+
import "./chunk-HCBELH4J.js";
|
|
24
|
+
import "./chunk-S6HRABTA.js";
|
|
25
|
+
import "./chunk-7M2YN6TU.js";
|
|
26
|
+
import "./chunk-E6YNABER.js";
|
|
27
|
+
import "./chunk-73WGVYLQ.js";
|
|
28
|
+
import "./chunk-UKHTVRJM.js";
|
|
29
|
+
import "./chunk-S3J2TLV6.js";
|
|
30
|
+
import {
|
|
31
|
+
createUserMessage
|
|
32
|
+
} from "./chunk-RZWOUA25.js";
|
|
33
|
+
import {
|
|
34
|
+
getModelManager
|
|
35
|
+
} from "./chunk-IZVMU4S2.js";
|
|
36
|
+
import {
|
|
37
|
+
getContext
|
|
38
|
+
} from "./chunk-5PDP7R6N.js";
|
|
39
|
+
import "./chunk-7U7L4NMD.js";
|
|
40
|
+
import "./chunk-LC4TVOCZ.js";
|
|
41
|
+
import "./chunk-UYXEDKOZ.js";
|
|
42
|
+
import "./chunk-STSX7GIX.js";
|
|
43
|
+
import {
|
|
44
|
+
getMessagesPath,
|
|
45
|
+
overwriteLog,
|
|
46
|
+
setCwd
|
|
47
|
+
} from "./chunk-YXYYDIMI.js";
|
|
48
|
+
import "./chunk-F2SJXUDI.js";
|
|
49
|
+
import {
|
|
50
|
+
getTotalCost
|
|
51
|
+
} from "./chunk-EZXMVTDU.js";
|
|
52
|
+
import "./chunk-JC6NCUG5.js";
|
|
53
|
+
|
|
54
|
+
// src/app/ask.ts
|
|
55
|
+
import { last } from "lodash-es";
|
|
56
|
+
async function ask({
|
|
57
|
+
commands,
|
|
58
|
+
safeMode,
|
|
59
|
+
hasPermissionsToUseTool,
|
|
60
|
+
messageLogName,
|
|
61
|
+
prompt,
|
|
62
|
+
cwd,
|
|
63
|
+
tools,
|
|
64
|
+
verbose = false,
|
|
65
|
+
initialMessages,
|
|
66
|
+
persistSession = true
|
|
67
|
+
}) {
|
|
68
|
+
await setCwd(cwd);
|
|
69
|
+
const message = createUserMessage(prompt);
|
|
70
|
+
const messages = [...initialMessages ?? [], message];
|
|
71
|
+
const [systemPrompt, context, model] = await Promise.all([
|
|
72
|
+
getSystemPrompt(),
|
|
73
|
+
getContext(),
|
|
74
|
+
getModelManager().getModelName("main")
|
|
75
|
+
]);
|
|
76
|
+
for await (const m of query(
|
|
77
|
+
messages,
|
|
78
|
+
systemPrompt,
|
|
79
|
+
context,
|
|
80
|
+
hasPermissionsToUseTool,
|
|
81
|
+
{
|
|
82
|
+
options: {
|
|
83
|
+
commands,
|
|
84
|
+
tools,
|
|
85
|
+
verbose,
|
|
86
|
+
safeMode,
|
|
87
|
+
forkNumber: 0,
|
|
88
|
+
messageLogName: "unused",
|
|
89
|
+
maxThinkingTokens: 0,
|
|
90
|
+
persistSession
|
|
91
|
+
},
|
|
92
|
+
abortController: new AbortController(),
|
|
93
|
+
messageId: void 0,
|
|
94
|
+
readFileTimestamps: {},
|
|
95
|
+
setToolJSX: () => {
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
)) {
|
|
99
|
+
messages.push(m);
|
|
100
|
+
}
|
|
101
|
+
const result = last(messages);
|
|
102
|
+
if (!result || result.type !== "assistant") {
|
|
103
|
+
throw new Error("Expected content to be an assistant message");
|
|
104
|
+
}
|
|
105
|
+
const textContent = result.message.content.find((c) => c.type === "text");
|
|
106
|
+
if (!textContent) {
|
|
107
|
+
throw new Error(
|
|
108
|
+
`Expected at least one text content item, but got ${JSON.stringify(
|
|
109
|
+
result.message.content,
|
|
110
|
+
null,
|
|
111
|
+
2
|
|
112
|
+
)}`
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
const messageHistoryFile = getMessagesPath(messageLogName, 0, 0);
|
|
116
|
+
overwriteLog(messageHistoryFile, messages);
|
|
117
|
+
return {
|
|
118
|
+
resultText: textContent.text,
|
|
119
|
+
totalCost: getTotalCost(),
|
|
120
|
+
messageHistoryFile
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
export {
|
|
124
|
+
ask
|
|
125
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/app/ask.ts"],
|
|
4
|
+
"sourcesContent": ["import { last } from 'lodash-es'\nimport { Command } from '@commands'\nimport { getSystemPrompt } from '@constants/prompts'\nimport { getContext } from '@context'\nimport { getTotalCost } from '@costTracker'\nimport { Message, query } from '@query'\nimport type { CanUseToolFn } from '@kode-types/canUseTool'\nimport { Tool } from '@tool'\nimport { getModelManager } from '@utils/model'\nimport { setCwd } from '@utils/state'\nimport { getMessagesPath, overwriteLog } from '@utils/log'\nimport { createUserMessage } from '@utils/messages'\n\ntype Props = {\n commands: Command[]\n safeMode?: boolean\n hasPermissionsToUseTool: CanUseToolFn\n messageLogName: string\n prompt: string\n cwd: string\n tools: Tool[]\n verbose?: boolean\n initialMessages?: Message[]\n persistSession?: boolean\n}\n\nexport async function ask({\n commands,\n safeMode,\n hasPermissionsToUseTool,\n messageLogName,\n prompt,\n cwd,\n tools,\n verbose = false,\n initialMessages,\n persistSession = true,\n}: Props): Promise<{\n resultText: string\n totalCost: number\n messageHistoryFile: string\n}> {\n await setCwd(cwd)\n const message = createUserMessage(prompt)\n const messages: Message[] = [...(initialMessages ?? []), message]\n\n const [systemPrompt, context, model] = await Promise.all([\n getSystemPrompt(),\n getContext(),\n getModelManager().getModelName('main'),\n ])\n\n for await (const m of query(\n messages,\n systemPrompt,\n context,\n hasPermissionsToUseTool,\n {\n options: {\n commands,\n tools,\n verbose,\n safeMode,\n forkNumber: 0,\n messageLogName: 'unused',\n maxThinkingTokens: 0,\n persistSession,\n },\n abortController: new AbortController(),\n messageId: undefined,\n readFileTimestamps: {},\n setToolJSX: () => {},\n },\n )) {\n messages.push(m)\n }\n\n const result = last(messages)\n if (!result || result.type !== 'assistant') {\n throw new Error('Expected content to be an assistant message')\n }\n\n const textContent = result.message.content.find(c => c.type === 'text')\n if (!textContent) {\n throw new Error(\n `Expected at least one text content item, but got ${JSON.stringify(\n result.message.content,\n null,\n 2,\n )}`,\n )\n }\n\n const messageHistoryFile = getMessagesPath(messageLogName, 0, 0)\n overwriteLog(messageHistoryFile, messages)\n\n return {\n resultText: textContent.text,\n totalCost: getTotalCost(),\n messageHistoryFile,\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AA0BrB,eAAsB,IAAI;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA,iBAAiB;AACnB,GAIG;AACD,QAAM,OAAO,GAAG;AAChB,QAAM,UAAU,kBAAkB,MAAM;AACxC,QAAM,WAAsB,CAAC,GAAI,mBAAmB,CAAC,GAAI,OAAO;AAEhE,QAAM,CAAC,cAAc,SAAS,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IACvD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB,EAAE,aAAa,MAAM;AAAA,EACvC,CAAC;AAED,mBAAiB,KAAK;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,SAAS;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,mBAAmB;AAAA,QACnB;AAAA,MACF;AAAA,MACA,iBAAiB,IAAI,gBAAgB;AAAA,MACrC,WAAW;AAAA,MACX,oBAAoB,CAAC;AAAA,MACrB,YAAY,MAAM;AAAA,MAAC;AAAA,IACrB;AAAA,EACF,GAAG;AACD,aAAS,KAAK,CAAC;AAAA,EACjB;AAEA,QAAM,SAAS,KAAK,QAAQ;AAC5B,MAAI,CAAC,UAAU,OAAO,SAAS,aAAa;AAC1C,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAEA,QAAM,cAAc,OAAO,QAAQ,QAAQ,KAAK,OAAK,EAAE,SAAS,MAAM;AACtE,MAAI,CAAC,aAAa;AAChB,UAAM,IAAI;AAAA,MACR,oDAAoD,KAAK;AAAA,QACvD,OAAO,QAAQ;AAAA,QACf;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,qBAAqB,gBAAgB,gBAAgB,GAAG,CAAC;AAC/D,eAAa,oBAAoB,QAAQ;AAEzC,SAAO;AAAA,IACL,YAAY,YAAY;AAAA,IACxB,WAAW,aAAa;AAAA,IACxB;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
assertMinVersion,
|
|
5
|
+
checkAndNotifyUpdate,
|
|
6
|
+
getLatestVersion,
|
|
7
|
+
getUpdateCommandSuggestions
|
|
8
|
+
} from "./chunk-3IN27HA5.js";
|
|
9
|
+
import "./chunk-YXYYDIMI.js";
|
|
10
|
+
import "./chunk-F2SJXUDI.js";
|
|
11
|
+
import "./chunk-JC6NCUG5.js";
|
|
12
|
+
export {
|
|
13
|
+
assertMinVersion,
|
|
14
|
+
checkAndNotifyUpdate,
|
|
15
|
+
getLatestVersion,
|
|
16
|
+
getUpdateCommandSuggestions
|
|
17
|
+
};
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import {
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
PRODUCT_NAME,
|
|
5
|
+
execFileNoThrow,
|
|
6
|
+
logError
|
|
7
|
+
} from "./chunk-YXYYDIMI.js";
|
|
8
|
+
import {
|
|
9
|
+
MACRO
|
|
10
|
+
} from "./chunk-F2SJXUDI.js";
|
|
11
|
+
|
|
12
|
+
// src/utils/session/autoUpdater.ts
|
|
13
|
+
async function getSemver() {
|
|
14
|
+
const mod = await import("semver");
|
|
15
|
+
return mod?.default ?? mod;
|
|
16
|
+
}
|
|
9
17
|
async function assertMinVersion() {
|
|
10
18
|
try {
|
|
11
|
-
const versionConfig =
|
|
12
|
-
|
|
13
|
-
{
|
|
14
|
-
|
|
15
|
-
if (versionConfig.minVersion && lt(MACRO.VERSION, versionConfig.minVersion)) {
|
|
19
|
+
const versionConfig = { minVersion: "0.0.0" };
|
|
20
|
+
if (versionConfig.minVersion) {
|
|
21
|
+
const { lt } = await getSemver();
|
|
22
|
+
if (!lt(MACRO.VERSION, versionConfig.minVersion)) return;
|
|
16
23
|
const suggestions = await getUpdateCommandSuggestions();
|
|
17
|
-
|
|
24
|
+
process.stderr.write(
|
|
18
25
|
`Your ${PRODUCT_NAME} version ${MACRO.VERSION} is below the minimum supported ${versionConfig.minVersion}.
|
|
19
26
|
Update using one of:
|
|
20
|
-
` + suggestions.map((c) => ` ${c}`).join("\n")
|
|
27
|
+
` + suggestions.map((c) => ` ${c}`).join("\n") + "\n"
|
|
21
28
|
);
|
|
22
29
|
process.exit(1);
|
|
23
30
|
}
|
|
@@ -72,6 +79,10 @@ async function getUpdateCommandSuggestions() {
|
|
|
72
79
|
async function checkAndNotifyUpdate() {
|
|
73
80
|
try {
|
|
74
81
|
if (process.env.NODE_ENV === "test") return;
|
|
82
|
+
const [
|
|
83
|
+
{ isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },
|
|
84
|
+
{ env }
|
|
85
|
+
] = await Promise.all([import("./config-RUSD6G5Y.js"), import("./env-XGKBLU3D.js")]);
|
|
75
86
|
if (await isAutoUpdaterDisabled()) return;
|
|
76
87
|
if (await env.getIsDocker()) return;
|
|
77
88
|
if (!await env.hasInternetAccess()) return;
|
|
@@ -85,6 +96,7 @@ async function checkAndNotifyUpdate() {
|
|
|
85
96
|
saveGlobalConfig({ ...config, lastUpdateCheckAt: now });
|
|
86
97
|
return;
|
|
87
98
|
}
|
|
99
|
+
const { gt } = await getSemver();
|
|
88
100
|
if (gt(latest, MACRO.VERSION)) {
|
|
89
101
|
saveGlobalConfig({
|
|
90
102
|
...config,
|
|
@@ -92,9 +104,14 @@ async function checkAndNotifyUpdate() {
|
|
|
92
104
|
lastSuggestedVersion: latest
|
|
93
105
|
});
|
|
94
106
|
const suggestions = await getUpdateCommandSuggestions();
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
107
|
+
process.stderr.write(
|
|
108
|
+
[
|
|
109
|
+
`New version available: ${latest} (current: ${MACRO.VERSION})`,
|
|
110
|
+
"Run the following command to update:",
|
|
111
|
+
...suggestions.map((command) => ` ${command}`),
|
|
112
|
+
""
|
|
113
|
+
].join("\n")
|
|
114
|
+
);
|
|
98
115
|
} else {
|
|
99
116
|
saveGlobalConfig({ ...config, lastUpdateCheckAt: now });
|
|
100
117
|
}
|
|
@@ -102,10 +119,10 @@ async function checkAndNotifyUpdate() {
|
|
|
102
119
|
logError(`update-notify: ${error}`);
|
|
103
120
|
}
|
|
104
121
|
}
|
|
122
|
+
|
|
105
123
|
export {
|
|
106
124
|
assertMinVersion,
|
|
107
|
-
checkAndNotifyUpdate,
|
|
108
125
|
getLatestVersion,
|
|
109
|
-
getUpdateCommandSuggestions
|
|
126
|
+
getUpdateCommandSuggestions,
|
|
127
|
+
checkAndNotifyUpdate
|
|
110
128
|
};
|
|
111
|
-
//# sourceMappingURL=autoUpdater.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/session/autoUpdater.ts"],
|
|
4
|
+
"sourcesContent": ["import { execFileNoThrow } from '@utils/system/execFileNoThrow'\nimport { logError } from '@utils/log'\n\nimport { MACRO } from '@constants/macros'\nimport { PRODUCT_NAME } from '@constants/product'\n\nasync function getSemver() {\n const mod: any = await import('semver')\n return (mod?.default ?? mod) as {\n lt: (a: string, b: string) => boolean\n gt: (a: string, b: string) => boolean\n }\n}\n\nexport type VersionConfig = {\n minVersion: string\n}\n\nexport async function assertMinVersion(): Promise<void> {\n try {\n const versionConfig: VersionConfig = { minVersion: '0.0.0' }\n if (versionConfig.minVersion) {\n const { lt } = await getSemver()\n if (!lt(MACRO.VERSION, versionConfig.minVersion)) return\n\n const suggestions = await getUpdateCommandSuggestions()\n process.stderr.write(\n `Your ${PRODUCT_NAME} version ${MACRO.VERSION} is below the minimum supported ${versionConfig.minVersion}.\\n` +\n 'Update using one of:\\n' +\n suggestions.map(c => ` ${c}`).join('\\n') +\n '\\n',\n )\n process.exit(1)\n }\n } catch (error) {\n logError(`Error checking minimum version: ${error}`)\n }\n}\n\nexport async function getLatestVersion(): Promise<string | null> {\n try {\n const abortController = new AbortController()\n setTimeout(() => abortController.abort(), 5000)\n const result = await execFileNoThrow(\n 'npm',\n ['view', MACRO.PACKAGE_URL, 'version'],\n abortController.signal,\n )\n if (result.code === 0) {\n const v = result.stdout.trim()\n if (v) return v\n }\n } catch {}\n\n\t try {\n\t const controller = new AbortController()\n\t const timer = setTimeout(() => controller.abort(), 5000)\n\t const res = await fetch(\n\t `https://registry.npmjs.org/${encodeURIComponent(MACRO.PACKAGE_URL)}`,\n\t {\n\t method: 'GET',\n\t headers: {\n\t Accept: 'application/vnd.npm.install-v1+json',\n\t 'User-Agent': `${PRODUCT_NAME}/${MACRO.VERSION}`,\n\t },\n\t signal: controller.signal,\n\t },\n\t )\n\t clearTimeout(timer)\n\t if (!res.ok) return null\n\t const json: any = await res.json().catch(() => null)\n\t const latest = json && json['dist-tags'] && json['dist-tags'].latest\n\t return typeof latest === 'string' ? latest : null\n\t } catch {\n\t return null\n\t }\n\t}\n\nexport async function getUpdateCommandSuggestions(): Promise<string[]> {\n return [\n `bun add -g ${MACRO.PACKAGE_URL}@latest`,\n `npm install -g ${MACRO.PACKAGE_URL}@latest`,\n ]\n}\n\nexport async function checkAndNotifyUpdate(): Promise<void> {\n try {\n if (process.env.NODE_ENV === 'test') return\n const [\n { isAutoUpdaterDisabled, getGlobalConfig, saveGlobalConfig },\n { env },\n ] = await Promise.all([import('@utils/config'), import('@utils/config/env')])\n if (await isAutoUpdaterDisabled()) return\n if (await env.getIsDocker()) return\n if (!(await env.hasInternetAccess())) return\n\n const config: any = getGlobalConfig()\n const now = Date.now()\n const DAY_MS = 24 * 60 * 60 * 1000\n const lastCheck = Number(config.lastUpdateCheckAt || 0)\n if (lastCheck && now - lastCheck < DAY_MS) return\n\n const latest = await getLatestVersion()\n if (!latest) {\n saveGlobalConfig({ ...config, lastUpdateCheckAt: now })\n return\n }\n\n const { gt } = await getSemver()\n if (gt(latest, MACRO.VERSION)) {\n saveGlobalConfig({\n ...config,\n lastUpdateCheckAt: now,\n lastSuggestedVersion: latest,\n })\n const suggestions = await getUpdateCommandSuggestions()\n process.stderr.write(\n [\n `New version available: ${latest} (current: ${MACRO.VERSION})`,\n 'Run the following command to update:',\n ...suggestions.map(command => ` ${command}`),\n '',\n ].join('\\n'),\n )\n } else {\n saveGlobalConfig({ ...config, lastUpdateCheckAt: now })\n }\n } catch (error) {\n logError(`update-notify: ${error}`)\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
|
|
4
|
+
// src/utils/session/requestStatus.ts
|
|
5
|
+
var current = { kind: "idle", updatedAt: Date.now() };
|
|
6
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
7
|
+
function getRequestStatus() {
|
|
8
|
+
return current;
|
|
9
|
+
}
|
|
10
|
+
function setRequestStatus(status) {
|
|
11
|
+
current = { ...status, updatedAt: Date.now() };
|
|
12
|
+
for (const listener of listeners) listener(current);
|
|
13
|
+
}
|
|
14
|
+
function subscribeRequestStatus(listener) {
|
|
15
|
+
listeners.add(listener);
|
|
16
|
+
return () => listeners.delete(listener);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
getRequestStatus,
|
|
21
|
+
setRequestStatus,
|
|
22
|
+
subscribeRequestStatus
|
|
23
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/session/requestStatus.ts"],
|
|
4
|
+
"sourcesContent": ["export type RequestStatusKind = 'idle' | 'thinking' | 'streaming' | 'tool'\n\nexport type RequestStatus = {\n kind: RequestStatusKind\n detail?: string\n updatedAt: number\n}\n\nlet current: RequestStatus = { kind: 'idle', updatedAt: Date.now() }\nconst listeners = new Set<(status: RequestStatus) => void>()\n\nexport function getRequestStatus(): RequestStatus {\n return current\n}\n\nexport function setRequestStatus(\n status: Omit<RequestStatus, 'updatedAt'>,\n): void {\n current = { ...status, updatedAt: Date.now() }\n for (const listener of listeners) listener(current)\n}\n\nexport function subscribeRequestStatus(\n listener: (status: RequestStatus) => void,\n): () => void {\n listeners.add(listener)\n return () => listeners.delete(listener)\n}\n"],
|
|
5
|
+
"mappings": ";;;;AAQA,IAAI,UAAyB,EAAE,MAAM,QAAQ,WAAW,KAAK,IAAI,EAAE;AACnE,IAAM,YAAY,oBAAI,IAAqC;AAEpD,SAAS,mBAAkC;AAChD,SAAO;AACT;AAEO,SAAS,iBACd,QACM;AACN,YAAU,EAAE,GAAG,QAAQ,WAAW,KAAK,IAAI,EAAE;AAC7C,aAAW,YAAY,UAAW,UAAS,OAAO;AACpD;AAEO,SAAS,uBACd,UACY;AACZ,YAAU,IAAI,QAAQ;AACtB,SAAO,MAAM,UAAU,OAAO,QAAQ;AACxC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { createRequire as __kodeCreateRequire } from "node:module";
|
|
2
|
+
const require = __kodeCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
BunShell,
|
|
5
|
+
execFileNoThrow,
|
|
6
|
+
logError
|
|
7
|
+
} from "./chunk-YXYYDIMI.js";
|
|
8
|
+
|
|
9
|
+
// src/utils/system/ripgrep.ts
|
|
10
|
+
import { rgPath } from "@vscode/ripgrep";
|
|
11
|
+
import { findActualExecutable } from "spawn-rx";
|
|
12
|
+
import { memoize } from "lodash-es";
|
|
13
|
+
import { existsSync } from "node:fs";
|
|
14
|
+
import { execFile } from "child_process";
|
|
15
|
+
import debug from "debug";
|
|
16
|
+
import { quote } from "shell-quote";
|
|
17
|
+
var d = debug("kode:ripgrep");
|
|
18
|
+
function isTruthyEnv(value) {
|
|
19
|
+
if (!value) return false;
|
|
20
|
+
return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
|
|
21
|
+
}
|
|
22
|
+
function resolveRipgrepPathOrThrow() {
|
|
23
|
+
const explicit = process.env.KODE_RIPGREP_PATH;
|
|
24
|
+
if (explicit) {
|
|
25
|
+
if (!existsSync(explicit)) {
|
|
26
|
+
throw new Error(`KODE_RIPGREP_PATH points to a missing file: ${explicit}`);
|
|
27
|
+
}
|
|
28
|
+
return explicit;
|
|
29
|
+
}
|
|
30
|
+
const preferBundled = isTruthyEnv(process.env.USE_BUILTIN_RIPGREP);
|
|
31
|
+
if (!preferBundled) {
|
|
32
|
+
const { cmd } = findActualExecutable("rg", []);
|
|
33
|
+
d(`ripgrep initially resolved as: ${cmd}`);
|
|
34
|
+
if (cmd !== "rg") {
|
|
35
|
+
return cmd;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (!rgPath || !existsSync(rgPath)) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
[
|
|
41
|
+
"ripgrep (rg) was not found on PATH, and @vscode/ripgrep is missing.",
|
|
42
|
+
"Fix:",
|
|
43
|
+
"- Install ripgrep: https://github.com/BurntSushi/ripgrep",
|
|
44
|
+
"- Or reinstall @shareai-lab/kode (ensure dependencies are present)"
|
|
45
|
+
].join("\n")
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
d("Using @vscode/ripgrep fallback: %s", rgPath);
|
|
49
|
+
return rgPath;
|
|
50
|
+
}
|
|
51
|
+
var getRipgrepPath = memoize(() => resolveRipgrepPathOrThrow());
|
|
52
|
+
async function ripGrep(args, target, abortSignal, options) {
|
|
53
|
+
await codesignRipgrepIfNecessary();
|
|
54
|
+
const rg = getRipgrepPath();
|
|
55
|
+
d("ripgrep called: %s %o", rg, target, args);
|
|
56
|
+
if (options?.sandbox?.enabled === true) {
|
|
57
|
+
const cmd = quote([rg, ...args, target]);
|
|
58
|
+
const result = await BunShell.getInstance().exec(cmd, abortSignal, 1e4, {
|
|
59
|
+
sandbox: options.sandbox
|
|
60
|
+
});
|
|
61
|
+
if (result.code === 1) return [];
|
|
62
|
+
if (result.code !== 0) {
|
|
63
|
+
logError(`ripgrep failed with exit code ${result.code}: ${result.stderr}`);
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
return result.stdout.trim().split("\n").filter(Boolean);
|
|
67
|
+
}
|
|
68
|
+
return new Promise((resolve) => {
|
|
69
|
+
execFile(
|
|
70
|
+
rg,
|
|
71
|
+
[...args, target],
|
|
72
|
+
{
|
|
73
|
+
maxBuffer: 1e6,
|
|
74
|
+
signal: abortSignal,
|
|
75
|
+
timeout: 1e4
|
|
76
|
+
},
|
|
77
|
+
(error, stdout) => {
|
|
78
|
+
if (error) {
|
|
79
|
+
if (error.code !== 1) {
|
|
80
|
+
d("ripgrep error: %o", error);
|
|
81
|
+
logError(error);
|
|
82
|
+
}
|
|
83
|
+
resolve([]);
|
|
84
|
+
} else {
|
|
85
|
+
d("ripgrep succeeded with %s", stdout);
|
|
86
|
+
resolve(stdout.trim().split("\n").filter(Boolean));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function listAllContentFiles(path, abortSignal, limit) {
|
|
93
|
+
try {
|
|
94
|
+
d("listAllContentFiles called: %s", path);
|
|
95
|
+
return (await ripGrep(["-l", ".", path], path, abortSignal)).slice(0, limit);
|
|
96
|
+
} catch (e) {
|
|
97
|
+
d("listAllContentFiles failed: %o", e);
|
|
98
|
+
logError(e);
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
var alreadyDoneSignCheck = false;
|
|
103
|
+
async function codesignRipgrepIfNecessary() {
|
|
104
|
+
if (process.platform !== "darwin" || alreadyDoneSignCheck) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
alreadyDoneSignCheck = true;
|
|
108
|
+
d("checking if ripgrep is already signed");
|
|
109
|
+
const lines = (await execFileNoThrow(
|
|
110
|
+
"codesign",
|
|
111
|
+
["-vv", "-d", getRipgrepPath()],
|
|
112
|
+
void 0,
|
|
113
|
+
void 0,
|
|
114
|
+
false
|
|
115
|
+
)).stdout.split("\n");
|
|
116
|
+
const needsSigned = lines.find((line) => line.includes("linker-signed"));
|
|
117
|
+
if (!needsSigned) {
|
|
118
|
+
d("seems to be already signed");
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
d("signing ripgrep");
|
|
123
|
+
const signResult = await execFileNoThrow("codesign", [
|
|
124
|
+
"--sign",
|
|
125
|
+
"-",
|
|
126
|
+
"--force",
|
|
127
|
+
"--preserve-metadata=entitlements,requirements,flags,runtime",
|
|
128
|
+
getRipgrepPath()
|
|
129
|
+
]);
|
|
130
|
+
if (signResult.code !== 0) {
|
|
131
|
+
d("failed to sign ripgrep: %o", signResult);
|
|
132
|
+
logError(
|
|
133
|
+
`Failed to sign ripgrep: ${signResult.stdout} ${signResult.stderr}`
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
d("removing quarantine");
|
|
137
|
+
const quarantineResult = await execFileNoThrow("xattr", [
|
|
138
|
+
"-d",
|
|
139
|
+
"com.apple.quarantine",
|
|
140
|
+
getRipgrepPath()
|
|
141
|
+
]);
|
|
142
|
+
if (quarantineResult.code !== 0) {
|
|
143
|
+
d("failed to remove quarantine: %o", quarantineResult);
|
|
144
|
+
logError(
|
|
145
|
+
`Failed to remove quarantine: ${quarantineResult.stdout} ${quarantineResult.stderr}`
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
} catch (e) {
|
|
149
|
+
d("failed during sign: %o", e);
|
|
150
|
+
logError(e);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function resetRipgrepPathCacheForTests() {
|
|
154
|
+
;
|
|
155
|
+
getRipgrepPath.cache?.clear?.();
|
|
156
|
+
alreadyDoneSignCheck = false;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export {
|
|
160
|
+
getRipgrepPath,
|
|
161
|
+
ripGrep,
|
|
162
|
+
listAllContentFiles,
|
|
163
|
+
resetRipgrepPathCacheForTests
|
|
164
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/utils/system/ripgrep.ts"],
|
|
4
|
+
"sourcesContent": ["import { rgPath } from '@vscode/ripgrep'\nimport { findActualExecutable } from 'spawn-rx'\nimport { memoize } from 'lodash-es'\nimport { existsSync } from 'node:fs'\nimport { execFile } from 'child_process'\nimport debug from 'debug'\nimport { quote } from 'shell-quote'\nimport { logError } from '@utils/log'\nimport { execFileNoThrow } from '@utils/system/execFileNoThrow'\nimport type { BunShellSandboxOptions } from '@utils/bun/shell'\nimport { BunShell } from '@utils/bun/shell'\n\nconst d = debug('kode:ripgrep')\n\nfunction isTruthyEnv(value: string | undefined): boolean {\n if (!value) return false\n return ['1', 'true', 'yes', 'on'].includes(value.trim().toLowerCase())\n}\n\nfunction resolveRipgrepPathOrThrow(): string {\n const explicit = process.env.KODE_RIPGREP_PATH\n if (explicit) {\n if (!existsSync(explicit)) {\n throw new Error(`KODE_RIPGREP_PATH points to a missing file: ${explicit}`)\n }\n return explicit\n }\n\n const preferBundled = isTruthyEnv(process.env.USE_BUILTIN_RIPGREP)\n if (!preferBundled) {\n const { cmd } = findActualExecutable('rg', [])\n d(`ripgrep initially resolved as: ${cmd}`)\n if (cmd !== 'rg') {\n return cmd\n }\n }\n\n if (!rgPath || !existsSync(rgPath)) {\n throw new Error(\n [\n 'ripgrep (rg) was not found on PATH, and @vscode/ripgrep is missing.',\n 'Fix:',\n '- Install ripgrep: https://github.com/BurntSushi/ripgrep',\n '- Or reinstall @shareai-lab/kode (ensure dependencies are present)',\n ].join('\\n'),\n )\n }\n\n d('Using @vscode/ripgrep fallback: %s', rgPath)\n return rgPath\n}\n\nexport const getRipgrepPath = memoize((): string => resolveRipgrepPathOrThrow())\n\nexport async function ripGrep(\n args: string[],\n target: string,\n abortSignal: AbortSignal,\n options?: { sandbox?: BunShellSandboxOptions },\n): Promise<string[]> {\n await codesignRipgrepIfNecessary()\n const rg = getRipgrepPath()\n d('ripgrep called: %s %o', rg, target, args)\n\n if (options?.sandbox?.enabled === true) {\n const cmd = quote([rg, ...args, target])\n const result = await BunShell.getInstance().exec(cmd, abortSignal, 10_000, {\n sandbox: options.sandbox,\n })\n if (result.code === 1) return []\n if (result.code !== 0) {\n logError(`ripgrep failed with exit code ${result.code}: ${result.stderr}`)\n return []\n }\n return result.stdout.trim().split('\\n').filter(Boolean)\n }\n\n return new Promise(resolve => {\n execFile(\n rg,\n [...args, target],\n {\n maxBuffer: 1_000_000,\n signal: abortSignal,\n timeout: 10_000,\n },\n (error, stdout) => {\n if (error) {\n if (error.code !== 1) {\n d('ripgrep error: %o', error)\n logError(error)\n }\n resolve([])\n } else {\n d('ripgrep succeeded with %s', stdout)\n resolve(stdout.trim().split('\\n').filter(Boolean))\n }\n },\n )\n })\n}\n\nexport async function listAllContentFiles(\n path: string,\n abortSignal: AbortSignal,\n limit: number,\n): Promise<string[]> {\n try {\n d('listAllContentFiles called: %s', path)\n return (await ripGrep(['-l', '.', path], path, abortSignal)).slice(0, limit)\n } catch (e) {\n d('listAllContentFiles failed: %o', e)\n\n logError(e)\n return []\n }\n}\n\nlet alreadyDoneSignCheck = false\nasync function codesignRipgrepIfNecessary(): Promise<void> {\n if (process.platform !== 'darwin' || alreadyDoneSignCheck) {\n return\n }\n\n alreadyDoneSignCheck = true\n\n d('checking if ripgrep is already signed')\n const lines = (\n await execFileNoThrow(\n 'codesign',\n ['-vv', '-d', getRipgrepPath()],\n undefined,\n undefined,\n false,\n )\n ).stdout.split('\\n')\n\n const needsSigned = lines.find(line => line.includes('linker-signed'))\n if (!needsSigned) {\n d('seems to be already signed')\n return\n }\n\n try {\n d('signing ripgrep')\n const signResult = await execFileNoThrow('codesign', [\n '--sign',\n '-',\n '--force',\n '--preserve-metadata=entitlements,requirements,flags,runtime',\n getRipgrepPath(),\n ])\n\n if (signResult.code !== 0) {\n d('failed to sign ripgrep: %o', signResult)\n logError(\n `Failed to sign ripgrep: ${signResult.stdout} ${signResult.stderr}`,\n )\n }\n\n d('removing quarantine')\n const quarantineResult = await execFileNoThrow('xattr', [\n '-d',\n 'com.apple.quarantine',\n getRipgrepPath(),\n ])\n\n if (quarantineResult.code !== 0) {\n d('failed to remove quarantine: %o', quarantineResult)\n logError(\n `Failed to remove quarantine: ${quarantineResult.stdout} ${quarantineResult.stderr}`,\n )\n }\n } catch (e) {\n d('failed during sign: %o', e)\n logError(e)\n }\n}\n\nexport function resetRipgrepPathCacheForTests(): void {\n ;(getRipgrepPath as any).cache?.clear?.()\n alreadyDoneSignCheck = false\n}\n\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,4BAA4B;AACrC,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AACzB,OAAO,WAAW;AAClB,SAAS,aAAa;AAMtB,IAAM,IAAI,MAAM,cAAc;AAE9B,SAAS,YAAY,OAAoC;AACvD,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,CAAC,KAAK,QAAQ,OAAO,IAAI,EAAE,SAAS,MAAM,KAAK,EAAE,YAAY,CAAC;AACvE;AAEA,SAAS,4BAAoC;AAC3C,QAAM,WAAW,QAAQ,IAAI;AAC7B,MAAI,UAAU;AACZ,QAAI,CAAC,WAAW,QAAQ,GAAG;AACzB,YAAM,IAAI,MAAM,+CAA+C,QAAQ,EAAE;AAAA,IAC3E;AACA,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,YAAY,QAAQ,IAAI,mBAAmB;AACjE,MAAI,CAAC,eAAe;AAClB,UAAM,EAAE,IAAI,IAAI,qBAAqB,MAAM,CAAC,CAAC;AAC7C,MAAE,kCAAkC,GAAG,EAAE;AACzC,QAAI,QAAQ,MAAM;AAChB,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,CAAC,UAAU,CAAC,WAAW,MAAM,GAAG;AAClC,UAAM,IAAI;AAAA,MACR;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,EAAE,KAAK,IAAI;AAAA,IACb;AAAA,EACF;AAEA,IAAE,sCAAsC,MAAM;AAC9C,SAAO;AACT;AAEO,IAAM,iBAAiB,QAAQ,MAAc,0BAA0B,CAAC;AAE/E,eAAsB,QACpB,MACA,QACA,aACA,SACmB;AACnB,QAAM,2BAA2B;AACjC,QAAM,KAAK,eAAe;AAC1B,IAAE,yBAAyB,IAAI,QAAQ,IAAI;AAE3C,MAAI,SAAS,SAAS,YAAY,MAAM;AACtC,UAAM,MAAM,MAAM,CAAC,IAAI,GAAG,MAAM,MAAM,CAAC;AACvC,UAAM,SAAS,MAAM,SAAS,YAAY,EAAE,KAAK,KAAK,aAAa,KAAQ;AAAA,MACzE,SAAS,QAAQ;AAAA,IACnB,CAAC;AACD,QAAI,OAAO,SAAS,EAAG,QAAO,CAAC;AAC/B,QAAI,OAAO,SAAS,GAAG;AACrB,eAAS,iCAAiC,OAAO,IAAI,KAAK,OAAO,MAAM,EAAE;AACzE,aAAO,CAAC;AAAA,IACV;AACA,WAAO,OAAO,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,OAAO,OAAO;AAAA,EACxD;AAEA,SAAO,IAAI,QAAQ,aAAW;AAC5B;AAAA,MACE;AAAA,MACA,CAAC,GAAG,MAAM,MAAM;AAAA,MAChB;AAAA,QACE,WAAW;AAAA,QACX,QAAQ;AAAA,QACR,SAAS;AAAA,MACX;AAAA,MACA,CAAC,OAAO,WAAW;AACjB,YAAI,OAAO;AACT,cAAI,MAAM,SAAS,GAAG;AACpB,cAAE,qBAAqB,KAAK;AAC5B,qBAAS,KAAK;AAAA,UAChB;AACA,kBAAQ,CAAC,CAAC;AAAA,QACZ,OAAO;AACL,YAAE,6BAA6B,MAAM;AACrC,kBAAQ,OAAO,KAAK,EAAE,MAAM,IAAI,EAAE,OAAO,OAAO,CAAC;AAAA,QACnD;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,oBACpB,MACA,aACA,OACmB;AACnB,MAAI;AACF,MAAE,kCAAkC,IAAI;AACxC,YAAQ,MAAM,QAAQ,CAAC,MAAM,KAAK,IAAI,GAAG,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK;AAAA,EAC7E,SAAS,GAAG;AACV,MAAE,kCAAkC,CAAC;AAErC,aAAS,CAAC;AACV,WAAO,CAAC;AAAA,EACV;AACF;AAEA,IAAI,uBAAuB;AAC3B,eAAe,6BAA4C;AACzD,MAAI,QAAQ,aAAa,YAAY,sBAAsB;AACzD;AAAA,EACF;AAEA,yBAAuB;AAEvB,IAAE,uCAAuC;AACzC,QAAM,SACJ,MAAM;AAAA,IACJ;AAAA,IACA,CAAC,OAAO,MAAM,eAAe,CAAC;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACF,GACA,OAAO,MAAM,IAAI;AAEnB,QAAM,cAAc,MAAM,KAAK,UAAQ,KAAK,SAAS,eAAe,CAAC;AACrE,MAAI,CAAC,aAAa;AAChB,MAAE,4BAA4B;AAC9B;AAAA,EACF;AAEA,MAAI;AACF,MAAE,iBAAiB;AACnB,UAAM,aAAa,MAAM,gBAAgB,YAAY;AAAA,MACnD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,IACjB,CAAC;AAED,QAAI,WAAW,SAAS,GAAG;AACzB,QAAE,8BAA8B,UAAU;AAC1C;AAAA,QACE,2BAA2B,WAAW,MAAM,IAAI,WAAW,MAAM;AAAA,MACnE;AAAA,IACF;AAEA,MAAE,qBAAqB;AACvB,UAAM,mBAAmB,MAAM,gBAAgB,SAAS;AAAA,MACtD;AAAA,MACA;AAAA,MACA,eAAe;AAAA,IACjB,CAAC;AAED,QAAI,iBAAiB,SAAS,GAAG;AAC/B,QAAE,mCAAmC,gBAAgB;AACrD;AAAA,QACE,gCAAgC,iBAAiB,MAAM,IAAI,iBAAiB,MAAM;AAAA,MACpF;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,MAAE,0BAA0B,CAAC;AAC7B,aAAS,CAAC;AAAA,EACZ;AACF;AAEO,SAAS,gCAAsC;AACpD;AAAC,EAAC,eAAuB,OAAO,QAAQ;AACxC,yBAAuB;AACzB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|