Commit graph

9 commits

Author SHA1 Message Date
Leivur Djurhuus
aa0bcc91d9 feat: add relevanceScore to EntityCard and update entity extraction logic 2026-03-12 17:27:11 -05:00
Leivur Djurhuus
438b330b97 feat: add entity card extraction and display in chat panel
- Implemented entity card extraction from tool results in the chat API.
- Added new EntityCard interface to define the structure of entity cards.
- Enhanced chat panel to display navigable entity cards for projects, deliverables, and users.
- Introduced status color helper for better visual representation of entity statuses.
- Updated chat message structure to include extracted entities.
- Improved chat formatting guidelines to avoid markdown tables and utilize bullet points.
- Added Tailwind Typography plugin for improved text styling in the application.
2026-03-12 16:36:44 -05:00
Leivur Djurhuus
78240d6d3f refactor: Remove Ollama LLM fallback from chat provider
Ollama can't use tools so it was never useful as a chat fallback — it
just caused confusing "both providers unavailable" errors. The chat
now uses Claude exclusively with clear error messages on failure.

- Remove chatWithOllama(), checkOllamaHealth()
- Simplify chat() to call Claude directly
- Remove Ollama UI indicators and "Limited mode" warning
- Clean up provider types (remove "ollama" union member)

Note: Ollama is still used for embedding generation (nomic-embed-text)
via the embedding service — only the LLM chat fallback is removed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:32:11 -05:00
Leivur Djurhuus
7c70c3aba3 feat: Use pgvector semantic search in chat search_entities tool
Replace word-level text matching with pgvector cosine similarity search
for projects and deliverables. The search query is embedded via Ollama's
nomic-embed-text model and compared against stored 768-dim vectors, so
natural language queries like "manx beetroot mauve" match "[BPS] ManxR2 -
Beetroot Mauve" through semantic proximity.

- Primary: pgvector cosine similarity (projects + deliverables)
- Fallback: word-level text search when Ollama is unavailable
- Users: text search only (no embedding column on users table)
- Results filtered by relevance score > 0.3, sorted by similarity
- Stage details fetched for top deliverable matches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:25:41 -05:00
Leivur Djurhuus
92cb9567de feat: Overhaul AI chat with SSE streaming, fuzzy search, and clickable suggestions
- Add SSE streaming to chat API so users see real-time tool call progress
  instead of waiting for the full response
- Enrich system prompt with full data model, pipeline stages, enums, and
  domain knowledge so Claude makes fewer errors
- Implement word-level fuzzy search in search_entities — splits queries into
  individual terms and scores results by match count, so "manx beetroot mauve"
  finds "[BPS] ManxR2 - Beetroot Mauve"
- Add clickable entity suggestion chips when search returns multiple candidates,
  eliminating the need to retype exact names
- Move page context from fake conversation turns into the system prompt param
- Preserve structured content blocks (tool_use/tool_result) in client-side
  message history for proper multi-turn context
- Remove dryRun confirmation pattern — mutations execute directly
- Increase Claude API timeout from 30s to 60s and max tool iterations from 5 to 10
- Show Ollama fallback warning ("Limited mode — no tool access") in UI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:21:45 -05:00
Leivur Djurhuus
8c95d4befe feat: Enhance chat message handling to support structured content blocks for tool interactions 2026-03-12 14:49:50 -05:00
Leivur Djurhuus
94c43af318 feat: Enhance chat functionality with project and deliverable context integration 2026-03-12 14:44:06 -05:00
Leivur Djurhuus
3a0bd22d0d feat: Implement Assign Artist functionality with user assignment management 2026-03-12 14:34:47 -05:00
Leivur Djurhuus
e5b398d7da feat: Implement automation event bus and rule engine
- Add event bus for dispatching automation events with handlers.
- Create rule engine to evaluate events against defined triggers.
- Introduce chat provider to interface with Claude API and Ollama fallback.
- Define tool schemas for Claude-compatible operations.
- Implement tool executor to map tool calls to service layer functions.
- Develop automation service for CRUD operations on rules and event handling.
2026-03-12 11:20:21 -05:00