@axiom-lattice/react-sdk 8.3.0 → 8.3.1

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.
Files changed (53) hide show
  1. package/dist/{AgentDetailSideApp-YQS5GL7P.mjs → AgentDetailSideApp-SJOQVIJA.mjs} +7 -7
  2. package/dist/{AgentGovernanceWorkbench-KYHOZTRY.mjs → AgentGovernanceWorkbench-JN4JOAI3.mjs} +8 -8
  3. package/dist/{MessageGraph-WUWP2CE3.mjs → MessageGraph-NO5GCAAS.mjs} +4 -4
  4. package/dist/MessageGraph-NO5GCAAS.mjs.map +1 -0
  5. package/dist/{ReactChart-7WQQAQ73.mjs → ReactChart-E5LP5OCH.mjs} +2 -2
  6. package/dist/{TasksSideApp-IPFBRDSJ.mjs → TasksSideApp-OEGSZUES.mjs} +4 -4
  7. package/dist/{TopologyRuntimeView-WFMC2GME.mjs → TopologyRuntimeView-XT67VRZE.mjs} +4 -4
  8. package/dist/{WorkflowAutomationView-CZIAN5D7.mjs → WorkflowAutomationView-KBY5LCTI.mjs} +6 -6
  9. package/dist/{chunk-7FWCKQNB.mjs → chunk-3YVWKHQ2.mjs} +11 -7
  10. package/dist/{chunk-7FWCKQNB.mjs.map → chunk-3YVWKHQ2.mjs.map} +1 -1
  11. package/dist/{chunk-VSNPATWP.mjs → chunk-6TXR2BBE.mjs} +2 -2
  12. package/dist/{chunk-26OKWQ4A.mjs → chunk-DB5N7NLG.mjs} +4 -4
  13. package/dist/{chunk-32DXGO5I.mjs → chunk-GRJM72F2.mjs} +4 -4
  14. package/dist/{chunk-5RHFR3E7.mjs → chunk-R2FZW4U2.mjs} +36 -29
  15. package/dist/chunk-R2FZW4U2.mjs.map +1 -0
  16. package/dist/{chunk-WQ4VG47Y.mjs → chunk-VDJVKL3E.mjs} +3 -3
  17. package/dist/{chunk-QGHDHTJT.mjs → chunk-XYW2CARX.mjs} +2 -2
  18. package/dist/{chunk-A5M2ER2U.mjs → chunk-YUYCIJXJ.mjs} +1899 -1890
  19. package/dist/chunk-YUYCIJXJ.mjs.map +1 -0
  20. package/dist/{embed-page-AgentDetailSideApp-WDDE7BEH.js → embed-page-AgentDetailSideApp-7YTMN643.js} +1 -1
  21. package/dist/{embed-page-AgentGovernanceWorkbench-7YPU3QB2.js → embed-page-AgentGovernanceWorkbench-YWJ4ZLEV.js} +1 -1
  22. package/dist/embed-page-MessageGraph-N2DXVMEK.js +6 -0
  23. package/dist/{embed-page-ReactChart-D7RZQB2H.js → embed-page-ReactChart-3QDZX2WG.js} +1 -1
  24. package/dist/{embed-page-TasksSideApp-KD4S22SL.js → embed-page-TasksSideApp-MYIRJWFM.js} +1 -1
  25. package/dist/{embed-page-TopologyRuntimeView-Z7MY6U5T.js → embed-page-TopologyRuntimeView-3O6VJUZR.js} +1 -1
  26. package/dist/{embed-page-WorkflowAutomationView-4MY4HG7R.js → embed-page-WorkflowAutomationView-YHOS4WQR.js} +1 -1
  27. package/dist/{embed-page-chunk-GSUSX54K.js → embed-page-chunk-FE6KYRCO.js} +1 -1
  28. package/dist/{embed-page-chunk-CFFDP526.js → embed-page-chunk-IBRMWDHE.js} +184 -184
  29. package/dist/{embed-page-chunk-EM6VGUZ2.js → embed-page-chunk-IELKCYQX.js} +1 -1
  30. package/dist/{embed-page-chunk-BZKAPY7M.js → embed-page-chunk-JTL73EBV.js} +1 -1
  31. package/dist/{embed-page-chunk-G5MXFDNZ.js → embed-page-chunk-PROZXFWS.js} +1 -1
  32. package/dist/{embed-page-chunk-HZZ5HNTF.js → embed-page-chunk-WGEXK773.js} +2 -2
  33. package/dist/{embed-page-chunk-G5PDHDBZ.js → embed-page-chunk-YMVKQQXJ.js} +1 -1
  34. package/dist/embed-page.js +3 -3
  35. package/dist/index.js +833 -805
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.mjs +8 -8
  38. package/package.json +1 -1
  39. package/dist/MessageGraph-WUWP2CE3.mjs.map +0 -1
  40. package/dist/chunk-5RHFR3E7.mjs.map +0 -1
  41. package/dist/chunk-A5M2ER2U.mjs.map +0 -1
  42. package/dist/embed-page-MessageGraph-LNNMCH6I.js +0 -6
  43. /package/dist/{AgentDetailSideApp-YQS5GL7P.mjs.map → AgentDetailSideApp-SJOQVIJA.mjs.map} +0 -0
  44. /package/dist/{AgentGovernanceWorkbench-KYHOZTRY.mjs.map → AgentGovernanceWorkbench-JN4JOAI3.mjs.map} +0 -0
  45. /package/dist/{ReactChart-7WQQAQ73.mjs.map → ReactChart-E5LP5OCH.mjs.map} +0 -0
  46. /package/dist/{TasksSideApp-IPFBRDSJ.mjs.map → TasksSideApp-OEGSZUES.mjs.map} +0 -0
  47. /package/dist/{TopologyRuntimeView-WFMC2GME.mjs.map → TopologyRuntimeView-XT67VRZE.mjs.map} +0 -0
  48. /package/dist/{WorkflowAutomationView-CZIAN5D7.mjs.map → WorkflowAutomationView-KBY5LCTI.mjs.map} +0 -0
  49. /package/dist/{chunk-VSNPATWP.mjs.map → chunk-6TXR2BBE.mjs.map} +0 -0
  50. /package/dist/{chunk-26OKWQ4A.mjs.map → chunk-DB5N7NLG.mjs.map} +0 -0
  51. /package/dist/{chunk-32DXGO5I.mjs.map → chunk-GRJM72F2.mjs.map} +0 -0
  52. /package/dist/{chunk-WQ4VG47Y.mjs.map → chunk-VDJVKL3E.mjs.map} +0 -0
  53. /package/dist/{chunk-QGHDHTJT.mjs.map → chunk-XYW2CARX.mjs.map} +0 -0
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  AgentDetailView
3
- } from "./chunk-5RHFR3E7.mjs";
4
- import "./chunk-QGHDHTJT.mjs";
3
+ } from "./chunk-R2FZW4U2.mjs";
4
+ import "./chunk-XYW2CARX.mjs";
5
5
  import "./chunk-J37GWFPA.mjs";
