@omg-dev/app 0.6.1 → 0.6.3
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.
- package/dist-lib/{ChangelogPage-Cjj_DiYL.js → ChangelogPage-Bv_rKSK3.js} +30 -1
- package/dist-lib/{SessionFilesPanel-DxVJ43fE.js → SessionFilesPanel-BTJ9vqdn.js} +8 -8
- package/dist-lib/{TermView-B4V-DyD-.js → TermView-BTJAs7MJ.js} +133 -149
- package/dist-lib/{chat-engine-CUiDTHFP.js → chat-engine-B40IRpBU.js} +1 -1
- package/dist-lib/{coding-agents-page-DtxZ0nbQ.js → coding-agents-page-DQKPO5Bl.js} +1 -1
- package/dist-lib/{computer-page-DIJeFOZz.js → computer-page-DovSToHI.js} +1770 -1640
- package/dist-lib/{embedded-PUsgcSTE.js → embedded-DPWsHnEw.js} +9167 -9045
- package/dist-lib/index.d.ts +7 -0
- package/dist-lib/index.js +1 -1
- package/dist-lib/keyboard-B1h20l1J.js +21 -0
- package/dist-lib/{resume-session-sheet-DTe_2QtJ.js → resume-session-sheet-CNJj84m_.js} +1 -1
- package/dist-lib/{session-token-usage-DY4vFlfs.js → session-token-usage-DMGD9_8J.js} +1 -1
- package/dist-lib/{shipped-page-B-ruG8li.js → shipped-page-CLVvmH2T.js} +32 -32
- package/dist-lib/{streamdown-response-BQy3geXs.js → streamdown-response-CaF9L4PO.js} +1 -1
- package/dist-lib/styles.css +1 -1
- package/package.json +2 -2
package/dist-lib/index.d.ts
CHANGED
|
@@ -99,6 +99,11 @@ export interface EmbeddedViewer {
|
|
|
99
99
|
avatar?: string;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
export type EmbeddedAnalyticsEventHandler = (
|
|
103
|
+
name: string,
|
|
104
|
+
data?: Record<string, unknown>,
|
|
105
|
+
) => void;
|
|
106
|
+
|
|
102
107
|
export interface OmgAppSurfaceProps {
|
|
103
108
|
transport: OmgTransport;
|
|
104
109
|
assetBaseUrl?: string;
|
|
@@ -112,6 +117,8 @@ export interface OmgAppSurfaceProps {
|
|
|
112
117
|
* keep provider connections as an optional Settings action.
|
|
113
118
|
*/
|
|
114
119
|
connectionOnboarding?: boolean;
|
|
120
|
+
/** Deliver embedded product events through the host's analytics client. */
|
|
121
|
+
onAnalyticsEvent?: EmbeddedAnalyticsEventHandler;
|
|
115
122
|
/**
|
|
116
123
|
* Personalizes hosted welcome/status copy without changing LFG roster,
|
|
117
124
|
* session ownership, filtering, or authorization semantics.
|
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-
|
|
4
|
+
import { af as m, ag as o, ah as s } from "./embedded-DPWsHnEw.js";
|
|
5
5
|
export {
|
|
6
6
|
m as OmgAppSurface,
|
|
7
7
|
o as OmgSettingsSurface,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { f as h } from "./embedded-DPWsHnEw.js";
|
|
2
|
+
/**
|
|
3
|
+
* @license lucide-react v0.577.0 - ISC
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the ISC license.
|
|
6
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
const e = [
|
|
9
|
+
["path", { d: "M10 8h.01", key: "1r9ogq" }],
|
|
10
|
+
["path", { d: "M12 12h.01", key: "1mp3jc" }],
|
|
11
|
+
["path", { d: "M14 8h.01", key: "1primd" }],
|
|
12
|
+
["path", { d: "M16 12h.01", key: "1l6xoz" }],
|
|
13
|
+
["path", { d: "M18 8h.01", key: "emo2bl" }],
|
|
14
|
+
["path", { d: "M6 8h.01", key: "x9i8wu" }],
|
|
15
|
+
["path", { d: "M7 16h10", key: "wp8him" }],
|
|
16
|
+
["path", { d: "M8 12h.01", key: "czm47f" }],
|
|
17
|
+
["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }]
|
|
18
|
+
], d = h("keyboard", e);
|
|
19
|
+
export {
|
|
20
|
+
d as K
|
|
21
|
+
};
|
|
@@ -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,
|
|
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-DPWsHnEw.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-
|
|
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-DPWsHnEw.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 {
|
|
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-DPWsHnEw.js";
|
|
4
4
|
import { cn as $ } from "cnfast";
|
|
5
5
|
/**
|
|
6
6
|
* @license lucide-react v0.577.0 - ISC
|
|
@@ -19,7 +19,7 @@ const Ze = [
|
|
|
19
19
|
["path", { d: "M7 11h10", key: "1twpyw" }],
|
|
20
20
|
["path", { d: "M7 15h6", key: "d9of3u" }],
|
|
21
21
|
["path", { d: "M7 7h8", key: "af5zfr" }]
|
|
22
|
-
], et =
|
|
22
|
+
], et = Se("message-square-text", Ze), O = "lfg-notification-read-state", tt = "lfg_notification_reads_v1:";
|
|
23
23
|
function be(n) {
|
|
24
24
|
return `${tt}${n?.trim().toLowerCase() || "__device__"}`;
|
|
25
25
|
}
|
|
@@ -43,10 +43,10 @@ function xe(n, i) {
|
|
|
43
43
|
})
|
|
44
44
|
)), i;
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function S(n) {
|
|
47
47
|
return `shipped:${n.id}:${n.rev}`;
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function X(n, i) {
|
|
50
50
|
return n ? i.ts > n.through && !n.ids.includes(i.id) : !1;
|
|
51
51
|
}
|
|
52
52
|
function st(n, i) {
|
|
@@ -69,7 +69,7 @@ function nt({
|
|
|
69
69
|
children: c
|
|
70
70
|
}) {
|
|
71
71
|
return /* @__PURE__ */ o("div", { className: "relative h-32 w-full overflow-hidden bg-background", children: [
|
|
72
|
-
/* @__PURE__ */ r(
|
|
72
|
+
/* @__PURE__ */ r(Je, { path: n, cacheKey: i, className: "h-full w-full" }),
|
|
73
73
|
c
|
|
74
74
|
] });
|
|
75
75
|
}
|
|
@@ -98,7 +98,7 @@ function at({
|
|
|
98
98
|
className: "relative size-[52px] shrink-0 overflow-hidden rounded-lg border border-border/60 bg-muted transition-transform active:scale-[0.97]",
|
|
99
99
|
children: [
|
|
100
100
|
l.kind === "image" ? /* @__PURE__ */ r(
|
|
101
|
-
|
|
101
|
+
Qe,
|
|
102
102
|
{
|
|
103
103
|
path: l.url,
|
|
104
104
|
alt: l.caption || l.name,
|
|
@@ -109,7 +109,7 @@ function at({
|
|
|
109
109
|
// Deliberately an icon, not a live preview. A document scaled into a
|
|
110
110
|
// 52px box is two words of giant text — unreadable, and it costs a
|
|
111
111
|
// fetch + parse per row. The Artifacts page is where previews belong.
|
|
112
|
-
/* @__PURE__ */ r("span", { className: "flex size-full items-center justify-center bg-primary/10 text-primary", children: /* @__PURE__ */ r(
|
|
112
|
+
/* @__PURE__ */ r("span", { className: "flex size-full items-center justify-center bg-primary/10 text-primary", children: /* @__PURE__ */ r(Xe, { className: "size-4" }) })
|
|
113
113
|
) : /* @__PURE__ */ r("span", { className: "flex size-full items-center justify-center bg-black/80 text-white/80", children: /* @__PURE__ */ r(Oe, { className: "size-4" }) }),
|
|
114
114
|
u > 0 ? /* @__PURE__ */ o("span", { className: "absolute inset-x-0 bottom-0 bg-black/55 py-0.5 text-center text-[9px] font-semibold text-white", children: [
|
|
115
115
|
"+",
|
|
@@ -142,13 +142,13 @@ function ut({
|
|
|
142
142
|
artifactsOnly: p = !1,
|
|
143
143
|
active: g = !0
|
|
144
144
|
}) {
|
|
145
|
-
const h = p ? "artifacts" : "feed",
|
|
145
|
+
const h = p ? "artifacts" : "feed", T = p ? me(D) : null, z = p ? null : me(Q), [m, P] = f(() => z?.items ?? null), [F, W] = f(() => z?.total ?? 0), [G, Z] = f(!1), [w, k] = f(
|
|
146
146
|
() => p ? null : L(u)
|
|
147
|
-
), [
|
|
147
|
+
), [j, ee] = f(!1), [Y, te] = f(null), { questions: b, busy: ye, dismissAll: ve } = Te(), [B, M] = f(!1);
|
|
148
148
|
v(() => {
|
|
149
149
|
M(!1);
|
|
150
150
|
}, [b.length]);
|
|
151
|
-
const [y, A] = f(() =>
|
|
151
|
+
const [y, A] = f(() => T?.items ?? null), [E, K] = f(() => T?.total ?? 0), [U, re] = f(!1), [se, ne] = f(null), [ae, ie] = f(null), oe = "&kind=html", I = ue(Math.max(_, T?.items.length ?? 0)), H = ue(Math.max(fe, z?.items.length ?? 0)), le = _e(ze), Ne = Pe();
|
|
152
152
|
v(() => {
|
|
153
153
|
h === "feed" && k(L(u));
|
|
154
154
|
}, [u, h]), v(() => {
|
|
@@ -173,7 +173,7 @@ function ut({
|
|
|
173
173
|
if (!e) return;
|
|
174
174
|
const s = Array.isArray(a.artifacts) ? a.artifacts : [], x = a.total ?? s.length;
|
|
175
175
|
A((Re) => {
|
|
176
|
-
const Le = new Set(s.map((
|
|
176
|
+
const Le = new Set(s.map((q) => q.id)), Me = (Re ?? []).filter((q) => !Le.has(q.id)), V = [...s, ...Me];
|
|
177
177
|
return I.current = Math.max(_, V.length), N(D, V, x), V;
|
|
178
178
|
}), K(x);
|
|
179
179
|
} catch {
|
|
@@ -264,19 +264,19 @@ function ut({
|
|
|
264
264
|
};
|
|
265
265
|
v(() => {
|
|
266
266
|
if (!(h !== "feed" || !g))
|
|
267
|
-
return
|
|
267
|
+
return Fe((e) => {
|
|
268
268
|
if (!e.ok) {
|
|
269
269
|
P((t) => (t === null && te(e.error), t));
|
|
270
270
|
return;
|
|
271
271
|
}
|
|
272
272
|
P((t) => {
|
|
273
273
|
const d = new Set(e.posts.map((x) => x.id)), a = (t ?? []).filter((x) => !d.has(x.id)), s = [...e.posts, ...a];
|
|
274
|
-
return H.current = Math.max(We, s.length), N(
|
|
274
|
+
return H.current = Math.max(We, s.length), N(Q, s, e.total), s;
|
|
275
275
|
}), W(e.total), te(null);
|
|
276
276
|
});
|
|
277
277
|
}, [h, g]);
|
|
278
278
|
const Ee = async () => {
|
|
279
|
-
if (!
|
|
279
|
+
if (!G) {
|
|
280
280
|
Z(!0);
|
|
281
281
|
try {
|
|
282
282
|
const e = await C(
|
|
@@ -285,7 +285,7 @@ function ut({
|
|
|
285
285
|
);
|
|
286
286
|
P((t) => {
|
|
287
287
|
const d = new Set((t ?? []).map((s) => s.id)), a = [...t ?? [], ...e.posts.filter((s) => !d.has(s.id))];
|
|
288
|
-
return H.current = a.length, N(
|
|
288
|
+
return H.current = a.length, N(Q, a, e.total ?? F), a;
|
|
289
289
|
}), W((t) => e.total ?? t);
|
|
290
290
|
} catch {
|
|
291
291
|
} finally {
|
|
@@ -293,8 +293,8 @@ function ut({
|
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
}, de = m?.filter(
|
|
296
|
-
(e) =>
|
|
297
|
-
id:
|
|
296
|
+
(e) => X(w, {
|
|
297
|
+
id: S(e),
|
|
298
298
|
ts: e.ts
|
|
299
299
|
})
|
|
300
300
|
).length ?? 0, Ie = $e(() => {
|
|
@@ -306,18 +306,18 @@ function ut({
|
|
|
306
306
|
}
|
|
307
307
|
return t;
|
|
308
308
|
}, [m]), Ce = (e) => {
|
|
309
|
-
|
|
310
|
-
id:
|
|
309
|
+
X(w, {
|
|
310
|
+
id: S(e),
|
|
311
311
|
ts: e.ts
|
|
312
312
|
}) && k(
|
|
313
|
-
st(u,
|
|
313
|
+
st(u, S(e))
|
|
314
314
|
);
|
|
315
315
|
}, De = async () => {
|
|
316
|
-
if (!
|
|
316
|
+
if (!j) {
|
|
317
317
|
ee(!0);
|
|
318
318
|
try {
|
|
319
319
|
const e = Math.max(Date.now(), ...(m ?? []).map((t) => t.ts));
|
|
320
|
-
k(ge(u, e)), await
|
|
320
|
+
k(ge(u, e)), await qe(), R.success("Notifications marked read");
|
|
321
321
|
} finally {
|
|
322
322
|
ee(!1);
|
|
323
323
|
}
|
|
@@ -333,15 +333,15 @@ function ut({
|
|
|
333
333
|
// Icon only. It is a rare, undoable housekeeping action — it does not
|
|
334
334
|
// need to be the second-loudest thing on the page.
|
|
335
335
|
/* @__PURE__ */ r(
|
|
336
|
-
|
|
336
|
+
Ge,
|
|
337
337
|
{
|
|
338
338
|
size: "icon-sm",
|
|
339
339
|
variant: "ghost",
|
|
340
340
|
"aria-label": "Mark all read",
|
|
341
341
|
title: "Mark all read — clears the app icon badge",
|
|
342
|
-
disabled:
|
|
342
|
+
disabled: j,
|
|
343
343
|
onClick: () => void De(),
|
|
344
|
-
children:
|
|
344
|
+
children: j ? /* @__PURE__ */ r(he, { className: "size-4 animate-spin" }) : /* @__PURE__ */ r(je, { className: "size-4" })
|
|
345
345
|
}
|
|
346
346
|
)
|
|
347
347
|
) : null
|
|
@@ -378,7 +378,7 @@ function ut({
|
|
|
378
378
|
] }) : null }),
|
|
379
379
|
/* @__PURE__ */ o("div", { className: "px-2.5 py-2 pr-9", children: [
|
|
380
380
|
/* @__PURE__ */ r("div", { className: "truncate text-xs font-medium", children: e.title || e.caption || e.name }),
|
|
381
|
-
/* @__PURE__ */ r("div", { className: "mt-0.5 truncate text-[10px] text-muted-foreground", children: e.lastRefreshedAt ? `Refreshed ${
|
|
381
|
+
/* @__PURE__ */ r("div", { className: "mt-0.5 truncate text-[10px] text-muted-foreground", children: e.lastRefreshedAt ? `Refreshed ${J(e.lastRefreshedAt)}` : `Published ${J(e.ts)}` })
|
|
382
382
|
] })
|
|
383
383
|
]
|
|
384
384
|
}
|
|
@@ -469,8 +469,8 @@ function ut({
|
|
|
469
469
|
Ie.map((e) => /* @__PURE__ */ o("section", { className: "space-y-1.5", children: [
|
|
470
470
|
/* @__PURE__ */ r("h2", { className: "px-1 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground", children: e.label }),
|
|
471
471
|
/* @__PURE__ */ r("div", { className: "overflow-hidden rounded-2xl border border-border bg-card/40 shadow-sm", children: e.items.map((t) => {
|
|
472
|
-
const d = !!t.sessionId && l.has(t.sessionId), a =
|
|
473
|
-
id:
|
|
472
|
+
const d = !!t.sessionId && l.has(t.sessionId), a = X(w, {
|
|
473
|
+
id: S(t),
|
|
474
474
|
ts: t.ts
|
|
475
475
|
}), s = t.mediaItems.length > 0;
|
|
476
476
|
return /* @__PURE__ */ o("article", { className: "relative border-b border-border/50 last:border-b-0", children: [
|
|
@@ -520,7 +520,7 @@ function ut({
|
|
|
520
520
|
"· ",
|
|
521
521
|
t.project
|
|
522
522
|
] }) : null,
|
|
523
|
-
/* @__PURE__ */ r("span", { className: "ml-auto shrink-0 tabular-nums", children:
|
|
523
|
+
/* @__PURE__ */ r("span", { className: "ml-auto shrink-0 tabular-nums", children: J(t.ts) })
|
|
524
524
|
] }),
|
|
525
525
|
/* @__PURE__ */ r("h3", { className: "mt-0.5 line-clamp-2 text-[13.5px] font-semibold leading-snug tracking-[-0.01em]", children: t.title }),
|
|
526
526
|
t.summary ? (
|
|
@@ -544,14 +544,14 @@ function ut({
|
|
|
544
544
|
] }, t.id);
|
|
545
545
|
}) })
|
|
546
546
|
] }, e.label)),
|
|
547
|
-
m !== null && m.length <
|
|
547
|
+
m !== null && m.length < F ? /* @__PURE__ */ r(
|
|
548
548
|
"button",
|
|
549
549
|
{
|
|
550
550
|
type: "button",
|
|
551
551
|
onClick: () => void Ee(),
|
|
552
|
-
disabled:
|
|
552
|
+
disabled: G,
|
|
553
553
|
className: "w-full rounded-xl border border-border bg-card/40 px-4 py-2.5 text-sm font-medium text-muted-foreground transition-colors hover:border-foreground/20 hover:text-foreground disabled:opacity-60",
|
|
554
|
-
children:
|
|
554
|
+
children: G ? "Loading…" : `Load more · ${F - m.length} left`
|
|
555
555
|
}
|
|
556
556
|
) : null
|
|
557
557
|
] })
|
|
@@ -3,7 +3,7 @@ import { useMemo as We, useState as Ce, useEffect as xe, useRef as Ve } from "re
|
|
|
3
3
|
import { B as Ue, C as T, m as He, E as be, F as G, G as Qe, Q as Je } from "./chunk-BO2N2NFS-BbJdm-59.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,
|
|
6
|
+
import { a9 as et, y as tt, aa as nt } from "./embedded-DPWsHnEw.js";
|
|
7
7
|
const d = (
|
|
8
8
|
/** @type {const} */
|
|
9
9
|
{
|