JSPM

co-aqua-chat-interface

0.1.3
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 233
    • Score
      100M100P100Q64871F
    • License MIT

    Dependency-free chat interface component for web applications and IDE integrations with streaming support and external agent connectivity.

    Package Exports

    • co-aqua-chat-interface
    • co-aqua-chat-interface/styles

    Readme

    co-aqua-chat-interface

    A dependency-free, vanilla JavaScript chat interface component inspired by the VS Code / Copilot UX. Available as an npm package, the component provides a deterministic, accessible, and easily embeddable chat experience for web applications, browser-based IDEs, and extensions.

    Features

    • 🎨 Modern UI - Clean, accessible chat interface with thinking indicators and tool visualization
    • 🔌 External Agent Integration - Control surface for connecting to Strands Agents, OpenAI, Anthropic, and custom backends
    • 📡 Multi-Protocol Support - WebSocket, SSE (Server-Sent Events), and HTTP modes
    • 🔄 Streaming - Real-time streaming for assistant responses, reasoning, and tool outputs
    • 💾 Session Management - Create, switch, archive, and delete conversations
    • 🎯 Zero Dependencies - Pure vanilla JavaScript, no framework required

    Control Surface for External Agents

    This library includes a complete control surface for bi-directional communication with external agent backends:

    • BackendBridge - WebSocket/SSE/HTTP communication layer with reconnection
    • UiBindings - Automatic UI event emission and backend event handling
    • Event Schemas - Structured UiEvent and BackendEvent types
    • Graceful Degradation - UI works with or without backend connectivity

    📖 See CONTROL_SURFACE.md for complete documentation, including:

    • Quick start examples
    • Event schemas and API reference
    • Backend integration guides (Strands, OpenAI, Anthropic)
    • FastAPI and Node.js backend examples
    • Streaming modes and session management

    Planning References

    • Product definition: plans/product-definition.md
    • Architecture: plans/architecture.md
    • User stories: plans/user-stories.md
    • Development plan: plans/dev-plan.md
    • Control surface: CONTROL_SURFACE.md

    Getting Started

    Installation

    npm install co-aqua-chat-interface

    Basic Usage

    import { createChatColumn } from 'co-aqua-chat-interface';
    import 'co-aqua-chat-interface/styles';
    
    const root = document.getElementById('chat-root');
    const controller = createChatColumn(root, {
      config: { debug: true }
    });
    
    // Create a new session
    const sessionId = controller.createNewSession();
    controller.switchToSession(sessionId);
    
    // Add a message
    controller.appendUserMessage(sessionId, "Hello!");

    With External Agent Backend

    import { 
      createChatColumn, 
      createBackendBridge, 
      createUiBindings,
      createEventBus 
    } from 'co-aqua-chat-interface';
    import 'co-aqua-chat-interface/styles';
    
    // Create chat column
    const controller = createChatColumn(root);
    const eventBus = createEventBus({ dev: true });
    
    // Connect to backend
    const bridge = createBackendBridge({
      connection: {
        mode: 'websocket',
        url: 'ws://localhost:8000/ws'
      },
      eventBus
    });
    
    // Create UI bindings
    const bindings = createUiBindings({
      controller,
      eventBus,
      backendBridge: bridge
    });
    
    await bridge.connect();

    See CONTROL_SURFACE.md for complete integration guide.

    Development

    Development tasks follow the detailed plan in plans/dev-plan.md. Initial setup requires Node.js 22 and npm.

    # Install dependencies
    npm install
    
    # Run development server
    npm run dev
    
    # Run tests
    npm test
    
    # Build for production
    npm run build