sgiant-ai-widget 1.12.0 → 1.12.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"mark-chrome-launcher.d.ts","sourceRoot":"","sources":["../src/mark-chrome-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQlD,CAAC"}
1
+ {"version":3,"file":"mark-chrome-launcher.d.ts","sourceRoot":"","sources":["../src/mark-chrome-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAclD,CAAC"}
@@ -33,7 +33,13 @@ export const CHROME_LAUNCHER = {
33
33
  "launcher-icon": "56px",
34
34
  "launcher-lift": "0%",
35
35
  "launcher-parked-icon": "40px",
36
- "launcher-pill-icon": "30px",
36
+ // 36 in a 48px pill, not 30. The pebble gives this mark the WHOLE button
37
+ // (56 in 56) because it has no disc to sit inside; the pill was quietly
38
+ // giving it 62% and the head read as small next to the word beside it —
39
+ // reported from sgiant's own UI, which is the only place the pill ships.
40
+ // The ratio the comment above asks to hold is the one between STATES, and
41
+ // 30 was not holding it.
42
+ "launcher-pill-icon": "36px",
37
43
  "launcher-bg": "transparent",
38
44
  "launcher-shadow": "none",
39
45
  "launcher-fg": "currentColor",
@@ -1 +1 @@
1
- {"version":3,"file":"mark-chrome-launcher.js","sourceRoot":"","sources":["../src/mark-chrome-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,IAAI;IACrB,sBAAsB,EAAE,MAAM;IAC9B,oBAAoB,EAAE,MAAM;IAC5B,aAAa,EAAE,aAAa;IAC5B,iBAAiB,EAAE,MAAM;IACzB,aAAa,EAAE,cAAc;CAC9B,CAAC"}
1
+ {"version":3,"file":"mark-chrome-launcher.js","sourceRoot":"","sources":["../src/mark-chrome-launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,IAAI;IACrB,sBAAsB,EAAE,MAAM;IAC9B,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,0EAA0E;IAC1E,yBAAyB;IACzB,oBAAoB,EAAE,MAAM;IAC5B,aAAa,EAAE,aAAa;IAC5B,iBAAiB,EAAE,MAAM;IACzB,aAAa,EAAE,cAAc;CAC9B,CAAC"}
@@ -1,3 +1,3 @@
1
- /*! sgiant-ai-widget 1.12.0 — MIT — https://vedatugur.github.io/sgiant-ai-widget/ */
1
+ /*! sgiant-ai-widget 1.12.1 — MIT — https://vedatugur.github.io/sgiant-ai-widget/ */
2
2
  "use strict";var SgiantAiWidgetCharts=(()=>{var x=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var $=(e,t)=>{for(var n in t)x(e,n,{get:t[n],enumerable:!0})},R=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of S(t))!v.call(e,o)&&o!==n&&x(e,o,{get:()=>t[o],enumerable:!(a=C(t,o))||a.enumerable});return e};var E=e=>R(x({},"__esModule",{value:!0}),e);var j={};$(j,{createChartFallback:()=>N});var M="http://www.w3.org/2000/svg";function u(e,t={}){let n=document.createElementNS(M,e);for(let[a,o]of Object.entries(t))n.setAttribute(a,String(o));return n}function m(e,t){if(t&&typeof e[t]=="number")return Number(e[t]);let n=Object.keys(e).filter(a=>typeof e[a]=="number");return n.length?Number(e[n[n.length-1]]):0}function A(e,t){let n=(t!==void 0&&e[t]!==void 0?e[t]:void 0)??e.label??Object.values(e)[0];return n==null?"":String(n)}function G(){try{return matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}function b(e,t,n,a,o){e.appendChild(u("animate",{attributeName:t,from:n,to:a,dur:"0.6s",begin:`${o}s`,fill:"freeze"}))}function T(e,t,n,a,o){let l=Math.max(...e.map(r=>m(r,a)),1),s=u("svg",{viewBox:`0 0 320 ${t}`,width:"100%",role:"img"}),i=(320-22*2)/Math.max(e.length,1);return e.forEach((r,d)=>{let h=(t-44)*m(r,a)/l,f=22+d*i+4,p=Math.max(i-8,2),w=u("rect",{x:f,y:n?t-22:t-22-h,width:p,height:n?0:h,rx:3,fill:"var(--aiw-accent)"});n&&(b(w,"height",0,h,d*.07),b(w,"y",t-22,t-22-h,d*.07)),s.appendChild(w);let y=u("text",{x:f+p/2,y:t-6,"text-anchor":"middle","font-size":9,fill:"var(--aiw-muted)"});y.textContent=A(r,o).slice(0,9),s.appendChild(y)}),s}function k(e,t,n,a,o,c){return e.map((g,l)=>{let s=a+l*(t-a*2)/Math.max(e.length-1,1),i=n-a-(n-a*2)*m(g,c)/o;return`${s},${i}`}).join(" ")}function V(e,t,n,a,o){let l=Math.max(...[...e,...t??[]].map(r=>m(r,o)),1),s=u("svg",{viewBox:`0 0 320 ${n}`,width:"100%",role:"img"});t?.length&&s.appendChild(u("polyline",{points:k(t,320,n,22,l,o),fill:"none",stroke:"var(--aiw-muted)","stroke-width":1.5,"stroke-dasharray":"4 4",opacity:.7}));let i=u("polyline",{points:k(e,320,n,22,l,o),fill:"none",stroke:"var(--aiw-accent)","stroke-width":2.5,"stroke-linecap":"round","stroke-linejoin":"round"});return s.appendChild(i),a&&requestAnimationFrame(()=>{let r=typeof i.getTotalLength=="function"?i.getTotalLength():0;r&&(i.setAttribute("stroke-dasharray",String(r)),i.setAttribute("stroke-dashoffset",String(r)),b(i,"stroke-dashoffset",r,0,0))}),s}function W(e,t,n){let c=2*Math.PI*46,g=e.reduce((i,r)=>i+m(r,n),0)||1,l=u("svg",{viewBox:"0 0 140 140",width:"100%",height:150,role:"img"}),s=0;return e.forEach((i,r)=>{let d=m(i,n)/g,h=u("circle",{cx:140/2,cy:140/2,r:46,fill:"none",stroke:r===0?"var(--aiw-accent)":"var(--aiw-muted)",opacity:r===0?1:Math.max(.8-r*.22,.25),"stroke-width":16,"stroke-dasharray":t?`0 ${c}`:`${c*d} ${c}`,"stroke-dashoffset":-c*s,transform:`rotate(-90 ${140/2} ${140/2})`});t&&b(h,"stroke-dasharray",`0 ${c}`,`${c*d} ${c}`,r*.12),l.appendChild(h),s+=d}),l}var O={time_series:"line",line:"line",breakdown:"bars",bar:"bars",donut:"donut",pie:"donut"};function N(e={}){let{animate:t=!0,height:n=140}=e;return function(o,c,g,l){let s=c??{},i=Array.isArray(g)?g:[],r=O[String(s.chartType??"")];if(!r||!i.length)throw new Error(`sgiant-ai-widget/charts does not draw "${String(s.chartType)}" \u2014 falling through to the built-in renderer.`);let d=s.metrics?.[0],h=t&&!G(),f=document.createElement("div");if(s.title){let p=document.createElement("div");p.textContent=s.title,p.style.cssText="font-size:var(--aiw-font-xs,11px);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--aiw-muted,#6e6e6e);margin-bottom:6px",f.appendChild(p)}f.appendChild(r==="line"?V(i,Array.isArray(l)?l:void 0,n,h,d):r==="donut"?W(i,h,d):T(i,n,h,d,s.dimension)),o.appendChild(f)}}return E(j);})();
3
3
  //# sourceMappingURL=sgiant-ai-widget-charts.global.js.map
@@ -1,4 +1,4 @@
1
- /*! sgiant-ai-widget 1.12.0 — MIT — https://vedatugur.github.io/sgiant-ai-widget/ */
1
+ /*! sgiant-ai-widget 1.12.1 — MIT — https://vedatugur.github.io/sgiant-ai-widget/ */
2
2
  "use strict";var SgiantAiWidget=(()=>{var ci=Object.defineProperty;var ns=Object.getOwnPropertyDescriptor;var is=Object.getOwnPropertyNames;var as=Object.prototype.hasOwnProperty;var rs=(t,i)=>{for(var o in i)ci(t,o,{get:i[o],enumerable:!0})},os=(t,i,o,d)=>{if(i&&typeof i=="object"||typeof i=="function")for(let p of is(i))!as.call(t,p)&&p!==o&&ci(t,p,{get:()=>i[p],enumerable:!(d=ns(i,p))||d.enumerable});return t};var ss=t=>os(ci({},"__esModule",{value:!0}),t);var js={};rs(js,{CHROME_LAUNCHER:()=>ro,CHROME_MARK:()=>ao,KNOWN_UI_STATUSES:()=>Ti,OPEN_ASSISTANT_EVENT:()=>Bs,OPERATE_ACTIONS:()=>wn,PREFIX:()=>e,STANDARD_ACTION_PATHS:()=>zt,UI_CONTROL_ACTIONS:()=>vn,UI_SAY_ACTION:()=>Wt,WIDGET_CONDITIONAL_TARGETS:()=>ar,WIDGET_LABELS:()=>Ve,WIDGET_MANIFEST:()=>ir,WIDGET_SURFACE:()=>mi,WIDGET_TARGETS:()=>ae,broadcastAiChange:()=>hr,buildThreadReplay:()=>io,clearHighlight:()=>Ft,createAiChatWidget:()=>Ds,createHostActions:()=>nr,gateNavigationTarget:()=>Hn,genericProposalSummary:()=>Sn,isKnownNavTarget:()=>_t,isNavigationAction:()=>yn,isOperateAction:()=>We,isUiControlAction:()=>lt,makePageContext:()=>tr,matchManifest:()=>bi,normalizeUiSpec:()=>Tn,parseJsonDirective:()=>de,resolveWidgetLabels:()=>Kr,scanAiTargets:()=>ui,subscribeAiChange:()=>An,subscribeLiveSync:()=>fr,uiSpecMediaIds:()=>Cn});var vn=["highlight","scroll-to","focus-field"];function lt(t){return vn.includes(t)}function ls(t){return t.replace(/["\\]/g,"\\$&")}function Va(t){if(typeof document>"u")return null;let i=document.querySelector(`[data-ai-target="${ls(t)}"]`);return i&&i.isConnected?i:null}function ds(t){let i=t.getAttribute("aria-label"),o=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t.placeholder:"";return(i||t.textContent||o||"").trim().replace(/\s+/g," ").slice(0,60)}function ui(t=40){if(typeof document>"u")return[];let i=[],o=new Set,d=document.querySelectorAll("[data-ai-target]");for(let p of Array.from(d)){let s=p.getAttribute("data-ai-target");if(!(!s||o.has(s))){if(!p.isConnected||p.offsetParent===null){let a=p.getBoundingClientRect();if(a.width===0&&a.height===0)continue}if(o.add(s),i.push({id:s,label:ds(p)}),i.length>=t)break}}return i}var Ga="ai-bridge-highlight",Ja="ai-bridge-highlight-kf";function cs(){if(typeof document>"u"||document.getElementById(Ja))return;let t=document.createElement("style");t.id=Ja,t.textContent=`@keyframes ai-bridge-pulse{
3
3
  0%,100%{box-shadow:0 0 0 2px rgba(250,113,45,.9),0 0 0 6px rgba(250,113,45,.22)}
4
4
  50%{box-shadow:0 0 0 2px rgba(250,113,45,1),0 0 0 10px rgba(250,113,45,.06)}
@@ -914,7 +914,7 @@ ${i}
914
914
  takes the widget's accent like every other mark. -->
915
915
  <rect x="17" y="22.4" width="6" height="4.2" fill="currentColor" class="eye pl"/>
916
916
  <rect x="30" y="10" width="9" height="8" fill="#D62828" class="lamp"/>
917
- </svg>`;var ro={"launcher-icon":"56px","launcher-lift":"0%","launcher-parked-icon":"40px","launcher-pill-icon":"30px","launcher-bg":"transparent","launcher-shadow":"none","launcher-fg":"currentColor"};var Bs="sgiant:open-assistant",oo=new Set;function Fs(t,i){if(!oo.has(t)){oo.add(t);try{console.warn(i)}catch{}}}var zs=0;function so(t){let i=[...t.matchAll(/\bid="([^"]+)"/g)].map(p=>p[1]);if(!i.length)return t;let o=`-aiw${++zs}`,d=t;for(let p of i){let s=p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");d=d.replace(new RegExp(`\\bid="${s}"`,"g"),`id="${p}${o}"`).replace(new RegExp(`url\\(#${s}\\)`,"g"),`url(#${p}${o})`).replace(new RegExp(`([\\s:]href)="#${s}"`,"g"),`$1="#${p}${o}"`)}return d}function _s(t,i){let o=t.avatarSvg?.trim();if(o){if(!/^<svg[\s>]/i.test(o))throw new Error("createAiChatWidget: `avatarSvg` must be an inline <svg> string. For an image URL use `avatarUrl` instead.");if(/<script/i.test(o))throw new Error("createAiChatWidget: `avatarSvg` contains a <script> tag. This option inserts markup \u2014 pass a mark you authored, never anything built from user input.");return o}return t.avatarUrl?`<img src="${K(t.avatarUrl)}" alt="${K(i)}" class="${e}-av-img"/>`:Tr}function Ds(t){let i=t.accent??"#6d28d9",o=t.gradient??`linear-gradient(135deg,${i},${i})`,d=t.position==="bottom-left"?"left":"right",p=t.container??document.body,s=t.title??"Copilot",a=(n,r)=>{let c=t.labels?.[n]??Ve[n];if(r)for(let u of Object.keys(r))c=c.split(`{${u}}`).join(String(r[u]));return c},m=_s(t,s),A=new AbortController,w,k=!1,E=0,M="\xB7new\xB7",O=2e4,F=new Set,N=n=>F.has(n??M);function I(){k=N(w),vt.disabled=k,typeof xe=="function"&&L.style.display==="none"&&He({state:k?"working":"resting"})}let V="",U=[],re=[],_=n=>re.find(r=>r.id===n);async function Y(){if(t.getContext)try{let r=(await t.getContext())?.navTargets;Array.isArray(r)&&(U=r)}catch{}}let H=t.storageNamespace||"aiw",Z=t.persistKey?`${H}:v1:${t.persistKey}`:null,ie=t.layoutKey??t.persistKey,ce=ie?`${H}:open:${ie}`:null,T=t.persistKey?`${H}:draft:${t.persistKey}`:null;function g(n){jt(T,n)}function v(){return vi(T)}function S(n){ct(ce,n)}let y=[],$=12*60*60*1e3;function z(){let n=qt(Z,r=>!!r&&typeof r=="object");n&&(typeof n.savedAt!="number"||Date.now()-n.savedAt>$||(w=n.threadId,Array.isArray(n.messages)&&y.push(...n.messages)))}function G(){Ut(Z,{threadId:w,messages:y.slice(-40),savedAt:Date.now()})}z(),eo(d);let C=l("button",`${e}-bubble`);C.setAttribute("aria-label",a("openBubble",{name:s})),C.setAttribute("data-ai-target",ae.bubble),C.innerHTML=`<span class="${e}-bubble-av">${so(m)}</span><span class="${e}-bubble-label"></span><span class="${e}-bubble-dot" hidden></span>`;let J=`${H}:opened`;function oe(){return dt(J,!0)}function he(){ct(J,!0)}let W={state:"resting",count:0,variant:oe()?"pebble":"pill",ground:"auto"};function X(){if(W.ground!=="auto")return W.ground;try{let n=C.getBoundingClientRect(),r=document.elementsFromPoint(n.left+n.width/2,n.top+n.height/2);for(let c of r){if(c===C||C.contains(c)||L.contains(c))continue;let u=getComputedStyle(c).backgroundColor,f=/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/.exec(u);if(!f||f[4]!==void 0&&Number(f[4])<=.5)continue;let[h,b,x]=[Number(f[1]),Number(f[2]),Number(f[3])];return(.2126*h+.7152*b+.0722*x)/255<.5?"ink":"light"}}catch{}return"light"}function xe(){let n=C.querySelector(`.${e}-bubble-dot`),r=C.querySelector(`.${e}-bubble-label`);for(let c of["resting","unread","working","offline","parked"])C.classList.toggle(`${e}-bubble-${c}`,W.state===c);if(C.classList.toggle(`${e}-bubble-pill`,W.variant==="pill"),C.classList.toggle(`${e}-on-ink`,X()==="ink"),r&&(r.textContent=W.variant==="pill"?s:""),n){let c=W.state==="unread"&&W.count>0;n.hidden=!c&&W.state!=="offline",n.textContent=c?String(W.count):""}C.setAttribute("aria-label",W.state==="unread"&&W.count>0?a("openBubbleUnread",{name:s,count:W.count}):a("openBubble",{name:s}))}let Ge=()=>{};function He(n){Object.assign(W,n),xe(),Ge()}let L=l("div",`${e}-panel`),gt=t.dozeAfterMs??6e4,pe=null;function fe(){W.state!=="resting"||L.style.display!=="none"||C.classList.add(`${e}-bubble-dozing`)}Ge=()=>{C.classList.remove(`${e}-bubble-dozing`),pe&&clearTimeout(pe),pe=gt>0?setTimeout(fe,gt):null};let ue=null;if(t.markMotion!==!1&&(ue=to(()=>{let n=[C];return L.querySelectorAll(`.${e}-avatar`).forEach(r=>n.push(r)),n},{mode:t.markMotionMode??"spring"})),gt>0){for(let n of["pointerdown","pointermove","keydown","scroll","focusin"])document.addEventListener(n,Ge,{passive:!0});Ge()}Zr()&&(C.classList.add(`${e}-host-tokens`),L.classList.add(`${e}-host-tokens`));let se={...t.theme??{}};if(t.accent&&!se.accent&&(se.accent=t.accent),(t.gradient||t.accent)&&!se.gradient&&(se.gradient=o),se.accent&&!se["accent-contrast"]){let n=yi(se.accent);n&&(se["accent-contrast"]=n)}if(se.accent)for(let[n,r]of[["light","#ffffff"],["dark","#161616"]]){let c=`accent-ink-${n}`;if(se[c])continue;let u=lr(se.accent,r);u&&(se[c]=u)}if(se.accent&&!se["user-bg"]){let n=$i(se.accent,Ii,.76);if(n&&(se["user-bg"]=n,!se["user-contrast"])){let r=yi(n);r&&(se["user-contrast"]=r)}}for(let[n,r]of Object.entries(se))C.style.setProperty(`--aiw-${n}`,r),L.style.setProperty(`--aiw-${n}`,r);L.style.display="none",L.setAttribute("role","dialog"),L.setAttribute("aria-label",a("panelAria",{name:s}));let Ri=ie?`${H}:pos:${ie}`:null,lo="(max-width:640px),(max-height:520px) and (pointer:coarse)",Rn=()=>window.matchMedia(lo).matches,Oi=(n,r)=>{let c=L.offsetWidth||368,u=L.offsetHeight||540,f=Math.max(0,window.innerWidth-c),h=Math.max(0,window.innerHeight-u);return{x:Math.min(Math.max(0,n),f),y:Math.min(Math.max(0,r),h)}},Gt=()=>{L.style.left=L.style.top="",L.style.right=L.style.bottom=""},Re=n=>{if(Rn()||!n)return Gt();let{x:r,y:c}=Oi(n.x,n.y);if(!Number.isFinite(r)||!Number.isFinite(c))return Gt();L.style.left=`${r}px`,L.style.top=`${c}px`,L.style.right="auto",L.style.bottom="auto"},At=()=>qt(Ri,n=>typeof n?.x=="number"&&typeof n?.y=="number"),On=n=>{Ut(Ri,n)},me=l("div",`${e}-header`);me.classList.add(`${e}-draggable`);let Fe=null;me.addEventListener("pointerdown",n=>{if(n.target?.closest("button,a,input,select")||L.classList.contains(`${e}-advanced`))return;let r=L.getBoundingClientRect();Fe={dx:n.clientX-r.left,dy:n.clientY-r.top,id:n.pointerId},me.setPointerCapture(n.pointerId),L.style.transition="none"}),me.addEventListener("pointermove",n=>{!Fe||n.pointerId!==Fe.id||(n.preventDefault(),Re({x:n.clientX-Fe.dx,y:n.clientY-Fe.dy}))});let Ni=n=>{if(!Fe||n.pointerId!==Fe.id)return;Fe=null,L.style.transition="";let r=L.getBoundingClientRect(),c=Oi(r.left,r.top);Re(c),On(c)};me.addEventListener("pointerup",Ni),me.addEventListener("pointercancel",Ni),me.addEventListener("dblclick",n=>{n.target?.closest("button,a,input,select")||(On(null),Re(null))});let Pi=()=>{let n=At();n&&Re(n)};window.addEventListener("resize",Pi),Re(At());let Bi=l("div",`${e}-avatar${t.avatarSvg||t.avatarUrl?` ${e}-avatar-own`:""}`);Bi.innerHTML=so(m);let Fi=l("div",`${e}-hname`),zi=l("span",`${e}-title`);zi.textContent=s;let _i=l("span",`${e}-sub`);_i.textContent=t.subtitle??"Growth assistant";let Kt=l("span",`${e}-metachip`);Kt.hidden=!0,Fi.append(zi,_i,Kt);let Ke=l("div",`${e}-hactions`),ht=l("button",`${e}-icon`);ht.setAttribute("aria-label",a("newChat")),ht.setAttribute("data-ai-target",ae.newChat),ht.title=a("newChat"),ht.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M12 5v14M5 12h14"/></svg>',Ke.appendChild(ht);let ze=null;t.listThreads&&(ze=l("button",`${e}-icon`),ze.setAttribute("aria-label",a("pastConversations")),ze.setAttribute("data-ai-target",ae.history),ze.title=a("history"),ze.innerHTML=Cr,Ke.appendChild(ze));let Nn=l("div",`${e}-morewrap`),Se=l("button",`${e}-icon`);Se.setAttribute("aria-label",a("moreOptions")),Se.setAttribute("data-ai-target",ae.more),Se.setAttribute("aria-haspopup","menu"),Se.setAttribute("aria-expanded","false"),Se.title=a("more"),Se.innerHTML=Or;let Ce=l("div",`${e}-menu`);Ce.setAttribute("role","menu"),Ce.classList.remove(`${e}-menu-open`),Nn.append(Se,Ce);let Yt=!1,ft=n=>{Yt=n,Ce.classList.toggle(`${e}-menu-open`,n),Se.classList.toggle(`${e}-icon-on`,n),Se.setAttribute("aria-expanded",n?"true":"false")};Se.addEventListener("click",n=>{n.stopPropagation(),ft(!Yt)}),L.addEventListener("click",n=>{Yt&&!Nn.contains(n.target)&&ft(!1)}),L.addEventListener("keydown",n=>{Yt&&n.key==="Escape"&&(n.stopPropagation(),ft(!1))});let Xt=new Map,Ye=()=>{},Xe=n=>{let r=l("button",`${e}-menu-item`);r.type="button",r.setAttribute("role","menuitem");let c=l("span",`${e}-menu-ico`),u=l("span",`${e}-menu-label`);u.textContent=n;let f=l("span",`${e}-menu-state`);return r.append(c,u,f),{btn:r,ico:c,setState:h=>{f.textContent=a(h?"on":"off"),r.classList.toggle(`${e}-menu-item-on`,h)}}},Pn=Xe(a("downloadChat"));Pn.ico.innerHTML=Sr,Pn.btn.addEventListener("click",()=>{ft(!1),Po()}),Ce.appendChild(Pn.btn);let Ie=t.starThread?Xe(a("star")):null;if(Ie&&(Ie.ico.textContent="\u2606",Ie.btn.addEventListener("click",()=>{if(!w||!t.starThread)return;let n=w;Ie.btn.disabled=!0,t.starThread(n).then(r=>{Xt.set(n,r.starred),Ye()}).finally(()=>{Ie.btn.disabled=!1})}),Ce.appendChild(Ie.btn),Ye=()=>{let n=w?Xt.get(w):void 0;Ie.btn.hidden=!w;let r=n===!0;Ie.ico.textContent=r?"\u2605":"\u2606",Ie.ico.style.color=r?"#f59e0b":"";let c=Ie.btn.querySelector(`.${e}-menu-label`);c&&(c.textContent=a(r?"unstar":"star"))},Ye()),t.onFlag){let n=Xe(a("flagConversation"));n.ico.innerHTML=Ir,n.btn.title=a("flagConversationHint"),n.btn.addEventListener("click",()=>{if(ft(!1),!w){Dn(a("flagSendFirst"),!1);return}let r=window.prompt(a("flagPrompt"));!r||!r.trim()||(n.btn.disabled=!0,Promise.resolve(t.onFlag({reason:r.trim(),threadId:w})).then(()=>{Dn(a("flagged"),!0)}).catch(c=>{Dn(a("flagFailed",{msg:c?.message||a("flagFailedGeneric")}),!1)}).finally(()=>{n.btn.disabled=!1}))}),Ce.appendChild(n.btn)}let Di=`${H}:sound`,_e=dt(Di),Lt=Xe(a("notificationSound")),ji=()=>{Lt.ico.innerHTML=_e?Hr:Rr,Lt.setState(_e),Lt.btn.title=a(_e?"soundOnHint":"soundOffHint")};ji(),Lt.btn.addEventListener("click",()=>{_e=!_e,ct(Di,_e),ji(),_e&&Qt(!0)}),Ce.appendChild(Lt.btn);function Qt(n){if(!(!_e&&!n))try{let r=window.AudioContext||window.webkitAudioContext,c=new r,u=c.currentTime;[[880,0],[1175,.12]].forEach(([f,h])=>{let b=c.createOscillator(),x=c.createGain();b.type="sine",b.frequency.value=f,x.gain.setValueAtTime(1e-4,u+h),x.gain.exponentialRampToValueAtTime(.12,u+h+.02),x.gain.exponentialRampToValueAtTime(1e-4,u+h+.18),b.connect(x).connect(c.destination),b.start(u+h),b.stop(u+h+.2)}),window.setTimeout(()=>void c.close().catch(()=>{}),500)}catch{}}let le=!1,qi=`${H}:autonav`,Qe=dt(qi),Ui=`${H}:autoapply`,bt=dt(Ui),Zt=()=>{};if(t.autoNavOption){let n=Xe(a("autoNavigate"));n.ico.innerHTML=Ln;let r=()=>{let u=le;n.setState(u||Qe),n.btn.disabled=u,n.btn.title=a(u?"autoNavPinnedHint":Qe?"autoNavOnHint":"autoNavOffHint")};r(),n.btn.addEventListener("click",()=>{le||(Qe=!Qe,ct(qi,Qe),r())}),Ce.appendChild(n.btn);let c=Zt;Zt=()=>{c(),r()}}if(t.autoApplyOption){let n=Xe(a("autoApply"));n.ico.innerHTML=Lr;let r=()=>{n.setState(bt),n.btn.title=a(bt?"autoApplyOnHint":"autoApplyOffHint")};r(),n.btn.addEventListener("click",()=>{bt=!bt,ct(Ui,bt),r()}),Ce.appendChild(n.btn);let c=Zt;Zt=()=>{c(),r()}}if(!!(t.autoNavOption||t.autoApplyOption)&&t.automationHelp!==!1){let n=Xe(a("automationHelp"));n.ico.innerHTML=Er,n.btn.querySelector(`.${e}-menu-state`)?.remove(),n.btn.addEventListener("click",()=>{ft(!1);let r=l("div",`${e}-automation`),c=l("div",`${e}-automation-card`),u=l("h3",`${e}-automation-title`);u.textContent=a("automationHelpTitle"),c.appendChild(u);let f=[];t.autoNavOption&&f.push(a(le?"automationHelpNavPinned":"automationHelpNav")),t.autoApplyOption&&f.push(a("automationHelpApply")),f.push(a("automationHelpNever")),f.push(a("automationHelpLocal"));for(let x of f){let D=l("p",`${e}-automation-line`);D.textContent=x,c.appendChild(D)}let h=l("button",`${e}-automation-close`);h.type="button",h.textContent=a("automationHelpClose");let b=()=>r.remove();h.addEventListener("click",b),r.addEventListener("click",x=>{x.target===r&&b()}),r.addEventListener("keydown",x=>{x.key==="Escape"&&b()}),c.appendChild(h),r.appendChild(c),L.appendChild(r),h.focus()}),Ce.appendChild(n.btn)}Ke.appendChild(Nn);let ye=null;t.expandable!==!1&&(ye=l("button",`${e}-icon ${e}-expand`),ye.setAttribute("aria-label",a("expandChat")),ye.setAttribute("data-ai-target",ae.expand),ye.title=a("expand"),ye.innerHTML=Ei,Ke.appendChild(ye));let Ae=null;t.getAdvancedUrl&&(Ae=l("button",`${e}-icon ${e}-advbtn`),Ae.setAttribute("aria-label",t.advancedLabel||"Advanced view"),Ae.title=t.advancedLabel||"Advanced view",Ae.innerHTML=Mr,Ke.appendChild(Ae));let Et=l("button",`${e}-close`);Et.innerHTML="&times;",Et.setAttribute("aria-label",a("closeChat")),Et.setAttribute("data-ai-target",ae.close),Ke.appendChild(Et),me.append(Bi,Fi,Ke);let j=l("div",`${e}-log`);j.setAttribute("role","log"),j.setAttribute("aria-live","polite"),j.setAttribute("aria-label",a("conversation")),j.setAttribute("tabindex","0");let en=!0,Bn=!1,Q=n=>{n&&(en=!0),!(!en||Bn)&&(Bn=!0,requestAnimationFrame(()=>{Bn=!1,j.scrollTop=j.scrollHeight}))},Mt=[],co=new Set(["widget","preview","navigate","action","chips","form"]),tn={},Wi=(n,r)=>{if(!/^[a-z][a-z0-9_-]*$/i.test(n)||co.has(n))throw new Error(`invalid or reserved directive tag: ${n}`);tn[n]=r};for(let[n,r]of Object.entries(t.renderers??{}))Wi(n,r);let Fn=new Map;function zn(){Fn.clear();for(let n of Mt.splice(0))try{n()}catch{}}function po(n){return n?n.replace(/^claude-/,"").replace(/-\d{8}$/,""):""}function Ji(n){return n.replace(/\s*✓\s*$/u,"")}function Vi(n,r,c,u,f){r=Ji(r);let h=c==="running"?`<span class="${e}-act-spin" aria-hidden="true"></span>`:c==="error"?`<span class="${e}-act-x" aria-hidden="true">\u2715</span>`:`<span class="${e}-act-ok" aria-hidden="true">\u2713</span>`,b=u?`<span class="${e}-act-agent">${K(u)}</span>`:"",x=po(f),D=x?`<span class="${e}-act-model">${K(x)}</span>`:"";n.className=`${e}-activity`+(c!=="running"?` ${e}-activity-done`:""),n.innerHTML=`${h}${b}${D}<span class="${e}-act-label">${K(r)}</span>`}function _n(n,r,c,u,f){let h=l("div",`${e}-activity`);if(Vi(h,n,r,c,u),Je(f)){let b=f,x=l("button",`${e}-act-open`);x.type="button",x.innerHTML=`<span>${K(a("openReport"))}</span> <span aria-hidden="true">\u2192</span>`,x.addEventListener("click",async()=>{x.disabled=!0;try{await at("navigate",{path:b})}catch{x.disabled=!1}}),h.appendChild(x)}return j.appendChild(h),h}function uo(n,r,c,u,f){let h=Fn.get(n);if(h){Vi(h,r,c,u,f);return}let b=_n(r,c,u,f);Fn.set(n,b),Q()}function go(n){return new Promise(r=>{if(A.signal.aborted){r(!1);return}let c=setTimeout(()=>{A.signal.removeEventListener("abort",u),r(!0)},n),u=()=>{clearTimeout(c),r(!1)};A.signal.addEventListener("abort",u,{once:!0})})}let{reattachTrackedJobs:Gi,subscribeJob:ho,trackConfirmedJob:fo,hasUserConfirmed:bo}=Yr({L:a,log:j,bubble:C,side:d,name:s,ns:H,scrollDown:Q,toggle:()=>Kn(),waitAlive:go,frameShowing:n=>So(n),autoNavigateFrame:(n,r)=>Mo(n,r),dispatchAction:(n,r)=>at(n,r),getThreadId:()=>w,opts:t});function Ki(n,r,c){if(c&&(n.classList.remove(`${e}-rich-in`),n.offsetWidth,n.classList.add(`${e}-rich-in`)),t.renderMarkdown){n.textContent="";let u=t.renderMarkdown(n,r);u&&Mt.push(u)}else n.innerHTML=Ai(r)}function nn(n){let{clean:r,notes:c,navs:u,uis:f}=Jr(n),h=ut(j,"assistant","");Ki(h,r);for(let b of c){let x=l("div",`${e}-replay-note`);x.textContent=b,j.appendChild(x)}for(let b of f)ai(b);if(t.onWidgetAction)for(let b of u)Je(b.path)&&ri(b,!0);return h}function Yi(n,r){let c=l("div",`${e}-usage`);return c.innerHTML=`<span class="${e}-usage-pill">\u2191 ${n.toLocaleString()}</span><span class="${e}-usage-pill">\u2193 ${r.toLocaleString()}</span><span class="${e}-usage-sep">\xB7</span><span>${(n+r).toLocaleString()} tokens</span>`,c}function Ze(n,r=w){let c=r===w?Array.from(j.querySelectorAll(`.${e}-question:not(.${e}-question-done)`)):[];zn(),j.innerHTML="",y.length=0;for(let u of n)if("kind"in u&&u.kind==="widget")Ba(u.spec,u.rows,u.comparisonRows);else if("kind"in u&&u.kind==="activity")_n(u.label,u.status,u.agent,u.model,u.reportId?t.reportHref?.(u.reportId):void 0);else if("role"in u){let f=j.lastChild;if(u.role==="assistant"?nn(u.content):ut(j,u.role,u.content),u.role==="assistant"&&(u.inputTokens||u.outputTokens)&&j.appendChild(Yi(u.inputTokens??0,u.outputTokens??0)),y.push({role:u.role,content:u.content}),t.setActiveLeaf||t.vote){let h=f?f.nextSibling:j.firstChild;xo(u,h)}}for(let u of c)j.appendChild(u);Gi(r),Q(!0)}let{buildBranchNav:mo,buildVoteButtons:Xi}=_r({switchBranch:n=>yo(n),getThreadId:()=>w,...t.vote?{vote:t.vote}:{},...t.voteUpLabel?{voteUpLabel:t.voteUpLabel}:{},...t.voteDownLabel?{voteDownLabel:t.voteDownLabel}:{}});function Qi(n){let r=n;for(;r;){let c=r.nextSibling;r.remove(),r=c}}function vo(n,r,c){if(k)return;let u=l("div",`${e}-edit ${e}-user`),f=l("textarea",`${e}-edit-input`);f.value=n.content,f.rows=Math.min(8,Math.max(2,n.content.split(`
917
+ </svg>`;var ro={"launcher-icon":"56px","launcher-lift":"0%","launcher-parked-icon":"40px","launcher-pill-icon":"36px","launcher-bg":"transparent","launcher-shadow":"none","launcher-fg":"currentColor"};var Bs="sgiant:open-assistant",oo=new Set;function Fs(t,i){if(!oo.has(t)){oo.add(t);try{console.warn(i)}catch{}}}var zs=0;function so(t){let i=[...t.matchAll(/\bid="([^"]+)"/g)].map(p=>p[1]);if(!i.length)return t;let o=`-aiw${++zs}`,d=t;for(let p of i){let s=p.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");d=d.replace(new RegExp(`\\bid="${s}"`,"g"),`id="${p}${o}"`).replace(new RegExp(`url\\(#${s}\\)`,"g"),`url(#${p}${o})`).replace(new RegExp(`([\\s:]href)="#${s}"`,"g"),`$1="#${p}${o}"`)}return d}function _s(t,i){let o=t.avatarSvg?.trim();if(o){if(!/^<svg[\s>]/i.test(o))throw new Error("createAiChatWidget: `avatarSvg` must be an inline <svg> string. For an image URL use `avatarUrl` instead.");if(/<script/i.test(o))throw new Error("createAiChatWidget: `avatarSvg` contains a <script> tag. This option inserts markup \u2014 pass a mark you authored, never anything built from user input.");return o}return t.avatarUrl?`<img src="${K(t.avatarUrl)}" alt="${K(i)}" class="${e}-av-img"/>`:Tr}function Ds(t){let i=t.accent??"#6d28d9",o=t.gradient??`linear-gradient(135deg,${i},${i})`,d=t.position==="bottom-left"?"left":"right",p=t.container??document.body,s=t.title??"Copilot",a=(n,r)=>{let c=t.labels?.[n]??Ve[n];if(r)for(let u of Object.keys(r))c=c.split(`{${u}}`).join(String(r[u]));return c},m=_s(t,s),A=new AbortController,w,k=!1,E=0,M="\xB7new\xB7",O=2e4,F=new Set,N=n=>F.has(n??M);function I(){k=N(w),vt.disabled=k,typeof xe=="function"&&L.style.display==="none"&&He({state:k?"working":"resting"})}let V="",U=[],re=[],_=n=>re.find(r=>r.id===n);async function Y(){if(t.getContext)try{let r=(await t.getContext())?.navTargets;Array.isArray(r)&&(U=r)}catch{}}let H=t.storageNamespace||"aiw",Z=t.persistKey?`${H}:v1:${t.persistKey}`:null,ie=t.layoutKey??t.persistKey,ce=ie?`${H}:open:${ie}`:null,T=t.persistKey?`${H}:draft:${t.persistKey}`:null;function g(n){jt(T,n)}function v(){return vi(T)}function S(n){ct(ce,n)}let y=[],$=12*60*60*1e3;function z(){let n=qt(Z,r=>!!r&&typeof r=="object");n&&(typeof n.savedAt!="number"||Date.now()-n.savedAt>$||(w=n.threadId,Array.isArray(n.messages)&&y.push(...n.messages)))}function G(){Ut(Z,{threadId:w,messages:y.slice(-40),savedAt:Date.now()})}z(),eo(d);let C=l("button",`${e}-bubble`);C.setAttribute("aria-label",a("openBubble",{name:s})),C.setAttribute("data-ai-target",ae.bubble),C.innerHTML=`<span class="${e}-bubble-av">${so(m)}</span><span class="${e}-bubble-label"></span><span class="${e}-bubble-dot" hidden></span>`;let J=`${H}:opened`;function oe(){return dt(J,!0)}function he(){ct(J,!0)}let W={state:"resting",count:0,variant:oe()?"pebble":"pill",ground:"auto"};function X(){if(W.ground!=="auto")return W.ground;try{let n=C.getBoundingClientRect(),r=document.elementsFromPoint(n.left+n.width/2,n.top+n.height/2);for(let c of r){if(c===C||C.contains(c)||L.contains(c))continue;let u=getComputedStyle(c).backgroundColor,f=/rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*([\d.]+))?\)/.exec(u);if(!f||f[4]!==void 0&&Number(f[4])<=.5)continue;let[h,b,x]=[Number(f[1]),Number(f[2]),Number(f[3])];return(.2126*h+.7152*b+.0722*x)/255<.5?"ink":"light"}}catch{}return"light"}function xe(){let n=C.querySelector(`.${e}-bubble-dot`),r=C.querySelector(`.${e}-bubble-label`);for(let c of["resting","unread","working","offline","parked"])C.classList.toggle(`${e}-bubble-${c}`,W.state===c);if(C.classList.toggle(`${e}-bubble-pill`,W.variant==="pill"),C.classList.toggle(`${e}-on-ink`,X()==="ink"),r&&(r.textContent=W.variant==="pill"?s:""),n){let c=W.state==="unread"&&W.count>0;n.hidden=!c&&W.state!=="offline",n.textContent=c?String(W.count):""}C.setAttribute("aria-label",W.state==="unread"&&W.count>0?a("openBubbleUnread",{name:s,count:W.count}):a("openBubble",{name:s}))}let Ge=()=>{};function He(n){Object.assign(W,n),xe(),Ge()}let L=l("div",`${e}-panel`),gt=t.dozeAfterMs??6e4,pe=null;function fe(){W.state!=="resting"||L.style.display!=="none"||C.classList.add(`${e}-bubble-dozing`)}Ge=()=>{C.classList.remove(`${e}-bubble-dozing`),pe&&clearTimeout(pe),pe=gt>0?setTimeout(fe,gt):null};let ue=null;if(t.markMotion!==!1&&(ue=to(()=>{let n=[C];return L.querySelectorAll(`.${e}-avatar`).forEach(r=>n.push(r)),n},{mode:t.markMotionMode??"spring"})),gt>0){for(let n of["pointerdown","pointermove","keydown","scroll","focusin"])document.addEventListener(n,Ge,{passive:!0});Ge()}Zr()&&(C.classList.add(`${e}-host-tokens`),L.classList.add(`${e}-host-tokens`));let se={...t.theme??{}};if(t.accent&&!se.accent&&(se.accent=t.accent),(t.gradient||t.accent)&&!se.gradient&&(se.gradient=o),se.accent&&!se["accent-contrast"]){let n=yi(se.accent);n&&(se["accent-contrast"]=n)}if(se.accent)for(let[n,r]of[["light","#ffffff"],["dark","#161616"]]){let c=`accent-ink-${n}`;if(se[c])continue;let u=lr(se.accent,r);u&&(se[c]=u)}if(se.accent&&!se["user-bg"]){let n=$i(se.accent,Ii,.76);if(n&&(se["user-bg"]=n,!se["user-contrast"])){let r=yi(n);r&&(se["user-contrast"]=r)}}for(let[n,r]of Object.entries(se))C.style.setProperty(`--aiw-${n}`,r),L.style.setProperty(`--aiw-${n}`,r);L.style.display="none",L.setAttribute("role","dialog"),L.setAttribute("aria-label",a("panelAria",{name:s}));let Ri=ie?`${H}:pos:${ie}`:null,lo="(max-width:640px),(max-height:520px) and (pointer:coarse)",Rn=()=>window.matchMedia(lo).matches,Oi=(n,r)=>{let c=L.offsetWidth||368,u=L.offsetHeight||540,f=Math.max(0,window.innerWidth-c),h=Math.max(0,window.innerHeight-u);return{x:Math.min(Math.max(0,n),f),y:Math.min(Math.max(0,r),h)}},Gt=()=>{L.style.left=L.style.top="",L.style.right=L.style.bottom=""},Re=n=>{if(Rn()||!n)return Gt();let{x:r,y:c}=Oi(n.x,n.y);if(!Number.isFinite(r)||!Number.isFinite(c))return Gt();L.style.left=`${r}px`,L.style.top=`${c}px`,L.style.right="auto",L.style.bottom="auto"},At=()=>qt(Ri,n=>typeof n?.x=="number"&&typeof n?.y=="number"),On=n=>{Ut(Ri,n)},me=l("div",`${e}-header`);me.classList.add(`${e}-draggable`);let Fe=null;me.addEventListener("pointerdown",n=>{if(n.target?.closest("button,a,input,select")||L.classList.contains(`${e}-advanced`))return;let r=L.getBoundingClientRect();Fe={dx:n.clientX-r.left,dy:n.clientY-r.top,id:n.pointerId},me.setPointerCapture(n.pointerId),L.style.transition="none"}),me.addEventListener("pointermove",n=>{!Fe||n.pointerId!==Fe.id||(n.preventDefault(),Re({x:n.clientX-Fe.dx,y:n.clientY-Fe.dy}))});let Ni=n=>{if(!Fe||n.pointerId!==Fe.id)return;Fe=null,L.style.transition="";let r=L.getBoundingClientRect(),c=Oi(r.left,r.top);Re(c),On(c)};me.addEventListener("pointerup",Ni),me.addEventListener("pointercancel",Ni),me.addEventListener("dblclick",n=>{n.target?.closest("button,a,input,select")||(On(null),Re(null))});let Pi=()=>{let n=At();n&&Re(n)};window.addEventListener("resize",Pi),Re(At());let Bi=l("div",`${e}-avatar${t.avatarSvg||t.avatarUrl?` ${e}-avatar-own`:""}`);Bi.innerHTML=so(m);let Fi=l("div",`${e}-hname`),zi=l("span",`${e}-title`);zi.textContent=s;let _i=l("span",`${e}-sub`);_i.textContent=t.subtitle??"Growth assistant";let Kt=l("span",`${e}-metachip`);Kt.hidden=!0,Fi.append(zi,_i,Kt);let Ke=l("div",`${e}-hactions`),ht=l("button",`${e}-icon`);ht.setAttribute("aria-label",a("newChat")),ht.setAttribute("data-ai-target",ae.newChat),ht.title=a("newChat"),ht.innerHTML='<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M12 5v14M5 12h14"/></svg>',Ke.appendChild(ht);let ze=null;t.listThreads&&(ze=l("button",`${e}-icon`),ze.setAttribute("aria-label",a("pastConversations")),ze.setAttribute("data-ai-target",ae.history),ze.title=a("history"),ze.innerHTML=Cr,Ke.appendChild(ze));let Nn=l("div",`${e}-morewrap`),Se=l("button",`${e}-icon`);Se.setAttribute("aria-label",a("moreOptions")),Se.setAttribute("data-ai-target",ae.more),Se.setAttribute("aria-haspopup","menu"),Se.setAttribute("aria-expanded","false"),Se.title=a("more"),Se.innerHTML=Or;let Ce=l("div",`${e}-menu`);Ce.setAttribute("role","menu"),Ce.classList.remove(`${e}-menu-open`),Nn.append(Se,Ce);let Yt=!1,ft=n=>{Yt=n,Ce.classList.toggle(`${e}-menu-open`,n),Se.classList.toggle(`${e}-icon-on`,n),Se.setAttribute("aria-expanded",n?"true":"false")};Se.addEventListener("click",n=>{n.stopPropagation(),ft(!Yt)}),L.addEventListener("click",n=>{Yt&&!Nn.contains(n.target)&&ft(!1)}),L.addEventListener("keydown",n=>{Yt&&n.key==="Escape"&&(n.stopPropagation(),ft(!1))});let Xt=new Map,Ye=()=>{},Xe=n=>{let r=l("button",`${e}-menu-item`);r.type="button",r.setAttribute("role","menuitem");let c=l("span",`${e}-menu-ico`),u=l("span",`${e}-menu-label`);u.textContent=n;let f=l("span",`${e}-menu-state`);return r.append(c,u,f),{btn:r,ico:c,setState:h=>{f.textContent=a(h?"on":"off"),r.classList.toggle(`${e}-menu-item-on`,h)}}},Pn=Xe(a("downloadChat"));Pn.ico.innerHTML=Sr,Pn.btn.addEventListener("click",()=>{ft(!1),Po()}),Ce.appendChild(Pn.btn);let Ie=t.starThread?Xe(a("star")):null;if(Ie&&(Ie.ico.textContent="\u2606",Ie.btn.addEventListener("click",()=>{if(!w||!t.starThread)return;let n=w;Ie.btn.disabled=!0,t.starThread(n).then(r=>{Xt.set(n,r.starred),Ye()}).finally(()=>{Ie.btn.disabled=!1})}),Ce.appendChild(Ie.btn),Ye=()=>{let n=w?Xt.get(w):void 0;Ie.btn.hidden=!w;let r=n===!0;Ie.ico.textContent=r?"\u2605":"\u2606",Ie.ico.style.color=r?"#f59e0b":"";let c=Ie.btn.querySelector(`.${e}-menu-label`);c&&(c.textContent=a(r?"unstar":"star"))},Ye()),t.onFlag){let n=Xe(a("flagConversation"));n.ico.innerHTML=Ir,n.btn.title=a("flagConversationHint"),n.btn.addEventListener("click",()=>{if(ft(!1),!w){Dn(a("flagSendFirst"),!1);return}let r=window.prompt(a("flagPrompt"));!r||!r.trim()||(n.btn.disabled=!0,Promise.resolve(t.onFlag({reason:r.trim(),threadId:w})).then(()=>{Dn(a("flagged"),!0)}).catch(c=>{Dn(a("flagFailed",{msg:c?.message||a("flagFailedGeneric")}),!1)}).finally(()=>{n.btn.disabled=!1}))}),Ce.appendChild(n.btn)}let Di=`${H}:sound`,_e=dt(Di),Lt=Xe(a("notificationSound")),ji=()=>{Lt.ico.innerHTML=_e?Hr:Rr,Lt.setState(_e),Lt.btn.title=a(_e?"soundOnHint":"soundOffHint")};ji(),Lt.btn.addEventListener("click",()=>{_e=!_e,ct(Di,_e),ji(),_e&&Qt(!0)}),Ce.appendChild(Lt.btn);function Qt(n){if(!(!_e&&!n))try{let r=window.AudioContext||window.webkitAudioContext,c=new r,u=c.currentTime;[[880,0],[1175,.12]].forEach(([f,h])=>{let b=c.createOscillator(),x=c.createGain();b.type="sine",b.frequency.value=f,x.gain.setValueAtTime(1e-4,u+h),x.gain.exponentialRampToValueAtTime(.12,u+h+.02),x.gain.exponentialRampToValueAtTime(1e-4,u+h+.18),b.connect(x).connect(c.destination),b.start(u+h),b.stop(u+h+.2)}),window.setTimeout(()=>void c.close().catch(()=>{}),500)}catch{}}let le=!1,qi=`${H}:autonav`,Qe=dt(qi),Ui=`${H}:autoapply`,bt=dt(Ui),Zt=()=>{};if(t.autoNavOption){let n=Xe(a("autoNavigate"));n.ico.innerHTML=Ln;let r=()=>{let u=le;n.setState(u||Qe),n.btn.disabled=u,n.btn.title=a(u?"autoNavPinnedHint":Qe?"autoNavOnHint":"autoNavOffHint")};r(),n.btn.addEventListener("click",()=>{le||(Qe=!Qe,ct(qi,Qe),r())}),Ce.appendChild(n.btn);let c=Zt;Zt=()=>{c(),r()}}if(t.autoApplyOption){let n=Xe(a("autoApply"));n.ico.innerHTML=Lr;let r=()=>{n.setState(bt),n.btn.title=a(bt?"autoApplyOnHint":"autoApplyOffHint")};r(),n.btn.addEventListener("click",()=>{bt=!bt,ct(Ui,bt),r()}),Ce.appendChild(n.btn);let c=Zt;Zt=()=>{c(),r()}}if(!!(t.autoNavOption||t.autoApplyOption)&&t.automationHelp!==!1){let n=Xe(a("automationHelp"));n.ico.innerHTML=Er,n.btn.querySelector(`.${e}-menu-state`)?.remove(),n.btn.addEventListener("click",()=>{ft(!1);let r=l("div",`${e}-automation`),c=l("div",`${e}-automation-card`),u=l("h3",`${e}-automation-title`);u.textContent=a("automationHelpTitle"),c.appendChild(u);let f=[];t.autoNavOption&&f.push(a(le?"automationHelpNavPinned":"automationHelpNav")),t.autoApplyOption&&f.push(a("automationHelpApply")),f.push(a("automationHelpNever")),f.push(a("automationHelpLocal"));for(let x of f){let D=l("p",`${e}-automation-line`);D.textContent=x,c.appendChild(D)}let h=l("button",`${e}-automation-close`);h.type="button",h.textContent=a("automationHelpClose");let b=()=>r.remove();h.addEventListener("click",b),r.addEventListener("click",x=>{x.target===r&&b()}),r.addEventListener("keydown",x=>{x.key==="Escape"&&b()}),c.appendChild(h),r.appendChild(c),L.appendChild(r),h.focus()}),Ce.appendChild(n.btn)}Ke.appendChild(Nn);let ye=null;t.expandable!==!1&&(ye=l("button",`${e}-icon ${e}-expand`),ye.setAttribute("aria-label",a("expandChat")),ye.setAttribute("data-ai-target",ae.expand),ye.title=a("expand"),ye.innerHTML=Ei,Ke.appendChild(ye));let Ae=null;t.getAdvancedUrl&&(Ae=l("button",`${e}-icon ${e}-advbtn`),Ae.setAttribute("aria-label",t.advancedLabel||"Advanced view"),Ae.title=t.advancedLabel||"Advanced view",Ae.innerHTML=Mr,Ke.appendChild(Ae));let Et=l("button",`${e}-close`);Et.innerHTML="&times;",Et.setAttribute("aria-label",a("closeChat")),Et.setAttribute("data-ai-target",ae.close),Ke.appendChild(Et),me.append(Bi,Fi,Ke);let j=l("div",`${e}-log`);j.setAttribute("role","log"),j.setAttribute("aria-live","polite"),j.setAttribute("aria-label",a("conversation")),j.setAttribute("tabindex","0");let en=!0,Bn=!1,Q=n=>{n&&(en=!0),!(!en||Bn)&&(Bn=!0,requestAnimationFrame(()=>{Bn=!1,j.scrollTop=j.scrollHeight}))},Mt=[],co=new Set(["widget","preview","navigate","action","chips","form"]),tn={},Wi=(n,r)=>{if(!/^[a-z][a-z0-9_-]*$/i.test(n)||co.has(n))throw new Error(`invalid or reserved directive tag: ${n}`);tn[n]=r};for(let[n,r]of Object.entries(t.renderers??{}))Wi(n,r);let Fn=new Map;function zn(){Fn.clear();for(let n of Mt.splice(0))try{n()}catch{}}function po(n){return n?n.replace(/^claude-/,"").replace(/-\d{8}$/,""):""}function Ji(n){return n.replace(/\s*✓\s*$/u,"")}function Vi(n,r,c,u,f){r=Ji(r);let h=c==="running"?`<span class="${e}-act-spin" aria-hidden="true"></span>`:c==="error"?`<span class="${e}-act-x" aria-hidden="true">\u2715</span>`:`<span class="${e}-act-ok" aria-hidden="true">\u2713</span>`,b=u?`<span class="${e}-act-agent">${K(u)}</span>`:"",x=po(f),D=x?`<span class="${e}-act-model">${K(x)}</span>`:"";n.className=`${e}-activity`+(c!=="running"?` ${e}-activity-done`:""),n.innerHTML=`${h}${b}${D}<span class="${e}-act-label">${K(r)}</span>`}function _n(n,r,c,u,f){let h=l("div",`${e}-activity`);if(Vi(h,n,r,c,u),Je(f)){let b=f,x=l("button",`${e}-act-open`);x.type="button",x.innerHTML=`<span>${K(a("openReport"))}</span> <span aria-hidden="true">\u2192</span>`,x.addEventListener("click",async()=>{x.disabled=!0;try{await at("navigate",{path:b})}catch{x.disabled=!1}}),h.appendChild(x)}return j.appendChild(h),h}function uo(n,r,c,u,f){let h=Fn.get(n);if(h){Vi(h,r,c,u,f);return}let b=_n(r,c,u,f);Fn.set(n,b),Q()}function go(n){return new Promise(r=>{if(A.signal.aborted){r(!1);return}let c=setTimeout(()=>{A.signal.removeEventListener("abort",u),r(!0)},n),u=()=>{clearTimeout(c),r(!1)};A.signal.addEventListener("abort",u,{once:!0})})}let{reattachTrackedJobs:Gi,subscribeJob:ho,trackConfirmedJob:fo,hasUserConfirmed:bo}=Yr({L:a,log:j,bubble:C,side:d,name:s,ns:H,scrollDown:Q,toggle:()=>Kn(),waitAlive:go,frameShowing:n=>So(n),autoNavigateFrame:(n,r)=>Mo(n,r),dispatchAction:(n,r)=>at(n,r),getThreadId:()=>w,opts:t});function Ki(n,r,c){if(c&&(n.classList.remove(`${e}-rich-in`),n.offsetWidth,n.classList.add(`${e}-rich-in`)),t.renderMarkdown){n.textContent="";let u=t.renderMarkdown(n,r);u&&Mt.push(u)}else n.innerHTML=Ai(r)}function nn(n){let{clean:r,notes:c,navs:u,uis:f}=Jr(n),h=ut(j,"assistant","");Ki(h,r);for(let b of c){let x=l("div",`${e}-replay-note`);x.textContent=b,j.appendChild(x)}for(let b of f)ai(b);if(t.onWidgetAction)for(let b of u)Je(b.path)&&ri(b,!0);return h}function Yi(n,r){let c=l("div",`${e}-usage`);return c.innerHTML=`<span class="${e}-usage-pill">\u2191 ${n.toLocaleString()}</span><span class="${e}-usage-pill">\u2193 ${r.toLocaleString()}</span><span class="${e}-usage-sep">\xB7</span><span>${(n+r).toLocaleString()} tokens</span>`,c}function Ze(n,r=w){let c=r===w?Array.from(j.querySelectorAll(`.${e}-question:not(.${e}-question-done)`)):[];zn(),j.innerHTML="",y.length=0;for(let u of n)if("kind"in u&&u.kind==="widget")Ba(u.spec,u.rows,u.comparisonRows);else if("kind"in u&&u.kind==="activity")_n(u.label,u.status,u.agent,u.model,u.reportId?t.reportHref?.(u.reportId):void 0);else if("role"in u){let f=j.lastChild;if(u.role==="assistant"?nn(u.content):ut(j,u.role,u.content),u.role==="assistant"&&(u.inputTokens||u.outputTokens)&&j.appendChild(Yi(u.inputTokens??0,u.outputTokens??0)),y.push({role:u.role,content:u.content}),t.setActiveLeaf||t.vote){let h=f?f.nextSibling:j.firstChild;xo(u,h)}}for(let u of c)j.appendChild(u);Gi(r),Q(!0)}let{buildBranchNav:mo,buildVoteButtons:Xi}=_r({switchBranch:n=>yo(n),getThreadId:()=>w,...t.vote?{vote:t.vote}:{},...t.voteUpLabel?{voteUpLabel:t.voteUpLabel}:{},...t.voteDownLabel?{voteDownLabel:t.voteDownLabel}:{}});function Qi(n){let r=n;for(;r;){let c=r.nextSibling;r.remove(),r=c}}function vo(n,r,c){if(k)return;let u=l("div",`${e}-edit ${e}-user`),f=l("textarea",`${e}-edit-input`);f.value=n.content,f.rows=Math.min(8,Math.max(2,n.content.split(`
918
918
  `).length));let h=l("div",`${e}-edit-actions`),b=l("button",`${e}-edit-cancel`);b.type="button",b.textContent=t.cancelLabel??"Cancel";let x=l("button",`${e}-edit-save`);x.type="button",x.textContent=t.saveLabel??"Save & send",h.appendChild(b),h.appendChild(x),u.appendChild(f),u.appendChild(h),j.insertBefore(u,r);for(let q of c)q.style.display="none";f.focus();let D=()=>{u.remove();for(let q of c)q.style.display=""},R=()=>{let q=f.value.trim();!q||k||(u.remove(),Qi(r),rt(q,{parentId:n.parentId??null}))};b.addEventListener("click",D),x.addEventListener("click",R),f.addEventListener("keydown",q=>{q.key==="Escape"&&D(),q.key==="Enter"&&!q.shiftKey&&(q.preventDefault(),R())})}function wo(n,r,c){if(!t.vote)return;let u=l("div",`${e}-quality`),f=l("div",`${e}-quality-title`);f.textContent=a(n==="slow"?"qualitySlowTitle":"qualityFailedTitle"),u.appendChild(f);let h=n==="failed"?-1:null,b=l("div",`${e}-quality-row`);if(n==="slow"){let ge=(ot,qe,ve)=>{let we=l("button",`${e}-msgact ${e}-vote`);return we.type="button",we.setAttribute("aria-label",qe),we.title=qe,we.innerHTML=ve,we.addEventListener("click",()=>{h=ot,b.querySelectorAll(`.${e}-vote`).forEach(Nt=>Nt.classList.remove(`${e}-vote-on`)),we.classList.add(`${e}-vote-on`)}),we};b.appendChild(ge(1,t.voteUpLabel??"Helpful",En)),b.appendChild(ge(-1,t.voteDownLabel??"Not helpful",Mn))}let x=l("input",`${e}-quality-reason`);x.type="text",x.maxLength=500,x.placeholder=a(n==="slow"?"qualityReasonPlaceholder":"qualityFailedPlaceholder"),x.setAttribute("aria-label",f.textContent),b.appendChild(x),u.appendChild(b);let D=l("div",`${e}-quality-actions`),R=l("button",`${e}-quality-send`);R.type="button",R.textContent=a("qualitySend");let q=l("button",`${e}-quality-dismiss`);q.type="button",q.textContent=a("qualityDismiss"),q.addEventListener("click",()=>u.remove()),R.addEventListener("click",()=>{let ge=x.value.trim();if(h===null&&!ge){u.remove();return}R.disabled=!0,t.vote({threadId:w??"",messageId:r,value:h??-1,...c?{model:c}:{},...ge?{reason:ge}:{}}).then(()=>{u.textContent=a("qualityThanks"),u.classList.add(`${e}-quality-done`)}).catch(()=>{R.disabled=!1})}),D.append(R,q),u.appendChild(D),j.appendChild(u),Q()}let Zi=new Set,ea=new Map;function xo(n,r){if(!t.setActiveLeaf&&!t.vote)return;let c=n.role==="user",u=!!t.setActiveLeaf&&!c&&typeof n.parentId=="string",f=!c&&!!t.vote&&typeof n.id=="string";if(!n.branch&&!c&&!u&&!f)return;let h=l("div",`${e}-msgactions ${e}-${n.role}`);if(n.branch&&t.setActiveLeaf&&h.appendChild(mo(n.branch)),c){let b=l("button",`${e}-msgact ${e}-msgact-icon`);b.type="button";let x=t.editLabel??"Edit";b.setAttribute("aria-label",x),b.title=x,b.innerHTML=Pr,b.addEventListener("click",()=>{let D=[];for(let R=r;R&&(R instanceof HTMLElement&&D.push(R),R!==h);R=R.nextSibling);vo(n,r,D)}),h.appendChild(b)}else{if(u){let b=n.parentId,x=l("button",`${e}-msgact`);x.type="button";let D=t.regenerateLabel??"Regenerate";x.setAttribute("aria-label",D),x.innerHTML=`${Br}<span>${K(D)}</span>`,x.addEventListener("click",()=>{k||typeof b!="string"||(Qi(r),rt("",{regenerate:!0,parentId:b}))}),h.appendChild(x)}f&&h.appendChild(Xi(n.id,n.model??void 0))}j.appendChild(h)}async function yo(n){if(!(k||!w||!t.setActiveLeaf||!t.loadThread))try{await t.setActiveLeaf(w,n);let r=await t.loadThread(w);Ze(r),G()}catch{}}function $o(){if(y.length)for(let n of y)n.role==="assistant"?nn(n.content):ut(j,n.role,n.content,n.attachments);else t.greeting&&nn(t.greeting);if(Gi(w),w&&t.loadThread){let n=w;t.loadThread(n).then(r=>{r.length&&Ze(r)}).catch(()=>{})}}j.addEventListener("scroll",()=>{en=j.scrollHeight-j.scrollTop-j.clientHeight<90});let ta=n=>{n.addEventListener("wheel",r=>{let c=r.deltaMode===1?r.deltaY*16:r.deltaMode===2?r.deltaY*n.clientHeight:r.deltaY,u=n.scrollTop;n.scrollTop=u+c,n.scrollTop!==u&&(r.preventDefault(),r.stopPropagation())},{passive:!1})};ta(j);function Dn(n,r){let c=l("div",`${e}-replay-note ${e}-flag-note${r?` ${e}-flag-ok`:""}`);c.textContent=n,j.appendChild(c),Q(!0),setTimeout(()=>c.remove(),6e3)}let St=l("div",`${e}-meter`);St.style.display="none";let jn=0,Oe=null,qn=0;function na(){if(!t.signupUrl||Oe===null&&qn===0){St.style.display="none";return}St.style.display="block";let n=jn>0&&Oe!==null?Math.max(0,Math.min(100,Oe/jn*100)):100,r=Oe!==null?a("meterTokensLeft",{count:Oe.toLocaleString()}):a("meterFreePreview"),c=a("meterUsedThisSession",{count:qn.toLocaleString()});St.innerHTML=`<div class="${e}-meter-bar"><span style="transform:scaleX(${n/100})"></span></div><div class="${e}-meter-row"><span>${K(r)}</span><span>${K(c)}</span></div>`}let ia=t.roleNames??{},aa=t.actionRoles??{},ra=t.toolRoles??{},mt=l("div",`${e}-status`);mt.style.display="none";let Un=l("span",`${e}-status-role`),an=l("span",`${e}-status-credits`),rn=l("span",`${e}-status-credits-val`);an.append(document.createTextNode("\u2605 "),rn,document.createTextNode(a("creditsSuffix"))),mt.append(Un,an);let It="talk",Ne=null,De=0,oa=!1,et=0;function Ht(n){rn.textContent=Math.round(n).toLocaleString()}function sa(){if(!t.getBalance){mt.style.display="none";return}mt.style.display="flex",Un.textContent=ia[It]??It,an.style.display=Ne===null?"none":"",Ne!==null&&!et&&(De=Ne,Ht(De))}function ko(n){et&&(cancelAnimationFrame(et),et=0);let r=De,c=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if(r===n||c){De=n,Ht(n);return}let u=Math.min(900,250+Math.abs(n-r)*1.2);rn.classList.add(`${e}-credits-live`);let f=0,h=b=>{f||(f=b);let x=Math.min(1,(b-f)/u),D=1-Math.pow(1-x,3);De=r+(n-r)*D,Ht(De),x<1?et=requestAnimationFrame(h):(et=0,De=n,Ht(n),rn.classList.remove(`${e}-credits-live`))};et=requestAnimationFrame(h)}async function la(){if(t.getBalance){try{Ne=await t.getBalance()}catch{return}t.getBalance&&(mt.style.display="flex",Un.textContent=ia[It]??It,an.style.display=Ne===null?"none":"",Ne===null||(oa?ko(Ne):(oa=!0,De=Ne,Ht(Ne))))}}function Wn(n){It=n,sa()}let $e=l("div",`${e}-suggestions`);$e.style.display="none";let on=l("form",`${e}-form`),te=l("input",`${e}-input`);te.placeholder=a("askAnything",{name:s}),te.setAttribute("aria-label",a("messageAria",{name:s})),te.setAttribute("data-ai-target",ae.composer),te.autocomplete="off",te.value=v(),te.addEventListener("input",()=>g(te.value));let da=()=>{if(!ue)return;let n=te.getBoundingClientRect();ue.attend(te.value.trim()||document.activeElement===te?{x:n.left+n.width*.18,y:n.top+n.height/2}:null)};te.addEventListener("input",da),te.addEventListener("focus",da),te.addEventListener("blur",()=>ue?.attend(null));let vt=l("button",`${e}-send`);vt.type="submit",vt.textContent=a("send");let Le=l("div",`${e}-artifacts`);Le.style.display="none";let Jn=!1;async function Vn(){if(!t.listSessionArtifacts||!w){Le.style.display="none",Le.innerHTML="";return}let n=[];try{n=await t.listSessionArtifacts(w)}catch{return}if(Le.innerHTML="",!n.length){Le.style.display="none";return}Le.style.display="flex";let r=l("span",`${e}-artifacts-title`);r.textContent=a("artifactsTitle"),Le.appendChild(r);for(let c of n){let u=l("span",`${e}-artifact`),f=l("span",`${e}-artifact-name`);if(f.textContent=c.label||c.filename,f.title=c.filename,u.appendChild(f),t.onApplyProposal){let h=l("button",`${e}-artifact-save`);h.type="button",h.textContent=a("artifactSave"),h.addEventListener("click",async()=>{if(!Jn){Jn=!0,h.textContent=a("artifactSaving"),h.disabled=!0;try{await t.onApplyProposal("save_artifact_to_assets",{mediaId:c.id}),u.remove(),Le.querySelector(`.${e}-artifact`)||(Le.style.display="none")}catch{h.textContent=a("tryAgain"),h.disabled=!1}finally{Jn=!1}}}),u.appendChild(h)}Le.appendChild(u)}}let tt=[],Pe=l("div",`${e}-attbar`);Pe.style.display="none";let ke=null,Ee=null;function Gn(){Pe.innerHTML="",Pe.style.display=tt.length?"flex":"none",tt.forEach((n,r)=>{let c=l("span",`${e}-att ${e}-att-staged`);c.title=`${n.filename} (${n.contentType})`;let u=l("span","");u.textContent=`${Li(n.kind)} ${n.filename}`;let f=l("button",`${e}-att-x`);f.type="button",f.textContent="\xD7",f.setAttribute("aria-label",a("removeAttachment",{file:n.filename})),f.addEventListener("click",()=>{tt.splice(r,1),Gn()}),c.append(u,f),Pe.appendChild(c)})}let To=26214400,Co=n=>/^(video|audio)\//i.test(n.type)?104857600:To,Ao=n=>`${Math.round(n/(1024*1024))} MB`;function Lo(n){let r=l("span",`${e}-att ${e}-att-err`);r.textContent=`\u26A0 ${n}`,Pe.appendChild(r),Pe.style.display="flex",setTimeout(()=>{r.remove(),Pe.children.length||(Pe.style.display="none")},4e3)}async function ca(n){let r=t.getUploadEndpoint?.()??t.uploadEndpoint;if(!(!n||!r)){ke&&(ke.disabled=!0);try{let c=t.getToken?await t.getToken():t.token;for(let u of Array.from(n).slice(0,6)){if(tt.length>=6)break;let f=Co(u);if(u.size>f){Lo(`"${u.name}" is too large (max ${Ao(f)})`);continue}let h=new FormData;h.append("file",u),h.append("session","1"),w&&h.append("threadId",w);let b=await fetch(r,{method:"POST",headers:c?{authorization:`Bearer ${c}`}:{},credentials:t.withCredentials?"include":"same-origin",body:h});if(!b.ok)continue;let x=await b.json();if(!x.media)continue;let D=x.media.contentType||u.type||"";tt.push({mediaId:x.media.id,kind:D.startsWith("image/")?"image":D.includes("pdf")?"pdf":"doc",filename:x.media.filename,contentType:D}),Gn()}}catch{}finally{ke&&(ke.disabled=!1),Ee&&(Ee.value="")}}}t.uploadEndpoint||t.getUploadEndpoint?(Ee=l("input",""),Ee.type="file",Ee.multiple=!0,Ee.accept="image/*,video/*,audio/*,.svg,application/pdf,.doc,.docx,.xls,.xlsx,.csv,.txt,.md,.json,.yaml,.yml",Ee.style.display="none",Ee.addEventListener("change",()=>void ca(Ee.files)),ke=l("button",`${e}-attach`),ke.type="button",ke.innerHTML=Nr,ke.setAttribute("aria-label",a("attachFile")),ke.setAttribute("data-ai-target",ae.attach),ke.title=a("attachFileHint"),ke.addEventListener("click",()=>Ee.click()),te.addEventListener("paste",n=>{let r=n.clipboardData?.files;r&&r.length&&(n.preventDefault(),ca(r))}),on.append(ke,te,vt,Ee)):on.append(te,vt);let pa=l("div",`${e}-chatcol`);pa.append(me,j,St,mt,$e,Le,Pe,on);let wt=l("div",`${e}-pane`);if(L.append(pa,wt),sa(),!document.getElementById(`${e}-av-g`)){let n=document.createElement("div");n.style.cssText="position:absolute;width:0;height:0;overflow:hidden",n.innerHTML=kr,p.append(n)}p.append(C,L);let ua=()=>{E++,w=void 0,Ye(),y.length=0,G(),zn(),j.innerHTML="",t.greeting&&nn(t.greeting),I(),ii(),Vn()},xt=(n,r)=>{he(),He({variant:"pebble",state:"resting",count:0}),L.style.display="flex",L.style.transform="",Re(At());let c=L.getBoundingClientRect();(c.right<40||c.bottom<40||c.left>window.innerWidth-40||c.top>window.innerHeight-40)&&(On(null),Re(null)),C.style.display="none",en=!0,r&&ua(),j.scrollTop=j.scrollHeight,typeof n=="string"&&n.trim()&&(r||!te.value.trim())&&(te.value=n,g(te.value)),te.focus(),Eo(),la(),ii(),S(!0)},sn=()=>{ga(),L.style.display="none",L.style.transform="",L.style.transition="",L.style.height="",L.style.left=L.style.top="",L.style.right=L.style.bottom="",L.classList.remove(`${e}-kb`),C.style.display="flex",S(!1)},Kn=()=>L.style.display==="none"?xt():sn();C.addEventListener("click",xt),Et.addEventListener("click",sn);let ln=null,Eo=()=>{let n=window.visualViewport;if(!n||ln)return;let r=()=>{if(!Rn()||L.style.display==="none"){L.style.height="",L.style.bottom="",L.classList.remove(`${e}-kb`),Re(At());return}L.style.height=`${n.height}px`,L.style.top=`${n.offsetTop}px`,L.style.bottom="auto",L.classList.toggle(`${e}-kb`,n.height<window.innerHeight-80)};r(),n.addEventListener("resize",r),n.addEventListener("scroll",r),ln=()=>{n.removeEventListener("resize",r),n.removeEventListener("scroll",r)}},ga=()=>{ln?.(),ln=null},dn=0,cn=!1;me.addEventListener("touchstart",n=>{!Rn()||n.touches.length!==1||(dn=n.touches[0].clientY,cn=!0,L.style.transition="none")},{passive:!0}),me.addEventListener("touchmove",n=>{if(!cn)return;let r=n.touches[0].clientY-dn;r>0&&(L.style.transform=`translateY(${r}px)`)},{passive:!0});let ha=n=>{if(!cn)return;cn=!1;let r=(n.changedTouches[0]?.clientY??dn)-dn;L.style.transition="transform var(--duration-fast) var(--ease-out)",r>110?(L.style.transform="translateY(100%)",window.setTimeout(sn,230)):L.style.transform=""};me.addEventListener("touchend",ha,{passive:!0}),me.addEventListener("touchcancel",ha,{passive:!0});let nt=!1,fa=n=>{nt=n,L.classList.toggle(`${e}-expanded`,nt),ye&&(ye.innerHTML=nt?Ar:Ei,ye.setAttribute("aria-label",a(nt?"restoreChat":"expandChat")),ye.title=a(nt?"restore":"expand"))};ye&&ye.addEventListener("click",()=>{fa(!nt),Q(!0)});let ba=!1,Yn=!1,je=null,yt=null,Rt=null,Ot=null,ma=t.persistKey?`${H}:adv:${t.persistKey}`:"",va=()=>{ct(ma,le)},wa=n=>{if(!Rt)return;let r=n;try{let c=new URL(n,location.href);r=c.pathname+c.search}catch{}Rt.textContent=r},$t=null,pn=!1,Xn=()=>{try{return yt?.contentWindow?.location?.pathname??null}catch{return null}},un=n=>{if(yt&&Gr(n)){try{$t=new URL(n,location.origin).pathname}catch{$t=null}yt.src=n,wa(n)}},Qn=new Set,Mo=(n,r)=>{!yt||!t.getAdvancedUrl||cr({advanced:le,canNavigate:!0,userConfirmedThisSession:bo(n),userDriven:pn,alreadyFollowed:Qn.has(n),path:r,currentPath:Xn()??$t})&&(Qn.add(n),un(t.getAdvancedUrl(r)))},So=n=>pr({advanced:le,livePath:n,currentPath:Xn()??$t}),xa=n=>{if(Yn=n,L.classList.toggle(`${e}-pane-collapsed`,n),Ot){let r=n?t.expandPaneLabel||"Show page":t.collapsePaneLabel||"Hide page";Ot.setAttribute("aria-label",r),Ot.title=r}},ya=()=>{wt.innerHTML="";let n=l("div",`${e}-pane-bar`),r=l("button",`${e}-icon ${e}-pane-collapse`);r.type="button",r.setAttribute("aria-label",t.collapsePaneLabel||"Hide page"),r.title=t.collapsePaneLabel||"Hide page",r.innerHTML=Mi,r.addEventListener("click",()=>xa(!Yn)),Ot=r,Rt=l("div",`${e}-pane-url`),n.append(r,Rt);let c=l("iframe",`${e}-pane-frame`);c.setAttribute("title",t.advancedLabel||"App preview"),c.addEventListener("load",()=>{let f=Xn();if(f){if(wa(f),$t===null){pn=!0;return}f!==$t&&(pn=!0)}});let u=l("div",`${e}-pane-body`);u.append(c),wt.append(n,u),yt=c,je=Qa(c,{targetOrigin:t.advancedOrigin||location.origin})},Zn=()=>{je?.destroy(),je=null,yt=null,Rt=null,Ot=null,$a(),wt.innerHTML=""},ei=null,$a=()=>{let n=ei;if(ei=null,!!n)try{n()}catch{}},ti=!1,ka=()=>{ti&&(ti=!1,$a(),ya(),t.getAdvancedUrl&&un(t.getAdvancedUrl()))},Io=(n,r,c)=>{if(!le||!t.renderDataWidget)return!1;Zn(),ti=!0;let u=l("div",`${e}-pane-bar`),f=l("button",`${e}-icon`);f.type="button",f.setAttribute("aria-label",a("paneBackToPage")),f.title=a("paneBackToPage"),f.innerHTML=Mi,f.addEventListener("click",()=>ka());let h=l("div",`${e}-pane-url`);h.textContent=a("paneShowingWidget"),u.append(f,h);let b=l("div",`${e}-pane-body`),x=l("div",`${e}-pane-widget`);b.append(x),wt.append(u,b);try{let D=t.renderDataWidget(x,n,r,c);D&&(ei=D)}catch{return ka(),!1}return!0},Ta=()=>{if(!Ae)return;Ae.classList.toggle(`${e}-advbtn-on`,le);let n=le?t.exitAdvancedLabel||"Exit advanced view":t.advancedLabel||"Advanced view";Ae.setAttribute("aria-label",n),Ae.title=n},Ca=n=>{ba=n,L.classList.toggle(`${e}-advanced-full`,n)},ni=t.persistKey?`${H}:advw:${t.persistKey}`:"",it=l("div",`${e}-resizer`);it.setAttribute("role","separator"),it.setAttribute("aria-orientation","vertical");let Aa=t.resizeLabel||"Resize panels";it.setAttribute("aria-label",Aa),it.title=Aa,L.insertBefore(it,wt);let Ho=n=>{let r=L.getBoundingClientRect().width||900,c=Math.max(360,r-360);return Math.round(Math.min(Math.max(n,320),c))},La=(n,r)=>{let c=Ho(n);L.style.setProperty("--aiw-chatw",`${c}px`),r&&jt(ni,String(c))},Ro=()=>{let n=vi(ni);n&&La(parseInt(n,10),!1)},gn=!1,Ea=n=>{gn&&La(n.clientX-L.getBoundingClientRect().left,!0)},Ma=()=>{gn&&(gn=!1,L.classList.remove(`${e}-resizing`),window.removeEventListener("pointermove",Ea),window.removeEventListener("pointerup",Ma))};it.addEventListener("pointerdown",n=>{!le||Yn||(n.preventDefault(),gn=!0,L.classList.add(`${e}-resizing`),window.addEventListener("pointermove",Ea),window.addEventListener("pointerup",Ma))}),it.addEventListener("dblclick",()=>{L.style.removeProperty("--aiw-chatw"),jt(ni,null)});let hn=()=>{le||!t.getAdvancedUrl||(le=!0,xa(!1),L.classList.add(`${e}-advanced`),Gt(),Ca(!0),Ro(),nt&&fa(!1),ya(),pn=!1,Qn.clear(),un(t.getAdvancedUrl()),Ta(),va(),Q(!0))},Oo=()=>{le&&(le=!1,ba&&Ca(!1),L.classList.remove(`${e}-advanced`,`${e}-pane-collapsed`),Re(At()),Zn(),Ta(),va(),Q(!0))};Ae&&Ae.addEventListener("click",()=>le?Oo():hn());let at=async(n,r)=>{if(n==="navigate"&&await Hn(r.path,()=>U,Y),le&&je){if(lt(n)||We(n)){let f=await je.act(n,{target:r.target??"",...r.value!==void 0?{value:r.value}:{}});return f.ok?a("actionShownOnPage"):f.message||a("actionPageFailed")}let c=n==="navigate"?r.path??null:t.resolveActionPath?.(n,r)??null,u=Je(c)?c:null;if(u!=null&&t.getAdvancedUrl)return un(t.getAdvancedUrl(u)),a("actionOpened")}return t.onWidgetAction?t.onWidgetAction(n,r):void 0};ze&&t.listThreads&&ze.addEventListener("click",()=>void Bo()),ht.addEventListener("click",()=>{ua(),te.focus()});let Sa=0;async function ii(){let n=!k&&!y.some(f=>f.role==="user");if(!t.getSuggestions||!n){$e.style.display="none",$e.innerHTML="";return}let r=++Sa,c=[];try{c=await t.getSuggestions()??[]}catch{c=[]}if(r!==Sa)return;let u=!k&&!y.some(f=>f.role==="user");if(c=c.filter(f=>f&&f.trim()).slice(0,4),$e.innerHTML="",!c.length||!u){$e.style.display="none";return}for(let f of c){let h=l("button",`${e}-suggestion`);h.type="button",h.textContent=f,h.addEventListener("click",()=>{$e.style.display="none",$e.innerHTML="",rt(f)}),$e.appendChild(h)}$e.style.display="flex",Q(!0)}function No(){if(!t.signupUrl)return;let n=l("div",`${e}-cta`),r=document.createElement("a");r.className=`${e}-cta-btn`,r.href=t.signupUrl,r.textContent=a("signupCta"),n.appendChild(r),j.appendChild(n),Q(!0)}function Po(){let n=y.filter(b=>b.content.trim().length>0);if(n.length===0)return;let r=n.map(b=>`${b.role==="user"?"You":s}:
919
919
  ${b.content}
920
920
  `),c="\uFEFF"+[`${s} \u2014 conversation`,"=".repeat(40),"",...r].join(`