@shareai-lab/kode 1.1.23 → 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 -404
- 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/chunk-3IN27HA5.js +128 -0
- 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 -15
- 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 -326
- 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 -31
- 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 -501
- 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 -1029
- 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 -1122
- 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 -143
- 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 -596
- 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 -293
- 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 +0 -360
- 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,82 +0,0 @@
|
|
|
1
|
-
import { getTools, getReadOnlyTools } from "../../tools.js";
|
|
2
|
-
import { TaskTool } from "./TaskTool.js";
|
|
3
|
-
import { FileWriteTool } from "../FileWriteTool/FileWriteTool.js";
|
|
4
|
-
import { GlobTool } from "../GlobTool/GlobTool.js";
|
|
5
|
-
import { FileReadTool } from "../FileReadTool/FileReadTool.js";
|
|
6
|
-
import { getActiveAgents } from "../../utils/agentLoader.js";
|
|
7
|
-
async function getTaskTools(safeMode) {
|
|
8
|
-
return (await (!safeMode ? getTools() : getReadOnlyTools())).filter(
|
|
9
|
-
(_) => _.name !== TaskTool.name
|
|
10
|
-
);
|
|
11
|
-
}
|
|
12
|
-
async function getPrompt(safeMode) {
|
|
13
|
-
const agents = await getActiveAgents();
|
|
14
|
-
const agentDescriptions = agents.map((agent) => {
|
|
15
|
-
const toolsStr = Array.isArray(agent.tools) ? agent.tools.join(", ") : "*";
|
|
16
|
-
return `- ${agent.agentType}: ${agent.whenToUse} (Tools: ${toolsStr})`;
|
|
17
|
-
}).join("\n");
|
|
18
|
-
return `Launch a new agent to handle complex, multi-step tasks autonomously.
|
|
19
|
-
|
|
20
|
-
Available agent types and the tools they have access to:
|
|
21
|
-
${agentDescriptions}
|
|
22
|
-
|
|
23
|
-
When using the Task tool, you must specify a subagent_type parameter to select which agent type to use.
|
|
24
|
-
|
|
25
|
-
When to use the Agent tool:
|
|
26
|
-
- When you are instructed to execute custom slash commands. Use the Agent tool with the slash command invocation as the entire prompt. The slash command can take arguments. For example: Task(description="Check the file", prompt="/check-file path/to/file.py")
|
|
27
|
-
|
|
28
|
-
When NOT to use the Agent tool:
|
|
29
|
-
- If you want to read a specific file path, use the ${FileReadTool.name} or ${GlobTool.name} tool instead of the Agent tool, to find the match more quickly
|
|
30
|
-
- If you are searching for a specific class definition like "class Foo", use the ${GlobTool.name} tool instead, to find the match more quickly
|
|
31
|
-
- If you are searching for code within a specific file or set of 2-3 files, use the ${FileReadTool.name} tool instead of the Agent tool, to find the match more quickly
|
|
32
|
-
- Other tasks that are not related to the agent descriptions above
|
|
33
|
-
|
|
34
|
-
Usage notes:
|
|
35
|
-
1. Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses
|
|
36
|
-
2. When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
|
|
37
|
-
3. Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
|
|
38
|
-
4. The agent's outputs should generally be trusted
|
|
39
|
-
5. Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent
|
|
40
|
-
6. If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.
|
|
41
|
-
|
|
42
|
-
Example usage:
|
|
43
|
-
|
|
44
|
-
<example_agent_descriptions>
|
|
45
|
-
"code-reviewer": use this agent after you are done writing a signficant piece of code
|
|
46
|
-
"greeting-responder": use this agent when to respond to user greetings with a friendly joke
|
|
47
|
-
</example_agent_description>
|
|
48
|
-
|
|
49
|
-
<example>
|
|
50
|
-
user: "Please write a function that checks if a number is prime"
|
|
51
|
-
assistant: Sure let me write a function that checks if a number is prime
|
|
52
|
-
assistant: First let me use the ${FileWriteTool.name} tool to write a function that checks if a number is prime
|
|
53
|
-
assistant: I'm going to use the ${FileWriteTool.name} tool to write the following code:
|
|
54
|
-
<code>
|
|
55
|
-
function isPrime(n) {
|
|
56
|
-
if (n <= 1) return false
|
|
57
|
-
for (let i = 2; i * i <= n; i++) {
|
|
58
|
-
if (n % i === 0) return false
|
|
59
|
-
}
|
|
60
|
-
return true
|
|
61
|
-
}
|
|
62
|
-
</code>
|
|
63
|
-
<commentary>
|
|
64
|
-
Since a signficant piece of code was written and the task was completed, now use the code-reviewer agent to review the code
|
|
65
|
-
</commentary>
|
|
66
|
-
assistant: Now let me use the code-reviewer agent to review the code
|
|
67
|
-
assistant: Uses the Task tool to launch the with the code-reviewer agent
|
|
68
|
-
</example>
|
|
69
|
-
|
|
70
|
-
<example>
|
|
71
|
-
user: "Hello"
|
|
72
|
-
<commentary>
|
|
73
|
-
Since the user is greeting, use the greeting-responder agent to respond with a friendly joke
|
|
74
|
-
</commentary>
|
|
75
|
-
assistant: "I'm going to use the Task tool to launch the with the greeting-responder agent"
|
|
76
|
-
</example>`;
|
|
77
|
-
}
|
|
78
|
-
export {
|
|
79
|
-
getPrompt,
|
|
80
|
-
getTaskTools
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/TaskTool/prompt.ts"],
|
|
4
|
-
"sourcesContent": ["import { type Tool } from '../../Tool'\nimport { getTools, getReadOnlyTools } from '../../tools'\nimport { TaskTool } from './TaskTool'\nimport { BashTool } from '../BashTool/BashTool'\nimport { FileWriteTool } from '../FileWriteTool/FileWriteTool'\nimport { FileEditTool } from '../FileEditTool/FileEditTool'\nimport { NotebookEditTool } from '../NotebookEditTool/NotebookEditTool'\nimport { GlobTool } from '../GlobTool/GlobTool'\nimport { FileReadTool } from '../FileReadTool/FileReadTool'\nimport { getModelManager } from '../../utils/model'\nimport { getActiveAgents } from '../../utils/agentLoader'\n\nexport async function getTaskTools(safeMode: boolean): Promise<Tool[]> {\n // No recursive tasks, yet..\n return (await (!safeMode ? getTools() : getReadOnlyTools())).filter(\n _ => _.name !== TaskTool.name,\n )\n}\n\nexport async function getPrompt(safeMode: boolean): Promise<string> {\n // Extracted directly from original Claude Code obfuscated source\n const agents = await getActiveAgents()\n \n // Format exactly as in original: (Tools: tool1, tool2)\n const agentDescriptions = agents.map(agent => {\n const toolsStr = Array.isArray(agent.tools) \n ? agent.tools.join(', ')\n : '*'\n return `- ${agent.agentType}: ${agent.whenToUse} (Tools: ${toolsStr})`\n }).join('\\n')\n \n // 100% exact copy from original Claude Code source\n return `Launch a new agent to handle complex, multi-step tasks autonomously. \n\nAvailable agent types and the tools they have access to:\n${agentDescriptions}\n\nWhen using the Task tool, you must specify a subagent_type parameter to select which agent type to use.\n\nWhen to use the Agent tool:\n- When you are instructed to execute custom slash commands. Use the Agent tool with the slash command invocation as the entire prompt. The slash command can take arguments. For example: Task(description=\"Check the file\", prompt=\"/check-file path/to/file.py\")\n\nWhen NOT to use the Agent tool:\n- If you want to read a specific file path, use the ${FileReadTool.name} or ${GlobTool.name} tool instead of the Agent tool, to find the match more quickly\n- If you are searching for a specific class definition like \"class Foo\", use the ${GlobTool.name} tool instead, to find the match more quickly\n- If you are searching for code within a specific file or set of 2-3 files, use the ${FileReadTool.name} tool instead of the Agent tool, to find the match more quickly\n- Other tasks that are not related to the agent descriptions above\n\nUsage notes:\n1. Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses\n2. When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.\n3. Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.\n4. The agent's outputs should generally be trusted\n5. Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent\n6. If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.\n\nExample usage:\n\n<example_agent_descriptions>\n\"code-reviewer\": use this agent after you are done writing a signficant piece of code\n\"greeting-responder\": use this agent when to respond to user greetings with a friendly joke\n</example_agent_description>\n\n<example>\nuser: \"Please write a function that checks if a number is prime\"\nassistant: Sure let me write a function that checks if a number is prime\nassistant: First let me use the ${FileWriteTool.name} tool to write a function that checks if a number is prime\nassistant: I'm going to use the ${FileWriteTool.name} tool to write the following code:\n<code>\nfunction isPrime(n) {\n if (n <= 1) return false\n for (let i = 2; i * i <= n; i++) {\n if (n % i === 0) return false\n }\n return true\n}\n</code>\n<commentary>\nSince a signficant piece of code was written and the task was completed, now use the code-reviewer agent to review the code\n</commentary>\nassistant: Now let me use the code-reviewer agent to review the code\nassistant: Uses the Task tool to launch the with the code-reviewer agent \n</example>\n\n<example>\nuser: \"Hello\"\n<commentary>\nSince the user is greeting, use the greeting-responder agent to respond with a friendly joke\n</commentary>\nassistant: \"I'm going to use the Task tool to launch the with the greeting-responder agent\"\n</example>`\n}\n"],
|
|
5
|
-
"mappings": "AACA,SAAS,UAAU,wBAAwB;AAC3C,SAAS,gBAAgB;AAEzB,SAAS,qBAAqB;AAG9B,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAE7B,SAAS,uBAAuB;AAEhC,eAAsB,aAAa,UAAoC;AAErE,UAAQ,OAAO,CAAC,WAAW,SAAS,IAAI,iBAAiB,IAAI;AAAA,IAC3D,OAAK,EAAE,SAAS,SAAS;AAAA,EAC3B;AACF;AAEA,eAAsB,UAAU,UAAoC;AAElE,QAAM,SAAS,MAAM,gBAAgB;AAGrC,QAAM,oBAAoB,OAAO,IAAI,WAAS;AAC5C,UAAM,WAAW,MAAM,QAAQ,MAAM,KAAK,IACtC,MAAM,MAAM,KAAK,IAAI,IACrB;AACJ,WAAO,KAAK,MAAM,SAAS,KAAK,MAAM,SAAS,YAAY,QAAQ;AAAA,EACrE,CAAC,EAAE,KAAK,IAAI;AAGZ,SAAO;AAAA;AAAA;AAAA,EAGP,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sDAQmC,aAAa,IAAI,OAAO,SAAS,IAAI;AAAA,mFACR,SAAS,IAAI;AAAA,sFACV,aAAa,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAqBrE,cAAc,IAAI;AAAA,kCAClB,cAAc,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBpD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { Text } from "ink";
|
|
4
|
-
import { DESCRIPTION, PROMPT } from "./prompt.js";
|
|
5
|
-
import { getTheme } from "../../utils/theme.js";
|
|
6
|
-
import { MessageResponse } from "../../components/MessageResponse.js";
|
|
7
|
-
import { checkGate, logEvent } from "../../services/statsig.js";
|
|
8
|
-
import { USE_BEDROCK, USE_VERTEX } from "../../utils/model.js";
|
|
9
|
-
const thinkToolSchema = z.object({
|
|
10
|
-
thought: z.string().describe("Your thoughts.")
|
|
11
|
-
});
|
|
12
|
-
const ThinkTool = {
|
|
13
|
-
name: "Think",
|
|
14
|
-
userFacingName: () => "Think",
|
|
15
|
-
description: async () => DESCRIPTION,
|
|
16
|
-
inputSchema: thinkToolSchema,
|
|
17
|
-
isEnabled: async () => Boolean(process.env.THINK_TOOL) && await checkGate("tengu_think_tool"),
|
|
18
|
-
isReadOnly: () => true,
|
|
19
|
-
isConcurrencySafe: () => true,
|
|
20
|
-
// ThinkTool is read-only, safe for concurrent execution
|
|
21
|
-
needsPermissions: () => false,
|
|
22
|
-
prompt: async () => PROMPT,
|
|
23
|
-
async *call(input, { messageId }) {
|
|
24
|
-
logEvent("tengu_thinking", {
|
|
25
|
-
messageId,
|
|
26
|
-
thoughtLength: input.thought.length.toString(),
|
|
27
|
-
method: "tool",
|
|
28
|
-
provider: USE_BEDROCK ? "bedrock" : USE_VERTEX ? "vertex" : "1p"
|
|
29
|
-
});
|
|
30
|
-
yield {
|
|
31
|
-
type: "result",
|
|
32
|
-
resultForAssistant: "Your thought has been logged.",
|
|
33
|
-
data: { thought: input.thought }
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
// This is never called -- it's special-cased in AssistantToolUseMessage
|
|
37
|
-
renderToolUseMessage(input) {
|
|
38
|
-
return input.thought;
|
|
39
|
-
},
|
|
40
|
-
renderToolUseRejectedMessage() {
|
|
41
|
-
return /* @__PURE__ */ React.createElement(MessageResponse, { children: /* @__PURE__ */ React.createElement(Text, { color: getTheme().error }, "Thought cancelled") });
|
|
42
|
-
},
|
|
43
|
-
renderResultForAssistant: () => "Your thought has been logged."
|
|
44
|
-
};
|
|
45
|
-
export {
|
|
46
|
-
ThinkTool
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=ThinkTool.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/ThinkTool/ThinkTool.tsx"],
|
|
4
|
-
"sourcesContent": ["import { z } from 'zod'\nimport React from 'react'\nimport { Text } from 'ink'\nimport { Tool } from '../../Tool'\nimport { DESCRIPTION, PROMPT } from './prompt'\nimport { getTheme } from '../../utils/theme'\nimport { MessageResponse } from '../../components/MessageResponse'\nimport { checkGate, logEvent } from '../../services/statsig'\nimport { USE_BEDROCK, USE_VERTEX } from '../../utils/model'\n\nconst thinkToolSchema = z.object({\n thought: z.string().describe('Your thoughts.'),\n})\n\nexport const ThinkTool = {\n name: 'Think',\n userFacingName: () => 'Think',\n description: async () => DESCRIPTION,\n inputSchema: thinkToolSchema,\n isEnabled: async () =>\n Boolean(process.env.THINK_TOOL) && (await checkGate('tengu_think_tool')),\n isReadOnly: () => true,\n isConcurrencySafe: () => true, // ThinkTool is read-only, safe for concurrent execution\n needsPermissions: () => false,\n prompt: async () => PROMPT,\n\n async *call(input, { messageId }) {\n logEvent('tengu_thinking', {\n messageId,\n thoughtLength: input.thought.length.toString(),\n method: 'tool',\n provider: USE_BEDROCK ? 'bedrock' : USE_VERTEX ? 'vertex' : '1p',\n })\n\n yield {\n type: 'result',\n resultForAssistant: 'Your thought has been logged.',\n data: { thought: input.thought },\n }\n },\n\n // This is never called -- it's special-cased in AssistantToolUseMessage\n renderToolUseMessage(input) {\n return input.thought\n },\n\n renderToolUseRejectedMessage() {\n return (\n <MessageResponse children={<Text color={getTheme().error}>Thought cancelled</Text>} />\n )\n },\n\n renderResultForAssistant: () => 'Your thought has been logged.',\n} satisfies Tool<typeof thinkToolSchema>\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,SAAS;AAClB,OAAO,WAAW;AAClB,SAAS,YAAY;AAErB,SAAS,aAAa,cAAc;AACpC,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,WAAW,gBAAgB;AACpC,SAAS,aAAa,kBAAkB;AAExC,MAAM,kBAAkB,EAAE,OAAO;AAAA,EAC/B,SAAS,EAAE,OAAO,EAAE,SAAS,gBAAgB;AAC/C,CAAC;AAEM,MAAM,YAAY;AAAA,EACvB,MAAM;AAAA,EACN,gBAAgB,MAAM;AAAA,EACtB,aAAa,YAAY;AAAA,EACzB,aAAa;AAAA,EACb,WAAW,YACT,QAAQ,QAAQ,IAAI,UAAU,KAAM,MAAM,UAAU,kBAAkB;AAAA,EACxE,YAAY,MAAM;AAAA,EAClB,mBAAmB,MAAM;AAAA;AAAA,EACzB,kBAAkB,MAAM;AAAA,EACxB,QAAQ,YAAY;AAAA,EAEpB,OAAO,KAAK,OAAO,EAAE,UAAU,GAAG;AAChC,aAAS,kBAAkB;AAAA,MACzB;AAAA,MACA,eAAe,MAAM,QAAQ,OAAO,SAAS;AAAA,MAC7C,QAAQ;AAAA,MACR,UAAU,cAAc,YAAY,aAAa,WAAW;AAAA,IAC9D,CAAC;AAED,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,oBAAoB;AAAA,MACpB,MAAM,EAAE,SAAS,MAAM,QAAQ;AAAA,IACjC;AAAA,EACF;AAAA;AAAA,EAGA,qBAAqB,OAAO;AAC1B,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,+BAA+B;AAC7B,WACE,oCAAC,mBAAgB,UAAU,oCAAC,QAAK,OAAO,SAAS,EAAE,SAAO,mBAAiB,GAAS;AAAA,EAExF;AAAA,EAEA,0BAA0B,MAAM;AAClC;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const DESCRIPTION = "This is a no-op tool that logs a thought. It is inspired by the tau-bench think tool.";
|
|
2
|
-
const PROMPT = `Use the tool to think about something. It will not obtain new information or make any changes to the repository, but just log the thought. Use it when complex reasoning or brainstorming is needed.
|
|
3
|
-
|
|
4
|
-
Common use cases:
|
|
5
|
-
1. When exploring a repository and discovering the source of a bug, call this tool to brainstorm several unique ways of fixing the bug, and assess which change(s) are likely to be simplest and most effective
|
|
6
|
-
2. After receiving test results, use this tool to brainstorm ways to fix failing tests
|
|
7
|
-
3. When planning a complex refactoring, use this tool to outline different approaches and their tradeoffs
|
|
8
|
-
4. When designing a new feature, use this tool to think through architecture decisions and implementation details
|
|
9
|
-
5. When debugging a complex issue, use this tool to organize your thoughts and hypotheses
|
|
10
|
-
|
|
11
|
-
The tool simply logs your thought process for better transparency and does not execute any code or make changes.`;
|
|
12
|
-
export {
|
|
13
|
-
DESCRIPTION,
|
|
14
|
-
PROMPT
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/ThinkTool/prompt.ts"],
|
|
4
|
-
"sourcesContent": ["export const DESCRIPTION =\n 'This is a no-op tool that logs a thought. It is inspired by the tau-bench think tool.'\nexport const PROMPT = `Use the tool to think about something. It will not obtain new information or make any changes to the repository, but just log the thought. Use it when complex reasoning or brainstorming is needed. \n\nCommon use cases:\n1. When exploring a repository and discovering the source of a bug, call this tool to brainstorm several unique ways of fixing the bug, and assess which change(s) are likely to be simplest and most effective\n2. After receiving test results, use this tool to brainstorm ways to fix failing tests\n3. When planning a complex refactoring, use this tool to outline different approaches and their tradeoffs\n4. When designing a new feature, use this tool to think through architecture decisions and implementation details\n5. When debugging a complex issue, use this tool to organize your thoughts and hypotheses\n\nThe tool simply logs your thought process for better transparency and does not execute any code or make changes.`\n"],
|
|
5
|
-
"mappings": "AAAO,MAAM,cACX;AACK,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { Box, Text } from "ink";
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { FallbackToolUseRejectedMessage } from "../../components/FallbackToolUseRejectedMessage.js";
|
|
5
|
-
import { setTodos, getTodos } from "../../utils/todoStorage.js";
|
|
6
|
-
import { emitReminderEvent } from "../../services/systemReminder.js";
|
|
7
|
-
import { startWatchingTodoFile } from "../../services/fileFreshness.js";
|
|
8
|
-
import { DESCRIPTION, PROMPT } from "./prompt.js";
|
|
9
|
-
import { getTheme } from "../../utils/theme.js";
|
|
10
|
-
const TodoItemSchema = z.object({
|
|
11
|
-
content: z.string().min(1).describe("The task description or content"),
|
|
12
|
-
status: z.enum(["pending", "in_progress", "completed"]).describe("Current status of the task"),
|
|
13
|
-
priority: z.enum(["high", "medium", "low"]).describe("Priority level of the task"),
|
|
14
|
-
id: z.string().min(1).describe("Unique identifier for the task")
|
|
15
|
-
});
|
|
16
|
-
const inputSchema = z.strictObject({
|
|
17
|
-
todos: z.array(TodoItemSchema).describe("The updated todo list")
|
|
18
|
-
});
|
|
19
|
-
function validateTodos(todos) {
|
|
20
|
-
const ids = todos.map((todo) => todo.id);
|
|
21
|
-
const uniqueIds = new Set(ids);
|
|
22
|
-
if (ids.length !== uniqueIds.size) {
|
|
23
|
-
return {
|
|
24
|
-
result: false,
|
|
25
|
-
errorCode: 1,
|
|
26
|
-
message: "Duplicate todo IDs found",
|
|
27
|
-
meta: {
|
|
28
|
-
duplicateIds: ids.filter((id, index) => ids.indexOf(id) !== index)
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
const inProgressTasks = todos.filter((todo) => todo.status === "in_progress");
|
|
33
|
-
if (inProgressTasks.length > 1) {
|
|
34
|
-
return {
|
|
35
|
-
result: false,
|
|
36
|
-
errorCode: 2,
|
|
37
|
-
message: "Only one task can be in_progress at a time",
|
|
38
|
-
meta: { inProgressTaskIds: inProgressTasks.map((t) => t.id) }
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
for (const todo of todos) {
|
|
42
|
-
if (!todo.content?.trim()) {
|
|
43
|
-
return {
|
|
44
|
-
result: false,
|
|
45
|
-
errorCode: 3,
|
|
46
|
-
message: `Todo with ID "${todo.id}" has empty content`,
|
|
47
|
-
meta: { todoId: todo.id }
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
if (!["pending", "in_progress", "completed"].includes(todo.status)) {
|
|
51
|
-
return {
|
|
52
|
-
result: false,
|
|
53
|
-
errorCode: 4,
|
|
54
|
-
message: `Invalid status "${todo.status}" for todo "${todo.id}"`,
|
|
55
|
-
meta: { todoId: todo.id, invalidStatus: todo.status }
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
if (!["high", "medium", "low"].includes(todo.priority)) {
|
|
59
|
-
return {
|
|
60
|
-
result: false,
|
|
61
|
-
errorCode: 5,
|
|
62
|
-
message: `Invalid priority "${todo.priority}" for todo "${todo.id}"`,
|
|
63
|
-
meta: { todoId: todo.id, invalidPriority: todo.priority }
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return { result: true };
|
|
68
|
-
}
|
|
69
|
-
function generateTodoSummary(todos) {
|
|
70
|
-
const stats = {
|
|
71
|
-
total: todos.length,
|
|
72
|
-
pending: todos.filter((t) => t.status === "pending").length,
|
|
73
|
-
inProgress: todos.filter((t) => t.status === "in_progress").length,
|
|
74
|
-
completed: todos.filter((t) => t.status === "completed").length
|
|
75
|
-
};
|
|
76
|
-
let summary = `Updated ${stats.total} todo(s)`;
|
|
77
|
-
if (stats.total > 0) {
|
|
78
|
-
summary += ` (${stats.pending} pending, ${stats.inProgress} in progress, ${stats.completed} completed)`;
|
|
79
|
-
}
|
|
80
|
-
summary += ". Continue tracking your progress with the todo list.";
|
|
81
|
-
return summary;
|
|
82
|
-
}
|
|
83
|
-
const TodoWriteTool = {
|
|
84
|
-
name: "TodoWrite",
|
|
85
|
-
async description() {
|
|
86
|
-
return DESCRIPTION;
|
|
87
|
-
},
|
|
88
|
-
async prompt() {
|
|
89
|
-
return PROMPT;
|
|
90
|
-
},
|
|
91
|
-
inputSchema,
|
|
92
|
-
userFacingName() {
|
|
93
|
-
return "Update Todos";
|
|
94
|
-
},
|
|
95
|
-
async isEnabled() {
|
|
96
|
-
return true;
|
|
97
|
-
},
|
|
98
|
-
isReadOnly() {
|
|
99
|
-
return false;
|
|
100
|
-
},
|
|
101
|
-
isConcurrencySafe() {
|
|
102
|
-
return false;
|
|
103
|
-
},
|
|
104
|
-
needsPermissions() {
|
|
105
|
-
return false;
|
|
106
|
-
},
|
|
107
|
-
renderResultForAssistant(result) {
|
|
108
|
-
return "Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable";
|
|
109
|
-
},
|
|
110
|
-
renderToolUseMessage(input, { verbose }) {
|
|
111
|
-
return "{ params.todo }";
|
|
112
|
-
},
|
|
113
|
-
renderToolUseRejectedMessage() {
|
|
114
|
-
return /* @__PURE__ */ React.createElement(FallbackToolUseRejectedMessage, null);
|
|
115
|
-
},
|
|
116
|
-
renderToolResultMessage(output) {
|
|
117
|
-
const isError = typeof output === "string" && output.startsWith("Error");
|
|
118
|
-
if (!isError && typeof output === "string") {
|
|
119
|
-
const currentTodos = getTodos();
|
|
120
|
-
if (currentTodos.length === 0) {
|
|
121
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", width: "100%" }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "row" }, /* @__PURE__ */ React.createElement(Text, { color: "#6B7280" }, "\xA0\xA0\u23BF \xA0"), /* @__PURE__ */ React.createElement(Text, { color: "#9CA3AF" }, "No todos currently")));
|
|
122
|
-
}
|
|
123
|
-
const sortedTodos = [...currentTodos].sort((a, b) => {
|
|
124
|
-
const order = ["completed", "in_progress", "pending"];
|
|
125
|
-
return order.indexOf(a.status) - order.indexOf(b.status) || a.content.localeCompare(b.content);
|
|
126
|
-
});
|
|
127
|
-
const nextPendingIndex = sortedTodos.findIndex((todo) => todo.status === "pending");
|
|
128
|
-
return /* @__PURE__ */ React.createElement(Box, { flexDirection: "column", width: "100%" }, sortedTodos.map((todo, index) => {
|
|
129
|
-
let checkbox;
|
|
130
|
-
let textColor;
|
|
131
|
-
let isBold = false;
|
|
132
|
-
let isStrikethrough = false;
|
|
133
|
-
if (todo.status === "completed") {
|
|
134
|
-
checkbox = "\u2612";
|
|
135
|
-
textColor = "#6B7280";
|
|
136
|
-
isStrikethrough = true;
|
|
137
|
-
} else if (todo.status === "in_progress") {
|
|
138
|
-
checkbox = "\u2610";
|
|
139
|
-
textColor = "#10B981";
|
|
140
|
-
isBold = true;
|
|
141
|
-
} else if (todo.status === "pending") {
|
|
142
|
-
checkbox = "\u2610";
|
|
143
|
-
if (index === nextPendingIndex) {
|
|
144
|
-
textColor = "#8B5CF6";
|
|
145
|
-
isBold = true;
|
|
146
|
-
} else {
|
|
147
|
-
textColor = "#9CA3AF";
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return /* @__PURE__ */ React.createElement(Box, { key: todo.id || index, flexDirection: "row", marginBottom: 0 }, /* @__PURE__ */ React.createElement(Text, { color: "#6B7280" }, "\xA0\xA0\u23BF \xA0"), /* @__PURE__ */ React.createElement(Box, { flexDirection: "row", flexGrow: 1 }, /* @__PURE__ */ React.createElement(Text, { color: textColor, bold: isBold, strikethrough: isStrikethrough }, checkbox), /* @__PURE__ */ React.createElement(Text, null, " "), /* @__PURE__ */ React.createElement(Text, { color: textColor, bold: isBold, strikethrough: isStrikethrough }, todo.content)));
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
return /* @__PURE__ */ React.createElement(Box, { justifyContent: "space-between", overflowX: "hidden", width: "100%" }, /* @__PURE__ */ React.createElement(Box, { flexDirection: "row" }, /* @__PURE__ */ React.createElement(Text, { color: isError ? getTheme().error : getTheme().success }, "\xA0\xA0\u23BF \xA0", typeof output === "string" ? output : JSON.stringify(output))));
|
|
154
|
-
},
|
|
155
|
-
async validateInput({ todos }) {
|
|
156
|
-
const todoItems = todos;
|
|
157
|
-
const validation = validateTodos(todoItems);
|
|
158
|
-
if (!validation.result) {
|
|
159
|
-
return validation;
|
|
160
|
-
}
|
|
161
|
-
return { result: true };
|
|
162
|
-
},
|
|
163
|
-
async *call({ todos }, context) {
|
|
164
|
-
try {
|
|
165
|
-
const agentId = context?.agentId;
|
|
166
|
-
if (agentId) {
|
|
167
|
-
startWatchingTodoFile(agentId);
|
|
168
|
-
}
|
|
169
|
-
const previousTodos = getTodos(agentId);
|
|
170
|
-
const todoItems = todos;
|
|
171
|
-
setTodos(todoItems, agentId);
|
|
172
|
-
const hasChanged = JSON.stringify(previousTodos) !== JSON.stringify(todoItems);
|
|
173
|
-
if (hasChanged) {
|
|
174
|
-
emitReminderEvent("todo:changed", {
|
|
175
|
-
previousTodos,
|
|
176
|
-
newTodos: todoItems,
|
|
177
|
-
timestamp: Date.now(),
|
|
178
|
-
agentId: agentId || "default",
|
|
179
|
-
changeType: todoItems.length > previousTodos.length ? "added" : todoItems.length < previousTodos.length ? "removed" : "modified"
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
const summary = generateTodoSummary(todoItems);
|
|
183
|
-
const resultData = {
|
|
184
|
-
oldTodos: previousTodos,
|
|
185
|
-
newTodos: todoItems,
|
|
186
|
-
summary
|
|
187
|
-
};
|
|
188
|
-
yield {
|
|
189
|
-
type: "result",
|
|
190
|
-
data: summary,
|
|
191
|
-
// Return string to satisfy interface
|
|
192
|
-
resultForAssistant: summary
|
|
193
|
-
// Store todo data in a way accessible to the renderer
|
|
194
|
-
// We'll modify the renderToolResultMessage to get todos from storage
|
|
195
|
-
};
|
|
196
|
-
} catch (error) {
|
|
197
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error occurred";
|
|
198
|
-
const errorResult = `Error updating todos: ${errorMessage}`;
|
|
199
|
-
emitReminderEvent("todo:error", {
|
|
200
|
-
error: errorMessage,
|
|
201
|
-
timestamp: Date.now(),
|
|
202
|
-
agentId: context?.agentId || "default",
|
|
203
|
-
context: "TodoWriteTool.call"
|
|
204
|
-
});
|
|
205
|
-
yield {
|
|
206
|
-
type: "result",
|
|
207
|
-
data: errorResult,
|
|
208
|
-
resultForAssistant: errorResult
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
export {
|
|
214
|
-
TodoWriteTool
|
|
215
|
-
};
|
|
216
|
-
//# sourceMappingURL=TodoWriteTool.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/TodoWriteTool/TodoWriteTool.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Box, Text } from 'ink'\nimport * as React from 'react'\nimport { z } from 'zod'\nimport { FallbackToolUseRejectedMessage } from '../../components/FallbackToolUseRejectedMessage'\nimport { TodoItem as TodoItemComponent } from '../../components/TodoItem'\nimport { Tool, ValidationResult } from '../../Tool'\nimport { setTodos, getTodos, TodoItem } from '../../utils/todoStorage'\nimport { emitReminderEvent } from '../../services/systemReminder'\nimport { startWatchingTodoFile } from '../../services/fileFreshness'\nimport { DESCRIPTION, PROMPT } from './prompt'\nimport { getTheme } from '../../utils/theme'\n\nconst TodoItemSchema = z.object({\n content: z.string().min(1).describe('The task description or content'),\n status: z\n .enum(['pending', 'in_progress', 'completed'])\n .describe('Current status of the task'),\n priority: z\n .enum(['high', 'medium', 'low'])\n .describe('Priority level of the task'),\n id: z.string().min(1).describe('Unique identifier for the task'),\n})\n\nconst inputSchema = z.strictObject({\n todos: z.array(TodoItemSchema).describe('The updated todo list'),\n})\n\nfunction validateTodos(todos: TodoItem[]): ValidationResult {\n // Check for duplicate IDs\n const ids = todos.map(todo => todo.id)\n const uniqueIds = new Set(ids)\n if (ids.length !== uniqueIds.size) {\n return {\n result: false,\n errorCode: 1,\n message: 'Duplicate todo IDs found',\n meta: {\n duplicateIds: ids.filter((id, index) => ids.indexOf(id) !== index),\n },\n }\n }\n\n // Check for multiple in_progress tasks\n const inProgressTasks = todos.filter(todo => todo.status === 'in_progress')\n if (inProgressTasks.length > 1) {\n return {\n result: false,\n errorCode: 2,\n message: 'Only one task can be in_progress at a time',\n meta: { inProgressTaskIds: inProgressTasks.map(t => t.id) },\n }\n }\n\n // Validate each todo\n for (const todo of todos) {\n if (!todo.content?.trim()) {\n return {\n result: false,\n errorCode: 3,\n message: `Todo with ID \"${todo.id}\" has empty content`,\n meta: { todoId: todo.id },\n }\n }\n if (!['pending', 'in_progress', 'completed'].includes(todo.status)) {\n return {\n result: false,\n errorCode: 4,\n message: `Invalid status \"${todo.status}\" for todo \"${todo.id}\"`,\n meta: { todoId: todo.id, invalidStatus: todo.status },\n }\n }\n if (!['high', 'medium', 'low'].includes(todo.priority)) {\n return {\n result: false,\n errorCode: 5,\n message: `Invalid priority \"${todo.priority}\" for todo \"${todo.id}\"`,\n meta: { todoId: todo.id, invalidPriority: todo.priority },\n }\n }\n }\n\n return { result: true }\n}\n\nfunction generateTodoSummary(todos: TodoItem[]): string {\n const stats = {\n total: todos.length,\n pending: todos.filter(t => t.status === 'pending').length,\n inProgress: todos.filter(t => t.status === 'in_progress').length,\n completed: todos.filter(t => t.status === 'completed').length,\n }\n\n // Enhanced summary with statistics\n let summary = `Updated ${stats.total} todo(s)`\n if (stats.total > 0) {\n summary += ` (${stats.pending} pending, ${stats.inProgress} in progress, ${stats.completed} completed)`\n }\n summary += '. Continue tracking your progress with the todo list.'\n\n return summary\n}\n\nexport const TodoWriteTool = {\n name: 'TodoWrite',\n async description() {\n return DESCRIPTION\n },\n async prompt() {\n return PROMPT\n },\n inputSchema,\n userFacingName() {\n return 'Update Todos'\n },\n async isEnabled() {\n return true\n },\n isReadOnly() {\n return false\n },\n isConcurrencySafe() {\n return false // TodoWrite modifies state, not safe for concurrent execution\n },\n needsPermissions() {\n return false\n },\n renderResultForAssistant(result) {\n // Match official implementation - return static confirmation message\n return 'Todos have been modified successfully. Ensure that you continue to use the todo list to track your progress. Please proceed with the current tasks if applicable'\n },\n renderToolUseMessage(input, { verbose }) {\n // Show a simple confirmation message when the tool is being used\n return '{ params.todo }'\n },\n renderToolUseRejectedMessage() {\n return <FallbackToolUseRejectedMessage />\n },\n renderToolResultMessage(output) {\n const isError = typeof output === 'string' && output.startsWith('Error')\n\n // For non-error output, get current todos from storage and render them\n if (!isError && typeof output === 'string') {\n const currentTodos = getTodos()\n \n if (currentTodos.length === 0) {\n return (\n <Box flexDirection=\"column\" width=\"100%\">\n <Box flexDirection=\"row\">\n <Text color=\"#6B7280\"> \u23BF </Text>\n <Text color=\"#9CA3AF\">No todos currently</Text>\n </Box>\n </Box>\n )\n }\n\n // Sort: [completed, in_progress, pending]\n const sortedTodos = [...currentTodos].sort((a, b) => {\n const order = ['completed', 'in_progress', 'pending']\n return (\n order.indexOf(a.status) - order.indexOf(b.status) ||\n a.content.localeCompare(b.content)\n )\n })\n\n // Find the next pending task (first pending task after sorting)\n const nextPendingIndex = sortedTodos.findIndex(todo => todo.status === 'pending')\n\n return (\n <Box flexDirection=\"column\" width=\"100%\">\n {sortedTodos.map((todo: TodoItem, index: number) => {\n // Determine checkbox symbol and colors\n let checkbox: string\n let textColor: string\n let isBold = false\n let isStrikethrough = false\n\n if (todo.status === 'completed') {\n checkbox = '\u2612'\n textColor = '#6B7280' // Professional gray for completed\n isStrikethrough = true\n } else if (todo.status === 'in_progress') {\n checkbox = '\u2610'\n textColor = '#10B981' // Professional green for in progress\n isBold = true\n } else if (todo.status === 'pending') {\n checkbox = '\u2610'\n // Only the FIRST pending task gets purple highlight\n if (index === nextPendingIndex) {\n textColor = '#8B5CF6' // Professional purple for next pending\n isBold = true\n } else {\n textColor = '#9CA3AF' // Muted gray for other pending\n }\n }\n\n return (\n <Box key={todo.id || index} flexDirection=\"row\" marginBottom={0}>\n <Text color=\"#6B7280\"> \u23BF </Text>\n <Box flexDirection=\"row\" flexGrow={1}>\n <Text color={textColor} bold={isBold} strikethrough={isStrikethrough}>\n {checkbox}\n </Text>\n <Text> </Text>\n <Text color={textColor} bold={isBold} strikethrough={isStrikethrough}>\n {todo.content}\n </Text>\n </Box>\n </Box>\n )\n })}\n </Box>\n )\n }\n\n // Fallback to simple text rendering for errors or string output\n return (\n <Box justifyContent=\"space-between\" overflowX=\"hidden\" width=\"100%\">\n <Box flexDirection=\"row\">\n <Text color={isError ? getTheme().error : getTheme().success}>\n \u23BF \n {typeof output === 'string' ? output : JSON.stringify(output)}\n </Text>\n </Box>\n </Box>\n )\n },\n async validateInput({ todos }: z.infer<typeof inputSchema>) {\n // Type assertion to ensure todos match TodoItem[] interface\n const todoItems = todos as TodoItem[]\n const validation = validateTodos(todoItems)\n if (!validation.result) {\n return validation\n }\n return { result: true }\n },\n async *call({ todos }: z.infer<typeof inputSchema>, context) {\n try {\n // Get agent ID from context\n const agentId = context?.agentId\n\n // Start watching todo file for this agent if not already watching\n if (agentId) {\n startWatchingTodoFile(agentId)\n }\n\n // Store previous todos for comparison (agent-scoped)\n const previousTodos = getTodos(agentId)\n\n // Type assertion to ensure todos match TodoItem[] interface\n const todoItems = todos as TodoItem[]\n\n // Note: Validation already done in validateInput, no need for duplicate validation\n // This eliminates the double validation issue\n\n // Update the todos in storage (agent-scoped)\n setTodos(todoItems, agentId)\n\n // Emit todo change event for system reminders (optimized - only if todos actually changed)\n const hasChanged =\n JSON.stringify(previousTodos) !== JSON.stringify(todoItems)\n if (hasChanged) {\n emitReminderEvent('todo:changed', {\n previousTodos,\n newTodos: todoItems,\n timestamp: Date.now(),\n agentId: agentId || 'default',\n changeType:\n todoItems.length > previousTodos.length\n ? 'added'\n : todoItems.length < previousTodos.length\n ? 'removed'\n : 'modified',\n })\n }\n\n // Generate enhanced summary\n const summary = generateTodoSummary(todoItems)\n\n // Enhanced result data for rendering\n const resultData = {\n oldTodos: previousTodos,\n newTodos: todoItems,\n summary,\n }\n\n yield {\n type: 'result',\n data: summary, // Return string to satisfy interface\n resultForAssistant: summary,\n // Store todo data in a way accessible to the renderer\n // We'll modify the renderToolResultMessage to get todos from storage\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Unknown error occurred'\n const errorResult = `Error updating todos: ${errorMessage}`\n\n // Emit error event for system monitoring\n emitReminderEvent('todo:error', {\n error: errorMessage,\n timestamp: Date.now(),\n agentId: context?.agentId || 'default',\n context: 'TodoWriteTool.call',\n })\n\n yield {\n type: 'result',\n data: errorResult,\n resultForAssistant: errorResult,\n }\n }\n },\n} satisfies Tool<typeof inputSchema, string>\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
const DESCRIPTION = "Creates and manages todo items for task tracking and progress management in the current session.";
|
|
2
|
-
const PROMPT = `Use this tool to create and manage todo items for tracking tasks and progress. This tool provides comprehensive todo management:
|
|
3
|
-
|
|
4
|
-
## When to Use This Tool
|
|
5
|
-
|
|
6
|
-
Use this tool proactively in these scenarios:
|
|
7
|
-
|
|
8
|
-
1. **Complex multi-step tasks** - When a task requires 3 or more distinct steps or actions
|
|
9
|
-
2. **Non-trivial and complex tasks** - Tasks that require careful planning or multiple operations
|
|
10
|
-
3. **User explicitly requests todo list** - When the user directly asks you to use the todo list
|
|
11
|
-
4. **User provides multiple tasks** - When users provide a list of things to be done (numbered or comma-separated)
|
|
12
|
-
5. **After receiving new instructions** - Immediately capture user requirements as todos
|
|
13
|
-
6. **When you start working on a task** - Mark it as in_progress BEFORE beginning work. Ideally you should only have one todo as in_progress at a time
|
|
14
|
-
7. **After completing a task** - Mark it as completed and add any new follow-up tasks discovered during implementation
|
|
15
|
-
|
|
16
|
-
## When NOT to Use This Tool
|
|
17
|
-
|
|
18
|
-
Skip using this tool when:
|
|
19
|
-
1. There is only a single, straightforward task
|
|
20
|
-
2. The task is trivial and tracking it provides no organizational benefit
|
|
21
|
-
3. The task can be completed in less than 3 trivial steps
|
|
22
|
-
4. The task is purely conversational or informational
|
|
23
|
-
|
|
24
|
-
## Task States and Management
|
|
25
|
-
|
|
26
|
-
1. **Task States**: Use these states to track progress:
|
|
27
|
-
- pending: Task not yet started
|
|
28
|
-
- in_progress: Currently working on (limit to ONE task at a time)
|
|
29
|
-
- completed: Task finished successfully
|
|
30
|
-
|
|
31
|
-
2. **Task Management**:
|
|
32
|
-
- Update task status in real-time as you work
|
|
33
|
-
- Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
|
|
34
|
-
- Only have ONE task in_progress at any time
|
|
35
|
-
- Complete current tasks before starting new ones
|
|
36
|
-
- Remove tasks that are no longer relevant from the list entirely
|
|
37
|
-
|
|
38
|
-
3. **Task Completion Requirements**:
|
|
39
|
-
- ONLY mark a task as completed when you have FULLY accomplished it
|
|
40
|
-
- If you encounter errors, blockers, or cannot finish, keep the task as in_progress
|
|
41
|
-
- When blocked, create a new task describing what needs to be resolved
|
|
42
|
-
- Never mark a task as completed if:
|
|
43
|
-
- Tests are failing
|
|
44
|
-
- Implementation is partial
|
|
45
|
-
- You encountered unresolved errors
|
|
46
|
-
- You couldn't find necessary files or dependencies
|
|
47
|
-
|
|
48
|
-
4. **Task Breakdown**:
|
|
49
|
-
- Create specific, actionable items
|
|
50
|
-
- Break complex tasks into smaller, manageable steps
|
|
51
|
-
- Use clear, descriptive task names
|
|
52
|
-
|
|
53
|
-
## Tool Capabilities
|
|
54
|
-
|
|
55
|
-
- **Create new todos**: Add tasks with content, priority, and status
|
|
56
|
-
- **Update existing todos**: Modify any aspect of a todo (status, priority, content)
|
|
57
|
-
- **Delete todos**: Remove completed or irrelevant tasks
|
|
58
|
-
- **Batch operations**: Update multiple todos in a single operation
|
|
59
|
-
- **Clear all todos**: Reset the entire todo list
|
|
60
|
-
|
|
61
|
-
When in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.`;
|
|
62
|
-
export {
|
|
63
|
-
DESCRIPTION,
|
|
64
|
-
PROMPT
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/tools/TodoWriteTool/prompt.ts"],
|
|
4
|
-
"sourcesContent": ["export const DESCRIPTION =\n 'Creates and manages todo items for task tracking and progress management in the current session.'\n\nexport const PROMPT = `Use this tool to create and manage todo items for tracking tasks and progress. This tool provides comprehensive todo management:\n\n## When to Use This Tool\n\nUse this tool proactively in these scenarios:\n\n1. **Complex multi-step tasks** - When a task requires 3 or more distinct steps or actions\n2. **Non-trivial and complex tasks** - Tasks that require careful planning or multiple operations\n3. **User explicitly requests todo list** - When the user directly asks you to use the todo list\n4. **User provides multiple tasks** - When users provide a list of things to be done (numbered or comma-separated)\n5. **After receiving new instructions** - Immediately capture user requirements as todos\n6. **When you start working on a task** - Mark it as in_progress BEFORE beginning work. Ideally you should only have one todo as in_progress at a time\n7. **After completing a task** - Mark it as completed and add any new follow-up tasks discovered during implementation\n\n## When NOT to Use This Tool\n\nSkip using this tool when:\n1. There is only a single, straightforward task\n2. The task is trivial and tracking it provides no organizational benefit\n3. The task can be completed in less than 3 trivial steps\n4. The task is purely conversational or informational\n\n## Task States and Management\n\n1. **Task States**: Use these states to track progress:\n - pending: Task not yet started\n - in_progress: Currently working on (limit to ONE task at a time)\n - completed: Task finished successfully\n\n2. **Task Management**:\n - Update task status in real-time as you work\n - Mark tasks complete IMMEDIATELY after finishing (don't batch completions)\n - Only have ONE task in_progress at any time\n - Complete current tasks before starting new ones\n - Remove tasks that are no longer relevant from the list entirely\n\n3. **Task Completion Requirements**:\n - ONLY mark a task as completed when you have FULLY accomplished it\n - If you encounter errors, blockers, or cannot finish, keep the task as in_progress\n - When blocked, create a new task describing what needs to be resolved\n - Never mark a task as completed if:\n - Tests are failing\n - Implementation is partial\n - You encountered unresolved errors\n - You couldn't find necessary files or dependencies\n\n4. **Task Breakdown**:\n - Create specific, actionable items\n - Break complex tasks into smaller, manageable steps\n - Use clear, descriptive task names\n\n## Tool Capabilities\n\n- **Create new todos**: Add tasks with content, priority, and status\n- **Update existing todos**: Modify any aspect of a todo (status, priority, content)\n- **Delete todos**: Remove completed or irrelevant tasks\n- **Batch operations**: Update multiple todos in a single operation\n- **Clear all todos**: Reset the entire todo list\n\nWhen in doubt, use this tool. Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully.`\n"],
|
|
5
|
-
"mappings": "AAAO,MAAM,cACX;AAEK,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|