@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,252 +0,0 @@
|
|
|
1
|
-
const DEFAULT_CONFIG = {
|
|
2
|
-
weights: {
|
|
3
|
-
prefix: 0.35,
|
|
4
|
-
// Strong weight for prefix matching
|
|
5
|
-
substring: 0.2,
|
|
6
|
-
// Good for partial matches
|
|
7
|
-
abbreviation: 0.3,
|
|
8
|
-
// Key for "nde"→"node" cases
|
|
9
|
-
editDistance: 0.1,
|
|
10
|
-
// Typo tolerance
|
|
11
|
-
popularity: 0.05
|
|
12
|
-
// Slight bias for common commands
|
|
13
|
-
},
|
|
14
|
-
minScore: 10,
|
|
15
|
-
// Lower threshold for better matching
|
|
16
|
-
maxEditDistance: 2,
|
|
17
|
-
popularCommands: [
|
|
18
|
-
"node",
|
|
19
|
-
"npm",
|
|
20
|
-
"git",
|
|
21
|
-
"ls",
|
|
22
|
-
"cd",
|
|
23
|
-
"cat",
|
|
24
|
-
"grep",
|
|
25
|
-
"find",
|
|
26
|
-
"cp",
|
|
27
|
-
"mv",
|
|
28
|
-
"python",
|
|
29
|
-
"java",
|
|
30
|
-
"docker",
|
|
31
|
-
"curl",
|
|
32
|
-
"wget",
|
|
33
|
-
"vim",
|
|
34
|
-
"nano"
|
|
35
|
-
]
|
|
36
|
-
};
|
|
37
|
-
class FuzzyMatcher {
|
|
38
|
-
config;
|
|
39
|
-
constructor(config = {}) {
|
|
40
|
-
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
41
|
-
const weightSum = Object.values(this.config.weights).reduce((a, b) => a + b, 0);
|
|
42
|
-
if (Math.abs(weightSum - 1) > 0.01) {
|
|
43
|
-
Object.keys(this.config.weights).forEach((key) => {
|
|
44
|
-
this.config.weights[key] /= weightSum;
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Calculate fuzzy match score for a candidate against a query
|
|
50
|
-
*/
|
|
51
|
-
match(candidate, query) {
|
|
52
|
-
const text = candidate.toLowerCase();
|
|
53
|
-
const pattern = query.toLowerCase();
|
|
54
|
-
if (text === pattern) {
|
|
55
|
-
return { score: 1e3, algorithm: "exact", confidence: 1 };
|
|
56
|
-
}
|
|
57
|
-
if (text.startsWith(pattern)) {
|
|
58
|
-
return {
|
|
59
|
-
score: 900 + (10 - pattern.length),
|
|
60
|
-
algorithm: "prefix-exact",
|
|
61
|
-
confidence: 0.95
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
const scores = {
|
|
65
|
-
prefix: this.prefixScore(text, pattern),
|
|
66
|
-
substring: this.substringScore(text, pattern),
|
|
67
|
-
abbreviation: this.abbreviationScore(text, pattern),
|
|
68
|
-
editDistance: this.editDistanceScore(text, pattern),
|
|
69
|
-
popularity: this.popularityScore(text)
|
|
70
|
-
};
|
|
71
|
-
const rawScore = Object.entries(scores).reduce((total, [algorithm, score]) => {
|
|
72
|
-
const weight = this.config.weights[algorithm];
|
|
73
|
-
return total + score * weight;
|
|
74
|
-
}, 0);
|
|
75
|
-
const lengthPenalty = Math.max(0, text.length - 6) * 1.5;
|
|
76
|
-
const finalScore = Math.max(0, rawScore - lengthPenalty);
|
|
77
|
-
const maxAlgorithm = Object.entries(scores).reduce(
|
|
78
|
-
(max, [alg, score]) => score > max.score ? { algorithm: alg, score } : max,
|
|
79
|
-
{ algorithm: "none", score: 0 }
|
|
80
|
-
);
|
|
81
|
-
const confidence = Math.min(1, finalScore / 100);
|
|
82
|
-
return {
|
|
83
|
-
score: finalScore,
|
|
84
|
-
algorithm: maxAlgorithm.algorithm,
|
|
85
|
-
confidence
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Algorithm 1: Prefix Matching (like pinyin prefix)
|
|
90
|
-
* Handles cases like "nod" → "node"
|
|
91
|
-
*/
|
|
92
|
-
prefixScore(text, pattern) {
|
|
93
|
-
if (!text.startsWith(pattern)) return 0;
|
|
94
|
-
const coverage = pattern.length / text.length;
|
|
95
|
-
return 100 * coverage;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Algorithm 2: Substring Matching (like pinyin contains)
|
|
99
|
-
* Handles cases like "ode" → "node", "py3" → "python3"
|
|
100
|
-
*/
|
|
101
|
-
substringScore(text, pattern) {
|
|
102
|
-
const index = text.indexOf(pattern);
|
|
103
|
-
if (index !== -1) {
|
|
104
|
-
const positionFactor = Math.max(0, 10 - index) / 10;
|
|
105
|
-
const coverageFactor = pattern.length / text.length;
|
|
106
|
-
return 80 * positionFactor * coverageFactor;
|
|
107
|
-
}
|
|
108
|
-
const numMatch = pattern.match(/^(.+?)(\d+)$/);
|
|
109
|
-
if (numMatch) {
|
|
110
|
-
const [, prefix, num] = numMatch;
|
|
111
|
-
if (text.startsWith(prefix) && text.endsWith(num)) {
|
|
112
|
-
const coverageFactor = pattern.length / text.length;
|
|
113
|
-
return 70 * coverageFactor + 20;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return 0;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Algorithm 3: Abbreviation Matching (key innovation)
|
|
120
|
-
* Handles cases like "nde" → "node", "pyt3" → "python3", "gp5" → "gpt-5"
|
|
121
|
-
*/
|
|
122
|
-
abbreviationScore(text, pattern) {
|
|
123
|
-
let score = 0;
|
|
124
|
-
let textPos = 0;
|
|
125
|
-
let perfectStart = false;
|
|
126
|
-
let consecutiveMatches = 0;
|
|
127
|
-
let wordBoundaryMatches = 0;
|
|
128
|
-
const textWords = text.split("-");
|
|
129
|
-
const textClean = text.replace(/-/g, "").toLowerCase();
|
|
130
|
-
for (let i = 0; i < pattern.length; i++) {
|
|
131
|
-
const char = pattern[i];
|
|
132
|
-
let charFound = false;
|
|
133
|
-
for (let j = textPos; j < textClean.length; j++) {
|
|
134
|
-
if (textClean[j] === char) {
|
|
135
|
-
charFound = true;
|
|
136
|
-
let originalPos = 0;
|
|
137
|
-
let cleanPos = 0;
|
|
138
|
-
for (let k = 0; k < text.length; k++) {
|
|
139
|
-
if (text[k] === "-") continue;
|
|
140
|
-
if (cleanPos === j) {
|
|
141
|
-
originalPos = k;
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
cleanPos++;
|
|
145
|
-
}
|
|
146
|
-
if (j === textPos) {
|
|
147
|
-
consecutiveMatches++;
|
|
148
|
-
} else {
|
|
149
|
-
consecutiveMatches = 1;
|
|
150
|
-
}
|
|
151
|
-
if (i === 0 && j === 0) {
|
|
152
|
-
score += 50;
|
|
153
|
-
perfectStart = true;
|
|
154
|
-
} else if (originalPos === 0 || text[originalPos - 1] === "-") {
|
|
155
|
-
score += 35;
|
|
156
|
-
wordBoundaryMatches++;
|
|
157
|
-
} else if (j <= 2) {
|
|
158
|
-
score += 20;
|
|
159
|
-
} else if (j <= 6) {
|
|
160
|
-
score += 10;
|
|
161
|
-
} else {
|
|
162
|
-
score += 5;
|
|
163
|
-
}
|
|
164
|
-
if (consecutiveMatches > 1) {
|
|
165
|
-
score += consecutiveMatches * 5;
|
|
166
|
-
}
|
|
167
|
-
textPos = j + 1;
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (!charFound) return 0;
|
|
172
|
-
}
|
|
173
|
-
if (perfectStart) score += 30;
|
|
174
|
-
if (wordBoundaryMatches >= 2) score += 25;
|
|
175
|
-
if (textPos <= textClean.length * 0.8) score += 15;
|
|
176
|
-
const lastPatternChar = pattern[pattern.length - 1];
|
|
177
|
-
const lastTextChar = text[text.length - 1];
|
|
178
|
-
if (/\d/.test(lastPatternChar) && lastPatternChar === lastTextChar) {
|
|
179
|
-
score += 25;
|
|
180
|
-
}
|
|
181
|
-
return score;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Algorithm 4: Edit Distance (typo tolerance)
|
|
185
|
-
* Handles cases like "noda" → "node"
|
|
186
|
-
*/
|
|
187
|
-
editDistanceScore(text, pattern) {
|
|
188
|
-
if (pattern.length > text.length + this.config.maxEditDistance) return 0;
|
|
189
|
-
const dp = [];
|
|
190
|
-
const m = pattern.length;
|
|
191
|
-
const n = text.length;
|
|
192
|
-
for (let i = 0; i <= m; i++) {
|
|
193
|
-
dp[i] = [];
|
|
194
|
-
for (let j = 0; j <= n; j++) {
|
|
195
|
-
if (i === 0) dp[i][j] = j;
|
|
196
|
-
else if (j === 0) dp[i][j] = i;
|
|
197
|
-
else {
|
|
198
|
-
const cost = pattern[i - 1] === text[j - 1] ? 0 : 1;
|
|
199
|
-
dp[i][j] = Math.min(
|
|
200
|
-
dp[i - 1][j] + 1,
|
|
201
|
-
// deletion
|
|
202
|
-
dp[i][j - 1] + 1,
|
|
203
|
-
// insertion
|
|
204
|
-
dp[i - 1][j - 1] + cost
|
|
205
|
-
// substitution
|
|
206
|
-
);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
const distance = dp[m][n];
|
|
211
|
-
if (distance > this.config.maxEditDistance) return 0;
|
|
212
|
-
return Math.max(0, 30 - distance * 10);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Algorithm 5: Command Popularity (like frequency in input method)
|
|
216
|
-
* Boost common commands that users frequently type
|
|
217
|
-
*/
|
|
218
|
-
popularityScore(text) {
|
|
219
|
-
if (this.config.popularCommands.includes(text)) {
|
|
220
|
-
return 40;
|
|
221
|
-
}
|
|
222
|
-
if (text.length <= 5) return 10;
|
|
223
|
-
return 0;
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Batch match multiple candidates and return sorted results
|
|
227
|
-
*/
|
|
228
|
-
matchMany(candidates, query) {
|
|
229
|
-
return candidates.map((candidate) => ({
|
|
230
|
-
candidate,
|
|
231
|
-
result: this.match(candidate, query)
|
|
232
|
-
})).filter((item) => item.result.score >= this.config.minScore).sort((a, b) => b.result.score - a.result.score);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
const defaultMatcher = new FuzzyMatcher();
|
|
236
|
-
function matchCommand(command, query) {
|
|
237
|
-
return defaultMatcher.match(command, query);
|
|
238
|
-
}
|
|
239
|
-
import { matchManyAdvanced } from "./advancedFuzzyMatcher.js";
|
|
240
|
-
function matchCommands(commands, query) {
|
|
241
|
-
return matchManyAdvanced(commands, query, 5).map((item) => ({
|
|
242
|
-
command: item.candidate,
|
|
243
|
-
score: item.score
|
|
244
|
-
}));
|
|
245
|
-
}
|
|
246
|
-
export {
|
|
247
|
-
FuzzyMatcher,
|
|
248
|
-
defaultMatcher,
|
|
249
|
-
matchCommand,
|
|
250
|
-
matchCommands
|
|
251
|
-
};
|
|
252
|
-
//# sourceMappingURL=fuzzyMatcher.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/fuzzyMatcher.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Input Method Inspired Fuzzy Matching Algorithm\n * \n * Multi-algorithm weighted scoring system inspired by:\n * - Sogou/Baidu Pinyin input method algorithms\n * - Double-pinyin abbreviation matching\n * - Terminal completion best practices (fzf, zsh, fish)\n * \n * Designed specifically for command/terminal completion scenarios\n * where users type abbreviations like \"nde\" expecting \"node\"\n */\n\nexport interface MatchResult {\n score: number\n algorithm: string // Which algorithm contributed most to the score\n confidence: number // 0-1 confidence level\n}\n\nexport interface FuzzyMatcherConfig {\n // Algorithm weights (must sum to 1.0)\n weights: {\n prefix: number // Direct prefix matching (\"nod\" \u2192 \"node\")\n substring: number // Substring matching (\"ode\" \u2192 \"node\") \n abbreviation: number // Key chars matching (\"nde\" \u2192 \"node\")\n editDistance: number // Typo tolerance (\"noda\" \u2192 \"node\")\n popularity: number // Common command boost\n }\n \n // Scoring parameters\n minScore: number // Minimum score threshold\n maxEditDistance: number // Maximum edits allowed\n popularCommands: string[] // Commands to boost\n}\n\nconst DEFAULT_CONFIG: FuzzyMatcherConfig = {\n weights: {\n prefix: 0.35, // Strong weight for prefix matching\n substring: 0.20, // Good for partial matches \n abbreviation: 0.30, // Key for \"nde\"\u2192\"node\" cases\n editDistance: 0.10, // Typo tolerance\n popularity: 0.05 // Slight bias for common commands\n },\n minScore: 10, // Lower threshold for better matching\n maxEditDistance: 2,\n popularCommands: [\n 'node', 'npm', 'git', 'ls', 'cd', 'cat', 'grep', 'find', 'cp', 'mv',\n 'python', 'java', 'docker', 'curl', 'wget', 'vim', 'nano'\n ]\n}\n\nexport class FuzzyMatcher {\n private config: FuzzyMatcherConfig\n\n constructor(config: Partial<FuzzyMatcherConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config }\n \n // Normalize weights to sum to 1.0\n const weightSum = Object.values(this.config.weights).reduce((a, b) => a + b, 0)\n if (Math.abs(weightSum - 1.0) > 0.01) {\n Object.keys(this.config.weights).forEach(key => {\n this.config.weights[key as keyof typeof this.config.weights] /= weightSum\n })\n }\n }\n\n /**\n * Calculate fuzzy match score for a candidate against a query\n */\n match(candidate: string, query: string): MatchResult {\n const text = candidate.toLowerCase()\n const pattern = query.toLowerCase()\n\n // Quick perfect match exits\n if (text === pattern) {\n return { score: 1000, algorithm: 'exact', confidence: 1.0 }\n }\n if (text.startsWith(pattern)) {\n return { \n score: 900 + (10 - pattern.length), \n algorithm: 'prefix-exact', \n confidence: 0.95 \n }\n }\n\n // Run all algorithms\n const scores = {\n prefix: this.prefixScore(text, pattern),\n substring: this.substringScore(text, pattern), \n abbreviation: this.abbreviationScore(text, pattern),\n editDistance: this.editDistanceScore(text, pattern),\n popularity: this.popularityScore(text)\n }\n\n // Weighted combination\n const rawScore = Object.entries(scores).reduce((total, [algorithm, score]) => {\n const weight = this.config.weights[algorithm as keyof typeof this.config.weights]\n return total + (score * weight)\n }, 0)\n\n // Length penalty (prefer shorter commands)\n const lengthPenalty = Math.max(0, text.length - 6) * 1.5\n const finalScore = Math.max(0, rawScore - lengthPenalty)\n\n // Determine primary algorithm and confidence\n const maxAlgorithm = Object.entries(scores).reduce((max, [alg, score]) => \n score > max.score ? { algorithm: alg, score } : max, \n { algorithm: 'none', score: 0 }\n )\n\n const confidence = Math.min(1.0, finalScore / 100)\n\n return {\n score: finalScore,\n algorithm: maxAlgorithm.algorithm,\n confidence\n }\n }\n\n /**\n * Algorithm 1: Prefix Matching (like pinyin prefix)\n * Handles cases like \"nod\" \u2192 \"node\"\n */\n private prefixScore(text: string, pattern: string): number {\n if (!text.startsWith(pattern)) return 0\n \n // Score based on prefix length vs total length\n const coverage = pattern.length / text.length\n return 100 * coverage\n }\n\n /**\n * Algorithm 2: Substring Matching (like pinyin contains) \n * Handles cases like \"ode\" \u2192 \"node\", \"py3\" \u2192 \"python3\"\n */\n private substringScore(text: string, pattern: string): number {\n // Direct substring match\n const index = text.indexOf(pattern)\n if (index !== -1) {\n // Earlier position and better coverage = higher score\n const positionFactor = Math.max(0, 10 - index) / 10\n const coverageFactor = pattern.length / text.length\n return 80 * positionFactor * coverageFactor\n }\n \n // Special handling for numeric suffixes (py3 \u2192 python3)\n // Check if pattern ends with a number and try prefix match + number\n const numMatch = pattern.match(/^(.+?)(\\d+)$/)\n if (numMatch) {\n const [, prefix, num] = numMatch\n // Check if text starts with prefix and ends with the same number\n if (text.startsWith(prefix) && text.endsWith(num)) {\n // Good match for patterns like \"py3\" \u2192 \"python3\"\n const coverageFactor = pattern.length / text.length\n return 70 * coverageFactor + 20 // Bonus for numeric suffix match\n }\n }\n \n return 0\n }\n\n /**\n * Algorithm 3: Abbreviation Matching (key innovation)\n * Handles cases like \"nde\" \u2192 \"node\", \"pyt3\" \u2192 \"python3\", \"gp5\" \u2192 \"gpt-5\"\n */\n private abbreviationScore(text: string, pattern: string): number {\n let score = 0\n let textPos = 0\n let perfectStart = false\n let consecutiveMatches = 0\n let wordBoundaryMatches = 0\n \n // Split text by hyphens to handle word boundaries better\n const textWords = text.split('-')\n const textClean = text.replace(/-/g, '').toLowerCase()\n \n for (let i = 0; i < pattern.length; i++) {\n const char = pattern[i]\n let charFound = false\n \n // Try to find in clean text (no hyphens)\n for (let j = textPos; j < textClean.length; j++) {\n if (textClean[j] === char) {\n charFound = true\n \n // Check if this character is at a word boundary in original text\n let originalPos = 0\n let cleanPos = 0\n for (let k = 0; k < text.length; k++) {\n if (text[k] === '-') continue\n if (cleanPos === j) {\n originalPos = k\n break\n }\n cleanPos++\n }\n \n // Consecutive character bonus\n if (j === textPos) {\n consecutiveMatches++\n } else {\n consecutiveMatches = 1\n }\n \n // Position-sensitive scoring\n if (i === 0 && j === 0) {\n score += 50 // Perfect first character\n perfectStart = true\n } else if (originalPos === 0 || text[originalPos - 1] === '-') {\n score += 35 // Word boundary match\n wordBoundaryMatches++\n } else if (j <= 2) {\n score += 20 // Early position\n } else if (j <= 6) {\n score += 10 // Mid position \n } else {\n score += 5 // Late position\n }\n \n // Consecutive character bonus\n if (consecutiveMatches > 1) {\n score += consecutiveMatches * 5\n }\n \n textPos = j + 1\n break\n }\n }\n \n if (!charFound) return 0 // Invalid abbreviation\n }\n \n // Critical bonuses\n if (perfectStart) score += 30\n if (wordBoundaryMatches >= 2) score += 25 // Multiple word boundaries\n if (textPos <= textClean.length * 0.8) score += 15 // Compact abbreviation\n \n // Special bonus for number matching at end\n const lastPatternChar = pattern[pattern.length - 1]\n const lastTextChar = text[text.length - 1]\n if (/\\d/.test(lastPatternChar) && lastPatternChar === lastTextChar) {\n score += 25\n }\n \n return score\n }\n\n /**\n * Algorithm 4: Edit Distance (typo tolerance)\n * Handles cases like \"noda\" \u2192 \"node\"\n */\n private editDistanceScore(text: string, pattern: string): number {\n if (pattern.length > text.length + this.config.maxEditDistance) return 0\n \n // Simplified Levenshtein distance \n const dp: number[][] = []\n const m = pattern.length\n const n = text.length\n \n // Initialize DP table\n for (let i = 0; i <= m; i++) {\n dp[i] = []\n for (let j = 0; j <= n; j++) {\n if (i === 0) dp[i][j] = j\n else if (j === 0) dp[i][j] = i\n else {\n const cost = pattern[i-1] === text[j-1] ? 0 : 1\n dp[i][j] = Math.min(\n dp[i-1][j] + 1, // deletion\n dp[i][j-1] + 1, // insertion\n dp[i-1][j-1] + cost // substitution\n )\n }\n }\n }\n \n const distance = dp[m][n]\n if (distance > this.config.maxEditDistance) return 0\n \n return Math.max(0, 30 - distance * 10)\n }\n\n /**\n * Algorithm 5: Command Popularity (like frequency in input method)\n * Boost common commands that users frequently type\n */\n private popularityScore(text: string): number {\n if (this.config.popularCommands.includes(text)) {\n return 40\n }\n \n // Short commands are often more commonly used\n if (text.length <= 5) return 10\n \n return 0\n }\n\n /**\n * Batch match multiple candidates and return sorted results\n */\n matchMany(candidates: string[], query: string): Array<{candidate: string, result: MatchResult}> {\n return candidates\n .map(candidate => ({ \n candidate, \n result: this.match(candidate, query) \n }))\n .filter(item => item.result.score >= this.config.minScore)\n .sort((a, b) => b.result.score - a.result.score)\n }\n}\n\n// Export convenience functions\nexport const defaultMatcher = new FuzzyMatcher()\n\nexport function matchCommand(command: string, query: string): MatchResult {\n return defaultMatcher.match(command, query)\n}\n\n// Import the advanced matcher\nimport { matchManyAdvanced } from './advancedFuzzyMatcher'\n\nexport function matchCommands(commands: string[], query: string): Array<{command: string, score: number}> {\n // Use the advanced matcher for better results\n return matchManyAdvanced(commands, query, 5) // Lower threshold for better matching\n .map(item => ({ \n command: item.candidate, \n score: item.score \n }))\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/utils/generators.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
const NO_VALUE = Symbol("NO_VALUE");
|
|
2
|
-
async function lastX(as) {
|
|
3
|
-
let lastValue = NO_VALUE;
|
|
4
|
-
for await (const a of as) {
|
|
5
|
-
lastValue = a;
|
|
6
|
-
}
|
|
7
|
-
if (lastValue === NO_VALUE) {
|
|
8
|
-
throw new Error("No items in generator");
|
|
9
|
-
}
|
|
10
|
-
return lastValue;
|
|
11
|
-
}
|
|
12
|
-
async function* all(generators, concurrencyCap = Infinity) {
|
|
13
|
-
const next = (generator) => {
|
|
14
|
-
const promise = generator.next().then(({ done, value }) => ({
|
|
15
|
-
done,
|
|
16
|
-
value,
|
|
17
|
-
generator,
|
|
18
|
-
promise
|
|
19
|
-
}));
|
|
20
|
-
return promise;
|
|
21
|
-
};
|
|
22
|
-
const waiting = [...generators];
|
|
23
|
-
const promises = /* @__PURE__ */ new Set();
|
|
24
|
-
while (promises.size < concurrencyCap && waiting.length > 0) {
|
|
25
|
-
const gen = waiting.shift();
|
|
26
|
-
promises.add(next(gen));
|
|
27
|
-
}
|
|
28
|
-
while (promises.size > 0) {
|
|
29
|
-
const { done, value, generator, promise } = await Promise.race(promises);
|
|
30
|
-
promises.delete(promise);
|
|
31
|
-
if (!done) {
|
|
32
|
-
promises.add(next(generator));
|
|
33
|
-
if (value !== void 0) {
|
|
34
|
-
yield value;
|
|
35
|
-
}
|
|
36
|
-
} else if (waiting.length > 0) {
|
|
37
|
-
const nextGen = waiting.shift();
|
|
38
|
-
promises.add(next(nextGen));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
all,
|
|
44
|
-
lastX
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=generators.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/generators.ts"],
|
|
4
|
-
"sourcesContent": ["const NO_VALUE = Symbol('NO_VALUE')\n\nexport async function lastX<A>(as: AsyncGenerator<A>): Promise<A> {\n let lastValue: A | typeof NO_VALUE = NO_VALUE\n for await (const a of as) {\n lastValue = a\n }\n if (lastValue === NO_VALUE) {\n throw new Error('No items in generator')\n }\n return lastValue\n}\n\ntype QueuedGenerator<A> = {\n done: boolean | void\n value: A | void\n generator: AsyncGenerator<A, void>\n promise: Promise<QueuedGenerator<A>>\n}\n\n// Run all generators concurrently up to a concurrency cap, yielding values as they come in\nexport async function* all<A>(\n generators: AsyncGenerator<A, void>[],\n concurrencyCap = Infinity,\n): AsyncGenerator<A, void> {\n const next = (generator: AsyncGenerator<A, void>) => {\n const promise: Promise<QueuedGenerator<A>> = generator\n .next()\n .then(({ done, value }) => ({\n done,\n value,\n generator,\n promise,\n }))\n return promise\n }\n const waiting = [...generators]\n const promises = new Set<Promise<QueuedGenerator<A>>>()\n\n // Start initial batch up to concurrency cap\n while (promises.size < concurrencyCap && waiting.length > 0) {\n const gen = waiting.shift()!\n promises.add(next(gen))\n }\n\n while (promises.size > 0) {\n const { done, value, generator, promise } = await Promise.race(promises)\n promises.delete(promise)\n\n if (!done) {\n promises.add(next(generator))\n // Yield non-undefined values from the generator\n if (value !== undefined) {\n yield value as A\n }\n } else if (waiting.length > 0) {\n // Start a new generator when one finishes\n const nextGen = waiting.shift()!\n promises.add(next(nextGen))\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,MAAM,WAAW,OAAO,UAAU;AAElC,eAAsB,MAAS,IAAmC;AAChE,MAAI,YAAiC;AACrC,mBAAiB,KAAK,IAAI;AACxB,gBAAY;AAAA,EACd;AACA,MAAI,cAAc,UAAU;AAC1B,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AACA,SAAO;AACT;AAUA,gBAAuB,IACrB,YACA,iBAAiB,UACQ;AACzB,QAAM,OAAO,CAAC,cAAuC;AACnD,UAAM,UAAuC,UAC1C,KAAK,EACL,KAAK,CAAC,EAAE,MAAM,MAAM,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE;AACJ,WAAO;AAAA,EACT;AACA,QAAM,UAAU,CAAC,GAAG,UAAU;AAC9B,QAAM,WAAW,oBAAI,IAAiC;AAGtD,SAAO,SAAS,OAAO,kBAAkB,QAAQ,SAAS,GAAG;AAC3D,UAAM,MAAM,QAAQ,MAAM;AAC1B,aAAS,IAAI,KAAK,GAAG,CAAC;AAAA,EACxB;AAEA,SAAO,SAAS,OAAO,GAAG;AACxB,UAAM,EAAE,MAAM,OAAO,WAAW,QAAQ,IAAI,MAAM,QAAQ,KAAK,QAAQ;AACvE,aAAS,OAAO,OAAO;AAEvB,QAAI,CAAC,MAAM;AACT,eAAS,IAAI,KAAK,SAAS,CAAC;AAE5B,UAAI,UAAU,QAAW;AACvB,cAAM;AAAA,MACR;AAAA,IACF,WAAW,QAAQ,SAAS,GAAG;AAE7B,YAAM,UAAU,QAAQ,MAAM;AAC9B,eAAS,IAAI,KAAK,OAAO,CAAC;AAAA,IAC5B;AAAA,EACF;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/utils/git.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { memoize } from "lodash-es";
|
|
2
|
-
import { execFileNoThrow } from "./execFileNoThrow.js";
|
|
3
|
-
const getIsGit = memoize(async () => {
|
|
4
|
-
const { code } = await execFileNoThrow("git", [
|
|
5
|
-
"rev-parse",
|
|
6
|
-
"--is-inside-work-tree"
|
|
7
|
-
]);
|
|
8
|
-
return code === 0;
|
|
9
|
-
});
|
|
10
|
-
const getHead = async () => {
|
|
11
|
-
const { stdout } = await execFileNoThrow("git", ["rev-parse", "HEAD"]);
|
|
12
|
-
return stdout.trim();
|
|
13
|
-
};
|
|
14
|
-
const getBranch = async () => {
|
|
15
|
-
const { stdout } = await execFileNoThrow(
|
|
16
|
-
"git",
|
|
17
|
-
["rev-parse", "--abbrev-ref", "HEAD"],
|
|
18
|
-
void 0,
|
|
19
|
-
void 0,
|
|
20
|
-
false
|
|
21
|
-
);
|
|
22
|
-
return stdout.trim();
|
|
23
|
-
};
|
|
24
|
-
const getRemoteUrl = async () => {
|
|
25
|
-
const { stdout, code } = await execFileNoThrow(
|
|
26
|
-
"git",
|
|
27
|
-
["remote", "get-url", "origin"],
|
|
28
|
-
void 0,
|
|
29
|
-
void 0,
|
|
30
|
-
false
|
|
31
|
-
);
|
|
32
|
-
return code === 0 ? stdout.trim() : null;
|
|
33
|
-
};
|
|
34
|
-
const getIsHeadOnRemote = async () => {
|
|
35
|
-
const { code } = await execFileNoThrow(
|
|
36
|
-
"git",
|
|
37
|
-
["rev-parse", "@{u}"],
|
|
38
|
-
void 0,
|
|
39
|
-
void 0,
|
|
40
|
-
false
|
|
41
|
-
);
|
|
42
|
-
return code === 0;
|
|
43
|
-
};
|
|
44
|
-
const getIsClean = async () => {
|
|
45
|
-
const { stdout } = await execFileNoThrow(
|
|
46
|
-
"git",
|
|
47
|
-
["status", "--porcelain"],
|
|
48
|
-
void 0,
|
|
49
|
-
void 0,
|
|
50
|
-
false
|
|
51
|
-
);
|
|
52
|
-
return stdout.trim().length === 0;
|
|
53
|
-
};
|
|
54
|
-
async function getGitState() {
|
|
55
|
-
try {
|
|
56
|
-
const [commitHash, branchName, remoteUrl, isHeadOnRemote, isClean] = await Promise.all([
|
|
57
|
-
getHead(),
|
|
58
|
-
getBranch(),
|
|
59
|
-
getRemoteUrl(),
|
|
60
|
-
getIsHeadOnRemote(),
|
|
61
|
-
getIsClean()
|
|
62
|
-
]);
|
|
63
|
-
return {
|
|
64
|
-
commitHash,
|
|
65
|
-
branchName,
|
|
66
|
-
remoteUrl,
|
|
67
|
-
isHeadOnRemote,
|
|
68
|
-
isClean
|
|
69
|
-
};
|
|
70
|
-
} catch (_) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
export {
|
|
75
|
-
getBranch,
|
|
76
|
-
getGitState,
|
|
77
|
-
getHead,
|
|
78
|
-
getIsClean,
|
|
79
|
-
getIsGit,
|
|
80
|
-
getIsHeadOnRemote,
|
|
81
|
-
getRemoteUrl
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=git.js.map
|
package/dist/utils/git.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/git.ts"],
|
|
4
|
-
"sourcesContent": ["import { memoize } from 'lodash-es'\nimport { execFileNoThrow } from './execFileNoThrow'\n\nexport const getIsGit = memoize(async (): Promise<boolean> => {\n const { code } = await execFileNoThrow('git', [\n 'rev-parse',\n '--is-inside-work-tree',\n ])\n return code === 0\n})\n\nexport const getHead = async (): Promise<string> => {\n const { stdout } = await execFileNoThrow('git', ['rev-parse', 'HEAD'])\n return stdout.trim()\n}\n\nexport const getBranch = async (): Promise<string> => {\n const { stdout } = await execFileNoThrow(\n 'git',\n ['rev-parse', '--abbrev-ref', 'HEAD'],\n undefined,\n undefined,\n false,\n )\n return stdout.trim()\n}\n\nexport const getRemoteUrl = async (): Promise<string | null> => {\n // This might fail if there is no remote called origin\n const { stdout, code } = await execFileNoThrow(\n 'git',\n ['remote', 'get-url', 'origin'],\n undefined,\n undefined,\n false,\n )\n return code === 0 ? stdout.trim() : null\n}\n\nexport const getIsHeadOnRemote = async (): Promise<boolean> => {\n const { code } = await execFileNoThrow(\n 'git',\n ['rev-parse', '@{u}'],\n undefined,\n undefined,\n false,\n )\n return code === 0\n}\n\nexport const getIsClean = async (): Promise<boolean> => {\n const { stdout } = await execFileNoThrow(\n 'git',\n ['status', '--porcelain'],\n undefined,\n undefined,\n false,\n )\n return stdout.trim().length === 0\n}\n\nexport interface GitRepoState {\n commitHash: string\n branchName: string\n remoteUrl: string | null\n isHeadOnRemote: boolean\n isClean: boolean\n}\n\nexport async function getGitState(): Promise<GitRepoState | null> {\n try {\n const [commitHash, branchName, remoteUrl, isHeadOnRemote, isClean] =\n await Promise.all([\n getHead(),\n getBranch(),\n getRemoteUrl(),\n getIsHeadOnRemote(),\n getIsClean(),\n ])\n\n return {\n commitHash,\n branchName,\n remoteUrl,\n isHeadOnRemote,\n isClean,\n }\n } catch (_) {\n // Fail silently - git state is best effort\n return null\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,eAAe;AACxB,SAAS,uBAAuB;AAEzB,MAAM,WAAW,QAAQ,YAA8B;AAC5D,QAAM,EAAE,KAAK,IAAI,MAAM,gBAAgB,OAAO;AAAA,IAC5C;AAAA,IACA;AAAA,EACF,CAAC;AACD,SAAO,SAAS;AAClB,CAAC;AAEM,MAAM,UAAU,YAA6B;AAClD,QAAM,EAAE,OAAO,IAAI,MAAM,gBAAgB,OAAO,CAAC,aAAa,MAAM,CAAC;AACrE,SAAO,OAAO,KAAK;AACrB;AAEO,MAAM,YAAY,YAA6B;AACpD,QAAM,EAAE,OAAO,IAAI,MAAM;AAAA,IACvB;AAAA,IACA,CAAC,aAAa,gBAAgB,MAAM;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,OAAO,KAAK;AACrB;AAEO,MAAM,eAAe,YAAoC;AAE9D,QAAM,EAAE,QAAQ,KAAK,IAAI,MAAM;AAAA,IAC7B;AAAA,IACA,CAAC,UAAU,WAAW,QAAQ;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,SAAS,IAAI,OAAO,KAAK,IAAI;AACtC;AAEO,MAAM,oBAAoB,YAA8B;AAC7D,QAAM,EAAE,KAAK,IAAI,MAAM;AAAA,IACrB;AAAA,IACA,CAAC,aAAa,MAAM;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,SAAS;AAClB;AAEO,MAAM,aAAa,YAA8B;AACtD,QAAM,EAAE,OAAO,IAAI,MAAM;AAAA,IACvB;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,SAAO,OAAO,KAAK,EAAE,WAAW;AAClC;AAUA,eAAsB,cAA4C;AAChE,MAAI;AACF,UAAM,CAAC,YAAY,YAAY,WAAW,gBAAgB,OAAO,IAC/D,MAAM,QAAQ,IAAI;AAAA,MAChB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,WAAW;AAAA,IACb,CAAC;AAEH,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AAEV,WAAO;AAAA,EACT;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
const isDebugMode = () => process.argv.includes("--debug") || process.argv.includes("--verbose") || process.env.NODE_ENV === "development";
|
|
2
|
-
const LOGGING_ENABLED = isDebugMode();
|
|
3
|
-
const globalLogger = {
|
|
4
|
-
// 标准日志级别
|
|
5
|
-
debug: (...args) => {
|
|
6
|
-
if (LOGGING_ENABLED) console.debug(...args);
|
|
7
|
-
},
|
|
8
|
-
info: (...args) => {
|
|
9
|
-
if (LOGGING_ENABLED) console.info(...args);
|
|
10
|
-
},
|
|
11
|
-
warn: (...args) => {
|
|
12
|
-
if (LOGGING_ENABLED) console.warn(...args);
|
|
13
|
-
},
|
|
14
|
-
error: (...args) => {
|
|
15
|
-
if (LOGGING_ENABLED) console.error(...args);
|
|
16
|
-
},
|
|
17
|
-
log: (...args) => {
|
|
18
|
-
if (LOGGING_ENABLED) console.log(...args);
|
|
19
|
-
},
|
|
20
|
-
// 兼容现有的console.log调用
|
|
21
|
-
console: (...args) => {
|
|
22
|
-
if (LOGGING_ENABLED) console.log(...args);
|
|
23
|
-
},
|
|
24
|
-
// 模型切换相关日志
|
|
25
|
-
modelSwitch: (message, data) => {
|
|
26
|
-
if (LOGGING_ENABLED) {
|
|
27
|
-
console.log(`\u{1F504} Model Switch: ${message}`, data ? data : "");
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
// API 相关日志
|
|
31
|
-
api: (message, data) => {
|
|
32
|
-
if (LOGGING_ENABLED) {
|
|
33
|
-
console.log(`\u{1F310} API: ${message}`, data ? data : "");
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
// 用户友好的状态日志 - 只在调试模式下显示
|
|
37
|
-
status: (message) => {
|
|
38
|
-
if (LOGGING_ENABLED) {
|
|
39
|
-
console.log(`\u2139\uFE0F ${message}`);
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
// 检查日志是否启用
|
|
43
|
-
isEnabled: () => LOGGING_ENABLED
|
|
44
|
-
};
|
|
45
|
-
const logger = globalLogger;
|
|
46
|
-
const debugLog = globalLogger.console;
|
|
47
|
-
const statusLog = globalLogger.status;
|
|
48
|
-
export {
|
|
49
|
-
debugLog,
|
|
50
|
-
globalLogger,
|
|
51
|
-
logger,
|
|
52
|
-
statusLog
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=globalLogger.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/globalLogger.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * \u7EDF\u4E00\u7684\u5168\u5C40\u65E5\u5FD7\u7CFB\u7EDF\n * \u666E\u901A\u6A21\u5F0F\uFF1A\u5B8C\u5168\u9759\u9ED8\uFF0C\u96F6\u65E5\u5FD7\u8F93\u51FA\n * \u8C03\u8BD5\u6A21\u5F0F\uFF1A\u8BE6\u7EC6\u65E5\u5FD7\u8F93\u51FA\n */\n\n// \u73AF\u5883\u68C0\u6D4B - \u53EA\u5728\u660E\u786E\u7684\u8C03\u8BD5\u6807\u5FD7\u4E0B\u624D\u542F\u7528\u65E5\u5FD7\nconst isDebugMode = () => \n process.argv.includes('--debug') || \n process.argv.includes('--verbose') || \n process.env.NODE_ENV === 'development'\n\n// \u5168\u5C40\u65E5\u5FD7\u5F00\u5173 - \u666E\u901A\u6A21\u5F0F\u4E0B\u5B8C\u5168\u5173\u95ED\nconst LOGGING_ENABLED = isDebugMode()\n\n/**\n * \u7EDF\u4E00\u7684\u65E5\u5FD7\u63A5\u53E3\n * \u666E\u901A\u6A21\u5F0F\u4E0B\u6240\u6709\u8C03\u7528\u90FD\u662F\u7A7A\u64CD\u4F5C\n */\nexport const globalLogger = {\n // \u6807\u51C6\u65E5\u5FD7\u7EA7\u522B\n debug: (...args: any[]) => {\n if (LOGGING_ENABLED) console.debug(...args)\n },\n \n info: (...args: any[]) => {\n if (LOGGING_ENABLED) console.info(...args)\n },\n \n warn: (...args: any[]) => {\n if (LOGGING_ENABLED) console.warn(...args)\n },\n \n error: (...args: any[]) => {\n if (LOGGING_ENABLED) console.error(...args)\n },\n \n log: (...args: any[]) => {\n if (LOGGING_ENABLED) console.log(...args)\n },\n \n // \u517C\u5BB9\u73B0\u6709\u7684console.log\u8C03\u7528\n console: (...args: any[]) => {\n if (LOGGING_ENABLED) console.log(...args)\n },\n\n // \u6A21\u578B\u5207\u6362\u76F8\u5173\u65E5\u5FD7\n modelSwitch: (message: string, data?: any) => {\n if (LOGGING_ENABLED) {\n console.log(`\uD83D\uDD04 Model Switch: ${message}`, data ? data : '')\n }\n },\n\n // API \u76F8\u5173\u65E5\u5FD7\n api: (message: string, data?: any) => {\n if (LOGGING_ENABLED) {\n console.log(`\uD83C\uDF10 API: ${message}`, data ? data : '')\n }\n },\n\n // \u7528\u6237\u53CB\u597D\u7684\u72B6\u6001\u65E5\u5FD7 - \u53EA\u5728\u8C03\u8BD5\u6A21\u5F0F\u4E0B\u663E\u793A\n status: (message: string) => {\n if (LOGGING_ENABLED) {\n console.log(`\u2139\uFE0F ${message}`)\n }\n },\n\n // \u68C0\u67E5\u65E5\u5FD7\u662F\u5426\u542F\u7528\n isEnabled: () => LOGGING_ENABLED\n}\n\n// \u517C\u5BB9\u6027\uFF1A\u5BFC\u51FA\u4E3A\u9ED8\u8BA4console\u66FF\u4EE3\nexport const logger = globalLogger\n\n// \u7528\u4E8E\u66FF\u6362\u73B0\u6709\u7684console.log\u8C03\u7528\nexport const debugLog = globalLogger.console\nexport const statusLog = globalLogger.status"],
|
|
5
|
-
"mappings": "AAOA,MAAM,cAAc,MAClB,QAAQ,KAAK,SAAS,SAAS,KAC/B,QAAQ,KAAK,SAAS,WAAW,KACjC,QAAQ,IAAI,aAAa;AAG3B,MAAM,kBAAkB,YAAY;AAM7B,MAAM,eAAe;AAAA;AAAA,EAE1B,OAAO,IAAI,SAAgB;AACzB,QAAI,gBAAiB,SAAQ,MAAM,GAAG,IAAI;AAAA,EAC5C;AAAA,EAEA,MAAM,IAAI,SAAgB;AACxB,QAAI,gBAAiB,SAAQ,KAAK,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEA,MAAM,IAAI,SAAgB;AACxB,QAAI,gBAAiB,SAAQ,KAAK,GAAG,IAAI;AAAA,EAC3C;AAAA,EAEA,OAAO,IAAI,SAAgB;AACzB,QAAI,gBAAiB,SAAQ,MAAM,GAAG,IAAI;AAAA,EAC5C;AAAA,EAEA,KAAK,IAAI,SAAgB;AACvB,QAAI,gBAAiB,SAAQ,IAAI,GAAG,IAAI;AAAA,EAC1C;AAAA;AAAA,EAGA,SAAS,IAAI,SAAgB;AAC3B,QAAI,gBAAiB,SAAQ,IAAI,GAAG,IAAI;AAAA,EAC1C;AAAA;AAAA,EAGA,aAAa,CAAC,SAAiB,SAAe;AAC5C,QAAI,iBAAiB;AACnB,cAAQ,IAAI,2BAAoB,OAAO,IAAI,OAAO,OAAO,EAAE;AAAA,IAC7D;AAAA,EACF;AAAA;AAAA,EAGA,KAAK,CAAC,SAAiB,SAAe;AACpC,QAAI,iBAAiB;AACnB,cAAQ,IAAI,kBAAW,OAAO,IAAI,OAAO,OAAO,EAAE;AAAA,IACpD;AAAA,EACF;AAAA;AAAA,EAGA,QAAQ,CAAC,YAAoB;AAC3B,QAAI,iBAAiB;AACnB,cAAQ,IAAI,gBAAM,OAAO,EAAE;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA,EAGA,WAAW,MAAM;AACnB;AAGO,MAAM,SAAS;AAGf,MAAM,WAAW,aAAa;AAC9B,MAAM,YAAY,aAAa;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/utils/http.js
DELETED
package/dist/utils/http.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/http.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * HTTP utility constants and helpers\n */\n\nimport { MACRO } from '../constants/macros'\nimport { PRODUCT_COMMAND } from '../constants/product'\n\n// WARNING: We rely on `claude-cli` in the user agent for log filtering.\n// Please do NOT change this without making sure that logging also gets updated!\nexport const USER_AGENT = `${PRODUCT_COMMAND}/${MACRO.VERSION} (${process.env.USER_TYPE})`\n"],
|
|
5
|
-
"mappings": "AAIA,SAAS,aAAa;AACtB,SAAS,uBAAuB;AAIzB,MAAM,aAAa,GAAG,eAAe,IAAI,MAAM,OAAO,KAAK,QAAQ,IAAI,SAAS;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/utils/imagePaste.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { execSync } from "child_process";
|
|
2
|
-
import { readFileSync } from "fs";
|
|
3
|
-
const SCREENSHOT_PATH = "/tmp/claude_cli_latest_screenshot.png";
|
|
4
|
-
const CLIPBOARD_ERROR_MESSAGE = "No image found in clipboard. Use Cmd + Ctrl + Shift + 4 to copy a screenshot to clipboard.";
|
|
5
|
-
function getImageFromClipboard() {
|
|
6
|
-
if (process.platform !== "darwin") {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
try {
|
|
10
|
-
execSync(`osascript -e 'the clipboard as \xABclass PNGf\xBB'`, {
|
|
11
|
-
stdio: "ignore"
|
|
12
|
-
});
|
|
13
|
-
execSync(
|
|
14
|
-
`osascript -e 'set png_data to (the clipboard as \xABclass PNGf\xBB)' -e 'set fp to open for access POSIX file "${SCREENSHOT_PATH}" with write permission' -e 'write png_data to fp' -e 'close access fp'`,
|
|
15
|
-
{ stdio: "ignore" }
|
|
16
|
-
);
|
|
17
|
-
const imageBuffer = readFileSync(SCREENSHOT_PATH);
|
|
18
|
-
const base64Image = imageBuffer.toString("base64");
|
|
19
|
-
execSync(`rm -f "${SCREENSHOT_PATH}"`, { stdio: "ignore" });
|
|
20
|
-
return base64Image;
|
|
21
|
-
} catch {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export {
|
|
26
|
-
CLIPBOARD_ERROR_MESSAGE,
|
|
27
|
-
getImageFromClipboard
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=imagePaste.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/imagePaste.ts"],
|
|
4
|
-
"sourcesContent": ["import { execSync } from 'child_process'\nimport { readFileSync } from 'fs'\n\nconst SCREENSHOT_PATH = '/tmp/claude_cli_latest_screenshot.png'\n\nexport const CLIPBOARD_ERROR_MESSAGE =\n 'No image found in clipboard. Use Cmd + Ctrl + Shift + 4 to copy a screenshot to clipboard.'\n\nexport function getImageFromClipboard(): string | null {\n if (process.platform !== 'darwin') {\n // only support image paste on macOS for now\n return null\n }\n\n try {\n // Check if clipboard has image\n execSync(`osascript -e 'the clipboard as \u00ABclass PNGf\u00BB'`, {\n stdio: 'ignore',\n })\n\n // Save the image\n execSync(\n `osascript -e 'set png_data to (the clipboard as \u00ABclass PNGf\u00BB)' -e 'set fp to open for access POSIX file \"${SCREENSHOT_PATH}\" with write permission' -e 'write png_data to fp' -e 'close access fp'`,\n { stdio: 'ignore' },\n )\n\n // Read the image and convert to base64\n const imageBuffer = readFileSync(SCREENSHOT_PATH)\n const base64Image = imageBuffer.toString('base64')\n\n // Cleanup\n execSync(`rm -f \"${SCREENSHOT_PATH}\"`, { stdio: 'ignore' })\n\n return base64Image\n } catch {\n return null\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAE7B,MAAM,kBAAkB;AAEjB,MAAM,0BACX;AAEK,SAAS,wBAAuC;AACrD,MAAI,QAAQ,aAAa,UAAU;AAEjC,WAAO;AAAA,EACT;AAEA,MAAI;AAEF,aAAS,sDAAgD;AAAA,MACvD,OAAO;AAAA,IACT,CAAC;AAGD;AAAA,MACE,kHAA4G,eAAe;AAAA,MAC3H,EAAE,OAAO,SAAS;AAAA,IACpB;AAGA,UAAM,cAAc,aAAa,eAAe;AAChD,UAAM,cAAc,YAAY,SAAS,QAAQ;AAGjD,aAAS,UAAU,eAAe,KAAK,EAAE,OAAO,SAAS,CAAC;AAE1D,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/utils/json.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { logError } from "./log.js";
|
|
2
|
-
function safeParseJSON(json) {
|
|
3
|
-
if (!json) {
|
|
4
|
-
return null;
|
|
5
|
-
}
|
|
6
|
-
try {
|
|
7
|
-
return JSON.parse(json);
|
|
8
|
-
} catch (e) {
|
|
9
|
-
logError(e);
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export {
|
|
14
|
-
safeParseJSON
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=json.js.map
|
package/dist/utils/json.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/json.ts"],
|
|
4
|
-
"sourcesContent": ["import { logError } from './log'\n\nexport function safeParseJSON(json: string | null | undefined): unknown {\n if (!json) {\n return null\n }\n try {\n return JSON.parse(json)\n } catch (e) {\n logError(e)\n return null\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,gBAAgB;AAElB,SAAS,cAAc,MAA0C;AACtE,MAAI,CAAC,MAAM;AACT,WAAO;AAAA,EACT;AACA,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAS,GAAG;AACV,aAAS,CAAC;AACV,WAAO;AAAA,EACT;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|