@adia-ai/web-components 0.8.6 → 0.8.7
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/CHANGELOG.md +5 -0
- package/dist/theme-provider.min.js +1 -1
- package/dist/web-components.min.js +1 -1
- package/package.json +2 -1
- package/patterns/access-requests/access-requests.examples.html +132 -0
- package/patterns/access-requests/access-requests.html +60 -0
- package/patterns/admin-keys-and-export/admin-keys-and-export.examples.html +236 -0
- package/patterns/admin-keys-and-export/admin-keys-and-export.html +64 -0
- package/patterns/admin-shell/admin-shell.examples.html +327 -0
- package/patterns/admin-shell/admin-shell.html +44 -0
- package/patterns/agent-cost/agent-cost.examples.html +111 -0
- package/patterns/agent-cost/agent-cost.html +62 -0
- package/patterns/agent-memory/agent-memory.examples.html +155 -0
- package/patterns/agent-memory/agent-memory.html +64 -0
- package/patterns/agent-prompt-library/agent-prompt-library.examples.html +181 -0
- package/patterns/agent-prompt-library/agent-prompt-library.html +64 -0
- package/patterns/agent-tool-call/agent-tool-call.examples.html +123 -0
- package/patterns/agent-tool-call/agent-tool-call.html +60 -0
- package/patterns/alert-dialog/alert-dialog.examples.html +105 -0
- package/patterns/alert-dialog/alert-dialog.html +57 -0
- package/patterns/app-nav/app-nav.examples.html +421 -0
- package/patterns/app-nav/app-nav.html +50 -0
- package/patterns/approvals/approvals.examples.html +131 -0
- package/patterns/approvals/approvals.html +58 -0
- package/patterns/audit-log/audit-log.examples.html +74 -0
- package/patterns/audit-log/audit-log.examples.js +60 -0
- package/patterns/audit-log/audit-log.html +63 -0
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.html +89 -0
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.examples.js +69 -0
- package/patterns/bulk-action-toolbar/bulk-action-toolbar.html +62 -0
- package/patterns/changelog-feed/changelog-feed.examples.html +151 -0
- package/patterns/changelog-feed/changelog-feed.html +57 -0
- package/patterns/chart-in-card/chart-in-card.examples.html +193 -0
- package/patterns/chart-in-card/chart-in-card.examples.js +46 -0
- package/patterns/chart-in-card/chart-in-card.html +66 -0
- package/patterns/chat-shell/chat-shell.examples.html +129 -0
- package/patterns/chat-shell/chat-shell.html +46 -0
- package/patterns/comments-and-collaboration/comments-and-collaboration.examples.html +241 -0
- package/patterns/comments-and-collaboration/comments-and-collaboration.html +66 -0
- package/patterns/component-tokens/component-tokens.examples.html +483 -0
- package/patterns/component-tokens/component-tokens.html +42 -0
- package/patterns/conversion-funnel/conversion-funnel.examples.html +158 -0
- package/patterns/conversion-funnel/conversion-funnel.examples.js +4 -0
- package/patterns/conversion-funnel/conversion-funnel.html +64 -0
- package/patterns/data-tables-inline-edit-and-tree/data-tables-inline-edit-and-tree.examples.html +196 -0
- package/patterns/data-tables-inline-edit-and-tree/data-tables-inline-edit-and-tree.html +58 -0
- package/patterns/diff-review/diff-review.examples.html +147 -0
- package/patterns/diff-review/diff-review.html +56 -0
- package/patterns/editor-shell/editor-shell.examples.html +139 -0
- package/patterns/editor-shell/editor-shell.html +62 -0
- package/patterns/export-flow/export-flow.examples.html +152 -0
- package/patterns/export-flow/export-flow.examples.js +37 -0
- package/patterns/export-flow/export-flow.html +65 -0
- package/patterns/filter-bar/filter-bar.examples.html +116 -0
- package/patterns/filter-bar/filter-bar.examples.js +23 -0
- package/patterns/filter-bar/filter-bar.html +70 -0
- package/patterns/form-drawer/form-drawer.examples.html +210 -0
- package/patterns/form-drawer/form-drawer.html +64 -0
- package/patterns/form-system/form-system.examples.html +383 -0
- package/patterns/form-system/form-system.html +48 -0
- package/patterns/forms-conditional-and-autocomplete/forms-conditional-and-autocomplete.examples.html +189 -0
- package/patterns/forms-conditional-and-autocomplete/forms-conditional-and-autocomplete.html +64 -0
- package/patterns/inline-dialog/inline-dialog.examples.html +143 -0
- package/patterns/inline-dialog/inline-dialog.html +59 -0
- package/patterns/kanban-board/kanban-board.examples.html +224 -0
- package/patterns/kanban-board/kanban-board.html +58 -0
- package/patterns/layout/layout.examples.html +365 -0
- package/patterns/layout/layout.html +54 -0
- package/patterns/marketing-engagement/marketing-engagement.examples.html +280 -0
- package/patterns/marketing-engagement/marketing-engagement.html +64 -0
- package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.examples.html +213 -0
- package/patterns/notifications-bell-and-digest/notifications-bell-and-digest.html +58 -0
- package/patterns/overview/overview.examples.html +119 -0
- package/patterns/overview/overview.html +42 -0
- package/patterns/permissions-matrix/permissions-matrix.examples.html +91 -0
- package/patterns/permissions-matrix/permissions-matrix.examples.js +28 -0
- package/patterns/permissions-matrix/permissions-matrix.html +56 -0
- package/patterns/permissions-role-picker/permissions-role-picker.examples.html +81 -0
- package/patterns/permissions-role-picker/permissions-role-picker.html +56 -0
- package/patterns/permissions-sharing/permissions-sharing.examples.html +175 -0
- package/patterns/permissions-sharing/permissions-sharing.html +66 -0
- package/patterns/profile-public-and-verification/profile-public-and-verification.examples.html +227 -0
- package/patterns/profile-public-and-verification/profile-public-and-verification.html +70 -0
- package/patterns/record-detail-drawer/record-detail-drawer.examples.html +164 -0
- package/patterns/record-detail-drawer/record-detail-drawer.html +64 -0
- package/patterns/responsive-shell-sidebar/README.md +37 -0
- package/patterns/responsive-shell-sidebar/responsive-shell-sidebar.css +39 -0
- package/patterns/responsive-shell-sidebar/responsive-shell-sidebar.examples.html +208 -0
- package/patterns/responsive-shell-sidebar/responsive-shell-sidebar.html +47 -0
- package/patterns/retention-cohort/retention-cohort.examples.html +149 -0
- package/patterns/retention-cohort/retention-cohort.examples.js +37 -0
- package/patterns/retention-cohort/retention-cohort.html +62 -0
- package/patterns/search-discovery/search-discovery.examples.html +263 -0
- package/patterns/search-discovery/search-discovery.html +58 -0
- package/patterns/system-banners/system-banners.examples.html +150 -0
- package/patterns/system-banners/system-banners.html +52 -0
- package/patterns/timezone-selector/timezone-selector.examples.html +82 -0
- package/patterns/timezone-selector/timezone-selector.examples.js +72 -0
- package/patterns/timezone-selector/timezone-selector.html +57 -0
- package/patterns/wizard-drawer/wizard-drawer.examples.html +144 -0
- package/patterns/wizard-drawer/wizard-drawer.examples.js +33 -0
- package/patterns/wizard-drawer/wizard-drawer.html +72 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
<header>
|
|
2
|
+
<div>
|
|
3
|
+
<h1>Agent Memory</h1>
|
|
4
|
+
<div data-actions>
|
|
5
|
+
<tag-ui size="sm">card-ui</tag-ui> <tag-ui size="sm">list-ui</tag-ui> <tag-ui size="sm">description-list-ui</tag-ui> <tag-ui size="sm">code-ui</tag-ui> <tag-ui size="sm">drawer-ui</tag-ui>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
<p>Surfaces for inspecting and editing what the agent remembers — facts the user has set ("call me Kim"), workspace context ("we use OKLCH for tokens"), and session-scoped state. Three shapes — a memory list, a single-entry detail view, and an editor for adding or revising.</p>
|
|
9
|
+
</header>
|
|
10
|
+
|
|
11
|
+
<section data-section data-property="when-to-use">
|
|
12
|
+
<h2 variant="section">When to use</h2>
|
|
13
|
+
<p data-note>
|
|
14
|
+
Whenever an agent has persistent memory the user can audit. Two
|
|
15
|
+
distinct surfaces: an admin/settings page where the user sees and
|
|
16
|
+
curates the full memory store, and an inline drawer the agent can
|
|
17
|
+
pop ("I remembered X — keep / discard / edit"). Both reuse the
|
|
18
|
+
same primitives; the difference is host and presence of the bulk
|
|
19
|
+
actions.
|
|
20
|
+
</p>
|
|
21
|
+
</section>
|
|
22
|
+
|
|
23
|
+
<section data-section data-property="list">
|
|
24
|
+
<h2 variant="section">Memory list</h2>
|
|
25
|
+
<p data-note>Read-only inventory grouped by source (user / workspace / session). Each row carries a one-line fact, source tag, and last-updated time. Click-through opens the detail view.</p>
|
|
26
|
+
<div data-artifact-container>
|
|
27
|
+
<div data-artifact-item data-artifact-label="memory list">
|
|
28
|
+
<card-ui data-chunk="agent-memory-list" style="max-width: 640px;">
|
|
29
|
+
<header>
|
|
30
|
+
<span slot="heading" variant="section">Agent memory</span>
|
|
31
|
+
<text-ui slot="description" color="subtle">14 entries across 3 sources</text-ui>
|
|
32
|
+
<button-ui slot="action" text="Add memory" variant="ghost" size="sm" icon-leading="plus"></button-ui>
|
|
33
|
+
</header>
|
|
34
|
+
<section bleed>
|
|
35
|
+
<list-ui divider contained>
|
|
36
|
+
<list-item-ui text="Prefers Kim over Kimberly">
|
|
37
|
+
<span slot="description">From a chat on 2026-04-12</span>
|
|
38
|
+
<tag-ui slot="action" size="sm">user</tag-ui>
|
|
39
|
+
</list-item-ui>
|
|
40
|
+
<list-item-ui text="Uses OKLCH tokens, never raw hex">
|
|
41
|
+
<span slot="description">From the AdiaUI styleguide</span>
|
|
42
|
+
<tag-ui slot="action" size="sm" variant="accent">workspace</tag-ui>
|
|
43
|
+
</list-item-ui>
|
|
44
|
+
<list-item-ui text="Browser baseline: Chromium 125+, Safari 18.0+">
|
|
45
|
+
<span slot="description">From AGENTS.md</span>
|
|
46
|
+
<tag-ui slot="action" size="sm" variant="accent">workspace</tag-ui>
|
|
47
|
+
</list-item-ui>
|
|
48
|
+
<list-item-ui text="Working on Group 1 of skill expansion">
|
|
49
|
+
<span slot="description">Current session</span>
|
|
50
|
+
<tag-ui slot="action" size="sm">session</tag-ui>
|
|
51
|
+
</list-item-ui>
|
|
52
|
+
</list-ui>
|
|
53
|
+
</section>
|
|
54
|
+
<footer divider>
|
|
55
|
+
<text-ui slot="description" color="subtle" size="sm">Workspace memory is shared with team members.</text-ui>
|
|
56
|
+
</footer>
|
|
57
|
+
</card-ui>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</section>
|
|
61
|
+
|
|
62
|
+
<section data-section data-property="detail">
|
|
63
|
+
<h2 variant="section">Memory detail</h2>
|
|
64
|
+
<p data-note>Single-entry view. <code>description-list-ui</code> for metadata; <code>code-ui</code> for any structured payload (e.g. JSON facts). Footer carries delete + edit actions.</p>
|
|
65
|
+
<div data-artifact-container>
|
|
66
|
+
<div data-artifact-item data-artifact-label="memory detail">
|
|
67
|
+
<card-ui data-chunk="agent-memory-detail" style="max-width: 560px;">
|
|
68
|
+
<header>
|
|
69
|
+
<span slot="heading" variant="section">Uses OKLCH tokens, never raw hex</span>
|
|
70
|
+
<tag-ui slot="action" variant="accent">workspace</tag-ui>
|
|
71
|
+
</header>
|
|
72
|
+
<section>
|
|
73
|
+
<col-ui gap="3">
|
|
74
|
+
<description-list-ui>
|
|
75
|
+
<span slot="term">Source</span>
|
|
76
|
+
<span slot="description">AdiaUI styleguide · component-token-contract.md</span>
|
|
77
|
+
<span slot="term">First seen</span>
|
|
78
|
+
<span slot="description">2026-03-14</span>
|
|
79
|
+
<span slot="term">Last referenced</span>
|
|
80
|
+
<span slot="description">2026-04-29 · 4 minutes ago</span>
|
|
81
|
+
<span slot="term">Times applied</span>
|
|
82
|
+
<span slot="description">142</span>
|
|
83
|
+
</description-list-ui>
|
|
84
|
+
<code-ui language="json">{
|
|
85
|
+
"fact": "no raw hex / rgb / oklch in component CSS",
|
|
86
|
+
"source": ".claude/docs/specs/component-token-contract.md#tokens",
|
|
87
|
+
"scope": ["packages/web-components/components/**/*.css"],
|
|
88
|
+
"exceptions": ["styles/colors/semantics.css", "styles/tokens.css"]
|
|
89
|
+
}</code-ui>
|
|
90
|
+
</col-ui>
|
|
91
|
+
</section>
|
|
92
|
+
<footer divider>
|
|
93
|
+
<button-ui slot="action" text="Delete" variant="ghost" color="danger" size="sm" icon-leading="trash"></button-ui>
|
|
94
|
+
<button-ui slot="action" text="Edit" variant="outline" size="sm" icon-leading="pencil"></button-ui>
|
|
95
|
+
</footer>
|
|
96
|
+
</card-ui>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</section>
|
|
100
|
+
|
|
101
|
+
<section data-section data-property="editor">
|
|
102
|
+
<h2 variant="section">Memory editor</h2>
|
|
103
|
+
<p data-note>Inline drawer pop the agent fires when proposing a memory. Three controls: a <code>textarea-ui</code> for the fact, a <code>radio-ui</code> for scope, and primary/ghost actions in the footer. Errors carry through <code>field-ui</code>'s error slot.</p>
|
|
104
|
+
<div data-artifact-container>
|
|
105
|
+
<div data-artifact-item data-artifact-label="memory editor">
|
|
106
|
+
<card-ui data-chunk="agent-memory-editor" style="max-width: 560px;">
|
|
107
|
+
<header>
|
|
108
|
+
<span slot="heading" variant="section">Save this as a memory?</span>
|
|
109
|
+
<text-ui slot="description" color="subtle">The agent proposed a fact during this conversation.</text-ui>
|
|
110
|
+
</header>
|
|
111
|
+
<section>
|
|
112
|
+
<form-container-ui>
|
|
113
|
+
<col-ui gap="3">
|
|
114
|
+
<field-ui label="Fact">
|
|
115
|
+
<textarea-ui rows="3" value="Browser baseline: Chromium 125+, Safari 18.0+, Firefox 129+"></textarea-ui>
|
|
116
|
+
</field-ui>
|
|
117
|
+
<field-ui label="Scope" hint="Workspace memories are shared with your team.">
|
|
118
|
+
<col-ui gap="1">
|
|
119
|
+
<radio-ui name="scope" value="user" label="Just me"></radio-ui>
|
|
120
|
+
<radio-ui name="scope" value="workspace" label="My workspace" checked></radio-ui>
|
|
121
|
+
<radio-ui name="scope" value="session" label="This session only"></radio-ui>
|
|
122
|
+
</col-ui>
|
|
123
|
+
</field-ui>
|
|
124
|
+
</col-ui>
|
|
125
|
+
<row-ui slot="actions" gap="2" justify="end">
|
|
126
|
+
<button-ui text="Discard" variant="ghost"></button-ui>
|
|
127
|
+
<button-ui text="Save memory" variant="primary"></button-ui>
|
|
128
|
+
</row-ui>
|
|
129
|
+
</form-container-ui>
|
|
130
|
+
</section>
|
|
131
|
+
</card-ui>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
</section>
|
|
135
|
+
|
|
136
|
+
<section data-section data-property="composition">
|
|
137
|
+
<h2 variant="section">Composition rules</h2>
|
|
138
|
+
<ul>
|
|
139
|
+
<li><strong>Source is always visible</strong> — the user must be able to see where the agent learned a fact. Hidden provenance erodes trust.</li>
|
|
140
|
+
<li><strong>Three scopes, named for the user</strong> — "Just me / My workspace / This session" — not technical labels (user / workspace / session) in user-facing copy.</li>
|
|
141
|
+
<li><strong>Workspace memories carry an accent tag</strong> — the visible distinction reminds the user these are shared.</li>
|
|
142
|
+
<li><strong>Editor confirmation, not silent persistence</strong> — when the agent proposes a memory, surface the editor pop. Auto-saving without confirmation is the path to "why does it think X?" support tickets.</li>
|
|
143
|
+
<li><strong>Delete is destructive but not type-to-confirm</strong> — memories are recoverable from history; a single click + toast undo is enough friction.</li>
|
|
144
|
+
</ul>
|
|
145
|
+
</section>
|
|
146
|
+
|
|
147
|
+
<section data-section data-property="cross-references">
|
|
148
|
+
<h2 variant="section">See also</h2>
|
|
149
|
+
<ul>
|
|
150
|
+
<li><a href="/site/components/list">list-ui</a> · <a href="/site/components/list-item">list-item-ui</a> — list anatomy.</li>
|
|
151
|
+
<li><a href="/site/components/description-list">description-list-ui</a> — term/description pairs in the detail view.</li>
|
|
152
|
+
<li><a href="/site/components/field">field-ui</a> — labeled form controls in the editor.</li>
|
|
153
|
+
<li><a href="/site/components/drawer">drawer-ui</a> — host surface when the editor is inline-popped.</li>
|
|
154
|
+
</ul>
|
|
155
|
+
</section>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" theme="auto">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Agent Memory (pattern) — AdiaUI</title>
|
|
7
|
+
|
|
8
|
+
<!-- Token base -->
|
|
9
|
+
<link rel="stylesheet" href="../../styles/resets.css">
|
|
10
|
+
<link rel="stylesheet" href="../../styles/tokens.css">
|
|
11
|
+
|
|
12
|
+
<!-- Component CSS — primitives this pattern composes -->
|
|
13
|
+
<link rel="stylesheet" href="../../components/button/button.css">
|
|
14
|
+
<link rel="stylesheet" href="../../components/card/card.css">
|
|
15
|
+
<link rel="stylesheet" href="../../components/code/code.css">
|
|
16
|
+
<link rel="stylesheet" href="../../components/col/col.css">
|
|
17
|
+
<link rel="stylesheet" href="../../components/description-list/description-list.css">
|
|
18
|
+
<link rel="stylesheet" href="../../components/field/field.css">
|
|
19
|
+
<link rel="stylesheet" href="../../components/list/list.css">
|
|
20
|
+
<link rel="stylesheet" href="../../components/radio/radio.css">
|
|
21
|
+
<link rel="stylesheet" href="../../components/row/row.css">
|
|
22
|
+
<link rel="stylesheet" href="../../components/tag/tag.css">
|
|
23
|
+
<link rel="stylesheet" href="../../components/text/text.css">
|
|
24
|
+
<link rel="stylesheet" href="../../components/textarea/textarea.css">
|
|
25
|
+
|
|
26
|
+
<!-- Component JS -->
|
|
27
|
+
<script type="module" src="../../components/button/button.js"></script>
|
|
28
|
+
<script type="module" src="../../components/card/card.js"></script>
|
|
29
|
+
<script type="module" src="../../components/code/code.js"></script>
|
|
30
|
+
<script type="module" src="../../components/col/col.js"></script>
|
|
31
|
+
<script type="module" src="../../components/description-list/description-list.js"></script>
|
|
32
|
+
<script type="module" src="../../components/field/field.js"></script>
|
|
33
|
+
<script type="module" src="../../components/list/list.js"></script>
|
|
34
|
+
<script type="module" src="../../components/radio/radio.js"></script>
|
|
35
|
+
<script type="module" src="../../components/row/row.js"></script>
|
|
36
|
+
<script type="module" src="../../components/tag/tag.js"></script>
|
|
37
|
+
<script type="module" src="../../components/text/text.js"></script>
|
|
38
|
+
<script type="module" src="../../components/textarea/textarea.js"></script>
|
|
39
|
+
|
|
40
|
+
<style>
|
|
41
|
+
:where(html, body) { margin: 0; min-height: 100vh; background: var(--md-sys-color-neutral-background); color: var(--md-sys-color-neutral-on-surface); font-family: var(--a-font-family); }
|
|
42
|
+
main { max-width: 960px; margin-inline: auto; padding: var(--a-space-6) var(--a-space-5); }
|
|
43
|
+
</style>
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
<main id="demo-root">
|
|
48
|
+
<p>Loading examples…</p>
|
|
49
|
+
</main>
|
|
50
|
+
|
|
51
|
+
<script type="module">
|
|
52
|
+
const root = document.getElementById('demo-root');
|
|
53
|
+
try {
|
|
54
|
+
const res = await fetch('./agent-memory.examples.html');
|
|
55
|
+
if (!res.ok) throw new Error(`fetch failed (${res.status})`);
|
|
56
|
+
root.innerHTML = await res.text();
|
|
57
|
+
} catch (err) {
|
|
58
|
+
root.innerHTML = `<p style="color:var(--a-danger-strong);">Failed to load agent-memory.examples.html — ${err.message}</p>`;
|
|
59
|
+
console.error('[agent-memory.html]', err);
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
<header>
|
|
2
|
+
<div>
|
|
3
|
+
<h1>Agent Prompt Library</h1>
|
|
4
|
+
<div data-actions>
|
|
5
|
+
<tag-ui size="sm">card-ui</tag-ui> <tag-ui size="sm">grid-ui</tag-ui> <tag-ui size="sm">search-ui</tag-ui> <tag-ui size="sm">tag-ui</tag-ui> <tag-ui size="sm">menu-ui</tag-ui> <tag-ui size="sm">option-card-ui</tag-ui>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
<p>Saved prompts the user can recall instead of re-typing — recurring queries, formatted recipes, role-pinned starters. Three shapes — the full library page, a compact picker (popover or menu), and the prompt card itself.</p>
|
|
9
|
+
</header>
|
|
10
|
+
|
|
11
|
+
<section data-section data-property="when-to-use">
|
|
12
|
+
<h2 variant="section">When to use</h2>
|
|
13
|
+
<p data-note>
|
|
14
|
+
Whenever users send the same prompt more than twice. The library
|
|
15
|
+
is the curation surface (settings/library route); the picker is
|
|
16
|
+
the in-context recall (chat input slash-menu, slash-command); the
|
|
17
|
+
card is the unit shared between both. All three reuse the same
|
|
18
|
+
fact: a prompt has a name, body, optional tags, optional pinned
|
|
19
|
+
role.
|
|
20
|
+
</p>
|
|
21
|
+
</section>
|
|
22
|
+
|
|
23
|
+
<section data-section data-property="library-grid">
|
|
24
|
+
<h2 variant="section">Library grid</h2>
|
|
25
|
+
<p data-note>Full library route. <code>search-ui</code> at the top, <code>tag-ui</code> filter chips, <code>grid-ui columns="2"</code> of prompt cards. Empty state when search returns nothing.</p>
|
|
26
|
+
<div data-artifact-container>
|
|
27
|
+
<div data-artifact-item data-artifact-label="prompt library grid">
|
|
28
|
+
<card-ui data-chunk="agent-prompt-library-grid" style="max-width: 720px;">
|
|
29
|
+
<header>
|
|
30
|
+
<span slot="heading" variant="section">Prompt library</span>
|
|
31
|
+
<text-ui slot="description" color="subtle">12 prompts · 4 categories</text-ui>
|
|
32
|
+
<button-ui slot="action" text="New prompt" variant="primary" size="sm" icon-leading="plus"></button-ui>
|
|
33
|
+
</header>
|
|
34
|
+
<section>
|
|
35
|
+
<col-ui gap="3">
|
|
36
|
+
<row-ui gap="2" align="center">
|
|
37
|
+
<search-ui size="sm" placeholder="Search prompts" style="flex: 1;"></search-ui>
|
|
38
|
+
<button-ui icon="funnel" variant="ghost" size="sm"></button-ui>
|
|
39
|
+
</row-ui>
|
|
40
|
+
<row-ui gap="2">
|
|
41
|
+
<tag-ui size="sm" variant="accent">All · 12</tag-ui>
|
|
42
|
+
<tag-ui size="sm">Code review · 4</tag-ui>
|
|
43
|
+
<tag-ui size="sm">Drafts · 3</tag-ui>
|
|
44
|
+
<tag-ui size="sm">Research · 3</tag-ui>
|
|
45
|
+
<tag-ui size="sm">Personal · 2</tag-ui>
|
|
46
|
+
</row-ui>
|
|
47
|
+
<grid-ui columns="2" gap="2">
|
|
48
|
+
<card-ui compact>
|
|
49
|
+
<header><span slot="heading">Code review</span><tag-ui slot="action" size="sm">Pinned</tag-ui></header>
|
|
50
|
+
<section><text-ui color="subtle" size="sm">Review the diff for security, perf, and naming. Flag with file:line. Suggest fixes inline.</text-ui></section>
|
|
51
|
+
</card-ui>
|
|
52
|
+
<card-ui compact>
|
|
53
|
+
<header><span slot="heading">Standup draft</span></header>
|
|
54
|
+
<section><text-ui color="subtle" size="sm">Summarize what I did yesterday from my git log. Group by repo. End with today's plan.</text-ui></section>
|
|
55
|
+
</card-ui>
|
|
56
|
+
<card-ui compact>
|
|
57
|
+
<header><span slot="heading">Spec from notes</span></header>
|
|
58
|
+
<section><text-ui color="subtle" size="sm">Turn these notes into a spec doc with sections: problem, design, alternatives, open questions.</text-ui></section>
|
|
59
|
+
</card-ui>
|
|
60
|
+
<card-ui compact>
|
|
61
|
+
<header><span slot="heading">Bug repro</span></header>
|
|
62
|
+
<section><text-ui color="subtle" size="sm">Given this stack trace, propose three hypotheses ordered by likelihood. Show the test that would falsify each.</text-ui></section>
|
|
63
|
+
</card-ui>
|
|
64
|
+
</grid-ui>
|
|
65
|
+
</col-ui>
|
|
66
|
+
</section>
|
|
67
|
+
</card-ui>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</section>
|
|
71
|
+
|
|
72
|
+
<section data-section data-property="picker">
|
|
73
|
+
<h2 variant="section">Picker (slash-menu)</h2>
|
|
74
|
+
<p data-note>Compact popover surface fired from a chat input slash-command (<code>/</code> or <code>Cmd+J</code>). <code>menu-ui</code> with the prompt name + first 80 characters of body as the description. Recent prompts at the top.</p>
|
|
75
|
+
<div data-artifact-container>
|
|
76
|
+
<div data-artifact-item data-artifact-label="prompt picker">
|
|
77
|
+
<card-ui data-chunk="agent-prompt-picker" raw style="max-width: 420px;" data-shape="popover">
|
|
78
|
+
<section>
|
|
79
|
+
<col-ui gap="3">
|
|
80
|
+
<col-ui gap="1">
|
|
81
|
+
<text-ui strong size="sm" color="subtle">Recent</text-ui>
|
|
82
|
+
<col-ui gap="2">
|
|
83
|
+
<row-ui gap="2" align="center">
|
|
84
|
+
<icon-ui name="code" size="sm"></icon-ui>
|
|
85
|
+
<col-ui gap="0" style="flex: 1;">
|
|
86
|
+
<text-ui strong>Code review</text-ui>
|
|
87
|
+
<text-ui color="subtle" size="sm">Review the diff for security, perf, and naming…</text-ui>
|
|
88
|
+
</col-ui>
|
|
89
|
+
<kbd-ui>⌘1</kbd-ui>
|
|
90
|
+
</row-ui>
|
|
91
|
+
<row-ui gap="2" align="center">
|
|
92
|
+
<icon-ui name="note" size="sm"></icon-ui>
|
|
93
|
+
<col-ui gap="0" style="flex: 1;">
|
|
94
|
+
<text-ui strong>Standup draft</text-ui>
|
|
95
|
+
<text-ui color="subtle" size="sm">Summarize what I did yesterday from my git log…</text-ui>
|
|
96
|
+
</col-ui>
|
|
97
|
+
<kbd-ui>⌘2</kbd-ui>
|
|
98
|
+
</row-ui>
|
|
99
|
+
</col-ui>
|
|
100
|
+
</col-ui>
|
|
101
|
+
<divider-ui></divider-ui>
|
|
102
|
+
<col-ui gap="1">
|
|
103
|
+
<text-ui strong size="sm" color="subtle">All prompts</text-ui>
|
|
104
|
+
<col-ui gap="2">
|
|
105
|
+
<row-ui gap="2" align="center">
|
|
106
|
+
<icon-ui name="file-text" size="sm"></icon-ui>
|
|
107
|
+
<col-ui gap="0" style="flex: 1;">
|
|
108
|
+
<text-ui strong>Spec from notes</text-ui>
|
|
109
|
+
<text-ui color="subtle" size="sm">Turn these notes into a spec doc with sections…</text-ui>
|
|
110
|
+
</col-ui>
|
|
111
|
+
</row-ui>
|
|
112
|
+
<row-ui gap="2" align="center">
|
|
113
|
+
<icon-ui name="bug" size="sm"></icon-ui>
|
|
114
|
+
<col-ui gap="0" style="flex: 1;">
|
|
115
|
+
<text-ui strong>Bug repro</text-ui>
|
|
116
|
+
<text-ui color="subtle" size="sm">Given this stack trace, propose three hypotheses…</text-ui>
|
|
117
|
+
</col-ui>
|
|
118
|
+
</row-ui>
|
|
119
|
+
</col-ui>
|
|
120
|
+
</col-ui>
|
|
121
|
+
</col-ui>
|
|
122
|
+
</section>
|
|
123
|
+
</card-ui>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</section>
|
|
127
|
+
|
|
128
|
+
<section data-section data-property="card">
|
|
129
|
+
<h2 variant="section">Prompt card (the unit)</h2>
|
|
130
|
+
<p data-note>The single prompt as a self-contained card. Header with name + tags; body with the full prompt text; footer with run / edit / delete. Reused inside the grid and the slash-menu detail.</p>
|
|
131
|
+
<div data-artifact-container>
|
|
132
|
+
<div data-artifact-item data-artifact-label="prompt card">
|
|
133
|
+
<card-ui data-chunk="agent-prompt-card" style="max-width: 560px;">
|
|
134
|
+
<header>
|
|
135
|
+
<span slot="heading" variant="section">Code review</span>
|
|
136
|
+
<row-ui slot="action" gap="1">
|
|
137
|
+
<tag-ui size="sm" variant="accent">Pinned</tag-ui>
|
|
138
|
+
<tag-ui size="sm">Code review</tag-ui>
|
|
139
|
+
</row-ui>
|
|
140
|
+
</header>
|
|
141
|
+
<section>
|
|
142
|
+
<col-ui gap="2">
|
|
143
|
+
<text-ui>Review the diff for security, perf, and naming. Flag issues with <code>file:line</code> citations. Suggest concrete fixes inline. Skip nitpicks unless asked.</text-ui>
|
|
144
|
+
<description-list-ui>
|
|
145
|
+
<span slot="term">Last used</span>
|
|
146
|
+
<span slot="description">3 hours ago</span>
|
|
147
|
+
<span slot="term">Times run</span>
|
|
148
|
+
<span slot="description">28</span>
|
|
149
|
+
</description-list-ui>
|
|
150
|
+
</col-ui>
|
|
151
|
+
</section>
|
|
152
|
+
<footer divider>
|
|
153
|
+
<button-ui slot="action" text="Delete" variant="ghost" color="danger" size="sm" icon-leading="trash"></button-ui>
|
|
154
|
+
<button-ui slot="action" text="Edit" variant="ghost" size="sm" icon-leading="pencil"></button-ui>
|
|
155
|
+
<button-ui slot="action" text="Run" variant="primary" size="sm" icon-leading="play"></button-ui>
|
|
156
|
+
</footer>
|
|
157
|
+
</card-ui>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
</section>
|
|
161
|
+
|
|
162
|
+
<section data-section data-property="composition">
|
|
163
|
+
<h2 variant="section">Composition rules</h2>
|
|
164
|
+
<ul>
|
|
165
|
+
<li><strong>Picker is keyboard-first</strong> — Cmd+J opens, ⌘1–⌘9 selects recent, type-to-search filters. Mouse-only pickers are slow once a user has more than 5 prompts.</li>
|
|
166
|
+
<li><strong>Recents above all-prompts</strong> — most picks come from the last 3 used. Surface them first, alphabetical for the rest.</li>
|
|
167
|
+
<li><strong>Tags are filters, not categories</strong> — a prompt can carry multiple tags. The category chips at the top filter the grid; they don't partition.</li>
|
|
168
|
+
<li><strong>Pinned ≠ first</strong> — pinned prompts appear with the Pinned tag in any sort, not forced to the top. Surfacing-by-recency wins more selections than surfacing-by-pin.</li>
|
|
169
|
+
<li><strong>Run is the primary action</strong> — placement and tone match. Edit/delete are secondary; they don't compete.</li>
|
|
170
|
+
</ul>
|
|
171
|
+
</section>
|
|
172
|
+
|
|
173
|
+
<section data-section data-property="cross-references">
|
|
174
|
+
<h2 variant="section">See also</h2>
|
|
175
|
+
<ul>
|
|
176
|
+
<li><a href="/site/components/menu">menu-ui</a> — picker surface.</li>
|
|
177
|
+
<li><a href="/site/components/search">search-ui</a> — library top-bar input.</li>
|
|
178
|
+
<li><a href="/site/components/option-card">option-card-ui</a> — alternative when prompts have rich previews (image / icon).</li>
|
|
179
|
+
<li><a href="/site/patterns/adia-chat">adia-chat</a> — host surface that fires the picker on slash.</li>
|
|
180
|
+
</ul>
|
|
181
|
+
</section>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" theme="auto">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Agent Prompt Library (pattern) — AdiaUI</title>
|
|
7
|
+
|
|
8
|
+
<!-- Token base -->
|
|
9
|
+
<link rel="stylesheet" href="../../styles/resets.css">
|
|
10
|
+
<link rel="stylesheet" href="../../styles/tokens.css">
|
|
11
|
+
|
|
12
|
+
<!-- Component CSS — primitives this pattern composes -->
|
|
13
|
+
<link rel="stylesheet" href="../../components/button/button.css">
|
|
14
|
+
<link rel="stylesheet" href="../../components/card/card.css">
|
|
15
|
+
<link rel="stylesheet" href="../../components/col/col.css">
|
|
16
|
+
<link rel="stylesheet" href="../../components/description-list/description-list.css">
|
|
17
|
+
<link rel="stylesheet" href="../../components/divider/divider.css">
|
|
18
|
+
<link rel="stylesheet" href="../../components/grid/grid.css">
|
|
19
|
+
<link rel="stylesheet" href="../../components/icon/icon.css">
|
|
20
|
+
<link rel="stylesheet" href="../../components/kbd/kbd.css">
|
|
21
|
+
<link rel="stylesheet" href="../../components/row/row.css">
|
|
22
|
+
<link rel="stylesheet" href="../../components/search/search.css">
|
|
23
|
+
<link rel="stylesheet" href="../../components/tag/tag.css">
|
|
24
|
+
<link rel="stylesheet" href="../../components/text/text.css">
|
|
25
|
+
|
|
26
|
+
<!-- Component JS -->
|
|
27
|
+
<script type="module" src="../../components/button/button.js"></script>
|
|
28
|
+
<script type="module" src="../../components/card/card.js"></script>
|
|
29
|
+
<script type="module" src="../../components/col/col.js"></script>
|
|
30
|
+
<script type="module" src="../../components/description-list/description-list.js"></script>
|
|
31
|
+
<script type="module" src="../../components/divider/divider.js"></script>
|
|
32
|
+
<script type="module" src="../../components/grid/grid.js"></script>
|
|
33
|
+
<script type="module" src="../../components/icon/icon.js"></script>
|
|
34
|
+
<script type="module" src="../../components/kbd/kbd.js"></script>
|
|
35
|
+
<script type="module" src="../../components/row/row.js"></script>
|
|
36
|
+
<script type="module" src="../../components/search/search.js"></script>
|
|
37
|
+
<script type="module" src="../../components/tag/tag.js"></script>
|
|
38
|
+
<script type="module" src="../../components/text/text.js"></script>
|
|
39
|
+
|
|
40
|
+
<style>
|
|
41
|
+
:where(html, body) { margin: 0; min-height: 100vh; background: var(--md-sys-color-neutral-background); color: var(--md-sys-color-neutral-on-surface); font-family: var(--a-font-family); }
|
|
42
|
+
main { max-width: 960px; margin-inline: auto; padding: var(--a-space-6) var(--a-space-5); }
|
|
43
|
+
</style>
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
<main id="demo-root">
|
|
48
|
+
<p>Loading examples…</p>
|
|
49
|
+
</main>
|
|
50
|
+
|
|
51
|
+
<script type="module">
|
|
52
|
+
const root = document.getElementById('demo-root');
|
|
53
|
+
try {
|
|
54
|
+
const res = await fetch('./agent-prompt-library.examples.html');
|
|
55
|
+
if (!res.ok) throw new Error(`fetch failed (${res.status})`);
|
|
56
|
+
root.innerHTML = await res.text();
|
|
57
|
+
} catch (err) {
|
|
58
|
+
root.innerHTML = `<p style="color:var(--a-danger-strong);">Failed to load agent-prompt-library.examples.html — ${err.message}</p>`;
|
|
59
|
+
console.error('[agent-prompt-library.html]', err);
|
|
60
|
+
}
|
|
61
|
+
</script>
|
|
62
|
+
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
<header>
|
|
2
|
+
<div>
|
|
3
|
+
<h1>Agent Tool Call</h1>
|
|
4
|
+
<div data-actions>
|
|
5
|
+
<tag-ui size="sm">agent-artifact-ui</tag-ui> <tag-ui size="sm">code-ui</tag-ui> <tag-ui size="sm">button-ui</tag-ui>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
<p>The block an agent renders when it invokes a tool — search, calculation, API call, function. Four states cover the lifecycle: <strong>running</strong>, <strong>success</strong>, <strong>error</strong>, and the default <strong>collapsed</strong> summary. All four reuse <code>agent-artifact-ui</code> with the <code>kind="TOOL"</code> badge; tone shifts on outcome.</p>
|
|
9
|
+
</header>
|
|
10
|
+
|
|
11
|
+
<section data-section data-property="when-to-use">
|
|
12
|
+
<h2 variant="section">When to use</h2>
|
|
13
|
+
<p data-note>
|
|
14
|
+
Whenever an agent calls a function and the user benefits from seeing
|
|
15
|
+
what the call did. The block is more compact than a full chat reply
|
|
16
|
+
and stays visually distinct from prose, so a thread of mixed
|
|
17
|
+
text-plus-tool-calls remains scannable. For multi-step tool runs,
|
|
18
|
+
pair this with <code>agent-reasoning-ui</code> above and
|
|
19
|
+
<code>agent-trace-ui</code> below for the full lineage.
|
|
20
|
+
</p>
|
|
21
|
+
</section>
|
|
22
|
+
|
|
23
|
+
<section data-section data-property="running">
|
|
24
|
+
<h2 variant="section">Running</h2>
|
|
25
|
+
<p data-note>In-progress invocation. <code>tone="neutral"</code> with a <code>progress-ui</code> indeterminate strip in the body. No action buttons until the call resolves.</p>
|
|
26
|
+
<div data-artifact-container>
|
|
27
|
+
<div data-artifact-item data-artifact-label="running tool call">
|
|
28
|
+
<agent-artifact-ui data-chunk="agent-tool-call-running" title="search_web" kind="TOOL" icon="magnifying-glass" tone="neutral" style="max-width: 560px;">
|
|
29
|
+
<col-ui gap="2">
|
|
30
|
+
<code-ui language="json">{ "query": "claude opus tool use latency", "max_results": 5 }</code-ui>
|
|
31
|
+
<row-ui align="center" gap="2">
|
|
32
|
+
<progress-ui indeterminate size="sm" style="flex: 1;"></progress-ui>
|
|
33
|
+
<text-ui color="subtle" size="sm">Running…</text-ui>
|
|
34
|
+
</row-ui>
|
|
35
|
+
</col-ui>
|
|
36
|
+
</agent-artifact-ui>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</section>
|
|
40
|
+
|
|
41
|
+
<section data-section data-property="success">
|
|
42
|
+
<h2 variant="section">Success</h2>
|
|
43
|
+
<p data-note><code>tone="accent"</code> on resolution. Body shows the call args + a result preview (truncated when long). Secondary slot carries copy / open-in-new-tab actions.</p>
|
|
44
|
+
<div data-artifact-container>
|
|
45
|
+
<div data-artifact-item data-artifact-label="successful tool call">
|
|
46
|
+
<agent-artifact-ui data-chunk="agent-tool-call-success" title="search_web" kind="TOOL" icon="check-circle" tone="accent" style="max-width: 560px;">
|
|
47
|
+
<button-ui slot="secondary" text="Copy result" icon="copy" variant="ghost" size="sm"></button-ui>
|
|
48
|
+
<col-ui gap="2" style="min-width: 0;">
|
|
49
|
+
<description-list-ui layout="inline" align="between">
|
|
50
|
+
<dt>Query</dt><dd><code>claude opus tool use latency</code></dd>
|
|
51
|
+
<dt>Results</dt><dd>5 sources, 482 ms</dd>
|
|
52
|
+
</description-list-ui>
|
|
53
|
+
<code-ui language="json" style="min-width: 0;">[
|
|
54
|
+
{ "title": "Anthropic — Tool use latency", "url": "anthropic.com/news/…", "rank": 1 },
|
|
55
|
+
{ "title": "Latency primer for agent loops", "url": "blog.…", "rank": 2 }
|
|
56
|
+
]</code-ui>
|
|
57
|
+
</col-ui>
|
|
58
|
+
</agent-artifact-ui>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</section>
|
|
62
|
+
|
|
63
|
+
<section data-section data-property="error">
|
|
64
|
+
<h2 variant="section">Error</h2>
|
|
65
|
+
<p data-note><code>tone="danger"</code> with a clear next-step. The body carries the call args plus the error message in an <code>alert-ui</code>; secondary slot offers retry.</p>
|
|
66
|
+
<div data-artifact-container>
|
|
67
|
+
<div data-artifact-item data-artifact-label="failed tool call">
|
|
68
|
+
<agent-artifact-ui data-chunk="agent-tool-call-error" title="fetch_invoice" kind="TOOL" icon="warning" tone="danger" style="max-width: 560px;">
|
|
69
|
+
<button-ui slot="secondary" text="Retry" icon="arrow-clockwise" variant="outline" size="sm"></button-ui>
|
|
70
|
+
<col-ui gap="2" style="min-width: 0;">
|
|
71
|
+
<code-ui language="json" style="min-width: 0;">{ "invoice_id": "inv_8421", "format": "pdf" }</code-ui>
|
|
72
|
+
<alert-ui variant="danger">
|
|
73
|
+
<col-ui slot="content" gap="1">
|
|
74
|
+
<text-ui strong>404 Not Found</text-ui>
|
|
75
|
+
<text-ui>No invoice with id <code>inv_8421</code> in the last 90 days. Check the id or widen the date range.</text-ui>
|
|
76
|
+
</col-ui>
|
|
77
|
+
</alert-ui>
|
|
78
|
+
</col-ui>
|
|
79
|
+
</agent-artifact-ui>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</section>
|
|
83
|
+
|
|
84
|
+
<section data-section data-property="collapsed">
|
|
85
|
+
<h2 variant="section">Collapsed (default summary)</h2>
|
|
86
|
+
<p data-note>Default state inside a long thread — the agent has many tool calls and most don't need detail. Header carries the tool name + result count or status; body expands on click. Use <code>collapsed</code> attribute.</p>
|
|
87
|
+
<div data-artifact-container>
|
|
88
|
+
<div data-artifact-item data-artifact-label="collapsed tool call summary">
|
|
89
|
+
<col-ui data-chunk="agent-tool-call-collapsed" gap="2" style="max-width: 560px;">
|
|
90
|
+
<agent-artifact-ui title="search_web · 5 results · 482 ms" kind="TOOL" icon="magnifying-glass" tone="accent" collapsed>
|
|
91
|
+
<code-ui language="json">[ /* result list */ ]</code-ui>
|
|
92
|
+
</agent-artifact-ui>
|
|
93
|
+
<agent-artifact-ui title="get_weather · San Francisco · 64°F" kind="TOOL" icon="cloud-sun" tone="accent" collapsed>
|
|
94
|
+
<code-ui language="json">{ "city": "San Francisco", "temp_f": 64, "condition": "fog" }</code-ui>
|
|
95
|
+
</agent-artifact-ui>
|
|
96
|
+
<agent-artifact-ui title="run_query · 12 rows" kind="TOOL" icon="database" tone="accent" collapsed>
|
|
97
|
+
<code-ui language="sql">SELECT id, name, plan FROM users WHERE …</code-ui>
|
|
98
|
+
</agent-artifact-ui>
|
|
99
|
+
</col-ui>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</section>
|
|
103
|
+
|
|
104
|
+
<section data-section data-property="composition">
|
|
105
|
+
<h2 variant="section">Composition rules</h2>
|
|
106
|
+
<ul>
|
|
107
|
+
<li><strong>Always <code>kind="TOOL"</code></strong> for the badge — distinguishes tool blocks from A2UI artifacts, tickets, notes, etc.</li>
|
|
108
|
+
<li><strong>Tone tracks state</strong> — <code>neutral</code> while running, <code>accent</code> on success, <code>danger</code> on error. Don't use <code>warning</code> here; reserve that for soft warnings (rate-limit nearing, deprecated tool).</li>
|
|
109
|
+
<li><strong>Title carries identity</strong> — function name first; for collapsed/summary forms, append <code>·</code> + result count or short status.</li>
|
|
110
|
+
<li><strong>Body always shows args first</strong> in a <code>code-ui</code> block, then result. The reverse hides the call from the user; an agent thread is a contract, not an output stream.</li>
|
|
111
|
+
<li><strong>Retry on error, not on success</strong> — error gets a Retry button in <code>slot="secondary"</code>; success gets Copy / Open. Don't double-up.</li>
|
|
112
|
+
</ul>
|
|
113
|
+
</section>
|
|
114
|
+
|
|
115
|
+
<section data-section data-property="cross-references">
|
|
116
|
+
<h2 variant="section">See also</h2>
|
|
117
|
+
<ul>
|
|
118
|
+
<li><a href="/site/components/agent-artifact">agent-artifact-ui</a> — the underlying component.</li>
|
|
119
|
+
<li><a href="/site/components/agent-reasoning">agent-reasoning-ui</a> — pair above for "why I called this tool".</li>
|
|
120
|
+
<li><a href="/site/components/agent-trace">agent-trace-ui</a> — pair below for the full execution trace.</li>
|
|
121
|
+
<li><a href="/site/patterns/adia-chat">adia-chat</a> — host surface for tool-call blocks in a thread.</li>
|
|
122
|
+
</ul>
|
|
123
|
+
</section>
|