clay-server 5.5.0-beta.4 → 5.5.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.
Files changed (104) hide show
  1. package/lib/github-connection-store.js +39 -0
  2. package/lib/github-runtime.js +43 -0
  3. package/lib/project-github-connection.js +164 -0
  4. package/lib/project.js +8 -0
  5. package/lib/public/appearance-bootstrap.js +6 -0
  6. package/lib/public/css/chrome-material.css +133 -0
  7. package/lib/public/css/menus.css +1 -17
  8. package/lib/public/css/navigation-island.css +261 -0
  9. package/lib/public/css/notifications-center.css +1 -17
  10. package/lib/public/css/settings-ui.css +8 -2
  11. package/lib/public/css/shared-browser.css +1 -18
  12. package/lib/public/css/split-view-layout.css +9 -5
  13. package/lib/public/css/sticky-notes.css +1 -18
  14. package/lib/public/css/title-bar.css +1 -1
  15. package/lib/public/css/workspace-background-gallery.css +43 -0
  16. package/lib/public/css/you.css +13 -10
  17. package/lib/public/index.html +53 -46
  18. package/lib/public/modules/app-messages.js +5 -0
  19. package/lib/public/modules/appearance-preferences.js +81 -0
  20. package/lib/public/modules/context-sources.js +2 -282
  21. package/lib/public/modules/github-mark.js +2 -0
  22. package/lib/public/modules/pane-appearance-bridge.js +9 -1
  23. package/lib/public/modules/pane-header-tooltips.js +36 -9
  24. package/lib/public/modules/personal-email-editor.js +305 -0
  25. package/lib/public/modules/personal-integration-editor.js +70 -0
  26. package/lib/public/modules/personal-settings-dialog.js +15 -1
  27. package/lib/public/modules/session-list-material.js +25 -0
  28. package/lib/public/modules/sidebar-collapse-focus.js +22 -0
  29. package/lib/public/modules/sidebar-sessions.js +2 -0
  30. package/lib/public/modules/sidebar.js +9 -10
  31. package/lib/public/modules/split-pane-renderer.js +5 -5
  32. package/lib/public/modules/split-view-shell-controls.js +9 -5
  33. package/lib/public/modules/split-view.js +2 -2
  34. package/lib/public/modules/theme.js +10 -28
  35. package/lib/public/modules/tool-pane-chrome.js +4 -1
  36. package/lib/public/modules/tool-pane-material.js +23 -0
  37. package/lib/public/modules/tooltip.js +7 -3
  38. package/lib/public/modules/tui-attention.js +9 -4
  39. package/lib/public/modules/user-settings-account.js +10 -1
  40. package/lib/public/modules/user-settings-github.js +176 -0
  41. package/lib/public/modules/user-settings-integrations.js +23 -12
  42. package/lib/public/modules/user-settings-layout.js +5 -3
  43. package/lib/public/modules/user-settings-themes.js +6 -2
  44. package/lib/public/modules/user-settings.js +2 -1
  45. package/lib/public/modules/workspace-background-gallery.js +92 -0
  46. package/lib/public/modules/workspace-custom-colors.js +132 -0
  47. package/lib/public/modules/you-activity.js +4 -2
  48. package/lib/public/pane-assets/app-C27ONMHZ.js +1 -0
  49. package/lib/public/pane-assets/chunk-4REWYEXI.js +1 -0
  50. package/lib/public/pane-assets/chunk-6EDR4PMU.js +1 -0
  51. package/lib/public/pane-assets/{chunk-X45WI2U7.js → chunk-76JE6SO6.js} +1 -1
  52. package/lib/public/pane-assets/chunk-AFATDM32.js +1 -0
  53. package/lib/public/pane-assets/{chunk-UVTS6GUM.js → chunk-DTNAWMGQ.js} +1 -1
  54. package/lib/public/pane-assets/chunk-EGCR2MH4.js +1 -0
  55. package/lib/public/pane-assets/chunk-ET4NUBYW.js +1 -0
  56. package/lib/public/pane-assets/chunk-EYJZ3R7Y.js +1 -0
  57. package/lib/public/pane-assets/{chunk-FB5B2WYF.js → chunk-I5Q4CZDJ.js} +1 -1
  58. package/lib/public/pane-assets/{chunk-53KRXJDL.js → chunk-KJN6KGEN.js} +1 -1
  59. package/lib/public/pane-assets/chunk-KZ3CYS5U.js +1 -0
  60. package/lib/public/pane-assets/chunk-MR4FHQFA.js +1 -0
  61. package/lib/public/pane-assets/chunk-NRC5RDIL.js +1 -0
  62. package/lib/public/pane-assets/chunk-NRP4NXVZ.js +1 -0
  63. package/lib/public/pane-assets/chunk-OERDYIHU.js +1 -0
  64. package/lib/public/pane-assets/{chunk-TK446XFF.js → chunk-OGIHAXLD.js} +1 -1
  65. package/lib/public/pane-assets/chunk-OQBKX36J.js +2 -0
  66. package/lib/public/pane-assets/chunk-Q2HJ5CWT.js +1 -0
  67. package/lib/public/pane-assets/{chunk-4WYURTPH.js → chunk-QOL6PHMZ.js} +1 -1
  68. package/lib/public/pane-assets/{chunk-AMZ7P526.js → chunk-TVKTFEST.js} +1 -1
  69. package/lib/public/pane-assets/{chunk-TU3AHPSN.js → chunk-UMXZTYOY.js} +1 -1
  70. package/lib/public/pane-assets/chunk-W5MFUKXJ.js +1 -0
  71. package/lib/public/pane-assets/chunk-W7XXER5Z.js +174 -0
  72. package/lib/public/pane-assets/chunk-Y77DR2RU.js +1 -0
  73. package/lib/public/pane-assets/{chunk-SGMEO3P7.js → chunk-YBYNU4VI.js} +1 -1
  74. package/lib/public/pane-assets/{chunk-JIV7O5GN.js → chunk-YHBTK56T.js} +1 -1
  75. package/lib/public/pane-assets/manifest.json +451 -437
  76. package/lib/public/pane-assets/style-F4MQRRX2.css +1 -0
  77. package/lib/public/style.css +4 -0
  78. package/lib/public/workspace-art/workshop-dark.webp +0 -0
  79. package/lib/public/workspace-art/workshop-light.webp +0 -0
  80. package/lib/public/workspace-background-catalog.js +40 -0
  81. package/lib/server-appearance-settings.js +16 -5
  82. package/lib/server.js +6 -0
  83. package/lib/session-github.js +1 -7
  84. package/lib/terminal-manager.js +5 -1
  85. package/lib/terminal.js +10 -1
  86. package/package.json +1 -1
  87. package/lib/public/pane-assets/app-PV3SEOTX.js +0 -1
  88. package/lib/public/pane-assets/chunk-2G6DB3ES.js +0 -1
  89. package/lib/public/pane-assets/chunk-6QFLYOVY.js +0 -1
  90. package/lib/public/pane-assets/chunk-BK2NRZFM.js +0 -1
  91. package/lib/public/pane-assets/chunk-D3WR2TYZ.js +0 -2
  92. package/lib/public/pane-assets/chunk-E7D5A27I.js +0 -1
  93. package/lib/public/pane-assets/chunk-FDBSE7BE.js +0 -174
  94. package/lib/public/pane-assets/chunk-FHB76KH2.js +0 -1
  95. package/lib/public/pane-assets/chunk-FNGO6432.js +0 -1
  96. package/lib/public/pane-assets/chunk-HF7AK56Q.js +0 -1
  97. package/lib/public/pane-assets/chunk-ILVRGTDF.js +0 -1
  98. package/lib/public/pane-assets/chunk-L3SFMSLP.js +0 -1
  99. package/lib/public/pane-assets/chunk-PAY3A4JS.js +0 -1
  100. package/lib/public/pane-assets/chunk-QVHC324H.js +0 -1
  101. package/lib/public/pane-assets/chunk-SFANEWZA.js +0 -1
  102. package/lib/public/pane-assets/chunk-US5VELGB.js +0 -1
  103. package/lib/public/pane-assets/chunk-VZ2OKDAO.js +0 -1
  104. package/lib/public/pane-assets/style-563D4UN6.css +0 -1
