Skip to Content
TestingVoice Iterate Widget (Preview)

Voice Iterate Widget (Preview)

Das Repository enthält eine embeddable Web Component, die typed oder browser-transcribed instruction erfasst, an owned OpenFactory app submitted und resulting repair ticket pollt. Die Integration ist preview-only.

Der Package-Source liegt in tools/voice-iterate im OpenFactory monorepo. Gehen Sie nicht davon aus, @openfactory/voice-iterate oder sein CDN bundle ist publicly published; bauen und pinnen Sie reviewed artifact aus dem Repository, bis release explizit in package registry gelistet ist.

Aktuelle Grenze

Der Endpoint akzeptiert instruction für app mit Git source und dispatched shared repair workflow. Stage 0 ändert deployed sandbox copy und kann preview redeployen. Er garantiert nicht, dass change committed zum upstream repository ist. Ticket marked done beweist nur recorded agent task outcome; result reviewen und app selbst verifizieren.

Der Service erlaubt höchstens two in-flight iterations per app. Additional requests return 429 until ticket reaches terminal state.

Voraussetzungen

  • Owned OpenFactory app mit source.git_url.
  • Real account; guest sessions können keine autonomous code edits dispatchen.
  • of_mcp_ account key auf server, never in browser JavaScript.
  • HTTPS oder localhost development origin wenn microphone input genutzt wird.

Widget aus Source bauen

Aus dem Monorepo:

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

Resulting versioned bundle vendoren oder aus own controlled registry installieren. Source commit und checksum dokumentieren, die Ihre application nutzt.

Same-origin proxy nutzen

Das browser-facing widget ruft auf:

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

Ihr Server soll target app ID pinnen und diese requests forwarden an:

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

Authorization: Bearer <of_mcp_key> nur auf server attachieren. Eigene proxy users authentifizieren und rate-limiten; sonst kann jeder visitor, der route erreicht, Ihrer account authority auf changes an pinned app ausgeben. Nur die three paths und two methods oben erlauben, request-size limits enforce, keine arbitrary headers oder app IDs forwarden.

Lokal gebautes module mit proxy endpoint mounten:

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 und styles laufen in Shadow DOM. Default text fallback bleibt usable wenn browser speech recognition unavailable ist. Browser speech services und privacy behavior variieren by browser und deployment; consent einholen und exact supported browser set testen. OpenFactory erhält resulting text on this path, während browser oder configured speech service audio separately verarbeiten kann.

Abnahmetest

  1. Harmless, reversible change gegen non-production app submiten.
  2. Bestätigen, proxy cannot target any other app und rejects unauthenticated callers.
  3. queued/working bis terminal done, failed, lost oder stale state beobachten.
  4. Task result und preview manually inspizieren.
  5. Bestätigen upstream Git repository unchanged, unless separate reviewed source-persistence workflow commit oder pull request meldet.
  6. Sandbox aus canonical source revertieren oder rebuilden.

Siehe Prompt-to-app agent und App deployment für dieselben persistence und promotion boundaries.