@omg-dev/app 0.6.20 → 0.6.21

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,22 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import { z as n } from "./embedded-CsrJ3OrR.js";
2
+ import { z as n } from "./embedded-BY3Brrra.js";
3
3
  const t = `# Changelog
4
4
 
5
5
  Recent product updates and deployment notes.
6
6
 
7
+ ## August 31, 2026 - Command details open again in the hosted app (v0.6.21)
8
+
9
+ - **Command details load instead of showing a browser error.** Opening a tool
10
+ pill in the hosted app returned "The string did not match the expected
11
+ pattern." for every command. The transcript no longer carries tool arguments,
12
+ so the panel fetches them per command, and that one fetch used the browser's
13
+ global fetch instead of the transport the host installs. It therefore asked
14
+ the host page's own origin rather than the selected computer, received the
15
+ web app's HTML in place of the answer, and printed Safari's parser message at
16
+ the reader. The panel now uses the host transport like every other request.
17
+ An answer that is not the expected data also reports as a response problem
18
+ now, instead of quoting the browser.
19
+
7
20
  ## August 31, 2026 - Pictures hold their place in the transcript while they load (v0.6.20)
8
21
 
9
22
  - **A picture no longer drops the message below it on top of the one above.**
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as s, 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 U } from "react";
3
3
  import { createPortal as re } from "react-dom";
4
4
  import { cn as y } from "cnfast";
5
- import { f as oe, a3 as W, a4 as se, X as I, a5 as ie, a6 as ae, L as H, a7 as le, y as de, C as ce, a8 as L } from "./embedded-CsrJ3OrR.js";
5
+ import { f as oe, a3 as W, a4 as se, X as I, a5 as ie, a6 as ae, L as H, a7 as le, y as de, C as ce, a8 as L } from "./embedded-BY3Brrra.js";
6
6
  import { c as me } from "./create-CBk9uwJH.js";
7
7
  /**
8
8
  * @license lucide-react v0.577.0 - ISC
@@ -1,7 +1,7 @@
1
1
  import { jsxs as r, jsx as k, Fragment as vA } from "react/jsx-runtime";
2
2
  import { useState as L, useRef as R, useEffect as p, useCallback as q } from "react";
3
- import { f as UA, o as iQ, X as CA, a9 as wQ, y as sQ, aa as tQ, ab as eQ, a3 as aQ, ac as MQ, R as hQ, C as NQ } from "./embedded-CsrJ3OrR.js";
4
- import { K as ZA } from "./keyboard-BnW3xcue.js";
3
+ import { f as UA, o as iQ, X as CA, a9 as wQ, y as sQ, aa as tQ, ab as eQ, a3 as aQ, ac as MQ, R as hQ, C as NQ } from "./embedded-BY3Brrra.js";
4
+ import { K as ZA } from "./keyboard-TNmS_Krh.js";
5
5
  /**
6
6
  * @license lucide-react v0.577.0 - ISC
7
7
  *
@@ -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 { ad as uo } from "./embedded-CsrJ3OrR.js";
4
+ import { ad as uo } from "./embedded-BY3Brrra.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 s, jsx as e, Fragment as O } from "react/jsx-runtime";
2
- import { R, B as u, L as $, n as A, o as S, M as G, p as j, q as E, s as f, T as P, u as D, v as W, w as T, x as X, y as J, X as Q, K as V } from "./embedded-CsrJ3OrR.js";
2
+ import { R, B as u, L as $, n as A, o as S, M as G, p as j, q as E, s as f, T as P, u as D, v as W, w as T, x as X, y as J, X as Q, K as V } from "./embedded-BY3Brrra.js";
3
3
  import { cn as U } from "cnfast";
4
4
  import { useState as I } from "react";
5
5
  function B(l) {
@@ -1,7 +1,7 @@
1
1
  import { jsxs as pe, jsx as J, Fragment as zt } from "react/jsx-runtime";
2
2
  import { useState as Ve, useRef as Qe, useCallback as ve, useEffect as Le } from "react";
3
- import { f as Fn, a3 as Ai, ab as Mn, B as Ge, R as Tn, X as Qn, L as Xi, ae as Ln } from "./embedded-CsrJ3OrR.js";
4
- import { K as Rn } from "./keyboard-BnW3xcue.js";
3
+ import { f as Fn, a3 as Ai, ab as Mn, B as Ge, R as Tn, X as Qn, L as Xi, ae as Ln } from "./embedded-BY3Brrra.js";
4
+ import { K as Rn } from "./keyboard-TNmS_Krh.js";
5
5
  /**
6
6
  * @license lucide-react v0.577.0 - ISC
7
7
  *
@@ -481,7 +481,7 @@ const Hb = [
481
481
  * This source code is licensed under the ISC license.
482
482
  * See the LICENSE file in the root directory of this source tree.
483
483
  */
484
- const qb = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]], Bt = Me("check", qb);
484
+ const qb = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]], Pt = Me("check", qb);
485
485
  /**
486
486
  * @license lucide-react v0.577.0 - ISC
487
487
  *
@@ -2008,7 +2008,7 @@ function yv({
2008
2008
  "span",
2009
2009
  {
2010
2010
  className: o.done ? "mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-primary/15 text-primary" : "mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground",
2011
- children: o.done ? /* @__PURE__ */ s(Bt, { className: "size-3.5", "aria-hidden": !0 }) : /* @__PURE__ */ s(i, { className: "size-3.5", "aria-hidden": !0 })
2011
+ children: o.done ? /* @__PURE__ */ s(Pt, { className: "size-3.5", "aria-hidden": !0 }) : /* @__PURE__ */ s(i, { className: "size-3.5", "aria-hidden": !0 })
2012
2012
  }
2013
2013
  ),
2014
2014
  /* @__PURE__ */ m("span", { className: "min-w-0", children: [
@@ -2328,7 +2328,7 @@ function zv() {
2328
2328
  function ve(e, t) {
2329
2329
  return fr.request(e, t);
2330
2330
  }
2331
- function Wt(e, t) {
2331
+ function Bt(e, t) {
2332
2332
  return fr.fetch(e, t);
2333
2333
  }
2334
2334
  function $v(e, t, n) {
@@ -2356,7 +2356,7 @@ function cd(e) {
2356
2356
  return !t || t.toLowerCase() === "unknown" ? null : t;
2357
2357
  }
2358
2358
  function jv() {
2359
- return cd("0.6.20");
2359
+ return cd("0.6.21");
2360
2360
  }
2361
2361
  const Zu = jv();
2362
2362
  function Uv(e) {
@@ -3098,7 +3098,7 @@ function pp(e) {
3098
3098
  userAgent: navigator.userAgent,
3099
3099
  buildId: Gs
3100
3100
  };
3101
- return Wt("/api/client-error", {
3101
+ return Bt("/api/client-error", {
3102
3102
  method: "POST",
3103
3103
  headers: { "Content-Type": "application/json" },
3104
3104
  body: JSON.stringify(n),
@@ -3251,7 +3251,7 @@ component stack:${t}` : null
3251
3251
  onClick: g,
3252
3252
  "aria-label": "Copy error details",
3253
3253
  title: "Copy error details",
3254
- children: f ? /* @__PURE__ */ s(Bt, { className: "size-3.5", "aria-hidden": !0 }) : /* @__PURE__ */ s($r, { className: "size-3.5", "aria-hidden": !0 })
3254
+ children: f ? /* @__PURE__ */ s(Pt, { className: "size-3.5", "aria-hidden": !0 }) : /* @__PURE__ */ s($r, { className: "size-3.5", "aria-hidden": !0 })
3255
3255
  }
3256
3256
  )
3257
3257
  ] }),
@@ -4167,21 +4167,21 @@ const x2 = (e) => {
4167
4167
  x: 0,
4168
4168
  y: 0
4169
4169
  };
4170
- const on = (Pt) => 1 / (1.5 + Math.abs(Pt) / 20);
4170
+ const on = (jt) => 1 / (1.5 + Math.abs(jt) / 20);
4171
4171
  if ($ === "y") {
4172
4172
  if (xt.includes("top") || xt.includes("bottom"))
4173
4173
  if (xt.includes("top") && yt < 0 || xt.includes("bottom") && yt > 0)
4174
4174
  bt.y = yt;
4175
4175
  else {
4176
- const Pt = yt * on(yt);
4177
- bt.y = Math.abs(Pt) < Math.abs(yt) ? Pt : yt;
4176
+ const jt = yt * on(yt);
4177
+ bt.y = Math.abs(jt) < Math.abs(yt) ? jt : yt;
4178
4178
  }
4179
4179
  } else if ($ === "x" && (xt.includes("left") || xt.includes("right")))
