@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,262 @@
|
|
|
1
|
+
function convertMessagesToRounds(messages, currentTodos, subagents) {
|
|
2
|
+
const rounds = [];
|
|
3
|
+
let currentRound = null;
|
|
4
|
+
let previousTodos = [];
|
|
5
|
+
for (let i = 0; i < messages.length; i++) {
|
|
6
|
+
const message = messages[i];
|
|
7
|
+
if (message.type === "user") {
|
|
8
|
+
if (currentRound && currentRound.userMessage) {
|
|
9
|
+
rounds.push(finalizeRound(currentRound));
|
|
10
|
+
}
|
|
11
|
+
currentRound = {
|
|
12
|
+
uuid: message.uuid,
|
|
13
|
+
userMessage: message,
|
|
14
|
+
toolExecutions: [],
|
|
15
|
+
subagentExecutions: [],
|
|
16
|
+
startTime: Date.now()
|
|
17
|
+
// We'll update this from actual message timestamps if available
|
|
18
|
+
};
|
|
19
|
+
} else if (message.type === "assistant" && currentRound) {
|
|
20
|
+
const assistantMsg = message;
|
|
21
|
+
const hasToolUse = assistantMsg.message.content.some(
|
|
22
|
+
(block) => block.type === "tool_use"
|
|
23
|
+
);
|
|
24
|
+
const hasText = assistantMsg.message.content.some(
|
|
25
|
+
(block) => block.type === "text" && block.text.trim().length > 0
|
|
26
|
+
);
|
|
27
|
+
if (hasToolUse) {
|
|
28
|
+
const toolExecutions = extractToolExecutions(assistantMsg);
|
|
29
|
+
currentRound.toolExecutions = [
|
|
30
|
+
...currentRound.toolExecutions || [],
|
|
31
|
+
...toolExecutions
|
|
32
|
+
];
|
|
33
|
+
if (hasText && !currentRound.agentThinking) {
|
|
34
|
+
const textContent = assistantMsg.message.content.filter((block) => block.type === "text").map((block) => block.text).join("\n");
|
|
35
|
+
if (textContent.trim()) {
|
|
36
|
+
currentRound.agentThinking = {
|
|
37
|
+
message: textContent,
|
|
38
|
+
startTime: Date.now(),
|
|
39
|
+
durationMs: assistantMsg.durationMs
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
} else if (hasText) {
|
|
44
|
+
const textContent = assistantMsg.message.content.filter((block) => block.type === "text").map((block) => block.text).join("\n");
|
|
45
|
+
const nextMessage = messages[i + 1];
|
|
46
|
+
const nextIsUser = nextMessage && nextMessage.type === "user";
|
|
47
|
+
const nextIsAssistantWithTools = nextMessage && nextMessage.type === "assistant" && nextMessage.message.content.some(
|
|
48
|
+
(block) => block.type === "tool_use"
|
|
49
|
+
);
|
|
50
|
+
const isLastMessage = i === messages.length - 1;
|
|
51
|
+
const hasToolsAlready = currentRound.toolExecutions && currentRound.toolExecutions.length > 0;
|
|
52
|
+
if (hasToolsAlready || nextIsUser || isLastMessage) {
|
|
53
|
+
currentRound.agentResponse = assistantMsg;
|
|
54
|
+
currentRound.endTime = Date.now();
|
|
55
|
+
currentRound.durationMs = assistantMsg.durationMs;
|
|
56
|
+
currentRound.totalCostUSD = (currentRound.totalCostUSD || 0) + assistantMsg.costUSD;
|
|
57
|
+
} else if (nextIsAssistantWithTools && !currentRound.agentThinking) {
|
|
58
|
+
currentRound.agentThinking = {
|
|
59
|
+
message: textContent,
|
|
60
|
+
startTime: Date.now(),
|
|
61
|
+
durationMs: assistantMsg.durationMs
|
|
62
|
+
};
|
|
63
|
+
} else {
|
|
64
|
+
currentRound.agentResponse = assistantMsg;
|
|
65
|
+
currentRound.endTime = Date.now();
|
|
66
|
+
currentRound.durationMs = assistantMsg.durationMs;
|
|
67
|
+
currentRound.totalCostUSD = (currentRound.totalCostUSD || 0) + assistantMsg.costUSD;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
} else if (message.type === "progress" && currentRound) {
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (currentRound && currentRound.userMessage) {
|
|
74
|
+
if (currentTodos) {
|
|
75
|
+
const changes = calculateTodoChanges(previousTodos, currentTodos);
|
|
76
|
+
currentRound.todoSnapshot = {
|
|
77
|
+
todos: currentTodos,
|
|
78
|
+
timestamp: Date.now(),
|
|
79
|
+
changes
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
rounds.push(finalizeRound(currentRound));
|
|
83
|
+
}
|
|
84
|
+
if (rounds.length > 0 && subagents && subagents.length > 0) {
|
|
85
|
+
const lastRound = rounds[rounds.length - 1];
|
|
86
|
+
lastRound.subagentExecutions = subagents;
|
|
87
|
+
}
|
|
88
|
+
return rounds;
|
|
89
|
+
}
|
|
90
|
+
function extractToolExecutions(message) {
|
|
91
|
+
const toolExecutions = [];
|
|
92
|
+
if (!message.message.content) {
|
|
93
|
+
return toolExecutions;
|
|
94
|
+
}
|
|
95
|
+
for (const block of message.message.content) {
|
|
96
|
+
if (block.type === "tool_use") {
|
|
97
|
+
const toolExec = {
|
|
98
|
+
id: block.id,
|
|
99
|
+
name: block.name,
|
|
100
|
+
input: block.input,
|
|
101
|
+
status: "completed",
|
|
102
|
+
// Assume completed if we're seeing it
|
|
103
|
+
startTime: Date.now(),
|
|
104
|
+
// Ideally extract from message metadata
|
|
105
|
+
endTime: Date.now(),
|
|
106
|
+
durationMs: message.durationMs
|
|
107
|
+
};
|
|
108
|
+
toolExecutions.push(toolExec);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return toolExecutions;
|
|
112
|
+
}
|
|
113
|
+
function mergeTimelineItems(toolExecutions, subagentExecutions) {
|
|
114
|
+
const timeline = [];
|
|
115
|
+
for (const tool of toolExecutions) {
|
|
116
|
+
timeline.push({
|
|
117
|
+
type: "tool",
|
|
118
|
+
data: tool,
|
|
119
|
+
time: tool.startTime
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
for (const subagent of subagentExecutions) {
|
|
123
|
+
timeline.push({
|
|
124
|
+
type: "subagent",
|
|
125
|
+
data: subagent,
|
|
126
|
+
time: subagent.metrics.startTime
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
timeline.sort((a, b) => a.time - b.time);
|
|
130
|
+
return timeline;
|
|
131
|
+
}
|
|
132
|
+
function calculateTodoChanges(oldTodos, newTodos) {
|
|
133
|
+
const changes = [];
|
|
134
|
+
const timestamp = Date.now();
|
|
135
|
+
const oldTodoMap = new Map(oldTodos.map((todo) => [todo.id, todo]));
|
|
136
|
+
const newTodoMap = new Map(newTodos.map((todo) => [todo.id, todo]));
|
|
137
|
+
for (const newTodo of newTodos) {
|
|
138
|
+
const oldTodo = oldTodoMap.get(newTodo.id);
|
|
139
|
+
if (!oldTodo) {
|
|
140
|
+
changes.push({
|
|
141
|
+
type: "added",
|
|
142
|
+
todoId: newTodo.id,
|
|
143
|
+
newValue: newTodo,
|
|
144
|
+
timestamp
|
|
145
|
+
});
|
|
146
|
+
} else {
|
|
147
|
+
if (oldTodo.status !== newTodo.status) {
|
|
148
|
+
changes.push({
|
|
149
|
+
type: "status_changed",
|
|
150
|
+
todoId: newTodo.id,
|
|
151
|
+
oldValue: oldTodo,
|
|
152
|
+
newValue: newTodo,
|
|
153
|
+
timestamp
|
|
154
|
+
});
|
|
155
|
+
} else if (JSON.stringify(oldTodo) !== JSON.stringify(newTodo)) {
|
|
156
|
+
changes.push({
|
|
157
|
+
type: "updated",
|
|
158
|
+
todoId: newTodo.id,
|
|
159
|
+
oldValue: oldTodo,
|
|
160
|
+
newValue: newTodo,
|
|
161
|
+
timestamp
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
for (const oldTodo of oldTodos) {
|
|
167
|
+
if (!newTodoMap.has(oldTodo.id)) {
|
|
168
|
+
changes.push({
|
|
169
|
+
type: "removed",
|
|
170
|
+
todoId: oldTodo.id,
|
|
171
|
+
oldValue: oldTodo,
|
|
172
|
+
timestamp
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return changes;
|
|
177
|
+
}
|
|
178
|
+
function finalizeRound(partialRound) {
|
|
179
|
+
let totalCost = 0;
|
|
180
|
+
if (partialRound.agentResponse) {
|
|
181
|
+
totalCost += partialRound.agentResponse.costUSD;
|
|
182
|
+
}
|
|
183
|
+
const startTime = partialRound.startTime || Date.now();
|
|
184
|
+
const endTime = partialRound.endTime || Date.now();
|
|
185
|
+
const durationMs = partialRound.durationMs || endTime - startTime;
|
|
186
|
+
return {
|
|
187
|
+
uuid: partialRound.uuid,
|
|
188
|
+
userMessage: partialRound.userMessage,
|
|
189
|
+
agentThinking: partialRound.agentThinking,
|
|
190
|
+
toolExecutions: partialRound.toolExecutions || [],
|
|
191
|
+
subagentExecutions: partialRound.subagentExecutions || [],
|
|
192
|
+
agentResponse: partialRound.agentResponse,
|
|
193
|
+
todoSnapshot: partialRound.todoSnapshot,
|
|
194
|
+
startTime,
|
|
195
|
+
endTime,
|
|
196
|
+
durationMs,
|
|
197
|
+
totalCostUSD: totalCost
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
function mapEventTypeToStatus(eventType) {
|
|
201
|
+
switch (eventType) {
|
|
202
|
+
case "start":
|
|
203
|
+
return "initializing";
|
|
204
|
+
case "progress":
|
|
205
|
+
return "running";
|
|
206
|
+
case "complete":
|
|
207
|
+
return "completed";
|
|
208
|
+
case "error":
|
|
209
|
+
return "error";
|
|
210
|
+
default:
|
|
211
|
+
return "running";
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function extractThinkingState(messages, roundStartIndex) {
|
|
215
|
+
for (let i = roundStartIndex; i < messages.length; i++) {
|
|
216
|
+
const message = messages[i];
|
|
217
|
+
if (message.type === "assistant") {
|
|
218
|
+
const assistantMsg = message;
|
|
219
|
+
const hasToolUse = assistantMsg.message.content.some(
|
|
220
|
+
(block) => block.type === "tool_use"
|
|
221
|
+
);
|
|
222
|
+
if (!hasToolUse) {
|
|
223
|
+
const textContent = assistantMsg.message.content.filter((block) => block.type === "text").map((block) => block.text).join("\n");
|
|
224
|
+
return {
|
|
225
|
+
message: textContent,
|
|
226
|
+
startTime: Date.now(),
|
|
227
|
+
// Ideally from message metadata
|
|
228
|
+
durationMs: assistantMsg.durationMs
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
} else if (message.type === "user") {
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return void 0;
|
|
236
|
+
}
|
|
237
|
+
function getCurrentActivity(round) {
|
|
238
|
+
for (const tool of round.toolExecutions) {
|
|
239
|
+
if (tool.status === "running" || tool.status === "pending") {
|
|
240
|
+
return { type: "tool", data: tool, time: tool.startTime };
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
for (const subagent of round.subagentExecutions) {
|
|
244
|
+
if (subagent.status === "running" || subagent.status === "initializing") {
|
|
245
|
+
return {
|
|
246
|
+
type: "subagent",
|
|
247
|
+
data: subagent,
|
|
248
|
+
time: subagent.metrics.startTime
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
export {
|
|
255
|
+
calculateTodoChanges,
|
|
256
|
+
convertMessagesToRounds,
|
|
257
|
+
extractThinkingState,
|
|
258
|
+
extractToolExecutions,
|
|
259
|
+
getCurrentActivity,
|
|
260
|
+
mergeTimelineItems
|
|
261
|
+
};
|
|
262
|
+
//# sourceMappingURL=roundConverter.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utils/roundConverter.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Round Converter Utility\n *\n * This module provides functions to convert flat message arrays into\n * hierarchical InteractionRound structures for improved UI rendering.\n *\n * Key responsibilities:\n * - Group messages into user-assistant interaction rounds\n * - Extract tool executions from assistant messages\n * - Extract subagent executions from TaskTool invocations\n * - Merge timeline items (tools + subagents) by timestamp\n * - Track todo changes across rounds\n *\n * @module utils/roundConverter\n */\n\nimport type { UUID } from 'crypto'\nimport type {\n Message,\n UserMessage,\n AssistantMessage,\n ProgressMessage,\n} from '../types/conversation'\nimport type {\n InteractionRound,\n ToolExecution,\n SubagentExecution,\n ThinkingState,\n TodoChange,\n TodoSnapshot,\n TimelineItem,\n} from '../types/interactionRound'\nimport type { SubagentState } from '../types/subagent'\nimport type { TodoItem } from '@utils/todoStorage'\n\n/**\n * Converts a flat array of messages into structured InteractionRound objects.\n *\n * Algorithm:\n * 1. Iterate through messages sequentially\n * 2. Each UserMessage starts a new round\n * 3. Following AssistantMessages and ProgressMessages belong to that round\n * 4. Extract tool executions, subagent executions, and thinking states\n * 5. Compute round-level metrics (duration, cost, etc.)\n *\n * @param messages - Array of conversation messages to convert\n * @param currentTodos - Optional: Current todo list for the latest round\n * @param subagents - Optional: Array of subagent states to include in rounds\n * @returns Array of structured interaction rounds\n */\nexport function convertMessagesToRounds(\n messages: Message[],\n currentTodos?: TodoItem[],\n subagents?: SubagentState[],\n): InteractionRound[] {\n const rounds: InteractionRound[] = []\n let currentRound: Partial<InteractionRound> | null = null\n let previousTodos: TodoItem[] = []\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]\n\n if (message.type === 'user') {\n // Save the previous round if it exists\n if (currentRound && currentRound.userMessage) {\n rounds.push(finalizeRound(currentRound))\n }\n\n // Start a new round\n currentRound = {\n uuid: message.uuid,\n userMessage: message,\n toolExecutions: [],\n subagentExecutions: [],\n startTime: Date.now(), // We'll update this from actual message timestamps if available\n }\n } else if (message.type === 'assistant' && currentRound) {\n // Process assistant message\n const assistantMsg = message as AssistantMessage\n\n // Check if this message contains tool_use blocks\n const hasToolUse = assistantMsg.message.content.some(\n (block: any) => block.type === 'tool_use',\n )\n\n // Check if this message has text content\n const hasText = assistantMsg.message.content.some(\n (block: any) => block.type === 'text' && block.text.trim().length > 0,\n )\n\n if (hasToolUse) {\n // This message contains tool executions\n // Extract tool executions from this message\n const toolExecutions = extractToolExecutions(assistantMsg)\n currentRound.toolExecutions = [\n ...(currentRound.toolExecutions || []),\n ...toolExecutions,\n ]\n\n // If this message also has text content, it might be thinking or commentary\n if (hasText && !currentRound.agentThinking) {\n const textContent = assistantMsg.message.content\n .filter((block: any) => block.type === 'text')\n .map((block: any) => block.text)\n .join('\\n')\n\n if (textContent.trim()) {\n currentRound.agentThinking = {\n message: textContent,\n startTime: Date.now(),\n durationMs: assistantMsg.durationMs,\n }\n }\n }\n } else if (hasText) {\n // This is a text-only assistant message\n const textContent = assistantMsg.message.content\n .filter((block: any) => block.type === 'text')\n .map((block: any) => block.text)\n .join('\\n')\n\n // Strategy: Look ahead to determine the role of this message\n // - If next message is user \u2192 this is final response (round complete)\n // - If next message is assistant with tools \u2192 this is thinking\n // - If this is the last message \u2192 this is final response (potentially in-progress)\n // - If we already have tools \u2192 this is final response after tools\n\n const nextMessage = messages[i + 1]\n const nextIsUser = nextMessage && nextMessage.type === 'user'\n const nextIsAssistantWithTools = nextMessage &&\n nextMessage.type === 'assistant' &&\n (nextMessage as AssistantMessage).message.content.some(\n (block: any) => block.type === 'tool_use',\n )\n const isLastMessage = i === messages.length - 1\n const hasToolsAlready = currentRound.toolExecutions && currentRound.toolExecutions.length > 0\n\n if (hasToolsAlready || nextIsUser || isLastMessage) {\n // This is the final response\n currentRound.agentResponse = assistantMsg\n currentRound.endTime = Date.now()\n currentRound.durationMs = assistantMsg.durationMs\n currentRound.totalCostUSD =\n (currentRound.totalCostUSD || 0) + assistantMsg.costUSD\n } else if (nextIsAssistantWithTools && !currentRound.agentThinking) {\n // This is thinking (agent reasoning before using tools)\n currentRound.agentThinking = {\n message: textContent,\n startTime: Date.now(),\n durationMs: assistantMsg.durationMs,\n }\n } else {\n // Default: treat as final response\n currentRound.agentResponse = assistantMsg\n currentRound.endTime = Date.now()\n currentRound.durationMs = assistantMsg.durationMs\n currentRound.totalCostUSD =\n (currentRound.totalCostUSD || 0) + assistantMsg.costUSD\n }\n }\n } else if (message.type === 'progress' && currentRound) {\n // Process progress message (tool results)\n // Subagent info is extracted from the subagents parameter instead\n }\n }\n\n // Finalize the last round\n if (currentRound && currentRound.userMessage) {\n // Add current todos to the last round if provided\n if (currentTodos) {\n const changes = calculateTodoChanges(previousTodos, currentTodos)\n currentRound.todoSnapshot = {\n todos: currentTodos,\n timestamp: Date.now(),\n changes,\n }\n }\n rounds.push(finalizeRound(currentRound))\n }\n\n // Assign subagents to rounds based on their start time\n // For now, assign all subagents to the last round if it exists\n // TODO: Improve this to assign subagents to the correct round based on timing\n if (rounds.length > 0 && subagents && subagents.length > 0) {\n const lastRound = rounds[rounds.length - 1]\n lastRound.subagentExecutions = subagents\n }\n\n return rounds\n}\n\n/**\n * Extracts tool execution records from an assistant message.\n *\n * Parses the message content blocks to find tool_use blocks and creates\n * ToolExecution objects with the appropriate status and metadata.\n *\n * @param message - Assistant message potentially containing tool uses\n * @returns Array of tool execution records\n */\nexport function extractToolExecutions(\n message: AssistantMessage,\n): ToolExecution[] {\n const toolExecutions: ToolExecution[] = []\n\n if (!message.message.content) {\n return toolExecutions\n }\n\n for (const block of message.message.content) {\n if (block.type === 'tool_use') {\n const toolExec: ToolExecution = {\n id: block.id,\n name: block.name,\n input: block.input,\n status: 'completed', // Assume completed if we're seeing it\n startTime: Date.now(), // Ideally extract from message metadata\n endTime: Date.now(),\n durationMs: message.durationMs,\n }\n toolExecutions.push(toolExec)\n }\n }\n\n return toolExecutions\n}\n\n/**\n * Extracts subagent execution records from TaskTool invocations.\n *\n * NOTE: Currently not used as we're getting SubagentState directly from REPL.tsx.\n * Keeping this for potential future use or reference.\n *\n * @param progressMessage - Progress message containing subagent event data\n * @returns Subagent execution record or null if not a subagent message\n */\n/*\nexport function extractSubagentExecution(\n progressMessage: ProgressMessage,\n): SubagentExecution | null {\n if (!progressMessage.subagentEvent) {\n return null\n }\n\n const event = progressMessage.subagentEvent\n const metrics = event.metrics || {\n toolUseCount: 0,\n tokenCount: 0,\n startTime: Date.now(),\n }\n\n // Build subagent execution from event data\n const subagentExec: SubagentExecution = {\n id: event.id,\n taskName: event.taskName || 'Unknown Task',\n agentType: event.agentType || 'unknown',\n status: mapEventTypeToStatus(event.eventType),\n messages: {\n toolExecutions: [],\n },\n metrics,\n }\n\n // Extract tool executions from the progress message content\n if (progressMessage.content && progressMessage.content.message) {\n const toolExecutions = extractToolExecutions(progressMessage.content)\n subagentExec.messages.toolExecutions = toolExecutions\n }\n\n // Add response message if this is a completion event\n if (event.eventType === 'complete' && progressMessage.content) {\n subagentExec.messages.response = progressMessage.content\n }\n\n // Add error if present\n if (event.eventType === 'error' && event.error) {\n subagentExec.error = event.error\n }\n\n return subagentExec\n}\n*/\n\n/**\n * Merges tool executions and subagent executions into a single timeline\n * sorted by start time.\n *\n * This enables chronological rendering where tools and subagents appear\n * in the order they were actually executed.\n *\n * @param toolExecutions - Array of tool execution records\n * @param subagentExecutions - Array of subagent state records\n * @returns Sorted array of timeline items\n */\nexport function mergeTimelineItems(\n toolExecutions: ToolExecution[],\n subagentExecutions: SubagentState[],\n): TimelineItem[] {\n const timeline: TimelineItem[] = []\n\n // Add tool executions to timeline\n for (const tool of toolExecutions) {\n timeline.push({\n type: 'tool',\n data: tool,\n time: tool.startTime,\n })\n }\n\n // Add subagent executions to timeline\n for (const subagent of subagentExecutions) {\n timeline.push({\n type: 'subagent',\n data: subagent,\n time: subagent.metrics.startTime,\n })\n }\n\n // Sort by start time\n timeline.sort((a, b) => a.time - b.time)\n\n return timeline\n}\n\n/**\n * Calculates the differences between two todo lists.\n *\n * Identifies added, removed, updated, and status-changed todos to generate\n * a complete change log for display purposes.\n *\n * @param oldTodos - Previous todo list state\n * @param newTodos - Current todo list state\n * @returns Array of todo change records\n */\nexport function calculateTodoChanges(\n oldTodos: TodoItem[],\n newTodos: TodoItem[],\n): TodoChange[] {\n const changes: TodoChange[] = []\n const timestamp = Date.now()\n\n // Create maps for efficient lookup\n const oldTodoMap = new Map(oldTodos.map(todo => [todo.id, todo]))\n const newTodoMap = new Map(newTodos.map(todo => [todo.id, todo]))\n\n // Check for additions and updates\n for (const newTodo of newTodos) {\n const oldTodo = oldTodoMap.get(newTodo.id)\n\n if (!oldTodo) {\n // New todo added\n changes.push({\n type: 'added',\n todoId: newTodo.id,\n newValue: newTodo,\n timestamp,\n })\n } else {\n // Check for status change\n if (oldTodo.status !== newTodo.status) {\n changes.push({\n type: 'status_changed',\n todoId: newTodo.id,\n oldValue: oldTodo,\n newValue: newTodo,\n timestamp,\n })\n } else if (JSON.stringify(oldTodo) !== JSON.stringify(newTodo)) {\n // Other fields changed\n changes.push({\n type: 'updated',\n todoId: newTodo.id,\n oldValue: oldTodo,\n newValue: newTodo,\n timestamp,\n })\n }\n }\n }\n\n // Check for removals\n for (const oldTodo of oldTodos) {\n if (!newTodoMap.has(oldTodo.id)) {\n changes.push({\n type: 'removed',\n todoId: oldTodo.id,\n oldValue: oldTodo,\n timestamp,\n })\n }\n }\n\n return changes\n}\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Finalizes a partial interaction round by computing aggregate metrics\n * and ensuring all required fields are present.\n *\n * @param partialRound - Partial round object to finalize\n * @returns Complete interaction round\n */\nfunction finalizeRound(\n partialRound: Partial<InteractionRound>,\n): InteractionRound {\n // Compute total cost from all messages\n let totalCost = 0\n // Note: agentThinking.message is now a string, cost is tracked separately\n // Cost is primarily tracked in agentResponse\n if (partialRound.agentResponse) {\n totalCost += partialRound.agentResponse.costUSD\n }\n\n // Compute duration if not already set\n const startTime = partialRound.startTime || Date.now()\n const endTime = partialRound.endTime || Date.now()\n const durationMs = partialRound.durationMs || endTime - startTime\n\n return {\n uuid: partialRound.uuid!,\n userMessage: partialRound.userMessage!,\n agentThinking: partialRound.agentThinking,\n toolExecutions: partialRound.toolExecutions || [],\n subagentExecutions: partialRound.subagentExecutions || [],\n agentResponse: partialRound.agentResponse,\n todoSnapshot: partialRound.todoSnapshot,\n startTime,\n endTime,\n durationMs,\n totalCostUSD: totalCost,\n }\n}\n\n/**\n * Maps subagent event types to execution status values.\n *\n * @param eventType - Subagent event type\n * @returns Corresponding execution status\n */\nfunction mapEventTypeToStatus(\n eventType: string,\n): 'initializing' | 'running' | 'completed' | 'error' {\n switch (eventType) {\n case 'start':\n return 'initializing'\n case 'progress':\n return 'running'\n case 'complete':\n return 'completed'\n case 'error':\n return 'error'\n default:\n return 'running'\n }\n}\n\n/**\n * Extracts thinking state from the first assistant message in a round\n * that doesn't contain tool uses.\n *\n * @param messages - Array of messages to search\n * @param roundStartIndex - Index where the current round starts\n * @returns Thinking state or undefined\n */\nexport function extractThinkingState(\n messages: Message[],\n roundStartIndex: number,\n): ThinkingState | undefined {\n for (let i = roundStartIndex; i < messages.length; i++) {\n const message = messages[i]\n\n if (message.type === 'assistant') {\n const assistantMsg = message as AssistantMessage\n const hasToolUse = assistantMsg.message.content.some(\n (block: any) => block.type === 'tool_use',\n )\n\n if (!hasToolUse) {\n // Extract text content from assistant message\n const textContent = assistantMsg.message.content\n .filter((block: any) => block.type === 'text')\n .map((block: any) => block.text)\n .join('\\n')\n\n return {\n message: textContent,\n startTime: Date.now(), // Ideally from message metadata\n durationMs: assistantMsg.durationMs,\n }\n }\n } else if (message.type === 'user') {\n // Stop searching when we hit the next user message\n break\n }\n }\n\n return undefined\n}\n\n/**\n * Gets the current in-progress tool or subagent from a round.\n * Useful for rendering live progress indicators.\n *\n * @param round - Interaction round to check\n * @returns Timeline item that's currently in progress, or null\n */\nexport function getCurrentActivity(\n round: InteractionRound,\n): TimelineItem | null {\n // Check tools\n for (const tool of round.toolExecutions) {\n if (tool.status === 'running' || tool.status === 'pending') {\n return { type: 'tool', data: tool, time: tool.startTime }\n }\n }\n\n // Check subagents\n for (const subagent of round.subagentExecutions) {\n if (subagent.status === 'running' || subagent.status === 'initializing') {\n return {\n type: 'subagent',\n data: subagent,\n time: subagent.metrics.startTime,\n }\n }\n }\n\n return null\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|