@omg-dev/app 0.1.324 → 0.1.325

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,27 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { M as n } from "./embedded-BZxhC9Lo.js";
2
+ import { M as n } from "./embedded-B_CV8zzR.js";
3
3
  const t = `# Changelog
4
4
 
5
5
  Recent product updates and deployment notes.
6
6
 
7
+ ## August 9, 2026 - Dictation works on a hosted UI, whatever machine is behind it (v0.1.325)
8
+
9
+ - **Dictation on a hosted UI now uses the host's transcription, not your
10
+ machine's.** The microphone used to stream to whichever machine you had
11
+ connected, and that machine picked a speech provider from its own
12
+ environment. Drive a self-hosted machine from a hosted OMG UI and it
13
+ transcribed on your own ElevenLabs key — or, if you had no key, the mic
14
+ button checked the machine, found nothing, and asked you to configure one.
15
+ A hosted surface can now hand the app its own transcription endpoint, and
16
+ the audio goes there instead. Your machine is no longer in the audio path,
17
+ which also removes a hop from the round trip.
18
+ - **The setup check is skipped when the host supplies transcription.** That
19
+ check asks which key *the machine* holds, which is the wrong question once
20
+ the host provides the service; leaving it in place aborted the recording on
21
+ exactly the keyless machine this is meant to serve.
22
+ - **Standalone installs are unchanged.** With no host endpoint the app still
23
+ streams to its own machine and uses the provider configured there.
24
+
7
25
  ## August 9, 2026 - Notifications survive a hosted UI (v0.1.324)
8
26
 
9
27
  - **Push notifications now carry their own text, encrypted end to end.** The
@@ -1,7 +1,7 @@
1
1
  import { jsx as e, jsxs as i, Fragment as te } from "react/jsx-runtime";
2
2
  import { memo as ne, useState as m, useRef as T, useCallback as v, useEffect as C, useMemo as q, Suspense as I } from "react";
3
3
  import { createPortal as re } from "react-dom";
4
- import { z as oe, E as H, F as se, X as U, H as ie, I as ae, f as y, L as J, J as le, m as de, y as ce, N as L } from "./embedded-BZxhC9Lo.js";
4
+ import { z as oe, E as H, F as se, X as U, H as ie, I as ae, f as y, L as J, J as le, m as de, y as ce, N as L } from "./embedded-B_CV8zzR.js";
5
5
  import { c as me } from "./create-BrnHvSDE.js";
6
6
  /**
7
7
  * @license lucide-react v0.577.0 - ISC
@@ -1,6 +1,6 @@
1
1
  import { jsxs as r, jsx as k, Fragment as vA } from "react/jsx-runtime";
2
2
  import { useState as L, useRef as S, useEffect as x, useCallback as Y } from "react";
3
- import { z as cA, S as wQ, X as DA, a8 as sQ, m as tQ, a9 as eQ, aa as aQ, E as MQ, ab as hQ, R as NQ, y as cQ } from "./embedded-BZxhC9Lo.js";
3
+ import { z as cA, S as wQ, X as DA, a8 as sQ, m as tQ, a9 as eQ, aa as aQ, E as MQ, ab as hQ, R as NQ, y as cQ } from "./embedded-B_CV8zzR.js";
4
4
  /**
5
5
  * @license lucide-react v0.577.0 - ISC
6
6
  *
@@ -1,7 +1,7 @@
1
1
  import { jsx as ao } from "react/jsx-runtime";
2
2
  import { useRef as Dt, useCallback as Lt, useSyncExternalStore as ut, useEffect as so } from "react";
3
3
  import { g as io } from "./_commonjsHelpers-C6fGbg64.js";
4
- import { ac as uo } from "./embedded-BZxhC9Lo.js";
4
+ import { ac as uo } from "./embedded-B_CV8zzR.js";
5
5
  var Ar = "vercel.ai.error", co = Symbol.for(Ar), Ut, Ft, se = class Nr extends (Ft = Error, Ut = co, Ft) {
6
6
  /**
7
7
  * Creates an AI SDK Error.
@@ -1,5 +1,5 @@
1
1
  import { jsxs as t, jsx as e, Fragment as G } from "react/jsx-runtime";
2
- import { R as K, f as L, B as d, L as C, P as z, S as w, g as R, h as p, T, i as m, j as F, k as M, l as $, C as _, m as q, X as H, K as U } from "./embedded-BZxhC9Lo.js";
2
+ import { R as K, f as L, B as d, L as C, P as z, S as w, g as R, h as p, T, i as m, j as F, k as M, l as $, C as _, m as q, X as H, K as U } from "./embedded-B_CV8zzR.js";
3
3
  import { useState as S } from "react";
4
4
  function j(l) {
5
5
  const i = l.filter((r) => !r.ok);
@@ -20326,7 +20326,7 @@ function OL({
20326
20326
  }
20327
20327
  const AL = hs(
20328
20328
  "session-files-panel",
20329
- () => import("./SessionFilesPanel-DfXo1zYa.js")
20329
+ () => import("./SessionFilesPanel-CO7GeudW.js")
20330
20330
  ), LL = Ml(
20331
20331
  () => import("./index-DhYD46ms.js").then((e) => ({ default: e.PatchDiff }))
20332
20332
  );
@@ -26233,7 +26233,7 @@ async function e6() {
26233
26233
  }
26234
26234
  }
26235
26235
  const Z$ = Ml(
26236
- () => import("./streamdown-response-D8l09MFq.js").then((e) => e.a).then((e) => ({ default: e.StreamdownResponse }))
26236
+ () => import("./streamdown-response-C7vdsjzr.js").then((e) => e.a).then((e) => ({ default: e.StreamdownResponse }))
26237
26237
  );
26238
26238
  function Ri({ className: e, from: t, ...n }) {
26239
26239
  return /* @__PURE__ */ c(
@@ -28660,26 +28660,26 @@ function pz({ className: e, isStreaming: t, children: n, ...r }) {
28660
28660
  function hz({ className: e, children: t, ...n }) {
28661
28661
  return /* @__PURE__ */ c(dz, { className: ee("mt-2 text-sm", e), ...n, children: /* @__PURE__ */ c(bu, { className: "ai-live-text max-w-full opacity-90", children: t }) });
28662
28662
  }
28663
- const gz = Ml(() => import("./chat-engine-CJQcfbCs.js"));
28663
+ const gz = Ml(() => import("./chat-engine-Cw53pOrb.js"));
28664
28664
  function bz() {
28665
- const e = () => void import("./chat-engine-CJQcfbCs.js"), t = globalThis.requestIdleCallback;
28665
+ const e = () => void import("./chat-engine-Cw53pOrb.js"), t = globalThis.requestIdleCallback;
28666
28666
  typeof t == "function" ? t(e, { timeout: 3e3 }) : setTimeout(e, 1500);
28667
28667
  }
28668
28668
  const Xk = hs(
28669
28669
  "TermView",
28670
- () => import("./TermView-BUc27e86.js").then((e) => ({ default: e.TermView }))
28671
- ), Wy = hs("ShippedPage", () => import("./shipped-page-DQmoDPgQ.js")), yz = hs(
28670
+ () => import("./TermView-CW03or0l.js").then((e) => ({ default: e.TermView }))
28671
+ ), Wy = hs("ShippedPage", () => import("./shipped-page-BlyiY5sW.js")), yz = hs(
28672
28672
  "SessionTokenUsageDialog",
28673
- () => import("./session-token-usage-DVFC7Rvy.js")
28673
+ () => import("./session-token-usage-DnxWQClQ.js")
28674
28674
  ), vz = hs(
28675
28675
  "CodingAgentsPage",
28676
- () => import("./coding-agents-page-Dl6DetdA.js")
28676
+ () => import("./coding-agents-page-Bq951kv9.js")
28677
28677
  ), Gy = hs(
28678
28678
  "ResumeSessionSheet",
28679
- () => import("./resume-session-sheet-Cp9YmId1.js")
28679
+ () => import("./resume-session-sheet-Cezw8wk-.js")
28680
28680
  ), xz = hs(
28681
28681
  "ChangelogPage",
28682
- () => import("./ChangelogPage-XtxXdePa.js")
28682
+ () => import("./ChangelogPage-BbMkeM-k.js")
28683
28683
  ), vu = yr("configured"), wz = {
28684
28684
  claude: "Claude",
28685
28685
  codex: "Codex",
@@ -1,4 +1,4 @@
1
- import { R as c, L as f, A as d } from "./streamdown-response-D8l09MFq.js";
1
+ import { R as c, L as f, A as d } from "./streamdown-response-C7vdsjzr.js";
2
2
  import { useContext as p, useState as L, useEffect as N } from "react";
3
3
  import { jsx as x } from "react/jsx-runtime";
4
4
  var A = ({ code: s, language: e, raw: a, className: o, startLine: m, lineNumbers: u, ...g }) => {
@@ -1,4 +1,4 @@
1
- import { w as T, s as U, h as X, c as Y, v as G, S as J, o as k, l as Q, f as M, m as y } from "./streamdown-response-D8l09MFq.js";
1
+ import { w as T, s as U, h as X, c as Y, v as G, S as J, o as k, l as Q, f as M, m as y } from "./streamdown-response-C7vdsjzr.js";
2
2
  import v from "./katex-jHfnQmlp.js";
3
3
  function Z(t, e) {
4
4
  return B(t, {}) || { type: "root", children: [] };
@@ -83,9 +83,23 @@ export interface OmgAppSurfaceProps {
83
83
  * session ownership, filtering, or authorization semantics.
84
84
  */
85
85
  viewer?: EmbeddedViewer;
86
+ /**
87
+ * Route dictation audio to the host's own transcription broker instead of to
88
+ * the LFG server this UI was served from. A hosted surface should set this:
89
+ * transcription is funded and metered by the platform, so it must not depend
90
+ * on a provider key the connected machine may or may not hold.
91
+ */
92
+ hostedTranscription?: HostedTranscription;
86
93
  errorSink?: OmgErrorSink;
87
94
  }
88
95
 
96
+ export interface HostedTranscription {
97
+ /** Absolute wss:// URL of the transcription broker. */
98
+ url: string;
99
+ /** Fresh viewer JWT, or null when the session can no longer be proven. */
100
+ getToken: () => Promise<string | null>;
101
+ }
102
+
89
103
  export declare function OmgAppSurface(
90
104
  props: OmgAppSurfaceProps,
91
105
  ): JSX.Element;
package/dist-lib/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { ae as p, af as m, ag as o } from "./embedded-BZxhC9Lo.js";
3
+ import { ae as p, af as m, ag as o } from "./embedded-B_CV8zzR.js";
4
4
  export {
5
5
  p as OmgAppSurface,
6
6
  m as OmgSettingsSurface,
@@ -0,0 +1,4 @@
1
+ import { p } from "./streamdown-response-C7vdsjzr.js";
2
+ export {
3
+ p as Mermaid
4
+ };
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as s, Fragment as N } from "react/jsx-runtime";
2
- import { r as H, n as Q, a as le, o as re, p as oe, q as ie, X, A, f as u, R as B, s as ce, u as de, v as J, T as ue, w as me, x as he, y as pe, L as fe } from "./embedded-BZxhC9Lo.js";
2
+ import { r as H, n as Q, a as le, o as re, p as oe, q as ie, X, A, f as u, R as B, s as ce, u as de, v as J, T as ue, w as me, x as he, y as pe, L as fe } from "./embedded-B_CV8zzR.js";
3
3
  import { useState as a, useRef as L, useEffect as v, useCallback as ge } from "react";
4
4
  function we({
5
5
  initial: m,
@@ -1,5 +1,5 @@
1
1
  import { jsx as s, jsxs as n, Fragment as $ } from "react/jsx-runtime";
2
- import { a as C, D as T, b as M, c as D, d as S, G as F, e as L, t as R, L as j, f as z } from "./embedded-BZxhC9Lo.js";
2
+ import { a as C, D as T, b as M, c as D, d as S, G as F, e as L, t as R, L as j, f as z } from "./embedded-B_CV8zzR.js";
3
3
  import { useState as g, useCallback as P, useEffect as U } from "react";
4
4
  function u({
5
5
  title: r,
@@ -1,6 +1,6 @@
1
1
  import { jsxs as l, jsx as r, Fragment as me } from "react/jsx-runtime";
2
2
  import { useState as f, useEffect as w, useRef as fe, useContext as $e, useMemo as ze } from "react";
3
- import { z as ve, O as he, Q as Te, U as S, V as ge, W as Se, Y as Pe, Z as je, B as Fe, L as pe, v as J, y as Ye, R as Ge, f as P, T as Be, _ as Ke, k as be, g as Ue, $ as He, a as L, a0 as k, a1 as R, l as _, a2 as W, a3 as Ve, a4 as qe, a5 as Qe, a6 as Xe, P as Je, a7 as We } from "./embedded-BZxhC9Lo.js";
3
+ import { z as ve, O as he, Q as Te, U as S, V as ge, W as Se, Y as Pe, Z as je, B as Fe, L as pe, v as J, y as Ye, R as Ge, f as P, T as Be, _ as Ke, k as be, g as Ue, $ as He, a as L, a0 as k, a1 as R, l as _, a2 as W, a3 as Ve, a4 as qe, a5 as Qe, a6 as Xe, P as Je, a7 as We } from "./embedded-B_CV8zzR.js";
4
4
  /**
5
5
  * @license lucide-react v0.577.0 - ISC
6
6
  *
@@ -3,7 +3,7 @@ var Od = (e, t, n) => t in e ? Rd(e, t, { enumerable: !0, configurable: !0, writ
3
3
  var le = (e, t, n) => Od(e, typeof t != "symbol" ? t + "" : t, n);
4
4
  import { jsx as y, jsxs as J, Fragment as _t } from "react/jsx-runtime";
5
5
  import { memo as he, useId as Dd, useTransition as Pd, useMemo as Ee, useRef as Re, useEffect as De, useState as ge, createElement as Xa, isValidElement as Vt, cloneElement as Md, useContext as Pe, createContext as Jt, useCallback as ze, Suspense as wi, lazy as Zu } from "react";
6
- import { ad as Ju, f as eo, a8 as vd, m as Bd, a9 as Fd } from "./embedded-BZxhC9Lo.js";
6
+ import { ad as Ju, f as eo, a8 as vd, m as Bd, a9 as Fd } from "./embedded-B_CV8zzR.js";
7
7
  import { createPortal as to } from "react-dom";
8
8
  import { f as Ur, p as Ka, e as Za, g as Ja, h as Jn, s as Mt, z as no, i as ro, j as io, k as Hd, l as es, w as Ud, b as zd, c as $d, m as jd, d as qd } from "./engine-compile-BeZvvx0I.js";
9
9
  import { g as ao } from "./_commonjsHelpers-C6fGbg64.js";
@@ -18959,7 +18959,7 @@ var yc = Jt(!1), kk = () => Pe(yc), Ua = (...e) => nc(Ju(e)), xk = (e, t) => {
18959
18959
  for (; t > 0 && e[t - 1] === `