6
- import "./chunk-VSNPATWP.mjs";
7
- import "./chunk-WQ4VG47Y.mjs";
8
- import "./chunk-7FWCKQNB.mjs";
6
+ import "./chunk-6TXR2BBE.mjs";
7
+ import "./chunk-VDJVKL3E.mjs";
8
+ import "./chunk-3YVWKHQ2.mjs";
9
9
  import "./chunk-XC6TB6PI.mjs";
10
10
  import "./chunk-XAGSG72Y.mjs";
11
11
  import {
12
12
  ProjectScopeProvider_default,
13
13
  useSideAppOpener
14
- } from "./chunk-A5M2ER2U.mjs";
14
+ } from "./chunk-YUYCIJXJ.mjs";
15
15
  import "./chunk-J53HT62X.mjs";
16
16
  import {
17
17
  useApi
@@ -162,4 +162,4 @@ var AgentDetailSideApp = ({ data }) => {
162
162
  export {
163
163
  AgentDetailSideApp
164
164
  };
165
- //# sourceMappingURL=AgentDetailSideApp-YQS5GL7P.mjs.map
165
+ //# sourceMappingURL=AgentDetailSideApp-SJOQVIJA.mjs.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  AgentGovernanceWorkbench
3
- } from "./chunk-32DXGO5I.mjs";
4
- import "./chunk-5RHFR3E7.mjs";
5
- import "./chunk-QGHDHTJT.mjs";
3
+ } from "./chunk-GRJM72F2.mjs";
4
+ import "./chunk-R2FZW4U2.mjs";
5
+ import "./chunk-XYW2CARX.mjs";
6
6
  import "./chunk-J37GWFPA.mjs";
7
- import "./chunk-VSNPATWP.mjs";
8
- import "./chunk-WQ4VG47Y.mjs";
9
- import "./chunk-7FWCKQNB.mjs";
7
+ import "./chunk-6TXR2BBE.mjs";
8
+ import "./chunk-VDJVKL3E.mjs";
9
+ import "./chunk-3YVWKHQ2.mjs";
10
10
  import "./chunk-XC6TB6PI.mjs";
11
11
  import "./chunk-XAGSG72Y.mjs";
12
- import "./chunk-A5M2ER2U.mjs";
12
+ import "./chunk-YUYCIJXJ.mjs";
13
13
  import "./chunk-J53HT62X.mjs";
14
14
  import "./chunk-3AO7CBZZ.mjs";
15
15
  import "./chunk-KX44YKCV.mjs";
@@ -21,4 +21,4 @@ import "./chunk-32GKV6EM.mjs";
21
21
  export {
22
22
  AgentGovernanceWorkbench
23
23
  };
24
- //# sourceMappingURL=AgentGovernanceWorkbench-KYHOZTRY.mjs.map
24
+ //# sourceMappingURL=AgentGovernanceWorkbench-JN4JOAI3.mjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  WorkflowGraphBase,
3
3
  applyDagreLayout
4
- } from "./chunk-7FWCKQNB.mjs";
4
+ } from "./chunk-3YVWKHQ2.mjs";
5
5
  import {
6
6
  Handle,
7
7
  Position,
@@ -17,7 +17,7 @@ import {
17
17
  collapseOlderPhases,
18
18
  formatToolName,
19
19
  toolResponseText
20
- } from "./chunk-A5M2ER2U.mjs";
20
+ } from "./chunk-YUYCIJXJ.mjs";
21
21
  import "./chunk-J53HT62X.mjs";
22
22
  import "./chunk-3AO7CBZZ.mjs";
23
23
  import "./chunk-KX44YKCV.mjs";
