Commit Graph

3 Commits

Author SHA1 Message Date
c0ef31e5f4 feat: collapse tool results and add headless Chrome fetcher
Backend:
- Add unified URL fetcher with fallback chain: curl → wget → native Go → headless Chrome
- Implement JS-rendered page detection for sites like docs.rs
- Add chromedp dependency for headless browser support
- Log fetch method on server startup

Frontend:
- Store tool results in structured ToolCall.result field instead of message content
- Show tool results collapsed by default in ToolCallDisplay
- Add expandable results section with truncation for large outputs
- Add Message.hidden flag for internal messages (tool context)
- Separate visibleMessages (UI) from allMessages (API) to fix infinite loop
- Fix tool result messages not being sent to model

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 23:52:57 +01:00
f5fa9121f4 feat: improve tool calling UI/UX
ToolCallDisplay improvements:
- Tool-specific icons and gradient colors (location, search, fetch, time, calc)
- Human-readable argument formatting instead of raw JSON
- Collapsible details with expand/collapse animation
- Contextual summaries (e.g., "Searching: query")

New ToolResultDisplay component:
- Beautiful location results with city/country display
- Web search results as clickable cards with ranks
- Error states with distinct red styling
- Automatic JSON detection and formatting

MessageContent improvements:
- Detect and parse tool results in message content
- Hide redundant "Called tool:" text (shown via ToolCallDisplay)
- Clean separation of text, code, and tool results

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 21:09:40 +01:00
6013191376 feat: add system prompts, custom tools, theme toggle, and tool display
Major features implemented:
- System prompt management (/prompts route)
  - Create, edit, delete prompt templates
  - Set default and active prompts
  - Prompts stored in IndexedDB (v3 migration)
  - Injected into chat as system messages

- Custom tool creation (ToolEditor)
  - Create tools with JavaScript or HTTP implementations
  - Execute user-defined tools during chat
  - Tool call display in messages (ToolCallDisplay.svelte)

- Theme toggle
  - Light/dark mode switch in Settings
  - Theme persistence to localStorage
  - Flash prevention on page load

- Bug fixes
  - Disable USE_FUNCTION_MODEL (was routing all to functiongemma)
  - Add ready() promise to prompts store for async loading
  - Fix ToolEditor syntax error (extra script tag)

Files created:
- src/lib/storage/prompts.ts
- src/lib/stores/prompts.svelte.ts
- src/routes/prompts/+page.svelte
- src/lib/components/tools/ToolEditor.svelte
- src/lib/components/chat/ToolCallDisplay.svelte

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31 19:31:15 +01:00