Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

spencrmartin
Copy link
Collaborator

@spencrmartin spencrmartin commented Aug 22, 2025

🔗 Tool Call Chaining
Consecutive tool calls are now visually grouped into chains
Reduces visual clutter by combining related tool executions
Smart chain detection that works during streaming
Preserves individual tool call functionality for non-chained calls

🎨 Tool Call Icons & Status Indicators
13 new custom icons for different tool types (Terminal, FileEdit, Globe, Camera, etc.)
Dynamic icon mapping based on tool names and functions
Status indicators showing tool execution state
Enhanced visual hierarchy for better UX

🧠 Preserved Core Functionality
Chain of Thought (CoT) with `` blocks maintained
GooseResponseForm integration preserved (currently disabled but available)
Metadata handling and parameter usage restored
Tool confirmations and error handling intact

🔧 Technical Changes
New Components
ToolCallChain.tsx - Handles rendering of chained tool calls
ToolCallStatusIndicator.tsx - Visual status indicators for tools
13 new icon components in icons/toolcalls/

Enhanced Components
GooseMessage.tsx - Integrated chaining logic while preserving CoT
ToolCallWithResponse.tsx - Enhanced with status indicators

New Utilities
toolCallChaining.ts - Chain detection and management logic
toolIconMapping.tsx - Dynamic icon assignment system

Screenshot 2025-08-22 at 10 56 12 AM

Original prework PR #4248

spencrmartin and others added 4 commits August 22, 2025 10:43
- Add 17 custom tool call icon components (Terminal, FileEdit, Globe, etc.)
- Create comprehensive tool-to-icon mapping system
- Implement status indicator overlay system (success/error/loading/pending)
- Replace old green dot status with integrated icon+status display
- Remove redundant LoaderCircle and Dot components from tool calls
- Maintain all existing functionality (tooltips, expansion, etc.)

Visual improvements:
- Each tool call now shows specific icon (11x11px matching design system)
- Status indicators: green (success), red (error), yellow pulsing (loading), gray (pending)
- Cleaner layout with single status indicator per tool
- Better visual hierarchy and user experience

Files added:
- ui/desktop/src/components/icons/toolcalls/ (17 icon components)
- ui/desktop/src/utils/toolIconMapping.tsx (mapping logic)
- ui/desktop/src/components/ToolCallStatusIndicator.tsx (status system)

Files modified:
- ui/desktop/src/components/ToolCallWithResponse.tsx (integration)
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: dianed-square <73617011+dianed-square@users.noreply.github.com>
Co-authored-by: Zane <75694352+zanesq@users.noreply.github.com>
@spencrmartin spencrmartin changed the base branch from spence/toolcalls to main August 22, 2025 14:51
@spencrmartin spencrmartin changed the title Pr 4248 rebased feat: integrate tool call icons with status indicators and daisy chaining Aug 22, 2025
@spencrmartin
Copy link
Collaborator Author

Followed up with @chaitanyarahalkar around Chain-Of-Thought code block

it is only served if you are using local models with something like Ollama. Those models emit their cot in the tags which gets wrapped in this UI

for context. Moving to ready for review

@spencrmartin spencrmartin marked this pull request as ready for review August 22, 2025 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant