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
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Button, Collapse, Group, Stack, Text, UnstyledButton } from "@mantine/core";
|
|
3
|
+
import { useDisclosure } from "@mantine/hooks";
|
|
4
|
+
import { isToolCallSettled } from "../agent/index.js";
|
|
5
|
+
import { alpha, VX } from "../tokens/index.js";
|
|
6
|
+
const MICRO_LABEL_STYLE = {
|
|
7
|
+
fontFamily: "var(--basalt-font-mono)",
|
|
8
|
+
fontSize: VX.text.micro,
|
|
9
|
+
fontWeight: 500,
|
|
10
|
+
letterSpacing: "0.06em",
|
|
11
|
+
textTransform: "uppercase",
|
|
12
|
+
color: VX.faint
|
|
13
|
+
};
|
|
14
|
+
const RAIL_STYLE = {
|
|
15
|
+
borderLeft: `2px solid ${VX.divider}`,
|
|
16
|
+
paddingLeft: "var(--vx-space-agent-rail-inset-x)"
|
|
17
|
+
};
|
|
18
|
+
const CODE_BLOCK_STYLE = {
|
|
19
|
+
margin: 0,
|
|
20
|
+
marginTop: "var(--vx-space-agent-part-gap-top)",
|
|
21
|
+
fontFamily: "var(--basalt-font-mono)",
|
|
22
|
+
backgroundColor: alpha(VX.ink, 0.06),
|
|
23
|
+
borderRadius: "var(--vx-radius-card)",
|
|
24
|
+
padding: "var(--vx-space-agent-code-inset)",
|
|
25
|
+
whiteSpace: "pre-wrap",
|
|
26
|
+
overflowWrap: "anywhere"
|
|
27
|
+
};
|
|
28
|
+
function stateMeta(part) {
|
|
29
|
+
switch (part.state) {
|
|
30
|
+
case "input-streaming":
|
|
31
|
+
return { label: "streaming", dotToken: VX.status.neutral };
|
|
32
|
+
case "input-available":
|
|
33
|
+
return { label: "running", dotToken: VX.status.neutral };
|
|
34
|
+
case "approval-requested":
|
|
35
|
+
return { label: "needs approval", dotToken: VX.status.warn };
|
|
36
|
+
case "approval-responded":
|
|
37
|
+
return part.approval.approved ? { label: "approved", dotToken: VX.status.neutral } : { label: "declined", dotToken: VX.status.bad };
|
|
38
|
+
case "output-available":
|
|
39
|
+
return part.preliminary === true ? { label: "preliminary", dotToken: VX.status.warn } : { label: "done", dotToken: VX.status.good };
|
|
40
|
+
case "output-error":
|
|
41
|
+
return { label: "error", dotToken: VX.status.bad };
|
|
42
|
+
case "output-denied":
|
|
43
|
+
return { label: "denied", dotToken: VX.status.bad };
|
|
44
|
+
default: {
|
|
45
|
+
const exhaustive = part;
|
|
46
|
+
void exhaustive;
|
|
47
|
+
return { label: "unknown", dotToken: VX.status.neutral };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function formatDuration(ms) {
|
|
52
|
+
return ms >= 1e3 ? `${(ms / 1e3).toFixed(1)}s` : `${Math.round(ms)}ms`;
|
|
53
|
+
}
|
|
54
|
+
function ToolChip({
|
|
55
|
+
part,
|
|
56
|
+
defaultExpanded = false,
|
|
57
|
+
onApprove,
|
|
58
|
+
onDeny
|
|
59
|
+
}) {
|
|
60
|
+
const [expanded, { toggle }] = useDisclosure(defaultExpanded);
|
|
61
|
+
const { label, dotToken } = stateMeta(part);
|
|
62
|
+
const settled = isToolCallSettled(part);
|
|
63
|
+
const input = "input" in part ? part.input : void 0;
|
|
64
|
+
const rawInput = part.state === "output-error" ? part.rawInput : void 0;
|
|
65
|
+
return /* @__PURE__ */ jsx(Box, { style: RAIL_STYLE, children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
66
|
+
/* @__PURE__ */ jsx(UnstyledButton, { onClick: toggle, children: /* @__PURE__ */ jsxs(Group, { gap: 6, align: "center", wrap: "nowrap", children: [
|
|
67
|
+
/* @__PURE__ */ jsx(
|
|
68
|
+
Box,
|
|
69
|
+
{
|
|
70
|
+
"aria-hidden": true,
|
|
71
|
+
style: {
|
|
72
|
+
width: 6,
|
|
73
|
+
height: 6,
|
|
74
|
+
flexShrink: 0,
|
|
75
|
+
borderRadius: "50%",
|
|
76
|
+
// theme-allow: a 6px state dot is a circle, not a surface corner — no radius token expresses it
|
|
77
|
+
backgroundColor: dotToken
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
/* @__PURE__ */ jsx(Text, { style: MICRO_LABEL_STYLE, children: part.toolName }),
|
|
82
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: label }),
|
|
83
|
+
part.durationMs !== void 0 && /* @__PURE__ */ jsx(
|
|
84
|
+
Text,
|
|
85
|
+
{
|
|
86
|
+
style: {
|
|
87
|
+
fontFamily: "var(--basalt-font-mono)",
|
|
88
|
+
fontSize: VX.text.micro,
|
|
89
|
+
color: VX.faint
|
|
90
|
+
},
|
|
91
|
+
children: formatDuration(part.durationMs)
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
!settled && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "\u2026" })
|
|
95
|
+
] }) }),
|
|
96
|
+
/* @__PURE__ */ jsx(Collapse, { expanded, children: /* @__PURE__ */ jsxs(Stack, { gap: 6, children: [
|
|
97
|
+
input !== void 0 && /* @__PURE__ */ jsx(Text, { component: "pre", size: "xs", style: CODE_BLOCK_STYLE, children: JSON.stringify(input, null, 2) }),
|
|
98
|
+
rawInput !== void 0 && /* @__PURE__ */ jsx(Text, { component: "pre", size: "xs", style: CODE_BLOCK_STYLE, children: JSON.stringify(rawInput, null, 2) }),
|
|
99
|
+
part.state === "output-available" && /* @__PURE__ */ jsx(Text, { component: "pre", size: "xs", style: CODE_BLOCK_STYLE, children: JSON.stringify(part.output, null, 2) }),
|
|
100
|
+
part.state === "output-error" && /* @__PURE__ */ jsx(Text, { size: "xs", style: { color: VX.status.bad }, children: part.errorText }),
|
|
101
|
+
part.state === "output-denied" && part.approval.reason !== void 0 && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: part.approval.reason }),
|
|
102
|
+
part.state === "approval-requested" && (onApprove !== void 0 || onDeny !== void 0) && /* @__PURE__ */ jsxs(Group, { gap: 6, children: [
|
|
103
|
+
onApprove !== void 0 && /* @__PURE__ */ jsx(Button, { size: "compact-sm", onClick: () => onApprove(part.approval.id), children: "Approve" }),
|
|
104
|
+
onDeny !== void 0 && /* @__PURE__ */ jsx(
|
|
105
|
+
Button,
|
|
106
|
+
{
|
|
107
|
+
size: "compact-sm",
|
|
108
|
+
variant: "light",
|
|
109
|
+
color: "red",
|
|
110
|
+
onClick: () => onDeny(part.approval.id),
|
|
111
|
+
children: "Deny"
|
|
112
|
+
}
|
|
113
|
+
)
|
|
114
|
+
] })
|
|
115
|
+
] }) })
|
|
116
|
+
] }) });
|
|
117
|
+
}
|
|
118
|
+
export {
|
|
119
|
+
ToolChip
|
|
120
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7E,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AAoP9D,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,WAoBlC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guard/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7E,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AAoP9D,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,WAoBlC,CAAA;AAwTD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;gCA0BL,WAAW;;;;;;;gCAcX,WAAW;;;;;gCAMX,WAAW;;;;;;;gCAaX,WAAW;;;;;;;gCAQX,WAAW;;;;;;gCAOX,WAAW;;;;;;;gCASX,WAAW;;;;;;gCAOX,WAAW;;;;;;;gCAaX,WAAW;;;;;;gCAMX,WAAW;;;;;;;gCAaX,WAAW;;;;;;;gCAUX,WAAW;;;;;;;gCAUX,WAAW;;;;;;;gCASX,WAAW;;;;;;;gCASX,WAAW;;;;;;;gCAUX,WAAW;;;;CAOmB,CAAA;AAUjD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,EAAE,CA2PtF"}
|
package/dist/guard/index.js
CHANGED
|
@@ -77,9 +77,7 @@ const DEFAULT_GUARD_CONFIG = {
|
|
|
77
77
|
exemptRules: {},
|
|
78
78
|
severity: {}
|
|
79
79
|
};
|
|
80
|
-
const GRACE_PERIOD_KINDS = {
|
|
81
|
-
"mantine-shade-index": "introduced 1.7.0 \u2014 promote to error in 1.10.0"
|
|
82
|
-
};
|
|
80
|
+
const GRACE_PERIOD_KINDS = {};
|
|
83
81
|
function severityOf(kind, cfg) {
|
|
84
82
|
return cfg.severity?.[kind] ?? (kind in GRACE_PERIOD_KINDS ? "warn" : "error");
|
|
85
83
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,8 +18,8 @@ export { ConnectivityProvider, ConnectivityIndicator, useConnectivity } from './
|
|
|
18
18
|
export type { ConnectivityStatus, ConnectivitySnapshot, ConnectivityProviderProps, ConnectivityOverride, } from './connectivity/index.js';
|
|
19
19
|
export type { SurfaceSpec, RuleName, SkillName } from './surfaces.js';
|
|
20
20
|
export type { GuardKind } from './guard/types.js';
|
|
21
|
-
export { ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, threadPartRenderers, ThreadTranscript, } from './agent-chat/index.js';
|
|
22
|
-
export type { ThreadWorkspaceProps, ThreadFeedProps, ThreadOutcomeCardProps, ThreadDetailPanelProps, ComposerProps, ThreadTranscriptProps, } from './agent-chat/index.js';
|
|
21
|
+
export { ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, threadPartRenderers, ThreadTranscript, ToolChip, } from './agent-chat/index.js';
|
|
22
|
+
export type { ThreadWorkspaceProps, ThreadFeedProps, ThreadOutcomeCardProps, ThreadDetailPanelProps, ComposerProps, ThreadTranscriptProps, ToolChipProps, } from './agent-chat/index.js';
|
|
23
23
|
export { createThreadsStore, heuristicOutcome, useAgentThreadRuns } from './agent/index.js';
|
|
24
24
|
export type { AgentThread, AgentOutcome, ThreadStatus, ThreadsStore, ThreadsStoreOptions, OutcomeResolver, ChatMessage, AgentPart, AgentTransport, } from './agent/index.js';
|
|
25
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC5E,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,KAAK,mBAAmB,EACxB,cAAc,EACd,SAAS,EACT,cAAc,EACd,KAAK,sBAAsB,EAC3B,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAA;AAKhB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,UAAU,EACf,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,eAAe,EACf,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,UAAU,EACV,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,oBAAoB,EACzB,WAAW,EACX,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC7F,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAKvB,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAU9C,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC5E,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,KAAK,mBAAmB,EACxB,cAAc,EACd,SAAS,EACT,cAAc,EACd,KAAK,sBAAsB,EAC3B,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAA;AAKhB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,UAAU,EACf,WAAW,EACX,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,eAAe,EACf,kBAAkB,GACnB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,UAAU,EACV,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,oBAAoB,EACzB,WAAW,EACX,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,eAAe,GACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC7F,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAKvB,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAU9C,OAAO,EACL,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,GACT,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,aAAa,GACd,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAClF,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,GACf,MAAM,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -41,7 +41,8 @@ import {
|
|
|
41
41
|
ThreadDetailPanel,
|
|
42
42
|
Composer,
|
|
43
43
|
threadPartRenderers,
|
|
44
|
-
ThreadTranscript
|
|
44
|
+
ThreadTranscript,
|
|
45
|
+
ToolChip
|
|
45
46
|
} from "./agent-chat/index.js";
|
|
46
47
|
import { createThreadsStore, heuristicOutcome, useAgentThreadRuns } from "./agent/index.js";
|
|
47
48
|
export {
|
|
@@ -75,6 +76,7 @@ export {
|
|
|
75
76
|
ThreadOutcomeCard,
|
|
76
77
|
ThreadTranscript,
|
|
77
78
|
ThreadWorkspace,
|
|
79
|
+
ToolChip,
|
|
78
80
|
assertNever,
|
|
79
81
|
baseTheme,
|
|
80
82
|
createBasaltTheme,
|
package/dist/surfaces.d.ts
CHANGED
|
@@ -283,7 +283,7 @@ export declare const SURFACES: {
|
|
|
283
283
|
readonly rule: "agent";
|
|
284
284
|
readonly skill: readonly ["basalt-app"];
|
|
285
285
|
readonly guardKinds: readonly [];
|
|
286
|
-
readonly description: "Headless streaming-chat layer: useAgentStream, aiSdkTransport (recommended default) + edenTransport, PartList, plus the multi-thread createThreadsStore + useAgentThreadRuns + outcome-resolver seam (Mantine-free)";
|
|
286
|
+
readonly description: "Headless streaming-chat layer: useAgentStream, aiSdkTransport (recommended default) + edenTransport, isResumable/ResumableAgentTransport (stream-resumption seam), PartList, coalesceParts, the ForeignPart/definePartRenderers/narrowAgentPart open part-registry seam, plus the multi-thread createThreadsStore + useAgentThreadRuns + outcome-resolver seam (Mantine-free)";
|
|
287
287
|
readonly optionalPeers: readonly ["ai", "use-stick-to-bottom"];
|
|
288
288
|
readonly globs: {
|
|
289
289
|
readonly shipped: readonly [];
|
|
@@ -297,7 +297,7 @@ export declare const SURFACES: {
|
|
|
297
297
|
readonly rule: "agent";
|
|
298
298
|
readonly skill: readonly ["basalt-app"];
|
|
299
299
|
readonly guardKinds: readonly [];
|
|
300
|
-
readonly description: "Mantine-styled thread-chat components over basalt-ui/agent: ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, ThreadTranscript, threadPartRenderers (Mantine-coupled). remend and motion are required, not optional — ThreadTranscript imports content/markdown.tsx (remend eagerly), and ThreadFeed/ThreadDetailPanel import motion/react eagerly, so this subpath fails to resolve without both installed even though peerDependenciesMeta marks them optional (npm has no per-subpath optionality).";
|
|
300
|
+
readonly description: "Mantine-styled thread-chat components over basalt-ui/agent: ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, ThreadTranscript (open part-renderer registry via its renderers/fallbackRenderer props), threadPartRenderers, ToolChip (Mantine-coupled). remend and motion are required, not optional — ThreadTranscript imports content/markdown.tsx (remend eagerly), and ThreadFeed/ThreadDetailPanel import motion/react eagerly, so this subpath fails to resolve without both installed even though peerDependenciesMeta marks them optional (npm has no per-subpath optionality).";
|
|
301
301
|
readonly optionalPeers: readonly ["ai", "motion", "remend", "use-stick-to-bottom", "react-markdown", "remark-gfm", "shiki", "@shikijs/langs", "@shikijs/themes", "beautiful-mermaid"];
|
|
302
302
|
readonly forbiddenImports: readonly [];
|
|
303
303
|
};
|
package/dist/surfaces.js
CHANGED
|
@@ -188,7 +188,7 @@ const SURFACES = {
|
|
|
188
188
|
rule: "agent",
|
|
189
189
|
skill: ["basalt-app"],
|
|
190
190
|
guardKinds: [],
|
|
191
|
-
description: "Headless streaming-chat layer: useAgentStream, aiSdkTransport (recommended default) + edenTransport, PartList, plus the multi-thread createThreadsStore + useAgentThreadRuns + outcome-resolver seam (Mantine-free)",
|
|
191
|
+
description: "Headless streaming-chat layer: useAgentStream, aiSdkTransport (recommended default) + edenTransport, isResumable/ResumableAgentTransport (stream-resumption seam), PartList, coalesceParts, the ForeignPart/definePartRenderers/narrowAgentPart open part-registry seam, plus the multi-thread createThreadsStore + useAgentThreadRuns + outcome-resolver seam (Mantine-free)",
|
|
192
192
|
optionalPeers: ["ai", "use-stick-to-bottom"],
|
|
193
193
|
globs: {
|
|
194
194
|
shipped: [],
|
|
@@ -203,7 +203,7 @@ const SURFACES = {
|
|
|
203
203
|
rule: "agent",
|
|
204
204
|
skill: ["basalt-app"],
|
|
205
205
|
guardKinds: [],
|
|
206
|
-
description: "Mantine-styled thread-chat components over basalt-ui/agent: ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, ThreadTranscript, threadPartRenderers (Mantine-coupled). remend and motion are required, not optional \u2014 ThreadTranscript imports content/markdown.tsx (remend eagerly), and ThreadFeed/ThreadDetailPanel import motion/react eagerly, so this subpath fails to resolve without both installed even though peerDependenciesMeta marks them optional (npm has no per-subpath optionality).",
|
|
206
|
+
description: "Mantine-styled thread-chat components over basalt-ui/agent: ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, ThreadTranscript (open part-renderer registry via its renderers/fallbackRenderer props), threadPartRenderers, ToolChip (Mantine-coupled). remend and motion are required, not optional \u2014 ThreadTranscript imports content/markdown.tsx (remend eagerly), and ThreadFeed/ThreadDetailPanel import motion/react eagerly, so this subpath fails to resolve without both installed even though peerDependenciesMeta marks them optional (npm has no per-subpath optionality).",
|
|
207
207
|
optionalPeers: [
|
|
208
208
|
"ai",
|
|
209
209
|
"motion",
|
package/llms.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# basalt-ui v1.
|
|
1
|
+
# basalt-ui v1.11.0
|
|
2
2
|
# Opinionated framework for Mantine-based React apps — theme, app shell, visx charts, toolchain presets
|
|
3
3
|
#
|
|
4
4
|
# basalt-ui is an opinionated framework for Mantine-based React apps.
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
# ./tokens.css subpath. Guide: docs/FRAMEWORK-FREE.md in the repo.
|
|
20
20
|
|
|
21
21
|
Package: basalt-ui
|
|
22
|
-
Version: 1.
|
|
22
|
+
Version: 1.11.0
|
|
23
23
|
|
|
24
24
|
## basalt-ui
|
|
25
25
|
Import: import { ... } from 'basalt-ui'
|
|
@@ -114,14 +114,14 @@ OptionalPeers: @tanstack/react-virtual@>=3 <4
|
|
|
114
114
|
|
|
115
115
|
## basalt-ui/agent
|
|
116
116
|
Import: import { ... } from 'basalt-ui/agent'
|
|
117
|
-
Description: Headless streaming-chat layer: useAgentStream, aiSdkTransport (recommended default) + edenTransport, PartList, plus the multi-thread createThreadsStore + useAgentThreadRuns + outcome-resolver seam (Mantine-free)
|
|
117
|
+
Description: Headless streaming-chat layer: useAgentStream, aiSdkTransport (recommended default) + edenTransport, isResumable/ResumableAgentTransport (stream-resumption seam), PartList, coalesceParts, the ForeignPart/definePartRenderers/narrowAgentPart open part-registry seam, plus the multi-thread createThreadsStore + useAgentThreadRuns + outcome-resolver seam (Mantine-free)
|
|
118
118
|
Layer: headless
|
|
119
119
|
Rule: basalt-agent
|
|
120
120
|
OptionalPeers: ai@^7.0.15, use-stick-to-bottom@^1.1.6
|
|
121
121
|
|
|
122
122
|
## basalt-ui/agent-chat
|
|
123
123
|
Import: import { ... } from 'basalt-ui/agent-chat'
|
|
124
|
-
Description: Mantine-styled thread-chat components over basalt-ui/agent: ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, ThreadTranscript, threadPartRenderers (Mantine-coupled). remend and motion are required, not optional — ThreadTranscript imports content/markdown.tsx (remend eagerly), and ThreadFeed/ThreadDetailPanel import motion/react eagerly, so this subpath fails to resolve without both installed even though peerDependenciesMeta marks them optional (npm has no per-subpath optionality).
|
|
124
|
+
Description: Mantine-styled thread-chat components over basalt-ui/agent: ThreadWorkspace, ThreadFeed, ThreadOutcomeCard, ThreadDetailPanel, Composer, ThreadTranscript (open part-renderer registry via its renderers/fallbackRenderer props), threadPartRenderers, ToolChip (Mantine-coupled). remend and motion are required, not optional — ThreadTranscript imports content/markdown.tsx (remend eagerly), and ThreadFeed/ThreadDetailPanel import motion/react eagerly, so this subpath fails to resolve without both installed even though peerDependenciesMeta marks them optional (npm has no per-subpath optionality).
|
|
125
125
|
Layer: mantine-coupled
|
|
126
126
|
Rule: basalt-agent
|
|
127
127
|
OptionalPeers: ai@^7.0.15, motion@12.42.0, remend@1.3.0, use-stick-to-bottom@^1.1.6, react-markdown@^10.1.0, remark-gfm@^4.0.1, shiki@^4.3.0, @shikijs/langs@^4.3.1, @shikijs/themes@^4.3.1, beautiful-mermaid@^1.1.0
|