diff --git a/frontend/src/app/components/share/IncludesList.tsx b/frontend/src/app/components/share/IncludesList.tsx index 4494c16c..1a9cdb61 100644 --- a/frontend/src/app/components/share/IncludesList.tsx +++ b/frontend/src/app/components/share/IncludesList.tsx @@ -7,12 +7,24 @@ import React, { useState } from 'react'; import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; +import Tooltip from '@mui/material/Tooltip'; import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; +import ExtensionOutlinedIcon from '@mui/icons-material/ExtensionOutlined'; +import KeyOutlinedIcon from '@mui/icons-material/KeyOutlined'; +import TuneOutlinedIcon from '@mui/icons-material/TuneOutlined'; import { useClaudeTokens } from '@/shared/styles/ThemeContext'; import { BundleSummary } from './shareTypes'; +// One glyph per requirement kind, so a row of needs reads as icons + names +// instead of a stack of explanatory sentences. The sentence moves to a hover. +const REQ_ICON: Record = { + mcp_action: , + api_key: , + builtin_mode: , +}; + const KIND_LABEL: Record = { skill: 'Skill', app: 'App', @@ -127,9 +139,33 @@ const IncludesList: React.FC<{ summary: BundleSummary }> = ({ summary }) => { {summary.requirements.length > 0 && ( - {summary.requirements.map((r, i) => ( - - ))} + + Needs + + + {summary.requirements.map((r, i) => ( + + + {REQ_ICON[r.kind] || } + + {r.label} + + + + ))} + )}