basalt-ui 1.10.0 → 1.11.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/AGENTS.md +2 -2
- package/CHANGELOG.md +10 -0
- package/dist/agent/ai-sdk-transport.d.ts +3 -52
- package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
- package/dist/agent/ai-sdk-transport.js +108 -24
- package/dist/agent/coalesce.d.ts +26 -0
- package/dist/agent/coalesce.d.ts.map +1 -0
- package/dist/agent/coalesce.js +69 -0
- package/dist/agent/foreign.d.ts +97 -0
- package/dist/agent/foreign.d.ts.map +1 -0
- package/dist/agent/foreign.js +18 -0
- package/dist/agent/history.d.ts +2 -0
- package/dist/agent/history.d.ts.map +1 -1
- package/dist/agent/id.d.ts +35 -0
- package/dist/agent/id.d.ts.map +1 -0
- package/dist/agent/id.js +14 -0
- package/dist/agent/index.d.ts +9 -4
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +15 -3
- package/dist/agent/merge.d.ts +8 -0
- package/dist/agent/merge.d.ts.map +1 -0
- package/dist/agent/merge.js +23 -0
- package/dist/agent/part-list.d.ts.map +1 -1
- package/dist/agent/part-list.js +16 -6
- package/dist/agent/parts.d.ts +100 -21
- package/dist/agent/parts.d.ts.map +1 -1
- package/dist/agent/parts.js +128 -11
- package/dist/agent/transport.d.ts +39 -3
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +20 -17
- package/dist/agent/use-agent-stream.d.ts +2 -1
- package/dist/agent/use-agent-stream.d.ts.map +1 -1
- package/dist/agent/use-agent-stream.js +5 -2
- package/dist/agent/use-agent-thread-runs.d.ts +9 -3
- package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
- package/dist/agent/use-agent-thread-runs.js +75 -23
- package/dist/agent-chat/index.d.ts +2 -0
- package/dist/agent-chat/index.d.ts.map +1 -1
- package/dist/agent-chat/index.js +2 -0
- package/dist/agent-chat/thread-message.d.ts +24 -7
- package/dist/agent-chat/thread-message.d.ts.map +1 -1
- package/dist/agent-chat/thread-message.js +102 -43
- package/dist/agent-chat/tool-chip.d.ts +21 -0
- package/dist/agent-chat/tool-chip.d.ts.map +1 -0
- package/dist/agent-chat/tool-chip.js +120 -0
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +1 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/surfaces.d.ts +2 -2
- package/dist/surfaces.js +2 -2
- package/llms.txt +4 -4
- package/package.json +1 -1
- package/src/agent/ai-sdk-transport.test.ts +338 -40
- package/src/agent/ai-sdk-transport.ts +206 -53
- package/src/agent/coalesce.test.ts +194 -0
- package/src/agent/coalesce.ts +118 -0
- package/src/agent/foreign.test.ts +47 -0
- package/src/agent/foreign.ts +140 -0
- package/src/agent/history.ts +2 -0
- package/src/agent/id.test.ts +71 -0
- package/src/agent/id.ts +43 -0
- package/src/agent/index.ts +26 -3
- package/src/agent/merge.test.ts +119 -0
- package/src/agent/merge.ts +67 -0
- package/src/agent/part-list.test.tsx +82 -0
- package/src/agent/part-list.tsx +31 -6
- package/src/agent/parts.test.ts +401 -59
- package/src/agent/parts.ts +262 -32
- package/src/agent/transport.test.ts +70 -0
- package/src/agent/transport.ts +72 -20
- package/src/agent/use-agent-stream.test.tsx +47 -17
- package/src/agent/use-agent-stream.ts +13 -3
- package/src/agent/use-agent-thread-runs.foreign.test.tsx +133 -0
- package/src/agent/use-agent-thread-runs.resume.test.tsx +34 -6
- package/src/agent/use-agent-thread-runs.test.tsx +397 -14
- package/src/agent/use-agent-thread-runs.ts +170 -26
- package/src/agent/use-agent-thread-runs.wedge.test.tsx +4 -2
- package/src/agent-chat/index.ts +4 -0
- package/src/agent-chat/thread-message.test.tsx +211 -0
- package/src/agent-chat/thread-message.tsx +235 -62
- package/src/agent-chat/tool-chip.test.tsx +139 -0
- package/src/agent-chat/tool-chip.tsx +219 -0
- package/src/guard/check-source.test.ts +8 -4
- package/src/guard/index.ts +1 -3
- package/src/index.ts +2 -0
- package/src/surfaces.ts +2 -2
package/src/agent/part-list.tsx
CHANGED
|
@@ -112,6 +112,12 @@ const CODE_BLOCK_STYLE = {
|
|
|
112
112
|
overflowX: 'auto',
|
|
113
113
|
} as const
|
|
114
114
|
|
|
115
|
+
/** Terminal-state status line (tool-call error/denial) — plain text, no code-block chrome. */
|
|
116
|
+
const STATUS_LINE_STYLE = {
|
|
117
|
+
marginTop: 'var(--vx-space-agent-part-gap-top)',
|
|
118
|
+
color: VX.status.bad,
|
|
119
|
+
} as const
|
|
120
|
+
|
|
115
121
|
function DefaultText({ part }: { part: TextPart; index: number }): JSX.Element {
|
|
116
122
|
return (
|
|
117
123
|
<div
|
|
@@ -151,11 +157,30 @@ function DefaultToolCall({ part }: { part: ToolCallPart; index: number }): JSX.E
|
|
|
151
157
|
<pre className="basalt-agent-tool-input" style={CODE_BLOCK_STYLE}>
|
|
152
158
|
{JSON.stringify(part.input, null, 2)}
|
|
153
159
|
</pre>
|
|
154
|
-
{
|
|
160
|
+
{/* output-error's input never validated — rawInput is the only surviving record of what was
|
|
161
|
+
actually sent, so show it whenever there is no validated input to show instead. */}
|
|
162
|
+
{part.state === 'output-error' && part.input === undefined && part.rawInput !== undefined && (
|
|
163
|
+
<pre className="basalt-agent-tool-raw-input" style={CODE_BLOCK_STYLE}>
|
|
164
|
+
{JSON.stringify(part.rawInput, null, 2)}
|
|
165
|
+
</pre>
|
|
166
|
+
)}
|
|
167
|
+
{part.state === 'output-available' && (
|
|
155
168
|
<pre className="basalt-agent-tool-output" style={CODE_BLOCK_STYLE}>
|
|
156
169
|
{JSON.stringify(part.output, null, 2)}
|
|
157
170
|
</pre>
|
|
158
171
|
)}
|
|
172
|
+
{/* A failed or denied call must stay visible after the seven-state split — neither carries
|
|
173
|
+
an `output`, so without this the call renders as name+input and nothing else. */}
|
|
174
|
+
{part.state === 'output-error' && (
|
|
175
|
+
<div className="basalt-agent-tool-error" role="alert" style={STATUS_LINE_STYLE}>
|
|
176
|
+
{part.errorText}
|
|
177
|
+
</div>
|
|
178
|
+
)}
|
|
179
|
+
{part.state === 'output-denied' && (
|
|
180
|
+
<div className="basalt-agent-tool-denied" style={STATUS_LINE_STYLE}>
|
|
181
|
+
Denied{part.approval.reason !== undefined ? `: ${part.approval.reason}` : ''}
|
|
182
|
+
</div>
|
|
183
|
+
)}
|
|
159
184
|
</div>
|
|
160
185
|
)
|
|
161
186
|
}
|
|
@@ -251,7 +276,7 @@ export function PartList<TPart extends AgentPart = AgentPart>({
|
|
|
251
276
|
case 'text': {
|
|
252
277
|
const Render = renderers.text
|
|
253
278
|
return (
|
|
254
|
-
<Fragment key={
|
|
279
|
+
<Fragment key={part.id}>
|
|
255
280
|
<Render part={part as Extract<TPart, { type: 'text' }>} index={index} />
|
|
256
281
|
</Fragment>
|
|
257
282
|
)
|
|
@@ -259,7 +284,7 @@ export function PartList<TPart extends AgentPart = AgentPart>({
|
|
|
259
284
|
case 'reasoning': {
|
|
260
285
|
const Render = renderers.reasoning
|
|
261
286
|
return (
|
|
262
|
-
<Fragment key={
|
|
287
|
+
<Fragment key={part.id}>
|
|
263
288
|
<Render part={part as Extract<TPart, { type: 'reasoning' }>} index={index} />
|
|
264
289
|
</Fragment>
|
|
265
290
|
)
|
|
@@ -267,7 +292,7 @@ export function PartList<TPart extends AgentPart = AgentPart>({
|
|
|
267
292
|
case 'tool': {
|
|
268
293
|
const Render = renderers.tool
|
|
269
294
|
return (
|
|
270
|
-
<Fragment key={
|
|
295
|
+
<Fragment key={part.id}>
|
|
271
296
|
<Render part={part as Extract<TPart, { type: 'tool' }>} index={index} />
|
|
272
297
|
</Fragment>
|
|
273
298
|
)
|
|
@@ -275,7 +300,7 @@ export function PartList<TPart extends AgentPart = AgentPart>({
|
|
|
275
300
|
case 'source': {
|
|
276
301
|
const Render = renderers.source
|
|
277
302
|
return (
|
|
278
|
-
<Fragment key={
|
|
303
|
+
<Fragment key={part.id}>
|
|
279
304
|
<Render part={part as Extract<TPart, { type: 'source' }>} index={index} />
|
|
280
305
|
</Fragment>
|
|
281
306
|
)
|
|
@@ -283,7 +308,7 @@ export function PartList<TPart extends AgentPart = AgentPart>({
|
|
|
283
308
|
case 'error': {
|
|
284
309
|
const Render = renderers.error
|
|
285
310
|
return (
|
|
286
|
-
<Fragment key={
|
|
311
|
+
<Fragment key={part.id}>
|
|
287
312
|
<Render part={part as Extract<TPart, { type: 'error' }>} index={index} />
|
|
288
313
|
</Fragment>
|
|
289
314
|
)
|