@tangle-network/agent-app 0.45.32 → 0.45.34
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/{DesignCanvas-RSWQCXM3.js → DesignCanvas-EODMDQMT.js} +2 -2
- package/dist/{DesignCanvasEditor-XZMGIST7.js → DesignCanvasEditor-DRRZ6ZD3.js} +4 -4
- package/dist/{InvitationsPanel-CJ7DR4F7.js → InvitationsPanel-BATXZHY4.js} +2 -2
- package/dist/{MembersPanel-BB4OD2KB.js → MembersPanel-XNLF3SA4.js} +2 -2
- package/dist/agent-session-controls-1q1XR3j8.d.ts +257 -0
- package/dist/assistant/index.d.ts +1 -1
- package/dist/assistant/index.js +11 -10
- package/dist/assistant/index.js.map +1 -1
- package/dist/chat-react/index.d.ts +1 -1
- package/dist/chat-react/index.js +1 -1
- package/dist/{chunk-YIQHOAHN.js → chunk-3UBAO3N5.js} +3 -3
- package/dist/{chunk-YIQHOAHN.js.map → chunk-3UBAO3N5.js.map} +1 -1
- package/dist/{chunk-PURHUAOR.js → chunk-556RB3XI.js} +5 -5
- package/dist/chunk-556RB3XI.js.map +1 -0
- package/dist/{chunk-HZ4WCA37.js → chunk-5MZXWPFN.js} +9 -9
- package/dist/chunk-5MZXWPFN.js.map +1 -0
- package/dist/{chunk-FNM7JYME.js → chunk-5N434BGF.js} +17 -17
- package/dist/chunk-5N434BGF.js.map +1 -0
- package/dist/{chunk-5SXS3YAB.js → chunk-7MV23XBW.js} +2 -2
- package/dist/chunk-7MV23XBW.js.map +1 -0
- package/dist/{chunk-IFYJDX3J.js → chunk-AIHKKLKY.js} +47 -46
- package/dist/chunk-AIHKKLKY.js.map +1 -0
- package/dist/{chunk-S564OFTL.js → chunk-F4XLTVQ3.js} +3 -3
- package/dist/{chunk-S564OFTL.js.map → chunk-F4XLTVQ3.js.map} +1 -1
- package/dist/{chunk-LSQR6HM6.js → chunk-IN6LNZ7O.js} +35 -34
- package/dist/chunk-IN6LNZ7O.js.map +1 -0
- package/dist/chunk-MIZMWCKW.js +904 -0
- package/dist/chunk-MIZMWCKW.js.map +1 -0
- package/dist/{chunk-QGOU3VXH.js → chunk-UXRJAUJL.js} +3 -3
- package/dist/design-canvas-react/index.js +8 -8
- package/dist/design-canvas-react/index.js.map +1 -1
- package/dist/design-canvas-react/lazy.js +1 -1
- package/dist/studio-react/index.js +27 -27
- package/dist/studio-react/index.js.map +1 -1
- package/dist/teams-react/index.js +2 -2
- package/dist/teams-react/lazy.js +2 -2
- package/dist/theme/index.js +1 -1
- package/dist/theme/tailwind-preset.d.ts +5 -1
- package/dist/theme/tailwind-preset.js +11 -2
- package/dist/theme/tailwind-preset.js.map +1 -1
- package/dist/theme/tokens.css +126 -79
- package/dist/web-react/async/index.js +1 -1
- package/dist/web-react/index.d.ts +31 -91
- package/dist/web-react/index.js +13 -3
- package/dist/work-product-react/index.js +3 -3
- package/dist/work-product-react/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent-session-controls-BwImzYKC.d.ts +0 -129
- package/dist/chunk-5SXS3YAB.js.map +0 -1
- package/dist/chunk-FNM7JYME.js.map +0 -1
- package/dist/chunk-HZ4WCA37.js.map +0 -1
- package/dist/chunk-IFYJDX3J.js.map +0 -1
- package/dist/chunk-L7FHRORY.js +0 -763
- package/dist/chunk-L7FHRORY.js.map +0 -1
- package/dist/chunk-LSQR6HM6.js.map +0 -1
- package/dist/chunk-PURHUAOR.js.map +0 -1
- /package/dist/{DesignCanvas-RSWQCXM3.js.map → DesignCanvas-EODMDQMT.js.map} +0 -0
- /package/dist/{DesignCanvasEditor-XZMGIST7.js.map → DesignCanvasEditor-DRRZ6ZD3.js.map} +0 -0
- /package/dist/{InvitationsPanel-CJ7DR4F7.js.map → InvitationsPanel-BATXZHY4.js.map} +0 -0
- /package/dist/{MembersPanel-BB4OD2KB.js.map → MembersPanel-XNLF3SA4.js.map} +0 -0
- /package/dist/{chunk-QGOU3VXH.js.map → chunk-UXRJAUJL.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/teams-react/components/InvitationsPanel.tsx"],"sourcesContent":["/**\n * Email-invitation panel: invite by email + role, and a history of every\n * invitation (pending / accepted / expired / revoked) with its email-delivery\n * status. Pending rows expose copy-link / resend / revoke. Fully callback-driven\n * — the host supplies the data and the async `onInvite` / `onResend` / `onRevoke`\n * callbacks (backed by `./teams/invitations-api`), so this imports no app router,\n * fetch client, or toast. Styled with the shipped Tangle Quiet tokens (`var(--*)`).\n *\n * Mount alongside a list-only `MembersPanel` (`showInviteForm={false}`): the\n * members panel shows accepted members, this owns the invite flow + pending list.\n */\n\nimport { useState } from 'react'\nimport type { WorkspaceRole } from '../../teams/roles'\nimport { hasWorkspaceRole } from '../../teams/roles'\nimport type { InvitationView, InvitationsPanelProps } from '../contracts'\n\nconst ASSIGNABLE: { value: WorkspaceRole; label: string }[] = [\n { value: 'viewer', label: 'Viewer' },\n { value: 'editor', label: 'Editor' },\n { value: 'admin', label: 'Admin' },\n]\n\nconst BADGE_BASE = 'inline-flex items-center rounded border px-2 py-0.5 text-[11px] font-semibold uppercase tracking-[0.05em]'\n\n// Lifecycle status: green = in, amber = awaiting, red = killed, muted = lapsed.\nconst STATUS_BADGE: Record<InvitationView['status'], string> = {\n accepted: 'border-[var(--surface-success-border)] bg-[var(--surface-success-bg)] text-[var(--surface-success-text)]',\n pending: 'border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]',\n revoked: 'border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]',\n expired: 'border-[var(--border-default)] text-[var(--text-muted)]',\n}\n\n// Delivery status: red = bounced, amber = not yet attempted, muted = the normal happy path.\nconst EMAIL_BADGE: Record<InvitationView['emailStatus'], string> = {\n sent: 'border-[var(--border-default)] text-[var(--text-muted)]',\n not_sent: 'border-[var(--surface-warning-border)] bg-[var(--surface-warning-bg)] text-[var(--surface-warning-text)]',\n failed: 'border-[var(--surface-danger-border)] bg-[var(--surface-danger-bg)] text-[var(--surface-danger-text)]',\n}\n\nexport function InvitationsPanel({\n invitations,\n currentRole,\n onInvite,\n onResend,\n onRevoke,\n onCopy,\n onNotice,\n}: InvitationsPanelProps) {\n const [inviteEmail, setInviteEmail] = useState('')\n const [inviteRole, setInviteRole] = useState<WorkspaceRole>('editor')\n const [inviting, setInviting] = useState(false)\n const [busyId, setBusyId] = useState<string | null>(null)\n\n const canManage = hasWorkspaceRole(currentRole, 'admin')\n\n function notify(kind: 'success' | 'error', message: string) {\n onNotice?.({ kind, message })\n }\n\n async function submitInvite() {\n const email = inviteEmail.trim()\n if (!email || inviting) return\n setInviting(true)\n try {\n await onInvite({ email, role: inviteRole })\n notify('success', `Invitation sent to ${email}`)\n setInviteEmail('')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to invite')\n } finally {\n setInviting(false)\n }\n }\n\n async function copyLink(inviteUrl: string) {\n try {\n if (onCopy) await onCopy({ inviteUrl })\n else await navigator.clipboard.writeText(inviteUrl)\n notify('success', 'Invite link copied')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to copy link')\n }\n }\n\n async function resend(invitationId: string) {\n setBusyId(invitationId)\n try {\n await onResend({ invitationId })\n notify('success', 'Invitation resent')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to resend invitation')\n } finally {\n setBusyId(null)\n }\n }\n\n async function revoke(invitationId: string) {\n setBusyId(invitationId)\n try {\n await onRevoke({ invitationId })\n notify('success', 'Invitation revoked')\n } catch (err) {\n notify('error', err instanceof Error ? err.message : 'Failed to revoke invitation')\n } finally {\n setBusyId(null)\n }\n }\n\n return (\n <section className=\"flex flex-col gap-4\">\n {canManage && (\n <div className=\"flex flex-col gap-1.5\">\n <label className=\"text-xs font-medium text-[var(--text-muted)]\">Invite by email</label>\n <div className=\"flex gap-2\">\n <input\n type=\"email\"\n placeholder=\"colleague@example.com\"\n value={inviteEmail}\n aria-label=\"Invite email address\"\n onChange={(event) => setInviteEmail(event.target.value)}\n onKeyDown={(event) => { if (event.key === 'Enter') void submitInvite() }}\n className=\"flex-1 rounded border border-[var(--border-default)] bg-[var(--bg-input)] px-3 py-1.5 text-sm text-[var(--text-primary)] placeholder:text-[var(--text-muted)]\"\n />\n <select\n value={inviteRole}\n aria-label=\"Invite role\"\n onChange={(event) => setInviteRole(event.target.value as WorkspaceRole)}\n className=\"rounded border border-[var(--border-default)] bg-[var(--bg-input)] px-2 py-1.5 text-xs text-[var(--text-secondary)]\"\n >\n {ASSIGNABLE.map((option) => (\n <option key={option.value} value={option.value}>{option.label}</option>\n ))}\n </select>\n <button\n type=\"button\"\n onClick={() => void submitInvite()}\n disabled={inviting || !inviteEmail.trim()}\n className=\"rounded bg-[var(--brand-primary)] px-3 py-1.5 text-sm text-white disabled:opacity-50\"\n >\n {inviting ? 'Inviting…' : 'Invite'}\n </button>\n </div>\n </div>\n )}\n\n <div className=\"flex flex-col gap-2 border-t border-[var(--border-default)] pt-3\">\n <div className=\"flex items-center justify-between\">\n <h4 className=\"text-xs font-semibold text-[var(--text-primary)]\">Invitation history</h4>\n <span className=\"text-xs text-[var(--text-muted)]\">{invitations.length} total</span>\n </div>\n {invitations.length === 0 ? (\n <p className=\"text-sm text-[var(--text-muted)]\">No invitations yet.</p>\n ) : (\n invitations.map((invitation) => (\n <InvitationRow\n key={invitation.id}\n invitation={invitation}\n canManage={canManage}\n busy={busyId === invitation.id}\n onCopy={() => void copyLink(invitation.inviteUrl)}\n onResend={() => void resend(invitation.id)}\n onRevoke={() => void revoke(invitation.id)}\n />\n ))\n )}\n </div>\n </section>\n )\n}\n\ninterface InvitationRowProps {\n invitation: InvitationView\n canManage: boolean\n busy: boolean\n onCopy(): void\n onResend(): void\n onRevoke(): void\n}\n\nfunction InvitationRow({ invitation, canManage, busy, onCopy, onResend, onRevoke }: InvitationRowProps) {\n const isPending = invitation.status === 'pending'\n const emailFailed = invitation.emailStatus === 'failed'\n const expiry = new Date(invitation.expiresAt).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n })\n\n return (\n <div className=\"rounded-lg border border-[var(--border-default)] p-3\">\n <div className=\"flex items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-[var(--text-primary)]\">{invitation.email}</p>\n <p className=\"text-xs capitalize text-[var(--text-muted)]\">\n {invitation.permissions} · expires {expiry}\n </p>\n {emailFailed && (\n <p className=\"mt-1 text-xs text-[var(--surface-danger-text)]\">Email was not sent — copy the link to share it.</p>\n )}\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <span className={`${BADGE_BASE} ${STATUS_BADGE[invitation.status]}`}>\n {invitation.status}\n </span>\n <span className={`${BADGE_BASE} ${EMAIL_BADGE[invitation.emailStatus]}`}>\n {invitation.emailStatus.replace('_', ' ')}\n </span>\n </div>\n </div>\n {canManage && isPending && (\n <div className=\"mt-3 flex items-center justify-end gap-2\">\n <button\n type=\"button\"\n onClick={onCopy}\n disabled={busy}\n className=\"rounded border border-[var(--border-default)] px-2 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] disabled:opacity-50\"\n >\n Copy link\n </button>\n <button\n type=\"button\"\n onClick={onResend}\n disabled={busy}\n className=\"rounded border border-[var(--border-default)] px-2 py-1 text-xs text-[var(--text-secondary)] hover:text-[var(--text-primary)] disabled:opacity-50\"\n >\n {busy ? 'Working…' : 'Resend'}\n </button>\n <button\n type=\"button\"\n onClick={onRevoke}\n disabled={busy}\n className=\"rounded px-2 py-1 text-xs text-[var(--text-danger)] hover:bg-[var(--border-default)] disabled:opacity-50\"\n >\n Revoke\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","names":[]}
|
|
@@ -4,12 +4,13 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
WorkProductCard,
|
|
6
6
|
workProductPartsFromMessageParts
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5MZXWPFN.js";
|
|
8
8
|
import {
|
|
9
9
|
ChevronDown,
|
|
10
|
+
OVERLAY_SHADOW,
|
|
10
11
|
POPOVER_OPTION_FOCUS,
|
|
11
12
|
usePending
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MIZMWCKW.js";
|
|
13
14
|
import {
|
|
14
15
|
UNTITLED_SESSION_LABEL,
|
|
15
16
|
mergeSessionPages,
|
|
@@ -278,7 +279,7 @@ function InteractionActionButton({
|
|
|
278
279
|
disabled,
|
|
279
280
|
children
|
|
280
281
|
}) {
|
|
281
|
-
const variantClasses = variant === "primary" ? "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90" : "border border-border bg-transparent text-foreground hover:bg-accent
|
|
282
|
+
const variantClasses = variant === "primary" ? "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90" : "border border-border bg-transparent text-foreground hover:bg-accent";
|
|
282
283
|
return /* @__PURE__ */ jsx2(
|
|
283
284
|
"button",
|
|
284
285
|
{
|
|
@@ -303,7 +304,7 @@ function QuestionOptionList({
|
|
|
303
304
|
return /* @__PURE__ */ jsx2(Fragment, { children: options.map((option, optionIndex) => {
|
|
304
305
|
const inputId = `${idPrefix}-${optionIndex}`;
|
|
305
306
|
const checked = selectedValues.includes(option.value);
|
|
306
|
-
return /* @__PURE__ */ jsxs("label", { htmlFor: inputId, className: "flex cursor-pointer gap-2 rounded-lg border border-border/70 p-3 transition-colors hover:bg-
|
|
307
|
+
return /* @__PURE__ */ jsxs("label", { htmlFor: inputId, className: "flex cursor-pointer gap-2 rounded-lg border border-border/70 p-3 transition-colors hover:bg-accent", children: [
|
|
307
308
|
/* @__PURE__ */ jsx2(
|
|
308
309
|
"input",
|
|
309
310
|
{
|
|
@@ -1055,7 +1056,7 @@ function AttachmentChip({ part, resolveFileUrl, fetchFile }) {
|
|
|
1055
1056
|
const Icon = status === "error" ? WarningGlyph : iconForMediaType(part.mediaType);
|
|
1056
1057
|
const className = [
|
|
1057
1058
|
"inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-[11px]",
|
|
1058
|
-
status === "error" ? "border-destructive/40 bg-destructive/10 text-destructive" : "border-border bg-
|
|
1059
|
+
status === "error" ? "border-destructive/40 bg-destructive/10 text-destructive" : "border-border bg-secondary text-muted-foreground"
|
|
1059
1060
|
].join(" ");
|
|
1060
1061
|
return /* @__PURE__ */ jsxs4(
|
|
1061
1062
|
"button",
|
|
@@ -1585,7 +1586,7 @@ function ChatComposer({
|
|
|
1585
1586
|
pendingFiles.length > 0 && /* @__PURE__ */ jsx7("div", { className: "mb-2 flex flex-wrap gap-1.5", children: [...folderChips, ...fileChips].map((f) => /* @__PURE__ */ jsxs5(
|
|
1586
1587
|
"span",
|
|
1587
1588
|
{
|
|
1588
|
-
className: `inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs ${f.status === "error" ? "border-destructive/40 text-destructive" : "border-border bg-
|
|
1589
|
+
className: `inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs ${f.status === "error" ? "border-destructive/40 text-destructive" : "border-border bg-secondary text-foreground"}`,
|
|
1589
1590
|
children: [
|
|
1590
1591
|
f.kind === "folder" ? /* @__PURE__ */ jsx7(FolderGlyph, { className: "h-3 w-3 shrink-0" }) : /* @__PURE__ */ jsx7(PaperclipGlyph, { className: "h-3 w-3 shrink-0" }),
|
|
1591
1592
|
/* @__PURE__ */ jsx7("span", { className: "max-w-[150px] truncate", children: f.name }),
|
|
@@ -1639,7 +1640,7 @@ function ChatComposer({
|
|
|
1639
1640
|
disabled,
|
|
1640
1641
|
"aria-label": "Attach files",
|
|
1641
1642
|
title: "Attach files",
|
|
1642
|
-
className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent
|
|
1643
|
+
className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:opacity-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1643
1644
|
children: /* @__PURE__ */ jsx7(PaperclipGlyph, { className: "h-4 w-4" })
|
|
1644
1645
|
}
|
|
1645
1646
|
),
|
|
@@ -1654,7 +1655,7 @@ function ChatComposer({
|
|
|
1654
1655
|
disabled,
|
|
1655
1656
|
"aria-label": "Attach folder",
|
|
1656
1657
|
title: "Attach folder",
|
|
1657
|
-
className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent
|
|
1658
|
+
className: "shrink-0 rounded-lg p-2 text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:opacity-50 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1658
1659
|
children: /* @__PURE__ */ jsx7(FolderGlyph, { className: "h-4 w-4" })
|
|
1659
1660
|
}
|
|
1660
1661
|
),
|
|
@@ -2369,7 +2370,7 @@ function FlowWaterfall({ trace }) {
|
|
|
2369
2370
|
return /* @__PURE__ */ jsxs6("div", { className: "space-y-1", children: [
|
|
2370
2371
|
rows.map((row, i) => /* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-[minmax(0,2fr)_minmax(0,3fr)_auto] items-center gap-2", children: [
|
|
2371
2372
|
/* @__PURE__ */ jsx8("span", { className: "truncate font-mono text-[11px] text-muted-foreground", title: row.name, children: row.name }),
|
|
2372
|
-
/* @__PURE__ */ jsx8("div", { className: "relative h-2 rounded-sm bg-
|
|
2373
|
+
/* @__PURE__ */ jsx8("div", { className: "relative h-2 rounded-sm bg-secondary", children: /* @__PURE__ */ jsx8(
|
|
2373
2374
|
"div",
|
|
2374
2375
|
{
|
|
2375
2376
|
className: `absolute inset-y-0 rounded-sm ${row.ok ? BAR_CLASS[row.kind] : "bg-destructive/80"} ${row.approx ? "opacity-70" : ""}`,
|
|
@@ -2422,7 +2423,7 @@ function MissionActivityLane({ activity, startedAt, nowMs }) {
|
|
|
2422
2423
|
]
|
|
2423
2424
|
}
|
|
2424
2425
|
),
|
|
2425
|
-
expanded && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-
|
|
2426
|
+
expanded && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-secondary p-2", children: /* @__PURE__ */ jsx8(
|
|
2426
2427
|
FlowWaterfall,
|
|
2427
2428
|
{
|
|
2428
2429
|
trace: stepActivityFlowTrace(activity, {
|
|
@@ -2455,7 +2456,7 @@ function ActivityRow({
|
|
|
2455
2456
|
/* @__PURE__ */ jsx8(
|
|
2456
2457
|
"span",
|
|
2457
2458
|
{
|
|
2458
|
-
className: `shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${tone === "ok" ? "bg-success/10 text-success" : tone === "error" ? "bg-destructive/10 text-destructive" : tone === "live" ? "bg-warning/10 text-warning" : "bg-
|
|
2459
|
+
className: `shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${tone === "ok" ? "bg-success/10 text-success" : tone === "error" ? "bg-destructive/10 text-destructive" : tone === "live" ? "bg-warning/10 text-warning" : "bg-secondary text-muted-foreground"}`,
|
|
2459
2460
|
children: record.status
|
|
2460
2461
|
}
|
|
2461
2462
|
),
|
|
@@ -2463,7 +2464,7 @@ function ActivityRow({
|
|
|
2463
2464
|
/* @__PURE__ */ jsx8(ChevronGlyph, { className: `h-3 w-3 shrink-0 text-muted-foreground transition-transform ${open ? "rotate-180" : ""}` })
|
|
2464
2465
|
] }),
|
|
2465
2466
|
open && /* @__PURE__ */ jsxs6("div", { className: "space-y-2.5 border-t border-border/40 px-3 py-2.5", children: [
|
|
2466
|
-
record.durationMs !== void 0 && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-
|
|
2467
|
+
record.durationMs !== void 0 && /* @__PURE__ */ jsx8("div", { className: "rounded-md border border-border/50 bg-secondary p-2", children: /* @__PURE__ */ jsx8(FlowWaterfall, { trace: stepActivityFlowTrace([record]) }) }),
|
|
2467
2468
|
/* @__PURE__ */ jsxs6("dl", { className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 font-mono text-[11px]", children: [
|
|
2468
2469
|
/* @__PURE__ */ jsx8("dt", { className: "text-muted-foreground/60", children: "task" }),
|
|
2469
2470
|
/* @__PURE__ */ jsx8("dd", { className: "truncate text-muted-foreground", children: record.taskId }),
|
|
@@ -2517,7 +2518,7 @@ function AgentActivityPanel({ fetchActivity, renderMissionRef, title = "Agent ac
|
|
|
2517
2518
|
onClick: () => void load(),
|
|
2518
2519
|
disabled: loading,
|
|
2519
2520
|
"aria-label": "Refresh",
|
|
2520
|
-
className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent
|
|
2521
|
+
className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:opacity-50",
|
|
2521
2522
|
children: /* @__PURE__ */ jsx8(RefreshGlyph, { className: `h-3.5 w-3.5 ${loading ? "animate-spin" : ""}` })
|
|
2522
2523
|
}
|
|
2523
2524
|
)
|
|
@@ -2532,7 +2533,7 @@ function AgentActivityPanel({ fetchActivity, renderMissionRef, title = "Agent ac
|
|
|
2532
2533
|
type: "button",
|
|
2533
2534
|
onClick: () => void load(cursor),
|
|
2534
2535
|
disabled: loading,
|
|
2535
|
-
className: "w-full rounded-md border border-border bg-card px-3 py-1.5 text-xs font-medium text-muted-foreground transition hover:bg-accent
|
|
2536
|
+
className: "w-full rounded-md border border-border bg-card px-3 py-1.5 text-xs font-medium text-muted-foreground transition hover:bg-accent disabled:opacity-50",
|
|
2536
2537
|
children: "Older runs"
|
|
2537
2538
|
}
|
|
2538
2539
|
)
|
|
@@ -2704,7 +2705,7 @@ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
|
2704
2705
|
var BASIS_TONES = {
|
|
2705
2706
|
extracted: "border-primary/30 bg-primary/10 text-primary",
|
|
2706
2707
|
entered: "border-success/30 bg-success/10 text-success",
|
|
2707
|
-
computed: "border-border bg-
|
|
2708
|
+
computed: "border-border bg-secondary text-foreground",
|
|
2708
2709
|
asserted: "border-warning/40 bg-warning/10 text-warning"
|
|
2709
2710
|
};
|
|
2710
2711
|
var STANDING_TONES = {
|
|
@@ -2815,7 +2816,7 @@ function SourceRow({
|
|
|
2815
2816
|
{
|
|
2816
2817
|
type: "button",
|
|
2817
2818
|
onClick: () => onRetrySource(source, record),
|
|
2818
|
-
className: "ml-2 rounded border border-border px-1.5 py-0.5 text-[11px] font-medium text-foreground hover:bg-accent
|
|
2819
|
+
className: "ml-2 rounded border border-border px-1.5 py-0.5 text-[11px] font-medium text-foreground hover:bg-accent focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
2819
2820
|
children: "Try again"
|
|
2820
2821
|
}
|
|
2821
2822
|
)
|
|
@@ -3396,7 +3397,7 @@ function DialogButton({
|
|
|
3396
3397
|
disabled,
|
|
3397
3398
|
variant = "primary"
|
|
3398
3399
|
}) {
|
|
3399
|
-
const tone = variant === "ghost" ? "text-muted-foreground hover:bg-accent
|
|
3400
|
+
const tone = variant === "ghost" ? "text-muted-foreground hover:bg-accent hover:text-foreground" : variant === "destructive" ? "bg-destructive text-destructive-foreground hover:opacity-90" : "bg-primary text-primary-foreground hover:opacity-90";
|
|
3400
3401
|
return /* @__PURE__ */ jsx11(
|
|
3401
3402
|
"button",
|
|
3402
3403
|
{
|
|
@@ -3440,7 +3441,7 @@ function SessionDialog({
|
|
|
3440
3441
|
role: "dialog",
|
|
3441
3442
|
"aria-modal": "true",
|
|
3442
3443
|
"aria-label": title,
|
|
3443
|
-
className:
|
|
3444
|
+
className: `relative w-full max-w-sm rounded-xl border border-border bg-popover p-5 ${OVERLAY_SHADOW}`,
|
|
3444
3445
|
children: [
|
|
3445
3446
|
/* @__PURE__ */ jsx11("h2", { className: "text-sm font-semibold text-foreground", children: title }),
|
|
3446
3447
|
/* @__PURE__ */ jsx11("div", { className: "mt-3", children }),
|
|
@@ -3617,7 +3618,7 @@ function SessionHistoryPanel({
|
|
|
3617
3618
|
type: "button",
|
|
3618
3619
|
onClick: () => setSelectedIds(new Set(history.items.map((item) => item.id))),
|
|
3619
3620
|
disabled: allVisibleSelected || history.items.length === 0,
|
|
3620
|
-
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent
|
|
3621
|
+
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
|
|
3621
3622
|
children: "Select all"
|
|
3622
3623
|
}
|
|
3623
3624
|
),
|
|
@@ -3627,7 +3628,7 @@ function SessionHistoryPanel({
|
|
|
3627
3628
|
type: "button",
|
|
3628
3629
|
onClick: () => setSelectedIds(/* @__PURE__ */ new Set()),
|
|
3629
3630
|
disabled: selectedCount === 0,
|
|
3630
|
-
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent
|
|
3631
|
+
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
|
|
3631
3632
|
children: "Deselect all"
|
|
3632
3633
|
}
|
|
3633
3634
|
),
|
|
@@ -3670,7 +3671,7 @@ function SessionHistoryPanel({
|
|
|
3670
3671
|
type: "button",
|
|
3671
3672
|
onClick: () => openBulkAction({ kind: "older-than", days: parsedAgeDays }),
|
|
3672
3673
|
disabled: !validAgeDays,
|
|
3673
|
-
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent
|
|
3674
|
+
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
|
|
3674
3675
|
children: [
|
|
3675
3676
|
deleteLabel,
|
|
3676
3677
|
" older"
|
|
@@ -3683,7 +3684,7 @@ function SessionHistoryPanel({
|
|
|
3683
3684
|
type: "button",
|
|
3684
3685
|
onClick: () => openBulkAction({ kind: "newer-than", days: parsedAgeDays }),
|
|
3685
3686
|
disabled: !validAgeDays,
|
|
3686
|
-
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent
|
|
3687
|
+
className: "h-8 rounded-md border border-border px-2.5 text-xs font-medium text-foreground transition hover:bg-accent disabled:opacity-50",
|
|
3687
3688
|
children: [
|
|
3688
3689
|
deleteLabel,
|
|
3689
3690
|
" recent"
|
|
@@ -3775,7 +3776,7 @@ function ErrorBlock({ message, onRetry, inline }) {
|
|
|
3775
3776
|
{
|
|
3776
3777
|
type: "button",
|
|
3777
3778
|
onClick: onRetry,
|
|
3778
|
-
className: "h-8 rounded-md border border-border px-3 text-xs font-medium text-foreground transition hover:bg-accent
|
|
3779
|
+
className: "h-8 rounded-md border border-border px-3 text-xs font-medium text-foreground transition hover:bg-accent",
|
|
3779
3780
|
children: "Retry"
|
|
3780
3781
|
}
|
|
3781
3782
|
)
|
|
@@ -3803,7 +3804,7 @@ function SessionRow({
|
|
|
3803
3804
|
const extras = extraActions?.(session) ?? [];
|
|
3804
3805
|
const hasMenu = Boolean(onRename) || Boolean(onDelete) || extras.length > 0;
|
|
3805
3806
|
const showUnread = Boolean(session.unread) && !responding;
|
|
3806
|
-
return /* @__PURE__ */ jsxs9("div", { className: "group relative flex items-center gap-2 rounded-lg px-3 py-2.5 transition-colors hover:bg-accent
|
|
3807
|
+
return /* @__PURE__ */ jsxs9("div", { className: "group relative flex items-center gap-2 rounded-lg px-3 py-2.5 transition-colors hover:bg-accent", children: [
|
|
3807
3808
|
selectable && /* @__PURE__ */ jsx11(
|
|
3808
3809
|
"input",
|
|
3809
3810
|
{
|
|
@@ -3841,7 +3842,7 @@ function SessionRow({
|
|
|
3841
3842
|
),
|
|
3842
3843
|
menuOpen && /* @__PURE__ */ jsxs9(Fragment5, { children: [
|
|
3843
3844
|
/* @__PURE__ */ jsx11("div", { className: "fixed inset-0 z-20", onClick: () => setMenuOpen(false), "aria-hidden": true }),
|
|
3844
|
-
/* @__PURE__ */ jsxs9("div", { className:
|
|
3845
|
+
/* @__PURE__ */ jsxs9("div", { className: `absolute right-0 z-30 mt-1 w-36 overflow-hidden rounded-md border border-border bg-popover py-1 ${OVERLAY_SHADOW}`, children: [
|
|
3845
3846
|
onRename && /* @__PURE__ */ jsx11(
|
|
3846
3847
|
"button",
|
|
3847
3848
|
{
|
|
@@ -3850,7 +3851,7 @@ function SessionRow({
|
|
|
3850
3851
|
setMenuOpen(false);
|
|
3851
3852
|
onRename(session);
|
|
3852
3853
|
},
|
|
3853
|
-
className: "block w-full px-3 py-1.5 text-left text-xs text-foreground transition hover:bg-accent
|
|
3854
|
+
className: "block w-full px-3 py-1.5 text-left text-xs text-foreground transition hover:bg-accent",
|
|
3854
3855
|
children: renameLabel
|
|
3855
3856
|
}
|
|
3856
3857
|
),
|
|
@@ -3862,7 +3863,7 @@ function SessionRow({
|
|
|
3862
3863
|
setMenuOpen(false);
|
|
3863
3864
|
action.onSelect();
|
|
3864
3865
|
},
|
|
3865
|
-
className: `block w-full px-3 py-1.5 text-left text-xs transition ${action.destructive ? "text-destructive hover:bg-destructive/10" : "text-foreground hover:bg-accent
|
|
3866
|
+
className: `block w-full px-3 py-1.5 text-left text-xs transition ${action.destructive ? "text-destructive hover:bg-destructive/10" : "text-foreground hover:bg-accent"}`,
|
|
3866
3867
|
children: action.label
|
|
3867
3868
|
},
|
|
3868
3869
|
action.id
|
|
@@ -4528,7 +4529,7 @@ function RecordGrid({
|
|
|
4528
4529
|
"Loading ",
|
|
4529
4530
|
caption
|
|
4530
4531
|
] }),
|
|
4531
|
-
Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => /* @__PURE__ */ jsx12("div", { className: "h-8 animate-pulse rounded-md bg-
|
|
4532
|
+
Array.from({ length: Math.max(1, loadingRowCount) }, (_, index) => /* @__PURE__ */ jsx12("div", { className: "h-8 animate-pulse rounded-md bg-secondary", "aria-hidden": true }, index))
|
|
4532
4533
|
]
|
|
4533
4534
|
}
|
|
4534
4535
|
)
|
|
@@ -4581,7 +4582,7 @@ function RecordGrid({
|
|
|
4581
4582
|
{
|
|
4582
4583
|
type: "button",
|
|
4583
4584
|
onClick: empty.action.onClick,
|
|
4584
|
-
className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent
|
|
4585
|
+
className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent",
|
|
4585
4586
|
children: empty.action.label
|
|
4586
4587
|
}
|
|
4587
4588
|
)),
|
|
@@ -4590,7 +4591,7 @@ function RecordGrid({
|
|
|
4590
4591
|
{
|
|
4591
4592
|
type: "button",
|
|
4592
4593
|
onClick: openAdd,
|
|
4593
|
-
className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent
|
|
4594
|
+
className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent",
|
|
4594
4595
|
children: addLabel
|
|
4595
4596
|
}
|
|
4596
4597
|
)
|
|
@@ -4730,7 +4731,7 @@ function RecordGrid({
|
|
|
4730
4731
|
type: "button",
|
|
4731
4732
|
"aria-label": `Keep ${rowLabel}`,
|
|
4732
4733
|
onClick: () => setConfirmDelete(null),
|
|
4733
|
-
className: "rounded-md border border-border px-2 py-1 text-xs font-medium text-muted-foreground transition hover:bg-accent
|
|
4734
|
+
className: "rounded-md border border-border px-2 py-1 text-xs font-medium text-muted-foreground transition hover:bg-accent",
|
|
4734
4735
|
children: "Cancel"
|
|
4735
4736
|
}
|
|
4736
4737
|
)
|
|
@@ -4784,7 +4785,7 @@ function RecordGrid({
|
|
|
4784
4785
|
{
|
|
4785
4786
|
type: "button",
|
|
4786
4787
|
onClick: openAdd,
|
|
4787
|
-
className: "inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent
|
|
4788
|
+
className: "inline-flex items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-sm font-medium text-foreground transition hover:bg-accent",
|
|
4788
4789
|
children: [
|
|
4789
4790
|
/* @__PURE__ */ jsxs10(
|
|
4790
4791
|
"svg",
|
|
@@ -4915,7 +4916,7 @@ function SourceMarker({ panelId, columnHeader, rowLabel, source, open, onToggle
|
|
|
4915
4916
|
{
|
|
4916
4917
|
id: panelId,
|
|
4917
4918
|
role: "note",
|
|
4918
|
-
className:
|
|
4919
|
+
className: `absolute left-0 top-5 z-10 w-64 rounded-lg border border-border bg-popover p-3 text-left ${OVERLAY_SHADOW}`,
|
|
4919
4920
|
children: [
|
|
4920
4921
|
source.quote && /* @__PURE__ */ jsxs10("span", { className: "block border-l-2 border-primary/50 pl-2 text-xs italic leading-snug text-foreground", children: [
|
|
4921
4922
|
"\u201C",
|
|
@@ -5029,7 +5030,7 @@ function AddRecordForm({
|
|
|
5029
5030
|
{
|
|
5030
5031
|
type: "button",
|
|
5031
5032
|
onClick: onCancel,
|
|
5032
|
-
className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-muted-foreground transition hover:bg-accent
|
|
5033
|
+
className: "rounded-md border border-border px-3 py-1.5 text-sm font-medium text-muted-foreground transition hover:bg-accent",
|
|
5033
5034
|
children: "Cancel"
|
|
5034
5035
|
}
|
|
5035
5036
|
)
|
|
@@ -5131,7 +5132,7 @@ function formatTokensPerSecond(msg) {
|
|
|
5131
5132
|
return `${Math.round(msg.completionTokens / (msg.durationMs / 1e3))} tok/s`;
|
|
5132
5133
|
}
|
|
5133
5134
|
function RunDrillIn({ run, onClose }) {
|
|
5134
|
-
return /* @__PURE__ */ jsxs11("div", { className:
|
|
5135
|
+
return /* @__PURE__ */ jsxs11("div", { className: `fixed inset-y-0 right-0 z-50 flex w-[480px] max-w-full flex-col border-l border-border bg-popover ${OVERLAY_SHADOW}`, children: [
|
|
5135
5136
|
/* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2 border-b border-border px-4 py-3", children: [
|
|
5136
5137
|
/* @__PURE__ */ jsx13(
|
|
5137
5138
|
"span",
|
|
@@ -5149,7 +5150,7 @@ function RunDrillIn({ run, onClose }) {
|
|
|
5149
5150
|
type: "button",
|
|
5150
5151
|
onClick: onClose,
|
|
5151
5152
|
"aria-label": "Close",
|
|
5152
|
-
className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent
|
|
5153
|
+
className: "rounded-md p-1.5 text-muted-foreground transition hover:bg-accent hover:text-foreground",
|
|
5153
5154
|
children: /* @__PURE__ */ jsx13("svg", { className: "h-4 w-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx13("path", { d: "M18 6 6 18M6 6l12 12" }) })
|
|
5154
5155
|
}
|
|
5155
5156
|
)
|
|
@@ -5189,7 +5190,7 @@ function ChatEmptyState({
|
|
|
5189
5190
|
{
|
|
5190
5191
|
type: "button",
|
|
5191
5192
|
onClick: door.onSelect,
|
|
5192
|
-
className: "group flex min-h-[44px] flex-col items-start rounded-xl border border-border bg-card px-4 py-3 text-left transition hover:border-primary/40 hover:bg-accent
|
|
5193
|
+
className: "group flex min-h-[44px] flex-col items-start rounded-xl border border-border bg-card px-4 py-3 text-left transition hover:border-primary/40 hover:bg-accent",
|
|
5193
5194
|
children: [
|
|
5194
5195
|
/* @__PURE__ */ jsx13("span", { className: "text-sm font-semibold text-foreground", children: door.label }),
|
|
5195
5196
|
door.description && /* @__PURE__ */ jsx13("span", { className: "mt-0.5 text-[12px] leading-snug text-muted-foreground", children: door.description })
|
|
@@ -5343,7 +5344,7 @@ function ProposalCard({
|
|
|
5343
5344
|
/* @__PURE__ */ jsx13("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-warning-strong", children: "Needs your approval" }),
|
|
5344
5345
|
/* @__PURE__ */ jsx13("p", { className: "mt-0.5 text-[15px] font-semibold leading-snug text-foreground", children: friendlyToolTitle(call) }),
|
|
5345
5346
|
summary && /* @__PURE__ */ jsx13("p", { className: "mt-1 text-[13px] leading-relaxed text-muted-foreground", children: summary }),
|
|
5346
|
-
meta.length > 0 && /* @__PURE__ */ jsx13("div", { className: "mt-1.5 flex flex-wrap items-center gap-1.5", children: meta.map((m, i) => /* @__PURE__ */ jsx13("span", { className: "rounded-full bg-
|
|
5347
|
+
meta.length > 0 && /* @__PURE__ */ jsx13("div", { className: "mt-1.5 flex flex-wrap items-center gap-1.5", children: meta.map((m, i) => /* @__PURE__ */ jsx13("span", { className: "rounded-full bg-secondary px-2 py-0.5 text-[11px] font-medium text-muted-foreground", children: m }, i)) })
|
|
5347
5348
|
] })
|
|
5348
5349
|
] }),
|
|
5349
5350
|
/* @__PURE__ */ jsxs11("div", { className: "flex flex-wrap items-center gap-2 px-4 pb-3.5 pt-3", children: [
|
|
@@ -5364,7 +5365,7 @@ function ProposalCard({
|
|
|
5364
5365
|
type: "button",
|
|
5365
5366
|
disabled: deciding,
|
|
5366
5367
|
onClick: () => decide(() => approval.onReject(pending.proposalId, call.id)),
|
|
5367
|
-
className: "inline-flex min-h-[40px] items-center justify-center rounded-lg border border-border bg-transparent px-4 py-2 text-sm font-medium text-muted-foreground transition hover:bg-accent
|
|
5368
|
+
className: "inline-flex min-h-[40px] items-center justify-center rounded-lg border border-border bg-transparent px-4 py-2 text-sm font-medium text-muted-foreground transition hover:bg-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-60",
|
|
5368
5369
|
children: "Reject"
|
|
5369
5370
|
}
|
|
5370
5371
|
)
|
|
@@ -5389,7 +5390,7 @@ function ProposalCard({
|
|
|
5389
5390
|
function FollowupCard({ call }) {
|
|
5390
5391
|
const a = call.args ?? {};
|
|
5391
5392
|
const when = typeof a.when === "string" ? a.when : typeof a.at === "string" ? a.at : typeof a.schedule === "string" ? a.schedule : null;
|
|
5392
|
-
return /* @__PURE__ */ jsxs11("div", { className: "w-fit min-w-[260px] max-w-full rounded-lg border border-border/60 border-l-2 border-l-primary/60 bg-
|
|
5393
|
+
return /* @__PURE__ */ jsxs11("div", { className: "w-fit min-w-[260px] max-w-full rounded-lg border border-border/60 border-l-2 border-l-primary/60 bg-secondary px-3 py-2 text-sm", children: [
|
|
5393
5394
|
/* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-2", children: [
|
|
5394
5395
|
/* @__PURE__ */ jsx13(ToolGlyph, { name: call.name, className: "h-3.5 w-3.5 shrink-0 text-primary/80" }),
|
|
5395
5396
|
/* @__PURE__ */ jsx13("span", { className: "min-w-0 flex-1 truncate font-medium text-foreground", children: friendlyToolTitle(call) })
|
|
@@ -5428,7 +5429,7 @@ function ToolCallCard({
|
|
|
5428
5429
|
return /* @__PURE__ */ jsxs11(
|
|
5429
5430
|
"div",
|
|
5430
5431
|
{
|
|
5431
|
-
className: `w-fit min-w-[280px] max-w-full rounded-lg border text-xs transition ${failed ? "border-destructive/40 bg-destructive/5" : "border-border/60 bg-
|
|
5432
|
+
className: `w-fit min-w-[280px] max-w-full rounded-lg border text-xs transition ${failed ? "border-destructive/40 bg-destructive/5" : "border-border/60 bg-secondary"}`,
|
|
5432
5433
|
children: [
|
|
5433
5434
|
/* @__PURE__ */ jsxs11("div", { className: "flex w-full items-center gap-2 px-3 py-2", children: [
|
|
5434
5435
|
/* @__PURE__ */ jsxs11(
|
|
@@ -5476,7 +5477,7 @@ function ToolCallCard({
|
|
|
5476
5477
|
{
|
|
5477
5478
|
type: "button",
|
|
5478
5479
|
onClick: () => onOpenRun(call, message),
|
|
5479
|
-
className: "mt-2 rounded border border-border bg-card px-2 py-1 text-[11px] font-medium transition hover:bg-accent
|
|
5480
|
+
className: "mt-2 rounded border border-border bg-card px-2 py-1 text-[11px] font-medium transition hover:bg-accent",
|
|
5480
5481
|
children: "Open full transcript \u2192"
|
|
5481
5482
|
}
|
|
5482
5483
|
)
|
|
@@ -5568,7 +5569,7 @@ function SegmentedBody({
|
|
|
5568
5569
|
) : !streaming && g.calls.length >= COLLAPSE_TOOL_RUN_AT && !g.calls.some(isImportantTool) ? /* @__PURE__ */ jsxs11(
|
|
5569
5570
|
"details",
|
|
5570
5571
|
{
|
|
5571
|
-
className: "rounded-lg border-l-2 border-border/70 bg-
|
|
5572
|
+
className: "rounded-lg border-l-2 border-border/70 bg-secondary px-3 py-2",
|
|
5572
5573
|
children: [
|
|
5573
5574
|
/* @__PURE__ */ jsxs11("summary", { className: "cursor-pointer select-none text-xs font-medium text-muted-foreground", children: [
|
|
5574
5575
|
"Worked through ",
|
|
@@ -5620,7 +5621,7 @@ function CopyMessageButton({ text }) {
|
|
|
5620
5621
|
onClick: copy,
|
|
5621
5622
|
"aria-label": "Copy message",
|
|
5622
5623
|
title: "Copy message",
|
|
5623
|
-
className: "rounded p-0.5 text-muted-foreground transition hover:bg-accent
|
|
5624
|
+
className: "rounded p-0.5 text-muted-foreground transition hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
5624
5625
|
children: copied ? /* @__PURE__ */ jsx13("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: /* @__PURE__ */ jsx13("polyline", { points: "20 6 9 17 4 12" }) }) : /* @__PURE__ */ jsxs11("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [
|
|
5625
5626
|
/* @__PURE__ */ jsx13("rect", { x: "9", y: "9", width: "13", height: "13", rx: "2" }),
|
|
5626
5627
|
/* @__PURE__ */ jsx13("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
|
|
@@ -5673,7 +5674,7 @@ function AssistantMessageImpl({
|
|
|
5673
5674
|
formatTokensPerSecond(msg) && /* @__PURE__ */ jsx13("span", { children: formatTokensPerSecond(msg) }),
|
|
5674
5675
|
formatModelCost(msg, models) && /* @__PURE__ */ jsx13("span", { children: formatModelCost(msg, models) })
|
|
5675
5676
|
] }),
|
|
5676
|
-
reasoning && /* @__PURE__ */ jsxs11("details", { className: "mb-2 rounded-lg border-l-2 border-border/70 bg-
|
|
5677
|
+
reasoning && /* @__PURE__ */ jsxs11("details", { className: "mb-2 rounded-lg border-l-2 border-border/70 bg-secondary px-3 py-2", open: !hasAnswerText, children: [
|
|
5677
5678
|
/* @__PURE__ */ jsx13("summary", { className: "cursor-pointer select-none text-xs font-medium text-muted-foreground", children: !hasAnswerText ? /* @__PURE__ */ jsxs11("span", { className: "animate-pulse", children: [
|
|
5678
5679
|
"Thinking",
|
|
5679
5680
|
thinkingSeconds >= 3 ? ` \xB7 ${thinkingSeconds}s` : "\u2026"
|
|
@@ -5982,4 +5983,4 @@ export {
|
|
|
5982
5983
|
useThinkingSeconds,
|
|
5983
5984
|
ChatMessages
|
|
5984
5985
|
};
|
|
5985
|
-
//# sourceMappingURL=chunk-
|
|
5986
|
+
//# sourceMappingURL=chunk-AIHKKLKY.js.map
|