Voice Iterate Widget (aperçu)
Le dépôt contient Web Component intégrable capturant instruction saisie ou transcrite navigateur, la soumet à app OpenFactory possédée et interroge ticket repair résultant. Intégration aperçu uniquement.
Source package est dans tools/voice-iterate monorepo OpenFactory. Ne supposez pas @openfactory/voice-iterate ou bundle CDN publié ; build et épinglez artefact revu depuis dépôt jusqu’à release listée explicitement registre package.
Frontière actuelle
Endpoint accepte instruction pour app avec source Git et dispatch workflow repair partagé. Stage 0 modifie copie sandbox déployée et peut redeployer preview. Il ne garantit pas commit amont. Ticket marqué done prouve seulement résultat tâche agent enregistré ; relisez résultat et vérifiez app vous-même.
Service autorise au plus deux itérations en vol par app. Requêtes additionnelles renvoient 429 jusqu’à état terminal ticket.
Prérequis
- App OpenFactory possédée avec
source.git_url. - Compte réel ; sessions invité ne peuvent pas dispatcher edits code autonomes.
- Clé compte
of_mcp_gardée serveur, jamais JavaScript navigateur. - HTTPS ou origine dev localhost si entrée micro utilisée.
Build widget depuis source
Depuis monorepo :
cd tools/voice-iterate
npm ci
npm test
npm run lint
npm run buildIntégrez bundle versionné ou installez depuis registre contrôlé. Enregistrez commit source et checksum utilisés par application.
Utiliser proxy same-origin
Widget côté navigateur appelle :
POST {endpoint}/iterate
GET {endpoint}/agent-status
GET {endpoint}/agent-status?thread_id={thread_id}Serveur doit épingler ID app cible et transférer vers :
POST https://console.openfactory.tech/api/apps/{APP_ID}/iterate
GET https://console.openfactory.tech/api/apps/{APP_ID}/agent-statusAttachez Authorization: Bearer <of_mcp_key> seulement serveur. Authentifiez et limitez débit vos utilisateurs proxy ; sinon visiteur joignant route peut dépenser autorité compte sur changements app épinglée. Autorisez seulement trois chemins et deux méthodes ci-dessus, imposez limites taille requête, ne transférez pas en-têtes ou ID app arbitraires.
Montez module build localement avec 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);
},
});Élément custom et styles tournent Shadow DOM. Repli texte par défaut reste utilisable quand reconnaissance vocale navigateur indisponible. Services speech navigateur et confidentialité varient ; obtenez consentement et testez navigateurs supportés exacts. OpenFactory reçoit texte résultant sur ce chemin, tandis que navigateur ou service speech configuré peut traiter audio séparément.
Test d’acceptation
- Soumettez changement inoffensif réversible contre app non production.
- Confirmez proxy ne cible aucune autre app et rejette appelants non authentifiés.
- Observez
queued/workingjusqu’à état terminaldone,failed,lostoustale. - Inspectez résultat tâche et preview manuellement.
- Confirmez dépôt Git amont inchangé sauf workflow persistance source revu séparé rapportant commit ou pull request.
- Revenez ou rebuild sandbox depuis source canonique.
Voir Agent prompt-to-app et Déploiement app pour mêmes frontières persistance et promotion.