@datalayer/agent-runtimes 1.3.65 → 1.3.66
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
|
+
import { createContext, memo, useContext, useEffect, useMemo, useRef, useState, } from 'react';
|
|
3
3
|
import { BaseEdge, EdgeLabelRenderer, Handle, Position, ReactFlow, } from '@xyflow/react';
|
|
4
4
|
import '@xyflow/react/dist/base.css';
|
|
5
5
|
import { Button, Label, Text } from '@primer/react';
|
|
@@ -21,9 +21,20 @@ const HANDLE = (size) => ({
|
|
|
21
21
|
minHeight: 0,
|
|
22
22
|
border: 0,
|
|
23
23
|
});
|
|
24
|
+
/**
|
|
25
|
+
* The members as they are now, by id. Not in the nodes' data: a node whose
|
|
26
|
+
* object changes is taken by React Flow for a new one, measured again, and
|
|
27
|
+
* the edge is dropped until it is — the line vanished as the characters
|
|
28
|
+
* moved. The nodes stay the same objects; what they show is read from here.
|
|
29
|
+
*/
|
|
30
|
+
const Members = createContext({});
|
|
24
31
|
const MemberNode = memo(function MemberNode({ data, }) {
|
|
25
|
-
const {
|
|
32
|
+
const { id, side, size } = data;
|
|
33
|
+
const member = useContext(Members)[id];
|
|
26
34
|
const stageRef = useRef(null);
|
|
35
|
+
if (!member) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
27
38
|
const { persona } = member;
|
|
28
39
|
return (_jsxs(Box
|
|
29
40
|
// React Flow lets the pointer through a node that is neither dragged
|
|
@@ -123,7 +134,7 @@ export function A2ATeamGraph({ entry, peer, flow, connected, label = 'A2A', size
|
|
|
123
134
|
selectable: false,
|
|
124
135
|
// Above the edge and its label: a balloon overflows its node.
|
|
125
136
|
zIndex: 10,
|
|
126
|
-
data: {
|
|
137
|
+
data: { id: entry.id, side: 'left', size },
|
|
127
138
|
},
|
|
128
139
|
{
|
|
129
140
|
id: peer.id,
|
|
@@ -134,9 +145,10 @@ export function A2ATeamGraph({ entry, peer, flow, connected, label = 'A2A', size
|
|
|
134
145
|
draggable: false,
|
|
135
146
|
selectable: false,
|
|
136
147
|
zIndex: 10,
|
|
137
|
-
data: {
|
|
148
|
+
data: { id: peer.id, side: 'right', size },
|
|
138
149
|
},
|
|
139
|
-
], [entry, peer, size, memberHeight]);
|
|
150
|
+
], [entry.id, peer.id, size, memberHeight]);
|
|
151
|
+
const members = useMemo(() => ({ [entry.id]: entry, [peer.id]: peer }), [entry, peer]);
|
|
140
152
|
const words = flowWords(flow, entry.name, peer.name);
|
|
141
153
|
const edges = useMemo(() => [
|
|
142
154
|
{
|
|
@@ -185,6 +197,6 @@ export function A2ATeamGraph({ entry, peer, flow, connected, label = 'A2A', size
|
|
|
185
197
|
overflow: 'hidden',
|
|
186
198
|
clip: 'rect(0 0 0 0)',
|
|
187
199
|
whiteSpace: 'nowrap',
|
|
188
|
-
}, children: words }), _jsx(ReactFlow, { nodes: nodes, edges: edges, nodeTypes: NODE_TYPES, edgeTypes: EDGE_TYPES, viewport: viewport, nodesDraggable: false, nodesConnectable: false, nodesFocusable: false, edgesFocusable: false, elementsSelectable: false, deleteKeyCode: null, selectionKeyCode: null, multiSelectionKeyCode: null, panOnDrag: false, panOnScroll: false, zoomOnScroll: false, zoomOnPinch: false, zoomOnDoubleClick: false, preventScrolling: false, style: { overflow: 'visible', background: 'transparent' }, "aria-label": `${entry.name} and ${peer.name}, over A2A` })] }));
|
|
200
|
+
}, children: words }), _jsx(Members.Provider, { value: members, children: _jsx(ReactFlow, { nodes: nodes, edges: edges, nodeTypes: NODE_TYPES, edgeTypes: EDGE_TYPES, viewport: viewport, nodesDraggable: false, nodesConnectable: false, nodesFocusable: false, edgesFocusable: false, elementsSelectable: false, deleteKeyCode: null, selectionKeyCode: null, multiSelectionKeyCode: null, panOnDrag: false, panOnScroll: false, zoomOnScroll: false, zoomOnPinch: false, zoomOnDoubleClick: false, preventScrolling: false, style: { overflow: 'visible', background: 'transparent' }, "aria-label": `${entry.name} and ${peer.name}, over A2A` }) })] }));
|
|
189
201
|
}
|
|
190
202
|
export default A2ATeamGraph;
|