@dudousxd/nestjs-agent-react 0.32.0 → 0.34.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 +7 -0
- package/dist/{client-C7eu9WMJ.d.cts → client-BdHUuqy-.d.cts} +36 -1
- package/dist/{client-C7eu9WMJ.d.ts → client-BdHUuqy-.d.ts} +36 -1
- package/dist/{generative-ui-VTZ1EADD.d.cts → generative-ui-CyHY8Lh1.d.cts} +32 -101
- package/dist/{generative-ui-VTZ1EADD.d.ts → generative-ui-DdUZPCXX.d.ts} +32 -101
- package/dist/genui-json-render.cjs +51 -8
- package/dist/genui-json-render.cjs.map +1 -1
- package/dist/genui-json-render.d.cts +2 -1
- package/dist/genui-json-render.d.ts +2 -1
- package/dist/genui-json-render.js +51 -8
- package/dist/genui-json-render.js.map +1 -1
- package/dist/genui-server-playwright.cjs +199 -0
- package/dist/genui-server-playwright.cjs.map +1 -0
- package/dist/genui-server-playwright.d.cts +18 -0
- package/dist/genui-server-playwright.d.ts +18 -0
- package/dist/genui-server-playwright.js +162 -0
- package/dist/genui-server-playwright.js.map +1 -0
- package/dist/genui-server.cjs +188 -0
- package/dist/genui-server.cjs.map +1 -0
- package/dist/genui-server.d.cts +36 -0
- package/dist/genui-server.d.ts +36 -0
- package/dist/genui-server.js +163 -0
- package/dist/genui-server.js.map +1 -0
- package/dist/genui.cjs +127 -8
- package/dist/genui.cjs.map +1 -1
- package/dist/genui.d.cts +5 -2
- package/dist/genui.d.ts +5 -2
- package/dist/genui.js +128 -8
- package/dist/genui.js.map +1 -1
- package/dist/index.cjs +559 -123
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +35 -10
- package/dist/index.d.ts +35 -10
- package/dist/index.js +552 -120
- package/dist/index.js.map +1 -1
- 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.map +1 -1
- package/dist/react-registry-Di4IVrw-.d.cts +25 -0
- package/dist/react-registry-z9GFbTm9.d.ts +25 -0
- package/dist/types-DZtFsWec.d.cts +99 -0
- package/dist/types-DZtFsWec.d.ts +99 -0
- package/package.json +35 -5
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
|
|
3
|
+
/** The `ui` frame component a composed tree is pushed under (`GENUI_TREE_COMPONENT` of `@dudousxd/nestjs-agent-core/genui`). */
|
|
4
|
+
declare const GENUI_TREE_COMPONENT = "genui:tree";
|
|
5
|
+
/** One pushed component, normalized from whatever carried it (a transcript block, a `data-ui` part, a stored entry). */
|
|
6
|
+
interface GenerativeUIItem {
|
|
7
|
+
fallbackText?: string;
|
|
8
|
+
componentVersions?: Record<string, number>;
|
|
9
|
+
id: string;
|
|
10
|
+
component: string;
|
|
11
|
+
props: Record<string, unknown>;
|
|
12
|
+
version: number | null;
|
|
13
|
+
toolCallId: string | null;
|
|
14
|
+
}
|
|
15
|
+
/** A node of a composed tree (`genui:tree` frames): `{ type, props, children? }`. */
|
|
16
|
+
interface GenerativeUIElement {
|
|
17
|
+
type: string;
|
|
18
|
+
props: Record<string, unknown>;
|
|
19
|
+
children?: GenerativeUIElement[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* An app's renderer for one component: it receives the component's props spread, plus `children`
|
|
23
|
+
* when it is a layout node in a tree. Any React component — the library never styles anything.
|
|
24
|
+
*/
|
|
25
|
+
type GenuiRenderer<P = any> = ComponentType<P & {
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
}>;
|
|
28
|
+
/** Component name → the app's renderer. */
|
|
29
|
+
type GenuiRegistry = Record<string, GenuiRenderer>;
|
|
30
|
+
/**
|
|
31
|
+
* Resolve a component the registry does not have — typically a tenant's own component, fetched for
|
|
32
|
+
* the exact `version` a message was rendered with. Return `null`/`undefined` for "no such
|
|
33
|
+
* component". May be async; results are cached per resolver, name and version.
|
|
34
|
+
*/
|
|
35
|
+
type ResolveComponent = (name: string, version: number | null) => GenuiRenderer | null | undefined | Promise<GenuiRenderer | null | undefined>;
|
|
36
|
+
interface GenuiIssueLike {
|
|
37
|
+
path: (string | number)[];
|
|
38
|
+
message: string;
|
|
39
|
+
}
|
|
40
|
+
type ValidationLike = {
|
|
41
|
+
ok: true;
|
|
42
|
+
value: Record<string, unknown>;
|
|
43
|
+
} | {
|
|
44
|
+
ok: false;
|
|
45
|
+
issues: GenuiIssueLike[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* What the renderer needs from a catalog to validate props before drawing them. A `Catalog` from
|
|
49
|
+
* `@dudousxd/nestjs-agent-core/genui` satisfies it; declared structurally so any catalog-shaped
|
|
50
|
+
* object does too.
|
|
51
|
+
*/
|
|
52
|
+
interface GenuiCatalogLike {
|
|
53
|
+
get?(name: string): {
|
|
54
|
+
version?: number;
|
|
55
|
+
} | undefined;
|
|
56
|
+
has(name: string): boolean;
|
|
57
|
+
validate(name: string, props: unknown): Promise<ValidationLike>;
|
|
58
|
+
validateSync?(name: string, props: unknown): ValidationLike | undefined;
|
|
59
|
+
}
|
|
60
|
+
interface GenerativeUIOptions {
|
|
61
|
+
registry: GenuiRegistry;
|
|
62
|
+
/** Validate props against it before rendering. Components the catalog does not know render unvalidated. */
|
|
63
|
+
catalog?: GenuiCatalogLike;
|
|
64
|
+
resolveComponent?: ResolveComponent;
|
|
65
|
+
/**
|
|
66
|
+
* Draws a composed tree frame (`genui:tree`) whole — e.g. through json-render (see the
|
|
67
|
+
* `/genui/json-render` subpath's `GenuiProvider`). Omitted → trees render node by node through
|
|
68
|
+
* `registry`.
|
|
69
|
+
*/
|
|
70
|
+
treeRenderer?: GenuiRenderer<{
|
|
71
|
+
root?: GenerativeUIElement;
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
74
|
+
/** Why an item did not render. */
|
|
75
|
+
type GenerativeUIProblem = {
|
|
76
|
+
reason: 'unknown';
|
|
77
|
+
item: GenerativeUIItem;
|
|
78
|
+
} | {
|
|
79
|
+
reason: 'invalid';
|
|
80
|
+
item: GenerativeUIItem;
|
|
81
|
+
issues: GenuiIssueLike[];
|
|
82
|
+
} | {
|
|
83
|
+
reason: 'error';
|
|
84
|
+
item: GenerativeUIItem;
|
|
85
|
+
error: unknown;
|
|
86
|
+
};
|
|
87
|
+
type GenerativeUIState = {
|
|
88
|
+
status: 'ready';
|
|
89
|
+
item: GenerativeUIItem;
|
|
90
|
+
Component: GenuiRenderer;
|
|
91
|
+
props: Record<string, unknown>;
|
|
92
|
+
} | {
|
|
93
|
+
status: 'loading';
|
|
94
|
+
item: GenerativeUIItem;
|
|
95
|
+
} | ({
|
|
96
|
+
status: 'problem';
|
|
97
|
+
} & GenerativeUIProblem);
|
|
98
|
+
|
|
99
|
+
export { type GenerativeUIItem as G, type ResolveComponent as R, GENUI_TREE_COMPONENT as a, type GenerativeUIElement as b, type GenerativeUIOptions as c, type GenerativeUIProblem as d, type GenerativeUIState as e, type GenuiCatalogLike as f, type GenuiIssueLike as g, type GenuiRegistry as h, type GenuiRenderer as i };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dudousxd/nestjs-agent-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.34.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/DavideCarvalho/nestjs-agent.git",
|
|
@@ -77,13 +77,33 @@
|
|
|
77
77
|
"types": "./dist/media.d.cts",
|
|
78
78
|
"default": "./dist/media.cjs"
|
|
79
79
|
}
|
|
80
|
+
},
|
|
81
|
+
"./genui/server": {
|
|
82
|
+
"import": {
|
|
83
|
+
"types": "./dist/genui-server.d.ts",
|
|
84
|
+
"default": "./dist/genui-server.js"
|
|
85
|
+
},
|
|
86
|
+
"require": {
|
|
87
|
+
"types": "./dist/genui-server.d.cts",
|
|
88
|
+
"default": "./dist/genui-server.cjs"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"./genui/server/playwright": {
|
|
92
|
+
"import": {
|
|
93
|
+
"types": "./dist/genui-server-playwright.d.ts",
|
|
94
|
+
"default": "./dist/genui-server-playwright.js"
|
|
95
|
+
},
|
|
96
|
+
"require": {
|
|
97
|
+
"types": "./dist/genui-server-playwright.d.cts",
|
|
98
|
+
"default": "./dist/genui-server-playwright.cjs"
|
|
99
|
+
}
|
|
80
100
|
}
|
|
81
101
|
},
|
|
82
102
|
"files": [
|
|
83
103
|
"dist"
|
|
84
104
|
],
|
|
85
105
|
"dependencies": {
|
|
86
|
-
"@dudousxd/nestjs-agent-core": "0.
|
|
106
|
+
"@dudousxd/nestjs-agent-core": "0.41.0"
|
|
87
107
|
},
|
|
88
108
|
"peerDependencies": {
|
|
89
109
|
"@ai-sdk/react": "^4.0.0",
|
|
@@ -96,13 +116,15 @@
|
|
|
96
116
|
"katex": "^0.16.45",
|
|
97
117
|
"prism-react-renderer": "^2.4.1",
|
|
98
118
|
"react": ">=18",
|
|
119
|
+
"react-dom": ">=18",
|
|
99
120
|
"react-markdown": "^10.1.0",
|
|
100
121
|
"rehype-katex": "^7.0.1",
|
|
101
122
|
"rehype-sanitize": "^6.0.0",
|
|
102
123
|
"remark-gfm": "^4.0.1",
|
|
103
124
|
"remark-math": "^6.0.0",
|
|
104
125
|
"streamdown": "^2.5.0",
|
|
105
|
-
"unist-util-visit": "^5.1.0"
|
|
126
|
+
"unist-util-visit": "^5.1.0",
|
|
127
|
+
"playwright-core": ">=1.48 <2"
|
|
106
128
|
},
|
|
107
129
|
"peerDependenciesMeta": {
|
|
108
130
|
"@dudousxd/nestjs-media-client": {
|
|
@@ -146,6 +168,12 @@
|
|
|
146
168
|
},
|
|
147
169
|
"unist-util-visit": {
|
|
148
170
|
"optional": true
|
|
171
|
+
},
|
|
172
|
+
"react-dom": {
|
|
173
|
+
"optional": true
|
|
174
|
+
},
|
|
175
|
+
"playwright-core": {
|
|
176
|
+
"optional": true
|
|
149
177
|
}
|
|
150
178
|
},
|
|
151
179
|
"devDependencies": {
|
|
@@ -154,14 +182,16 @@
|
|
|
154
182
|
"@json-render/core": "0.21.0",
|
|
155
183
|
"@json-render/react": "0.21.0",
|
|
156
184
|
"@streamdown/code": "1.1.1",
|
|
157
|
-
"@streamdown/math": "1.0.
|
|
158
|
-
"@streamdown/mermaid": "1.0.
|
|
185
|
+
"@streamdown/math": "1.0.3",
|
|
186
|
+
"@streamdown/mermaid": "1.0.3",
|
|
159
187
|
"@testing-library/dom": "10.4.2",
|
|
160
188
|
"@testing-library/react": "16.3.3",
|
|
161
189
|
"@types/react": "19.3.0",
|
|
190
|
+
"@types/react-dom": "19.3.0",
|
|
162
191
|
"ai": "7.0.16",
|
|
163
192
|
"jsdom": "26.1.0",
|
|
164
193
|
"katex": "0.16.45",
|
|
194
|
+
"playwright-core": "^1.63.0",
|
|
165
195
|
"prism-react-renderer": "2.4.1",
|
|
166
196
|
"react": "19.3.0",
|
|
167
197
|
"react-dom": "19.3.0",
|