Skip to Content
TestingWidget Voice Iterate (preview)

Widget Voice Iterate (preview)

Repositório contém Web Component embeddable que captura instrução digitada ou transcrita pelo navegador, envia a app OpenFactory owned e faz poll do ticket de repair resultante. Integração é só preview.

Origem do pacote está em tools/voice-iterate no monorepo OpenFactory. Não assuma que @openfactory/voice-iterate ou bundle CDN está publicado publicamente; construa e fixe artefato revisado do repositório até release estar explicitamente listada no registry de pacotes.

Limite atual

Endpoint aceita instrução para app com origem Git e despacha workflow de repair compartilhado. Stage 0 altera cópia sandbox deployada e pode redeployar preview. Não garante que mudança seja commitada no repositório upstream. Ticket marcado done prova só resultado registrado da tarefa de agent; revise result e verifique app você mesmo.

Serviço permite no máximo duas iterações in-flight por app. Pedidos adicionais retornam 429 até ticket atingir estado terminal.

Pré-requisitos

  • App OpenFactory owned com source.git_url.
  • Conta real; sessões guest não podem despachar edições autônomas de código.
  • Chave de conta of_mcp_ mantida em servidor, nunca em JavaScript de navegador.
  • HTTPS ou origem de desenvolvimento localhost se input de microfone for usado.

Construir widget a partir da origem

A partir do monorepo:

cd tools/voice-iterate npm ci npm test npm run lint npm run build

Vendor bundle versionado resultante ou instale de registry controlado próprio. Registre commit de origem e checksum usados pelo aplicativo.

Usar proxy same-origin

Widget voltado ao navegador chama:

POST {endpoint}/iterate GET {endpoint}/agent-status GET {endpoint}/agent-status?thread_id={thread_id}

Seu servidor deve fixar app ID alvo e encaminhar pedidos para:

POST https://console.openfactory.tech/api/apps/{APP_ID}/iterate GET https://console.openfactory.tech/api/apps/{APP_ID}/agent-status

Anexe Authorization: Bearer <of_mcp_key> só no servidor. Autentique e rate-limit usuários do proxy; caso contrário todo visitante que alcançar rota pode gastar autoridade da conta em mudanças no app fixado. Permita só três paths e dois methods acima, aplique limites de tamanho de pedido e não encaminhe headers ou app IDs arbitrários.

Monte módulo construído localmente com endpoint proxy:

import { createVoiceIterate } from './vendor/openfactory-voice-iterate/index.mjs'; const widget = createVoiceIterate({ appId: '550e8400-e29b-41d4-a716-446655440000', endpoint: '/api/voice-iterate', fallback: 'text', onStatusChange: ({ status, thread }) => { console.log(status, thread.taskResult); }, });

Custom element e estilos rodam em Shadow DOM. Fallback de texto default permanece utilizável quando reconhecimento de fala do navegador está indisponível. Serviços de fala do navegador e comportamento de privacidade variam por navegador e deployment; obtenha consentimento e teste conjunto exato de navegadores suportados. OpenFactory recebe texto resultante neste caminho, enquanto navegador ou serviço de fala configurado pode processar áudio separadamente.

Teste de aceitação

  1. Envie mudança inofensiva e reversível contra app não produção.
  2. Confirme que proxy não pode mirar outro app e rejeita callers não autenticados.
  3. Observe queued/working até estado terminal done, failed, lost ou stale.
  4. Inspecione task result e preview manualmente.
  5. Confirme que repositório Git upstream está inalterado salvo workflow separado revisado de persistência de origem reportar commit ou pull request.
  6. Reverta ou reconstrua sandbox a partir da origem canônica.

Veja Agent prompt-to-app e App deployment para mesmos limites de persistência e promoção.