Voice Iterate Widget (Preview)
Depozitul conține o Web Component încorporabilă care capturează o instrucțiune tastată sau transcrisă în browser, o trimite către o aplicație OpenFactory deținută de dvs. și interoghează periodic ticketul de repair rezultat. Integrarea este doar în preview.
Sursa pachetului este în tools/voice-iterate din monorepo-ul OpenFactory. Nu
presupuneți că @openfactory/voice-iterate sau bundle-ul său CDN este publicat public;
construiți și fixați un artefact revizuit din depozit până când o versiune este
listată explicit în registrul de pachete.
Limita actuală
Endpointul acceptă o instrucțiune pentru o aplicație cu sursă Git și lansează
workflow-ul partajat de repair. Stage 0 modifică copia sandbox implementată și poate
reimplementa acel preview. Nu garantează că modificarea este commitată în
depozitul upstream. Un ticket marcat done dovedește doar rezultatul înregistrat al
sarcinii agentului; revizuiți rezultatul și verificați aplicația personal.
Serviciul permite cel mult două iterări în curs per aplicație. Cererile
suplimentare returnează 429 până când un ticket atinge o stare terminală.
Cerințe prealabile
- O aplicație OpenFactory deținută cu
source.git_url. - Cont real; sesiunile guest nu pot declanșa editări autonome de cod.
- Cheie de cont
of_mcp_păstrată pe server, niciodată în JavaScriptul browserului. - HTTPS sau origin de dezvoltare localhost dacă folosiți intrarea de la microfon.
Construirea widgetului din sursă
Din monorepo:
cd tools/voice-iterate
npm ci
npm test
npm run lint
npm run buildIncludeți bundle-ul versionat rezultat sau instalați-l din propriul registru controlat. Notați commitul sursă și checksum-ul folosit de aplicația dvs.
Proxy cu același origin
Widgetul accesat din browser apelează:
POST {endpoint}/iterate
GET {endpoint}/agent-status
GET {endpoint}/agent-status?thread_id={thread_id}Serverul dvs. ar trebui să fixeze ID-ul aplicației țintă și să redirecționeze aceste cereri către:
POST https://console.openfactory.tech/api/apps/{APP_ID}/iterate
GET https://console.openfactory.tech/api/apps/{APP_ID}/agent-statusAtașați Authorization: Bearer <of_mcp_key> doar pe server. Autentificați
și limitați rata utilizatorilor propriului proxy; altfel, orice vizitator care poate
ajunge la route poate cheltui autoritatea contului dvs. pentru modificări ale aplicației fixate. Permiteți
doar cele trei căi și cele două metode de mai sus, impuneți limite de dimensiune a cererii și
nu redirecționați antete arbitrare sau ID-uri de aplicație.
Montați modulul construit local cu endpointul 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);
},
});Elementul personalizat și stilurile sale rulează într-un Shadow DOM. Fallback-ul text implicit rămâne utilizabil când recunoașterea vocală din browser nu este disponibilă. Serviciile de vorbire din browser și comportamentul de confidențialitate variază după browser și implementare; obțineți consimțământ și testați setul exact de browsere suportate. OpenFactory primește textul rezultat pe această cale, în timp ce browserul sau un serviciu de vorbire configurat poate procesa audio separat.
Test de acceptare
- Trimiteți o modificare inofensivă, reversibilă împotriva unei aplicații non-producție.
- Confirmați că proxy-ul nu poate ținti altă aplicație și respinge apelanții neautentificați.
- Observați
queued/workingpână la o stare terminalădone,failed,lostsaustale. - Inspectați manual rezultatul sarcinii și preview-ul.
- Confirmați că depozitul Git upstream este neschimbat, dacă un workflow separat, revizuit de persistență a sursei nu raportează un commit sau pull request.
- Reveniți sandbox-ul sau reconstruiți-l din sursa canonică.
Consultați Prompt-to-app agent și App deployment pentru aceleași limite de persistență și promovare.