feat: enable extension from ui (#2117)

This commit is contained in:
Wendy Tang
2025-04-11 13:06:59 -07:00
committed by GitHub
parent 387432ec86
commit b030f845ce
9 changed files with 254 additions and 13 deletions
@@ -11,9 +11,11 @@ import {
getToolResponses,
getToolConfirmationContent,
createToolErrorResponseMessage,
getEnableExtensionContent,
} from '../types/message';
import ToolCallConfirmation from './ToolCallConfirmation';
import MessageCopyLink from './MessageCopyLink';
import ExtensionConfirmation from './ExtensionConfirmation';
interface GooseMessageProps {
messageHistoryIndex: number;
@@ -52,6 +54,9 @@ export default function GooseMessage({
const toolConfirmationContent = getToolConfirmationContent(message);
const hasToolConfirmation = toolConfirmationContent !== undefined;
const enableExtensionContent = getEnableExtensionContent(message);
const hasEnableExtension = enableExtensionContent !== undefined;
// Find tool responses that correspond to the tool requests in this message
const toolResponsesMap = useMemo(() => {
const responseMap = new Map();
@@ -86,12 +91,23 @@ export default function GooseMessage({
createToolErrorResponseMessage(toolConfirmationContent.id, 'The tool call is cancelled.')
);
}
if (messageIndex == messageHistoryIndex - 1 && hasEnableExtension) {
appendMessage(
createToolErrorResponseMessage(
enableExtensionContent.id,
'The extension enablement is cancelled.'
)
);
}
}, [
messageIndex,
messageHistoryIndex,
hasToolConfirmation,
toolConfirmationContent,
appendMessage,
hasEnableExtension,
// Only include enableExtensionContent if it exists
enableExtensionContent?.id,
]);
return (
@@ -140,6 +156,15 @@ export default function GooseMessage({
toolName={toolConfirmationContent.toolName}
/>
)}
{hasEnableExtension && (
<ExtensionConfirmation
isCancelledMessage={messageIndex == messageHistoryIndex - 1}
isClicked={messageIndex < messageHistoryIndex - 1}
extensionConfirmationId={enableExtensionContent.id}
extensionName={enableExtensionContent.extensionName}
/>
)}
</div>
{/* TODO(alexhancock): Re-enable link previews once styled well again */}