Kanshō

Docs / Plans and tasks /

ArtifactStack

Stacked list of artifacts produced by a task — files, links, or structured outputs.

Preview

Generated artifacts3

migration.sql

DeployAgent· 14:06:12· 2.1 KB
Ready

test-report.json

TestAgent· 14:05:44· 18.4 KB· 97% conf.
Ready

coverage-summary.html

TestAgent· 14:05:51· 64.0 KB
Generating

Variants

Empty state

No artifacts yet

ArtifactPreviewRow — ready

schema-diff.patch

MigrationAgent· 14:03:22· 4.2 KB
Ready

ArtifactPreviewRow — rejected

validation-output.json

ValidatorAgent· 14:04:00· 1.1 KB
Rejected

ArtifactPreviewRow — stale

performance-baseline.png

BenchmarkAgent· 2026-06-10· 38.7 KB
Stale

Props

PropTypeDescription
artifacts*ArtifactStackItem[]Ordered list of artifact rows. Each item extends ArtifactPreviewRowProps plus a required id.
titlestringOptional section title with a count badge on the right.
onOpen(id: string) => voidGlobal open handler applied to every row that doesn't supply its own.
onDownload(id: string) => voidGlobal download handler applied to every row that doesn't supply its own.
onCopy(id: string) => voidGlobal copy handler applied to every row that doesn't supply its own.

* required.

Usage

import { ArtifactStack } from "@/components/tasks/artifact-stack";

<ArtifactStack
  title="Generated artifacts"
  artifacts={[
    { id: "1", type: "file", title: "migration.sql", source: "DeployAgent", size: "2.1 KB", state: "ready" },
    { id: "2", type: "json", title: "test-report.json", source: "TestAgent", size: "18.4 KB", confidence: 0.97, state: "ready" },
  ]}
  onOpen={(id) => console.log("open", id)}
  onDownload={(id) => console.log("download", id)}
  onCopy={(id) => console.log("copy", id)}
/>