Pular para o conteúdo
OrbZReferência da APIExports do pacote

Exportações do pacote

O Orbz separa o acesso puro à API, o registro protegido para navegador e o bundle independente para navegador. Todos os frameworks renderizam o elemento nativo <orb-z>.

Mapa de pontos de entrada

ImportaçãoDisponibilizaEfeito colateral
@neongate-ai/orbzElemento nativo, tipos do runtime de conversa, constantes, predefinições, funções de normalização, orbzElementClassFactory() e defineOrbz()Não registra a tag
@neongate-ai/orbz/browserTudo que a entrada principal disponibilizaChama defineOrbz()
@neongate-ai/orbz/react-typesExtensão opcional dos tipos JSX do React para a tag nativa <orb-z>Nenhum
@neongate-ai/orbz/standaloneBuild independente para navegador da entrada de navegadorChama defineOrbz()
@neongate-ai/orbz/index.cssA mesma folha de estilos de origem incorporada à raiz shadow fechadaNenhum
@neongate-ai/orbz/package.jsonMetadados do pacote publicadoNenhum

Os pontos de entrada de navegador e standalone são marcados no manifesto do pacote como tendo efeitos colaterais, para que os empacotadores preservem a chamada de registro.

react-types não contém um componente React nem um adaptador de runtime. Importe-o apenas em projetos TypeScript de React ou Next.js que precisem reconhecer <orb-z> no JSX.

Entrada principal

Use a entrada principal para registro explícito e tipos de domínio reutilizáveis:

import { DEFAULT_ORBZ_PRESET, defineOrbz, ORBZ_PRESETS, ORBZ_STATES, type OrbzElement, type OrbzPresetName, type OrbzState, } from "@neongate-ai/orbz"; defineOrbz(); const nextState: OrbzState = "listening"; const preset: OrbzPresetName = DEFAULT_ORBZ_PRESET; const colors = ORBZ_PRESETS[preset]; const orb = document.querySelector<OrbzElement>("orb-z"); if (orb) orb.state = nextState;

Importar apenas o módulo principal nunca registra orb-z. Chame defineOrbz() ou importe /browser quando a página precisar ativar a implementação da tag.

Constantes

ExportaçãoSignificado
ORBZ_TAG_NAMEA string "orb-z"
ORBZ_OBSERVED_ATTRIBUTESNomes dos atributos nativos reativos
ORBZ_STATESTodos os estados do assistente compatíveis
ORBZ_REDUCED_MOTION_MODESsystem, always e never
ORBZ_PRESET_NAMESSeis nomes canônicos de predefinições, começando por neongate
ORBZ_PRESETSValores de cor imutáveis para cada predefinição canônica; mantém um alias derivado da conta, obsoleto e não enumerável
ORBZ_COLOR_ATTRIBUTESMapa das chaves de cor para os nomes de atributos nativos
ORBZ_COLOR_KEYSAs cinco chaves de cor
DEFAULT_ORBZ_STATEidle
DEFAULT_ORBZ_SIZE16rem
DEFAULT_ORBZ_SPEED1
DEFAULT_ORBZ_REDUCED_MOTIONsystem
DEFAULT_ORBZ_PRESETneongate; veja nomes das predefinições
DEFAULT_ORBZ_COLORSAs cores da predefinição Neongate
configNamespace imutável que expõe as constantes do pacote, incluindo config.ORBZ_STATES
talkObjeto vazio congelado de compatibilidade ({}); defina as etapas no host
DEFAULT_TALK_FLOWArray vazio congelado ([]); sem saudação, persona ou conversa integrada

Os arrays e registros de predefinições ajudam a gerar controles validados sem copiar os valores aceitos pelo pacote.

import { DEFAULT_ORBZ_PRESET, ORBZ_PRESET_NAMES, ORBZ_STATES } from "@neongate-ai/orbz"; for (const state of ORBZ_STATES) { stateSelect.add(new Option(state, state)); } for (const preset of ORBZ_PRESET_NAMES) { const label = preset === DEFAULT_ORBZ_PRESET ? "Neongate" : preset; presetSelect.add(new Option(label, preset)); }

