@within-7/minto 0.0.5-dev.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/LICENSE +201 -0
- package/README.md +1097 -0
- package/README.zh-CN.md +1097 -0
- package/cli.js +59 -0
- package/dist/Tool.js +1 -0
- package/dist/Tool.js.map +7 -0
- package/dist/commands/agents.js +2086 -0
- package/dist/commands/agents.js.map +7 -0
- package/dist/commands/approvedTools.js +36 -0
- package/dist/commands/approvedTools.js.map +7 -0
- package/dist/commands/bug.js +21 -0
- package/dist/commands/bug.js.map +7 -0
- package/dist/commands/build.js +74 -0
- package/dist/commands/build.js.map +7 -0
- package/dist/commands/clear.js +37 -0
- package/dist/commands/clear.js.map +7 -0
- package/dist/commands/compact.js +82 -0
- package/dist/commands/compact.js.map +7 -0
- package/dist/commands/compression.js +57 -0
- package/dist/commands/compression.js.map +7 -0
- package/dist/commands/config.js +20 -0
- package/dist/commands/config.js.map +7 -0
- package/dist/commands/cost.js +19 -0
- package/dist/commands/cost.js.map +7 -0
- package/dist/commands/ctx_viz.js +152 -0
- package/dist/commands/ctx_viz.js.map +7 -0
- package/dist/commands/doctor.js +25 -0
- package/dist/commands/doctor.js.map +7 -0
- package/dist/commands/help.js +20 -0
- package/dist/commands/help.js.map +7 -0
- package/dist/commands/init.js +38 -0
- package/dist/commands/init.js.map +7 -0
- package/dist/commands/listen.js +37 -0
- package/dist/commands/listen.js.map +7 -0
- package/dist/commands/login.js +37 -0
- package/dist/commands/login.js.map +7 -0
- package/dist/commands/logout.js +33 -0
- package/dist/commands/logout.js.map +7 -0
- package/dist/commands/mcp-interactive.js +267 -0
- package/dist/commands/mcp-interactive.js.map +7 -0
- package/dist/commands/mcp.js +40 -0
- package/dist/commands/mcp.js.map +7 -0
- package/dist/commands/mcp_refresh.js +40 -0
- package/dist/commands/mcp_refresh.js.map +7 -0
- package/dist/commands/model.js +41 -0
- package/dist/commands/model.js.map +7 -0
- package/dist/commands/modelstatus.js +21 -0
- package/dist/commands/modelstatus.js.map +7 -0
- package/dist/commands/onboarding.js +36 -0
- package/dist/commands/onboarding.js.map +7 -0
- package/dist/commands/plugin/AddMarketplaceForm.js +62 -0
- package/dist/commands/plugin/AddMarketplaceForm.js.map +7 -0
- package/dist/commands/plugin/ConfirmDialog.js +71 -0
- package/dist/commands/plugin/ConfirmDialog.js.map +7 -0
- package/dist/commands/plugin/ErrorView.js +33 -0
- package/dist/commands/plugin/ErrorView.js.map +7 -0
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js +135 -0
- package/dist/commands/plugin/InstalledPluginsByMarketplace.js.map +7 -0
- package/dist/commands/plugin/InstalledPluginsManager.js +99 -0
- package/dist/commands/plugin/InstalledPluginsManager.js.map +7 -0
- package/dist/commands/plugin/LoadingView.js +14 -0
- package/dist/commands/plugin/LoadingView.js.map +7 -0
- package/dist/commands/plugin/MainMenu.js +57 -0
- package/dist/commands/plugin/MainMenu.js.map +7 -0
- package/dist/commands/plugin/MarketplaceManager.js +155 -0
- package/dist/commands/plugin/MarketplaceManager.js.map +7 -0
- package/dist/commands/plugin/MarketplaceSelector.js +119 -0
- package/dist/commands/plugin/MarketplaceSelector.js.map +7 -0
- package/dist/commands/plugin/PlaceholderScreen.js +16 -0
- package/dist/commands/plugin/PlaceholderScreen.js.map +7 -0
- package/dist/commands/plugin/PluginBrowser.js +180 -0
- package/dist/commands/plugin/PluginBrowser.js.map +7 -0
- package/dist/commands/plugin/PluginDetailsInstall.js +152 -0
- package/dist/commands/plugin/PluginDetailsInstall.js.map +7 -0
- package/dist/commands/plugin/PluginDetailsManage.js +200 -0
- package/dist/commands/plugin/PluginDetailsManage.js.map +7 -0
- package/dist/commands/plugin/components.js +16 -0
- package/dist/commands/plugin/components.js.map +7 -0
- package/dist/commands/plugin/example-usage.js +63 -0
- package/dist/commands/plugin/example-usage.js.map +7 -0
- package/dist/commands/plugin/types.js +1 -0
- package/dist/commands/plugin/types.js.map +7 -0
- package/dist/commands/plugin/utils.js +77 -0
- package/dist/commands/plugin/utils.js.map +7 -0
- package/dist/commands/plugin-interactive.js +446 -0
- package/dist/commands/plugin-interactive.js.map +7 -0
- package/dist/commands/plugin.js +523 -0
- package/dist/commands/plugin.js.map +7 -0
- package/dist/commands/pr_comments.js +61 -0
- package/dist/commands/pr_comments.js.map +7 -0
- package/dist/commands/quit.js +16 -0
- package/dist/commands/quit.js.map +7 -0
- package/dist/commands/refreshCommands.js +43 -0
- package/dist/commands/refreshCommands.js.map +7 -0
- package/dist/commands/release-notes.js +30 -0
- package/dist/commands/release-notes.js.map +7 -0
- package/dist/commands/resume.js +35 -0
- package/dist/commands/resume.js.map +7 -0
- package/dist/commands/review.js +51 -0
- package/dist/commands/review.js.map +7 -0
- package/dist/commands/terminalSetup.js +164 -0
- package/dist/commands/terminalSetup.js.map +7 -0
- package/dist/commands.js +104 -0
- package/dist/commands.js.map +7 -0
- package/dist/components/AgentResponseBlock.js +41 -0
- package/dist/components/AgentResponseBlock.js.map +7 -0
- package/dist/components/AgentThinkingBlock.js +40 -0
- package/dist/components/AgentThinkingBlock.js.map +7 -0
- package/dist/components/AsciiLogo.js +19 -0
- package/dist/components/AsciiLogo.js.map +7 -0
- package/dist/components/BackgroundTasksPanel.js +124 -0
- package/dist/components/BackgroundTasksPanel.js.map +7 -0
- package/dist/components/Bug.js +147 -0
- package/dist/components/Bug.js.map +7 -0
- package/dist/components/Config.js +166 -0
- package/dist/components/Config.js.map +7 -0
- package/dist/components/ConsoleOAuthFlow.js +178 -0
- package/dist/components/ConsoleOAuthFlow.js.map +7 -0
- package/dist/components/Cost.js +13 -0
- package/dist/components/Cost.js.map +7 -0
- package/dist/components/CostThresholdDialog.js +38 -0
- package/dist/components/CostThresholdDialog.js.map +7 -0
- package/dist/components/CustomSelect/option-map.js +32 -0
- package/dist/components/CustomSelect/option-map.js.map +7 -0
- package/dist/components/CustomSelect/select-option.js +34 -0
- package/dist/components/CustomSelect/select-option.js.map +7 -0
- package/dist/components/CustomSelect/select.js +64 -0
- package/dist/components/CustomSelect/select.js.map +7 -0
- package/dist/components/CustomSelect/theme.js +1 -0
- package/dist/components/CustomSelect/theme.js.map +7 -0
- package/dist/components/CustomSelect/use-select-state.js +220 -0
- package/dist/components/CustomSelect/use-select-state.js.map +7 -0
- package/dist/components/CustomSelect/use-select.js +21 -0
- package/dist/components/CustomSelect/use-select.js.map +7 -0
- package/dist/components/FallbackToolUseRejectedMessage.js +11 -0
- package/dist/components/FallbackToolUseRejectedMessage.js.map +7 -0
- package/dist/components/FileEditToolUpdatedMessage.js +32 -0
- package/dist/components/FileEditToolUpdatedMessage.js.map +7 -0
- package/dist/components/HeaderBar.js +57 -0
- package/dist/components/HeaderBar.js.map +7 -0
- package/dist/components/Help.js +46 -0
- package/dist/components/Help.js.map +7 -0
- package/dist/components/HighlightedCode.js +30 -0
- package/dist/components/HighlightedCode.js.map +7 -0
- package/dist/components/HistorySearchOverlay.js +48 -0
- package/dist/components/HistorySearchOverlay.js.map +7 -0
- package/dist/components/InteractionRoundBlock.js +56 -0
- package/dist/components/InteractionRoundBlock.js.map +7 -0
- package/dist/components/InvalidConfigDialog.js +83 -0
- package/dist/components/InvalidConfigDialog.js.map +7 -0
- package/dist/components/Link.js +18 -0
- package/dist/components/Link.js.map +7 -0
- package/dist/components/LogSelector.js +50 -0
- package/dist/components/LogSelector.js.map +7 -0
- package/dist/components/Logo.js +96 -0
- package/dist/components/Logo.js.map +7 -0
- package/dist/components/MCPServerApprovalDialog.js +79 -0
- package/dist/components/MCPServerApprovalDialog.js.map +7 -0
- package/dist/components/MCPServerDialogCopy.js +11 -0
- package/dist/components/MCPServerDialogCopy.js.map +7 -0
- package/dist/components/MCPServerMultiselectDialog.js +80 -0
- package/dist/components/MCPServerMultiselectDialog.js.map +7 -0
- package/dist/components/Message.js +146 -0
- package/dist/components/Message.js.map +7 -0
- package/dist/components/MessageResponse.js +9 -0
- package/dist/components/MessageResponse.js.map +7 -0
- package/dist/components/MessageSelector.js +125 -0
- package/dist/components/MessageSelector.js.map +7 -0
- package/dist/components/ModeIndicator.js +38 -0
- package/dist/components/ModeIndicator.js.map +7 -0
- package/dist/components/ModelConfig.js +208 -0
- package/dist/components/ModelConfig.js.map +7 -0
- package/dist/components/ModelListManager.js +140 -0
- package/dist/components/ModelListManager.js.map +7 -0
- package/dist/components/ModelSelector.js +2062 -0
- package/dist/components/ModelSelector.js.map +7 -0
- package/dist/components/ModelStatusDisplay.js +87 -0
- package/dist/components/ModelStatusDisplay.js.map +7 -0
- package/dist/components/Onboarding.js +153 -0
- package/dist/components/Onboarding.js.map +7 -0
- package/dist/components/PressEnterToContinue.js +10 -0
- package/dist/components/PressEnterToContinue.js.map +7 -0
- package/dist/components/ProjectOnboarding.js +99 -0
- package/dist/components/ProjectOnboarding.js.map +7 -0
- package/dist/components/PromptInput.js +755 -0
- package/dist/components/PromptInput.js.map +7 -0
- package/dist/components/QuitSummary.js +81 -0
- package/dist/components/QuitSummary.js.map +7 -0
- package/dist/components/SentryErrorBoundary.js +27 -0
- package/dist/components/SentryErrorBoundary.js.map +7 -0
- package/dist/components/Spinner.js +101 -0
- package/dist/components/Spinner.js.map +7 -0
- package/dist/components/SpinnerSymbol.js +78 -0
- package/dist/components/SpinnerSymbol.js.map +7 -0
- package/dist/components/StreamingBashOutput.js +70 -0
- package/dist/components/StreamingBashOutput.js.map +7 -0
- package/dist/components/StructuredDiff.js +148 -0
- package/dist/components/StructuredDiff.js.map +7 -0
- package/dist/components/SubagentBlock.js +157 -0
- package/dist/components/SubagentBlock.js.map +7 -0
- package/dist/components/SubagentManager.js +65 -0
- package/dist/components/SubagentManager.js.map +7 -0
- package/dist/components/SubagentProgress.js +109 -0
- package/dist/components/SubagentProgress.js.map +7 -0
- package/dist/components/SubagentStatusMarker.js +37 -0
- package/dist/components/SubagentStatusMarker.js.map +7 -0
- package/dist/components/TaskCard.js +170 -0
- package/dist/components/TaskCard.js.map +7 -0
- package/dist/components/TextInput.js +100 -0
- package/dist/components/TextInput.js.map +7 -0
- package/dist/components/TimelineRenderer.js +31 -0
- package/dist/components/TimelineRenderer.js.map +7 -0
- package/dist/components/TodoChangeBlock.js +29 -0
- package/dist/components/TodoChangeBlock.js.map +7 -0
- package/dist/components/TodoChangeLine.js +22 -0
- package/dist/components/TodoChangeLine.js.map +7 -0
- package/dist/components/TodoItem.js +35 -0
- package/dist/components/TodoItem.js.map +7 -0
- package/dist/components/TodoPanel.js +55 -0
- package/dist/components/TodoPanel.js.map +7 -0
- package/dist/components/TokenWarning.js +19 -0
- package/dist/components/TokenWarning.js.map +7 -0
- package/dist/components/ToolExecutionBlock.js +18 -0
- package/dist/components/ToolExecutionBlock.js.map +7 -0
- package/dist/components/ToolUseLoader.js +24 -0
- package/dist/components/ToolUseLoader.js.map +7 -0
- package/dist/components/TrustDialog.js +71 -0
- package/dist/components/TrustDialog.js.map +7 -0
- package/dist/components/UserQueryBlock.js +12 -0
- package/dist/components/UserQueryBlock.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedback.js +50 -0
- package/dist/components/binary-feedback/BinaryFeedback.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedbackOption.js +94 -0
- package/dist/components/binary-feedback/BinaryFeedbackOption.js.map +7 -0
- package/dist/components/binary-feedback/BinaryFeedbackView.js +139 -0
- package/dist/components/binary-feedback/BinaryFeedbackView.js.map +7 -0
- package/dist/components/binary-feedback/utils.js +108 -0
- package/dist/components/binary-feedback/utils.js.map +7 -0
- package/dist/components/messages/AssistantBashOutputMessage.js +23 -0
- package/dist/components/messages/AssistantBashOutputMessage.js.map +7 -0
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js +36 -0
- package/dist/components/messages/AssistantLocalCommandOutputMessage.js.map +7 -0
- package/dist/components/messages/AssistantRedactedThinkingMessage.js +12 -0
- package/dist/components/messages/AssistantRedactedThinkingMessage.js.map +7 -0
- package/dist/components/messages/AssistantTextMessage.js +78 -0
- package/dist/components/messages/AssistantTextMessage.js.map +7 -0
- package/dist/components/messages/AssistantThinkingMessage.js +27 -0
- package/dist/components/messages/AssistantThinkingMessage.js.map +7 -0
- package/dist/components/messages/AssistantToolUseMessage.js +91 -0
- package/dist/components/messages/AssistantToolUseMessage.js.map +7 -0
- package/dist/components/messages/TaskProgressMessage.js +11 -0
- package/dist/components/messages/TaskProgressMessage.js.map +7 -0
- package/dist/components/messages/TaskToolMessage.js +39 -0
- package/dist/components/messages/TaskToolMessage.js.map +7 -0
- package/dist/components/messages/UserBashInputMessage.js +18 -0
- package/dist/components/messages/UserBashInputMessage.js.map +7 -0
- package/dist/components/messages/UserCommandMessage.js +20 -0
- package/dist/components/messages/UserCommandMessage.js.map +7 -0
- package/dist/components/messages/UserKodingInputMessage.js +18 -0
- package/dist/components/messages/UserKodingInputMessage.js.map +7 -0
- package/dist/components/messages/UserPromptMessage.js +20 -0
- package/dist/components/messages/UserPromptMessage.js.map +7 -0
- package/dist/components/messages/UserTextMessage.js +25 -0
- package/dist/components/messages/UserTextMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js +10 -0
- package/dist/components/messages/UserToolResultMessage/UserToolCanceledMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js +15 -0
- package/dist/components/messages/UserToolResultMessage/UserToolErrorMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js +25 -0
- package/dist/components/messages/UserToolResultMessage/UserToolRejectMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js +47 -0
- package/dist/components/messages/UserToolResultMessage/UserToolResultMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js +23 -0
- package/dist/components/messages/UserToolResultMessage/UserToolSuccessMessage.js.map +7 -0
- package/dist/components/messages/UserToolResultMessage/utils.js +50 -0
- package/dist/components/messages/UserToolResultMessage/utils.js.map +7 -0
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js +112 -0
- package/dist/components/permissions/BashPermissionRequest/BashPermissionRequest.js.map +7 -0
- package/dist/components/permissions/FallbackPermissionRequest.js +131 -0
- package/dist/components/permissions/FallbackPermissionRequest.js.map +7 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js +159 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.js.map +7 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js +58 -0
- package/dist/components/permissions/FileEditPermissionRequest/FileEditToolDiff.js.map +7 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js +153 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.js.map +7 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js +70 -0
- package/dist/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.js.map +7 -0
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js +212 -0
- package/dist/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.js.map +7 -0
- package/dist/components/permissions/PermissionRequest.js +70 -0
- package/dist/components/permissions/PermissionRequest.js.map +7 -0
- package/dist/components/permissions/PermissionRequestTitle.js +52 -0
- package/dist/components/permissions/PermissionRequestTitle.js.map +7 -0
- package/dist/components/permissions/hooks.js +23 -0
- package/dist/components/permissions/hooks.js.map +7 -0
- package/dist/components/permissions/toolUseOptions.js +46 -0
- package/dist/components/permissions/toolUseOptions.js.map +7 -0
- package/dist/components/permissions/utils.js +21 -0
- package/dist/components/permissions/utils.js.map +7 -0
- package/dist/constants/claude-asterisk-ascii-art.js +242 -0
- package/dist/constants/claude-asterisk-ascii-art.js.map +7 -0
- package/dist/constants/colors.js +126 -0
- package/dist/constants/colors.js.map +7 -0
- package/dist/constants/compressionPrompts.js +73 -0
- package/dist/constants/compressionPrompts.js.map +7 -0
- package/dist/constants/figures.js +6 -0
- package/dist/constants/figures.js.map +7 -0
- package/dist/constants/macros.js +11 -0
- package/dist/constants/macros.js.map +7 -0
- package/dist/constants/modelCapabilities.js +154 -0
- package/dist/constants/modelCapabilities.js.map +7 -0
- package/dist/constants/models.js +1034 -0
- package/dist/constants/models.js.map +7 -0
- package/dist/constants/oauth.js +18 -0
- package/dist/constants/oauth.js.map +7 -0
- package/dist/constants/product.js +26 -0
- package/dist/constants/product.js.map +7 -0
- package/dist/constants/prompts.js +168 -0
- package/dist/constants/prompts.js.map +7 -0
- package/dist/constants/releaseNotes.js +9 -0
- package/dist/constants/releaseNotes.js.map +7 -0
- package/dist/constants/symbols.js +50 -0
- package/dist/constants/symbols.js.map +7 -0
- package/dist/context/PermissionContext.js +111 -0
- package/dist/context/PermissionContext.js.map +7 -0
- package/dist/context.js +278 -0
- package/dist/context.js.map +7 -0
- package/dist/cost-tracker.js +76 -0
- package/dist/cost-tracker.js.map +7 -0
- package/dist/entrypoints/cli-wrapper.js +61 -0
- package/dist/entrypoints/cli-wrapper.js.map +7 -0
- package/dist/entrypoints/cli.js +1115 -0
- package/dist/entrypoints/cli.js.map +7 -0
- package/dist/entrypoints/mcp.js +150 -0
- package/dist/entrypoints/mcp.js.map +7 -0
- package/dist/history.js +25 -0
- package/dist/history.js.map +7 -0
- package/dist/hooks/useApiKeyVerification.js +12 -0
- package/dist/hooks/useApiKeyVerification.js.map +7 -0
- package/dist/hooks/useArrowKeyHistory.js +50 -0
- package/dist/hooks/useArrowKeyHistory.js.map +7 -0
- package/dist/hooks/useCanUseTool.js +87 -0
- package/dist/hooks/useCanUseTool.js.map +7 -0
- package/dist/hooks/useCancelRequest.js +28 -0
- package/dist/hooks/useCancelRequest.js.map +7 -0
- package/dist/hooks/useDoublePress.js +31 -0
- package/dist/hooks/useDoublePress.js.map +7 -0
- package/dist/hooks/useExitOnCtrlCD.js +26 -0
- package/dist/hooks/useExitOnCtrlCD.js.map +7 -0
- package/dist/hooks/useHistorySearch.js +62 -0
- package/dist/hooks/useHistorySearch.js.map +7 -0
- package/dist/hooks/useInterval.js +18 -0
- package/dist/hooks/useInterval.js.map +7 -0
- package/dist/hooks/useLogMessages.js +14 -0
- package/dist/hooks/useLogMessages.js.map +7 -0
- package/dist/hooks/useLogStartupTime.js +10 -0
- package/dist/hooks/useLogStartupTime.js.map +7 -0
- package/dist/hooks/useNotifyAfterTimeout.js +42 -0
- package/dist/hooks/useNotifyAfterTimeout.js.map +7 -0
- package/dist/hooks/usePermissionRequestLogging.js +23 -0
- package/dist/hooks/usePermissionRequestLogging.js.map +7 -0
- package/dist/hooks/useTerminalSize.js +38 -0
- package/dist/hooks/useTerminalSize.js.map +7 -0
- package/dist/hooks/useTextInput.js +252 -0
- package/dist/hooks/useTextInput.js.map +7 -0
- package/dist/hooks/useUnifiedCompletion.js +929 -0
- package/dist/hooks/useUnifiedCompletion.js.map +7 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +7 -0
- package/dist/messages.js +33 -0
- package/dist/messages.js.map +7 -0
- package/dist/package.json +4 -0
- package/dist/permissions.js +194 -0
- package/dist/permissions.js.map +7 -0
- package/dist/query.js +499 -0
- package/dist/query.js.map +7 -0
- package/dist/screens/Doctor.js +22 -0
- package/dist/screens/Doctor.js.map +7 -0
- package/dist/screens/LogList.js +55 -0
- package/dist/screens/LogList.js.map +7 -0
- package/dist/screens/REPL.js +671 -0
- package/dist/screens/REPL.js.map +7 -0
- package/dist/screens/ResumeConversation.js +56 -0
- package/dist/screens/ResumeConversation.js.map +7 -0
- package/dist/services/adapters/base.js +29 -0
- package/dist/services/adapters/base.js.map +7 -0
- package/dist/services/adapters/chatCompletions.js +69 -0
- package/dist/services/adapters/chatCompletions.js.map +7 -0
- package/dist/services/adapters/responsesAPI.js +126 -0
- package/dist/services/adapters/responsesAPI.js.map +7 -0
- package/dist/services/claude.js +1573 -0
- package/dist/services/claude.js.map +7 -0
- package/dist/services/compressionService.js +210 -0
- package/dist/services/compressionService.js.map +7 -0
- package/dist/services/customCommands.js +437 -0
- package/dist/services/customCommands.js.map +7 -0
- package/dist/services/fileFreshness.js +275 -0
- package/dist/services/fileFreshness.js.map +7 -0
- package/dist/services/gpt5ConnectionTest.js +248 -0
- package/dist/services/gpt5ConnectionTest.js.map +7 -0
- package/dist/services/hookExecutor.js +276 -0
- package/dist/services/hookExecutor.js.map +7 -0
- package/dist/services/mainAgentCompressor.js +84 -0
- package/dist/services/mainAgentCompressor.js.map +7 -0
- package/dist/services/mcpClient.js +449 -0
- package/dist/services/mcpClient.js.map +7 -0
- package/dist/services/mcpServerApproval.js +55 -0
- package/dist/services/mcpServerApproval.js.map +7 -0
- package/dist/services/mentionProcessor.js +201 -0
- package/dist/services/mentionProcessor.js.map +7 -0
- package/dist/services/modelAdapterFactory.js +47 -0
- package/dist/services/modelAdapterFactory.js.map +7 -0
- package/dist/services/notifier.js +35 -0
- package/dist/services/notifier.js.map +7 -0
- package/dist/services/oauth.js +247 -0
- package/dist/services/oauth.js.map +7 -0
- package/dist/services/openai.js +995 -0
- package/dist/services/openai.js.map +7 -0
- package/dist/services/responseStateManager.js +68 -0
- package/dist/services/responseStateManager.js.map +7 -0
- package/dist/services/sentry.js +9 -0
- package/dist/services/sentry.js.map +7 -0
- package/dist/services/subagentAbortManager.js +95 -0
- package/dist/services/subagentAbortManager.js.map +7 -0
- package/dist/services/subagentCompressor.js +146 -0
- package/dist/services/subagentCompressor.js.map +7 -0
- package/dist/services/systemReminder.js +335 -0
- package/dist/services/systemReminder.js.map +7 -0
- package/dist/services/vcr.js +133 -0
- package/dist/services/vcr.js.map +7 -0
- package/dist/tools/ArchitectTool/ArchitectTool.js +119 -0
- package/dist/tools/ArchitectTool/ArchitectTool.js.map +7 -0
- package/dist/tools/ArchitectTool/prompt.js +18 -0
- package/dist/tools/ArchitectTool/prompt.js.map +7 -0
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js +423 -0
- package/dist/tools/AskExpertModelTool/AskExpertModelTool.js.map +7 -0
- package/dist/tools/BashOutputTool/BashOutputTool.js +120 -0
- package/dist/tools/BashOutputTool/BashOutputTool.js.map +7 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js +11 -0
- package/dist/tools/BashOutputTool/BashOutputToolResultMessage.js.map +7 -0
- package/dist/tools/BashOutputTool/prompt.js +13 -0
- package/dist/tools/BashOutputTool/prompt.js.map +7 -0
- package/dist/tools/BashTool/BashTool.js +209 -0
- package/dist/tools/BashTool/BashTool.js.map +7 -0
- package/dist/tools/BashTool/BashToolResultMessage.js +21 -0
- package/dist/tools/BashTool/BashToolResultMessage.js.map +7 -0
- package/dist/tools/BashTool/OutputLine.js +30 -0
- package/dist/tools/BashTool/OutputLine.js.map +7 -0
- package/dist/tools/BashTool/prompt.js +180 -0
- package/dist/tools/BashTool/prompt.js.map +7 -0
- package/dist/tools/BashTool/utils.js +51 -0
- package/dist/tools/BashTool/utils.js.map +7 -0
- package/dist/tools/FileEditTool/FileEditTool.js +226 -0
- package/dist/tools/FileEditTool/FileEditTool.js.map +7 -0
- package/dist/tools/FileEditTool/prompt.js +54 -0
- package/dist/tools/FileEditTool/prompt.js.map +7 -0
- package/dist/tools/FileEditTool/utils.js +42 -0
- package/dist/tools/FileEditTool/utils.js.map +7 -0
- package/dist/tools/FileReadTool/FileReadTool.js +272 -0
- package/dist/tools/FileReadTool/FileReadTool.js.map +7 -0
- package/dist/tools/FileReadTool/prompt.js +10 -0
- package/dist/tools/FileReadTool/prompt.js.map +7 -0
- package/dist/tools/FileWriteTool/FileWriteTool.js +202 -0
- package/dist/tools/FileWriteTool/FileWriteTool.js.map +7 -0
- package/dist/tools/FileWriteTool/prompt.js +14 -0
- package/dist/tools/FileWriteTool/prompt.js.map +7 -0
- package/dist/tools/GlobTool/GlobTool.js +88 -0
- package/dist/tools/GlobTool/GlobTool.js.map +7 -0
- package/dist/tools/GlobTool/prompt.js +12 -0
- package/dist/tools/GlobTool/prompt.js.map +7 -0
- package/dist/tools/GrepTool/GrepTool.js +107 -0
- package/dist/tools/GrepTool/GrepTool.js.map +7 -0
- package/dist/tools/GrepTool/prompt.js +15 -0
- package/dist/tools/GrepTool/prompt.js.map +7 -0
- package/dist/tools/KillShellTool/KillShellTool.js +92 -0
- package/dist/tools/KillShellTool/KillShellTool.js.map +7 -0
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js +11 -0
- package/dist/tools/KillShellTool/KillShellToolResultMessage.js.map +7 -0
- package/dist/tools/KillShellTool/prompt.js +12 -0
- package/dist/tools/KillShellTool/prompt.js.map +7 -0
- package/dist/tools/MCPTool/MCPTool.js +90 -0
- package/dist/tools/MCPTool/MCPTool.js.map +7 -0
- package/dist/tools/MCPTool/prompt.js +7 -0
- package/dist/tools/MCPTool/prompt.js.map +7 -0
- package/dist/tools/MemoryReadTool/MemoryReadTool.js +103 -0
- package/dist/tools/MemoryReadTool/MemoryReadTool.js.map +7 -0
- package/dist/tools/MemoryReadTool/prompt.js +7 -0
- package/dist/tools/MemoryReadTool/prompt.js.map +7 -0
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js +77 -0
- package/dist/tools/MemoryWriteTool/MemoryWriteTool.js.map +7 -0
- package/dist/tools/MemoryWriteTool/prompt.js +7 -0
- package/dist/tools/MemoryWriteTool/prompt.js.map +7 -0
- package/dist/tools/MultiEditTool/MultiEditTool.js +301 -0
- package/dist/tools/MultiEditTool/MultiEditTool.js.map +7 -0
- package/dist/tools/MultiEditTool/prompt.js +48 -0
- package/dist/tools/MultiEditTool/prompt.js.map +7 -0
- package/dist/tools/NotebookEditTool/NotebookEditTool.js +238 -0
- package/dist/tools/NotebookEditTool/NotebookEditTool.js.map +7 -0
- package/dist/tools/NotebookEditTool/prompt.js +7 -0
- package/dist/tools/NotebookEditTool/prompt.js.map +7 -0
- package/dist/tools/NotebookReadTool/NotebookReadTool.js +212 -0
- package/dist/tools/NotebookReadTool/NotebookReadTool.js.map +7 -0
- package/dist/tools/NotebookReadTool/prompt.js +7 -0
- package/dist/tools/NotebookReadTool/prompt.js.map +7 -0
- package/dist/tools/SkillTool/SkillTool.js +209 -0
- package/dist/tools/SkillTool/SkillTool.js.map +7 -0
- package/dist/tools/SkillTool/prompt.js +81 -0
- package/dist/tools/SkillTool/prompt.js.map +7 -0
- package/dist/tools/TaskTool/TaskTool.js +381 -0
- package/dist/tools/TaskTool/TaskTool.js.map +7 -0
- package/dist/tools/TaskTool/constants.js +5 -0
- package/dist/tools/TaskTool/constants.js.map +7 -0
- package/dist/tools/TaskTool/prompt.js +111 -0
- package/dist/tools/TaskTool/prompt.js.map +7 -0
- package/dist/tools/ThinkTool/ThinkTool.js +40 -0
- package/dist/tools/ThinkTool/ThinkTool.js.map +7 -0
- package/dist/tools/ThinkTool/prompt.js +16 -0
- package/dist/tools/ThinkTool/prompt.js.map +7 -0
- package/dist/tools/TodoWriteTool/TodoWriteTool.js +243 -0
- package/dist/tools/TodoWriteTool/TodoWriteTool.js.map +7 -0
- package/dist/tools/TodoWriteTool/prompt.js +66 -0
- package/dist/tools/TodoWriteTool/prompt.js.map +7 -0
- package/dist/tools/URLFetcherTool/URLFetcherTool.js +137 -0
- package/dist/tools/URLFetcherTool/URLFetcherTool.js.map +7 -0
- package/dist/tools/URLFetcherTool/cache.js +45 -0
- package/dist/tools/URLFetcherTool/cache.js.map +7 -0
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js +42 -0
- package/dist/tools/URLFetcherTool/htmlToMarkdown.js.map +7 -0
- package/dist/tools/URLFetcherTool/prompt.js +22 -0
- package/dist/tools/URLFetcherTool/prompt.js.map +7 -0
- package/dist/tools/WebSearchTool/WebSearchTool.js +86 -0
- package/dist/tools/WebSearchTool/WebSearchTool.js.map +7 -0
- package/dist/tools/WebSearchTool/prompt.js +17 -0
- package/dist/tools/WebSearchTool/prompt.js.map +7 -0
- package/dist/tools/WebSearchTool/searchProviders.js +48 -0
- package/dist/tools/WebSearchTool/searchProviders.js.map +7 -0
- package/dist/tools/lsTool/lsTool.js +201 -0
- package/dist/tools/lsTool/lsTool.js.map +7 -0
- package/dist/tools/lsTool/prompt.js +5 -0
- package/dist/tools/lsTool/prompt.js.map +7 -0
- package/dist/tools.js +70 -0
- package/dist/tools.js.map +7 -0
- package/dist/types/PermissionMode.js +82 -0
- package/dist/types/PermissionMode.js.map +7 -0
- package/dist/types/RequestContext.js +47 -0
- package/dist/types/RequestContext.js.map +7 -0
- package/dist/types/common.d.js +1 -0
- package/dist/types/common.d.js.map +7 -0
- package/dist/types/conversation.js +1 -0
- package/dist/types/conversation.js.map +7 -0
- package/dist/types/hooks.js +38 -0
- package/dist/types/hooks.js.map +7 -0
- package/dist/types/interactionRound.js +1 -0
- package/dist/types/interactionRound.js.map +7 -0
- package/dist/types/logs.js +1 -0
- package/dist/types/logs.js.map +7 -0
- package/dist/types/marketplace.js +101 -0
- package/dist/types/marketplace.js.map +7 -0
- package/dist/types/modelCapabilities.js +1 -0
- package/dist/types/modelCapabilities.js.map +7 -0
- package/dist/types/notebook.js +1 -0
- package/dist/types/notebook.js.map +7 -0
- package/dist/types/plugin.js +83 -0
- package/dist/types/plugin.js.map +7 -0
- package/dist/types/subagent.js +1 -0
- package/dist/types/subagent.js.map +7 -0
- package/dist/utils/BackgroundShellManager.js +215 -0
- package/dist/utils/BackgroundShellManager.js.map +7 -0
- package/dist/utils/Cursor.js +315 -0
- package/dist/utils/Cursor.js.map +7 -0
- package/dist/utils/PersistentShell.js +371 -0
- package/dist/utils/PersistentShell.js.map +7 -0
- package/dist/utils/advancedFuzzyMatcher.js +206 -0
- package/dist/utils/advancedFuzzyMatcher.js.map +7 -0
- package/dist/utils/agentLoader.js +244 -0
- package/dist/utils/agentLoader.js.map +7 -0
- package/dist/utils/agentStorage.js +59 -0
- package/dist/utils/agentStorage.js.map +7 -0
- package/dist/utils/array.js +7 -0
- package/dist/utils/array.js.map +7 -0
- package/dist/utils/ask.js +77 -0
- package/dist/utils/ask.js.map +7 -0
- package/dist/utils/auth.js +11 -0
- package/dist/utils/auth.js.map +7 -0
- package/dist/utils/autoCompactCore.js +126 -0
- package/dist/utils/autoCompactCore.js.map +7 -0
- package/dist/utils/autoUpdater.js +107 -0
- package/dist/utils/autoUpdater.js.map +7 -0
- package/dist/utils/browser.js +15 -0
- package/dist/utils/browser.js.map +7 -0
- package/dist/utils/cleanup.js +54 -0
- package/dist/utils/cleanup.js.map +7 -0
- package/dist/utils/commands.js +207 -0
- package/dist/utils/commands.js.map +7 -0
- package/dist/utils/commonUnixCommands.js +687 -0
- package/dist/utils/commonUnixCommands.js.map +7 -0
- package/dist/utils/compressionMode.js +47 -0
- package/dist/utils/compressionMode.js.map +7 -0
- package/dist/utils/config.js +651 -0
- package/dist/utils/config.js.map +7 -0
- package/dist/utils/conversationRecovery.js +35 -0
- package/dist/utils/conversationRecovery.js.map +7 -0
- package/dist/utils/debugLogger.js +889 -0
- package/dist/utils/debugLogger.js.map +7 -0
- package/dist/utils/diff.js +32 -0
- package/dist/utils/diff.js.map +7 -0
- package/dist/utils/env.js +44 -0
- package/dist/utils/env.js.map +7 -0
- package/dist/utils/errors.js +23 -0
- package/dist/utils/errors.js.map +7 -0
- package/dist/utils/execFileNoThrow.js +44 -0
- package/dist/utils/execFileNoThrow.js.map +7 -0
- package/dist/utils/expertChatStorage.js +78 -0
- package/dist/utils/expertChatStorage.js.map +7 -0
- package/dist/utils/file.js +282 -0
- package/dist/utils/file.js.map +7 -0
- package/dist/utils/fileRecoveryCore.js +41 -0
- package/dist/utils/fileRecoveryCore.js.map +7 -0
- package/dist/utils/format.js +41 -0
- package/dist/utils/format.js.map +7 -0
- package/dist/utils/fuzzyMatcher.js +252 -0
- package/dist/utils/fuzzyMatcher.js.map +7 -0
- package/dist/utils/generators.js +46 -0
- package/dist/utils/generators.js.map +7 -0
- package/dist/utils/git.js +83 -0
- package/dist/utils/git.js.map +7 -0
- package/dist/utils/hookManager.js +238 -0
- package/dist/utils/hookManager.js.map +7 -0
- package/dist/utils/http.js +7 -0
- package/dist/utils/http.js.map +7 -0
- package/dist/utils/imagePaste.js +29 -0
- package/dist/utils/imagePaste.js.map +7 -0
- package/dist/utils/json.js +16 -0
- package/dist/utils/json.js.map +7 -0
- package/dist/utils/log.js +329 -0
- package/dist/utils/log.js.map +7 -0
- package/dist/utils/markdown.js +187 -0
- package/dist/utils/markdown.js.map +7 -0
- package/dist/utils/marketplaceManager.js +474 -0
- package/dist/utils/marketplaceManager.js.map +7 -0
- package/dist/utils/messageContextManager.js +195 -0
- package/dist/utils/messageContextManager.js.map +7 -0
- package/dist/utils/messages.js +650 -0
- package/dist/utils/messages.js.map +7 -0
- package/dist/utils/model.js +677 -0
- package/dist/utils/model.js.map +7 -0
- package/dist/utils/permissions/filesystem.js +80 -0
- package/dist/utils/permissions/filesystem.js.map +7 -0
- package/dist/utils/pluginInstaller.js +491 -0
- package/dist/utils/pluginInstaller.js.map +7 -0
- package/dist/utils/pluginLoader.js +582 -0
- package/dist/utils/pluginLoader.js.map +7 -0
- package/dist/utils/pluginRegistry.js +111 -0
- package/dist/utils/pluginRegistry.js.map +7 -0
- package/dist/utils/pluginValidator.js +774 -0
- package/dist/utils/pluginValidator.js.map +7 -0
- package/dist/utils/ptyCompat.js +125 -0
- package/dist/utils/ptyCompat.js.map +7 -0
- package/dist/utils/replStateMachine.js +145 -0
- package/dist/utils/replStateMachine.js.map +7 -0
- package/dist/utils/ripgrep.js +131 -0
- package/dist/utils/ripgrep.js.map +7 -0
- package/dist/utils/roundConverter.js +262 -0
- package/dist/utils/roundConverter.js.map +7 -0
- package/dist/utils/secureFile.js +483 -0
- package/dist/utils/secureFile.js.map +7 -0
- package/dist/utils/sessionState.js +22 -0
- package/dist/utils/sessionState.js.map +7 -0
- package/dist/utils/skillLoader.js +79 -0
- package/dist/utils/skillLoader.js.map +7 -0
- package/dist/utils/state.js +24 -0
- package/dist/utils/state.js.map +7 -0
- package/dist/utils/style.js +31 -0
- package/dist/utils/style.js.map +7 -0
- package/dist/utils/terminal.js +47 -0
- package/dist/utils/terminal.js.map +7 -0
- package/dist/utils/theme.js +102 -0
- package/dist/utils/theme.js.map +7 -0
- package/dist/utils/thinking.js +59 -0
- package/dist/utils/thinking.js.map +7 -0
- package/dist/utils/todoChangeCalculator.js +64 -0
- package/dist/utils/todoChangeCalculator.js.map +7 -0
- package/dist/utils/todoStorage.js +291 -0
- package/dist/utils/todoStorage.js.map +7 -0
- package/dist/utils/tokens.js +30 -0
- package/dist/utils/tokens.js.map +7 -0
- package/dist/utils/toolExecutionController.js +109 -0
- package/dist/utils/toolExecutionController.js.map +7 -0
- package/dist/utils/unaryLogging.js +6 -0
- package/dist/utils/unaryLogging.js.map +7 -0
- package/dist/utils/user.js +40 -0
- package/dist/utils/user.js.map +7 -0
- package/dist/utils/validate.js +132 -0
- package/dist/utils/validate.js.map +7 -0
- package/dist/version.js +7 -0
- package/dist/version.js.map +7 -0
- package/dist/yoga.wasm +0 -0
- package/package.json +113 -0
- package/scripts/postinstall.js +18 -0
- package/yoga.wasm +0 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { countTokens } from "./tokens.js";
|
|
2
|
+
import crypto from "crypto";
|
|
3
|
+
class MessageContextManager {
|
|
4
|
+
/**
|
|
5
|
+
* Truncate messages intelligently based on strategy and token limit
|
|
6
|
+
*/
|
|
7
|
+
async truncateMessages(messages, strategy) {
|
|
8
|
+
switch (strategy.type) {
|
|
9
|
+
case "preserve_recent":
|
|
10
|
+
return this.preserveRecentMessages(messages, strategy);
|
|
11
|
+
case "preserve_important":
|
|
12
|
+
return this.preserveImportantMessages(messages, strategy);
|
|
13
|
+
case "smart_compression":
|
|
14
|
+
return this.smartCompressionStrategy(messages, strategy);
|
|
15
|
+
case "auto_compact":
|
|
16
|
+
return this.autoCompactStrategy(messages, strategy);
|
|
17
|
+
default:
|
|
18
|
+
return this.preserveRecentMessages(messages, strategy);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Strategy 1: Preserve most recent messages
|
|
23
|
+
*/
|
|
24
|
+
preserveRecentMessages(messages, strategy) {
|
|
25
|
+
const preserveCount = strategy.preserveCount || this.estimateMessageCount(strategy.maxTokens);
|
|
26
|
+
const truncatedMessages = messages.slice(-preserveCount);
|
|
27
|
+
const removedCount = messages.length - truncatedMessages.length;
|
|
28
|
+
return {
|
|
29
|
+
truncatedMessages,
|
|
30
|
+
removedCount,
|
|
31
|
+
preservedTokens: countTokens(truncatedMessages),
|
|
32
|
+
strategy: `Preserved last ${preserveCount} messages`,
|
|
33
|
+
summary: removedCount > 0 ? `Removed ${removedCount} older messages to fit context window` : "No messages removed"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Strategy 2: Preserve important messages (errors, user queries, recent context)
|
|
38
|
+
*/
|
|
39
|
+
preserveImportantMessages(messages, strategy) {
|
|
40
|
+
const importantMessages = [];
|
|
41
|
+
const recentMessages = [];
|
|
42
|
+
const recentCount = Math.min(5, messages.length);
|
|
43
|
+
recentMessages.push(...messages.slice(-recentCount));
|
|
44
|
+
for (let i = 0; i < messages.length - recentCount; i++) {
|
|
45
|
+
const message = messages[i];
|
|
46
|
+
if (this.isImportantMessage(message)) {
|
|
47
|
+
importantMessages.push(message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const combinedMessages = [
|
|
51
|
+
...importantMessages,
|
|
52
|
+
...recentMessages.filter(
|
|
53
|
+
(msg) => !importantMessages.some((imp) => this.messagesEqual(imp, msg))
|
|
54
|
+
)
|
|
55
|
+
];
|
|
56
|
+
const truncatedMessages = combinedMessages.sort((a, b) => {
|
|
57
|
+
const aIndex = messages.indexOf(a);
|
|
58
|
+
const bIndex = messages.indexOf(b);
|
|
59
|
+
return aIndex - bIndex;
|
|
60
|
+
});
|
|
61
|
+
const removedCount = messages.length - truncatedMessages.length;
|
|
62
|
+
return {
|
|
63
|
+
truncatedMessages,
|
|
64
|
+
removedCount,
|
|
65
|
+
preservedTokens: countTokens(truncatedMessages),
|
|
66
|
+
strategy: `Preserved ${importantMessages.length} important + ${recentMessages.length} recent messages`,
|
|
67
|
+
summary: `Kept critical errors, user decisions, and recent context (${removedCount} messages archived)`
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Strategy 3: Smart compression with summary
|
|
72
|
+
*/
|
|
73
|
+
async smartCompressionStrategy(messages, strategy) {
|
|
74
|
+
const recentCount = Math.min(10, Math.floor(messages.length * 0.3));
|
|
75
|
+
const recentMessages = messages.slice(-recentCount);
|
|
76
|
+
const olderMessages = messages.slice(0, -recentCount);
|
|
77
|
+
const summary = this.createMessagesSummary(olderMessages);
|
|
78
|
+
const summaryMessage = {
|
|
79
|
+
type: "assistant",
|
|
80
|
+
message: {
|
|
81
|
+
role: "assistant",
|
|
82
|
+
content: [
|
|
83
|
+
{
|
|
84
|
+
type: "text",
|
|
85
|
+
text: `[CONVERSATION SUMMARY - ${olderMessages.length} messages compressed]
|
|
86
|
+
|
|
87
|
+
${summary}
|
|
88
|
+
|
|
89
|
+
[END SUMMARY - Recent context follows...]`
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
costUSD: 0,
|
|
94
|
+
durationMs: 0,
|
|
95
|
+
uuid: crypto.randomUUID()
|
|
96
|
+
};
|
|
97
|
+
const truncatedMessages = [summaryMessage, ...recentMessages];
|
|
98
|
+
return {
|
|
99
|
+
truncatedMessages,
|
|
100
|
+
removedCount: olderMessages.length,
|
|
101
|
+
preservedTokens: countTokens(truncatedMessages),
|
|
102
|
+
strategy: `Compressed ${olderMessages.length} messages + preserved ${recentCount} recent`,
|
|
103
|
+
summary: `Created intelligent summary of conversation history`
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Strategy 4: Use existing auto-compact mechanism
|
|
108
|
+
*/
|
|
109
|
+
async autoCompactStrategy(messages, strategy) {
|
|
110
|
+
return this.preserveRecentMessages(messages, strategy);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Helper: Estimate how many messages fit in token budget
|
|
114
|
+
*/
|
|
115
|
+
estimateMessageCount(maxTokens) {
|
|
116
|
+
const avgTokensPerMessage = 150;
|
|
117
|
+
return Math.max(3, Math.floor(maxTokens / avgTokensPerMessage));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Helper: Determine if a message is important
|
|
121
|
+
*/
|
|
122
|
+
isImportantMessage(message) {
|
|
123
|
+
if (message.type === "user") return true;
|
|
124
|
+
if (message.type === "assistant") {
|
|
125
|
+
const content = message.message.content;
|
|
126
|
+
if (Array.isArray(content)) {
|
|
127
|
+
const textContent = content.filter((c) => c.type === "text").map((c) => c.text).join(" ").toLowerCase();
|
|
128
|
+
return textContent.includes("error") || textContent.includes("failed") || textContent.includes("warning") || textContent.includes("critical") || textContent.includes("issue");
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Helper: Check if two messages are equal
|
|
135
|
+
*/
|
|
136
|
+
messagesEqual(a, b) {
|
|
137
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Helper: Create summary of message sequence
|
|
141
|
+
*/
|
|
142
|
+
createMessagesSummary(messages) {
|
|
143
|
+
const userMessages = messages.filter((m) => m.type === "user").length;
|
|
144
|
+
const assistantMessages = messages.filter(
|
|
145
|
+
(m) => m.type === "assistant"
|
|
146
|
+
).length;
|
|
147
|
+
const toolUses = messages.filter(
|
|
148
|
+
(m) => m.type === "assistant" && Array.isArray(m.message.content) && m.message.content.some((c) => c.type === "tool_use")
|
|
149
|
+
).length;
|
|
150
|
+
const topics = [];
|
|
151
|
+
messages.forEach((msg) => {
|
|
152
|
+
if (msg.type === "user" && Array.isArray(msg.message.content)) {
|
|
153
|
+
const text = msg.message.content.filter((c) => c.type === "text").map((c) => c.text).join(" ");
|
|
154
|
+
if (text.includes("error") || text.includes("bug"))
|
|
155
|
+
topics.push("debugging");
|
|
156
|
+
if (text.includes("implement") || text.includes("create"))
|
|
157
|
+
topics.push("implementation");
|
|
158
|
+
if (text.includes("explain") || text.includes("understand"))
|
|
159
|
+
topics.push("explanation");
|
|
160
|
+
if (text.includes("fix") || text.includes("solve"))
|
|
161
|
+
topics.push("problem-solving");
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
const uniqueTopics = [...new Set(topics)];
|
|
165
|
+
return `Previous conversation included ${userMessages} user messages and ${assistantMessages} assistant responses, with ${toolUses} tool invocations. Key topics: ${uniqueTopics.join(", ") || "general discussion"}.`;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function createRetentionStrategy(targetContextLength, currentTokens, userPreference = "balanced") {
|
|
169
|
+
const maxTokens = Math.floor(targetContextLength * 0.7);
|
|
170
|
+
switch (userPreference) {
|
|
171
|
+
case "aggressive":
|
|
172
|
+
return {
|
|
173
|
+
type: "preserve_recent",
|
|
174
|
+
maxTokens,
|
|
175
|
+
preserveCount: Math.max(3, Math.floor(maxTokens / 200))
|
|
176
|
+
};
|
|
177
|
+
case "conservative":
|
|
178
|
+
return {
|
|
179
|
+
type: "smart_compression",
|
|
180
|
+
maxTokens
|
|
181
|
+
};
|
|
182
|
+
case "balanced":
|
|
183
|
+
default:
|
|
184
|
+
return {
|
|
185
|
+
type: "preserve_important",
|
|
186
|
+
maxTokens,
|
|
187
|
+
preserveCount: Math.max(5, Math.floor(maxTokens / 150))
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
export {
|
|
192
|
+
MessageContextManager,
|
|
193
|
+
createRetentionStrategy
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=messageContextManager.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/messageContextManager.ts"],
|
|
4
|
+
"sourcesContent": ["import { Message } from '@query'\nimport type { UUID } from '@minto-types/common'\nimport { countTokens } from './tokens'\nimport crypto from 'crypto'\n\nexport interface MessageRetentionStrategy {\n type:\n | 'preserve_recent'\n | 'preserve_important'\n | 'smart_compression'\n | 'auto_compact'\n maxTokens: number\n preserveCount?: number\n importanceThreshold?: number\n}\n\nexport interface MessageTruncationResult {\n truncatedMessages: Message[]\n removedCount: number\n preservedTokens: number\n strategy: string\n summary?: string\n}\n\n/**\n * Smart message truncation for context-limited models\n * Implements multiple strategies for preserving important conversation content\n */\nexport class MessageContextManager {\n /**\n * Truncate messages intelligently based on strategy and token limit\n */\n async truncateMessages(\n messages: Message[],\n strategy: MessageRetentionStrategy,\n ): Promise<MessageTruncationResult> {\n switch (strategy.type) {\n case 'preserve_recent':\n return this.preserveRecentMessages(messages, strategy)\n case 'preserve_important':\n return this.preserveImportantMessages(messages, strategy)\n case 'smart_compression':\n return this.smartCompressionStrategy(messages, strategy)\n case 'auto_compact':\n return this.autoCompactStrategy(messages, strategy)\n default:\n return this.preserveRecentMessages(messages, strategy)\n }\n }\n\n /**\n * Strategy 1: Preserve most recent messages\n */\n private preserveRecentMessages(\n messages: Message[],\n strategy: MessageRetentionStrategy,\n ): MessageTruncationResult {\n const preserveCount =\n strategy.preserveCount || this.estimateMessageCount(strategy.maxTokens)\n const truncatedMessages = messages.slice(-preserveCount)\n const removedCount = messages.length - truncatedMessages.length\n\n return {\n truncatedMessages,\n removedCount,\n preservedTokens: countTokens(truncatedMessages),\n strategy: `Preserved last ${preserveCount} messages`,\n summary:\n removedCount > 0\n ? `Removed ${removedCount} older messages to fit context window`\n : 'No messages removed',\n }\n }\n\n /**\n * Strategy 2: Preserve important messages (errors, user queries, recent context)\n */\n private preserveImportantMessages(\n messages: Message[],\n strategy: MessageRetentionStrategy,\n ): MessageTruncationResult {\n const importantMessages: Message[] = []\n const recentMessages: Message[] = []\n\n // Always preserve the last few messages for context continuity\n const recentCount = Math.min(5, messages.length)\n recentMessages.push(...messages.slice(-recentCount))\n\n // Identify important messages (errors, tool failures, user decisions)\n for (let i = 0; i < messages.length - recentCount; i++) {\n const message = messages[i]\n if (this.isImportantMessage(message)) {\n importantMessages.push(message)\n }\n }\n\n // Combine and deduplicate\n const combinedMessages = [\n ...importantMessages,\n ...recentMessages.filter(\n msg => !importantMessages.some(imp => this.messagesEqual(imp, msg)),\n ),\n ]\n\n // Sort by original order\n const truncatedMessages = combinedMessages.sort((a, b) => {\n const aIndex = messages.indexOf(a)\n const bIndex = messages.indexOf(b)\n return aIndex - bIndex\n })\n\n const removedCount = messages.length - truncatedMessages.length\n\n return {\n truncatedMessages,\n removedCount,\n preservedTokens: countTokens(truncatedMessages),\n strategy: `Preserved ${importantMessages.length} important + ${recentMessages.length} recent messages`,\n summary: `Kept critical errors, user decisions, and recent context (${removedCount} messages archived)`,\n }\n }\n\n /**\n * Strategy 3: Smart compression with summary\n */\n private async smartCompressionStrategy(\n messages: Message[],\n strategy: MessageRetentionStrategy,\n ): Promise<MessageTruncationResult> {\n const recentCount = Math.min(10, Math.floor(messages.length * 0.3))\n const recentMessages = messages.slice(-recentCount)\n const olderMessages = messages.slice(0, -recentCount)\n\n // Create a summary of older messages\n const summary = this.createMessagesSummary(olderMessages)\n\n // Create a summary message\n const summaryMessage: Message = {\n type: 'assistant',\n message: {\n role: 'assistant',\n content: [\n {\n type: 'text',\n text: `[CONVERSATION SUMMARY - ${olderMessages.length} messages compressed]\\n\\n${summary}\\n\\n[END SUMMARY - Recent context follows...]`,\n },\n ],\n },\n costUSD: 0,\n durationMs: 0,\n uuid: crypto.randomUUID() as UUID\n }\n\n const truncatedMessages = [summaryMessage, ...recentMessages]\n\n return {\n truncatedMessages,\n removedCount: olderMessages.length,\n preservedTokens: countTokens(truncatedMessages),\n strategy: `Compressed ${olderMessages.length} messages + preserved ${recentCount} recent`,\n summary: `Created intelligent summary of conversation history`,\n }\n }\n\n /**\n * Strategy 4: Use existing auto-compact mechanism\n */\n private async autoCompactStrategy(\n messages: Message[],\n strategy: MessageRetentionStrategy,\n ): Promise<MessageTruncationResult> {\n // This would integrate with the existing autoCompactCore.ts\n // For now, fallback to preserve_recent\n return this.preserveRecentMessages(messages, strategy)\n }\n\n /**\n * Helper: Estimate how many messages fit in token budget\n */\n private estimateMessageCount(maxTokens: number): number {\n const avgTokensPerMessage = 150 // Conservative estimate\n return Math.max(3, Math.floor(maxTokens / avgTokensPerMessage))\n }\n\n /**\n * Helper: Determine if a message is important\n */\n private isImportantMessage(message: Message): boolean {\n if (message.type === 'user') return true // User messages are always important\n\n if (message.type === 'assistant') {\n const content = message.message.content\n if (Array.isArray(content)) {\n const textContent = content\n .filter(c => c.type === 'text')\n .map(c => c.text)\n .join(' ')\n .toLowerCase()\n\n // Mark as important if contains error keywords\n return (\n textContent.includes('error') ||\n textContent.includes('failed') ||\n textContent.includes('warning') ||\n textContent.includes('critical') ||\n textContent.includes('issue')\n )\n }\n }\n\n return false\n }\n\n /**\n * Helper: Check if two messages are equal\n */\n private messagesEqual(a: Message, b: Message): boolean {\n return JSON.stringify(a) === JSON.stringify(b)\n }\n\n /**\n * Helper: Create summary of message sequence\n */\n private createMessagesSummary(messages: Message[]): string {\n const userMessages = messages.filter(m => m.type === 'user').length\n const assistantMessages = messages.filter(\n m => m.type === 'assistant',\n ).length\n const toolUses = messages.filter(\n m =>\n m.type === 'assistant' &&\n Array.isArray(m.message.content) &&\n m.message.content.some(c => c.type === 'tool_use'),\n ).length\n\n const topics: string[] = []\n\n // Extract key topics from user messages\n messages.forEach(msg => {\n if (msg.type === 'user' && Array.isArray(msg.message.content)) {\n const text = msg.message.content\n .filter(c => c.type === 'text')\n .map(c => c.text)\n .join(' ')\n\n // Simple keyword extraction (could be enhanced with NLP)\n if (text.includes('error') || text.includes('bug'))\n topics.push('debugging')\n if (text.includes('implement') || text.includes('create'))\n topics.push('implementation')\n if (text.includes('explain') || text.includes('understand'))\n topics.push('explanation')\n if (text.includes('fix') || text.includes('solve'))\n topics.push('problem-solving')\n }\n })\n\n const uniqueTopics = [...new Set(topics)]\n\n return `Previous conversation included ${userMessages} user messages and ${assistantMessages} assistant responses, with ${toolUses} tool invocations. Key topics: ${uniqueTopics.join(', ') || 'general discussion'}.`\n }\n}\n\n/**\n * Factory function to create appropriate retention strategy\n */\nexport function createRetentionStrategy(\n targetContextLength: number,\n currentTokens: number,\n userPreference: 'aggressive' | 'balanced' | 'conservative' = 'balanced',\n): MessageRetentionStrategy {\n const maxTokens = Math.floor(targetContextLength * 0.7) // Leave room for new conversation\n\n switch (userPreference) {\n case 'aggressive':\n return {\n type: 'preserve_recent',\n maxTokens,\n preserveCount: Math.max(3, Math.floor(maxTokens / 200)),\n }\n case 'conservative':\n return {\n type: 'smart_compression',\n maxTokens,\n }\n case 'balanced':\n default:\n return {\n type: 'preserve_important',\n maxTokens,\n preserveCount: Math.max(5, Math.floor(maxTokens / 150)),\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|