Commit Graph

10 Commits

Author SHA1 Message Date
shahondin1624
945dbb9f84 feat: add orchestration state progress indicator
- OrchestrationProgress stepper component with 5 phases
- Visual state: completed (green check), active (blue ring), pending (gray)
- Smooth CSS transitions between states
- Integrated into chat page, visible during streaming

Closes #8

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:33:41 +01:00
shahondin1624
f6eef3a7f6 feat: connect chat UI to gRPC-Web streaming with loading indicator
- Wire processRequest() async generator to chat page
- Progressive message rendering as stream chunks arrive
- Animated loading dots while waiting for first chunk
- Error display with OrchestratorError code mapping
- Session ID management with crypto.randomUUID()

Closes #7

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:29:10 +01:00
shahondin1624
306d0a7f2d feat: add message input with send button and keyboard shortcuts
- MessageInput component with textarea, send button, Enter-to-send
- Shift+Enter for newline, auto-resize textarea
- Disabled state while streaming, auto-focus after send
- Integrated into /chat page with user message handling

Closes #6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:27:34 +01:00
shahondin1624
6df4c396b9 feat: add chat page layout with message list and bubble components
- Create /chat route with scrollable message list
- MessageBubble component with distinct user/assistant styles
- MessageList with auto-scroll-to-bottom on new messages
- Empty state display when no messages
- ChatMessage type definition in src/lib/types.ts
- Add browser globals to ESLint config for Svelte files

Closes #5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:25:08 +01:00
shahondin1624
d011447190 feat: add gRPC-Web client service layer for OrchestratorService
- Create src/lib/services/orchestrator.ts with Connect-Web transport
- Typed processRequest() async generator for server-streaming RPC
- OrchestratorError class mapping gRPC status codes to app errors
- Configurable endpoint with resetTransport() for reconfiguration

Closes #4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:22:15 +01:00
shahondin1624
298a186c31 feat: add Caddyfile for gRPC-Web reverse proxy with CORS support
- Route gRPC-Web requests to Orchestrator via h2c transport
- Handle CORS preflight and response headers for cross-origin access
- Proxy remaining traffic to SvelteKit dev server
- Configurable via env vars: ORCHESTRATOR_HOST, UI_HOST, DOMAIN, CORS_ORIGIN

Closes #3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:19:06 +01:00
shahondin1624
ed1e800e53 docs: mark issue #2 plan as COMPLETED
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:14:23 +01:00
shahondin1624
2516c86002 feat: add proto codegen pipeline with buf and connect-es
- Add llm-multiverse repo as git submodule for proto files
- Configure buf with @bufbuild/protoc-gen-es for TypeScript codegen
- Generate typed Connect service stubs to src/lib/proto/
- Add `generate` npm script for proto regeneration
- Exclude generated proto files from ESLint

Closes #2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:14:11 +01:00
shahondin1624
d85e76cab2 docs: mark issue #1 plan as COMPLETED
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:04:32 +01:00
shahondin1624
978325565d feat: scaffold SvelteKit project with Tailwind, TypeScript, ESLint, Prettier
Initialize the llm-multiverse-ui project with:
- SvelteKit + Svelte 5 (runes mode enabled)
- Tailwind CSS v4 via @tailwindcss/vite plugin
- TypeScript strict mode
- ESLint 9 flat config with svelte and typescript-eslint plugins
- Prettier with svelte plugin
- Directory structure: src/lib/components/, src/lib/services/
- All required scripts: dev, build, preview, lint, format, check

Closes #1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:03:46 +01:00