Tipos

ExportaçãoEstrutura
OrbzStateUnião dos cinco nomes de estado
OrbzReducedMotion"system" | "always" | "never"
OrbzPresetNameUnião dos seis nomes canônicos e de um alias de entrada obsoleto derivado da conta
OrbzSizenumber | string
OrbzColorsStrings obrigatórias primary, secondary, accent, highlight e background
OrbzColorOverridesOrbzColors parcial
OrbzBaseOptionsOpções de estado, tamanho, velocidade, pausa, elevação e movimento reduzido
OrbzPresetOptionsModo de predefinição; as chaves de cores personalizadas são never
OrbzCustomColorOptionsModo de cores personalizadas; preset é never
OrbzColorSelectionUnião dos modos de predefinição e de cores personalizadas
OrbzOptionsOpções básicas combinadas com a união de seleção de cores
OrbzElementPropriedades do elemento nativo e métodos de reprodução
OrbzElementConstructorConstrutor tipado do elemento personalizado
OrbzTalkStepEtapa tipada de conversa determinística ou apoiada por inteligência
OrbzTalkContextValores em memória capturados pelo executor de conversa
OrbzVoiceOptionsConfiguração opcional do mecanismo de voz, fluxo de conversa e inteligência
OrbzVoiceEnginePortContrato para a saída de voz fornecida pelo implementador
OrbzIntelligencePortContrato para respostas opcionais não determinísticas
WebSpeechAdapterOptionsOpções de localidade, preferência de voz, velocidade, tom, volume e carregamento de vozes
OpenAISpeechAdapterOptionsOpções de endpoint seguro, modelo de fala da OpenAI, voz, instruções e formato

Adaptadores de fala

ExportaçãoFinalidade
WebSpeechAdapterSíntese de fala do navegador com seleção explícita de localidade e voz
OpenAISpeechAdapterFala com qualidade OpenAI por meio de um endpoint seguro controlado pelo implementador

OpenAISpeechAdapter usa gpt-4o-mini-tts, marin e MP3 por padrão. A chave da API da OpenAI permanece no endpoint e nunca é incluída no código do navegador.

Validadores e normalizadores

ExportaçãoFinalidade
isOrbzState()Guarda de tipo para um estado compatível
isOrbzPresetName()Guarda de tipo que aceita nomes canônicos e um alias obsoleto derivado da conta
isOrbzReducedMotion()Guarda de tipo para um valor de movimento reduzido
normalizeOrbzState()Entradas incompatíveis tornam-se idle
normalizeOrbzPreset()Normaliza uma entrada obsoleta derivada da conta para neongate; entradas incompatíveis tornam-se DEFAULT_ORBZ_PRESET
normalizeOrbzReducedMotion()Entradas incompatíveis tornam-se system
normalizeOrbzSize()Números tornam-se pixels; entradas numéricas inválidas ou vazias tornam-se 16rem
normalizeOrbzSpeed()Entradas não positivas ou não finitas tornam-se 1
mergeOrbzColors()Aplica substituições válidas e não vazias sobre um conjunto básico de cores

Normalize configurações não confiáveis antes de armazená-las:

import { normalizeOrbzPreset, normalizeOrbzSpeed, normalizeOrbzState, } from "@neongate-ai/orbz"; const config = { preset: normalizeOrbzPreset(payload.preset), speed: normalizeOrbzSpeed(payload.speed), state: normalizeOrbzState(payload.state), };

Funções de registro

defineOrbz() é a API habitual de registro explícito. É segura para SSR e idempotente:

import { defineOrbz } from "@neongate-ai/orbz"; const constructor = defineOrbz();

orbzElementClassFactory() cria e mantém a classe em cache somente quando globalThis.HTMLElement existe. Ela é exportada para integrações avançadas; a maioria das aplicações deve chamar defineOrbz().

import { orbzElementClassFactory } from '@neongate-ai/orbz' const constructor = orbzElementClassFactory() // undefined on a server; an OrbzElementConstructor in a browser

As duas funções evitam avaliar uma subclasse de HTMLElement quando o DOM não está disponível.

Última atualização em