@agno-hq/chat-react 0.3.1 → 0.3.3
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/README.md +35 -5
- package/dist/chat/index.cjs +94 -82
- package/dist/chat/index.d.cts +72 -17
- package/dist/chat/index.d.ts +72 -17
- package/dist/chat/index.js +1 -1
- package/dist/{chunk-JEPFGKHH.cjs → chunk-3IEYJIYJ.cjs} +249 -222
- package/dist/chunk-3IEYJIYJ.cjs.map +1 -0
- package/dist/{chunk-BZC2674Z.js → chunk-E4CFQ457.js} +103 -79
- package/dist/chunk-E4CFQ457.js.map +1 -0
- package/dist/index.cjs +95 -83
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/styles.css +57 -19
- package/package.json +9 -11
- package/dist/chunk-BZC2674Z.js.map +0 -1
- package/dist/chunk-JEPFGKHH.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -177,7 +177,9 @@ as `R, G, B` triples:
|
|
|
177
177
|
| `<ChatLauncher>` | Floating support-widget shell: a corner bubble that opens any chat surface. |
|
|
178
178
|
| `<QuickPrompts>` | Suggested-prompt chips. |
|
|
179
179
|
| `<MessageList>` | Auto-scrolling transcript with live status + footer slot. |
|
|
180
|
-
| `<Message>` | A single message: content, behind-the-scenes panel, media, citations, follow-ups. |
|
|
180
|
+
| `<Message>` | A single message: content, behind-the-scenes panel, media, citations, follow-ups, action row. |
|
|
181
|
+
| `<MessageActions>` | The icon row under a finished answer — copy, plus whatever the product adds. |
|
|
182
|
+
| `<CopyButton>` | The copy control, with the "copied" flash and clipboard fallbacks — the one code blocks and answers use. |
|
|
181
183
|
| `<BehindTheScenes>` | One collapsible timeline over a run's reasoning, tools, member turns, steps and events — doubles as the live status line. |
|
|
182
184
|
| `<ChatInput>` | Multiline input with file attach, send, and stop; opens up for @mentions, context chips and a custom textarea. |
|
|
183
185
|
| `<ToolCalls>` | Collapsible tool-call cards (name, args, result, status). |
|
|
@@ -383,16 +385,18 @@ with `<EventLog>` wherever you want it:
|
|
|
383
385
|
|
|
384
386
|
Whatever a run cites — knowledge-base chunks in `references`, browsed links in
|
|
385
387
|
`citations.urls` — is flattened into one numbered list and rendered as cards
|
|
386
|
-
under the answer: the site's favicon and the title, linking to the source
|
|
387
|
-
|
|
388
|
-
|
|
388
|
+
under the answer: the site's favicon and the title, linking to the source,
|
|
389
|
+
with the rest behind a "+N more" card past the first three. A `[1]` in the
|
|
390
|
+
answer text becomes a numbered disc pointing at card one, and hovering either
|
|
391
|
+
the disc or a link opens a preview with the URL and the cited passage:
|
|
389
392
|
|
|
390
393
|
```tsx
|
|
391
394
|
<Message message={message} /> // markers, cards and previews, no props
|
|
392
395
|
<Message message={message} hideSources /> // just the answer
|
|
393
396
|
```
|
|
394
397
|
|
|
395
|
-
The hostname and favicon
|
|
398
|
+
The hostname and favicon (`/favicon.ico`, then `/favicon.svg`) come from the
|
|
399
|
+
URL itself, and the title and passage
|
|
396
400
|
from the citation payload, so previews need no network of their own. To fill in
|
|
397
401
|
OpenGraph metadata, hand the provider a `resolveLinkPreview` — the browser can't
|
|
398
402
|
read another origin's meta tags, so back it with an endpoint of your own. It is
|
|
@@ -475,6 +479,32 @@ tree:
|
|
|
475
479
|
<AgnoChat codeCopy={false} />
|
|
476
480
|
```
|
|
477
481
|
|
|
482
|
+
### Message actions
|
|
483
|
+
|
|
484
|
+
A finished answer carries an action row — the AgentOS strip of small icon
|
|
485
|
+
buttons under the text, shown when the message is pointed at. The package
|
|
486
|
+
ships copy; the row is a slot for the rest:
|
|
487
|
+
|
|
488
|
+
```tsx
|
|
489
|
+
<Message
|
|
490
|
+
message={m}
|
|
491
|
+
actions={<>
|
|
492
|
+
<button className="agno-msg__action" onClick={() => regenerate(m)} aria-label="Regenerate">
|
|
493
|
+
<RotateCw size={14} />
|
|
494
|
+
</button>
|
|
495
|
+
<button className="agno-msg__action" onClick={() => rate(m, 'up')} aria-label="Good answer">
|
|
496
|
+
<ThumbsUp size={14} />
|
|
497
|
+
</button>
|
|
498
|
+
</>}
|
|
499
|
+
/>
|
|
500
|
+
<Message message={m} hideActions /> // no row at all
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
`<MessageActions message={m}>` is the row on its own, for a transcript you
|
|
504
|
+
render yourself, and `<CopyButton text={…}>` is the control inside it — the
|
|
505
|
+
same one a code block's header uses, so every copy affordance flashes the same
|
|
506
|
+
tick and falls back the same way when the Clipboard API is unavailable.
|
|
507
|
+
|
|
478
508
|
Prefer a different renderer? `renderMarkdown` replaces it entirely:
|
|
479
509
|
|
|
480
510
|
```tsx
|
package/dist/chat/index.cjs
CHANGED
|
@@ -1,334 +1,346 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunk3IEYJIYJ_cjs = require('../chunk-3IEYJIYJ.cjs');
|
|
5
5
|
require('../chunk-55HQJGLP.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "AgnoChat", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunk3IEYJIYJ_cjs.AgnoChat; }
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "AgnoMark", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunk3IEYJIYJ_cjs.AgnoMark; }
|
|
16
16
|
});
|
|
17
17
|
Object.defineProperty(exports, "ArrowUp", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunk3IEYJIYJ_cjs.ArrowUp; }
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(exports, "BehindTheScenes", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunk3IEYJIYJ_cjs.BehindTheScenes; }
|
|
24
24
|
});
|
|
25
25
|
Object.defineProperty(exports, "BookOpen", {
|
|
26
26
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunk3IEYJIYJ_cjs.BookOpen; }
|
|
28
28
|
});
|
|
29
29
|
Object.defineProperty(exports, "Box", {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
31
|
+
get: function () { return chunk3IEYJIYJ_cjs.Box; }
|
|
32
32
|
});
|
|
33
33
|
Object.defineProperty(exports, "Brain", {
|
|
34
34
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
35
|
+
get: function () { return chunk3IEYJIYJ_cjs.Brain; }
|
|
36
36
|
});
|
|
37
37
|
Object.defineProperty(exports, "ChatBubble", {
|
|
38
38
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
39
|
+
get: function () { return chunk3IEYJIYJ_cjs.ChatBubble; }
|
|
40
40
|
});
|
|
41
41
|
Object.defineProperty(exports, "ChatInput", {
|
|
42
42
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
43
|
+
get: function () { return chunk3IEYJIYJ_cjs.ChatInput; }
|
|
44
44
|
});
|
|
45
45
|
Object.defineProperty(exports, "ChatLauncher", {
|
|
46
46
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
47
|
+
get: function () { return chunk3IEYJIYJ_cjs.ChatLauncher; }
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "ChatProvider", {
|
|
50
50
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
51
|
+
get: function () { return chunk3IEYJIYJ_cjs.ChatProvider; }
|
|
52
52
|
});
|
|
53
53
|
Object.defineProperty(exports, "ChatWindow", {
|
|
54
54
|
enumerable: true,
|
|
55
|
-
get: function () { return
|
|
55
|
+
get: function () { return chunk3IEYJIYJ_cjs.ChatWindow; }
|
|
56
56
|
});
|
|
57
57
|
Object.defineProperty(exports, "Check", {
|
|
58
58
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
59
|
+
get: function () { return chunk3IEYJIYJ_cjs.Check; }
|
|
60
60
|
});
|
|
61
61
|
Object.defineProperty(exports, "ChevronDown", {
|
|
62
62
|
enumerable: true,
|
|
63
|
-
get: function () { return
|
|
63
|
+
get: function () { return chunk3IEYJIYJ_cjs.ChevronDown; }
|
|
64
64
|
});
|
|
65
65
|
Object.defineProperty(exports, "Citations", {
|
|
66
66
|
enumerable: true,
|
|
67
|
-
get: function () { return
|
|
67
|
+
get: function () { return chunk3IEYJIYJ_cjs.Citations; }
|
|
68
68
|
});
|
|
69
69
|
Object.defineProperty(exports, "Close", {
|
|
70
70
|
enumerable: true,
|
|
71
|
-
get: function () { return
|
|
71
|
+
get: function () { return chunk3IEYJIYJ_cjs.Close; }
|
|
72
72
|
});
|
|
73
73
|
Object.defineProperty(exports, "Copy", {
|
|
74
74
|
enumerable: true,
|
|
75
|
-
get: function () { return
|
|
75
|
+
get: function () { return chunk3IEYJIYJ_cjs.Copy; }
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(exports, "CopyButton", {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function () { return chunk3IEYJIYJ_cjs.CopyButton; }
|
|
76
80
|
});
|
|
77
81
|
Object.defineProperty(exports, "EntityBadge", {
|
|
78
82
|
enumerable: true,
|
|
79
|
-
get: function () { return
|
|
83
|
+
get: function () { return chunk3IEYJIYJ_cjs.EntityBadge; }
|
|
80
84
|
});
|
|
81
85
|
Object.defineProperty(exports, "EntitySelector", {
|
|
82
86
|
enumerable: true,
|
|
83
|
-
get: function () { return
|
|
87
|
+
get: function () { return chunk3IEYJIYJ_cjs.EntitySelector; }
|
|
84
88
|
});
|
|
85
89
|
Object.defineProperty(exports, "EventLog", {
|
|
86
90
|
enumerable: true,
|
|
87
|
-
get: function () { return
|
|
91
|
+
get: function () { return chunk3IEYJIYJ_cjs.EventLog; }
|
|
88
92
|
});
|
|
89
93
|
Object.defineProperty(exports, "Favicon", {
|
|
90
94
|
enumerable: true,
|
|
91
|
-
get: function () { return
|
|
95
|
+
get: function () { return chunk3IEYJIYJ_cjs.Favicon; }
|
|
92
96
|
});
|
|
93
97
|
Object.defineProperty(exports, "FileAudio", {
|
|
94
98
|
enumerable: true,
|
|
95
|
-
get: function () { return
|
|
99
|
+
get: function () { return chunk3IEYJIYJ_cjs.FileAudio; }
|
|
96
100
|
});
|
|
97
101
|
Object.defineProperty(exports, "FileIcon", {
|
|
98
102
|
enumerable: true,
|
|
99
|
-
get: function () { return
|
|
103
|
+
get: function () { return chunk3IEYJIYJ_cjs.FileIcon; }
|
|
100
104
|
});
|
|
101
105
|
Object.defineProperty(exports, "FilePreview", {
|
|
102
106
|
enumerable: true,
|
|
103
|
-
get: function () { return
|
|
107
|
+
get: function () { return chunk3IEYJIYJ_cjs.FilePreview; }
|
|
104
108
|
});
|
|
105
109
|
Object.defineProperty(exports, "FileType", {
|
|
106
110
|
enumerable: true,
|
|
107
|
-
get: function () { return
|
|
111
|
+
get: function () { return chunk3IEYJIYJ_cjs.FileType; }
|
|
108
112
|
});
|
|
109
113
|
Object.defineProperty(exports, "FileVideo", {
|
|
110
114
|
enumerable: true,
|
|
111
|
-
get: function () { return
|
|
115
|
+
get: function () { return chunk3IEYJIYJ_cjs.FileVideo; }
|
|
112
116
|
});
|
|
113
117
|
Object.defineProperty(exports, "Followups", {
|
|
114
118
|
enumerable: true,
|
|
115
|
-
get: function () { return
|
|
119
|
+
get: function () { return chunk3IEYJIYJ_cjs.Followups; }
|
|
116
120
|
});
|
|
117
121
|
Object.defineProperty(exports, "Globe", {
|
|
118
122
|
enumerable: true,
|
|
119
|
-
get: function () { return
|
|
123
|
+
get: function () { return chunk3IEYJIYJ_cjs.Globe; }
|
|
120
124
|
});
|
|
121
125
|
Object.defineProperty(exports, "GridLoader", {
|
|
122
126
|
enumerable: true,
|
|
123
|
-
get: function () { return
|
|
127
|
+
get: function () { return chunk3IEYJIYJ_cjs.GridLoader; }
|
|
124
128
|
});
|
|
125
129
|
Object.defineProperty(exports, "HoverPreview", {
|
|
126
130
|
enumerable: true,
|
|
127
|
-
get: function () { return
|
|
131
|
+
get: function () { return chunk3IEYJIYJ_cjs.HoverPreview; }
|
|
128
132
|
});
|
|
129
133
|
Object.defineProperty(exports, "HumanInput", {
|
|
130
134
|
enumerable: true,
|
|
131
|
-
get: function () { return
|
|
135
|
+
get: function () { return chunk3IEYJIYJ_cjs.HumanInput; }
|
|
132
136
|
});
|
|
133
137
|
Object.defineProperty(exports, "LinkIcon", {
|
|
134
138
|
enumerable: true,
|
|
135
|
-
get: function () { return
|
|
139
|
+
get: function () { return chunk3IEYJIYJ_cjs.LinkIcon; }
|
|
136
140
|
});
|
|
137
141
|
Object.defineProperty(exports, "LinkPreviewCard", {
|
|
138
142
|
enumerable: true,
|
|
139
|
-
get: function () { return
|
|
143
|
+
get: function () { return chunk3IEYJIYJ_cjs.LinkPreviewCard; }
|
|
140
144
|
});
|
|
141
145
|
Object.defineProperty(exports, "Markdown", {
|
|
142
146
|
enumerable: true,
|
|
143
|
-
get: function () { return
|
|
147
|
+
get: function () { return chunk3IEYJIYJ_cjs.Markdown; }
|
|
144
148
|
});
|
|
145
149
|
Object.defineProperty(exports, "MemberResponses", {
|
|
146
150
|
enumerable: true,
|
|
147
|
-
get: function () { return
|
|
151
|
+
get: function () { return chunk3IEYJIYJ_cjs.MemberResponses; }
|
|
148
152
|
});
|
|
149
153
|
Object.defineProperty(exports, "Memory", {
|
|
150
154
|
enumerable: true,
|
|
151
|
-
get: function () { return
|
|
155
|
+
get: function () { return chunk3IEYJIYJ_cjs.Memory; }
|
|
152
156
|
});
|
|
153
157
|
Object.defineProperty(exports, "Message", {
|
|
154
158
|
enumerable: true,
|
|
155
|
-
get: function () { return
|
|
159
|
+
get: function () { return chunk3IEYJIYJ_cjs.Message; }
|
|
160
|
+
});
|
|
161
|
+
Object.defineProperty(exports, "MessageActions", {
|
|
162
|
+
enumerable: true,
|
|
163
|
+
get: function () { return chunk3IEYJIYJ_cjs.MessageActions; }
|
|
156
164
|
});
|
|
157
165
|
Object.defineProperty(exports, "MessageList", {
|
|
158
166
|
enumerable: true,
|
|
159
|
-
get: function () { return
|
|
167
|
+
get: function () { return chunk3IEYJIYJ_cjs.MessageList; }
|
|
160
168
|
});
|
|
161
169
|
Object.defineProperty(exports, "Multimedia", {
|
|
162
170
|
enumerable: true,
|
|
163
|
-
get: function () { return
|
|
171
|
+
get: function () { return chunk3IEYJIYJ_cjs.Multimedia; }
|
|
164
172
|
});
|
|
165
173
|
Object.defineProperty(exports, "Paperclip", {
|
|
166
174
|
enumerable: true,
|
|
167
|
-
get: function () { return
|
|
175
|
+
get: function () { return chunk3IEYJIYJ_cjs.Paperclip; }
|
|
168
176
|
});
|
|
169
177
|
Object.defineProperty(exports, "Plus", {
|
|
170
178
|
enumerable: true,
|
|
171
|
-
get: function () { return
|
|
179
|
+
get: function () { return chunk3IEYJIYJ_cjs.Plus; }
|
|
172
180
|
});
|
|
173
181
|
Object.defineProperty(exports, "Pulse", {
|
|
174
182
|
enumerable: true,
|
|
175
|
-
get: function () { return
|
|
183
|
+
get: function () { return chunk3IEYJIYJ_cjs.Pulse; }
|
|
176
184
|
});
|
|
177
185
|
Object.defineProperty(exports, "QuickPrompts", {
|
|
178
186
|
enumerable: true,
|
|
179
|
-
get: function () { return
|
|
187
|
+
get: function () { return chunk3IEYJIYJ_cjs.QuickPrompts; }
|
|
180
188
|
});
|
|
181
189
|
Object.defineProperty(exports, "Reasoning", {
|
|
182
190
|
enumerable: true,
|
|
183
|
-
get: function () { return
|
|
191
|
+
get: function () { return chunk3IEYJIYJ_cjs.Reasoning; }
|
|
184
192
|
});
|
|
185
193
|
Object.defineProperty(exports, "Rerun", {
|
|
186
194
|
enumerable: true,
|
|
187
|
-
get: function () { return
|
|
195
|
+
get: function () { return chunk3IEYJIYJ_cjs.Rerun; }
|
|
188
196
|
});
|
|
189
197
|
Object.defineProperty(exports, "SessionList", {
|
|
190
198
|
enumerable: true,
|
|
191
|
-
get: function () { return
|
|
199
|
+
get: function () { return chunk3IEYJIYJ_cjs.SessionList; }
|
|
192
200
|
});
|
|
193
201
|
Object.defineProperty(exports, "SourceCard", {
|
|
194
202
|
enumerable: true,
|
|
195
|
-
get: function () { return
|
|
203
|
+
get: function () { return chunk3IEYJIYJ_cjs.SourceCard; }
|
|
196
204
|
});
|
|
197
205
|
Object.defineProperty(exports, "SourcesProvider", {
|
|
198
206
|
enumerable: true,
|
|
199
|
-
get: function () { return
|
|
207
|
+
get: function () { return chunk3IEYJIYJ_cjs.SourcesProvider; }
|
|
200
208
|
});
|
|
201
209
|
Object.defineProperty(exports, "Spinner", {
|
|
202
210
|
enumerable: true,
|
|
203
|
-
get: function () { return
|
|
211
|
+
get: function () { return chunk3IEYJIYJ_cjs.Spinner; }
|
|
204
212
|
});
|
|
205
213
|
Object.defineProperty(exports, "StatusIndicator", {
|
|
206
214
|
enumerable: true,
|
|
207
|
-
get: function () { return
|
|
215
|
+
get: function () { return chunk3IEYJIYJ_cjs.StatusIndicator; }
|
|
208
216
|
});
|
|
209
217
|
Object.defineProperty(exports, "Stop", {
|
|
210
218
|
enumerable: true,
|
|
211
|
-
get: function () { return
|
|
219
|
+
get: function () { return chunk3IEYJIYJ_cjs.Stop; }
|
|
212
220
|
});
|
|
213
221
|
Object.defineProperty(exports, "TeamGlyph", {
|
|
214
222
|
enumerable: true,
|
|
215
|
-
get: function () { return
|
|
223
|
+
get: function () { return chunk3IEYJIYJ_cjs.TeamGlyph; }
|
|
216
224
|
});
|
|
217
225
|
Object.defineProperty(exports, "ToolCalls", {
|
|
218
226
|
enumerable: true,
|
|
219
|
-
get: function () { return
|
|
227
|
+
get: function () { return chunk3IEYJIYJ_cjs.ToolCalls; }
|
|
220
228
|
});
|
|
221
229
|
Object.defineProperty(exports, "Trash", {
|
|
222
230
|
enumerable: true,
|
|
223
|
-
get: function () { return
|
|
231
|
+
get: function () { return chunk3IEYJIYJ_cjs.Trash; }
|
|
224
232
|
});
|
|
225
233
|
Object.defineProperty(exports, "WorkflowSteps", {
|
|
226
234
|
enumerable: true,
|
|
227
|
-
get: function () { return
|
|
235
|
+
get: function () { return chunk3IEYJIYJ_cjs.WorkflowSteps; }
|
|
228
236
|
});
|
|
229
237
|
Object.defineProperty(exports, "Wrench", {
|
|
230
238
|
enumerable: true,
|
|
231
|
-
get: function () { return
|
|
239
|
+
get: function () { return chunk3IEYJIYJ_cjs.Wrench; }
|
|
232
240
|
});
|
|
233
241
|
Object.defineProperty(exports, "admitFiles", {
|
|
234
242
|
enumerable: true,
|
|
235
|
-
get: function () { return
|
|
243
|
+
get: function () { return chunk3IEYJIYJ_cjs.admitFiles; }
|
|
236
244
|
});
|
|
237
245
|
Object.defineProperty(exports, "behindTheScenesItems", {
|
|
238
246
|
enumerable: true,
|
|
239
|
-
get: function () { return
|
|
247
|
+
get: function () { return chunk3IEYJIYJ_cjs.behindTheScenesItems; }
|
|
240
248
|
});
|
|
241
249
|
Object.defineProperty(exports, "behindTheScenesLabel", {
|
|
242
250
|
enumerable: true,
|
|
243
|
-
get: function () { return
|
|
251
|
+
get: function () { return chunk3IEYJIYJ_cjs.behindTheScenesLabel; }
|
|
244
252
|
});
|
|
245
253
|
Object.defineProperty(exports, "collectSources", {
|
|
246
254
|
enumerable: true,
|
|
247
|
-
get: function () { return
|
|
255
|
+
get: function () { return chunk3IEYJIYJ_cjs.collectSources; }
|
|
248
256
|
});
|
|
249
257
|
Object.defineProperty(exports, "displayUrl", {
|
|
250
258
|
enumerable: true,
|
|
251
|
-
get: function () { return
|
|
259
|
+
get: function () { return chunk3IEYJIYJ_cjs.displayUrl; }
|
|
260
|
+
});
|
|
261
|
+
Object.defineProperty(exports, "faviconFallbacks", {
|
|
262
|
+
enumerable: true,
|
|
263
|
+
get: function () { return chunk3IEYJIYJ_cjs.faviconFallbacks; }
|
|
252
264
|
});
|
|
253
265
|
Object.defineProperty(exports, "faviconUrl", {
|
|
254
266
|
enumerable: true,
|
|
255
|
-
get: function () { return
|
|
267
|
+
get: function () { return chunk3IEYJIYJ_cjs.faviconUrl; }
|
|
256
268
|
});
|
|
257
269
|
Object.defineProperty(exports, "fileAccepted", {
|
|
258
270
|
enumerable: true,
|
|
259
|
-
get: function () { return
|
|
271
|
+
get: function () { return chunk3IEYJIYJ_cjs.fileAccepted; }
|
|
260
272
|
});
|
|
261
273
|
Object.defineProperty(exports, "getProviderIcon", {
|
|
262
274
|
enumerable: true,
|
|
263
|
-
get: function () { return
|
|
275
|
+
get: function () { return chunk3IEYJIYJ_cjs.getProviderIcon; }
|
|
264
276
|
});
|
|
265
277
|
Object.defineProperty(exports, "hasBehindTheScenes", {
|
|
266
278
|
enumerable: true,
|
|
267
|
-
get: function () { return
|
|
279
|
+
get: function () { return chunk3IEYJIYJ_cjs.hasBehindTheScenes; }
|
|
268
280
|
});
|
|
269
281
|
Object.defineProperty(exports, "linkCitations", {
|
|
270
282
|
enumerable: true,
|
|
271
|
-
get: function () { return
|
|
283
|
+
get: function () { return chunk3IEYJIYJ_cjs.linkCitations; }
|
|
272
284
|
});
|
|
273
285
|
Object.defineProperty(exports, "normalizeFollowups", {
|
|
274
286
|
enumerable: true,
|
|
275
|
-
get: function () { return
|
|
287
|
+
get: function () { return chunk3IEYJIYJ_cjs.normalizeFollowups; }
|
|
276
288
|
});
|
|
277
289
|
Object.defineProperty(exports, "quickPromptLabel", {
|
|
278
290
|
enumerable: true,
|
|
279
|
-
get: function () { return
|
|
291
|
+
get: function () { return chunk3IEYJIYJ_cjs.quickPromptLabel; }
|
|
280
292
|
});
|
|
281
293
|
Object.defineProperty(exports, "quickPromptText", {
|
|
282
294
|
enumerable: true,
|
|
283
|
-
get: function () { return
|
|
295
|
+
get: function () { return chunk3IEYJIYJ_cjs.quickPromptText; }
|
|
284
296
|
});
|
|
285
297
|
Object.defineProperty(exports, "sourceHost", {
|
|
286
298
|
enumerable: true,
|
|
287
|
-
get: function () { return
|
|
299
|
+
get: function () { return chunk3IEYJIYJ_cjs.sourceHost; }
|
|
288
300
|
});
|
|
289
301
|
Object.defineProperty(exports, "sourcesFromMarkdown", {
|
|
290
302
|
enumerable: true,
|
|
291
|
-
get: function () { return
|
|
303
|
+
get: function () { return chunk3IEYJIYJ_cjs.sourcesFromMarkdown; }
|
|
292
304
|
});
|
|
293
305
|
Object.defineProperty(exports, "useAgnoChat", {
|
|
294
306
|
enumerable: true,
|
|
295
|
-
get: function () { return
|
|
307
|
+
get: function () { return chunk3IEYJIYJ_cjs.useAgnoChat; }
|
|
296
308
|
});
|
|
297
309
|
Object.defineProperty(exports, "useChatContext", {
|
|
298
310
|
enumerable: true,
|
|
299
|
-
get: function () { return
|
|
311
|
+
get: function () { return chunk3IEYJIYJ_cjs.useChatContext; }
|
|
300
312
|
});
|
|
301
313
|
Object.defineProperty(exports, "useLinkComponent", {
|
|
302
314
|
enumerable: true,
|
|
303
|
-
get: function () { return
|
|
315
|
+
get: function () { return chunk3IEYJIYJ_cjs.useLinkComponent; }
|
|
304
316
|
});
|
|
305
317
|
Object.defineProperty(exports, "useLinkPreview", {
|
|
306
318
|
enumerable: true,
|
|
307
|
-
get: function () { return
|
|
319
|
+
get: function () { return chunk3IEYJIYJ_cjs.useLinkPreview; }
|
|
308
320
|
});
|
|
309
321
|
Object.defineProperty(exports, "useOptionalChatContext", {
|
|
310
322
|
enumerable: true,
|
|
311
|
-
get: function () { return
|
|
323
|
+
get: function () { return chunk3IEYJIYJ_cjs.useOptionalChatContext; }
|
|
312
324
|
});
|
|
313
325
|
Object.defineProperty(exports, "useResolvedChat", {
|
|
314
326
|
enumerable: true,
|
|
315
|
-
get: function () { return
|
|
327
|
+
get: function () { return chunk3IEYJIYJ_cjs.useResolvedChat; }
|
|
316
328
|
});
|
|
317
329
|
Object.defineProperty(exports, "useResolvedClassNames", {
|
|
318
330
|
enumerable: true,
|
|
319
|
-
get: function () { return
|
|
331
|
+
get: function () { return chunk3IEYJIYJ_cjs.useResolvedClassNames; }
|
|
320
332
|
});
|
|
321
333
|
Object.defineProperty(exports, "useSources", {
|
|
322
334
|
enumerable: true,
|
|
323
|
-
get: function () { return
|
|
335
|
+
get: function () { return chunk3IEYJIYJ_cjs.useSources; }
|
|
324
336
|
});
|
|
325
337
|
Object.defineProperty(exports, "withoutSourcesLine", {
|
|
326
338
|
enumerable: true,
|
|
327
|
-
get: function () { return
|
|
339
|
+
get: function () { return chunk3IEYJIYJ_cjs.withoutSourcesLine; }
|
|
328
340
|
});
|
|
329
341
|
Object.defineProperty(exports, "writeClipboard", {
|
|
330
342
|
enumerable: true,
|
|
331
|
-
get: function () { return
|
|
343
|
+
get: function () { return chunk3IEYJIYJ_cjs.writeClipboard; }
|
|
332
344
|
});
|
|
333
345
|
//# sourceMappingURL=index.cjs.map
|
|
334
346
|
//# sourceMappingURL=index.cjs.map
|
package/dist/chat/index.d.cts
CHANGED
|
@@ -148,6 +148,10 @@ interface ChatClassNames {
|
|
|
148
148
|
markdown?: string;
|
|
149
149
|
/** "Working…" line shown while streaming with no content yet. */
|
|
150
150
|
activity?: string;
|
|
151
|
+
/** `<MessageActions>` — the icon row under a finished answer. */
|
|
152
|
+
messageActions?: string;
|
|
153
|
+
/** The copy button in that row. */
|
|
154
|
+
messageCopyButton?: string;
|
|
151
155
|
/** `<ChatInput>` wrapper. */
|
|
152
156
|
input?: string;
|
|
153
157
|
/** Row holding attach / textarea / send. */
|
|
@@ -291,8 +295,12 @@ declare function sourceHost(url?: string): string | undefined;
|
|
|
291
295
|
/**
|
|
292
296
|
* The site's own icon. Same-origin to the site being cited, so no third-party
|
|
293
297
|
* favicon service is involved and nothing is requested until a card renders.
|
|
298
|
+
* `/favicon.ico` by convention; `/favicon.svg` is the next guess, for sites
|
|
299
|
+
* that only declare an SVG icon (see `faviconFallbacks`).
|
|
294
300
|
*/
|
|
295
301
|
declare function faviconUrl(url?: string): string | undefined;
|
|
302
|
+
/** Every same-origin icon path worth trying, in order. Empty for a bad URL. */
|
|
303
|
+
declare function faviconFallbacks(url?: string): string[];
|
|
296
304
|
/** `docs.agno.com/introduction` — the host plus a trimmed path, for card chrome. */
|
|
297
305
|
declare function displayUrl(url?: string): string | undefined;
|
|
298
306
|
/**
|
|
@@ -356,6 +364,36 @@ declare const SourcesProvider: React$1.Provider<Source[]>;
|
|
|
356
364
|
/** The sources of the surrounding message; empty outside one. */
|
|
357
365
|
declare function useSources(): Source[];
|
|
358
366
|
|
|
367
|
+
/**
|
|
368
|
+
* The copy control — one component wherever something can be copied: the
|
|
369
|
+
* header of a fenced code block, the action row under an answer, a host's own
|
|
370
|
+
* surface. It owns the "copied" flash and the clipboard fallbacks, so every
|
|
371
|
+
* copy affordance in a transcript behaves the same way.
|
|
372
|
+
*/
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Copy text, by whichever route the browser allows.
|
|
376
|
+
*
|
|
377
|
+
* The async Clipboard API is the right one, but it rejects on an insecure
|
|
378
|
+
* origin and whenever the document isn't focused — so a selection-based copy
|
|
379
|
+
* stands behind it. Returns whether anything was actually copied: the button
|
|
380
|
+
* should not claim success it didn't have.
|
|
381
|
+
*
|
|
382
|
+
* Exported because a host building its own copy affordance wants the same
|
|
383
|
+
* fallbacks, and because the failure paths are worth testing.
|
|
384
|
+
*/
|
|
385
|
+
declare function writeClipboard(text: string): Promise<boolean>;
|
|
386
|
+
interface CopyButtonProps {
|
|
387
|
+
/** What to copy — a string, or a function for text that is costly to build. */
|
|
388
|
+
text: string | (() => string);
|
|
389
|
+
/** Accessible name and tooltip. Defaults to "Copy". */
|
|
390
|
+
label?: string;
|
|
391
|
+
/** Icon size, in px. */
|
|
392
|
+
size?: number;
|
|
393
|
+
className?: string;
|
|
394
|
+
}
|
|
395
|
+
declare function CopyButton({ text, label, size, className }: CopyButtonProps): React$1.ReactElement;
|
|
396
|
+
|
|
359
397
|
/**
|
|
360
398
|
* Markdown for a chat transcript, rendered by [Streamdown](https://streamdown.ai).
|
|
361
399
|
*
|
|
@@ -399,18 +437,6 @@ interface MarkdownProps {
|
|
|
399
437
|
/** Escape hatch onto Streamdown itself — anything not set here. */
|
|
400
438
|
options?: Omit<StreamdownProps, 'children' | 'className' | 'components'>;
|
|
401
439
|
}
|
|
402
|
-
/**
|
|
403
|
-
* Copy text, by whichever route the browser allows.
|
|
404
|
-
*
|
|
405
|
-
* The async Clipboard API is the right one, but it rejects on an insecure
|
|
406
|
-
* origin and whenever the document isn't focused — so a selection-based copy
|
|
407
|
-
* stands behind it. Returns whether anything was actually copied: the button
|
|
408
|
-
* should not claim success it didn't have.
|
|
409
|
-
*
|
|
410
|
-
* Exported because a host building its own copy affordance wants the same
|
|
411
|
-
* fallbacks, and because the failure paths are worth testing.
|
|
412
|
-
*/
|
|
413
|
-
declare function writeClipboard(text: string): Promise<boolean>;
|
|
414
440
|
declare function Markdown({ content, className, sources, streaming, codeCopy, linkComponent, options, }: MarkdownProps): React$1.ReactElement;
|
|
415
441
|
type RenderMarkdown = (content: string) => React$1.ReactNode;
|
|
416
442
|
|
|
@@ -778,6 +804,10 @@ interface MessageProps {
|
|
|
778
804
|
hideTools?: boolean;
|
|
779
805
|
/** Hide the sources block under the answer. */
|
|
780
806
|
hideSources?: boolean;
|
|
807
|
+
/** Hide the action row (copy, and whatever `actions` adds) under the answer. */
|
|
808
|
+
hideActions?: boolean;
|
|
809
|
+
/** More actions for the row, after copy — regenerate, feedback, and so on. */
|
|
810
|
+
actions?: React$1.ReactNode;
|
|
781
811
|
/**
|
|
782
812
|
* Render the "Related questions" the agent suggested under this message,
|
|
783
813
|
* sending the clicked one here. Off by default: `<ChatWindow>` pins them
|
|
@@ -791,7 +821,26 @@ interface MessageProps {
|
|
|
791
821
|
className?: string;
|
|
792
822
|
classNames?: ChatClassNames;
|
|
793
823
|
}
|
|
794
|
-
declare function Message({ message, renderMarkdown, activity, avatar, children, className, classNames, entityType, userInitials, hideReasoning, hideTools, hideSources, onFollowup, }: MessageProps): React$1.ReactElement;
|
|
824
|
+
declare function Message({ message, renderMarkdown, activity, avatar, children, className, classNames, entityType, userInitials, hideReasoning, hideTools, hideSources, hideActions, actions, onFollowup, }: MessageProps): React$1.ReactElement;
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* The action row under a finished answer — the Figma `_Chat messages/Actions`
|
|
828
|
+
* strip: small icon buttons in a line, copy first. The package ships copy;
|
|
829
|
+
* anything a product adds (regenerate, feedback, "view JSON") goes in as
|
|
830
|
+
* children and lines up with it.
|
|
831
|
+
*/
|
|
832
|
+
|
|
833
|
+
interface MessageActionsProps {
|
|
834
|
+
/** The message the actions apply to; copy takes its content. */
|
|
835
|
+
message: ChatMessage;
|
|
836
|
+
/** Leave the copy button out (a host that copies differently). */
|
|
837
|
+
hideCopy?: boolean;
|
|
838
|
+
/** More actions, rendered after copy. */
|
|
839
|
+
children?: React$1.ReactNode;
|
|
840
|
+
className?: string;
|
|
841
|
+
classNames?: ChatClassNames;
|
|
842
|
+
}
|
|
843
|
+
declare function MessageActions({ message, hideCopy, children, className, classNames, }: MessageActionsProps): React$1.ReactElement | null;
|
|
795
844
|
|
|
796
845
|
/**
|
|
797
846
|
* The AgentOS chat dock: a rounded card holding an auto-growing textarea and a
|
|
@@ -1106,7 +1155,10 @@ declare function useLinkPreview(url: string | undefined, enabled: boolean): {
|
|
|
1106
1155
|
preview: LinkPreview | null;
|
|
1107
1156
|
loading: boolean;
|
|
1108
1157
|
};
|
|
1109
|
-
/**
|
|
1158
|
+
/**
|
|
1159
|
+
* The site's icon: `/favicon.ico`, then `/favicon.svg`, then a glyph when the
|
|
1160
|
+
* origin serves neither.
|
|
1161
|
+
*/
|
|
1110
1162
|
declare function Favicon({ url, kind, size, className, }: {
|
|
1111
1163
|
url?: string;
|
|
1112
1164
|
kind?: Source['kind'];
|
|
@@ -1321,8 +1373,11 @@ declare const Pulse: ({ size, className }: IconProps) => React$1.ReactElement;
|
|
|
1321
1373
|
declare const Trash: ({ size, className }: IconProps) => React$1.ReactElement;
|
|
1322
1374
|
declare const ChatBubble: ({ size, className }: IconProps) => React$1.ReactElement;
|
|
1323
1375
|
declare const Spinner: ({ size, className }: IconProps) => React$1.ReactElement;
|
|
1324
|
-
/**
|
|
1325
|
-
|
|
1376
|
+
/**
|
|
1377
|
+
* The stop control: AgentOS's `square-stop`, a small outlined square in the
|
|
1378
|
+
* same button the arrow sends from — 10.67px in a 32px or 24px button.
|
|
1379
|
+
*/
|
|
1380
|
+
declare const Stop: ({ size, className }: IconProps) => React$1.ReactElement;
|
|
1326
1381
|
/** The Agno mark — used as the agent avatar, exactly as in AgentOS. */
|
|
1327
1382
|
declare function AgnoMark({ size, className }: IconProps): React$1.ReactElement;
|
|
1328
1383
|
/** The AgentOS `team` glyph, drawn in the current colour. */
|
|
@@ -1332,4 +1387,4 @@ declare function GridLoader({ className }: {
|
|
|
1332
1387
|
className?: string;
|
|
1333
1388
|
}): React$1.ReactElement;
|
|
1334
1389
|
|
|
1335
|
-
export { AgnoChat, type AgnoChatProps, AgnoMark, ArrowUp, BehindTheScenes, type BehindTheScenesProps, BookOpen, Box, Brain, ChatBubble, type ChatClassNames, type ChatContextValue, ChatInput, type ChatInputProps, ChatLauncher, type ChatLauncherProps, ChatProvider, type ChatProviderProps, type ChatTextareaProps, ChatWindow, type ChatWindowProps, Check, ChevronDown, Citations, type CitationsProps, Close, Copy, EntityBadge, type EntityBadgeProps, EntitySelector, EventLog, Favicon, FileAudio, FileIcon, type FileLimits, FilePreview, type FilePreviewProps, FileType, FileVideo, Followups, type FollowupsProps, Globe, GridLoader, HoverPreview, type HoverPreviewProps, HumanInput, type HumanInputProps, type LauncherPanel, type LauncherPosition, type LinkComponent, LinkIcon, type LinkPreview, LinkPreviewCard, type LinkPreviewCardProps, Markdown, type MarkdownProps, MemberResponses, Memory, Message, MessageList, type MessageListProps, type MessageProps, Multimedia, Paperclip, Plus, Pulse, type QuickPrompt, QuickPrompts, type QuickPromptsProps, Reasoning, type RenderMarkdown, Rerun, type ResolveLinkPreview, type SendOptions, SessionList, type SessionListProps, type Source, SourceCard, SourcesProvider, Spinner, StatusIndicator, Stop, TeamGlyph, ToolCalls, Trash, type UseAgnoChat, type UseAgnoChatOptions, WorkflowSteps, Wrench, admitFiles, behindTheScenesItems, behindTheScenesLabel, collectSources, displayUrl, faviconUrl, fileAccepted, getProviderIcon, hasBehindTheScenes, linkCitations, normalizeFollowups, quickPromptLabel, quickPromptText, sourceHost, sourcesFromMarkdown, useAgnoChat, useChatContext, useLinkComponent, useLinkPreview, useOptionalChatContext, useResolvedChat, useResolvedClassNames, useSources, withoutSourcesLine, writeClipboard };
|
|
1390
|
+
export { AgnoChat, type AgnoChatProps, AgnoMark, ArrowUp, BehindTheScenes, type BehindTheScenesProps, BookOpen, Box, Brain, ChatBubble, type ChatClassNames, type ChatContextValue, ChatInput, type ChatInputProps, ChatLauncher, type ChatLauncherProps, ChatProvider, type ChatProviderProps, type ChatTextareaProps, ChatWindow, type ChatWindowProps, Check, ChevronDown, Citations, type CitationsProps, Close, Copy, CopyButton, type CopyButtonProps, EntityBadge, type EntityBadgeProps, EntitySelector, EventLog, Favicon, FileAudio, FileIcon, type FileLimits, FilePreview, type FilePreviewProps, FileType, FileVideo, Followups, type FollowupsProps, Globe, GridLoader, HoverPreview, type HoverPreviewProps, HumanInput, type HumanInputProps, type LauncherPanel, type LauncherPosition, type LinkComponent, LinkIcon, type LinkPreview, LinkPreviewCard, type LinkPreviewCardProps, Markdown, type MarkdownProps, MemberResponses, Memory, Message, MessageActions, type MessageActionsProps, MessageList, type MessageListProps, type MessageProps, Multimedia, Paperclip, Plus, Pulse, type QuickPrompt, QuickPrompts, type QuickPromptsProps, Reasoning, type RenderMarkdown, Rerun, type ResolveLinkPreview, type SendOptions, SessionList, type SessionListProps, type Source, SourceCard, SourcesProvider, Spinner, StatusIndicator, Stop, TeamGlyph, ToolCalls, Trash, type UseAgnoChat, type UseAgnoChatOptions, WorkflowSteps, Wrench, admitFiles, behindTheScenesItems, behindTheScenesLabel, collectSources, displayUrl, faviconFallbacks, faviconUrl, fileAccepted, getProviderIcon, hasBehindTheScenes, linkCitations, normalizeFollowups, quickPromptLabel, quickPromptText, sourceHost, sourcesFromMarkdown, useAgnoChat, useChatContext, useLinkComponent, useLinkPreview, useOptionalChatContext, useResolvedChat, useResolvedClassNames, useSources, withoutSourcesLine, writeClipboard };
|