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>; } Type declaration
Experimentalkind: "failure"
Experimentalmessage: string
Optional Experimentalobserved?: 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
phaseplus a free-formdetailbag carries both, where an ICE-shaped schema would carry only one.The rule that matters here is cultural rather than typed: a
failurereports 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.