@@ -1 +1 @@
1
- import{j as Y,l as Oe,m as D,n as X,y as Ce}from"./chunk-UVTS6GUM.js";import{a as q}from"./chunk-R7QVVFUG.js";import{G as Ae,I as Z,J as be,Q as me,a as z,c as Le,d as R,e as v}from"./chunk-D3WR2TYZ.js";import{b as n}from"./chunk-VZ2OKDAO.js";function M(){return n.get("paneBrowserSource")||null}function $(){var e=n.get("projectSplitViewFocusedOrigin")||n.get("projectSplitViewSingletonOrigin");if(e)return e;var r=(n.get("projectSplitViews")||[]).find(function(t){return t.id===n.get("projectSplitViewActiveId")});return r&&r.activeSessionOriginId||n.get("sessionOriginId")||null}var Te=null,ee=null,ye={state_request:[],open:["url","newTab","incognito"],view:["browserId","visible"],control:["browserId","control"],close:["browserId"],end:["browserId"],input:["browserId","epoch","event"]};function re(){return Array.from(document.querySelectorAll("#split-host .split-pane:not(.split-pane-cached) .split-pane-frame"))}function Se(){return!n.get("paneMode")&&re().some(function(e){return!!e.clayPane||!!Oe(n.snap(),n.get("paneBindingSessions")||[],Number(e.dataset.sessionId))})}function P(){var e=M();if(!e||e.socket!==q()||e.owner!==n.get("myUserId")||e.project!==n.get("currentSlug"))return!1;var r=e.frame;return re().includes(r)&&r.contentWindow===e.window&&r.contentDocument===e.document&&!r.dataset.requestedSessionId&&D(r,{paneBinding:e.binding})}function Be(){return P()?M().binding.sessionId:null}function ae(){var e=M();return P()?e.binding.requestId+":"+e.binding.generation:null}function Pe(){return!!M()}function ie(e,r){var t=M();if(!e||!r||!re().includes(e)||e.dataset.requestedSessionId||!D(e,{paneBinding:r}))return!1;if(P()&&t.frame===e&&Y(t.binding,r))return t.focusedOrigin!==$()&&n.set({paneBrowserSource:Object.assign({},t,{focusedOrigin:$()})}),!0;var o=n.get("sharedBrowser");return P()&&o&&de("view",{browserId:o.id,visible:!1}),n.set({paneBrowserSource:{frame:e,window:e.contentWindow,document:e.contentDocument,binding:r,socket:q(),owner:n.get("myUserId"),project:n.get("currentSlug"),focusedOrigin:$()},paneBrowserTarget:r}),ee&&ee(!0),!0}function F(){if(P()&&M().focusedOrigin===$())return!0;var e=re(),r=$(),t=e.find(function(a){return r&&a.dataset.sessionOriginId===r})||e.find(function(a){var s=a.closest(".split-pane");return s&&s.dataset.active==="true"})||e[0],o=t&&t.clayPane&&t.clayPane.identity();return!!o&&ie(t,o.binding)}function de(e,r){var t=M();return Object.prototype.hasOwnProperty.call(ye,e)?!t&&!Se()?null:!P()||!t.frame.clayPane||typeof t.frame.clayPane.browserCommand!="function"?!1:t.frame.clayPane.browserCommand(e,r||{},t.binding):!1}function gr(e,r,t){var o=Object.prototype.hasOwnProperty.call(ye,e)&&ye[e],a=q();if(!o||!a||a.readyState!==1||!Y(t,X())||!n.get("connected")||n.get("panePendingBinding")||n.get("activeSessionId")!==t.sessionId)return!1;var s={type:"shared_browser_"+e,sessionId:t.sessionId,paneBinding:t};return o.forEach(function(i){Object.prototype.hasOwnProperty.call(r,i)&&(s[i]=r[i])}),a.send(JSON.stringify(s)),!0}function Me(e){var r=window.frameElement;if(!n.get("paneMode")||!r||!r.clayPane||["shared_browser_state","shared_browser_frame","shared_browser_error"].indexOf(e.type)<0)return!1;var t=X();return t&&Y(t,e.paneActivation)&&window.parent.postMessage({type:"clay-pane-browser-update",paneBinding:t,message:e},location.origin),!0}function He(e,r){n.get("paneMode")||(Te=e,ee=r,window.addEventListener("message",function(t){var o=t.data;if(!(t.origin!==location.origin||!o||o.type!=="clay-pane-browser-update"||!o.message)){var a=re().find(function(d){return d.contentWindow===t.source}),s=o.message,i=M();!a||!D(a,o)||!Y(o.paneBinding,s.paneActivation)||s.sessionId!==o.paneBinding.sessionId||["shared_browser_state","shared_browser_frame","shared_browser_error"].indexOf(s.type)<0||(!P()||i.frame!==a||!Y(i.binding,o.paneBinding))&&(s.type!=="shared_browser_state"||!s.present||!ie(a,o.paneBinding))||Te(s,!0)}}),document.addEventListener("clay-pane-ready",function(){queueMicrotask(function(){!P()&&F()&&de("state_request",{})})},!0),n.subscribe(function(){var t=M();t&&!P()&&(n.set({paneBrowserSource:null,paneBrowserTarget:null}),ee&&ee(!1))}))}function Ue(e){return!n.get("paneMode")||window.parent===window?!1:(window.parent.postMessage({type:"clay-pane-open-browser",paneBinding:X(),url:e,projectSlug:n.get("currentSlug"),sessionId:String(n.get("activeSessionId"))},window.location.origin),!0)}function Sr(e,r){if(!e||e.origin!==window.location.origin||!r||!e.data||e.data.type!=="clay-pane-open-browser")return!1;var t=e.data,o=Object.assign({},n.snap()),a=Array.from(r.querySelectorAll(".split-pane-frame")).find(function(p){return p.contentWindow===e.source}),s=a&&a.clayPane?{slug:a.dataset.projectSlug,sessionId:a.dataset.sessionId}:a&&o.splitPanes&&o.splitPanes.panes&&o.splitPanes.panes.find(function(p){return String(p.slug)===a.dataset.projectSlug&&String(p.sessionId)===a.dataset.sessionId});if(!o.connected||!s||t.projectSlug!==o.currentSlug||t.projectSlug!==a.dataset.projectSlug||String(t.sessionId)!==a.dataset.sessionId)return!0;var i=new URL("/p/"+encodeURIComponent(s.slug)+"/?pane=1&session="+encodeURIComponent(s.sessionId),window.location.href).href;if(a.clayPane?!D(a,t):a.src!==i)return!0;var d=a.clayPane&&a.clayPane.identity().binding,c=a.contentDocument;function u(){var p=n.snap();return!p.connected||p.currentSlug!==o.currentSlug||p.myUserId!==o.myUserId||p.currentProjectOwnerId!==o.currentProjectOwnerId||p.projectSplitViewSocketGeneration!==o.projectSplitViewSocketGeneration||a.contentWindow!==e.source||a.contentDocument!==c||a.dataset.projectSlug!==t.projectSlug||String(a.dataset.sessionId)!==String(t.sessionId)||!Array.from(r.querySelectorAll(".split-pane-frame")).includes(a)?!1:d?!!a.clayPane&&D(a,t)&&a.clayPane.identity().binding===d:a.src===i&&!!(p.splitPanes&&p.splitPanes.panes.some(function(I){return String(I.slug)===s.slug&&String(I.sessionId)===String(s.sessionId)}))}return import("./chunk-FB5B2WYF.js").then(function(p){!u()||d&&!ie(a,d)||p.openSharedBrowserAt(t.url)}).catch(function(p){z(p.message||"Could not open the browser.","warn")}),!0}function te(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function le(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 t=new URL(r);return t.username||t.password||!["http:","https:"].includes(t.protocol)?null:t.href}catch{return null}}function or(e,r,t){var o=le(e);if(!o)return null;var a=String(t||"").replace(/<[^>]*>/g,"").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").trim();return(!a||a===e||a===o)&&(a=new URL(o).host),'<button type="button" class="clay-browser-link clayos-record-link" data-browser-url="'+te(o)+'" data-browser-project="'+te(n.get("currentSlug")||"")+'" title="'+te("Open in Clay Browser \xB7 "+o)+'" aria-label="'+te("Open in Clay Browser: "+a)+'">'+v("globe")+"<span>Browser</span><small>"+te(a)+"</small></button>"}function Er(e){!e||typeof document>"u"||(e.querySelectorAll("a[href]").forEach(function(r){if(!r.closest("pre, code, button")){var t=or(r.getAttribute("href"),"",r.textContent);if(t){var o=document.createElement("template");o.innerHTML=t,r.replaceWith(o.content)}}}),ke(),R())}function ke(){n.get("browserLinksBound")||(n.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 t=le("browser:"+r.dataset.browserUrl);if(!t){z("This browser link is invalid.","warn");return}if(r.dataset.browserProject&&r.dataset.browserProject!==n.get("currentSlug")){z("Open this link from its original project.","warn");return}Ue(t)||import("./chunk-FB5B2WYF.js").then(function(o){o.openSharedBrowserAt(t)}).catch(function(o){z(o.message||"Could not open the browser.","warn")})}}))}function b(e){return Le(String(e)).replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function B(){return n.get("sharedBrowserSettings")||{}}function S(e){n.set({sharedBrowserSettings:Object.assign({},B(),e)})}function E(){return document.getElementById("shared-browser-settings")}function L(e,r,t,o){return'<button type="button" data-settings-action="'+r+'" data-target="'+b(t||"")+'" data-label="'+b(o||t||"")+'">'+b(e)+"</button>"}function Ie(e,r){var t=q();if(!t||t.readyState!==1){S({error:"Reconnect to manage browser data.",pending:!1}),O();return}var o=crypto.randomUUID();S({pending:!0,requestId:o,error:"",notice:""}),t.send(JSON.stringify({type:"shared_browser_settings",sessionId:n.get("activeSessionId"),requestId:o,operation:e,target:r})),O(),setTimeout(function(){B().requestId===o&&B().pending&&(S({pending:!1,error:"The request timed out. Refresh to check the saved state."}),O())},15e3)}function ne(e){var r=!!B().open;S({open:!1,review:null}),O();var t=document.querySelector('[data-action="settings"]');t&&r&&e!==!1&&t.focus()}function _e(){return'<section id="shared-browser-settings" class="shared-browser-settings" aria-label="Browser settings" hidden></section>'}function je(e){e.querySelector('[data-action="settings"]').onclick=function(){S({open:!0,page:"sites",data:null,review:null,filter:""}),Ie("list"),E().querySelector('[data-settings-action="back"]').focus()},E().addEventListener("keydown",function(r){r.key==="Escape"&&(r.preventDefault(),r.stopPropagation(),ne())}),E().addEventListener("input",function(r){r.target.matches("[data-settings-filter]")&&(S({filter:r.target.value}),Re(),E().dataset.key=JSON.stringify([B(),n.get("connected")]))}),E().addEventListener("click",function(r){var t=r.target.closest("[data-settings-action]");if(!(!t||t.disabled)){var o=t.dataset.settingsAction;if(o==="back"){ne();return}if(o==="sites"||o==="history"){S({page:o,filter:"",review:null,notice:"",error:""}),O();return}if(o==="refresh"){Ie("list");return}if(o==="cancel"){S({review:null}),O(),E().querySelector('[data-settings-action="refresh"]').focus();return}if(o==="confirm"){var a=B().review;a&&Ie(a.action,a.target);return}S({notice:"",error:"",review:{action:o,target:t.dataset.target,label:t.dataset.label||t.dataset.target}}),O(),E().querySelector('[data-settings-action="cancel"]').focus()}})}function Re(){var e=E(),r=B();if(!(!e||!r.open)){var t=e.querySelector(".browser-settings-rows");if(t){var o=(r.filter||"").toLowerCase(),a=r.data||{sites:[],history:[]};r.page==="history"?t.innerHTML=a.history.filter(function(s){return s.url.toLowerCase().includes(o)}).map(function(s){return'<div class="browser-settings-row"><div><span class="browser-settings-url">'+b(s.url)+"</span><small>"+b(new Date(s.at).toLocaleString())+"</small></div>"+L("Remove","delete_history",s.id,s.url)+"</div>"}).join(""):t.innerHTML=a.sites.filter(function(s){return s.host.toLowerCase().includes(o)}).map(function(s){return"<details><summary>"+b(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>'+L("Remove site data","delete_site",s.host)+"</div>"+s.origins.map(function(i){return'<p class="browser-settings-origin">'+b(i.origin)+"<small>"+i.localStorage+" localStorage entries \xB7 "+i.databases+" IndexedDB databases</small></p>"}).join("")+s.cookies.map(function(i){var d=i.domain+i.path+" \xB7 "+(i.expires===-1?"Session cookie":"Expires "+new Date(i.expires*1e3).toLocaleDateString())+(i.httpOnly?" \xB7 HttpOnly":"")+(i.secure?" \xB7 Secure":"")+(i.partitioned?" \xB7 Partitioned":"");return'<div class="browser-settings-row"><div><span>'+b(i.name)+"</span><small>"+b(d)+"</small></div>"+L("Remove cookie","delete_cookie",i.id,i.name+" \xB7 "+i.domain+i.path)+"</div>"}).join("")+"</details>"}).join(""),t.innerHTML||(t.innerHTML='<p class="browser-settings-muted">'+(r.pending&&!r.data?"Loading saved data\u2026":o?"No matching entries.":r.page==="history"?"No saved browsing history.":"No saved cookies or site data.")+"</p>"),t.querySelectorAll("button").forEach(function(s){s.disabled=!!r.pending||!n.get("connected")})}}}function O(){var e=E();if(e){var r=B(),t=e.closest(".shared-browser-panel"),o=n.get("sharedBrowser"),a=t.querySelector('[data-action="settings"]');if(a.hidden=!(o&&o.personalCookiesAvailable),a.disabled=!n.get("connected"),a.setAttribute("aria-expanded",String(!!r.open)),e.hidden=!r.open,t.classList.toggle("browser-settings-open",!!r.open),!!r.open){var s=JSON.stringify([r,n.get("connected")]);if(e.dataset.key!==s){e.dataset.key=s;var i=r.page||"sites";e.innerHTML='<div class="browser-settings-heading">'+L("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">'+L("Cookies & site data","sites")+L("History","history")+'</nav><p class="browser-settings-muted">'+(i==="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="'+(i==="sites"?"Find a site":"Find a page")+'" value="'+b(r.filter||"")+'">'+L("Refresh","refresh")+L(i==="sites"?"Clear all site data":"Clear history",i==="sites"?"clear_data":"clear_history")+'</div><p class="browser-settings-feedback" role="status">'+b(r.error||(n.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 "+b(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 "+b(r.review.target))+" across your personal Mate browsers and may sign you out.")+"</p>"+L("Cancel","cancel")+L("Remove","confirm")+"</div>":"")+'<div class="browser-settings-rows"></div>',e.querySelector('[data-settings-action="'+i+'"]').setAttribute("aria-current","page"),e.querySelectorAll("button").forEach(function(d){d.disabled=d.dataset.settingsAction!=="back"&&(!!r.pending||!n.get("connected"))}),Re()}}}}function De(e){if(!e.requestId||e.requestId!==B().requestId)return!1;if(e.type==="shared_browser_settings"){var r=!!B().review;S({data:e.settings,pending:!1,review:null,error:"",notice:r?"Removed from your saved browser data.":""})}else if(e.type==="shared_browser_error")S({pending:!1,error:e.error});else return!1;return O(),B().open&&r&&E().querySelector('[data-settings-action="refresh"]').focus(),!0}function Ne(e,r,t){var o=e.querySelector(".shared-browser-tabs"),a=n.get("sharedBrowsers")||[],s=n.get("sharedBrowser"),i=JSON.stringify([a.map(function(l){return[l.id,l.url,l.control,l.phase,l.incognito,l.personalCookiesAvailable,l.sourceSessionId,l.sourceRole,l.sourceTitle,l.sourceGeneration]}),s&&s.id,n.get("connected")]);if(o.dataset.key===i)return;var d=o.contains(document.activeElement)?document.activeElement:null,c=d&&d.dataset.browserId,u=d&&d.dataset.tabAction,p=o.dataset.selected,I=o.querySelector(".shared-browser-tab-list"),fe=I?I.scrollLeft:0;o.dataset.key=i,o.dataset.selected=s&&s.id||"",o.replaceChildren();var H=document.createElement("div");H.className="shared-browser-tab-list",H.setAttribute("role","presentation"),o.appendChild(H),a.forEach(function(l,_){var j=document.createElement("div");j.className="shared-browser-tab",j.setAttribute("role","presentation");var se=!!s&&s.id===l.id,w=document.createElement("button");w.type="button",w.setAttribute("role","tab"),w.dataset.browserId=l.id,w.dataset.tabAction="select",w.setAttribute("aria-selected",String(se)),w.tabIndex=se?0:-1;var g="New tab";try{l.url&&(g=new URL(l.url).hostname||"New tab")}catch{}var ge=l.sourceRole==="worker"?"Worker #"+l.sourceSessionId:"";ge&&(g=ge+" \xB7 "+g);var nr=l.phase==="ended"?"Ended":l.phase==="starting"?"Starting":l.control==="agent"?"You and Clay can control this tab":"Only you can control this tab. Clay is paused.",Ee=g+(ge?" \xB7 "+l.sourceTitle+" \xB7 Gen "+l.sourceGeneration:"")+" \xB7 "+(l.incognito===!1?"Personal browser":"Incognito")+" \xB7 "+nr,he=document.createElement("span");he.className="shared-browser-tab-label",he.textContent=g,w.innerHTML=v(l.personalCookiesAvailable&&l.incognito?"glasses":"globe"),w.appendChild(he),w.setAttribute("aria-label",Ee),w.setAttribute("data-tip",Ee),j.dataset.phase=l.phase,j.dataset.control=l.control,w.onclick=function(){r(l.id)},w.onkeydown=function(V){var ve=V.key==="ArrowRight"?(_+1)%a.length:V.key==="ArrowLeft"?(_+a.length-1)%a.length:V.key==="Home"?0:V.key==="End"?a.length-1:-1;ve<0||(V.preventDefault(),r(a[ve].id),o.querySelectorAll('[role="tab"]')[ve].focus())};var x=document.createElement("button");x.type="button",x.className="shared-browser-tab-close",x.innerHTML=v("x"),x.dataset.browserId=l.id,x.dataset.tabAction="close",x.setAttribute("aria-label","Close browser tab "+(_+1)),x.setAttribute("data-tip","Close tab"),x.disabled=!n.get("connected"),x.onclick=function(){t("close",{browserId:l.id})},j.append(w,x),H.appendChild(j)});function Q(l,_,j,se,w){var g=document.createElement("button");g.type="button",g.className="shared-browser-new-tab",g.innerHTML=v(l),g.dataset.tabAction=w,g.setAttribute("aria-label",_),g.setAttribute("data-tip",j),g.disabled=!n.get("connected"),g.onclick=function(){t("open",se)},o.appendChild(g)}Q("plus","New browser tab",s&&s.personalCookiesAvailable?"New tab \xB7 Personal browser":"New incognito tab",{newTab:!0},"new"),s&&s.personalCookiesAvailable&&Q("glasses","New incognito tab","New incognito tab \xB7 Site data is not saved",{newTab:!0,incognito:!0},"incognito"),R(),H.scrollLeft=fe;var y=Array.from(o.querySelectorAll("button")),we=d&&y.find(function(l){return l.dataset.browserId===c&&l.dataset.tabAction===u});d&&(we||o.querySelector('[aria-selected="true"]')||y[0]).focus({preventScroll:!0});var U=o.querySelector('[aria-selected="true"]');U&&p!==o.dataset.selected&&U.scrollIntoView({block:"nearest",inline:"nearest"})}function C(){var e=n.get("sharedBrowser");return e&&!e.handoff&&e.phase==="live"&&n.get("connected")}var We=50,Ve=2e3;function A(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),e)})}function K(){var e=n.get("sharedBrowserUi")||{};clearTimeout(e.moveTimer),clearTimeout(e.wheelTimer),A({moveTimer:null,move:null,wheelTimer:null,wheelDelta:0,pointer:null,composing:!1})}function ze(e,r){function t(i){var d=e.getBoundingClientRect(),c=Math.min(d.width/e.width,d.height/e.height),u=(i.clientX-d.left-(d.width-e.width*c)/2)/c,p=(i.clientY-d.top-(d.height-e.height*c)/2)/c;return{x:Math.max(0,Math.min(e.width-1,u)),y:Math.max(0,Math.min(e.height-1,p))}}function o(){var i=n.get("sharedBrowserUi")||{};clearTimeout(i.moveTimer);var d=i.move;A({move:null,moveTimer:null}),d&&C()&&m(Object.assign({kind:"move"},d))}function a(){var i=n.get("sharedBrowserUi")||{};clearTimeout(i.wheelTimer);var d=i.wheelDelta||0;if(!C()){A({wheelDelta:0,wheelTimer:null});return}var c=Math.max(-Ve,Math.min(Ve,d)),u=d-c;A({wheelDelta:u,wheelTimer:u?setTimeout(a,We):null}),c&&m({kind:"wheel",deltaY:c})}e.addEventListener("pointermove",function(i){if(C()){var d=n.get("sharedBrowserUi")||{};A({move:t(i),moveTimer:d.moveTimer||setTimeout(o,40)})}}),e.addEventListener("pointerdown",function(i){!C()||i.button!==0||(i.preventDefault(),o(),a(),e.setPointerCapture(i.pointerId),A({pointer:i.pointerId}),r.focus({preventScroll:!0}),m(Object.assign({kind:"down"},t(i))))});function s(i){var d=n.get("sharedBrowserUi")||{};d.pointer===i.pointerId&&(o(),A({pointer:null}),C()&&m(Object.assign({kind:"up"},t(i))),e.hasPointerCapture(i.pointerId)&&e.releasePointerCapture(i.pointerId))}e.addEventListener("pointerup",s),e.addEventListener("pointercancel",s),e.addEventListener("lostpointercapture",s),e.addEventListener("wheel",function(i){if(C()){i.preventDefault();var d=n.get("sharedBrowserUi")||{};A({wheelDelta:(d.wheelDelta||0)+i.deltaY,wheelTimer:d.wheelTimer||setTimeout(a,We)})}},{passive:!1}),e.addEventListener("focus",function(){C()&&r.focus({preventScroll:!0})}),r.addEventListener("compositionstart",function(){A({composing:!0})}),r.addEventListener("compositionend",function(){A({composing:!1}),C()&&r.value&&m({kind:"text",text:r.value}),r.value=""}),r.addEventListener("input",function(){(n.get("sharedBrowserUi")||{}).composing||(C()&&r.value&&m({kind:"text",text:r.value}),r.value="")}),r.addEventListener("keydown",function(i){if(!(!C()||i.isComposing)){var d=i.key;(i.ctrlKey||i.metaKey)&&d.toLowerCase()==="a"?d="ControlOrMeta+A":d==="Tab"&&i.shiftKey&&(d="Shift+Tab"),/^(Tab|Shift\+Tab|Enter|Backspace|Delete|Escape|ArrowLeft|ArrowRight|ArrowUp|ArrowDown|Home|End|ControlOrMeta\+A)$/.test(d)&&(i.preventDefault(),m({kind:"key",key:d}))}})}function Ye(){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 xe(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),e)})}function sr(e,r,t){var o=e.querySelector(".shared-browser-activity"),a=e.querySelector(".shared-browser-caption-history"),s=e.querySelector(".shared-browser-caption-latest");a.dataset.bound||(a.dataset.bound="true",a.addEventListener("scroll",function(){var y=a.scrollHeight-a.clientHeight-a.scrollTop<20;xe({captionPinned:y}),o.dataset.reviewing=String(!y),s.hidden=y}),s.onclick=function(){a.scrollTop=a.scrollHeight,xe({captionPinned:!0}),s.hidden=!0,o.dataset.reviewing="false"});var i=r&&r.activityHistory||[];o.hidden=!i.length;var d=i[i.length-1],c=r&&r.id+":"+i.length+":"+(d?d.id+":"+d.phase+":"+d.text:"empty"),u=n.get("sharedBrowserUi")||{};if(u.captionHistoryKey!==c){var p=u.captionBrowserId!==(r&&r.id),I=p||u.captionPinned!==!1,fe=a.scrollTop;a.replaceChildren(),i.forEach(function(y,we){var U=document.createElement("div");U.className="shared-browser-caption-row",U.dataset.age=String(Math.min(i.length-we-1,3));var l=document.createElement("span");if(l.className="shared-browser-activity-text",l.textContent=y.text,U.appendChild(l),y.phase==="failed"||y.phase==="interrupted"){var _=document.createElement("small");_.textContent=y.phase==="failed"?"This step could not be completed.":"This step was interrupted.",U.appendChild(_)}a.appendChild(U)}),xe({captionHistoryKey:c,captionBrowserId:r&&r.id,captionPinned:I}),a.scrollTop=I?a.scrollHeight:fe,s.hidden=I,o.dataset.reviewing=String(!I);var H=e.querySelector(".shared-browser-caption-announcement"),Q=t&&d?d.text+(d.phase==="failed"?" This step could not be completed.":""):"";H.textContent!==Q&&(H.textContent=Q)}}function Fe(e,r,t){var o=r&&r.phase==="live"&&r.control==="agent"&&!r.handoff&&t;sr(e,r,o);var a=e.querySelector("canvas"),s=o&&r.pointer,i=e.querySelector(".shared-browser-pointer");if(i.hidden=!s||s.width!==a.width||s.height!==a.height,!i.hidden){i.style.left=100*s.x/a.width+"%",i.style.top=100*s.y/a.height+"%";var d=r.id+":"+r.epoch+":"+s.sequence;(n.get("sharedBrowserUi")||{}).pointerAnimationKey!==d&&(n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),{pointerAnimationKey:d})}),s.clicked&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&i.querySelector("i").animate([{opacity:.8,transform:"scale(.3)"},{opacity:0,transform:"scale(1.8)"}],{duration:650}))}}var qe=["1280,800","1440,900","1024,768","800,600","375,667","390,844"];function ar(){return document.getElementById("shared-browser-resolution")}function Ke(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),{viewportMenuOpen:e})});var r=ar();r&&(r.querySelector("[data-viewport-trigger]").setAttribute("aria-expanded",String(e)),r.querySelector('[role="menu"]').hidden=!e)}function T(){Ke(!1)}function Je(){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 Ge(e,r,t){var o=e.querySelector(".shared-browser-resolution"),a=o.querySelector("[data-viewport-trigger]");a.disabled=!t,(!t||!n.get("sharedBrowserOpen"))&&T();var s=r?r.width+","+r.height:"1280,800";a.querySelector("span").textContent=s.replace(","," \xD7 ");var i=o.querySelector('[role="menu"]');if(i.dataset.size!==s){i.dataset.size=s;var d=qe.includes(s)?qe:qe.concat([s]);i.replaceChildren(),d.forEach(function(c){var u=document.createElement("button");u.type="button",u.setAttribute("role","menuitemradio"),u.setAttribute("aria-checked",String(c===s)),u.dataset.size=c,u.tabIndex=-1,u.textContent=c.replace(","," \xD7 "),u.setAttribute("aria-label",u.textContent),i.appendChild(u)})}}function Qe(e){var r=e.querySelector(".shared-browser-resolution"),t=r.querySelector("[data-viewport-trigger]"),o=r.querySelector('[role="menu"]');function a(s){if(!t.disabled){Ke(!0);var i=o.querySelectorAll("button"),d=o.querySelector('[aria-checked="true"]');(s?i[i.length-1]:d||i[0]).focus()}}t.onclick=function(){(n.get("sharedBrowserUi")||{}).viewportMenuOpen?T():a(!1)},t.onkeydown=function(s){(s.key==="ArrowDown"||s.key==="ArrowUp")&&(s.preventDefault(),a(s.key==="ArrowUp"))},o.onclick=function(s){var i=s.target.closest("[data-size]");if(!(!i||t.disabled)){var d=i.dataset.size.split(",");T(),t.focus(),m({kind:"resize",width:Number(d[0]),height:Number(d[1])})}},r.addEventListener("keydown",function(s){if(s.key==="Escape"){s.preventDefault(),s.stopPropagation(),T(),t.focus();return}if(s.key==="Tab"){T();return}if(!(s.target===t||!["ArrowDown","ArrowUp","Home","End"].includes(s.key))){s.preventDefault();var i=Array.from(o.querySelectorAll("button")),d=i.indexOf(document.activeElement);d=s.key==="Home"?0:s.key==="End"?i.length-1:(d+(s.key==="ArrowDown"?1:-1)+i.length)%i.length,i[d].focus()}}),document.addEventListener("pointerdown",function(s){r.contains(s.target)||T()}),r.addEventListener("focusout",function(s){r.contains(s.relatedTarget)||T()})}function W(){return window.matchMedia("(min-width: 1024px)").matches}function Ze(){var e=n.get("permissions");return W()&&!!n.get("currentSlug")&&!n.get("dmMode")&&(!e||e.terminal!==!1)}function oe(){return Ze()&&!!n.get("activeSessionId")}function G(){return document.getElementById("shared-browser-panel")}function k(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),e)})}function f(e,r){var t=n.get("sharedBrowser"),o=de(e,Object.assign({browserId:t&&t.id,epoch:t&&t.epoch},r||{}));if(o!==null)return o;var a=q();return!a||a.readyState!==1||!n.get("activeSessionId")?!1:(a.send(JSON.stringify(Object.assign({type:"shared_browser_"+e,sessionId:n.get("activeSessionId"),browserId:t&&t.id,epoch:t&&t.epoch},r||{}))),!0)}function m(e){k({error:""}),f("input",{event:e})}function $e(){var e=G();if(!(!e||!n.get("sharedBrowserOpen"))){var r=e.querySelector(".shared-browser-viewport"),t=e.querySelector("canvas"),o=t.width===800&&t.height===600?"mac":t.width===1024&&t.height===768?"crt":t.width<t.height?"phone":"laptop";r.dataset.skin=o;var a=Math.min((r.clientWidth-96)/t.width,(r.clientHeight-140-e.querySelector(".shared-browser-caption").offsetHeight)/t.height,1);if(!(a<=0)){var s=e.querySelector(".shared-browser-monitor");s.style.width=Math.floor(t.width*a)+"px",s.style.height=Math.floor(t.height*a)+"px",e.querySelector(".shared-browser-monitor-label").textContent=t.width+" \xD7 "+t.height+" \xB7 "+Math.round(a*100)+"%"}}}function N(e,r,t){return'<button type="button" data-action="'+e+'" title="'+t+'" aria-label="'+t+'">'+v(r)+"</button>"}function ue(){if(!G()){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">'+N("settings","settings-2","Browser settings")+N("wide","chevrons-left-right","Widen browser panel")+N("fullscreen","maximize-2","Toggle browser fullscreen")+N("hide","x","Hide browser panel")+'</div></header><div class="shared-browser-tabs" role="tablist" aria-label="Browser tabs"></div><form class="shared-browser-address">'+N("back","arrow-left","Back")+N("forward","arrow-right","Forward")+N("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>"+_e()+'<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>'+Ye()+'</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>'+Je()+'<button type="button" data-action="end">End browser</button></div></footer>',e.appendChild(r),r.querySelector('[data-action="hide"]').onclick=J,r.querySelector('[data-action="wide"]').onclick=function(){var o=!(n.get("sharedBrowserUi")||{}).wide;k({wide:o}),h()},r.querySelector('[data-action="fullscreen"]').onclick=function(){var o=!(n.get("sharedBrowserUi")||{}).fullscreen;tr(o),me("browser",o)},["back","forward","reload"].forEach(function(o){r.querySelector('[data-action="'+o+'"]').onclick=function(){m({kind:o})}}),r.querySelector("form").onsubmit=function(o){o.preventDefault(),m({kind:"navigate",url:r.querySelector("form input").value})},r.querySelector('[data-action="control"]').onclick=function(){var o=n.get("sharedBrowser");o&&f("control",{control:o.control==="user"?"agent":"user"})},r.querySelector('[data-action="end"]').onclick=function(){var o=n.get("sharedBrowser");f(o&&o.phase==="ended"?"open":"end",o&&o.phase==="ended"?{incognito:o.incognito}:void 0)},Qe(r),je(r);var t=new ResizeObserver($e);t.observe(r.querySelector(".shared-browser-viewport")),ze(r.querySelector("canvas"),r.querySelector("textarea")),R()}}}function ce(){var e=n.get("sharedBrowser"),r=(n.get("sharedBrowsers")||[]).length,t=!!n.get("connected")&&!!n.get("activeSessionId"),o=n.get("connected")?n.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(a){var s=document.getElementById(a);if(s){var i=a==="shared-browser-toggle-btn"&&t&&n.get("sharedBrowserOpen")?"Hide browser":o;if(a==="shared-browser-toggle-btn"){var d=s.querySelector(".shared-browser-count");d&&(d.textContent=String(r),d.classList.toggle("hidden",r===0)),r&&(i+=" \xB7 "+r+(r===1?" tab":" tabs"))}s.classList.toggle("hidden",!Ze()),s.title=t&&e?i+" \xB7 "+e.phase:i,s.setAttribute("aria-label",i),s.setAttribute("aria-expanded",String(!!n.get("sharedBrowserOpen"))),s.disabled=!t}})}function ir(e,r,t){return t?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 dr(e,r,t,o){var a=e.querySelector(".shared-browser-control-status"),s=ir(r,t,o);a.textContent!==s&&(a.textContent=s);var i=e.querySelector('[data-action="control"]'),d=!!r&&r.control==="user",c=String(d);i.dataset.mode!==c&&(i.dataset.mode=c,i.innerHTML=v(d?"lock":"lock-open")+"<span>"+(d?"Resume shared control":"Pause Clay control")+"</span>",R()),i.title=d?"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.",i.setAttribute("aria-pressed",String(d))}function h(){ce();var e=G();if(e){Ne(e,lr,f);var r=n.get("sharedBrowser"),t=n.get("sharedBrowserUi")||{},o=n.get("connected"),a=r&&r.phase==="live",s=a&&!r.handoff&&o;e.classList.toggle("hidden",!n.get("sharedBrowserOpen")||!oe()),e.classList.toggle("shared-browser-wide",!!t.wide),e.classList.toggle("panel-fullscreen",!!t.fullscreen),e.querySelector('[data-action="wide"]').setAttribute("aria-pressed",t.wide?"true":"false"),e.querySelector('[data-action="fullscreen"]').setAttribute("aria-pressed",t.fullscreen?"true":"false"),e.querySelector(".shared-browser-phase").textContent=o?r?{starting:"Starting\u2026",live:"Live",ended:"Ended \xB7 Last frame"}[r.phase]:"Ready":"Disconnected",e.querySelector(".shared-browser-phase").dataset.live=a&&o?"true":"false",e.querySelector(".shared-browser-monitor").dataset.live=a&&o?"true":"false";var i=e.querySelector("form input");document.activeElement!==i&&(i.value=r?r.url:""),e.querySelectorAll("form input, form button").forEach(function(u){u.disabled=!s}),e.querySelector("textarea").disabled=!s,e.querySelector("canvas").style.cursor=s?"default":"not-allowed",dr(e,r,a,o),e.querySelector('[data-action="control"]').disabled=!a||!!r.handoff||!o,e.querySelector('[data-action="control"]').hidden=!a,e.querySelector('[data-action="end"]').disabled=!r||!o,e.querySelector('[data-action="end"]').textContent=r&&r.phase==="ended"?"New browser":"End browser";var d=r&&r.incognito===!1;e.querySelector(".shared-browser-cookie-mode").textContent=d?"Personal browser":"Incognito",e.querySelector(".shared-browser-cookie-mode").title=d?"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=d?"Your cookies and site storage are remembered across your Mates and browser restarts.":"Site data lasts only for this browser session.";var c=t.error||r&&r.error||"";e.querySelector(".shared-browser-error").textContent=c,e.querySelector(".shared-browser-error").classList.toggle("hidden",!c),e.querySelector(".shared-browser-empty").classList.toggle("hidden",!!(r&&r.url&&t.hasFrame)),Ge(e,r,s),O(),Fe(e,r,o),$e()}}function pe(e){var r=n.get("sharedBrowser");if(n.set({sharedBrowser:e}),!r||!e||r.id!==e.id){K(),T(),k({hasFrame:!1,error:"",decoding:!1,captionHistoryKey:null});var t=G();t&&t.querySelector("canvas").getContext("2d").clearRect(0,0,1920,1200)}else r.epoch!==e.epoch&&K()}function lr(e){var r=(n.get("sharedBrowsers")||[]).find(function(t){return t.id===e});r&&(pe(r),f("view",{visible:W()&&!document.hidden}),h())}function er(){return JSON.stringify([n.get("myUserId"),n.get("currentSlug"),n.get("projectSplitViewActiveId"),n.get("sessionOriginId"),n.get("projectSplitViewSocketGeneration")])}function rr(e){n.set({pendingBrowserOpen:null}),!f("open",e)&&n.set({pendingBrowserOpen:{context:er(),socket:q(),fields:e||{},expires:Date.now()+15e3}})}function cr(){var e=n.get("pendingBrowserOpen");if(e){if(e.context!==er()||e.socket!==q()||e.expires<Date.now()||!n.get("connected")||!n.get("sharedBrowserOpen")){n.set({pendingBrowserOpen:null});return}F()&&(n.set({pendingBrowserOpen:null}),f("open",e.fields)||n.set({pendingBrowserOpen:e}))}}function ot(e){F();var r=le("browser:"+e);if(!r)throw new Error("Enter a valid HTTP or HTTPS browser address.");if(!W())throw new Error("Clay Browser is available on desktop screens.");if(!oe())throw new Error("Browser access is unavailable in this conversation.");if(!n.get("connected"))throw new Error("Reconnect before opening this browser link.");ue(),ne(!1),Z("browser"),n.set({sharedBrowserOpen:!0}),k({error:""}),rr({url:r}),h()}function Xe(){if(F(),!(!oe()||!n.get("connected"))){ue(),Z("browser"),n.set({sharedBrowserOpen:!0});var e=n.get("sharedBrowser");e?f("view",{visible:!0}):rr(),h()}}function J(){tr(!1),me("browser",!1),n.get("savedWorkspaceApplying")||n.set({pendingBrowserOpen:null}),T(),ne(),K(),n.get("sharedBrowserOpen")&&f("view",{visible:!1}),n.set({sharedBrowserOpen:!1}),be("browser"),h()}function ur(e,r){if(!e.type||e.type.indexOf("shared_browser_")!==0)return!1;if(Me(e)||Pe()&&!r||String(e.sessionId)!==String(Be()||n.get("activeSessionId"))||De(e))return!0;if(e.type==="shared_browser_state"){var t=n.get("sharedBrowser"),o=e.browsers||(e.browser?[e.browser]:[]);n.set({sharedBrowsers:o});var a=!e.focus&&t&&o.find(function(u){return u.id===t.id});a=a||e.browser||o[0]||null,pe(a),n.set({savedViewBrowserListReady:!0}),e.present&&oe()&&(ue(),Z("browser"),n.set({sharedBrowserOpen:!0})),n.get("sharedBrowserOpen")&&a&&f("view",{visible:W()&&!document.hidden}),h()}else if(e.type==="shared_browser_error")k({error:e.error}),h();else if(e.type==="shared_browser_frame"){var s=n.get("sharedBrowser");if(!W()||!n.get("sharedBrowserOpen")||!s||s.id!==e.browserId||(n.get("sharedBrowserUi")||{}).decoding)return!0;var i=n.get("activeSessionId"),d=ae();k({decoding:!0});var c=new Image;c.onload=function(){var u=n.get("sharedBrowser");if(u&&u.id===e.browserId&&ae()===d&&n.get("activeSessionId")===i&&G()){var p=G().querySelector("canvas");p.width=c.naturalWidth,p.height=c.naturalHeight,p.getContext("2d").drawImage(c,0,0),k({decoding:!1,hasFrame:!0}),h(),Ce(e,p,null,p)}},c.onerror=function(){ae()===d&&n.get("activeSessionId")===i&&k({decoding:!1})},c.src="data:image/jpeg;base64,"+e.data}return!0}function st(){He(ur,function(t){var o=n.get("savedWorkspaceApplying");n.set({savedWorkspaceApplying:!0,savedViewBrowserListReady:!1});try{K(),pe(null),n.set({sharedBrowsers:[],sharedBrowserUi:{},sharedBrowserSettings:{}}),t||J(),h()}finally{n.set({savedWorkspaceApplying:o})}}),document.addEventListener("clay-pane-ready",function(){queueMicrotask(cr)},!0),ke();var e=document.getElementById("shared-browser-btn");e&&(e.onclick=Xe);var r=document.getElementById("shared-browser-toggle-btn");r&&(r.onclick=function(){n.get("sharedBrowserOpen")?J():Xe()}),window.matchMedia("(min-width: 1024px)").addEventListener("change",function(){W()||J(),ce()}),document.addEventListener("visibilitychange",function(){n.get("sharedBrowserOpen")&&f("view",{visible:!document.hidden&&W()})}),R(),ce(),n.get("connected")&&f("state_request")}Ae("browser",J);n.subscribe(function(e,r){if(e.currentSlug!==r.currentSlug||e.activeSessionId!==r.activeSessionId||e.myUserId!==r.myUserId){if(Be()!==null){h();return}K(),be("browser"),n.set({sharedBrowser:null,sharedBrowsers:[],savedViewBrowserListReady:!1,sharedBrowserOpen:!1,sharedBrowserUi:{},sharedBrowserSettings:{}}),e.connected&&f("state_request"),h()}else e.connected!==r.connected?(n.set({savedViewBrowserListReady:!1}),e.connected&&f("state_request"),h()):(e.permissions!==r.permissions||e.dmMode!==r.dmMode)&&(oe()||J(),ce())});function at(e){if(Se()&&!F())return"pending";if(!n.get("savedViewBrowserListReady"))return f("state_request"),"pending";if(!n.get("connected")||!n.get("controlRuntimeId"))return"pending";ue();var r=(n.get("sharedBrowsers")||[]).find(function(o){return o.id===e.id&&o.phase!=="ended"}),t=r&&e.runtimeId===n.get("controlRuntimeId")&&e.sessionOriginId===n.get("sessionOriginId");return Z("browser"),n.set({sharedBrowserOpen:!0}),t?(pe(r),f("view",{visible:!0}),k({error:""}),h(),"restored"):(k({error:"This saved browser is unavailable in the current conversation. No replacement browser was opened."}),h(),"unavailable")}function tr(e){k({fullscreen:!!e}),document.getElementById("shared-browser-panel")&&h()}export{gr as a,m as b,ot as c,Xe as d,J as e,ur as f,st as g,at as h,tr as i,Sr as j,or as k,Er as l};
1
+ import{j as Y,l as Oe,m as D,n as X,y as Ce}from"./chunk-DTNAWMGQ.js";import{a as q}from"./chunk-R7QVVFUG.js";import{G as Ae,I as Z,J as be,Q as me,a as z,c as Le,d as R,e as v}from"./chunk-OQBKX36J.js";import{d as n}from"./chunk-EGCR2MH4.js";function M(){return n.get("paneBrowserSource")||null}function $(){var e=n.get("projectSplitViewFocusedOrigin")||n.get("projectSplitViewSingletonOrigin");if(e)return e;var r=(n.get("projectSplitViews")||[]).find(function(t){return t.id===n.get("projectSplitViewActiveId")});return r&&r.activeSessionOriginId||n.get("sessionOriginId")||null}var Te=null,ee=null,ye={state_request:[],open:["url","newTab","incognito"],view:["browserId","visible"],control:["browserId","control"],close:["browserId"],end:["browserId"],input:["browserId","epoch","event"]};function re(){return Array.from(document.querySelectorAll("#split-host .split-pane:not(.split-pane-cached) .split-pane-frame"))}function Se(){return!n.get("paneMode")&&re().some(function(e){return!!e.clayPane||!!Oe(n.snap(),n.get("paneBindingSessions")||[],Number(e.dataset.sessionId))})}function P(){var e=M();if(!e||e.socket!==q()||e.owner!==n.get("myUserId")||e.project!==n.get("currentSlug"))return!1;var r=e.frame;return re().includes(r)&&r.contentWindow===e.window&&r.contentDocument===e.document&&!r.dataset.requestedSessionId&&D(r,{paneBinding:e.binding})}function Be(){return P()?M().binding.sessionId:null}function ae(){var e=M();return P()?e.binding.requestId+":"+e.binding.generation:null}function Pe(){return!!M()}function ie(e,r){var t=M();if(!e||!r||!re().includes(e)||e.dataset.requestedSessionId||!D(e,{paneBinding:r}))return!1;if(P()&&t.frame===e&&Y(t.binding,r))return t.focusedOrigin!==$()&&n.set({paneBrowserSource:Object.assign({},t,{focusedOrigin:$()})}),!0;var o=n.get("sharedBrowser");return P()&&o&&de("view",{browserId:o.id,visible:!1}),n.set({paneBrowserSource:{frame:e,window:e.contentWindow,document:e.contentDocument,binding:r,socket:q(),owner:n.get("myUserId"),project:n.get("currentSlug"),focusedOrigin:$()},paneBrowserTarget:r}),ee&&ee(!0),!0}function F(){if(P()&&M().focusedOrigin===$())return!0;var e=re(),r=$(),t=e.find(function(a){return r&&a.dataset.sessionOriginId===r})||e.find(function(a){var s=a.closest(".split-pane");return s&&s.dataset.active==="true"})||e[0],o=t&&t.clayPane&&t.clayPane.identity();return!!o&&ie(t,o.binding)}function de(e,r){var t=M();return Object.prototype.hasOwnProperty.call(ye,e)?!t&&!Se()?null:!P()||!t.frame.clayPane||typeof t.frame.clayPane.browserCommand!="function"?!1:t.frame.clayPane.browserCommand(e,r||{},t.binding):!1}function gr(e,r,t){var o=Object.prototype.hasOwnProperty.call(ye,e)&&ye[e],a=q();if(!o||!a||a.readyState!==1||!Y(t,X())||!n.get("connected")||n.get("panePendingBinding")||n.get("activeSessionId")!==t.sessionId)return!1;var s={type:"shared_browser_"+e,sessionId:t.sessionId,paneBinding:t};return o.forEach(function(i){Object.prototype.hasOwnProperty.call(r,i)&&(s[i]=r[i])}),a.send(JSON.stringify(s)),!0}function Me(e){var r=window.frameElement;if(!n.get("paneMode")||!r||!r.clayPane||["shared_browser_state","shared_browser_frame","shared_browser_error"].indexOf(e.type)<0)return!1;var t=X();return t&&Y(t,e.paneActivation)&&window.parent.postMessage({type:"clay-pane-browser-update",paneBinding:t,message:e},location.origin),!0}function He(e,r){n.get("paneMode")||(Te=e,ee=r,window.addEventListener("message",function(t){var o=t.data;if(!(t.origin!==location.origin||!o||o.type!=="clay-pane-browser-update"||!o.message)){var a=re().find(function(d){return d.contentWindow===t.source}),s=o.message,i=M();!a||!D(a,o)||!Y(o.paneBinding,s.paneActivation)||s.sessionId!==o.paneBinding.sessionId||["shared_browser_state","shared_browser_frame","shared_browser_error"].indexOf(s.type)<0||(!P()||i.frame!==a||!Y(i.binding,o.paneBinding))&&(s.type!=="shared_browser_state"||!s.present||!ie(a,o.paneBinding))||Te(s,!0)}}),document.addEventListener("clay-pane-ready",function(){queueMicrotask(function(){!P()&&F()&&de("state_request",{})})},!0),n.subscribe(function(){var t=M();t&&!P()&&(n.set({paneBrowserSource:null,paneBrowserTarget:null}),ee&&ee(!1))}))}function Ue(e){return!n.get("paneMode")||window.parent===window?!1:(window.parent.postMessage({type:"clay-pane-open-browser",paneBinding:X(),url:e,projectSlug:n.get("currentSlug"),sessionId:String(n.get("activeSessionId"))},window.location.origin),!0)}function Sr(e,r){if(!e||e.origin!==window.location.origin||!r||!e.data||e.data.type!=="clay-pane-open-browser")return!1;var t=e.data,o=Object.assign({},n.snap()),a=Array.from(r.querySelectorAll(".split-pane-frame")).find(function(p){return p.contentWindow===e.source}),s=a&&a.clayPane?{slug:a.dataset.projectSlug,sessionId:a.dataset.sessionId}:a&&o.splitPanes&&o.splitPanes.panes&&o.splitPanes.panes.find(function(p){return String(p.slug)===a.dataset.projectSlug&&String(p.sessionId)===a.dataset.sessionId});if(!o.connected||!s||t.projectSlug!==o.currentSlug||t.projectSlug!==a.dataset.projectSlug||String(t.sessionId)!==a.dataset.sessionId)return!0;var i=new URL("/p/"+encodeURIComponent(s.slug)+"/?pane=1&session="+encodeURIComponent(s.sessionId),window.location.href).href;if(a.clayPane?!D(a,t):a.src!==i)return!0;var d=a.clayPane&&a.clayPane.identity().binding,c=a.contentDocument;function u(){var p=n.snap();return!p.connected||p.currentSlug!==o.currentSlug||p.myUserId!==o.myUserId||p.currentProjectOwnerId!==o.currentProjectOwnerId||p.projectSplitViewSocketGeneration!==o.projectSplitViewSocketGeneration||a.contentWindow!==e.source||a.contentDocument!==c||a.dataset.projectSlug!==t.projectSlug||String(a.dataset.sessionId)!==String(t.sessionId)||!Array.from(r.querySelectorAll(".split-pane-frame")).includes(a)?!1:d?!!a.clayPane&&D(a,t)&&a.clayPane.identity().binding===d:a.src===i&&!!(p.splitPanes&&p.splitPanes.panes.some(function(I){return String(I.slug)===s.slug&&String(I.sessionId)===String(s.sessionId)}))}return import("./chunk-I5Q4CZDJ.js").then(function(p){!u()||d&&!ie(a,d)||p.openSharedBrowserAt(t.url)}).catch(function(p){z(p.message||"Could not open the browser.","warn")}),!0}function te(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function le(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 t=new URL(r);return t.username||t.password||!["http:","https:"].includes(t.protocol)?null:t.href}catch{return null}}function or(e,r,t){var o=le(e);if(!o)return null;var a=String(t||"").replace(/<[^>]*>/g,"").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").trim();return(!a||a===e||a===o)&&(a=new URL(o).host),'<button type="button" class="clay-browser-link clayos-record-link" data-browser-url="'+te(o)+'" data-browser-project="'+te(n.get("currentSlug")||"")+'" title="'+te("Open in Clay Browser \xB7 "+o)+'" aria-label="'+te("Open in Clay Browser: "+a)+'">'+v("globe")+"<span>Browser</span><small>"+te(a)+"</small></button>"}function Er(e){!e||typeof document>"u"||(e.querySelectorAll("a[href]").forEach(function(r){if(!r.closest("pre, code, button")){var t=or(r.getAttribute("href"),"",r.textContent);if(t){var o=document.createElement("template");o.innerHTML=t,r.replaceWith(o.content)}}}),ke(),R())}function ke(){n.get("browserLinksBound")||(n.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 t=le("browser:"+r.dataset.browserUrl);if(!t){z("This browser link is invalid.","warn");return}if(r.dataset.browserProject&&r.dataset.browserProject!==n.get("currentSlug")){z("Open this link from its original project.","warn");return}Ue(t)||import("./chunk-I5Q4CZDJ.js").then(function(o){o.openSharedBrowserAt(t)}).catch(function(o){z(o.message||"Could not open the browser.","warn")})}}))}function b(e){return Le(String(e)).replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function B(){return n.get("sharedBrowserSettings")||{}}function S(e){n.set({sharedBrowserSettings:Object.assign({},B(),e)})}function E(){return document.getElementById("shared-browser-settings")}function L(e,r,t,o){return'<button type="button" data-settings-action="'+r+'" data-target="'+b(t||"")+'" data-label="'+b(o||t||"")+'">'+b(e)+"</button>"}function Ie(e,r){var t=q();if(!t||t.readyState!==1){S({error:"Reconnect to manage browser data.",pending:!1}),O();return}var o=crypto.randomUUID();S({pending:!0,requestId:o,error:"",notice:""}),t.send(JSON.stringify({type:"shared_browser_settings",sessionId:n.get("activeSessionId"),requestId:o,operation:e,target:r})),O(),setTimeout(function(){B().requestId===o&&B().pending&&(S({pending:!1,error:"The request timed out. Refresh to check the saved state."}),O())},15e3)}function ne(e){var r=!!B().open;S({open:!1,review:null}),O();var t=document.querySelector('[data-action="settings"]');t&&r&&e!==!1&&t.focus()}function _e(){return'<section id="shared-browser-settings" class="shared-browser-settings" aria-label="Browser settings" hidden></section>'}function je(e){e.querySelector('[data-action="settings"]').onclick=function(){S({open:!0,page:"sites",data:null,review:null,filter:""}),Ie("list"),E().querySelector('[data-settings-action="back"]').focus()},E().addEventListener("keydown",function(r){r.key==="Escape"&&(r.preventDefault(),r.stopPropagation(),ne())}),E().addEventListener("input",function(r){r.target.matches("[data-settings-filter]")&&(S({filter:r.target.value}),Re(),E().dataset.key=JSON.stringify([B(),n.get("connected")]))}),E().addEventListener("click",function(r){var t=r.target.closest("[data-settings-action]");if(!(!t||t.disabled)){var o=t.dataset.settingsAction;if(o==="back"){ne();return}if(o==="sites"||o==="history"){S({page:o,filter:"",review:null,notice:"",error:""}),O();return}if(o==="refresh"){Ie("list");return}if(o==="cancel"){S({review:null}),O(),E().querySelector('[data-settings-action="refresh"]').focus();return}if(o==="confirm"){var a=B().review;a&&Ie(a.action,a.target);return}S({notice:"",error:"",review:{action:o,target:t.dataset.target,label:t.dataset.label||t.dataset.target}}),O(),E().querySelector('[data-settings-action="cancel"]').focus()}})}function Re(){var e=E(),r=B();if(!(!e||!r.open)){var t=e.querySelector(".browser-settings-rows");if(t){var o=(r.filter||"").toLowerCase(),a=r.data||{sites:[],history:[]};r.page==="history"?t.innerHTML=a.history.filter(function(s){return s.url.toLowerCase().includes(o)}).map(function(s){return'<div class="browser-settings-row"><div><span class="browser-settings-url">'+b(s.url)+"</span><small>"+b(new Date(s.at).toLocaleString())+"</small></div>"+L("Remove","delete_history",s.id,s.url)+"</div>"}).join(""):t.innerHTML=a.sites.filter(function(s){return s.host.toLowerCase().includes(o)}).map(function(s){return"<details><summary>"+b(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>'+L("Remove site data","delete_site",s.host)+"</div>"+s.origins.map(function(i){return'<p class="browser-settings-origin">'+b(i.origin)+"<small>"+i.localStorage+" localStorage entries \xB7 "+i.databases+" IndexedDB databases</small></p>"}).join("")+s.cookies.map(function(i){var d=i.domain+i.path+" \xB7 "+(i.expires===-1?"Session cookie":"Expires "+new Date(i.expires*1e3).toLocaleDateString())+(i.httpOnly?" \xB7 HttpOnly":"")+(i.secure?" \xB7 Secure":"")+(i.partitioned?" \xB7 Partitioned":"");return'<div class="browser-settings-row"><div><span>'+b(i.name)+"</span><small>"+b(d)+"</small></div>"+L("Remove cookie","delete_cookie",i.id,i.name+" \xB7 "+i.domain+i.path)+"</div>"}).join("")+"</details>"}).join(""),t.innerHTML||(t.innerHTML='<p class="browser-settings-muted">'+(r.pending&&!r.data?"Loading saved data\u2026":o?"No matching entries.":r.page==="history"?"No saved browsing history.":"No saved cookies or site data.")+"</p>"),t.querySelectorAll("button").forEach(function(s){s.disabled=!!r.pending||!n.get("connected")})}}}function O(){var e=E();if(e){var r=B(),t=e.closest(".shared-browser-panel"),o=n.get("sharedBrowser"),a=t.querySelector('[data-action="settings"]');if(a.hidden=!(o&&o.personalCookiesAvailable),a.disabled=!n.get("connected"),a.setAttribute("aria-expanded",String(!!r.open)),e.hidden=!r.open,t.classList.toggle("browser-settings-open",!!r.open),!!r.open){var s=JSON.stringify([r,n.get("connected")]);if(e.dataset.key!==s){e.dataset.key=s;var i=r.page||"sites";e.innerHTML='<div class="browser-settings-heading">'+L("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">'+L("Cookies & site data","sites")+L("History","history")+'</nav><p class="browser-settings-muted">'+(i==="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="'+(i==="sites"?"Find a site":"Find a page")+'" value="'+b(r.filter||"")+'">'+L("Refresh","refresh")+L(i==="sites"?"Clear all site data":"Clear history",i==="sites"?"clear_data":"clear_history")+'</div><p class="browser-settings-feedback" role="status">'+b(r.error||(n.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 "+b(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 "+b(r.review.target))+" across your personal Mate browsers and may sign you out.")+"</p>"+L("Cancel","cancel")+L("Remove","confirm")+"</div>":"")+'<div class="browser-settings-rows"></div>',e.querySelector('[data-settings-action="'+i+'"]').setAttribute("aria-current","page"),e.querySelectorAll("button").forEach(function(d){d.disabled=d.dataset.settingsAction!=="back"&&(!!r.pending||!n.get("connected"))}),Re()}}}}function De(e){if(!e.requestId||e.requestId!==B().requestId)return!1;if(e.type==="shared_browser_settings"){var r=!!B().review;S({data:e.settings,pending:!1,review:null,error:"",notice:r?"Removed from your saved browser data.":""})}else if(e.type==="shared_browser_error")S({pending:!1,error:e.error});else return!1;return O(),B().open&&r&&E().querySelector('[data-settings-action="refresh"]').focus(),!0}function Ne(e,r,t){var o=e.querySelector(".shared-browser-tabs"),a=n.get("sharedBrowsers")||[],s=n.get("sharedBrowser"),i=JSON.stringify([a.map(function(l){return[l.id,l.url,l.control,l.phase,l.incognito,l.personalCookiesAvailable,l.sourceSessionId,l.sourceRole,l.sourceTitle,l.sourceGeneration]}),s&&s.id,n.get("connected")]);if(o.dataset.key===i)return;var d=o.contains(document.activeElement)?document.activeElement:null,c=d&&d.dataset.browserId,u=d&&d.dataset.tabAction,p=o.dataset.selected,I=o.querySelector(".shared-browser-tab-list"),fe=I?I.scrollLeft:0;o.dataset.key=i,o.dataset.selected=s&&s.id||"",o.replaceChildren();var H=document.createElement("div");H.className="shared-browser-tab-list",H.setAttribute("role","presentation"),o.appendChild(H),a.forEach(function(l,_){var j=document.createElement("div");j.className="shared-browser-tab",j.setAttribute("role","presentation");var se=!!s&&s.id===l.id,w=document.createElement("button");w.type="button",w.setAttribute("role","tab"),w.dataset.browserId=l.id,w.dataset.tabAction="select",w.setAttribute("aria-selected",String(se)),w.tabIndex=se?0:-1;var g="New tab";try{l.url&&(g=new URL(l.url).hostname||"New tab")}catch{}var ge=l.sourceRole==="worker"?"Worker #"+l.sourceSessionId:"";ge&&(g=ge+" \xB7 "+g);var nr=l.phase==="ended"?"Ended":l.phase==="starting"?"Starting":l.control==="agent"?"You and Clay can control this tab":"Only you can control this tab. Clay is paused.",Ee=g+(ge?" \xB7 "+l.sourceTitle+" \xB7 Gen "+l.sourceGeneration:"")+" \xB7 "+(l.incognito===!1?"Personal browser":"Incognito")+" \xB7 "+nr,he=document.createElement("span");he.className="shared-browser-tab-label",he.textContent=g,w.innerHTML=v(l.personalCookiesAvailable&&l.incognito?"glasses":"globe"),w.appendChild(he),w.setAttribute("aria-label",Ee),w.setAttribute("data-tip",Ee),j.dataset.phase=l.phase,j.dataset.control=l.control,w.onclick=function(){r(l.id)},w.onkeydown=function(V){var ve=V.key==="ArrowRight"?(_+1)%a.length:V.key==="ArrowLeft"?(_+a.length-1)%a.length:V.key==="Home"?0:V.key==="End"?a.length-1:-1;ve<0||(V.preventDefault(),r(a[ve].id),o.querySelectorAll('[role="tab"]')[ve].focus())};var x=document.createElement("button");x.type="button",x.className="shared-browser-tab-close",x.innerHTML=v("x"),x.dataset.browserId=l.id,x.dataset.tabAction="close",x.setAttribute("aria-label","Close browser tab "+(_+1)),x.setAttribute("data-tip","Close tab"),x.disabled=!n.get("connected"),x.onclick=function(){t("close",{browserId:l.id})},j.append(w,x),H.appendChild(j)});function Q(l,_,j,se,w){var g=document.createElement("button");g.type="button",g.className="shared-browser-new-tab",g.innerHTML=v(l),g.dataset.tabAction=w,g.setAttribute("aria-label",_),g.setAttribute("data-tip",j),g.disabled=!n.get("connected"),g.onclick=function(){t("open",se)},o.appendChild(g)}Q("plus","New browser tab",s&&s.personalCookiesAvailable?"New tab \xB7 Personal browser":"New incognito tab",{newTab:!0},"new"),s&&s.personalCookiesAvailable&&Q("glasses","New incognito tab","New incognito tab \xB7 Site data is not saved",{newTab:!0,incognito:!0},"incognito"),R(),H.scrollLeft=fe;var y=Array.from(o.querySelectorAll("button")),we=d&&y.find(function(l){return l.dataset.browserId===c&&l.dataset.tabAction===u});d&&(we||o.querySelector('[aria-selected="true"]')||y[0]).focus({preventScroll:!0});var U=o.querySelector('[aria-selected="true"]');U&&p!==o.dataset.selected&&U.scrollIntoView({block:"nearest",inline:"nearest"})}function C(){var e=n.get("sharedBrowser");return e&&!e.handoff&&e.phase==="live"&&n.get("connected")}var We=50,Ve=2e3;function A(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),e)})}function K(){var e=n.get("sharedBrowserUi")||{};clearTimeout(e.moveTimer),clearTimeout(e.wheelTimer),A({moveTimer:null,move:null,wheelTimer:null,wheelDelta:0,pointer:null,composing:!1})}function ze(e,r){function t(i){var d=e.getBoundingClientRect(),c=Math.min(d.width/e.width,d.height/e.height),u=(i.clientX-d.left-(d.width-e.width*c)/2)/c,p=(i.clientY-d.top-(d.height-e.height*c)/2)/c;return{x:Math.max(0,Math.min(e.width-1,u)),y:Math.max(0,Math.min(e.height-1,p))}}function o(){var i=n.get("sharedBrowserUi")||{};clearTimeout(i.moveTimer);var d=i.move;A({move:null,moveTimer:null}),d&&C()&&m(Object.assign({kind:"move"},d))}function a(){var i=n.get("sharedBrowserUi")||{};clearTimeout(i.wheelTimer);var d=i.wheelDelta||0;if(!C()){A({wheelDelta:0,wheelTimer:null});return}var c=Math.max(-Ve,Math.min(Ve,d)),u=d-c;A({wheelDelta:u,wheelTimer:u?setTimeout(a,We):null}),c&&m({kind:"wheel",deltaY:c})}e.addEventListener("pointermove",function(i){if(C()){var d=n.get("sharedBrowserUi")||{};A({move:t(i),moveTimer:d.moveTimer||setTimeout(o,40)})}}),e.addEventListener("pointerdown",function(i){!C()||i.button!==0||(i.preventDefault(),o(),a(),e.setPointerCapture(i.pointerId),A({pointer:i.pointerId}),r.focus({preventScroll:!0}),m(Object.assign({kind:"down"},t(i))))});function s(i){var d=n.get("sharedBrowserUi")||{};d.pointer===i.pointerId&&(o(),A({pointer:null}),C()&&m(Object.assign({kind:"up"},t(i))),e.hasPointerCapture(i.pointerId)&&e.releasePointerCapture(i.pointerId))}e.addEventListener("pointerup",s),e.addEventListener("pointercancel",s),e.addEventListener("lostpointercapture",s),e.addEventListener("wheel",function(i){if(C()){i.preventDefault();var d=n.get("sharedBrowserUi")||{};A({wheelDelta:(d.wheelDelta||0)+i.deltaY,wheelTimer:d.wheelTimer||setTimeout(a,We)})}},{passive:!1}),e.addEventListener("focus",function(){C()&&r.focus({preventScroll:!0})}),r.addEventListener("compositionstart",function(){A({composing:!0})}),r.addEventListener("compositionend",function(){A({composing:!1}),C()&&r.value&&m({kind:"text",text:r.value}),r.value=""}),r.addEventListener("input",function(){(n.get("sharedBrowserUi")||{}).composing||(C()&&r.value&&m({kind:"text",text:r.value}),r.value="")}),r.addEventListener("keydown",function(i){if(!(!C()||i.isComposing)){var d=i.key;(i.ctrlKey||i.metaKey)&&d.toLowerCase()==="a"?d="ControlOrMeta+A":d==="Tab"&&i.shiftKey&&(d="Shift+Tab"),/^(Tab|Shift\+Tab|Enter|Backspace|Delete|Escape|ArrowLeft|ArrowRight|ArrowUp|ArrowDown|Home|End|ControlOrMeta\+A)$/.test(d)&&(i.preventDefault(),m({kind:"key",key:d}))}})}function Ye(){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 xe(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),e)})}function sr(e,r,t){var o=e.querySelector(".shared-browser-activity"),a=e.querySelector(".shared-browser-caption-history"),s=e.querySelector(".shared-browser-caption-latest");a.dataset.bound||(a.dataset.bound="true",a.addEventListener("scroll",function(){var y=a.scrollHeight-a.clientHeight-a.scrollTop<20;xe({captionPinned:y}),o.dataset.reviewing=String(!y),s.hidden=y}),s.onclick=function(){a.scrollTop=a.scrollHeight,xe({captionPinned:!0}),s.hidden=!0,o.dataset.reviewing="false"});var i=r&&r.activityHistory||[];o.hidden=!i.length;var d=i[i.length-1],c=r&&r.id+":"+i.length+":"+(d?d.id+":"+d.phase+":"+d.text:"empty"),u=n.get("sharedBrowserUi")||{};if(u.captionHistoryKey!==c){var p=u.captionBrowserId!==(r&&r.id),I=p||u.captionPinned!==!1,fe=a.scrollTop;a.replaceChildren(),i.forEach(function(y,we){var U=document.createElement("div");U.className="shared-browser-caption-row",U.dataset.age=String(Math.min(i.length-we-1,3));var l=document.createElement("span");if(l.className="shared-browser-activity-text",l.textContent=y.text,U.appendChild(l),y.phase==="failed"||y.phase==="interrupted"){var _=document.createElement("small");_.textContent=y.phase==="failed"?"This step could not be completed.":"This step was interrupted.",U.appendChild(_)}a.appendChild(U)}),xe({captionHistoryKey:c,captionBrowserId:r&&r.id,captionPinned:I}),a.scrollTop=I?a.scrollHeight:fe,s.hidden=I,o.dataset.reviewing=String(!I);var H=e.querySelector(".shared-browser-caption-announcement"),Q=t&&d?d.text+(d.phase==="failed"?" This step could not be completed.":""):"";H.textContent!==Q&&(H.textContent=Q)}}function Fe(e,r,t){var o=r&&r.phase==="live"&&r.control==="agent"&&!r.handoff&&t;sr(e,r,o);var a=e.querySelector("canvas"),s=o&&r.pointer,i=e.querySelector(".shared-browser-pointer");if(i.hidden=!s||s.width!==a.width||s.height!==a.height,!i.hidden){i.style.left=100*s.x/a.width+"%",i.style.top=100*s.y/a.height+"%";var d=r.id+":"+r.epoch+":"+s.sequence;(n.get("sharedBrowserUi")||{}).pointerAnimationKey!==d&&(n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),{pointerAnimationKey:d})}),s.clicked&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&i.querySelector("i").animate([{opacity:.8,transform:"scale(.3)"},{opacity:0,transform:"scale(1.8)"}],{duration:650}))}}var qe=["1280,800","1440,900","1024,768","800,600","375,667","390,844"];function ar(){return document.getElementById("shared-browser-resolution")}function Ke(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),{viewportMenuOpen:e})});var r=ar();r&&(r.querySelector("[data-viewport-trigger]").setAttribute("aria-expanded",String(e)),r.querySelector('[role="menu"]').hidden=!e)}function T(){Ke(!1)}function Je(){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 Ge(e,r,t){var o=e.querySelector(".shared-browser-resolution"),a=o.querySelector("[data-viewport-trigger]");a.disabled=!t,(!t||!n.get("sharedBrowserOpen"))&&T();var s=r?r.width+","+r.height:"1280,800";a.querySelector("span").textContent=s.replace(","," \xD7 ");var i=o.querySelector('[role="menu"]');if(i.dataset.size!==s){i.dataset.size=s;var d=qe.includes(s)?qe:qe.concat([s]);i.replaceChildren(),d.forEach(function(c){var u=document.createElement("button");u.type="button",u.setAttribute("role","menuitemradio"),u.setAttribute("aria-checked",String(c===s)),u.dataset.size=c,u.tabIndex=-1,u.textContent=c.replace(","," \xD7 "),u.setAttribute("aria-label",u.textContent),i.appendChild(u)})}}function Qe(e){var r=e.querySelector(".shared-browser-resolution"),t=r.querySelector("[data-viewport-trigger]"),o=r.querySelector('[role="menu"]');function a(s){if(!t.disabled){Ke(!0);var i=o.querySelectorAll("button"),d=o.querySelector('[aria-checked="true"]');(s?i[i.length-1]:d||i[0]).focus()}}t.onclick=function(){(n.get("sharedBrowserUi")||{}).viewportMenuOpen?T():a(!1)},t.onkeydown=function(s){(s.key==="ArrowDown"||s.key==="ArrowUp")&&(s.preventDefault(),a(s.key==="ArrowUp"))},o.onclick=function(s){var i=s.target.closest("[data-size]");if(!(!i||t.disabled)){var d=i.dataset.size.split(",");T(),t.focus(),m({kind:"resize",width:Number(d[0]),height:Number(d[1])})}},r.addEventListener("keydown",function(s){if(s.key==="Escape"){s.preventDefault(),s.stopPropagation(),T(),t.focus();return}if(s.key==="Tab"){T();return}if(!(s.target===t||!["ArrowDown","ArrowUp","Home","End"].includes(s.key))){s.preventDefault();var i=Array.from(o.querySelectorAll("button")),d=i.indexOf(document.activeElement);d=s.key==="Home"?0:s.key==="End"?i.length-1:(d+(s.key==="ArrowDown"?1:-1)+i.length)%i.length,i[d].focus()}}),document.addEventListener("pointerdown",function(s){r.contains(s.target)||T()}),r.addEventListener("focusout",function(s){r.contains(s.relatedTarget)||T()})}function W(){return window.matchMedia("(min-width: 1024px)").matches}function Ze(){var e=n.get("permissions");return W()&&!!n.get("currentSlug")&&!n.get("dmMode")&&(!e||e.terminal!==!1)}function oe(){return Ze()&&!!n.get("activeSessionId")}function G(){return document.getElementById("shared-browser-panel")}function k(e){n.set({sharedBrowserUi:Object.assign({},n.get("sharedBrowserUi"),e)})}function f(e,r){var t=n.get("sharedBrowser"),o=de(e,Object.assign({browserId:t&&t.id,epoch:t&&t.epoch},r||{}));if(o!==null)return o;var a=q();return!a||a.readyState!==1||!n.get("activeSessionId")?!1:(a.send(JSON.stringify(Object.assign({type:"shared_browser_"+e,sessionId:n.get("activeSessionId"),browserId:t&&t.id,epoch:t&&t.epoch},r||{}))),!0)}function m(e){k({error:""}),f("input",{event:e})}function $e(){var e=G();if(!(!e||!n.get("sharedBrowserOpen"))){var r=e.querySelector(".shared-browser-viewport"),t=e.querySelector("canvas"),o=t.width===800&&t.height===600?"mac":t.width===1024&&t.height===768?"crt":t.width<t.height?"phone":"laptop";r.dataset.skin=o;var a=Math.min((r.clientWidth-96)/t.width,(r.clientHeight-140-e.querySelector(".shared-browser-caption").offsetHeight)/t.height,1);if(!(a<=0)){var s=e.querySelector(".shared-browser-monitor");s.style.width=Math.floor(t.width*a)+"px",s.style.height=Math.floor(t.height*a)+"px",e.querySelector(".shared-browser-monitor-label").textContent=t.width+" \xD7 "+t.height+" \xB7 "+Math.round(a*100)+"%"}}}function N(e,r,t){return'<button type="button" data-action="'+e+'" title="'+t+'" aria-label="'+t+'">'+v(r)+"</button>"}function ue(){if(!G()){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">'+N("settings","settings-2","Browser settings")+N("wide","chevrons-left-right","Widen browser panel")+N("fullscreen","maximize-2","Toggle browser fullscreen")+N("hide","x","Hide browser panel")+'</div></header><div class="shared-browser-tabs" role="tablist" aria-label="Browser tabs"></div><form class="shared-browser-address">'+N("back","arrow-left","Back")+N("forward","arrow-right","Forward")+N("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>"+_e()+'<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>'+Ye()+'</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>'+Je()+'<button type="button" data-action="end">End browser</button></div></footer>',e.appendChild(r),r.querySelector('[data-action="hide"]').onclick=J,r.querySelector('[data-action="wide"]').onclick=function(){var o=!(n.get("sharedBrowserUi")||{}).wide;k({wide:o}),h()},r.querySelector('[data-action="fullscreen"]').onclick=function(){var o=!(n.get("sharedBrowserUi")||{}).fullscreen;tr(o),me("browser",o)},["back","forward","reload"].forEach(function(o){r.querySelector('[data-action="'+o+'"]').onclick=function(){m({kind:o})}}),r.querySelector("form").onsubmit=function(o){o.preventDefault(),m({kind:"navigate",url:r.querySelector("form input").value})},r.querySelector('[data-action="control"]').onclick=function(){var o=n.get("sharedBrowser");o&&f("control",{control:o.control==="user"?"agent":"user"})},r.querySelector('[data-action="end"]').onclick=function(){var o=n.get("sharedBrowser");f(o&&o.phase==="ended"?"open":"end",o&&o.phase==="ended"?{incognito:o.incognito}:void 0)},Qe(r),je(r);var t=new ResizeObserver($e);t.observe(r.querySelector(".shared-browser-viewport")),ze(r.querySelector("canvas"),r.querySelector("textarea")),R()}}}function ce(){var e=n.get("sharedBrowser"),r=(n.get("sharedBrowsers")||[]).length,t=!!n.get("connected")&&!!n.get("activeSessionId"),o=n.get("connected")?n.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(a){var s=document.getElementById(a);if(s){var i=a==="shared-browser-toggle-btn"&&t&&n.get("sharedBrowserOpen")?"Hide browser":o;if(a==="shared-browser-toggle-btn"){var d=s.querySelector(".shared-browser-count");d&&(d.textContent=String(r),d.classList.toggle("hidden",r===0)),r&&(i+=" \xB7 "+r+(r===1?" tab":" tabs"))}s.classList.toggle("hidden",!Ze()),s.title=t&&e?i+" \xB7 "+e.phase:i,s.setAttribute("aria-label",i),s.setAttribute("aria-expanded",String(!!n.get("sharedBrowserOpen"))),s.disabled=!t}})}function ir(e,r,t){return t?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 dr(e,r,t,o){var a=e.querySelector(".shared-browser-control-status"),s=ir(r,t,o);a.textContent!==s&&(a.textContent=s);var i=e.querySelector('[data-action="control"]'),d=!!r&&r.control==="user",c=String(d);i.dataset.mode!==c&&(i.dataset.mode=c,i.innerHTML=v(d?"lock":"lock-open")+"<span>"+(d?"Resume shared control":"Pause Clay control")+"</span>",R()),i.title=d?"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.",i.setAttribute("aria-pressed",String(d))}function h(){ce();var e=G();if(e){Ne(e,lr,f);var r=n.get("sharedBrowser"),t=n.get("sharedBrowserUi")||{},o=n.get("connected"),a=r&&r.phase==="live",s=a&&!r.handoff&&o;e.classList.toggle("hidden",!n.get("sharedBrowserOpen")||!oe()),e.classList.toggle("shared-browser-wide",!!t.wide),e.classList.toggle("panel-fullscreen",!!t.fullscreen),e.querySelector('[data-action="wide"]').setAttribute("aria-pressed",t.wide?"true":"false"),e.querySelector('[data-action="fullscreen"]').setAttribute("aria-pressed",t.fullscreen?"true":"false"),e.querySelector(".shared-browser-phase").textContent=o?r?{starting:"Starting\u2026",live:"Live",ended:"Ended \xB7 Last frame"}[r.phase]:"Ready":"Disconnected",e.querySelector(".shared-browser-phase").dataset.live=a&&o?"true":"false",e.querySelector(".shared-browser-monitor").dataset.live=a&&o?"true":"false";var i=e.querySelector("form input");document.activeElement!==i&&(i.value=r?r.url:""),e.querySelectorAll("form input, form button").forEach(function(u){u.disabled=!s}),e.querySelector("textarea").disabled=!s,e.querySelector("canvas").style.cursor=s?"default":"not-allowed",dr(e,r,a,o),e.querySelector('[data-action="control"]').disabled=!a||!!r.handoff||!o,e.querySelector('[data-action="control"]').hidden=!a,e.querySelector('[data-action="end"]').disabled=!r||!o,e.querySelector('[data-action="end"]').textContent=r&&r.phase==="ended"?"New browser":"End browser";var d=r&&r.incognito===!1;e.querySelector(".shared-browser-cookie-mode").textContent=d?"Personal browser":"Incognito",e.querySelector(".shared-browser-cookie-mode").title=d?"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=d?"Your cookies and site storage are remembered across your Mates and browser restarts.":"Site data lasts only for this browser session.";var c=t.error||r&&r.error||"";e.querySelector(".shared-browser-error").textContent=c,e.querySelector(".shared-browser-error").classList.toggle("hidden",!c),e.querySelector(".shared-browser-empty").classList.toggle("hidden",!!(r&&r.url&&t.hasFrame)),Ge(e,r,s),O(),Fe(e,r,o),$e()}}function pe(e){var r=n.get("sharedBrowser");if(n.set({sharedBrowser:e}),!r||!e||r.id!==e.id){K(),T(),k({hasFrame:!1,error:"",decoding:!1,captionHistoryKey:null});var t=G();t&&t.querySelector("canvas").getContext("2d").clearRect(0,0,1920,1200)}else r.epoch!==e.epoch&&K()}function lr(e){var r=(n.get("sharedBrowsers")||[]).find(function(t){return t.id===e});r&&(pe(r),f("view",{visible:W()&&!document.hidden}),h())}function er(){return JSON.stringify([n.get("myUserId"),n.get("currentSlug"),n.get("projectSplitViewActiveId"),n.get("sessionOriginId"),n.get("projectSplitViewSocketGeneration")])}function rr(e){n.set({pendingBrowserOpen:null}),!f("open",e)&&n.set({pendingBrowserOpen:{context:er(),socket:q(),fields:e||{},expires:Date.now()+15e3}})}function cr(){var e=n.get("pendingBrowserOpen");if(e){if(e.context!==er()||e.socket!==q()||e.expires<Date.now()||!n.get("connected")||!n.get("sharedBrowserOpen")){n.set({pendingBrowserOpen:null});return}F()&&(n.set({pendingBrowserOpen:null}),f("open",e.fields)||n.set({pendingBrowserOpen:e}))}}function ot(e){F();var r=le("browser:"+e);if(!r)throw new Error("Enter a valid HTTP or HTTPS browser address.");if(!W())throw new Error("Clay Browser is available on desktop screens.");if(!oe())throw new Error("Browser access is unavailable in this conversation.");if(!n.get("connected"))throw new Error("Reconnect before opening this browser link.");ue(),ne(!1),Z("browser"),n.set({sharedBrowserOpen:!0}),k({error:""}),rr({url:r}),h()}function Xe(){if(F(),!(!oe()||!n.get("connected"))){ue(),Z("browser"),n.set({sharedBrowserOpen:!0});var e=n.get("sharedBrowser");e?f("view",{visible:!0}):rr(),h()}}function J(){tr(!1),me("browser",!1),n.get("savedWorkspaceApplying")||n.set({pendingBrowserOpen:null}),T(),ne(),K(),n.get("sharedBrowserOpen")&&f("view",{visible:!1}),n.set({sharedBrowserOpen:!1}),be("browser"),h()}function ur(e,r){if(!e.type||e.type.indexOf("shared_browser_")!==0)return!1;if(Me(e)||Pe()&&!r||String(e.sessionId)!==String(Be()||n.get("activeSessionId"))||De(e))return!0;if(e.type==="shared_browser_state"){var t=n.get("sharedBrowser"),o=e.browsers||(e.browser?[e.browser]:[]);n.set({sharedBrowsers:o});var a=!e.focus&&t&&o.find(function(u){return u.id===t.id});a=a||e.browser||o[0]||null,pe(a),n.set({savedViewBrowserListReady:!0}),e.present&&oe()&&(ue(),Z("browser"),n.set({sharedBrowserOpen:!0})),n.get("sharedBrowserOpen")&&a&&f("view",{visible:W()&&!document.hidden}),h()}else if(e.type==="shared_browser_error")k({error:e.error}),h();else if(e.type==="shared_browser_frame"){var s=n.get("sharedBrowser");if(!W()||!n.get("sharedBrowserOpen")||!s||s.id!==e.browserId||(n.get("sharedBrowserUi")||{}).decoding)return!0;var i=n.get("activeSessionId"),d=ae();k({decoding:!0});var c=new Image;c.onload=function(){var u=n.get("sharedBrowser");if(u&&u.id===e.browserId&&ae()===d&&n.get("activeSessionId")===i&&G()){var p=G().querySelector("canvas");p.width=c.naturalWidth,p.height=c.naturalHeight,p.getContext("2d").drawImage(c,0,0),k({decoding:!1,hasFrame:!0}),h(),Ce(e,p,null,p)}},c.onerror=function(){ae()===d&&n.get("activeSessionId")===i&&k({decoding:!1})},c.src="data:image/jpeg;base64,"+e.data}return!0}function st(){He(ur,function(t){var o=n.get("savedWorkspaceApplying");n.set({savedWorkspaceApplying:!0,savedViewBrowserListReady:!1});try{K(),pe(null),n.set({sharedBrowsers:[],sharedBrowserUi:{},sharedBrowserSettings:{}}),t||J(),h()}finally{n.set({savedWorkspaceApplying:o})}}),document.addEventListener("clay-pane-ready",function(){queueMicrotask(cr)},!0),ke();var e=document.getElementById("shared-browser-btn");e&&(e.onclick=Xe);var r=document.getElementById("shared-browser-toggle-btn");r&&(r.onclick=function(){n.get("sharedBrowserOpen")?J():Xe()}),window.matchMedia("(min-width: 1024px)").addEventListener("change",function(){W()||J(),ce()}),document.addEventListener("visibilitychange",function(){n.get("sharedBrowserOpen")&&f("view",{visible:!document.hidden&&W()})}),R(),ce(),n.get("connected")&&f("state_request")}Ae("browser",J);n.subscribe(function(e,r){if(e.currentSlug!==r.currentSlug||e.activeSessionId!==r.activeSessionId||e.myUserId!==r.myUserId){if(Be()!==null){h();return}K(),be("browser"),n.set({sharedBrowser:null,sharedBrowsers:[],savedViewBrowserListReady:!1,sharedBrowserOpen:!1,sharedBrowserUi:{},sharedBrowserSettings:{}}),e.connected&&f("state_request"),h()}else e.connected!==r.connected?(n.set({savedViewBrowserListReady:!1}),e.connected&&f("state_request"),h()):(e.permissions!==r.permissions||e.dmMode!==r.dmMode)&&(oe()||J(),ce())});function at(e){if(Se()&&!F())return"pending";if(!n.get("savedViewBrowserListReady"))return f("state_request"),"pending";if(!n.get("connected")||!n.get("controlRuntimeId"))return"pending";ue();var r=(n.get("sharedBrowsers")||[]).find(function(o){return o.id===e.id&&o.phase!=="ended"}),t=r&&e.runtimeId===n.get("controlRuntimeId")&&e.sessionOriginId===n.get("sessionOriginId");return Z("browser"),n.set({sharedBrowserOpen:!0}),t?(pe(r),f("view",{visible:!0}),k({error:""}),h(),"restored"):(k({error:"This saved browser is unavailable in the current conversation. No replacement browser was opened."}),h(),"unavailable")}function tr(e){k({fullscreen:!!e}),document.getElementById("shared-browser-panel")&&h()}export{gr as a,m as b,ot as c,Xe as d,J as e,ur as f,st as g,at as h,tr as i,Sr as j,or as k,Er as l};
@@ -0,0 +1,2 @@
1
+ import{d as u}from"./chunk-EGCR2MH4.js";var w={"project-logs":{id:"project-logs-panel",label:"Logs",icon:"notebook-text",open:"openProjectLogs",load:function(){return import("./chunk-KJN6KGEN.js")}},you:{id:"you-panel",label:"Me",icon:"user",open:"openYou",load:function(){return import("./chunk-Y77DR2RU.js")}},issues:{id:"issues-panel",label:"Issues",icon:"circle-dot",open:"openIssues",load:function(){return import("./chunk-NRP4NXVZ.js")}},linear:{id:"linear-panel",label:"Linear",icon:"list-todo",open:"openLinear",load:function(){return import("./chunk-EYJZ3R7Y.js")}},"notes-browser":{id:"notes-browser",label:"Sticky Notes",icon:"sticky-note",open:"openNotesBrowser",load:function(){return import("./chunk-AFATDM32.js")}},"scheduled-tasks":{id:"scheduled-tasks-panel",label:"Scheduled Tasks",icon:"calendar-clock",open:"openScheduledTasks",load:function(){return import("./chunk-NRC5RDIL.js")}},debates:{id:"debates-workbench",label:"Debates",icon:"messages-square",open:"openDebatesWorkbench",load:function(){return import("./chunk-ET4NUBYW.js")}},"mcp-skills":{id:"mcp-skills-workbench",label:"MCP / Skills",icon:"blocks",open:"openMcpSkillsWorkbench",load:function(){return import("./chunk-4REWYEXI.js")}},"mate-knowledge":{id:"mate-knowledge-workbench",label:"Knowledge",icon:"book-open",open:"openKnowledgeWorkbench",load:function(){return import("./chunk-YBYNU4VI.js")}},wireframe:{id:"wireframe-panel",label:"Sketch",icon:"panels-top-left",open:"restoreWireframeWorkbench",load:function(){return import("./chunk-KZ3CYS5U.js")}}};function Q(e,r){var i=w[e],t=i&&document.getElementById(i.id);if(!(!t||t.classList.contains("panel-fullscreen")===r)){var n=t.querySelector('header button[aria-label*="fullscreen"], header button[title*="fullscreen"]');n?n.click():t.classList.toggle("panel-fullscreen",r)}}var R=8,_=.05,U=.95,fe=["balanced","columns","rows","grid","main-left","main-right"];function p(e){return!e||typeof e!="object"?[]:Object.prototype.hasOwnProperty.call(e,"id")?[e.id]:p(e.left).concat(p(e.right))}function Oe(e,r){var i=p(e),t=!0;function n(o,a){return!o||typeof o!="object"||a>R?!1:Object.prototype.hasOwnProperty.call(o,"id")?Object.keys(o).length===1&&P(o.id):Object.keys(o).sort().join(",")!=="axis,left,ratio,right"||["horizontal","vertical"].indexOf(o.axis)===-1||typeof o.ratio!="number"||!Number.isFinite(o.ratio)||o.ratio<_||o.ratio>U?!1:n(o.left,a+1)&&n(o.right,a+1)}return t=(e===null||n(e,0))&&i.length>=0&&i.length<=R&&new Set(i).size===i.length,t&&r&&(t=Array.isArray(r)&&r.length===i.length&&r.every(function(o){return i.indexOf(o)!==-1})),{ok:t,ids:i}}function P(e){return typeof e=="string"&&e.length>0&&e.length<=128&&/^[A-Za-z0-9_-]+$/.test(e)}function h(e){return{id:e}}function ee(e,r,i){if(!P(e)||!P(r)||["left","right","top","bottom"].indexOf(i)===-1||e===r)throw new TypeError("Pair layout requires two distinct session origins and a valid position");var t=i==="left"||i==="top";return{axis:i==="top"||i==="bottom"?"vertical":"horizontal",ratio:.5,left:h(t?r:e),right:h(t?e:r)}}function S(e,r){return e.length===1?h(e[0]):{axis:r,ratio:1/e.length,left:h(e[0]),right:S(e.slice(1),r)}}function A(e){if(e.length<=2)return S(e,"horizontal");var r=Math.ceil(e.length/2);return{axis:"vertical",ratio:r/e.length,left:S(e.slice(0,r),"horizontal"),right:S(e.slice(r),"horizontal")}}function Y(e,r){if(!Array.isArray(e)||e.length>R||e.some(function(t){return!P(t)})||new Set(e).size!==e.length)throw new TypeError("Preset input must contain zero to eight unique session origins");if(fe.indexOf(r)===-1)throw new TypeError("Unknown Split view preset");if(!e.length)return null;if(e.length===1)return h(e[0]);if(r==="columns")return S(e,"horizontal");if(r==="rows")return S(e,"vertical");if(r==="grid")return A(e);if(r==="main-left"||r==="main-right"){var i=e.length===2?.5:.6666666666666666;return r==="main-left"?{axis:"horizontal",ratio:i,left:h(e[0]),right:A(e.slice(1))}:{axis:"horizontal",ratio:1-i,left:A(e.slice(1)),right:h(e[0])}}return e.length<=3?{axis:"horizontal",ratio:.55,left:h(e[0]),right:S(e.slice(1),"vertical")}:A(e)}function C(e,r){if(!e||typeof e!="object")return e;if(Object.prototype.hasOwnProperty.call(e,"id"))return e.id===r?null:e;var i=C(e.left,r),t=C(e.right,r);return i?t?i===e.left&&t===e.right?e:{axis:e.axis,ratio:e.ratio,left:i,right:t}:i:t}function D(e,r,i,t,n){if(!e||typeof e!="object")return{tree:e,found:!1};if(Object.prototype.hasOwnProperty.call(e,"id")){if(e.id!==i)return{tree:e,found:!1};var o=t==="left"||t==="right",a=t==="left"||t==="top",l={axis:o?"horizontal":"vertical",ratio:a?n:1-n,left:a?h(r):e,right:a?e:h(r)};return{tree:l,found:!0}}var f=D(e.left,r,i,t,n);if(f.found)return{tree:{axis:e.axis,ratio:e.ratio,left:f.tree,right:e.right},found:!0};var s=D(e.right,r,i,t,n);return s.found?{tree:{axis:e.axis,ratio:e.ratio,left:e.left,right:s.tree},found:!0}:{tree:e,found:!1}}function Se(e,r,i,t,n){var o=["left","right","top","bottom"],a=n===void 0?.5:n;if(!P(r)||!P(i))return{ok:!1,tree:e,reason:"invalid-id"};if(o.indexOf(t)===-1)return{ok:!1,tree:e,reason:"invalid-position"};if(typeof a!="number"||!Number.isFinite(a)||a<_||a>U)return{ok:!1,tree:e,reason:"invalid-share"};if(r===i)return{ok:!0,tree:e,changed:!1};if(!e)return{ok:!1,tree:e,reason:"unknown-target"};var l=p(e);if(l.indexOf(i)===-1)return{ok:!1,tree:e,reason:"unknown-target"};var f=l.indexOf(r)!==-1;if(!f&&l.length>=R)return{ok:!1,tree:e,reason:"limit"};var s=f?C(e,r):e,g=D(s,r,i,t,a);return g.found?{ok:!0,tree:g.tree,changed:!0}:{ok:!1,tree:e,reason:"unknown-target"}}function re(e,r,i){var t=p(e);if(r===i)return{ok:t.indexOf(r)!==-1,tree:e,changed:!1,reason:t.indexOf(r)===-1?"unknown-id":null};if(t.indexOf(r)===-1||t.indexOf(i)===-1)return{ok:!1,tree:e,changed:!1,reason:"unknown-id"};function n(o){return Object.prototype.hasOwnProperty.call(o,"id")?h(o.id===r?i:o.id===i?r:o.id):{axis:o.axis,ratio:o.ratio,left:n(o.left),right:n(o.right)}}return{ok:!0,tree:n(e),changed:!0}}function Pe(e,r,i){if(typeof i!="number"||!Number.isFinite(i)||i<_||i>U||!Array.isArray(r))return null;function t(n,o){if(!n||Object.prototype.hasOwnProperty.call(n,"id"))return null;if(o===r.length)return{axis:n.axis,ratio:i,left:n.left,right:n.right};var a=r[o];if(a!=="left"&&a!=="right")return null;var l=t(n[a],o+1);return l?{axis:n.axis,ratio:n.ratio,left:a==="left"?l:n.left,right:a==="right"?l:n.right}:null}return t(e,0)}function We(e,r,i){var t=["left","right","top","bottom","top-left","top-right","bottom-left","bottom-right","left-third","right-third"];if(t.indexOf(i)===-1)return{ok:!1,tree:e,reason:"invalid-position"};var n=p(e),o=n.filter(function(m){return m!==r});if(!P(r)||n.indexOf(r)===-1)return{ok:!1,tree:e,reason:"unknown-source"};if(!o.length)return{ok:!1,tree:e,reason:"insufficient-windows"};var a=Y(o,"balanced");if(i==="left-third"||i==="right-third"){var l=i==="left-third";return{ok:!0,tree:l?{axis:"horizontal",ratio:1/3,left:h(r),right:a}:{axis:"horizontal",ratio:2/3,left:a,right:h(r)}}}if(i.indexOf("-")!==-1){if(o.length<2)return{ok:!1,tree:e,reason:"quarter-requires-three"};var f=i.indexOf("top-")===0,s=i.slice(-4)==="left",g=o[0],c=Y(o.slice(1),"balanced"),d=f?{axis:"vertical",ratio:.5,left:h(r),right:h(g)}:{axis:"vertical",ratio:.5,left:h(g),right:h(r)};return{ok:!0,tree:s?{axis:"horizontal",ratio:.5,left:d,right:c}:{axis:"horizontal",ratio:.5,left:c,right:d}}}var b=i==="left"||i==="right",v=i==="left"||i==="top";return{ok:!0,tree:{axis:b?"horizontal":"vertical",ratio:.5,left:v?h(r):a,right:v?a:h(r)}}}function Ee(e,r,i,t){var n={},o=[],a=Number.isFinite(t)&&t>=0?t:7;function l(f,s,g){if(f){if(Object.prototype.hasOwnProperty.call(f,"id")){n[f.id]=s;return}var c=f.axis==="horizontal",d=Math.max(0,(c?s.width:s.height)-a),b=d*f.ratio,v=c?s.x+b:s.y+b,m=c?{x:v,y:s.y,width:a,height:s.height}:{x:s.x,y:v,width:s.width,height:a};o.push({path:g.slice(),axis:f.axis,rect:m,branchRect:s,ratio:f.ratio,available:d});var L=c?{x:s.x,y:s.y,width:b,height:s.height}:{x:s.x,y:s.y,width:s.width,height:b},x=c?{x:v+a,y:s.y,width:d-b,height:s.height}:{x:s.x,y:v+a,width:s.width,height:d-b};l(f.left,L,g.concat("left")),l(f.right,x,g.concat("right"))}}return l(e,{x:0,y:0,width:r,height:i},[]),{panes:n,dividers:o}}function z(){return(u.get("projectSplitViews")||[]).find(function(e){return e.id===u.get("projectSplitViewActiveId")})||null}function ne(e){return e&&JSON.stringify([u.get("myUserId")||null,u.get("currentSlug"),u.get("currentProjectOwnerId"),u.get("projectSplitViewSocketGeneration"),e.id])}function de(e){return JSON.parse(JSON.stringify(e))}function W(e,r){if(!e)return null;if(e.id)return r[e.id]?{id:r[e.id]}:null;var i=W(e.left,r),t=W(e.right,r);return i?t?{axis:e.axis,ratio:e.ratio,left:i,right:t}:i:t}function I(e){return e.kind==="workbench"?e.resource.name:e.kind==="file"?"file-"+e.instanceId:e.kind}function ge(e){var r=Object.create(null);return e.panes.forEach(function(i){r[i.instanceId]=i.kind==="session"?i.resource.originId:"tool-"+I(i)}),W(e.tree,r)}function te(e){var r=Object.create(null);return e.panes.forEach(function(i){i.kind==="session"&&(r[i.instanceId]=i.resource.originId)}),W(e.tree,r)}function he(e,r){var i=Object.create(null);return e.panes.forEach(function(t){i[t.kind==="session"?t.resource.originId:"tool-"+I(t)]=t.instanceId}),W(r,i)}function Le(e,r){var i=r.instanceId,t=oe(),n=Object.create(null);e.panes.forEach(function(o){n[o.instanceId]=o.instanceId===i?t:o.instanceId}),e.tree=W(e.tree,n),e.activePaneId===i&&(e.activePaneId=t),r.instanceId=t}function oe(){return"pane-"+crypto.randomUUID()}function ie(e,r,i){var t=de(e||{version:1,panes:[],tree:null,activePaneId:null}),n=p(r),o=ge(t);t.panes=t.panes.filter(function(c){return c.kind!=="session"||n.indexOf(c.resource.originId)>=0}),n.forEach(function(c){t.panes.some(function(d){return d.kind==="session"&&d.resource.originId===c})||t.panes.push({instanceId:oe(),kind:"session",open:!0,placement:"docked",resource:{originId:c}})}),t.linkedPair&&(n.indexOf(t.linkedPair.driverOriginId)<0||n.length+t.linkedPair.workerOrigins.length>8)&&delete t.linkedPair;var a=[];function l(c){!c||c.id||(c.left.id&&c.left.id.indexOf("tool-")===0?a.push({id:c.left.id,target:p(c.right)[0],axis:c.axis,ratio:c.ratio,before:!0}):c.right.id&&c.right.id.indexOf("tool-")===0&&a.push({id:c.right.id,target:p(c.left)[0],axis:c.axis,ratio:c.ratio,before:!1}),l(c.left),l(c.right))}l(o);var f=r;function s(c,d){return c&&(c.id?c.id===d.target?{axis:d.axis,ratio:d.ratio,left:d.before?{id:d.id}:c,right:d.before?c:{id:d.id}}:c:{axis:c.axis,ratio:c.ratio,left:s(c.left,d),right:s(c.right,d)})}a.reverse().forEach(function(c){f=s(f,c)}),t.panes.filter(function(c){return c.kind!=="session"&&c.open&&c.placement==="docked"}).forEach(function(c){var d="tool-"+I(c);p(f).indexOf(d)<0&&(f=f?{axis:"horizontal",ratio:.66,left:f,right:{id:d}}:{id:d})}),t.tree=he(t,f);var g=t.panes.find(function(c){return c.kind==="session"&&c.resource.originId===i})||t.panes.find(function(c){return c.open});return t.activePaneId=g?g.instanceId:null,t.presentation&&(n.indexOf(t.presentation.focusedSessionOriginId)<0&&(t.presentation.focusedSessionOriginId=null),t.panes.some(function(c){return c.open&&c.instanceId===t.presentation.expandedPaneId})||(t.presentation.expandedPaneId=null)),t}function ze(e,r){var i=u.snap(),t=i.projectSplitViews||[],n=t.find(function(s){return s.id===(r.id||r.sourceViewId)});if(r.accountId=i.myUserId||null,r.projectSlug=i.currentSlug,n&&(r.expectedViewRevision=n.revision),(e==="project_split_view_create"||e==="project_split_view_update")&&(r.workspace||(r.workspace=ie(n&&n.workspace,r.tree,r.activeSessionOriginId)),r.tree=te(r.workspace),r.active=r.active!==!1),e==="project_split_view_move"){var o=t.find(function(s){return s.id===r.targetViewId});r.expectedTargetViewRevision=o&&o.revision,r.targetWorkspace=ie(o&&o.workspace,r.tree,r.activeSessionOriginId);var a=n&&n.workspace.panes.find(function(s){return s.kind==="session"&&s.resource.originId===r.sourceSessionOriginId}),l=r.targetWorkspace.panes.find(function(s){return s.kind==="session"&&s.resource.originId===r.sourceSessionOriginId});if(a&&l){var f=Object.create(null);r.targetWorkspace.panes.forEach(function(s){f[s.instanceId]=s===l?a.instanceId:s.instanceId}),r.targetWorkspace.tree=W(r.targetWorkspace.tree,f),r.targetWorkspace.activePaneId===l.instanceId&&(r.targetWorkspace.activePaneId=a.instanceId),l.instanceId=a.instanceId}r.tree=te(r.targetWorkspace),r.active=!0}return r}function N(){document.dispatchEvent(new CustomEvent("clay-workspace-changed"))}function B(e,r){if(!r||e.classList.contains("tool-pane-material"))return;function i(){if(!(!e.isConnected||!r.getClientRects().length)){var n=r.offsetTop+r.offsetHeight,o=Math.max(0,n)+"px";e.style.getPropertyValue("--tool-pane-body-top")!==o&&e.style.setProperty("--tool-pane-body-top",o)}}i(),e.classList.add("tool-pane-material");var t=typeof ResizeObserver=="function"?new ResizeObserver(i):null;t?(t.observe(r),t.observe(e)):window.addEventListener("resize",i),e.addEventListener("clay-tool-pane-dispose",function(){t?t.disconnect():window.removeEventListener("resize",i),e.classList.remove("tool-pane-material"),e.style.removeProperty("--tool-pane-body-top")},{once:!0})}var K=null;function M(){K||(K=requestAnimationFrame(function(){K=null,lucide.createIcons()}))}function T(e,r){return r?'<span class="'+r+'"><i data-lucide="'+e+'"></i></span>':'<i data-lucide="'+e+'"></i>'}function ae(e,r,i){var t=w[r];if(!t||!i)return;function n(o,a,l,f){var s=i.querySelector(a);if(!s){s=document.createElement("button"),s.type="button",s.setAttribute("aria-label",l),s.setAttribute("data-tip",l),s.setAttribute("aria-pressed",String(o==="wide"&&!!((u.get("workbenchWindowStates")||{})[r]||{}).wide)),s.innerHTML=T(f);var g=i.querySelector('button[aria-label^="Close"]');i.insertBefore(s,g||null),s.addEventListener("click",function(){if(o==="fullscreen")e.classList.toggle("panel-fullscreen");else{var c=u.get("workbenchWindowStates")||{},d=c[r]||{},b=!d.wide;u.set({workbenchWindowStates:Object.assign({},c,{[r]:Object.assign({},d,{wide:b})})}),s.setAttribute("aria-pressed",String(b))}})}return s.dataset.workbenchWindow=o,s}n("wide",'button[aria-label^="Widen"]',"Widen "+t.label,"chevrons-left-right"),n("fullscreen",'button[aria-label*="fullscreen"]',"Toggle "+t.label+" fullscreen","maximize-2"),G(e,i)}function G(e,r){var i=e.classList.contains("panel-fullscreen"),t=r.querySelector('[data-workbench-window="fullscreen"]');t&&t.setAttribute("aria-pressed",String(i))}function pe(e){return e.presentation||{focusedSessionOriginId:null,expandedPaneId:null}}function De(e){var r=u.get("projectSplitViewFocusedOrigin")||null,i=u.get("savedViewExpandedOwner"),t=e.panes.find(function(n){return n.open&&n.kind!=="session"&&I(n)===i});e.presentation={focusedSessionOriginId:e.panes.some(function(n){return n.kind==="session"&&n.resource.originId===r})?r:null,expandedPaneId:t?t.instanceId:null}}function le(e,r){u.get("savedWorkspaceApplying")||!r&&u.get("savedViewExpandedOwner")!==e||(u.set({savedViewExpandedOwner:r?e:null}),N())}async function _e(e,r){var i=await Promise.all([import("./chunk-OERDYIHU.js"),import("./chunk-I5Q4CZDJ.js"),import("./chunk-W5MFUKXJ.js"),import("./chunk-MR4FHQFA.js")]),t=z();if(!u.get("connected")||u.get("savedWorkspaceLeaving")||ne(t)!==r||t.revision!==e.revision)return!1;var n=u.get("savedWorkspaceRuntime");n&&n.key===r&&(n.presentationApplied=!0);var o=pe(e.workspace),a=e.workspace.panes.find(function(l){return l.instanceId===o.expandedPaneId&&l.open});u.set({savedWorkspaceApplying:!0});try{u.set({projectSplitViewFocusedOrigin:o.focusedSessionOriginId,savedViewExpandedOwner:a?I(a):null}),i[0].setTerminalExpanded(!!a&&a.kind==="terminal"),i[1].setBrowserExpanded(!!a&&a.kind==="browser"),Object.keys(i[2].filePaneStates()).forEach(function(l){i[2].filePaneState(l)&&(i[2].updateFilePaneState(l,{expanded:!!a&&a.instanceId===l}),i[2].repaintFilePane(l))}),Object.keys(w).forEach(function(l){Q(l,!!a&&a.kind==="workbench"&&a.resource.name===l)}),i[3].renderPresentationSplitView()}finally{u.set({savedWorkspaceApplying:!1})}return!0}var F={terminal:{id:"terminal-container",label:"Terminal",icon:"terminal"},browser:{id:"shared-browser-panel",label:"Browser",icon:"globe"},"file-viewer":{id:"file-viewer",label:"Files",icon:"file-text"}};Object.assign(F,w);function se(e){return"tool-"+e}function q(e){return/^tool-file-[A-Za-z0-9_-]+$/.test(e)||Object.keys(F).some(function(r){return se(r)===e})}function be(e,r,i,t,n){if(r===i)return e;if(t==="center"&&q(r)&&q(i))return re(e,r,i).tree;t=t==="center"?"right":t;var o=C(e,r),a=!1;function l(s){if(!s)return s;if(s.id){if(s.id!==i)return s;a=!0;var g=ee(i,r,t);return g.ratio=n||.5,g}return{axis:s.axis,ratio:s.ratio,left:l(s.left),right:l(s.right)}}var f=l(o);return a&&p(f).length<=24?f:e}function ve(e,r){var i=e;return p(e).forEach(function(t){r.indexOf(t)<0&&(i=C(i,t))}),i}function J(e,r){if(!(!e||e.id)){var i=p(e.left),t=p(e.right);e.left.id&&q(e.left.id)?r.push({id:e.left.id,target:t[0],side:e.axis==="horizontal"?"left":"top",ratio:e.ratio}):e.right.id&&q(e.right.id)&&r.push({id:e.right.id,target:i[0],side:e.axis==="horizontal"?"right":"bottom",ratio:e.ratio}),J(e.left,r),J(e.right,r)}}function Je(e,r,i){var t=p(e),n=i.map(se),o=t.concat(n),a=e;if(r&&r.tree&&JSON.stringify(r.base)===JSON.stringify(e))a=ve(r.tree,o);else if(r&&r.tree){var l=[];J(r.tree,l),l.reverse().forEach(function(f){n.indexOf(f.id)>=0&&p(a).indexOf(f.target)>=0&&(a=be(a,f.id,f.target,f.side,f.ratio))})}return n.forEach(function(f){p(a).indexOf(f)<0&&(a=a?{axis:"horizontal",ratio:.66,left:a,right:{id:f}}:{id:f})}),a}function we(e,r){if(r==="terminal"){var i=u.snap(),t=(i.projectsHubList||[]).find(function(l){return l&&l.slug===i.currentSlug}),n=t&&(t.title||t.project||t.name)||i.projectName||i.currentSlug;return n?n+" \xB7 Terminal":"Terminal"}if(r==="file-viewer"){var o=e.querySelector(".file-viewer-tab.active .file-viewer-tab-label");return o&&o.textContent||"Files"}var a=u.get("sharedBrowser");try{return a&&a.url?new URL(a.url).hostname:"Browser"}catch{return"Browser"}}function Z(e,r){if(e.dataset.fileInstance){B(e,e.querySelector(":scope > .tool-pane-header"));return}if(w[r]){ke(e,r);return}var i=F[r];if(!i)return;var t=e.querySelector(":scope > .tool-pane-header");if(!t){var n=e.querySelector(r==="terminal"?".terminal-header":r==="browser"?".shared-browser-header":".file-viewer-tabbar");if(!n)return;t=document.createElement("header"),t.className="tool-pane-header split-pane-header",t.dataset.toolPane=r;var o=document.createElement("span");o.className="tool-pane-kind"+(r==="terminal"?"":" split-view-runtime"),o.innerHTML=T(i.icon)+(r==="terminal"?"":'<span class="split-view-model">'+i.label+"</span>");var a=document.createElement("span");a.className="tool-pane-title split-pane-title";var l=document.createElement("span");l.className="split-pane-drag-space",l.title="Drag to rearrange panes",l.setAttribute("aria-hidden","true");var f=n.querySelector(".terminal-header-actions, .shared-browser-window, .file-viewer-window-actions");if(t.append(o,a,l),f&&t.appendChild(f),e.insertBefore(t,e.firstChild),r==="browser"){t.classList.add("browser-pane-header");var s=e.querySelector(".shared-browser-tabs");s&&t.insertBefore(s,l),o.setAttribute("aria-label","Browser"),o.setAttribute("data-tip","Browser"),n.hidden=!0;var g=t.querySelector('[data-action="hide"]');g&&(g.title="Close browser pane",g.setAttribute("aria-label","Close browser pane"))}else n.classList.add("tool-pane-tab-row");var c=new MutationObserver(function(){d()});c.observe(e,{childList:!0,characterData:!0,subtree:!0,attributes:!0,attributeFilter:["aria-selected"]}),e.addEventListener("clay-tool-pane-dispose",function(){c.disconnect()},{once:!0}),M()}function d(){var b=we(e,r),v=t.querySelector(".tool-pane-title");v.textContent!==b&&(v.textContent=b,v.title=b)}d(),B(e,t)}u.subscribe(function(e,r){if(!(e.projectName===r.projectName&&e.projectsHubList===r.projectsHubList&&e.currentSlug===r.currentSlug)){var i=document.getElementById("terminal-container");i&&i.querySelector(":scope > .tool-pane-header")&&Z(i,"terminal")}});function ke(e,r){e.classList.add("workbench-pane-shell");var i=e.querySelector(":scope > header");if(B(e,i),!(!i||i.dataset.toolPane===r)){i.dataset.toolPane=r,i.classList.add("tool-pane-header","split-pane-header");var t=i.querySelector('[class*="window-actions"], :scope > div:last-child');t||(t=document.createElement("div"),Array.from(i.querySelectorAll(":scope > button")).forEach(function(f){var s=f.getAttribute("aria-label")||"";/^(Widen|Close)|fullscreen/i.test(s)&&t.appendChild(f)}),i.appendChild(t)),t.classList.add("workbench-pane-actions"),ae(e,r,t);var n=i.querySelector('strong, [class$="-title"]');n&&n.classList.add("tool-pane-title");var o=document.createElement("span");o.className="split-pane-drag-space",o.title="Drag to rearrange panes",o.setAttribute("aria-hidden","true"),i.insertBefore(o,t);var a=e.classList.contains("panel-fullscreen"),l=new MutationObserver(function(){G(e,t);var f=e.classList.contains("panel-fullscreen");f!==a&&(a=f,le(r,f))});l.observe(e,{attributes:!0,attributeFilter:["class"]}),e.addEventListener("clay-tool-pane-dispose",function(){l.disconnect()},{once:!0})}}function V(e,r,i){var t=document.createElement("div");if(t.className="toast",r&&t.classList.add("toast-"+r),t.textContent=e,i){var n=document.createElement("div");n.style.cssText="font-size:11px;opacity:0.7;margin-top:4px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap",n.textContent=i.split(`
2
+ `)[0],t.appendChild(n)}document.body.appendChild(t),requestAnimationFrame(function(){t.classList.add("visible")});var o=r==="warn"?5e3:1500;setTimeout(function(){t.classList.remove("visible"),setTimeout(function(){t.remove()},300)},o)}var me=/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;function nr(e){var r;if(me){var i=document.createElement("textarea");i.value=e,i.style.cssText="position:fixed;left:-9999px;opacity:0",document.body.appendChild(i),i.focus(),i.setSelectionRange(0,i.value.length),document.execCommand("copy"),document.body.removeChild(i),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(){V("Copied to clipboard")})}function or(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}var O={},E={terminal:"terminal-container",browser:"shared-browser-panel","file-viewer":"file-viewer"};Object.keys(w).forEach(function(e){E[e]=w[e].id});function ce(){var e=u.get("myUserId"),r=u.get("currentSlug");return import("./chunk-Q2HJ5CWT.js").then(function(i){return e!==u.get("myUserId")||r!==u.get("currentSlug")?!1:i.ensureWorkbenchLayoutPreference()}).catch(function(){return e!==u.get("myUserId")||r!==u.get("currentSlug")||u.set({workbenchLayoutPreference:Object.assign({},u.get("workbenchLayoutPreference")||{},{loading:!1,saving:!1,error:"Workbench layout could not be loaded. Try again."})}),!1})}function y(){return u.get("rightWorkbenchDockedOwners")||[]}function j(e){return u.get("rightWorkbenchOwner")===e||y().indexOf(e)!==-1}function $(e){var r=u.get("rightWorkbenchPanelRevisions")||{};return r[e]==null?u.get("rightWorkbenchRevision")||0:r[e]}function H(e,r,i){u.set({rightWorkbenchOwner:e,rightWorkbenchDockedOwners:r,rightWorkbenchPanelRevisions:i,rightWorkbenchRevision:(u.get("rightWorkbenchRevision")||0)+1}),N()}function X(e,r){if(j(e)){var i=y().filter(function(n){return n!==e}),t=u.get("rightWorkbenchOwner");r&&i.push(e),H(r?t:e,i,u.get("rightWorkbenchPanelRevisions")||{}),!r&&t&&t!==e&&i.indexOf(t)===-1&&O[t]&&O[t]()}}function ue(){if(!(typeof document>"u")){var e=document.getElementById("main-panels");if(e){var r=y(),i=u.get("workbenchLayoutPreference")||{};e.dataset.workbenchMode=r.length?"docked":"overlay",e.dataset.workbenchDocks=String(r.length),Object.keys(E).forEach(function(t){var n=document.getElementById(E[t]);if(n){var o=r.indexOf(t)!==-1;if(Z(n,t),n.dataset.workbenchPlacement=o?"docked":"overlay",n.dataset.workbenchActive=u.get("rightWorkbenchOwner")===t?"true":"false",!!j(t)){var a=n.querySelector(":scope > .tool-pane-header, :scope > header, :scope > .file-viewer-header .file-viewer-tabbar, :scope > .terminal-header");if(a){var l=n.querySelector(".workbench-layout-toggle");if(!l){var f=a.querySelector('[class*="window-actions"], .terminal-header-actions, .shared-browser-window, .file-viewer-window-actions, .workbench-pane-actions, :scope.mcp-skills-header > div')||a;l=document.createElement("button"),l.type="button",l.className="workbench-layout-toggle",l.addEventListener("click",function(){if(z()){X(t,y().indexOf(t)<0);return}var c=u.get("workbenchLayoutPreference")||{};if(!c.ready||c.loading||c.saving){ce();return}var d=u.get("myUserId"),b=u.get("currentSlug"),v=$(t),m=y().indexOf(t)!==-1;function L(){return l.isConnected&&j(t)&&d===u.get("myUserId")&&b===u.get("currentSlug")&&v===$(t)&&m===(y().indexOf(t)!==-1)}import("./chunk-Q2HJ5CWT.js").then(function(x){var k=u.get("workbenchLayoutPreference")||{};return!L()||k.mode!==c.mode||k.revision!==c.revision||k.loading||k.saving||!k.ready?!1:x.saveWorkbenchLayoutMode(m?"overlay":"docked")}).then(function(x){if(L()){var k=u.get("workbenchLayoutPreference")||{};x===!0&&k.ready&&k.mode===(m?"overlay":"docked")?X(t,!m):x===!1&&V(k.error||"Workbench layout could not be saved. Try again.","error")}}).catch(function(x){L()&&V(x.message||"Workbench layout could not be saved. Try again.","error")})});var s=f===a?a.querySelector("[data-knowledge-wide]"):f.firstElementChild;if(n.dataset.fileInstance){var g=f.querySelector('[data-action="pin"]');s=g&&g.nextSibling}f.insertBefore(l,s||null)}l.dataset.mode!==(o?"docked":"overlay")&&(l.dataset.mode=o?"docked":"overlay",l.innerHTML=T(o?"layers-2":"panel-right"),M()),l.setAttribute("aria-label",o?"Float workbench over sessions":"Dock workbench beside sessions"),l.title=i.error||l.getAttribute("aria-label"),l.setAttribute("aria-pressed",o?"true":"false"),l.disabled=z()?!1:!!i.loading||!!i.saving,l.setAttribute("aria-busy",i.loading||i.saving?"true":"false")}}}})}}}function gr(e,r,i){i&&(E[e]=i),!(!e||typeof r!="function")&&(O[e]=r)}function hr(e){delete O[e],e.indexOf("file-")===0&&e!=="file-viewer"&&delete E[e]}function pr(e){typeof document<"u"&&ce();var r=u.get("rightWorkbenchOwner"),i=y().slice(),t=i.indexOf(e)!==-1&&r&&i.indexOf(r)===-1?r:e,n=(u.get("rightWorkbenchRevision")||0)+1,o=Object.assign({},u.get("rightWorkbenchPanelRevisions")||{});return Object.keys(o).forEach(function(a){a!==t&&i.indexOf(a)===-1&&delete o[a]}),o[e]=n,H(t,i,o),Object.keys(O).forEach(function(a){if(!(a===e||a===t||i.indexOf(a)!==-1))try{O[a]()}catch{}}),typeof requestAnimationFrame=="function"&&requestAnimationFrame(ue),n}function br(e){if(j(e)){var r=y().filter(function(t){return t!==e}),i=Object.assign({},u.get("rightWorkbenchPanelRevisions")||{});delete i[e],H(u.get("rightWorkbenchOwner")===e?r[r.length-1]||null:u.get("rightWorkbenchOwner"),r,i)}}function vr(e,r){return j(e)&&$(e)===r}function xe(){H(null,[],{}),Object.keys(O).forEach(function(e){try{O[e]()}catch{}})}u.subscribe(function(e,r){if(e.currentSlug!==r.currentSlug||e.myUserId!==r.myUserId){xe();return}(e.projectSplitViewPending!==r.projectSplitViewPending||e.workbenchLayoutPreference!==r.workbenchLayoutPreference||e.rightWorkbenchOwner!==r.rightWorkbenchOwner||e.rightWorkbenchDockedOwners!==r.rightWorkbenchDockedOwners)&&ue()});function wr(e){X(e,!0)}function kr(e,r){if(r.defaultPrevented)return!1;var i=r.target,t=Object.keys(E).find(function(n){var o=document.getElementById(E[n]);return o&&i&&o.contains(i)});return(t||u.get("rightWorkbenchOwner"))===e}export{V as a,nr as b,or as c,M as d,T as e,p as f,Oe as g,ee as h,Y as i,C as j,Se as k,re as l,Pe as m,We as n,Ee as o,z as p,ne as q,de as r,W as s,I as t,ge as u,te as v,he as w,Le as x,oe as y,ze as z,N as A,F as B,se as C,be as D,Je as E,$ as F,gr as G,hr as H,pr as I,br as J,vr as K,xe as L,wr as M,kr as N,w as O,De as P,le as Q,_e as R};
@@ -0,0 +1 @@
1
+ import{a,b,c}from"./chunk-YHBTK56T.js";import"./chunk-R7QVVFUG.js";import"./chunk-EGCR2MH4.js";export{a as ensureWorkbenchLayoutPreference,b as saveWorkbenchLayoutMode,c as saveWorkbenchWindowLayout};
@@ -1,3 +1,3 @@
1
- import{v,y as b}from"./chunk-UVTS6GUM.js";import{G as y,I as w,J as S,d as g}from"./chunk-D3WR2TYZ.js";import{b as n}from"./chunk-VZ2OKDAO.js";function k(){return'<span class="sketch-mark" aria-hidden="true">\u270E</span><span class="sketch-wordmark">clay<span>sketch</span></span>'}function q(){return'<a class="sketch-credit" href="https://plantuml.com/salt" target="_blank" rel="noopener noreferrer">Built with PlantUML Salt <span aria-hidden="true">\u2197</span></a>'}function C(t,e){return t=String(t||""),e==="salt"&&!/@start\w+/i.test(t)?`@startsalt
1
+ import{v,y as b}from"./chunk-DTNAWMGQ.js";import{G as y,I as w,J as S,d as g}from"./chunk-OQBKX36J.js";import{d as n}from"./chunk-EGCR2MH4.js";function k(){return'<span class="sketch-mark" aria-hidden="true">\u270E</span><span class="sketch-wordmark">clay<span>sketch</span></span>'}function q(){return'<a class="sketch-credit" href="https://plantuml.com/salt" target="_blank" rel="noopener noreferrer">Built with PlantUML Salt <span aria-hidden="true">\u2197</span></a>'}function C(t,e){return t=String(t||""),e==="salt"&&!/@start\w+/i.test(t)?`@startsalt
2
2
  `+t+`
3
3
  @endsalt`:t}function p(t,e){if(t.length>8*1024*1024||!/<svg[\s>]/i.test(t))throw new Error("The renderer returned an invalid diagram.");var r=document.createElement("img");return r.alt=e||"Wireframe",r.draggable=!1,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(t),r}function h(){if(!n.get("wireframeRenderActive")){var t=(n.get("wireframeRenderQueue")||[]).slice(),e=t.shift();if(e){if(n.set({wireframeRenderQueue:t}),!e.target.isConnected){e.reject(new Error("Preview closed.")),h();return}var r=new AbortController;n.set({wireframeRenderActive:r});var i=setTimeout(function(){r.abort()},2e4);fetch("api/wireframe/render",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:e.source}),signal:r.signal,cache:"no-store"}).then(function(a){return a.text().then(function(o){if(!a.ok)throw new Error(o||"Unable to render this wireframe.");return o})}).then(function(a){if(n.get("wireframeRenderActive")!==r)throw new Error("Conversation changed.");if(p(a),a.length<5e5){var o=(n.get("wireframeRenderCache")||[]).filter(function(c){return c.source!==e.source});o.push({source:e.source,svg:a}),n.set({wireframeRenderCache:o.slice(-12)})}e.resolve(a)}).catch(function(a){e.reject(a)}).finally(function(){clearTimeout(i),n.get("wireframeRenderActive")===r&&n.set({wireframeRenderActive:null}),h()})}}}function R(t,e){if(!t.trim()||new TextEncoder().encode(t).length>1e5)return Promise.reject(new Error("Wireframes must contain between 1 byte and 100 KB of source."));var r=n.get("wireframeRenderCache")||[],i=r.find(function(a){return a.source===t});return i?Promise.resolve(i.svg):new Promise(function(a,o){var c=(n.get("wireframeRenderQueue")||[]).slice();c.push({source:t,target:e,resolve:a,reject:o}),n.set({wireframeRenderQueue:c}),h()})}n.subscribe(function(t,e){t.currentSlug===e.currentSlug&&t.activeSessionId===e.activeSessionId&&t.myUserId===e.myUserId||(e.wireframeRenderActive&&e.wireframeRenderActive.abort(),(e.wireframeRenderQueue||[]).forEach(function(r){r.reject(new Error("Conversation changed."))}),n.set({wireframeRenderActive:null,wireframeRenderQueue:[],wireframeRenderCache:[]}))});function s(){return n.get("wireframeViewports")||new Map}function d(t){var e=t.image;if(!(!e.naturalWidth||!t.viewport.isConnected||s().get(t.viewport)!==t)){var r=getComputedStyle(t.viewport),i=t.viewport.clientWidth-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight);if(!(i<=0)){var a=Math.min(1,i/e.naturalWidth);if(t.viewport.classList.contains("wireframe-workbench-canvas")){var o=t.viewport.clientHeight-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom);o>0&&(a=Math.min(a,o/e.naturalHeight))}var c=t.mode==="manual"?t.zoom:a;e.style.width=e.naturalWidth*c+"px",e.style.maxWidth="none",e.style.height="auto",e.style.margin=e.naturalWidth*c>i?"0":"0 auto",t.scale=c,t.toolbar&&(t.toolbar.querySelector("[data-zoom-value]").textContent=Math.round(c*100)+"%",t.toolbar.querySelector("[data-zoom-fit]").setAttribute("aria-pressed",String(t.mode==="fit")),t.toolbar.querySelector("[data-zoom-out]").disabled=c<=.25,t.toolbar.querySelector("[data-zoom-in]").disabled=c>=4)}}}function W(){var t=new Map(s());if(t.forEach(function(r,i){i.isConnected&&r.image.isConnected||(r.resize.disconnect(),t.delete(i))}),t.size!==s().size&&n.set({wireframeViewports:t}),!t.size){var e=n.get("wireframeViewportCleanup");e&&e.disconnect(),n.set({wireframeViewportCleanup:null})}}function x(t,e,r){var i=s().get(t);i&&i.resize.disconnect();var a={viewport:t,image:e,toolbar:r,mode:i?i.mode:"auto",zoom:i?i.zoom:1,scale:1};a.resize=new ResizeObserver(function(){d(a)});var o=new Map(s());if(o.set(t,a),n.set({wireframeViewports:o}),r){let l=function(m,E){a.mode=m,a.zoom=E,t.scrollLeft=0,t.scrollTop=0,d(a)};r.classList.add("wireframe-zoom"),r.setAttribute("role","group"),r.setAttribute("aria-label","Sketch zoom"),r.innerHTML='<button type="button" data-zoom-out aria-label="Zoom out" title="Zoom out">\u2212</button><button type="button" data-zoom-value aria-label="Reset zoom to 100%" title="Original size">100%</button><button type="button" data-zoom-in aria-label="Zoom in" title="Zoom in">+</button><button type="button" data-zoom-fit aria-pressed="true" title="Fit sketch to available width">Fit</button>',r.querySelector("[data-zoom-out]").onclick=function(){l("manual",Math.max(.25,a.scale/1.25))},r.querySelector("[data-zoom-in]").onclick=function(){l("manual",Math.min(4,Math.max(.25,a.scale*1.25)))},r.querySelector("[data-zoom-value]").onclick=function(){l("manual",1)},r.querySelector("[data-zoom-fit]").onclick=function(){l("fit",1)}}if(e.addEventListener("load",function(){d(a)},{once:!0}),a.resize.observe(t),!n.get("wireframeViewportCleanup")){var c=new MutationObserver(W);c.observe(document.body,{childList:!0,subtree:!0}),n.set({wireframeViewportCleanup:c})}d(a)}function u(){return document.getElementById("wireframe-panel")}function f(){S("wireframe"),u()&&(u().dispatchEvent(new Event("clay-tool-pane-dispose")),u().remove()),n.set({wireframeDraft:null})}function A(){var t=n.get("wireframeDraft");if(t){var e=document.createElement("a");e.href=URL.createObjectURL(new Blob([t.source],{type:"text/plain;charset=utf-8"})),e.download=(t.id||"wireframe")+".puml",e.click(),setTimeout(function(){URL.revokeObjectURL(e.href)},1e3)}}function L(t){t.preventDefault();var e=u(),r=n.get("wireframeDraft"),i=e.querySelector("form"),a=i.querySelector('[type="submit"]'),o=e.querySelector(".wireframe-save-status"),c=i.elements.path.value.trim();a.disabled=!0,o.textContent="Saving\u2026",fetch("api/wireframe/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:c,source:r.source})}).then(function(l){return l.ok?l.json():l.text().then(function(m){throw new Error(m)})}).then(function(l){n.get("wireframeDraft")===r&&(o.textContent="Saved to "+l.path,i.hidden=!0)}).catch(function(l){n.get("wireframeDraft")===r&&(o.textContent=l.message||"Unable to save the wireframe.")}).finally(function(){a.disabled=!1})}function z(){var t=document.getElementById("main-panels");if(!t)return null;var e=document.createElement("section");return e.id="wireframe-panel",e.setAttribute("aria-label","clay-sketch viewer"),e.innerHTML='<header class="wireframe-topbar"><div class="sketch-brand">'+k()+'</div><strong class="sketch-title">Sketch viewer</strong><div class="wireframe-window-actions"><button type="button" data-wide title="Widen panel" aria-label="Widen panel" aria-pressed="false"><i data-lucide="chevrons-left-right"></i></button><button type="button" data-full title="Toggle fullscreen" aria-label="Toggle fullscreen" aria-pressed="false"><i data-lucide="maximize-2"></i></button><button type="button" data-close title="Close clay-sketch" aria-label="Close clay-sketch"><i data-lucide="x"></i></button></div></header><div class="wireframe-toolbar"><div class="wireframe-zoom"></div><button type="button" data-save>Save to project</button><button type="button" data-download title="Download sketch source" aria-label="Download sketch source"><i data-lucide="download"></i></button></div><form hidden class="wireframe-save-form"><label>Project file path<input name="path" aria-label="Project file path" required pattern=".*\\.puml" placeholder="wireframe.puml"></label><button type="submit">Save</button><button type="button" data-cancel>Cancel</button></form><p class="wireframe-save-status" role="status"></p><div class="wireframe-workbench-canvas"></div><footer class="sketch-footer">'+q()+"<span>Revise through conversation</span></footer>",t.appendChild(e),e.querySelector("[data-close]").onclick=f,e.querySelector("[data-download]").onclick=A,e.querySelector("[data-save]").onclick=function(){var r=e.querySelector("form");r.hidden=!1;var i=n.get("wireframeDraft");r.elements.path.value=(i.id||"wireframe")+".puml",r.elements.path.focus()},e.querySelector("[data-cancel]").onclick=function(){e.querySelector("form").hidden=!0,e.querySelector("[data-save]").focus()},e.querySelector("form").onsubmit=L,e.addEventListener("keydown",function(r){r.key==="Escape"&&(r.stopPropagation(),e.querySelector("form").hidden?f():e.querySelector("[data-cancel]").click())}),["wide","full"].forEach(function(r){e.querySelector("[data-"+r+"]").onclick=function(){var i=e.classList.toggle(r==="wide"?"wireframe-wide":"panel-fullscreen");this.setAttribute("aria-pressed",String(i))}}),g(),e}function T(t){if(!(!t||typeof t.source!="string"||new TextEncoder().encode(t.source).length>1e5)){if(n.get("paneMode")&&window.parent!==window){v(t,"clay-pane-present-wireframe");return}w("wireframe");var e=u()||z();if(e){var r={source:C(t.source,t.language),title:String(t.title||"clay-sketch").slice(0,100),id:/^[a-zA-Z0-9_-]{1,80}$/.test(t.id||"")?t.id:"wireframe"};n.set({wireframeDraft:r}),e.querySelector("[data-save]").disabled=!1,e.querySelector("[data-download]").disabled=!1,e.querySelector("header strong").textContent=r.title,e.querySelector(".wireframe-save-status").textContent="",e.querySelector("form").hidden=!0;var i=j(r,e);b(Object.assign({},t,{source:r.source}),e.querySelector("header"),i,e.querySelector(".wireframe-workbench-canvas")),i.catch(function(){})}}}function j(t,e){var r=e.querySelector(".wireframe-workbench-canvas"),i=n.get("wireframeDraft"),a=document.createElement("p");return a.setAttribute("role","status"),a.textContent="Rendering sketch\u2026",r.replaceChildren(a),R(t.source,r).then(function(o){if(n.get("wireframeDraft")!==i||!r.isConnected)throw new DOMException("Sketch changed.","AbortError");var c=p(o,t.title);return r.replaceChildren(c),x(r,c,e.querySelector(".wireframe-zoom")),c.decode?c.decode():void 0}).catch(function(o){throw n.get("wireframeDraft")!==i||(a.textContent=o.name==="AbortError"?"Rendering was interrupted. Reopen the wireframe to retry.":o.message),o})}y("wireframe",f);n.subscribe(function(t,e){(t.currentSlug!==e.currentSlug||t.myUserId!==e.myUserId)&&f()});function J(){var t=n.get("wireframeDraft");if(t){T(t);return}var e=u()||z();e&&(w("wireframe"),e.classList.remove("hidden"),e.querySelector("[data-save]").disabled=!0,e.querySelector("[data-download]").disabled=!0,e.querySelector(".wireframe-workbench-canvas").textContent="Open a sketch to view it here.")}export{k as a,q as b,C as c,p as d,R as e,x as f,f as g,T as h,J as i};
@@ -1 +1 @@
1
- import{G as b,I as f,J as p,d as u,e as r}from"./chunk-D3WR2TYZ.js";import{b as s}from"./chunk-VZ2OKDAO.js";function c(){return s.get("mcpSkillsWorkbench")||{}}function a(e){s.set({mcpSkillsWorkbench:Object.assign({},c(),e)})}function o(){var e=s.get("permissions");return!e||e.skills!==!1}function g(){var e=document.getElementById("mcp-skills-workbench");if(e)return e;var l=document.getElementById("main-panels");return l?(e=document.createElement("section"),e.id="mcp-skills-workbench",e.className="mcp-skills-workbench hidden",e.setAttribute("aria-label","MCP / Skills"),e.innerHTML='<header class="mcp-skills-header"><strong>'+r("blocks")+'MCP / Skills</strong><div><button type="button" data-workbench="wide" aria-label="Widen MCP / Skills">'+r("chevrons-left-right")+'</button><button type="button" data-workbench="fullscreen" aria-label="Toggle MCP / Skills fullscreen">'+r("maximize-2")+'</button><button type="button" data-workbench="close" aria-label="Close MCP / Skills">'+r("x")+'</button></div></header><div class="mcp-skills-tabs" role="tablist" aria-label="MCP / Skills sections"><button id="mcp-workbench-tab" role="tab" data-section="mcp" aria-controls="mcp-modal">MCP Servers</button><button id="skills-workbench-tab" role="tab" data-section="skills" aria-controls="skills-modal">Skills</button></div>',["mcp","skills"].forEach(function(n){var t=document.getElementById(n+"-modal");if(t){var i=t.querySelector(".confirm-backdrop");i&&i.remove();var k=t.querySelector(".confirm-dialog");k&&k.classList.remove("confirm-dialog"),t.setAttribute("role","tabpanel"),t.setAttribute("aria-labelledby",n+"-workbench-tab"),e.appendChild(t)}}),l.appendChild(e),e.querySelector('[data-workbench="close"]').onclick=m,["wide","fullscreen"].forEach(function(n){e.querySelector('[data-workbench="'+n+'"]').onclick=function(){var t={};t[n]=!c()[n],a(t)}}),e.querySelectorAll("[data-section]").forEach(function(n){n.onclick=function(){d(n.dataset.section)},n.onkeydown=function(t){if(["ArrowLeft","ArrowRight","Home","End"].includes(t.key)){t.preventDefault();var i=n.dataset.section==="mcp"&&o()?"skills":"mcp";t.key==="Home"&&(i="mcp"),t.key==="End"&&o()&&(i="skills"),d(i),e.querySelector('[data-section="'+i+'"]').focus()}}}),["skills-btn","mate-skills-btn"].forEach(function(n){if(!document.getElementById(n)){var t=document.createElement("button");t.id=n,t.hidden=!0,t.onclick=function(){d("skills")},l.appendChild(t)}}),u(e),h(),e):null}function d(e){g()&&(e=e||c().tab||"mcp",e==="skills"&&!o()&&(e="mcp"),f("mcp-skills"),a({open:!0,tab:e}))}function m(){a({open:!1}),p("mcp-skills")}function h(){var e=document.getElementById("mcp-skills-workbench");if(e){var l=c(),n=l.tab||"mcp";e.classList.toggle("hidden",!l.open),e.classList.toggle("workbench-wide",!!l.wide),e.classList.toggle("panel-fullscreen",!!l.fullscreen),["wide","fullscreen"].forEach(function(t){e.querySelector('[data-workbench="'+t+'"]').setAttribute("aria-pressed",String(!!l[t]))}),e.querySelectorAll("[data-section]").forEach(function(t){var i=t.dataset.section===n;t.setAttribute("aria-selected",String(i)),t.tabIndex=i?0:-1,t.hidden=t.dataset.section==="skills"&&!o()}),["mcp","skills"].forEach(function(t){var i=document.getElementById(t+"-modal");i&&i.classList.toggle("hidden",!l.open||t!==n)})}}b("mcp-skills",m);s.subscribe(function(e,l){if(e.currentSlug!==l.currentSlug||e.myUserId!==l.myUserId||e.dmMode!==l.dmMode){m();return}if(e.permissions!==l.permissions&&!o()&&c().tab==="skills"){a({tab:"mcp"});return}(e.mcpSkillsWorkbench!==l.mcpSkillsWorkbench||e.permissions!==l.permissions)&&h()});export{g as a,d as b,m as c};
1
+ import{G as b,I as f,J as p,d as u,e as r}from"./chunk-OQBKX36J.js";import{d as s}from"./chunk-EGCR2MH4.js";function c(){return s.get("mcpSkillsWorkbench")||{}}function a(e){s.set({mcpSkillsWorkbench:Object.assign({},c(),e)})}function o(){var e=s.get("permissions");return!e||e.skills!==!1}function g(){var e=document.getElementById("mcp-skills-workbench");if(e)return e;var l=document.getElementById("main-panels");return l?(e=document.createElement("section"),e.id="mcp-skills-workbench",e.className="mcp-skills-workbench hidden",e.setAttribute("aria-label","MCP / Skills"),e.innerHTML='<header class="mcp-skills-header"><strong>'+r("blocks")+'MCP / Skills</strong><div><button type="button" data-workbench="wide" aria-label="Widen MCP / Skills">'+r("chevrons-left-right")+'</button><button type="button" data-workbench="fullscreen" aria-label="Toggle MCP / Skills fullscreen">'+r("maximize-2")+'</button><button type="button" data-workbench="close" aria-label="Close MCP / Skills">'+r("x")+'</button></div></header><div class="mcp-skills-tabs" role="tablist" aria-label="MCP / Skills sections"><button id="mcp-workbench-tab" role="tab" data-section="mcp" aria-controls="mcp-modal">MCP Servers</button><button id="skills-workbench-tab" role="tab" data-section="skills" aria-controls="skills-modal">Skills</button></div>',["mcp","skills"].forEach(function(n){var t=document.getElementById(n+"-modal");if(t){var i=t.querySelector(".confirm-backdrop");i&&i.remove();var k=t.querySelector(".confirm-dialog");k&&k.classList.remove("confirm-dialog"),t.setAttribute("role","tabpanel"),t.setAttribute("aria-labelledby",n+"-workbench-tab"),e.appendChild(t)}}),l.appendChild(e),e.querySelector('[data-workbench="close"]').onclick=m,["wide","fullscreen"].forEach(function(n){e.querySelector('[data-workbench="'+n+'"]').onclick=function(){var t={};t[n]=!c()[n],a(t)}}),e.querySelectorAll("[data-section]").forEach(function(n){n.onclick=function(){d(n.dataset.section)},n.onkeydown=function(t){if(["ArrowLeft","ArrowRight","Home","End"].includes(t.key)){t.preventDefault();var i=n.dataset.section==="mcp"&&o()?"skills":"mcp";t.key==="Home"&&(i="mcp"),t.key==="End"&&o()&&(i="skills"),d(i),e.querySelector('[data-section="'+i+'"]').focus()}}}),["skills-btn","mate-skills-btn"].forEach(function(n){if(!document.getElementById(n)){var t=document.createElement("button");t.id=n,t.hidden=!0,t.onclick=function(){d("skills")},l.appendChild(t)}}),u(e),h(),e):null}function d(e){g()&&(e=e||c().tab||"mcp",e==="skills"&&!o()&&(e="mcp"),f("mcp-skills"),a({open:!0,tab:e}))}function m(){a({open:!1}),p("mcp-skills")}function h(){var e=document.getElementById("mcp-skills-workbench");if(e){var l=c(),n=l.tab||"mcp";e.classList.toggle("hidden",!l.open),e.classList.toggle("workbench-wide",!!l.wide),e.classList.toggle("panel-fullscreen",!!l.fullscreen),["wide","fullscreen"].forEach(function(t){e.querySelector('[data-workbench="'+t+'"]').setAttribute("aria-pressed",String(!!l[t]))}),e.querySelectorAll("[data-section]").forEach(function(t){var i=t.dataset.section===n;t.setAttribute("aria-selected",String(i)),t.tabIndex=i?0:-1,t.hidden=t.dataset.section==="skills"&&!o()}),["mcp","skills"].forEach(function(t){var i=document.getElementById(t+"-modal");i&&i.classList.toggle("hidden",!l.open||t!==n)})}}b("mcp-skills",m);s.subscribe(function(e,l){if(e.currentSlug!==l.currentSlug||e.myUserId!==l.myUserId||e.dmMode!==l.dmMode){m();return}if(e.permissions!==l.permissions&&!o()&&c().tab==="skills"){a({tab:"mcp"});return}(e.mcpSkillsWorkbench!==l.mcpSkillsWorkbench||e.permissions!==l.permissions)&&h()});export{g as a,d as b,m as c};
@@ -1 +1 @@
1
- import{F as a,G as b,H as c,I as d,J as e,K as f,L as g,M as h,N as i}from"./chunk-D3WR2TYZ.js";import"./chunk-VZ2OKDAO.js";export{d as claimRightWorkbench,i as handlesWorkbenchKey,f as isRightWorkbenchCurrent,b as registerRightWorkbench,e as releaseRightWorkbench,g as resetRightWorkbench,h as restoreWorkbenchDock,a as rightWorkbenchRevisionFor,c as unregisterRightWorkbench};
1
+ import{F as a,G as b,H as c,I as d,J as e,K as f,L as g,M as h,N as i}from"./chunk-OQBKX36J.js";import"./chunk-EGCR2MH4.js";export{d as claimRightWorkbench,i as handlesWorkbenchKey,f as isRightWorkbenchCurrent,b as registerRightWorkbench,e as releaseRightWorkbench,g as resetRightWorkbench,h as restoreWorkbenchDock,a as rightWorkbenchRevisionFor,c as unregisterRightWorkbench};
@@ -0,0 +1 @@
1
+ import{pa as a,qa as b,ra as c,sa as d,ta as e,ua as f,va as g,wa as h,xa as i,ya as j,za as k}from"./chunk-W7XXER5Z.js";import"./chunk-TVKTFEST.js";import"./chunk-YHBTK56T.js";import"./chunk-OGIHAXLD.js";import"./chunk-QOL6PHMZ.js";import"./chunk-DTNAWMGQ.js";import"./chunk-R7QVVFUG.js";import"./chunk-OQBKX36J.js";import"./chunk-EGCR2MH4.js";export{g as actOnFilePane,f as closeFilePane,b as filePaneState,a as filePaneStates,h as mountFilePane,i as openIndependentFile,e as repaintFilePane,k as resetFilePanes,j as routeFilePaneMessage,d as sendFilePaneRequest,c as updateFilePaneState};