Type Alias RealtimeDiagnosticExperimental

RealtimeDiagnostic: {
    detail?: Record<string, number | string>;
    kind: "progress";
    phase: string;
} | {
    detail?: Record<string, number | string>;
    kind: "warning";
    message: string;
} | {
    kind: "failure";
    message: string;
    observed?: Record<string, number | string>;
}

A structured progress or failure report from an extension.

NOT protocol-shaped, on purpose. Useful progress for one model is "world building, 40%" and for another "3 of 4 TURN servers answered"; a phase plus a free-form detail bag carries both, where an ICE-shaped schema would carry only one.

The rule that matters here is cultural rather than typed: a failure reports what was OBSERVED, never what was inferred. A speculative diagnostic is worse than none, because it gets believed: a message naming symmetric NAT or blocked UDP sends whoever reads it into the network, and the cause of a connection that gathered no relay candidate is at least as often a credential or a misconfigured server. Report the counts and the errors; let the reader conclude.

The fal.realtime.open() extension API is experimental and may change in a minor release.

Type declaration

  • Experimentalkind: "failure"
  • Experimentalmessage: string
  • Optional Experimentalobserved?: Record<string, number | string>

    What was measured. Counts, codes, per-server errors — not conclusions.