feat: integrate tool call icons with status indicators and daisy chaining (#4279)

Co-authored-by: dianed-square <73617011+dianed-square@users.noreply.github.com>
Co-authored-by: Zane <75694352+zanesq@users.noreply.github.com>
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
This commit is contained in:
Spence
2025-08-29 08:39:38 -04:00
committed by GitHub
parent 7599a3e56b
commit 69c29a0870
24 changed files with 920 additions and 73 deletions
@@ -0,0 +1,23 @@
export const Archive = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#1E1E20" />
<path
d="M1.375 6.1875H9.625V8.25C9.625 8.6297 9.3172 8.9375 8.9375 8.9375H2.0625C1.6828 8.9375 1.375 8.6297 1.375 8.25V6.1875Z"
fill="#DBD7CE"
/>
<path d="M1.375 6.1875H9.625V7.5625H1.375V6.1875Z" fill="#434343" />
<path d="M1.375 4.8125H9.625V6.1875H1.375V4.8125Z" fill="white" />
<path d="M1.375 3.4375H9.625V4.8125H1.375V3.4375Z" fill="#616161" />
<path
d="M1.375 2.75C1.375 2.3703 1.6828 2.0625 2.0625 2.0625H8.9375C9.3172 2.0625 9.625 2.3703 9.625 2.75V3.4375H1.375V2.75Z"
fill="#9F9F9F"
/>
</svg>
);
@@ -0,0 +1,27 @@
export const Brain = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#3E3E3E" />
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_782)" />
<path d="M5.5 2.0625L1.375 5.5L5.5 8.9375L9.625 5.5L5.5 2.0625Z" fill="#E74786" />
<defs>
<linearGradient
id="paint0_linear_6313_782"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop />
<stop offset="1" stopColor="#323232" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,33 @@
export const Camera = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_741)" />
<path
d="M1.375 3.4375C1.375 3.0578 1.6828 2.75 2.0625 2.75H8.9375C9.3172 2.75 9.625 3.0578 9.625 3.4375V7.5625C9.625 7.9422 9.3172 8.25 8.9375 8.25H2.0625C1.6828 8.25 1.375 7.9422 1.375 7.5625V3.4375Z"
fill="#2F2F31"
/>
<path
d="M6.53125 5.5C6.53125 6.06954 6.06954 6.53125 5.5 6.53125C4.93046 6.53125 4.46875 6.06954 4.46875 5.5C4.46875 4.93046 4.93046 4.46875 5.5 4.46875C6.06954 4.46875 6.53125 4.93046 6.53125 5.5Z"
fill="white"
/>
<defs>
<linearGradient
id="paint0_linear_6313_741"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#E2E3F7" />
<stop offset="1" stopColor="#978E8F" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,13 @@
export const Code2 = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#1C1C1E" />
<rect x="2" y="5" width="7" height="1" rx="0.5" fill="#19FF4F" />
</svg>
);
@@ -0,0 +1,33 @@
export const Eye = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_805)" />
<path
d="M1.375 5.5C1.375 4.36091 2.29841 3.4375 3.4375 3.4375H7.5625C8.70159 3.4375 9.625 4.36091 9.625 5.5V5.5C9.625 6.63909 8.70159 7.5625 7.5625 7.5625H3.4375C2.29841 7.5625 1.375 6.63909 1.375 5.5V5.5Z"
fill="white"
/>
<path
d="M6.53125 5.5C6.53125 6.06954 6.06954 6.53125 5.5 6.53125C4.93046 6.53125 4.46875 6.06954 4.46875 5.5C4.46875 4.93046 4.93046 4.46875 5.5 4.46875C6.06954 4.46875 6.53125 4.93046 6.53125 5.5Z"
fill="black"
/>
<defs>
<linearGradient
id="paint0_linear_6313_805"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#00A2FF" />
<stop offset="1" stopColor="#5A6DFF" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,33 @@
export const FileEdit = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_755)" />
<path
d="M8.96875 2.03125L8.96875 4.78125L2.09375 4.78125L2.09375 3.40625C2.09375 2.64686 2.70936 2.03125 3.46875 2.03125L8.96875 2.03125Z"
fill="white"
/>
<path
d="M5.03125 6.03125L5.03125 9.03125L2.03125 9.03125L2.03125 7.53125C2.03125 6.70282 2.29988 6.03125 2.63125 6.03125L5.03125 6.03125Z"
fill="white"
/>
<defs>
<linearGradient
id="paint0_linear_6313_755"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop />
<stop offset="1" stopColor="#383838" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,27 @@
export const FilePlus = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_774)" />
<rect x="2" y="5" width="7" height="1" rx="0.5" fill="white" />
<rect x="6" y="2" width="7" height="1" rx="0.5" transform="rotate(90 6 2)" fill="white" />
<defs>
<linearGradient
id="paint0_linear_6313_774"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#FF9A00" />
<stop offset="1" stopColor="#FFC800" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,31 @@
export const FileText = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_764)" />
<path
fillRule="evenodd"
clipRule="evenodd"
d="M8.73614 2.26386C9.00462 2.53235 9.00462 2.96765 8.73614 3.23614L3.23614 8.73614C2.96765 9.00462 2.53235 9.00462 2.26386 8.73614C1.99538 8.46765 1.99538 8.03235 2.26386 7.76386L7.76386 2.26386C8.03235 1.99538 8.46765 1.99538 8.73614 2.26386Z"
fill="white"
/>
<defs>
<linearGradient
id="paint0_linear_6313_764"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#FFB645" />
<stop offset="1" stopColor="#FF8735" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,34 @@
export const Globe = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<g clipPath="url(#clip0_6313_720)">
<rect width="11" height="11" rx="2" fill="white" />
<path
d="M10.3125 5.5C10.3125 8.15787 8.15787 10.3125 5.5 10.3125C2.84213 10.3125 0.6875 8.15787 0.6875 5.5C0.6875 2.84213 2.84213 0.6875 5.5 0.6875C8.15787 0.6875 10.3125 2.84213 10.3125 5.5Z"
fill="url(#paint0_linear_6313_720)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_6313_720"
x1="5.5"
y1="0.6875"
x2="5.5"
y2="10.3125"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#00CAF7" />
<stop offset="1" stopColor="#0B54DE" />
</linearGradient>
<clipPath id="clip0_6313_720">
<rect width="11" height="11" rx="2" fill="white" />
</clipPath>
</defs>
</svg>
);
@@ -0,0 +1,16 @@
export const Harddrive = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#1E1E20" />
<path
d="M5 3.5C5 4.32843 4.32843 5 3.5 5C2.67157 5 2 4.32843 2 3.5C2 2.67157 2.67157 2 3.5 2C4.32843 2 5 2.67157 5 3.5Z"
fill="white"
/>
</svg>
);
@@ -0,0 +1,16 @@
export const Monitor = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="white" />
<path
d="M9.625 5.5C9.625 7.77817 7.77817 9.625 5.5 9.625C3.22183 9.625 1.375 7.77817 1.375 5.5C1.375 3.22183 3.22183 1.375 5.5 1.375C7.77817 1.375 9.625 3.22183 9.625 5.5Z"
fill="#E60023"
/>
</svg>
);
@@ -0,0 +1,37 @@
export const Numbers = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_717)" />
<path
d="M4.8125 3.4375C4.8125 3.0578 5.1203 2.75 5.5 2.75C5.8797 2.75 6.1875 3.0578 6.1875 3.4375V7.5625C6.1875 7.9422 5.8797 8.25 5.5 8.25C5.1203 8.25 4.8125 7.9422 4.8125 7.5625V3.4375Z"
fill="white"
/>
<path
d="M2.0625 6.1875C2.0625 5.8078 2.3703 5.5 2.75 5.5C3.1297 5.5 3.4375 5.8078 3.4375 6.1875V7.5625C3.4375 7.9422 3.1297 8.25 2.75 8.25C2.3703 8.25 2.0625 7.9422 2.0625 7.5625V6.1875Z"
fill="white"
/>
<path
d="M8.25 4.125C7.8703 4.125 7.5625 4.4328 7.5625 4.8125V7.5625C7.5625 7.9422 7.8703 8.25 8.25 8.25C8.6297 8.25 8.9375 7.9422 8.9375 7.5625V4.8125C8.9375 4.4328 8.6297 4.125 8.25 4.125Z"
fill="white"
/>
<defs>
<linearGradient
id="paint0_linear_6313_717"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#73FA80" />
<stop offset="1" stopColor="#00D648" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,13 @@
export const Save = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#C32361" />
<path d="M5.5 2.0625L1.375 5.5L5.5 8.9375L9.625 5.5L5.5 2.0625Z" fill="#E74786" />
</svg>
);
@@ -0,0 +1,29 @@
export const Search = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_760)" />
<path
d="M7.5625 5.5C7.5625 6.63909 6.63909 7.5625 5.5 7.5625C4.36091 7.5625 3.4375 6.63909 3.4375 5.5C3.4375 4.36091 4.36091 3.4375 5.5 3.4375C6.63909 3.4375 7.5625 4.36091 7.5625 5.5Z"
fill="#2D2D2E"
/>
<defs>
<linearGradient
id="paint0_linear_6313_760"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D2D5DA" />
<stop offset="1" stopColor="#8B8E95" />
</linearGradient>
</defs>
</svg>
);
@@ -0,0 +1,40 @@
export const Settings = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<g clipPath="url(#clip0_6313_731)">
<rect width="11" height="11" rx="2" fill="url(#paint0_linear_6313_731)" />
<path
fillRule="evenodd"
clipRule="evenodd"
d="M5.5 8.9375C7.39848 8.9375 8.9375 7.39848 8.9375 5.5C8.9375 3.60152 7.39848 2.0625 5.5 2.0625C3.60152 2.0625 2.0625 3.60152 2.0625 5.5C2.0625 7.39848 3.60152 8.9375 5.5 8.9375ZM5.5 10.3125C8.15787 10.3125 10.3125 8.15787 10.3125 5.5C10.3125 2.84213 8.15787 0.6875 5.5 0.6875C2.84213 0.6875 0.6875 2.84213 0.6875 5.5C0.6875 8.15787 2.84213 10.3125 5.5 10.3125Z"
fill="#2D2D2E"
/>
<path
d="M7.5625 5.5C7.5625 6.63909 6.63909 7.5625 5.5 7.5625C4.36091 7.5625 3.4375 6.63909 3.4375 5.5C3.4375 4.36091 4.36091 3.4375 5.5 3.4375C6.63909 3.4375 7.5625 4.36091 7.5625 5.5Z"
fill="#2D2D2E"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_6313_731"
x1="5.5"
y1="0"
x2="5.5"
y2="11"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D2D5DA" />
<stop offset="1" stopColor="#8B8E95" />
</linearGradient>
<clipPath id="clip0_6313_731">
<rect width="11" height="11" rx="2" fill="white" />
</clipPath>
</defs>
</svg>
);
@@ -0,0 +1,13 @@
export const Terminal = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#1C1C1E" />
<path d="M2 3L2 2L6 2L6 3L2 3Z" fill="#19FF4F" />
</svg>
);
@@ -0,0 +1,13 @@
export const Tool = ({ className }: { className?: string }) => (
<svg
width="11"
height="11"
viewBox="0 0 11 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className}
>
<rect width="11" height="11" rx="2" fill="#1E1E20" />
<rect x="2" y="5" width="7" height="1" rx="0.5" fill="white" />
</svg>
);
@@ -0,0 +1,17 @@
export { Archive } from './Archive';
export { Brain } from './Brain';
export { Camera } from './Camera';
export { Code2 } from './Code2';
export { Eye } from './Eye';
export { FileEdit } from './FileEdit';
export { FilePlus } from './FilePlus';
export { FileText } from './FileText';
export { Globe } from './Globe';
export { Harddrive } from './Harddrive';
export { Monitor } from './Monitor';
export { Numbers } from './Numbers';
export { Save } from './Save';
export { Search } from './Search';
export { Settings } from './Settings';
export { Terminal } from './Terminal';
export { Tool } from './Tool';