@gea-ai/chat-ui 0.1.260820-alpha.5
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/LICENSE +183 -0
- package/README.md +73 -0
- package/dist/catalog.d.ts +479 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +399 -0
- package/dist/catalog.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown.d.ts +8 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +81 -0
- package/dist/markdown.js.map +1 -0
- package/dist/message.d.ts +13 -0
- package/dist/message.d.ts.map +1 -0
- package/dist/message.js +206 -0
- package/dist/message.js.map +1 -0
- package/dist/runtime.d.ts +119 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +118 -0
- package/dist/runtime.js.map +1 -0
- package/dist/styles.css +369 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +56 -0
- package/dist/utils.js.map +1 -0
- package/dist/yaml-render.d.ts +20 -0
- package/dist/yaml-render.d.ts.map +1 -0
- package/dist/yaml-render.js +512 -0
- package/dist/yaml-render.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,512 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { pageEventSchema } from "@gea-ai/contract/page-events";
|
|
3
|
+
import { createYamlStreamCompiler } from "@json-render/yaml";
|
|
4
|
+
import { useMemo, useRef, useState, } from "react";
|
|
5
|
+
import { useGeaChatUI, } from "./runtime.js";
|
|
6
|
+
import { asRecord } from "./utils.js";
|
|
7
|
+
const componentTypes = new Set([
|
|
8
|
+
"Button",
|
|
9
|
+
"CapabilityList",
|
|
10
|
+
"Card",
|
|
11
|
+
"Checkbox",
|
|
12
|
+
"ChipSelect",
|
|
13
|
+
"ChoiceGroup",
|
|
14
|
+
"Grid",
|
|
15
|
+
"GuidedQuestions",
|
|
16
|
+
"Heading",
|
|
17
|
+
"Input",
|
|
18
|
+
"RadioCard",
|
|
19
|
+
"RatingInput",
|
|
20
|
+
"Select",
|
|
21
|
+
"Stack",
|
|
22
|
+
"Text",
|
|
23
|
+
"Textarea",
|
|
24
|
+
"ToggleButtonGroup",
|
|
25
|
+
]);
|
|
26
|
+
const blockedStateSegments = new Set(["__proto__", "constructor", "prototype"]);
|
|
27
|
+
function normalizeStatePath(path) {
|
|
28
|
+
const segments = path
|
|
29
|
+
.trim()
|
|
30
|
+
.split("/")
|
|
31
|
+
.map((segment) => segment.trim())
|
|
32
|
+
.filter(Boolean);
|
|
33
|
+
if (segments.length === 0 ||
|
|
34
|
+
segments.some((segment) => blockedStateSegments.has(segment))) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return segments;
|
|
38
|
+
}
|
|
39
|
+
function getStateValue(state, path) {
|
|
40
|
+
const segments = normalizeStatePath(path);
|
|
41
|
+
if (!segments) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
let current = state;
|
|
45
|
+
for (const segment of segments) {
|
|
46
|
+
const record = asRecord(current);
|
|
47
|
+
if (!record || !Object.hasOwn(record, segment)) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
current = record[segment];
|
|
51
|
+
}
|
|
52
|
+
return current;
|
|
53
|
+
}
|
|
54
|
+
function setStateValue(state, path, value) {
|
|
55
|
+
const segments = normalizeStatePath(path);
|
|
56
|
+
if (!segments) {
|
|
57
|
+
return state;
|
|
58
|
+
}
|
|
59
|
+
const next = { ...state };
|
|
60
|
+
let cursor = next;
|
|
61
|
+
for (const [index, segment] of segments.entries()) {
|
|
62
|
+
if (index === segments.length - 1) {
|
|
63
|
+
cursor[segment] = value;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
const existing = asRecord(cursor[segment]);
|
|
67
|
+
const child = existing ? { ...existing } : {};
|
|
68
|
+
cursor[segment] = child;
|
|
69
|
+
cursor = child;
|
|
70
|
+
}
|
|
71
|
+
return next;
|
|
72
|
+
}
|
|
73
|
+
function getBindingPath(value) {
|
|
74
|
+
const record = asRecord(value);
|
|
75
|
+
if (!record) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
const path = typeof record.$bindState === "string"
|
|
79
|
+
? record.$bindState
|
|
80
|
+
: typeof record.$state === "string"
|
|
81
|
+
? record.$state
|
|
82
|
+
: null;
|
|
83
|
+
return path && normalizeStatePath(path) ? path : null;
|
|
84
|
+
}
|
|
85
|
+
function findActionBinding(value, action) {
|
|
86
|
+
if (Array.isArray(value)) {
|
|
87
|
+
for (const item of value) {
|
|
88
|
+
const binding = findActionBinding(item, action);
|
|
89
|
+
if (binding) {
|
|
90
|
+
return binding;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
const record = asRecord(value);
|
|
96
|
+
return record?.action === action ? record : null;
|
|
97
|
+
}
|
|
98
|
+
function normalizeGuidedQuestionsProps(props) {
|
|
99
|
+
if (!Array.isArray(props.questions)) {
|
|
100
|
+
return props;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
...props,
|
|
104
|
+
questions: props.questions.map((question) => {
|
|
105
|
+
const record = asRecord(question);
|
|
106
|
+
const valuePath = record ? getBindingPath(record.value) : null;
|
|
107
|
+
return record && valuePath ? { ...record, valuePath } : question;
|
|
108
|
+
}),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function normalizeElement(value) {
|
|
112
|
+
const record = asRecord(value);
|
|
113
|
+
if (!record || typeof record.type !== "string") {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
if (!componentTypes.has(record.type)) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const on = asRecord(record.on) ?? {};
|
|
120
|
+
const rawProps = asRecord(record.props) ?? {};
|
|
121
|
+
const props = findActionBinding(on.press, "submitRequest")
|
|
122
|
+
? { ...rawProps, submit: true }
|
|
123
|
+
: rawProps;
|
|
124
|
+
return {
|
|
125
|
+
children: Array.isArray(record.children)
|
|
126
|
+
? record.children.filter((child) => typeof child === "string")
|
|
127
|
+
: [],
|
|
128
|
+
on,
|
|
129
|
+
props: record.type === "GuidedQuestions"
|
|
130
|
+
? normalizeGuidedQuestionsProps(props)
|
|
131
|
+
: props,
|
|
132
|
+
type: record.type,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export function parseGeaYamlRenderSpec(source) {
|
|
136
|
+
const compiler = createYamlStreamCompiler();
|
|
137
|
+
compiler.push(`${source}\n`);
|
|
138
|
+
const { result } = compiler.flush();
|
|
139
|
+
const record = asRecord(result);
|
|
140
|
+
const elementsRecord = asRecord(record?.elements);
|
|
141
|
+
if (!record || typeof record.root !== "string" || !elementsRecord) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const elements = Object.fromEntries(Object.entries(elementsRecord).flatMap(([id, value]) => {
|
|
145
|
+
const element = normalizeElement(value);
|
|
146
|
+
return element ? [[id, element]] : [];
|
|
147
|
+
}));
|
|
148
|
+
if (!elements[record.root]) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
elements,
|
|
153
|
+
root: record.root,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function getRequestOutputState(request) {
|
|
157
|
+
const initialState = { ...request?.input.initialState };
|
|
158
|
+
if (!request ||
|
|
159
|
+
request.state !== "output-available" ||
|
|
160
|
+
request.input.submission.mode !== "state") {
|
|
161
|
+
return initialState;
|
|
162
|
+
}
|
|
163
|
+
const statePath = request.input.submission.statePath;
|
|
164
|
+
if (statePath) {
|
|
165
|
+
return setStateValue(initialState, statePath, request.output);
|
|
166
|
+
}
|
|
167
|
+
return asRecord(request.output) ?? initialState;
|
|
168
|
+
}
|
|
169
|
+
function isRequestToolPart(part) {
|
|
170
|
+
if (part.type === "tool-request") {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
if (part.type !== "dynamic-tool") {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
const record = part;
|
|
177
|
+
return record.toolName === "request";
|
|
178
|
+
}
|
|
179
|
+
export function getGeaYamlRequest(message, requestKey) {
|
|
180
|
+
for (const part of message.parts) {
|
|
181
|
+
if (!isRequestToolPart(part)) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
const record = part;
|
|
185
|
+
const input = asRecord(record.input);
|
|
186
|
+
if (input?.requestKey !== requestKey ||
|
|
187
|
+
typeof record.toolCallId !== "string" ||
|
|
188
|
+
typeof record.state !== "string") {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
const submission = asRecord(input.submission);
|
|
192
|
+
const mode = submission?.mode === "none" ? "none" : "state";
|
|
193
|
+
const statePath = typeof submission?.statePath === "string"
|
|
194
|
+
? submission.statePath
|
|
195
|
+
: undefined;
|
|
196
|
+
return {
|
|
197
|
+
input: {
|
|
198
|
+
data: asRecord(input.data),
|
|
199
|
+
initialState: asRecord(input.initialState),
|
|
200
|
+
requestKey,
|
|
201
|
+
submission: {
|
|
202
|
+
mode,
|
|
203
|
+
...(statePath ? { statePath } : {}),
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
output: record.output,
|
|
207
|
+
state: record.state,
|
|
208
|
+
toolCallId: record.toolCallId,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
function normalizeOptions(value) {
|
|
214
|
+
if (!Array.isArray(value)) {
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
217
|
+
return value.flatMap((option) => {
|
|
218
|
+
if (typeof option === "string" && option.trim()) {
|
|
219
|
+
return [{ label: option, value: option }];
|
|
220
|
+
}
|
|
221
|
+
const record = asRecord(option);
|
|
222
|
+
if (!record || typeof record.value !== "string") {
|
|
223
|
+
return [];
|
|
224
|
+
}
|
|
225
|
+
const label = typeof record.title === "string"
|
|
226
|
+
? record.title
|
|
227
|
+
: typeof record.label === "string"
|
|
228
|
+
? record.label
|
|
229
|
+
: record.value;
|
|
230
|
+
return [
|
|
231
|
+
{
|
|
232
|
+
description: typeof record.description === "string"
|
|
233
|
+
? record.description
|
|
234
|
+
: undefined,
|
|
235
|
+
disabled: record.disabled === true,
|
|
236
|
+
icon: typeof record.icon === "string" ? record.icon : undefined,
|
|
237
|
+
label,
|
|
238
|
+
value: record.value,
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
function FieldLabel({ label }) {
|
|
244
|
+
return typeof label === "string" && label.trim() ? (_jsx("span", { "data-slot": "yaml-field-label", children: label })) : null;
|
|
245
|
+
}
|
|
246
|
+
function ChoiceButtons({ disabled, multiple = false, onChange, options, value, }) {
|
|
247
|
+
const selectedValues = new Set(Array.isArray(value)
|
|
248
|
+
? value.filter((item) => typeof item === "string")
|
|
249
|
+
: typeof value === "string"
|
|
250
|
+
? [value]
|
|
251
|
+
: []);
|
|
252
|
+
return (_jsx("div", { "data-multiple": multiple || undefined, "data-slot": "yaml-options", children: options.map((option) => {
|
|
253
|
+
const selected = selectedValues.has(option.value);
|
|
254
|
+
return (_jsxs("button", { "aria-pressed": selected, "data-selected": selected || undefined, disabled: disabled || option.disabled, onClick: () => {
|
|
255
|
+
if (!multiple) {
|
|
256
|
+
onChange(option.value);
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const next = new Set(selectedValues);
|
|
260
|
+
if (selected) {
|
|
261
|
+
next.delete(option.value);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
next.add(option.value);
|
|
265
|
+
}
|
|
266
|
+
onChange([...next]);
|
|
267
|
+
}, type: "button", children: [option.icon ? _jsx("span", { "aria-hidden": "true", children: option.icon }) : null, _jsx("span", { children: option.label }), option.description ? _jsx("small", { children: option.description }) : null] }, option.value));
|
|
268
|
+
}) }));
|
|
269
|
+
}
|
|
270
|
+
function boundQuestionPath(question) {
|
|
271
|
+
return getBindingPath(question.value);
|
|
272
|
+
}
|
|
273
|
+
function GuidedQuestions({ disabled, getStateValue: readState, questions, setStateValue: writeState, }) {
|
|
274
|
+
if (!Array.isArray(questions)) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
return (_jsx("ol", { "data-slot": "yaml-guided-questions", children: questions.map((question, index) => {
|
|
278
|
+
const record = asRecord(question);
|
|
279
|
+
if (!record || typeof record.title !== "string") {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
const path = boundQuestionPath(record);
|
|
283
|
+
const value = path ? readState(path) : undefined;
|
|
284
|
+
const key = typeof record.name === "string" ? record.name : `${index}`;
|
|
285
|
+
return (_jsxs("li", { children: [_jsx(FieldLabel, { label: record.title }), typeof record.description === "string" ? (_jsx("p", { children: record.description })) : null, record.kind === "choice" ? (_jsx(ChoiceButtons, { disabled: disabled || !path, onChange: (next) => {
|
|
286
|
+
if (path) {
|
|
287
|
+
writeState(path, next);
|
|
288
|
+
}
|
|
289
|
+
}, options: normalizeOptions(record.options), value: value })) : (_jsx("input", { disabled: disabled || !path, name: typeof record.name === "string" ? record.name : undefined, onChange: (event) => {
|
|
290
|
+
if (path) {
|
|
291
|
+
writeState(path, event.target.value);
|
|
292
|
+
}
|
|
293
|
+
}, placeholder: typeof record.placeholder === "string"
|
|
294
|
+
? record.placeholder
|
|
295
|
+
: undefined, type: "text", value: typeof value === "string" ? value : "" }))] }, key));
|
|
296
|
+
}) }));
|
|
297
|
+
}
|
|
298
|
+
function DefaultYamlComponent({ children, disabled, element, getBoundValue, getStateValue: readState, setBoundValue, setStateValue: writeState, submit, submitted, }) {
|
|
299
|
+
const { actions } = useGeaChatUI();
|
|
300
|
+
const { props, type } = element;
|
|
301
|
+
const label = typeof props.label === "string" ? props.label : undefined;
|
|
302
|
+
if (type === "Card") {
|
|
303
|
+
return (_jsxs("section", { "data-slot": "yaml-card", children: [typeof props.title === "string" ? _jsx("h3", { children: props.title }) : null, typeof props.description === "string" ? (_jsx("p", { children: props.description })) : null, children] }));
|
|
304
|
+
}
|
|
305
|
+
if (type === "Stack" || type === "Grid") {
|
|
306
|
+
const columns = type === "Grid" &&
|
|
307
|
+
(typeof props.columns === "number" || typeof props.columns === "string")
|
|
308
|
+
? String(props.columns)
|
|
309
|
+
: undefined;
|
|
310
|
+
const style = columns
|
|
311
|
+
? { "--gea-yaml-columns": columns }
|
|
312
|
+
: undefined;
|
|
313
|
+
return (_jsx("div", { "data-direction": props.direction, "data-slot": type === "Grid" ? "yaml-grid" : "yaml-stack", style: style, children: children }));
|
|
314
|
+
}
|
|
315
|
+
if (type === "Text") {
|
|
316
|
+
const value = getBoundValue("text");
|
|
317
|
+
return (_jsxs("p", { "data-slot": "yaml-text", children: [typeof value === "string" || typeof value === "number" ? value : null, children] }));
|
|
318
|
+
}
|
|
319
|
+
if (type === "Heading") {
|
|
320
|
+
const value = getBoundValue("text");
|
|
321
|
+
return (_jsxs("h3", { "data-slot": "yaml-heading", children: [typeof value === "string" || typeof value === "number" ? value : null, children] }));
|
|
322
|
+
}
|
|
323
|
+
if (type === "Input" || type === "Textarea") {
|
|
324
|
+
const value = getBoundValue("value");
|
|
325
|
+
const commonProps = {
|
|
326
|
+
disabled,
|
|
327
|
+
name: typeof props.name === "string" ? props.name : undefined,
|
|
328
|
+
onChange: (event) => {
|
|
329
|
+
setBoundValue("value", event.target.value);
|
|
330
|
+
},
|
|
331
|
+
placeholder: typeof props.placeholder === "string" ? props.placeholder : undefined,
|
|
332
|
+
value: typeof value === "string" || typeof value === "number"
|
|
333
|
+
? String(value)
|
|
334
|
+
: "",
|
|
335
|
+
};
|
|
336
|
+
return (_jsxs("label", { "data-slot": "yaml-field", children: [_jsx(FieldLabel, { label: label }), type === "Textarea" ? (_jsx("textarea", { ...commonProps, rows: typeof props.rows === "number" ? props.rows : undefined })) : (_jsx("input", { ...commonProps, type: props.type === "email" ||
|
|
337
|
+
props.type === "number" ||
|
|
338
|
+
props.type === "password"
|
|
339
|
+
? props.type
|
|
340
|
+
: "text" })), children] }));
|
|
341
|
+
}
|
|
342
|
+
if (type === "Select") {
|
|
343
|
+
const value = getBoundValue("value");
|
|
344
|
+
return (_jsxs("label", { "data-slot": "yaml-field", children: [_jsx(FieldLabel, { label: label }), _jsxs("select", { disabled: disabled, onChange: (event) => {
|
|
345
|
+
setBoundValue("value", event.target.value);
|
|
346
|
+
}, value: typeof value === "string" ? value : "", children: [typeof props.placeholder === "string" ? (_jsx("option", { disabled: true, value: "", children: props.placeholder })) : null, normalizeOptions(props.options).map((option) => (_jsx("option", { disabled: option.disabled, value: option.value, children: option.label }, option.value)))] }), children] }));
|
|
347
|
+
}
|
|
348
|
+
if (type === "Checkbox") {
|
|
349
|
+
const checked = getBoundValue("checked") === true;
|
|
350
|
+
return (_jsxs("label", { "data-slot": "yaml-checkbox", children: [_jsx("input", { checked: checked, disabled: disabled, onChange: (event) => {
|
|
351
|
+
setBoundValue("checked", event.target.checked);
|
|
352
|
+
}, type: "checkbox" }), _jsx("span", { children: label }), children] }));
|
|
353
|
+
}
|
|
354
|
+
if (type === "ChoiceGroup" ||
|
|
355
|
+
type === "RadioCard" ||
|
|
356
|
+
type === "ToggleButtonGroup") {
|
|
357
|
+
const value = getBoundValue("value");
|
|
358
|
+
return (_jsxs("div", { "data-slot": `yaml-${type.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase()}`, children: [_jsx(FieldLabel, { label: label }), _jsx(ChoiceButtons, { disabled: disabled, onChange: (next) => {
|
|
359
|
+
setBoundValue("value", next);
|
|
360
|
+
}, options: normalizeOptions(props.options), value: value }), children] }));
|
|
361
|
+
}
|
|
362
|
+
if (type === "ChipSelect") {
|
|
363
|
+
const value = getBoundValue("value");
|
|
364
|
+
const multiple = props.mode === "multi" || props.multiple === true;
|
|
365
|
+
return (_jsxs("div", { "data-slot": "yaml-chip-select", children: [_jsx(FieldLabel, { label: label }), _jsx(ChoiceButtons, { disabled: disabled, multiple: multiple, onChange: (next) => {
|
|
366
|
+
setBoundValue("value", next);
|
|
367
|
+
}, options: normalizeOptions(props.options), value: value }), children] }));
|
|
368
|
+
}
|
|
369
|
+
if (type === "RatingInput") {
|
|
370
|
+
const value = getBoundValue("value");
|
|
371
|
+
const current = typeof value === "number" ? value : 0;
|
|
372
|
+
const max = typeof props.max === "number" && props.max > 0
|
|
373
|
+
? Math.min(10, Math.floor(props.max))
|
|
374
|
+
: 5;
|
|
375
|
+
return (_jsxs("div", { "data-slot": "yaml-rating-input", children: [_jsx(FieldLabel, { label: label }), _jsx("div", { "data-slot": "yaml-options", children: Array.from({ length: max }, (_, index) => index + 1).map((score) => (_jsx("button", { "aria-label": String(score), "aria-pressed": score <= current, disabled: disabled, onClick: () => {
|
|
376
|
+
setBoundValue("value", score);
|
|
377
|
+
}, type: "button", children: props.icon === "heart"
|
|
378
|
+
? "♥"
|
|
379
|
+
: props.icon === "thumb"
|
|
380
|
+
? "👍"
|
|
381
|
+
: "★" }, score))) }), children] }));
|
|
382
|
+
}
|
|
383
|
+
if (type === "GuidedQuestions") {
|
|
384
|
+
return (_jsxs("div", { "data-slot": "yaml-guided-questions-group", children: [_jsx(GuidedQuestions, { disabled: disabled, getStateValue: readState, questions: props.questions, setStateValue: writeState }), children] }));
|
|
385
|
+
}
|
|
386
|
+
if (type === "CapabilityList") {
|
|
387
|
+
const items = Array.isArray(props.items) ? props.items : [];
|
|
388
|
+
return (_jsxs("div", { "data-slot": "yaml-capability-list", children: [items.map((item, index) => {
|
|
389
|
+
const record = asRecord(item);
|
|
390
|
+
if (!record || typeof record.title !== "string") {
|
|
391
|
+
return null;
|
|
392
|
+
}
|
|
393
|
+
return (_jsxs("article", { children: [typeof record.icon === "string" ? (_jsx("span", { "aria-hidden": "true", children: record.icon })) : null, _jsx("strong", { children: record.title }), typeof record.subtitle === "string" ? (_jsx("small", { children: record.subtitle })) : null, typeof record.description === "string" ? (_jsx("p", { children: record.description })) : null] }, `${record.title}-${index}`));
|
|
394
|
+
}), children] }));
|
|
395
|
+
}
|
|
396
|
+
if (type === "Button") {
|
|
397
|
+
const submitBinding = findActionBinding(element.on.press, "submitRequest");
|
|
398
|
+
const emitPageEventBinding = findActionBinding(element.on.press, "emitPageEvent");
|
|
399
|
+
const submits = Boolean(submitBinding);
|
|
400
|
+
const pageEvent = emitPageEventBinding
|
|
401
|
+
? pageEventSchema.safeParse(emitPageEventBinding.params)
|
|
402
|
+
: null;
|
|
403
|
+
const buttonDisabled = props.disabled === true ||
|
|
404
|
+
(submits
|
|
405
|
+
? disabled || submitted
|
|
406
|
+
: !pageEvent?.success || !actions.emitPageEvent);
|
|
407
|
+
return (_jsxs("button", { "data-slot": "yaml-button", disabled: buttonDisabled, onClick: () => {
|
|
408
|
+
if (submits) {
|
|
409
|
+
void submit();
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
if (pageEvent?.success) {
|
|
413
|
+
void actions.emitPageEvent?.(pageEvent.data);
|
|
414
|
+
}
|
|
415
|
+
}, type: "button", children: [typeof props.label === "string" ? props.label : "Submit", children] }));
|
|
416
|
+
}
|
|
417
|
+
return null;
|
|
418
|
+
}
|
|
419
|
+
function GeaYamlSpecView({ active, request, spec, }) {
|
|
420
|
+
const { actions, labels, yamlComponents } = useGeaChatUI();
|
|
421
|
+
const [state, setState] = useState(() => getRequestOutputState(request));
|
|
422
|
+
const [submitting, setSubmitting] = useState(false);
|
|
423
|
+
const [submittedLocally, setSubmittedLocally] = useState(false);
|
|
424
|
+
const submitted = submittedLocally || request?.state === "output-available";
|
|
425
|
+
const canSubmit = active &&
|
|
426
|
+
Boolean(request && actions.addToolOutput) &&
|
|
427
|
+
request?.state === "input-available" &&
|
|
428
|
+
request.input.submission.mode === "state";
|
|
429
|
+
const disabled = submitting || submitted || !canSubmit;
|
|
430
|
+
async function submit() {
|
|
431
|
+
if (!request || !actions.addToolOutput || !canSubmit || submitting) {
|
|
432
|
+
return false;
|
|
433
|
+
}
|
|
434
|
+
const output = request.input.submission.mode === "none"
|
|
435
|
+
? null
|
|
436
|
+
: request.input.submission.statePath
|
|
437
|
+
? getStateValue(state, request.input.submission.statePath)
|
|
438
|
+
: state;
|
|
439
|
+
setSubmitting(true);
|
|
440
|
+
try {
|
|
441
|
+
await actions.addToolOutput({
|
|
442
|
+
output,
|
|
443
|
+
tool: "request",
|
|
444
|
+
toolCallId: request.toolCallId,
|
|
445
|
+
});
|
|
446
|
+
setSubmittedLocally(true);
|
|
447
|
+
return true;
|
|
448
|
+
}
|
|
449
|
+
catch {
|
|
450
|
+
return false;
|
|
451
|
+
}
|
|
452
|
+
finally {
|
|
453
|
+
setSubmitting(false);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
function renderElement(id, ancestors) {
|
|
457
|
+
if (ancestors.has(id)) {
|
|
458
|
+
return null;
|
|
459
|
+
}
|
|
460
|
+
const element = spec.elements[id];
|
|
461
|
+
if (!element) {
|
|
462
|
+
return null;
|
|
463
|
+
}
|
|
464
|
+
const nextAncestors = new Set(ancestors).add(id);
|
|
465
|
+
const elementChildren = element.children ?? [];
|
|
466
|
+
const children = elementChildren.map((childId) => (_jsx("span", { "data-slot": "yaml-child", children: renderElement(childId, nextAncestors) }, childId)));
|
|
467
|
+
const Component = yamlComponents[element.type] ?? DefaultYamlComponent;
|
|
468
|
+
const publicElement = {
|
|
469
|
+
children: elementChildren,
|
|
470
|
+
id,
|
|
471
|
+
on: element.on ?? {},
|
|
472
|
+
props: element.props,
|
|
473
|
+
type: element.type,
|
|
474
|
+
};
|
|
475
|
+
function getBoundValue(propName) {
|
|
476
|
+
const source = element.props[propName];
|
|
477
|
+
const path = getBindingPath(source);
|
|
478
|
+
return path ? getStateValue(state, path) : source;
|
|
479
|
+
}
|
|
480
|
+
function setBoundValue(propName, value) {
|
|
481
|
+
const path = getBindingPath(element.props[propName]);
|
|
482
|
+
if (path) {
|
|
483
|
+
setState((current) => setStateValue(current, path, value));
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
return (_jsx(Component, { children: children, disabled: disabled, element: publicElement, getBoundValue: getBoundValue, getStateValue: (path) => getStateValue(state, path), setBoundValue: setBoundValue, setStateValue: (path, value) => {
|
|
487
|
+
setState((current) => setStateValue(current, path, value));
|
|
488
|
+
}, submit: submit, submitted: submitted }));
|
|
489
|
+
}
|
|
490
|
+
return (_jsxs("div", { "data-slot": "yaml-render", children: [renderElement(spec.root, new Set()), !request &&
|
|
491
|
+
Object.values(spec.elements).some((element) => {
|
|
492
|
+
return Boolean(findActionBinding(element.on?.press, "submitRequest"));
|
|
493
|
+
}) ? (_jsx("p", { "data-slot": "yaml-submit-unavailable", children: labels.submitUnavailable })) : null] }));
|
|
494
|
+
}
|
|
495
|
+
export function GeaYamlRender({ active = true, message, request: explicitRequest, source, streaming = false, }) {
|
|
496
|
+
const lastValidSpecRef = useRef(null);
|
|
497
|
+
const spec = useMemo(() => parseGeaYamlRenderSpec(source), [source]);
|
|
498
|
+
if (spec) {
|
|
499
|
+
lastValidSpecRef.current = spec;
|
|
500
|
+
}
|
|
501
|
+
const renderSpec = spec ?? (streaming ? lastValidSpecRef.current : null);
|
|
502
|
+
if (!renderSpec) {
|
|
503
|
+
return null;
|
|
504
|
+
}
|
|
505
|
+
const request = explicitRequest === undefined
|
|
506
|
+
? message
|
|
507
|
+
? getGeaYamlRequest(message, renderSpec.root)
|
|
508
|
+
: null
|
|
509
|
+
: explicitRequest;
|
|
510
|
+
return (_jsx(GeaYamlSpecView, { active: active, request: request, spec: renderSpec }, request?.toolCallId ?? renderSpec.root));
|
|
511
|
+
}
|
|
512
|
+
//# sourceMappingURL=yaml-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-render.js","sourceRoot":"","sources":["../src/yaml-render.tsx"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gea-ai/chat-ui",
|
|
3
|
+
"version": "0.1.260820-alpha.5",
|
|
4
|
+
"private": false,
|
|
5
|
+
"homepage": "https://musegea.com/developers/extensions",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/bmrlab/gea.git",
|
|
10
|
+
"directory": "packages/chat-ui"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist",
|
|
14
|
+
"LICENSE",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
17
|
+
"type": "module",
|
|
18
|
+
"sideEffects": [
|
|
19
|
+
"*.css"
|
|
20
|
+
],
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"import": "./dist/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./catalog": {
|
|
28
|
+
"types": "./dist/catalog.d.ts",
|
|
29
|
+
"import": "./dist/catalog.js"
|
|
30
|
+
},
|
|
31
|
+
"./styles.css": "./dist/styles.css"
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@comark/react": "^0.6.2",
|
|
38
|
+
"@json-render/core": "0.18.0",
|
|
39
|
+
"@json-render/react": "0.18.0",
|
|
40
|
+
"@json-render/yaml": "0.18.0",
|
|
41
|
+
"comark": "^0.6.2",
|
|
42
|
+
"zod": "4.3.6",
|
|
43
|
+
"@gea-ai/contract": "0.1.260820-alpha.5"
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/react": "^19.2.0",
|
|
47
|
+
"@types/react-dom": "^19.2.0",
|
|
48
|
+
"jsdom": "^29.1.1",
|
|
49
|
+
"typescript": "7.0.2",
|
|
50
|
+
"vite-plus": "0.2.1",
|
|
51
|
+
"vitest": "4.1.9"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"react": "^19.0.0",
|
|
55
|
+
"react-dom": "^19.0.0"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "pnpm --filter @gea-ai/contract build && rm -rf dist && tsc -p tsconfig.build.json && cp src/styles.css dist/styles.css && node ../../scripts/rewrite-esm-relative-imports.mjs dist",
|
|
59
|
+
"pack:npm": "pnpm pack --pack-destination dist",
|
|
60
|
+
"publish:npm": "pnpm publish --access public --tag alpha",
|
|
61
|
+
"test": "vp test run --passWithNoTests",
|
|
62
|
+
"type-check": "tsc --noEmit"
|
|
63
|
+
}
|
|
64
|
+
}
|