Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
717a498
feat(webapp): add the agent storybook gallery
kathiekiwi Aug 5, 2026
5f9c08d
chore(webapp): drop the gallery screenshot script
kathiekiwi Aug 5, 2026
f32367e
fix(webapp): point the filtered-runs demo intent at the runs collection
kathiekiwi Aug 6, 2026
e8a6e11
fix(webapp): pin the dismissed prompt in the gallery and drop the dea…
kathiekiwi Aug 6, 2026
e2445f7
fix(webapp): repair the agent gallery's fixtures after the rebase, an…
kathiekiwi Aug 8, 2026
9a19274
test(webapp): let the demo isolation check see side-effect and dynami…
kathiekiwi Aug 8, 2026
3407254
fix(webapp): name only demo resources in the gallery's fixtures
kathiekiwi Aug 8, 2026
217facd
test(webapp): keep the gallery's fixtures out of the demo barrel
kathiekiwi Aug 9, 2026
5755c4a
refactor(webapp): drop the unused isDemoChatId helper
kathiekiwi Aug 9, 2026
6abbd85
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
feec862
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
a27a7af
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
a4cb3ca
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
7bce8f8
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
a42ad77
Merge remote-tracking branch 'origin/feat/dashboard-agent-flows-watch…
kathiekiwi Aug 9, 2026
7d34cf4
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
1a38ebc
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
3237a77
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
f6af05e
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
959e8d6
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
6f54549
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 9, 2026
5779d5d
Merge branch 'feat/dashboard-agent-flows-watch' into feat/agent-story…
kathiekiwi Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import type { AgentIntent, ChartAction } from "@internal/dashboard-agent-contracts";
import { QueryResultsChart } from "~/components/code/QueryResultsChart";
import { AGENT_CHART_PLOT_CLASS, ChartActions } from "../../AgentChart";
import { AgentCard, AgentCardHeader } from "../../agent-card";
import { demoChart } from "../fixtures/chart";

export function DemoChartCard({
title = demoChart.title,
actions,
onIntent,
}: {
title?: string;
actions?: ChartAction[];
onIntent?: (intent: AgentIntent) => void;
}) {
return (
<AgentCard>
{title ? (
<AgentCardHeader className="text-xs font-medium text-text-dimmed">{title}</AgentCardHeader>
) : null}
<div className={AGENT_CHART_PLOT_CLASS}>
<QueryResultsChart
rows={demoChart.rows}
columns={demoChart.columns}
config={demoChart.config}
timeRange={demoChart.timeRange}
/>
</div>
<ChartActions actions={actions ?? []} onIntent={onIntent} />
</AgentCard>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import {
ArrowTopRightOnSquareIcon,
CheckCircleIcon,
NoSymbolIcon,
} from "@heroicons/react/20/solid";
import { Button } from "~/components/primitives/Buttons";
import { cn } from "~/utils/cn";
import { AgentStatusIcon } from "../../agent-badges";
import { ChatStatusLine } from "../../chat-layout";
import type { DemoIntent } from "../fixtures/intents";

export function DemoIntentBubble({
intent,
onIntercept,
}: {
intent: DemoIntent;
onIntercept?: (message: string) => void;
}) {
const rejected = !intent.executable;

return (
<div
className={cn(
"rounded-md border px-3 py-3",
rejected
? "border-border-bright bg-background-bright/40"
: "border-indigo-500/30 bg-indigo-500/5"
)}
>
<ChatStatusLine
icon={
<AgentStatusIcon
tone={rejected ? "error" : "success"}
icon={rejected ? NoSymbolIcon : CheckCircleIcon}
className="mt-px"
/>
}
>
<p className="text-xs text-text-bright">{intent.outcome}</p>
{intent.deepLinkLabel ? (
<Button
variant="secondary/small"
LeadingIcon={ArrowTopRightOnSquareIcon}
onClick={() =>
onIntercept?.(
`would navigate to ${intent.deepLinkLabel} (${
intent.intent.kind === "navigate" ? intent.intent.target : intent.intent.kind
})`
)
}
>
<span className="break-all text-left font-mono text-[10px]">
{intent.deepLinkLabel}
</span>
</Button>
) : null}
</ChatStatusLine>
</div>
);
}
Loading
Loading