@@ -315,7 +315,7 @@ var MessageGraph = ({
315
315
  const actions = useMemo(() => ({ onJumpToMessage }), [onJumpToMessage]);
316
316
  return /* @__PURE__ */ jsxs3(TraceActionContext.Provider, { value: actions, children: [
317
317
  /* @__PURE__ */ jsx3("style", { children: TRACE_KEYFRAMES }),
318
- /* @__PURE__ */ jsxs3("div", { style: { display: "flex", height: "100%", minHeight: 0, width: "100%" }, children: [
318
+ /* @__PURE__ */ jsxs3("div", { style: { display: "flex", height: "100%", minHeight: 0, width: "100%", overflow: "hidden" }, children: [
319
319
  /* @__PURE__ */ jsx3(
320
320
  TraceOverviewRail,
321
321
  {
@@ -385,4 +385,4 @@ var MessageGraph = ({
385
385
  export {
386
386
  MessageGraph
387
387
  };
388
- //# sourceMappingURL=MessageGraph-WUWP2CE3.mjs.map
388
+ //# sourceMappingURL=MessageGraph-NO5GCAAS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Chat/MessageGraph.tsx","../src/components/Chat/TraceNode.tsx","../src/components/Chat/TraceOverviewRail.tsx"],"sourcesContent":["import React, { useDeferredValue, useEffect, useMemo, useState } from \"react\";\nimport { Button } from \"antd\";\nimport { useReactFlow, type Edge, type Node } from \"@xyflow/react\";\nimport type { Message } from \"@axiom-lattice/protocols\";\nimport { applyDagreLayout, WorkflowGraphBase, type DSLEdge } from \"./WorkflowGraphBase\";\nimport {\n buildTraceGraph,\n collapseOlderPhases,\n TRACE_CARD_SIZE,\n type TraceGraph,\n} from \"./messageGraphUtils\";\nimport { traceNodeTypes, TraceActionContext } from \"./TraceNode\";\nimport { TraceOverviewRail } from \"./TraceOverviewRail\";\nimport { useT } from \"../../i18n\";\n\nconst VISIBLE_PHASES = 3;\n\nconst noop = (): void => undefined;\n\nexport interface MessageGraphProps {\n messages: Message[];\n isLoading?: boolean;\n onJumpToMessage?: (messageId: string) => void;\n}\n\nconst TRACE_KEYFRAMES = `\n@keyframes tracePulse {\n 0%, 100% { box-shadow: 0 0 0 2px rgba(24,144,255,0.18); }\n 50% { box-shadow: 0 0 0 6px rgba(24,144,255,0.05); }\n}\n`;\n\nfunction computePositions(graph: TraceGraph): Map<string, { x: number; y: number }> {\n const dslNodes = graph.nodes.map((n) => ({\n id: n.id,\n ...TRACE_CARD_SIZE[n.data.kind],\n }));\n const dslEdges: DSLEdge[] = graph.edges.map((e) => ({ from: e.from, to: e.to }));\n return applyDagreLayout(dslNodes, dslEdges, {\n nodesep: 48,\n ranksep: 80,\n rankdir: \"TB\",\n });\n}\n\nfunction FollowController({ focusNodeId, follow }: { focusNodeId?: string; follow: boolean }) {\n const reactFlow = useReactFlow();\n useEffect(() => {\n if (!follow || !focusNodeId) return;\n const node = reactFlow.getNode(focusNodeId);\n if (!node) return;\n const width = (node.style?.width as number) ?? 0;\n const height = (node.style?.height as number) ?? 0;\n reactFlow.setCenter(node.position.x + width / 2, node.position.y + height / 2, {\n zoom: 1,\n duration: 300,\n });\n }, [focusNodeId, follow, reactFlow]);\n return null;\n}\n\nexport const MessageGraph: React.FC<MessageGraphProps> = ({\n messages,\n isLoading,\n onJumpToMessage,\n}) => {\n const t = useT();\n const [activeNodeId, setActiveNodeId] = useState<string | undefined>();\n const [showAll, setShowAll] = useState(false);\n const [follow, setFollow] = useState(true);\n\n const deferredMessages = useDeferredValue(messages);\n const graph = useMemo(\n () => buildTraceGraph(deferredMessages, { isLoading, t }),\n [deferredMessages, isLoading, t]\n );\n const visible = useMemo(\n () => (showAll ? graph : collapseOlderPhases(graph, VISIBLE_PHASES, t)),\n [graph, showAll, t]\n );\n\n const structureKey = useMemo(\n () => `${visible.nodes.map((n) => n.id).join(\",\")}|${visible.edges.map((e) => e.id).join(\",\")}`,\n [visible]\n );\n const positions = useMemo(() => computePositions(visible), [structureKey]);\n\n const nodes: Node[] = useMemo(\n () =>\n visible.nodes.map((n) => {\n const size = TRACE_CARD_SIZE[n.data.kind];\n return {\n id: n.id,\n type: \"trace\",\n position: positions.get(n.id) ?? { x: 0, y: 0 },\n data: n.data as unknown as Record<string, unknown>,\n draggable: false,\n style: { width: size.width, height: size.height },\n };\n }),\n [visible, positions]\n );\n\n const edges: Edge[] = useMemo(\n () =>\n visible.edges.map((e) => ({\n id: e.id,\n source: e.from,\n target: e.to,\n animated: e.kind === \"invoke\",\n style: {\n stroke: e.kind === \"invoke\" ? \"#6366f1\" : e.kind === \"result\" ? \"#a5b4fc\" : \"#d9d9d9\",\n },\n })),\n [visible]\n );\n\n const lastNodeId = visible.nodes[visible.nodes.length - 1]?.id;\n const focusNodeId = activeNodeId ?? lastNodeId;\n const collapsible = graph.phases.length > VISIBLE_PHASES;\n const actions = useMemo(() => ({ onJumpToMessage }), [onJumpToMessage]);\n\n return (\n <TraceActionContext.Provider value={actions}>\n <style>{TRACE_KEYFRAMES}</style>\n <div style={{ display: \"flex\", height: \"100%\", minHeight: 0, width: \"100%\", overflow: \"hidden\" }}>\n <TraceOverviewRail\n graph={visible}\n activeNodeId={activeNodeId}\n onSelectNode={setActiveNodeId}\n />\n <div\n style={{ flex: 1, minWidth: 0, minHeight: 0, display: \"flex\", flexDirection: \"column\" }}\n >\n <div\n style={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n gap: 4,\n padding: \"4px 8px\",\n }}\n >\n {!follow && (\n <Button\n size=\"small\"\n type=\"text\"\n onClick={() => {\n setActiveNodeId(undefined);\n setFollow(true);\n }}\n >\n {t(\"chat.trace.backToCurrent\")}\n </Button>\n )}\n {collapsible && (\n <Button size=\"small\" type=\"text\" onClick={() => setShowAll((prev) => !prev)}>\n {showAll ? t(\"chat.trace.collapseOlder\") : t(\"chat.trace.expandAll\")}\n </Button>\n )}\n </div>\n <div style={{ flex: 1, minHeight: 0 }}>\n <WorkflowGraphBase\n nodes={nodes}\n edges={edges}\n nodeTypes={traceNodeTypes}\n onNodesChange={noop}\n onEdgesChange={noop}\n nodesDraggable={false}\n nodesConnectable={false}\n fitView\n miniMap={{ pannable: true, zoomable: true }}\n onMoveStart={() => setFollow(false)}\n onNodeClick={(_event, node) => {\n setActiveNodeId(node.id);\n setFollow(true);\n }}\n >\n <FollowController focusNodeId={focusNodeId} follow={follow} />\n </WorkflowGraphBase>\n </div>\n </div>\n </div>\n </TraceActionContext.Provider>\n );\n};\n","import React from \"react\";\nimport { Button, Tag } from \"antd\";\nimport { Handle, Position, type NodeProps, type NodeTypes } from \"@xyflow/react\";\nimport {\n CheckCircleOutlined,\n CloseCircleOutlined,\n LoadingOutlined,\n RobotOutlined,\n TeamOutlined,\n ToolOutlined,\n UserOutlined,\n} from \"@ant-design/icons\";\nimport type { TraceNodeData, TraceStatus } from \"./messageGraphUtils\";\nimport { formatToolName } from \"../GenUI/elements/formatToolName\";\nimport { MDResponse } from \"../GenUI/MDResponse\";\nimport { ToolCard } from \"../GenUI/elements/ToolCard\";\nimport { toolResponseText } from \"../McpApp/toolResponseText\";\nimport { ToolResultMedia } from \"../McpApp/ToolResultMedia\";\nimport { useT } from \"../../i18n\";\n\nexport { formatToolName };\n\nconst RUNNING_ANIMATION = \"tracePulse 1.4s ease-in-out infinite\";\n\nconst STATUS_ICON: Record<TraceStatus, React.ReactNode> = {\n running: <LoadingOutlined style={{ color: \"#1890ff\" }} />,\n success: <CheckCircleOutlined style={{ color: \"#52c41a\" }} />,\n error: <CloseCircleOutlined style={{ color: \"#ff4d4f\" }} />,\n};\n\nfunction KindIcon({ kind }: { kind: TraceNodeData[\"kind\"] }) {\n switch (kind) {\n case \"human\":\n return <UserOutlined />;\n case \"agent\":\n return <TeamOutlined />;\n case \"tool\":\n return <ToolOutlined />;\n case \"ai\":\n return <RobotOutlined />;\n default:\n return <ToolOutlined />;\n }\n}\n\ninterface TraceActions {\n onJumpToMessage?: (messageId: string) => void;\n}\n\nexport const TraceActionContext = React.createContext<TraceActions>({});\nexport const useTraceActions = (): TraceActions => React.useContext(TraceActionContext);\n\nexport interface TraceNodeCardProps {\n data: TraceNodeData;\n selected?: boolean;\n}\n\nexport const TraceNodeCard: React.FC<TraceNodeCardProps> = ({ data, selected }) => {\n const t = useT();\n const { onJumpToMessage } = useTraceActions();\n const isAnswer = data.isAnswer === true;\n const running = data.status === \"running\";\n const parallel = (data.parallelCount ?? 1) > 1;\n const canJump = Boolean(\n onJumpToMessage && data.messageId && !data.messageId.startsWith(\"summary:\")\n );\n const title = data.toolCall ? formatToolName(data.toolCall.name) : data.label;\n\n const renderBody = () => {\n if ((data.kind === \"tool\" || data.kind === \"agent\") && data.toolCall) {\n const toolResponse = toolResponseText(data.toolCall.response);\n return (\n <>\n <ToolCard\n data={{\n name: data.toolCall.name,\n parameters: data.toolCall.args,\n type: \"tool_call\",\n }}\n component_key={`${data.toolCall.id}-params`}\n interactive={false}\n />\n {toolResponse && (\n <div style={{ marginTop: 8 }}>\n <MDResponse content={toolResponse} />\n </div>\n )}\n <ToolResultMedia ui={data.toolCall.ui} />\n </>\n );\n }\n if (data.content) {\n return <MDResponse content={data.content} />;\n }\n return <span style={{ color: \"#8c8c8c\" }}>{data.label}</span>;\n };\n\n return (\n <div\n data-testid=\"trace-card\"\n style={{\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n border: `1px solid ${isAnswer || selected ? \"#6366f1\" : running ? \"#91caff\" : \"#e5e7eb\"}`,\n borderRadius: 12,\n background: isAnswer ? \"#eef2ff\" : \"#fff\",\n boxShadow: running\n ? \"0 0 0 2px rgba(24,144,255,0.18)\"\n : selected\n ? \"0 0 0 2px rgba(99,102,241,0.2)\"\n : \"none\",\n animation: running ? RUNNING_ANIMATION : undefined,\n overflow: \"hidden\",\n fontSize: 13,\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n padding: \"8px 12px\",\n borderBottom: \"1px solid #f0f0f0\",\n background: \"rgba(0,0,0,0.02)\",\n }}\n >\n <KindIcon kind={data.kind} />\n <span\n style={{\n fontWeight: isAnswer ? 700 : 600,\n flex: 1,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {title}\n </span>\n {parallel && (\n <Tag color=\"purple\" style={{ marginInlineEnd: 0, fontSize: 10 }}>\n {t(\"chat.trace.parallelBadge\", { count: data.parallelCount ?? 1 })}\n </Tag>\n )}\n {STATUS_ICON[data.status]}\n {canJump && (\n <Button type=\"text\" size=\"small\" onClick={() => onJumpToMessage?.(data.messageId)}>\n {t(\"chat.trace.jumpToChat\")}\n </Button>\n )}\n </div>\n <div style={{ flex: 1, minHeight: 0, overflow: \"auto\", padding: 12 }}>{renderBody()}</div>\n </div>\n );\n};\n\nexport const TraceNodeView: React.FC<NodeProps> = ({ data, selected }) => (\n <>\n <Handle type=\"target\" position={Position.Top} />\n <TraceNodeCard data={data as unknown as TraceNodeData} selected={selected} />\n <Handle type=\"source\" position={Position.Bottom} />\n </>\n);\n\nexport const traceNodeTypes: NodeTypes = {\n trace: TraceNodeView,\n};\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\nimport type { TraceGraph, TraceStatus } from \"./messageGraphUtils\";\n\nconst STATUS_COLOR: Record<TraceStatus, string> = {\n running: \"#1890ff\",\n success: \"#52c41a\",\n error: \"#ff4d4f\",\n};\n\nexport interface TraceOverviewRailProps {\n graph: TraceGraph;\n activeNodeId?: string;\n onSelectNode?: (nodeId: string) => void;\n}\n\nexport const TraceOverviewRail: React.FC<TraceOverviewRailProps> = ({\n graph,\n activeNodeId,\n onSelectNode,\n}) => {\n const nodeById = React.useMemo(() => new Map(graph.nodes.map((n) => [n.id, n])), [graph.nodes]);\n return (\n <div\n data-testid=\"trace-overview-rail\"\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 10,\n width: 160,\n padding: 8,\n overflowY: \"auto\",\n borderRight: \"1px solid #f0f0f0\",\n }}\n >\n {graph.phases.map((phase) => (\n <div key={phase.id} data-testid=\"trace-rail-phase\">\n <div style={{ fontSize: 12, color: \"#8c8c8c\", marginBottom: 4 }}>{phase.title}</div>\n <div style={{ display: \"flex\", flexWrap: \"wrap\", gap: 4 }}>\n {phase.nodeIds.map((nodeId) => {\n const node = nodeById.get(nodeId);\n if (!node) return null;\n const active = nodeId === activeNodeId;\n return (\n <Tooltip key={nodeId} title={node.data.label}>\n <button\n type=\"button\"\n data-testid=\"trace-rail-tick\"\n onClick={() => onSelectNode?.(nodeId)}\n style={{\n width: active ? 12 : 8,\n height: active ? 12 : 8,\n borderRadius: \"50%\",\n border: \"none\",\n padding: 0,\n cursor: \"pointer\",\n background: STATUS_COLOR[node.data.status],\n outline: active ? \"2px solid #6366f1\" : \"none\",\n }}\n />\n </Tooltip>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n );\n};\n\n"],"mappings":"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","names":["Button","React","jsx","jsxs","jsx","jsxs","Button"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  GenericDataTable
3
- } from "./chunk-A5M2ER2U.mjs";
3
+ } from "./chunk-YUYCIJXJ.mjs";
4
4
  import "./chunk-J53HT62X.mjs";
5
5
  import "./chunk-3AO7CBZZ.mjs";
6
6
  import "./chunk-KX44YKCV.mjs";
@@ -459,4 +459,4 @@ var ReactChart = (props) => {
459
459
  export {
460
460
  ReactChart
461
461
  };
462
- //# sourceMappingURL=ReactChart-7WQQAQ73.mjs.map
462
+ //# sourceMappingURL=ReactChart-E5LP5OCH.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  TaskOutlineList
3
- } from "./chunk-QGHDHTJT.mjs";
3
+ } from "./chunk-XYW2CARX.mjs";
4
4
  import {
5
5
  WorkflowGraphBase,
6
6
  applyDagreLayout
7
- } from "./chunk-7FWCKQNB.mjs";
7
+ } from "./chunk-3YVWKHQ2.mjs";
8
8
  import {
9
9
  Handle,
10
10
  Position,
@@ -25,7 +25,7 @@ import {
25
25
  taskOrigin,
26
26
  useOpenTaskChat,
27
27
  useTaskCommands
28
- } from "./chunk-A5M2ER2U.mjs";
28
+ } from "./chunk-YUYCIJXJ.mjs";
29
29
  import {
30
30
  useWorkspaceContext
31
31
  } from "./chunk-J53HT62X.mjs";
@@ -1177,4 +1177,4 @@ var TasksSideApp = ({ statusFilter, getOwnerLabel, showProjectFilter = true, ini
1177
1177
  export {
1178
1178
  TasksSideApp
1179
1179
  };
1180
- //# sourceMappingURL=TasksSideApp-IPFBRDSJ.mjs.map
1180
+ //# sourceMappingURL=TasksSideApp-OEGSZUES.mjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  WorkflowCanvas,
3
3
  expandWorkflow
4
- } from "./chunk-WQ4VG47Y.mjs";
5
- import "./chunk-7FWCKQNB.mjs";
4
+ } from "./chunk-VDJVKL3E.mjs";
5
+ import "./chunk-3YVWKHQ2.mjs";
6
6
  import {
7
7
  Background,
8
8
  BackgroundVariant,
@@ -19,7 +19,7 @@ import {
19
19
  import "./chunk-XAGSG72Y.mjs";
20
20
  import {
21
21
  MDResponse
22
- } from "./chunk-A5M2ER2U.mjs";
22
+ } from "./chunk-YUYCIJXJ.mjs";
23
23
  import "./chunk-J53HT62X.mjs";
24
24
  import {
25
25
  useApi
@@ -813,4 +813,4 @@ var TopologyRuntimeView = () => {
813
813
  export {
814
814
  TopologyRuntimeView
815
815
  };
816
- //# sourceMappingURL=TopologyRuntimeView-WFMC2GME.mjs.map
816
+ //# sourceMappingURL=TopologyRuntimeView-XT67VRZE.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  WorkflowAutomationView,
3
3
  WorkflowAutomationView_default
4
- } from "./chunk-26OKWQ4A.mjs";
5
- import "./chunk-VSNPATWP.mjs";
6
- import "./chunk-WQ4VG47Y.mjs";
7
- import "./chunk-7FWCKQNB.mjs";
4
+ } from "./chunk-DB5N7NLG.mjs";
5
+ import "./chunk-6TXR2BBE.mjs";
6
+ import "./chunk-VDJVKL3E.mjs";
7
+ import "./chunk-3YVWKHQ2.mjs";
8
8
  import "./chunk-XC6TB6PI.mjs";
9
9
  import "./chunk-XAGSG72Y.mjs";
10
- import "./chunk-A5M2ER2U.mjs";
10
+ import "./chunk-YUYCIJXJ.mjs";
11
11
  import "./chunk-J53HT62X.mjs";
12
12
  import "./chunk-3AO7CBZZ.mjs";
13
13
  import "./chunk-KX44YKCV.mjs";
@@ -19,4 +19,4 @@ export {
19
19
  WorkflowAutomationView,
20
20
  WorkflowAutomationView_default as default
21
21
  };
22
- //# sourceMappingURL=WorkflowAutomationView-CZIAN5D7.mjs.map
22
+ //# sourceMappingURL=WorkflowAutomationView-KBY5LCTI.mjs.map
@@ -97,12 +97,16 @@ var WorkflowGraphBase = ({
97
97
  children: [
98
98
  /* @__PURE__ */ jsx(Background, { variant: BackgroundVariant.Dots, gap: backgroundGap, size: 1 }),
99
99
  /* @__PURE__ */ jsx(Controls, {}),
100
- miniMap && /* @__PURE__ */ jsx(
101
- MiniMap,
102
- {
103
- ...typeof miniMap === "object" ? miniMap : {}
104
- }
105
- )
100
+ miniMap && (() => {
101
+ const options = typeof miniMap === "object" ? miniMap : {};
102
+ return /* @__PURE__ */ jsx(
103
+ MiniMap,
104
+ {
105
+ ...options,
106
+ style: { width: 200, height: 150, overflow: "hidden", ...options.style }
107
+ }
108
+ );
109
+ })()
106
110
  ]
107
111
  }
108
112
  ),
@@ -115,4 +119,4 @@ export {
115
119
  applyDagreLayout,
116
120
  WorkflowGraphBase
117
121
  };
118
- //# sourceMappingURL=chunk-7FWCKQNB.mjs.map
122
+ //# sourceMappingURL=chunk-3YVWKHQ2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Chat/WorkflowGraphBase.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ReactFlow,\n ReactFlowProvider,\n Background,\n Controls,\n MiniMap,\n BackgroundVariant,\n type Node,\n type Edge,\n type NodeTypes,\n type OnNodesChange,\n type OnEdgesChange,\n type DefaultEdgeOptions,\n type FitViewOptions,\n} from \"@xyflow/react\";\nimport \"@xyflow/react/dist/style.css\";\nimport dagre from \"dagre\";\n\nexport interface DSLNode {\n id: string;\n width?: number;\n height?: number;\n}\n\nexport interface DSLEdge {\n from: string;\n to?: string | string[];\n}\n\nexport function getEdgeTargets(e: DSLEdge): string[] {\n return Array.isArray(e.to) ? e.to : e.to ? [e.to] : [];\n}\n\nexport function applyDagreLayout(\n nodes: DSLNode[],\n edges: DSLEdge[],\n options?: {\n nodeWidth?: number;\n nodeHeight?: number;\n nodesep?: number;\n ranksep?: number;\n rankdir?: \"TB\" | \"LR\";\n }\n): Map<string, { x: number; y: number }> {\n const nodeWidth = options?.nodeWidth ?? 260;\n const nodeHeight = options?.nodeHeight ?? 100;\n\n const g = new dagre.graphlib.Graph();\n g.setGraph({\n rankdir: options?.rankdir ?? \"TB\",\n nodesep: options?.nodesep ?? 60,\n ranksep: options?.ranksep ?? 80,\n });\n g.setDefaultEdgeLabel(() => ({}));\n\n for (const n of nodes) {\n g.setNode(n.id, {\n width: n.width ?? nodeWidth,\n height: n.height ?? nodeHeight,\n });\n }\n\n for (const e of edges) {\n const targets = getEdgeTargets(e);\n for (const t of targets) {\n if (g.hasNode(e.from) && g.hasNode(t)) {\n g.setEdge(e.from, t);\n }\n }\n }\n\n dagre.layout(g);\n\n const positions = new Map<string, { x: number; y: number }>();\n for (const n of nodes) {\n const pos = g.node(n.id);\n if (pos) {\n const w = (n as any).width ?? nodeWidth;\n const h = (n as any).height ?? nodeHeight;\n positions.set(n.id, { x: pos.x - w / 2, y: pos.y - h / 2 });\n }\n }\n return positions;\n}\n\nexport interface WorkflowGraphBaseProps {\n nodes: Node[];\n edges: Edge[];\n nodeTypes: NodeTypes;\n onNodesChange: OnNodesChange;\n onEdgesChange: OnEdgesChange;\n onNodeClick?: (event: React.MouseEvent, node: Node) => void;\n onPaneClick?: () => void;\n height?: number | string;\n fitView?: boolean;\n fitViewOptions?: FitViewOptions;\n minZoom?: number;\n maxZoom?: number;\n nodesDraggable?: boolean;\n nodesConnectable?: boolean;\n defaultEdgeOptions?: DefaultEdgeOptions;\n attributionPosition?: \"bottom-left\" | \"bottom-right\" | \"top-left\" | \"top-right\";\n miniMap?: boolean | { nodeStrokeWidth?: number; pannable?: boolean; zoomable?: boolean; style?: React.CSSProperties };\n backgroundGap?: number;\n onMoveStart?: () => void;\n children?: React.ReactNode;\n}\n\nexport const WorkflowGraphBase: React.FC<WorkflowGraphBaseProps> = ({\n nodes,\n edges,\n nodeTypes,\n onNodesChange,\n onEdgesChange,\n onNodeClick,\n onPaneClick,\n height = \"100%\",\n fitView,\n fitViewOptions,\n minZoom,\n maxZoom,\n nodesDraggable,\n nodesConnectable,\n defaultEdgeOptions,\n attributionPosition = \"bottom-left\",\n miniMap = true,\n backgroundGap = 12,\n onMoveStart,\n children,\n}) => (\n // Own ReactFlowProvider: an ancestor provider (e.g. the agent config canvas)\n // would otherwise share its store with this flow — the last-mounted flow's\n // nodes overwrite every flow under that provider.\n <ReactFlowProvider>\n <div style={{ height, position: \"relative\" }}>\n <ReactFlow\n nodes={nodes}\n edges={edges}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n nodeTypes={nodeTypes}\n onNodeClick={onNodeClick}\n onPaneClick={onPaneClick}\n onMoveStart={onMoveStart}\n fitView={fitView}\n fitViewOptions={fitViewOptions}\n minZoom={minZoom}\n maxZoom={maxZoom}\n nodesDraggable={nodesDraggable}\n nodesConnectable={nodesConnectable}\n defaultEdgeOptions={defaultEdgeOptions}\n attributionPosition={attributionPosition}\n >\n <Background variant={BackgroundVariant.Dots} gap={backgroundGap} size={1} />\n <Controls />\n {miniMap && (\n <MiniMap\n {...(typeof miniMap === \"object\" ? miniMap : {})}\n />\n )}\n </ReactFlow>\n {children}\n </div>\n </ReactFlowProvider>\n);\n"],"mappings":";;;;;;;;;;AAiBA,OAAO,WAAW;AAuHZ,SAkBE,KAlBF;AA1GC,SAAS,eAAe,GAAsB;AACnD,SAAO,MAAM,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC;AACvD;AAEO,SAAS,iBACd,OACA,OACA,SAOuC;AACvC,QAAM,YAAY,SAAS,aAAa;AACxC,QAAM,aAAa,SAAS,cAAc;AAE1C,QAAM,IAAI,IAAI,MAAM,SAAS,MAAM;AACnC,IAAE,SAAS;AAAA,IACT,SAAS,SAAS,WAAW;AAAA,IAC7B,SAAS,SAAS,WAAW;AAAA,IAC7B,SAAS,SAAS,WAAW;AAAA,EAC/B,CAAC;AACD,IAAE,oBAAoB,OAAO,CAAC,EAAE;AAEhC,aAAW,KAAK,OAAO;AACrB,MAAE,QAAQ,EAAE,IAAI;AAAA,MACd,OAAO,EAAE,SAAS;AAAA,MAClB,QAAQ,EAAE,UAAU;AAAA,IACtB,CAAC;AAAA,EACH;AAEA,aAAW,KAAK,OAAO;AACrB,UAAM,UAAU,eAAe,CAAC;AAChC,eAAW,KAAK,SAAS;AACvB,UAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,QAAQ,CAAC,GAAG;AACrC,UAAE,QAAQ,EAAE,MAAM,CAAC;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,OAAO,CAAC;AAEd,QAAM,YAAY,oBAAI,IAAsC;AAC5D,aAAW,KAAK,OAAO;AACrB,UAAM,MAAM,EAAE,KAAK,EAAE,EAAE;AACvB,QAAI,KAAK;AACP,YAAM,IAAK,EAAU,SAAS;AAC9B,YAAM,IAAK,EAAU,UAAU;AAC/B,gBAAU,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAAA,IAC5D;AAAA,EACF;AACA,SAAO;AACT;AAyBO,IAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB;AAAA,EACA;AACF;AAAA;AAAA;AAAA;AAAA,EAIE,oBAAC,qBACC,+BAAC,SAAI,OAAO,EAAE,QAAQ,UAAU,WAAW,GACzC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,8BAAC,cAAW,SAAS,kBAAkB,MAAM,KAAK,eAAe,MAAM,GAAG;AAAA,UAC1E,oBAAC,YAAS;AAAA,UACT,WACC;AAAA,YAAC;AAAA;AAAA,cACE,GAAI,OAAO,YAAY,WAAW,UAAU,CAAC;AAAA;AAAA,UAChD;AAAA;AAAA;AAAA,IAEJ;AAAA,IACC;AAAA,KACH,GACF;AAAA;","names":[]}
1
+ {"version":3,"sources":["../src/components/Chat/WorkflowGraphBase.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n ReactFlow,\n ReactFlowProvider,\n Background,\n Controls,\n MiniMap,\n BackgroundVariant,\n type Node,\n type Edge,\n type NodeTypes,\n type OnNodesChange,\n type OnEdgesChange,\n type DefaultEdgeOptions,\n type FitViewOptions,\n} from \"@xyflow/react\";\nimport \"@xyflow/react/dist/style.css\";\nimport dagre from \"dagre\";\n\nexport interface DSLNode {\n id: string;\n width?: number;\n height?: number;\n}\n\nexport interface DSLEdge {\n from: string;\n to?: string | string[];\n}\n\nexport function getEdgeTargets(e: DSLEdge): string[] {\n return Array.isArray(e.to) ? e.to : e.to ? [e.to] : [];\n}\n\nexport function applyDagreLayout(\n nodes: DSLNode[],\n edges: DSLEdge[],\n options?: {\n nodeWidth?: number;\n nodeHeight?: number;\n nodesep?: number;\n ranksep?: number;\n rankdir?: \"TB\" | \"LR\";\n }\n): Map<string, { x: number; y: number }> {\n const nodeWidth = options?.nodeWidth ?? 260;\n const nodeHeight = options?.nodeHeight ?? 100;\n\n const g = new dagre.graphlib.Graph();\n g.setGraph({\n rankdir: options?.rankdir ?? \"TB\",\n nodesep: options?.nodesep ?? 60,\n ranksep: options?.ranksep ?? 80,\n });\n g.setDefaultEdgeLabel(() => ({}));\n\n for (const n of nodes) {\n g.setNode(n.id, {\n width: n.width ?? nodeWidth,\n height: n.height ?? nodeHeight,\n });\n }\n\n for (const e of edges) {\n const targets = getEdgeTargets(e);\n for (const t of targets) {\n if (g.hasNode(e.from) && g.hasNode(t)) {\n g.setEdge(e.from, t);\n }\n }\n }\n\n dagre.layout(g);\n\n const positions = new Map<string, { x: number; y: number }>();\n for (const n of nodes) {\n const pos = g.node(n.id);\n if (pos) {\n const w = (n as any).width ?? nodeWidth;\n const h = (n as any).height ?? nodeHeight;\n positions.set(n.id, { x: pos.x - w / 2, y: pos.y - h / 2 });\n }\n }\n return positions;\n}\n\nexport interface WorkflowGraphBaseProps {\n nodes: Node[];\n edges: Edge[];\n nodeTypes: NodeTypes;\n onNodesChange: OnNodesChange;\n onEdgesChange: OnEdgesChange;\n onNodeClick?: (event: React.MouseEvent, node: Node) => void;\n onPaneClick?: () => void;\n height?: number | string;\n fitView?: boolean;\n fitViewOptions?: FitViewOptions;\n minZoom?: number;\n maxZoom?: number;\n nodesDraggable?: boolean;\n nodesConnectable?: boolean;\n defaultEdgeOptions?: DefaultEdgeOptions;\n attributionPosition?: \"bottom-left\" | \"bottom-right\" | \"top-left\" | \"top-right\";\n miniMap?: boolean | { nodeStrokeWidth?: number; pannable?: boolean; zoomable?: boolean; style?: React.CSSProperties };\n backgroundGap?: number;\n onMoveStart?: () => void;\n children?: React.ReactNode;\n}\n\nexport const WorkflowGraphBase: React.FC<WorkflowGraphBaseProps> = ({\n nodes,\n edges,\n nodeTypes,\n onNodesChange,\n onEdgesChange,\n onNodeClick,\n onPaneClick,\n height = \"100%\",\n fitView,\n fitViewOptions,\n minZoom,\n maxZoom,\n nodesDraggable,\n nodesConnectable,\n defaultEdgeOptions,\n attributionPosition = \"bottom-left\",\n miniMap = true,\n backgroundGap = 12,\n onMoveStart,\n children,\n}) => (\n // Own ReactFlowProvider: an ancestor provider (e.g. the agent config canvas)\n // would otherwise share its store with this flow — the last-mounted flow's\n // nodes overwrite every flow under that provider.\n <ReactFlowProvider>\n <div style={{ height, position: \"relative\" }}>\n <ReactFlow\n nodes={nodes}\n edges={edges}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n nodeTypes={nodeTypes}\n onNodeClick={onNodeClick}\n onPaneClick={onPaneClick}\n onMoveStart={onMoveStart}\n fitView={fitView}\n fitViewOptions={fitViewOptions}\n minZoom={minZoom}\n maxZoom={maxZoom}\n nodesDraggable={nodesDraggable}\n nodesConnectable={nodesConnectable}\n defaultEdgeOptions={defaultEdgeOptions}\n attributionPosition={attributionPosition}\n >\n <Background variant={BackgroundVariant.Dots} gap={backgroundGap} size={1} />\n <Controls />\n {miniMap && (\n (() => {\n const options = typeof miniMap === \"object\" ? miniMap : {};\n return (\n <MiniMap\n {...options}\n style={{ width: 200, height: 150, overflow: \"hidden\", ...options.style }}\n />\n );\n })()\n )}\n </ReactFlow>\n {children}\n </div>\n </ReactFlowProvider>\n);\n"],"mappings":";;;;;;;;;;AAiBA,OAAO,WAAW;AAuHZ,SAkBE,KAlBF;AA1GC,SAAS,eAAe,GAAsB;AACnD,SAAO,MAAM,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC;AACvD;AAEO,SAAS,iBACd,OACA,OACA,SAOuC;AACvC,QAAM,YAAY,SAAS,aAAa;AACxC,QAAM,aAAa,SAAS,cAAc;AAE1C,QAAM,IAAI,IAAI,MAAM,SAAS,MAAM;AACnC,IAAE,SAAS;AAAA,IACT,SAAS,SAAS,WAAW;AAAA,IAC7B,SAAS,SAAS,WAAW;AAAA,IAC7B,SAAS,SAAS,WAAW;AAAA,EAC/B,CAAC;AACD,IAAE,oBAAoB,OAAO,CAAC,EAAE;AAEhC,aAAW,KAAK,OAAO;AACrB,MAAE,QAAQ,EAAE,IAAI;AAAA,MACd,OAAO,EAAE,SAAS;AAAA,MAClB,QAAQ,EAAE,UAAU;AAAA,IACtB,CAAC;AAAA,EACH;AAEA,aAAW,KAAK,OAAO;AACrB,UAAM,UAAU,eAAe,CAAC;AAChC,eAAW,KAAK,SAAS;AACvB,UAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE,QAAQ,CAAC,GAAG;AACrC,UAAE,QAAQ,EAAE,MAAM,CAAC;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,OAAO,CAAC;AAEd,QAAM,YAAY,oBAAI,IAAsC;AAC5D,aAAW,KAAK,OAAO;AACrB,UAAM,MAAM,EAAE,KAAK,EAAE,EAAE;AACvB,QAAI,KAAK;AACP,YAAM,IAAK,EAAU,SAAS;AAC9B,YAAM,IAAK,EAAU,UAAU;AAC/B,gBAAU,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAAA,IAC5D;AAAA,EACF;AACA,SAAO;AACT;AAyBO,IAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB;AAAA,EACA;AACF;AAAA;AAAA;AAAA;AAAA,EAIE,oBAAC,qBACC,+BAAC,SAAI,OAAO,EAAE,QAAQ,UAAU,WAAW,GACzC;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QAEA;AAAA,8BAAC,cAAW,SAAS,kBAAkB,MAAM,KAAK,eAAe,MAAM,GAAG;AAAA,UAC1E,oBAAC,YAAS;AAAA,UACT,YACE,MAAM;AACL,kBAAM,UAAU,OAAO,YAAY,WAAW,UAAU,CAAC;AACzD,mBACE;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ,OAAO,EAAE,OAAO,KAAK,QAAQ,KAAK,UAAU,UAAU,GAAG,QAAQ,MAAM;AAAA;AAAA,YACzE;AAAA,UAEJ,GAAG;AAAA;AAAA;AAAA,IAEP;AAAA,IACC;AAAA,KACH,GACF;AAAA;","names":[]}
@@ -3,7 +3,7 @@ import {
3
3
  Chating,
4
4
  InitialMessageSubmitter,
5
5
  ProjectSelector
6
- } from "./chunk-A5M2ER2U.mjs";
6
+ } from "./chunk-YUYCIJXJ.mjs";
7
7
  import {
8
8
  useClient
9
9
  } from "./chunk-KX44YKCV.mjs";
@@ -205,4 +205,4 @@ export {
205
205
  TrainingContextCard,
206
206
  CopilotPanel
207
207
  };
208
- //# sourceMappingURL=chunk-VSNPATWP.mjs.map
208
+ //# sourceMappingURL=chunk-6TXR2BBE.mjs.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  CopilotPanel,
3
3
  TrainingContextCard
4
- } from "./chunk-VSNPATWP.mjs";
4
+ } from "./chunk-6TXR2BBE.mjs";
5
5
  import {
6
6
  WorkflowCanvas_default,
7
7
  expandWorkflow
8
- } from "./chunk-WQ4VG47Y.mjs";
8
+ } from "./chunk-VDJVKL3E.mjs";
9
9
  import {
10
10
  ReactFlowProvider
11
11
  } from "./chunk-XC6TB6PI.mjs";
12
12
  import {
13
13
  MDResponse,
14
14
  ProjectScopeProvider
15
- } from "./chunk-A5M2ER2U.mjs";
15
+ } from "./chunk-YUYCIJXJ.mjs";
16
16
  import {
17
17
  useWorkspaceContext
18
18
  } from "./chunk-J53HT62X.mjs";
@@ -1298,4 +1298,4 @@ export {
1298
1298
  WorkflowAutomationView,
1299
1299
  WorkflowAutomationView_default
1300
1300
  };
1301
- //# sourceMappingURL=chunk-26OKWQ4A.mjs.map
1301
+ //# sourceMappingURL=chunk-DB5N7NLG.mjs.map
@@ -10,10 +10,10 @@ import {
10
10
  shortHash,
11
11
  startLearningRound,
12
12
  statusHex
13
- } from "./chunk-5RHFR3E7.mjs";
13
+ } from "./chunk-R2FZW4U2.mjs";
14
14
  import {
15
15
  TrainingContextCard
16
- } from "./chunk-VSNPATWP.mjs";
16
+ } from "./chunk-6TXR2BBE.mjs";
17
17
  import {
18
18
  Background,
19
19
  Controls,
@@ -29,7 +29,7 @@ import {
29
29
  FilterSelect,
30
30
  ProjectScopeProvider_default,
31
31
  useSideAppOpener
32
- } from "./chunk-A5M2ER2U.mjs";
32
+ } from "./chunk-YUYCIJXJ.mjs";
33
33
  import {
34
34
  useWorkspaceContext
35
35
  } from "./chunk-J53HT62X.mjs";
@@ -1759,4 +1759,4 @@ export {
1759
1759
  CreateAssistantModal_default,
1760
1760
  AgentGovernanceWorkbench
1761
1761
  };
1762
- //# sourceMappingURL=chunk-32DXGO5I.mjs.map
1762
+ //# sourceMappingURL=chunk-GRJM72F2.mjs.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  TaskOutlineList
3
- } from "./chunk-QGHDHTJT.mjs";
3
+ } from "./chunk-XYW2CARX.mjs";
4
4
  import {
5
5
  EChart
6
6
  } from "./chunk-J37GWFPA.mjs";
7
7
  import {
8
8
  CopilotPanel,
9
9
  TrainingContextCard
10
- } from "./chunk-VSNPATWP.mjs";
10
+ } from "./chunk-6TXR2BBE.mjs";
11
11
  import {
12
12
  WorkflowCanvas_default,
13
13
  expandWorkflow
14
- } from "./chunk-WQ4VG47Y.mjs";
14
+ } from "./chunk-VDJVKL3E.mjs";
15
15
  import {
16
16
  WorkflowGraphBase,
17
17
  applyDagreLayout
18
- } from "./chunk-7FWCKQNB.mjs";
18
+ } from "./chunk-3YVWKHQ2.mjs";
19
19
  import {
20
20
  Background,
21
21
  Controls,
@@ -60,7 +60,7 @@ import {
60
60
  useOpenTaskChat,
61
61
  useTaskCommands,
62
62
  useWorkbenchNavStyles
63
- } from "./chunk-A5M2ER2U.mjs";
63
+ } from "./chunk-YUYCIJXJ.mjs";
64
64
  import {
65
65
  AssistantContext,
66
66
  ConversationContextProvider,
@@ -804,31 +804,38 @@ function ScopedChatContent({ className, onChatReady, onChatMessage, title, welco
804
804
  }
805
805
  const emptyStateGreeting = title ?? welcome;
806
806
  const emptyStateQuestion = title !== void 0 && welcome !== void 0 ? welcome : "";
807
- return /* @__PURE__ */ jsx3("div", { className, children: /* @__PURE__ */ jsx3(
808
- LatticeChat,
807
+ return /* @__PURE__ */ jsx3(
808
+ "div",
809
809
  {
810
- thread_id: resolvedThreadId,
811
- chatTransport: "thread-events",
812
- runApi: "single",
813
- assistant_id: currentAssistant.id,
814
- name: currentAssistant.name,
815
- description: currentAssistant.description,
816
- menu: /* @__PURE__ */ jsx3(AgentChatSidebar, {}),
817
- showProjectSelector: false,
818
- showSkillSlot: false,
819
- showDatabaseSlot: false,
820
- showAgentSlot: false,
821
- showMetricsDataSourceSlot: false,
822
- headerRight: null,
823
- emptyStateGreeting: emptyStateGreeting ? /* @__PURE__ */ jsx3("span", { children: emptyStateGreeting }) : void 0,
824
- emptyStateQuestion,
825
- senderPromptsItems: quickPrompts.length > 0 ? quickPrompts.map((prompt, index2) => ({ key: `quick-${index2}`, label: prompt.label, description: prompt.text })) : void 0,
826
- showSkillPrompts: false,
827
- showQuickAnalysis: false,
828
- onChatReady,
829
- onChatMessage
810
+ className,
811
+ style: { width: "100%", height: "100%", minWidth: 0, overflow: "hidden" },
812
+ children: /* @__PURE__ */ jsx3(
813
+ LatticeChat,
814
+ {
815
+ thread_id: resolvedThreadId,
816
+ chatTransport: "thread-events",
817
+ runApi: "single",
818
+ assistant_id: currentAssistant.id,
819
+ name: currentAssistant.name,
820
+ description: currentAssistant.description,
821
+ menu: /* @__PURE__ */ jsx3(AgentChatSidebar, {}),
822
+ showProjectSelector: false,
823
+ showSkillSlot: false,
824
+ showDatabaseSlot: false,
825
+ showAgentSlot: false,
826
+ showMetricsDataSourceSlot: false,
827
+ headerRight: null,
828
+ emptyStateGreeting: emptyStateGreeting ? /* @__PURE__ */ jsx3("span", { children: emptyStateGreeting }) : void 0,
829
+ emptyStateQuestion,
830
+ senderPromptsItems: quickPrompts.length > 0 ? quickPrompts.map((prompt, index2) => ({ key: `quick-${index2}`, label: prompt.label, description: prompt.text })) : void 0,
831
+ showSkillPrompts: false,
832
+ showQuickAnalysis: false,
833
+ onChatReady,
834
+ onChatMessage
835
+ }
836
+ )
830
837
  }
831
- ) });
838
+ );
832
839
  }
833
840
 
834
841
  // src/components/Governance/nodeMeta.tsx
@@ -8869,4 +8876,4 @@ export {
8869
8876
  AgentConfigGraph,
8870
8877
  AgentDetailView
8871
8878
  };
8872
- //# sourceMappingURL=chunk-5RHFR3E7.mjs.map
8879
+ //# sourceMappingURL=chunk-R2FZW4U2.mjs.map