@schlessera/brain-ui-react 0.19.0 → 0.21.0
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/components/activity/activity-page.d.ts.map +1 -1
- package/dist/components/activity/activity-page.js +90 -16
- package/dist/components/activity/activity-page.js.map +1 -1
- package/dist/components/activity/digest-card.d.ts.map +1 -1
- package/dist/components/activity/digest-card.js +5 -1
- package/dist/components/activity/digest-card.js.map +1 -1
- package/dist/components/activity/push-toggle.d.ts.map +1 -1
- package/dist/components/activity/push-toggle.js +39 -0
- package/dist/components/activity/push-toggle.js.map +1 -1
- package/dist/components/activity/span-bits.d.ts +76 -1
- package/dist/components/activity/span-bits.d.ts.map +1 -1
- package/dist/components/activity/span-bits.js +141 -4
- package/dist/components/activity/span-bits.js.map +1 -1
- package/dist/components/chat/subagent-view.js +8 -4
- package/dist/components/chat/subagent-view.js.map +1 -1
- package/dist/components/settings/models-tab.d.ts +15 -0
- package/dist/components/settings/models-tab.d.ts.map +1 -1
- package/dist/components/settings/models-tab.js +100 -21
- package/dist/components/settings/models-tab.js.map +1 -1
- package/dist/lib/api-client.d.ts +29 -2
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +14 -1
- package/dist/lib/api-client.js.map +1 -1
- package/dist/stores/activity-store.d.ts +25 -0
- package/dist/stores/activity-store.d.ts.map +1 -1
- package/dist/stores/activity-store.js +82 -0
- package/dist/stores/activity-store.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
- package/src/components/activity/activity-page.tsx +307 -32
- package/src/components/activity/digest-card.tsx +5 -1
- package/src/components/activity/push-toggle.tsx +29 -0
- package/src/components/activity/span-bits.tsx +184 -4
- package/src/components/chat/subagent-view.tsx +33 -23
- package/src/components/settings/models-tab.tsx +135 -21
- package/src/lib/api-client.ts +38 -2
- package/src/stores/activity-store.ts +82 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-page.d.ts","sourceRoot":"","sources":["../../../src/components/activity/activity-page.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"activity-page.d.ts","sourceRoot":"","sources":["../../../src/components/activity/activity-page.tsx"],"names":[],"mappings":"AAmDA;;;;;;;;GAQG;AACH,wBAAgB,YAAY,gCAsQ3B"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo, useState } from "react";
|
|
3
|
-
import { Activity as ActivityIcon, AlertTriangle, ArrowLeft, Bot, Clock, RefreshCw, Timer, } from "lucide-react";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, useEffect, useMemo, useState } from "react";
|
|
3
|
+
import { Activity as ActivityIcon, AlertTriangle, ArrowLeft, Bot, ChevronRight, Clock, RefreshCw, Timer, } from "lucide-react";
|
|
4
4
|
import { useShallow } from "zustand/react/shallow";
|
|
5
5
|
import { isFailureOutcome } from "@schlessera/brain-ui-sdk/protocol";
|
|
6
6
|
import { api, } from "../../lib/api-client.js";
|
|
7
7
|
import { sendClientMessage } from "../../hooks/use-websocket.js";
|
|
8
8
|
import { useNow } from "../../hooks/use-now.js";
|
|
9
|
-
import { useActivityStore, runSpans } from "../../stores/activity-store.js";
|
|
9
|
+
import { useActivityStore, narrativeEventsFor, runEvents, runSpans, } from "../../stores/activity-store.js";
|
|
10
10
|
import { useChatStore } from "../../stores/chat-store.js";
|
|
11
11
|
import { useUIStore } from "../../stores/ui-store.js";
|
|
12
12
|
import { cn } from "../../lib/utils.js";
|
|
13
13
|
import { formatDuration, formatRelativeTime, formatTokenCount, } from "../chat/tool-views.js";
|
|
14
|
-
import { SpanStatusDot, spanToolLabel } from "./span-bits.js";
|
|
14
|
+
import { SpanEventBlock, SpanPayload, SpanStatusDot, formatAggregateCost, formatEffectiveCost, formatSpanUsage, runCostText, spanToolLabel, } from "./span-bits.js";
|
|
15
15
|
import { PushToggle } from "./push-toggle.js";
|
|
16
|
+
import { SettingsPanel } from "../settings/settings-panel.js";
|
|
16
17
|
/**
|
|
17
18
|
* The Activity surface: an INDEX of all agent activity — live runs first,
|
|
18
19
|
* then history — with cost/token rollups. Deliberately not a residence:
|
|
@@ -27,11 +28,15 @@ export function ActivityPage() {
|
|
|
27
28
|
const connectionEpoch = useActivityStore((s) => s.connectionEpoch);
|
|
28
29
|
const liveSpans = useActivityStore((s) => s.spans);
|
|
29
30
|
const setActiveView = useUIStore((s) => s.setActiveView);
|
|
31
|
+
const openSettings = useUIStore((s) => s.openSettings);
|
|
32
|
+
const settingsPanelOpen = useUIStore((s) => s.settingsPanelOpen);
|
|
33
|
+
const setSettingsPanelOpen = useUIStore((s) => s.setSettingsPanelOpen);
|
|
30
34
|
const setActiveSession = useChatStore((s) => s.setActiveSession);
|
|
31
35
|
const [runs, setRuns] = useState(null);
|
|
32
36
|
const [rollups, setRollups] = useState(null);
|
|
33
37
|
const [error, setError] = useState(null);
|
|
34
38
|
const [detailRunId, setDetailRunId] = useState(null);
|
|
39
|
+
const [pricingStale, setPricingStale] = useState(false);
|
|
35
40
|
const inbox = useActivityStore((s) => s.inbox);
|
|
36
41
|
const loadInbox = useActivityStore((s) => s.loadInbox);
|
|
37
42
|
const acknowledgeIntent = useActivityStore((s) => s.acknowledgeIntent);
|
|
@@ -42,6 +47,13 @@ export function ActivityPage() {
|
|
|
42
47
|
.then(setRuns)
|
|
43
48
|
.catch((err) => setError(err instanceof Error ? err.message : String(err)));
|
|
44
49
|
api.activityRollups(7).then(setRollups).catch(() => { });
|
|
50
|
+
// Surface the pricing warning only when the table is stale AND refreshes
|
|
51
|
+
// are failing — a merely-aging table heals itself. A rejection (including
|
|
52
|
+
// 404 from a server that predates the route) means no signal: stay quiet.
|
|
53
|
+
api
|
|
54
|
+
.pricingState()
|
|
55
|
+
.then((s) => setPricingStale(Boolean(s.stale && s.error)))
|
|
56
|
+
.catch(() => setPricingStale(false));
|
|
45
57
|
void loadInbox();
|
|
46
58
|
};
|
|
47
59
|
// Re-runs on every reconnect (connectionEpoch): the new socket has no
|
|
@@ -120,7 +132,7 @@ export function ActivityPage() {
|
|
|
120
132
|
if (detailRunId) {
|
|
121
133
|
return _jsx(RunDetail, { runId: detailRunId, onBack: () => showDetail(null) });
|
|
122
134
|
}
|
|
123
|
-
return (_jsxs("div", { className: "flex h-full flex-col overflow-y-auto", children: [_jsxs("div", { className: "flex items-center gap-2 border-b border-border-subtle px-4 py-3", children: [_jsx(ActivityIcon, { className: "h-4 w-4 text-muted-foreground" }), _jsx("h1", { className: "text-sm font-medium", children: "Activity" }),
|
|
135
|
+
return (_jsxs("div", { className: "flex h-full flex-col overflow-y-auto", children: [_jsx(SettingsPanel, { open: settingsPanelOpen, onClose: () => setSettingsPanelOpen(false) }), _jsxs("div", { className: "flex items-center gap-2 border-b border-border-subtle px-4 py-3", children: [_jsx(ActivityIcon, { className: "h-4 w-4 text-muted-foreground" }), _jsx("h1", { className: "text-sm font-medium", children: "Activity" }), _jsxs("div", { className: "ml-auto flex items-center gap-2", children: [pricingStale && (_jsxs("button", { type: "button", onClick: () => openSettings("models"), className: "flex items-center gap-1 rounded-md p-1.5 text-amber-500 transition-colors hover:bg-surface-raised hover:text-amber-400", "aria-label": "Pricing refresh is failing \u2014 costs may use stale rates. Open Settings", title: "Pricing refresh is failing \u2014 costs may use stale rates. Open Settings", children: [_jsx(AlertTriangle, { className: "h-3.5 w-3.5" }), _jsx("span", { className: "hidden text-[10px] sm:inline", children: "Pricing stale" })] })), _jsx(PushToggle, {})] }), _jsx("button", { type: "button", onClick: refresh, className: "rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-surface-raised hover:text-foreground", "aria-label": "Refresh", children: _jsx(RefreshCw, { className: "h-3.5 w-3.5" }) })] }), _jsxs("div", { className: "mx-auto w-full max-w-3xl space-y-6 p-4", children: [error && (_jsxs("p", { className: "text-xs text-destructive", children: ["Could not load activity: ", error] })), inbox.length > 0 && (_jsxs("section", { children: [_jsxs("div", { className: "mb-2 flex items-center", children: [_jsx("h2", { className: "text-xs font-medium uppercase tracking-wide text-muted-foreground", children: "Needs attention" }), _jsx("button", { type: "button", onClick: () => void acknowledgeAllIntents(), className: "ml-auto text-[11px] text-muted-foreground transition-colors hover:text-foreground", children: "Dismiss all" })] }), _jsx("div", { className: "space-y-1", children: inbox.map((intent) => (_jsxs("div", { className: cn("flex items-center gap-2 rounded-lg border px-3 py-2 text-xs", intent.kind === "failure"
|
|
124
136
|
? "border-destructive/30 bg-destructive/5"
|
|
125
137
|
: "border-border-subtle bg-surface"), children: [intent.kind === "failure" ? (_jsx(AlertTriangle, { className: "h-3.5 w-3.5 shrink-0 text-destructive" })) : intent.kind === "stuck" ? (_jsx(Timer, { className: "h-3.5 w-3.5 shrink-0 text-amber-500" })) : (_jsx(ActivityIcon, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })), _jsx("button", { type: "button", className: "min-w-0 flex-1 truncate text-left hover:underline", onClick: () => {
|
|
126
138
|
void acknowledgeIntent(intent.id);
|
|
@@ -146,12 +158,20 @@ function RollupCards({ rollups }) {
|
|
|
146
158
|
runs: acc.runs + d.runs,
|
|
147
159
|
failures: acc.failures + d.failures,
|
|
148
160
|
costUsd: acc.costUsd + d.costUsd,
|
|
161
|
+
effectiveCostUsd: acc.effectiveCostUsd + (d.effectiveCostUsd ?? 0),
|
|
162
|
+
unpricedRuns: acc.unpricedRuns + (d.unpricedRuns ?? 0),
|
|
149
163
|
tokens: acc.tokens + d.inputTokens + d.outputTokens,
|
|
150
|
-
}), { runs: 0, failures: 0, costUsd: 0, tokens: 0 });
|
|
151
|
-
|
|
164
|
+
}), { runs: 0, failures: 0, costUsd: 0, effectiveCostUsd: 0, unpricedRuns: 0, tokens: 0 });
|
|
165
|
+
// A server that predates pricing omits the effective fields entirely; the
|
|
166
|
+
// card then keeps its single list-price number instead of claiming an
|
|
167
|
+
// effective $0.00 it never computed.
|
|
168
|
+
const hasEffective = rollups.days.some((d) => d.effectiveCostUsd !== undefined);
|
|
169
|
+
return (_jsxs("div", { className: "grid grid-cols-2 gap-2 sm:grid-cols-4", children: [_jsx(StatCard, { label: "Runs today", value: String(today?.runs ?? 0) }), _jsx(StatCard, { label: "Failures (7d)", value: String(week.failures), alert: week.failures > 0 }), _jsx(StatCard, { label: "Spend (7d)", value: hasEffective
|
|
170
|
+
? formatAggregateCost(week.effectiveCostUsd, week.unpricedRuns)
|
|
171
|
+
: `$${week.costUsd.toFixed(2)}`, secondary: hasEffective && (_jsxs(_Fragment, { children: ["list $", week.costUsd.toFixed(2), week.unpricedRuns > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { className: "hidden sm:inline", children: [" \u00B7 ", week.unpricedRuns, " unpriced"] }), _jsxs("span", { className: "sm:hidden", children: [" \u00B7 ", week.unpricedRuns, "?"] })] }))] })) }), _jsx(StatCard, { label: "Tokens (7d)", value: formatTokenCount(week.tokens) })] }));
|
|
152
172
|
}
|
|
153
|
-
function StatCard({ label, value, alert }) {
|
|
154
|
-
return (_jsxs("div", { className: "rounded-lg border border-border-subtle bg-surface p-3", children: [_jsx("div", { className: cn("text-lg font-semibold", alert && "text-destructive"), children: value }), _jsx("div", { className: "text-[11px] text-muted-foreground", children: label })] }));
|
|
173
|
+
function StatCard({ label, value, secondary, alert, }) {
|
|
174
|
+
return (_jsxs("div", { className: "rounded-lg border border-border-subtle bg-surface p-3", children: [_jsx("div", { className: cn("text-lg font-semibold", alert && "text-destructive"), children: value }), secondary && (_jsx("div", { className: "truncate text-[10px] text-muted-foreground/70", children: secondary })), _jsx("div", { className: "text-[11px] text-muted-foreground", children: label })] }));
|
|
155
175
|
}
|
|
156
176
|
function LiveRow({ span, onOpen, }) {
|
|
157
177
|
const children = useActivityStore(useShallow((s) => Object.values(s.spans[span.runId] ?? {}).filter((x) => x.parentSpanId)));
|
|
@@ -162,18 +182,34 @@ function LiveRow({ span, onOpen, }) {
|
|
|
162
182
|
}
|
|
163
183
|
function RunRow({ run, onOpen, }) {
|
|
164
184
|
const failed = isFailureOutcome(run.outcome);
|
|
165
|
-
|
|
185
|
+
// Effective cost only — list price lives on the Spend card and the detail
|
|
186
|
+
// view. "—" is unknown, never $0.00 (AE3); a pre-pricing server that never
|
|
187
|
+
// sent the field keeps the original list-cost span instead (see runCostText).
|
|
188
|
+
const cost = runCostText(run);
|
|
189
|
+
return (_jsxs("button", { type: "button", onClick: () => onOpen(run), className: cn("flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors hover:bg-surface-raised", failed && "border border-destructive/30 bg-destructive/5"), children: [run.origin === "cron" ? (_jsx(Clock, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })) : (_jsx(Bot, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })), _jsx("span", { className: "truncate", children: run.jobName ?? run.name }), failed && _jsx(AlertTriangle, { className: "h-3 w-3 shrink-0 text-destructive" }), run.outcome && run.outcome !== "success" && (_jsx("span", { className: cn("text-[10px] uppercase", failed ? "text-destructive" : "text-muted-foreground"), children: run.outcome })), _jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-2 font-[family-name:var(--font-mono)] text-[10px] text-muted-foreground/60", children: [cost !== null && _jsx("span", { children: cost }), run.durationMs !== null && (_jsxs("span", { className: "flex items-center gap-0.5", children: [_jsx(Timer, { className: "h-3 w-3" }), formatDuration(run.durationMs)] })), _jsx("span", { children: formatRelativeTime(run.startedAt) })] })] }));
|
|
166
190
|
}
|
|
167
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* Chat-less run detail (cron runs; pruned runs show their rollup) — the full
|
|
193
|
+
* view of one run: its rollup header, the span tree with per-span usage,
|
|
194
|
+
* attributes and recorded events, and a raw-trace escape hatch for anything
|
|
195
|
+
* the rendered view does not have an opinion about.
|
|
196
|
+
*/
|
|
168
197
|
function RunDetail({ runId, onBack }) {
|
|
169
198
|
const streamed = useActivityStore(useShallow((s) => runSpans(s, runId)));
|
|
199
|
+
const events = useActivityStore(useShallow((s) => runEvents(s, runId)));
|
|
170
200
|
const applySnapshot = useActivityStore((s) => s.applySnapshot);
|
|
171
201
|
const [pruned, setPruned] = useState(null);
|
|
202
|
+
const [rollup, setRollup] = useState(null);
|
|
172
203
|
const [missing, setMissing] = useState(false);
|
|
204
|
+
const [rawOpen, setRawOpen] = useState(false);
|
|
173
205
|
useEffect(() => {
|
|
174
206
|
api
|
|
175
|
-
|
|
207
|
+
// Payload bodies are excluded from run detail by default; this view's
|
|
208
|
+
// rows expand to them, so opt in.
|
|
209
|
+
.activityRun(runId, { includePayloads: true })
|
|
176
210
|
.then((detail) => {
|
|
211
|
+
if (detail.rollup)
|
|
212
|
+
setRollup(detail.rollup);
|
|
177
213
|
if (detail.detailPruned) {
|
|
178
214
|
setPruned(detail.rollup ?? {});
|
|
179
215
|
}
|
|
@@ -190,9 +226,47 @@ function RunDetail({ runId, onBack }) {
|
|
|
190
226
|
})
|
|
191
227
|
.catch(() => setMissing(true));
|
|
192
228
|
}, [runId, applySnapshot]);
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
229
|
+
const root = streamed.find((s) => !s.parentSpanId);
|
|
230
|
+
const title = rollup?.jobName ?? rollup?.name ?? (root ? spanToolLabel(root) : runId);
|
|
231
|
+
// The root carries the run's usage for backend-recorded turns; a run whose
|
|
232
|
+
// usage only exists on children (the span-sink shape) sums them instead.
|
|
233
|
+
// Never both, so nothing is double-counted.
|
|
234
|
+
const totalUsage = useMemo(() => {
|
|
235
|
+
if (root?.usage)
|
|
236
|
+
return formatSpanUsage(root);
|
|
237
|
+
const children = streamed.filter((s) => s.parentSpanId && s.usage);
|
|
238
|
+
if (children.length === 0)
|
|
239
|
+
return null;
|
|
240
|
+
const sum = children.reduce((acc, s) => ({
|
|
241
|
+
inputTokens: acc.inputTokens + (s.usage?.inputTokens ?? 0),
|
|
242
|
+
outputTokens: acc.outputTokens + (s.usage?.outputTokens ?? 0),
|
|
243
|
+
cacheReadTokens: acc.cacheReadTokens + (s.usage?.cacheReadTokens ?? 0),
|
|
244
|
+
cacheCreationTokens: acc.cacheCreationTokens + (s.usage?.cacheCreationTokens ?? 0),
|
|
245
|
+
}), { inputTokens: 0, outputTokens: 0, cacheReadTokens: 0, cacheCreationTokens: 0 });
|
|
246
|
+
return formatSpanUsage({ ...children[0], usage: { ...sum, model: undefined } });
|
|
247
|
+
}, [root, streamed]);
|
|
248
|
+
return (_jsxs("div", { className: "flex h-full flex-col overflow-y-auto", children: [_jsxs("div", { className: "flex items-center gap-2 border-b border-border-subtle px-4 py-3", children: [_jsx("button", { type: "button", onClick: onBack, className: "rounded-md p-1.5 text-muted-foreground transition-colors hover:bg-surface-raised hover:text-foreground", "aria-label": "Back", children: _jsx(ArrowLeft, { className: "h-4 w-4" }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("h1", { className: "truncate text-sm font-medium", children: title }), _jsx("p", { className: "truncate font-[family-name:var(--font-mono)] text-[10px] text-muted-foreground/60", children: runId })] })] }), _jsxs("div", { className: "mx-auto w-full max-w-3xl space-y-1 p-4", children: [missing && _jsx("p", { className: "text-xs text-muted-foreground", children: "Unknown run." }), rollup && (_jsxs("div", { className: "mb-2 flex flex-wrap items-center gap-x-3 gap-y-0.5 rounded-lg border border-border-subtle bg-surface px-3 py-2 text-[11px] text-muted-foreground", children: [_jsx("span", { className: "text-foreground/80", children: rollup.origin }), rollup.outcome && (_jsx("span", { className: cn(isFailureOutcome(rollup.outcome) && "text-destructive"), children: rollup.outcome })), _jsx("span", { children: formatRelativeTime(rollup.startedAt) }), rollup.durationMs !== null && _jsx("span", { children: formatDuration(rollup.durationMs) }), _jsxs("span", { children: ["list", " ", _jsx("span", { className: "font-[family-name:var(--font-mono)] text-foreground/80", children: formatEffectiveCost(rollup.costUsd) })] }), _jsxs("span", { children: ["effective", " ", _jsx("span", { className: "font-[family-name:var(--font-mono)] text-foreground/80", children: formatEffectiveCost(rollup.effectiveCostUsd, rollup.pricingEstimate, rollup.billingMode) })] }), rollup.billingMode && (_jsx("span", { children: rollup.billingMode === "api" ? "API billed" : "subscription billed" })), rollup.pricingEstimate && _jsx("span", { children: "~ estimated rates" }), totalUsage && (_jsx("span", { className: "font-[family-name:var(--font-mono)] text-foreground/80", children: totalUsage })), rollup.failureReason && (_jsx("span", { className: "w-full whitespace-pre-wrap break-words pt-1 text-destructive/80", children: rollup.failureReason }))] })), pruned && (_jsxs("div", { className: "rounded-lg border border-border-subtle bg-surface p-3 text-xs text-muted-foreground", children: ["Detail pruned \u2014 only the rollup remains.", _jsx("pre", { className: "mt-2 overflow-x-auto text-[11px]", children: JSON.stringify(pruned, null, 2) })] })), streamed.map((span) => (_jsx(DetailSpanRow, { span: span, depth: depthOf(span, streamed) }, span.spanId))), !pruned && !missing && streamed.length === 0 && (_jsx("p", { className: "text-xs text-muted-foreground", children: "No spans recorded for this run." })), streamed.length > 0 && (_jsxs("div", { className: "pt-3", children: [_jsxs("button", { type: "button", onClick: () => setRawOpen((v) => !v), className: "flex items-center gap-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground", children: [_jsx(ChevronRight, { className: cn("h-3 w-3 transition-transform", rawOpen && "rotate-90") }), "Raw trace"] }), rawOpen && (_jsx("pre", { className: "mt-1 max-h-[60vh] overflow-auto rounded-lg border border-border-subtle bg-surface p-2 font-[family-name:var(--font-mono)] text-[10px] leading-relaxed text-muted-foreground", children: JSON.stringify({ runId, rollup, spans: streamed, events }, null, 2) }))] }))] })] }));
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* One span tree row. EVERY span expands — a tool span to its recorded payload
|
|
252
|
+
* (AE7), any span to its usage, attributes and recorded events. The uniform
|
|
253
|
+
* affordance is the point: a cron root or a turn root used to be a dead dot
|
|
254
|
+
* with a duration, which is strictly less than the trace it was summarizing.
|
|
255
|
+
*/
|
|
256
|
+
function DetailSpanRow({ span, depth }) {
|
|
257
|
+
const [expanded, setExpanded] = useState(false);
|
|
258
|
+
const usage = formatSpanUsage(span);
|
|
259
|
+
// Approval wait is not execution — same boundary the subagent drill-in uses.
|
|
260
|
+
const duration = span.endedAt !== undefined
|
|
261
|
+
? formatDuration(span.endedAt - (span.waitUntil ?? span.startedAt))
|
|
262
|
+
: "…";
|
|
263
|
+
return (_jsxs("div", { style: { paddingLeft: `${depth * 16}px` }, children: [_jsxs("div", { className: "flex cursor-pointer items-center gap-2 text-xs text-muted-foreground hover:text-foreground", onClick: () => setExpanded((v) => !v), children: [_jsx(SpanStatusDot, { span: span }), _jsx("span", { className: "truncate font-[family-name:var(--font-mono)]", children: spanToolLabel(span) }), span.kind !== "tool" && (_jsx("span", { className: "shrink-0 rounded bg-surface-raised px-1 text-[9px] uppercase text-muted-foreground/70", children: span.kind })), span.outcome && span.outcome !== "success" && (_jsx("span", { className: "text-[10px] uppercase", children: span.outcome })), span.outcomeReason && (_jsx("span", { className: "truncate text-[10px] text-muted-foreground/60", children: span.outcomeReason })), _jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-2 font-[family-name:var(--font-mono)] text-[10px] text-muted-foreground/50", children: [usage && _jsx("span", { className: "hidden sm:inline", children: usage }), _jsx("span", { children: duration })] }), _jsx(ChevronRight, { className: cn("h-3 w-3 shrink-0 transition-transform", expanded && "rotate-90") })] }), expanded && _jsx(DetailSpanBody, { span: span, usage: usage })] }));
|
|
264
|
+
}
|
|
265
|
+
/** Everything recorded against one span, under its row. */
|
|
266
|
+
function DetailSpanBody({ span, usage }) {
|
|
267
|
+
const narrative = useActivityStore(useShallow((s) => narrativeEventsFor(s, span.spanId)));
|
|
268
|
+
const attrs = Object.entries(span.attrs ?? {});
|
|
269
|
+
return (_jsxs("div", { className: "mb-1 ml-1 space-y-1.5 border-l border-border-subtle pl-2 pt-1", children: [_jsxs("div", { className: "flex flex-wrap gap-x-3 gap-y-0.5 px-2 text-[10px] text-muted-foreground/70", children: [_jsxs("span", { children: ["started ", new Date(span.startedAt).toLocaleString()] }), span.waitUntil !== undefined && (_jsxs("span", { children: ["approval wait ", formatDuration(span.waitUntil - span.startedAt)] })), usage && _jsx("span", { className: "font-[family-name:var(--font-mono)]", children: usage }), span.usage?.costUsd !== undefined && (_jsxs("span", { className: "font-[family-name:var(--font-mono)]", children: [formatEffectiveCost(span.usage.costUsd), " list"] }))] }), span.subagent?.summary && (_jsx("p", { className: "px-2 text-[11px] text-muted-foreground", children: span.subagent.summary })), attrs.length > 0 && (_jsx("dl", { className: "grid grid-cols-[minmax(0,auto)_minmax(0,1fr)] gap-x-2 gap-y-0.5 px-2 text-[10px]", children: attrs.map(([key, value]) => (_jsxs(Fragment, { children: [_jsx("dt", { className: "truncate font-[family-name:var(--font-mono)] text-muted-foreground/60", children: key }), _jsx("dd", { className: "min-w-0 break-words font-[family-name:var(--font-mono)] text-muted-foreground", children: typeof value === "string" ? value : JSON.stringify(value) })] }, key))) })), narrative.length > 0 && (_jsx("div", { className: "space-y-1.5 px-2", children: narrative.map((event) => (_jsx(SpanEventBlock, { event: event }, `${event.spanId}:${event.eventIndex}`))) })), span.kind === "tool" && _jsx(SpanPayload, { spanId: span.spanId }), span.kind !== "tool" && narrative.length === 0 && attrs.length === 0 && (_jsx("p", { className: "px-2 text-[11px] text-muted-foreground/60", children: "Nothing else recorded for this step." }))] }));
|
|
196
270
|
}
|
|
197
271
|
function depthOf(span, all) {
|
|
198
272
|
let depth = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-page.js","sourceRoot":"","sources":["../../../src/components/activity/activity-page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,aAAa,EACb,SAAS,EACT,GAAG,EACH,KAAK,EACL,SAAS,EACT,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EACL,GAAG,GAIJ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACjE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAuE,IAAI,CAAC,CAAC;IAC7G,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAyB,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,GAAG;aACA,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;aAC5B,IAAI,CAAC,OAAO,CAAC;aACb,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxD,KAAK,SAAS,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,sEAAsE;IACtE,0EAA0E;IAC1E,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAC;QACV,IAAI,SAAS,EAAE,CAAC;YACd,iBAAiB,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,GAAG,EAAE;gBACV,iBAAiB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IAEjC,0EAA0E;IAC1E,yEAAyE;IACzE,gEAAgE;IAChE,yEAAyE;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,KAAK;gBAAE,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,SAAS,EAAE,CAAC;QACZ,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,UAAU,CAAC,KAAoB;QACtC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAChF,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,6DAA6D;YAC7D,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9E,SAAS,OAAO,CAAC,GAKhB;QACC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9C,2DAA2D;YAC3D,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChC,aAAa,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,qFAAqF;IACrF,SAAS,UAAU,CAAC,MAAsB;QACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3F,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAChC,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,KAAC,SAAS,IAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAI,CAAC;IAC3E,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,sCAAsC,aACnD,eAAK,SAAS,EAAC,iEAAiE,aAC9E,KAAC,YAAY,IAAC,SAAS,EAAC,+BAA+B,GAAG,EAC1D,aAAI,SAAS,EAAC,qBAAqB,yBAAc,EACjD,cAAK,SAAS,EAAC,iCAAiC,YAC9C,KAAC,UAAU,KAAG,GACV,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,wGAAwG,gBACvG,SAAS,YAEpB,KAAC,SAAS,IAAC,SAAS,EAAC,aAAa,GAAG,GAC9B,IACL,EAEN,eAAK,SAAS,EAAC,wCAAwC,aACpD,KAAK,IAAI,CACR,aAAG,SAAS,EAAC,0BAA0B,0CAA2B,KAAK,IAAK,CAC7E,EAEA,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,8BACE,eAAK,SAAS,EAAC,wBAAwB,aACrC,aAAI,SAAS,EAAC,mEAAmE,gCAE5E,EACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,qBAAqB,EAAE,EAC3C,SAAS,EAAC,mFAAmF,4BAGtF,IACL,EACN,cAAK,SAAS,EAAC,WAAW,YACvB,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,eAEE,SAAS,EAAE,EAAE,CACX,6DAA6D,EAC7D,MAAM,CAAC,IAAI,KAAK,SAAS;wCACvB,CAAC,CAAC,wCAAwC;wCAC1C,CAAC,CAAC,iCAAiC,CACtC,aAEA,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,KAAC,aAAa,IAAC,SAAS,EAAC,uCAAuC,GAAG,CACpE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAC5B,KAAC,KAAK,IAAC,SAAS,EAAC,qCAAqC,GAAG,CAC1D,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,SAAS,EAAC,4CAA4C,GAAG,CACxE,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,GAAG,EAAE;gDACZ,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gDAClC,UAAU,CAAC,MAAM,CAAC,CAAC;4CACrB,CAAC,YAEA,MAAM,CAAC,KAAK,GACN,EACT,eAAM,SAAS,EAAC,+CAA+C,YAC5D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,GAChC,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAChD,SAAS,EAAC,oFAAoF,gBACnF,SAAS,uBAGb,KAnCJ,MAAM,CAAC,EAAE,CAoCV,CACP,CAAC,GACE,IACE,CACX,EAEA,OAAO,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EAE7C,8BACE,aAAI,SAAS,EAAC,wEAAwE,4BAEjF,EACJ,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACjD,YAAG,SAAS,EAAC,kCAAkC,oCAAwB,CACxE,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,WAAW,aACvB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,KAAC,OAAO,IAAkB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,IAAvC,IAAI,CAAC,KAAK,CAAiC,CAC1D,CAAC,EACD,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACrB,KAAC,MAAM,IAAiB,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,IAApC,GAAG,CAAC,KAAK,CAA+B,CACtD,CAAC,IACE,CACP,IACO,EAEV,8BACE,aAAI,SAAS,EAAC,wEAAwE,wBAEjF,EACJ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,YAAG,SAAS,EAAC,kCAAkC,sCAA0B,CAC1E,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,KAAC,MAAM,IAAiB,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,IAApC,GAAG,CAAC,KAAK,CAA+B,CACtD,CAAC,GACE,CACP,IACO,IACN,IACF,CACP,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,QAAgB;IAChC,IAAI,GAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,OAAO,EAAgC;IAC5D,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;QACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;QAChC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY;KACpD,CAAC,EACF,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAChD,CAAC;IACF,OAAO,CACL,eAAK,SAAS,EAAC,uCAAuC,aACpD,KAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAI,EAChE,KAAC,QAAQ,IACP,KAAK,EAAC,eAAe,EACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC5B,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,GACxB,EACF,KAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAI,EACrE,KAAC,QAAQ,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,IAClE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAqD;IAC1F,OAAO,CACL,eAAK,SAAS,EAAC,uDAAuD,aACpE,cAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,kBAAkB,CAAC,YAAG,KAAK,GAAO,EACvF,cAAK,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAO,IAC5D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,IAAI,EACJ,MAAM,GAIP;IACC,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAC1F,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAC5F,SAAS,EAAC,wJAAwJ,aAElK,eAAM,SAAS,EAAC,wDAAwD,GAAG,EAC1E,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACxB,KAAC,KAAK,IAAC,SAAS,EAAC,4CAA4C,GAAG,CACjE,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,SAAS,EAAC,4CAA4C,GAAG,CAC/D,EACD,eAAM,SAAS,EAAC,sBAAsB,YACnC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GACrB,EAGN,YAAY,IAAI,CACf,gBAAM,SAAS,EAAC,gCAAgC,wBAAI,YAAY,IAAQ,CACzE,EACD,eAAM,SAAS,EAAC,2FAA2F,YACxG,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAChC,IACA,CACV,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EACd,GAAG,EACH,MAAM,GAIP;IACC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,MAAM,IAAI,+CAA+C,CAC1D,aAEA,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,KAAC,KAAK,IAAC,SAAS,EAAC,4CAA4C,GAAG,CACjE,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,SAAS,EAAC,4CAA4C,GAAG,CAC/D,EACD,eAAM,SAAS,EAAC,UAAU,YAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,GAAQ,EAC1D,MAAM,IAAI,KAAC,aAAa,IAAC,SAAS,EAAC,mCAAmC,GAAG,EACzE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAC3C,eAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,YAChG,GAAG,CAAC,OAAO,GACP,CACR,EACD,gBAAM,SAAS,EAAC,mHAAmH,aAChI,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,gCAAQ,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAQ,EACjF,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,CAC1B,gBAAM,SAAS,EAAC,2BAA2B,aACzC,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,EAC5B,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAC1B,CACR,EACD,yBAAO,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAQ,IAC3C,IACA,CACV,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAyC;IACzE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,GAAG;aACA,WAAW,CAAC,KAAK,CAAC;aAClB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACxB,aAAa,CAAC;oBACZ,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,KAAK;oBACX,KAAK;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;oBAC3B,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE;iBACpD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAE3B,OAAO,CACL,eAAK,SAAS,EAAC,sCAAsC,aACnD,eAAK,SAAS,EAAC,iEAAiE,aAC9E,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,wGAAwG,gBACvG,MAAM,YAEjB,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,GAAG,GAC1B,EACT,aAAI,SAAS,EAAC,8BAA8B,YAAE,KAAK,GAAM,IACrD,EACN,eAAK,SAAS,EAAC,wCAAwC,aACpD,OAAO,IAAI,YAAG,SAAS,EAAC,+BAA+B,6BAAiB,EACxE,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,qFAAqF,8DAElG,cAAK,SAAS,EAAC,kCAAkC,YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAO,IACrF,CACP,EACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,eAEE,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,aAE3D,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,EAC7B,eAAM,SAAS,EAAC,8CAA8C,YAC3D,aAAa,CAAC,IAAI,CAAC,GACf,EACN,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAC7C,eAAM,SAAS,EAAC,uBAAuB,YAAE,IAAI,CAAC,OAAO,GAAQ,CAC9D,EACA,IAAI,CAAC,aAAa,IAAI,CACrB,eAAM,SAAS,EAAC,+CAA+C,YAC5D,IAAI,CAAC,aAAa,GACd,CACR,EACD,eAAM,SAAS,EAAC,2FAA2F,YACxG,IAAI,CAAC,OAAO,KAAK,SAAS;oCACzB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;oCAC/C,CAAC,CAAC,GAAG,GACF,KApBF,IAAI,CAAC,MAAM,CAqBZ,CACP,CAAC,IACE,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAkB,EAAE,GAAmB;IACtD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAA6B,IAAI,CAAC;IAC7C,OAAO,OAAO,EAAE,YAAY,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAQ,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"activity-page.js","sourceRoot":"","sources":["../../../src/components/activity/activity-page.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC/E,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,aAAa,EACb,SAAS,EACT,GAAG,EACH,YAAY,EACZ,KAAK,EACL,SAAS,EACT,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EACL,GAAG,GAKJ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACjE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAuE,IAAI,CAAC,CAAC;IAC7G,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAyB,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,GAAG;aACA,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;aAC5B,IAAI,CAAC,OAAO,CAAC;aACb,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxD,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,GAAG;aACA,YAAY,EAAE;aACd,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aACzD,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,KAAK,SAAS,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,sEAAsE;IACtE,0EAA0E;IAC1E,sBAAsB;IACtB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,CAAC;QACV,IAAI,SAAS,EAAE,CAAC;YACd,iBAAiB,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,GAAG,EAAE;gBACV,iBAAiB,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;IAEjC,0EAA0E;IAC1E,yEAAyE;IACzE,gEAAgE;IAChE,yEAAyE;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,KAAK;gBAAE,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,SAAS,EAAE,CAAC;QACZ,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACnE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,UAAU,CAAC,KAAoB;QACtC,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;QAChF,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACpC,6DAA6D;YAC7D,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9E,SAAS,OAAO,CAAC,GAKhB;QACC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9C,2DAA2D;YAC3D,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChC,aAAa,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,qFAAqF;IACrF,SAAS,UAAU,CAAC,MAAsB;QACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3F,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAChC,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,KAAC,SAAS,IAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAI,CAAC;IAC3E,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,sCAAsC,aAInD,KAAC,aAAa,IACZ,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAC1C,EACF,eAAK,SAAS,EAAC,iEAAiE,aAC9E,KAAC,YAAY,IAAC,SAAS,EAAC,+BAA+B,GAAG,EAC1D,aAAI,SAAS,EAAC,qBAAqB,yBAAc,EACjD,eAAK,SAAS,EAAC,iCAAiC,aAC7C,YAAY,IAAI,CACf,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EACrC,SAAS,EAAC,wHAAwH,gBACvH,4EAAuE,EAClF,KAAK,EAAC,4EAAuE,aAE7E,KAAC,aAAa,IAAC,SAAS,EAAC,aAAa,GAAG,EACzC,eAAM,SAAS,EAAC,8BAA8B,8BAAqB,IAC5D,CACV,EACD,KAAC,UAAU,KAAG,IACV,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,wGAAwG,gBACvG,SAAS,YAEpB,KAAC,SAAS,IAAC,SAAS,EAAC,aAAa,GAAG,GAC9B,IACL,EAEN,eAAK,SAAS,EAAC,wCAAwC,aACpD,KAAK,IAAI,CACR,aAAG,SAAS,EAAC,0BAA0B,0CAA2B,KAAK,IAAK,CAC7E,EAEA,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,8BACE,eAAK,SAAS,EAAC,wBAAwB,aACrC,aAAI,SAAS,EAAC,mEAAmE,gCAE5E,EACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,qBAAqB,EAAE,EAC3C,SAAS,EAAC,mFAAmF,4BAGtF,IACL,EACN,cAAK,SAAS,EAAC,WAAW,YACvB,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,eAEE,SAAS,EAAE,EAAE,CACX,6DAA6D,EAC7D,MAAM,CAAC,IAAI,KAAK,SAAS;wCACvB,CAAC,CAAC,wCAAwC;wCAC1C,CAAC,CAAC,iCAAiC,CACtC,aAEA,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAC3B,KAAC,aAAa,IAAC,SAAS,EAAC,uCAAuC,GAAG,CACpE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAC5B,KAAC,KAAK,IAAC,SAAS,EAAC,qCAAqC,GAAG,CAC1D,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IAAC,SAAS,EAAC,4CAA4C,GAAG,CACxE,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mDAAmD,EAC7D,OAAO,EAAE,GAAG,EAAE;gDACZ,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gDAClC,UAAU,CAAC,MAAM,CAAC,CAAC;4CACrB,CAAC,YAEA,MAAM,CAAC,KAAK,GACN,EACT,eAAM,SAAS,EAAC,+CAA+C,YAC5D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,GAChC,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,EAChD,SAAS,EAAC,oFAAoF,gBACnF,SAAS,uBAGb,KAnCJ,MAAM,CAAC,EAAE,CAoCV,CACP,CAAC,GACE,IACE,CACX,EAEA,OAAO,IAAI,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EAE7C,8BACE,aAAI,SAAS,EAAC,wEAAwE,4BAEjF,EACJ,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACjD,YAAG,SAAS,EAAC,kCAAkC,oCAAwB,CACxE,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,WAAW,aACvB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACvB,KAAC,OAAO,IAAkB,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,IAAvC,IAAI,CAAC,KAAK,CAAiC,CAC1D,CAAC,EACD,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACrB,KAAC,MAAM,IAAiB,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,IAApC,GAAG,CAAC,KAAK,CAA+B,CACtD,CAAC,IACE,CACP,IACO,EAEV,8BACE,aAAI,SAAS,EAAC,wEAAwE,wBAEjF,EACJ,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,YAAG,SAAS,EAAC,kCAAkC,sCAA0B,CAC1E,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,KAAC,MAAM,IAAiB,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,IAApC,GAAG,CAAC,KAAK,CAA+B,CACtD,CAAC,GACE,CACP,IACO,IACN,IACF,CACP,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,QAAQ,CAAC,QAAgB;IAChC,IAAI,GAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,OAAO,EAAgC;IAC5D,sEAAsE;IACtE,iEAAiE;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;QACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;QACnC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;QAChC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAClE,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY;KACpD,CAAC,EACF,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CACtF,CAAC;IACF,0EAA0E;IAC1E,sEAAsE;IACtE,qCAAqC;IACrC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;IAChF,OAAO,CACL,eAAK,SAAS,EAAC,uCAAuC,aACpD,KAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,GAAI,EAChE,KAAC,QAAQ,IACP,KAAK,EAAC,eAAe,EACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC5B,KAAK,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,GACxB,EACF,KAAC,QAAQ,IACP,KAAK,EAAC,YAAY,EAClB,KAAK,EACH,YAAY;oBACV,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC;oBAC/D,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAEnC,SAAS,EACP,YAAY,IAAI,CACd,wCACS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAC7B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CACxB,8BAEE,gBAAM,SAAS,EAAC,kBAAkB,yBAAK,IAAI,CAAC,YAAY,iBAAiB,EACzE,gBAAM,SAAS,EAAC,WAAW,yBAAK,IAAI,CAAC,YAAY,SAAS,IACzD,CACJ,IACA,CACJ,GAEH,EACF,KAAC,QAAQ,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAI,IAClE,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAChB,KAAK,EACL,KAAK,EACL,SAAS,EACT,KAAK,GAON;IACC,OAAO,CACL,eAAK,SAAS,EAAC,uDAAuD,aACpE,cAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,kBAAkB,CAAC,YAAG,KAAK,GAAO,EACtF,SAAS,IAAI,CACZ,cAAK,SAAS,EAAC,+CAA+C,YAAE,SAAS,GAAO,CACjF,EACD,cAAK,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAO,IAC5D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,IAAI,EACJ,MAAM,GAIP;IACC,MAAM,QAAQ,GAAG,gBAAgB,CAC/B,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAC1F,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAC5F,SAAS,EAAC,wJAAwJ,aAElK,eAAM,SAAS,EAAC,wDAAwD,GAAG,EAC1E,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACxB,KAAC,KAAK,IAAC,SAAS,EAAC,4CAA4C,GAAG,CACjE,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,SAAS,EAAC,4CAA4C,GAAG,CAC/D,EACD,eAAM,SAAS,EAAC,sBAAsB,YACnC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GACrB,EAGN,YAAY,IAAI,CACf,gBAAM,SAAS,EAAC,gCAAgC,wBAAI,YAAY,IAAQ,CACzE,EACD,eAAM,SAAS,EAAC,2FAA2F,YACxG,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAChC,IACA,CACV,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EACd,GAAG,EACH,MAAM,GAIP;IACC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7C,0EAA0E;IAC1E,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,MAAM,IAAI,+CAA+C,CAC1D,aAEA,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,KAAC,KAAK,IAAC,SAAS,EAAC,4CAA4C,GAAG,CACjE,CAAC,CAAC,CAAC,CACF,KAAC,GAAG,IAAC,SAAS,EAAC,4CAA4C,GAAG,CAC/D,EACD,eAAM,SAAS,EAAC,UAAU,YAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,GAAQ,EAC1D,MAAM,IAAI,KAAC,aAAa,IAAC,SAAS,EAAC,mCAAmC,GAAG,EACzE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAC3C,eAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,YAChG,GAAG,CAAC,OAAO,GACP,CACR,EACD,gBAAM,SAAS,EAAC,mHAAmH,aAChI,IAAI,KAAK,IAAI,IAAI,yBAAO,IAAI,GAAQ,EACpC,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,CAC1B,gBAAM,SAAS,EAAC,2BAA2B,aACzC,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,EAC5B,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAC1B,CACR,EACD,yBAAO,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,GAAQ,IAC3C,IACA,CACV,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAyC;IACzE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2B,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,GAAG;YACD,sEAAsE;YACtE,kCAAkC;aACjC,WAAW,CAAC,KAAK,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;aAC7C,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,MAAM;gBAAE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACxB,aAAa,CAAC;oBACZ,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,KAAK;oBACX,KAAK;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;oBAC3B,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,EAAE;iBACpD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtF,2EAA2E;IAC3E,yEAAyE;IACzE,4CAA4C;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,IAAI,EAAE,KAAK;YAAE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CACzB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACX,WAAW,EAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;YAC1D,YAAY,EAAE,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;YAC7D,eAAe,EAAE,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,IAAI,CAAC,CAAC;YACtE,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,mBAAmB,IAAI,CAAC,CAAC;SACnF,CAAC,EACF,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAChF,CAAC;QACF,OAAO,eAAe,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErB,OAAO,CACL,eAAK,SAAS,EAAC,sCAAsC,aACnD,eAAK,SAAS,EAAC,iEAAiE,aAC9E,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,wGAAwG,gBACvG,MAAM,YAEjB,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,GAAG,GAC1B,EACT,eAAK,SAAS,EAAC,gBAAgB,aAC7B,aAAI,SAAS,EAAC,8BAA8B,YAAE,KAAK,GAAM,EACzD,YAAG,SAAS,EAAC,mFAAmF,YAC7F,KAAK,GACJ,IACA,IACF,EACN,eAAK,SAAS,EAAC,wCAAwC,aACpD,OAAO,IAAI,YAAG,SAAS,EAAC,+BAA+B,6BAAiB,EACxE,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,kJAAkJ,aAC/J,eAAM,SAAS,EAAC,oBAAoB,YAAE,MAAM,CAAC,MAAM,GAAQ,EAC1D,MAAM,CAAC,OAAO,IAAI,CACjB,eAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,YACxE,MAAM,CAAC,OAAO,GACV,CACR,EACD,yBAAO,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAQ,EAClD,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,yBAAO,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,GAAQ,EAC/E,mCACO,GAAG,EACR,eAAM,SAAS,EAAC,wDAAwD,YACrE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,GAC/B,IACF,EACP,wCACY,GAAG,EACb,eAAM,SAAS,EAAC,wDAAwD,YACrE,mBAAmB,CAClB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,WAAW,CACnB,GACI,IACF,EACN,MAAM,CAAC,WAAW,IAAI,CACrB,yBAAO,MAAM,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,GAAQ,CACnF,EACA,MAAM,CAAC,eAAe,IAAI,+CAA8B,EACxD,UAAU,IAAI,CACb,eAAM,SAAS,EAAC,wDAAwD,YACrE,UAAU,GACN,CACR,EACA,MAAM,CAAC,aAAa,IAAI,CACvB,eAAM,SAAS,EAAC,iEAAiE,YAC9E,MAAM,CAAC,aAAa,GAChB,CACR,IACG,CACP,EACA,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,qFAAqF,8DAElG,cAAK,SAAS,EAAC,kCAAkC,YAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAO,IACrF,CACP,EACA,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACtB,KAAC,aAAa,IAAmB,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAvD,IAAI,CAAC,MAAM,CAAgD,CAChF,CAAC,EACD,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAC/C,YAAG,SAAS,EAAC,+BAA+B,gDAAoC,CACjF,EAGA,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,eAAK,SAAS,EAAC,MAAM,aACnB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACpC,SAAS,EAAC,mGAAmG,aAE7G,KAAC,YAAY,IACX,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,OAAO,IAAI,WAAW,CAAC,GACrE,iBAEK,EACR,OAAO,IAAI,CACV,cAAK,SAAS,EAAC,6KAA6K,YACzL,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAChE,CACP,IACG,CACP,IACG,IACF,CACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAyC;IAC3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,6EAA6E;IAC7E,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,KAAK,SAAS;QACxB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,CAAC,CAAC,GAAG,CAAC;IACV,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,aAC5C,eACE,SAAS,EAAC,4FAA4F,EACtG,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAErC,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,EAC7B,eAAM,SAAS,EAAC,8CAA8C,YAC3D,aAAa,CAAC,IAAI,CAAC,GACf,EACN,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CACvB,eAAM,SAAS,EAAC,uFAAuF,YACpG,IAAI,CAAC,IAAI,GACL,CACR,EACA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAC7C,eAAM,SAAS,EAAC,uBAAuB,YAAE,IAAI,CAAC,OAAO,GAAQ,CAC9D,EACA,IAAI,CAAC,aAAa,IAAI,CACrB,eAAM,SAAS,EAAC,+CAA+C,YAC5D,IAAI,CAAC,aAAa,GACd,CACR,EACD,gBAAM,SAAS,EAAC,mHAAmH,aAChI,KAAK,IAAI,eAAM,SAAS,EAAC,kBAAkB,YAAE,KAAK,GAAQ,EAC3D,yBAAO,QAAQ,GAAQ,IAClB,EACP,KAAC,YAAY,IACX,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,QAAQ,IAAI,WAAW,CAAC,GAC/E,IACE,EACL,QAAQ,IAAI,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAI,IACrD,CACP,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgD;IACnF,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/C,OAAO,CACL,eAAK,SAAS,EAAC,+DAA+D,aAC5E,eAAK,SAAS,EAAC,4EAA4E,aACzF,uCAAe,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,IAAQ,EAC/D,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,CAC/B,6CAAqB,cAAc,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAQ,CAC7E,EACA,KAAK,IAAI,eAAM,SAAS,EAAC,qCAAqC,YAAE,KAAK,GAAQ,EAC7E,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,IAAI,CACpC,gBAAM,SAAS,EAAC,qCAAqC,aAClD,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aACnC,CACR,IACG,EACL,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CACzB,YAAG,SAAS,EAAC,wCAAwC,YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAK,CAClF,EACA,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACnB,aAAI,SAAS,EAAC,kFAAkF,YAC7F,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC3B,MAAC,QAAQ,eACP,aAAI,SAAS,EAAC,uEAAuE,YAClF,GAAG,GACD,EACL,aAAI,SAAS,EAAC,+EAA+E,YAC1F,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACvD,KANQ,GAAG,CAOP,CACZ,CAAC,GACC,CACN,EACA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,cAAK,SAAS,EAAC,kBAAkB,YAC9B,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,cAAc,IAA6C,KAAK,EAAE,KAAK,IAAnD,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAkB,CAC7E,CAAC,GACE,CACP,EACA,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAC,WAAW,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAI,EAC5D,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CACvE,YAAG,SAAS,EAAC,2CAA2C,qDAEpD,CACL,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAkB,EAAE,GAAmB;IACtD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAA6B,IAAI,CAAC;IAC7C,OAAO,OAAO,EAAE,YAAY,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAQ,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digest-card.d.ts","sourceRoot":"","sources":["../../../src/components/activity/digest-card.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"digest-card.d.ts","sourceRoot":"","sources":["../../../src/components/activity/digest-card.tsx"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,wBAAgB,UAAU,uCAoFzB"}
|
|
@@ -4,6 +4,7 @@ import { AlertTriangle, Newspaper, X } from "lucide-react";
|
|
|
4
4
|
import { api } from "../../lib/api-client.js";
|
|
5
5
|
import { useUIStore } from "../../stores/ui-store.js";
|
|
6
6
|
import { cn } from "../../lib/utils.js";
|
|
7
|
+
import { digestCostClause } from "./span-bits.js";
|
|
7
8
|
/**
|
|
8
9
|
* The while-you-were-away card: presented PROACTIVELY on app open when a
|
|
9
10
|
* fresh digest exists (planning decision — built passively, the flow
|
|
@@ -38,9 +39,12 @@ export function DigestCard() {
|
|
|
38
39
|
void api.activityDigestDismiss().catch(() => { });
|
|
39
40
|
}
|
|
40
41
|
const windowLabel = `${formatDay(digest.windowStart)} – ${formatDay(digest.windowEnd)}`;
|
|
42
|
+
// Effective-only spend clause; a digest persisted before pricing shipped
|
|
43
|
+
// falls back to its old list-cost clause inside the helper.
|
|
44
|
+
const costClause = digestCostClause(digest);
|
|
41
45
|
return (_jsxs("div", { className: cn("mx-auto mb-3 w-full max-w-2xl rounded-xl border p-3 text-xs", digest.failures > 0
|
|
42
46
|
? "border-destructive/30 bg-destructive/5"
|
|
43
|
-
: "border-border-subtle bg-surface"), children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Newspaper, { className: "h-4 w-4 shrink-0 text-muted-foreground" }), _jsx("span", { className: "font-medium", children: "While you were away" }), _jsx("span", { className: "text-[10px] text-muted-foreground/60", children: windowLabel }), _jsx("button", { type: "button", onClick: dismiss, className: "ml-auto rounded p-1 text-muted-foreground transition-colors hover:text-foreground", "aria-label": "Dismiss", children: _jsx(X, { className: "h-3.5 w-3.5" }) })] }), _jsxs("div", { className: "mt-1.5 text-muted-foreground", children: [digest.runs, " run", digest.runs === 1 ? "" : "s", digest.failures > 0 && (_jsxs("span", { className: "text-destructive", children: [" \u00B7 ", digest.failures, " failed"] })),
|
|
47
|
+
: "border-border-subtle bg-surface"), children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Newspaper, { className: "h-4 w-4 shrink-0 text-muted-foreground" }), _jsx("span", { className: "font-medium", children: "While you were away" }), _jsx("span", { className: "text-[10px] text-muted-foreground/60", children: windowLabel }), _jsx("button", { type: "button", onClick: dismiss, className: "ml-auto rounded p-1 text-muted-foreground transition-colors hover:text-foreground", "aria-label": "Dismiss", children: _jsx(X, { className: "h-3.5 w-3.5" }) })] }), _jsxs("div", { className: "mt-1.5 text-muted-foreground", children: [digest.runs, " run", digest.runs === 1 ? "" : "s", digest.failures > 0 && (_jsxs("span", { className: "text-destructive", children: [" \u00B7 ", digest.failures, " failed"] })), costClause && ` · ${costClause}`] }), digest.notable.length > 0 && (_jsx("div", { className: "mt-1.5 space-y-0.5", children: digest.notable.slice(0, 3).map((n) => (_jsxs("div", { className: "flex items-center gap-1.5 text-[11px]", children: [_jsx(AlertTriangle, { className: "h-3 w-3 shrink-0 text-destructive" }), _jsxs("span", { className: "truncate", children: [n.jobName ?? n.name, " \u2014 ", n.outcome] })] }, n.runId))) })), _jsx("button", { type: "button", onClick: () => {
|
|
44
48
|
dismiss();
|
|
45
49
|
setActiveView("activity");
|
|
46
50
|
}, className: "mt-2 text-[11px] font-medium text-primary hover:underline", children: "Open Activity" })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digest-card.js","sourceRoot":"","sources":["../../../src/components/activity/digest-card.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAuB,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"digest-card.js","sourceRoot":"","sources":["../../../src/components/activity/digest-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-toggle.d.ts","sourceRoot":"","sources":["../../../src/components/activity/push-toggle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"push-toggle.d.ts","sourceRoot":"","sources":["../../../src/components/activity/push-toggle.tsx"],"names":[],"mappings":"AA8BA,wBAAgB,UAAU,gCA8HzB"}
|
|
@@ -3,6 +3,23 @@ import { useEffect, useState } from "react";
|
|
|
3
3
|
import { Bell, BellOff } from "lucide-react";
|
|
4
4
|
import { api } from "../../lib/api-client.js";
|
|
5
5
|
import { cn } from "../../lib/utils.js";
|
|
6
|
+
/**
|
|
7
|
+
* The push enable/disable control, living on the Activity surface (where the
|
|
8
|
+
* alerts it governs land). The permission model is THREE-state, not a bare
|
|
9
|
+
* toggle: once the browser prompt is denied, Chrome silently ignores every
|
|
10
|
+
* further in-page request — so the blocked state must say where the real
|
|
11
|
+
* switch lives (site settings) instead of offering a button that does
|
|
12
|
+
* nothing. Where the platform has no push at all (iOS Safari in-browser,
|
|
13
|
+
* pre-16.4), the control renders disabled-with-explanation, not hidden.
|
|
14
|
+
*/
|
|
15
|
+
/** The subscription's bound applicationServerKey, in the base64url form the
|
|
16
|
+
* server hands out — comparable against `pushPublicKey()` directly. */
|
|
17
|
+
function keyToBase64Url(key) {
|
|
18
|
+
let bin = "";
|
|
19
|
+
for (const b of new Uint8Array(key))
|
|
20
|
+
bin += String.fromCharCode(b);
|
|
21
|
+
return btoa(bin).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
22
|
+
}
|
|
6
23
|
export function PushToggle() {
|
|
7
24
|
const [state, setState] = useState("unsupported");
|
|
8
25
|
const [busy, setBusy] = useState(false);
|
|
@@ -22,6 +39,28 @@ export function PushToggle() {
|
|
|
22
39
|
}
|
|
23
40
|
const registration = await navigator.serviceWorker.ready;
|
|
24
41
|
const subscription = await registration.pushManager.getSubscription();
|
|
42
|
+
if (subscription) {
|
|
43
|
+
// The browser having a subscription doesn't mean the SERVER can
|
|
44
|
+
// still use it. Two disagreement cases: the server pruned/lost the
|
|
45
|
+
// row (a dead-endpoint send, a DB restore) — healed by re-asserting,
|
|
46
|
+
// an idempotent upsert; or the server's VAPID keypair changed, which
|
|
47
|
+
// makes this subscription permanently unsendable — its
|
|
48
|
+
// applicationServerKey no longer matches, so drop it and surface the
|
|
49
|
+
// re-enable button. Offline, trust the browser's own state.
|
|
50
|
+
try {
|
|
51
|
+
const { publicKey } = await api.pushPublicKey();
|
|
52
|
+
const boundKey = subscription.options.applicationServerKey;
|
|
53
|
+
if (boundKey && keyToBase64Url(boundKey) !== publicKey) {
|
|
54
|
+
await subscription.unsubscribe().catch(() => { });
|
|
55
|
+
setState("unsubscribed");
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
await api.pushSubscribe(subscription.toJSON(), navigator.userAgent.slice(0, 100));
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Server unreachable — keep the browser's answer.
|
|
62
|
+
}
|
|
63
|
+
}
|
|
25
64
|
setState(subscription ? "subscribed" : "unsubscribed");
|
|
26
65
|
})();
|
|
27
66
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-toggle.js","sourceRoot":"","sources":["../../../src/components/activity/push-toggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"push-toggle.js","sourceRoot":"","sources":["../../../src/components/activity/push-toggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC;;;;;;;;GAQG;AACH;wEACwE;AACxE,SAAS,cAAc,CAAC,GAAgB;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AASD,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,aAAa,CAAC,CAAC;IAC7D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,EAAE,CAAC;gBACjG,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,IAAI,YAAY,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACzD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,gEAAgE;gBAChE,mEAAmE;gBACnE,qEAAqE;gBACrE,qEAAqE;gBACrE,uDAAuD;gBACvD,qEAAqE;gBACrE,4DAA4D;gBAC5D,IAAI,CAAC;oBACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC;oBAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC;oBAC3D,IAAI,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;wBACvD,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;wBACjD,QAAQ,CAAC,cAAc,CAAC,CAAC;wBACzB,OAAO;oBACT,CAAC;oBACD,MAAM,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBACpF,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,UAAU,MAAM;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAC;YAC1D,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACzD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC5D,eAAe,EAAE,IAAI;gBACrB,oBAAoB,EAAE,SAAS;aAChC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAClF,QAAQ,CAAC,YAAY,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,KAAK,UAAU,OAAO;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;YACzD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACjE,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;YACnC,CAAC;YACD,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,CACL,eAAK,SAAS,EAAC,gEAAgE,EAAC,KAAK,EAAC,uFAAuF,aAC3K,KAAC,OAAO,IAAC,SAAS,EAAC,aAAa,GAAG,oBAE/B,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CACL,eACE,SAAS,EAAC,6DAA6D,EACvE,KAAK,EAAC,0GAA0G,aAEhH,KAAC,OAAO,IAAC,SAAS,EAAC,8BAA8B,GAAG,mCAEhD,CACP,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,KAAK,YAAY,CAAC;IAClC,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAC/C,SAAS,EAAE,EAAE,CACX,kGAAkG,EAClG,EAAE;YACA,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,qEAAqE,CAC1E,EACD,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,oDAAoD,aAE7G,EAAE,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,aAAa,GAAG,EAC3E,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IACxB,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActivitySpan, ActivitySpanOutcome } from "@schlessera/brain-ui-sdk/protocol";
|
|
1
|
+
import type { ActivitySpan, ActivitySpanEvent, ActivitySpanOutcome, BillingMode } from "@schlessera/brain-ui-sdk/protocol";
|
|
2
2
|
/**
|
|
3
3
|
* THE status dot for activity spans — one outcome→color mapping so every
|
|
4
4
|
* surface (timeline rows, drill-in, activity index) agrees on what a color
|
|
@@ -20,6 +20,81 @@ export declare function SpanStatusDot({ span, outcome, running, className, }: {
|
|
|
20
20
|
* the field existed.
|
|
21
21
|
*/
|
|
22
22
|
export declare function spanToolLabel(span: ActivitySpan): string;
|
|
23
|
+
/**
|
|
24
|
+
* The recorded input/output of one tool span, expanded under its row — the
|
|
25
|
+
* ONE payload renderer shared by the subagent drill-in and the run detail.
|
|
26
|
+
* Mounted only while expanded (collapsed rows never subscribe). A span with
|
|
27
|
+
* no payload events (recorded before capture shipped) states so instead of
|
|
28
|
+
* offering an empty block (AE7); a payload clipped at persist time carries
|
|
29
|
+
* the wire `truncated` flag, rendered as a hint line under the block.
|
|
30
|
+
*/
|
|
31
|
+
export declare function SpanPayload({ spanId }: {
|
|
32
|
+
spanId: string;
|
|
33
|
+
}): import("react").JSX.Element;
|
|
34
|
+
/**
|
|
35
|
+
* Display label for a span event type. Known types get prose; an unknown one
|
|
36
|
+
* (a span-sink producer is free to invent them) prints its own type rather
|
|
37
|
+
* than being mislabelled as output.
|
|
38
|
+
*/
|
|
39
|
+
export declare function eventTypeLabel(eventType: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* ONE labelled block per recorded event — the shared renderer behind the tool
|
|
42
|
+
* payload expander and the run detail's narrative stream, so every event type
|
|
43
|
+
* lands somewhere visible instead of only the two the expander knows.
|
|
44
|
+
*/
|
|
45
|
+
export declare function SpanEventBlock({ event }: {
|
|
46
|
+
event: ActivitySpanEvent;
|
|
47
|
+
}): import("react").JSX.Element;
|
|
48
|
+
/**
|
|
49
|
+
* A span's own token/model line, or null when the backend recorded no usage
|
|
50
|
+
* for it (every tool span, and any cron root without a span-sink producer).
|
|
51
|
+
* Cache reads are named separately: they are the cheap half of the bill and
|
|
52
|
+
* folding them into "in" would misstate what the run actually consumed.
|
|
53
|
+
*/
|
|
54
|
+
export declare function formatSpanUsage(span: ActivitySpan): string | null;
|
|
55
|
+
/**
|
|
56
|
+
* THE effective-cost glyph — one three-state rule so no surface ever renders
|
|
57
|
+
* an unknown cost as $0.00 (AE3): absent/NULL is "—" (we don't know), 0 is
|
|
58
|
+
* "subbed" when the run was subscription-billed and "free" otherwise (a
|
|
59
|
+
* genuinely zero-rate model, e.g. an OpenRouter free tier), positive is
|
|
60
|
+
* dollars, "~"-prefixed when computed from estimated rates. Sub-cent costs
|
|
61
|
+
* floor at "<$0.01" rather than rounding down to a zero look-alike.
|
|
62
|
+
*
|
|
63
|
+
* The zero split matters: a seat plan absorbing the run and a model that
|
|
64
|
+
* costs nothing are both $0 additive, but only one of them stays $0 once the
|
|
65
|
+
* subscription is cancelled.
|
|
66
|
+
*/
|
|
67
|
+
export declare function formatEffectiveCost(costUsd: number | null | undefined, estimate?: boolean, billingMode?: BillingMode | null): string;
|
|
68
|
+
/**
|
|
69
|
+
* An aggregate's effective-cost sum. Sums exclude unknown-cost runs, so a
|
|
70
|
+
* nonzero `unpricedRuns` makes the number a floor ("≥ $X"), never a total.
|
|
71
|
+
* A known sub-cent sum floors at "<$0.01" like the per-run glyph — only an
|
|
72
|
+
* exact 0 (genuinely nothing to add up) renders "$0.00" (AE3).
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatAggregateCost(effectiveUsd: number, unpricedRuns: number): string;
|
|
75
|
+
/**
|
|
76
|
+
* A run row's cost text, three-way on `effectiveCostUsd`: ABSENT means a
|
|
77
|
+
* pre-pricing server never sent the field — fall back to the original
|
|
78
|
+
* list-cost rendering (a positive `costUsd`, else nothing) instead of
|
|
79
|
+
* claiming unknown; explicit null means THIS server computed "unknown" and
|
|
80
|
+
* renders the em dash; a number goes through `formatEffectiveCost` (AE3).
|
|
81
|
+
*/
|
|
82
|
+
export declare function runCostText(run: {
|
|
83
|
+
costUsd: number | null;
|
|
84
|
+
effectiveCostUsd?: number | null;
|
|
85
|
+
pricingEstimate?: boolean;
|
|
86
|
+
billingMode?: BillingMode | null;
|
|
87
|
+
}): string | null;
|
|
88
|
+
/**
|
|
89
|
+
* The digest card's cost clause (no leading separator), effective-only, or
|
|
90
|
+
* null for "say nothing". A digest persisted before pricing shipped carries
|
|
91
|
+
* neither new field and keeps its old list-cost clause.
|
|
92
|
+
*/
|
|
93
|
+
export declare function digestCostClause(digest: {
|
|
94
|
+
costUsd: number;
|
|
95
|
+
effectiveCostUsd?: number;
|
|
96
|
+
unpricedRuns?: number;
|
|
97
|
+
}): string | null;
|
|
23
98
|
/** The "9+" unread-count bubble shared by the rail and the tab bar. Hidden at 0. */
|
|
24
99
|
export declare function CountBadge({ count, className }: {
|
|
25
100
|
count: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span-bits.d.ts","sourceRoot":"","sources":["../../../src/components/activity/span-bits.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"span-bits.d.ts","sourceRoot":"","sources":["../../../src/components/activity/span-bits.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACZ,MAAM,mCAAmC,CAAC;AAU3C;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE;IACD,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAkBA;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CASxD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,+BAsBzD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,iBAAiB,CAAA;CAAE,+BAgBrE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAWjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,QAAQ,CAAC,EAAE,OAAO,EAClB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,GAC/B,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAItF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAClC,GAAG,MAAM,GAAG,IAAI,CAKhB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,GAAG,IAAI,CAYhB;AAED,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sCAYrF"}
|