mirror of https://github.com/kortix-ai/suna.git
fix(complete-tool): rm unnecessary files
This commit is contained in:
parent
bafa1becef
commit
1193d11b2c
|
@ -1,108 +0,0 @@
|
|||
# Complete Tool Changes Summary
|
||||
|
||||
## Overview
|
||||
Modified the complete tool to behave like the ask tool by accepting `text` and `attachments` parameters, making it more flexible for providing completion summaries and deliverables.
|
||||
|
||||
## Backend Changes
|
||||
|
||||
### 1. Updated `backend/agent/tools/message_tool.py`
|
||||
|
||||
**Changes to the `complete` method:**
|
||||
- Added `text` parameter (optional): Completion message or summary to present to user
|
||||
- Added `attachments` parameter (optional): List of files or URLs to attach to the completion message
|
||||
- Updated OpenAPI schema to include the new parameters
|
||||
- Updated XML schema mappings to support the new parameters
|
||||
- Updated function signature: `async def complete(self, text: Optional[str] = None, attachments: Optional[Union[str, List[str]]] = None) -> ToolResult:`
|
||||
- Added parameter conversion logic to handle single attachment strings
|
||||
|
||||
**Updated description:**
|
||||
- Enhanced tool description to mention including relevant attachments
|
||||
- Updated example to show usage with text and attachments
|
||||
|
||||
### 2. Updated `backend/agent/prompt.py`
|
||||
|
||||
**Changes to agent prompts:**
|
||||
- Modified the rule about sharing results to allow using the complete tool with attachments
|
||||
- Updated from: "Always share results and deliverables using 'ask' tool with attachments before entering complete state"
|
||||
- Updated to: "Always share results and deliverables using 'ask' tool with attachments before entering complete state, or include them directly with the 'complete' tool"
|
||||
|
||||
## Frontend Changes
|
||||
|
||||
### 1. Created `frontend/src/components/thread/tool-views/complete-tool/_utils.ts`
|
||||
|
||||
**New utility file:**
|
||||
- Mirrors the structure of `ask-tool/_utils.ts`
|
||||
- Provides `extractCompleteData` function to parse text and attachments from tool calls
|
||||
- Supports both new format (tool_execution) and legacy format parsing
|
||||
- Handles single attachment strings and arrays
|
||||
- Includes comprehensive logging for debugging
|
||||
|
||||
### 2. Updated `frontend/src/components/thread/tool-views/CompleteToolView.tsx`
|
||||
|
||||
**Major changes:**
|
||||
- Added import for `extractCompleteData` utility
|
||||
- Added `project` prop to support file attachments
|
||||
- Added file type detection functions (`isImageFile`, `isPreviewableFile`)
|
||||
- Updated component to use extracted text and attachments data
|
||||
- Modified success badge to use actual success state
|
||||
- Updated content rendering to handle text and attachments like AskToolView
|
||||
- Added FileAttachment component for proper file display
|
||||
- Updated empty state condition to include new parameters
|
||||
- Maintained backward compatibility with existing complete data parsing
|
||||
|
||||
**New features:**
|
||||
- Displays completion text in a formatted markdown box
|
||||
- Shows attachments in a grid layout with proper file previews
|
||||
- Supports image files, previewable files, and regular files
|
||||
- Maintains existing functionality for legacy complete data
|
||||
|
||||
## Benefits
|
||||
|
||||
1. **Consistency**: Complete tool now has the same parameter structure as ask tool
|
||||
2. **Flexibility**: Agents can provide completion summaries and deliverables directly
|
||||
3. **Better UX**: Users can see completion details and attached files in a unified interface
|
||||
4. **Backward Compatibility**: Existing complete tool calls without parameters still work
|
||||
5. **Enhanced Communication**: Agents can provide more context when completing tasks
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Backend Usage:
|
||||
```python
|
||||
# Simple completion (existing behavior)
|
||||
await message_tool.complete()
|
||||
|
||||
# With completion message
|
||||
await message_tool.complete(text="All tasks completed successfully!")
|
||||
|
||||
# With attachments
|
||||
await message_tool.complete(attachments=["app.js", "docs/README.md"])
|
||||
|
||||
# With both text and attachments
|
||||
await message_tool.complete(
|
||||
text="Project completed! Here are the deliverables:",
|
||||
attachments=["app.js", "docs/README.md", "deployment.yaml"]
|
||||
)
|
||||
```
|
||||
|
||||
### Frontend Display:
|
||||
- Text appears in a formatted markdown box
|
||||
- Attachments are displayed in a responsive grid
|
||||
- Images are shown with previews
|
||||
- Previewable files (HTML, MD, CSV) are rendered inline
|
||||
- Regular files show with appropriate icons
|
||||
|
||||
## Testing
|
||||
|
||||
The changes have been tested to ensure:
|
||||
- Backward compatibility with existing complete tool calls
|
||||
- Proper parameter handling (text, attachments, both, or neither)
|
||||
- Frontend rendering of text and attachments
|
||||
- File type detection and display
|
||||
- Success state handling
|
||||
|
||||
## Migration Notes
|
||||
|
||||
- Existing complete tool calls will continue to work unchanged
|
||||
- New complete tool calls can optionally include text and attachments
|
||||
- Frontend will gracefully handle both old and new formats
|
||||
- No breaking changes to existing functionality
|
Loading…
Reference in New Issue