18960
18960
  `; ) t--;
18961
18961
  return e.slice(0, t);
18962
- }, wk = Zu(() => import("./highlighted-body-OFNGDK62-e8XppaNF.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), Lk = ({ code: e, language: t, className: n, children: r, isIncomplete: i = !1, startLine: a, lineNumbers: s, ...u }) => {
18962
+ }, wk = Zu(() => import("./highlighted-body-OFNGDK62-BFHCVYnY.js").then((e) => ({ default: e.HighlightedCodeBlockBody }))), Lk = ({ code: e, language: t, className: n, children: r, isIncomplete: i = !1, startLine: a, lineNumbers: s, ...u }) => {
18963
18963
  let o = ee(), l = Ee(() => Sk(e), [e]), d = Ee(() => ({ bg: "transparent", fg: "inherit", tokens: l.split(`
18964
18964
  `).map((f) => [{ content: f, color: "inherit", bgColor: "transparent", htmlStyle: {}, offset: 0 }]) }), [l]);
18965
18965
  return y(Cc.Provider, { value: { code: e }, children: J(Ik, { isIncomplete: i, language: t, children: [y(Nk, { language: t }), r ? y("div", { className: o("pointer-events-none sticky top-2 z-10 -mt-10 flex h-8 items-center justify-end"), children: y("div", { className: o("pointer-events-auto flex shrink-0 items-center gap-2 rounded-md border border-sidebar bg-sidebar/80 px-1.5 py-1 supports-[backdrop-filter]:bg-sidebar/70 supports-[backdrop-filter]:backdrop-blur"), "data-streamdown": "code-block-actions", children: r }) }) : null, y(wi, { fallback: y(Ck, { className: n, language: t, lineNumbers: s, result: d, startLine: a, ...u }), children: y(wk, { className: n, code: l, language: t, lineNumbers: s, raw: d, startLine: a, ...u }) })] }) });
@@ -19301,7 +19301,7 @@ var yc = Jt(!1), kk = () => Pe(yc), Ua = (...e) => nc(Ju(e)), xk = (e, t) => {
19301
19301
  }, Zk = ({ children: e, className: t, showControls: n, showCopy: r = !0, showDownload: i = !0, showFullscreen: a = !0, ...s }) => {
19302
19302
  let u = ee(), o = n && r, l = n && i, d = n && a, f = o || l || d;
19303
19303
  return J("div", { className: u("my-4 flex flex-col gap-2 rounded-lg border border-border bg-sidebar p-2"), "data-streamdown": "table-wrapper", children: [f ? J("div", { className: u("flex items-center justify-end gap-1"), children: [o ? y(Rc, {}) : null, l ? y(Oc, {}) : null, d ? y(Kk, { showCopy: o, showDownload: l, children: e }) : null] }) : null, y("div", { className: u("border-collapse overflow-x-auto overflow-y-auto rounded-md border border-border bg-background"), children: y("table", { className: u("w-full divide-y divide-border", t), "data-streamdown": "table", ...s, children: e }) })] });
19304
- }, Jk = /startLine=(\d+)/, ex = /\bnoLineNumbers\b/, tx = Zu(() => import("./mermaid-GHXKKRXX-DZ_SVE42.js").then((e) => ({ default: e.Mermaid }))), nx = /language-([^\s]+)/;
19304
+ }, Jk = /startLine=(\d+)/, ex = /\bnoLineNumbers\b/, tx = Zu(() => import("./mermaid-GHXKKRXX-DbAgzNwG.js").then((e) => ({ default: e.Mermaid }))), nx = /language-([^\s]+)/;
19305
19305
  function Jr(e, t) {
19306
19306
  if (!(e != null && e.position || t != null && t.position)) return !0;
19307
19307
  if (!(e != null && e.position && t != null && t.position)) return !1;
@@ -20814,7 +20814,7 @@ function S6(e) {
20814
20814
  }
20815
20815
  function w6() {
20816
20816
  return Tr || (Tr = Promise.all([
20817
- import("./index-Drj31VZQ.js"),
20817
+ import("./index-DNB8RA4N.js"),
20818
20818
  import("./index-JkCQXUYs.js").then((e) => e.bp)
20819
20819
  ]).then(([e, t]) => {
20820
20820
  Hn = { math: e.math, mermaid: t.mermaid };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omg-dev/app",
3
- "version": "0.1.324",
3
+ "version": "0.1.325",
4
4
  "description": "The full OMG application surface for React hosts.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://omg.dev",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "type": "module",
26
26
  "dependencies": {
27
- "@omg-dev/client": "0.1.324",
27
+ "@omg-dev/client": "0.1.325",
28
28
  "@ai-sdk/react": "^4.0.19",
29
29
  "@base-ui/react": "^1.3.0",
30
30
  "@number-flow/react": "^0.6.2",
@@ -1,4 +0,0 @@
1
- import { p } from "./streamdown-response-D8l09MFq.js";
2
- export {
3
- p as Mermaid
4
- };