4180
4180
  if (xt.includes("left") && It < 0 || xt.includes("right") && It > 0)
4181
4181
  bt.x = It;
4182
4182
  else {
4183
- const Pt = It * on(It);
4184
- bt.x = Math.abs(Pt) < Math.abs(It) ? Pt : It;
4183
+ const jt = It * on(It);
4184
+ bt.x = Math.abs(jt) < Math.abs(It) ? jt : It;
4185
4185
  }
4186
4186
  (Math.abs(bt.x) > 0 || Math.abs(bt.y) > 0) && Ae(!0), (Ze = de.current) == null || Ze.style.setProperty("--swipe-amount-x", `${bt.x}px`), (vt = de.current) == null || vt.style.setProperty("--swipe-amount-y", `${bt.y}px`);
4187
4187
  }
@@ -4873,7 +4873,7 @@ function K2({
4873
4873
  /* @__PURE__ */ s("span", { className: "block truncate text-sm font-medium", children: _.label }),
4874
4874
  /* @__PURE__ */ s("span", { className: "block truncate text-xs text-muted-foreground", children: _.configured ? "Connected" : L ? "CLI not installed on this Computer" : M ? "Install first, then sign in" : `Sign in with ${J}` })
4875
4875
  ] }),
4876
- _.configured ? /* @__PURE__ */ s("span", { className: "flex size-8 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500", "aria-label": "Connected", children: /* @__PURE__ */ s(Bt, { className: "size-4" }) }) : /* @__PURE__ */ s(
4876
+ _.configured ? /* @__PURE__ */ s("span", { className: "flex size-8 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500", "aria-label": "Connected", children: /* @__PURE__ */ s(Pt, { className: "size-4" }) }) : /* @__PURE__ */ s(
4877
4877
  Te,
4878
4878
  {
4879
4879
  variant: _.provider === "claude" ? "brand" : "outline",
@@ -4913,7 +4913,7 @@ function K2({
4913
4913
  /* @__PURE__ */ s("span", { className: "block truncate text-sm font-medium", children: _.label }),
4914
4914
  /* @__PURE__ */ s("span", { className: "block truncate text-xs text-muted-foreground", children: _.installed ? _.connected ? "Connected for private repos and PRs" : _.detail : "GitHub CLI is not installed" })
4915
4915
  ] }),
4916
- _.connected ? /* @__PURE__ */ s("span", { className: "flex size-8 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500", "aria-label": "Connected", children: /* @__PURE__ */ s(Bt, { className: "size-4" }) }) : /* @__PURE__ */ s(
4916
+ _.connected ? /* @__PURE__ */ s("span", { className: "flex size-8 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500", "aria-label": "Connected", children: /* @__PURE__ */ s(Pt, { className: "size-4" }) }) : /* @__PURE__ */ s(
4917
4917
  Te,
4918
4918
  {
4919
4919
  variant: "outline",
@@ -4997,7 +4997,7 @@ function K2({
4997
4997
  /* @__PURE__ */ s("h1", { className: "text-xl font-semibold", children: "Add omg to your home screen" }),
4998
4998
  /* @__PURE__ */ s("p", { className: "mb-5 mt-1 text-sm text-muted-foreground", children: "One tap back to your Computer — its own icon and window, no browser tabs in the way." }),
4999
4999
  p.installed ? /* @__PURE__ */ m("div", { className: "flex items-center gap-3 rounded-xl border border-border bg-muted/40 px-3 py-2.5 text-sm font-medium", children: [
5000
- /* @__PURE__ */ s("span", { className: "flex size-8 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500", children: /* @__PURE__ */ s(Bt, { className: "size-4" }) }),
5000
+ /* @__PURE__ */ s("span", { className: "flex size-8 items-center justify-center rounded-full bg-emerald-500/10 text-emerald-500", children: /* @__PURE__ */ s(Pt, { className: "size-4" }) }),
5001
5001
  "Added"
5002
5002
  ] }) : /* @__PURE__ */ m(
5003
5003
  Te,
@@ -5248,7 +5248,7 @@ function rn({
5248
5248
  className: "pointer-events-none absolute right-2 flex items-center justify-center",
5249
5249
  "data-slot": "dropdown-menu-radio-item-indicator",
5250
5250
  children: /* @__PURE__ */ s(vn.RadioItemIndicator, { children: /* @__PURE__ */ s(
5251
- Bt,
5251
+ Pt,
5252
5252
  {}
5253
5253
  ) })
5254
5254
  }
@@ -5582,7 +5582,7 @@ function ok(e) {
5582
5582
  if (e === null) return;
5583
5583
  const r = new AbortController();
5584
5584
  let o = null;
5585
- return n({ status: "loading", value: null }), Wt(e, { signal: r.signal }).then(async (i) => {
5585
+ return n({ status: "loading", value: null }), Bt(e, { signal: r.signal }).then(async (i) => {
5586
5586
  if (!i.ok) throw new Error(`artifact ${i.status}`);
5587
5587
  if (o = URL.createObjectURL(await i.blob()), r.signal.aborted) {
5588
5588
  URL.revokeObjectURL(o), o = null;
@@ -5982,7 +5982,7 @@ function Nk(e, t) {
5982
5982
  });
5983
5983
  return G(() => {
5984
5984
  const i = new AbortController();
5985
- return o({ status: "loading", value: null }), Wt(n, { signal: i.signal }).then(async (a) => {
5985
+ return o({ status: "loading", value: null }), Bt(n, { signal: i.signal }).then(async (a) => {
5986
5986
  if (!a.ok) throw new Error(`artifact ${a.status}`);
5987
5987
  const l = await a.text(), c = gk(l);
5988
5988
  i.signal.aborted || o({ status: "ready", value: { parsed: c, source: l } });
@@ -6384,7 +6384,7 @@ function fn(e, t = {}) {
6384
6384
  path: location.pathname + location.search,
6385
6385
  ...t
6386
6386
  });
6387
- Wt("/api/evlog", {
6387
+ Bt("/api/evlog", {
6388
6388
  method: "POST",
6389
6389
  headers: { "Content-Type": "application/json" },
6390
6390
  body: n,
@@ -7587,7 +7587,7 @@ class bS {
7587
7587
  // forever, muting the session; here it dies with the transport.
7588
7588
  liveStreams = 0;
7589
7589
  constructor({ sessionId: t, sendEndpoint: n, apiBase: r = "", subscribeTranscript: o, fetch: i }) {
7590
- this.sessionId = t, this.sendEndpoint = n ?? `/api/sessions/${encodeURIComponent(t)}/send`, this.apiBase = r, this.subscribeTranscript = o, this.usesConfiguredTransport = !i && !r, this.fetchImpl = i ?? (this.usesConfiguredTransport ? Wt : globalThis.fetch.bind(globalThis));
7590
+ this.sessionId = t, this.sendEndpoint = n ?? `/api/sessions/${encodeURIComponent(t)}/send`, this.apiBase = r, this.subscribeTranscript = o, this.usesConfiguredTransport = !i && !r, this.fetchImpl = i ?? (this.usesConfiguredTransport ? Bt : globalThis.fetch.bind(globalThis));
7591
7591
  }
7592
7592
  async sendMessages({
7593
7593
  messages: t,
@@ -8152,16 +8152,21 @@ function rC(e) {
8152
8152
  og(n) && n.id && !t.includes(n.id) && t.push(n.id);
8153
8153
  return t;
8154
8154
  }
8155
- async function sC(e, t, n = fetch) {
8155
+ async function sC(e, t, n = Bt) {
8156
8156
  const r = await n(Gk(e, t));
8157
8157
  if (!r.ok)
8158
8158
  throw new Error(
8159
8159
  r.status === 404 ? "Command details are no longer available" : `Could not load command details (${r.status})`
8160
8160
  );
8161
- const o = await r.json();
8161
+ let o;
8162
+ try {
8163
+ o = await r.json();
8164
+ } catch {
8165
+ throw new Error("Could not load command details (unexpected response)");
8166
+ }
8162
8167
  return typeof o.args == "string" ? o.args : "";
8163
8168
  }
8164
- function oC(e, t, n, r = fetch) {
8169
+ function oC(e, t, n, r = Bt) {
8165
8170
  const [o, i] = w({}), a = W(!0), l = W(/* @__PURE__ */ new Set());
8166
8171
  G(() => (a.current = !0, () => {
8167
8172
  a.current = !1;
@@ -11425,7 +11430,7 @@ function vE(e, t) {
11425
11430
  }
11426
11431
  }
11427
11432
  const wE = "markdown msg-text size-full", NE = "msg-text markdown user-bubble text-base", um = ".msg-text.markdown:not(.user-bubble)", fm = ".user-bubble.markdown";
11428
- function Ut(e) {
11433
+ function Wt(e) {
11429
11434
  const t = parseFloat(e ?? "");
11430
11435
  return Number.isFinite(t) ? t : 0;
11431
11436
  }
@@ -11439,29 +11444,29 @@ function kE(e, t) {
11439
11444
  return !Number.isFinite(n) || n <= 0 ? t * 1.2 : n;
11440
11445
  }
11441
11446
  function Yl(e) {
11442
- const t = getComputedStyle(e), n = Ut(t.fontSize) || 16;
11447
+ const t = getComputedStyle(e), n = Wt(t.fontSize) || 16;
11443
11448
  return {
11444
11449
  font: Mg(t),
11445
11450
  fontSize: n,
11446
11451
  lineHeight: kE(t.lineHeight, n),
11447
- letterSpacing: t.letterSpacing === "normal" ? 0 : Ut(t.letterSpacing),
11448
- marginTop: Ut(t.marginTop),
11449
- marginBottom: Ut(t.marginBottom),
11450
- paddingTop: Ut(t.paddingTop),
11451
- paddingBottom: Ut(t.paddingBottom),
11452
- paddingLeft: Ut(t.paddingLeft),
11453
- paddingRight: Ut(t.paddingRight),
11454
- borderTop: Ut(t.borderTopWidth),
11455
- borderBottom: Ut(t.borderBottomWidth),
11456
- borderLeft: Ut(t.borderLeftWidth)
11452
+ letterSpacing: t.letterSpacing === "normal" ? 0 : Wt(t.letterSpacing),
11453
+ marginTop: Wt(t.marginTop),
11454
+ marginBottom: Wt(t.marginBottom),
11455
+ paddingTop: Wt(t.paddingTop),
11456
+ paddingBottom: Wt(t.paddingBottom),
11457
+ paddingLeft: Wt(t.paddingLeft),
11458
+ paddingRight: Wt(t.paddingRight),
11459
+ borderTop: Wt(t.borderTopWidth),
11460
+ borderBottom: Wt(t.borderBottomWidth),
11461
+ borderLeft: Wt(t.borderLeftWidth)
11457
11462
  };
11458
11463
  }
11459
11464
  function _i(e, t = 0) {
11460
11465
  const n = getComputedStyle(e);
11461
11466
  return {
11462
11467
  font: Mg(n),
11463
- letterSpacing: n.letterSpacing === "normal" ? 0 : Ut(n.letterSpacing),
11464
- extraWidth: t || Ut(n.paddingLeft) + Ut(n.paddingRight)
11468
+ letterSpacing: n.letterSpacing === "normal" ? 0 : Wt(n.letterSpacing),
11469
+ extraWidth: t || Wt(n.paddingLeft) + Wt(n.paddingRight)
11465
11470
  };
11466
11471
  }
11467
11472
  const SE = `
@@ -11542,7 +11547,7 @@ function IE(e) {
11542
11547
  if (c <= a) continue;
11543
11548
  const u = getComputedStyle(o), d = getComputedStyle(r), f = Math.max(
11544
11549
  0,
11545
- o.clientWidth - Ut(u.paddingLeft) - Ut(u.paddingRight)
11550
+ o.clientWidth - Wt(u.paddingLeft) - Wt(u.paddingRight)
11546
11551
  );
11547
11552
  return {
11548
11553
  lineHeight: a / l,
@@ -11550,8 +11555,8 @@ function IE(e) {
11550
11555
  // the language header, the sticky copy bar, the flex gaps and `pre`'s
11551
11556
  // own padding. Taken as one number so it cannot be double counted.
11552
11557
  chrome: c - a,
11553
- marginTop: Ut(d.marginTop),
11554
- marginBottom: Ut(d.marginBottom),
11558
+ marginTop: Wt(d.marginTop),
11559
+ marginBottom: Wt(d.marginBottom),
11555
11560
  charWidth: TE(o),
11556
11561
  scrollbar: o.scrollWidth > o.clientWidth ? Math.max(0, o.offsetHeight - o.clientHeight) : ME(o.ownerDocument),
11557
11562
  gutter: Math.max(0, r.getBoundingClientRect().width - f)
@@ -11646,7 +11651,7 @@ function zE(e) {
11646
11651
  const t = getComputedStyle(e), n = e.getBoundingClientRect().width;
11647
11652
  return Math.max(
11648
11653
  0,
11649
- n - Ut(t.paddingLeft) - Ut(t.paddingRight) - Ut(t.borderLeftWidth) - Ut(t.borderRightWidth)
11654
+ n - Wt(t.paddingLeft) - Wt(t.paddingRight) - Wt(t.borderLeftWidth) - Wt(t.borderRightWidth)
11650
11655
  );
11651
11656
  }
11652
11657
  function pm(e) {
@@ -12805,7 +12810,7 @@ async function $d() {
12805
12810
  const e = Gi;
12806
12811
  return Es = (async () => {
12807
12812
  try {
12808
- const t = await Wt("/api/voice/config", { cache: "no-store" });
12813
+ const t = await Bt("/api/voice/config", { cache: "no-store" });
12809
12814
  if (!t.ok) return null;
12810
12815
  const n = await t.json();
12811
12816
  return e === Gi && (ts = { cfg: n, at: Date.now() }), n;
@@ -12862,7 +12867,7 @@ function kM() {
12862
12867
  if (!(!y || !c.trim())) {
12863
12868
  f(!0), p("");
12864
12869
  try {
12865
- const N = { sttProvider: y.id }, C = await Wt("/api/voice/config", {
12870
+ const N = { sttProvider: y.id }, C = await Bt("/api/voice/config", {
12866
12871
  method: "POST",
12867
12872
  headers: { "Content-Type": "application/json" },
12868
12873
  body: JSON.stringify({ providerId: y.id, apiKey: c.trim(), ...N })
@@ -12891,7 +12896,7 @@ function kM() {
12891
12896
  variant: N.id === y?.id ? "default" : "outline",
12892
12897
  onClick: () => l(N.id),
12893
12898
  children: [
12894
- N.available ? /* @__PURE__ */ s(Bt, { className: "size-3.5" }) : null,
12899
+ N.available ? /* @__PURE__ */ s(Pt, { className: "size-3.5" }) : null,
12895
12900
  N.label.replace(/ \(.+\)$/, "")
12896
12901
  ]
12897
12902
  },
@@ -12936,7 +12941,7 @@ function kM() {
12936
12941
  ] }) });
12937
12942
  }
12938
12943
  async function SM(e) {
12939
- const t = e ? `?user=${encodeURIComponent(e)}` : "", n = await Wt(`/api/bootstrap${t}`), r = await n.json().catch(() => ({}));
12944
+ const t = e ? `?user=${encodeURIComponent(e)}` : "", n = await Bt(`/api/bootstrap${t}`), r = await n.json().catch(() => ({}));
12940
12945
  if (!n.ok)
12941
12946
  throw new Error(r?.error || `${n.status}`);
12942
12947
  return r;
@@ -13692,7 +13697,7 @@ const jM = jn(
13692
13697
  () => import("./index-bi2f1zSC.js").then((e) => ({ default: e.PatchDiff }))
13693
13698
  );
13694
13699
  async function Pd(e) {
13695
- const t = await Wt(e), n = await t.json().catch(() => ({}));
13700
+ const t = await Bt(e), n = await t.json().catch(() => ({}));
13696
13701
  if (!t.ok) throw new Error(n?.error || `${t.status}`);
13697
13702
  return n;
13698
13703
  }
@@ -13903,7 +13908,7 @@ const GM = mr(function({
13903
13908
  r?.merged ? "border-[var(--success)]/35 bg-[var(--success)]/10 text-foreground hover:bg-[var(--success)]/15" : "border-border bg-card/95 text-foreground hover:bg-card"
13904
13909
  ),
13905
13910
  children: [
13906
- r?.merged ? /* @__PURE__ */ s(Bt, { className: "size-3.5 text-[var(--success)]", strokeWidth: 2.5 }) : /* @__PURE__ */ s(Nh, { className: "size-3.5 text-[var(--primary)]" }),
13911
+ r?.merged ? /* @__PURE__ */ s(Pt, { className: "size-3.5 text-[var(--success)]", strokeWidth: 2.5 }) : /* @__PURE__ */ s(Nh, { className: "size-3.5 text-[var(--primary)]" }),
13907
13912
  /* @__PURE__ */ m("span", { children: [
13908
13913
  d,
13909
13914
  " changed"
@@ -13926,7 +13931,7 @@ const GM = mr(function({
13926
13931
  ] }) : null;
13927
13932
  }), YM = jn(
13928
13933
  "session-files-panel",
13929
- () => import("./SessionFilesPanel-hTsJ53WV.js")
13934
+ () => import("./SessionFilesPanel-CB5R-I7t.js")
13930
13935
  );
13931
13936
  function jd({ className: e, ...t }) {
13932
13937
  return /* @__PURE__ */ s(
@@ -14283,7 +14288,7 @@ function Fi({
14283
14288
  {
14284
14289
  className: "pointer-events-none absolute right-2 flex items-center justify-center",
14285
14290
  "data-slot": "context-menu-radio-item-indicator",
14286
- children: /* @__PURE__ */ s(wn.RadioItemIndicator, { children: /* @__PURE__ */ s(Bt, {}) })
14291
+ children: /* @__PURE__ */ s(wn.RadioItemIndicator, { children: /* @__PURE__ */ s(Pt, {}) })
14287
14292
  }
14288
14293
  ),
14289
14294
  t
@@ -14397,7 +14402,7 @@ async function pA(e) {
14397
14402
  const t = ei();
14398
14403
  if (t.catch(() => {
14399
14404
  }), await Notification.requestPermission() !== "granted") return !1;
14400
- const r = await Wt("/api/push/vapid");
14405
+ const r = await Bt("/api/push/vapid");
14401
14406
  if (!r.ok) throw new Error("Could not load push key");
14402
14407
  const { key: o } = await r.json(), i = await t;
14403
14408
  if (!i)
@@ -14405,7 +14410,7 @@ async function pA(e) {
14405
14410
  Zo || td() ? "This host hasn't given OMG a service-worker scope for notifications yet" : "Couldn't start the notification service worker — reload the app and try again"
14406
14411
  );
14407
14412
  const l = (await hA(i, oA(o))).toJSON();
14408
- return await Wt("/api/push/subscribe", {
14413
+ return await Bt("/api/push/subscribe", {
14409
14414
  method: "POST",
14410
14415
  headers: { "Content-Type": "application/json" },
14411
14416
  body: JSON.stringify({
@@ -14427,7 +14432,7 @@ async function gA() {
14427
14432
  if (!t) return;
14428
14433
  const n = t.endpoint;
14429
14434
  await t.unsubscribe().catch(() => {
14430
- }), await Wt("/api/push/unsubscribe", {
14435
+ }), await Bt("/api/push/unsubscribe", {
14431
14436
  method: "POST",
14432
14437
  headers: { "Content-Type": "application/json" },
14433
14438
  body: JSON.stringify({ endpoint: n })
@@ -14461,7 +14466,7 @@ async function M_() {
14461
14466
  }
14462
14467
  const xA = jn(
14463
14468
  "StreamdownResponse",
14464
- () => import("./streamdown-response-CyHFlHAw.js").then((e) => ({ default: e.StreamdownResponse }))
14469
+ () => import("./streamdown-response-nCzSKIik.js").then((e) => ({ default: e.StreamdownResponse }))
14465
14470
  );
14466
14471
  function Ms({ className: e, from: t, ...n }) {
14467
14472
  return /* @__PURE__ */ s(
@@ -14535,7 +14540,7 @@ function yA({ children: e }) {
14535
14540
  }
14536
14541
  } catch {
14537
14542
  }
14538
- const p = await Wt(h, { cache: "no-store" });
14543
+ const p = await Bt(h, { cache: "no-store" });
14539
14544
  if (!p.ok) return;
14540
14545
  const v = (await p.json()).questions || [];
14541
14546
  v.sort((y, b) => y.createdAt - b.createdAt), n(v);
@@ -14560,7 +14565,7 @@ function yA({ children: e }) {
14560
14565
  if (!(r || !p.trim())) {
14561
14566
  o(!0);
14562
14567
  try {
14563
- const g = await Wt(`/api/ask/${h.id}/answer`, {
14568
+ const g = await Bt(`/api/ask/${h.id}/answer`, {
14564
14569
  method: "POST",
14565
14570
  headers: { "Content-Type": "application/json" },
14566
14571
  body: JSON.stringify({ answer: p.trim(), via: "web" })
@@ -14580,7 +14585,7 @@ function yA({ children: e }) {
14580
14585
  if (g) {
14581
14586
  n((v) => v.filter((y) => y.id !== h.id)), tc(`ask-${h.id}`);
14582
14587
  try {
14583
- await Wt(`/api/ask/${h.id}/answer`, {
14588
+ await Bt(`/api/ask/${h.id}/answer`, {
14584
14589
  method: "POST",
14585
14590
  headers: { "Content-Type": "application/json" },
14586
14591
  body: JSON.stringify({ answer: g, via: "web", deliver: !1 })
@@ -14589,7 +14594,7 @@ function yA({ children: e }) {
14589
14594
  }
14590
14595
  }
14591
14596
  }, []), u = ee(async (h) => {
14592
- const p = await Wt(`/api/ask/${h.id}/dismiss`, { method: "POST" });
14597
+ const p = await Bt(`/api/ask/${h.id}/dismiss`, { method: "POST" });
14593
14598
  if (!p.ok) throw new Error(await p.text());
14594
14599
  n((g) => g.filter((v) => v.id !== h.id)), tc(`ask-${h.id}`);
14595
14600
  }, []), d = ee(
@@ -14826,7 +14831,7 @@ function nc({ value: e, label: t }) {
14826
14831
  } catch {
14827
14832
  }
14828
14833
  },
14829
- children: n ? /* @__PURE__ */ s(Bt, { className: "size-4 text-success" }) : /* @__PURE__ */ s($r, { className: "size-4" })
14834
+ children: n ? /* @__PURE__ */ s(Pt, { className: "size-4 text-success" }) : /* @__PURE__ */ s($r, { className: "size-4" })
14830
14835
  }
14831
14836
  );
14832
14837
  }
@@ -16839,27 +16844,27 @@ function O4({ className: e, isStreaming: t, children: n, ...r }) {
16839
16844
  function R4({ className: e, children: t, ...n }) {
16840
16845
  return /* @__PURE__ */ s(Xa, { className: B("mt-2 text-sm", e), ...n, children: /* @__PURE__ */ s(ti, { className: "ai-live-text max-w-full opacity-90", children: t }) });
16841
16846
  }
16842
- const L4 = jn("OmgChatEngine", () => import("./chat-engine-CNdYx2gn.js"));
16847
+ const L4 = jn("OmgChatEngine", () => import("./chat-engine-3uqMir9U.js"));
16843
16848
  function z4() {
16844
- const e = () => void import("./chat-engine-CNdYx2gn.js").catch(() => {
16849
+ const e = () => void import("./chat-engine-3uqMir9U.js").catch(() => {
16845
16850
  }), t = globalThis.requestIdleCallback;
16846
16851
  typeof t == "function" ? t(e, { timeout: 3e3 }) : setTimeout(e, 1500);
16847
16852
  }
16848
16853
  const c0 = jn(
16849
16854
  "TermView",
16850
- () => import("./TermView-BiAcO76v.js").then((e) => ({ default: e.TermView }))
16851
- ), Wm = jn("ShippedPage", () => import("./shipped-page-Cx6C7okH.js")), $4 = jn(
16855
+ () => import("./TermView-Bg0sWurC.js").then((e) => ({ default: e.TermView }))
16856
+ ), Wm = jn("ShippedPage", () => import("./shipped-page-Crdcj4jM.js")), $4 = jn(
16852
16857
  "SessionTokenUsageDialog",
16853
- () => import("./session-token-usage-objRfEVH.js")
16858
+ () => import("./session-token-usage-DDTKYVJm.js")
16854
16859
  ), D4 = jn(
16855
16860
  "CodingAgentsPage",
16856
- () => import("./coding-agents-page-DSeSE2rC.js")
16857
- ), B4 = jn("ComputerPage", () => import("./computer-page-BWHRocKx.js")), Hm = jn(
16861
+ () => import("./coding-agents-page-C0nvI4Ck.js")
16862
+ ), B4 = jn("ComputerPage", () => import("./computer-page-BoO_fkjH.js")), Hm = jn(
16858
16863
  "ResumeSessionSheet",
16859
- () => import("./resume-session-sheet-ko3ekKSx.js")
16864
+ () => import("./resume-session-sheet-C8KjFa2y.js")
16860
16865
  ), P4 = jn(
16861
16866
  "ChangelogPage",
16862
- () => import("./ChangelogPage-zYXt9rIT.js")
16867
+ () => import("./ChangelogPage-BjHRHrXi.js")
16863
16868
  ), ri = Kt("configured"), j4 = {
16864
16869
  claude: "Claude",
16865
16870
  codex: "Codex",
@@ -17806,7 +17811,7 @@ function eu({
17806
17811
  };
17807
17812
  }
17808
17813
  function vo(e, t, n) {
17809
- Wt(`/api/auto/findings/${e}/action`, {
17814
+ Bt(`/api/auto/findings/${e}/action`, {
17810
17815
  method: "POST",
17811
17816
  headers: { "Content-Type": "application/json" },
17812
17817
  body: JSON.stringify({ path: t, hadText: n })
@@ -18066,7 +18071,7 @@ function O3(e) {
18066
18071
  for (const ne of V.chunks)
18067
18072
  L.set(ne, J), J += ne.length;
18068
18073
  try {
18069
- const ne = await Wt("/api/voice/stt", {
18074
+ const ne = await Bt("/api/voice/stt", {
18070
18075
  method: "POST",
18071
18076
  headers: { "Content-Type": "application/octet-stream" },
18072
18077
  body: k3(L, V.rate)
@@ -19164,7 +19169,7 @@ function Q3() {
19164
19169
  /* @__PURE__ */ new Map()
19165
19170
  ), X = W(0), te = W(/* @__PURE__ */ new Map()), pe = W(0), ue = W(0), _e = W(/* @__PURE__ */ new Map()), [be, Be] = w([]), [Ye, Ke] = w(null), [se, He] = w(null), [Ge, ut] = w(!1), [qt, _t] = w(null), zt = W(qt);
19166
19171
  zt.current = qt;
19167
- const [Ie, kt] = w([]), [Ze, vt] = w(!0), [Ot, yt] = w(null), [It, Mt] = w(!1), [xt, bt] = w(!1), [on, Pt] = w(null), [Nn, Zt] = w(0), [tr, Tn] = w(!1), jt = Qx(), nr = ju({ select: (x) => x.location.pathname }), In = ju({ select: (x) => x.location.search }), ge = ob(nr), ae = ge === "bots" ? nr.split("/").filter(Boolean) : [], me = ae[1] ?? null, Fe = me === "new" ? "new" : ae[2] === "edit" ? me : null, Je = me && me !== "new" ? me : null, pt = ib(nr), Ct = ee(
19172
+ const [Ie, kt] = w([]), [Ze, vt] = w(!0), [Ot, yt] = w(null), [It, Mt] = w(!1), [xt, bt] = w(!1), [on, jt] = w(null), [Nn, Zt] = w(0), [tr, Tn] = w(!1), Ut = Qx(), nr = ju({ select: (x) => x.location.pathname }), In = ju({ select: (x) => x.location.search }), ge = ob(nr), ae = ge === "bots" ? nr.split("/").filter(Boolean) : [], me = ae[1] ?? null, Fe = me === "new" ? "new" : ae[2] === "edit" ? me : null, Je = me && me !== "new" ? me : null, pt = ib(nr), Ct = ee(
19168
19173
  (x) => ({
19169
19174
  ...x.embed ? { embed: x.embed } : {},
19170
19175
  ...x.embedOrigin ? { embedOrigin: x.embedOrigin } : {}
@@ -19172,12 +19177,12 @@ function Q3() {
19172
19177
  []
19173
19178
  ), en = ee(
19174
19179
  (x) => {
19175
- x && jt({ to: ab(x), search: Ct });
19180
+ x && Ut({ to: ab(x), search: Ct });
19176
19181
  },
19177
- [jt, Ct]
19182
+ [Ut, Ct]
19178
19183
  ), gn = ee(() => {
19179
- jt({ to: "/", search: Ct });
19180
- }, [jt, Ct]), Vt = Je ? In.conversation ?? null : null, _n = ge === "term" || l !== null, Wn = W(ge);
19184
+ Ut({ to: "/", search: Ct });
19185
+ }, [Ut, Ct]), Vt = Je ? In.conversation ?? null : null, _n = ge === "term" || l !== null, Wn = W(ge);
19181
19186
  Wn.current = ge;
19182
19187
  const tt = ee(
19183
19188
  (x) => {
@@ -19187,24 +19192,24 @@ function Q3() {
19187
19192
  ...ie.embed ? { embed: ie.embed } : {},
19188
19193
  ...ie.embedOrigin ? { embedOrigin: ie.embedOrigin } : {}
19189
19194
  });
19190
- jt(R === Fo ? { to: "/", search: Z } : { to: "/$tab", params: { tab: R }, search: Z });
19195
+ Ut(R === Fo ? { to: "/", search: Z } : { to: "/$tab", params: { tab: R }, search: Z });
19191
19196
  },
19192
- [jt]
19197
+ [Ut]
19193
19198
  ), kn = ee(
19194
19199
  (x, R) => {
19195
19200
  const Z = (ie) => ({
19196
19201
  ...ie.embed ? { embed: ie.embed } : {},
19197
19202
  ...ie.embedOrigin ? { embedOrigin: ie.embedOrigin } : {}
19198
19203
  });
19199
- jt({
19204
+ Ut({
19200
19205
  to: "/bots/$botId",
19201
19206
  params: { botId: x },
19202
19207
  search: (ie) => ({ ...Z(ie), ...R ? { conversation: R } : {} })
19203
19208
  });
19204
19209
  },
19205
- [jt]
19210
+ [Ut]
19206
19211
  ), Hn = ee(() => {
19207
- jt({
19212
+ Ut({
19208
19213
  to: "/$tab",
19209
19214
  params: { tab: "bots" },
19210
19215
  search: (R) => ({
@@ -19212,23 +19217,23 @@ function Q3() {
19212
19217
  ...R.embedOrigin ? { embedOrigin: R.embedOrigin } : {}
19213
19218
  })
19214
19219
  });
19215
- }, [jt]), rr = ee(
19220
+ }, [Ut]), rr = ee(
19216
19221
  (x) => {
19217
19222
  const R = (Z) => ({
19218
19223
  ...Z.embed ? { embed: Z.embed } : {},
19219
19224
  ...Z.embedOrigin ? { embedOrigin: Z.embedOrigin } : {}
19220
19225
  });
19221
19226
  if (x === "new") {
19222
- jt({ to: "/bots/new", search: R });
19227
+ Ut({ to: "/bots/new", search: R });
19223
19228
  return;
19224
19229
  }
19225
- jt({
19230
+ Ut({
19226
19231
  to: "/bots/$botId/edit",
19227
19232
  params: { botId: x.id },
19228
19233
  search: R
19229
19234
  });
19230
19235
  },
19231
- [jt]
19236
+ [Ut]
19232
19237
  ), Q = sA(), { onOpenHostSettings: ce } = Hs(), j = b && !!ce, [We, qe] = w(() => H), [nt, Et] = w(!1), [lt, At] = w(!1);
19233
19238
  G(() => {
19234
19239
  ge === "live" && qe(!0), ge === "notifications" && Et(!0), ge === "artifacts" && At(!0);
@@ -21151,7 +21156,7 @@ ${x.reasoning.map((ir) => `- ${ir}`).join(`
21151
21156
  Ne.error("That agent isn't configured on this box");
21152
21157
  return;
21153
21158
  }
21154
- Pt((Qe) => ({
21159
+ jt((Qe) => ({
21155
21160
  kind: $e,
21156
21161
  // Picking "Claude 2" on the arc should compose on Claude 2, not on
21157
21162
  // whichever account the composer happened to be left on.
@@ -21917,7 +21922,7 @@ function oT({
21917
21922
  T.status.profile ? `Connected as ${T.status.profile.label}` : "Connected"
21918
21923
  ) : T.status.checks.find((Se) => !Se.ok)?.label || "Not set up" })
21919
21924
  ] }),
21920
- T.status.configured ? /* @__PURE__ */ s(Bt, { className: "size-4 shrink-0 text-emerald-500" }) : T.status.setupRunning ? /* @__PURE__ */ s(at, { className: "size-4 shrink-0 animate-spin text-muted-foreground" }) : null
21925
+ T.status.configured ? /* @__PURE__ */ s(Pt, { className: "size-4 shrink-0 text-emerald-500" }) : T.status.setupRunning ? /* @__PURE__ */ s(at, { className: "size-4 shrink-0 animate-spin text-muted-foreground" }) : null
21921
21926
  ]
21922
21927
  },
21923
21928
  T.key
@@ -21926,7 +21931,7 @@ function oT({
21926
21931
  ] }),
21927
21932
  b.lines.length > 0 && /* @__PURE__ */ m("div", { className: "mt-3 overflow-hidden rounded-xl border border-border bg-muted/40", children: [
21928
21933
  /* @__PURE__ */ m("div", { className: "flex items-center gap-2 border-b border-border px-3 py-1.5 text-xs font-medium text-muted-foreground", children: [
21929
- b.running ? /* @__PURE__ */ s(at, { className: "size-3.5 animate-spin" }) : b.error ? /* @__PURE__ */ s("span", { className: "size-2 rounded-full bg-red-500" }) : /* @__PURE__ */ s(Bt, { className: "size-3.5 text-emerald-500" }),
21934
+ b.running ? /* @__PURE__ */ s(at, { className: "size-3.5 animate-spin" }) : b.error ? /* @__PURE__ */ s("span", { className: "size-2 rounded-full bg-red-500" }) : /* @__PURE__ */ s(Pt, { className: "size-3.5 text-emerald-500" }),
21930
21935
  b.running ? "Installing agents…" : b.error ? "Install failed" : "Install complete"
21931
21936
  ] }),
21932
21937
  /* @__PURE__ */ s(
@@ -22794,12 +22799,12 @@ function pT({
22794
22799
  const xt = Oe(
22795
22800
  () => E0(e, (Q) => !!i[Q.sessionId ?? ""]),
22796
22801
  [e, i]
22797
- ), bt = new Set(L), on = (Q) => bt.has(rs(Q.session)) || Q.children.some(on), Pt = (Q) => Zh(Q.session), Nn = xt.roots.filter(
22798
- (Q) => on(Q) && !Pt(Q)
22799
- ), Zt = [], tr = xt.flatten(Nn), Tn = xt.flatten(Zt), jt = Oe(
22802
+ ), bt = new Set(L), on = (Q) => bt.has(rs(Q.session)) || Q.children.some(on), jt = (Q) => Zh(Q.session), Nn = xt.roots.filter(
22803
+ (Q) => on(Q) && !jt(Q)
22804
+ ), Zt = [], tr = xt.flatten(Nn), Tn = xt.flatten(Zt), Ut = Oe(
22800
22805
  () => Yh(
22801
22806
  xt.roots.filter(
22802
- (Q) => !on(Q) && !Pt(Q)
22807
+ (Q) => !on(Q) && !jt(Q)
22803
22808
  ),
22804
22809
  (Q) => xt.flatten([Q]).length,
22805
22810
  Mr
@@ -22809,7 +22814,7 @@ function pT({
22809
22814
  ), In = [
22810
22815
  ...tr,
22811
22816
  ...Tn,
22812
- ...jt.flatMap((Q) => xt.flatten(Q.nodes))
22817
+ ...Ut.flatMap((Q) => xt.flatten(Q.nodes))
22813
22818
  ].map((Q) => Q.sessionId).filter((Q) => !!Q).join(","), ge = Oe(
22814
22819
  () => In ? In.split(",") : [],
22815
22820
  [In]
@@ -23265,7 +23270,7 @@ function pT({
23265
23270
  /* @__PURE__ */ s(
23266
23271
  M0,
23267
23272
  {
23268
- groups: jt,
23273
+ groups: Ut,
23269
23274
  pinnedNodes: Nn,
23270
23275
  pinnedCount: tr.length,
23271
23276
  collapsed: fe,
@@ -24081,7 +24086,7 @@ function yT({
24081
24086
  }
24082
24087
  ) : null,
24083
24088
  p ? /* @__PURE__ */ m("span", { className: "flex shrink-0 items-center gap-1.5 rounded-lg bg-emerald-500/15 px-3 py-1.5 font-medium text-emerald-700 dark:text-emerald-300", children: [
24084
- /* @__PURE__ */ s(Bt, { className: "size-3.5" }),
24089
+ /* @__PURE__ */ s(Pt, { className: "size-3.5" }),
24085
24090
  "Connected"
24086
24091
  ] }) : null
24087
24092
  ] }),
@@ -26507,7 +26512,7 @@ const _T = mr(function({
26507
26512
  Ze(null), Ot({ messageId: me.messageId, pages: 0 });
26508
26513
  },
26509
26514
  [ue, Xe, bt]
26510
- ), Pt = ee(
26515
+ ), jt = ee(
26511
26516
  (ae) => {
26512
26517
  if (!ue.length) return;
26513
26518
  const me = kt != null || vt != null;
@@ -26603,14 +26608,14 @@ const _T = mr(function({
26603
26608
  ae.preventDefault(), Zt();
26604
26609
  return;
26605
26610
  }
26606
- ae.key === "Enter" && (ae.preventDefault(), Pt(ae.shiftKey ? 1 : -1));
26611
+ ae.key === "Enter" && (ae.preventDefault(), jt(ae.shiftKey ? 1 : -1));
26607
26612
  },
26608
- [Zt, Pt]
26613
+ [Zt, jt]
26609
26614
  );
26610
26615
  G(() => {
26611
26616
  xt.current += 1, Mt.current = !1, It.current = null, X(!1), pe(""), _e([]), Be([]), Ke(0), He(!1), ut(0), Ze(null), Ot(null), _t(null), Ie(null), yi();
26612
26617
  }, [t]);
26613
- const Tn = kt ? Xe.get(kt) ?? null : null, jt = Ce.length ? `${Ce[0].index}:${Ce.length}` : "";
26618
+ const Tn = kt ? Xe.get(kt) ?? null : null, Ut = Ce.length ? `${Ce[0].index}:${Ce.length}` : "";
26614
26619
  G(() => {
26615
26620
  if (!xe || Tn == null || !be.length) {
26616
26621
  yi();
@@ -26620,7 +26625,7 @@ const _T = mr(function({
26620
26625
  u.current?.querySelector('[data-find-hit="true"]') ?? null,
26621
26626
  be
26622
26627
  );
26623
- }, [xe, Tn, be, jt]), G(() => yi, []), Dt(() => {
26628
+ }, [xe, Tn, be, Ut]), G(() => yi, []), Dt(() => {
26624
26629
  h(!0), ze.current = !0, I(!0), z.current = null, H.current = null, U.current = !1, S.current = Number.NEGATIVE_INFINITY, J.current.clear(), he.current = null, je.current = !0, T(), D.current = 0;
26625
26630
  }, [t, T]), Dt(() => {
26626
26631
  if (o || v === t) return;
@@ -26859,7 +26864,7 @@ const _T = mr(function({
26859
26864
  "button",
26860
26865
  {
26861
26866
  type: "button",
26862
- onClick: () => Pt(-1),
26867
+ onClick: () => jt(-1),
26863
26868
  disabled: !ue.length,
26864
26869
  "aria-label": "Previous match, further back in the transcript",
26865
26870
  title: "Previous match (Enter)",
@@ -26871,7 +26876,7 @@ const _T = mr(function({
26871
26876
  "button",
26872
26877
  {
26873
26878
  type: "button",
26874
- onClick: () => Pt(1),
26879
+ onClick: () => jt(1),
26875
26880
  disabled: !ue.length,
26876
26881
  "aria-label": "Next match, further forward in the transcript",
26877
26882
  title: "Next match (Shift+Enter)",
@@ -27335,7 +27340,7 @@ function Xc({
27335
27340
  ),
27336
27341
  "aria-label": a ? "Message copied" : "Copy message",
27337
27342
  title: a ? "Copied" : "Copy message",
27338
- children: a ? /* @__PURE__ */ s(Bt, { className: "size-3.5" }) : /* @__PURE__ */ s($r, { className: "size-3.5" })
27343
+ children: a ? /* @__PURE__ */ s(Pt, { className: "size-3.5" }) : /* @__PURE__ */ s($r, { className: "size-3.5" })
27339
27344
  }
27340
27345
  ) : null
27341
27346
  ]
@@ -27966,7 +27971,7 @@ function cu({
27966
27971
  disabled: !l || u || !!v,
27967
27972
  onClick: () => l && void H("/api/projects/use-folder", { path: l.current }),
27968
27973
  children: [
27969
- /* @__PURE__ */ s(Bt, { className: "size-4" }),
27974
+ /* @__PURE__ */ s(Pt, { className: "size-4" }),
27970
27975
  " Use This Folder"
27971
27976
  ]
27972
27977
  }
@@ -28037,7 +28042,7 @@ function H0({
28037
28042
  g ? "bg-blue-500/15 text-blue-500" : "bg-muted text-muted-foreground"
28038
28043
  ),
28039
28044
  children: [
28040
- g ? /* @__PURE__ */ s(Bt, { className: "size-3.5" }) : /* @__PURE__ */ s(Ra, { className: "size-3.5" }),
28045
+ g ? /* @__PURE__ */ s(Pt, { className: "size-3.5" }) : /* @__PURE__ */ s(Ra, { className: "size-3.5" }),
28041
28046
  g ? "Done" : "Manage"
28042
28047
  ]
28043
28048
  }
@@ -28104,7 +28109,7 @@ function H0({
28104
28109
  /* @__PURE__ */ s("span", { className: "block truncate text-sm font-medium", children: "All projects" }),
28105
28110
  f ? /* @__PURE__ */ s("span", { className: "block truncate text-xs text-muted-foreground", children: "Show every session" }) : null
28106
28111
  ] }),
28107
- D ? /* @__PURE__ */ s(Bt, { className: "size-4 shrink-0 text-emerald-500" }) : /* @__PURE__ */ s(Xt, { className: "size-4 shrink-0 text-muted-foreground" })
28112
+ D ? /* @__PURE__ */ s(Pt, { className: "size-4 shrink-0 text-emerald-500" }) : /* @__PURE__ */ s(Xt, { className: "size-4 shrink-0 text-muted-foreground" })
28108
28113
  ]
28109
28114
  }
28110
28115
  ) : null,
@@ -28155,7 +28160,7 @@ function H0({
28155
28160
  /* @__PURE__ */ s("span", { className: "block truncate text-sm font-medium", children: S.name }),
28156
28161
  f ? /* @__PURE__ */ s("span", { className: "block truncate text-xs text-muted-foreground", children: S.cwd }) : null
28157
28162
  ] }),
28158
- S.cwd === n ? /* @__PURE__ */ s(Bt, { className: "size-4 shrink-0 text-emerald-500" }) : /* @__PURE__ */ s(Xt, { className: "size-4 shrink-0 text-muted-foreground" })
28163
+ S.cwd === n ? /* @__PURE__ */ s(Pt, { className: "size-4 shrink-0 text-emerald-500" }) : /* @__PURE__ */ s(Xt, { className: "size-4 shrink-0 text-muted-foreground" })
28159
28164
  ]
28160
28165
  },
28161
28166
  S.cwd
@@ -28417,7 +28422,7 @@ function eh({
28417
28422
  scopedCwd: It?.cwd,
28418
28423
  lastCwd: D,
28419
28424
  repos: t
28420
- }), on = t.find((j) => j.cwd === bt)?.name || (bt ? Mr(bt) : "Project"), Pt = le > 0, Nn = (() => {
28425
+ }), on = t.find((j) => j.cwd === bt)?.name || (bt ? Mr(bt) : "Project"), jt = le > 0, Nn = (() => {
28421
28426
  const j = t.find((We) => We.cwd === bt);
28422
28427
  return j ? cr(j) : o !== "__all" ? o : "__all";
28423
28428
  })();
@@ -28435,7 +28440,7 @@ function eh({
28435
28440
  function Tn(j) {
28436
28441
  X(!1), pe(j), window.setTimeout(() => re(!0), 180);
28437
28442
  }
28438
- function jt(j) {
28443
+ function Ut(j) {
28439
28444
  U(j.cwd), localStorage.setItem("lfg_v2_repo", j.cwd), a && a(cr(j)), X(!1);
28440
28445
  }
28441
28446
  const { usage: nr, loading: In } = n4({
@@ -28468,7 +28473,7 @@ function eh({
28468
28473
  ));
28469
28474
  }, [y]), !e && !de) return null;
28470
28475
  function Ct(j, We, qe) {
28471
- if (j?.preventDefault(), Pt) return;
28476
+ if (j?.preventDefault(), jt) return;
28472
28477
  const nt = (We ?? V).trim(), Et = Re;
28473
28478
  if (!nt && !Et.length) return;
28474
28479
  if (!ge.some((Pe) => Pe.key === O)) {
@@ -28675,7 +28680,7 @@ function eh({
28675
28680
  {
28676
28681
  onSubmit: Ct,
28677
28682
  ...Ce.dropZoneProps,
28678
- "aria-busy": Pt,
28683
+ "aria-busy": jt,
28679
28684
  className: B(
28680
28685
  // Inline home: original device home-indicator pad when standalone.
28681
28686
  // Embed cancels --lfg-device-safe-bottom to 0 (host owns that zone) and
@@ -28701,7 +28706,7 @@ function eh({
28701
28706
  ),
28702
28707
  ref: _t,
28703
28708
  children: [
28704
- Pt ? /* @__PURE__ */ s(
28709
+ jt ? /* @__PURE__ */ s(
28705
28710
  "div",
28706
28711
  {
28707
28712
  role: "status",
@@ -28862,7 +28867,7 @@ function eh({
28862
28867
  startCreating: te,
28863
28868
  onOpenChange: re,
28864
28869
  onSelected: async (j) => {
28865
- jt(j), await u();
28870
+ Ut(j), await u();
28866
28871
  },
28867
28872
  onUnavailablePath: (j) => {
28868
28873
  U((We) => We === j ? "" : We);
@@ -28877,7 +28882,7 @@ function eh({
28877
28882
  repos: t,
28878
28883
  selected: bt,
28879
28884
  onOpenChange: X,
28880
- onSelect: jt,
28885
+ onSelect: Ut,
28881
28886
  onBrowse: () => Tn(!1),
28882
28887
  onCreate: () => Tn(!0),
28883
28888
  allSelected: xt,
@@ -28898,7 +28903,7 @@ function eh({
28898
28903
  "div",
28899
28904
  {
28900
28905
  ref: zt,
28901
- "aria-busy": Pt,
28906
+ "aria-busy": jt,
28902
28907
  className: "mobile-scroll-composer-fade pointer-events-auto relative z-[55] mt-auto shrink-0 overflow-x-clip bg-background/95 shadow-[0_-8px_24px_rgba(0,0,0,0.12)] backdrop-blur-xl",
28903
28908
  children: /* @__PURE__ */ s("div", { ref: Ie, className: "mx-auto max-w-lg will-change-transform", children: ce })
28904
28909
  }
@@ -29524,7 +29529,7 @@ function uu({
29524
29529
  z ? "bg-primary/12 text-foreground ring-1 ring-inset ring-primary/20" : B("text-foreground focus-visible:bg-muted", !a && "hover:bg-muted")
29525
29530
  ),
29526
29531
  children: [
29527
- /* @__PURE__ */ s(Bt, { className: B("size-4 shrink-0 text-primary", z ? "opacity-100" : "opacity-0") }),
29532
+ /* @__PURE__ */ s(Pt, { className: B("size-4 shrink-0 text-primary", z ? "opacity-100" : "opacity-0") }),
29528
29533
  /* @__PURE__ */ s("span", { className: "min-w-0 flex-1 truncate", children: E })
29529
29534
  ]
29530
29535
  },
@@ -29862,7 +29867,7 @@ function rI({
29862
29867
  disabled: f || !C.trim(),
29863
29868
  onClick: Xe,
29864
29869
  children: [
29865
- /* @__PURE__ */ s(Bt, { className: "size-4" }),
29870
+ /* @__PURE__ */ s(Pt, { className: "size-4" }),
29866
29871
  "Update agent"
29867
29872
  ]
29868
29873
  }
@@ -29924,7 +29929,7 @@ function rI({
29924
29929
  onClick: () => void Re(),
29925
29930
  className: "flex-1",
29926
29931
  children: [
29927
- f ? /* @__PURE__ */ s(at, { className: "size-4 animate-spin" }) : /* @__PURE__ */ s(Bt, { className: "size-4" }),
29932
+ f ? /* @__PURE__ */ s(at, { className: "size-4 animate-spin" }) : /* @__PURE__ */ s(Pt, { className: "size-4" }),
29928
29933
  "Make the change"
29929
29934
  ]
29930
29935
  }
@@ -30028,7 +30033,7 @@ function rI({
30028
30033
  /* @__PURE__ */ s("div", { className: "mt-1 text-[13.5px] leading-relaxed", children: e.suggest })
30029
30034
  ] }) : null,
30030
30035
  e.fixCommit ? /* @__PURE__ */ m("div", { className: "mt-3.5 flex items-center gap-2 text-[13px] text-muted-foreground", children: [
30031
- /* @__PURE__ */ s(Bt, { className: "size-3.5 shrink-0 text-success" }),
30036
+ /* @__PURE__ */ s(Pt, { className: "size-3.5 shrink-0 text-success" }),
30032
30037
  /* @__PURE__ */ m("span", { children: [
30033
30038
  e.status === "resolved" ? "Fixed in" : "Fix landed in",
30034
30039
  " ",
@@ -30571,7 +30576,7 @@ function lI() {
30571
30576
  const [e, t] = w(null), [n, r] = w(!1);
30572
30577
  G(() => {
30573
30578
  let l = !0;
30574
- return Wt("/api/voice/config").then((c) => c.ok ? c.json() : null).then((c) => {
30579
+ return Bt("/api/voice/config").then((c) => c.ok ? c.json() : null).then((c) => {
30575
30580
  l && c && t(c);
30576
30581
  }).catch(() => {
30577
30582
  }), () => {
@@ -30581,7 +30586,7 @@ function lI() {
30581
30586
  const o = async (l) => {
30582
30587
  t((c) => c && { ...c, settings: { ...c.settings, ...l } }), r(!0);
30583
30588
  try {
30584
- const u = await (await Wt("/api/voice/config", {
30589
+ const u = await (await Bt("/api/voice/config", {
30585
30590
  method: "POST",
30586
30591
  headers: { "Content-Type": "application/json" },
30587
30592
  body: JSON.stringify(l)
@@ -31591,7 +31596,7 @@ function EI() {
31591
31596
  }
31592
31597
  function ex(e) {
31593
31598
  const [t, n] = w(null), [r, o] = w(!1), [i, a] = w(null), l = e ? `?email=${encodeURIComponent(e)}` : "", c = ee(() => {
31594
- Wt(`/api/settings/icon${l}`).then((f) => f.ok ? f.json() : null).then((f) => {
31599
+ Bt(`/api/settings/icon${l}`).then((f) => f.ok ? f.json() : null).then((f) => {
31595
31600
  f?.avatar && n({ avatar: f.avatar, hasCustomIcon: !!f.hasCustomIcon });
31596
31601
  }).catch(() => {
31597
31602
  });
@@ -31769,7 +31774,7 @@ function ih({
31769
31774
  children: r
31770
31775
  }
31771
31776
  ),
31772
- o ? i ? /* @__PURE__ */ s(Bt, { className: "size-3.5 text-success" }) : /* @__PURE__ */ s($r, { className: "size-3.5 text-muted-foreground/60" }) : null
31777
+ o ? i ? /* @__PURE__ */ s(Pt, { className: "size-3.5 text-success" }) : /* @__PURE__ */ s($r, { className: "size-3.5 text-muted-foreground/60" }) : null
31773
31778
  ] })
31774
31779
  ] });
31775
31780
  return o ? /* @__PURE__ */ s(
@@ -33515,7 +33520,7 @@ export {
33515
33520
  xd as a0,
33516
33521
  Eh as a1,
33517
33522
  IS as a2,
33518
- Wt as a3,
33523
+ Bt as a3,
33519
33524
  w1 as a4,
33520
33525
  Nr as a5,
33521
33526
  Ra as a6,
@@ -33553,6 +33558,6 @@ export {
33553
33558
  Vo as v,
33554
33559
  Ne as w,
33555
33560
  pn as x,
33556
- Bt as y,
33561
+ Pt as y,
33557
33562
  ti as z
33558
33563
  };
package/dist-lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "@tanstack/react-router";
4
- import { af as m, ag as o, ah as s } from "./embedded-CsrJ3OrR.js";
4
+ import { af as m, ag as o, ah as s } from "./embedded-BY3Brrra.js";
5
5
  export {
6
6
  m as OmgAppSurface,
7
7
  o as OmgSettingsSurface,
@@ -1,4 +1,4 @@
1
- import { f as h } from "./embedded-CsrJ3OrR.js";
1
+ import { f as h } from "./embedded-BY3Brrra.js";
2
2
  /**
3
3
  * @license lucide-react v0.577.0 - ISC
4
4
  *
@@ -1,5 +1,5 @@
1
1
  import { jsx as t, jsxs as s, Fragment as R } from "react/jsx-runtime";
2
- import { r as X, P as J, a as le, g as oe, h as ie, i as ce, X as K, A as P, R as Y, j as de, S as ue, k as Z, T as me, l as he, m as pe, C as fe, L as ge } from "./embedded-CsrJ3OrR.js";
2
+ import { r as X, P as J, a as le, g as oe, h as ie, i as ce, X as K, A as P, R as Y, j as de, S as ue, k as Z, T as me, l as he, m as pe, C as fe, L as ge } from "./embedded-BY3Brrra.js";
3
3
  import { cn as x } from "cnfast";
4
4
  import { useState as a, useRef as E, useEffect as C, useCallback as xe } from "react";
5
5
  function be(r) {
@@ -1,5 +1,5 @@
1
1
  import { jsx as s, jsxs as a, Fragment as w } from "react/jsx-runtime";
2
- import { a as $, D as C, b as T, c as M, d as D, G as S, e as F, t as L, L as R } from "./embedded-CsrJ3OrR.js";
2
+ import { a as $, D as C, b as T, c as M, d as D, G as S, e as F, t as L, L as R } from "./embedded-BY3Brrra.js";
3
3
  import { useState as g, useCallback as j, useEffect as z } from "react";
4
4
  import "@base-ui/react/collapsible";
5
5
  import { cn as P } from "cnfast";
@@ -1,6 +1,6 @@
1
1
  import { jsxs as o, jsx as r, Fragment as ce } from "react/jsx-runtime";
2
2
  import { useState as f, useEffect as v, useRef as ue, useContext as _e, useMemo as $e } from "react";
3
- import { f as Se, E as me, F as Te, H as _, I as fe, J as ze, N as Pe, O as Fe, B as Ge, L as he, Q as je, k as J, C as Ye, R as Be, T as Ke, U as Ue, v as pe, q as He, V as Ve, a as C, W as N, Y as D, w as R, Z as Q, _ as qe, $ as Je, a0 as Qe, a1 as Xe, n as Oe, a2 as We } from "./embedded-CsrJ3OrR.js";
3
+ import { f as Se, E as me, F as Te, H as _, I as fe, J as ze, N as Pe, O as Fe, B as Ge, L as he, Q as je, k as J, C as Ye, R as Be, T as Ke, U as Ue, v as pe, q as He, V as Ve, a as C, W as N, Y as D, w as R, Z as Q, _ as qe, $ as Je, a0 as Qe, a1 as Xe, n as Oe, a2 as We } from "./embedded-BY3Brrra.js";
4
4
  import { cn as $ } from "cnfast";
5
5
  /**
6
6
  * @license lucide-react v0.577.0 - ISC
@@ -3,7 +3,7 @@ import { useMemo as We, useState as Ce, useEffect as xe, useRef as Ve } from "re
3
3
  import { r as He, t as T, o as Ue, u as be, y as L, A as Je, a as Qe } from "./chunk-YOKDWASO-B5AA2F8u.js";
4
4
  import { b as Xe, c as Ye, a as Ze, d as Ke } from "./engine-compile-D_stzVMa.js";
5
5
  import { cn as je } from "cnfast";
6
- import { a9 as et, y as tt, aa as nt } from "./embedded-CsrJ3OrR.js";
6
+ import { a9 as et, y as tt, aa as nt } from "./embedded-BY3Brrra.js";
7
7
  const d = (
8
8
  /** @type {const} */
9
9
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omg-dev/app",
3
- "version": "0.6.20",
3
+ "version": "0.6.21",
4
4
  "description": "The full OMG application surface for React hosts.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://omg.dev",
@@ -29,7 +29,7 @@
29
29
  "@chenglou/pretext": "^0.0.8",
30
30
  "@novnc/novnc": "^1.7.0",
31
31
  "@number-flow/react": "^0.6.2",
32
- "@omg-dev/client": "0.6.20",
32
+ "@omg-dev/client": "0.6.21",
33
33
  "@pierre/diffs": "^1.3.1",
34
34
  "@pierre/trees": "1.0.0-beta.6",
35
35
  "@streamdown/cjk": "^1.0.3",