@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
package/dist/message.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { GeaMarkdown } from "./markdown.js";
|
|
3
|
+
import { useGeaChatUI, } from "./runtime.js";
|
|
4
|
+
import { asRecord, humanize, resolveSafeUrl, stringifyValue } from "./utils.js";
|
|
5
|
+
function getPartRecord(part) {
|
|
6
|
+
return part;
|
|
7
|
+
}
|
|
8
|
+
function getPartKey(part, index) {
|
|
9
|
+
const record = getPartRecord(part);
|
|
10
|
+
const stableKey = record.toolCallId ?? record.sourceId ?? record.id ?? record.url;
|
|
11
|
+
return typeof stableKey === "string" ? stableKey : `${record.type}-${index}`;
|
|
12
|
+
}
|
|
13
|
+
function DefaultMessageFrame({ children, role }) {
|
|
14
|
+
return (_jsx("article", { "data-role": role, "data-slot": "message", children: children }));
|
|
15
|
+
}
|
|
16
|
+
function DefaultAssistantAvatar({ label, src }) {
|
|
17
|
+
const { actions } = useGeaChatUI();
|
|
18
|
+
const fallback = label.trim().slice(0, 1).toUpperCase() || "A";
|
|
19
|
+
const safeSrc = resolveSafeUrl(src, actions.resolveAssetUrl, true);
|
|
20
|
+
return (_jsx("span", { "aria-label": label, "data-slot": "assistant-avatar", children: safeSrc ? _jsx("img", { alt: "", src: safeSrc }) : fallback }));
|
|
21
|
+
}
|
|
22
|
+
function DefaultTextPart({ active, message, part, streaming, }) {
|
|
23
|
+
return (_jsx("div", { "data-slot": "text-part", children: _jsx(GeaMarkdown, { active: active, markdown: part.text, message: message, streaming: streaming || part.state === "streaming" }) }));
|
|
24
|
+
}
|
|
25
|
+
function getReasoningSummary(part) {
|
|
26
|
+
const data = asRecord(part.data);
|
|
27
|
+
const explicit = typeof part.summary === "string"
|
|
28
|
+
? part.summary
|
|
29
|
+
: typeof data?.summary === "string"
|
|
30
|
+
? data.summary
|
|
31
|
+
: null;
|
|
32
|
+
const candidate = explicit ?? (typeof part.text === "string" ? part.text : null);
|
|
33
|
+
if (!candidate) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const trimmed = candidate.trim();
|
|
37
|
+
if (!trimmed || (!explicit && /[\r\n]/u.test(trimmed))) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const normalized = trimmed.replace(/\s+/gu, " ");
|
|
41
|
+
return normalized.length <= 180 ? normalized : null;
|
|
42
|
+
}
|
|
43
|
+
function DefaultReasoningPart({ part }) {
|
|
44
|
+
const { labels } = useGeaChatUI();
|
|
45
|
+
const record = getPartRecord(part);
|
|
46
|
+
const summary = getReasoningSummary(record);
|
|
47
|
+
const streaming = record.state === "streaming";
|
|
48
|
+
return (_jsxs("div", { "data-slot": "reasoning-part", children: [_jsx("span", { children: streaming ? labels.reasoningStreaming : labels.reasoningComplete }), summary ? _jsx("p", { children: summary }) : null] }));
|
|
49
|
+
}
|
|
50
|
+
function JsonDetails({ label, value }) {
|
|
51
|
+
const content = stringifyValue(value);
|
|
52
|
+
if (!content) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return (_jsxs("details", { "data-slot": "json-details", children: [_jsx("summary", { children: label }), _jsx("pre", { children: content })] }));
|
|
56
|
+
}
|
|
57
|
+
function DefaultToolPart({ part }) {
|
|
58
|
+
const { labels } = useGeaChatUI();
|
|
59
|
+
const record = getPartRecord(part);
|
|
60
|
+
const name = record.type === "dynamic-tool" && typeof record.toolName === "string"
|
|
61
|
+
? record.toolName
|
|
62
|
+
: record.type.replace(/^tool-/u, "");
|
|
63
|
+
const state = typeof record.state === "string" ? record.state : "input-streaming";
|
|
64
|
+
const failed = state === "output-error" || state === "output-denied";
|
|
65
|
+
const title = typeof record.title === "string" && record.title.trim()
|
|
66
|
+
? record.title
|
|
67
|
+
: humanize(name) || labels.tool;
|
|
68
|
+
return (_jsxs("section", { "data-failed": failed || undefined, "data-slot": "tool-part", "data-state": state, children: [_jsxs("header", { children: [_jsx("strong", { children: title }), _jsx("span", { children: labels.toolStates[state] ?? humanize(state) })] }), typeof record.errorText === "string" ? (_jsx("p", { "data-slot": "error-text", children: record.errorText })) : null, _jsx(JsonDetails, { label: labels.input, value: record.input }), _jsx(JsonDetails, { label: labels.output, value: record.output })] }));
|
|
69
|
+
}
|
|
70
|
+
function DefaultFilePart({ part }) {
|
|
71
|
+
const { actions, labels } = useGeaChatUI();
|
|
72
|
+
const record = getPartRecord(part);
|
|
73
|
+
const url = resolveSafeUrl(record.url, actions.resolveAssetUrl, true);
|
|
74
|
+
const mediaType = typeof record.mediaType === "string" ? record.mediaType : "";
|
|
75
|
+
const filename = typeof record.filename === "string" && record.filename.trim()
|
|
76
|
+
? record.filename
|
|
77
|
+
: labels.attachment;
|
|
78
|
+
if (!url) {
|
|
79
|
+
return (_jsxs("div", { "data-slot": "file-part", "data-unavailable": "true", children: [filename, " (", labels.attachmentUnavailable, ")"] }));
|
|
80
|
+
}
|
|
81
|
+
if (mediaType.startsWith("image/")) {
|
|
82
|
+
return (_jsxs("a", { "data-slot": "image-part", href: url, rel: "noreferrer", target: "_blank", children: [_jsx("img", { alt: filename, src: url }), _jsx("span", { children: filename })] }));
|
|
83
|
+
}
|
|
84
|
+
if (mediaType.startsWith("audio/")) {
|
|
85
|
+
return _jsx("audio", { controls: true, "data-slot": "media-part", src: url });
|
|
86
|
+
}
|
|
87
|
+
if (mediaType.startsWith("video/")) {
|
|
88
|
+
return _jsx("video", { controls: true, "data-slot": "media-part", src: url });
|
|
89
|
+
}
|
|
90
|
+
return (_jsx("a", { "data-slot": "file-part", href: url, rel: "noreferrer", target: "_blank", children: filename }));
|
|
91
|
+
}
|
|
92
|
+
function DefaultDataPart({ part }) {
|
|
93
|
+
const { labels } = useGeaChatUI();
|
|
94
|
+
const record = getPartRecord(part);
|
|
95
|
+
if (record.type === "data-context-compaction") {
|
|
96
|
+
return _jsx("div", { "data-slot": "system-note", children: labels.contextCompacted });
|
|
97
|
+
}
|
|
98
|
+
if (record.type === "data-run-error" ||
|
|
99
|
+
record.type === "data-insufficient-credits") {
|
|
100
|
+
const data = asRecord(record.data);
|
|
101
|
+
const message = typeof data?.message === "string" ? data.message : labels.runFailed;
|
|
102
|
+
return (_jsx("div", { "data-slot": "run-error", role: "alert", children: message }));
|
|
103
|
+
}
|
|
104
|
+
if (record.type === "data-updated-files" && Array.isArray(record.data)) {
|
|
105
|
+
return (_jsx("section", { "data-slot": "updated-files-part", children: record.data.map((item, index) => {
|
|
106
|
+
const file = asRecord(item);
|
|
107
|
+
if (!file || typeof file.fileName !== "string") {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
return (_jsxs("div", { children: [_jsx("span", { children: typeof file.operation === "string"
|
|
111
|
+
? (labels.fileOperations[file.operation] ??
|
|
112
|
+
humanize(file.operation))
|
|
113
|
+
: labels.updated }), _jsx("strong", { children: file.fileName }), typeof file.path === "string" ? (_jsx("small", { children: file.path })) : null] }, `${String(file.operation)}:${file.fileName}:${index}`));
|
|
114
|
+
}) }));
|
|
115
|
+
}
|
|
116
|
+
if (record.type === "data-resource") {
|
|
117
|
+
const data = asRecord(record.data);
|
|
118
|
+
const resource = asRecord(data?.resource);
|
|
119
|
+
const title = typeof resource?.title === "string"
|
|
120
|
+
? resource.title
|
|
121
|
+
: typeof resource?.fileName === "string"
|
|
122
|
+
? resource.fileName
|
|
123
|
+
: typeof resource?.path === "string"
|
|
124
|
+
? resource.path
|
|
125
|
+
: typeof resource?.id === "string"
|
|
126
|
+
? resource.id
|
|
127
|
+
: null;
|
|
128
|
+
if (resource && title) {
|
|
129
|
+
return (_jsxs("section", { "data-slot": "resource-part", children: [_jsx("span", { children: data?.action === "created" ? labels.created : labels.updated }), _jsx("strong", { children: title }), typeof resource.kind === "string" ? (_jsx("small", { children: humanize(resource.kind) })) : null] }));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return _jsx(JsonDetails, { label: humanize(record.type), value: record.data });
|
|
133
|
+
}
|
|
134
|
+
function DefaultUnknownPart({ part }) {
|
|
135
|
+
const record = getPartRecord(part);
|
|
136
|
+
const { providerMetadata: _providerMetadata, ...displayPart } = record;
|
|
137
|
+
return _jsx(JsonDetails, { label: humanize(record.type), value: displayPart });
|
|
138
|
+
}
|
|
139
|
+
function isToolPart(part) {
|
|
140
|
+
return part.type === "dynamic-tool" || part.type.startsWith("tool-");
|
|
141
|
+
}
|
|
142
|
+
function DefaultSourcePart({ part }) {
|
|
143
|
+
const { actions, labels } = useGeaChatUI();
|
|
144
|
+
const record = getPartRecord(part);
|
|
145
|
+
if (record.type === "source-document") {
|
|
146
|
+
return (_jsxs("div", { "data-slot": "source-document-part", children: [_jsx("span", { children: labels.source }), _jsx("strong", { children: typeof record.title === "string" ? record.title : labels.source }), typeof record.filename === "string" ? (_jsx("small", { children: record.filename })) : typeof record.mediaType === "string" ? (_jsx("small", { children: record.mediaType })) : null] }));
|
|
147
|
+
}
|
|
148
|
+
const url = resolveSafeUrl(record.url, actions.resolveAssetUrl);
|
|
149
|
+
if (!url) {
|
|
150
|
+
return (_jsx("div", { "data-slot": "source-part", "data-unavailable": "true", children: labels.source }));
|
|
151
|
+
}
|
|
152
|
+
return (_jsxs("a", { "data-slot": "source-part", href: url, rel: "noreferrer", target: "_blank", children: [_jsx("span", { children: labels.source }), _jsx("strong", { children: typeof record.title === "string" ? record.title : url })] }));
|
|
153
|
+
}
|
|
154
|
+
function GeaMessagePartView(input) {
|
|
155
|
+
const { components } = useGeaChatUI();
|
|
156
|
+
const TextPart = components.TextPart ?? DefaultTextPart;
|
|
157
|
+
const ReasoningPart = components.ReasoningPart ?? DefaultReasoningPart;
|
|
158
|
+
const FilePart = components.FilePart ?? DefaultFilePart;
|
|
159
|
+
const SourcePart = components.SourcePart ?? DefaultSourcePart;
|
|
160
|
+
const ToolPart = components.ToolPart ?? DefaultToolPart;
|
|
161
|
+
const DataPart = components.DataPart ?? DefaultDataPart;
|
|
162
|
+
const UnknownPart = components.UnknownPart ?? DefaultUnknownPart;
|
|
163
|
+
const commonProps = { message: input.message, part: input.part };
|
|
164
|
+
if (input.part.type === "text") {
|
|
165
|
+
return input.part.text.trim() ? (_jsx(TextPart, { active: input.active, message: input.message, part: input.part, streaming: input.status === "streaming" || input.status === "submitted" })) : null;
|
|
166
|
+
}
|
|
167
|
+
if (input.part.type === "reasoning") {
|
|
168
|
+
return _jsx(ReasoningPart, { ...commonProps });
|
|
169
|
+
}
|
|
170
|
+
if (input.part.type === "file" || input.part.type === "reasoning-file") {
|
|
171
|
+
return _jsx(FilePart, { ...commonProps });
|
|
172
|
+
}
|
|
173
|
+
if (input.part.type === "source-url") {
|
|
174
|
+
return _jsx(SourcePart, { ...commonProps });
|
|
175
|
+
}
|
|
176
|
+
if (input.part.type === "source-document") {
|
|
177
|
+
return _jsx(SourcePart, { ...commonProps });
|
|
178
|
+
}
|
|
179
|
+
if (input.part.type === "step-start") {
|
|
180
|
+
return _jsx("span", { "data-slot": "step-start" });
|
|
181
|
+
}
|
|
182
|
+
if (isToolPart(input.part)) {
|
|
183
|
+
return _jsx(ToolPart, { ...commonProps });
|
|
184
|
+
}
|
|
185
|
+
if (input.part.type.startsWith("data-")) {
|
|
186
|
+
return _jsx(DataPart, { ...commonProps });
|
|
187
|
+
}
|
|
188
|
+
if (input.part.type === "custom") {
|
|
189
|
+
return _jsx("div", { "data-slot": "custom-part", children: humanize(input.part.kind) });
|
|
190
|
+
}
|
|
191
|
+
return _jsx(UnknownPart, { ...commonProps });
|
|
192
|
+
}
|
|
193
|
+
export function GeaMessage({ active = true, message, status = "ready", }) {
|
|
194
|
+
const { components, labels } = useGeaChatUI();
|
|
195
|
+
const MessageFrame = components.MessageFrame ?? DefaultMessageFrame;
|
|
196
|
+
const AssistantAvatar = components.AssistantAvatar ?? DefaultAssistantAvatar;
|
|
197
|
+
const isAssistant = message.role === "assistant";
|
|
198
|
+
const senderLabel = message.metadata?.senderName ?? labels.agent;
|
|
199
|
+
const body = (_jsx("div", { "data-slot": "message-content", children: message.parts.map((part, index) => (_jsx("div", { "data-slot": "message-part", children: _jsx(GeaMessagePartView, { active: active, message: message, part: part, status: active ? status : "ready" }) }, getPartKey(part, index)))) }));
|
|
200
|
+
return (_jsxs(MessageFrame, { message: message, role: message.role, children: [isAssistant ? (_jsx(AssistantAvatar, { label: senderLabel, message: message, src: message.metadata?.senderAvatarUrl })) : null, body] }));
|
|
201
|
+
}
|
|
202
|
+
export function GeaMessages({ activeMessageId, messages, status = "ready", }) {
|
|
203
|
+
const fallbackActiveId = messages.at(-1)?.id;
|
|
204
|
+
return (_jsx("div", { "data-slot": "message-list", children: messages.map((message) => (_jsx(GeaMessage, { active: (activeMessageId ?? fallbackActiveId) === message.id, message: message, status: status }, message.id))) }));
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { AgentChatMessage, PageEvent } from "@gea-ai/contract";
|
|
2
|
+
import { type ComponentType, type ReactNode } from "react";
|
|
3
|
+
export type GeaChatStatus = "error" | "ready" | "streaming" | "submitted";
|
|
4
|
+
export type GeaMessagePart = AgentChatMessage["parts"][number];
|
|
5
|
+
export type GeaAddToolOutputInput = {
|
|
6
|
+
output: unknown;
|
|
7
|
+
tool: string;
|
|
8
|
+
toolCallId: string;
|
|
9
|
+
};
|
|
10
|
+
export type GeaChatActions = {
|
|
11
|
+
addToolOutput?: (input: GeaAddToolOutputInput) => Promise<unknown> | unknown;
|
|
12
|
+
emitPageEvent?: (event: PageEvent) => Promise<unknown> | unknown;
|
|
13
|
+
resolveAssetUrl?: (url: string) => string | null | undefined;
|
|
14
|
+
};
|
|
15
|
+
export type GeaChatLabels = {
|
|
16
|
+
agent: string;
|
|
17
|
+
attachment: string;
|
|
18
|
+
attachmentUnavailable: string;
|
|
19
|
+
contextCompacted: string;
|
|
20
|
+
created: string;
|
|
21
|
+
fileOperations: Record<string, string>;
|
|
22
|
+
input: string;
|
|
23
|
+
output: string;
|
|
24
|
+
reasoningComplete: string;
|
|
25
|
+
reasoningStreaming: string;
|
|
26
|
+
runFailed: string;
|
|
27
|
+
source: string;
|
|
28
|
+
submitUnavailable: string;
|
|
29
|
+
tool: string;
|
|
30
|
+
toolStates: Record<string, string>;
|
|
31
|
+
updated: string;
|
|
32
|
+
};
|
|
33
|
+
export type GeaAssistantAvatarProps = {
|
|
34
|
+
label: string;
|
|
35
|
+
message: AgentChatMessage;
|
|
36
|
+
src?: string | null;
|
|
37
|
+
};
|
|
38
|
+
export type GeaMessageFrameProps = {
|
|
39
|
+
children: ReactNode;
|
|
40
|
+
message: AgentChatMessage;
|
|
41
|
+
role: AgentChatMessage["role"];
|
|
42
|
+
};
|
|
43
|
+
export type GeaTextPartProps = {
|
|
44
|
+
active: boolean;
|
|
45
|
+
message: AgentChatMessage;
|
|
46
|
+
part: Extract<GeaMessagePart, {
|
|
47
|
+
type: "text";
|
|
48
|
+
}>;
|
|
49
|
+
streaming: boolean;
|
|
50
|
+
};
|
|
51
|
+
export type GeaPartProps = {
|
|
52
|
+
message: AgentChatMessage;
|
|
53
|
+
part: GeaMessagePart;
|
|
54
|
+
};
|
|
55
|
+
export type GeaChatComponents = {
|
|
56
|
+
AssistantAvatar?: ComponentType<GeaAssistantAvatarProps>;
|
|
57
|
+
DataPart?: ComponentType<GeaPartProps>;
|
|
58
|
+
FilePart?: ComponentType<GeaPartProps>;
|
|
59
|
+
MessageFrame?: ComponentType<GeaMessageFrameProps>;
|
|
60
|
+
ReasoningPart?: ComponentType<GeaPartProps>;
|
|
61
|
+
SourcePart?: ComponentType<GeaPartProps>;
|
|
62
|
+
TextPart?: ComponentType<GeaTextPartProps>;
|
|
63
|
+
ToolPart?: ComponentType<GeaPartProps>;
|
|
64
|
+
UnknownPart?: ComponentType<GeaPartProps>;
|
|
65
|
+
};
|
|
66
|
+
export type GeaYamlElement = {
|
|
67
|
+
children: string[];
|
|
68
|
+
id: string;
|
|
69
|
+
on: Record<string, unknown>;
|
|
70
|
+
props: Record<string, unknown>;
|
|
71
|
+
type: string;
|
|
72
|
+
};
|
|
73
|
+
export type GeaYamlComponentProps = {
|
|
74
|
+
children: ReactNode;
|
|
75
|
+
disabled: boolean;
|
|
76
|
+
element: GeaYamlElement;
|
|
77
|
+
getBoundValue: (propName: string) => unknown;
|
|
78
|
+
getStateValue: (path: string) => unknown;
|
|
79
|
+
setBoundValue: (propName: string, value: unknown) => void;
|
|
80
|
+
setStateValue: (path: string, value: unknown) => void;
|
|
81
|
+
submit: () => Promise<boolean>;
|
|
82
|
+
submitted: boolean;
|
|
83
|
+
};
|
|
84
|
+
export type GeaYamlComponents = Record<string, ComponentType<GeaYamlComponentProps>>;
|
|
85
|
+
export type GeaChatTheme = {
|
|
86
|
+
accent?: string;
|
|
87
|
+
assistantBackground?: string;
|
|
88
|
+
background?: string;
|
|
89
|
+
border?: string;
|
|
90
|
+
danger?: string;
|
|
91
|
+
fontFamily?: string;
|
|
92
|
+
foreground?: string;
|
|
93
|
+
muted?: string;
|
|
94
|
+
mutedForeground?: string;
|
|
95
|
+
radius?: string;
|
|
96
|
+
userBackground?: string;
|
|
97
|
+
};
|
|
98
|
+
type GeaChatRuntimeValue = {
|
|
99
|
+
actions: GeaChatActions;
|
|
100
|
+
components: GeaChatComponents;
|
|
101
|
+
labels: GeaChatLabels;
|
|
102
|
+
yamlComponents: Partial<GeaYamlComponents>;
|
|
103
|
+
};
|
|
104
|
+
export declare function GeaChatUIProvider({ actions, children, className, components, labels, locale, theme, yamlComponents, }: {
|
|
105
|
+
actions?: GeaChatActions;
|
|
106
|
+
children: ReactNode;
|
|
107
|
+
className?: string;
|
|
108
|
+
components?: GeaChatComponents;
|
|
109
|
+
labels?: Partial<Omit<GeaChatLabels, "fileOperations" | "toolStates">> & {
|
|
110
|
+
fileOperations?: Record<string, string>;
|
|
111
|
+
toolStates?: Record<string, string>;
|
|
112
|
+
};
|
|
113
|
+
locale?: string;
|
|
114
|
+
theme?: GeaChatTheme;
|
|
115
|
+
yamlComponents?: Partial<GeaYamlComponents>;
|
|
116
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
117
|
+
export declare function useGeaChatUI(): GeaChatRuntimeValue;
|
|
118
|
+
export {};
|
|
119
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.tsx"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, use, useMemo, } from "react";
|
|
3
|
+
const defaultLabels = {
|
|
4
|
+
agent: "Agent",
|
|
5
|
+
attachment: "Attachment",
|
|
6
|
+
attachmentUnavailable: "Attachment unavailable",
|
|
7
|
+
contextCompacted: "Earlier conversation context was compacted",
|
|
8
|
+
created: "Created",
|
|
9
|
+
fileOperations: {
|
|
10
|
+
create: "Created",
|
|
11
|
+
delete: "Deleted",
|
|
12
|
+
move: "Moved",
|
|
13
|
+
update: "Updated",
|
|
14
|
+
},
|
|
15
|
+
input: "Input",
|
|
16
|
+
output: "Output",
|
|
17
|
+
reasoningComplete: "Reasoning complete",
|
|
18
|
+
reasoningStreaming: "Reasoning",
|
|
19
|
+
runFailed: "Agent run failed",
|
|
20
|
+
source: "Source",
|
|
21
|
+
submitUnavailable: "This request cannot be submitted in the current host.",
|
|
22
|
+
tool: "Tool",
|
|
23
|
+
toolStates: {
|
|
24
|
+
"approval-requested": "Waiting for approval",
|
|
25
|
+
"approval-responded": "Approved",
|
|
26
|
+
"input-available": "Ready",
|
|
27
|
+
"input-streaming": "Preparing",
|
|
28
|
+
"output-available": "Completed",
|
|
29
|
+
"output-denied": "Denied",
|
|
30
|
+
"output-error": "Failed",
|
|
31
|
+
},
|
|
32
|
+
updated: "Updated",
|
|
33
|
+
};
|
|
34
|
+
const zhCNLabels = {
|
|
35
|
+
agent: "智能体",
|
|
36
|
+
attachment: "附件",
|
|
37
|
+
attachmentUnavailable: "链接不可用",
|
|
38
|
+
contextCompacted: "已整理较早的对话上下文",
|
|
39
|
+
created: "已创建",
|
|
40
|
+
fileOperations: {
|
|
41
|
+
create: "已创建",
|
|
42
|
+
delete: "已删除",
|
|
43
|
+
move: "已移动",
|
|
44
|
+
update: "已更新",
|
|
45
|
+
},
|
|
46
|
+
input: "输入",
|
|
47
|
+
output: "输出",
|
|
48
|
+
reasoningComplete: "思考完成",
|
|
49
|
+
reasoningStreaming: "正在思考",
|
|
50
|
+
runFailed: "智能体执行失败",
|
|
51
|
+
source: "来源",
|
|
52
|
+
submitUnavailable: "当前宿主无法提交这份请求。",
|
|
53
|
+
tool: "工具调用",
|
|
54
|
+
toolStates: {
|
|
55
|
+
"approval-requested": "等待确认",
|
|
56
|
+
"approval-responded": "已确认",
|
|
57
|
+
"input-available": "准备执行",
|
|
58
|
+
"input-streaming": "正在准备",
|
|
59
|
+
"output-available": "已完成",
|
|
60
|
+
"output-denied": "已拒绝",
|
|
61
|
+
"output-error": "执行失败",
|
|
62
|
+
},
|
|
63
|
+
updated: "已更新",
|
|
64
|
+
};
|
|
65
|
+
const GeaChatRuntimeContext = createContext({
|
|
66
|
+
actions: {},
|
|
67
|
+
components: {},
|
|
68
|
+
labels: defaultLabels,
|
|
69
|
+
yamlComponents: {},
|
|
70
|
+
});
|
|
71
|
+
function getThemeStyle(theme) {
|
|
72
|
+
if (!theme) {
|
|
73
|
+
return {};
|
|
74
|
+
}
|
|
75
|
+
const values = {
|
|
76
|
+
"--gea-chat-accent": theme.accent,
|
|
77
|
+
"--gea-chat-assistant-bg": theme.assistantBackground,
|
|
78
|
+
"--gea-chat-background": theme.background,
|
|
79
|
+
"--gea-chat-border": theme.border,
|
|
80
|
+
"--gea-chat-danger": theme.danger,
|
|
81
|
+
"--gea-chat-font-family": theme.fontFamily,
|
|
82
|
+
"--gea-chat-foreground": theme.foreground,
|
|
83
|
+
"--gea-chat-muted": theme.muted,
|
|
84
|
+
"--gea-chat-muted-foreground": theme.mutedForeground,
|
|
85
|
+
"--gea-chat-radius": theme.radius,
|
|
86
|
+
"--gea-chat-user-bg": theme.userBackground,
|
|
87
|
+
};
|
|
88
|
+
return Object.fromEntries(Object.entries(values).filter((entry) => Boolean(entry[1])));
|
|
89
|
+
}
|
|
90
|
+
export function GeaChatUIProvider({ actions = {}, children, className, components = {}, labels, locale = "en-US", theme, yamlComponents = {}, }) {
|
|
91
|
+
const value = useMemo(() => {
|
|
92
|
+
const localeLabels = locale.toLowerCase().startsWith("zh")
|
|
93
|
+
? zhCNLabels
|
|
94
|
+
: defaultLabels;
|
|
95
|
+
return {
|
|
96
|
+
actions,
|
|
97
|
+
components,
|
|
98
|
+
labels: {
|
|
99
|
+
...localeLabels,
|
|
100
|
+
...labels,
|
|
101
|
+
fileOperations: {
|
|
102
|
+
...localeLabels.fileOperations,
|
|
103
|
+
...labels?.fileOperations,
|
|
104
|
+
},
|
|
105
|
+
toolStates: {
|
|
106
|
+
...localeLabels.toolStates,
|
|
107
|
+
...labels?.toolStates,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
yamlComponents,
|
|
111
|
+
};
|
|
112
|
+
}, [actions, components, labels, locale, yamlComponents]);
|
|
113
|
+
return (_jsx(GeaChatRuntimeContext, { value: value, children: _jsx("div", { className: className, "data-slot": "gea-chat-ui", style: getThemeStyle(theme), children: children }) }));
|
|
114
|
+
}
|
|
115
|
+
export function useGeaChatUI() {
|
|
116
|
+
return use(GeaChatRuntimeContext);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.tsx"],"names":[],"mappings":"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"}
|