PageSourceSearch

https://pltt.ai/_next/static/chunks/1adfq6e65afxz.js

js pltt.ai collected 2026-10-05 15:19:44 UTC 40,385 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,464319,993253,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(770703);e.i(785269);var o=e.i(322831),s=e.i(209165);let l=(0,r.default)(()=>e.A(226187),{loadableGenerated:{modules:[564660]},ssr:!1}),i="#10b981",n="#6366f1",d=new Map,u=a.memo(function({roomId:e,build:r,onBuildStart:u}){let{t:c}=(0,o.useTranslation)("dataRoom"),[p,f]=a.useState(null),[m,h]=a.useState(!0),[g,y]=a.useState(null),[b,w]=a.useState(null),[v,x]=a.useState(!1),C=a.useRef(null),[k,T]=a.useState({width:800,height:600}),S=r?.status==="running",$=a.useCallback(async()=>{let t=d.get(e);t?(f(t.data),y(null),h(!1)):(h(!0),y(null));try{let a={};t&&(a["If-None-Match"]=`"${t.etag}"`);let r=await (0,s.apiFetch)(`/api/v1/data-rooms/${e}/graph`,{headers:a});if(304===r.status);else if(r.ok){let t=await r.json(),a=(r.headers.get("etag")||"").replace(/"/g,"");d.set(e,{data:t,etag:a}),f(t)}else throw Error(`HTTP ${r.status}`)}catch(e){t||y(String(e?.message||e))}finally{h(!1)}},[e]);a.useEffect(()=>{$()},[$]);let j=a.useCallback(async t=>{if(!t||window.confirm(c("graph.rebuildConfirm","Rebuild the graph from scratch? Every file in this drive is re-extracted with AI — this is slow and costs more than a normal sync, which only processes new or changed files."))){x(!0),w(null);try{let a=await (0,s.apiFetch)(`/api/v1/data-rooms/${e}/graph/rebuild${t?"?force=true":""}`,{method:"POST"});if(!a.ok)throw Error(`HTTP ${a.status}`);let r=await a.json().catch(()=>null);if(r?.status==="skipped"){let e="no eligible documents"===r.reason?c("dataRoom:graph.noDocs","No supported documents found in this drive. Upload a PDF, DOCX, spreadsheet, presentation, text, markdown, or similar document, then rebuild."):`Graph rebuild skipped${r.reason?`: ${r.reason}`:""}.`;w(e);return}u?.()}catch(e){w(`Rebuild failed: ${String(e?.message||e)}`)}finally{x(!1)}}},[e,u]),E=a.useRef(r?.status);a.useEffect(()=>{let e=E.current;E.current=r?.status,"running"===e&&r?.status==="completed"&&$()},[r?.status,$]),a.useEffect(()=>{let e=C.current;if(!e)return;let t=()=>T({width:e.clientWidth,height:e.clientHeight});t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[]);let O=a.useMemo(()=>p?{nodes:p.nodes.map(e=>({...e})),links:p.links.map(e=>({...e}))}:{nodes:[],links:[]},[p]);return(0,t.jsxs)("div",{ref:C,className:"relative h-full w-full min-h-[420px] overflow-hidden rounded-lg border bg-muted/10",children:[(0,t.jsxs)("div",{className:"absolute right-3 top-3 z-20 flex items-center gap-1.5",children:[(0,t.jsx)("button",{onClick:()=>void $(),disabled:m,className:"rounded-md border bg-background/80 px-2.5 py-1 text-xs font-medium backdrop-blur transition-colors hover:bg-muted disabled:opacity-50",children:c("graph.refresh")}),(0,t.jsx)("button",{onClick:()=>void j(!0),disabled:v||S,className:"rounded-md border bg-background/80 px-2.5 py-1 text-xs font-medium backdrop-blur transition-colors hover:bg-muted disabled:opacity-50",title:c("graph.rebuildHint"),children:S?c("graph.building"):v?c("graph.queuing"):c("graph.rebuild")})]}),S&&(0,t.jsxs)("div",{className:"absolute inset-x-12 top-3 z-30 mx-auto max-w-sm rounded-md border bg-background/95 px-3 py-2 shadow-sm backdrop-blur",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium",children:[(0,t.jsx)("span",{className:"h-2 w-2 animate-pulse rounded-full bg-primary"}),(0,t.jsx)("span",{children:c("graph.buildingLong")}),(r?.total??0)>0&&(0,t.jsxs)("span",{className:"ml-auto tabular-nums text-muted-foreground",children:[r?.progress??0,"/",r?.total]})]}),(0,t.jsx)("div",{className:"mt-1.5 h-1 w-full overflow-hidden rounded-full bg-muted",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${(r?.total??0)>0?Math.round((r?.progress??0)/r.total*100):8}%`}})}),(0,t.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:c("graph.stale")})]}),r?.status==="failed"&&!S&&(0,t.jsxs)("div",{className:"absolute inset-x-12 top-3 z-30 mx-auto max-w-sm rounded-md border border-destructive/40 bg-background/95 px-3 py-1.5 text-center text-xs text-destructive backdrop-blur",children:["Graph build failed",r?.error?`: ${r.error}`:"",". Old graph kept — try Rebuild again."]}),b&&!S&&(0,t.jsx)("div",{className:"absolute inset-x-12 top-3 z-10 rounded-md border bg-background/90 px-3 py-1.5 text-center text-xs text-muted-foreground backdrop-blur",children:b}),m&&(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-muted-foreground",children:c("graph.loading")}),!m&&g&&(0,t.jsxs)("div",{className:"absolute inset-0 flex items-center justify-center text-sm text-destructive",children:["Couldn’t load the graph: ",g]}),!m&&!g&&!S&&p&&0===p.nodes.length&&(0,t.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-1 px-6 text-center",children:[(0,t.jsx)("p",{className:"text-sm font-medium",children:c("graph.emptyTitle")}),(0,t.jsx)("p",{className:"max-w-sm text-xs text-muted-foreground",children:c("graph.emptyDesc")}),(0,t.jsx)("button",{onClick:()=>void j(!1),disabled:v,className:"mt-2 rounded-md border bg-background px-3 py-1.5 text-xs font-medium transition-colors hover:bg-muted disabled:opacity-50",children:v?"Building…":c("dataRoom:graph.buildNow","Build graph now")})]}),!m&&!g&&p&&p.nodes.length>0&&(0,t.jsxs)("div",{className:"h-full w-full transition-opacity duration-300",style:{opacity:S?.4:1},children:[(0,t.jsx)(l,{width:k.width,height:k.height,graphData:O,cooldownTicks:120,nodeRelSize:5,nodeVal:e=>"file"===e.kind?7:3,nodeColor:e=>"file"===e.kind?n:i,nodeLabel:e=>"file"===e.kind?`📄 ${e.label}`:e.summary?`${e.label} — ${e.summary}`:e.label,linkColor:e=>"mentions"===e.kind?"rgba(99,102,241,0.25)":"rgba(148,163,184,0.45)",linkWidth:e=>"relates"===e.kind?1.2:.6,linkDirectionalArrowLength:e=>3*("relates"===e.kind),linkDirectionalArrowRelPos:1,linkLabel:e=>e.label,nodeCanvasObjectMode:()=>"after",nodeCanvasObject:(e,t,a)=>{if(a<1.2)return;let r=e.label,o=("file"===e.kind?4:3)/Math.sqrt(a)+2;t.font=`${o}px Inter, sans-serif`,t.textAlign="center",t.textBaseline="top",t.fillStyle="rgba(100,116,139,0.95)";let s=e.x??0,l=e.y??0;t.fillText(r.length>28?`${r.slice(0,27)}…`:r,s,l+6)}}),(0,t.jsxs)("div",{className:"pointer-events-none absolute left-3 top-3 flex flex-col gap-1 rounded-md border bg-background/80 px-2.5 py-1.5 text-[11px] text-muted-foreground backdrop-blur",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"inline-block size-2.5 rounded-full",style:{background:n}}),p.stats.files," files"]}),(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"inline-block size-2.5 rounded-full",style:{background:i}}),p.stats.entities," entities · ",p.stats.relationships," links"]})]})]})]})});e.s(["GraphView",0,u],464319),e.s(["useDataRoomShares",0,function(){let[e,t]=(0,a.useState)([]),[r,o]=(0,a.useState)(!0),[l,i]=(0,a.useState)(!1),n=(0,a.useRef)(0),d=(0,a.useCallback)(async e=>{let a=++n.current;o(!0),i(!1);try{let r=await (0,s.apiFetch)(`/api/v1/data-rooms/${e}/shares`),o=await r.json();a===n.current&&t(o)}catch{a===n.current&&(t([]),i(!0))}finally{a===n.current&&o(!1)}},[]),u=(0,a.useCallback)(async(e,a,r)=>{let o=await (0,s.apiFetch)(`/api/v1/data-rooms/${e}/shares`,{method:"POST",body:JSON.stringify({user_id:a,permission:r})}),l=await o.json();return t(e=>[...e,l]),l},[]);return{shares:e,loading:r,error:l,fetchShares:d,addShare:u,updateShare:(0,a.useCallback)(async(e,a,r)=>{let o=await (0,s.apiFetch)(`/api/v1/data-rooms/${e}/shares/${a}`,{method:"PATCH",body:JSON.stringify({permission:r})}),l=await o.json();t(e=>e.map(e=>e.id===a?l:e))},[]),removeShare:(0,a.useCallback)(async(e,a)=>{await (0,s.apiFetch)(`/api/v1/data-rooms/${e}/shares/${a}`,{method:"DELETE"}),t(e=>e.filter(e=>e.id!==a))},[])}}],993253)},746798,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(981140),o=e.i(820783),s=e.i(30030),l=e.i(726330),i=e.i(610772),n=e.i(853660),d=e.i(774606),u=e.i(296626),c=e.i(248425),p=e.i(991918),f=e.i(369340),m=e.i(959411),[h,g]=(0,s.createContextScope)("Tooltip",[n.createPopperScope]),y=(0,n.createPopperScope)(),b="TooltipProvider",w="tooltip.open",[v,x
1]=h(b),C=e=>{let{__scopeTooltip:r,delayDuration:o=700,skipDelayDuration:s=300,disableHoverableContent:l=!1,children:i}=e,n=a.useRef(!0),d=a.useRef(!1),u=a.useRef(0);return a.useEffect(()=>{let e=u.current;return()=>window.clearTimeout(e)},[]),(0,t.jsx)(v,{scope:r,isOpenDelayedRef:n,delayDuration:o,onOpen:a.useCallback(()=>{window.clearTimeout(u.current),n.current=!1},[]),onClose:a.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>n.current=!0,s)},[s]),isPointerInTransitRef:d,onPointerInTransitChange:a.useCallback(e=>{d.current=e},[]),disableHoverableContent:l,children:i})};C.displayName=b;var k="Tooltip",[T,S]=h(k),$=e=>{let{__scopeTooltip:r,children:o,open:s,defaultOpen:l,onOpenChange:d,disableHoverableContent:u,delayDuration:c}=e,p=x(k,e.__scopeTooltip),m=y(r),[h,g]=a.useState(null),b=(0,i.useId)(),v=a.useRef(0),C=u??p.disableHoverableContent,S=c??p.delayDuration,$=a.useRef(!1),[j,E]=(0,f.useControllableState)({prop:s,defaultProp:l??!1,onChange:e=>{e?(p.onOpen(),document.dispatchEvent(new CustomEvent(w))):p.onClose(),d?.(e)},caller:k}),O=a.useMemo(()=>j?$.current?"delayed-open":"instant-open":"closed",[j]),_=a.useCallback(()=>{window.clearTimeout(v.current),v.current=0,$.current=!1,E(!0)},[E]),P=a.useCallback(()=>{window.clearTimeout(v.current),v.current=0,E(!1)},[E]),F=a.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{$.current=!0,E(!0),v.current=0},S)},[S,E]);return a.useEffect(()=>()=>{v.current&&(window.clearTimeout(v.current),v.current=0)},[]),(0,t.jsx)(n.Root,{...m,children:(0,t.jsx)(T,{scope:r,contentId:b,open:j,stateAttribute:O,trigger:h,onTriggerChange:g,onTriggerEnter:a.useCallback(()=>{p.isOpenDelayedRef.current?F():_()},[p.isOpenDelayedRef,F,_]),onTriggerLeave:a.useCallback(()=>{C?P():(window.clearTimeout(v.current),v.current=0)},[P,C]),onOpen:_,onClose:P,disableHoverableContent:C,children:o})})};$.displayName=k;var j="TooltipTrigger",E=a.forwardRef((e,s)=>{let{__scopeTooltip:l,...i}=e,d=S(j,l),u=x(j,l),p=y(l),f=a.useRef(null),m=(0,o.useComposedRefs)(s,f,d.onTriggerChange),h=a.useRef(!1),g=a.useRef(!1),b=a.useCallback(()=>h.current=!1,[]);return a.useEffect(()=>()=>document.removeEventListener("pointerup",b),[b]),(0,t.jsx)(n.Anchor,{asChild:!0,...p,children:(0,t.jsx)(c.Primitive.button,{"aria-describedby":d.open?d.contentId:void 0,"data-state":d.stateAttribute,...i,ref:m,onPointerMove:(0,r.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(g.current||u.isPointerInTransitRef.current||(d.onTriggerEnter(),g.current=!0))}),onPointerLeave:(0,r.composeEventHandlers)(e.onPointerLeave,()=>{d.onTriggerLeave(),g.current=!1}),onPointerDown:(0,r.composeEventHandlers)(e.onPointerDown,()=>{d.open&&d.onClose(),h.current=!0,document.addEventListener("pointerup",b,{once:!0})}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>{h.current||d.onOpen()}),onBlur:(0,r.composeEventHandlers)(e.onBlur,d.onClose),onClick:(0,r.composeEventHandlers)(e.onClick,d.onClose)})})});E.displayName=j;var O="TooltipPortal",[_,P]=h(O,{forceMount:void 0}),F=e=>{let{__scopeTooltip:a,forceMount:r,children:o,container:s}=e,l=S(O,a);return(0,t.jsx)(_,{scope:a,forceMount:r,children:(0,t.jsx)(u.Presence,{present:r||l.open,children:(0,t.jsx)(d.Portal,{asChild:!0,container:s,children:o})})})};F.displayName=O;var N="TooltipContent",R=a.forwardRef((e,a)=>{let r=P(N,e.__scopeTooltip),{forceMount:o=r.forceMount,side:s="top",...l}=e,i=S(N,e.__scopeTooltip);return(0,t.jsx)(u.Presence,{present:o||i.open,children:i.disableHoverableContent?(0,t.jsx)(M,{side:s,...l,ref:a}):(0,t.jsx)(D,{side:s,...l,ref:a})})}),D=a.forwardRef((e,r)=>{let s=S(N,e.__scopeTooltip),l=x(N,e.__scopeTooltip),i=a.useRef(null),n=(0,o.useComposedRefs)(r,i),[d,u]=a.useState(null),{trigger:c,onClose:p}=s,f=i.current,{onPointerInTransitChange:m}=l,h=a.useCallback(()=>{u(null),m(!1)},[m]),g=a.useCallback((e,t)=>{let a,r=e.currentTarget,o={x:e.clientX,y:e.clientY},s=function(e,t){let a=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(a,r,o,s)){case s:return"left";case o:return"right";case a:return"top";case r:return"bottom";default:throw Error("unreachable")}}(o,r.getBoundingClientRect());u(((a=[...function(e,t,a=5){let r=[];switch(t){case"top":r.push({x:e.x-a,y:e.y+a},{x:e.x+a,y:e.y+a});break;case"bottom":r.push({x:e.x-a,y:e.y-a},{x:e.x+a,y:e.y-a});break;case"left":r.push({x:e.x+a,y:e.y-a},{x:e.x+a,y:e.y+a});break;case"right":r.push({x:e.x-a,y:e.y-a},{x:e.x-a,y:e.y+a})}return r}(o,s),...function(e){let{top:t,right:a,bottom:r,left:o}=e;return[{x:o,y:t},{x:a,y:t},{x:a,y:r},{x:o,y:r}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>
1e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let a=0;a<e.length;a++){let r=e[a];for(;t.length>=2;){let e=t[t.length-1],a=t[t.length-2];if((e.x-a.x)*(r.y-a.y)>=(e.y-a.y)*(r.x-a.x))t.pop();else break}t.push(r)}t.pop();let a=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;a.length>=2;){let e=a[a.length-1],t=a[a.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))a.pop();else break}a.push(r)}return(a.pop(),1===t.length&&1===a.length&&t[0].x===a[0].x&&t[0].y===a[0].y)?t:t.concat(a)}(a))),m(!0)},[m]);return a.useEffect(()=>()=>h(),[h]),a.useEffect(()=>{if(c&&f){let e=e=>g(e,f),t=e=>g(e,c);return c.addEventListener("pointerleave",e),f.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),f.removeEventListener("pointerleave",t)}}},[c,f,g,h]),a.useEffect(()=>{if(d){let e=e=>{let t=e.target,a={x:e.clientX,y:e.clientY},r=c?.contains(t)||f?.contains(t),o=!function(e,t){let{x:a,y:r}=e,o=!1;for(let e=0,s=t.length-1;e<t.length;s=e++){let l=t[e],i=t[s],n=l.x,d=l.y,u=i.x,c=i.y;d>r!=c>r&&a<(u-n)*(r-d)/(c-d)+n&&(o=!o)}return o}(a,d);r?h():o&&(h(),p())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[c,f,d,p,h]),(0,t.jsx)(M,{...e,ref:n})}),[I,L]=h(k,{isInside:!1}),A=(0,p.createSlottable)("TooltipContent"),M=a.forwardRef((e,r)=>{let{__scopeTooltip:o,children:s,"aria-label":i,onEscapeKeyDown:d,onPointerDownOutside:u,...c}=e,p=S(N,o),f=y(o),{onClose:h}=p;return a.useEffect(()=>(document.addEventListener(w,h),()=>document.removeEventListener(w,h)),[h]),a.useEffect(()=>{if(p.trigger){let e=e=>{let t=e.target;t?.contains(p.trigger)&&h()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[p.trigger,h]),(0,t.jsx)(l.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:u,onFocusOutside:e=>e.preventDefault(),onDismiss:h,children:(0,t.jsxs)(n.Content,{"data-state":p.stateAttribute,...f,...c,ref:r,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,t.jsx)(A,{children:s}),(0,t.jsx)(I,{scope:o,isInside:!0,children:(0,t.jsx)(m.Root,{id:p.contentId,role:"tooltip",children:i||s})})]})})});R.displayName=N;var J="TooltipArrow",H=a.forwardRef((e,a)=>{let{__scopeTooltip:r,...o}=e,s=y(r);return L(J,r).isInside?null:(0,t.jsx)(n.Arrow,{...s,...o,ref:a})});H.displayName=J,e.s(["Arrow",0,H,"Content",0,R,"Portal",0,F,"Provider",0,C,"Root",0,$,"Tooltip",0,$,"TooltipArrow",0,H,"TooltipContent",0,R,"TooltipPortal",0,F,"TooltipProvider",0,C,"TooltipTrigger",0,E,"Trigger",0,E,"createTooltipScope",0,g],186336);var z=e.i(186336),z=z,U=e.i(975157);let q=z.Provider,B=z.Root,G=z.Trigger,W=a.forwardRef(({className:e,sideOffset:a=6,...r},o)=>(0,t.jsx)(z.Portal,{children:(0,t.jsx)(z.Content,{ref:o,sideOffset:a,className:(0,U.cn)("z-[2147483647] overflow-hidden rounded-md bg-popover px-2.5 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})}));W.displayName="TooltipContent",e.s(["TooltipContent",0,W,"TooltipProvider",0,q,"TooltipRoot",0,B,"TooltipTrigger",0,G],746798)},154057,e=>{"use strict";var t=e.i(843476),a=e.i(271645),r=e.i(402389),o=e.i(209165),s=e.i(493394);let l=(0,a.createContext)(null);function i(e){return e instanceof Error&&"cancelled"===e.message||e instanceof DOMException&&"AbortError"===e.name}e.s(["UploadProvider",0,function({children:e}){let[n,d]=(0,a.useState)([]),u=(0,a.useRef)([]);u.current=n;let c=(0,a.useRef)(0),p=(0,a.useRef)(new Map),f=(0,a.useRef)(new Map),m=(0,a.useCallback)(e=>{u.current=e,d(e)},[]),h=(0,a.useCallback)((e,t)=>(p.current.has(e)||p.current.set(e,new Set),p.current.get(e).add(t),()=>{p.current.get(e)?.delete(t)}),[]),g=(0,a.useCallback)((e,t)=>{m(u.current.map(a=>a.id===e?{...a,...t}:a))},[m]),y=(0,a.useCallback)(()=>{let e=u.current,t=3-c.current;if(!(t<=0))for(let a of e.filter(e=>"queued"===e.status).slice(0,t))w(a)},[]);async function b(e){g(e.id,{status:"uploading",progress:0}),c.current++;try{let t=new AbortController;g(e.id,{abortController:t}),await new Promise((a,s)=>{let l=new XMLHttpRequest;g(e.id,{xhr:l}),l.upload.onprogress=t=>{if(t.lengthComputable){let a=Math.round(t.loaded/t.total*100);g(e.id,{progress:a})}},l.onload=()=>
1{if(g(e.id,{xhr:null}),l.status>=200&&l.status<300)a();else try{let e=JSON.parse(l.responseText);s(Error(e.detail??`HTTP ${l.status}`))}catch{s(Error(`HTTP ${l.status}`))}},l.onerror=()=>{g(e.id,{xhr:null}),s(Error(r.default.t("hooksUi.upload.networkError","Network error")))},l.onabort=()=>{g(e.id,{xhr:null}),s(Error("cancelled"))},t.signal.addEventListener("abort",()=>{l.readyState!==XMLHttpRequest.DONE&&l.abort()},{once:!0});let i=new FormData;i.append("file",e.file),l.withCredentials=!0,l.open("POST",`${o.BASE}/api/v1/resources/${e.agentId}/upload`),l.send(i)}),g(e.id,{status:"done",progress:100,xhr:null,abortController:null}),e.onComplete?.()}catch(a){let t=i(a);g(e.id,{status:t?"cancelled":"error",xhr:null,abortController:null,errorMessage:t?null:String(a instanceof Error?a.message:a)})}finally{c.current--,y()}}async function w(e){if("resource"===e.uploadType)return b(e);g(e.id,{status:"uploading",progress:0}),c.current++;try{let t=new AbortController;g(e.id,{abortController:t});let a=e.roomId,r=await (0,o.apiFetch)(`/api/v1/data-rooms/${a}/files/request-upload`,{method:"POST",signal:t.signal,body:JSON.stringify({filename:e.filename,content_type:e.file.type||"application/octet-stream",file_size:e.fileSize,create_only:!0,folder_id:e.folderId})}),{upload_url:l,blob_path:i,content_type:n,upload_headers:d}=await r.json(),c=n||e.file.type||"application/octet-stream";if(await (0,s.putFileWithProgress)(l,e.file,c,t=>g(e.id,{progress:t}),t.signal,t=>g(e.id,{xhr:t}),d),t.signal.aborted)throw Error("cancelled");console.log("[Upload] confirm-upload payload",{roomId:a,folderId:e.folderId,blob_path:i,original_filename:e.filename});let m=await (0,o.apiFetch)(`/api/v1/data-rooms/${a}/files/confirm-upload`,{method:"POST",signal:t.signal,body:JSON.stringify({blob_path:i,original_filename:e.filename,file_size:e.fileSize,mime_type:c,folder_id:e.folderId})}),h=await m.json();g(e.id,{status:"done",progress:100,xhr:null,abortController:null}),e.onFileUploaded?.(h);let y=f.current.get(a);y&&clearTimeout(y),f.current.set(a,setTimeout(()=>{u.current.some(e=>e.roomId===a&&("queued"===e.status||"uploading"===e.status))||(f.current.delete(a),p.current.get(a)?.forEach(e=>e()))},600))}catch(a){let t=i(a);g(e.id,{status:t?"cancelled":"error",xhr:null,abortController:null,errorMessage:t?null:String(a instanceof Error?a.message:a)})}finally{c.current--,y()}}let v=(0,a.useCallback)((e,t,a,r)=>{console.log("[Upload] enqueueFiles",{filesCount:e.length,roomId:t,folderId:a});let o=e.map(e=>({id:crypto.randomUUID(),file:e,filename:e.name,fileSize:e.size,uploadType:"data-room",roomId:t,folderId:a,onFileUploaded:r,status:"queued",progress:0,errorMessage:null,xhr:null,abortController:null,createdAt:Date.now()}));m([...u.current,...o]),setTimeout(y,0)},[y,m]),x=(0,a.useCallback)((e,t,a)=>{let r=e.map(e=>({id:crypto.randomUUID(),file:e,filename:e.name,fileSize:e.size,uploadType:"resource",agentId:t,onComplete:a,status:"queued",progress:0,errorMessage:null,xhr:null,abortController:null,createdAt:Date.now()}));m([...u.current,...r]),setTimeout(y,0)},[y,m]),C=(0,a.useCallback)(e=>{let t=u.current.find(t=>t.id===e);t&&(t.abortController?.abort(),"uploading"===t.status&&t.xhr?t.xhr.abort():"queued"===t.status&&m(u.current.map(t=>t.id===e?{...t,status:"cancelled",abortController:null}:t)))},[m]),k=(0,a.useCallback)(e=>{for(let t of u.current.filter(t=>("queued"===t.status||"uploading"===t.status)&&(!e||e(t))))t.abortController?.abort(),t.xhr?.abort();m(u.current.map(t=>"queued"===t.status&&(!e||e(t))?{...t,status:"cancelled",abortController:null,xhr:null}:t))},[m]),T=(0,a.useCallback)(e=>{m(u.current.map(t=>t.id===e?{...t,status:"queued",progress:0,errorMessage:null,xhr:null,abortController:null}:t)),setTimeout(y,0)},[y,m]),S=(0,a.useCallback)(e=>{m(u.current.map(t=>"error"===t.status&&(!e||e(t))?{...t,status:"queued",progress:0,errorMessage:null,xhr:null,abortController:null}:t)),setTimeout(y,0)},[y,m]),$=(0,a.useCallback)(()=>{m(u.current.filter(e=>"done"!==e.status&&"cancelled"!==e.status&&"error"!==e.status))},[m]);return(0,t.jsx)(l.Provider,{value:{items:n,registerRefreshCallback:h,enqueueFiles:v,enqueueResourceFiles:x,cancelUpload:C,cancelUploads:k,retryUpload:T,retryFailedUploads:S,clearCompleted:$},children:e})},"useUpload",0,function(){let e=(0,a.useContext)(l);if(!e)throw Error("useUpload must be used inside UploadProvider");return e}])},907915,e=>{"use strict";var t=e.i(271645),a=e.i(402389),r=e.i(209165);e.s(["useAIOrganise",0,function(e){let[o,s]=(0,t.useState)("idle"),[l,i]=(0,t.useState)({folderId:null,folderName:null}),[n,d]=(0,t.useState)(null),[u,c]=(0,t.useState)(0),[p,f]=(0,t.useState)(0),[m,h]=(0,t.useState)([]),[g,y]=(0,t.useState)(new Set),[b,w]=(0,t.useState)(new Map),[v,x]=(0,t.useState)(null),[C,k]=(0,t.useState)(null),T=(0,t.useRef)(null);T.current=n;let S=(0,t.useRef)(o);S.current=o;let $=(0,t.useCallback)(e=>{i(e),s("configure"),d(null),c(0),f(0),h([]),y(new Set),w(new Map),x(null),k(null)},[]),j=(0,t.useCallback)(()=>{s("idle"),d(null)},[]),E=(0,t.useCallback)(e=>{h(e.moves),y(new Set(e.moves.map(e=>e.file_id))),w(new Map),s("review")},[]),O=(0,t.useCallback)(async t=>{if(!e)return null;try{let a=await (0,r.apiFetch)(`/api/v1/data-rooms/${e}/ai-organise/${t}`);return await a.json()}catch{return null}},[e]),_=(0,t.useCallback)(async t=>{if(e){x(null);try{let a=await (0,r.apiFetch)(`/api/v1/data-rooms/${e}/ai-organise`,{method:"POST",body:JSON.stringify({folder_id:l.folderId,target_folder_ids:t.targetFolderIds??null,instructions:t.instructions||null})}),o=await a.json();d(o.job_id),c(0),f(0),s("analysing")}catch(e){x(e instanceof Error?e.message:a.default.t("hooksUi.aiOrganise.startFailed","Failed to start")),s("error")}}},[e,l.folderId]),P=(0,t.useCallback)(async e=>{"completed"===e.status?E(e):"failed"===e.status?(x(e.error??a.default.t("hooksUi.aiOrganise.analysisFailed","Analysis failed")),s("error")):"cancelled"===e.status&&s("idle")},[E]),F=(0,t.useCallback)(e=>{"ai_organise"===e.type&&e.job_id&&e.job_id===T.current&&("number"==typeof e.progress&&
1c(e.progress),"number"==typeof e.total&&f(e.total),("completed"===e.status||"failed"===e.status||"cancelled"===e.status)&&O(e.job_id).then(e=>{e&&P(e)}))},[O,P]);(0,t.useEffect)(()=>{if("analysing"!==o||!n)return;let e=window.setInterval(async()=>{let e=await O(n);e&&"analysing"===S.current&&(c(e.progress),f(e.total),("completed"===e.status||"failed"===e.status||"cancelled"===e.status)&&P(e))},3e3);return()=>window.clearInterval(e)},[o,n,O,P]);let N=(0,t.useCallback)(async()=>{if(!e||!n)return void s("idle");try{await (0,r.apiFetch)(`/api/v1/data-rooms/${e}/ai-organise/${n}/cancel`,{method:"POST"})}catch{}s("idle")},[e,n]),R=(0,t.useCallback)(e=>{y(t=>{let a=new Set(t);return a.has(e)?a.delete(e):a.add(e),a})},[]),D=(0,t.useCallback)((e,t)=>{y(a=>{let r=new Set(a);return e.forEach(e=>t?r.add(e):r.delete(e)),r})},[]),I=(0,t.useCallback)((e,t)=>{w(a=>{let r=new Map(a);return r.set(e,t),r})},[]),L=(0,t.useCallback)(e=>{let t=b.get(e);return t?.trim()?t.trim():e},[b]),A=(0,t.useCallback)(async()=>{if(!e||!n)return null;s("applying");try{let t=m.filter(e=>g.has(e.file_id)).map(e=>({file_id:e.file_id,target_folder_id:e.target_folder_id,new_folder_name:e.new_folder_name?L(e.new_folder_name):null})),a=await (0,r.apiFetch)(`/api/v1/data-rooms/${e}/ai-organise/${n}/apply`,{method:"POST",body:JSON.stringify({moves:t})}),o=await a.json();return k(o),s("done"),o}catch(e){return x(e instanceof Error?e.message:a.default.t("hooksUi.aiOrganise.applyFailed","Failed to apply")),s("error"),null}},[e,n,m,g,L]);return{phase:o,scope:l,progress:u,total:p,moves:m,selected:g,error:v,result:C,open:$,reset:j,start:_,cancel:N,apply:A,toggleMove:R,setGroupSelected:D,renameSuggestedFolder:I,effectiveFolderName:L,handleRoomEvent:F}}])},513550,e=>{"use strict";e.i(247167);var t=e.i(271645),a=e.i(209165),r=e.i(543478);let o="https://api.pltt.ai";async function s(e,t,a){let o=await (0,r.jobDownload)(e,a),s=URL.createObjectURL(o),l=document.createElement("a");l.href=s,l.download=t,document.body.appendChild(l),l.click(),l.remove(),URL.revokeObjectURL(s)}e.s(["useDataRoom",0,function(){let[e,r]=(0,t.useState)(null),[l,i]=(0,t.useState)(!1),[n,d]=(0,t.useState)(!1),u=(0,t.useRef)(0),c=(0,t.useRef)(null),p=(0,t.useRef)(null),[f,m]=(0,t.useState)(!1),h=(0,t.useCallback)((e,t)=>{r(a=>a?{...a,files:a.files.map(a=>a.id===e?t(a):a)}:a)},[]),g=(0,t.useCallback)(e=>{r(t=>t&&t.room.id===e.data_room_id&&p.current?.folderId===e.folder_id?{...t,files:[e,...t.files.filter(t=>t.id!==e.id)]}:t)},[]),y=(0,t.useCallback)((e,t)=>{r(a=>a?{...a,folders:a.folders.map(a=>a.id===e?t(a):a)}:a)},[]),b=(0,t.useCallback)(async(e,t)=>{let o=++u.current;t?.silent&&p.current?.roomId===e&&null===p.current.folderId||(i(!0),r(null)),p.current={roomId:e,folderId:null},d(!1);try{let t=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}`),s=await t.json();return o===u.current&&(c.current=s.room,r(s)),s}catch{return o===u.current&&d(!0),null}finally{o===u.current&&i(!1)}},[]),w=(0,t.useCallback)(async(e,t,o)=>{let s=++u.current;o?.silent&&p.current?.roomId===e&&p.current.folderId===t||(i(!0),r(null)),p.current={roomId:e,folderId:t},d(!1);try{let o=c.current?.id===e?c.current:null,[l,i]=await Promise.all([(0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}`).then(e=>e.json()),o?Promise.resolve(o):(0,a.apiFetch)(`/api/v1/data-rooms/${e}`).then(async e=>(await e.json()).room)]);return s===u.current&&(c.current=i,r({room:i,folders:l.folders??[],files:l.files??[]})),l}catch(e){throw s===u.current&&d(!0),e}finally{s===u.current&&i(!1)}},[]),v=(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders`,{method:"POST",body:JSON.stringify({name:t,parent_folder_id:r??null})})).json(),[]),x=(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}`,{method:"PATCH",body:JSON.stringify({name:r})})).json(),[]),C=(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}`,{method:"PATCH",body:JSON.stringify({parent_folder_id:null===r?-1:r})})).json(),[]),k=(0,t.useCallback)(async(e,t)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}`,{method:"DELETE"})},[]),T=(0,t.useCallback)(async(e,t,a,r)=>{m(!0);try{let s=new FormData;s.append("file",t),null!=a&&s.append("folder_id",String(a)),null!=r&&s.append("agent_id",String(r));let l=await fetch(`${o}/api/v1/data-rooms/${e}/files/upload`,{method:"POST",credentials:"include",body:s});if(!l.ok){let e=await l.json().catch(()=>({}));throw Error(e.detail??l.statusText)}return l.json()}finally{m(!1)}},[]),S=(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}`,{method:"PATCH",body:JSON.stringify({original_filename:r})})).json(),[]),$=(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}`,{method:"PATCH",body:JSON.stringify({folder_id:null===r?-1:r})})).json(),[]),j=(0,t.useCallback)(async(e,t)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}`,{method:"DELETE"})},[]),E=(0,t.useCallback)(async(e,t)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/indexing/retry`,{method:"POST"})).json(),[]),O=(0,t.useCallback)((e,t)=>`${o}/api/v1/data-rooms/${e}/files/${t}/download`,[]),_=(0,t.useCallback)((e,t,a)=>{let r=document.createElement("a");r.href=`${o}/api/v1/data-rooms/${e}/files/${t}/download`,r.download=a,document.body.appendChild(r),r.click(),document.body.removeChild(r)},[]),P=(0,t.useCallback)(async(e,t,r,o)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/bulk-delete`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:r}),signal:o})},[]),F=(0,t.useCallback)(async(e,t,r,o,s)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/transfer`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:r,target_room_id:o,target_folder_id:s})})},[]),N=(0,t.useCallback)(async(e,t,r)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/move-into`,{method:"POST",body:JSON.stringify({target_room_id:t,target_folder_id:r})})},[]),R=(0,t.useCallback)(async(e,t)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}/promote`,{method:"POST"})).json(),[]),D=(0,t.useCallback)(async(e,t,r,o)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/bulk-move`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:r,target_folder_id:o})})},[]),I=(0,t.useCallback)(async(e,t)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}/contents`,{method:"DELETE"})},[]),L=(0,t.useCallback)(async(e,t)=>{await s(`/api/v1/data-rooms/${e}/download-zip`,`${t}.zip`)},[]),A=(0,t.useCallback)(async(e,t,a)=>{await s(`/api/v1/data-rooms/${e}/folders/${t}/download-zip`,`${a}.zip`)},[]),M=(0,t.useCallback)(async e=>{try{let t=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/trash`);return await t.json()}catch{return null}},[]),J=(0,t.useCallback)(async(e,t,r)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}
1/trash/restore`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:r})})},[]),H=(0,t.useCallback)(async(e,t,r)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/trash/delete`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:r})})},[]),z=(0,t.useCallback)(async e=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/trash`,{method:"DELETE"})},[]),U=(0,t.useCallback)(async(e,t,r)=>{let o=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}`,{method:"PATCH",body:JSON.stringify({tags:r})}),s=await o.json();return h(t,e=>({...e,...s})),s},[h]),q=(0,t.useCallback)(async(e,t,r)=>{let o=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}`,{method:"PATCH",body:JSON.stringify({keywords:r})}),s=await o.json();return h(t,e=>({...e,...s})),s},[h]),B=(0,t.useCallback)(async(e,t,r)=>{let o=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/folders/${t}`,{method:"PATCH",body:JSON.stringify({tags:r})}),s=await o.json();return y(t,e=>({...e,...s})),s},[y]),G=(0,t.useCallback)(async(e,t)=>{try{let r=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/tagged?tag=${t}`);return await r.json()}catch{return null}},[]),W=(0,t.useCallback)(async e=>{try{let t=await (0,a.apiFetch)(`/api/v1/data-rooms/tagged?tag=${e}`);return await t.json()}catch{return null}},[]),X=(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/duplicate`,{method:"POST",body:JSON.stringify(null!=r?{folder_id:r}:{})})).json(),[]),K=(0,t.useCallback)(async(e,t,a,r)=>{await s(`/api/v1/data-rooms/${e}/download-zip`,`${r}.zip`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:a})})},[]),V=(0,t.useCallback)(async(e,t)=>{try{let r=null!=t?`?before_id=${t}`:"",o=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/activity${r}`);return await o.json()}catch{return null}},[]),Y=(0,t.useCallback)(async(e,t)=>{try{let r=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/comments`);return await r.json()}catch{return[]}},[]);return{contents:e,loading:l,error:n,uploading:f,fetchRoot:b,fetchFolder:w,createFolder:v,renameFolder:x,moveFolder:C,deleteFolder:k,uploadFile:T,renameFile:S,moveFile:$,deleteFile:j,retryFileIndexing:E,downloadUrl:O,downloadFile:_,bulkDelete:P,bulkMove:D,transferItems:F,moveRoomInto:N,promoteFolder:R,emptyFolder:I,downloadFolderZip:A,downloadRoomZip:L,fetchTrash:M,restoreItems:J,permanentDelete:H,emptyTrash:z,setFileTags:U,setFileKeywords:q,setFolderTags:B,fetchTagged:G,fetchTaggedAll:W,duplicateFile:X,downloadSelectionZip:K,fetchActivity:V,fetchComments:Y,addComment:(0,t.useCallback)(async(e,t,r)=>(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/comments`,{method:"POST",body:JSON.stringify({content:r})})).json(),[]),deleteComment:(0,t.useCallback)(async(e,t)=>{await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/comments/${t}`,{method:"DELETE"})},[]),patchFileInContents:h,upsertFileInContents:g,patchFolderInContents:y}}])},649714,e=>{"use strict";var t=e.i(271645),a=e.i(402389),r=e.i(209165);e.s(["useDataRooms",0,function(){let[e,o]=(0,t.useState)([]),[s,l]=(0,t.useState)(!0),[i,n]=(0,t.useState)(null),d=(0,t.useCallback)(async()=>{l(!0),n(null);try{let e=await (0,r.apiFetch)("/api/v1/data-rooms"),t=await e.json();o(t)}catch(e){n(e instanceof Error?e.message:a.default.t("hooksUi.dataRooms.loadFailed","Failed to load drives"))}finally{l(!1)}},[]);(0,t.useEffect)(()=>{d()},[d]);let u=(0,t.useCallback)(async(e,t,a)=>{let o=await (0,r.apiFetch)("/api/v1/data-rooms",{method:"POST",body:JSON.stringify({name:e,description:t??null,team_id:a??null})}),s=await o.json();return await d(),s},[d]);return{dataRooms:e,loading:s,error:i,createRoom:u,deleteRoom:(0,t.useCallback)(async e=>{await (0,r.apiFetch)(`/api/v1/data-rooms/${e}`,{method:"DELETE"}),o(t=>t.filter(t=>t.id!==e))},[]),refetch:d,patchRoom:(0,t.useCallback)((e,t)=>{o(a=>a.map(a=>a.id===e?t(a):a))},[])}}])},236643,e=>{"use strict";var t=e.i(13080);e.s(["useIsViewer",0,function(){let{user:e}=(0,t.useAuth)();return e?.org_role==="viewer"}])},566141,e=>{"use strict";e.i(247167);var t=e.i(271645);e.s(["useRoomEvents",0,function(e,a){let r=t.default.useRef(a);r.current=a,t.default.useEffect(()=>{if(!e)return;let t=new EventSource(`https://api.pltt.ai/api/v1/data-rooms/${e}/events`,{withCredentials:!0});return t.onmessage=e=>{try{let t=JSON.parse(e.data);"connected"!==t.type&&r.current(t)}catch{}},()=>t.close()},[e])}])},494202,e=>{"use strict";async function t(e,a){var r;let o=[...a,e.name],s=await (r=e.createReader(),new Promise(e=>{let t=[],a=()=>{r.readEntries(r=>{0===r.length?e(t):(t.push(...r),a())},()=>e(t))};a()})),l=[];for(let e of s)if(e.isFile){let t=await new Promise((t,a)=>e.file(t,a));l.push({file:t,path:o})}else if(e.isDirectory){let a=await t(e,o);l.push(...a)}return l}async function a(e){let a=Array.from(e.items),r=[];for(let e of a){let a=e.webkitGetAsEntry?.();a?.isDirectory?r.push(t(a,[])):a?.isFile&&r.push(new Promise(e=>a.file(t=>e([{file:t,path:[]}]),()=>e([]))))}return r.length>0?(await Promise.all(r)).flat():Array.from(e.files).filter(e=>e.size>0||""!==e.type).map(e=>({file:e,path:[]}))}async function r(e,t){let a=new Map,r=async e=>{if(0===e.length)return t.baseFolderId;let o=e.join("/"),s=a.get(o);if(void 0!==s)return s;let l=await r(e.slice(0,-1)),i=await t.createFolder(e[e.length-1],l);return a.set(o,i.id),i.id},o=new Map;for(let t of e){let e=await r(t.path),a=o.get(e);
1a?a.push(t.file):o.set(e,[t.file])}return{byFolder:o,createdFolders:a.size}}e.s(["asDroppedFiles",0,function(e){return e.map(e=>({file:e,path:[]}))},"extractDroppedItems",0,a,"resolveDroppedFolders",0,r])},78504,e=>{"use strict";var t=e.i(209165);async function a(e,a,r,o){let s=await fetch(`${t.BASE}${e}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(a),signal:o});if(!s.ok||!s.body){let e=await s.json().catch(()=>({}));throw Error("string"==typeof e.detail?e.detail:`HTTP ${s.status}`)}let l=s.body.getReader(),i=new TextDecoder,n="",d="message";for(;;){let{done:e,value:t}=await l.read();if(e)break;let a=(n+=i.decode(t,{stream:!0})).split("\n");for(let e of(n=a.pop()??"",a)){if(e.startsWith("event: ")){d=e.slice(7).trim();continue}if(e.startsWith("data: "))try{r({event:d,data:JSON.parse(e.slice(6))})}catch{}}}}e.s(["fetchSSE",0,a])},493394,e=>{"use strict";var t=e.i(402389);e.s(["putFileWithProgress",0,function(e,a,r,o,s,l,i={}){return new Promise((n,d)=>{let u=new XMLHttpRequest;l?.(u),u.upload.onprogress=e=>{e.lengthComputable&&o?.(Math.round(e.loaded/e.total*100))},u.onload=()=>{l?.(null),u.status>=200&&u.status<300||412===u.status&&"0"===i["x-goog-if-generation-match"]?n():d(Error(`Upload failed: HTTP ${u.status}`))},u.onerror=()=>{l?.(null),d(Error(t.default.t("paletteOs:session.uploadNetworkError","Network error while uploading")))},u.onabort=()=>{l?.(null),d(new DOMException(t.default.t("paletteOs:session.uploadCancelled","Upload cancelled"),"AbortError"))},s?.addEventListener("abort",()=>u.abort(),{once:!0}),u.open("PUT",e),u.setRequestHeader("Content-Type",r),Object.entries(i).forEach(([e,t])=>u.setRequestHeader(e,t)),u.send(a)})}])},562436,770633,e=>{"use strict";e.s(["TAG_COLORS",0,["red","orange","yellow","green","blue","purple","gray"]],562436);var t=e.i(500932),a=e.i(209165);async function r(e,t){let r=null==t?"":`?folder_id=${t}`;return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/cleanup${r}`)).json()}async function o(e,t){let r=null==t?"":`?folder_id=${t}`;return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/digest${r}`)).json()}async function s(e,t,r){return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/digest`,{method:"POST",body:JSON.stringify({folder_id:t,refresh:void 0!==r&&r})})).json()}async function l(e,t,r){return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/ingestion-review/${t}/apply`,{method:"POST",body:JSON.stringify({actions:r})})).json()}async function i(e,t,r){return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/ingestion-review`,{method:"POST",body:JSON.stringify({file_ids:t,folder_id:r})})).json()}async function n(e,t){return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/find-duplicates`,{method:"POST",body:JSON.stringify({folder_id:t})})).json()}async function d(e,t){let r=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/suggest-renames`,{method:"POST",body:JSON.stringify({file_ids:t})});return(await r.json()).suggestions??[]}async function u(e,t,r,o){return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/ai/suggest-tags`,{method:"POST",body:JSON.stringify({file_ids:t,folder_ids:r,propose_legend:o})})).json()}async function c(e,t){await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/tag-legend`,{method:"PUT",body:JSON.stringify({legend:t})})}async function p(e){let t=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/tag-legend`);return(await t.json()).legend??{}}async function f(e,t){let r=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/keywords`,{method:"POST"});return(await r.json()).keywords??[]}async function m(e,t,r){return(await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/summary`,{method:"POST",body:JSON.stringify({refresh:void 0!==r&&r})})).json()}async function h(e,t){let r=await (0,a.apiFetch)(`/api/v1/data-rooms/${e}/files/${t}/summary`);return await r.json()??null}e.s(["useDataRoomAI",0,function(){let e,a=(0,t.c)(1);return a[0]===Symbol.for("react.memo_cache_sentinel")?(e={fetchSummary:h,summarizeFile:m,regenerateKeywords:f,fetchTagLegend:p,saveTagLegend:c,suggestTags:u,suggestRenames:d,findDuplicates:n,createIngestionReview:i,applyIngestionReview:l,createDigest:s,fetchDigest:o,fetchCleanup:r},a[0]=e):e=a[0],e}],770633)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.