Voice Iterate-widget (preview)
Repot innehåller en inbäddbar Web Component som tar emot en skriven eller i webbläsaren transkriberad instruktion, skickar den till en OpenFactory-app som du äger och pollar det resulterande repair ticket. Integrationen är endast preview.
Paketkällan ligger i tools/voice-iterate i OpenFactory-monorepot. Anta inte att
@openfactory/voice-iterate eller dess CDN bundle är publicerat offentligt; bygg och
pinna en granskad artifact från repot tills en release uttryckligen listas i
package registry.
Nuvarande gräns
Endpointen tar emot en instruktion för en app med Git-källa och startar det delade repair
workflow. Stage 0 ändrar den deployade sandbox-kopian och kan deploya om preview.
Det garanterar inte att ändringen committas till upstream repository. Ett ticket märkt
done visar bara det registrerade agent task outcome; granska resultatet och verifiera
appen själv.
Tjänsten tillåter högst två pågående iterationer per app. Ytterligare förfrågningar
returnerar 429 tills ett ticket når terminal state.
Förutsättningar
- En OpenFactory-app som du äger med
source.git_url. - Ett riktigt konto; guest sessions kan inte starta autonoma kodändringar.
- En
of_mcp_account key på en server, aldrig i browser JavaScript. - HTTPS eller localhost development origin om mikrofon används.
Bygg widgeten från källkod
Från monorepot:
cd tools/voice-iterate
npm ci
npm test
npm run lint
npm run buildVendora den versioned bundle som byggs eller installera den från ett eget kontrollerat registry. Notera source commit och checksum som din applikation använder.
Använd en same-origin-proxy
Widgeten i webbläsaren anropar:
POST {endpoint}/iterate
GET {endpoint}/agent-status
GET {endpoint}/agent-status?thread_id={thread_id}Servern ska pinna mål-app-ID och vidarebefordra dessa anrop till:
POST https://console.openfactory.tech/api/apps/{APP_ID}/iterate
GET https://console.openfactory.tech/api/apps/{APP_ID}/agent-statusBifoga Authorization: Bearer <of_mcp_key> endast på servern. Autentisera och
rate-limit dina egna proxyanvändare; annars kan varje besökare som når rutten
använda ditt kontos authority för ändringar i den pinnade appen. Tillåt bara de
tre sökvägarna och två metoderna ovan, begränsa request-storlek och vidarebefordra
inte godtyckliga headers eller app-ID.
Montera den lokalt byggda modulen med proxy-endpoint:
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 och dess styles körs i Shadow DOM. Standard text fallback fungerar fortfarande när browser speech recognition saknas. Browser speech services och integritetsskydd varierar mellan webbläsare och deployment; inhämta samtycke och testa exakt vilka webbläsare som stöds. OpenFactory får den resulterande texten på denna väg, medan webbläsaren eller en konfigurerad speech service kan behandla ljud separat.
Acceptanstest
- Skicka en harmlös, reversibel ändring mot en non-production-app.
- Bekräfta att proxyn inte kan rikta in någon annan app och avvisar oautentiserade callers.
- Följ
queued/workingtill terminaldone,failed,lostellerstalestate. - Granska task result och preview manuellt.
- Bekräfta att upstream Git repository är oförändrat om inte ett separat, granskat source-persistence workflow rapporterar commit eller pull request.
- Återställ eller bygg om sandbox från den kanoniska källan.
Se Promptassisterad appdistribution och Appdistribution för samma persistence- och promotionsgränser.