PageSourceSearch

https://app.devin.ai/assets/SessionActions-BtADt1R2.js

js devin.ai collected 2026-10-02 02:21:01 UTC 12,697 bytes, 1 lines download raw bytes

1import{n as e}from"./rolldown-runtime-BcKkbAw3.js";import{$n as t,Ys as n,a as r,di as i,dr as a,h as o,nc as s}from"./helpers-D7U6SKLG.js";import{gt as c,ht as l,nn as u,rn as d}from"./app-initial-DD7GFF0s.js";import{Kt as f,lt as p}from"./app-initial-BT7vqmfV.js";import{t as m}from"./react-TlXBPkuU.js";import{Bt as h,Ln as g,Mn as _,Wt as ee,wt as v}from"./app-initial-CS1p4Vtf.js";import{t as y}from"./jsx-runtime-BbDfbRii.js";import{cn as b,dt as x,ft as S,ln as te,mt as C,st as ne,ut as re}from"./app-initial-Bgh4hgtI.js";import{Mn as w}from"./app-initial-DYH8RI0A.js";import{Tt as ie,wt as ae}from"./app-initial-C8loLsTN.js";import{n as T,t as oe}from"./useTranslation-BWl6CnTb.js";import{bn as se,xn as E}from"./app-initial-Bd3ZJHo4.js";import{Nt as ce,Pt as le,bt as ue,yt as D}from"./app-initial-BjtH6ANy.js";import{$ as de,Q as O,a as fe,c as pe}from"./host-embedded-CGRgZEgp.js";import{Pt as me,Tt as he,Vt as ge,wt as _e,zt as ve}from"./app-initial-9KAnapkH.js";import{n as ye,r as be}from"./useNavigate-BHKHTLnA.js";import{r as xe,t as k}from"./link-CE3ZTdfL.js";import{F as A,I as j,L as M,Wt as Se,Xt as Ce,Yt as we}from"./app-initial-D0_3XXzR.js";import{g as N,o as Te,p as Ee,r as De,s as Oe}from"./app-initial-vBrBzpIc.js";import{g as ke,h as Ae}from"./app-initial-XzDg_p9z.js";import{Lt as je,Rt as Me,ct as Ne,it as Pe,on as Fe,rt as Ie,un as P}from"./app-initial-DVsBGP2U.js";import{L as Le}from"./app-initial-CM64k348.js";import{i as F,r as Re}from"./app-initial-BwtPA4MW.js";import{$o as ze,Aa as Be,Ah as Ve,Bf as He,Cg as Ue,Dg as We,Dl as Ge,Eg as Ke,El as qe,Id as Je,Ld as Ye,Nh as Xe,Oa as Ze,Ph as Qe,Sg as $e,Tg as et,ba as tt,dl as nt,es as rt,fh as it,fl as at,h_ as ot,jh as st,kg as ct,lh as lt,m_ as ut,ph as dt,uh as ft,vf as pt,vh as mt,xa as ht,yf as gt,yh as _t,zf as vt}from"./central-icons-DhsnQenl.js";import{Ct as I,St as yt}from"./app-initial-Nenx5p-a.js";import{Pt as L,S as R,jt as bt,ot as xt,pt as z,x as St}from"./app-initial-BSPoyT9w.js";import{h as Ct,p as wt}from"./app-initial-BpsfOphW.js";import{ot as Tt,st as Et}from"./app-initial-B8lVhuGM.js";import{C as Dt,w as Ot}from"./app-initial-DC0VttvU.js";import{_ as B,g as kt}from"./app-initial-BsJJMZmX.js";import{b as V,f as At,m as jt,t as Mt}from"./useQuery-4Xeuj2MT.js";import{T as Nt,U as Pt,g as Ft}from"./requests-cUl7Jcqa.js";import{M as It,X as Lt,st as Rt}from"./app-initial-BJ07swvb.js";import{n as zt,r as Bt}from"./IconEmail2Check-B1C7CI3a.js";import{n as Vt,r as Ht}from"./IconShareOs-Dwmjnh2r.js";function Ut(e){let{userId:t,postAuthResult:n}=P(),r=n?.data?.org_name,i=e?.user_id===t,o=!!e?.automation_id,s=!e?.created_locally,c=[`cli`,`vscode-extension`,`api`,`webapp`].includes(e?.session_origin??``),{data:l,isPending:u,isPlaceholderData:d}=a();return{session:e,isMySession:i,isAutomationSession:o,isSessionCreatedOnServer:s,orgName:r,isSupportedSessionOriginForHiding:c,canChangeTeamVisibility:!u&&!d&&l?.session_visibility_capped_to_creator!==!0}}function Wt(e,t){let{t:n}=T(),r=s(),i=C(e.devin_id),{mutateAsync:a}=t,o=!!e.created_locally&&x(e);return{handleArchive:(0,X.useCallback)(async n=>{if(t.isPendingFor(e.devin_id))return;let r=performance.now(),i=e.is_archived?void 0:Le(),o=a({sessionIds:[e.devin_id],archive:!e.is_archived,closePrUrls:n,...i?{timeline:i}:{}});return i&&F(`archive_session`,r,o,i),o.catch(()=>void 0)},[t,a,e.devin_id,e.is_archived]),isArchived:e.is_archived,isConnectorSession:o,isArchiveDisabled:!x(e)||(e.is_archived?!i.unarchive:!i.archive),...e.is_archived?{label:n(`sidebar.unarchive`),Icon:mt,info:void 0,variant:void 0}:r?{label:n(`sidebar.stopSession`),Icon:Ge,info:n(o?`sidebar.stopSessionInfoLocal`:`sidebar.stopSessionInfo`),variant:`destructive`}:{label:n(`sidebar.archive`),Icon:Xe,info:n(o?`sidebar.stopSessionInfoLocal`:`sidebar.archiveInfo`),variant:void 0}}}function Gt(e){let{t}=T(),n=D.navigation.useShareableUrl();return{handleCopySessionLink:(0,X.useCallback)(async()=>{let r=n(`/sessions/${w(e.devin_id)}`);try{await l.writeText(r),I.success(t(`sessionMenu.sessionLinkCopied`))}catch{I.error(t(`sessionMenu.failedToCopySessionLink`))}},[e.devin_id,n,t]),cloudSession:b(e.devin_id)===ce,label:t(`sidebar.actions.copySessionLink`),Icon:pt}}function Kt(e){let{t}=T(),n=pe();return(0,X.useMemo)(()=>
1{if(n){let n=`${u()}/sessions/${w(e)}?viewer=web`;return{label:t(`sessionMenu.openInWeb`),Icon:He,render:(0,Z.jsx)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`})}}return{label:t(Te()===`insiders`?`sessionMenu.openInDevinDesktopInsiders`:`sessionMenu.openInDevinDesktop`),Icon:tt,render:(0,Z.jsx)(`a`,{href:De(e)})}},[e,n,t])}function qt(e){let t=D.navigation.useShareableUrl(),n=(0,X.useCallback)(async()=>{let n=t(`/sessions/${e.devin_id.replace(`devin-`,``)}`);try{navigator.share?await navigator.share({title:e.title||`Devin session`,url:n}):(await l.writeText(n),I.success(`Session link copied to clipboard`))}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;try{await l.writeText(n),I.success(`Session link copied to clipboard`)}catch{I.error(`Failed to copy session link`)}}},[e.devin_id,e.title,t]),{t:r}=T();return{handleShareSession:n,label:r(`sidebar.actions.shareSession`),Icon:Vt}}function H(){let{api:e}=E();return z({mutationKey:L.setVisibility,mutationFn:async({sessionId:t,unlisted:n})=>{if(!(await Rt(e,t,n))?.success)throw Error(`Failed to update session visibility`)},optimistic:({sessionId:e,unlisted:t})=>[{sessionId:e,fields:{unlisted:t}}],onError:()=>{I.error(`Failed to update session visibility`)}})}function Jt(e){return U(e,B(H()))}function U(e,t){let{mutateAsync:n}=t,r=(0,X.useCallback)(async()=>{await n({sessionId:e.devin_id,unlisted:!e.unlisted})},[e.devin_id,e.unlisted,n]),{t:i}=T();return{handleToggleVisibility:r,isHidden:e.unlisted,label:e.unlisted?i(`sidebar.actions.makeVisibleToTeam`):i(`sidebar.actions.hideFromTeam`),Icon:e.unlisted?We:Ke}}function Yt(e,t){let n=Q.get(e);n||(n=new Map,Q.set(e,n));let r=n.get(t);if(r)return r;let i=Ft(e,t).finally(()=>{n.delete(t)});return n.set(t,i),i}function W(e,t){let{postAuthResult:r}=P(),{api:i}=E(),a=r?.data?.org_name,s=n(),c=ee(),l=h(),u=!!e?.initial_user_message_contents?.truncated,d=u&&(t?.resolveFullPrompt??!0),f=t?.resolveAttempt??0,[p,m]=(0,X.useState)(null),g=(0,X.useRef)(null);(0,X.useEffect)(()=>{if(!d)return;let t=e.devin_id;g.current!==t&&p?.id!==t&&(g.current=t,Yt(i,t).then(e=>{g.current===t&&(g.current=null);let n=e?.initial_user_message_contents;!e||!n||n.truncated||(m({id:t,message:n.message??``}),o(O(),[e]))}).catch(()=>{g.current===t&&(g.current=null)}))},[i,d,e?.devin_id,f,p]);let _=u?p?.id===e?.devin_id?p.message:void 0:e?.initial_user_message_contents?.message??``,v=_??``,y=Et(v,!!e?.playbook_id),b=e?.playbook_id||void 0,x=a&&_!==void 0?s&&c?(0,Z.jsx)(k,{to:`/automations/create`,onClick:()=>ke(v,b,l)}):(0,Z.jsx)(k,{to:`/settings/schedules/create`,search:{prompt:y,playbook_id:b}}):void 0,{t:S}=T();return{render:x,disabled:!a||u&&_===void 0,label:S(`sidebar.actions.scheduleDevin`),Icon:Ye}}function Xt(e){let{orgName:t}=ie(),n=t?(0,Z.jsx)(Dt,{draft:wt(e.devin_id,e.title,e.status)}):void 0,{t:r}=T();return{render:n,disabled:!t,label:r(`sidebar.actions.analyzeSession`),Icon:$e}}function Zt(e){let{t}=T(),{userId:n,orgId:r}=P(),i=O(),a=be();return{onClick:(0,X.useCallback)(()=>{if(!r)return;let t=ge(i,e.devin_id,r),n=r,o=i.get(me),s={[e.devin_id]:!0},c=o[e.devin_id]?.proposed_by_devin_id;for(;c!=null&&!(c in s);)s[c]=!0,c=o[c]?.proposed_by_devin_id;i.set(Ce(n),e=>Se(e,s)),a({to:`/sessions/$sessionId`,params:{sessionId:w(t)}})},[i,e.devin_id,r,a]),disabled:!r||!A(e)||j({session:{devin_id:``,org_id:r},candidate:e,currentUserId:n,descendantIds:void 0})!==void 0,label:t(`sidebar.actions.newChildSession`),Icon:ze}}function Qt(e){return G(e,B(V({showUndoToast:!0})))}function G(e,t){let{t:n}=T(),{userId:r}=P(),{mutate:i,mutateAsync:a}=t,o=t.isPendingFor(e.devin_id),s=R(e),c=(0,X.useMemo)(()=>f(e.assignees,r),[e.assignees,r]),l=(0,X.useCallback)(()=>{t.isPendingFor(e.devin_id)||!r||s((t,n)=>a({sessionId:e.devin_id,state:`unsubscribed`,autoArchive:t,closePrUrls:n}).catch(()=>void 0),n(`sidebar.actions.justUnsubscribe`))},[s,e,a,t,n,r]),u=(0,X.useCallback)(()=>{if(!(t.isPendingFor(e.devin_id)||!r)){if(c){l();return}i({sessionId:e.devin_id,state:`subscribed`})}},[l,c,e.devin_id,i,t,r]),d=(0,X.useCallback)(()=>{t.isPendingFor(e.devin_id)||!r||s((t,n)=>{let r=performance.now(),i=a({sessionId:e.devin_id,state:`unsubscribed`,asDone:!0,autoArchive:t,closePrUrls:n}).catch(()=>void 0);return F(`mark_session_done`,r,i),i},n(`sidebar.actions.justMarkDone`))},[s,e,a,t,n,r]);return(0,X.useMemo)(()=>({handleToggleAssign:u,handleRemoveMyself:l,handleMarkDone:d,isAssignedToMe:c,isAssignDisabled:!!e.created_locally,isAssigning:o,label:n(c?`sidebar.actions.unsubscribe`:`sidebar.actions.subscribe`),Icon:c?lt:it,unsubscribeInfo:n(`sidebar.actions.unsubscribeInfo`),hideFromSidebarLabel:n(`sidebar.actions.hideFromSidebar`),HideFromSidebarIcon:ut}),[d,l,u,c,o,e.created_locally,n])}function $t(e){return K(e,B(V({showUndoToast:!0})))}function K(e,t){let{t:n}=T(),{userId:r}=P(),{mutate:i,mutateAsync:a}=t,o=t.isPendingFor(e.devin_id),s=R(e),c=C(e.devin_id),l=!!e.is_done,u=(0,X.useCallback)(()=>
1{if(!(t.isPendingFor(e.devin_id)||!r)){if(l){i({sessionId:e.devin_id,state:`subscribed`});return}s((t,n)=>{let r=performance.now(),i=a({sessionId:e.devin_id,state:`done`,autoArchive:t,closePrUrls:n}).catch(()=>void 0);return F(`mark_session_done`,r,i),i},n(`sidebar.actions.justMarkDone`))}},[s,l,i,a,e,t,n,r]);return(0,X.useMemo)(()=>({handleToggleDone:u,isDone:l,isPending:o,isDisabled:!x(e)||!c.archive,label:n(l?`sidebar.actions.markNotDone`:`sidebar.actions.markDone`),Icon:Ve,iconClassName:l?`!text-green`:void 0,info:l?void 0:n(`sidebar.actions.markDoneInfo`)}),[u,l,o,e,c.archive,n])}function en(){let{t:e}=T(),{api:t}=E(),n=N(),r=g();return z({mutationKey:L.setUnread,mutationFn:async({sessionId:e,isUnread:i})=>{if(n){if(!r)throw Error(`ACP session provider is missing`);await je(r,{sessionId:e,isUnread:i});return}await Pt(t,e,i)},optimistic:({sessionId:e,isUnread:t})=>[{sessionId:e,fields:{is_unread:t}}],onSuccess:(e,{sessionId:t,isUnread:n})=>{O().set(he,e=>({...e,[t]:{...e[t],is_unread:n}}))},onError:()=>{I.error(e(`sidebar.actions.markUnreadFailed`))}})}function tn(e,t){let{t:n}=T(),r=!!e.is_unread,{mutate:i}=t,a=t.isPendingFor(e.devin_id),o=(0,X.useCallback)(()=>{t.isPendingFor(e.devin_id)||i({sessionId:e.devin_id,isUnread:!r})},[r,e.devin_id,i,t]);return(0,X.useMemo)(()=>({handleToggleUnread:o,isUnread:r,isPending:a,isDisabled:!!e.created_locally,label:n(r?`sidebar.actions.markAsRead`:`sidebar.actions.markAsUnread`),Icon:r?Bt:Ze}),[o,r,a,e.created_locally,n])}function q(){let{api:e}=E(),t=Pe(),n=N(),r=g();return z({mutationKey:L.rename,mutationFn:async({sessionId:i,title:a})=>{let o=t?.renameSession(i,a);if(o!=null)return await o,{title:a};let s=b(i);if(s!==`devin-cloud`)throw new ne(`rename`,s);if(n&&r!==null)return await Me(r,i,a),{title:a};let{title:c}=await It(e,i,a);return{title:c}},optimistic:({sessionId:e,title:t})=>[{sessionId:e,fields:{title:t}}],onError:()=>{I.error(`Failed to save session name`)}})}function nn(e){return J(e,B(q()))}function J(e,t){let{mutateAsync:n}=t,r=e?.devin_id,i=!!r&&t.isPendingFor(r),a=(0,X.useCallback)(async e=>{r&&await n({sessionId:r,title:e})},[n,r]),{t:o}=T();return(0,X.useMemo)(()=>({handleRename:a,isPending:i,label:o(`sidebar.actions.rename`),Icon:nt}),[a,i,o])}function rn(e){return Y(e,B(At({showUndoToast:!0})),B(jt({showUndoToast:!0})))}function Y(e,t,n){let{userId:r}=P(),{mutate:i}=t,{mutate:a}=n,o=e.folder??null,s=!!o,c=t.isPendingFor(e.devin_id)||n.isPendingFor(e.devin_id),l=e.user_id===r,u=S(e),d=(0,X.useCallback)(r=>{t.isPendingFor(e.devin_id)||n.isPendingFor(e.devin_id)||i({sessionId:e.devin_id,folder:r})},[i,t,n,e.devin_id]),f=(0,X.useCallback)(()=>{t.isPendingFor(e.devin_id)||n.isPendingFor(e.devin_id)||a({sessionId:e.devin_id,folder:e.folder??void 0})},[a,t,n,e.devin_id,e.folder]);return{folder:o,isInFolder:s,isMySession:l,isPending:c,isDisabled:!u||!!e.is_archived,isRemoveDisabled:!u,handleMoveToFolder:d,handleRemoveFromFolder:f}}var X,Z,Q;function $(){return($=e((()=>{v(),_(),re(),te(),se(),Ct(),ue(),le(),i(),t(),_e(),ve(),yt(),we(),M(),p(),xe(),ye(),Qe(),st(),ot(),zt(),qe(),ct(),et(),vt(),ht(),Ue(),at(),rt(),Ht(),gt(),Be(),Je(),_t(),dt(),ft(),de(),X=m(),oe(),c(),d(),Ot(),ae(),Re(),Ne(),Ie(),Fe(),fe(),Ae(),r(),xt(),St(),bt(),Mt(),Nt(),Tt(),Lt(),Oe(),Ee(),kt(),Z=y(),Q=new WeakMap})))()}export{tn as C,qt as S,J as _,G as a,en as b,K as c,Jt as d,U as f,nn as g,q as h,Qt as i,rn as l,Kt as m,Xt as n,Gt as o,Zt as p,Wt as r,$t as s,$ as t,Y as u,W as v,H as x,Ut as y};

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.