clay-server 5.3.0-beta.4 → 5.3.0-beta.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.
- package/lib/ask-user-request-identity.js +18 -1
- package/lib/project-delegated-follow-up.js +18 -9
- package/lib/public/css/right-workbench.css +26 -3
- package/lib/public/css/shared-browser.css +21 -0
- package/lib/public/css/sticky-notes.css +3 -2
- package/lib/public/index.html +2 -2
- package/lib/public/modules/app-header.js +24 -2
- package/lib/public/modules/app-messages.js +1 -1
- package/lib/public/modules/clay-session-links.js +1 -1
- package/lib/public/modules/filebrowser.js +2 -2
- package/lib/public/modules/pane-activation.js +3 -0
- package/lib/public/modules/pane-browser-bridge.js +15 -5
- package/lib/public/modules/pane-header-runtime.js +18 -0
- package/lib/public/modules/right-workbench.js +92 -62
- package/lib/public/modules/shared-browser.js +6 -0
- package/lib/public/modules/split-pane-renderer.js +6 -8
- package/lib/public/modules/split-pane-runtime.js +23 -0
- package/lib/public/modules/split-view.js +8 -14
- package/lib/public/modules/sticky-notes.js +8 -10
- package/lib/public/modules/terminal.js +7 -2
- package/lib/public/modules/theme.js +5 -0
- package/lib/public/modules/workspace-assignment-card.js +9 -6
- package/lib/public/pane-assets/{app-ED2VCGNQ.js → app-6H5S2Y3Z.js} +1 -1
- package/lib/public/pane-assets/chunk-3QV5SDC4.js +1 -0
- package/lib/public/pane-assets/{chunk-JAEQCN5S.js → chunk-4FM3U3DW.js} +1 -1
- package/lib/public/pane-assets/{chunk-6SM2WQJX.js → chunk-7GZH3FZY.js} +1 -1
- package/lib/public/pane-assets/chunk-AGJTF5WQ.js +1 -0
- package/lib/public/pane-assets/chunk-NPKRTUNG.js +2 -0
- package/lib/public/pane-assets/{chunk-IYFILQHZ.js → chunk-VGA2Y3D2.js} +1 -1
- package/lib/public/pane-assets/{chunk-IZ2ZANEY.js → chunk-WKO3T75E.js} +89 -89
- package/lib/public/pane-assets/manifest.json +361 -359
- package/lib/public/pane-assets/{style-JVCOCG3W.css → style-TSRDU54Z.css} +1 -1
- package/lib/server.js +1 -0
- package/lib/workspace-assignment-service.js +56 -11
- package/lib/workspace-follow-up-queue.js +92 -0
- package/lib/workspace-query-mcp-server.js +1 -1
- package/package.json +1 -1
- package/lib/public/pane-assets/chunk-6D4DPE5X.js +0 -1
- package/lib/public/pane-assets/chunk-7H36SUZA.js +0 -2
- package/lib/public/pane-assets/chunk-ST2Q62ET.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as i,c as m}from"./chunk-DGOFGEUK.js";function k(e,r,n){var t=document.createElement("div");if(t.className="toast",r&&t.classList.add("toast-"+r),t.textContent=e,n){var o=document.createElement("div");o.style.cssText="font-size:11px;opacity:0.7;margin-top:4px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap",o.textContent=n.split(`
|
|
2
|
+
`)[0],t.appendChild(o)}document.body.appendChild(t),requestAnimationFrame(function(){t.classList.add("visible")});var s=r==="warn"?5e3:1500;setTimeout(function(){t.classList.remove("visible"),setTimeout(function(){t.remove()},300)},s)}var ze=/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;function cr(e){var r;if(ze){var n=document.createElement("textarea");n.value=e,n.style.cssText="position:fixed;left:-9999px;opacity:0",document.body.appendChild(n),n.focus(),n.setSelectionRange(0,n.value.length),document.execCommand("copy"),document.body.removeChild(n),r=Promise.resolve()}else if(navigator.clipboard&&navigator.clipboard.writeText)r=navigator.clipboard.writeText(e);else{var t=document.createElement("textarea");t.value=e,t.style.cssText="position:fixed;left:-9999px;opacity:0",document.body.appendChild(t),t.focus(),t.setSelectionRange(0,t.value.length),document.execCommand("copy"),document.body.removeChild(t),r=Promise.resolve()}return r.then(function(){k("Copied to clipboard")})}function he(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function N(e){var r=i.snap();return e&&r.connected&&e.socket===m()&&e.ownerId===(r.myUserId||null)&&e.slug===r.currentSlug&&e.sessionId===r.activeSessionId&&e.origin===r.sessionOriginId&&e.runtime===r.controlRuntimeId}function we(e){var r=i.get("studioDocumentSource");r&&clearTimeout(r.timer),r&&N(r)&&r.socket.send(JSON.stringify({type:"fs_unwatch"}));var n=i.snap(),t={token:crypto.randomUUID(),socket:m(),ownerId:n.myUserId||null,slug:n.currentSlug,sessionId:n.activeSessionId,origin:n.sessionOriginId,runtime:n.controlRuntimeId,path:e.path,expires:Date.now()+3e5};return t.timer=setTimeout(function(){i.get("studioDocumentSource")===t&&(N(t)&&t.socket.send(JSON.stringify({type:"fs_unwatch"})),i.set({studioDocumentSource:null}))},3e5),i.set({studioDocumentSource:t}),N(t)&&t.socket.send(JSON.stringify({type:"fs_watch",path:t.path})),Object.assign({},e,{studioDocument:{token:t.token,sourceSlug:t.slug,sourceSessionId:t.sessionId,sourceOrigin:t.origin,runtimeId:t.runtime,expires:t.expires,path:t.path}})}function fr(e,r,n){var t=r.message&&r.message.studioDocument;if(!(!n||!t||t.path!==r.message.path||t.sourceSlug!==r.studioSource.slug||t.sourceSessionId!==r.studioSource.sessionId||t.sourceOrigin!==r.studioSource.origin||t.runtimeId!==r.studioSource.runtime)){me();var o=m();o&&o.readyState===1&&o.send(JSON.stringify({type:"fs_unwatch"})),i.set({fileReadRequest:null,pendingFileNavigation:null});var s={descriptor:t,frame:n,document:n.contentDocument,source:e.source,owner:i.get("myUserId"),context:i.get("currentSlug")};s.timer=setTimeout(function(){i.get("studioDocumentView")===s&&i.set({studioDocumentView:{descriptor:s.descriptor,invalidated:!0}})},Math.max(0,t.expires-Date.now())),i.set({studioDocumentView:s})}}function Ve(e){var r=i.get("studioDocumentView");if(!r||r.invalidated||!r.frame||Date.now()>r.descriptor.expires||r.descriptor.path!==e)return null;var n=r.frame.clayStudioSource,t=n&&n.document===r.frame.contentDocument&&n.window===r.source&&n.identity();return t&&t.connected&&t.ownerId===r.owner&&t.slug===r.descriptor.sourceSlug&&t.sessionId===r.descriptor.sourceSessionId&&t.origin===r.descriptor.sourceOrigin&&t.runtime===r.descriptor.runtimeId&&r.document===r.frame.contentDocument&&r.source===r.frame.contentWindow&&r.owner===i.get("myUserId")&&r.context===i.get("currentSlug")?r:null}function pr(e){var r=i.get("studioDocumentView");if(!r||r.descriptor.path!==e)return!1;var n=Ve(e);return n?(n.source.postMessage({type:"clay-studio-document-refresh",token:n.descriptor.token},location.origin),!0):(k("The source connection changed. Reopen this document from its conversation."),!0)}function me(){var e=i.get("studioDocumentView");e&&clearTimeout(e.timer),e&&e.frame&&e.source===e.frame.contentWindow&&e.document===e.frame.contentDocument&&e.source.postMessage({type:"clay-studio-document-close",token:e.descriptor.token},location.origin),i.set({studioDocumentView:null})}function hr(e){var r=i.get("studioDocumentSource");return!N(r)||Date.now()>r.expires||e.path!==r.path||e.type!=="fs_file_changed"&&!(e.type==="fs_read_result"&&e.requestId===r.requestId)?!1:(window.parent.postMessage({type:"clay-studio-document-update",token:r.token,message:e},location.origin),!0)}function wr(){window.addEventListener("message",function(r){var n=r.data,t=i.get("studioDocumentSource");r.origin!==location.origin||r.source!==window.parent||!n||!t||n.token!==t.token||!N(t)||(n.type==="clay-studio-document-close"&&(clearTimeout(t.timer),t.socket.send(JSON.stringify({type:"fs_unwatch"})),i.set({studioDocumentSource:null})),n.type==="clay-studio-document-refresh"&&Date.now()<=t.expires&&(t.requestId="studio-document-"+crypto.randomUUID(),t.socket.send(JSON.stringify({type:"fs_read",path:t.path,requestId:t.requestId,projectSlug:t.slug,sessionId:String(t.sessionId),accountId:t.ownerId}))))});function e(){var r=i.get("studioDocumentSource");r&&clearTimeout(r.timer),N(r)&&r.socket.send(JSON.stringify({type:"fs_unwatch"})),i.set({studioDocumentSource:null});var n=i.get("studioDocumentView");me(),n&&i.set({studioDocumentView:{descriptor:n.descriptor,invalidated:!0}})}i.subscribe(function(r,n){(!r.connected&&n.connected||r.currentSlug!==n.currentSlug||r.activeSessionId!==n.activeSessionId||r.myUserId!==n.myUserId)&&e()}),document.addEventListener("contextual-ask-stopped",e,!0),document.addEventListener("click",function(r){r.target.closest("#generation-stop, #autonomous-run-stop, #send-btn.stop")&&e()},!0)}function Je(){var e=i.snap();return{projectSlug:e.currentSlug,ownerId:e.myUserId,sessionId:e.activeSessionId,origin:e.sessionOriginId,socket:m(),binding:e.paneCommittedBinding||null,epoch:e.sessionActionEpoch||0}}function Ge(e,r){var n=i.snap();return!!e&&e.socket===m()&&n.connected&&e.projectSlug===n.currentSlug&&e.ownerId===n.myUserId&&e.sessionId===n.activeSessionId&&e.origin===n.sessionOriginId&&e.epoch===(n.sessionActionEpoch||0)&&(r||!n.deferredSessionSwitch)&&!n.panePendingBinding&&!n.paneSuspended&&(e.binding?n.paneReady&&$(e.binding,n.paneCommittedBinding):!n.paneCommittedBinding)}function yr(e,r){var n=Je();return function(){if(Ge(n,r)){var t=i.get("paneCallbackBinding");i.set({paneCallbackBinding:n.binding});try{return e.apply(this,arguments)}finally{i.set({paneCallbackBinding:t})}}}}function $(e,r){return!!e&&!!r&&["requestId","generation","projectSlug","viewerId","ownerId","sessionId","sessionOriginId","role","workerGeneration","groupStamp","parentSessionOriginId"].every(function(n){return e[n]===r[n]})}function Ke(e,r){return!!e&&!!r&&["projectSlug","viewerId","ownerId","sessionId","sessionOriginId","role","workerGeneration","groupStamp","parentSessionOriginId"].every(function(n){return e[n]===r[n]})}function Ye(e,r,n){var t=(r||[]).find(function(a){return a.id===n});if(!t||t.isMate||!t.sessionOriginId||(t.runtimeMode||t.mode||"gui")!=="gui"||t.tuiSuspended)return null;var o=(e.splitGroups||[]).find(function(a){return a.members.indexOf(n)>=0}),s=t.sessionRole==="worker"&&r.find(function(a){return a.id===t.parentSessionId});return t.sessionRole==="worker"&&(!s||!t.parentAvailable||!Number.isSafeInteger(t.workerGeneration)||!s.sessionOriginId||s.ownerId!==t.ownerId||!o||!o.pair||o.pair.driverId!==s.id)?null:{projectSlug:e.currentSlug,viewerId:e.myUserId||null,ownerId:t.ownerId||null,sessionId:t.id,sessionOriginId:t.sessionOriginId,role:t.sessionRole==="worker"?"worker":"driver",workerGeneration:t.workerGeneration||null,parentSessionOriginId:s?s.sessionOriginId:null,groupStamp:o?JSON.stringify({id:o.id,members:o.members,pair:o.pair||null}):null}}function F(e,r){if(!e||!e.clayPane||e.closest&&e.closest(".split-pane-cached"))return!1;var n=e.clayPane,t=n.identity(),o=i.snap(),s=o.splitPanes;if(!o.connected)return!1;var a=t&&Ye(o,o.paneBindingSessions||[],t.sessionId),c=!!(t&&s&&s.panes.some(function(g){return g.slug===t.projectSlug&&g.sessionId===t.sessionId})),u=(o.projectSplitViews||[]).find(function(g){return g.id===o.projectSplitViewActiveId}),d=!!(t&&t.binding&&!s&&u&&u.sessions.some(function(g){return g.id===t.sessionId&&g.sessionOriginId===t.binding.sessionOriginId})),l=!!(t&&t.binding&&!s&&!u&&o.projectSplitViewSingletonOrigin===t.binding.sessionOriginId&&t.sessionId===Number(e.dataset.sessionId)&&t.binding.sessionOriginId===e.dataset.sessionOriginId);return n.source===e.contentWindow&&n.document===e.contentDocument&&t&&t.ready&&Ke(a,t.binding)&&t.ownerId===(o.myUserId||null)&&t.projectSlug===o.currentSlug&&(c||d||l)&&(!r||$(t.binding,r.paneBinding))}function Q(){return i.get("paneReady")&&!i.get("paneSuspended")?i.get("paneCommittedBinding"):null}function Sr(e){return!e||!e.paneBinding?!0:e.isConnected!==!1&&i.get("paneReady")&&!i.get("paneSuspended")&&$(e.paneBinding,i.get("paneCommittedBinding"))}function kr(e){if(i.get("paneSuspended"))return!1;var r=i.get("panePendingBinding")||i.get("paneCommittedBinding");return r?$(r,e):!e}function $e(e){var r=(i.get("cachedMatesList")||[]).find(function(o){return o&&o.id===e});if(!r||r.archived||r.contentAccess===!1||r.accessible===!1)return null;var n=i.get("myUserId");if(n&&r.createdBy&&r.createdBy!==n)return null;var t=(i.get("projectsHubList")||[]).find(function(o){return o.slug==="mate-"+e});return t&&t.contentAccess===!1?null:r}function te(e){return JSON.stringify([e.id,e.createdBy||null,e.createdAt||null,e.builtinKey||null])}function Br(e,r){var n=e||(i.get("contextualClay")||{}).mateId,t=i.get("contextualClay")||{};if(!r&&t.mateId===n&&t.startingAsk)return null;var o=r||t.mateId===n&&t.sessionId||(i.get("contextualSessionSelection")||{})[n];return Array.from(document.querySelectorAll("#contextual-clay iframe")).find(function(s){return s.dataset.mateId===n&&(!o||String(o)===s.dataset.sessionId)})||null}function Cr(e){var r=$e(e||(i.get("contextualClay")||{}).mateId);return r&&r.builtinKey!=="clay"?document.querySelector('.icon-strip-project-mate[data-mate-id="'+CSS.escape(r.id)+'"]'):document.querySelector(".icon-strip-brand")}function Er(e){if(!e||!e.isConnected||e.closest('[hidden], [inert], [aria-hidden="true"]'))return!1;var r=e.getBoundingClientRect(),n=getComputedStyle(e);if(n.visibility!=="visible"||Number(n.opacity)===0||!r.width||!r.height||r.left<0||r.top<0||r.right>innerWidth||r.bottom>innerHeight)return!1;for(var t=e.parentElement;t;t=t.parentElement)if(Number(getComputedStyle(t).opacity)===0)return!1;return[r.left+2,r.left+r.width/2,r.right-2].every(function(o){var s=document.elementFromPoint(o,r.top+r.height/2);return s&&e.contains(s)})}function ne(e){var r=/^[a-f0-9-]{36}$/;return e&&e.version===1&&r.test(e.id)&&r.test(e.token)&&/^activity:[a-f0-9-]{36}$/.test(e.activityId)&&Number.isSafeInteger(e.deadline)&&e.target&&["document","sketch","browser"].indexOf(e.target.surface)>=0&&typeof e.target.key=="string"&&e.target.key.length<=400&&/^[a-f0-9]{64}$/.test(e.target.revision)}function ie(e,r){return ne(e)&&e.mateId===r.activeProjectMateId&&e.sourceSlug==="mate-"+e.mateId&&e.ownerId===(r.myUserId||null)&&e.runtimeId===r.controlRuntimeId&&e.sourceSlug===r.currentSlug&&e.sourceSessionId===r.activeSessionId&&e.sourceSessionOriginId===r.sessionOriginId&&(r.cachedMatesList||[]).some(function(n){return n.id===e.mateId&&n.builtinKey==="clay"&&!n.archived&&!n.lifecycleDeletion&&te(n)===e.sourceMateStamp})}function oe(e){var r=i.get("clayControlActivity"),n=i.get("clayControlForwarded"),t=i.get("paneMode")?n:r&&r.message;return t&&t.id===e.activityId&&t.mateId===e.mateId&&t.sourceSlug===e.sourceSlug&&t.sourceSessionId===e.sourceSessionId&&t.sourceSessionOriginId===e.sourceSessionOriginId&&t.sourceMateStamp===e.sourceMateStamp&&t.sourceQueryGeneration===e.sourceQueryGeneration&&t.phase!=="clear"&&!(i.get("clayControlReceipts")||[]).some(function(o){return o.id===e.activityId&&o.stopped})}function Qe(){return{window,document,identity:function(){var e=i.snap();return{ownerId:e.myUserId||null,slug:e.currentSlug,sessionId:e.activeSessionId,origin:e.sessionOriginId,connected:e.connected,runtime:e.controlRuntimeId,mateId:e.activeProjectMateId}}}}function Ur(e,r){if(!i.get("paneMode")||window.parent===window)return!1;var n=window.frameElement;if(!n)return!1;n.clayStudioSource=Qe();var t=e.controlPresentation;if(t&&(!ie(t,i.snap())||!oe(t)))return!0;r==="clay-pane-present-markdown"&&(e=we(e));var o=Object.assign({},i.get("clayStudioRelays")||{});return Object.keys(o).forEach(function(s){Date.now()>o[s].evidence.deadline&&delete o[s]}),Object.keys(o).length>=100||(t&&(o[t.id]={evidence:t,socket:m()}),i.set({clayStudioRelays:o}),window.parent.postMessage({type:r,message:e,paneBinding:Q(),studioSource:n.clayStudioSource.identity()},location.origin)),!0}function ve(e,r){if(e.origin!==location.origin||!r||!r.studioSource)return null;var n=Array.from(document.querySelectorAll("#contextual-clay iframe, .split-pane-frame")).find(function(l){return l.contentWindow===e.source}),t=n&&n.clayStudioSource,o=t&&t.window===n.contentWindow&&t.document===n.contentDocument&&t.identity(),s=r.studioSource;if(!o||!o.connected||o.ownerId!==(i.get("myUserId")||null)||o.ownerId!==s.ownerId||o.slug!==s.slug||o.sessionId!==s.sessionId||o.origin!==s.origin||o.runtime!==s.runtime||new URL(n.src,location.href).pathname!=="/p/"+encodeURIComponent(o.slug)+"/")return null;if(n.classList.contains("split-pane-frame")){if(n.clayPane&&!F(n,r))return null;var a=i.get("splitPanes");if(!a||!a.panes.some(function(l){return l.slug===o.slug&&String(l.sessionId)===String(o.sessionId)}))return null}else{var c=n.conversation,u=c&&c.document===n.contentDocument&&c.source===n.contentWindow&&c.identity();if(!u||!u.connected||!u.available||u.ownerId!==o.ownerId||u.sessionId!==o.sessionId||u.sessionOriginId!==o.origin)return null}var d=r.message&&r.message.controlPresentation;return d&&(!ne(d)||d.sourceSlug!=="mate-"+d.mateId||d.mateId!==o.mateId||!(i.get("cachedMatesList")||[]).some(function(l){return l.id===d.mateId&&l.builtinKey==="clay"&&!l.archived&&!l.lifecycleDeletion&&te(l)===d.sourceMateStamp})||d.sourceSlug!==o.slug||d.sourceSessionId!==o.sessionId||d.sourceSessionOriginId!==o.origin||d.ownerId!==o.ownerId||d.runtimeId!==o.runtime)?null:n}function jr(e,r){var n=ve(e,r),t=r.message&&r.message.controlPresentation;if(!n||!t||!oe(t)||Date.now()>t.deadline)return!1;var o=Object.assign({},i.get("clayStudioForwarded")||{});return Object.keys(o).forEach(function(s){Date.now()>o[s].evidence.deadline&&delete o[s]}),Object.keys(o).length>=100?!1:(o[t.id]={frame:n,document:n.contentDocument,window:e.source,data:r,evidence:t},i.set({clayStudioForwarded:o}),!0)}function Ze(e){var r=m(),n=i.get("myUserId"),t=i.get("currentSlug"),o=(i.get("clayStudioForwarded")||{})[e.id];return{valid:function(){return Date.now()>e.deadline||!oe(e)||!i.get("connected")||n!==i.get("myUserId")||t!==i.get("currentSlug")||m()!==r?!1:o?o.document===o.frame.contentDocument&&o.window===o.frame.contentWindow&&!!ve({origin:location.origin,source:o.window},o.data):ie(e,i.snap())},send:function(s){var a={type:"clay_studio_rendered",id:e.id,token:e.token,sessionOriginId:e.sourceSessionOriginId,revision:e.target.revision,visible:s};o?o.document===o.frame.contentDocument&&o.window.postMessage({type:"clay-studio-receipt",message:a},location.origin):m()===r&&r&&r.readyState===1&&r.send(JSON.stringify(a))}}}async function Xe(e){var r=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(JSON.stringify(e)));return Array.from(new Uint8Array(r)).map(function(n){return n.toString(16).padStart(2,"0")}).join("")}function be(e,r,n,t){if(!r)return;delete r.dataset.controlSurface;var o=e.controlPresentation;if(!ne(o))return;var s=Ze(o),a=!1,c,u,d=0,l={painted:!1,evidence:o,target:o.target,element:r,valid:s.valid};r.dataset.controlSurface=o.id;var g=Object.assign({},i.get("clayStudioSurfaces")||{});Object.keys(g).forEach(function(f){(!g[f].element.isConnected||g[f].element===r||Date.now()>g[f].evidence.deadline+6e3)&&delete g[f]}),g[o.id]=l,i.set({clayStudioSurfaces:g});function h(f){a||(a=!0,clearTimeout(u),cancelAnimationFrame(c),document.removeEventListener("visibilitychange",x),s.send(f))}l.cancel=function(){h(!1)};function x(){document.hidden&&h(!1)}document.addEventListener("visibilitychange",x),u=setTimeout(function(){h(!1)},Math.max(0,o.deadline-Date.now()));var S=o.target.surface==="document"?{content:e.content,exists:e.exists,size:e.size}:o.target.surface==="sketch"?e.source:e.data;Promise.all([Promise.resolve(n),Xe(S)]).then(function(f){if(f[1]!==o.target.revision){h(!1);return}function w(){if(!a){if(!s.valid()||document.hidden||r.dataset.controlSurface!==o.id){h(!1);return}d=er(t||r)?d+1:0,d>=2?(l.painted=!0,h(!0)):c=requestAnimationFrame(w)}}c=requestAnimationFrame(w)}).catch(function(){h(!1)})}function er(e){if(!e||!e.isConnected||e.closest('[hidden], [inert], [aria-hidden="true"]'))return!1;var r=e.getBoundingClientRect(),n=getComputedStyle(e);if(n.visibility!=="visible"||Number(n.opacity)===0)return!1;for(var t=e.parentElement;t;t=t.parentElement){var o=getComputedStyle(t);if(o.visibility!=="visible"||Number(o.opacity)===0)return!1}var s=Math.max(0,r.left),a=Math.min(innerWidth,r.right),c=Math.max(0,r.top),u=Math.min(innerHeight,r.bottom);return a<=s||u<=c?!1:[.2,.5,.8].some(function(d){return[.2,.5,.8].some(function(l){var g=document.elementFromPoint(s+(a-s)*d,c+(u-c)*l);return g&&e.contains(g)})})}function Wr(e){var r=i.get("clayStudioSurfaces")||{},n=Object.values(r).find(function(t){return t.painted&&t.target.surface===e.surface&&t.target.key===e.key&&t.target.revision===e.revision&&t.target.runtimeId===e.runtimeId&&t.target.sourceSessionOriginId===e.sourceSessionOriginId&&t.target.sourceSessionId===e.sourceSessionId&&t.target.sourceSlug===e.sourceSlug&&t.element.dataset.controlSurface===t.evidence.id&&t.valid()});return n&&n.element}function Hr(){window.addEventListener("message",function(r){if(!(r.origin!==location.origin||r.source!==window.parent||!r.data||r.data.type!=="clay-studio-receipt")){var n=r.data.message,t=Object.assign({},i.get("clayStudioRelays")||{}),o=n&&t[n.id];!o||o.evidence.token!==n.token||!ie(o.evidence,i.snap())||m()!==o.socket||o.socket.readyState!==1||Date.now()>o.evidence.deadline||(delete t[n.id],i.set({clayStudioRelays:t}),o.socket.send(JSON.stringify(n)))}});function e(){Object.values(i.get("clayStudioSurfaces")||{}).forEach(function(r){delete r.element.dataset.controlSurface,r.cancel&&r.cancel()}),i.set({clayStudioRelays:{},clayStudioForwarded:{},clayStudioSurfaces:{}})}document.addEventListener("contextual-ask-stopped",e,!0),document.addEventListener("click",function(r){r.target.closest("#generation-stop, #autonomous-run-stop, #send-btn.stop")&&e()},!0),i.subscribe(function(r,n){(!r.connected&&n.connected||r.currentSlug!==n.currentSlug||r.activeSessionId!==n.activeSessionId||r.myUserId!==n.myUserId)&&e()})}var se=null;function E(){se||(se=requestAnimationFrame(function(){se=null,lucide.createIcons()}))}function v(e,r){return r?'<span class="'+r+'"><i data-lucide="'+e+'"></i></span>':'<i data-lucide="'+e+'"></i>'}function ye(e){return!i.get("paneMode")||window.parent===window?!1:(window.parent.postMessage({type:"clay-pane-open-browser",paneBinding:Q(),url:e,projectSlug:i.get("currentSlug"),sessionId:String(i.get("activeSessionId"))},window.location.origin),!0)}function Jr(e,r){if(!e||e.origin!==window.location.origin||!r||!e.data||e.data.type!=="clay-pane-open-browser")return!1;var n=e.data,t=Object.assign({},i.snap()),o=Array.from(r.querySelectorAll(".split-pane-frame")).find(function(l){return l.contentWindow===e.source}),s=o&&o.clayPane?{slug:o.dataset.projectSlug,sessionId:o.dataset.sessionId}:o&&t.splitPanes&&t.splitPanes.panes&&t.splitPanes.panes.find(function(l){return String(l.slug)===o.dataset.projectSlug&&String(l.sessionId)===o.dataset.sessionId});if(!t.connected||!s||n.projectSlug!==t.currentSlug||n.projectSlug!==o.dataset.projectSlug||String(n.sessionId)!==o.dataset.sessionId)return!0;var a=new URL("/p/"+encodeURIComponent(s.slug)+"/?pane=1&session="+encodeURIComponent(s.sessionId),window.location.href).href;if(o.clayPane?!F(o,n):o.src!==a)return!0;var c=o.clayPane&&o.clayPane.identity().binding,u=o.contentDocument;function d(){var l=i.snap();return!l.connected||l.currentSlug!==t.currentSlug||l.myUserId!==t.myUserId||l.currentProjectOwnerId!==t.currentProjectOwnerId||l.projectSplitViewSocketGeneration!==t.projectSplitViewSocketGeneration||o.contentWindow!==e.source||o.contentDocument!==u||o.dataset.projectSlug!==n.projectSlug||String(o.dataset.sessionId)!==String(n.sessionId)||!Array.from(r.querySelectorAll(".split-pane-frame")).includes(o)?!1:c?!!o.clayPane&&F(o,n)&&o.clayPane.identity().binding===c:o.src===a&&!!(l.splitPanes&&l.splitPanes.panes.some(function(g){return String(g.slug)===s.slug&&String(g.sessionId)===String(s.sessionId)}))}return import("./chunk-7GZH3FZY.js").then(function(l){d()&&l.openSharedBrowserAt(n.url)}).catch(function(l){k(l.message||"Could not open the browser.","warn")}),!0}function z(e){return String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Z(e){if(typeof e!="string"||!e.startsWith("browser:")||e.length>8200)return null;var r=e.slice(8);if(!/^https?:\/\//i.test(r)||/[\u0000-\u0020]/.test(r))return null;try{var n=new URL(r);return n.username||n.password||!["http:","https:"].includes(n.protocol)?null:n.href}catch{return null}}function rr(e,r,n){var t=Z(e);if(!t)return null;var o=String(n||"").replace(/<[^>]*>/g,"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").trim();return(!o||o===e||o===t)&&(o=new URL(t).host),'<button type="button" class="clay-browser-link clayos-record-link" data-browser-url="'+z(t)+'" data-browser-project="'+z(i.get("currentSlug")||"")+'" title="'+z("Open in Clay Browser \xB7 "+t)+'" aria-label="'+z("Open in Clay Browser: "+o)+'">'+v("globe")+"<span>Browser</span><small>"+z(o)+"</small></button>"}function Zr(e){!e||typeof document>"u"||(e.querySelectorAll("a[href]").forEach(function(r){if(!r.closest("pre, code, button")){var n=rr(r.getAttribute("href"),"",r.textContent);if(n){var t=document.createElement("template");t.innerHTML=n,r.replaceWith(t.content)}}}),ae(),E())}function ae(){i.get("browserLinksBound")||(i.set({browserLinksBound:!0}),document.addEventListener("click",function(e){var r=e.target.closest&&e.target.closest(".clay-browser-link");if(r){e.preventDefault(),e.stopPropagation();var n=Z("browser:"+r.dataset.browserUrl);if(!n){k("This browser link is invalid.","warn");return}if(r.dataset.browserProject&&r.dataset.browserProject!==i.get("currentSlug")){k("Open this link from its original project.","warn");return}ye(n)||import("./chunk-7GZH3FZY.js").then(function(t){t.openSharedBrowserAt(n)}).catch(function(t){k(t.message||"Could not open the browser.","warn")})}}))}function y(e){return he(String(e)).replace(/"/g,""").replace(/'/g,"'")}function C(){return i.get("sharedBrowserSettings")||{}}function B(e){i.set({sharedBrowserSettings:Object.assign({},C(),e)})}function L(){return document.getElementById("shared-browser-settings")}function T(e,r,n,t){return'<button type="button" data-settings-action="'+r+'" data-target="'+y(n||"")+'" data-label="'+y(t||n||"")+'">'+y(e)+"</button>"}function ce(e,r){var n=m();if(!n||n.readyState!==1){B({error:"Reconnect to manage browser data.",pending:!1}),q();return}var t=crypto.randomUUID();B({pending:!0,requestId:t,error:"",notice:""}),n.send(JSON.stringify({type:"shared_browser_settings",sessionId:i.get("activeSessionId"),requestId:t,operation:e,target:r})),q(),setTimeout(function(){C().requestId===t&&C().pending&&(B({pending:!1,error:"The request timed out. Refresh to check the saved state."}),q())},15e3)}function V(e){var r=!!C().open;B({open:!1,review:null}),q();var n=document.querySelector('[data-action="settings"]');n&&r&&e!==!1&&n.focus()}function Se(){return'<section id="shared-browser-settings" class="shared-browser-settings" aria-label="Browser settings" hidden></section>'}function ke(e){e.querySelector('[data-action="settings"]').onclick=function(){B({open:!0,page:"sites",data:null,review:null,filter:""}),ce("list"),L().querySelector('[data-settings-action="back"]').focus()},L().addEventListener("keydown",function(r){r.key==="Escape"&&(r.preventDefault(),r.stopPropagation(),V())}),L().addEventListener("input",function(r){r.target.matches("[data-settings-filter]")&&(B({filter:r.target.value}),Ie(),L().dataset.key=JSON.stringify([C(),i.get("connected")]))}),L().addEventListener("click",function(r){var n=r.target.closest("[data-settings-action]");if(!(!n||n.disabled)){var t=n.dataset.settingsAction;if(t==="back"){V();return}if(t==="sites"||t==="history"){B({page:t,filter:"",review:null,notice:"",error:""}),q();return}if(t==="refresh"){ce("list");return}if(t==="cancel"){B({review:null}),q(),L().querySelector('[data-settings-action="refresh"]').focus();return}if(t==="confirm"){var o=C().review;o&&ce(o.action,o.target);return}B({notice:"",error:"",review:{action:t,target:n.dataset.target,label:n.dataset.label||n.dataset.target}}),q(),L().querySelector('[data-settings-action="cancel"]').focus()}})}function Ie(){var e=L(),r=C();if(!(!e||!r.open)){var n=e.querySelector(".browser-settings-rows");if(n){var t=(r.filter||"").toLowerCase(),o=r.data||{sites:[],history:[]};r.page==="history"?n.innerHTML=o.history.filter(function(s){return s.url.toLowerCase().includes(t)}).map(function(s){return'<div class="browser-settings-row"><div><span class="browser-settings-url">'+y(s.url)+"</span><small>"+y(new Date(s.at).toLocaleString())+"</small></div>"+T("Remove","delete_history",s.id,s.url)+"</div>"}).join(""):n.innerHTML=o.sites.filter(function(s){return s.host.toLowerCase().includes(t)}).map(function(s){return"<details><summary>"+y(s.host)+"<small>"+s.cookies.length+(s.cookies.length===1?" cookie \xB7 ":" cookies \xB7 ")+s.origins.length+(s.origins.length===1?" storage origin":" storage origins")+'</small></summary><div class="browser-settings-row"><span>Cookies and site storage</span>'+T("Remove site data","delete_site",s.host)+"</div>"+s.origins.map(function(a){return'<p class="browser-settings-origin">'+y(a.origin)+"<small>"+a.localStorage+" localStorage entries \xB7 "+a.databases+" IndexedDB databases</small></p>"}).join("")+s.cookies.map(function(a){var c=a.domain+a.path+" \xB7 "+(a.expires===-1?"Session cookie":"Expires "+new Date(a.expires*1e3).toLocaleDateString())+(a.httpOnly?" \xB7 HttpOnly":"")+(a.secure?" \xB7 Secure":"")+(a.partitioned?" \xB7 Partitioned":"");return'<div class="browser-settings-row"><div><span>'+y(a.name)+"</span><small>"+y(c)+"</small></div>"+T("Remove cookie","delete_cookie",a.id,a.name+" \xB7 "+a.domain+a.path)+"</div>"}).join("")+"</details>"}).join(""),n.innerHTML||(n.innerHTML='<p class="browser-settings-muted">'+(r.pending&&!r.data?"Loading saved data\u2026":t?"No matching entries.":r.page==="history"?"No saved browsing history.":"No saved cookies or site data.")+"</p>"),n.querySelectorAll("button").forEach(function(s){s.disabled=!!r.pending||!i.get("connected")})}}}function q(){var e=L();if(e){var r=C(),n=e.closest(".shared-browser-panel"),t=i.get("sharedBrowser"),o=n.querySelector('[data-action="settings"]');if(o.hidden=!(t&&t.personalCookiesAvailable),o.disabled=!i.get("connected"),o.setAttribute("aria-expanded",String(!!r.open)),e.hidden=!r.open,n.classList.toggle("browser-settings-open",!!r.open),!!r.open){var s=JSON.stringify([r,i.get("connected")]);if(e.dataset.key!==s){e.dataset.key=s;var a=r.page||"sites";e.innerHTML='<div class="browser-settings-heading">'+T("Back to browser","back")+'<h3>Browser settings</h3></div><p class="browser-settings-muted">Personal \xB7 Shared across your Mates. Incognito tabs do not save data here.</p><nav aria-label="Browser settings sections">'+T("Cookies & site data","sites")+T("History","history")+'</nav><p class="browser-settings-muted">'+(a==="sites"?"Cookies, localStorage and IndexedDB are saved for your account. New personal tabs restore saved site storage. Removing data may sign you out. Removals also apply to open personal tabs. Sites may create new data afterwards.":"Your latest 500 page visits. Clearing this list leaves open tabs, their Back/Forward navigation and conversation activity unchanged.")+'</p><div class="browser-settings-tools"><input data-settings-filter aria-label="Filter saved browser data" placeholder="'+(a==="sites"?"Find a site":"Find a page")+'" value="'+y(r.filter||"")+'">'+T("Refresh","refresh")+T(a==="sites"?"Clear all site data":"Clear history",a==="sites"?"clear_data":"clear_history")+'</div><p class="browser-settings-feedback" role="status">'+y(r.error||(i.get("connected")?r.pending?"Updating\u2026":r.notice||"":"Disconnected. Reconnect and refresh to see current saved data."))+"</p>"+(r.review?'<div class="browser-settings-review" role="group" aria-label="Confirm removal"><strong>'+(r.review.action.includes("history")?"Remove browsing history?":"Remove saved site data?")+"</strong><p>"+(r.review.action.includes("history")?"This removes "+(r.review.action==="clear_history"?"all saved visits":"this saved visit")+" from your personal history.":r.review.action==="delete_cookie"?"This removes "+y(r.review.label)+" across your personal Mate browsers and may sign you out.":"This removes "+(r.review.action==="clear_data"?"all cookies and site storage":"cookies and storage for "+y(r.review.target))+" across your personal Mate browsers and may sign you out.")+"</p>"+T("Cancel","cancel")+T("Remove","confirm")+"</div>":"")+'<div class="browser-settings-rows"></div>',e.querySelector('[data-settings-action="'+a+'"]').setAttribute("aria-current","page"),e.querySelectorAll("button").forEach(function(c){c.disabled=c.dataset.settingsAction!=="back"&&(!!r.pending||!i.get("connected"))}),Ie()}}}}function xe(e){if(!e.requestId||e.requestId!==C().requestId)return!1;if(e.type==="shared_browser_settings"){var r=!!C().review;B({data:e.settings,pending:!1,review:null,error:"",notice:r?"Removed from your saved browser data.":""})}else if(e.type==="shared_browser_error")B({pending:!1,error:e.error});else return!1;return q(),C().open&&r&&L().querySelector('[data-settings-action="refresh"]').focus(),!0}function Be(e,r,n){var t=e.querySelector(".shared-browser-tabs"),o=i.get("sharedBrowsers")||[],s=i.get("sharedBrowser"),a=JSON.stringify([o.map(function(d){return[d.id,d.url,d.control,d.phase,d.incognito,d.personalCookiesAvailable]}),s&&s.id,i.get("connected")]);if(t.dataset.key!==a){t.dataset.key=a,t.replaceChildren(),o.forEach(function(d,l){var g=document.createElement("div");g.className="shared-browser-tab";var h=document.createElement("button");h.type="button",h.setAttribute("role","tab"),h.setAttribute("aria-selected",String(!!s&&s.id===d.id));var x="Tab "+(l+1);try{d.url&&(x=new URL(d.url).hostname)}catch{}var S=document.createElement("span");S.textContent=x+(d.personalCookiesAvailable&&d.incognito?" \xB7 Incognito":"");var f=document.createElement("small");f.textContent=d.phase==="ended"?"Ended":d.control==="agent"?"Shared":"You only",h.append(S,f),h.title=x+" \xB7 "+(d.incognito===!1?"Personal browser":"Incognito")+" \xB7 "+(d.phase==="ended"?"Ended":d.control==="agent"?"You and Clay can control this tab":"Only you can control this tab. Clay is paused."),h.onclick=function(){r(d.id)},h.onkeydown=function(p){var U=p.key==="ArrowRight"?(l+1)%o.length:p.key==="ArrowLeft"?(l+o.length-1)%o.length:p.key==="Home"?0:p.key==="End"?o.length-1:-1;U<0||(p.preventDefault(),r(o[U].id),t.querySelectorAll('[role="tab"]')[U].focus())};var w=document.createElement("button");w.type="button",w.textContent="\xD7",w.setAttribute("aria-label","Close browser tab "+(l+1)),w.disabled=!i.get("connected"),w.onclick=function(){n("close",{browserId:d.id})},g.append(h,w),t.appendChild(g)});var c=document.createElement("button");if(c.type="button",c.textContent="+",c.setAttribute("aria-label","New browser tab"),c.disabled=!i.get("connected"),c.title=s&&s.personalCookiesAvailable?"New tab \xB7 Personal browser":"New incognito tab",c.onclick=function(){n("open",{newTab:!0})},t.appendChild(c),s&&s.personalCookiesAvailable){var u=document.createElement("button");u.type="button",u.innerHTML=v("glasses"),u.setAttribute("aria-label","New incognito tab"),u.title="New incognito tab \xB7 Site data is not saved",u.disabled=!i.get("connected"),u.onclick=function(){n("open",{newTab:!0,incognito:!0})},t.appendChild(u),E()}}}var j={},Ce={terminal:"terminal-container",browser:"shared-browser-panel","file-viewer":"file-viewer","project-logs":"project-logs-panel",you:"you-panel",issues:"issues-panel",linear:"linear-panel","notes-browser":"notes-browser","scheduled-tasks":"scheduled-tasks-panel",debates:"debates-workbench","mcp-skills":"mcp-skills-workbench","mate-knowledge":"mate-knowledge-workbench",wireframe:"wireframe-panel"};function Oe(){var e=i.get("myUserId"),r=i.get("currentSlug");return import("./chunk-I57URYSL.js").then(function(n){return e!==i.get("myUserId")||r!==i.get("currentSlug")?!1:n.ensureWorkbenchLayoutPreference()}).catch(function(){return e!==i.get("myUserId")||r!==i.get("currentSlug")||i.set({workbenchLayoutPreference:Object.assign({},i.get("workbenchLayoutPreference")||{},{loading:!1,saving:!1,error:"Workbench layout could not be loaded. Try again."})}),!1})}function R(){return i.get("rightWorkbenchDockedOwners")||[]}function J(e){return i.get("rightWorkbenchOwner")===e||R().indexOf(e)!==-1}function de(e){var r=i.get("rightWorkbenchPanelRevisions")||{};return r[e]==null?i.get("rightWorkbenchRevision")||0:r[e]}function X(e,r,n){i.set({rightWorkbenchOwner:e,rightWorkbenchDockedOwners:r,rightWorkbenchPanelRevisions:n,rightWorkbenchRevision:(i.get("rightWorkbenchRevision")||0)+1})}function Ee(e,r){if(J(e)){var n=R().filter(function(o){return o!==e}),t=i.get("rightWorkbenchOwner");r&&n.push(e),X(r?t:e,n,i.get("rightWorkbenchPanelRevisions")||{}),!r&&t&&t!==e&&n.indexOf(t)===-1&&j[t]&&j[t]()}}function Le(){if(!(typeof document>"u")){var e=document.getElementById("main-panels");if(e){var r=R(),n=i.get("workbenchLayoutPreference")||{};e.dataset.workbenchMode=r.length?"docked":"overlay",e.dataset.workbenchDocks=String(r.length),Object.keys(Ce).forEach(function(t){var o=document.getElementById(Ce[t]);if(o){var s=r.indexOf(t)!==-1;if(o.dataset.workbenchPlacement=s?"docked":"overlay",o.dataset.workbenchActive=i.get("rightWorkbenchOwner")===t?"true":"false",!!J(t)){var a=o.querySelector(":scope > header, :scope > .file-viewer-header .file-viewer-tabbar, :scope > .terminal-header");if(a){var c=o.querySelector(".workbench-layout-toggle");if(!c){var u=a.querySelector('[class*="window-actions"], .terminal-header-actions, .shared-browser-window, :scope.mcp-skills-header > div')||a;c=document.createElement("button"),c.type="button",c.className="workbench-layout-toggle",c.addEventListener("click",function(){var l=i.get("workbenchLayoutPreference")||{};if(!l.ready||l.loading||l.saving){Oe();return}var g=i.get("myUserId"),h=i.get("currentSlug"),x=de(t),S=R().indexOf(t)!==-1;function f(){return c.isConnected&&J(t)&&g===i.get("myUserId")&&h===i.get("currentSlug")&&x===de(t)&&S===(R().indexOf(t)!==-1)}import("./chunk-I57URYSL.js").then(function(w){var p=i.get("workbenchLayoutPreference")||{};return!f()||p.mode!==l.mode||p.revision!==l.revision||p.loading||p.saving||!p.ready?!1:w.saveWorkbenchLayoutMode(S?"overlay":"docked")}).then(function(w){if(f()){var p=i.get("workbenchLayoutPreference")||{};w===!0&&p.ready&&p.mode===(S?"overlay":"docked")?Ee(t,!S):w===!1&&k(p.error||"Workbench layout could not be saved. Try again.","error")}}).catch(function(w){f()&&k(w.message||"Workbench layout could not be saved. Try again.","error")})});var d=u===a?a.querySelector("[data-knowledge-wide]"):u.firstElementChild;u.insertBefore(c,d||null)}c.dataset.mode!==(s?"docked":"overlay")&&(c.dataset.mode=s?"docked":"overlay",c.innerHTML=v(s?"layers-2":"panel-right"),E()),c.setAttribute("aria-label",s?"Float workbench over sessions":"Dock workbench beside sessions"),c.title=n.error||c.getAttribute("aria-label"),c.setAttribute("aria-pressed",s?"true":"false"),c.disabled=!!n.loading||!!n.saving,c.setAttribute("aria-busy",n.loading||n.saving?"true":"false")}}}})}}}function Te(e,r){!e||typeof r!="function"||(j[e]=r)}function ee(e){typeof document<"u"&&Oe();var r=i.get("rightWorkbenchOwner"),n=R().slice(),t=i.get("workbenchLayoutPreference")||{};!r&&!n.length&&t.ready&&t.mode==="docked"&&n.push(e);var o=n.indexOf(e)!==-1&&r&&n.indexOf(r)===-1?r:e,s=(i.get("rightWorkbenchRevision")||0)+1,a=Object.assign({},i.get("rightWorkbenchPanelRevisions")||{});return Object.keys(a).forEach(function(c){c!==o&&n.indexOf(c)===-1&&delete a[c]}),a[e]=s,X(o,n,a),Object.keys(j).forEach(function(c){if(!(c===e||c===o||n.indexOf(c)!==-1))try{j[c]()}catch{}}),typeof requestAnimationFrame=="function"&&requestAnimationFrame(Le),s}function ue(e){if(J(e)){var r=R().filter(function(t){return t!==e}),n=Object.assign({},i.get("rightWorkbenchPanelRevisions")||{});delete n[e],X(i.get("rightWorkbenchOwner")===e?r[r.length-1]||null:i.get("rightWorkbenchOwner"),r,n)}}function ut(e,r){return J(e)&&de(e)===r}function tr(){X(null,[],{}),Object.keys(j).forEach(function(e){try{j[e]()}catch{}})}i.subscribe(function(e,r){if(e.currentSlug!==r.currentSlug||e.myUserId!==r.myUserId){tr();return}var n=e.workbenchLayoutPreference||{},t=r.workbenchLayoutPreference||{};if(!t.ready&&n.ready&&n.mode==="docked"&&!R().length&&e.rightWorkbenchOwner){Ee(e.rightWorkbenchOwner,!0);return}(e.workbenchLayoutPreference!==r.workbenchLayoutPreference||e.rightWorkbenchOwner!==r.rightWorkbenchOwner||e.rightWorkbenchDockedOwners!==r.rightWorkbenchDockedOwners)&&Le()});function P(){var e=i.get("sharedBrowser");return e&&!e.handoff&&e.phase==="live"&&i.get("connected")}var qe=50,Pe=2e3;function D(e){i.set({sharedBrowserUi:Object.assign({},i.get("sharedBrowserUi"),e)})}function G(){var e=i.get("sharedBrowserUi")||{};clearTimeout(e.moveTimer),clearTimeout(e.wheelTimer),D({moveTimer:null,move:null,wheelTimer:null,wheelDelta:0,pointer:null,composing:!1})}function De(e,r){function n(a){var c=e.getBoundingClientRect(),u=Math.min(c.width/e.width,c.height/e.height),d=(a.clientX-c.left-(c.width-e.width*u)/2)/u,l=(a.clientY-c.top-(c.height-e.height*u)/2)/u;return{x:Math.max(0,Math.min(e.width-1,d)),y:Math.max(0,Math.min(e.height-1,l))}}function t(){var a=i.get("sharedBrowserUi")||{};clearTimeout(a.moveTimer);var c=a.move;D({move:null,moveTimer:null}),c&&P()&&I(Object.assign({kind:"move"},c))}function o(){var a=i.get("sharedBrowserUi")||{};clearTimeout(a.wheelTimer);var c=a.wheelDelta||0;if(!P()){D({wheelDelta:0,wheelTimer:null});return}var u=Math.max(-Pe,Math.min(Pe,c)),d=c-u;D({wheelDelta:d,wheelTimer:d?setTimeout(o,qe):null}),u&&I({kind:"wheel",deltaY:u})}e.addEventListener("pointermove",function(a){if(P()){var c=i.get("sharedBrowserUi")||{};D({move:n(a),moveTimer:c.moveTimer||setTimeout(t,40)})}}),e.addEventListener("pointerdown",function(a){!P()||a.button!==0||(a.preventDefault(),t(),o(),e.setPointerCapture(a.pointerId),D({pointer:a.pointerId}),r.focus({preventScroll:!0}),I(Object.assign({kind:"down"},n(a))))});function s(a){var c=i.get("sharedBrowserUi")||{};c.pointer===a.pointerId&&(t(),D({pointer:null}),P()&&I(Object.assign({kind:"up"},n(a))),e.hasPointerCapture(a.pointerId)&&e.releasePointerCapture(a.pointerId))}e.addEventListener("pointerup",s),e.addEventListener("pointercancel",s),e.addEventListener("lostpointercapture",s),e.addEventListener("wheel",function(a){if(P()){a.preventDefault();var c=i.get("sharedBrowserUi")||{};D({wheelDelta:(c.wheelDelta||0)+a.deltaY,wheelTimer:c.wheelTimer||setTimeout(o,qe)})}},{passive:!1}),e.addEventListener("focus",function(){P()&&r.focus({preventScroll:!0})}),r.addEventListener("compositionstart",function(){D({composing:!0})}),r.addEventListener("compositionend",function(){D({composing:!1}),P()&&r.value&&I({kind:"text",text:r.value}),r.value=""}),r.addEventListener("input",function(){(i.get("sharedBrowserUi")||{}).composing||(P()&&r.value&&I({kind:"text",text:r.value}),r.value="")}),r.addEventListener("keydown",function(a){if(!(!P()||a.isComposing)){var c=a.key;(a.ctrlKey||a.metaKey)&&c.toLowerCase()==="a"?c="ControlOrMeta+A":c==="Tab"&&a.shiftKey&&(c="Shift+Tab"),/^(Tab|Shift\+Tab|Enter|Backspace|Delete|Escape|ArrowLeft|ArrowRight|ArrowUp|ArrowDown|Home|End|ControlOrMeta\+A)$/.test(c)&&(a.preventDefault(),I({kind:"key",key:c}))}})}function Me(){return'<div class="shared-browser-activity"><div class="shared-browser-caption-history" role="log" aria-live="off" aria-label="Browser caption history" tabindex="0"></div><button type="button" class="shared-browser-caption-latest" hidden>Back to live \u2193</button><span class="shared-browser-caption-announcement" role="status" aria-live="polite"></span></div>'}function le(e){i.set({sharedBrowserUi:Object.assign({},i.get("sharedBrowserUi"),e)})}function nr(e,r,n){var t=e.querySelector(".shared-browser-activity"),o=e.querySelector(".shared-browser-caption-history"),s=e.querySelector(".shared-browser-caption-latest");o.dataset.bound||(o.dataset.bound="true",o.addEventListener("scroll",function(){var f=o.scrollHeight-o.clientHeight-o.scrollTop<20;le({captionPinned:f}),t.dataset.reviewing=String(!f),s.hidden=f}),s.onclick=function(){o.scrollTop=o.scrollHeight,le({captionPinned:!0}),s.hidden=!0,t.dataset.reviewing="false"});var a=r&&r.activityHistory||[];t.hidden=!a.length;var c=a[a.length-1],u=r&&r.id+":"+a.length+":"+(c?c.id+":"+c.phase+":"+c.text:"empty"),d=i.get("sharedBrowserUi")||{};if(d.captionHistoryKey!==u){var l=d.captionBrowserId!==(r&&r.id),g=l||d.captionPinned!==!1,h=o.scrollTop;o.replaceChildren(),a.forEach(function(f,w){var p=document.createElement("div");p.className="shared-browser-caption-row",p.dataset.age=String(Math.min(a.length-w-1,3));var U=document.createElement("span");if(U.className="shared-browser-activity-text",U.textContent=f.text,p.appendChild(U),f.phase==="failed"||f.phase==="interrupted"){var pe=document.createElement("small");pe.textContent=f.phase==="failed"?"This step could not be completed.":"This step was interrupted.",p.appendChild(pe)}o.appendChild(p)}),le({captionHistoryKey:u,captionBrowserId:r&&r.id,captionPinned:g}),o.scrollTop=g?o.scrollHeight:h,s.hidden=g,t.dataset.reviewing=String(!g);var x=e.querySelector(".shared-browser-caption-announcement"),S=n&&c?c.text+(c.phase==="failed"?" This step could not be completed.":""):"";x.textContent!==S&&(x.textContent=S)}}function Ae(e,r,n){var t=r&&r.phase==="live"&&r.control==="agent"&&!r.handoff&&n;nr(e,r,t);var o=e.querySelector("canvas"),s=t&&r.pointer,a=e.querySelector(".shared-browser-pointer");if(a.hidden=!s||s.width!==o.width||s.height!==o.height,!a.hidden){a.style.left=100*s.x/o.width+"%",a.style.top=100*s.y/o.height+"%";var c=r.id+":"+r.epoch+":"+s.sequence;(i.get("sharedBrowserUi")||{}).pointerAnimationKey!==c&&(i.set({sharedBrowserUi:Object.assign({},i.get("sharedBrowserUi"),{pointerAnimationKey:c})}),s.clicked&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&a.querySelector("i").animate([{opacity:.8,transform:"scale(.3)"},{opacity:0,transform:"scale(1.8)"}],{duration:650}))}}var ge=["1280,800","1440,900","1024,768","800,600","375,667","390,844"];function ir(){return document.getElementById("shared-browser-resolution")}function Re(e){i.set({sharedBrowserUi:Object.assign({},i.get("sharedBrowserUi"),{viewportMenuOpen:e})});var r=ir();r&&(r.querySelector("[data-viewport-trigger]").setAttribute("aria-expanded",String(e)),r.querySelector('[role="menu"]').hidden=!e)}function M(){Re(!1)}function Ue(){return'<div id="shared-browser-resolution" class="shared-browser-resolution"><button type="button" data-viewport-trigger aria-label="Browser viewport" aria-haspopup="menu" aria-expanded="false" aria-controls="shared-browser-resolutions"><span>1280 \xD7 800</span>'+v("chevron-up")+'</button><div id="shared-browser-resolutions" class="shared-browser-resolution-menu" role="menu" aria-label="Browser resolutions" hidden></div></div>'}function je(e,r,n){var t=e.querySelector(".shared-browser-resolution"),o=t.querySelector("[data-viewport-trigger]");o.disabled=!n,(!n||!i.get("sharedBrowserOpen"))&&M();var s=r?r.width+","+r.height:"1280,800";o.querySelector("span").textContent=s.replace(","," \xD7 ");var a=t.querySelector('[role="menu"]');if(a.dataset.size!==s){a.dataset.size=s;var c=ge.includes(s)?ge:ge.concat([s]);a.replaceChildren(),c.forEach(function(u){var d=document.createElement("button");d.type="button",d.setAttribute("role","menuitemradio"),d.setAttribute("aria-checked",String(u===s)),d.dataset.size=u,d.tabIndex=-1,d.textContent=u.replace(","," \xD7 "),d.setAttribute("aria-label",d.textContent),a.appendChild(d)})}}function We(e){var r=e.querySelector(".shared-browser-resolution"),n=r.querySelector("[data-viewport-trigger]"),t=r.querySelector('[role="menu"]');function o(s){if(!n.disabled){Re(!0);var a=t.querySelectorAll("button"),c=t.querySelector('[aria-checked="true"]');(s?a[a.length-1]:c||a[0]).focus()}}n.onclick=function(){(i.get("sharedBrowserUi")||{}).viewportMenuOpen?M():o(!1)},n.onkeydown=function(s){(s.key==="ArrowDown"||s.key==="ArrowUp")&&(s.preventDefault(),o(s.key==="ArrowUp"))},t.onclick=function(s){var a=s.target.closest("[data-size]");if(!(!a||n.disabled)){var c=a.dataset.size.split(",");M(),n.focus(),I({kind:"resize",width:Number(c[0]),height:Number(c[1])})}},r.addEventListener("keydown",function(s){if(s.key==="Escape"){s.preventDefault(),s.stopPropagation(),M(),n.focus();return}if(s.key==="Tab"){M();return}if(!(s.target===n||!["ArrowDown","ArrowUp","Home","End"].includes(s.key))){s.preventDefault();var a=Array.from(t.querySelectorAll("button")),c=a.indexOf(document.activeElement);c=s.key==="Home"?0:s.key==="End"?a.length-1:(c+(s.key==="ArrowDown"?1:-1)+a.length)%a.length,a[c].focus()}}),document.addEventListener("pointerdown",function(s){r.contains(s.target)||M()}),r.addEventListener("focusout",function(s){r.contains(s.relatedTarget)||M()})}function H(){return window.matchMedia("(min-width: 1024px)").matches}function Ne(){var e=i.get("permissions");return H()&&!!i.get("currentSlug")&&!i.get("dmMode")&&(!e||e.terminal!==!1)}function Y(){return Ne()&&!!i.get("activeSessionId")}function _(){return document.getElementById("shared-browser-panel")}function A(e){i.set({sharedBrowserUi:Object.assign({},i.get("sharedBrowserUi"),e)})}function b(e,r){var n=m();if(!n||n.readyState!==1||!i.get("activeSessionId"))return!1;var t=i.get("sharedBrowser");return n.send(JSON.stringify(Object.assign({type:"shared_browser_"+e,sessionId:i.get("activeSessionId"),browserId:t&&t.id,epoch:t&&t.epoch},r||{}))),!0}function I(e){A({error:""}),b("input",{event:e})}function _e(){var e=_();if(!(!e||!i.get("sharedBrowserOpen"))){var r=e.querySelector(".shared-browser-viewport"),n=e.querySelector("canvas"),t=n.width===800&&n.height===600?"mac":n.width===1024&&n.height===768?"crt":n.width<n.height?"phone":"laptop";r.dataset.skin=t;var o=Math.min((r.clientWidth-96)/n.width,(r.clientHeight-140-e.querySelector(".shared-browser-caption").offsetHeight)/n.height,1);if(!(o<=0)){var s=e.querySelector(".shared-browser-monitor");s.style.width=Math.floor(n.width*o)+"px",s.style.height=Math.floor(n.height*o)+"px",e.querySelector(".shared-browser-monitor-label").textContent=n.width+" \xD7 "+n.height+" \xB7 "+Math.round(o*100)+"%"}}}function W(e,r,n){return'<button type="button" data-action="'+e+'" title="'+n+'" aria-label="'+n+'">'+v(r)+"</button>"}function fe(){if(!_()){var e=document.getElementById("main-panels");if(e){var r=document.createElement("section");r.id="shared-browser-panel",r.className="shared-browser-panel hidden",r.setAttribute("aria-label","Shared browser"),r.innerHTML='<header class="shared-browser-header"><span class="shared-browser-title">'+v("globe")+'Browser</span><span class="shared-browser-phase" role="status">Ready</span><div class="shared-browser-window">'+W("settings","settings-2","Browser settings")+W("wide","chevrons-left-right","Widen browser panel")+W("fullscreen","maximize-2","Toggle browser fullscreen")+W("hide","x","Hide browser panel")+'</div></header><div class="shared-browser-tabs" role="tablist" aria-label="Browser tabs"></div><form class="shared-browser-address">'+W("back","arrow-left","Back")+W("forward","arrow-right","Forward")+W("reload","rotate-cw","Reload")+'<input aria-label="Browser address" placeholder="Enter a URL" type="text" autocomplete="off" spellcheck="false"><button type="submit" aria-label="Open address">'+v("arrow-right")+"</button></form>"+Se()+'<div class="shared-browser-viewport"><div class="shared-browser-monitor"><div class="shared-browser-pointer-layer" aria-hidden="true"><div class="shared-browser-pointer" hidden><svg viewBox="0 0 24 28"><path d="M3 2 L3 22 L8 17 L12 26 L16 24 L12 15 L20 15 Z"/></svg><i></i></div></div><canvas width="1280" height="800" tabindex="0" aria-label="Shared browser page"></canvas><div class="shared-browser-empty">'+v("globe")+'<h3>A browser you can use with Clay</h3><p>Enter an address to browse together.<br>Localhost connects to the Clay host.</p><p class="shared-browser-private">Site data lasts only for this browser session.</p></div><textarea class="shared-browser-keyboard" aria-label="Type into shared browser" autocomplete="off" autocapitalize="off" spellcheck="false"></textarea><span class="shared-browser-monitor-brand" aria-hidden="true">Clay Studio</span><span class="shared-browser-monitor-detail" aria-hidden="true"></span><span class="shared-browser-monitor-stand" aria-hidden="true"></span></div><div class="shared-browser-caption"><span class="shared-browser-monitor-label"></span>'+Me()+'</div></div><p class="shared-browser-error hidden" role="status"></p><footer class="shared-browser-footer"><div class="shared-browser-control"><span class="shared-browser-control-status" role="status" aria-live="polite">You and Clay can control this browser</span><button type="button" data-action="control" aria-pressed="false"></button></div><div class="shared-browser-details"><span class="shared-browser-cookie-mode"></span>'+Ue()+'<button type="button" data-action="end">End browser</button></div></footer>',e.appendChild(r),r.querySelector('[data-action="hide"]').onclick=K,r.querySelector('[data-action="wide"]').onclick=function(){var t=!(i.get("sharedBrowserUi")||{}).wide;A({wide:t}),O()},r.querySelector('[data-action="fullscreen"]').onclick=function(){var t=!(i.get("sharedBrowserUi")||{}).fullscreen;A({fullscreen:t}),O()},["back","forward","reload"].forEach(function(t){r.querySelector('[data-action="'+t+'"]').onclick=function(){I({kind:t})}}),r.querySelector("form").onsubmit=function(t){t.preventDefault(),I({kind:"navigate",url:r.querySelector("form input").value})},r.querySelector('[data-action="control"]').onclick=function(){var t=i.get("sharedBrowser");t&&b("control",{control:t.control==="user"?"agent":"user"})},r.querySelector('[data-action="end"]').onclick=function(){var t=i.get("sharedBrowser");b(t&&t.phase==="ended"?"open":"end",t&&t.phase==="ended"?{incognito:t.incognito}:void 0)},We(r),ke(r);var n=new ResizeObserver(_e);n.observe(r.querySelector(".shared-browser-viewport")),De(r.querySelector("canvas"),r.querySelector("textarea")),E()}}}function re(){var e=i.get("sharedBrowser"),r=(i.get("sharedBrowsers")||[]).length,n=!!i.get("connected")&&!!i.get("activeSessionId"),t=i.get("connected")?i.get("activeSessionId")?e?"View browser":"Open browser":"Browser \xB7 Loading session\u2026":"Browser \xB7 Connecting\u2026";["shared-browser-btn","shared-browser-toggle-btn"].forEach(function(o){var s=document.getElementById(o);if(s){var a=o==="shared-browser-toggle-btn"&&n&&i.get("sharedBrowserOpen")?"Hide browser":t;if(o==="shared-browser-toggle-btn"){var c=s.querySelector(".shared-browser-count");c&&(c.textContent=String(r),c.classList.toggle("hidden",r===0)),r&&(a+=" \xB7 "+r+(r===1?" tab":" tabs"))}s.classList.toggle("hidden",!Ne()),s.title=n&&e?a+" \xB7 "+e.phase:a,s.setAttribute("aria-label",a),s.setAttribute("aria-expanded",String(!!i.get("sharedBrowserOpen"))),s.disabled=!n}})}function or(e,r,n){return n?r?e.handoff?"Switching control\u2026":e.control==="user"?"Only you can control this browser. Clay is paused.":e.activity&&e.activity.phase==="running"?"Clay is working. You can also use this browser":"You and Clay can control this browser":e&&e.phase==="starting"?"Starting\u2026":"Ended":"Disconnected. Status returns on reconnect."}function sr(e,r,n,t){var o=e.querySelector(".shared-browser-control-status"),s=or(r,n,t);o.textContent!==s&&(o.textContent=s);var a=e.querySelector('[data-action="control"]'),c=!!r&&r.control==="user",u=String(c);a.dataset.mode!==u&&(a.dataset.mode=u,a.innerHTML=v(c?"lock":"lock-open")+"<span>"+(c?"Resume shared control":"Pause Clay control")+"</span>",E()),a.title=c?"Let Clay act in this browser again. You keep control too.":"Make this browser exclusively yours until you resume shared control. You can use it either way.",a.setAttribute("aria-pressed",String(c))}function O(){re();var e=_();if(e){Be(e,ar,b);var r=i.get("sharedBrowser"),n=i.get("sharedBrowserUi")||{},t=i.get("connected"),o=r&&r.phase==="live",s=o&&!r.handoff&&t;e.classList.toggle("hidden",!i.get("sharedBrowserOpen")||!Y()),e.classList.toggle("shared-browser-wide",!!n.wide),e.classList.toggle("panel-fullscreen",!!n.fullscreen),e.querySelector('[data-action="wide"]').setAttribute("aria-pressed",n.wide?"true":"false"),e.querySelector('[data-action="fullscreen"]').setAttribute("aria-pressed",n.fullscreen?"true":"false"),e.querySelector(".shared-browser-phase").textContent=t?r?{starting:"Starting\u2026",live:"Live",ended:"Ended \xB7 Last frame"}[r.phase]:"Ready":"Disconnected",e.querySelector(".shared-browser-phase").dataset.live=o&&t?"true":"false",e.querySelector(".shared-browser-monitor").dataset.live=o&&t?"true":"false";var a=e.querySelector("form input");document.activeElement!==a&&(a.value=r?r.url:""),e.querySelectorAll("form input, form button").forEach(function(d){d.disabled=!s}),e.querySelector("textarea").disabled=!s,e.querySelector("canvas").style.cursor=s?"default":"not-allowed",sr(e,r,o,t),e.querySelector('[data-action="control"]').disabled=!o||!!r.handoff||!t,e.querySelector('[data-action="control"]').hidden=!o,e.querySelector('[data-action="end"]').disabled=!r||!t,e.querySelector('[data-action="end"]').textContent=r&&r.phase==="ended"?"New browser":"End browser";var c=r&&r.incognito===!1;e.querySelector(".shared-browser-cookie-mode").textContent=c?"Personal browser":"Incognito",e.querySelector(".shared-browser-cookie-mode").title=c?"Cookies and site storage are saved for your account across your Mates.":"Cookies and site storage are isolated and discarded when this tab ends.",e.querySelector(".shared-browser-private").textContent=c?"Your cookies and site storage are remembered across your Mates and browser restarts.":"Site data lasts only for this browser session.";var u=n.error||r&&r.error||"";e.querySelector(".shared-browser-error").textContent=u,e.querySelector(".shared-browser-error").classList.toggle("hidden",!u),e.querySelector(".shared-browser-empty").classList.toggle("hidden",!!(r&&r.url&&n.hasFrame)),je(e,r,s),q(),Ae(e,r,t),_e()}}function Fe(e){var r=i.get("sharedBrowser");if(i.set({sharedBrowser:e}),!r||!e||r.id!==e.id){G(),M(),A({hasFrame:!1,error:"",decoding:!1,captionHistoryKey:null});var n=_();n&&n.querySelector("canvas").getContext("2d").clearRect(0,0,1920,1200)}else r.epoch!==e.epoch&&G()}function ar(e){var r=(i.get("sharedBrowsers")||[]).find(function(n){return n.id===e});r&&(Fe(r),b("view",{visible:H()&&!document.hidden}),O())}function Pt(e){var r=Z("browser:"+e);if(!r)throw new Error("Enter a valid HTTP or HTTPS browser address.");if(!H())throw new Error("Clay Browser is available on desktop screens.");if(!Y())throw new Error("Browser access is unavailable in this conversation.");if(!i.get("connected"))throw new Error("Reconnect before opening this browser link.");fe(),V(!1),ee("browser"),i.set({sharedBrowserOpen:!0}),A({error:""}),b("open",{url:r}),O()}function He(){if(!(!Y()||!i.get("connected"))){fe(),ee("browser"),i.set({sharedBrowserOpen:!0});var e=i.get("sharedBrowser");e?b("view",{visible:!0}):b("open"),O()}}function K(){M(),V(),G(),i.get("sharedBrowserOpen")&&b("view",{visible:!1}),i.set({sharedBrowserOpen:!1}),ue("browser"),O()}function Dt(e){if(!e.type||e.type.indexOf("shared_browser_")!==0)return!1;if(String(e.sessionId)!==String(i.get("activeSessionId"))||xe(e))return!0;if(e.type==="shared_browser_state"){var r=i.get("sharedBrowser"),n=e.browsers||(e.browser?[e.browser]:[]);i.set({sharedBrowsers:n});var t=!e.focus&&r&&n.find(function(c){return c.id===r.id});t=t||e.browser||n[0]||null,Fe(t),e.present&&Y()&&(fe(),ee("browser"),i.set({sharedBrowserOpen:!0})),i.get("sharedBrowserOpen")&&t&&b("view",{visible:H()&&!document.hidden}),O()}else if(e.type==="shared_browser_error")A({error:e.error}),O();else if(e.type==="shared_browser_frame"){var o=i.get("sharedBrowser");if(!H()||!i.get("sharedBrowserOpen")||!o||o.id!==e.browserId||(i.get("sharedBrowserUi")||{}).decoding)return!0;var s=i.get("activeSessionId");A({decoding:!0});var a=new Image;a.onload=function(){var c=i.get("sharedBrowser");if(c&&c.id===e.browserId&&i.get("activeSessionId")===s&&_()){var u=_().querySelector("canvas");u.width=a.naturalWidth,u.height=a.naturalHeight,u.getContext("2d").drawImage(a,0,0),A({decoding:!1,hasFrame:!0}),O(),be(e,u,null,u)}},a.onerror=function(){i.get("activeSessionId")===s&&A({decoding:!1})},a.src="data:image/jpeg;base64,"+e.data}return!0}function Mt(){ae();var e=document.getElementById("shared-browser-btn");e&&(e.onclick=He);var r=document.getElementById("shared-browser-toggle-btn");r&&(r.onclick=function(){i.get("sharedBrowserOpen")?K():He()}),window.matchMedia("(min-width: 1024px)").addEventListener("change",function(){H()||K(),re()}),document.addEventListener("visibilitychange",function(){i.get("sharedBrowserOpen")&&b("view",{visible:!document.hidden&&H()})}),E(),re(),i.get("connected")&&b("state_request")}Te("browser",K);i.subscribe(function(e,r){e.currentSlug!==r.currentSlug||e.activeSessionId!==r.activeSessionId||e.myUserId!==r.myUserId?(G(),ue("browser"),i.set({sharedBrowser:null,sharedBrowsers:[],sharedBrowserOpen:!1,sharedBrowserUi:{},sharedBrowserSettings:{}}),e.connected&&b("state_request"),O()):e.connected!==r.connected?(e.connected&&b("state_request"),O()):(e.permissions!==r.permissions||e.dmMode!==r.dmMode)&&(Y()||K(),re())});export{k as a,cr as b,he as c,fr as d,Ve as e,pr as f,me as g,hr as h,wr as i,Je as j,Ge as k,yr as l,$ as m,Ke as n,Ye as o,F as p,Q as q,Sr as r,kr as s,$e as t,te as u,Br as v,Cr as w,Er as x,Ur as y,ve as z,jr as A,be as B,Wr as C,Hr as D,E,v as F,de as G,Te as H,ee as I,ue as J,ut as K,I as L,Pt as M,He as N,K as O,Dt as P,Mt as Q,Jr as R,rr as S,Zr as T};
|