@chances-ai/client 24.0.0 → 24.1.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/dist/web-ui/code-view.js +2 -2
- package/dist/web-ui/code-view.js.map +1 -1
- package/dist/web-ui/code-viewer.js +3 -3
- package/dist/web-ui/code-viewer.js.map +1 -1
- package/dist/web-ui/control-panel.d.ts.map +1 -1
- package/dist/web-ui/control-panel.js +8 -3
- package/dist/web-ui/control-panel.js.map +1 -1
- package/dist/web-ui/diff-view.js +7 -5
- package/dist/web-ui/diff-view.js.map +1 -1
- package/dist/web-ui/environment-panel.d.ts.map +1 -1
- package/dist/web-ui/environment-panel.js +3 -3
- package/dist/web-ui/environment-panel.js.map +1 -1
- package/dist/web-ui/file-tree.d.ts.map +1 -1
- package/dist/web-ui/file-tree.js +3 -3
- package/dist/web-ui/file-tree.js.map +1 -1
- package/dist/web-ui/help-view.d.ts +0 -6
- package/dist/web-ui/help-view.d.ts.map +1 -1
- package/dist/web-ui/help-view.js +8 -2
- package/dist/web-ui/help-view.js.map +1 -1
- package/dist/web-ui/markdown.js +16 -9
- package/dist/web-ui/markdown.js.map +1 -1
- package/dist/web-ui/model-picker.d.ts.map +1 -1
- package/dist/web-ui/model-picker.js +15 -111
- package/dist/web-ui/model-picker.js.map +1 -1
- package/dist/web-ui/permission.d.ts.map +1 -1
- package/dist/web-ui/permission.js +2 -2
- package/dist/web-ui/permission.js.map +1 -1
- package/dist/web-ui/progress.js +2 -2
- package/dist/web-ui/progress.js.map +1 -1
- package/dist/web-ui/prompt-input.d.ts.map +1 -1
- package/dist/web-ui/prompt-input.js +3 -3
- package/dist/web-ui/prompt-input.js.map +1 -1
- package/dist/web-ui/question-view.d.ts.map +1 -1
- package/dist/web-ui/question-view.js +4 -4
- package/dist/web-ui/question-view.js.map +1 -1
- package/dist/web-ui/segments.d.ts +3 -1
- package/dist/web-ui/segments.d.ts.map +1 -1
- package/dist/web-ui/segments.js +5 -3
- package/dist/web-ui/segments.js.map +1 -1
- package/dist/web-ui/session-sidebar.d.ts +0 -7
- package/dist/web-ui/session-sidebar.d.ts.map +1 -1
- package/dist/web-ui/session-sidebar.js +9 -2
- package/dist/web-ui/session-sidebar.js.map +1 -1
- package/dist/web-ui/status-bar.js +2 -2
- package/dist/web-ui/status-bar.js.map +1 -1
- package/dist/web-ui/transcript.js +6 -6
- package/dist/web-ui/transcript.js.map +1 -1
- package/package.json +5 -4
- package/dist/web-ui/primitives.d.ts +0 -59
- package/dist/web-ui/primitives.d.ts.map +0 -1
- package/dist/web-ui/primitives.js +0 -38
- package/dist/web-ui/primitives.js.map +0 -1
|
@@ -1,119 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
|
-
* (
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `
|
|
8
|
-
*
|
|
3
|
+
* (7.3 / task 03 — W4 / `[11.2]`) The web model picker — now a thin wrapper over
|
|
4
|
+
* the design-system `FilterAutocomplete` (HeroUI v3 Autocomplete + react-aria),
|
|
5
|
+
* retiring the bespoke a11y-liability dropdown that hand-rolled focus, keyboard
|
|
6
|
+
* nav, and filtering. Same props as before, so `ControlPanel` is unchanged. The
|
|
7
|
+
* SAME `modelLabel` keys + labels each option; HeroUI owns filtering / keyboard /
|
|
8
|
+
* focus-trap. Hidden when no models are advertised (pre-`ready`).
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* Theme: the picker adopts the seed palette through the panel root's
|
|
11
|
+
* `.chances-theme` scope (the HeroUI base-var override, design §3.3). Full
|
|
12
|
+
* keyboard/filter INTERACTION is covered by the Storybook browser-mode pass
|
|
13
|
+
* (design §4) — react-aria needs a real layout engine; the happy-dom test keeps a
|
|
14
|
+
* deterministic mount smoke. The pure `filterModels` helper + its test stay.
|
|
14
15
|
*/
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { useUiTheme } from "./theme-context.js";
|
|
16
|
+
import { FilterAutocomplete } from "@chances-ai/design-system/widgets";
|
|
17
|
+
import { modelLabel } from "./helpers.js";
|
|
18
18
|
export function ModelPicker({ models, selected, disabled, onSelect }) {
|
|
19
|
-
const theme = useUiTheme();
|
|
20
|
-
const [open, setOpen] = useState(false);
|
|
21
|
-
const [query, setQuery] = useState("");
|
|
22
|
-
const [cursor, setCursor] = useState(0);
|
|
23
|
-
const inputRef = useRef(null);
|
|
24
|
-
const filtered = filterModels(models, query);
|
|
25
|
-
// Keep the cursor in range as the filtered list shrinks/grows.
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
setCursor((c) => Math.max(0, Math.min(c, filtered.length - 1)));
|
|
28
|
-
}, [filtered.length]);
|
|
29
|
-
// Focus the filter input when the panel opens.
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
if (open)
|
|
32
|
-
inputRef.current?.focus();
|
|
33
|
-
}, [open]);
|
|
34
19
|
if (models.length === 0)
|
|
35
20
|
return null;
|
|
36
|
-
|
|
37
|
-
setOpen(false);
|
|
38
|
-
setQuery("");
|
|
39
|
-
setCursor(0);
|
|
40
|
-
};
|
|
41
|
-
const choose = (m) => {
|
|
42
|
-
onSelect(m);
|
|
43
|
-
close();
|
|
44
|
-
};
|
|
45
|
-
const onKeyDown = (e) => {
|
|
46
|
-
if (e.key === "ArrowDown") {
|
|
47
|
-
e.preventDefault();
|
|
48
|
-
setCursor((c) => Math.min(filtered.length - 1, c + 1));
|
|
49
|
-
}
|
|
50
|
-
else if (e.key === "ArrowUp") {
|
|
51
|
-
e.preventDefault();
|
|
52
|
-
setCursor((c) => Math.max(0, c - 1));
|
|
53
|
-
}
|
|
54
|
-
else if (e.key === "Enter") {
|
|
55
|
-
e.preventDefault();
|
|
56
|
-
const m = filtered[cursor];
|
|
57
|
-
if (m)
|
|
58
|
-
choose(m);
|
|
59
|
-
}
|
|
60
|
-
else if (e.key === "Escape") {
|
|
61
|
-
e.preventDefault();
|
|
62
|
-
close();
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
const border = theme.synComment ?? "#555";
|
|
66
|
-
return (_jsxs("div", { style: { position: "relative" }, children: [_jsxs("button", { type: "button", disabled: disabled, "aria-haspopup": "listbox", "aria-expanded": open, onClick: () => (open ? close() : setOpen(true)), className: disabled ? "" : "transition-opacity hover:opacity-70", style: {
|
|
67
|
-
fontFamily: MONO,
|
|
68
|
-
fontSize: 13,
|
|
69
|
-
padding: "4px 8px",
|
|
70
|
-
borderRadius: 6,
|
|
71
|
-
background: "transparent",
|
|
72
|
-
color: "inherit",
|
|
73
|
-
border: `1px solid ${border}`,
|
|
74
|
-
cursor: disabled ? "default" : "pointer",
|
|
75
|
-
opacity: disabled ? 0.5 : 1,
|
|
76
|
-
}, children: [selected ? modelLabel(selected) : "select model", " \u25BE"] }), open ? (_jsxs("div", { role: "listbox", "aria-label": "models", style: {
|
|
77
|
-
position: "absolute",
|
|
78
|
-
top: "calc(100% + 4px)",
|
|
79
|
-
right: 0,
|
|
80
|
-
zIndex: 10,
|
|
81
|
-
minWidth: 240,
|
|
82
|
-
maxHeight: 320,
|
|
83
|
-
overflowY: "auto",
|
|
84
|
-
background: "var(--ch-bg)",
|
|
85
|
-
border: `1px solid ${border}`,
|
|
86
|
-
borderRadius: 8,
|
|
87
|
-
padding: 6,
|
|
88
|
-
display: "flex",
|
|
89
|
-
flexDirection: "column",
|
|
90
|
-
gap: 2,
|
|
91
|
-
}, children: [_jsx("input", { ref: inputRef, value: query, placeholder: "filter models\u2026", "aria-label": "filter models", onChange: (e) => {
|
|
92
|
-
setQuery(e.target.value);
|
|
93
|
-
setCursor(0);
|
|
94
|
-
}, onKeyDown: onKeyDown, style: {
|
|
95
|
-
fontFamily: MONO,
|
|
96
|
-
fontSize: 13,
|
|
97
|
-
padding: "4px 6px",
|
|
98
|
-
marginBottom: 4,
|
|
99
|
-
background: "transparent",
|
|
100
|
-
color: "inherit",
|
|
101
|
-
border: `1px solid ${border}`,
|
|
102
|
-
borderRadius: 6,
|
|
103
|
-
outline: "none",
|
|
104
|
-
} }), filtered.length === 0 ? (_jsx("span", { style: { color: theme.synComment, fontSize: 13, padding: "4px 6px" }, children: "no match" })) : (filtered.map((m, i) => {
|
|
105
|
-
const label = modelLabel(m);
|
|
106
|
-
const isCurrent = selected ? modelLabel(selected) === label : false;
|
|
107
|
-
const highlighted = i === cursor;
|
|
108
|
-
return (_jsxs("div", { role: "option", "aria-selected": highlighted, onMouseEnter: () => setCursor(i), onClick: () => choose(m), style: {
|
|
109
|
-
fontFamily: MONO,
|
|
110
|
-
fontSize: 13,
|
|
111
|
-
padding: "4px 6px",
|
|
112
|
-
borderRadius: 6,
|
|
113
|
-
cursor: "pointer",
|
|
114
|
-
background: highlighted ? theme.userMessageBg : "transparent",
|
|
115
|
-
color: isCurrent ? theme.accent : "var(--ch-fg)",
|
|
116
|
-
}, children: [isCurrent ? "● " : " ", label] }, label));
|
|
117
|
-
}))] })) : null] }));
|
|
21
|
+
return (_jsx(FilterAutocomplete, { items: models, selectedKey: selected ? modelLabel(selected) : null, getKey: modelLabel, getLabel: modelLabel, onSelect: onSelect, isDisabled: disabled, "aria-label": "models", placeholder: "select model", searchPlaceholder: "filter models\u2026", emptyLabel: "no match" }));
|
|
118
22
|
}
|
|
119
23
|
//# sourceMappingURL=model-picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-picker.js","sourceRoot":"","sources":["../../src/web-ui/model-picker.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"model-picker.js","sourceRoot":"","sources":["../../src/web-ui/model-picker.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAoB;IACpF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,CACL,KAAC,kBAAkB,IACjB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EACnD,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,UAAU,EACpB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,QAAQ,gBACT,QAAQ,EACnB,WAAW,EAAC,cAAc,EAC1B,iBAAiB,EAAC,qBAAgB,EAClC,UAAU,EAAC,UAAU,GACrB,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/web-ui/permission.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/web-ui/permission.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACvD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CA6B5E"}
|
|
@@ -8,10 +8,10 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
8
8
|
* `permission_response` back over the wire and clears the pending state.
|
|
9
9
|
*/
|
|
10
10
|
import { extractDiff, toolDisplayName } from "@chances-ai/ui-core";
|
|
11
|
+
import { Row, Surface, Text } from "@chances-ai/design-system";
|
|
11
12
|
import { Button } from "./button.js";
|
|
12
13
|
import { DiffBlock } from "./diff-view.js";
|
|
13
14
|
import { buildPermissionButtons } from "./helpers.js";
|
|
14
|
-
import { Box, Txt } from "./primitives.js";
|
|
15
15
|
import { useUiTheme } from "./theme-context.js";
|
|
16
16
|
export function PermissionPrompt({ pending, onAnswer }) {
|
|
17
17
|
const theme = useUiTheme();
|
|
@@ -20,6 +20,6 @@ export function PermissionPrompt({ pending, onAnswer }) {
|
|
|
20
20
|
const head = diff
|
|
21
21
|
? pending.summary.slice(0, pending.summary.indexOf(diff)).trimEnd()
|
|
22
22
|
: pending.summary;
|
|
23
|
-
return (_jsxs(
|
|
23
|
+
return (_jsxs(Surface, { gap: "sm", className: "rounded-lg border p-3", style: { borderColor: theme.permission, backgroundColor: "var(--ch-bg)" }, children: [_jsxs(Text, { weight: "bold", style: { color: theme.permission }, children: ["Permission required \u00B7 ", toolDisplayName(pending.tool), " (", pending.category, ")"] }), head ? (_jsx(Text, { className: "whitespace-pre-wrap [overflow-wrap:anywhere]", style: { color: "var(--ch-fg)" }, children: head })) : null, diff ? _jsx(DiffBlock, { diff: diff, anchored: pending.tool === "write" }) : null, _jsx(Row, { gap: "sm", className: "flex-wrap", children: buildPermissionButtons(theme, onAnswer).map((b) => (_jsx(Button, { label: b.label, color: b.color, onPress: b.onPress }, b.key))) })] }));
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=permission.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/web-ui/permission.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/web-ui/permission.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAyB;IAC3E,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,MAAM,IAAI,GAAG,IAAI;QACf,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;QACnE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACpB,OAAO,CACL,MAAC,OAAO,IACN,GAAG,EAAC,IAAI,EACR,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,aAEzE,MAAC,IAAI,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,4CAC7B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAI,OAAO,CAAC,QAAQ,SACnE,EACN,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,IAAC,SAAS,EAAC,8CAA8C,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,YAC5F,IAAI,GACA,CACR,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,EAC5E,KAAC,GAAG,IAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,YAChC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClD,KAAC,MAAM,IAAa,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAzD,CAAC,CAAC,GAAG,CAAwD,CAC3E,CAAC,GACE,IACE,CACX,CAAC;AACJ,CAAC"}
|
package/dist/web-ui/progress.js
CHANGED
|
@@ -14,7 +14,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
14
14
|
*/
|
|
15
15
|
import { useEffect, useRef, useState } from "react";
|
|
16
16
|
import { formatElapsed, pickVerb, SPINNER_FRAMES, SPINNER_STATIC } from "@chances-ai/ui-core";
|
|
17
|
-
import {
|
|
17
|
+
import { Row, Text } from "@chances-ai/design-system";
|
|
18
18
|
import { useUiTheme } from "./theme-context.js";
|
|
19
19
|
const TICK_MS = 120;
|
|
20
20
|
export function Progress({ active, verb, reducedMotion = false, elapsedMsOverride, frameOverride, now = Date.now }) {
|
|
@@ -40,6 +40,6 @@ export function Progress({ active, verb, reducedMotion = false, elapsedMsOverrid
|
|
|
40
40
|
const glyphIndex = frameOverride ?? frame;
|
|
41
41
|
const glyph = reducedMotion ? SPINNER_STATIC : (SPINNER_FRAMES[glyphIndex % SPINNER_FRAMES.length] ?? "✻");
|
|
42
42
|
const text = `${verb ?? autoVerb}… (esc to interrupt · ${formatElapsed(elapsedMs)})`;
|
|
43
|
-
return (_jsxs(
|
|
43
|
+
return (_jsxs(Row, { className: "items-baseline gap-1.5", children: [_jsx(Text, { style: { color: theme.accent }, children: glyph }), _jsx(Text, { className: "text-[13px]", style: { color: theme.synComment }, children: text })] }));
|
|
44
44
|
}
|
|
45
45
|
//# sourceMappingURL=progress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/web-ui/progress.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAY,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/web-ui/progress.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAY,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,OAAO,GAAG,GAAG,CAAC;AAepB,MAAM,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAiB;IAC/H,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,MAAM,CAAS,GAAG,EAAE,CAAC,CAAC;IAEvC,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM;YAAE,QAAQ,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC;IACvC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kDAAkD;IAEhE,iFAAiF;IACjF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,IAAI,aAAa,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO;QACpE,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QACxF,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,SAAS,GAAG,iBAAiB,IAAI,GAAG,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;IAChE,MAAM,UAAU,GAAG,aAAa,IAAI,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,QAAQ,0BAA0B,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;IAEtF,OAAO,CACL,MAAC,GAAG,IAAC,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,YAAG,KAAK,GAAQ,EACpD,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,YAC7D,IAAI,GACA,IACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-input.d.ts","sourceRoot":"","sources":["../../src/web-ui/prompt-input.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-input.d.ts","sourceRoot":"","sources":["../../src/web-ui/prompt-input.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAwC,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAKtF,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,IAAI,EAAE,OAAO,CAAC;IACd,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAuJvG"}
|
|
@@ -11,10 +11,10 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
* chat:cancel) — but the typeahead owns Esc first when it's open.
|
|
12
12
|
*/
|
|
13
13
|
import { useState } from "react";
|
|
14
|
+
import { Row, Surface } from "@chances-ai/design-system";
|
|
14
15
|
import { parseCommandName, suggestWebCommands } from "./commands.js";
|
|
15
16
|
import { Button } from "./button.js";
|
|
16
17
|
import { MONO, shouldSubmit } from "./helpers.js";
|
|
17
|
-
import { Box } from "./primitives.js";
|
|
18
18
|
import { useUiTheme } from "./theme-context.js";
|
|
19
19
|
export function PromptInput({ busy, disabled, onSubmit, onAbort, commands, onCommand }) {
|
|
20
20
|
const theme = useUiTheme();
|
|
@@ -84,7 +84,7 @@ export function PromptInput({ busy, disabled, onSubmit, onAbort, commands, onCom
|
|
|
84
84
|
submit();
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
-
return (_jsxs(
|
|
87
|
+
return (_jsxs(Surface, { className: "relative", children: [typeaheadOpen ? (_jsx("div", { role: "listbox", "aria-label": "slash commands", style: {
|
|
88
88
|
position: "absolute",
|
|
89
89
|
bottom: "calc(100% + 4px)",
|
|
90
90
|
left: 0,
|
|
@@ -110,7 +110,7 @@ export function PromptInput({ busy, disabled, onSubmit, onAbort, commands, onCom
|
|
|
110
110
|
cursor: "pointer",
|
|
111
111
|
background: i === cursor ? theme.userMessageBg : "transparent",
|
|
112
112
|
color: "var(--ch-fg)",
|
|
113
|
-
}, children: [_jsxs("span", { style: { color: theme.accent }, children: ["/", c.name] }), _jsxs("span", { style: { color: theme.synComment }, children: [" \u2014 ", c.description] })] }, c.name))) })) : null, _jsxs(
|
|
113
|
+
}, children: [_jsxs("span", { style: { color: theme.accent }, children: ["/", c.name] }), _jsxs("span", { style: { color: theme.synComment }, children: [" \u2014 ", c.description] })] }, c.name))) })) : null, _jsxs(Row, { gap: "sm", align: "end", children: [_jsx("textarea", { value: text, rows: 2, disabled: disabled, onChange: (e) => {
|
|
114
114
|
setText(e.target.value);
|
|
115
115
|
setCursor(0);
|
|
116
116
|
}, onKeyDown: onKeyDown, placeholder: disabled ? "connecting…" : "Message the agent — Enter to send, Shift+Enter for newline, / for commands", style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-input.js","sourceRoot":"","sources":["../../src/web-ui/prompt-input.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAmB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"prompt-input.js","sourceRoot":"","sources":["../../src/web-ui/prompt-input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question-view.d.ts","sourceRoot":"","sources":["../../src/web-ui/question-view.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"question-view.d.ts","sourceRoot":"","sources":["../../src/web-ui/question-view.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO/E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAqFpE"}
|
|
@@ -9,8 +9,8 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
9
9
|
* (plus any typed "Other" text), matching the engine's QuestionDecision.
|
|
10
10
|
*/
|
|
11
11
|
import { useState } from "react";
|
|
12
|
+
import { Row, Surface, Text } from "@chances-ai/design-system";
|
|
12
13
|
import { Button } from "./button.js";
|
|
13
|
-
import { Box, Txt } from "./primitives.js";
|
|
14
14
|
import { useUiTheme } from "./theme-context.js";
|
|
15
15
|
/** Sentinel label for the free-text "Other" row (never sent verbatim). */
|
|
16
16
|
const OTHER = "__other__";
|
|
@@ -47,14 +47,14 @@ export function QuestionView({ pending, onAnswer }) {
|
|
|
47
47
|
onAnswer({ answers });
|
|
48
48
|
};
|
|
49
49
|
const border = theme.permission ?? "#888";
|
|
50
|
-
return (_jsxs(
|
|
50
|
+
return (_jsxs(Surface, { gap: "md", className: "rounded-lg border p-3", style: { borderColor: border, backgroundColor: "var(--ch-bg)" }, children: [_jsxs(Text, { weight: "bold", style: { color: border }, children: ["The agent is asking", pending.questions.length > 1 ? ` ${pending.questions.length} questions` : "", "\u2026"] }), pending.questions.map((q, qi) => {
|
|
51
51
|
const multi = q.multiSelect === true;
|
|
52
52
|
const chosen = selections[qi] ?? [];
|
|
53
53
|
const otherChecked = chosen.includes(OTHER);
|
|
54
|
-
return (_jsxs(
|
|
54
|
+
return (_jsxs(Surface, { gap: "xs", children: [_jsx(Text, { weight: "semibold", style: { color: "var(--ch-fg)" }, children: q.question }), q.options.map((opt) => (_jsxs("label", { style: { display: "flex", gap: 8, alignItems: "baseline", cursor: "pointer" }, children: [_jsx("input", { type: multi ? "checkbox" : "radio", name: `q-${qi}`, checked: chosen.includes(opt.label), onChange: () => toggle(qi, opt.label, multi) }), _jsxs(Text, { style: { color: "var(--ch-fg)" }, children: [opt.label, opt.description ? _jsxs(Text, { tone: "inherit", style: { color: theme.synComment }, children: [" \u2014 ", opt.description] }) : null] })] }, opt.label))), _jsxs("label", { style: { display: "flex", gap: 8, alignItems: "baseline", cursor: "pointer" }, children: [_jsx("input", { type: multi ? "checkbox" : "radio", name: `q-${qi}`, checked: otherChecked, onChange: () => toggle(qi, OTHER, multi) }), _jsx(Text, { style: { color: theme.synComment }, children: "Other:" }), _jsx("input", { "aria-label": `other answer for question ${qi + 1}`, value: other[qi] ?? "", onChange: (e) => setOther((o) => ({ ...o, [qi]: e.target.value })), onFocus: () => {
|
|
55
55
|
if (!otherChecked)
|
|
56
56
|
toggle(qi, OTHER, multi);
|
|
57
57
|
}, style: { flex: 1, background: "transparent", color: "inherit", border: `1px solid ${theme.synComment ?? "#555"}`, borderRadius: 4, padding: "2px 6px", outline: "none" } })] })] }, qi));
|
|
58
|
-
}), _jsxs(
|
|
58
|
+
}), _jsxs(Row, { gap: "sm", className: "flex-wrap", children: [_jsx(Button, { label: "Submit", color: theme.accent, onPress: submit, disabled: !allAnswered }), _jsx(Button, { label: "Cancel", color: theme.synComment, onPress: () => onAnswer({ answers: {}, declined: true }) })] })] }));
|
|
59
59
|
}
|
|
60
60
|
//# sourceMappingURL=question-view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"question-view.js","sourceRoot":"","sources":["../../src/web-ui/question-view.tsx"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"question-view.js","sourceRoot":"","sources":["../../src/web-ui/question-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export interface CodeSegmentsProps {
|
|
|
3
3
|
lang?: string;
|
|
4
4
|
fontSize?: number;
|
|
5
5
|
}
|
|
6
|
-
/** A monospace run of themed syntax segments (one inline span per scope).
|
|
6
|
+
/** A monospace run of themed syntax segments (one inline span per scope). The
|
|
7
|
+
* per-segment color is a runtime palette value (not a static role) → it stays
|
|
8
|
+
* on inline `style`, which is also what `render.test.tsx` asserts (`color:rgb(`). */
|
|
7
9
|
export declare function CodeSegments({ code, lang, fontSize }: CodeSegmentsProps): import("react/jsx-runtime").JSX.Element;
|
|
8
10
|
//# sourceMappingURL=segments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/web-ui/segments.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/web-ui/segments.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;sFAEsF;AACtF,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAa,EAAE,EAAE,iBAAiB,2CAgB5E"}
|
package/dist/web-ui/segments.js
CHANGED
|
@@ -7,13 +7,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
7
7
|
* highlights byte-identically across surfaces.
|
|
8
8
|
*/
|
|
9
9
|
import { highlightToSegments } from "@chances-ai/ui-core";
|
|
10
|
+
import { Text } from "@chances-ai/design-system";
|
|
10
11
|
import { MONO, segmentColor } from "./helpers.js";
|
|
11
|
-
import { Txt } from "./primitives.js";
|
|
12
12
|
import { useUiTheme } from "./theme-context.js";
|
|
13
|
-
/** A monospace run of themed syntax segments (one inline span per scope).
|
|
13
|
+
/** A monospace run of themed syntax segments (one inline span per scope). The
|
|
14
|
+
* per-segment color is a runtime palette value (not a static role) → it stays
|
|
15
|
+
* on inline `style`, which is also what `render.test.tsx` asserts (`color:rgb(`). */
|
|
14
16
|
export function CodeSegments({ code, lang, fontSize = 13 }) {
|
|
15
17
|
const theme = useUiTheme();
|
|
16
18
|
const segments = highlightToSegments(code, lang);
|
|
17
|
-
return (_jsx(
|
|
19
|
+
return (_jsx(Text, { tone: "inherit", className: "whitespace-pre-wrap [overflow-wrap:anywhere]", style: { fontFamily: MONO, fontSize }, children: segments.map((seg, i) => (_jsx(Text, { tone: "inherit", style: { color: segmentColor(seg.scope, theme) }, children: seg.text }, i))) }));
|
|
18
20
|
}
|
|
19
21
|
//# sourceMappingURL=segments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/web-ui/segments.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/web-ui/segments.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD;;sFAEsF;AACtF,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAqB;IAC3E,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO,CACL,KAAC,IAAI,IACH,IAAI,EAAC,SAAS,EACd,SAAS,EAAC,8CAA8C,EACxD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,YAEpC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACxB,KAAC,IAAI,IAAS,IAAI,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,YAC1E,GAAG,CAAC,IAAI,IADA,CAAC,CAEL,CACR,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* (v23 M5 / docs/6.6 §3) The left rail. The web relay holds ONE engine session
|
|
3
|
-
* per process (no multi-session backend — that's a CLI-management concern that
|
|
4
|
-
* stays out, see docs/STATUS), so this is an honest, lean rail: brand, a
|
|
5
|
-
* "New chat" action (clears the transcript), the active session, and a
|
|
6
|
-
* connection-status footer. Browser-safe, pure over the injected client/state.
|
|
7
|
-
*/
|
|
8
1
|
import type { ClientState } from "../client-core/index.js";
|
|
9
2
|
export interface SessionSidebarProps {
|
|
10
3
|
state: ClientState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sidebar.d.ts","sourceRoot":"","sources":["../../src/web-ui/session-sidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-sidebar.d.ts","sourceRoot":"","sources":["../../src/web-ui/session-sidebar.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,WAAW,CAAC;IACnB,yCAAyC;IACzC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,mBAAmB,2CAmCvE"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* (v23 M5 / docs/6.6 §3) The left rail. The web relay holds ONE engine session
|
|
4
|
+
* per process (no multi-session backend — that's a CLI-management concern that
|
|
5
|
+
* stays out, see docs/STATUS), so this is an honest, lean rail: brand, a
|
|
6
|
+
* "New chat" action (clears the transcript), the active session, and a
|
|
7
|
+
* connection-status footer. Browser-safe, pure over the injected client/state.
|
|
8
|
+
*/
|
|
9
|
+
import { Row, Surface, Text } from "@chances-ai/design-system";
|
|
2
10
|
import { Button } from "./button.js";
|
|
3
11
|
import { statusColor, statusText } from "./helpers.js";
|
|
4
|
-
import { Box, Txt } from "./primitives.js";
|
|
5
12
|
import { useUiTheme } from "./theme-context.js";
|
|
6
13
|
export function SessionSidebar({ state, onNewChat }) {
|
|
7
14
|
const theme = useUiTheme();
|
|
8
|
-
return (_jsxs(
|
|
15
|
+
return (_jsxs(Surface, { className: "h-full gap-2.5 p-2.5", children: [_jsx(Text, { weight: "bold", className: "text-[15px]", style: { color: theme.accent }, children: "chances" }), _jsx(Button, { label: "\uFF0B New chat", color: theme.accent, onPress: onNewChat }), _jsxs(Surface, { gap: "xs", className: "mt-2", children: [_jsx(Text, { className: "text-[11px] uppercase tracking-wide", style: { color: theme.synComment }, children: "Session" }), _jsx(Text, { className: "truncate font-mono text-[12px]", style: { color: state.sessionId ? "var(--ch-fg)" : theme.synComment }, children: state.sessionId ?? "—" })] }), _jsx(Surface, { grow: true }), _jsxs(Row, { align: "center", className: "gap-1.5", children: [_jsx(Text, { className: "text-[12px]", style: { color: statusColor(state.status, theme) }, children: "\u25CF" }), _jsx(Text, { className: "text-[12px]", style: { color: theme.synComment }, children: statusText(state.status) })] })] }));
|
|
9
16
|
}
|
|
10
17
|
//# sourceMappingURL=session-sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sidebar.js","sourceRoot":"","sources":["../../src/web-ui/session-sidebar.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"session-sidebar.js","sourceRoot":"","sources":["../../src/web-ui/session-sidebar.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQhD,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAuB;IACtE,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,OAAO,CACL,MAAC,OAAO,IAAC,SAAS,EAAC,sBAAsB,aACvC,KAAC,IAAI,IAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,wBAEnE,EACP,KAAC,MAAM,IAAC,KAAK,EAAC,iBAAY,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,GAAI,EAEtE,MAAC,OAAO,IAAC,GAAG,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,aAChC,KAAC,IAAI,IAAC,SAAS,EAAC,qCAAqC,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,wBAEjF,EACP,KAAC,IAAI,IACH,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,YAEpE,KAAK,CAAC,SAAS,IAAI,GAAG,GAClB,IACC,EAGV,KAAC,OAAO,IAAC,IAAI,SAAG,EAGhB,MAAC,GAAG,IAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,aACrC,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,uBAEzE,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,YAC7D,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GACpB,IACH,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Row, Text } from "@chances-ai/design-system";
|
|
2
3
|
import { formatUsage, statusColor, statusText } from "./helpers.js";
|
|
3
|
-
import { Box, Txt } from "./primitives.js";
|
|
4
4
|
import { GLYPHS, useUiTheme } from "./theme-context.js";
|
|
5
5
|
export function StatusBar({ state }) {
|
|
6
6
|
const theme = useUiTheme();
|
|
7
7
|
const sc = statusColor(state.status, theme);
|
|
8
|
-
return (_jsxs(
|
|
8
|
+
return (_jsxs(Row, { gap: "md", align: "center", className: "flex-wrap", children: [_jsxs(Row, { gap: "xs", align: "center", children: [_jsx(Text, { className: "text-[12px]", style: { color: sc }, children: GLYPHS.dot }), _jsx(Text, { className: "text-[12px]", style: { color: sc }, children: statusText(state.status) })] }), state.busy ? (_jsxs(Text, { className: "text-[12px]", style: { color: theme.accent }, children: [GLYPHS.thinking, " working\u2026"] })) : null, state.lastUsage ? (_jsx(Text, { className: "text-[12px]", style: { color: theme.synComment }, children: formatUsage(state.lastUsage) })) : null, state.lastError ? (_jsxs(Text, { className: "text-[12px]", style: { color: theme.error }, children: ["\u26A0 ", state.lastError] })) : null] }));
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=status-bar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/web-ui/status-bar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/web-ui/status-bar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAA0B;IACzD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,CACL,MAAC,GAAG,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,aAChD,MAAC,GAAG,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,aAC1B,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAC/C,MAAM,CAAC,GAAG,GACN,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAC/C,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GACpB,IACH,EACL,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACZ,MAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,aACzD,MAAM,CAAC,QAAQ,sBACX,CACR,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CACjB,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,YAC7D,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GACxB,CACR,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CACjB,MAAC,IAAI,IAAC,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,wBACtD,KAAK,CAAC,SAAS,IACb,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { toolDisplayName } from "@chances-ai/ui-core";
|
|
3
|
+
import { Row, Surface, Text } from "@chances-ai/design-system";
|
|
3
4
|
import { DiffBlock } from "./diff-view.js";
|
|
4
5
|
import { MONO, toolDotColor } from "./helpers.js";
|
|
5
6
|
import { Markdown } from "./markdown.js";
|
|
6
|
-
import { Box, Txt } from "./primitives.js";
|
|
7
7
|
import { CodeSegments } from "./segments.js";
|
|
8
8
|
import { GLYPHS, useUiTheme } from "./theme-context.js";
|
|
9
9
|
/**
|
|
@@ -15,7 +15,7 @@ import { GLYPHS, useUiTheme } from "./theme-context.js";
|
|
|
15
15
|
*/
|
|
16
16
|
export function Transcript({ lines, committedCount }) {
|
|
17
17
|
const committed = committedCount ?? lines.length;
|
|
18
|
-
return (_jsx(
|
|
18
|
+
return (_jsx(Surface, { className: "gap-1.5 py-2", children: lines.map((line, i) => (_jsx(TranscriptLine, { line: line, rich: i < committed }, i))) }));
|
|
19
19
|
}
|
|
20
20
|
/** One line, dispatched by `kind`. `rich` ⇒ committed (assistant → Markdown);
|
|
21
21
|
* otherwise the live tail (assistant → plain). Exported for focused render smokes. */
|
|
@@ -35,22 +35,22 @@ export function TranscriptLine({ line, rich = true }) {
|
|
|
35
35
|
}
|
|
36
36
|
function UserLine({ text }) {
|
|
37
37
|
const theme = useUiTheme();
|
|
38
|
-
return (_jsx(
|
|
38
|
+
return (_jsx(Surface, { className: "self-end max-w-[85%] rounded-[10px] px-3 py-2", style: { backgroundColor: theme.userMessageBg }, children: _jsx(Text, { className: "whitespace-pre-wrap [overflow-wrap:anywhere]", style: { color: "var(--ch-fg)" }, children: text }) }));
|
|
39
39
|
}
|
|
40
40
|
function AssistantLine({ text, rich }) {
|
|
41
41
|
// Committed → Markdown; live (still streaming) → plain text (no half-parsed
|
|
42
42
|
// Markdown flicker), matching the TUI's committed/live split.
|
|
43
43
|
if (rich)
|
|
44
44
|
return _jsx(Markdown, { text: text });
|
|
45
|
-
return (_jsx(
|
|
45
|
+
return (_jsx(Text, { className: "whitespace-pre-wrap [overflow-wrap:anywhere]", style: { color: "var(--ch-fg)" }, children: text }));
|
|
46
46
|
}
|
|
47
47
|
function PlainLine({ text, role }) {
|
|
48
48
|
const theme = useUiTheme();
|
|
49
|
-
return (_jsx(
|
|
49
|
+
return (_jsx(Text, { className: "whitespace-pre-wrap [overflow-wrap:anywhere]", style: { color: role === "error" ? theme.error : theme.synComment }, children: text }));
|
|
50
50
|
}
|
|
51
51
|
function ToolLine({ line }) {
|
|
52
52
|
const theme = useUiTheme();
|
|
53
53
|
const name = toolDisplayName(line.toolName ?? "");
|
|
54
|
-
return (_jsxs(
|
|
54
|
+
return (_jsxs(Surface, { className: "gap-0.5", children: [_jsxs(Row, { className: "items-baseline gap-1.5", children: [_jsx(Text, { style: { color: toolDotColor(line, theme) }, children: GLYPHS.dot }), _jsx(Text, { weight: "semibold", style: { color: "var(--ch-fg)" }, children: name }), line.text ? (_jsx(Text, { className: "text-[13px] [overflow-wrap:anywhere]", style: { fontFamily: MONO, color: theme.synComment }, children: line.text })) : null] }), line.diff || line.result ? (_jsxs(Row, { className: "gap-1.5 pl-1", children: [_jsx(Text, { style: { color: theme.synComment }, children: GLYPHS.branch }), _jsxs(Surface, { grow: true, className: "gap-0.5", children: [line.diff ? _jsx(DiffBlock, { diff: line.diff, anchored: line.anchored === true }) : null, line.result ? _jsx(CodeSegments, { code: line.result, fontSize: 12 }) : null] })] })) : null] }));
|
|
55
55
|
}
|
|
56
56
|
//# sourceMappingURL=transcript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/web-ui/transcript.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/web-ui/transcript.tsx"],"names":[],"mappings":"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"}
|