Overview

GECX Chat SDK
Showcase

A framework-neutral TypeScript SDK for building custom chat experiences. Own the UI; GECX Chat SDK handles runtime, streaming, tools, auth, and transport.

v0.1.0-prototypeTypeScriptReact Adapter

Guided Wow Tour

A choreographed three-minute proof path across runtime, tools, diagnostics, and handoff

</>

Agent Builder

Generate an agent-ready integration packet with code, prompt, and safety checks

Scenario Workbench

Select mock catalog scenarios, tune latency, run A2UI/tool/error flows, and export agent packets

Streaming Text

Real-time token-by-token delivery with delta consolidation

🎨

Rich Content

Product carousels, order summaries, citations, and custom payloads

Generative UI

A clear A2UI runbook with catalog preflight, frame inspector, generated surface, and action log

🔧

Client Tools

Schema-validated tool execution with approval flows and timeouts

🔄

Agent Handoff

Seamless transfer to live agents with queue tracking

📎

File Upload

Validated file uploads with progress tracking

📊

Diagnostics

Debug bundles, trace timelines, and redacted configs

Product Analytics

Journey metrics for impressions, chip CTR, approvals, handoff, CSAT, and resolution

👤

Identity & Sessions

Guest identities, auth upgrades, cross-tab sync, and conversation continuity

🛡️

Data Governance

Conversation export, deletion, forget-me, consent, TTL, and audit events

🌐

Computer Use

Sandboxed agent that browses, clicks, and fills forms with consent and live screenshot stream

Coolaid Stand Proof

Branded storefront with chat concierge, A2UI flavor tuner, approvals, and runtime proof at port 3001

Applied AI Retail Proof

Premium end-to-end retail journey inside chat with SDK Inspector and Connect GECX at port 3002

Proxy Reference

Server-side token, stream, upload, tools, export, delete, and forget-me reference at port 8080

Quick Start

import { tokenEndpointAuth } from 'gecx-chat';
import { useChatSession, MessagePart } from 'gecx-chat/react';

function SupportChat() {
  const chat = useChatSession({
    config: {
      auth: tokenEndpointAuth({ endpoint: '/api/gecx-chat-token' }),
      storage: { mode: 'session', consent: 'functional' },
    },
  });

  return (
    <section aria-label="Support chat">
      <ol aria-live="polite">
        {chat.messages.map((msg) => (
          <li key={msg.id} data-role={msg.role}>
            {msg.parts.map((part) => <MessagePart key={part.id} part={part} />)}
          </li>
        ))}
      </ol>
      <form onSubmit={(e) => { e.preventDefault(); chat.sendText(chat.input.value); chat.input.clear(); }}>
        <input
          value={chat.input.value}
          onChange={(e) => chat.input.set(e.currentTarget.value)}
          disabled={!chat.canSend}
          aria-label="Message"
        />
        <button type="submit" disabled={!chat.canSend}>Send</button>
      </form>
    </section>
  );
}

Architecture

Your UI
React, Vue, Angular...
React Adapter
useChatSession
SDK Core
ChatClient + Session
Transport
Mock / Proxy / future live
GECX Backend
Validated backend contract
Auth
Token management
Tools
Client-side execution
Storage
Session persistence
Diagnostics
Traces + debug bundles
Analytics
Journey metrics
Rich Content
Schema + registry