onepipeline-ui 0.6.4 → 0.6.5
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.
|
@@ -51,6 +51,6 @@ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(
|
|
|
51
51
|
`,`
|
|
52
52
|
+`).split(`
|
|
53
53
|
`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,U.useEffect)(()=>{let n=t?.target??mz,c=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!c)&&UI(e))return!1;let n=_z(e.code,s);if(a.current.add(e[n]),gz(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=_z(e.code,s);gz(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function gz(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function _z(e,t){return t.includes(e)?`code`:`key`}var vz=()=>{let e=VR();return(0,U.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=AI(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return TI(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=EI(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function yz(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)bz(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function bz(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing);break}}function xz(e,t){return yz(e,t)}function Sz(e,t){return yz(e,t)}function Cz(e,t){return{id:e,type:`select`,selected:t}}function wz(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(Cz(a.id,e)))}return r}function Tz({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function Ez(e){return{id:e.id,type:`remove`}}var Dz=CI(`React Flow`,`https://reactflow.dev/`);function Oz(e,t,n={}){return nL(e,t,{...n,onError:n.onError??Dz})}var kz=e=>ZF(e),Az=e=>XF(e);function jz(e){return(0,U.forwardRef)(e)}var Mz=typeof window<`u`?U.useLayoutEffect:U.useEffect;function Nz(e){let[t,n]=(0,U.useState)(BigInt(0)),[r]=(0,U.useState)(()=>Pz(()=>n(e=>e+BigInt(1))));return Mz(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function Pz(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var Fz=(0,U.createContext)(null);function Iz({children:e}){let t=VR(),n=Nz((0,U.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=Tz({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=Nz((0,U.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(Tz({items:s,lookup:o}))},[])),i=(0,U.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,W.jsx)(Fz.Provider,{value:i,children:e})}function Lz(){let e=(0,U.useContext)(Fz);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var Rz=e=>!!e.panZoom;function zz(){let e=vz(),t=VR(),n=Lz(),r=BR(Rz),i=(0,U.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=kz(e)?e:n.get(e.id),a=i.parentId?FI(i.position,i.measured,i.parentId,n,r):i.position;return gI({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&kz(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&Az(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await sI({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(Ez);o?.(f),c(e)}if(m){let e=d.map(Ez);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=xI(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=gI(s?r:a),l=bI(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=xI(e)?e:a(e);if(!r)return!1;let i=bI(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return eI(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??LI();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,U.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var Bz=e=>e.selected,Vz=typeof window<`u`?window:void 0;function Hz({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=VR(),{deleteElements:r}=zz(),i=hz(e,{actInsideInputWithModifier:!1}),a=hz(t,{target:Vz});(0,U.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(Bz),edges:e.filter(Bz)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,U.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function Uz(e){let t=VR();(0,U.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=BI(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,RF.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var Wz={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},Gz=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Kz({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=UF.Free,zoomOnDoubleClick:o=!0,panOnDrag:s=!0,defaultViewport:c,translateExtent:l,minZoom:u,maxZoom:d,zoomActivationKeyCode:f,preventScrolling:p=!0,children:m,noWheelClassName:h,noPanClassName:g,onViewportChange:_,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:b}){let x=VR(),S=(0,U.useRef)(null),{userSelectionActive:C,lib:w,connectionInProgress:T}=BR(Gz,IR),E=hz(f),D=(0,U.useRef)();Uz(S);let O=(0,U.useCallback)(e=>{_?.({x:e[0],y:e[1],zoom:e[2]}),v||x.setState({transform:e})},[_,v]);return(0,U.useEffect)(()=>{if(S.current){D.current=dR({domNode:S.current,minZoom:u,maxZoom:d,translateExtent:l,viewport:c,onDraggingChange:e=>x.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=x.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=x.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=x.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=D.current.getViewport();return x.setState({panZoom:D.current,transform:[e,t,n],domNode:S.current.closest(`.react-flow`)}),()=>{D.current?.destroy()}}},[]),(0,U.useEffect)(()=>{D.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:s,zoomActivationKeyPressed:E,preventScrolling:p,noPanClassName:g,userSelectionActive:C,noWheelClassName:h,lib:w,onTransformChange:O,connectionInProgress:T,selectionOnDrag:b,paneClickDistance:y})},[e,t,n,r,i,a,o,s,E,p,g,C,h,w,O,T,b,y]),(0,W.jsx)(`div`,{className:`react-flow__renderer`,ref:S,style:Wz,children:m})}var qz=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Jz(){let{userSelectionActive:e,userSelectionRect:t}=BR(qz,IR);return e&&t?(0,W.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Yz=(e,t)=>n=>{n.target===t.current&&e?.(n)},Xz=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Zz({isSelecting:e,selectionKeyPressed:t,selectionMode:n=WF.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:s,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:f,onPaneMouseMove:p,onPaneMouseLeave:m,children:h}){let g=(0,U.useRef)(0),_=VR(),{userSelectionActive:v,elementsSelectable:y,dragging:b,panBy:x,autoPanSpeed:S}=BR(Xz,IR),C=y&&(e||v),w=(0,U.useRef)(null),T=(0,U.useRef)(),E=(0,U.useRef)(new Set),D=(0,U.useRef)(new Set),O=(0,U.useRef)(!1),k=(0,U.useRef)(!1),A=(0,U.useRef)({x:0,y:0}),j=(0,U.useRef)(!1),M=e=>{if(k.current||O.current||_.getState().connection.inProgress){k.current=!1,O.current=!1;return}l?.(e),_.getState().resetSelectedElements(),_.setState({nodesSelectionActive:!1})},N=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}u?.(e)},P=d?e=>d(e):void 0,ee=e=>{k.current&&=(e.stopPropagation(),!1)},F=n=>{let{domNode:r,transform:i}=_.getState();if(T.current=r?.getBoundingClientRect(),!T.current)return;let a=n.target===w.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),k.current=!1;let{x:s,y:c}=GI(n.nativeEvent,T.current),l=TI({x:s,y:c},i);_.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function I(e,t){let{userSelectionRect:r}=_.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=_.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=EI(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=E.current,g=D.current;E.current=new Set(nI(a,m,i,n===WF.Partial,!0).map(e=>e.id)),D.current=new Set;let v=u?.selectable??!0;for(let e of E.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??v)&&D.current.add(e)}}II(h,E.current)||c(wz(a,E.current,!0)),II(g,D.current)||l(wz(o,D.current)),_.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function L(){if(!i||!T.current)return;let[e,t]=fI(A.current,T.current,S);x({x:e,y:t}).then(e=>{if(!k.current||!e){g.current=requestAnimationFrame(L);return}let{x:t,y:n}=A.current;I(t,n),g.current=requestAnimationFrame(L)})}let te=()=>{cancelAnimationFrame(g.current),g.current=0,j.current=!1};return(0,U.useEffect)(()=>()=>te(),[]),(0,W.jsxs)(`div`,{className:eA([`react-flow__pane`,{draggable:r===!0||Array.isArray(r)&&r.includes(0),dragging:b,selection:e}]),onClick:C?void 0:Yz(M,w),onContextMenu:Yz(N,w),onWheel:Yz(P,w),onPointerEnter:C?void 0:f,onPointerMove:C?e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=_.getState();if(!T.current||!n)return;let{x:o,y:c}=GI(e.nativeEvent,T.current);A.current={x:o,y:c};let l=EI({x:n.startX,y:n.startY},r);if(!k.current){let n=t?0:a;if(Math.hypot(o-l.x,c-l.y)<=n)return;i(),s?.(e)}k.current=!0,j.current||=(L(),!0),I(o,c)}:p,onPointerUp:e=>{if(!C){e.target===w.current&&_.getState().connection.inProgress&&(O.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!v&&e.target===w.current&&_.getState().userSelectionRect&&M?.(e),_.setState({userSelectionActive:!1,userSelectionRect:null}),k.current&&(c?.(e),_.setState({nodesSelectionActive:E.current.size>0})),te())},onPointerCancel:C?e=>{e.target?.releasePointerCapture?.(e.pointerId),te()}:void 0,onPointerDownCapture:C?F:void 0,onClickCapture:C?ee:void 0,onPointerLeave:m,ref:w,style:Wz,children:[h,(0,W.jsx)(Jz,{})]})}function Qz({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,RF.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function $z({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let s=VR(),[c,l]=(0,U.useState)(!1),u=(0,U.useRef)();return(0,U.useEffect)(()=>{if(!t)return u.current=BL({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{Qz({id:t,store:s,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,s,e]),(0,U.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),c}var eB=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function tB(){let e=VR();return(0,U.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=eB(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=wI(t,i));let{position:a,positionAbsolute:s}=oI({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var nB=(0,U.createContext)(null),rB=nB.Provider;nB.Consumer;var iB=()=>(0,U.useContext)(nB),aB=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),oB=(0,U.createContext)(null);function sB({children:e}){let t=BR(aB,IR);return(0,W.jsx)(oB.Provider,{value:t,children:e})}function cB(){let e=(0,U.useContext)(oB);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var lB={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},uB=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return lB;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===HF.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function dB({type:e=`source`,position:t=$.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=VR(),_=iB(),{connectOnClick:v,noPanClassName:y,rfId:b}=cB(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=BR(uB(_,m,e),IR);_||g.getState().onError?.(`010`,RF.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(Oz(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=WI(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();XL.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,W.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:eA([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=VI(t.target),h=n||c,{connection:v,isValid:y}=XL.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var fB=(0,U.memo)(jz(dB));function pB({data:e,isConnectable:t,sourcePosition:n=$.Bottom}){return(0,W.jsxs)(W.Fragment,{children:[e?.label,(0,W.jsx)(fB,{type:`source`,position:n,isConnectable:t})]})}function mB({data:e,isConnectable:t,targetPosition:n=$.Top,sourcePosition:r=$.Bottom}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(fB,{type:`target`,position:n,isConnectable:t}),e?.label,(0,W.jsx)(fB,{type:`source`,position:r,isConnectable:t})]})}function hB(){return null}function gB({data:e,isConnectable:t,targetPosition:n=$.Top}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(fB,{type:`target`,position:n,isConnectable:t}),e?.label]})}var _B={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},vB={input:pB,default:mB,output:gB,group:hB};function yB(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var bB=e=>{let{width:t,height:n,x:r,y:i}=tI(e.nodeLookup,{filter:e=>!!e.selected});return{width:SI(t)?t:null,height:SI(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function xB({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=VR(),{width:i,height:a,transformString:o,userSelectionActive:s}=BR(bB,IR),c=tB(),l=(0,U.useRef)(null);(0,U.useEffect)(()=>{n||l.current?.focus({preventScroll:!0})},[n]);let u=!s&&i!==null&&a!==null;if($z({nodeRef:l,disabled:!u}),!u)return null;let d=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,W.jsx)(`div`,{className:eA([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,W.jsx)(`div`,{ref:l,className:`react-flow__nodesselection-rect`,onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(_B,e.key)&&(e.preventDefault(),c({direction:_B[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var SB=typeof window<`u`?window:void 0,CB=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function wB({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:ee,isControlledViewport:F}){let{nodesSelectionActive:I,userSelectionActive:L}=BR(CB,IR),te=hz(l,{target:SB}),ne=hz(h,{target:SB}),re=ne||w,R=ne||b,z=u&&re!==!0,ie=te||L||z;return Hz({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,W.jsx)(Kz,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:R,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!te&&re,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:ee,isControlledViewport:F,paneClickDistance:s,selectionOnDrag:z,children:(0,W.jsxs)(Zz,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:re,autoPanOnSelection:T,isSelecting:!!ie,selectionMode:d,selectionKeyPressed:te,paneClickDistance:s,selectionOnDrag:z,children:[e,I&&(0,W.jsx)(xB,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}wB.displayName=`FlowRenderer`;var TB=(0,U.memo)(wB),EB=e=>t=>e?nI(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function DB(e){return BR((0,U.useCallback)(EB(e),[e]),IR)}var OB=e=>e.updateNodeInternals;function kB(){let e=BR(OB),[t]=(0,U.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,U.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function AB({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=VR(),a=(0,U.useRef)(null),o=(0,U.useRef)(null),s=(0,U.useRef)(e.sourcePosition),c=(0,U.useRef)(e.targetPosition),l=(0,U.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,U.useEffect)(()=>{a.current&&!e.hidden&&(!u||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[u,e.hidden]),(0,U.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,U.useEffect)(()=>{if(a.current){let n=l.current!==t,r=s.current!==e.sourcePosition,o=c.current!==e.targetPosition;(n||r||o)&&(l.current=t,s.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function jB({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=BR(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},IR),S=y.type||`default`,C=g?.[S]||vB[S];C===void 0&&(v?.(`003`,RF.error003(S)),S=`default`,C=g?.default||vB.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=VR(),k=PI(y),A=AB({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=$z({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=tB();if(y.hidden)return null;let N=NI(y),P=yB(y),ee=T||w||t||n||r||i,F=n?e=>n(e,{...b.userNode}):void 0,I=r?e=>r(e,{...b.userNode}):void 0,L=i?e=>i(e,{...b.userNode}):void 0,te=a?e=>a(e,{...b.userNode}):void 0,ne=o?e=>o(e,{...b.userNode}):void 0,re=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Qz({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},R=t=>{if(!(UI(t.nativeEvent)||m)){if(BF.includes(t.key)&&T){let n=t.key===`Escape`;Qz({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(_B,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:_B[t.key],factor:t.shiftKey?4:1})}}},z=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(nI(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,W.jsx)(`div`,{className:eA([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:ee?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:F,onMouseMove:I,onMouseLeave:L,onContextMenu:te,onClick:re,onDoubleClick:ne,onKeyDown:D?R:void 0,tabIndex:D?0:void 0,onFocus:D?z:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${WR}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,W.jsx)(rB,{value:e,children:(0,W.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var MB=(0,U.memo)(jB),NB=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function PB(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=BR(NB,IR),a=DB(e.onlyRenderVisibleElements),o=kB();return(0,W.jsx)(`div`,{className:`react-flow__nodes`,style:Wz,children:a.map(a=>(0,W.jsx)(MB,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}PB.displayName=`NodeRenderer`;var FB=(0,U.memo)(PB);function IB(e){return BR((0,U.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&$I({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),IR)}var LB=({color:e=`none`,strokeWidth:t=1})=>(0,W.jsx)(`polyline`,{className:`arrow`,style:{strokeWidth:t,...e&&{stroke:e}},strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`}),RB=({color:e=`none`,strokeWidth:t=1})=>(0,W.jsx)(`polyline`,{className:`arrowclosed`,style:{strokeWidth:t,...e&&{stroke:e,fill:e}},strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`}),zB={[qF.Arrow]:LB,[qF.ArrowClosed]:RB};function BB(e){let t=VR();return(0,U.useMemo)(()=>Object.prototype.hasOwnProperty.call(zB,e)?zB[e]:(t.getState().onError?.(`009`,RF.error009(e)),null),[e])}var VB=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=BB(t);return c?(0,W.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,W.jsx)(c,{color:n,strokeWidth:o})}):null},HB=({defaultColor:e,rfId:t})=>{let n=BR(e=>e.edges),r=BR(e=>e.defaultEdgeOptions),i=(0,U.useMemo)(()=>gL(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,W.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,W.jsx)(`defs`,{children:i.map(e=>(0,W.jsx)(VB,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};HB.displayName=`MarkerDefinitions`;var UB=(0,U.memo)(HB);function WB({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:s=2,children:c,className:l,...u}){let[d,f]=(0,U.useState)({x:1,y:0,width:0,height:0}),p=eA([`react-flow__edge-textwrapper`,l]),m=(0,U.useRef)(null);return(0,U.useEffect)(()=>{if(m.current){let e=m.current.getBBox();f({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,W.jsxs)(`g`,{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:p,visibility:d.width?`visible`:`hidden`,...u,children:[i&&(0,W.jsx)(`rect`,{width:d.width+2*o[0],x:-o[0],y:-o[1],height:d.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:s,ry:s}),(0,W.jsx)(`text`,{className:`react-flow__edge-text`,y:d.height/2,dy:`0.3em`,ref:m,style:r,children:n}),c]}):null}WB.displayName=`EdgeText`;var GB=(0,U.memo)(WB);function KB({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`path`,{...u,d:e,fill:`none`,className:eA([`react-flow__edge-path`,u.className])}),l?(0,W.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&SI(t)&&SI(n)?(0,W.jsx)(GB,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function qB({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===$.Left||e===$.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function JB({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top}){let[o,s]=qB({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=qB({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=qI({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function YB(e){return(0,U.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=JB({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s});return(0,W.jsx)(KB,{id:e.isInternal?void 0:t,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var XB=YB({isInternal:!1}),ZB=YB({isInternal:!0});XB.displayName=`SimpleBezierEdge`,ZB.displayName=`SimpleBezierEdgeInternal`;function QB(e){return(0,U.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=$.Bottom,targetPosition:m=$.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=lL({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition});return(0,W.jsx)(KB,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var $B=QB({isInternal:!1}),eV=QB({isInternal:!0});$B.displayName=`SmoothStepEdge`,eV.displayName=`SmoothStepEdgeInternal`;function tV(e){return(0,U.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,W.jsx)($B,{...n,id:r,pathOptions:(0,U.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var nV=tV({isInternal:!1}),rV=tV({isInternal:!0});nV.displayName=`StepEdge`,rV.displayName=`StepEdgeInternal`;function iV(e){return(0,U.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=rL({sourceX:n,sourceY:r,targetX:i,targetY:a});return(0,W.jsx)(KB,{id:e.isInternal?void 0:t,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var aV=iV({isInternal:!1}),oV=iV({isInternal:!0});aV.displayName=`StraightEdge`,oV.displayName=`StraightEdgeInternal`;function sV(e){return(0,U.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=$.Bottom,targetPosition:s=$.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=XI({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature});return(0,W.jsx)(KB,{id:e.isInternal?void 0:t,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var cV=sV({isInternal:!1}),lV=sV({isInternal:!0});cV.displayName=`BezierEdge`,lV.displayName=`BezierEdgeInternal`;var uV={default:lV,straight:oV,step:rV,smoothstep:eV,simplebezier:ZB},dV={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},fV=(e,t,n)=>n===$.Left?e-t:n===$.Right?e+t:e,pV=(e,t,n)=>n===$.Top?e-t:n===$.Bottom?e+t:e,mV=`react-flow__edgeupdater`;function hV({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,W.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:eA([mV,`${mV}-${s}`]),cx:fV(t,r,e),cy:pV(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function gV({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=VR(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;XL.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,W.jsxs)(W.Fragment,{children:[(e===!0||e===`source`)&&(0,W.jsx)(hV,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,W.jsx)(hV,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function _V({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:h,noPanClassName:g,onError:_,disableKeyboardA11y:v}){let y=BR(t=>t.edgeLookup.get(e)),b=BR(e=>e.defaultEdgeOptions);y=b?{...b,...y}:y;let x=y.type||`default`,S=h?.[x]||uV[x];S===void 0&&(_?.(`011`,RF.error011(x)),x=`default`,S=h?.default||uV.default);let C=!!(y.focusable||t&&y.focusable===void 0),w=d!==void 0&&(y.reconnectable||n&&y.reconnectable===void 0),T=!!(y.selectable||r&&y.selectable===void 0),E=(0,U.useRef)(null),[D,O]=(0,U.useState)(!1),[k,A]=(0,U.useState)(!1),j=VR(),{zIndex:M=y.zIndex,sourceX:N,sourceY:P,targetX:ee,targetY:F,sourcePosition:I,targetPosition:L}=BR((0,U.useCallback)(t=>{let n=t.nodeLookup.get(y.source),r=t.nodeLookup.get(y.target);if(!n||!r)return dV;let i=dL({id:e,sourceNode:n,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:t.connectionMode,onError:_}),a=QI({selected:y.selected,zIndex:y.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||dV,zIndex:a}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),IR),te=(0,U.useMemo)(()=>y.markerStart?`url('#${hL(y.markerStart,m)}')`:void 0,[y.markerStart,m]),ne=(0,U.useMemo)(()=>y.markerEnd?`url('#${hL(y.markerEnd,m)}')`:void 0,[y.markerEnd,m]);if(y.hidden||N===null||P===null||ee===null||F===null)return null;let re=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=j.getState();T&&(j.setState({nodesSelectionActive:!1}),y.selected&&a?(r({nodes:[],edges:[y]}),E.current?.blur()):n([e])),i&&i(t,y)},R=a?e=>{a(e,{...y})}:void 0,z=o?e=>{o(e,{...y})}:void 0,ie=s?e=>{s(e,{...y})}:void 0,ae=c?e=>{c(e,{...y})}:void 0,oe=l?e=>{l(e,{...y})}:void 0;return(0,W.jsx)(`svg`,{style:{zIndex:M},children:(0,W.jsxs)(`g`,{className:eA([`react-flow__edge`,`react-flow__edge-${x}`,y.className,g,{selected:y.selected,animated:y.animated,inactive:!T&&!i,updating:D,selectable:T}]),onClick:re,onDoubleClick:R,onContextMenu:z,onMouseEnter:ie,onMouseMove:ae,onMouseLeave:oe,onKeyDown:C?t=>{if(!v&&BF.includes(t.key)&&T){let{unselectNodesAndEdges:n,addSelectedEdges:r}=j.getState();t.key===`Escape`?(E.current?.blur(),n({edges:[y]})):r([e])}}:void 0,tabIndex:C?0:void 0,role:y.ariaRole??(C?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":C?`${GR}-${m}`:void 0,ref:E,...y.domAttributes,children:[!k&&(0,W.jsx)(S,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:T,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:N,sourceY:P,targetX:ee,targetY:F,sourcePosition:I,targetPosition:L,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:te,markerEnd:ne,pathOptions:`pathOptions`in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),w&&(0,W.jsx)(gV,{edge:y,isReconnectable:w,reconnectRadius:u,onReconnect:d,onReconnectStart:f,onReconnectEnd:p,sourceX:N,sourceY:P,targetX:ee,targetY:F,sourcePosition:I,targetPosition:L,setUpdateHover:O,setReconnecting:A})]})})}var vV=(0,U.memo)(_V),yV=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function bV({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=BR(yV,IR),b=IB(t);return(0,W.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,W.jsx)(UB,{defaultColor:e,rfId:n}),b.map(e=>(0,W.jsx)(vV,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}bV.displayName=`EdgeRenderer`;var xV=(0,U.memo)(bV),SV=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function CV({children:e}){let t=VR(),n=(0,U.useRef)(null),[r]=(0,U.useState)(()=>t.getState().transform);return Mz(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=SV(r)))};return r(),t.subscribe(r)},[t]),(0,W.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:SV(r)},children:e})}function wV(e){let t=zz(),n=(0,U.useRef)(!1);(0,U.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var TV=e=>e.panZoom?.syncViewport;function EV(e){let t=BR(TV),n=VR();return(0,U.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function DV(e){return e.connection.inProgress?{...e.connection,to:TI(e.connection.to,e.transform)}:{...e.connection}}function OV(e){return e?t=>e(DV(t)):DV}function kV(e){return BR(OV(e),IR)}var AV=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function jV({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=BR(AV,IR);return a&&i&&c?(0,W.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,W.jsx)(`g`,{className:eA([`react-flow__connection`,YF(s)]),children:(0,W.jsx)(MV,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var MV=({style:e,type:t=KF.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=kV();if(!i)return;if(n)return(0,W.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:YF(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case KF.Bezier:[m]=XI(h);break;case KF.SimpleBezier:[m]=JB(h);break;case KF.Step:[m]=lL({...h,borderRadius:0});break;case KF.SmoothStep:[m]=lL(h);break;default:[m]=rL(h)}return(0,W.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};MV.displayName=`ConnectionLine`;var NV={};function PV(e=NV){(0,U.useRef)(e),VR(),(0,U.useEffect)(()=>{},[e])}function FV(){VR(),(0,U.useRef)(!1),(0,U.useEffect)(()=>{},[])}function IV({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:ee,panOnScrollSpeed:F,panOnScrollMode:I,zoomOnDoubleClick:L,panOnDrag:te,autoPanOnSelection:ne,onPaneClick:re,onPaneMouseEnter:R,onPaneMouseMove:z,onPaneMouseLeave:ie,onPaneScroll:ae,onPaneContextMenu:oe,paneClickDistance:se,nodeClickDistance:ce,onEdgeContextMenu:le,onEdgeMouseEnter:ue,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:pe,onReconnect:me,onReconnectStart:he,onReconnectEnd:ge,noDragClassName:_e,noWheelClassName:ve,noPanClassName:ye,disableKeyboardA11y:be,nodeExtent:xe,rfId:Se,viewport:B,onViewportChange:Ce,nodesDraggable:we}){return PV(e),PV(t),FV(),wV(n),EV(B),(0,W.jsx)(TB,{onPaneClick:re,onPaneMouseEnter:R,onPaneMouseMove:z,onPaneMouseLeave:ie,onPaneContextMenu:oe,onPaneScroll:ae,paneClickDistance:se,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:L,panOnScroll:ee,panOnScrollSpeed:F,panOnScrollMode:I,panOnDrag:te,autoPanOnSelection:ne,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:_e,noWheelClassName:ve,noPanClassName:ye,disableKeyboardA11y:be,onViewportChange:Ce,isControlledViewport:!!B,children:(0,W.jsxs)(CV,{children:[(0,W.jsx)(xV,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:me,onReconnectStart:he,onReconnectEnd:ge,onlyRenderVisibleElements:T,onEdgeContextMenu:le,onEdgeMouseEnter:ue,onEdgeMouseMove:de,onEdgeMouseLeave:fe,reconnectRadius:pe,defaultMarkerColor:M,noPanClassName:ye,disableKeyboardA11y:be,rfId:Se}),(0,W.jsx)(jV,{style:h,type:m,component:g,containerStyle:_}),(0,W.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,W.jsx)(FB,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ce,onlyRenderVisibleElements:T,noPanClassName:ye,noDragClassName:_e,disableKeyboardA11y:be,nodeExtent:xe,rfId:Se,nodesDraggable:we}),(0,W.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}IV.displayName=`GraphView`;var LV=(0,U.memo)(IV),RV=CI(`React Flow`,`https://reactflow.dev/`),zV=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??zF;PL(h,g,_);let{nodesInitialized:x}=TL(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=AI(tI(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:zF,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:HF.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...GF},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:RV,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:VF,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},BV=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>FR((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await aI({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...zV({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=TL(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();PL(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=jL(e,n,r,i,a,o,l);d&&(SL(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=pL(e,o.fromHandle,$.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=AL(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(xz(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(Sz(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>Cz(e,!0)));return}i(wz(r,new Set([...e]),!0)),a(wz(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>Cz(e,!0)));return}a(wz(n,new Set([...e]))),i(wz(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(Cz(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(Cz(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,Cz(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,Cz(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();e[0][0]===o[0][0]&&e[0][1]===o[0][1]&&e[1][0]===o[1][0]&&e[1][1]===o[1][1]||(TL(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return ML({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...GF}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...zV()})}},Object.is);function VV({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:s,initialFitViewOptions:c,fitView:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f,children:p}){let[m]=(0,U.useState)(()=>BV({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:l,minZoom:o,maxZoom:s,fitViewOptions:c,nodeOrigin:u,nodeExtent:d,zIndexMode:f}));return(0,W.jsx)(RR,{value:m,children:(0,W.jsx)(Iz,{children:(0,W.jsx)(sB,{children:p})})})}function HV({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:s,fitViewOptions:c,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p}){return(0,U.useContext)(LR)?(0,W.jsx)(W.Fragment,{children:e}):(0,W.jsx)(VV,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:s,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:e})}var UV={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function WV({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:s,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:d,onMoveEnd:f,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onSelectionChange:k,onSelectionDragStart:A,onSelectionDrag:j,onSelectionDragStop:M,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:ee,onBeforeDelete:F,connectionMode:I,connectionLineType:L=KF.Bezier,connectionLineStyle:te,connectionLineComponent:ne,connectionLineContainerStyle:re,deleteKeyCode:R=`Backspace`,selectionKeyCode:z=`Shift`,selectionOnDrag:ie=!1,selectionMode:ae=WF.Full,panActivationKeyCode:oe=`Space`,multiSelectionKeyCode:se=jI()?`Meta`:`Control`,zoomActivationKeyCode:ce=jI()?`Meta`:`Control`,snapToGrid:le,snapGrid:ue,onlyRenderVisibleElements:de=!1,selectNodesOnDrag:fe,nodesDraggable:pe,autoPanOnNodeFocus:me,nodesConnectable:he,nodesFocusable:ge,nodeOrigin:_e=oz,edgesFocusable:ve,edgesReconnectable:ye,elementsSelectable:be=!0,defaultViewport:xe=sz,minZoom:Se=.5,maxZoom:B=2,translateExtent:Ce=zF,preventScrolling:we=!0,nodeExtent:Te,defaultMarkerColor:Ee=`#b1b1b7`,zoomOnScroll:De=!0,zoomOnPinch:Oe=!0,panOnScroll:ke=!1,panOnScrollSpeed:Ae=.5,panOnScrollMode:je=UF.Free,zoomOnDoubleClick:Me=!0,panOnDrag:Ne=!0,onPaneClick:V,onPaneMouseEnter:Pe,onPaneMouseMove:Fe,onPaneMouseLeave:Ie,onPaneScroll:Le,onPaneContextMenu:Re,paneClickDistance:ze=1,nodeClickDistance:Be=0,children:H,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye=10,onNodesChange:Xe,onEdgesChange:Ze,noDragClassName:Qe=`nodrag`,noWheelClassName:$e=`nowheel`,noPanClassName:et=`nopan`,fitView:tt,fitViewOptions:nt,connectOnClick:rt,attributionPosition:it,proOptions:at,defaultEdgeOptions:ot,elevateNodesOnSelect:st=!0,elevateEdgesOnSelect:ct=!1,disableKeyboardA11y:lt=!1,autoPanOnConnect:ut,autoPanOnNodeDrag:dt,autoPanOnSelection:ft=!0,autoPanSpeed:pt,connectionRadius:mt,isValidConnection:ht,onError:gt,style:_t,id:vt,nodeDragThreshold:yt,connectionDragThreshold:bt,viewport:xt,onViewportChange:St,width:Ct,height:wt,colorMode:Tt=`light`,debug:Et,onScroll:Dt,ariaLabelConfig:Ot,zIndexMode:kt=`basic`,...At},jt){let Mt=vt||`1`,Nt=pz(Tt),Pt=(0,U.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Dt?.(e)},[Dt]);return(0,W.jsx)(`div`,{"data-testid":`rf__wrapper`,...At,onScroll:Pt,style:{..._t,...UV},ref:jt,className:eA([`react-flow`,i,Nt]),id:vt,role:`application`,children:(0,W.jsxs)(HV,{nodes:e,edges:t,width:Ct,height:wt,fitView:tt,fitViewOptions:nt,minZoom:Se,maxZoom:B,nodeOrigin:_e,nodeExtent:Te,zIndexMode:kt,children:[(0,W.jsx)(dz,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:m,onConnectEnd:h,onClickConnectStart:g,onClickConnectEnd:_,nodesDraggable:pe,autoPanOnNodeFocus:me,nodesConnectable:he,nodesFocusable:ge,edgesFocusable:ve,edgesReconnectable:ye,elementsSelectable:be,elevateNodesOnSelect:st,elevateEdgesOnSelect:ct,minZoom:Se,maxZoom:B,nodeExtent:Te,onNodesChange:Xe,onEdgesChange:Ze,snapToGrid:le,snapGrid:ue,connectionMode:I,translateExtent:Ce,connectOnClick:rt,defaultEdgeOptions:ot,fitView:tt,fitViewOptions:nt,onNodesDelete:E,onEdgesDelete:D,onDelete:O,onNodeDragStart:C,onNodeDrag:w,onNodeDragStop:T,onSelectionDrag:j,onSelectionDragStart:A,onSelectionDragStop:M,onMove:u,onMoveStart:d,onMoveEnd:f,noPanClassName:et,nodeOrigin:_e,rfId:Mt,autoPanOnConnect:ut,autoPanOnNodeDrag:dt,autoPanSpeed:pt,onError:gt,connectionRadius:mt,isValidConnection:ht,selectNodesOnDrag:fe,nodeDragThreshold:yt,connectionDragThreshold:bt,onBeforeDelete:F,debug:Et,ariaLabelConfig:Ot,zIndexMode:kt}),(0,W.jsx)(LV,{onInit:l,onNodeClick:s,onEdgeClick:c,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:b,onNodeContextMenu:x,onNodeDoubleClick:S,nodeTypes:a,edgeTypes:o,connectionLineType:L,connectionLineStyle:te,connectionLineComponent:ne,connectionLineContainerStyle:re,selectionKeyCode:z,selectionOnDrag:ie,selectionMode:ae,deleteKeyCode:R,multiSelectionKeyCode:se,panActivationKeyCode:oe,zoomActivationKeyCode:ce,onlyRenderVisibleElements:de,defaultViewport:xe,translateExtent:Ce,minZoom:Se,maxZoom:B,preventScrolling:we,zoomOnScroll:De,zoomOnPinch:Oe,zoomOnDoubleClick:Me,panOnScroll:ke,panOnScrollSpeed:Ae,panOnScrollMode:je,panOnDrag:Ne,autoPanOnSelection:ft,onPaneClick:V,onPaneMouseEnter:Pe,onPaneMouseMove:Fe,onPaneMouseLeave:Ie,onPaneScroll:Le,onPaneContextMenu:Re,paneClickDistance:ze,nodeClickDistance:Be,onSelectionContextMenu:N,onSelectionStart:P,onSelectionEnd:ee,onReconnect:Ve,onReconnectStart:He,onReconnectEnd:Ue,onEdgeContextMenu:We,onEdgeDoubleClick:Ge,onEdgeMouseEnter:Ke,onEdgeMouseMove:qe,onEdgeMouseLeave:Je,reconnectRadius:Ye,defaultMarkerColor:Ee,noDragClassName:Qe,noWheelClassName:$e,noPanClassName:et,rfId:Mt,disableKeyboardA11y:lt,nodeExtent:Te,viewport:xt,onViewportChange:St,nodesDraggable:pe}),(0,W.jsx)(az,{onSelectionChange:k}),H,(0,W.jsx)($R,{proOptions:at,position:it}),(0,W.jsx)(XR,{rfId:Mt,disableKeyboardA11y:lt})]})})}var GV=jz(WV);RF.error014();function KV({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,W.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:eA([`react-flow__background-pattern`,n,r])})}function qV({radius:e,className:t}){return(0,W.jsx)(`circle`,{cx:e,cy:e,r:e,className:eA([`react-flow__background-pattern`,`dots`,t])})}var JV;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(JV||={});var YV={[JV.Dots]:1,[JV.Lines]:1,[JV.Cross]:6},XV=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function ZV({id:e,variant:t=JV.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:s,style:c,className:l,patternClassName:u}){let d=(0,U.useRef)(null),{transform:f,patternId:p}=BR(XV,IR),m=r||YV[t],h=t===JV.Dots,g=t===JV.Cross,_=Array.isArray(n)?n:[n,n],v=[_[0]*f[2]||1,_[1]*f[2]||1],y=m*f[2],b=Array.isArray(a)?a:[a,a],x=g?[y,y]:v,S=[b[0]*f[2]||1+x[0]/2,b[1]*f[2]||1+x[1]/2],C=`${p}${e||``}`;return(0,W.jsxs)(`svg`,{className:eA([`react-flow__background`,l]),style:{...c,...Wz,"--xy-background-color-props":s,"--xy-background-pattern-color-props":o},ref:d,"data-testid":`rf__background`,children:[(0,W.jsx)(`pattern`,{id:C,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${S[0]},-${S[1]})`,children:h?(0,W.jsx)(qV,{radius:y/2,className:u}):(0,W.jsx)(KV,{dimensions:x,lineWidth:i,variant:t,className:u})}),(0,W.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${C})`})]})}ZV.displayName=`Background`;var QV=(0,U.memo)(ZV);function $V(){return(0,W.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,W.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function eH(){return(0,W.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,W.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function tH(){return(0,W.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,W.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function nH(){return(0,W.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,W.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function rH(){return(0,W.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,W.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function iH({children:e,className:t,...n}){return(0,W.jsx)(`button`,{type:`button`,className:eA([`react-flow__controls-button`,t]),...n,children:e})}var aH=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function oH({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=VR(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=BR(aH,IR),{zoomIn:y,zoomOut:b,fitView:x}=zz();return(0,W.jsxs)(ZR,{className:eA([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(iH,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,W.jsx)($V,{})}),(0,W.jsx)(iH,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,W.jsx)(eH,{})})]}),n&&(0,W.jsx)(iH,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,W.jsx)(tH,{})}),r&&(0,W.jsx)(iH,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,W.jsx)(rH,{}):(0,W.jsx)(nH,{})}),u]})}oH.displayName=`Controls`;var sH=(0,U.memo)(oH);function cH({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,W.jsx)(`rect`,{className:eA([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var lH=(0,U.memo)(cH),uH=e=>e.nodes.map(e=>e.id),dH=e=>e instanceof Function?e:()=>e;function fH({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=lH,onClick:o}){let s=BR(uH,IR),c=dH(t),l=dH(e),u=dH(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,W.jsx)(W.Fragment,{children:s.map(e=>(0,W.jsx)(mH,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function pH({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=BR(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=NI(r);return{node:r,x:i,y:a,width:o,height:s}},IR);return!l||l.hidden||!PI(l)?null:(0,W.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var mH=(0,U.memo)(pH),hH=(0,U.memo)(fH),gH=200,_H=150,vH=e=>!e.hidden,yH=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?vI(tI(e.nodeLookup,{filter:vH}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},bH=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,xH=(e,t)=>bH(e.viewBB,t.viewBB)&&bH(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,SH=`react-flow__minimap-desc`;function CH({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:s,bgColor:c,maskColor:l,maskStrokeColor:u,maskStrokeWidth:d,position:f=`bottom-right`,onClick:p,onNodeClick:m,pannable:h=!1,zoomable:g=!1,ariaLabel:_,inversePan:v,zoomStep:y=1,offsetScale:b=5}){let x=VR(),S=(0,U.useRef)(null),{boundingRect:C,viewBB:w,rfId:T,panZoom:E,translateExtent:D,flowWidth:O,flowHeight:k,ariaLabelConfig:A}=BR(yH,xH),j=e?.width??gH,M=e?.height??_H,N=C.width/j,P=C.height/M,ee=Math.max(N,P),F=ee*j,I=ee*M,L=b*ee,te=C.x-(F-C.width)/2-L,ne=C.y-(I-C.height)/2-L,re=F+L*2,R=I+L*2,z=`${SH}-${T}`,ie=(0,U.useRef)(0),ae=(0,U.useRef)();ie.current=ee,(0,U.useEffect)(()=>{if(S.current&&E)return ae.current=ZL({domNode:S.current,panZoom:E,getTransform:()=>x.getState().transform,getViewScale:()=>ie.current}),()=>{ae.current?.destroy()}},[E]),(0,U.useEffect)(()=>{ae.current?.update({translateExtent:D,width:O,height:k,inversePan:v,pannable:h,zoomStep:y,zoomable:g})},[h,g,v,y,D,O,k]);let oe=p?e=>{let[t,n]=ae.current?.pointer(e)||[0,0];p(e,{x:t,y:n})}:void 0,se=m?(0,U.useCallback)((e,t)=>{let n=x.getState().nodeLookup.get(t).internals.userNode;m(e,n)},[]):void 0,ce=_??A[`minimap.ariaLabel`];return(0,W.jsx)(ZR,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof c==`string`?c:void 0,"--xy-minimap-mask-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof d==`number`?d*ee:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:eA([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,W.jsxs)(`svg`,{width:j,height:M,viewBox:`${te} ${ne} ${re} ${R}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":z,ref:S,onClick:oe,children:[ce&&(0,W.jsx)(`title`,{id:z,children:ce}),(0,W.jsx)(hH,{onClick:se,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:s}),(0,W.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${te-L},${ne-L}h${re+L*2}v${R+L*2}h${-re-L*2}z
|
|
54
|
-
M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}CH.displayName=`MiniMap`,(0,U.memo)(CH);var wH=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,TH={[fR.Line]:`right`,[fR.Handle]:`bottom-right`};function EH({nodeId:e,position:t,variant:n=fR.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=iB(),y=typeof e==`string`?e:v,b=VR(),x=(0,U.useRef)(null),S=n===fR.Handle,C=BR((0,U.useCallback)(wH(S&&p),[S,p]),IR),w=(0,U.useRef)(null),T=t??TH[n];return(0,U.useEffect)(()=>{if(!(!x.current||!y))return w.current||=CR({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=AL([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...FI({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]),(0,W.jsx)(`div`,{className:eA([`react-flow__resize-control`,`nodrag`,...T.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,U.memo)(EH);function DH(e){return e.graph??void 0}function OH(e){let t=DH(e);if(!t)return[];let n=new Map(e.run.nodes.map(e=>[e.node,e]));return t.plan.tasks.flatMap(r=>{let i=RH(r,`kind`)===`human`?`human`:zH(r)?`lifecycle`:`agent`,a=t.node_results[r.id]??t.result?.results?.[r.id],o=t.node_status[r.id];return o===void 0?[]:[{id:r.id,label:RH(r,`name`)??r.id,status:o,kind:i,task:r,telemetry:n.get(r.id),result:a,detail:e.node_details[r.id],control:t.node_control[r.id],failure:n.get(r.id)?.failure,blockers:[...t.node_gated_by[r.id]??[],...a?.blocked_by??[]]}]})}function kH(e){switch(e?.launcher){case`claude-code`:return`Claude`;case`codex`:return`Codex`;default:return`Unattributed`}}function AH(e){let t=kH(e);return e?.session_key===void 0?e===void 0?`Unattributed`:`${t} launch · ${BH(e.launch_id)}`:`${t} session · ${BH(e.session_key)}`}function jH(e){if(e.blockers.length>0&&NH.has(e.status))return`blocked by ${e.blockers.join(`, `)}`;if(PH.has(e.status))return MH(e)??`${e.status}, with no reason recorded`}function MH(e){return(e.failure?.detail||e.result?.detail||e.result?.error||e.telemetry?.outcome||e.result?.outcome)?.trim()||void 0}var NH=new Set([`blocked`,`skipped`,`waiting`]),PH=new Set([`failed`,`not-completed`,`cancelled`]);function FH(e){let t=Gk,n=t=>(e[t]??0)>0;return[...t.filter(n),...Object.keys(e).filter(e=>!t.includes(e)).sort().filter(n)].map(t=>`${e[t]} ${t}`).join(` · `)}function IH(e){return PH.has(e)||e===`blocked`||e===`skipped`}function LH(e){let t=new Map;for(let n of e){let e=n.launch?.session_key,r=e===void 0?`run:${n.run_id}`:`session:${n.launch?.launcher}:${e}`,i=t.get(r);t.set(r,{id:r,launcher:kH(n.launch),label:AH(n.launch),runs:[...i?.runs??[],n]})}return[...t.values()]}function RH(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:void 0}function zH(e){return`repo`in e||`steps`in e}function BH(e){return e.length>12?`${e.slice(0,8)}…`:e}function VH({data:e}){let t=e.style===`success`?yt:e.style===`danger`||e.style===`muted`?Xt:e.style===`active`?Ct:Et;return(0,W.jsxs)(`article`,{"aria-label":`${e.label}: ${e.state}`,className:at(`dag-node`,`state-${e.state}`,`token-${e.style}`),"data-selected":e.selected,children:[(0,W.jsx)(fB,{type:`target`,position:$.Left}),(0,W.jsxs)(`div`,{className:`node-heading`,children:[(0,W.jsx)(ya,{className:`px-1.5 py-0 text-[9px] tracking-[.1em] uppercase`,variant:`outline`,children:e.kind}),(0,W.jsx)(t,{className:at(e.style===`active`&&`spin`),size:17})]}),(0,W.jsx)(`strong`,{children:e.label}),(0,W.jsx)(`span`,{className:`node-status`,children:e.state}),e.reason!==void 0&&(0,W.jsx)(`span`,{className:`node-reason`,title:e.reason,children:e.reason}),(0,W.jsx)(fB,{type:`source`,position:$.Right})]})}function HH({data:e,id:t,markerEnd:n,style:r}){return(0,W.jsx)(KB,{id:t,path:UH(e?.points??[]),markerEnd:n,style:r})}function UH(e){let[t,...n]=e;return t?`M ${t.x} ${t.y} ${n.map(e=>`L ${e.x} ${e.y}`).join(` `)}`:``}var WH={dagNode:VH},GH={routed:HH};function KH({nodes:e,selectedNodeId:t,onSelectNode:n}){let r=(0,U.useMemo)(()=>{let t=new Map;for(let n of e)IH(n.status)&&t.set(n.id,jH(n));return t},[e]),{nodes:i,edges:a}=(0,U.useMemo)(()=>{let n=new Set(e.map(e=>e.id)),i=$k({nodes:e.map(e=>({id:e.id,label:e.label,kind:e.kind,state:e.status})),edges:e.flatMap(e=>(e.task.deps??[]).filter(e=>n.has(e)).map(t=>({id:`${t}->${e.id}`,source:t,target:e.id})))});return{nodes:i.nodes.map(e=>({id:e.id,type:`dagNode`,position:{x:e.x,y:e.y},data:{label:e.label,kind:e.kind,state:e.state,style:e.style,selected:e.id===t,...r.get(e.id)===void 0?{}:{reason:r.get(e.id)}},style:{width:e.width,height:e.height}})),edges:i.edges.map(t=>({id:t.id,source:t.source,target:t.target,type:`routed`,data:{points:t.points},animated:e.find(({id:e})=>e===t.target)?.status===`running`}))}},[e,r,t]);return(0,W.jsxs)(`div`,{className:`graph-wrap`,children:[(0,W.jsxs)(GV,{nodes:i,edges:a,colorMode:`dark`,nodeTypes:WH,edgeTypes:GH,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,fitView:!0,minZoom:.05,onNodeClick:(e,t)=>n(t.id),"aria-label":`DAG execution graph`,children:[(0,W.jsx)(QV,{color:`var(--border)`,gap:22}),(0,W.jsx)(sH,{showInteractive:!1})]}),(0,W.jsx)(`ol`,{className:`accessible-node-list`,"aria-label":`DAG nodes`,children:e.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,onClick:()=>n(e.id),children:[e.label,`: `,e.status,r.get(e.id)===void 0?``:` — ${r.get(e.id)}`]})},e.id))})]})}function qH({className:e,state:t}){return(0,W.jsxs)(ya,{className:at(`gap-1.5 tracking-[.03em] uppercase`,QH[t],e),variant:`outline`,children:[(0,W.jsx)(`span`,{"aria-hidden":`true`,className:at(`size-1.5 rounded-full bg-current`,t===`running`&&`animate-pulse`)}),t]})}var JH=`border-success bg-success-surface text-success`,YH=`border-destructive bg-destructive-surface text-destructive`,XH=`border-warning bg-warning-surface text-warning`,ZH={blocked:XH,cancelled:YH,done:JH,failed:YH,"not-completed":YH,parked:void 0,pending:void 0,running:`border-info bg-info-surface text-info`,skipped:XH,unknown:void 0,waiting:void 0},QH={...ZH,complete:ZH.done,settled:ZH.done,active:ZH.running};function $H({groups:e,selectedRunId:t,liveRunIds:n,onSelect:r,hasMore:i,onLoadMore:a}){return(0,W.jsx)(`nav`,{"aria-label":`DAG runs`,className:`run-nav`,onScrollCapture:e=>{let t=e.target;i&&t.scrollHeight-t.scrollTop<=t.clientHeight+80&&a()},children:(0,W.jsx)(vl,{className:`h-full`,children:(0,W.jsxs)(`div`,{className:`px-[18px] py-6 max-sm:px-2`,children:[(0,W.jsxs)(`div`,{className:`brand`,children:[(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`brand-mark`,children:(0,W.jsx)(gt,{size:20})}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`p`,{className:`eyebrow`,children:`Local orchestration`}),(0,W.jsx)(`h1`,{children:`DAG Observatory`})]})]}),(0,W.jsx)(jl,{className:`my-[22px]`}),(0,W.jsx)(`div`,{className:`run-groups`,children:e.map(e=>(0,W.jsxs)(`section`,{"aria-labelledby":`group-${e.id}`,children:[(0,W.jsxs)(`h2`,{id:`group-${e.id}`,children:[(0,W.jsx)(vt,{"aria-hidden":`true`,size:14}),e.label]}),e.runs.map(e=>{let i=t===e.run_id,a=FH(e.node_counts);return(0,W.jsxs)(`button`,{"aria-current":i?`page`:void 0,className:`run-link`,"data-active":i,onClick:()=>r(e.run_id),type:`button`,children:[(0,W.jsxs)(`span`,{className:`run-link-main`,children:[n.has(e.run_id)?(0,W.jsxs)(xd,{children:[(0,W.jsx)(Sd,{asChild:!0,children:(0,W.jsx)(`span`,{"aria-label":`Live`,className:`live-dot`,role:`img`})}),(0,W.jsx)(Cd,{children:`Live`})]}):(0,W.jsx)(Vt,{"aria-label":`Historical`,size:13}),(0,W.jsx)(`span`,{children:e.run_id})]}),(0,W.jsx)(qH,{className:`px-[5px] py-px text-[9px]`,state:e.state}),(0,W.jsx)(xt,{"aria-hidden":`true`,size:14}),a!==``&&(0,W.jsx)(`span`,{className:`run-link-counts`,title:a,children:a})]},e.run_id)})]},e.id))}),i&&(0,W.jsx)(`button`,{className:`sr-only`,onClick:()=>void a(),type:`button`,children:`Load more runs`})]})})})}function eU(e,t,n,r){let[i,a]=(0,U.useState)(),[o,s]=(0,U.useState)(),[c,l]=(0,U.useState)(!0),[u,d]=(0,U.useState)(),[f,p]=(0,U.useState)([]),[m,h]=(0,U.useState)(),[g,_]=(0,U.useState)(0),v=i===void 0?void 0:i.runs.some(({run_id:e})=>e===t)?t:i.runs.at(0)?.run_id,y=n===void 0?void 0:n.nodeId??`run`,b=(0,U.useRef)(v);(0,U.useEffect)(()=>{b.current=v},[v]);let x=(0,U.useCallback)(async()=>{a(await e.listRuns(!0))},[e]),S=(0,U.useCallback)(async()=>{if(i?.next_cursor!==void 0)try{let t=await e.listRuns(!0,i.next_cursor);a(e=>e===void 0?t:{...t,runs:[...e.runs,...t.runs.filter(({run_id:t})=>!e.runs.some(e=>e.run_id===t))]}),h(void 0)}catch(e){h(rU(e))}},[e,i]),C=(0,U.useCallback)(async()=>{try{await x(),h(void 0)}catch(e){h(rU(e))}finally{l(!1)}_(e=>e+1)},[x]);(0,U.useEffect)(()=>{if(v===void 0){s(void 0);return}let t=!0,i=e=>e.runId===v&&e.timelineScope===y&&e.filter===r;s(e=>{if(e!==void 0&&i(e))return e;let t=e?.runId===v&&e.filter===r&&e.detail!==void 0?e.detail:void 0;return{runId:v,filter:r,timelineScope:y,...t===void 0?{}:{detail:t}}});let a=e=>{t&&s(t=>t!==void 0&&i(t)?e(t):t)};return e.getRun(v,{includeConversations:!1,filter:r}).then(e=>{a(t=>({...t,detail:e})),t&&h(void 0)}).catch(tU).catch(e=>{t&&h(rU(e))}),n!==void 0&&e.getTimeline(v,n.nodeId,r).then(e=>a(t=>({...t,timeline:e,timelineError:void 0}))).catch(tU).catch(e=>a(t=>({...t,timelineError:rU(e)}))),()=>{t=!1}},[e,v,g,n?.nodeId,y,r]),(0,U.useEffect)(()=>{C();let t=e.subscribe({onEvent:e=>{if(d(new Date().toISOString()),h(void 0),e.event===`snapshot`){a(qO(e.data)),_(e=>e+1);return}let t=nU(e);t!==void 0&&(x().catch(e=>h(rU(e))),t===b.current&&_(e=>e+1))},onError:e=>{h(rU(e))}});return()=>t.close()},[e,x,C]),(0,U.useEffect)(()=>{if(v===void 0){p([]);return}let t=e.subscribe({runId:v,filter:r,onEvent:e=>{if(d(new Date().toISOString()),h(void 0),e.event!==`snapshot`){if(e.event===`activity.changed`){let t=e.data.activity;p(KO.parse(t))}(e.event===`conversation.changed`||e.event===`activity.changed`||e.event===`run.changed`)&&_(e=>e+1)}},onError:e=>h(rU(e))});return()=>t.close()},[e,v,r]);let w=o!==void 0&&o.runId===v&&o.filter===r?o:void 0;return(0,U.useMemo)(()=>({list:i,runId:v,detail:w?.detail,timeline:w?.timeline,timelineError:w?.timelineError,loading:c,lastUpdated:u,activity:f,error:m,refresh:C,loadMore:S,hasMore:i?.next_cursor!==void 0}),[i,v,w,c,u,f,m,C,S])}function tU(e){if(!(e instanceof JO&&e.code===`run_not_found`))throw e}function nU(e){let t=`run_id`in e.data?e.data.run_id:void 0;return typeof t==`string`&&t.length>0?t:void 0}function rU(e){return e instanceof Error?e:typeof Event<`u`&&e instanceof Event?Error(`Live telemetry stream disconnected`):Error(String(e))}var iU=365.2425,aU=6048e5,oU=864e5,sU=6e4,cU=36e5,lU=1e3,uU=525600,dU=43200,fU=1440,pU=3600*24;pU*7,pU*iU/12*3;var mU=Symbol.for(`constructDateFrom`);function hU(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&mU in e?e[mU](t):e instanceof Date?new e.constructor(t):new Date(t)}function gU(e,t){return hU(t||e,e)}var _U={};function vU(){return _U}function yU(e,t){let n=vU(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=gU(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function bU(e,t){return yU(e,{...t,weekStartsOn:1})}function xU(e,t){let n=gU(e,t?.in),r=n.getFullYear(),i=hU(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=bU(i),o=hU(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=bU(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function SU(e){let t=gU(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function CU(e,...t){let n=hU.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function wU(e,t){let n=gU(e,t?.in);return n.setHours(0,0,0,0),n}function TU(e,t,n){let[r,i]=CU(n?.in,e,t),a=wU(r),o=wU(i),s=+a-SU(a),c=+o-SU(o);return Math.round((s-c)/oU)}function EU(e,t){let n=xU(e,t),r=hU(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),bU(r)}function DU(e,t){let n=gU(e)-+gU(t);return n<0?-1:n>0?1:n}function OU(e){return hU(e,Date.now())}function kU(e,t,n){let[r,i]=CU(n?.in,e,t);return+wU(r)==+wU(i)}function AU(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function jU(e){return!(!AU(e)&&typeof e!=`number`||isNaN(+gU(e)))}function MU(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function NU(e,t){let n=gU(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}var PU={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},FU=(e,t,n)=>{let r,i=PU[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function IU(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var LU={date:IU({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:IU({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:IU({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},RU={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},zU=(e,t,n,r)=>RU[e];function BU(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var VU={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:BU({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:BU({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:BU({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:BU({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:BU({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function HU(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?WU(s,e=>e.test(o)):UU(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function UU(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function WU(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function GU(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var KU={code:`en-US`,formatDistance:FU,formatLong:LU,formatRelative:zU,localize:VU,match:{ordinalNumber:GU({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:HU({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:HU({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:HU({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:HU({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:HU({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function qU(e,t){let n=gU(e,t?.in);return TU(n,NU(n))+1}function JU(e,t){let n=gU(e,t?.in),r=bU(n)-+EU(n);return Math.round(r/aU)+1}function YU(e,t){let n=gU(e,t?.in),r=n.getFullYear(),i=vU(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=hU(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=yU(o,t),c=hU(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=yU(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function XU(e,t){let n=vU(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=YU(e,t),a=hU(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),yU(a,t)}function ZU(e,t){let n=gU(e,t?.in),r=yU(n,t)-+XU(n,t);return Math.round(r/aU)+1}function QU(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var $U={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return QU(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):QU(n+1,2)},d(e,t){return QU(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return QU(e.getHours()%12||12,t.length)},H(e,t){return QU(e.getHours(),t.length)},m(e,t){return QU(e.getMinutes(),t.length)},s(e,t){return QU(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return QU(Math.trunc(r*10**(n-3)),t.length)}},eW={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},tW={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return $U.y(e,t)},Y:function(e,t,n,r){let i=YU(e,r),a=i>0?i:1-i;return t===`YY`?QU(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):QU(a,t.length)},R:function(e,t){return QU(xU(e),t.length)},u:function(e,t){return QU(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return QU(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return QU(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return $U.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return QU(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=ZU(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):QU(i,t.length)},I:function(e,t,n){let r=JU(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):QU(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):$U.d(e,t)},D:function(e,t,n){let r=qU(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):QU(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return QU(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return QU(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return QU(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?eW.noon:r===0?eW.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?eW.evening:r>=12?eW.afternoon:r>=4?eW.morning:eW.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return $U.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):$U.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):QU(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):QU(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):$U.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):$U.s(e,t)},S:function(e,t){return $U.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return rW(r);case`XXXX`:case`XX`:return iW(r);default:return iW(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return rW(r);case`xxxx`:case`xx`:return iW(r);default:return iW(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+nW(r,`:`);default:return`GMT`+iW(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+nW(r,`:`);default:return`GMT`+iW(r,`:`)}},t:function(e,t,n){return QU(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return QU(+e,t.length)}};function nW(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+QU(a,2)}function rW(e,t){return e%60==0?(e>0?`-`:`+`)+QU(Math.abs(e)/60,2):iW(e,t)}function iW(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=QU(Math.trunc(r/60),2),a=QU(r%60,2);return n+i+t+a}var aW=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},oW=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},sW={p:oW,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return aW(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,aW(r,t)).replace(`{{time}}`,oW(i,t))}},cW=/^D+$/,lW=/^Y+$/,uW=[`D`,`DD`,`YY`,`YYYY`];function dW(e){return cW.test(e)}function fW(e){return lW.test(e)}function pW(e,t,n){let r=mW(e,t,n);if(console.warn(r),uW.includes(e))throw RangeError(r)}function mW(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var hW=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,gW=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,_W=/^'([^]*?)'?$/,vW=/''/g,yW=/[a-zA-Z]/;function bW(e,t,n){let r=vU(),i=n?.locale??r.locale??KU,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=gU(e,n?.in);if(!jU(s))throw RangeError(`Invalid time value`);let c=t.match(gW).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=sW[t];return n(e,i.formatLong)}return e}).join(``).match(hW).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:xW(e)};if(tW[t])return{isToken:!0,value:e};if(t.match(yW))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&fW(a)||!n?.useAdditionalDayOfYearTokens&&dW(a))&&pW(a,t,String(e));let o=tW[a[0]];return o(s,a,i.localize,l)}).join(``)}function xW(e){let t=e.match(_W);return t?t[1].replace(vW,`'`):e}function SW(e,t,n){let r=vU(),i=n?.locale??r.locale??KU,a=DU(e,t);if(isNaN(a))throw RangeError(`Invalid time value`);let o=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:a}),[s,c]=CU(n?.in,...a>0?[t,e]:[e,t]),l=MU(n?.roundingMethod??`round`),u=c.getTime()-s.getTime(),d=u/sU,f=(u-(SU(c)-SU(s)))/sU,p=n?.unit,m;if(m=p||(d<1?`second`:d<60?`minute`:d<1440?`hour`:f<43200?`day`:f<525600?`month`:`year`),m===`second`){let e=l(u/1e3);return i.formatDistance(`xSeconds`,e,o)}else if(m===`minute`){let e=l(d);return i.formatDistance(`xMinutes`,e,o)}else if(m===`hour`){let e=l(d/60);return i.formatDistance(`xHours`,e,o)}else if(m===`day`){let e=l(f/fU);return i.formatDistance(`xDays`,e,o)}else if(m===`month`){let e=l(f/dU);return e===12&&p!==`month`?i.formatDistance(`xYears`,1,o):i.formatDistance(`xMonths`,e,o)}else{let e=l(f/uU);return i.formatDistance(`xYears`,e,o)}}function CW(e,t){return SW(e,OU(e),t)}function wW(e){return Math.trunc(e*cU)}function TW(e,t,n){let[r,i]=CU(n?.in,e,t);return r.getFullYear()===i.getFullYear()}function EW(e,t){return TW(hU(t?.in||e,e),OU(t?.in||e))}function DW(e,t){return kU(hU(t?.in||e,e),OU(t?.in||e))}function OW(e){let t=e/cU;return Math.trunc(t)}function kW(e){let t=e/sU;return Math.trunc(t)}function AW(e){let t=e/lU;return Math.trunc(t)}function jW(e){return Math.trunc(e*sU)}function MW(e,t){let n=()=>hU(t?.in,NaN),r=t?.additionalDigits??2,i=LW(e),a;if(i.date){let e=RW(i.date,r);a=zW(e.restDateString,e.year)}if(!a||isNaN(+a))return n();let o=+a,s=0,c;if(i.time&&(s=VW(i.time),isNaN(s)))return n();if(i.timezone){if(c=UW(i.timezone),isNaN(c))return n()}else{let e=new Date(o+s),n=gU(0,t?.in);return n.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),n}return gU(o+s+c,t?.in)}var NW={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},PW=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,FW=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,IW=/^([+-])(\d{2})(?::?(\d{2}))?$/;function LW(e){let t={},n=e.split(NW.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],NW.timeZoneDelimiter.test(t.date)&&(t.date=e.split(NW.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){let e=NW.timezone.exec(r);e?(t.time=r.replace(e[1],``),t.timezone=e[1]):t.time=r}return t}function RW(e,t){let n=RegExp(`^(?:(\\d{4}|[+-]\\d{`+(4+t)+`})|(\\d{2}|[+-]\\d{`+(2+t)+`})$)`),r=e.match(n);if(!r)return{year:NaN,restDateString:``};let i=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:a===null?i:a*100,restDateString:e.slice((r[1]||r[2]).length)}}function zW(e,t){if(t===null)return new Date(NaN);let n=e.match(PW);if(!n)return new Date(NaN);let r=!!n[4],i=BW(n[1]),a=BW(n[2])-1,o=BW(n[3]),s=BW(n[4]),c=BW(n[5])-1;if(r)return YW(t,s,c)?WW(t,s,c):new Date(NaN);{let e=new Date(0);return!qW(t,a,o)||!JW(t,i)?new Date(NaN):(e.setUTCFullYear(t,a,Math.max(i,o)),e)}}function BW(e){return e?parseInt(e):1}function VW(e){let t=e.match(FW);if(!t)return NaN;let n=HW(t[1]),r=HW(t[2]),i=HW(t[3]);return XW(n,r,i)?n*cU+r*sU+i*1e3:NaN}function HW(e){return e&&parseFloat(e.replace(`,`,`.`))||0}function UW(e){if(e===`Z`)return 0;let t=e.match(IW);if(!t)return 0;let n=t[1]===`+`?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return ZW(r,i)?n*(r*cU+i*sU):NaN}function WW(e,t,n){let r=new Date(0);r.setUTCFullYear(e,0,4);let i=r.getUTCDay()||7,a=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}var GW=[31,null,31,30,31,30,31,31,30,31,30,31];function KW(e){return e%400==0||e%4==0&&e%100!=0}function qW(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(GW[t]||(KW(e)?29:28))}function JW(e,t){return t>=1&&t<=(KW(e)?366:365)}function YW(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function XW(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function ZW(e,t){return t>=0&&t<=59}function QW(e){return e*lU}function $W(e){let t=Math.max(0,Math.round(e));if(t<QW(1))return`${t}ms`;let n=OW(t),r=kW(t-wW(n)),i=AW(t-wW(n)-jW(r));return n>0?`${n}h ${r}m ${i}s`:r>0?`${r}m ${i}s`:`${i}s`}function eG(e){return $W(QW(e))}function tG(e){let t=MW(e);return jU(t)?t:void 0}function nG(e){let t=tG(e);return t===void 0?e:DW(t)?bW(t,`HH:mm:ss`):EW(t)?bW(t,`MMM d, HH:mm:ss`):bW(t,`MMM d yyyy, HH:mm:ss`)}function rG(e){let t=tG(e);return t===void 0?e:bW(t,`PPpp zzzz`)}function iG(e){let t=tG(e);return t===void 0?e:CW(t,{addSuffix:!0})}function aG({at:e,className:t,relative:n=!1}){let r=tG(e);return r===void 0?(0,W.jsx)(`span`,{className:t,children:e}):(0,W.jsx)(`time`,{className:t,dateTime:r.toISOString(),title:rG(e),children:n?iG(e):nG(e)})}var oG={decisions:{label:`Decisions`,description:`Decision points and settlements only`,profile:FD.planner},activity:{label:`Detailed activity`,description:`Every record all three producers put on the stream`,profile:FD.monitor}};function sG(e){return e!==null&&Object.hasOwn(oG,e)}var cG={timeline:`Timeline`,task:`Task`,criteria:`Acceptance criteria`,dependencies:`Dependencies`,pr:`PR`,checks:`Checks`};function lG(e){return e!==null&&Object.hasOwn(cG,e)}function uG(){let e=(0,U.useSyncExternalStore)(dG,fG,fG),t=new URLSearchParams(e),n=t.get(`run`)??void 0,r=t.get(`node`)??void 0,i=t.get(`event`)??void 0,a=t.get(`view`),o=t.get(`tab`),s=t.get(`detail`),c=sG(s)?s:`activity`,l=lG(o)?o:`timeline`,u=a===`graph`||a===`overall`?a:r===void 0?`overall`:`graph`,d=(0,U.useCallback)(e=>{let t=new URLSearchParams(window.location.search);e(t),window.history.pushState(null,``,`${window.location.pathname}?${t}`),window.dispatchEvent(new PopStateEvent(`popstate`))},[]);return{runId:n,nodeId:r,itemId:i,view:u,detail:c,nodeTab:l,selectRun:e=>d(t=>{t.set(`run`,e),t.delete(`node`),t.delete(`event`),t.delete(`tab`)}),selectNode:e=>d(t=>{e?t.set(`node`,e):t.delete(`node`),t.delete(`event`),t.delete(`tab`),t.set(`view`,`graph`)}),selectItem:e=>d(t=>{e?t.set(`event`,e):t.delete(`event`)}),showOverall:()=>d(e=>{e.set(`view`,`overall`),e.delete(`node`),e.delete(`event`),e.delete(`tab`)}),selectDetail:e=>d(t=>{e===`activity`?t.delete(`detail`):t.set(`detail`,e)}),selectNodeTab:e=>d(t=>{e===`timeline`?t.delete(`tab`):t.set(`tab`,e),e!==`timeline`&&t.delete(`event`)})}}function dG(e){return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)}function fG(){return window.location.search}function pG({control:e}){if(e===void 0)return null;let t=e.addressable?`Turn reachable`:`No turn to reach`,n=e.addressable?`a planner's note can be delivered into the ${e.member??`member`} turn in flight`:e.reason,r=e.addressable?It:Ft;return(0,W.jsxs)(ya,{"aria-label":`${t}: ${n}`,className:at(`node-view-control gap-1.5`,e.addressable?`border-info bg-info-surface text-info`:`border-warning bg-warning-surface text-warning`),title:n,variant:`outline`,children:[(0,W.jsx)(r,{"aria-hidden":`true`,size:12}),t]})}var mG={recovery:Ht,failure:qt,human:Jt,planning:Tt,contention:jt,verification:Gt,publication:At,repository:kt,session:Lt,lifecycle:Rt,activity:wt};Object.keys(mG);function hG(e){return e.charAt(0).toUpperCase()+e.slice(1)}var gG=[[`recovery`,[`retry`,`retried`,`fallback`,`resolution`,`interrupted`,`cron`]],[`failure`,[`failed`,`died`,`rejected`,`exceeded`,`conflict`]],[`human`,[`human`]],[`planning`,[`planner`,`decision`]],[`contention`,[`lock`,`concurrent`,`quiet`,`wait`]],[`verification`,[`verification`,`gate`,`check`,`checks`,`coverage`]],[`publication`,[`pr`,`publication`,`published`,`release`,`merge`,`merged`,`change`,`drafting`]],[`repository`,[`edit`,`fetch`,`push`,`branch`,`commit`]],[`session`,[`turn`,`member`,`session`,`heartbeat`,`conversation`]],[`lifecycle`,[`run`,`graph`,`node`,`round`,`step`,`edge`,`setup`,`cleanup`,`driver`,`cross`,`upstream`]]],_G={"completion-requested":`lifecycle`,"body-not-drafted":`publication`};function vG(e){return e.toLowerCase().split(`-`).filter(e=>e.length>0)}function yG(e){let t=_G[e];if(t!==void 0)return t;let n=vG(e);return gG.find(([,e])=>e.some(e=>n.includes(e)))?.[0]??`activity`}function bG({category:e,className:t=`size-3`}){let n=mG[e];return(0,W.jsx)(n,{"aria-hidden":`true`,className:t})}function xG(e){return e===`human-step`?`human step`:e}function SG(e){return e.style===`human-step`}function CG(e){switch(e){case`not-released`:return`not released yet`;case`awaiting-human-step`:return`waiting for the human step`;case`not-answered`:return`the registry did not answer`;case`not-landed`:return`released, but not carrying this work yet`;default:return e}}function wG(e){if(e!==void 0)return e?`yes — a later acknowledgement replaced this one`:`no`}function TG(e){if(e!==void 0)return e===`live`?`Live — into the turn that was already running`:e===`deferred`?`Deferred — onto the node's next dispatch`:e}function EG(e){return[e.identity,e.target].filter(Boolean).join(` · `)||e.dep}function DG({release:e}){let t=[[`Dependency`,e.dep],[`Identity`,e.identity],[`Release target`,e.target],[`Style`,e.style===void 0?void 0:xG(e.style)],[`Version`,e.version],[`Probe outcome`,e.outcome],[`Probed through`,e.form],[`Probe took`,e.elapsed_ms===void 0?void 0:`${e.elapsed_ms} ms`],[`Acknowledged by`,e.actor],[`Superseded`,wG(e.superseded)],[`Landed as`,e.landing_commit],[`Adopted`,TG(e.delivery)]].filter(([,e])=>e!==void 0);return(0,W.jsxs)(W.Fragment,{children:[t.length>0&&(0,W.jsx)(`dl`,{className:`facts`,children:t.map(([e,t])=>(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:e}),(0,W.jsx)(`dd`,{children:t})]},e))}),e.awaiting!==void 0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Held on`}),(0,W.jsx)(`ul`,{className:`release-awaiting`,children:e.awaiting.map(e=>(0,W.jsxs)(`li`,{children:[SG(e)?(0,W.jsxs)(Ji,{children:[(0,W.jsx)(Jt,{}),(0,W.jsxs)(Yi,{children:[`Waiting on a person · `,EG(e)]}),(0,W.jsx)(Xi,{children:e.action??`The release is a human step and the run recorded no action for it.`})]}):(0,W.jsxs)(`p`,{className:`detail-note`,children:[`Waiting on an automated release · `,EG(e)]}),(0,W.jsx)(`p`,{className:`detail-note`,children:[e.last_answer===void 0?void 0:CG(e.last_answer),e.waited_seconds===void 0?void 0:`waited ${e.waited_seconds}s`].filter(e=>e!==void 0).join(` · `)})]},`${e.dep}·${e.identity??``}·${e.target??``}`))})]}),e.versions!==void 0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Versions adopted`}),(0,W.jsx)(`ul`,{className:`release-awaiting`,children:e.versions.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`p`,{className:`detail-note`,children:[e.identity,` · `,e.target,` · `,e.version]})},`${e.identity}·${e.target}`))})]})]})}function OG({node:e}){let t=e.result?.release??void 0;if(t===void 0)return(0,W.jsx)(W.Fragment,{children:`Not recorded`});let n=t.identity!==e.task.repo;return(0,W.jsx)(W.Fragment,{children:[t.target,t.style===void 0?void 0:xG(t.style),t.version,n?t.identity:void 0].filter(e=>e!==void 0).join(` · `)})}function kG(e){return{kind:e.displayKind,label:e.displayLabel,startedAt:e.startedAt,...e.durationMs===null?{}:{duration:$W(e.durationMs)},running:e.endedAt===null&&e.rowKind===`span`,...e.status?{status:e.status}:{}}}function AG({row:e}){let t=kG(e);return(0,W.jsxs)(`header`,{className:`detail-title`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(ya,{className:`mb-1`,variant:`outline`,children:t.kind}),(0,W.jsx)(`h2`,{children:t.label}),(0,W.jsxs)(`p`,{className:`detail-when`,children:[(0,W.jsx)(aG,{at:t.startedAt}),t.duration!==void 0&&` · ${t.duration}`,t.running&&` · still running`]})]}),t.status!==void 0&&(0,W.jsx)(ya,{variant:`secondary`,children:t.status})]})}function jG(e){let t=kG(e);return[t.kind,t.label,nG(t.startedAt),hG(e.category),t.status].filter(e=>e!==void 0&&e.length>0).join(` · `)}function MG({row:e}){return(0,W.jsx)(`span`,{className:`timeline-marker-reading`,"data-timeline-reading":jG(e),children:(0,W.jsx)(bG,{category:e.category})})}var NG=`data-timeline-reading`;function PG(e){let t=e.closest(`[${NG}]`)??e.closest(`button`)?.querySelector(`[${NG}]`);if(!(t instanceof HTMLElement))return;let n=t.getAttribute(NG)?.trim();return n===void 0||n.length===0?void 0:{element:t,detail:n}}var FG={rows:[],total:0},IG={worker:`Worker`,judge:`Judge`,lint:`Lint`,orchestrator:`Orchestrator`,"check-in":`Check-in`,"pr-author":`PR author`,verification:`Verification`,publication:`Publication`,"lock-waits":`Lock waits`,"human-wait":`Human wait`},LG=Object.entries(IG).map(([e,t])=>({id:e,label:t})),RG={run:null,node:null,step:null,dispatch:`worker`,verification:`verification`,publication:`publication`,"pr-drafting":`pr-author`,"conflict-resolution":`publication`,"human-wait":`human-wait`,rollup:`lock-waits`},zG=`llmlint`,BG={worker:`worker`,judge:`judge`,llmlint:`lint`,orchestrator:`orchestrator`,"check-in":`check-in`,"pr-author":`pr-author`},VG={worker:!0,orchestrator:!0,"check-in":!0,"pr-author":!0,judge:!1,llmlint:!1};function HG(e){return IG[BG[e]]}var UG={"lock-wait":`Lock waits`};function WG(e){let t=[...e].sort((e,t)=>e.start-t.start),n=t.at(0)?.start??0,r=Math.max(n+1,...t.map(e=>e.end??e.start)),i=new Set([t.at(0),t.reduce((e,t)=>e===void 0||(t.end??t.start)>(e.end??e.start)?t:e,void 0)].filter(e=>e!==void 0).map(({id:e})=>e)),a=(r-n)*.02,o=[];for(let e of t){let t=Math.max(e.end??e.start,e.start+a),n=o.findLast(n=>{let r=Math.max(n.end??n.start,n.start+a);return e.start<=r&&n.start<=t});n===void 0||i.has(e.id)?o.push(e):KG(e)<KG(n)?i.has(n.id)?o.push(e):o[o.indexOf(n)]=e:GG(e,n,a)||o.push(e)}return o}function GG(e,t,n){return Math.abs(e.start-t.start)<=n&&Math.abs((e.end??e.start)-(t.end??t.start))<=n}function KG(e){let t=e.laneId??``,n=LG.findIndex(({id:e})=>e===t);return n<0?LG.length:n}function qG(e,t,n){let r=[...e.map(({at:e})=>e),...t.flatMap(e=>[e.start,e.end??e.start])],i=Math.min(...r),a=(Math.max(...r)-i)*.02,o=[];for(let t of[...e].sort((e,t)=>e.at-t.at)){let e=o.findLast(e=>t.at-e.at<=a);e===void 0?o.push(t):t.id===n&&(o[o.indexOf(e)]=t)}return o}function JG(e,t){let n=QG(e,t).rows,r=YG(n),i=YG(n,!1),a=i.flatMap(e=>{let t=XG(e);if(t===null)return[];let n=Date.parse(e.startedAt),r=e.endedAt===null?null:Date.parse(e.endedAt),i=e.rowKind===`span`&&e.span.total_duration_ms!==void 0?n+e.span.total_duration_ms:r;return[{id:e.id,label:e.displayLabel,laneId:t,payload:e,start:n,end:i,duration:i===null?null:i-n,status:e.status}]}),o=i.flatMap(e=>e.rowKind===`event`?[{id:e.id,label:e.displayLabel,at:Date.parse(e.startedAt),payload:e,status:e.status,icon:(0,U.createElement)(MG,{row:e})}]:[]),s=Math.max(...a.map(e=>e.end??e.start),...o.map(e=>e.at));return{items:a.map(e=>e.end===null?{...e,end:s,duration:s-e.start}:e),markers:o,lanes:LG,rows:r}}function YG(e,t=!0){let n=new Set,r=[],i=e=>{for(let a of e)n.has(a.id)||(n.add(a.id),r.push(a)),(t||a.rowKind!==`group`)&&i(a.children)};return i(e),r}function XG(e){if(e.rowKind===`event`)return null;let t=ZG(e.role);return t===null?RG[e.rowKind===`span`?e.span.kind:e.kind]??null:t}function ZG(e){return e===void 0?null:BG[e]??null}function QG(e,t){if(e===void 0)return FG;let n=e.spans.filter(e=>e.node_id===t);if(n.length===0){let n=bK(e.spans,new Set,t);return n.length===0?FG:{rows:fK(n),total:n.length}}let r=new Set(n.map(({id:e})=>e)),i=new Map,a=[];for(let e of n){let t=e.parent_id!==void 0&&r.has(e.parent_id)?e.parent_id:void 0;t===void 0?a.push(e):i.set(t,[...i.get(t)??[],e])}let o=a.find(({kind:e})=>e===`node`),s=fK(gK(hK(fK([...o===void 0?[]:rK(o,i),...a.filter(e=>e!==o).map(e=>iK(e,i)),...bK(e.spans,r,t)].sort(SK)))));return{span:o,rows:s,total:xK(s)}}function $G(e){return iK(e,new Map)}function eK(e){return dK(e)}function tK(e,t){return nK(e,t).at(-1)}function nK(e,t){for(let n of e){if(n.id===t)return[n];let e=nK(n.children,t);if(e.length>0)return[n,...e]}return[]}function rK(e,t){return[...(t.get(e.id)??[]).map(e=>iK(e,t)),...e.events.map(dK)].sort(SK)}function iK(e,t){let n=aK(e);return{rowKind:`span`,span:e,id:e.id,kind:e.kind,role:n,label:e.label,startedAt:e.started_at,endedAt:e.ended_at,status:e.status,durationMs:e.total_duration_ms??CK(e.started_at,e.ended_at),children:fK(rK(e,t)),displayLabel:mK(e,n),displayKind:pK(e,n),...e.kind===`dispatch`&&e.label?{sessionName:e.label}:{}}}function aK(e){return e.kind===`dispatch`?oK(e):void 0}function oK(e){if(e.agent_role!==void 0)return e.transport_role===`llmlint`?zG:e.agent_role}function sK(e){let t=oK(e);return t===void 0?RG[e.kind===`rollup`?e.label:e.kind]??null:BG[t]??null}function cK(e){return IG[e]}function lK(e){if(e.redirection!==void 0)return e.redirection.delivered?`Redirected into the running turn`:`Redirection deferred to the next dispatch`}var uK=`Redirection`;function dK(e){let t=lK(e);return{rowKind:`event`,event:e,id:e.id,kind:e.kind,label:e.step_id??``,startedAt:e.at,endedAt:null,status:e.status,durationMs:null,children:[],displayLabel:t??(e.kind===`retry-requested`?`Retry requested`:e.step_id??e.kind),displayKind:t===void 0?`Event`:uK,category:yG(e.kind)}}function fK(e){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(r===void 0)continue;let i=n;for(;i+1<e.length&&yK(r,e[i+1]);)i+=1;let a=e.slice(n,i+1),o=a.at(-1);a.length<8||o===void 0?t.push(...a):t.push({rowKind:`group`,count:a.length,id:`group-${r.id}`,kind:r.kind,label:`${a.length} × ${r.kind}`,startedAt:r.startedAt,endedAt:o.endedAt,status:void 0,durationMs:CK(r.startedAt,o.endedAt),children:a,displayLabel:`${a.length} grouped ${r.displayKind.toLowerCase()} activities`,displayKind:r.displayKind}),n=i}return t}function pK(e,t){if(e.kind===`step`)return`Lifecycle`;if(e.kind===`rollup`)return UG[e.label]??e.label;let n=ZG(t)??RG[e.kind];return n==null?e.kind:IG[n]}function mK(e,t){if(e.kind===`step`)return e.label?`Lifecycle: ${e.label}`:`Lifecycle step`;let n=pK(e,t);return e.kind===`rollup`?`${n}: ${e.count??0} recorded`:!e.label||e.label===n?n:e.kind===`dispatch`?`${n} (${e.label})`:`${n}: ${e.label}`}function hK(e){let t=0;return e.map(e=>{e.rowKind===`event`&&e.event.kind===`retry-requested`&&(t+=1);let n=hK(e.children);return e.role!==`worker`||t===0?{...e,children:n}:{...e,children:n,displayLabel:`${e.displayLabel} · retry ${t}`}})}function gK(e){let t=[],n=-1,r=0,i=(e,t)=>({...e,dispatch:t,children:e.children.map(e=>i(e,t))});for(let a of e){if(_K(a.role)){r+=1,n=t.length,t.push(i(a,{id:a.id,label:`Dispatch ${r}`}));continue}let e=n<0?void 0:t[n];if(vK(a.role)&&e?.dispatch!==void 0){t[n]={...e,children:[...e.children,i(a,e.dispatch)]};continue}t.push(a)}return t}function _K(e){return e!==void 0&&VG[e]===!0}function vK(e){return e!==void 0&&VG[e]===!1}function yK(e,t){return t!==void 0&&e.rowKind===`span`&&t.rowKind===`span`&&e.kind===t.kind}function bK(e,t,n){return e.filter(({id:e})=>!t.has(e)).flatMap(({events:e})=>e.filter(e=>e.node_id===n)).map(dK)}function xK(e){return e.reduce((e,t)=>e+(t.rowKind===`group`?0:1)+xK(t.children),0)}function SK(e,t){return e.startedAt.localeCompare(t.startedAt)}function CK(e,t){if(t===null)return null;let n=Date.parse(e),r=Date.parse(t);return Number.isNaN(n)||Number.isNaN(r)?null:r-n}function wK(e,t,n,r){let[i,a]=(0,U.useState)(),o=t===void 0||n===void 0?void 0:JSON.stringify([t,n]);(0,U.useEffect)(()=>{if(o===void 0||t===void 0||n===void 0)return;let r=!0;return e.getConversation(t,n).then(e=>{r&&a({key:o,conversation:e})}).catch(e=>{if(!r)return;let t=e instanceof Error?e:Error(String(e));a(e=>e?.key===o&&e.conversation!==void 0?e:{key:o,error:t})}),()=>{r=!1}},[e,t,n,o,r]);let s=i?.key===o?i:void 0;return(0,U.useMemo)(()=>({conversation:s?.conversation,error:s?.error,loading:o!==void 0&&s===void 0}),[s,o])}var TK=32;function EK(e){return e===null?null:e.closest(`[data-slot="scroll-area-viewport"]`)??e.parentElement}function DK(e,t){let n=(0,U.useRef)(null),r=(0,U.useRef)(!0),i=(0,U.useRef)({key:e,count:t}),a=(0,U.useCallback)(()=>{let e=n.current;e!==null&&(r.current=e.scrollHeight-e.scrollTop-e.clientHeight<=TK)},[]),o=(0,U.useCallback)(e=>{n.current?.removeEventListener(`scroll`,a),n.current=EK(e),n.current?.addEventListener(`scroll`,a,{passive:!0}),a()},[a]);return(0,U.useLayoutEffect)(()=>{let a=i.current;i.current={key:e,count:t};let o=a.key===e&&a.count>0&&t>a.count,s=n.current;!o||s===null||!r.current||(s.scrollTop=s.scrollHeight)},[e,t]),o}var OK=25,kK=4e3;function AK({client:e,runId:t,node:n,row:r}){let i=r===void 0?void 0:KK(r),a=i?.kind===`conversation`?i.value:void 0,o=wK(e,t,a,r===void 0?void 0:HK(r));return(0,W.jsx)(`section`,{"aria-label":`Timeline item detail`,className:`timeline-detail`,children:(0,W.jsx)(vl,{className:`h-full`,children:(0,W.jsx)(`div`,{className:`p-[22px] max-sm:p-3`,ref:DK(a,UK(r,o)),children:r===void 0?(0,W.jsxs)(`div`,{className:`detail-placeholder`,children:[(0,W.jsx)(Nt,{size:30}),(0,W.jsx)(`p`,{children:`Select an item in the timeline to read what it recorded.`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(AG,{row:r}),(0,W.jsx)(jl,{className:`my-4`}),(0,W.jsx)(jK,{client:e,runId:t,node:n,reference:i,row:r,transcript:o})]})})})})}function jK({client:e,runId:t,row:n,node:r,reference:i,transcript:a}){let o=WK(n);if(o!==void 0)return(0,W.jsx)(zK,{redirection:o,row:n});let s=GK(n);return s===void 0?i?.kind===`conversation`?(0,W.jsx)(MK,{row:n,transcript:a}):JK(n)?(0,W.jsx)(NK,{client:e,runId:t,reference:i,row:n}):i?.kind===`worker_report`&&LK(i.value)!==void 0?(0,W.jsx)(PK,{artifactId:i.value,client:e,reference:i,row:n,runId:t}):i?.kind===`oneharness_session`&&LK(i.value)!==void 0?(0,W.jsx)(FK,{artifactId:i.value,client:e,reference:i,row:n,runId:t}):YK(n,i)&&r!==void 0?(0,W.jsx)(RK,{node:r,reference:i}):(0,W.jsx)(BK,{reference:i,row:n}):(0,W.jsx)(DG,{release:s})}function MK({row:e,transcript:t}){let[n,r]=(0,U.useState)(OK),i=t.conversation?.conversation.turns??[],a=e.rowKind===`event`?i.filter(({id:t})=>t===e.event.id):i,o=Pd(a.map(e=>({id:e.id,time:Date.parse(e.timestamp)})));if(t.loading)return(0,W.jsxs)(`div`,{"aria-live":`polite`,className:`loading-inline`,children:[(0,W.jsx)(Ml,{className:`h-2 w-40`}),(0,W.jsx)(Ml,{className:`h-2 w-24`}),`Loading transcript…`]});if(t.conversation===void 0)return(0,W.jsxs)(Ji,{variant:`destructive`,children:[(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:`Transcript unavailable`}),(0,W.jsx)(Xi,{children:t.error?.message??`The server recorded no transcript.`})]});let{conversation:s,attribution:c}=t.conversation,l=XK(c.agentRole,c.transportRole);return(0,W.jsx)(Sa,{className:`gap-0 py-3`,children:(0,W.jsxs)(Ca,{className:`px-3`,children:[(0,W.jsxs)(`header`,{className:`transcript-header`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`p`,{className:`eyebrow`,children:[e.dispatch===void 0?``:`${e.dispatch.label} · `,l,c.persona?` · ${c.persona}`:``]}),(0,W.jsx)(`h4`,{children:s.name})]}),(0,W.jsx)(Id,{state:s.state})]}),(0,W.jsx)(jl,{className:`my-2.5`}),(0,W.jsx)(`div`,{className:`conversation-timeline-sticky`,children:(0,W.jsx)(Nd,{cursor:o.cursor,onSelectTurn:o.scrollTo,turns:[...a]})}),a.length===0?(0,W.jsx)(`p`,{className:`detail-note`,children:`This turn is no longer part of the recorded transcript.`}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{ref:o.containerRef,children:a.slice(0,n).map(e=>(0,W.jsx)(`div`,{ref:t=>o.register(e.id,t),children:(0,W.jsx)(Ax,{author:{label:l},turn:e})},e.id))}),a.length>n&&(0,W.jsxs)(xa,{onClick:()=>r(n+OK),size:`sm`,type:`button`,variant:`outline`,children:[`Show more of `,a.length,` turns`]})]})]})})}function NK({row:e,client:t,runId:n,reference:r}){let i=e.rowKind===`span`?e.span.detail:void 0,a=i?.artifact_id??(r?.kind===`gate_log`?r.value:void 0);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Verification record`}),(0,W.jsx)(`dl`,{className:`facts`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Result`}),(0,W.jsx)(`dd`,{children:i?.ok===void 0?e.status??`in progress`:i.ok?`passed`:`failed`})]})}),i?.output_tail&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Output`}),(0,W.jsx)(`pre`,{children:i.output_tail})]}),(0,W.jsx)(IK,{artifactId:a,client:t,heading:`Full log`,missing:`No readable log was recorded.`,noun:`log`,runId:n,unreadable:`No readable log was recorded.`}),(0,W.jsxs)(`p`,{className:`detail-note`,children:[`Verification `,e.status??`in progress`,`.`]})]})}function PK({artifactId:e,client:t,reference:n,row:r,runId:i}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(IK,{artifactId:e,client:t,heading:`Worker report`,missing:`This settlement recorded no report.`,noun:`report`,runId:i,unreadable:`This run kept no readable copy of that report.`}),(0,W.jsx)(BK,{reference:n,row:r})]})}function FK({artifactId:e,client:t,reference:n,row:r,runId:i}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(IK,{artifactId:e,client:t,heading:`Oneharness conversation`,missing:`This record named no conversation.`,noun:`conversation`,runId:i,unreadable:`The history store holds no readable copy of that conversation.`}),(0,W.jsx)(BK,{reference:n,row:r})]})}function IK({artifactId:e,client:t,heading:n,missing:r,noun:i,runId:a,unreadable:o}){let[s,c]=(0,U.useState)(),[l,u]=(0,U.useState)(!1),[d,f]=(0,U.useState)(!1),p=LK(e);return(0,U.useEffect)(()=>{let e=!0;if(c(void 0),u(!1),f(!1),p!==void 0)return t.getArtifact(a,p).then(t=>{e&&c(t.content)}).catch(()=>{e&&(u(!0),c(null))}),()=>{e=!1}},[t,a,p]),(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:n}),p===void 0?(0,W.jsx)(`p`,{className:`detail-note`,children:r}):s===void 0?(0,W.jsxs)(`p`,{"aria-live":`polite`,className:`detail-note`,children:[`Loading `,i,`…`]}):l||s===null?(0,W.jsx)(`p`,{"aria-live":`polite`,className:`detail-note`,children:o}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`pre`,{children:d?s:s.slice(-4e3)}),s.length>kK&&(0,W.jsx)(xa,{onClick:()=>f(!d),size:`sm`,type:`button`,variant:`outline`,children:d?`Collapse ${i}`:`Expand ${i}`})]})]})}function LK(e){if(!(e===void 0||/[/?#]/u.test(e)))return e}function RK({node:e,reference:t}){let n=e.detail?.verification.checks??[],r=e.detail?.publication;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Publication`}),r?.pr_url&&(0,W.jsx)(VK,{fallback:``,reference:{kind:`pr`,value:r.pr_url}}),r?.merged&&r.commit_url?(0,W.jsx)(`p`,{className:`detail-link`,children:(0,W.jsxs)(`a`,{href:r.commit_url,rel:`noreferrer`,target:`_blank`,children:[`Merged commit `,r.commit?.slice(0,8),` `,(0,W.jsx)(Ot,{size:13})]})}):r?.branch_url?(0,W.jsx)(`p`,{className:`detail-link`,children:(0,W.jsxs)(`a`,{href:r.branch_url,rel:`noreferrer`,target:`_blank`,children:[`Branch `,r.branch,` `,(0,W.jsx)(Ot,{size:13})]})}):!r?.pr_url&&(0,W.jsx)(VK,{fallback:`No publication was recorded.`,reference:t}),(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Observed checks`}),n.length===0?(0,W.jsx)(`p`,{className:`detail-note`,children:`No checks were observed on this node.`}):(0,W.jsx)(`dl`,{className:`facts`,children:n.map(e=>(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:e.name}),(0,W.jsx)(`dd`,{children:e.url?(0,W.jsx)(`a`,{href:e.url,rel:`noreferrer`,target:`_blank`,children:e.state}):e.state})]},e.name))})]})}function zK({redirection:e,row:t}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Delivery`}),(0,W.jsx)(`dd`,{children:e.delivered?`Live — into the turn that was already running`:`Deferred — onto the node's next dispatch`})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Redirected at`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(aG,{at:t.startedAt,relative:!0})})]}),e.member!==void 0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Member`}),(0,W.jsx)(`dd`,{children:e.member})]}),e.input_bytes!==void 0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Note`}),(0,W.jsxs)(`dd`,{children:[e.input_bytes,` bytes offered`]})]})]}),e.reason!==void 0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Why it was not delivered`}),(0,W.jsx)(`p`,{className:`detail-note`,children:e.reason})]})]})}function BK({row:e,reference:t}){let n=e.rowKind===`group`?void 0:e,r=e.rowKind===`span`&&e.span.count!==void 0?`${e.span.count} records`:void 0;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Recorded at`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(aG,{at:e.startedAt,relative:!0})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Ended`}),(0,W.jsx)(`dd`,{children:e.endedAt===null?`Still running`:(0,W.jsx)(aG,{at:e.endedAt,relative:!0})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Status`}),(0,W.jsx)(`dd`,{children:e.status??`Not recorded`})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Duration`}),(0,W.jsx)(`dd`,{children:e.durationMs===null?`Not recorded`:$W(e.durationMs)})]}),r!==void 0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Aggregated`}),(0,W.jsx)(`dd`,{children:r})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Step`}),(0,W.jsx)(`dd`,{children:qK(n)??`None`})]})]}),(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Reference`}),(0,W.jsx)(VK,{fallback:`This item points at no recorded artifact.`,reference:t})]})}function VK({reference:e,fallback:t}){return e===void 0?(0,W.jsx)(`p`,{className:`detail-note`,children:t}):e.value.startsWith(`http`)?(0,W.jsx)(`p`,{className:`detail-link`,children:(0,W.jsxs)(`a`,{href:e.value,rel:`noreferrer`,target:`_blank`,children:[e.value,` `,(0,W.jsx)(Ot,{size:13})]})}):(0,W.jsxs)(`p`,{className:`detail-note`,children:[(0,W.jsx)(`span`,{className:`detail-reference-kind`,children:e.kind}),(0,W.jsx)(`code`,{children:e.value})]})}function HK(e){if(e.rowKind!==`span`)return e.id;let t=e.span.events.at(-1);return[e.span.id,e.span.status??``,e.span.ended_at??``,e.span.events.length,t?.id??``,t?.at??``,t?.status??``].join(`|`)}function UK(e,t){return t.conversation===void 0?0:e?.rowKind===`event`?1:t.conversation.conversation.turns.length}function WK(e){return e.rowKind===`event`?e.event.redirection:void 0}function GK(e){return e.rowKind===`event`?e.event.release:void 0}function KK(e){if(e.rowKind===`span`)return e.span.reference;if(e.rowKind===`event`)return e.event.reference}function qK(e){if(e?.rowKind===`span`)return e.span.step_id;if(e?.rowKind===`event`)return e.event.step_id}function JK(e){return e.kind===`verification`||e.kind.startsWith(`verification-`)}function YK(e,t){return t?.kind===`pr`||e.kind===`publication`||e.kind.startsWith(`pr-`)||e.kind.startsWith(`publication-`)}function XK(e,t){return HG(t===`llmlint`?zG:e)}function ZK({client:e,runId:t,node:n,timeline:r,timelineError:i,selectedItemId:a,onSelectItem:o,onBack:s,selectedTab:c,onSelectTab:l}){let u=(0,U.useMemo)(()=>QG(r,n.id),[r,n.id]);(0,U.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(a===void 0?s():o())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,o,a]);let d=n.detail?.publication===void 0?n.result?.pr??void 0:n.detail.publication.pr_url;return(0,W.jsxs)(`section`,{"aria-label":`Timeline for ${n.label}`,className:`node-view`,children:[(0,W.jsxs)(`header`,{className:`node-view-head`,children:[(0,W.jsx)(`nav`,{"aria-label":`Breadcrumb`,children:(0,W.jsxs)(`ol`,{className:`breadcrumb`,children:[(0,W.jsx)(`li`,{children:(0,W.jsxs)(xa,{onClick:s,size:`sm`,type:`button`,variant:`ghost`,children:[(0,W.jsx)(_t,{size:14}),` Graph`]})}),(0,W.jsx)(`li`,{"aria-current":`page`,children:(0,W.jsx)(`span`,{className:`breadcrumb-node`,children:n.label})})]})}),(0,W.jsxs)(`div`,{className:`node-view-facts`,children:[(0,W.jsx)(qH,{className:`node-view-state`,state:n.status}),(0,W.jsx)(pG,{control:n.control}),(0,W.jsxs)(`span`,{className:`node-view-meta`,children:[n.kind,` node · `,n.telemetry?.turns??0,` turns ·`,` `,n.telemetry?.lint??0,` lint turns`]}),d!==void 0&&(0,W.jsxs)(`a`,{className:`node-view-pr`,href:d,rel:`noreferrer`,target:`_blank`,children:[`Pull request `,(0,W.jsx)(Ot,{size:12})]})]})]}),(0,W.jsx)(aq,{node:n}),(0,W.jsxs)(Au,{className:`node-tabs`,onValueChange:e=>{lG(e)&&l(e)},value:c,children:[(0,W.jsx)(Mu,{"aria-label":`Node details`,variant:`line`,children:Object.entries(cG).map(([e,t])=>(0,W.jsx)(Nu,{value:e,children:t},e))}),(0,W.jsxs)(Pu,{className:`node-tab-panel`,value:`task`,children:[(0,W.jsx)(`pre`,{children:nq(n.task)}),(0,W.jsx)(`dl`,{className:`facts`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Outcome`}),(0,W.jsx)(`dd`,{children:oq(n.result?.detail)})]})})]}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`criteria`,children:(0,W.jsx)(`pre`,{children:rq(n.task)})}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`dependencies`,children:(0,W.jsx)(`dl`,{className:`facts`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Dependencies`}),(0,W.jsx)(`dd`,{children:n.task.deps?.join(`, `)||`None`})]})})}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`pr`,children:(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Publication`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(iq,{node:n})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Release`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(OG,{node:n})})]})]})}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`checks`,children:(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Verification coverage`}),(0,W.jsxs)(`dd`,{children:[`Hook:`,` `,n.detail?.verification.pre_push_hook?`present`:`not recorded`,` · `,`Required checks:`,` `,n.detail?.verification.required_checks?.join(`, `)||`none configured`]})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Observed checks`}),(0,W.jsx)(`dd`,{children:(n.detail?.verification.checks??[]).length===0?`No checks observed`:n.detail?.verification.checks?.map((e,t)=>(0,W.jsxs)(`span`,{children:[t>0&&` · `,e.url?(0,W.jsxs)(`a`,{href:e.url,rel:`noreferrer`,target:`_blank`,children:[e.name,`: `,e.state]}):`${e.name}: ${e.state}`]},e.name))})]})]})}),(0,W.jsx)(Pu,{className:`node-timeline-panel`,value:`timeline`,children:i===void 0?r===void 0?(0,W.jsx)(`div`,{"aria-live":`polite`,className:`loading-state`,children:`Loading the recorded timeline…`}):u.rows.length===0?(0,W.jsxs)(Sa,{className:`m-5 items-center gap-2 p-8 text-muted-foreground`,children:[(0,W.jsx)(`p`,{className:`m-0`,children:`This node has no recorded timeline yet.`}),(0,W.jsx)(`p`,{className:`m-0 text-[11px]`,children:`Spans and events appear here as the run records them.`})]}):(0,W.jsx)(QK,{client:e,node:n,onSelectItem:o,runId:t,selectedItemId:a,timeline:r}):(0,W.jsxs)(Ji,{className:`m-5 w-auto`,variant:`destructive`,children:[(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:`Timeline unavailable`}),(0,W.jsx)(Xi,{children:i.message})]})})]})]})}function QK({client:e,node:t,onSelectItem:n,runId:r,selectedItemId:i,timeline:a}){let o=(0,U.useMemo)(()=>JG(a,t.id),[a,t.id]),s=Pd((0,U.useMemo)(()=>o.rows.map(e=>({id:e.id,time:Date.parse(e.startedAt)})),[o.rows])),[c,l]=(0,U.useState)(!1),u=(0,U.useMemo)(()=>WG(o.items),[o.items]),d=(0,U.useMemo)(()=>qG(o.markers,o.items,i),[o.items,o.markers,i]),f=(0,U.useMemo)(()=>$K(o.items),[o.items]),p=s.cursor===void 0?void 0:Math.min(Math.max(s.cursor,f[0]),f[1]),m=i===void 0?void 0:tK(o.rows,i),h=e=>{n(e),s.scrollTo(e)};return(0,U.useEffect)(()=>{i!==void 0&&s.scrollTo(i)},[i,s]),(0,W.jsxs)(`div`,{className:`node-execution`,"data-expanded":c,children:[(0,W.jsx)(`section`,{"aria-label":`Node timeline`,className:`node-timeline-sticky`,"data-testid":`node-timeline`,children:(0,W.jsx)(un,{axis:{origin:f[0]},cursor:p,expanded:c,getFailureExcerpt:e=>e.payload.rowKind===`span`?e.payload.span.detail?.output_tail:void 0,items:c?o.items:u,lanes:o.lanes,markers:d,onExpandedChange:l,onSelect:e=>h(e.id),selectedId:i})}),(0,W.jsx)(`section`,{"aria-label":`Node transcript`,className:`node-transcript`,ref:s.containerRef,children:eq(o.rows).map(e=>{let t=e.rows.map(e=>(0,W.jsx)(tq,{onOpen:h,register:s.register,row:e,selected:e.id===i},e.id));return e.dispatch===void 0?(0,W.jsx)(U.Fragment,{children:t},e.id):(0,W.jsxs)(`section`,{"aria-label":e.dispatch.label,className:`transcript-dispatch`,children:[(0,W.jsx)(`h3`,{children:e.dispatch.label}),t]},e.id)})}),m!==void 0&&(0,W.jsxs)(`aside`,{"aria-label":`Item detail panel`,className:`detail-drawer`,children:[(0,W.jsx)(xa,{"aria-label":`Close detail`,className:`drawer-close`,onClick:()=>n(),size:`icon`,variant:`ghost`,children:(0,W.jsx)(Xt,{})}),(0,W.jsx)(AK,{client:e,node:t,row:m,runId:r})]})]})}function $K(e){let t=e.map(({start:e})=>e),n=e.map(e=>e.end??e.start);if(t.length===0)return[0,1];let r=Math.min(...t),i=Math.max(...n);return[r,i>r?i:r+1]}function eq(e){let t=[];for(let n of e){let e=t.at(-1);n.dispatch!==void 0&&e?.dispatch!==void 0&&e.dispatch.id===n.dispatch.id?e.rows.push(n):t.push({id:n.id,dispatch:n.dispatch,rows:[n]})}return t}function tq({row:e,selected:t,register:n,onOpen:r}){return(0,W.jsx)(`article`,{"aria-label":e.displayLabel,className:`transcript-item`,"data-dispatch-group":e.dispatch?.label,"data-selected":t,ref:t=>n(e.id,t),children:(0,W.jsxs)(`button`,{"aria-label":`Open ${e.displayLabel}`,onClick:()=>r(e.id),type:`button`,children:[(0,W.jsxs)(`span`,{className:`eyebrow`,children:[e.rowKind===`event`&&(0,W.jsx)(bG,{category:e.category}),e.displayKind]}),(0,W.jsx)(`strong`,{children:e.displayLabel}),(0,W.jsxs)(`span`,{className:`transcript-facts`,children:[(0,W.jsx)(aG,{at:e.startedAt}),e.durationMs!==null&&` · ${$W(e.durationMs)}`,` · ${e.status??`recorded`}`,e.sessionName!==void 0&&` · ${e.sessionName}`]})]})})}function nq(e){if(e.task!==void 0)return e.task;let t=e.steps??[];return t.length===0?`No task prose recorded.`:t.map(e=>`## ${e.id}\n\n${e.task}`).join(`
|
|
54
|
+
M${w.x},${w.y}h${w.width}v${w.height}h${-w.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}CH.displayName=`MiniMap`,(0,U.memo)(CH);var wH=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,TH={[fR.Line]:`right`,[fR.Handle]:`bottom-right`};function EH({nodeId:e,position:t,variant:n=fR.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:s=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:f,autoScale:p=!0,shouldResize:m,onResizeStart:h,onResize:g,onResizeEnd:_}){let v=iB(),y=typeof e==`string`?e:v,b=VR(),x=(0,U.useRef)(null),S=n===fR.Handle,C=BR((0,U.useCallback)(wH(S&&p),[S,p]),IR),w=(0,U.useRef)(null),T=t??TH[n];return(0,U.useEffect)(()=>{if(!(!x.current||!y))return w.current||=CR({domNode:x.current,nodeId:y,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=b.getState(),o=[],s={x:e.x,y:e.y},c=r.get(y);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=AL([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...FI({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:y,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:y,type:`dimensions`,resizing:!0,setAttributes:f?f===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:y,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};b.getState().triggerNodeChanges([n])}}),w.current.update({controlPosition:T,boundaries:{minWidth:s,minHeight:c,maxWidth:l,maxHeight:u},keepAspectRatio:d,resizeDirection:f,onResizeStart:h,onResize:g,onResizeEnd:_,shouldResize:m}),()=>{w.current?.destroy()}},[T,s,c,l,u,d,h,g,_,m]),(0,W.jsx)(`div`,{className:eA([`react-flow__resize-control`,`nodrag`,...T.split(`-`),n,r]),ref:x,style:{...i,scale:C,...o&&{[S?`backgroundColor`:`borderColor`]:o}},children:a})}(0,U.memo)(EH);function DH(e){return e.graph??void 0}function OH(e){let t=DH(e);if(!t)return[];let n=new Map(e.run.nodes.map(e=>[e.node,e]));return t.plan.tasks.flatMap(r=>{let i=RH(r,`kind`)===`human`?`human`:zH(r)?`lifecycle`:`agent`,a=t.node_results[r.id]??t.result?.results?.[r.id],o=t.node_status[r.id];return o===void 0?[]:[{id:r.id,label:RH(r,`name`)??r.id,status:o,kind:i,task:r,telemetry:n.get(r.id),result:a,detail:e.node_details[r.id],control:t.node_control[r.id],failure:n.get(r.id)?.failure,blockers:[...t.node_gated_by[r.id]??[],...a?.blocked_by??[]]}]})}function kH(e){switch(e?.launcher){case`claude-code`:return`Claude`;case`codex`:return`Codex`;default:return`Unattributed`}}function AH(e){let t=kH(e);return e?.session_key===void 0?e===void 0?`Unattributed`:`${t} launch · ${BH(e.launch_id)}`:`${t} session · ${BH(e.session_key)}`}function jH(e){if(e.blockers.length>0&&NH.has(e.status))return`blocked by ${e.blockers.join(`, `)}`;if(PH.has(e.status))return MH(e)??`${e.status}, with no reason recorded`}function MH(e){return(e.failure?.detail||e.result?.detail||e.result?.error||e.telemetry?.outcome||e.result?.outcome)?.trim()||void 0}var NH=new Set([`blocked`,`skipped`,`waiting`]),PH=new Set([`failed`,`not-completed`,`cancelled`]);function FH(e){let t=Gk,n=t=>(e[t]??0)>0;return[...t.filter(n),...Object.keys(e).filter(e=>!t.includes(e)).sort().filter(n)].map(t=>`${e[t]} ${t}`).join(` · `)}function IH(e){return PH.has(e)||e===`blocked`||e===`skipped`}function LH(e){let t=new Map;for(let n of e){let e=n.launch?.session_key,r=e===void 0?`run:${n.run_id}`:`session:${n.launch?.launcher}:${e}`,i=t.get(r);t.set(r,{id:r,launcher:kH(n.launch),label:AH(n.launch),runs:[...i?.runs??[],n]})}return[...t.values()]}function RH(e,t){let n=e[t];return typeof n==`string`&&n.length>0?n:void 0}function zH(e){return`repo`in e||`steps`in e}function BH(e){return e.length>12?`${e.slice(0,8)}…`:e}function VH({data:e}){let t=e.style===`success`?yt:e.style===`danger`||e.style===`muted`?Xt:e.style===`active`?Ct:Et;return(0,W.jsxs)(`article`,{"aria-label":`${e.label}: ${e.state}`,className:at(`dag-node`,`state-${e.state}`,`token-${e.style}`),"data-selected":e.selected,children:[(0,W.jsx)(fB,{type:`target`,position:$.Left}),(0,W.jsxs)(`div`,{className:`node-heading`,children:[(0,W.jsx)(ya,{className:`px-1.5 py-0 text-[9px] tracking-[.1em] uppercase`,variant:`outline`,children:e.kind}),(0,W.jsx)(t,{className:at(e.style===`active`&&`spin`),size:17})]}),(0,W.jsx)(`strong`,{children:e.label}),(0,W.jsx)(`span`,{className:`node-status`,children:e.state}),e.reason!==void 0&&(0,W.jsx)(`span`,{className:`node-reason`,title:e.reason,children:e.reason}),(0,W.jsx)(fB,{type:`source`,position:$.Right})]})}function HH({data:e,id:t,markerEnd:n,style:r}){return(0,W.jsx)(KB,{id:t,path:UH(e?.points??[]),markerEnd:n,style:r})}function UH(e){let[t,...n]=e;return t?`M ${t.x} ${t.y} ${n.map(e=>`L ${e.x} ${e.y}`).join(` `)}`:``}var WH={dagNode:VH},GH={routed:HH};function KH({nodes:e,selectedNodeId:t,onSelectNode:n}){let r=(0,U.useMemo)(()=>{let t=new Map;for(let n of e)IH(n.status)&&t.set(n.id,jH(n));return t},[e]),{nodes:i,edges:a}=(0,U.useMemo)(()=>{let n=new Set(e.map(e=>e.id)),i=$k({nodes:e.map(e=>({id:e.id,label:e.label,kind:e.kind,state:e.status})),edges:e.flatMap(e=>(e.task.deps??[]).filter(e=>n.has(e)).map(t=>({id:`${t}->${e.id}`,source:t,target:e.id})))});return{nodes:i.nodes.map(e=>({id:e.id,type:`dagNode`,position:{x:e.x,y:e.y},data:{label:e.label,kind:e.kind,state:e.state,style:e.style,selected:e.id===t,...r.get(e.id)===void 0?{}:{reason:r.get(e.id)}},style:{width:e.width,height:e.height}})),edges:i.edges.map(t=>({id:t.id,source:t.source,target:t.target,type:`routed`,data:{points:t.points},animated:e.find(({id:e})=>e===t.target)?.status===`running`}))}},[e,r,t]);return(0,W.jsxs)(`div`,{className:`graph-wrap`,children:[(0,W.jsxs)(GV,{nodes:i,edges:a,colorMode:`dark`,nodeTypes:WH,edgeTypes:GH,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!0,fitView:!0,minZoom:.05,onNodeClick:(e,t)=>n(t.id),"aria-label":`DAG execution graph`,children:[(0,W.jsx)(QV,{color:`var(--border)`,gap:22}),(0,W.jsx)(sH,{showInteractive:!1})]}),(0,W.jsx)(`ol`,{className:`accessible-node-list`,"aria-label":`DAG nodes`,children:e.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`button`,{type:`button`,onClick:()=>n(e.id),children:[e.label,`: `,e.status,r.get(e.id)===void 0?``:` — ${r.get(e.id)}`]})},e.id))})]})}function qH({className:e,state:t}){return(0,W.jsxs)(ya,{className:at(`gap-1.5 tracking-[.03em] uppercase`,QH[t],e),variant:`outline`,children:[(0,W.jsx)(`span`,{"aria-hidden":`true`,className:at(`size-1.5 rounded-full bg-current`,t===`running`&&`animate-pulse`)}),t]})}var JH=`border-success bg-success-surface text-success`,YH=`border-destructive bg-destructive-surface text-destructive`,XH=`border-warning bg-warning-surface text-warning`,ZH={blocked:XH,cancelled:YH,done:JH,failed:YH,"not-completed":YH,parked:void 0,pending:void 0,running:`border-info bg-info-surface text-info`,skipped:XH,unknown:void 0,waiting:void 0},QH={...ZH,complete:ZH.done,settled:ZH.done,active:ZH.running};function $H({groups:e,selectedRunId:t,liveRunIds:n,onSelect:r,hasMore:i,onLoadMore:a}){return(0,W.jsx)(`nav`,{"aria-label":`DAG runs`,className:`run-nav`,onScrollCapture:e=>{let t=e.target;i&&t.scrollHeight-t.scrollTop<=t.clientHeight+80&&a()},children:(0,W.jsx)(vl,{className:`h-full`,children:(0,W.jsxs)(`div`,{className:`px-[18px] py-6 max-sm:px-2`,children:[(0,W.jsxs)(`div`,{className:`brand`,children:[(0,W.jsx)(`div`,{"aria-hidden":`true`,className:`brand-mark`,children:(0,W.jsx)(gt,{size:20})}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`p`,{className:`eyebrow`,children:`Local orchestration`}),(0,W.jsx)(`h1`,{children:`DAG Observatory`})]})]}),(0,W.jsx)(jl,{className:`my-[22px]`}),(0,W.jsx)(`div`,{className:`run-groups`,children:e.map(e=>(0,W.jsxs)(`section`,{"aria-labelledby":`group-${e.id}`,children:[(0,W.jsxs)(`h2`,{id:`group-${e.id}`,children:[(0,W.jsx)(vt,{"aria-hidden":`true`,size:14}),e.label]}),e.runs.map(e=>{let i=t===e.run_id,a=FH(e.node_counts);return(0,W.jsxs)(`button`,{"aria-current":i?`page`:void 0,className:`run-link`,"data-active":i,onClick:()=>r(e.run_id),type:`button`,children:[(0,W.jsxs)(`span`,{className:`run-link-main`,children:[n.has(e.run_id)?(0,W.jsxs)(xd,{children:[(0,W.jsx)(Sd,{asChild:!0,children:(0,W.jsx)(`span`,{"aria-label":`Live`,className:`live-dot`,role:`img`})}),(0,W.jsx)(Cd,{children:`Live`})]}):(0,W.jsx)(Vt,{"aria-label":`Historical`,size:13}),(0,W.jsx)(`span`,{children:e.run_id})]}),(0,W.jsx)(qH,{className:`px-[5px] py-px text-[9px]`,state:e.state}),(0,W.jsx)(xt,{"aria-hidden":`true`,size:14}),a!==``&&(0,W.jsx)(`span`,{className:`run-link-counts`,title:a,children:a})]},e.run_id)})]},e.id))}),i&&(0,W.jsx)(`button`,{className:`sr-only`,onClick:()=>void a(),type:`button`,children:`Load more runs`})]})})})}function eU(e,t,n,r){let[i,a]=(0,U.useState)(),[o,s]=(0,U.useState)(),[c,l]=(0,U.useState)(!0),[u,d]=(0,U.useState)(),[f,p]=(0,U.useState)([]),[m,h]=(0,U.useState)(),[g,_]=(0,U.useState)(0),v=i===void 0?void 0:i.runs.some(({run_id:e})=>e===t)?t:i.runs.at(0)?.run_id,y=n===void 0?void 0:n.nodeId??`run`,b=(0,U.useRef)(v);(0,U.useEffect)(()=>{b.current=v},[v]);let x=(0,U.useCallback)(async()=>{a(await e.listRuns(!0))},[e]),S=(0,U.useCallback)(async()=>{if(i?.next_cursor!==void 0)try{let t=await e.listRuns(!0,i.next_cursor);a(e=>e===void 0?t:{...t,runs:[...e.runs,...t.runs.filter(({run_id:t})=>!e.runs.some(e=>e.run_id===t))]}),h(void 0)}catch(e){h(rU(e))}},[e,i]),C=(0,U.useCallback)(async()=>{try{await x(),h(void 0)}catch(e){h(rU(e))}finally{l(!1)}_(e=>e+1)},[x]);(0,U.useEffect)(()=>{if(v===void 0){s(void 0);return}let t=!0,i=e=>e.runId===v&&e.timelineScope===y&&e.filter===r;s(e=>{if(e!==void 0&&i(e))return e;let t=e?.runId===v&&e.filter===r&&e.detail!==void 0?e.detail:void 0;return{runId:v,filter:r,timelineScope:y,...t===void 0?{}:{detail:t}}});let a=e=>{t&&s(t=>t!==void 0&&i(t)?e(t):t)};return e.getRun(v,{includeConversations:!1,filter:r}).then(e=>{a(t=>({...t,detail:e})),t&&h(void 0)}).catch(tU).catch(e=>{t&&h(rU(e))}),n!==void 0&&e.getTimeline(v,n.nodeId,r).then(e=>a(t=>({...t,timeline:e,timelineError:void 0}))).catch(tU).catch(e=>a(t=>({...t,timelineError:rU(e)}))),()=>{t=!1}},[e,v,g,n?.nodeId,y,r]),(0,U.useEffect)(()=>{C();let t=e.subscribe({onEvent:e=>{if(d(new Date().toISOString()),h(void 0),e.event===`snapshot`){a(qO(e.data)),_(e=>e+1);return}let t=nU(e);t!==void 0&&(x().catch(e=>h(rU(e))),t===b.current&&_(e=>e+1))},onError:e=>{h(rU(e))}});return()=>t.close()},[e,x,C]),(0,U.useEffect)(()=>{if(v===void 0){p([]);return}let t=e.subscribe({runId:v,filter:r,onEvent:e=>{if(d(new Date().toISOString()),h(void 0),e.event!==`snapshot`){if(e.event===`activity.changed`){let t=e.data.activity;p(KO.parse(t))}(e.event===`conversation.changed`||e.event===`activity.changed`||e.event===`run.changed`)&&_(e=>e+1)}},onError:e=>h(rU(e))});return()=>t.close()},[e,v,r]);let w=o!==void 0&&o.runId===v&&o.filter===r?o:void 0;return(0,U.useMemo)(()=>({list:i,runId:v,detail:w?.detail,timeline:w?.timeline,timelineError:w?.timelineError,loading:c,lastUpdated:u,activity:f,error:m,refresh:C,loadMore:S,hasMore:i?.next_cursor!==void 0}),[i,v,w,c,u,f,m,C,S])}function tU(e){if(!(e instanceof JO&&e.code===`run_not_found`))throw e}function nU(e){let t=`run_id`in e.data?e.data.run_id:void 0;return typeof t==`string`&&t.length>0?t:void 0}function rU(e){return e instanceof Error?e:typeof Event<`u`&&e instanceof Event?Error(`Live telemetry stream disconnected`):Error(String(e))}var iU=365.2425,aU=6048e5,oU=864e5,sU=6e4,cU=36e5,lU=1e3,uU=525600,dU=43200,fU=1440,pU=3600*24;pU*7,pU*iU/12*3;var mU=Symbol.for(`constructDateFrom`);function hU(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&mU in e?e[mU](t):e instanceof Date?new e.constructor(t):new Date(t)}function gU(e,t){return hU(t||e,e)}var _U={};function vU(){return _U}function yU(e,t){let n=vU(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=gU(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function bU(e,t){return yU(e,{...t,weekStartsOn:1})}function xU(e,t){let n=gU(e,t?.in),r=n.getFullYear(),i=hU(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=bU(i),o=hU(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=bU(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function SU(e){let t=gU(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function CU(e,...t){let n=hU.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function wU(e,t){let n=gU(e,t?.in);return n.setHours(0,0,0,0),n}function TU(e,t,n){let[r,i]=CU(n?.in,e,t),a=wU(r),o=wU(i),s=+a-SU(a),c=+o-SU(o);return Math.round((s-c)/oU)}function EU(e,t){let n=xU(e,t),r=hU(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),bU(r)}function DU(e,t){let n=gU(e)-+gU(t);return n<0?-1:n>0?1:n}function OU(e){return hU(e,Date.now())}function kU(e,t,n){let[r,i]=CU(n?.in,e,t);return+wU(r)==+wU(i)}function AU(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function jU(e){return!(!AU(e)&&typeof e!=`number`||isNaN(+gU(e)))}function MU(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function NU(e,t){let n=gU(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}var PU={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},FU=(e,t,n)=>{let r,i=PU[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function IU(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var LU={date:IU({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:IU({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:IU({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},RU={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},zU=(e,t,n,r)=>RU[e];function BU(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var VU={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:BU({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:BU({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:BU({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:BU({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:BU({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function HU(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?WU(s,e=>e.test(o)):UU(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function UU(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function WU(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function GU(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var KU={code:`en-US`,formatDistance:FU,formatLong:LU,formatRelative:zU,localize:VU,match:{ordinalNumber:GU({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:HU({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:HU({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:HU({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:HU({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:HU({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function qU(e,t){let n=gU(e,t?.in);return TU(n,NU(n))+1}function JU(e,t){let n=gU(e,t?.in),r=bU(n)-+EU(n);return Math.round(r/aU)+1}function YU(e,t){let n=gU(e,t?.in),r=n.getFullYear(),i=vU(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=hU(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=yU(o,t),c=hU(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=yU(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function XU(e,t){let n=vU(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=YU(e,t),a=hU(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),yU(a,t)}function ZU(e,t){let n=gU(e,t?.in),r=yU(n,t)-+XU(n,t);return Math.round(r/aU)+1}function QU(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var $U={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return QU(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):QU(n+1,2)},d(e,t){return QU(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return QU(e.getHours()%12||12,t.length)},H(e,t){return QU(e.getHours(),t.length)},m(e,t){return QU(e.getMinutes(),t.length)},s(e,t){return QU(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return QU(Math.trunc(r*10**(n-3)),t.length)}},eW={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},tW={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return $U.y(e,t)},Y:function(e,t,n,r){let i=YU(e,r),a=i>0?i:1-i;return t===`YY`?QU(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):QU(a,t.length)},R:function(e,t){return QU(xU(e),t.length)},u:function(e,t){return QU(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return QU(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return QU(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return $U.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return QU(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=ZU(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):QU(i,t.length)},I:function(e,t,n){let r=JU(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):QU(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):$U.d(e,t)},D:function(e,t,n){let r=qU(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):QU(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return QU(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return QU(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return QU(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?eW.noon:r===0?eW.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?eW.evening:r>=12?eW.afternoon:r>=4?eW.morning:eW.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return $U.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):$U.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):QU(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):QU(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):$U.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):$U.s(e,t)},S:function(e,t){return $U.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return rW(r);case`XXXX`:case`XX`:return iW(r);default:return iW(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return rW(r);case`xxxx`:case`xx`:return iW(r);default:return iW(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+nW(r,`:`);default:return`GMT`+iW(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+nW(r,`:`);default:return`GMT`+iW(r,`:`)}},t:function(e,t,n){return QU(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return QU(+e,t.length)}};function nW(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+QU(a,2)}function rW(e,t){return e%60==0?(e>0?`-`:`+`)+QU(Math.abs(e)/60,2):iW(e,t)}function iW(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=QU(Math.trunc(r/60),2),a=QU(r%60,2);return n+i+t+a}var aW=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},oW=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},sW={p:oW,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return aW(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,aW(r,t)).replace(`{{time}}`,oW(i,t))}},cW=/^D+$/,lW=/^Y+$/,uW=[`D`,`DD`,`YY`,`YYYY`];function dW(e){return cW.test(e)}function fW(e){return lW.test(e)}function pW(e,t,n){let r=mW(e,t,n);if(console.warn(r),uW.includes(e))throw RangeError(r)}function mW(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var hW=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,gW=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,_W=/^'([^]*?)'?$/,vW=/''/g,yW=/[a-zA-Z]/;function bW(e,t,n){let r=vU(),i=n?.locale??r.locale??KU,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=gU(e,n?.in);if(!jU(s))throw RangeError(`Invalid time value`);let c=t.match(gW).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=sW[t];return n(e,i.formatLong)}return e}).join(``).match(hW).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:xW(e)};if(tW[t])return{isToken:!0,value:e};if(t.match(yW))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&fW(a)||!n?.useAdditionalDayOfYearTokens&&dW(a))&&pW(a,t,String(e));let o=tW[a[0]];return o(s,a,i.localize,l)}).join(``)}function xW(e){let t=e.match(_W);return t?t[1].replace(vW,`'`):e}function SW(e,t,n){let r=vU(),i=n?.locale??r.locale??KU,a=DU(e,t);if(isNaN(a))throw RangeError(`Invalid time value`);let o=Object.assign({},n,{addSuffix:n?.addSuffix,comparison:a}),[s,c]=CU(n?.in,...a>0?[t,e]:[e,t]),l=MU(n?.roundingMethod??`round`),u=c.getTime()-s.getTime(),d=u/sU,f=(u-(SU(c)-SU(s)))/sU,p=n?.unit,m;if(m=p||(d<1?`second`:d<60?`minute`:d<1440?`hour`:f<43200?`day`:f<525600?`month`:`year`),m===`second`){let e=l(u/1e3);return i.formatDistance(`xSeconds`,e,o)}else if(m===`minute`){let e=l(d);return i.formatDistance(`xMinutes`,e,o)}else if(m===`hour`){let e=l(d/60);return i.formatDistance(`xHours`,e,o)}else if(m===`day`){let e=l(f/fU);return i.formatDistance(`xDays`,e,o)}else if(m===`month`){let e=l(f/dU);return e===12&&p!==`month`?i.formatDistance(`xYears`,1,o):i.formatDistance(`xMonths`,e,o)}else{let e=l(f/uU);return i.formatDistance(`xYears`,e,o)}}function CW(e,t){return SW(e,OU(e),t)}function wW(e){return Math.trunc(e*cU)}function TW(e,t,n){let[r,i]=CU(n?.in,e,t);return r.getFullYear()===i.getFullYear()}function EW(e,t){return TW(hU(t?.in||e,e),OU(t?.in||e))}function DW(e,t){return kU(hU(t?.in||e,e),OU(t?.in||e))}function OW(e){let t=e/cU;return Math.trunc(t)}function kW(e){let t=e/sU;return Math.trunc(t)}function AW(e){let t=e/lU;return Math.trunc(t)}function jW(e){return Math.trunc(e*sU)}function MW(e,t){let n=()=>hU(t?.in,NaN),r=t?.additionalDigits??2,i=LW(e),a;if(i.date){let e=RW(i.date,r);a=zW(e.restDateString,e.year)}if(!a||isNaN(+a))return n();let o=+a,s=0,c;if(i.time&&(s=VW(i.time),isNaN(s)))return n();if(i.timezone){if(c=UW(i.timezone),isNaN(c))return n()}else{let e=new Date(o+s),n=gU(0,t?.in);return n.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),n}return gU(o+s+c,t?.in)}var NW={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},PW=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,FW=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,IW=/^([+-])(\d{2})(?::?(\d{2}))?$/;function LW(e){let t={},n=e.split(NW.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],NW.timeZoneDelimiter.test(t.date)&&(t.date=e.split(NW.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){let e=NW.timezone.exec(r);e?(t.time=r.replace(e[1],``),t.timezone=e[1]):t.time=r}return t}function RW(e,t){let n=RegExp(`^(?:(\\d{4}|[+-]\\d{`+(4+t)+`})|(\\d{2}|[+-]\\d{`+(2+t)+`})$)`),r=e.match(n);if(!r)return{year:NaN,restDateString:``};let i=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:a===null?i:a*100,restDateString:e.slice((r[1]||r[2]).length)}}function zW(e,t){if(t===null)return new Date(NaN);let n=e.match(PW);if(!n)return new Date(NaN);let r=!!n[4],i=BW(n[1]),a=BW(n[2])-1,o=BW(n[3]),s=BW(n[4]),c=BW(n[5])-1;if(r)return YW(t,s,c)?WW(t,s,c):new Date(NaN);{let e=new Date(0);return!qW(t,a,o)||!JW(t,i)?new Date(NaN):(e.setUTCFullYear(t,a,Math.max(i,o)),e)}}function BW(e){return e?parseInt(e):1}function VW(e){let t=e.match(FW);if(!t)return NaN;let n=HW(t[1]),r=HW(t[2]),i=HW(t[3]);return XW(n,r,i)?n*cU+r*sU+i*1e3:NaN}function HW(e){return e&&parseFloat(e.replace(`,`,`.`))||0}function UW(e){if(e===`Z`)return 0;let t=e.match(IW);if(!t)return 0;let n=t[1]===`+`?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return ZW(r,i)?n*(r*cU+i*sU):NaN}function WW(e,t,n){let r=new Date(0);r.setUTCFullYear(e,0,4);let i=r.getUTCDay()||7,a=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}var GW=[31,null,31,30,31,30,31,31,30,31,30,31];function KW(e){return e%400==0||e%4==0&&e%100!=0}function qW(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(GW[t]||(KW(e)?29:28))}function JW(e,t){return t>=1&&t<=(KW(e)?366:365)}function YW(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function XW(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function ZW(e,t){return t>=0&&t<=59}function QW(e){return e*lU}function $W(e){let t=Math.max(0,Math.round(e));if(t<QW(1))return`${t}ms`;let n=OW(t),r=kW(t-wW(n)),i=AW(t-wW(n)-jW(r));return n>0?`${n}h ${r}m ${i}s`:r>0?`${r}m ${i}s`:`${i}s`}function eG(e){return $W(QW(e))}function tG(e){let t=MW(e);return jU(t)?t:void 0}function nG(e){let t=tG(e);return t===void 0?e:DW(t)?bW(t,`HH:mm:ss`):EW(t)?bW(t,`MMM d, HH:mm:ss`):bW(t,`MMM d yyyy, HH:mm:ss`)}function rG(e){let t=tG(e);return t===void 0?e:bW(t,`PPpp zzzz`)}function iG(e){let t=tG(e);return t===void 0?e:CW(t,{addSuffix:!0})}function aG({at:e,className:t,relative:n=!1}){let r=tG(e);return r===void 0?(0,W.jsx)(`span`,{className:t,children:e}):(0,W.jsx)(`time`,{className:t,dateTime:r.toISOString(),title:rG(e),children:n?iG(e):nG(e)})}var oG={decisions:{label:`Decisions`,description:`Decision points and settlements only`,profile:FD.planner},activity:{label:`Detailed activity`,description:`Every record all three producers put on the stream`,profile:FD.monitor}};function sG(e){return e!==null&&Object.hasOwn(oG,e)}var cG={timeline:`Timeline`,task:`Task`,criteria:`Acceptance criteria`,dependencies:`Dependencies`,pr:`PR`,checks:`Checks`};function lG(e){return e!==null&&Object.hasOwn(cG,e)}function uG(){let e=(0,U.useSyncExternalStore)(dG,fG,fG),t=new URLSearchParams(e),n=t.get(`run`)??void 0,r=t.get(`node`)??void 0,i=t.get(`event`)??void 0,a=t.get(`view`),o=t.get(`tab`),s=t.get(`detail`),c=sG(s)?s:`activity`,l=lG(o)?o:`timeline`,u=a===`graph`||a===`overall`?a:r===void 0?`overall`:`graph`,d=(0,U.useCallback)(e=>{let t=new URLSearchParams(window.location.search);e(t),window.history.pushState(null,``,`${window.location.pathname}?${t}`),window.dispatchEvent(new PopStateEvent(`popstate`))},[]);return{runId:n,nodeId:r,itemId:i,view:u,detail:c,nodeTab:l,selectRun:e=>d(t=>{t.set(`run`,e),t.delete(`node`),t.delete(`event`),t.delete(`tab`)}),selectNode:e=>d(t=>{e?t.set(`node`,e):t.delete(`node`),t.delete(`event`),t.delete(`tab`),t.set(`view`,`graph`)}),selectItem:e=>d(t=>{e?t.set(`event`,e):t.delete(`event`)}),showOverall:()=>d(e=>{e.set(`view`,`overall`),e.delete(`node`),e.delete(`event`),e.delete(`tab`)}),selectDetail:e=>d(t=>{e===`activity`?t.delete(`detail`):t.set(`detail`,e)}),selectNodeTab:e=>d(t=>{e===`timeline`?t.delete(`tab`):t.set(`tab`,e),e!==`timeline`&&t.delete(`event`)})}}function dG(e){return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)}function fG(){return window.location.search}function pG({control:e}){if(e===void 0)return null;let t=e.addressable?`Turn reachable`:`No turn to reach`,n=e.addressable?`a planner's note can be delivered into the ${e.member??`member`} turn in flight`:e.reason,r=e.addressable?It:Ft;return(0,W.jsxs)(ya,{"aria-label":`${t}: ${n}`,className:at(`node-view-control gap-1.5`,e.addressable?`border-info bg-info-surface text-info`:`border-warning bg-warning-surface text-warning`),title:n,variant:`outline`,children:[(0,W.jsx)(r,{"aria-hidden":`true`,size:12}),t]})}function mG(e){return e.charAt(0).toUpperCase()+e.slice(1)}var hG=[[`recovery`,[`retry`,`retried`,`fallback`,`resolution`,`interrupted`,`cron`]],[`failure`,[`failed`,`died`,`rejected`,`exceeded`,`conflict`]],[`human`,[`human`]],[`planning`,[`planner`,`decision`]],[`contention`,[`lock`,`concurrent`,`quiet`,`wait`]],[`verification`,[`verification`,`gate`,`check`,`checks`,`coverage`]],[`publication`,[`pr`,`publication`,`published`,`release`,`merge`,`merged`,`change`,`drafting`]],[`repository`,[`edit`,`fetch`,`push`,`branch`,`commit`]],[`session`,[`turn`,`member`,`session`,`heartbeat`,`conversation`]],[`lifecycle`,[`run`,`graph`,`node`,`round`,`step`,`edge`,`setup`,`cleanup`,`driver`,`cross`,`upstream`]]],gG={"completion-requested":`lifecycle`,"body-not-drafted":`publication`,"criterion-checked":`verification`};function _G(e){return e.toLowerCase().split(`-`).filter(e=>e.length>0)}function vG(e){let t=gG[e];if(t!==void 0)return t;let n=_G(e);return hG.find(([,e])=>e.some(e=>n.includes(e)))?.[0]??`activity`}var yG={recovery:Ht,failure:qt,human:Jt,planning:Tt,contention:jt,verification:Gt,publication:At,repository:kt,session:Lt,lifecycle:Rt,activity:wt};function bG({category:e,className:t=`size-3`}){let n=yG[e];return(0,W.jsx)(n,{"aria-hidden":`true`,className:t})}function xG(e){return e===`human-step`?`human step`:e}function SG(e){return e.style===`human-step`}function CG(e){switch(e){case`not-released`:return`not released yet`;case`awaiting-human-step`:return`waiting for the human step`;case`not-answered`:return`the registry did not answer`;case`not-landed`:return`released, but not carrying this work yet`;default:return e}}function wG(e){if(e!==void 0)return e?`yes — a later acknowledgement replaced this one`:`no`}function TG(e){if(e!==void 0)return e===`live`?`Live — into the turn that was already running`:e===`deferred`?`Deferred — onto the node's next dispatch`:e}function EG(e){return[e.identity,e.target].filter(Boolean).join(` · `)||e.dep}function DG({release:e}){let t=[[`Dependency`,e.dep],[`Identity`,e.identity],[`Release target`,e.target],[`Style`,e.style===void 0?void 0:xG(e.style)],[`Version`,e.version],[`Probe outcome`,e.outcome],[`Probed through`,e.form],[`Probe took`,e.elapsed_ms===void 0?void 0:`${e.elapsed_ms} ms`],[`Acknowledged by`,e.actor],[`Superseded`,wG(e.superseded)],[`Landed as`,e.landing_commit],[`Adopted`,TG(e.delivery)]].filter(([,e])=>e!==void 0);return(0,W.jsxs)(W.Fragment,{children:[t.length>0&&(0,W.jsx)(`dl`,{className:`facts`,children:t.map(([e,t])=>(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:e}),(0,W.jsx)(`dd`,{children:t})]},e))}),e.awaiting!==void 0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Held on`}),(0,W.jsx)(`ul`,{className:`release-awaiting`,children:e.awaiting.map(e=>(0,W.jsxs)(`li`,{children:[SG(e)?(0,W.jsxs)(Ji,{children:[(0,W.jsx)(Jt,{}),(0,W.jsxs)(Yi,{children:[`Waiting on a person · `,EG(e)]}),(0,W.jsx)(Xi,{children:e.action??`The release is a human step and the run recorded no action for it.`})]}):(0,W.jsxs)(`p`,{className:`detail-note`,children:[`Waiting on an automated release · `,EG(e)]}),(0,W.jsx)(`p`,{className:`detail-note`,children:[e.last_answer===void 0?void 0:CG(e.last_answer),e.waited_seconds===void 0?void 0:`waited ${e.waited_seconds}s`].filter(e=>e!==void 0).join(` · `)})]},`${e.dep}·${e.identity??``}·${e.target??``}`))})]}),e.versions!==void 0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Versions adopted`}),(0,W.jsx)(`ul`,{className:`release-awaiting`,children:e.versions.map(e=>(0,W.jsx)(`li`,{children:(0,W.jsxs)(`p`,{className:`detail-note`,children:[e.identity,` · `,e.target,` · `,e.version]})},`${e.identity}·${e.target}`))})]})]})}function OG({node:e}){let t=e.result?.release??void 0;if(t===void 0)return(0,W.jsx)(W.Fragment,{children:`Not recorded`});let n=t.identity!==e.task.repo;return(0,W.jsx)(W.Fragment,{children:[t.target,t.style===void 0?void 0:xG(t.style),t.version,n?t.identity:void 0].filter(e=>e!==void 0).join(` · `)})}function kG(e){return{kind:e.displayKind,label:e.displayLabel,startedAt:e.startedAt,...e.durationMs===null?{}:{duration:$W(e.durationMs)},running:e.endedAt===null&&e.rowKind===`span`,...e.status?{status:e.status}:{}}}function AG({row:e}){let t=kG(e);return(0,W.jsxs)(`header`,{className:`detail-title`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(ya,{className:`mb-1`,variant:`outline`,children:t.kind}),(0,W.jsx)(`h2`,{children:t.label}),(0,W.jsxs)(`p`,{className:`detail-when`,children:[(0,W.jsx)(aG,{at:t.startedAt}),t.duration!==void 0&&` · ${t.duration}`,t.running&&` · still running`]})]}),t.status!==void 0&&(0,W.jsx)(ya,{variant:`secondary`,children:t.status})]})}function jG(e){let t=kG(e);return[t.kind,t.label,nG(t.startedAt),mG(e.category),t.status].filter(e=>e!==void 0&&e.length>0).join(` · `)}function MG({row:e}){return(0,W.jsx)(`span`,{className:`timeline-marker-reading`,"data-timeline-reading":jG(e),children:(0,W.jsx)(bG,{category:e.category})})}var NG=`data-timeline-reading`;function PG(e){let t=e.closest(`[${NG}]`)??e.closest(`button`)?.querySelector(`[${NG}]`);if(!(t instanceof HTMLElement))return;let n=t.getAttribute(NG)?.trim();return n===void 0||n.length===0?void 0:{element:t,detail:n}}var FG={rows:[],total:0},IG={worker:`Worker`,judge:`Judge`,lint:`Lint`,orchestrator:`Orchestrator`,"check-in":`Check-in`,"pr-author":`PR author`,verification:`Verification`,publication:`Publication`,"lock-waits":`Lock waits`,"human-wait":`Human wait`},LG=Object.entries(IG).map(([e,t])=>({id:e,label:t})),RG={run:null,node:null,step:null,dispatch:`worker`,verification:`verification`,publication:`publication`,"pr-drafting":`pr-author`,"conflict-resolution":`publication`,"human-wait":`human-wait`,rollup:`lock-waits`},zG=`llmlint`,BG={worker:`worker`,judge:`judge`,llmlint:`lint`,orchestrator:`orchestrator`,"check-in":`check-in`,"pr-author":`pr-author`},VG={worker:!0,orchestrator:!0,"check-in":!0,"pr-author":!0,judge:!1,llmlint:!1};function HG(e){return IG[BG[e]]}var UG={"lock-wait":`Lock waits`};function WG(e){let t=[...e].sort((e,t)=>e.start-t.start),n=t.at(0)?.start??0,r=Math.max(n+1,...t.map(e=>e.end??e.start)),i=new Set([t.at(0),t.reduce((e,t)=>e===void 0||(t.end??t.start)>(e.end??e.start)?t:e,void 0)].filter(e=>e!==void 0).map(({id:e})=>e)),a=(r-n)*.02,o=[];for(let e of t){let t=Math.max(e.end??e.start,e.start+a),n=o.findLast(n=>{let r=Math.max(n.end??n.start,n.start+a);return e.start<=r&&n.start<=t});n===void 0||i.has(e.id)?o.push(e):KG(e)<KG(n)?i.has(n.id)?o.push(e):o[o.indexOf(n)]=e:GG(e,n,a)||o.push(e)}return o}function GG(e,t,n){return Math.abs(e.start-t.start)<=n&&Math.abs((e.end??e.start)-(t.end??t.start))<=n}function KG(e){let t=e.laneId??``,n=LG.findIndex(({id:e})=>e===t);return n<0?LG.length:n}function qG(e,t,n){let r=[...e.map(({at:e})=>e),...t.flatMap(e=>[e.start,e.end??e.start])],i=Math.min(...r),a=(Math.max(...r)-i)*.02,o=[];for(let t of[...e].sort((e,t)=>e.at-t.at)){let e=o.findLast(e=>t.at-e.at<=a);e===void 0?o.push(t):t.id===n&&(o[o.indexOf(e)]=t)}return o}function JG(e,t){let n=QG(e,t).rows,r=YG(n),i=YG(n,!1),a=i.flatMap(e=>{let t=XG(e);if(t===null)return[];let n=Date.parse(e.startedAt),r=e.endedAt===null?null:Date.parse(e.endedAt),i=e.rowKind===`span`&&e.span.total_duration_ms!==void 0?n+e.span.total_duration_ms:r;return[{id:e.id,label:e.displayLabel,laneId:t,payload:e,start:n,end:i,duration:i===null?null:i-n,status:e.status}]}),o=i.flatMap(e=>e.rowKind===`event`?[{id:e.id,label:e.displayLabel,at:Date.parse(e.startedAt),payload:e,status:e.status,icon:(0,U.createElement)(MG,{row:e})}]:[]),s=Math.max(...a.map(e=>e.end??e.start),...o.map(e=>e.at));return{items:a.map(e=>e.end===null?{...e,end:s,duration:s-e.start}:e),markers:o,lanes:LG,rows:r}}function YG(e,t=!0){let n=new Set,r=[],i=e=>{for(let a of e)n.has(a.id)||(n.add(a.id),r.push(a)),(t||a.rowKind!==`group`)&&i(a.children)};return i(e),r}function XG(e){if(e.rowKind===`event`)return null;let t=ZG(e.role);return t===null?RG[e.rowKind===`span`?e.span.kind:e.kind]??null:t}function ZG(e){return e===void 0?null:BG[e]??null}function QG(e,t){if(e===void 0)return FG;let n=e.spans.filter(e=>e.node_id===t);if(n.length===0){let n=bK(e.spans,new Set,t);return n.length===0?FG:{rows:fK(n),total:n.length}}let r=new Set(n.map(({id:e})=>e)),i=new Map,a=[];for(let e of n){let t=e.parent_id!==void 0&&r.has(e.parent_id)?e.parent_id:void 0;t===void 0?a.push(e):i.set(t,[...i.get(t)??[],e])}let o=a.find(({kind:e})=>e===`node`),s=fK(gK(hK(fK([...o===void 0?[]:rK(o,i),...a.filter(e=>e!==o).map(e=>iK(e,i)),...bK(e.spans,r,t)].sort(SK)))));return{span:o,rows:s,total:xK(s)}}function $G(e){return iK(e,new Map)}function eK(e){return dK(e)}function tK(e,t){return nK(e,t).at(-1)}function nK(e,t){for(let n of e){if(n.id===t)return[n];let e=nK(n.children,t);if(e.length>0)return[n,...e]}return[]}function rK(e,t){return[...(t.get(e.id)??[]).map(e=>iK(e,t)),...e.events.map(dK)].sort(SK)}function iK(e,t){let n=aK(e);return{rowKind:`span`,span:e,id:e.id,kind:e.kind,role:n,label:e.label,startedAt:e.started_at,endedAt:e.ended_at,status:e.status,durationMs:e.total_duration_ms??CK(e.started_at,e.ended_at),children:fK(rK(e,t)),displayLabel:mK(e,n),displayKind:pK(e,n),...e.kind===`dispatch`&&e.label?{sessionName:e.label}:{}}}function aK(e){return e.kind===`dispatch`?oK(e):void 0}function oK(e){if(e.agent_role!==void 0)return e.transport_role===`llmlint`?zG:e.agent_role}function sK(e){let t=oK(e);return t===void 0?RG[e.kind===`rollup`?e.label:e.kind]??null:BG[t]??null}function cK(e){return IG[e]}function lK(e){if(e.redirection!==void 0)return e.redirection.delivered?`Redirected into the running turn`:`Redirection deferred to the next dispatch`}var uK=`Redirection`;function dK(e){let t=lK(e);return{rowKind:`event`,event:e,id:e.id,kind:e.kind,label:e.step_id??``,startedAt:e.at,endedAt:null,status:e.status,durationMs:null,children:[],displayLabel:t??(e.kind===`retry-requested`?`Retry requested`:e.step_id??e.kind),displayKind:t===void 0?`Event`:uK,category:vG(e.kind)}}function fK(e){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(r===void 0)continue;let i=n;for(;i+1<e.length&&yK(r,e[i+1]);)i+=1;let a=e.slice(n,i+1),o=a.at(-1);a.length<8||o===void 0?t.push(...a):t.push({rowKind:`group`,count:a.length,id:`group-${r.id}`,kind:r.kind,label:`${a.length} × ${r.kind}`,startedAt:r.startedAt,endedAt:o.endedAt,status:void 0,durationMs:CK(r.startedAt,o.endedAt),children:a,displayLabel:`${a.length} grouped ${r.displayKind.toLowerCase()} activities`,displayKind:r.displayKind}),n=i}return t}function pK(e,t){if(e.kind===`step`)return`Lifecycle`;if(e.kind===`rollup`)return UG[e.label]??e.label;let n=ZG(t)??RG[e.kind];return n==null?e.kind:IG[n]}function mK(e,t){if(e.kind===`step`)return e.label?`Lifecycle: ${e.label}`:`Lifecycle step`;let n=pK(e,t);return e.kind===`rollup`?`${n}: ${e.count??0} recorded`:!e.label||e.label===n?n:e.kind===`dispatch`?`${n} (${e.label})`:`${n}: ${e.label}`}function hK(e){let t=0;return e.map(e=>{e.rowKind===`event`&&e.event.kind===`retry-requested`&&(t+=1);let n=hK(e.children);return e.role!==`worker`||t===0?{...e,children:n}:{...e,children:n,displayLabel:`${e.displayLabel} · retry ${t}`}})}function gK(e){let t=[],n=-1,r=0,i=(e,t)=>({...e,dispatch:t,children:e.children.map(e=>i(e,t))});for(let a of e){if(_K(a.role)){r+=1,n=t.length,t.push(i(a,{id:a.id,label:`Dispatch ${r}`}));continue}let e=n<0?void 0:t[n];if(vK(a.role)&&e?.dispatch!==void 0){t[n]={...e,children:[...e.children,i(a,e.dispatch)]};continue}t.push(a)}return t}function _K(e){return e!==void 0&&VG[e]===!0}function vK(e){return e!==void 0&&VG[e]===!1}function yK(e,t){return t!==void 0&&e.rowKind===`span`&&t.rowKind===`span`&&e.kind===t.kind}function bK(e,t,n){return e.filter(({id:e})=>!t.has(e)).flatMap(({events:e})=>e.filter(e=>e.node_id===n)).map(dK)}function xK(e){return e.reduce((e,t)=>e+(t.rowKind===`group`?0:1)+xK(t.children),0)}function SK(e,t){return e.startedAt.localeCompare(t.startedAt)}function CK(e,t){if(t===null)return null;let n=Date.parse(e),r=Date.parse(t);return Number.isNaN(n)||Number.isNaN(r)?null:r-n}function wK(e,t,n,r){let[i,a]=(0,U.useState)(),o=t===void 0||n===void 0?void 0:JSON.stringify([t,n]);(0,U.useEffect)(()=>{if(o===void 0||t===void 0||n===void 0)return;let r=!0;return e.getConversation(t,n).then(e=>{r&&a({key:o,conversation:e})}).catch(e=>{if(!r)return;let t=e instanceof Error?e:Error(String(e));a(e=>e?.key===o&&e.conversation!==void 0?e:{key:o,error:t})}),()=>{r=!1}},[e,t,n,o,r]);let s=i?.key===o?i:void 0;return(0,U.useMemo)(()=>({conversation:s?.conversation,error:s?.error,loading:o!==void 0&&s===void 0}),[s,o])}var TK=32;function EK(e){return e===null?null:e.closest(`[data-slot="scroll-area-viewport"]`)??e.parentElement}function DK(e,t){let n=(0,U.useRef)(null),r=(0,U.useRef)(!0),i=(0,U.useRef)({key:e,count:t}),a=(0,U.useCallback)(()=>{let e=n.current;e!==null&&(r.current=e.scrollHeight-e.scrollTop-e.clientHeight<=TK)},[]),o=(0,U.useCallback)(e=>{n.current?.removeEventListener(`scroll`,a),n.current=EK(e),n.current?.addEventListener(`scroll`,a,{passive:!0}),a()},[a]);return(0,U.useLayoutEffect)(()=>{let a=i.current;i.current={key:e,count:t};let o=a.key===e&&a.count>0&&t>a.count,s=n.current;!o||s===null||!r.current||(s.scrollTop=s.scrollHeight)},[e,t]),o}var OK=25,kK=4e3;function AK({client:e,runId:t,node:n,row:r}){let i=r===void 0?void 0:KK(r),a=i?.kind===`conversation`?i.value:void 0,o=wK(e,t,a,r===void 0?void 0:HK(r));return(0,W.jsx)(`section`,{"aria-label":`Timeline item detail`,className:`timeline-detail`,children:(0,W.jsx)(vl,{className:`h-full`,children:(0,W.jsx)(`div`,{className:`p-[22px] max-sm:p-3`,ref:DK(a,UK(r,o)),children:r===void 0?(0,W.jsxs)(`div`,{className:`detail-placeholder`,children:[(0,W.jsx)(Nt,{size:30}),(0,W.jsx)(`p`,{children:`Select an item in the timeline to read what it recorded.`})]}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(AG,{row:r}),(0,W.jsx)(jl,{className:`my-4`}),(0,W.jsx)(jK,{client:e,runId:t,node:n,reference:i,row:r,transcript:o})]})})})})}function jK({client:e,runId:t,row:n,node:r,reference:i,transcript:a}){let o=WK(n);if(o!==void 0)return(0,W.jsx)(zK,{redirection:o,row:n});let s=GK(n);return s===void 0?i?.kind===`conversation`?(0,W.jsx)(MK,{row:n,transcript:a}):JK(n)?(0,W.jsx)(NK,{client:e,runId:t,reference:i,row:n}):i?.kind===`worker_report`&&LK(i.value)!==void 0?(0,W.jsx)(PK,{artifactId:i.value,client:e,reference:i,row:n,runId:t}):i?.kind===`oneharness_session`&&LK(i.value)!==void 0?(0,W.jsx)(FK,{artifactId:i.value,client:e,reference:i,row:n,runId:t}):YK(n,i)&&r!==void 0?(0,W.jsx)(RK,{node:r,reference:i}):(0,W.jsx)(BK,{reference:i,row:n}):(0,W.jsx)(DG,{release:s})}function MK({row:e,transcript:t}){let[n,r]=(0,U.useState)(OK),i=t.conversation?.conversation.turns??[],a=e.rowKind===`event`?i.filter(({id:t})=>t===e.event.id):i,o=Pd(a.map(e=>({id:e.id,time:Date.parse(e.timestamp)})));if(t.loading)return(0,W.jsxs)(`div`,{"aria-live":`polite`,className:`loading-inline`,children:[(0,W.jsx)(Ml,{className:`h-2 w-40`}),(0,W.jsx)(Ml,{className:`h-2 w-24`}),`Loading transcript…`]});if(t.conversation===void 0)return(0,W.jsxs)(Ji,{variant:`destructive`,children:[(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:`Transcript unavailable`}),(0,W.jsx)(Xi,{children:t.error?.message??`The server recorded no transcript.`})]});let{conversation:s,attribution:c}=t.conversation,l=XK(c.agentRole,c.transportRole);return(0,W.jsx)(Sa,{className:`gap-0 py-3`,children:(0,W.jsxs)(Ca,{className:`px-3`,children:[(0,W.jsxs)(`header`,{className:`transcript-header`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`p`,{className:`eyebrow`,children:[e.dispatch===void 0?``:`${e.dispatch.label} · `,l,c.persona?` · ${c.persona}`:``]}),(0,W.jsx)(`h4`,{children:s.name})]}),(0,W.jsx)(Id,{state:s.state})]}),(0,W.jsx)(jl,{className:`my-2.5`}),(0,W.jsx)(`div`,{className:`conversation-timeline-sticky`,children:(0,W.jsx)(Nd,{cursor:o.cursor,onSelectTurn:o.scrollTo,turns:[...a]})}),a.length===0?(0,W.jsx)(`p`,{className:`detail-note`,children:`This turn is no longer part of the recorded transcript.`}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`div`,{ref:o.containerRef,children:a.slice(0,n).map(e=>(0,W.jsx)(`div`,{ref:t=>o.register(e.id,t),children:(0,W.jsx)(Ax,{author:{label:l},turn:e})},e.id))}),a.length>n&&(0,W.jsxs)(xa,{onClick:()=>r(n+OK),size:`sm`,type:`button`,variant:`outline`,children:[`Show more of `,a.length,` turns`]})]})]})})}function NK({row:e,client:t,runId:n,reference:r}){let i=e.rowKind===`span`?e.span.detail:void 0,a=i?.artifact_id??(r?.kind===`gate_log`?r.value:void 0);return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Verification record`}),(0,W.jsx)(`dl`,{className:`facts`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Result`}),(0,W.jsx)(`dd`,{children:i?.ok===void 0?e.status??`in progress`:i.ok?`passed`:`failed`})]})}),i?.output_tail&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Output`}),(0,W.jsx)(`pre`,{children:i.output_tail})]}),(0,W.jsx)(IK,{artifactId:a,client:t,heading:`Full log`,missing:`No readable log was recorded.`,noun:`log`,runId:n,unreadable:`No readable log was recorded.`}),(0,W.jsxs)(`p`,{className:`detail-note`,children:[`Verification `,e.status??`in progress`,`.`]})]})}function PK({artifactId:e,client:t,reference:n,row:r,runId:i}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(IK,{artifactId:e,client:t,heading:`Worker report`,missing:`This settlement recorded no report.`,noun:`report`,runId:i,unreadable:`This run kept no readable copy of that report.`}),(0,W.jsx)(BK,{reference:n,row:r})]})}function FK({artifactId:e,client:t,reference:n,row:r,runId:i}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(IK,{artifactId:e,client:t,heading:`Oneharness conversation`,missing:`This record named no conversation.`,noun:`conversation`,runId:i,unreadable:`The history store holds no readable copy of that conversation.`}),(0,W.jsx)(BK,{reference:n,row:r})]})}function IK({artifactId:e,client:t,heading:n,missing:r,noun:i,runId:a,unreadable:o}){let[s,c]=(0,U.useState)(),[l,u]=(0,U.useState)(!1),[d,f]=(0,U.useState)(!1),p=LK(e);return(0,U.useEffect)(()=>{let e=!0;if(c(void 0),u(!1),f(!1),p!==void 0)return t.getArtifact(a,p).then(t=>{e&&c(t.content)}).catch(()=>{e&&(u(!0),c(null))}),()=>{e=!1}},[t,a,p]),(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:n}),p===void 0?(0,W.jsx)(`p`,{className:`detail-note`,children:r}):s===void 0?(0,W.jsxs)(`p`,{"aria-live":`polite`,className:`detail-note`,children:[`Loading `,i,`…`]}):l||s===null?(0,W.jsx)(`p`,{"aria-live":`polite`,className:`detail-note`,children:o}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`pre`,{children:d?s:s.slice(-4e3)}),s.length>kK&&(0,W.jsx)(xa,{onClick:()=>f(!d),size:`sm`,type:`button`,variant:`outline`,children:d?`Collapse ${i}`:`Expand ${i}`})]})]})}function LK(e){if(!(e===void 0||/[/?#]/u.test(e)))return e}function RK({node:e,reference:t}){let n=e.detail?.verification.checks??[],r=e.detail?.publication;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Publication`}),r?.pr_url&&(0,W.jsx)(VK,{fallback:``,reference:{kind:`pr`,value:r.pr_url}}),r?.merged&&r.commit_url?(0,W.jsx)(`p`,{className:`detail-link`,children:(0,W.jsxs)(`a`,{href:r.commit_url,rel:`noreferrer`,target:`_blank`,children:[`Merged commit `,r.commit?.slice(0,8),` `,(0,W.jsx)(Ot,{size:13})]})}):r?.branch_url?(0,W.jsx)(`p`,{className:`detail-link`,children:(0,W.jsxs)(`a`,{href:r.branch_url,rel:`noreferrer`,target:`_blank`,children:[`Branch `,r.branch,` `,(0,W.jsx)(Ot,{size:13})]})}):!r?.pr_url&&(0,W.jsx)(VK,{fallback:`No publication was recorded.`,reference:t}),(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Observed checks`}),n.length===0?(0,W.jsx)(`p`,{className:`detail-note`,children:`No checks were observed on this node.`}):(0,W.jsx)(`dl`,{className:`facts`,children:n.map(e=>(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:e.name}),(0,W.jsx)(`dd`,{children:e.url?(0,W.jsx)(`a`,{href:e.url,rel:`noreferrer`,target:`_blank`,children:e.state}):e.state})]},e.name))})]})}function zK({redirection:e,row:t}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Delivery`}),(0,W.jsx)(`dd`,{children:e.delivered?`Live — into the turn that was already running`:`Deferred — onto the node's next dispatch`})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Redirected at`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(aG,{at:t.startedAt,relative:!0})})]}),e.member!==void 0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Member`}),(0,W.jsx)(`dd`,{children:e.member})]}),e.input_bytes!==void 0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Note`}),(0,W.jsxs)(`dd`,{children:[e.input_bytes,` bytes offered`]})]})]}),e.reason!==void 0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Why it was not delivered`}),(0,W.jsx)(`p`,{className:`detail-note`,children:e.reason})]})]})}function BK({row:e,reference:t}){let n=e.rowKind===`group`?void 0:e,r=e.rowKind===`span`&&e.span.count!==void 0?`${e.span.count} records`:void 0;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Recorded at`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(aG,{at:e.startedAt,relative:!0})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Ended`}),(0,W.jsx)(`dd`,{children:e.endedAt===null?`Still running`:(0,W.jsx)(aG,{at:e.endedAt,relative:!0})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Status`}),(0,W.jsx)(`dd`,{children:e.status??`Not recorded`})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Duration`}),(0,W.jsx)(`dd`,{children:e.durationMs===null?`Not recorded`:$W(e.durationMs)})]}),r!==void 0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Aggregated`}),(0,W.jsx)(`dd`,{children:r})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Step`}),(0,W.jsx)(`dd`,{children:qK(n)??`None`})]})]}),(0,W.jsx)(`h3`,{className:`detail-heading`,children:`Reference`}),(0,W.jsx)(VK,{fallback:`This item points at no recorded artifact.`,reference:t})]})}function VK({reference:e,fallback:t}){return e===void 0?(0,W.jsx)(`p`,{className:`detail-note`,children:t}):e.value.startsWith(`http`)?(0,W.jsx)(`p`,{className:`detail-link`,children:(0,W.jsxs)(`a`,{href:e.value,rel:`noreferrer`,target:`_blank`,children:[e.value,` `,(0,W.jsx)(Ot,{size:13})]})}):(0,W.jsxs)(`p`,{className:`detail-note`,children:[(0,W.jsx)(`span`,{className:`detail-reference-kind`,children:e.kind}),(0,W.jsx)(`code`,{children:e.value})]})}function HK(e){if(e.rowKind!==`span`)return e.id;let t=e.span.events.at(-1);return[e.span.id,e.span.status??``,e.span.ended_at??``,e.span.events.length,t?.id??``,t?.at??``,t?.status??``].join(`|`)}function UK(e,t){return t.conversation===void 0?0:e?.rowKind===`event`?1:t.conversation.conversation.turns.length}function WK(e){return e.rowKind===`event`?e.event.redirection:void 0}function GK(e){return e.rowKind===`event`?e.event.release:void 0}function KK(e){if(e.rowKind===`span`)return e.span.reference;if(e.rowKind===`event`)return e.event.reference}function qK(e){if(e?.rowKind===`span`)return e.span.step_id;if(e?.rowKind===`event`)return e.event.step_id}function JK(e){return e.kind===`verification`||e.kind.startsWith(`verification-`)}function YK(e,t){return t?.kind===`pr`||e.kind===`publication`||e.kind.startsWith(`pr-`)||e.kind.startsWith(`publication-`)}function XK(e,t){return HG(t===`llmlint`?zG:e)}function ZK({client:e,runId:t,node:n,timeline:r,timelineError:i,selectedItemId:a,onSelectItem:o,onBack:s,selectedTab:c,onSelectTab:l}){let u=(0,U.useMemo)(()=>QG(r,n.id),[r,n.id]);(0,U.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(a===void 0?s():o())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,o,a]);let d=n.detail?.publication===void 0?n.result?.pr??void 0:n.detail.publication.pr_url;return(0,W.jsxs)(`section`,{"aria-label":`Timeline for ${n.label}`,className:`node-view`,children:[(0,W.jsxs)(`header`,{className:`node-view-head`,children:[(0,W.jsx)(`nav`,{"aria-label":`Breadcrumb`,children:(0,W.jsxs)(`ol`,{className:`breadcrumb`,children:[(0,W.jsx)(`li`,{children:(0,W.jsxs)(xa,{onClick:s,size:`sm`,type:`button`,variant:`ghost`,children:[(0,W.jsx)(_t,{size:14}),` Graph`]})}),(0,W.jsx)(`li`,{"aria-current":`page`,children:(0,W.jsx)(`span`,{className:`breadcrumb-node`,children:n.label})})]})}),(0,W.jsxs)(`div`,{className:`node-view-facts`,children:[(0,W.jsx)(qH,{className:`node-view-state`,state:n.status}),(0,W.jsx)(pG,{control:n.control}),(0,W.jsxs)(`span`,{className:`node-view-meta`,children:[n.kind,` node · `,n.telemetry?.turns??0,` turns ·`,` `,n.telemetry?.lint??0,` lint turns`]}),d!==void 0&&(0,W.jsxs)(`a`,{className:`node-view-pr`,href:d,rel:`noreferrer`,target:`_blank`,children:[`Pull request `,(0,W.jsx)(Ot,{size:12})]})]})]}),(0,W.jsx)(aq,{node:n}),(0,W.jsxs)(Au,{className:`node-tabs`,onValueChange:e=>{lG(e)&&l(e)},value:c,children:[(0,W.jsx)(Mu,{"aria-label":`Node details`,variant:`line`,children:Object.entries(cG).map(([e,t])=>(0,W.jsx)(Nu,{value:e,children:t},e))}),(0,W.jsxs)(Pu,{className:`node-tab-panel`,value:`task`,children:[(0,W.jsx)(`pre`,{children:nq(n.task)}),(0,W.jsx)(`dl`,{className:`facts`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Outcome`}),(0,W.jsx)(`dd`,{children:oq(n.result?.detail)})]})})]}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`criteria`,children:(0,W.jsx)(`pre`,{children:rq(n.task)})}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`dependencies`,children:(0,W.jsx)(`dl`,{className:`facts`,children:(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Dependencies`}),(0,W.jsx)(`dd`,{children:n.task.deps?.join(`, `)||`None`})]})})}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`pr`,children:(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Publication`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(iq,{node:n})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Release`}),(0,W.jsx)(`dd`,{children:(0,W.jsx)(OG,{node:n})})]})]})}),(0,W.jsx)(Pu,{className:`node-tab-panel`,value:`checks`,children:(0,W.jsxs)(`dl`,{className:`facts`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Verification coverage`}),(0,W.jsxs)(`dd`,{children:[`Hook:`,` `,n.detail?.verification.pre_push_hook?`present`:`not recorded`,` · `,`Required checks:`,` `,n.detail?.verification.required_checks?.join(`, `)||`none configured`]})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Observed checks`}),(0,W.jsx)(`dd`,{children:(n.detail?.verification.checks??[]).length===0?`No checks observed`:n.detail?.verification.checks?.map((e,t)=>(0,W.jsxs)(`span`,{children:[t>0&&` · `,e.url?(0,W.jsxs)(`a`,{href:e.url,rel:`noreferrer`,target:`_blank`,children:[e.name,`: `,e.state]}):`${e.name}: ${e.state}`]},e.name))})]})]})}),(0,W.jsx)(Pu,{className:`node-timeline-panel`,value:`timeline`,children:i===void 0?r===void 0?(0,W.jsx)(`div`,{"aria-live":`polite`,className:`loading-state`,children:`Loading the recorded timeline…`}):u.rows.length===0?(0,W.jsxs)(Sa,{className:`m-5 items-center gap-2 p-8 text-muted-foreground`,children:[(0,W.jsx)(`p`,{className:`m-0`,children:`This node has no recorded timeline yet.`}),(0,W.jsx)(`p`,{className:`m-0 text-[11px]`,children:`Spans and events appear here as the run records them.`})]}):(0,W.jsx)(QK,{client:e,node:n,onSelectItem:o,runId:t,selectedItemId:a,timeline:r}):(0,W.jsxs)(Ji,{className:`m-5 w-auto`,variant:`destructive`,children:[(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:`Timeline unavailable`}),(0,W.jsx)(Xi,{children:i.message})]})})]})]})}function QK({client:e,node:t,onSelectItem:n,runId:r,selectedItemId:i,timeline:a}){let o=(0,U.useMemo)(()=>JG(a,t.id),[a,t.id]),s=Pd((0,U.useMemo)(()=>o.rows.map(e=>({id:e.id,time:Date.parse(e.startedAt)})),[o.rows])),[c,l]=(0,U.useState)(!1),u=(0,U.useMemo)(()=>WG(o.items),[o.items]),d=(0,U.useMemo)(()=>qG(o.markers,o.items,i),[o.items,o.markers,i]),f=(0,U.useMemo)(()=>$K(o.items),[o.items]),p=s.cursor===void 0?void 0:Math.min(Math.max(s.cursor,f[0]),f[1]),m=i===void 0?void 0:tK(o.rows,i),h=e=>{n(e),s.scrollTo(e)};return(0,U.useEffect)(()=>{i!==void 0&&s.scrollTo(i)},[i,s]),(0,W.jsxs)(`div`,{className:`node-execution`,"data-expanded":c,children:[(0,W.jsx)(`section`,{"aria-label":`Node timeline`,className:`node-timeline-sticky`,"data-testid":`node-timeline`,children:(0,W.jsx)(un,{axis:{origin:f[0]},cursor:p,expanded:c,getFailureExcerpt:e=>e.payload.rowKind===`span`?e.payload.span.detail?.output_tail:void 0,items:c?o.items:u,lanes:o.lanes,markers:d,onExpandedChange:l,onSelect:e=>h(e.id),selectedId:i})}),(0,W.jsx)(`section`,{"aria-label":`Node transcript`,className:`node-transcript`,ref:s.containerRef,children:eq(o.rows).map(e=>{let t=e.rows.map(e=>(0,W.jsx)(tq,{onOpen:h,register:s.register,row:e,selected:e.id===i},e.id));return e.dispatch===void 0?(0,W.jsx)(U.Fragment,{children:t},e.id):(0,W.jsxs)(`section`,{"aria-label":e.dispatch.label,className:`transcript-dispatch`,children:[(0,W.jsx)(`h3`,{children:e.dispatch.label}),t]},e.id)})}),m!==void 0&&(0,W.jsxs)(`aside`,{"aria-label":`Item detail panel`,className:`detail-drawer`,children:[(0,W.jsx)(xa,{"aria-label":`Close detail`,className:`drawer-close`,onClick:()=>n(),size:`icon`,variant:`ghost`,children:(0,W.jsx)(Xt,{})}),(0,W.jsx)(AK,{client:e,node:t,row:m,runId:r})]})]})}function $K(e){let t=e.map(({start:e})=>e),n=e.map(e=>e.end??e.start);if(t.length===0)return[0,1];let r=Math.min(...t),i=Math.max(...n);return[r,i>r?i:r+1]}function eq(e){let t=[];for(let n of e){let e=t.at(-1);n.dispatch!==void 0&&e?.dispatch!==void 0&&e.dispatch.id===n.dispatch.id?e.rows.push(n):t.push({id:n.id,dispatch:n.dispatch,rows:[n]})}return t}function tq({row:e,selected:t,register:n,onOpen:r}){return(0,W.jsx)(`article`,{"aria-label":e.displayLabel,className:`transcript-item`,"data-dispatch-group":e.dispatch?.label,"data-selected":t,ref:t=>n(e.id,t),children:(0,W.jsxs)(`button`,{"aria-label":`Open ${e.displayLabel}`,onClick:()=>r(e.id),type:`button`,children:[(0,W.jsxs)(`span`,{className:`eyebrow`,children:[e.rowKind===`event`&&(0,W.jsx)(bG,{category:e.category}),e.displayKind]}),(0,W.jsx)(`strong`,{children:e.displayLabel}),(0,W.jsxs)(`span`,{className:`transcript-facts`,children:[(0,W.jsx)(aG,{at:e.startedAt}),e.durationMs!==null&&` · ${$W(e.durationMs)}`,` · ${e.status??`recorded`}`,e.sessionName!==void 0&&` · ${e.sessionName}`]})]})})}function nq(e){if(e.task!==void 0)return e.task;let t=e.steps??[];return t.length===0?`No task prose recorded.`:t.map(e=>`## ${e.id}\n\n${e.task}`).join(`
|
|
55
55
|
|
|
56
56
|
`)}function rq(e){let t=nq(e),n=/(?:^|\n)##[ \t]*acceptance[ \t]+criteria[ \t]*\r?\n([\s\S]*?)(?=\r?\n##[ \t]|$)/i.exec(t)?.[1]?.trim();return n===void 0||n.length===0?`No acceptance criteria recorded in this node's task.`:n}function iq({node:e}){let t=e.detail?.publication;if(t===void 0)return typeof e.result?.pr==`string`&&e.result.pr?(0,W.jsxs)(`a`,{className:`node-view-pr`,href:e.result.pr,rel:`noreferrer`,target:`_blank`,children:[`Pull request `,(0,W.jsx)(Ot,{size:12})]}):(0,W.jsx)(W.Fragment,{children:`Not recorded`});let n=(t.merged?[[t.pr_url,`Pull request`],[t.commit_url,`Commit ${t.commit?.slice(0,8)??``}`]]:[[t.pr_url,`Pull request`],[t.branch_url,t.branch??`Branch`]]).filter(([e])=>e);return n.length===0?(0,W.jsx)(W.Fragment,{children:`Not recorded`}):(0,W.jsx)(W.Fragment,{children:n.map(([e,t],n)=>(0,W.jsxs)(`span`,{children:[n>0&&` · `,(0,W.jsxs)(`a`,{className:`node-view-pr`,href:e,rel:`noreferrer`,target:`_blank`,children:[t,` `,(0,W.jsx)(Ot,{size:12})]})]},e))})}function aq({node:e}){if(!IH(e.status))return null;let t=e.status===`blocked`||e.status===`skipped`,n=MH(e),r=e.result?.error||void 0,i=e.result?.exit_code;return(0,W.jsxs)(Ji,{className:at(`m-5 w-auto`,t&&`border-warning bg-warning-surface text-warning`),variant:t?`default`:`destructive`,children:[t?(0,W.jsx)(zt,{}):(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:t?`This node is ${e.status}`:`This node ${e.status===`cancelled`?`was cancelled`:e.status===`not-completed`?`did not complete`:`failed`}${e.failure?`: ${e.failure.class}`:``}`}),(0,W.jsx)(Xi,{children:(0,W.jsxs)(`dl`,{className:`facts`,children:[t&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:e.status===`skipped`?`Unmet`:`Blocked by`}),(0,W.jsx)(`dd`,{children:e.blockers.length>0?e.blockers.join(`, `):`Nothing recorded; the run has not written what holds it.`})]}),!t&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Detail`}),(0,W.jsx)(`dd`,{children:n??`No reason was recorded for this outcome.`})]}),r!==void 0&&r!==n&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Error`}),(0,W.jsx)(`dd`,{children:r})]}),typeof i==`number`&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`dt`,{children:`Exit code`}),(0,W.jsx)(`dd`,{children:i})]})]})})]})}function oq(e){return e==null||e===``?`Not recorded`:typeof e==`string`?e:JSON.stringify(e,null,2)}var sq=`idle`,cq=`idle-`,lq=`row:run`,uq=e=>`row:node:${e}`,dq={id:sq,label:`Idle`},fq=[...LG,dq],pq=.005;function mq(e,t){let n=e?.spans??[],r=hq(e),i=[gq({id:lq,kind:`run`,label:`Run-level`,range:r,spans:n.filter(e=>e.node_id===void 0)}),...t.map(e=>gq({id:uq(e.id),kind:`node`,label:e.label,nodeId:e.id,range:r,spans:n.filter(t=>t.node_id===e.id)}))],a=i.flatMap(e=>e.items.filter(e=>e.payload.kind===`work`));return{range:r,live:n.some(e=>e.ended_at===null),rows:i,line:{items:[...bq(r,a,void 0),...WG(a)],markers:qG(i.flatMap(e=>[...e.markers]),a),lanes:fq}}}function hq(e){let t=e?.spans??[],n=t.map(e=>Date.parse(e.started_at));if(n.length===0)return[0,1];let r=Math.min(...n),i=Math.max(...t.map(e=>e.ended_at===null?Date.parse(e.started_at):Date.parse(e.ended_at))),a=Date.parse(e?.observed_at??``),o=t.some(e=>e.ended_at===null)&&Number.isFinite(a)?Math.max(i,a):i;return[r,o>r?o:r+1]}function gq({id:e,kind:t,label:n,nodeId:r,range:i,spans:a}){let o=a.flatMap(t=>{let a=sK(t);if(a===null)return[];let o=Date.parse(t.started_at),s=_q(t,a,o,i),c=t.reference?.kind===`conversation`?t.reference.value:void 0;return[{id:t.id,label:`${n} · ${cK(a)}${vq(t)}`,laneId:a,start:o,end:s,duration:s-o,status:t.status,payload:{id:t.id,kind:`work`,label:`${n} · ${cK(a)}`,rowId:e,...r===void 0?{}:{nodeId:r},...c===void 0?{}:{conversationId:c},startedAt:t.started_at,endedAt:t.ended_at,durationMs:s-o}}]}),s=bq(i,o,{rowId:e,nodeId:r}),c=yq(o).reduce((e,[t,n])=>e+(n-t),0);return{id:e,kind:t,label:n,...r===void 0?{}:{nodeId:r},lanes:fq.filter(({id:e})=>[...o,...s].some(t=>t.laneId===e)),items:[...s,...o],line:[...s,...WG(o)],markers:a.flatMap(t=>t.events.map(t=>({id:t.id,label:`${n} · ${t.step_id??t.kind}`,at:Date.parse(t.at),status:t.status,payload:{id:t.id,kind:`record`,label:t.kind,rowId:e,...r===void 0?{}:{nodeId:r},startedAt:t.at,endedAt:null,durationMs:0}}))),workedMs:c,idleMs:s.reduce((e,t)=>e+t.payload.durationMs,0)}}function _q(e,t,n,r){return t===`lock-waits`&&e.total_duration_ms!==void 0?n+e.total_duration_ms:e.ended_at===null?r[1]:Date.parse(e.ended_at)}function vq(e){return e.count!==void 0&&e.count>1?` · ${e.count} recorded`:``}function yq(e){let t=e.map(e=>[e.start,Math.max(e.end??e.start,e.start)]).filter(([e,t])=>Number.isFinite(e)&&Number.isFinite(t)).sort((e,t)=>e[0]-t[0]),n=[];for(let[e,r]of t){let t=n.at(-1);t!==void 0&&e<=t[1]?t[1]=Math.max(t[1],r):n.push([e,r])}return n}function bq(e,t,n){let r=yq(t),i=[],a=e[0];for(let[e,t]of r)e>a&&i.push([a,e]),a=Math.max(a,t);a<e[1]&&i.push([a,e[1]]);let o=Math.max(1,e[1]-e[0]);return i.filter(([e,t],n)=>n===0||n===i.length-1||(t-e)/o>=pq).map(([e,t],r)=>{let i=`${cq}${n?.rowId??`graph`}-${r}`,a={id:i,kind:`idle`,label:`Idle · ${$W(t-e)}`,...n===void 0?{}:{rowId:n.rowId},...n?.nodeId===void 0?{}:{nodeId:n.nodeId},startedAt:new Date(e).toISOString(),endedAt:new Date(t).toISOString(),durationMs:t-e};return{id:i,label:a.label,laneId:sq,start:e,end:t,duration:t-e,status:`idle`,payload:a}})}function xq({client:e,detail:t,nodes:n,timeline:r,timelineError:i,onSelectNode:a,selectedItemId:o,onSelectItem:s}){let c=t.run.run_id,l=(0,U.useMemo)(()=>mq(r,n),[r,n]),u=(r?.spans??[]).filter(e=>e.node_id===void 0),d=u.find(e=>e.id===o),f=u.flatMap(e=>e.events).find(e=>e.id===o),p=d===void 0?f===void 0?void 0:eK(f):$G(d);return(0,U.useEffect)(()=>{let e=e=>{e.key===`Escape`&&o!==void 0&&s()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,o]),(0,W.jsxs)(`div`,{className:`overall-view`,children:[(0,W.jsx)(vl,{className:`h-full`,children:(0,W.jsxs)(`div`,{className:`p-[34px] max-sm:p-3`,children:[(0,W.jsxs)(`section`,{className:`overall-hero`,children:[(0,W.jsx)(`p`,{className:`eyebrow`,children:`Whole DAG`}),(0,W.jsx)(`h2`,{children:c}),t.graph?.plan.goal?.text&&(0,W.jsx)(`p`,{className:`run-goal`,children:t.graph.plan.goal.text}),(0,W.jsxs)(`p`,{children:[t.run.phase,` ·`,` `,t.run.last_event?`last event ${t.run.last_event}`:`no events recorded yet`]})]}),(0,W.jsxs)(`section`,{"aria-label":`Run metrics`,className:`metric-grid`,children:[(0,W.jsx)(wq,{icon:(0,W.jsx)(gt,{}),label:`Status`,value:t.run.state}),(0,W.jsx)(wq,{icon:(0,W.jsx)(Mt,{}),label:`Nodes`,value:String(t.run.nodes.length)}),(0,W.jsx)(wq,{icon:(0,W.jsx)(Et,{}),label:`Wall time`,value:t.run.timing.wall_seconds===null?`not measured`:eG(t.run.timing.wall_seconds)}),(0,W.jsx)(wq,{icon:(0,W.jsx)(Dt,{}),label:`Turns`,value:String(t.run.turns)})]}),(0,W.jsx)(Sa,{className:`gap-0 py-[15px]`,children:(0,W.jsxs)(Ca,{className:`px-[15px]`,children:[(0,W.jsxs)(`div`,{className:`section-heading`,children:[(0,W.jsx)(gt,{size:16}),(0,W.jsx)(`h3`,{children:`Graph timeline`})]}),i===void 0?r===void 0?(0,W.jsx)(`p`,{"aria-live":`polite`,className:`m-0 text-[11px] text-muted-foreground`,children:`Loading the run's timeline…`}):r.spans.length===0?(0,W.jsx)(`p`,{className:`m-0 text-[11px] text-muted-foreground`,children:`This run has recorded no timeline yet.`}):(0,W.jsx)(Sq,{graph:l,onOpenNode:a,onOpenItem:s,selectedItemId:o}):(0,W.jsxs)(Ji,{variant:`destructive`,children:[(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:`Timeline unavailable`}),(0,W.jsx)(Xi,{children:i.message})]})]})})]})}),p!==void 0&&(0,W.jsxs)(`aside`,{"aria-label":`Item detail panel`,className:`detail-drawer`,children:[(0,W.jsx)(xa,{"aria-label":`Close detail`,className:`drawer-close`,onClick:()=>s(),size:`icon`,variant:`ghost`,children:(0,W.jsx)(Xt,{})}),(0,W.jsx)(AK,{client:e,row:p,runId:c})]})]})}function Sq({graph:e,onOpenNode:t,onOpenItem:n,selectedItemId:r}){let[i,a]=(0,U.useState)(),[o,s]=(0,U.useState)(!1),[c,l]=(0,U.useState)(new Set),u=i??e.range,d=e=>{e.kind===`record`&&e.nodeId===void 0?n(e.id):e.nodeId===void 0?e.conversationId!==void 0&&n(e.id):t(e.nodeId)},f=e.line.lanes.filter(({id:t})=>e.line.items.some(e=>e.laneId===t));return(0,W.jsxs)(`div`,{className:`graph-timeline`,"data-rows-open":o,children:[(0,W.jsx)(un,{axis:{origin:e.range[0]},expanded:!1,items:e.line.items,label:`Graph timeline`,lanes:f,markers:e.line.markers,onExpandedChange:s,onRangeChange:a,onSelect:e=>d(e.payload),range:u,selectedId:r}),o&&(0,W.jsx)(`ol`,{className:`graph-rows`,children:e.rows.map(n=>(0,W.jsx)(Cq,{onOpen:d,onOpenNode:t,onExpandedChange:e=>l(t=>{let r=new Set(t);return e?r.add(n.id):r.delete(n.id),r}),expanded:c.has(n.id),origin:e.range[0],range:u,onRangeChange:a,row:n,selectedItemId:r},n.id))})]})}function Cq({row:e,range:t,origin:n,expanded:r,onExpandedChange:i,onRangeChange:a,onOpen:o,onOpenNode:s,selectedItemId:c}){let l=e.nodeId;return(0,W.jsxs)(`li`,{className:`graph-row`,"data-row-kind":e.kind,children:[(0,W.jsxs)(`header`,{className:`graph-row-head`,children:[l===void 0?(0,W.jsx)(`span`,{className:`graph-row-name`,children:e.label}):(0,W.jsx)(`button`,{className:`graph-row-name`,onClick:()=>s(l),type:`button`,children:e.label}),(0,W.jsxs)(`span`,{className:`graph-row-facts`,children:[$W(e.workedMs),` recorded · `,$W(e.idleMs),` `,`idle`]})]}),(0,W.jsx)(un,{axis:{origin:n},expanded:r,items:r?e.items:e.line,label:`${e.label} timeline`,lanes:e.lanes,markers:e.markers,onExpandedChange:i,onRangeChange:a,onSelect:e=>o(e.payload),range:t,selectedId:c})]})}function wq({icon:e,label:t,value:n}){return(0,W.jsxs)(Sa,{"aria-label":t,className:`metric flex-row items-center gap-3 p-4`,role:`group`,children:[e,(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`p`,{children:t}),(0,W.jsx)(`strong`,{children:n})]})]})}var Tq=6,Eq=8,Dq=`[aria-describedby^="timeline-detail-"]`,Oq=e=>{if(!(e instanceof Element))return;let t=PG(e);if(t!==void 0)return t;let n=e.closest(Dq);if(!(n instanceof HTMLElement))return;let r=document.getElementById(n.getAttribute(`aria-describedby`)??``)?.textContent?.trim();return r?{element:n,detail:r}:void 0},kq=(e,t)=>t!==void 0&&e?.element===t.element&&e.detail===t.detail?e:t;function Aq(){let e=(0,U.useRef)(null),[t,n]=(0,U.useState)(),[r,i]=(0,U.useState)(),a=t??r,o=(0,U.useCallback)(()=>{n(void 0),i(void 0)},[]);(0,U.useEffect)(()=>{let e=e=>n(t=>kq(t,Oq(e.target))),t=e=>i(t=>kq(t,Oq(e.target))),r=e=>i(t=>kq(t,Oq(e.relatedTarget))),a=()=>n(void 0);return document.addEventListener(`pointerover`,e),document.addEventListener(`pointerleave`,a),document.addEventListener(`focusin`,t),document.addEventListener(`focusout`,r),()=>{document.removeEventListener(`pointerover`,e),document.removeEventListener(`pointerleave`,a),document.removeEventListener(`focusin`,t),document.removeEventListener(`focusout`,r)}},[]);let s=(0,U.useCallback)(()=>{let t=e.current;if(t===null||a===void 0)return;if(!a.element.isConnected)return o();let n=a.element.getBoundingClientRect(),r=t.getBoundingClientRect(),i=window.innerWidth-r.width-Eq,s=Math.min(Math.max(n.left,Eq),Math.max(Eq,i)),c=n.bottom+Tq,l=n.top-r.height-Tq,u=Math.max(Eq,window.innerHeight-r.height-Eq),d=c+r.height<=window.innerHeight-Eq?c:l,f=Math.min(Math.max(d,Eq),u);t.style.left=`${Math.round(s)}px`,t.style.top=`${Math.round(f)}px`,t.style.visibility=`visible`},[a,o]);return(0,U.useLayoutEffect)(s,[s]),(0,U.useEffect)(()=>{if(a!==void 0)return window.addEventListener(`scroll`,s,!0),window.addEventListener(`resize`,s),()=>{window.removeEventListener(`scroll`,s,!0),window.removeEventListener(`resize`,s)}},[a,s]),a===void 0?null:(0,vr.createPortal)((0,W.jsx)(`div`,{"aria-hidden":`true`,className:`timeline-popover`,"data-testid":`timeline-popover`,ref:e,style:{visibility:`hidden`},children:a.detail},a.detail),document.body)}var jq=new XO(window.location.origin,{fetch:window.fetch.bind(window)}),Mq=Object.entries(oG);function Nq({client:e=jq}){let t=uG(),n=(0,U.useMemo)(()=>t.view===`overall`?{}:t.nodeId===void 0?void 0:{nodeId:t.nodeId},[t.view,t.nodeId]),r=oG[t.detail].profile,i=eU(e,t.runId,n,r),a=(0,U.useMemo)(()=>LH(i.list?.runs??[]),[i.list]),o=i.runId,s=i.detail,c=(0,U.useMemo)(()=>s?OH(s):[],[s]),l=c.find(({id:e})=>e===t.nodeId),u=(0,U.useMemo)(()=>new Set((i.list?.runs??[]).filter(({state:e})=>![`complete`,`failed`,`cancelled`].includes(e)).map(({run_id:e})=>e)),[i.list]);return(0,U.useEffect)(()=>{if(o&&t.runId&&t.runId!==o){let e=new URLSearchParams(window.location.search);e.set(`run`,o),e.delete(`node`),e.delete(`event`),e.set(`view`,t.view),window.history.replaceState(null,``,`${window.location.pathname}?${e}`),window.dispatchEvent(new PopStateEvent(`popstate`))}},[t.runId,o,t.view]),(0,W.jsxs)(bd,{children:[(0,W.jsx)(Aq,{}),(0,W.jsxs)(`div`,{className:`app-shell`,children:[(0,W.jsx)($H,{groups:a,selectedRunId:o,liveRunIds:u,hasMore:i.hasMore,onLoadMore:i.loadMore,onSelect:t.selectRun}),(0,W.jsxs)(`main`,{className:`workspace`,children:[(0,W.jsxs)(`header`,{className:`topbar`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`p`,{className:`eyebrow`,children:`Execution telemetry`}),(0,W.jsx)(`h2`,{children:o??`No DAG selected`})]}),(0,W.jsxs)(`div`,{className:`topbar-actions`,children:[(0,W.jsxs)(`span`,{className:`connection`,children:[(0,W.jsx)(Wt,{size:15}),i.lastUpdated===void 0?`Waiting for first update`:(0,W.jsxs)(W.Fragment,{children:[`Last updated`,` `,(0,W.jsx)(aG,{at:i.lastUpdated,relative:!0})]})]}),i.activity.at(-1)!==void 0&&(0,W.jsxs)(`span`,{className:`connection`,"aria-live":`polite`,children:[i.activity.at(-1)?.node,`:`,` `,[i.activity.at(-1)?.name,i.activity.at(-1)?.detail].filter(Boolean).join(` `)||i.activity.at(-1)?.kind]}),(0,W.jsxs)(xa,{onClick:()=>void i.refresh(),size:`sm`,type:`button`,variant:`outline`,children:[(0,W.jsx)(Bt,{size:14}),` Refresh`]})]})]}),i.error&&(0,W.jsxs)(Ji,{className:`rounded-none border-x-0 border-t-0`,variant:`destructive`,children:[(0,W.jsx)(qt,{}),(0,W.jsx)(Yi,{children:`Live telemetry issue`}),(0,W.jsx)(Xi,{children:i.error.message})]}),(0,W.jsxs)(Au,{className:`min-h-0 flex-1 gap-0`,onValueChange:e=>e===`overall`?t.showOverall():t.selectNode(void 0),value:t.view,children:[(0,W.jsxs)(`div`,{className:`view-tabs`,children:[(0,W.jsxs)(Mu,{"aria-label":`DAG views`,variant:`line`,children:[(0,W.jsxs)(Nu,{value:`graph`,children:[(0,W.jsx)(Yt,{size:15}),` Graph`]}),(0,W.jsxs)(Nu,{value:`overall`,children:[(0,W.jsx)(Ut,{size:15}),` Overall`]})]}),(0,W.jsxs)(`fieldset`,{className:`detail-switch`,children:[(0,W.jsx)(`legend`,{className:`sr-only`,children:`Level of detail`}),Mq.map(([e,{label:n,description:r}])=>(0,W.jsx)(xa,{"aria-pressed":t.detail===e,onClick:()=>t.selectDetail(e),size:`sm`,title:r,type:`button`,variant:t.detail===e?`default`:`outline`,children:n},e))]})]}),(0,W.jsx)(Pu,{className:`min-h-0`,value:t.view,children:!s&&(i.loading||o!==void 0)?(0,W.jsxs)(`div`,{"aria-live":`polite`,className:`loading-state`,children:[(0,W.jsx)(Ml,{className:`h-2 w-48`}),(0,W.jsx)(Ml,{className:`h-2 w-32`}),`Loading execution history…`]}):s&&o?t.view===`overall`?(0,W.jsx)(xq,{client:e,detail:s,nodes:c,timeline:i.timeline,timelineError:i.timelineError,onSelectNode:t.selectNode,onSelectItem:t.selectItem,selectedItemId:t.itemId}):l?(0,W.jsx)(ZK,{client:e,node:l,onBack:()=>t.selectNode(void 0),onSelectItem:t.selectItem,runId:o,selectedItemId:t.itemId,selectedTab:t.nodeTab,onSelectTab:t.selectNodeTab,timeline:i.timeline,timelineError:i.timelineError}):(0,W.jsx)(KH,{nodes:c,selectedNodeId:t.nodeId,onSelectNode:t.selectNode}):(0,W.jsxs)(`div`,{className:`empty-state`,children:[(0,W.jsx)(Yt,{size:34}),(0,W.jsx)(`h2`,{children:`No DAG runs found`}),(0,W.jsx)(`p`,{children:`Start an orchestrated run to see it appear here.`})]})})]})]})]})]})}var Pq=class extends U.Component{state={};static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error(`DAG UI render failed`,e,t.componentStack)}render(){return this.state.error?(0,W.jsxs)(`main`,{className:`fatal-error`,role:`alert`,children:[(0,W.jsx)(`p`,{className:`eyebrow`,children:`Rendering error`}),(0,W.jsx)(`h1`,{children:`The DAG view could not be displayed.`}),(0,W.jsx)(`p`,{children:this.state.error.message}),(0,W.jsx)(xa,{onClick:()=>(this.props.onReload??(()=>window.location.reload()))(),type:`button`,variant:`secondary`,children:`Reload`})]}):this.props.children}},Fq=document.getElementById(`root`);if(!Fq)throw Error(`DAG UI root element is missing`);(0,DD.createRoot)(Fq).render((0,W.jsx)(U.StrictMode,{children:(0,W.jsx)(Pq,{children:(0,W.jsx)(Nq,{})})}));
|
package/dist/index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
9
9
|
<meta name="theme-color" content="#111622" />
|
|
10
10
|
<title>DAG Observatory</title>
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-k8h_YNOp.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-Pny-yXKf.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|