Voice Iterate Widget (preview)
Repozytorium zawiera osadzalny Web Component, który rejestruje wpisaną lub transkrybowaną w przeglądarce instrukcję, wysyła ją do należącej do Ciebie aplikacji OpenFactory i odpytuje powstały repair ticket. Integracja działa wyłącznie w trybie preview.
Kod pakietu jest w tools/voice-iterate w monorepo OpenFactory. Nie zakładaj, że
@openfactory/voice-iterate lub jego CDN bundle jest publicznie opublikowany; zbuduj
i przypnij sprawdzony artifact z repozytorium, dopóki wydanie nie pojawi się
wyraźnie w rejestrze pakietów.
Obecna granica
Endpoint przyjmuje instrukcję dla aplikacji ze źródłem Git i uruchamia wspólny repair
workflow. Stage 0 zmienia wdrożoną kopię sandbox i może ponownie wdrożyć ten preview.
Nie gwarantuje to, że zmiana trafi do upstream repository. Ticket oznaczony done
potwierdza tylko zapisany agent task outcome; przejrzyj wynik i sam zweryfikuj
aplikację.
Usługa dopuszcza co najwyżej dwie równoległe iteracje na aplikację. Kolejne żądania
zwracają 429, dopóki ticket nie osiągnie terminal state.
Wymagania wstępne
- Należąca do Ciebie aplikacja OpenFactory z
source.git_url. - Prawdziwe konto; guest sessions nie mogą uruchamiać autonomicznych edycji kodu.
- Klucz konta
of_mcp_trzymany na serwerze, nigdy w browser JavaScript. - HTTPS lub localhost development origin, jeśli używasz wejścia z mikrofonu.
Budowa widgetu ze źródła
Z monorepo:
cd tools/voice-iterate
npm ci
npm test
npm run lint
npm run buildDołącz powstały versioned bundle do własnej dystrybucji lub zainstaluj go z kontrolowanego rejestru. Zapisz source commit i checksum używane przez aplikację.
Proxy same-origin
Widget po stronie przeglądarki wywołuje:
POST {endpoint}/iterate
GET {endpoint}/agent-status
GET {endpoint}/agent-status?thread_id={thread_id}Serwer powinien przypiąć docelowe app ID i przekazywać te żądania do:
POST https://console.openfactory.tech/api/apps/{APP_ID}/iterate
GET https://console.openfactory.tech/api/apps/{APP_ID}/agent-statusDołącz Authorization: Bearer <of_mcp_key> tylko na serwerze. Uwierzytelnij i
ogranicz tempo użytkowników proxy; inaczej każdy gość z dostępem do trasy może
wydać uprawnienia Twojego konta na zmiany przypiętej aplikacji. Zezwól tylko na
trzy ścieżki i dwie metody powyżej, wymusz limity rozmiaru żądania i nie
przekazuj dowolnych nagłówków ani app ID.
Podłącz lokalnie zbudowany moduł z endpointem 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 i style działają w Shadow DOM. Domyślny text fallback pozostaje użyteczny, gdy browser speech recognition jest niedostępne. Browser speech services i zachowanie prywatności zależą od przeglądarki i deployment; uzyskaj zgodę i przetestuj dokładnie wspierany zestaw przeglądarek. OpenFactory otrzymuje wynikowy tekst na tej ścieżce, a przeglądarka lub skonfigurowana speech service może przetwarzać audio osobno.
Test akceptacyjny
- Wyślij nieszkodliwą, odwracalną zmianę wobec aplikacji non-production.
- Potwierdź, że proxy nie może wskazać innej aplikacji i odrzuca nieuwierzytelnionych callers.
- Obserwuj
queued/workingaż do terminaldone,failed,lostlubstalestate. - Ręcznie sprawdź task result i preview.
- Potwierdź, że upstream Git repository jest bez zmian, chyba że osobny, sprawdzony source-persistence workflow zgłasza commit lub pull request.
- Cofnij zmiany w sandbox lub odbuduj go z kanonicznego źródła.
Zobacz Wdrażanie aplikacji wspomagane promptem oraz Wdrażanie aplikacji w sprawie tych samych granic persistence i promocji.