@dudousxd/nestjs-agent-react 0.27.0 → 0.29.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/README.md +55 -2
- package/dist/{client-DNM5Qm5N.d.cts → client-DhHEJi7c.d.cts} +19 -1
- package/dist/{client-DNM5Qm5N.d.ts → client-DhHEJi7c.d.ts} +19 -1
- package/dist/{generative-ui-jT9TYfCi.d.cts → generative-ui-VTZ1EADD.d.cts} +12 -0
- package/dist/{generative-ui-jT9TYfCi.d.ts → generative-ui-VTZ1EADD.d.ts} +12 -0
- package/dist/genui-json-render.cjs +202 -370
- package/dist/genui-json-render.cjs.map +1 -1
- package/dist/genui-json-render.d.cts +1 -1
- package/dist/genui-json-render.d.ts +1 -1
- package/dist/genui-json-render.js +209 -373
- package/dist/genui-json-render.js.map +1 -1
- package/dist/genui.cjs +178 -320
- package/dist/genui.cjs.map +1 -1
- package/dist/genui.d.cts +2 -2
- package/dist/genui.d.ts +2 -2
- package/dist/genui.js +185 -323
- package/dist/genui.js.map +1 -1
- package/dist/index.cjs +2044 -2729
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +123 -12
- package/dist/index.d.ts +123 -12
- package/dist/index.js +2067 -2737
- package/dist/index.js.map +1 -1
- package/dist/markdown.cjs +23 -36
- package/dist/markdown.cjs.map +1 -1
- package/dist/markdown.js +23 -28
- package/dist/markdown.js.map +1 -1
- package/dist/media.cjs +46 -79
- package/dist/media.cjs.map +1 -1
- package/dist/media.d.cts +1 -1
- package/dist/media.d.ts +1 -1
- package/dist/media.js +46 -81
- package/dist/media.js.map +1 -1
- package/package.json +3 -2
package/dist/genui.cjs
CHANGED
|
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
6
|
var __export = (target, all) => {
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -46,7 +45,6 @@ function sharedContext(key) {
|
|
|
46
45
|
holder[symbol] = created;
|
|
47
46
|
return created;
|
|
48
47
|
}
|
|
49
|
-
__name(sharedContext, "sharedContext");
|
|
50
48
|
var AmbientRenderUiContext = sharedContext("@dudousxd/nestjs-agent-react:ambient-render-ui");
|
|
51
49
|
|
|
52
50
|
// src/genui/use-generative-ui.ts
|
|
@@ -59,7 +57,6 @@ var GENUI_TREE_COMPONENT = "genui:tree";
|
|
|
59
57
|
function isRecord(value) {
|
|
60
58
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
61
59
|
}
|
|
62
|
-
__name(isRecord, "isRecord");
|
|
63
60
|
function toGenerativeUIItem(part) {
|
|
64
61
|
if (!isRecord(part)) return null;
|
|
65
62
|
const source = part.type === "data-ui" && isRecord(part.data) ? part.data : part;
|
|
@@ -74,7 +71,6 @@ function toGenerativeUIItem(part) {
|
|
|
74
71
|
toolCallId: typeof source.toolCallId === "string" ? source.toolCallId : null
|
|
75
72
|
};
|
|
76
73
|
}
|
|
77
|
-
__name(toGenerativeUIItem, "toGenerativeUIItem");
|
|
78
74
|
var resolverCaches = /* @__PURE__ */ new WeakMap();
|
|
79
75
|
function resolveCached(resolve, name, version) {
|
|
80
76
|
let cache = resolverCaches.get(resolve);
|
|
@@ -89,49 +85,27 @@ function resolveCached(resolve, name, version) {
|
|
|
89
85
|
try {
|
|
90
86
|
const result = resolve(name, version);
|
|
91
87
|
if (result instanceof Promise) {
|
|
92
|
-
entry = {
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
entry = { resolution: { status: "loading" }, settled: null };
|
|
89
|
+
entry.settled = result.then(
|
|
90
|
+
(Component2) => {
|
|
91
|
+
entry.resolution = Component2 ? { status: "ready", Component: Component2 } : { status: "unknown" };
|
|
95
92
|
},
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
status: "ready",
|
|
101
|
-
Component: Component2
|
|
102
|
-
} : {
|
|
103
|
-
status: "unknown"
|
|
104
|
-
};
|
|
105
|
-
}, (error) => {
|
|
106
|
-
entry.resolution = {
|
|
107
|
-
status: "error",
|
|
108
|
-
error
|
|
109
|
-
};
|
|
110
|
-
});
|
|
93
|
+
(error) => {
|
|
94
|
+
entry.resolution = { status: "error", error };
|
|
95
|
+
}
|
|
96
|
+
);
|
|
111
97
|
} else {
|
|
112
98
|
entry = {
|
|
113
|
-
resolution: result ? {
|
|
114
|
-
status: "ready",
|
|
115
|
-
Component: result
|
|
116
|
-
} : {
|
|
117
|
-
status: "unknown"
|
|
118
|
-
},
|
|
99
|
+
resolution: result ? { status: "ready", Component: result } : { status: "unknown" },
|
|
119
100
|
settled: null
|
|
120
101
|
};
|
|
121
102
|
}
|
|
122
103
|
} catch (error) {
|
|
123
|
-
entry = {
|
|
124
|
-
resolution: {
|
|
125
|
-
status: "error",
|
|
126
|
-
error
|
|
127
|
-
},
|
|
128
|
-
settled: null
|
|
129
|
-
};
|
|
104
|
+
entry = { resolution: { status: "error", error }, settled: null };
|
|
130
105
|
}
|
|
131
106
|
cache.set(key, entry);
|
|
132
107
|
return entry;
|
|
133
108
|
}
|
|
134
|
-
__name(resolveCached, "resolveCached");
|
|
135
109
|
function useResolvedComponent(name, version, registry, resolve, fallbackTree) {
|
|
136
110
|
const [, setTick] = (0, import_react2.useState)(0);
|
|
137
111
|
const own = registry[name];
|
|
@@ -146,170 +120,101 @@ function useResolvedComponent(name, version, registry, resolve, fallbackTree) {
|
|
|
146
120
|
return () => {
|
|
147
121
|
live = false;
|
|
148
122
|
};
|
|
149
|
-
}, [
|
|
150
|
-
|
|
151
|
-
]);
|
|
152
|
-
if (own !== void 0) return {
|
|
153
|
-
status: "ready",
|
|
154
|
-
Component: own
|
|
155
|
-
};
|
|
123
|
+
}, [pending]);
|
|
124
|
+
if (own !== void 0) return { status: "ready", Component: own };
|
|
156
125
|
if (entry !== null && entry.resolution.status !== "unknown") return entry.resolution;
|
|
157
126
|
if (name === GENUI_TREE_COMPONENT && fallbackTree !== void 0) {
|
|
158
|
-
return {
|
|
159
|
-
status: "ready",
|
|
160
|
-
Component: fallbackTree
|
|
161
|
-
};
|
|
127
|
+
return { status: "ready", Component: fallbackTree };
|
|
162
128
|
}
|
|
163
|
-
return {
|
|
164
|
-
status: "unknown"
|
|
165
|
-
};
|
|
129
|
+
return { status: "unknown" };
|
|
166
130
|
}
|
|
167
|
-
__name(useResolvedComponent, "useResolvedComponent");
|
|
168
131
|
function useValidatedProps(catalog, name, props) {
|
|
169
132
|
const checked = catalog?.has(name) === true;
|
|
170
133
|
const immediate = (0, import_react2.useMemo)(() => {
|
|
171
|
-
if (!checked || catalog === void 0) return {
|
|
172
|
-
status: "ok",
|
|
173
|
-
props
|
|
174
|
-
};
|
|
134
|
+
if (!checked || catalog === void 0) return { status: "ok", props };
|
|
175
135
|
const result = catalog.validateSync?.(name, props);
|
|
176
136
|
if (result === void 0) return null;
|
|
177
|
-
return result.ok ? {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
issues: result.issues
|
|
183
|
-
};
|
|
184
|
-
}, [
|
|
185
|
-
checked,
|
|
186
|
-
catalog,
|
|
187
|
-
name,
|
|
188
|
-
props
|
|
189
|
-
]);
|
|
190
|
-
const [late, setLate] = (0, import_react2.useState)(null);
|
|
137
|
+
return result.ok ? { status: "ok", props: result.value } : { status: "invalid", issues: result.issues };
|
|
138
|
+
}, [checked, catalog, name, props]);
|
|
139
|
+
const [late, setLate] = (0, import_react2.useState)(
|
|
140
|
+
null
|
|
141
|
+
);
|
|
191
142
|
(0, import_react2.useEffect)(() => {
|
|
192
143
|
if (immediate !== null || catalog === void 0) return;
|
|
193
144
|
let live = true;
|
|
194
|
-
catalog.validate(name, props).then(
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
status: "ok",
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
{
|
|
214
|
-
path: [],
|
|
215
|
-
message: error instanceof Error ? error.message : String(error)
|
|
216
|
-
}
|
|
217
|
-
]
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
});
|
|
145
|
+
catalog.validate(name, props).then(
|
|
146
|
+
(result) => {
|
|
147
|
+
if (!live) return;
|
|
148
|
+
setLate({
|
|
149
|
+
props,
|
|
150
|
+
result: result.ok ? { status: "ok", props: result.value } : { status: "invalid", issues: result.issues }
|
|
151
|
+
});
|
|
152
|
+
},
|
|
153
|
+
(error) => {
|
|
154
|
+
if (!live) return;
|
|
155
|
+
setLate({
|
|
156
|
+
props,
|
|
157
|
+
result: {
|
|
158
|
+
status: "invalid",
|
|
159
|
+
issues: [{ path: [], message: error instanceof Error ? error.message : String(error) }]
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
);
|
|
221
164
|
return () => {
|
|
222
165
|
live = false;
|
|
223
166
|
};
|
|
224
|
-
}, [
|
|
225
|
-
immediate,
|
|
226
|
-
catalog,
|
|
227
|
-
name,
|
|
228
|
-
props
|
|
229
|
-
]);
|
|
167
|
+
}, [immediate, catalog, name, props]);
|
|
230
168
|
if (immediate !== null) return immediate;
|
|
231
|
-
return late !== null && late.props === props ? late.result : {
|
|
232
|
-
status: "pending"
|
|
233
|
-
};
|
|
169
|
+
return late !== null && late.props === props ? late.result : { status: "pending" };
|
|
234
170
|
}
|
|
235
|
-
__name(useValidatedProps, "useValidatedProps");
|
|
236
171
|
function useGenerativeUIState(part, options, fallbackTree) {
|
|
237
|
-
const item = (0, import_react2.useMemo)(() => toGenerativeUIItem(part), [
|
|
238
|
-
part
|
|
239
|
-
]);
|
|
172
|
+
const item = (0, import_react2.useMemo)(() => toGenerativeUIItem(part), [part]);
|
|
240
173
|
const name = item?.component ?? "";
|
|
241
|
-
const resolution = useResolvedComponent(
|
|
174
|
+
const resolution = useResolvedComponent(
|
|
175
|
+
name,
|
|
176
|
+
item?.version ?? null,
|
|
177
|
+
options.registry,
|
|
178
|
+
item === null ? void 0 : options.resolveComponent,
|
|
179
|
+
fallbackTree
|
|
180
|
+
);
|
|
242
181
|
const empty = (0, import_react2.useMemo)(() => ({}), []);
|
|
243
|
-
const validation = useValidatedProps(
|
|
182
|
+
const validation = useValidatedProps(
|
|
183
|
+
item === null || name === GENUI_TREE_COMPONENT ? void 0 : options.catalog,
|
|
184
|
+
name,
|
|
185
|
+
item?.props ?? empty
|
|
186
|
+
);
|
|
244
187
|
if (item === null) return null;
|
|
245
|
-
if (resolution.status === "loading") return {
|
|
246
|
-
|
|
247
|
-
item
|
|
248
|
-
};
|
|
249
|
-
if (resolution.status === "unknown") return {
|
|
250
|
-
status: "problem",
|
|
251
|
-
reason: "unknown",
|
|
252
|
-
item
|
|
253
|
-
};
|
|
188
|
+
if (resolution.status === "loading") return { status: "loading", item };
|
|
189
|
+
if (resolution.status === "unknown") return { status: "problem", reason: "unknown", item };
|
|
254
190
|
if (resolution.status === "error") {
|
|
255
|
-
return {
|
|
256
|
-
status: "problem",
|
|
257
|
-
reason: "error",
|
|
258
|
-
item,
|
|
259
|
-
error: resolution.error
|
|
260
|
-
};
|
|
191
|
+
return { status: "problem", reason: "error", item, error: resolution.error };
|
|
261
192
|
}
|
|
262
|
-
if (validation.status === "pending") return {
|
|
263
|
-
status: "loading",
|
|
264
|
-
item
|
|
265
|
-
};
|
|
193
|
+
if (validation.status === "pending") return { status: "loading", item };
|
|
266
194
|
if (validation.status === "invalid") {
|
|
267
|
-
return {
|
|
268
|
-
status: "problem",
|
|
269
|
-
reason: "invalid",
|
|
270
|
-
item,
|
|
271
|
-
issues: validation.issues
|
|
272
|
-
};
|
|
195
|
+
return { status: "problem", reason: "invalid", item, issues: validation.issues };
|
|
273
196
|
}
|
|
274
|
-
return {
|
|
275
|
-
status: "ready",
|
|
276
|
-
item,
|
|
277
|
-
Component: resolution.Component,
|
|
278
|
-
props: validation.props
|
|
279
|
-
};
|
|
197
|
+
return { status: "ready", item, Component: resolution.Component, props: validation.props };
|
|
280
198
|
}
|
|
281
|
-
__name(useGenerativeUIState, "useGenerativeUIState");
|
|
282
199
|
|
|
283
200
|
// src/genui/generative-ui.tsx
|
|
284
|
-
var
|
|
201
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
202
|
+
var TreeScopeContext = (0, import_react3.createContext)(null);
|
|
285
203
|
function renderFallback(fallback, problem) {
|
|
286
204
|
if (typeof fallback === "function") return fallback(problem);
|
|
287
205
|
return fallback ?? null;
|
|
288
206
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
static {
|
|
292
|
-
__name(this, "ItemBoundary");
|
|
293
|
-
}
|
|
294
|
-
state = {
|
|
295
|
-
error: void 0,
|
|
296
|
-
failed: false
|
|
297
|
-
};
|
|
207
|
+
var ItemBoundary = class extends import_react3.Component {
|
|
208
|
+
state = { error: void 0, failed: false };
|
|
298
209
|
static getDerivedStateFromError(error) {
|
|
299
|
-
return {
|
|
300
|
-
error,
|
|
301
|
-
failed: true
|
|
302
|
-
};
|
|
210
|
+
return { error, failed: true };
|
|
303
211
|
}
|
|
304
212
|
componentDidCatch(error, _info) {
|
|
305
213
|
this.props.onError?.(error, this.props.item);
|
|
306
214
|
}
|
|
307
215
|
componentDidUpdate(previous) {
|
|
308
216
|
if (this.state.failed && previous.item !== this.props.item) {
|
|
309
|
-
this.setState({
|
|
310
|
-
error: void 0,
|
|
311
|
-
failed: false
|
|
312
|
-
});
|
|
217
|
+
this.setState({ error: void 0, failed: false });
|
|
313
218
|
}
|
|
314
219
|
}
|
|
315
220
|
render() {
|
|
@@ -324,143 +229,104 @@ var ItemBoundary = class ItemBoundary2 extends import_react3.Component {
|
|
|
324
229
|
}
|
|
325
230
|
};
|
|
326
231
|
function nodeItem(node, id) {
|
|
327
|
-
return {
|
|
328
|
-
id,
|
|
329
|
-
component: node.type,
|
|
330
|
-
props: node.props ?? {},
|
|
331
|
-
version: null,
|
|
332
|
-
toolCallId: null
|
|
333
|
-
};
|
|
232
|
+
return { id, component: node.type, props: node.props ?? {}, version: null, toolCallId: null };
|
|
334
233
|
}
|
|
335
|
-
__name(nodeItem, "nodeItem");
|
|
336
234
|
function TreeNode({ node, id }) {
|
|
337
235
|
const scope = (0, import_react3.useContext)(TreeScopeContext);
|
|
338
|
-
const item = (0, import_react3.useMemo)(() => nodeItem(node, id), [
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
236
|
+
const item = (0, import_react3.useMemo)(() => nodeItem(node, id), [node, id]);
|
|
237
|
+
const resolution = useResolvedComponent(
|
|
238
|
+
node.type,
|
|
239
|
+
null,
|
|
240
|
+
scope?.options.registry ?? {},
|
|
241
|
+
scope?.options.resolveComponent
|
|
242
|
+
);
|
|
343
243
|
const validation = useValidatedProps(scope?.options.catalog, node.type, item.props);
|
|
344
244
|
if (scope === null) return null;
|
|
345
245
|
if (resolution.status === "loading" || validation.status === "pending") return scope.loading;
|
|
346
246
|
if (resolution.status === "unknown") {
|
|
347
|
-
return renderFallback(scope.fallback, {
|
|
348
|
-
reason: "unknown",
|
|
349
|
-
item
|
|
350
|
-
});
|
|
247
|
+
return renderFallback(scope.fallback, { reason: "unknown", item });
|
|
351
248
|
}
|
|
352
249
|
if (resolution.status === "error") {
|
|
353
|
-
return renderFallback(scope.fallback, {
|
|
354
|
-
reason: "error",
|
|
355
|
-
item,
|
|
356
|
-
error: resolution.error
|
|
357
|
-
});
|
|
250
|
+
return renderFallback(scope.fallback, { reason: "error", item, error: resolution.error });
|
|
358
251
|
}
|
|
359
252
|
if (validation.status === "invalid") {
|
|
360
|
-
return renderFallback(scope.fallback, {
|
|
361
|
-
reason: "invalid",
|
|
362
|
-
item,
|
|
363
|
-
issues: validation.issues
|
|
364
|
-
});
|
|
253
|
+
return renderFallback(scope.fallback, { reason: "invalid", item, issues: validation.issues });
|
|
365
254
|
}
|
|
366
255
|
const Renderer = resolution.Component;
|
|
367
256
|
const children = Array.isArray(node.children) ? node.children : [];
|
|
368
|
-
return /* @__PURE__ */
|
|
257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, { ...validation.props, children: children.length > 0 ? children.map((child, index) => {
|
|
369
258
|
const childId = `${id}.${index}`;
|
|
370
|
-
return /* @__PURE__ */
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
259
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
260
|
+
ItemBoundary,
|
|
261
|
+
{
|
|
262
|
+
item: nodeItem(child, childId),
|
|
263
|
+
fallback: scope.fallback,
|
|
264
|
+
onError: scope.onError,
|
|
265
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TreeNode, { node: child, id: childId })
|
|
266
|
+
},
|
|
267
|
+
childId
|
|
268
|
+
);
|
|
269
|
+
}) : void 0 });
|
|
380
270
|
}
|
|
381
|
-
__name(TreeNode, "TreeNode");
|
|
382
271
|
function GenuiTree({ root }) {
|
|
383
272
|
if (root === void 0 || root === null || typeof root.type !== "string") return null;
|
|
384
|
-
return /* @__PURE__ */
|
|
385
|
-
node: root,
|
|
386
|
-
id: "root"
|
|
387
|
-
});
|
|
273
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TreeNode, { node: root, id: "root" });
|
|
388
274
|
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
loading,
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
return /* @__PURE__ */ React.createElement(TreeScopeContext.Provider, {
|
|
413
|
-
value: scope
|
|
414
|
-
}, children);
|
|
275
|
+
function GenerativeUIScope({
|
|
276
|
+
registry,
|
|
277
|
+
catalog,
|
|
278
|
+
resolveComponent,
|
|
279
|
+
fallback,
|
|
280
|
+
loading = null,
|
|
281
|
+
onError,
|
|
282
|
+
children
|
|
283
|
+
}) {
|
|
284
|
+
const scope = (0, import_react3.useMemo)(
|
|
285
|
+
() => ({
|
|
286
|
+
options: {
|
|
287
|
+
registry,
|
|
288
|
+
...catalog !== void 0 ? { catalog } : {},
|
|
289
|
+
...resolveComponent !== void 0 ? { resolveComponent } : {}
|
|
290
|
+
},
|
|
291
|
+
fallback,
|
|
292
|
+
loading,
|
|
293
|
+
onError
|
|
294
|
+
}),
|
|
295
|
+
[registry, catalog, resolveComponent, fallback, loading, onError]
|
|
296
|
+
);
|
|
297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TreeScopeContext.Provider, { value: scope, children });
|
|
415
298
|
}
|
|
416
|
-
|
|
417
|
-
|
|
299
|
+
var GenuiContext = sharedContext(
|
|
300
|
+
"@dudousxd/nestjs-agent-react:genui-provider"
|
|
301
|
+
);
|
|
418
302
|
function useGenuiProvider() {
|
|
419
303
|
return (0, import_react3.useContext)(GenuiContext);
|
|
420
304
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
fallback
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
}), [
|
|
446
|
-
registry,
|
|
447
|
-
catalog,
|
|
448
|
-
resolveComponent,
|
|
449
|
-
treeRenderer,
|
|
450
|
-
fallback,
|
|
451
|
-
loading,
|
|
452
|
-
onError
|
|
453
|
-
]);
|
|
454
|
-
const renderUi = (0, import_react3.useCallback)((block) => /* @__PURE__ */ React.createElement(GenerativeUI, {
|
|
455
|
-
part: block
|
|
456
|
-
}), []);
|
|
457
|
-
return /* @__PURE__ */ React.createElement(GenuiContext.Provider, {
|
|
458
|
-
value
|
|
459
|
-
}, /* @__PURE__ */ React.createElement(AmbientRenderUiContext.Provider, {
|
|
460
|
-
value: renderUi
|
|
461
|
-
}, children));
|
|
305
|
+
function GenuiProvider({
|
|
306
|
+
registry,
|
|
307
|
+
catalog,
|
|
308
|
+
resolveComponent,
|
|
309
|
+
treeRenderer,
|
|
310
|
+
fallback,
|
|
311
|
+
loading,
|
|
312
|
+
onError,
|
|
313
|
+
children
|
|
314
|
+
}) {
|
|
315
|
+
const value = (0, import_react3.useMemo)(
|
|
316
|
+
() => ({
|
|
317
|
+
...registry !== void 0 ? { registry } : {},
|
|
318
|
+
...catalog !== void 0 ? { catalog } : {},
|
|
319
|
+
...resolveComponent !== void 0 ? { resolveComponent } : {},
|
|
320
|
+
...treeRenderer !== void 0 ? { treeRenderer } : {},
|
|
321
|
+
...fallback !== void 0 ? { fallback } : {},
|
|
322
|
+
...loading !== void 0 ? { loading } : {},
|
|
323
|
+
...onError !== void 0 ? { onError } : {}
|
|
324
|
+
}),
|
|
325
|
+
[registry, catalog, resolveComponent, treeRenderer, fallback, loading, onError]
|
|
326
|
+
);
|
|
327
|
+
const renderUi = (0, import_react3.useCallback)((block) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GenerativeUI, { part: block }), []);
|
|
328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GenuiContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AmbientRenderUiContext.Provider, { value: renderUi, children }) });
|
|
462
329
|
}
|
|
463
|
-
__name(GenuiProvider, "GenuiProvider");
|
|
464
330
|
var NO_REGISTRY = {};
|
|
465
331
|
function useMergedOptions(own) {
|
|
466
332
|
const provided = (0, import_react3.useContext)(GenuiContext);
|
|
@@ -468,50 +334,45 @@ function useMergedOptions(own) {
|
|
|
468
334
|
const catalog = own.catalog ?? provided?.catalog;
|
|
469
335
|
const resolveComponent = own.resolveComponent ?? provided?.resolveComponent;
|
|
470
336
|
const treeRenderer = own.treeRenderer ?? provided?.treeRenderer;
|
|
471
|
-
return (0, import_react3.useMemo)(
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
catalog
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
treeRenderer
|
|
481
|
-
} : {}
|
|
482
|
-
}), [
|
|
483
|
-
registry,
|
|
484
|
-
catalog,
|
|
485
|
-
resolveComponent,
|
|
486
|
-
treeRenderer
|
|
487
|
-
]);
|
|
337
|
+
return (0, import_react3.useMemo)(
|
|
338
|
+
() => ({
|
|
339
|
+
registry,
|
|
340
|
+
...catalog !== void 0 ? { catalog } : {},
|
|
341
|
+
...resolveComponent !== void 0 ? { resolveComponent } : {},
|
|
342
|
+
...treeRenderer !== void 0 ? { treeRenderer } : {}
|
|
343
|
+
}),
|
|
344
|
+
[registry, catalog, resolveComponent, treeRenderer]
|
|
345
|
+
);
|
|
488
346
|
}
|
|
489
|
-
__name(useMergedOptions, "useMergedOptions");
|
|
490
347
|
function useGenerativeUI(part, options = {}) {
|
|
491
348
|
const merged = useMergedOptions(options);
|
|
492
349
|
return useGenerativeUIState(part, merged, merged.treeRenderer ?? GenuiTree);
|
|
493
350
|
}
|
|
494
|
-
|
|
495
|
-
|
|
351
|
+
function GenerativeUI({
|
|
352
|
+
part,
|
|
353
|
+
registry,
|
|
354
|
+
catalog,
|
|
355
|
+
resolveComponent,
|
|
356
|
+
treeRenderer,
|
|
357
|
+
fallback: ownFallback,
|
|
358
|
+
loading: ownLoading,
|
|
359
|
+
onError: ownOnError
|
|
360
|
+
}) {
|
|
496
361
|
const provided = (0, import_react3.useContext)(GenuiContext);
|
|
497
362
|
const fallback = ownFallback ?? provided?.fallback;
|
|
498
363
|
const loading = ownLoading ?? provided?.loading ?? null;
|
|
499
364
|
const onError = ownOnError ?? provided?.onError;
|
|
500
365
|
const options = useMergedOptions({
|
|
501
|
-
...registry !== void 0 ? {
|
|
502
|
-
|
|
503
|
-
} : {},
|
|
504
|
-
...
|
|
505
|
-
catalog
|
|
506
|
-
} : {},
|
|
507
|
-
...resolveComponent !== void 0 ? {
|
|
508
|
-
resolveComponent
|
|
509
|
-
} : {},
|
|
510
|
-
...treeRenderer !== void 0 ? {
|
|
511
|
-
treeRenderer
|
|
512
|
-
} : {}
|
|
366
|
+
...registry !== void 0 ? { registry } : {},
|
|
367
|
+
...catalog !== void 0 ? { catalog } : {},
|
|
368
|
+
...resolveComponent !== void 0 ? { resolveComponent } : {},
|
|
369
|
+
...treeRenderer !== void 0 ? { treeRenderer } : {}
|
|
513
370
|
});
|
|
514
|
-
const state = useGenerativeUIState(
|
|
371
|
+
const state = useGenerativeUIState(
|
|
372
|
+
part,
|
|
373
|
+
options,
|
|
374
|
+
options.treeRenderer ?? GenuiTree
|
|
375
|
+
);
|
|
515
376
|
if (state === null) return null;
|
|
516
377
|
if (state.status === "loading") return loading;
|
|
517
378
|
if (state.status === "problem") {
|
|
@@ -519,20 +380,17 @@ function GenerativeUI({ part, registry, catalog, resolveComponent, treeRenderer,
|
|
|
519
380
|
return renderFallback(fallback, problem);
|
|
520
381
|
}
|
|
521
382
|
const Renderer = state.Component;
|
|
522
|
-
return /* @__PURE__ */
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
onError
|
|
533
|
-
}, /* @__PURE__ */ React.createElement(Renderer, state.props)));
|
|
383
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
384
|
+
GenerativeUIScope,
|
|
385
|
+
{
|
|
386
|
+
...options,
|
|
387
|
+
fallback,
|
|
388
|
+
loading,
|
|
389
|
+
...onError !== void 0 ? { onError } : {},
|
|
390
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ItemBoundary, { item: state.item, fallback, onError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer, { ...state.props }) })
|
|
391
|
+
}
|
|
392
|
+
);
|
|
534
393
|
}
|
|
535
|
-
__name(GenerativeUI, "GenerativeUI");
|
|
536
394
|
// Annotate the CommonJS export names for ESM import in node:
|
|
537
395
|
0 && (module.exports = {
|
|
538
396
|
GENUI_TREE_COMPONENT,
|