@adonis-agora/agent 0.66.0 → 0.67.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/CHANGELOG.md +14 -0
- package/dist/src/channels/handler.d.ts +44 -0
- package/dist/src/channels/handler.d.ts.map +1 -1
- package/dist/src/channels/handler.js +53 -9
- package/dist/src/channels/handler.js.map +1 -1
- package/dist/src/channels/index.d.ts +1 -1
- package/dist/src/channels/index.d.ts.map +1 -1
- package/dist/src/channels/index.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/react/core/approvals/use-action-proposals.d.ts +7 -0
- package/dist/src/react/core/approvals/use-action-proposals.d.ts.map +1 -1
- package/dist/src/react/core/approvals/use-action-proposals.js +54 -8
- package/dist/src/react/core/approvals/use-action-proposals.js.map +1 -1
- package/dist/src/react/core/genui/generative-ui.d.ts +3 -0
- package/dist/src/react/core/genui/generative-ui.d.ts.map +1 -1
- package/dist/src/react/core/genui/generative-ui.js +55 -35
- package/dist/src/react/core/genui/generative-ui.js.map +1 -1
- package/dist/src/react/core/genui/share-structure.d.ts +13 -0
- package/dist/src/react/core/genui/share-structure.d.ts.map +1 -0
- package/dist/src/react/core/genui/share-structure.js +49 -0
- package/dist/src/react/core/genui/share-structure.js.map +1 -0
- package/dist/src/react/core/transcript/use-chat-transcript.d.ts.map +1 -1
- package/dist/src/react/core/transcript/use-chat-transcript.js +15 -2
- package/dist/src/react/core/transcript/use-chat-transcript.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-setup/SKILL.md +1 -0
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { proposalNeedsPolling, reconcileProposalMessages } from './proposals.js';
|
|
3
|
+
/** Statuses meaning the server has no proposals route, rather than that this read failed. */
|
|
4
|
+
const UNSUPPORTED_STATUSES = new Set([404, 405, 501]);
|
|
5
|
+
/** What the libraries' own route answers for a thread it does not know (yet): not "unsupported". */
|
|
6
|
+
const UNKNOWN_THREAD = new Set(['Thread not found', 'Unknown thread']);
|
|
7
|
+
/** The longest wait between two reads after failed ones (the wait doubles per failure). */
|
|
8
|
+
const MAX_BACKOFF_MS = 30_000;
|
|
9
|
+
/** Backends whose server answered that it serves no proposals — for the rest of the session. */
|
|
10
|
+
const unsupportedBackends = new WeakSet();
|
|
11
|
+
function statusOf(cause) {
|
|
12
|
+
const status = cause?.status;
|
|
13
|
+
return typeof status === 'number' ? status : undefined;
|
|
14
|
+
}
|
|
15
|
+
/** `cause` says the proposals route is not there at all (not a transient failure of one read). */
|
|
16
|
+
export function isProposalsUnsupported(cause) {
|
|
17
|
+
const status = statusOf(cause);
|
|
18
|
+
if (status === undefined || !UNSUPPORTED_STATUSES.has(status))
|
|
19
|
+
return false;
|
|
20
|
+
return !(status === 404 && cause instanceof Error && UNKNOWN_THREAD.has(cause.message));
|
|
21
|
+
}
|
|
3
22
|
export function useActionProposals(backend, threadId, setMessages, refreshKey, pollMs = 1000) {
|
|
4
23
|
const [items, setItems] = useState([]);
|
|
5
24
|
const [error, setError] = useState(null);
|
|
25
|
+
const [unsupported, setUnsupported] = useState(() => unsupportedBackends.has(backend));
|
|
26
|
+
// Reads that failed in a row: each one doubles the wait before the next poll.
|
|
27
|
+
const [failures, setFailures] = useState(0);
|
|
6
28
|
const latest = useRef({ threadId, setMessages });
|
|
7
29
|
latest.current = { threadId, setMessages };
|
|
8
30
|
const mounted = useRef(true);
|
|
@@ -16,6 +38,8 @@ export function useActionProposals(backend, threadId, setMessages, refreshKey, p
|
|
|
16
38
|
const refresh = useCallback(async () => {
|
|
17
39
|
if (threadId === undefined || backend.listActionProposals === undefined)
|
|
18
40
|
return;
|
|
41
|
+
if (unsupportedBackends.has(backend))
|
|
42
|
+
return;
|
|
19
43
|
const pending = requests.current.get(threadId);
|
|
20
44
|
if (pending)
|
|
21
45
|
return pending;
|
|
@@ -32,11 +56,23 @@ export function useActionProposals(backend, threadId, setMessages, refreshKey, p
|
|
|
32
56
|
return;
|
|
33
57
|
setItems(proposals);
|
|
34
58
|
setError(null);
|
|
59
|
+
setFailures(0);
|
|
35
60
|
latest.current.setMessages((current) => reconcileProposalMessages(current, proposals, facts));
|
|
36
61
|
}
|
|
37
62
|
catch (cause) {
|
|
38
|
-
if (
|
|
63
|
+
if (isProposalsUnsupported(cause)) {
|
|
64
|
+
// Not this read failing: the server has no such route. Stop asking, quietly.
|
|
65
|
+
unsupportedBackends.add(backend);
|
|
66
|
+
if (mounted.current) {
|
|
67
|
+
setUnsupported(true);
|
|
68
|
+
setError(null);
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (mounted.current && latest.current.threadId === threadId) {
|
|
39
73
|
setError(cause instanceof Error ? cause : new Error(String(cause)));
|
|
74
|
+
setFailures((count) => count + 1);
|
|
75
|
+
}
|
|
40
76
|
}
|
|
41
77
|
})();
|
|
42
78
|
requests.current.set(threadId, request);
|
|
@@ -51,20 +87,30 @@ export function useActionProposals(backend, threadId, setMessages, refreshKey, p
|
|
|
51
87
|
useEffect(() => {
|
|
52
88
|
setItems([]);
|
|
53
89
|
setError(null);
|
|
90
|
+
setFailures(0);
|
|
54
91
|
}, [threadId]);
|
|
92
|
+
// A backend another chat already found unsupported (or a new backend that may not be).
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
setUnsupported(unsupportedBackends.has(backend));
|
|
95
|
+
}, [backend]);
|
|
55
96
|
// biome-ignore lint/correctness/useExhaustiveDependencies: Stream completion/reconnection triggers a scoped read.
|
|
56
97
|
useEffect(() => {
|
|
57
98
|
void refresh();
|
|
58
99
|
}, [refresh, refreshKey]);
|
|
100
|
+
// One read per wait while a proposal is still moving; every read (its new `items`, or one more
|
|
101
|
+
// failure) schedules the next. Failed reads back off: pollMs, ×2, ×4, … up to 30 s.
|
|
59
102
|
useEffect(() => {
|
|
60
|
-
if (!items.some(proposalNeedsPolling) || pollMs <= 0)
|
|
103
|
+
if (unsupported || !items.some(proposalNeedsPolling) || pollMs <= 0)
|
|
61
104
|
return;
|
|
62
|
-
const
|
|
105
|
+
const wait = failures === 0 ? pollMs : Math.min(pollMs * 2 ** failures, MAX_BACKOFF_MS);
|
|
106
|
+
const timer = setTimeout(() => {
|
|
63
107
|
void refresh();
|
|
64
|
-
},
|
|
65
|
-
return () =>
|
|
66
|
-
}, [items, pollMs, refresh]);
|
|
108
|
+
}, wait);
|
|
109
|
+
return () => clearTimeout(timer);
|
|
110
|
+
}, [items, failures, unsupported, pollMs, refresh]);
|
|
67
111
|
useEffect(() => {
|
|
112
|
+
if (unsupported)
|
|
113
|
+
return;
|
|
68
114
|
const refetch = () => {
|
|
69
115
|
void refresh();
|
|
70
116
|
};
|
|
@@ -80,7 +126,7 @@ export function useActionProposals(backend, threadId, setMessages, refreshKey, p
|
|
|
80
126
|
window.removeEventListener('online', refetch);
|
|
81
127
|
document.removeEventListener('visibilitychange', visible);
|
|
82
128
|
};
|
|
83
|
-
}, [refresh]);
|
|
84
|
-
return { items, error, refresh };
|
|
129
|
+
}, [refresh, unsupported]);
|
|
130
|
+
return { items, error, unsupported, refresh };
|
|
85
131
|
}
|
|
86
132
|
//# sourceMappingURL=use-action-proposals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-action-proposals.js","sourceRoot":"","sources":["../../../../../src/react/core/approvals/use-action-proposals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-action-proposals.js","sourceRoot":"","sources":["../../../../../src/react/core/approvals/use-action-proposals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAajF,6FAA6F;AAC7F,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,oGAAoG;AACpG,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACvE,2FAA2F;AAC3F,MAAM,cAAc,GAAG,MAAM,CAAC;AAE9B,gGAAgG;AAChG,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAU,CAAC;AAElD,SAAS,QAAQ,CAAC,KAAc;IAC9B,MAAM,MAAM,GAAI,KAAqC,EAAE,MAAM,CAAC;IAC9D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,OAAO,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,YAAY,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAqB,EACrB,QAA4B,EAC5B,WAAoE,EACpE,UAAkB,EAClB,MAAM,GAAG,IAAI;IAEb,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,EAAyB,CAAC,CAAC;IAC1D,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,mBAAmB,KAAK,SAAS;YAAE,OAAO;QAChF,IAAI,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;oBACvF,OAAO;gBACT,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAC7B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,KAAK,UAAU,CAC9D,CAAC;gBACF,MAAM,KAAK,GAAG,QAAQ;oBACpB,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CACjD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,KAAK,SAAS,CACzD;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;oBAAE,OAAO;gBACrE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,WAAW,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CACrC,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CACrD,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,6EAA6E;oBAC7E,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,cAAc,CAAC,IAAI,CAAC,CAAC;wBACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC5D,QAAQ,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpE,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxB,2GAA2G;IAC3G,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,WAAW,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACf,uFAAuF;IACvF,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,kHAAkH;IAClH,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,OAAO,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1B,+FAA+F;IAC/F,oFAAoF;IACpF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,MAAM,IAAI,CAAC;YAAE,OAAO;QAC5E,MAAM,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,cAAc,CAAC,CAAC;QACxF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,KAAK,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,KAAK,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;QACxD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC3C,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9C,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -20,6 +20,9 @@ export declare function useGenuiNode(): GenuiNodeState | null;
|
|
|
20
20
|
* Renders a `genui:tree` frame's `{ root }` node by node through the same registry, catalog and
|
|
21
21
|
* resolver as top-level components. Used automatically for tree frames unless a `treeRenderer`
|
|
22
22
|
* (e.g. the json-render one) or a registry entry for `genui:tree` takes over.
|
|
23
|
+
*
|
|
24
|
+
* Each frame's tree is structurally shared with the previous one: a node equal to the one before
|
|
25
|
+
* keeps that object, and its renderer does not run again.
|
|
23
26
|
*/
|
|
24
27
|
export declare function GenuiTree({ root }: {
|
|
25
28
|
root?: GenerativeUIElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generative-ui.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/genui/generative-ui.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"generative-ui.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/genui/generative-ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Component, createContext, useCallback, useContext, useMemo, } from 'react';
|
|
2
|
+
import { Component, createContext, memo, useCallback, useContext, useMemo, useRef, } from 'react';
|
|
3
3
|
import { AmbientRenderUiContext, sharedContext } from '../components/ambient-ui.js';
|
|
4
|
+
import { shareStructure } from './share-structure.js';
|
|
4
5
|
import { useGenerativeUIState, useResolvedComponent, useValidatedProps, } from './use-generative-ui.js';
|
|
5
6
|
const TreeScopeContext = createContext(null);
|
|
6
7
|
// Shared by key, like the provider's: a renderer imports the hook from `/genui` while the tree may
|
|
@@ -21,11 +22,11 @@ const GenuiNodeContext = sharedContext('@adonis-agora/agent/react:genui-node');
|
|
|
21
22
|
export function useGenuiNode() {
|
|
22
23
|
return useContext(GenuiNodeContext);
|
|
23
24
|
}
|
|
24
|
-
function renderPlaceholder(
|
|
25
|
-
const { placeholder } =
|
|
25
|
+
function renderPlaceholder(look, node) {
|
|
26
|
+
const { placeholder } = look;
|
|
26
27
|
if (typeof placeholder === 'function')
|
|
27
28
|
return placeholder(node);
|
|
28
|
-
return placeholder !== undefined ? placeholder :
|
|
29
|
+
return placeholder !== undefined ? placeholder : look.loading;
|
|
29
30
|
}
|
|
30
31
|
function renderFallback(fallback, problem) {
|
|
31
32
|
if (typeof fallback === 'function')
|
|
@@ -63,10 +64,28 @@ class ItemBoundary extends Component {
|
|
|
63
64
|
function nodeItem(node, id) {
|
|
64
65
|
return { id, component: node.type, props: node.props ?? {}, version: null, toolCallId: null };
|
|
65
66
|
}
|
|
66
|
-
/**
|
|
67
|
-
function
|
|
67
|
+
/** A failing node takes the whole tree to the item's fallback text — no fallback of its own given. */
|
|
68
|
+
function failsWhole(scope) {
|
|
69
|
+
return !scope.hasFallback && scope.fallbackText !== undefined;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* One tree node, re-rendered only when its node is a different object (or the scope changed).
|
|
73
|
+
* {@link GenuiTree} keeps an unchanged node the same object from frame to frame, so as a preview
|
|
74
|
+
* streams in only the nodes that grew — and their ancestors — render again; a node turning from
|
|
75
|
+
* `incomplete`/`held` to final is a changed node and renders.
|
|
76
|
+
*/
|
|
77
|
+
const TreeNode = memo(function TreeNode({ node, id, bounded }) {
|
|
68
78
|
const scope = useContext(TreeScopeContext);
|
|
69
79
|
const item = useMemo(() => nodeItem(node, id), [node, id]);
|
|
80
|
+
if (scope === null)
|
|
81
|
+
return null;
|
|
82
|
+
if (!bounded || failsWhole(scope))
|
|
83
|
+
return _jsx(TreeNodeBody, { node: node, id: id, item: item });
|
|
84
|
+
return (_jsx(ItemBoundary, { item: item, fallback: scope.look.current.fallback, onError: scope.look.current.onError, children: _jsx(TreeNodeBody, { node: node, id: id, item: item }) }));
|
|
85
|
+
}, (previous, next) => previous.node === next.node && previous.id === next.id && previous.bounded === next.bounded);
|
|
86
|
+
/** A tree node resolved and validated like a top-level item, children rendered as its `children`. */
|
|
87
|
+
function TreeNodeBody({ node, id, item, }) {
|
|
88
|
+
const scope = useContext(TreeScopeContext);
|
|
70
89
|
// A node of a preview the model is still writing: its props are half there, so they are not
|
|
71
90
|
// validated (the final frame is) — the renderer is told instead, through `useGenuiNode`.
|
|
72
91
|
const incomplete = node.incomplete === true;
|
|
@@ -81,34 +100,33 @@ function TreeNode({ node, id }) {
|
|
|
81
100
|
const validation = useValidatedProps(incompatible || incomplete ? undefined : scope?.options.catalog, node.type, item.props);
|
|
82
101
|
if (scope === null)
|
|
83
102
|
return null;
|
|
103
|
+
const look = scope.look.current;
|
|
84
104
|
if (held) {
|
|
85
|
-
return (_jsx(GenuiNodeContext.Provider, { value: state, children: renderPlaceholder(
|
|
105
|
+
return (_jsx(GenuiNodeContext.Provider, { value: state, children: renderPlaceholder(look, state) }));
|
|
86
106
|
}
|
|
87
107
|
if (resolution.status === 'loading' || validation.status === 'pending')
|
|
88
|
-
return
|
|
108
|
+
return look.loading;
|
|
89
109
|
if (resolution.status === 'unknown') {
|
|
90
|
-
if (scope
|
|
110
|
+
if (failsWhole(scope))
|
|
91
111
|
throw new Error('Unknown tree component');
|
|
92
|
-
return renderFallback(
|
|
112
|
+
return renderFallback(look.fallback, { reason: 'unknown', item });
|
|
93
113
|
}
|
|
94
114
|
if (resolution.status === 'error') {
|
|
95
|
-
if (scope
|
|
115
|
+
if (failsWhole(scope))
|
|
96
116
|
throw resolution.error;
|
|
97
|
-
return renderFallback(
|
|
117
|
+
return renderFallback(look.fallback, { reason: 'error', item, error: resolution.error });
|
|
98
118
|
}
|
|
99
119
|
if (validation.status === 'invalid') {
|
|
100
|
-
if (scope
|
|
120
|
+
if (failsWhole(scope))
|
|
101
121
|
throw new Error('Invalid tree component');
|
|
102
|
-
return renderFallback(
|
|
122
|
+
return renderFallback(look.fallback, { reason: 'invalid', item, issues: validation.issues });
|
|
103
123
|
}
|
|
104
124
|
const Renderer = resolution.Component;
|
|
105
125
|
const children = Array.isArray(node.children) ? node.children : [];
|
|
106
126
|
return (_jsx(GenuiNodeContext.Provider, { value: state, children: _jsx(Renderer, { ...validation.props, children: children.length > 0
|
|
107
127
|
? children.map((child, index) => {
|
|
108
128
|
const childId = `${id}.${index}`;
|
|
109
|
-
|
|
110
|
-
return _jsx(TreeNode, { node: child, id: childId }, childId);
|
|
111
|
-
return (_jsx(ItemBoundary, { item: nodeItem(child, childId), fallback: scope.fallback, onError: scope.onError, children: _jsx(TreeNode, { node: child, id: childId }) }, childId));
|
|
129
|
+
return _jsx(TreeNode, { node: child, id: childId, bounded: true }, childId);
|
|
112
130
|
})
|
|
113
131
|
: undefined }) }));
|
|
114
132
|
}
|
|
@@ -116,40 +134,42 @@ function TreeNode({ node, id }) {
|
|
|
116
134
|
* Renders a `genui:tree` frame's `{ root }` node by node through the same registry, catalog and
|
|
117
135
|
* resolver as top-level components. Used automatically for tree frames unless a `treeRenderer`
|
|
118
136
|
* (e.g. the json-render one) or a registry entry for `genui:tree` takes over.
|
|
137
|
+
*
|
|
138
|
+
* Each frame's tree is structurally shared with the previous one: a node equal to the one before
|
|
139
|
+
* keeps that object, and its renderer does not run again.
|
|
119
140
|
*/
|
|
120
141
|
export function GenuiTree({ root }) {
|
|
121
|
-
|
|
142
|
+
const previous = useRef(undefined);
|
|
143
|
+
const valid = root !== undefined && root !== null && typeof root.type === 'string';
|
|
144
|
+
const shared = valid ? shareStructure(previous.current, root) : undefined;
|
|
145
|
+
previous.current = shared;
|
|
146
|
+
if (shared === undefined)
|
|
122
147
|
return null;
|
|
123
|
-
return _jsx(TreeNode, { node:
|
|
148
|
+
return _jsx(TreeNode, { node: shared, id: "root", bounded: false });
|
|
124
149
|
}
|
|
125
150
|
/**
|
|
126
151
|
* The registry, catalog and fallbacks tree nodes render with. `<GenerativeUI>` provides it; wrap
|
|
127
152
|
* your own chrome in it when you draw `useGenerativeUI`'s `Component` yourself and it may be a tree.
|
|
128
153
|
*/
|
|
129
154
|
export function GenerativeUIScope({ registry, catalog, resolveComponent, fallback, fallbackText, componentVersions, loading = null, placeholder, onError, children, }) {
|
|
155
|
+
// Read afresh from every frame of the item that carries them: kept the same object while equal.
|
|
156
|
+
const versionsRef = useRef(undefined);
|
|
157
|
+
const versions = shareStructure(versionsRef.current, componentVersions);
|
|
158
|
+
versionsRef.current = versions;
|
|
159
|
+
const look = useRef({ fallback, loading, placeholder, onError });
|
|
160
|
+
look.current = { fallback, loading, placeholder, onError };
|
|
161
|
+
const hasFallback = fallback !== undefined;
|
|
130
162
|
const scope = useMemo(() => ({
|
|
131
163
|
options: {
|
|
132
164
|
registry,
|
|
133
165
|
...(catalog !== undefined ? { catalog } : {}),
|
|
134
166
|
...(resolveComponent !== undefined ? { resolveComponent } : {}),
|
|
135
167
|
},
|
|
136
|
-
|
|
137
|
-
...(
|
|
168
|
+
hasFallback,
|
|
169
|
+
...(versions !== undefined ? { componentVersions: versions } : {}),
|
|
138
170
|
...(fallbackText !== undefined ? { fallbackText } : {}),
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
onError,
|
|
142
|
-
}), [
|
|
143
|
-
registry,
|
|
144
|
-
catalog,
|
|
145
|
-
resolveComponent,
|
|
146
|
-
fallback,
|
|
147
|
-
fallbackText,
|
|
148
|
-
componentVersions,
|
|
149
|
-
loading,
|
|
150
|
-
placeholder,
|
|
151
|
-
onError,
|
|
152
|
-
]);
|
|
171
|
+
look,
|
|
172
|
+
}), [registry, catalog, resolveComponent, hasFallback, fallbackText, versions]);
|
|
153
173
|
return _jsx(TreeScopeContext.Provider, { value: scope, children: children });
|
|
154
174
|
}
|
|
155
175
|
// Shared by key: `/genui` and `/genui/json-render` are separate bundles, and a provider from one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generative-ui.js","sourceRoot":"","sources":["../../../../../src/react/core/genui/generative-ui.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generative-ui.js","sourceRoot":"","sources":["../../../../../src/react/core/genui/generative-ui.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `next`, with every part structurally equal to the same part of `previous` replaced by that part
|
|
3
|
+
* of `previous` — `previous` itself when the two are equal throughout. Plain objects and arrays are
|
|
4
|
+
* compared member by member (arrays by position); anything else by `Object.is`.
|
|
5
|
+
*
|
|
6
|
+
* The chat reaches React as a fresh deep copy on every update (the AI SDK clones the streaming
|
|
7
|
+
* message on each chunk), so a pushed component's props and a tree's nodes are new objects on every
|
|
8
|
+
* token even when nothing in them changed. Run through this, an unchanged node keeps its identity
|
|
9
|
+
* and a memoized renderer skips it; a changed one (more props, `incomplete` → final) is new, and so
|
|
10
|
+
* is every ancestor of it, which is what re-renders.
|
|
11
|
+
*/
|
|
12
|
+
export declare function shareStructure<T>(previous: unknown, next: T): T;
|
|
13
|
+
//# sourceMappingURL=share-structure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-structure.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/genui/share-structure.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAyB/D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
function isPlainObject(value) {
|
|
2
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
3
|
+
return false;
|
|
4
|
+
const prototype = Object.getPrototypeOf(value);
|
|
5
|
+
return prototype === Object.prototype || prototype === null;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* `next`, with every part structurally equal to the same part of `previous` replaced by that part
|
|
9
|
+
* of `previous` — `previous` itself when the two are equal throughout. Plain objects and arrays are
|
|
10
|
+
* compared member by member (arrays by position); anything else by `Object.is`.
|
|
11
|
+
*
|
|
12
|
+
* The chat reaches React as a fresh deep copy on every update (the AI SDK clones the streaming
|
|
13
|
+
* message on each chunk), so a pushed component's props and a tree's nodes are new objects on every
|
|
14
|
+
* token even when nothing in them changed. Run through this, an unchanged node keeps its identity
|
|
15
|
+
* and a memoized renderer skips it; a changed one (more props, `incomplete` → final) is new, and so
|
|
16
|
+
* is every ancestor of it, which is what re-renders.
|
|
17
|
+
*/
|
|
18
|
+
export function shareStructure(previous, next) {
|
|
19
|
+
if (Object.is(previous, next))
|
|
20
|
+
return next;
|
|
21
|
+
if (Array.isArray(next)) {
|
|
22
|
+
if (!Array.isArray(previous))
|
|
23
|
+
return next;
|
|
24
|
+
let same = previous.length === next.length;
|
|
25
|
+
const shared = next.map((value, index) => {
|
|
26
|
+
const kept = shareStructure(previous[index], value);
|
|
27
|
+
if (kept !== previous[index])
|
|
28
|
+
same = false;
|
|
29
|
+
return kept;
|
|
30
|
+
});
|
|
31
|
+
return (same ? previous : shared);
|
|
32
|
+
}
|
|
33
|
+
if (isPlainObject(next)) {
|
|
34
|
+
if (!isPlainObject(previous))
|
|
35
|
+
return next;
|
|
36
|
+
const keys = Object.keys(next);
|
|
37
|
+
let same = keys.length === Object.keys(previous).length;
|
|
38
|
+
const shared = {};
|
|
39
|
+
for (const key of keys) {
|
|
40
|
+
const kept = shareStructure(previous[key], next[key]);
|
|
41
|
+
if (kept !== previous[key] || !Object.hasOwn(previous, key))
|
|
42
|
+
same = false;
|
|
43
|
+
shared[key] = kept;
|
|
44
|
+
}
|
|
45
|
+
return (same ? previous : shared);
|
|
46
|
+
}
|
|
47
|
+
return next;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=share-structure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-structure.js","sourceRoot":"","sources":["../../../../../src/react/core/genui/share-structure.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAI,QAAiB,EAAE,IAAO;IAC1D,IAAI,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YACpD,IAAI,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC;gBAAE,IAAI,GAAG,KAAK,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAM,CAAC;IACzC,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;gBAAE,IAAI,GAAG,KAAK,CAAC;YAC1E,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAM,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-chat-transcript.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/transcript/use-chat-transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-chat-transcript.d.ts","sourceRoot":"","sources":["../../../../../src/react/core/transcript/use-chat-transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { attachmentFile } from '../attachments/files.js';
|
|
3
3
|
import { requireBackendMethod } from '../backend.js';
|
|
4
|
+
import { shareStructure } from '../genui/share-structure.js';
|
|
4
5
|
import { useAgentBackend } from '../provider.js';
|
|
5
6
|
import { buildTranscriptBlocks, describeTimestamp, describeUsage, extractMessageText, } from './model.js';
|
|
6
7
|
import { useStickToBottom } from './use-stick-to-bottom.js';
|
|
@@ -181,6 +182,7 @@ function useTranscriptItems({ messages, visibleStart, streamingMessageId, option
|
|
|
181
182
|
}, []);
|
|
182
183
|
const callbackCache = useRef(new Map());
|
|
183
184
|
const reasoningToggleCache = useRef(new Map());
|
|
185
|
+
const uiBlocks = useRef(new Map());
|
|
184
186
|
const toggleReasoning = useCallback((key, open) => {
|
|
185
187
|
setOpenReasoning((current) => {
|
|
186
188
|
const next = new Map(current);
|
|
@@ -353,6 +355,16 @@ function useTranscriptItems({ messages, visibleStart, streamingMessageId, option
|
|
|
353
355
|
}, []);
|
|
354
356
|
const lastAssistantId = findLastAssistant(messages)?.id ?? null;
|
|
355
357
|
const items = [];
|
|
358
|
+
// Pushed components of the last render, by block key: an unchanged one keeps its object.
|
|
359
|
+
const previousUi = uiBlocks.current;
|
|
360
|
+
const keptUi = new Map();
|
|
361
|
+
const keepUiIdentity = (blocks) => blocks.map((block) => {
|
|
362
|
+
if (block.kind !== 'ui')
|
|
363
|
+
return block;
|
|
364
|
+
const kept = shareStructure(previousUi.get(block.key), block);
|
|
365
|
+
keptUi.set(block.key, kept);
|
|
366
|
+
return kept;
|
|
367
|
+
});
|
|
356
368
|
for (let index = visibleStart; index < messages.length; index++) {
|
|
357
369
|
const message = messages[index];
|
|
358
370
|
if (!message) {
|
|
@@ -375,7 +387,7 @@ function useTranscriptItems({ messages, visibleStart, streamingMessageId, option
|
|
|
375
387
|
isAssistant,
|
|
376
388
|
isLastAssistant,
|
|
377
389
|
isStreaming: message.id === streamingMessageId,
|
|
378
|
-
blocks: buildTranscriptBlocks(message, {
|
|
390
|
+
blocks: keepUiIdentity(buildTranscriptBlocks(message, {
|
|
379
391
|
isReasoningOpen: (key, isStreamingRun) => openReasoning.get(key) ?? isStreamingRun,
|
|
380
392
|
toggleReasoning: (key, open) => stableToggle(key)(open),
|
|
381
393
|
...(options.sources !== undefined ? { sources: options.sources } : {}),
|
|
@@ -410,7 +422,7 @@ function useTranscriptItems({ messages, visibleStart, streamingMessageId, option
|
|
|
410
422
|
},
|
|
411
423
|
}
|
|
412
424
|
: {}),
|
|
413
|
-
}),
|
|
425
|
+
})),
|
|
414
426
|
text,
|
|
415
427
|
usage: usage ? describeUsage(usage) : null,
|
|
416
428
|
timestamp: describeTimestamp((options.getCreatedAt ?? createdAtFromMetadata)(message)),
|
|
@@ -451,6 +463,7 @@ function useTranscriptItems({ messages, visibleStart, streamingMessageId, option
|
|
|
451
463
|
},
|
|
452
464
|
});
|
|
453
465
|
}
|
|
466
|
+
uiBlocks.current = keptUi;
|
|
454
467
|
return items;
|
|
455
468
|
}
|
|
456
469
|
/**
|