@hydra-acp/browser 0.1.43 → 0.1.45

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 (2) hide show
  1. package/dist/ui/index.html +18 -17
  2. package/package.json +1 -1
@@ -374,10 +374,11 @@ pre code { background: transparent; padding: 0; }
374
374
  .diag-value { font-size: 0.75rem; word-break: break-all; text-align: right; }
375
375
  .show-earlier { align-self: center; margin-bottom: 0.5rem; padding: 0.35rem 0.9rem; border-radius: 999px; border: 1px solid var(--border); background: var(--panel-2); color: var(--muted); font-size: 0.82rem; cursor: pointer; }
376
376
  .show-earlier:hover { background: var(--panel); color: var(--fg); }
377
- .msg { padding: 0.6rem 0.9rem; border-radius: 10px; max-width: 100%; word-wrap: break-word; }
377
+ .msg { padding: 0.6rem 0.9rem; border-radius: 10px; max-width: 100%; min-width: 0; word-wrap: break-word; }
378
378
  .msg.user { background: var(--user-bg); border: 1px solid var(--border); align-self: flex-end; max-width: 97%; }
379
379
  .msg.agent { background: var(--agent-bg); border: 1px solid var(--border); align-self: flex-start; max-width: 97%; }
380
380
  .msg.system { background: var(--panel-2); border: 1px solid var(--border); color: var(--muted); font-size: 0.85rem; align-self: flex-start; max-width: 70%; cursor: pointer; }
381
+ .msg.system.thought { max-width: 97%; }
381
382
  .msg.system.collapsed .body { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
382
383
  .msg.error { background: rgba(249,117,131,0.1); border: 1px solid var(--bad); color: var(--bad); }
383
384
  .msg .body { margin: 0; }
@@ -418,7 +419,7 @@ pre code { background: transparent; padding: 0; }
418
419
 
419
420
  .toolcard { background: var(--tool-bg); border: 1px solid var(--border); border-radius: 8px; padding: 0; align-self: stretch; }
420
421
  .toolcard .head { padding: 0.5rem 0.75rem; display: flex; gap: 0.5rem; align-items: center; cursor: pointer; }
421
- .toolcard .head .title { flex: 1; font-size: 0.9rem; }
422
+ .toolcard .head .title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.9rem; }
422
423
  .toolcard .head .kind { color: var(--muted); font-size: 0.8rem; }
423
424
  .toolcard .body { display: none; padding: 0 0.75rem 0.75rem; border-top: 1px solid var(--border); }
424
425
  .toolcard.open .body { display: block; }
@@ -640,26 +641,26 @@ html[data-theme="light"] .hljs{color:#24292e}html[data-theme="light"] .hljs-doct
640
641
  </head>
641
642
  <body>
642
643
  <div id="app"></div>
643
- <script nonce="__CSP_NONCE__">"use strict";(()=>{var Fa=Object.create;var Xs=Object.defineProperty;var $a=Object.getOwnPropertyDescriptor;var Ua=Object.getOwnPropertyNames;var qa=Object.getPrototypeOf,Ka=Object.prototype.hasOwnProperty;var za=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Wa=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ua(t))!Ka.call(e,r)&&r!==n&&Xs(e,r,{get:()=>t[r],enumerable:!(s=$a(t,r))||s.enumerable});return e};var Ga=(e,t,n)=>(n=e!=null?Fa(qa(e)):{},Wa(t||!e||!e.__esModule?Xs(n,"default",{value:e,enumerable:!0}):n,e));var vr=za((ef,wr)=>{function lr(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let n=e[t],s=typeof n;(s==="object"||s==="function")&&!Object.isFrozen(n)&&lr(n)}),e}var Ft=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function ur(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function Ie(e,...t){let n=Object.create(null);for(let s in e)n[s]=e[s];return t.forEach(function(s){for(let r in s)n[r]=s[r]}),n}var Ya="</span>",sr=e=>!!e.scope,Xa=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let n=e.split(".");return[`${t}${n.shift()}`,...n.map((s,r)=>`${s}${"_".repeat(r+1)}`)].join(" ")}return`${t}${e}`},zn=class{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=ur(t)}openNode(t){if(!sr(t))return;let n=Xa(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){sr(t)&&(this.buffer+=Ya)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}},rr=(e={})=>{let t={children:[]};return Object.assign(t,e),t},Wn=class e{constructor(){this.rootNode=rr(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){let n=rr({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(s=>this._walk(t,s)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{e._collapse(n)}))}},Gn=class extends Wn{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){let s=t.root;n&&(s.scope=`language:${n}`),this.add(s)}toHTML(){return new zn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function yt(e){return e?typeof e=="string"?e:e.source:null}function dr(e){return Oe("(?=",e,")")}function Qa(e){return Oe("(?:",e,")*")}function Va(e){return Oe("(?:",e,")?")}function Oe(...e){return e.map(n=>yt(n)).join("")}function Za(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ut(...e){return"("+(Za(e).capture?"":"?:")+e.map(s=>yt(s)).join("|")+")"}function fr(e){return new RegExp(e.toString()+"|").exec("").length-1}function ja(e,t){let n=e&&e.exec(t);return n&&n.index===0}var Ja=new RegExp(Ut(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Xn(e,{joinWith:t}){let n=0;return e.map(s=>{n+=1;let r=n,i=yt(s),a="";for(;i.length>0;){let c=Ja.exec(i);if(!c){a+=i;break}a+=i.substring(0,c.index),i=i.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?a+="\\"+String(Number(c[1])+r):(a+=c[0],(c[0]==="("||/^\(\?[<']/.test(c[0]))&&n++)}return a}).map(s=>`(${s})`).join(t)}var ec=/\b\B/,pr="[a-zA-Z]\\w*",Qn="[a-zA-Z_]\\w*",gr="\\b\\d+(\\.\\d+)?",mr="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",hr="\\b(0b[01]+)",tc="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",nc=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=Oe(t,/.*\b/,e.binary,/\b.*/)),Ie({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,s)=>{n.index!==0&&s.ignoreMatch()}},e)},_t={begin:"\\\\[\\s\\S]",relevance:0},sc={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[_t]},rc={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[_t]},oc={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},qt=function(e,t,n={}){let s=Ie({scope:"comment",begin:e,end:t,contains:[]},n);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let r=Ut("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return s.contains.push({begin:Oe(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s},ic=qt("//","$"),ac=qt("/\\*","\\*/"),cc=qt("#","$"),lc={scope:"number",begin:gr,relevance:0},uc={scope:"number",begin:mr,relevance:0},dc={scope:"number",begin:hr,relevance:0},fc={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[_t,{begin:/\[/,end:/\]/,relevance:0,contains:[_t]}]},pc={scope:"title",begin:pr,relevance:0},gc={scope:"title",begin:Qn,relevance:0},mc={begin:"\\.\\s*"+Qn,relevance:0},hc=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})},Ht=Object.freeze({__proto__:null,APOS_STRING_MODE:sc,BACKSLASH_ESCAPE:_t,BINARY_NUMBER_MODE:dc,BINARY_NUMBER_RE:hr,COMMENT:qt,C_BLOCK_COMMENT_MODE:ac,C_LINE_COMMENT_MODE:ic,C_NUMBER_MODE:uc,C_NUMBER_RE:mr,END_SAME_AS_BEGIN:hc,HASH_COMMENT_MODE:cc,IDENT_RE:pr,MATCH_NOTHING_RE:ec,METHOD_GUARD:mc,NUMBER_MODE:lc,NUMBER_RE:gr,PHRASAL_WORDS_MODE:oc,QUOTE_STRING_MODE:rc,REGEXP_MODE:fc,RE_STARTERS_RE:tc,SHEBANG:nc,TITLE_MODE:pc,UNDERSCORE_IDENT_RE:Qn,UNDERSCORE_TITLE_MODE:gc});function bc(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Ec(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function yc(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=bc,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function _c(e,t){Array.isArray(e.illegal)&&(e.illegal=Ut(...e.illegal))}function wc(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function vc(e,t){e.relevance===void 0&&(e.relevance=1)}var Sc=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let n=Object.assign({},e);Object.keys(e).forEach(s=>{delete e[s]}),e.keywords=n.keywords,e.begin=Oe(n.beforeMatch,dr(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},Tc=["of","and","for","in","not","or","if","then","parent","list","value"],Ic="keyword";function br(e,t,n=Ic){let s=Object.create(null);return typeof e=="string"?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach(function(i){Object.assign(s,br(e[i],t,i))}),s;function r(i,a){t&&(a=a.map(c=>c.toLowerCase())),a.forEach(function(c){let u=c.split("|");s[u[0]]=[i,Ac(u[0],u[1])]})}}function Ac(e,t){return t?Number(t):Cc(e)?0:1}function Cc(e){return Tc.includes(e.toLowerCase())}var or={},Re=e=>{console.error(e)},ir=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Xe=(e,t)=>{or[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),or[`${e}/${t}`]=!0)},$t=new Error;function Er(e,t,{key:n}){let s=0,r=e[n],i={},a={};for(let c=1;c<=t.length;c++)a[c+s]=r[c],i[c+s]=!0,s+=fr(t[c-1]);e[n]=a,e[n]._emit=i,e[n]._multi=!0}function Mc(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Re("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),$t;if(typeof e.beginScope!="object"||e.beginScope===null)throw Re("beginScope must be object"),$t;Er(e,e.begin,{key:"beginScope"}),e.begin=Xn(e.begin,{joinWith:""})}}function xc(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Re("skip, excludeEnd, returnEnd not compatible with endScope: {}"),$t;if(typeof e.endScope!="object"||e.endScope===null)throw Re("endScope must be object"),$t;Er(e,e.end,{key:"endScope"}),e.end=Xn(e.end,{joinWith:""})}}function kc(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Nc(e){kc(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Mc(e),xc(e)}function Rc(e){function t(a,c){return new RegExp(yt(a),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=fr(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let c=this.regexes.map(u=>u[1]);this.matcherRe=t(Xn(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;let u=this.matcherRe.exec(c);if(!u)return null;let d=u.findIndex((p,g)=>g>0&&p!==void 0),f=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,f)}}class s{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];let u=new n;return this.rules.slice(c).forEach(([d,f])=>u.addRule(d,f)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){let u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){let f=this.getMatcher(0);f.lastIndex=this.lastIndex+1,d=f.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function r(a){let c=new s;return a.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),a.terminatorEnd&&c.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&c.addRule(a.illegal,{type:"illegal"}),c}function i(a,c){let u=a;if(a.isCompiled)return u;[Ec,wc,Nc,Sc].forEach(f=>f(a,c)),e.compilerExtensions.forEach(f=>f(a,c)),a.__beforeBegin=null,[yc,_c,vc].forEach(f=>f(a,c)),a.isCompiled=!0;let d=null;return typeof a.keywords=="object"&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),d=a.keywords.$pattern,delete a.keywords.$pattern),d=d||/\w+/,a.keywords&&(a.keywords=br(a.keywords,e.case_insensitive)),u.keywordPatternRe=t(d,!0),c&&(a.begin||(a.begin=/\B|\b/),u.beginRe=t(u.begin),!a.end&&!a.endsWithParent&&(a.end=/\B|\b/),a.end&&(u.endRe=t(u.end)),u.terminatorEnd=yt(u.end)||"",a.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(a.end?"|":"")+c.terminatorEnd)),a.illegal&&(u.illegalRe=t(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(f){return Oc(f==="self"?a:f)})),a.contains.forEach(function(f){i(f,u)}),a.starts&&i(a.starts,c),u.matcher=r(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ie(e.classNameAliases||{}),i(e)}function yr(e){return e?e.endsWithParent||yr(e.starts):!1}function Oc(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Ie(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:yr(e)?Ie(e,{starts:e.starts?Ie(e.starts):null}):Object.isFrozen(e)?Ie(e):e}var Lc="11.12.0",Yn=class extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}},Kn=ur,ar=Ie,cr=Symbol("nomatch"),Dc=7,_r=function(e){let t=Object.create(null),n=Object.create(null),s=[],r=!0,i="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]},c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Gn};function u(h){return c.noHighlightRe.test(h)}function d(h){let I=h.className+" ";I+=h.parentNode?h.parentNode.className:"";let A=c.languageDetectRe.exec(I);if(A){let O=H(A[1]);return O||(ir(i.replace("{}",A[1])),ir("Falling back to no-highlight mode for this block.",h)),O?A[1]:"no-highlight"}return I.split(/\s+/).find(O=>u(O)||H(O))}function f(h,I,A){let O="",F="";typeof I=="object"?(O=h,A=I.ignoreIllegals,F=I.language):(Xe("10.7.0","highlight(lang, code, ...args) has been deprecated."),Xe("10.7.0",`Please use highlight(code, options) instead.
644
- https://github.com/highlightjs/highlight.js/issues/2277`),F=h,O=I),A===void 0&&(A=!0);let K={code:O,language:F};X("before:highlight",K);let W=K.result?K.result:p(K.language,K.code,A);return W.code=K.code,X("after:highlight",W),W}function p(h,I,A,O){let F=Object.create(null);function K(v,M){return v.keywords[M]}function W(){if(!N.keywords){j.addText(z);return}let v=0;N.keywordPatternRe.lastIndex=0;let M=N.keywordPatternRe.exec(z),D="";for(;M;){D+=z.substring(v,M.index);let $=ae.case_insensitive?M[0].toLowerCase():M[0],ee=K(N,$);if(ee){let[ye,Ba]=ee;if(j.addText(D),D="",F[$]=(F[$]||0)+1,F[$]<=Dc&&(Pt+=Ba),ye.startsWith("_"))D+=M[0];else{let Ha=ae.classNameAliases[ye]||ye;oe(M[0],Ha)}}else D+=M[0];v=N.keywordPatternRe.lastIndex,M=N.keywordPatternRe.exec(z)}D+=z.substring(v),j.addText(D)}function ie(){if(z==="")return;let v=null;if(typeof N.subLanguage=="string"){if(!t[N.subLanguage]){j.addText(z);return}v=p(N.subLanguage,z,!0,Dt[N.subLanguage]),Dt[N.subLanguage]=v._top}else v=m(z,N.subLanguage.length?N.subLanguage:null);N.relevance>0&&(Pt+=v.relevance),j.__addSublanguage(v._emitter,v.language)}function se(){N.subLanguage!=null?ie():W(),z=""}function oe(v,M){v!==""&&(j.startScope(M),j.addText(v),j.endScope())}function Ke(v,M){let D=1,$=M.length-1;for(;D<=$;){if(!v._emit[D]){D++;continue}let ee=ae.classNameAliases[v[D]]||v[D],ye=M[D];ee?oe(ye,ee):(z=ye,W(),z=""),D++}}function Ot(v,M){return v.scope&&typeof v.scope=="string"&&j.openNode(ae.classNameAliases[v.scope]||v.scope),v.beginScope&&(v.beginScope._wrap?(oe(z,ae.classNameAliases[v.beginScope._wrap]||v.beginScope._wrap),z=""):v.beginScope._multi&&(Ke(v.beginScope,M),z="")),N=Object.create(v,{parent:{value:N}}),N}function Et(v,M,D){let $=ja(v.endRe,D);if($){if(v["on:end"]){let ee=new Ft(v);v["on:end"](M,ee),ee.isMatchIgnored&&($=!1)}if($){for(;v.endsParent&&v.parent;)v=v.parent;return v}}if(v.endsWithParent)return Et(v.parent,M,D)}function Pn(v){return N.matcher.regexIndex===0?(z+=v[0],1):(Un=!0,0)}function Bn(v){let M=v[0],D=v.rule,$=new Ft(D),ee=[D.__beforeBegin,D["on:begin"]];for(let ye of ee)if(ye&&(ye(v,$),$.isMatchIgnored))return Pn(M);return D.skip?z+=M:(D.excludeBegin&&(z+=M),se(),!D.returnBegin&&!D.excludeBegin&&(z=M)),Ot(D,v),D.returnBegin?0:M.length}function Hn(v){let M=v[0],D=I.substring(v.index),$=Et(N,v,D);if(!$)return cr;let ee=N;N.endScope&&N.endScope._wrap?(se(),oe(M,N.endScope._wrap)):N.endScope&&N.endScope._multi?(se(),Ke(N.endScope,v)):ee.skip?z+=M:(ee.returnEnd||ee.excludeEnd||(z+=M),se(),ee.excludeEnd&&(z=M));do N.scope&&j.closeNode(),!N.skip&&!N.subLanguage&&(Pt+=N.relevance),N=N.parent;while(N!==$.parent);return $.starts&&Ot($.starts,v),ee.returnEnd?0:M.length}function Fn(){let v=[];for(let M=N;M!==ae;M=M.parent)M.scope&&v.unshift(M.scope);v.forEach(M=>j.openNode(M))}let ze={};function Lt(v,M){let D=M&&M[0];if(z+=v,D==null)return se(),0;if(ze.type==="begin"&&M.type==="end"&&ze.index===M.index&&D===""){if(z+=I.slice(M.index,M.index+1),!r){let $=new Error(`0 width match regex (${h})`);throw $.languageName=h,$.badRule=ze.rule,$}return 1}if(ze=M,M.type==="begin")return Bn(M);if(M.type==="illegal"&&!A){let $=new Error('Illegal lexeme "'+D+'" for mode "'+(N.scope||"<unnamed>")+'"');throw $.mode=N,$}else if(M.type==="end"){let $=Hn(M);if($!==cr)return $}if(M.type==="illegal"&&D==="")return M.index===I.length||(z+=`
645
- `),1;if($n>1e5&&$n>M.index*3)throw new Error("potential infinite loop, way more iterations than matches");return z+=D,D.length}let ae=H(h);if(!ae)throw Re(i.replace("{}",h)),new Error('Unknown language: "'+h+'"');let U=Rc(ae),ve="",N=O||U,Dt={},j=new c.__emitter(c);Fn();let z="",Pt=0,Ne=0,$n=0,Un=!1;try{if(ae.__emitTokens)ae.__emitTokens(I,j);else{for(N.matcher.considerAll();;){$n++,Un?Un=!1:N.matcher.considerAll(),N.matcher.lastIndex=Ne;let v=N.matcher.exec(I);if(!v)break;let M=I.substring(Ne,v.index),D=Lt(M,v);Ne=v.index+D}Lt(I.substring(Ne))}return j.finalize(),ve=j.toHTML(),{language:h,value:ve,relevance:Pt,illegal:!1,_emitter:j,_top:N}}catch(v){if(v.message&&v.message.includes("Illegal"))return{language:h,value:Kn(I),illegal:!0,relevance:0,_illegalBy:{message:v.message,index:Ne,context:I.slice(Ne-100,Ne+100),mode:v.mode,resultSoFar:ve},_emitter:j};if(r)return{language:h,value:Kn(I),illegal:!1,relevance:0,errorRaised:v,_emitter:j,_top:N};throw v}}function g(h){let I={value:Kn(h),illegal:!1,relevance:0,_top:a,_emitter:new c.__emitter(c)};return I._emitter.addText(h),I}function m(h,I){I=I||c.languages||Object.keys(t);let A=g(h),O=I.filter(H).filter(Y).map(se=>p(se,h,!1));O.unshift(A);let F=O.sort((se,oe)=>{if(se.relevance!==oe.relevance)return oe.relevance-se.relevance;if(se.language&&oe.language){if(H(se.language).supersetOf===oe.language)return 1;if(H(oe.language).supersetOf===se.language)return-1}return 0}),[K,W]=F,ie=K;return ie.secondBest=W,ie}function _(h,I,A){let O=I&&n[I]||A;h.classList.add("hljs"),h.classList.add(`language-${O}`)}function w(h){let I=null,A=d(h);if(u(A))return;if(X("before:highlightElement",{el:h,language:A}),h.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",h);return}if(h.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(h)),c.throwUnescapedHTML))throw new Yn("One of your code blocks includes unescaped HTML.",h.innerHTML);I=h;let O=I.textContent,F=A?f(O,{language:A,ignoreIllegals:!0}):m(O);h.innerHTML=F.value,h.dataset.highlighted="yes",_(h,A,F.language),h.result={language:F.language,re:F.relevance,relevance:F.relevance},F.secondBest&&(h.secondBest={language:F.secondBest.language,relevance:F.secondBest.relevance}),X("after:highlightElement",{el:h,result:F,text:O})}function S(h){c=ar(c,h)}let b=()=>{C(),Xe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function E(){C(),Xe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let x=!1;function C(){function h(){C()}if(document.readyState==="loading"){x||window.addEventListener("DOMContentLoaded",h,!1),x=!0;return}document.querySelectorAll(c.cssSelector).forEach(w)}function R(h,I){let A=null;try{A=I(e)}catch(O){if(Re("Language definition for '{}' could not be registered.".replace("{}",h)),r)Re(O);else throw O;A=a}A.name||(A.name=h),t[h]=A,A.rawDefinition=I.bind(null,e),A.aliases&&P(A.aliases,{languageName:h})}function L(h){delete t[h];for(let I of Object.keys(n))n[I]===h&&delete n[I]}function B(){return Object.keys(t)}function H(h){return h=(h||"").toLowerCase(),t[h]||t[n[h]]}function P(h,{languageName:I}){typeof h=="string"&&(h=[h]),h.forEach(A=>{n[A.toLowerCase()]=I})}function Y(h){let I=H(h);return I&&!I.disableAutodetect}function Q(h){h["before:highlightBlock"]&&!h["before:highlightElement"]&&(h["before:highlightElement"]=I=>{h["before:highlightBlock"](Object.assign({block:I.el},I))}),h["after:highlightBlock"]&&!h["after:highlightElement"]&&(h["after:highlightElement"]=I=>{h["after:highlightBlock"](Object.assign({block:I.el},I))})}function Z(h){Q(h),s.push(h)}function ue(h){let I=s.indexOf(h);I!==-1&&s.splice(I,1)}function X(h,I){let A=h;s.forEach(function(O){O[A]&&O[A](I)})}function V(h){return Xe("10.7.0","highlightBlock will be removed entirely in v12.0"),Xe("10.7.0","Please use highlightElement now."),w(h)}Object.assign(e,{highlight:f,highlightAuto:m,highlightAll:C,highlightElement:w,highlightBlock:V,configure:S,initHighlighting:b,initHighlightingOnLoad:E,registerLanguage:R,unregisterLanguage:L,listLanguages:B,getLanguage:H,registerAliases:P,autoDetection:Y,inherit:ar,addPlugin:Z,removePlugin:ue}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=Lc,e.regex={concat:Oe,lookahead:dr,either:Ut,optional:Va,anyNumberOfTimes:Qa};for(let h in Ht)typeof Ht[h]=="object"&&lr(Ht[h]);return Object.assign(e,Ht),e},Qe=_r({});Qe.newInstance=()=>_r({});wr.exports=Qe;Qe.HighlightJS=Qe;Qe.default=Qe});var We=[];function Qs(e,t){t<120||(We.push({label:e,ms:t,at:Date.now()}),We.sort((n,s)=>s.ms-n.ms),We.length>6&&(We.length=6))}function Se(e,t){let n=performance.now();try{return t()}finally{Qs(e,performance.now()-n)}}function Vs(){if(!(typeof PerformanceObserver>"u"))try{new PerformanceObserver(e=>{for(let t of e.getEntries())Qs(`longtask/${t.name??"?"}`,t.duration)}).observe({entryTypes:["longtask"]})}catch{}}var Bt=new Map;function Ge(e){Bt.set(e,(Bt.get(e)??0)+1)}function Zs(){return Bt.size===0?"none":[...Bt.entries()].map(([e,t])=>`${e}:${t}`).join(" ")}function js(){return We.length===0?"none >120ms":We.map(e=>`${e.label} ${Math.round(e.ms)}ms`).join(" | ")}function l(e,t,...n){let s=document.createElement(e);if(t)for(let[r,i]of Object.entries(t))i==null||i===!1||(r==="class"?s.className=i:r.startsWith("on")&&typeof i=="function"?s.addEventListener(r.slice(2).toLowerCase(),i):r==="html"?s.innerHTML=i:s.setAttribute(r,String(i)));for(let r of n)if(!(r==null||r===!1))if(Array.isArray(r))for(let i of r)Js(s,i);else Js(s,r);return s}var qn=10;function Ye(){let e=window.getSelection();return!!e&&!e.isCollapsed&&e.toString().length>0}function Te(e){return e instanceof HTMLElement?e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT"||e.isContentEditable:!1}function er(){return window.matchMedia("(hover: hover) and (pointer: fine)").matches}var tr="(min-width: 1000px)";function J(){return window.matchMedia(tr).matches}function nr(e){window.matchMedia(tr).addEventListener("change",e)}function T(e){let t=!1,n=0,s=0;return{onpointerdown:r=>{if(Te(r.target))return;let i=r;i.pointerType==="mouse"&&i.button!==0||(n=i.clientX,s=i.clientY,r.preventDefault(),r.stopPropagation())},onpointerup:r=>{if(Te(r.target))return;let i=r;i.pointerType==="mouse"&&i.button!==0||(r.stopPropagation(),!(Math.hypot(i.clientX-n,i.clientY-s)>qn)&&(Ye()||(t=!0,e(r))))},onclick:r=>{if(!Te(r.target)){if(r.stopPropagation(),t){t=!1;return}Ye()||e(r)}}}}function Js(e,t){t==null||t===!1||(t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t))))}var Sr=Ga(vr(),1);var G=Sr.default;function Tr(e){let t=e.regex,n={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});let r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,r]};r.contains.push(c);let u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},f={match:/\\'/},p={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},g=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],m=e.SHEBANG({binary:`(${g.join("|")})`,relevance:10}),_={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},w=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],S=["true","false"],b={match:/(\/[a-z._-]+)+/},E=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],x=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],C=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],R=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:w,literal:S,built_in:[...E,...x,"set","shopt",...C,...R]},contains:[m,e.SHEBANG(),_,p,i,a,b,c,u,d,f,n]}}function Ir(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="("+s+"|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",c=t.concat(/\batomic_/,t.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),u={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:c}]},f={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},p={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},g={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},f,{scope:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},m={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(f,{className:"string"}),n,e.C_BLOCK_COMMENT_MODE]},_=[g,m],w={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},S=t.optional(r)+e.IDENT_RE+"\\s*\\(",b=12,C={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},R=[..._,u,n,e.C_BLOCK_COMMENT_MODE,p,f],L={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:C,contains:R.concat([{begin:/\(/,end:/\)/,keywords:C,contains:R.concat(["self"]),relevance:0}]),relevance:0},B={begin:"("+a+"[\\*&\\s]+){1,"+b+"}"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:C,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:C,relevance:0},{begin:S,returnBegin:!0,contains:[e.inherit(w,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,f,p,u,{begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,f,p,u]}]},u,n,e.C_BLOCK_COMMENT_MODE,..._]};return{name:"C",aliases:["h"],keywords:C,disableAutodetect:!0,illegal:"</",contains:[].concat(L,B,R,[..._,{begin:e.IDENT_RE+"::",keywords:C},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:m,strings:f,keywords:C}}}function Ar(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="(?!struct)("+s+"|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},f={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},p={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},d,{scope:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},g={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),n,e.C_BLOCK_COMMENT_MODE]},m=[p,g],_={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},w=t.optional(r)+e.IDENT_RE+"\\s*\\(",S=12,b=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],E=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],x=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],C=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],B={type:E,keyword:b,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:x},H={className:"function.dispatch",relevance:0,keywords:{_hint:C},begin:t.concat(/\b/,`(?!${b.join("|")})`,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},P=[H,...m,c,n,e.C_BLOCK_COMMENT_MODE,f,d],Y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:B,contains:P.concat([{begin:/\(/,end:/\)/,keywords:B,contains:P.concat(["self"]),relevance:0}]),relevance:0},Q={className:"function",begin:"("+a+"[\\*&\\s]+){1,"+S+"}"+w,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:B,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:B,relevance:0},{begin:w,returnBegin:!0,contains:[_],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[d,f]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,d,f,c,{begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,d,f,c]}]},c,n,e.C_BLOCK_COMMENT_MODE,...m]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:B,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(Y,Q,H,P,[...m,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:B,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:B},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}var Pc=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Bc=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Hc=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Fc=[...Bc,...Hc],$c=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Uc=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),qc=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Kc=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Cr(e){let t=e.regex,n=Pc(e),s={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",i=/@-?\w[\w]*(-\w+)*/,a="[a-zA-Z-][a-zA-Z0-9_-]*",c=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,s,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+a,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Uc.join("|")+")"},{begin:":(:)?("+qc.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Kc.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,n.UNICODE_RANGE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:$c.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Fc.join("|")+")\\b"}]}}function Mr(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function xr(e){let i={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:i,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,illegal:/["']/}]}]}}function kr(e){let t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let r={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},i={className:"literal",begin:/\bon|off|true|false|yes|no\b/},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[s,i,r,a,n,"self"],relevance:0},u=/[A-Za-z0-9_-]+/,d=/"(\\"|[^"])*"/,f=/'[^']*'/,p=t.either(u,d,f),g=t.concat(p,"(\\s*\\.\\s*",p,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{begin:g,className:"attr",starts:{end:/$/,contains:[s,c,i,r,a,n]}}]}}var Ve="[0-9](_*[0-9])*",Kt=`\\.(${Ve})`,zt="[0-9a-fA-F](_*[0-9a-fA-F])*",Nr={className:"number",variants:[{begin:`(\\b(${Ve})((${Kt})|\\.)?|(${Kt}))[eE][+-]?(${Ve})[fFdD]?\\b`},{begin:`\\b(${Ve})((${Kt})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Kt})[fFdD]?\\b`},{begin:`\\b(${Ve})[fFdD]\\b`},{begin:`\\b0[xX]((${zt})\\.?|(${zt})?\\.(${zt}))[pP][+-]?(${Ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${zt})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Rr(e,t,n){return n===-1?"":e.replace(t,s=>Rr(e,t,n-1))}function Or(e){let t=e.regex,n="[\xC0-\u02B8a-zA-Z_$][\xC0-\u02B8a-zA-Z_$0-9]*",s="(?:(?:\\s*\\[\\s*])+)?",r=n+"<@@@>"+s,a="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+r+")?")+"|"+r+")",c=Rr("(?:\\s*<\\s*"+a+"(?:\\s*,\\s*"+a+")*\\s*>)?",/<@@@>/g,2),g={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},m={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},_={className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:g,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[n,t.concat(c,s,/\s+/),n,s,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[_,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[n,t.concat(c,s,/\s+/),n,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:g,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[m,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Nr,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Nr,m]}}var Lr="[A-Za-z$_][0-9A-Za-z$_]*",zc=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Wc=["true","false","null","undefined","NaN","Infinity"],Dr=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Pr=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Br=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Gc=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Yc=[].concat(Br,Dr,Pr);function Hr(e){let t=e.regex,n=(A,{after:O})=>{let F="</"+A[0].slice(1);return A.input.indexOf(F,O)!==-1},s=Lr,r={begin:"<>",end:"</>"},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(A,O)=>{let F=A[0].length+A.index,K=A.input[F];if(K==="<"||K===","){O.ignoreMatch();return}K===">"&&(n(A,{after:F})||O.ignoreMatch());let W,ie=A.input.substring(F);if(W=ie.match(/^\s*=/)){O.ignoreMatch();return}if((W=ie.match(/^\s+extends\s+/))&&W.index===0){O.ignoreMatch();return}}},c={$pattern:Lr,keyword:zc,literal:Wc,built_in:Yc,"variable.language":Gc},u="[0-9](_?[0-9])*",d=`\\.(${u})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${f})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${f})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},m={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},_={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"css"}},w={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,g]},E={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},x=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,_,w,S,{match:/\$\d+/},p];g.contains=x.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(x)});let C=[].concat(E,g.contains),R=C.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(C)}]),L={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:R},B={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,t.concat(s,"(",t.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Dr,...Pr]}},P={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},Y={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[L],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Z(A){return t.concat("(?!",A.join("|"),")")}let ue={match:t.concat(/\b/,Z([...Br,"super","import","await"].map(A=>`${A}\\s*\\(`)),s,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:t.concat(/\./,t.lookahead(t.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},L]},h="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",I={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(h)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[L]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:R,CLASS_REFERENCE:H},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),P,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,_,w,S,E,{match:/\$\d+/},p,H,{scope:"attr",match:s+t.lookahead(":"),relevance:0},I,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[E,e.REGEXP_MODE,{className:"function",begin:h,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:R}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},Y,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[L,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[L]},ue,Q,B,V,{match:/\$[(.]/}]}}var Xc="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",Qc={scope:"number",match:Xc,relevance:0};function Fr(e){let t={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},s=["true","false","null"],r={scope:"literal",beginKeywords:s.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:s},contains:[t,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,Qc,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Ze="[0-9](_*[0-9])*",Wt=`\\.(${Ze})`,Gt="[0-9a-fA-F](_*[0-9a-fA-F])*",Vc={className:"number",variants:[{begin:`(\\b(${Ze})((${Wt})|\\.)?|(${Wt}))[eE][+-]?(${Ze})[fFdD]?\\b`},{begin:`\\b(${Ze})((${Wt})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Wt})[fFdD]?\\b`},{begin:`\\b(${Ze})[fFdD]\\b`},{begin:`\\b0[xX]((${Gt})\\.?|(${Gt})?\\.(${Gt}))[pP][+-]?(${Ze})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Gt})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function $r(e){let t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},s={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},a={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,i,r]}]};r.contains.push(a);let c={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},u={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(a,{className:"string"}),"self"]}]},d=Vc,f=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),p={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},g=p;return g.variants[1].contains=[p],p.variants[1].contains=[g],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,f,n,s,c,u,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[p,e.C_LINE_COMMENT_MODE,f],relevance:0},e.C_LINE_COMMENT_MODE,f,c,u,a,e.C_NUMBER_MODE]},f]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,u]},a,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
646
- `},d]}}function Ur(e){let t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},s={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},i={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},a={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},d={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},f={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},p=e.inherit(d,{contains:[]}),g=e.inherit(f,{contains:[]});d.contains.push(g),f.contains.push(p);let m=[n,u];return[d,f,p,g].forEach(b=>{b.contains=b.contains.concat(m)}),m=m.concat(d,f),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:m},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:m}]}]},n,i,s,d,f,{className:"quote",begin:"^>\\s+",contains:m,end:"$"},r,u,a,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function qr(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,s=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),r=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),i=t.concat(/[A-Z]+/,n),a={scope:"variable",match:"\\$+"+s},c={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},u={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},d=e.inherit(e.APOS_STRING_MODE,{illegal:null}),f=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(u)}),p={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(u),"on:begin":(X,V)=>{V.data._beginMatch=X[1]||X[2]},"on:end":(X,V)=>{V.data._beginMatch!==X[1]&&V.ignoreMatch()}},g=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),m=`[
647
- ]`,_={scope:"string",variants:[f,d,p,g]},w={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},S=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],E=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],C={keyword:b,literal:(X=>{let V=[];return X.forEach(h=>{V.push(h),h.toLowerCase()===h?V.push(h.toUpperCase()):V.push(h.toLowerCase())}),V})(S),built_in:E},R=X=>X.map(V=>V.replace(/\|\d+$/,"")),L={variants:[{match:[/new/,t.concat(m,"+"),t.concat("(?!",R(E).join("\\b|"),"\\b)"),r],scope:{1:"keyword",4:"title.class"}}]},B=t.concat(s,"\\b(?!\\()"),H={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),B],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,t.concat(/::/,t.lookahead(/(?!class\b)/)),B],scope:{1:"title.class",3:"variable.constant"}},{match:[r,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},P={scope:"attr",match:t.concat(s,t.lookahead(":"),t.lookahead(/(?!::)/))},Y={relevance:0,begin:/\(/,end:/\)/,keywords:C,contains:[P,a,H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,_,w,L]},Q={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",R(b).join("\\b|"),"|",R(E).join("\\b|"),"\\b)"),s,t.concat(m,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[Y]};Y.contains.push(Q);let Z=[P,H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,_,w,L],ue={begin:t.concat(/#\[\s*\\?/,t.either(r,i)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...Z]},...Z,{scope:"meta",variants:[{match:r},{match:i}]}]};return{case_insensitive:!1,keywords:C,contains:[ue,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},c,{scope:"variable.language",match:/\$this\b/},a,Q,H,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},L,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:C,contains:["self",ue,a,H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,_,w]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},_,w]}}function Kr(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},p={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,f,d]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,f,d]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},g="[0-9](_?[0-9])*",m=`(\\b(${g}))?\\.(${g})|\\b(${g})\\.`,_=`\\b|${s.join("|")}`,w={className:"number",relevance:0,variants:[{begin:`(\\b(${g})|(${m}))[eE][+-]?(${g})[jJ]?(?=${_})`},{begin:`(${m})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${_})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${_})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${_})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${_})`},{begin:`\\b(${g})[jJ](?=${_})`}]},S={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},b={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,w,p,e.HASH_COMMENT_MODE]}]};return d.contains=[p,w,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:c,illegal:/(<\/|\?)|=>/,contains:[u,w,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},p,S,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[b]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[w,b,p]}]}}function zr(e){let t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),r=t.concat(s,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},u={begin:"#<",end:">"},d=[e.COMMENT("#","$",{contains:[c]}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],f={className:"subst",begin:/#\{/,end:/\}/,keywords:a},p={className:"string",contains:[e.BACKSLASH_ESCAPE,f],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,f]})]}]},g="[1-9](_?[0-9])*|0",m="[0-9](_?[0-9])*",_={className:"number",relevance:0,variants:[{begin:`\\b(${g})(\\.(${m}))?([eE][+-]?(${m})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},w={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},L=[p,{variants:[{match:[/class\s+/,r,/\s+<\s+/,r]},{match:[/\b(class|module)\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[/(include|extend)\s+/,r],scope:{2:"title.class"},keywords:a},{relevance:0,match:[r,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[w]},{begin:"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[p,{begin:n}],relevance:0},_,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,f],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(u,d),relevance:0}].concat(u,d);f.contains=L,w.contains=L;let Y=[{begin:/^\s*=>/,starts:{end:"$",contains:L}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:a,contains:L}}];return d.unshift(u),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(Y).concat(d).concat(L)}}function Wr(e){let t=e.regex,n=/(r#)?/,s=t.concat(n,e.UNDERSCORE_IDENT_RE),r=t.concat(n,e.IDENT_RE),i={scope:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,r,t.lookahead(/\s*\(/))},a="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",c=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],u=["true","false","Some","None","Ok","Err"],d=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],f=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:f,keyword:c,literal:u,built_in:d},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{scope:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{scope:"number",variants:[{begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{begin:"\\b0x([A-Fa-f0-9_]+)"+a},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{begin:[/\bsafe/,/\s+/,/extern/],scope:{1:"keyword",3:"keyword"}},{begin:[/fn/,/\s+/,s],scope:{1:"keyword",3:"title.function"}},{scope:"meta",begin:"#!?\\[",end:"\\]",contains:[{scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],scope:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],scope:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],scope:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],scope:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:d,type:f}},{scope:"punctuation",begin:"->"},i]}}function Gr(e){let t=e.regex,n=e.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},i=["true","false","unknown"],a=["double precision","large object","with timezone","without timezone"],c=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],u=["add","asc","collation","desc","final","first","last","view"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],f=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],p=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],g=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],m=f,_=[...d,...u].filter(R=>!f.includes(R)),w={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},S={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},b={match:t.concat(/\b/,t.either(...m),/\s*\(/),relevance:0,keywords:{built_in:m}};function E(R){return t.concat(/\b/,t.either(...R.map(L=>L.replace(/\s+/,"\\s+"))),/\b/)}let x={scope:"keyword",match:E(g),relevance:0};function C(R,{exceptions:L,when:B}={}){let H=B;return L=L||[],R.map(P=>P.match(/\|\d+$/)||L.includes(P)?P:H(P)?`${P}|0`:P)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:C(_,{when:R=>R.length<3}),literal:i,type:c,built_in:p},contains:[{scope:"type",match:E(a)},x,b,w,s,r,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,S]}}function Vr(e){return e?typeof e=="string"?e:e.source:null}function wt(e){return q("(?=",e,")")}function q(...e){return e.map(n=>Vr(n)).join("")}function Zc(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function te(...e){return"("+(Zc(e).capture?"":"?:")+e.map(s=>Vr(s)).join("|")+")"}new RegExp(te(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));var jn=e=>q(/\b/,e,/\w$/.test(e)?/\b/:/\B/),jc=["Protocol","Type"].map(jn),Yr=["init","self"].map(jn),Jc=["Any","Self"],Vn=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Xr=["false","nil","true"],el=["assignment","associativity","higherThan","left","lowerThan","none","right"],tl=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Qr=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Zr=te(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),jr=te(Zr,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Zn=q(Zr,jr,"*"),Jr=te(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Xt=te(Jr,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),me=q(Jr,Xt,"*"),Yt=q(/[A-Z]/,Xt,"*"),nl=["attached","autoclosure",q(/convention\(/,te("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",q(/objc\(/,me,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],sl=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function eo(e){let t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s=[e.C_LINE_COMMENT_MODE,n],r={match:[/\./,te(...jc,...Yr)],className:{2:"keyword"}},i={match:q(/\./,te(...Vn)),relevance:0},a=Vn.filter(U=>typeof U=="string").concat(["_|0"]),c=Vn.filter(U=>typeof U!="string").concat(Jc).map(jn),u={variants:[{className:"keyword",match:te(...c,...Yr)}]},d={$pattern:te(/\b\w+/,/#\w+/),keyword:a.concat(tl),literal:Xr},f=[r,i,u],p={match:q(/\./,te(...Qr)),relevance:0},g={className:"built_in",match:q(/\b/,te(...Qr),/(?=\()/)},m=[p,g],_={match:/->/,relevance:0},w={className:"operator",relevance:0,variants:[{match:Zn},{match:`\\.(\\.|${jr})+`}]},S=[_,w],b="([0-9]_*)+",E="([0-9a-fA-F]_*)+",x={className:"number",relevance:0,variants:[{match:`\\b(${b})(\\.(${b}))?([eE][+-]?(${b}))?\\b`},{match:`\\b0x(${E})(\\.(${E}))?([pP][+-]?(${b}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},C=(U="")=>({className:"subst",variants:[{match:q(/\\/,U,/[0\\tnr"']/)},{match:q(/\\/,U,/u\{[0-9a-fA-F]{1,8}\}/)}]}),R=(U="")=>({className:"subst",match:q(/\\/,U,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(U="")=>({className:"subst",label:"interpol",begin:q(/\\/,U,/\(/),end:/\)/}),B=(U="")=>({begin:q(U,/"""/),end:q(/"""/,U),contains:[C(U),R(U),L(U)]}),H=(U="")=>({begin:q(U,/"/),end:q(/"/,U),contains:[C(U),L(U)]}),P={className:"string",variants:[B(),B("#"),B("##"),B("###"),H(),H("#"),H("##"),H("###")]},Y=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],Q={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:Y},Z=U=>{let ve=q(U,/\//),N=q(/\//,U);return{begin:ve,end:N,contains:[...Y,{scope:"comment",begin:`#(?!.*${N})`,end:/$/}]}},ue={scope:"regexp",variants:[Z("###"),Z("##"),Z("#"),Q]},X={match:q(/`/,me,/`/)},V={className:"variable",match:/\$\d+/},h={className:"variable",match:`\\$${Xt}+`},I=[X,V,h],A={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:sl,contains:[...S,x,P]}]}},O={scope:"keyword",match:q(/@/,te(...nl),wt(te(/\(/,/\s+/)))},F={scope:"meta",match:q(/@/,me)},K=[A,O,F],W={match:wt(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:q(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Xt,"+")},{className:"type",match:Yt,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:q(/\s+&\s+/,wt(Yt)),relevance:0}]},ie={begin:/</,end:/>/,keywords:d,contains:[...s,...f,...K,_,W]};W.contains.push(ie);let se={match:q(me,/\s*:/),keywords:"_|0",relevance:0},oe={begin:/\(/,end:/\)/,relevance:0,keywords:d,contains:["self",se,...s,ue,...f,...m,...S,x,P,...I,...K,W]},Ke={begin:/</,end:/>/,keywords:"repeat each",contains:[...s,W]},Ot={begin:te(wt(q(me,/\s*:/)),wt(q(me,/\s+/,me,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:me}]},Et={begin:/\(/,end:/\)/,keywords:d,contains:[Ot,...s,...f,...S,x,P,...K,W,oe],endsParent:!0,illegal:/["']/},Pn={match:[/(func|macro)/,/\s+/,te(X.match,me,Zn)],className:{1:"keyword",3:"title.function"},contains:[Ke,Et,t],illegal:[/\[/,/%/]},Bn={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ke,Et,t],illegal:/\[|%/},Hn={match:[/operator/,/\s+/,Zn],className:{1:"keyword",3:"title"}},Fn={begin:[/precedencegroup/,/\s+/,Yt],className:{1:"keyword",3:"title"},contains:[W],keywords:[...el,...Xr],end:/}/},ze={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Lt={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},ae={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,me,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:d,contains:[Ke,...f,{begin:/:/,end:/\{/,keywords:d,contains:[{scope:"title.class.inherited",match:Yt},...f],relevance:0}]};for(let U of P.variants){let ve=U.contains.find(Dt=>Dt.label==="interpol");ve.keywords=d;let N=[...f,...m,...S,x,P,...I];ve.contains=[...N,{begin:/\(/,end:/\)/,contains:["self",...N]}]}return{name:"Swift",keywords:d,contains:[...s,Pn,Bn,ze,Lt,ae,Hn,Fn,{beginKeywords:"import",end:/$/,contains:[...s],relevance:0},ue,...f,...m,...S,x,P,...I,...K,W,oe]}}var Qt="[A-Za-z$_][0-9A-Za-z$_]*",to=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],no=["true","false","null","undefined","NaN","Infinity"],so=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ro=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],oo=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],io=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],ao=[].concat(oo,so,ro);function rl(e){let t=e.regex,n=(A,{after:O})=>{let F="</"+A[0].slice(1);return A.input.indexOf(F,O)!==-1},s=Qt,r={begin:"<>",end:"</>"},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(A,O)=>{let F=A[0].length+A.index,K=A.input[F];if(K==="<"||K===","){O.ignoreMatch();return}K===">"&&(n(A,{after:F})||O.ignoreMatch());let W,ie=A.input.substring(F);if(W=ie.match(/^\s*=/)){O.ignoreMatch();return}if((W=ie.match(/^\s+extends\s+/))&&W.index===0){O.ignoreMatch();return}}},c={$pattern:Qt,keyword:to,literal:no,built_in:ao,"variable.language":io},u="[0-9](_?[0-9])*",d=`\\.(${u})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",p={className:"number",variants:[{begin:`(\\b(${f})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${f})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},m={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},_={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"css"}},w={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},S={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,g]},E={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},x=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,_,w,S,{match:/\$\d+/},p];g.contains=x.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(x)});let C=[].concat(E,g.contains),R=C.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(C)}]),L={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:R},B={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,t.concat(s,"(",t.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...so,...ro]}},P={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},Y={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[L],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Z(A){return t.concat("(?!",A.join("|"),")")}let ue={match:t.concat(/\b/,Z([...oo,"super","import","await"].map(A=>`${A}\\s*\\(`)),s,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:t.concat(/\./,t.lookahead(t.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},L]},h="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",I={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(h)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[L]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:R,CLASS_REFERENCE:H},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),P,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,m,_,w,S,E,{match:/\$\d+/},p,H,{scope:"attr",match:s+t.lookahead(":"),relevance:0},I,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[E,e.REGEXP_MODE,{className:"function",begin:h,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:R}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},Y,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[L,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[L]},ue,Q,B,V,{match:/\$[(.]/}]}}function co(e){let t=e.regex,n=rl(e),s=Qt,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[n.exports.CLASS_REFERENCE]},c={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Qt,keyword:to.concat(u),literal:no,built_in:ao.concat(r),"variable.language":io},f={className:"meta",begin:"@"+s},p=(w,S,b)=>{let E=w.contains.findIndex(x=>x.label===S);if(E===-1)throw new Error("can not find mode to replace");w.contains.splice(E,1,b)};Object.assign(n.keywords,d),n.exports.PARAMS_CONTAINS.push(f);let g=n.contains.find(w=>w.scope==="attr"),m=Object.assign({},g,{match:t.concat(s,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,g,m]),n.contains=n.contains.concat([f,i,a,m]),p(n,"shebang",e.SHEBANG()),p(n,"use_strict",c);let _=n.contains.find(w=>w.label==="func.def");return _.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function lo(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(i,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[i,u,c,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,a,u,c]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:d}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function uo(e){let t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},a={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},c=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),g={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},m={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},_={begin:/\{/,end:/\}/,contains:[m],illegal:"\\n",relevance:0},w={begin:"\\[",end:"\\]",contains:[m],illegal:"\\n",relevance:0},S=[s,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},g,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},_,w,i,a],b=[...S];return b.pop(),b.push(c),m.contains=b,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:S}}G.registerLanguage("bash",Tr);G.registerLanguage("c",Ir);G.registerLanguage("cpp",Ar);G.registerLanguage("css",Cr);G.registerLanguage("dockerfile",Mr);G.registerLanguage("go",xr);G.registerLanguage("ini",kr);G.registerLanguage("java",Or);G.registerLanguage("javascript",Hr);G.registerLanguage("json",Fr);G.registerLanguage("kotlin",$r);G.registerLanguage("markdown",Ur);G.registerLanguage("php",qr);G.registerLanguage("python",Kr);G.registerLanguage("ruby",zr);G.registerLanguage("rust",Wr);G.registerLanguage("sql",Gr);G.registerLanguage("swift",eo);G.registerLanguage("typescript",co);G.registerLanguage("xml",lo);G.registerLanguage("yaml",uo);var fo={bash:"bash",sh:"bash",zsh:"bash",c:"c",h:"c",cc:"cpp",cpp:"cpp",cxx:"cpp",hpp:"cpp",hxx:"cpp",css:"css",dockerfile:"dockerfile",go:"go",ini:"ini",toml:"ini",java:"java",cjs:"javascript",js:"javascript",jsx:"javascript",mjs:"javascript",json:"json",jsonc:"json",kt:"kotlin",kts:"kotlin",md:"markdown",markdown:"markdown",php:"php",py:"python",rb:"ruby",rs:"rust",sql:"sql",swift:"swift",cts:"typescript",mts:"typescript",ts:"typescript",tsx:"typescript",htm:"xml",html:"xml",svg:"xml",xml:"xml",yaml:"yaml",yml:"yaml"};function po(e,t){let n=t.split(".").pop()?.toLowerCase()??"",s=fo[n]??(t.toLowerCase()==="dockerfile"?"dockerfile":null);return s?G.highlight(e,{language:s}).value:null}var ol=new Set(["bash","c","cpp","css","dockerfile","go","ini","java","javascript","json","kotlin","markdown","php","python","ruby","rust","sql","swift","typescript","xml","yaml"]),il={"c++":"cpp",shell:"bash",console:"bash"};function go(e,t){let n=t.trim().toLowerCase();if(!n)return null;let s=ol.has(n)?n:il[n]??fo[n];return s?G.highlight(e,{language:s}).value:null}function ce(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Jn(e){return e.replace(/\bhttps?:\/\/[^\s<]+/g,t=>{let n=t,s="";for(;;){let r=n.match(/(&quot;|&#39;|&gt;|[.,;:!?'\]}"])$/);if(!r)break;s=r[0]+s,n=n.slice(0,-r[0].length)}for(;n.endsWith(")");){let r=(n.match(/\(/g)??[]).length,i=(n.match(/\)/g)??[]).length;if(r>=i)break;s=")"+s,n=n.slice(0,-1)}return n?`<a href="${n}" target="_blank" rel="noopener noreferrer">${n}</a>${s}`:t})}function al(e){let t=/<code>([\s\S]*?)<\/code>|<a\b[^>]*>[\s\S]*?<\/a>/g,n="",s=0,r;for(;(r=t.exec(e))!==null;){n+=Jn(e.slice(s,r.index));let i=r[1];i!==void 0&&/^https?:\/\/[^\s<]+$/.test(i.trim())?n+=`<code>${Jn(i)}</code>`:n+=r[0],s=r.index+r[0].length}return n+Jn(e.slice(s))}function je(e){return e=e.replace(/`([^`\n]+)`/g,(t,n)=>`<code>${n}</code>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,"<strong>$1</strong>"),e=e.replace(/(^|[^*])\*([^*\n]+)\*/g,"$1<em>$2</em>"),e=e.replace(/__([^_\n]+)__/g,"<strong>$1</strong>"),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(t,n,s)=>{let r=s.match(/^hydra:\/\/(?:[^/\s]+\/)?sessions\/([A-Za-z0-9_-]+)(?:#turn-\d+)?$/);if(r){let i=r[1];return`<a href="#/session/${ce(i)}">${n}</a>`}return/^(https?:\/\/|\/|\.)/i.test(s)?`<a href="${ce(s)}" target="_blank" rel="noopener noreferrer">${n}</a>`:`[${n}](${s})`}),al(e)}function es(e){let t=e.trim();if(!t.includes("|"))return null;let n=t;return n.startsWith("|")&&(n=n.slice(1)),n.endsWith("|")&&(n=n.slice(0,-1)),n.split("|").map(s=>s.trim())}function cl(e){let t=es(e);if(!t||t.length===0)return null;let n=[];for(let s of t){if(!/^:?-+:?$/.test(s))return null;let r=s.startsWith(":"),i=s.endsWith(":");r&&i?n.push("center"):i?n.push("right"):r?n.push("left"):n.push(null)}return n}function mo(e,t){let n=go(e,t),s=ce(t),r=n!==null?` class="hljs" data-lang="${s}"`:` data-lang="${s}"`,i=n??ce(e);return`<pre><code${r}>${i}</code></pre>`}function ho(e,t,n){let s="<tr>";for(let r=0;r<e.length;r++){let i=t[r]??null,a=i?` style="text-align:${i}"`:"";s+=`<${n}${a}>${je(ce(e[r]))}</${n}>`}return s+="</tr>",s}function bo(e){typeof e!="string"&&(e=String(e??""));let t=e.split(`
648
- `),n="",s=!1,r="",i=[],a=null,c=[];function u(){c.length!==0&&(n+=`<p>${je(c.join(" "))}</p>`,c=[])}function d(){a&&(n+=`</${a}>`,a=null)}let f=0;for(;f<t.length;){let p=t[f];if(s){if(/^```/.test(p)){n+=mo(i.join(`
649
- `),r),s=!1,i=[],r="",f++;continue}i.push(p),f++;continue}if(/^```/.test(p)){u(),d(),s=!0,r=p.slice(3).trim(),f++;continue}if(f+1<t.length&&p.includes("|")){let m=es(p),_=cl(t[f+1]);if(m&&_&&m.length>0&&_.length>0){u(),d();let w=Math.max(m.length,_.length),S=[];for(let E=0;E<w;E++)S.push(_[E]??null);n+="<table><thead>",n+=ho(m,S,"th"),n+="</thead><tbody>";let b=f+2;for(;b<t.length;){let E=es(t[b]);if(!E)break;n+=ho(E,S,"td"),b++}n+="</tbody></table>",f=b;continue}}if(/^\s*$/.test(p)){u(),d(),f++;continue}let g;if(g=p.match(/^(#{1,3})\s+(.+)$/)){u(),d();let m=g[1].length;n+=`<h${m}>${je(ce(g[2]))}</h${m}>`,f++;continue}if(g=p.match(/^\s*[-*]\s+(.*)$/)){u(),a!=="ul"&&(d(),n+="<ul>",a="ul"),n+=`<li>${je(ce(g[1]))}</li>`,f++;continue}if(g=p.match(/^\s*\d+\.\s+(.*)$/)){u(),a!=="ol"&&(d(),n+="<ol>",a="ol"),n+=`<li>${je(ce(g[1]))}</li>`,f++;continue}if(g=p.match(/^\s*>\s?(.*)$/)){u(),d(),n+=`<blockquote>${je(ce(g[1]))}</blockquote>`,f++;continue}d(),c.push(ce(p)),f++}return s&&(n+=mo(i.join(`
644
+ <script nonce="__CSP_NONCE__">"use strict";(()=>{var Fa=Object.create;var Xs=Object.defineProperty;var $a=Object.getOwnPropertyDescriptor;var Ua=Object.getOwnPropertyNames;var qa=Object.getPrototypeOf,Ka=Object.prototype.hasOwnProperty;var za=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Wa=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ua(t))!Ka.call(e,r)&&r!==n&&Xs(e,r,{get:()=>t[r],enumerable:!(s=$a(t,r))||s.enumerable});return e};var Ga=(e,t,n)=>(n=e!=null?Fa(qa(e)):{},Wa(t||!e||!e.__esModule?Xs(n,"default",{value:e,enumerable:!0}):n,e));var vr=za((ef,wr)=>{function lr(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{let n=e[t],s=typeof n;(s==="object"||s==="function")&&!Object.isFrozen(n)&&lr(n)}),e}var Ft=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function ur(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function Ie(e,...t){let n=Object.create(null);for(let s in e)n[s]=e[s];return t.forEach(function(s){for(let r in s)n[r]=s[r]}),n}var Ya="</span>",sr=e=>!!e.scope,Xa=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let n=e.split(".");return[`${t}${n.shift()}`,...n.map((s,r)=>`${s}${"_".repeat(r+1)}`)].join(" ")}return`${t}${e}`},zn=class{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=ur(t)}openNode(t){if(!sr(t))return;let n=Xa(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){sr(t)&&(this.buffer+=Ya)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}},rr=(e={})=>{let t={children:[]};return Object.assign(t,e),t},Wn=class e{constructor(){this.rootNode=rr(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){let n=rr({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(s=>this._walk(t,s)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{e._collapse(n)}))}},Gn=class extends Wn{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){let s=t.root;n&&(s.scope=`language:${n}`),this.add(s)}toHTML(){return new zn(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function yt(e){return e?typeof e=="string"?e:e.source:null}function dr(e){return Oe("(?=",e,")")}function Qa(e){return Oe("(?:",e,")*")}function Va(e){return Oe("(?:",e,")?")}function Oe(...e){return e.map(n=>yt(n)).join("")}function Za(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function Ut(...e){return"("+(Za(e).capture?"":"?:")+e.map(s=>yt(s)).join("|")+")"}function fr(e){return new RegExp(e.toString()+"|").exec("").length-1}function ja(e,t){let n=e&&e.exec(t);return n&&n.index===0}var Ja=new RegExp(Ut(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Xn(e,{joinWith:t}){let n=0;return e.map(s=>{n+=1;let r=n,i=yt(s),a="";for(;i.length>0;){let c=Ja.exec(i);if(!c){a+=i;break}a+=i.substring(0,c.index),i=i.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?a+="\\"+String(Number(c[1])+r):(a+=c[0],(c[0]==="("||/^\(\?[<']/.test(c[0]))&&n++)}return a}).map(s=>`(${s})`).join(t)}var ec=/\b\B/,pr="[a-zA-Z]\\w*",Qn="[a-zA-Z_]\\w*",gr="\\b\\d+(\\.\\d+)?",mr="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",hr="\\b(0b[01]+)",tc="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",nc=(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=Oe(t,/.*\b/,e.binary,/\b.*/)),Ie({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,s)=>{n.index!==0&&s.ignoreMatch()}},e)},_t={begin:"\\\\[\\s\\S]",relevance:0},sc={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[_t]},rc={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[_t]},oc={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},qt=function(e,t,n={}){let s=Ie({scope:"comment",begin:e,end:t,contains:[]},n);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let r=Ut("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return s.contains.push({begin:Oe(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s},ic=qt("//","$"),ac=qt("/\\*","\\*/"),cc=qt("#","$"),lc={scope:"number",begin:gr,relevance:0},uc={scope:"number",begin:mr,relevance:0},dc={scope:"number",begin:hr,relevance:0},fc={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[_t,{begin:/\[/,end:/\]/,relevance:0,contains:[_t]}]},pc={scope:"title",begin:pr,relevance:0},gc={scope:"title",begin:Qn,relevance:0},mc={begin:"\\.\\s*"+Qn,relevance:0},hc=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})},Ht=Object.freeze({__proto__:null,APOS_STRING_MODE:sc,BACKSLASH_ESCAPE:_t,BINARY_NUMBER_MODE:dc,BINARY_NUMBER_RE:hr,COMMENT:qt,C_BLOCK_COMMENT_MODE:ac,C_LINE_COMMENT_MODE:ic,C_NUMBER_MODE:uc,C_NUMBER_RE:mr,END_SAME_AS_BEGIN:hc,HASH_COMMENT_MODE:cc,IDENT_RE:pr,MATCH_NOTHING_RE:ec,METHOD_GUARD:mc,NUMBER_MODE:lc,NUMBER_RE:gr,PHRASAL_WORDS_MODE:oc,QUOTE_STRING_MODE:rc,REGEXP_MODE:fc,RE_STARTERS_RE:tc,SHEBANG:nc,TITLE_MODE:pc,UNDERSCORE_IDENT_RE:Qn,UNDERSCORE_TITLE_MODE:gc});function bc(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function Ec(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function yc(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=bc,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function _c(e,t){Array.isArray(e.illegal)&&(e.illegal=Ut(...e.illegal))}function wc(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function vc(e,t){e.relevance===void 0&&(e.relevance=1)}var Sc=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let n=Object.assign({},e);Object.keys(e).forEach(s=>{delete e[s]}),e.keywords=n.keywords,e.begin=Oe(n.beforeMatch,dr(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},Tc=["of","and","for","in","not","or","if","then","parent","list","value"],Ic="keyword";function br(e,t,n=Ic){let s=Object.create(null);return typeof e=="string"?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach(function(i){Object.assign(s,br(e[i],t,i))}),s;function r(i,a){t&&(a=a.map(c=>c.toLowerCase())),a.forEach(function(c){let u=c.split("|");s[u[0]]=[i,Ac(u[0],u[1])]})}}function Ac(e,t){return t?Number(t):Cc(e)?0:1}function Cc(e){return Tc.includes(e.toLowerCase())}var or={},Re=e=>{console.error(e)},ir=(e,...t)=>{console.log(`WARN: ${e}`,...t)},Xe=(e,t)=>{or[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),or[`${e}/${t}`]=!0)},$t=new Error;function Er(e,t,{key:n}){let s=0,r=e[n],i={},a={};for(let c=1;c<=t.length;c++)a[c+s]=r[c],i[c+s]=!0,s+=fr(t[c-1]);e[n]=a,e[n]._emit=i,e[n]._multi=!0}function Mc(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Re("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),$t;if(typeof e.beginScope!="object"||e.beginScope===null)throw Re("beginScope must be object"),$t;Er(e,e.begin,{key:"beginScope"}),e.begin=Xn(e.begin,{joinWith:""})}}function xc(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Re("skip, excludeEnd, returnEnd not compatible with endScope: {}"),$t;if(typeof e.endScope!="object"||e.endScope===null)throw Re("endScope must be object"),$t;Er(e,e.end,{key:"endScope"}),e.end=Xn(e.end,{joinWith:""})}}function kc(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function Nc(e){kc(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Mc(e),xc(e)}function Rc(e){function t(a,c){return new RegExp(yt(a),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(c?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=fr(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let c=this.regexes.map(u=>u[1]);this.matcherRe=t(Xn(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;let u=this.matcherRe.exec(c);if(!u)return null;let d=u.findIndex((g,p)=>p>0&&g!==void 0),f=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,f)}}class s{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];let u=new n;return this.rules.slice(c).forEach(([d,f])=>u.addRule(d,f)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){let u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){let f=this.getMatcher(0);f.lastIndex=this.lastIndex+1,d=f.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function r(a){let c=new s;return a.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),a.terminatorEnd&&c.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&c.addRule(a.illegal,{type:"illegal"}),c}function i(a,c){let u=a;if(a.isCompiled)return u;[Ec,wc,Nc,Sc].forEach(f=>f(a,c)),e.compilerExtensions.forEach(f=>f(a,c)),a.__beforeBegin=null,[yc,_c,vc].forEach(f=>f(a,c)),a.isCompiled=!0;let d=null;return typeof a.keywords=="object"&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),d=a.keywords.$pattern,delete a.keywords.$pattern),d=d||/\w+/,a.keywords&&(a.keywords=br(a.keywords,e.case_insensitive)),u.keywordPatternRe=t(d,!0),c&&(a.begin||(a.begin=/\B|\b/),u.beginRe=t(u.begin),!a.end&&!a.endsWithParent&&(a.end=/\B|\b/),a.end&&(u.endRe=t(u.end)),u.terminatorEnd=yt(u.end)||"",a.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(a.end?"|":"")+c.terminatorEnd)),a.illegal&&(u.illegalRe=t(a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(f){return Oc(f==="self"?a:f)})),a.contains.forEach(function(f){i(f,u)}),a.starts&&i(a.starts,c),u.matcher=r(u),u}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=Ie(e.classNameAliases||{}),i(e)}function yr(e){return e?e.endsWithParent||yr(e.starts):!1}function Oc(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return Ie(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:yr(e)?Ie(e,{starts:e.starts?Ie(e.starts):null}):Object.isFrozen(e)?Ie(e):e}var Lc="11.12.0",Yn=class extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}},Kn=ur,ar=Ie,cr=Symbol("nomatch"),Dc=7,_r=function(e){let t=Object.create(null),n=Object.create(null),s=[],r=!0,i="Could not find the language '{}', did you forget to load/include a language module?",a={disableAutodetect:!0,name:"Plain text",contains:[]},c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Gn};function u(b){return c.noHighlightRe.test(b)}function d(b){let A=b.className+" ";A+=b.parentNode?b.parentNode.className:"";let C=c.languageDetectRe.exec(A);if(C){let L=H(C[1]);return L||(ir(i.replace("{}",C[1])),ir("Falling back to no-highlight mode for this block.",b)),L?C[1]:"no-highlight"}return A.split(/\s+/).find(L=>u(L)||H(L))}function f(b,A,C){let L="",F="";typeof A=="object"?(L=b,C=A.ignoreIllegals,F=A.language):(Xe("10.7.0","highlight(lang, code, ...args) has been deprecated."),Xe("10.7.0",`Please use highlight(code, options) instead.
645
+ https://github.com/highlightjs/highlight.js/issues/2277`),F=b,L=A),C===void 0&&(C=!0);let K={code:L,language:F};X("before:highlight",K);let W=K.result?K.result:g(K.language,K.code,C);return W.code=K.code,X("after:highlight",W),W}function g(b,A,C,L){let F=Object.create(null);function K(v,M){return v.keywords[M]}function W(){if(!R.keywords){j.addText(z);return}let v=0;R.keywordPatternRe.lastIndex=0;let M=R.keywordPatternRe.exec(z),D="";for(;M;){D+=z.substring(v,M.index);let $=ae.case_insensitive?M[0].toLowerCase():M[0],ee=K(R,$);if(ee){let[ye,Ba]=ee;if(j.addText(D),D="",F[$]=(F[$]||0)+1,F[$]<=Dc&&(Pt+=Ba),ye.startsWith("_"))D+=M[0];else{let Ha=ae.classNameAliases[ye]||ye;oe(M[0],Ha)}}else D+=M[0];v=R.keywordPatternRe.lastIndex,M=R.keywordPatternRe.exec(z)}D+=z.substring(v),j.addText(D)}function ie(){if(z==="")return;let v=null;if(typeof R.subLanguage=="string"){if(!t[R.subLanguage]){j.addText(z);return}v=g(R.subLanguage,z,!0,Dt[R.subLanguage]),Dt[R.subLanguage]=v._top}else v=h(z,R.subLanguage.length?R.subLanguage:null);R.relevance>0&&(Pt+=v.relevance),j.__addSublanguage(v._emitter,v.language)}function se(){R.subLanguage!=null?ie():W(),z=""}function oe(v,M){v!==""&&(j.startScope(M),j.addText(v),j.endScope())}function Ke(v,M){let D=1,$=M.length-1;for(;D<=$;){if(!v._emit[D]){D++;continue}let ee=ae.classNameAliases[v[D]]||v[D],ye=M[D];ee?oe(ye,ee):(z=ye,W(),z=""),D++}}function Ot(v,M){return v.scope&&typeof v.scope=="string"&&j.openNode(ae.classNameAliases[v.scope]||v.scope),v.beginScope&&(v.beginScope._wrap?(oe(z,ae.classNameAliases[v.beginScope._wrap]||v.beginScope._wrap),z=""):v.beginScope._multi&&(Ke(v.beginScope,M),z="")),R=Object.create(v,{parent:{value:R}}),R}function Et(v,M,D){let $=ja(v.endRe,D);if($){if(v["on:end"]){let ee=new Ft(v);v["on:end"](M,ee),ee.isMatchIgnored&&($=!1)}if($){for(;v.endsParent&&v.parent;)v=v.parent;return v}}if(v.endsWithParent)return Et(v.parent,M,D)}function Pn(v){return R.matcher.regexIndex===0?(z+=v[0],1):(Un=!0,0)}function Bn(v){let M=v[0],D=v.rule,$=new Ft(D),ee=[D.__beforeBegin,D["on:begin"]];for(let ye of ee)if(ye&&(ye(v,$),$.isMatchIgnored))return Pn(M);return D.skip?z+=M:(D.excludeBegin&&(z+=M),se(),!D.returnBegin&&!D.excludeBegin&&(z=M)),Ot(D,v),D.returnBegin?0:M.length}function Hn(v){let M=v[0],D=A.substring(v.index),$=Et(R,v,D);if(!$)return cr;let ee=R;R.endScope&&R.endScope._wrap?(se(),oe(M,R.endScope._wrap)):R.endScope&&R.endScope._multi?(se(),Ke(R.endScope,v)):ee.skip?z+=M:(ee.returnEnd||ee.excludeEnd||(z+=M),se(),ee.excludeEnd&&(z=M));do R.scope&&j.closeNode(),!R.skip&&!R.subLanguage&&(Pt+=R.relevance),R=R.parent;while(R!==$.parent);return $.starts&&Ot($.starts,v),ee.returnEnd?0:M.length}function Fn(){let v=[];for(let M=R;M!==ae;M=M.parent)M.scope&&v.unshift(M.scope);v.forEach(M=>j.openNode(M))}let ze={};function Lt(v,M){let D=M&&M[0];if(z+=v,D==null)return se(),0;if(ze.type==="begin"&&M.type==="end"&&ze.index===M.index&&D===""){if(z+=A.slice(M.index,M.index+1),!r){let $=new Error(`0 width match regex (${b})`);throw $.languageName=b,$.badRule=ze.rule,$}return 1}if(ze=M,M.type==="begin")return Bn(M);if(M.type==="illegal"&&!C){let $=new Error('Illegal lexeme "'+D+'" for mode "'+(R.scope||"<unnamed>")+'"');throw $.mode=R,$}else if(M.type==="end"){let $=Hn(M);if($!==cr)return $}if(M.type==="illegal"&&D==="")return M.index===A.length||(z+=`
646
+ `),1;if($n>1e5&&$n>M.index*3)throw new Error("potential infinite loop, way more iterations than matches");return z+=D,D.length}let ae=H(b);if(!ae)throw Re(i.replace("{}",b)),new Error('Unknown language: "'+b+'"');let U=Rc(ae),ve="",R=L||U,Dt={},j=new c.__emitter(c);Fn();let z="",Pt=0,Ne=0,$n=0,Un=!1;try{if(ae.__emitTokens)ae.__emitTokens(A,j);else{for(R.matcher.considerAll();;){$n++,Un?Un=!1:R.matcher.considerAll(),R.matcher.lastIndex=Ne;let v=R.matcher.exec(A);if(!v)break;let M=A.substring(Ne,v.index),D=Lt(M,v);Ne=v.index+D}Lt(A.substring(Ne))}return j.finalize(),ve=j.toHTML(),{language:b,value:ve,relevance:Pt,illegal:!1,_emitter:j,_top:R}}catch(v){if(v.message&&v.message.includes("Illegal"))return{language:b,value:Kn(A),illegal:!0,relevance:0,_illegalBy:{message:v.message,index:Ne,context:A.slice(Ne-100,Ne+100),mode:v.mode,resultSoFar:ve},_emitter:j};if(r)return{language:b,value:Kn(A),illegal:!1,relevance:0,errorRaised:v,_emitter:j,_top:R};throw v}}function p(b){let A={value:Kn(b),illegal:!1,relevance:0,_top:a,_emitter:new c.__emitter(c)};return A._emitter.addText(b),A}function h(b,A){A=A||c.languages||Object.keys(t);let C=p(b),L=A.filter(H).filter(Y).map(se=>g(se,b,!1));L.unshift(C);let F=L.sort((se,oe)=>{if(se.relevance!==oe.relevance)return oe.relevance-se.relevance;if(se.language&&oe.language){if(H(se.language).supersetOf===oe.language)return 1;if(H(oe.language).supersetOf===se.language)return-1}return 0}),[K,W]=F,ie=K;return ie.secondBest=W,ie}function _(b,A,C){let L=A&&n[A]||C;b.classList.add("hljs"),b.classList.add(`language-${L}`)}function E(b){let A=null,C=d(b);if(u(C))return;if(X("before:highlightElement",{el:b,language:C}),b.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",b);return}if(b.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(b)),c.throwUnescapedHTML))throw new Yn("One of your code blocks includes unescaped HTML.",b.innerHTML);A=b;let L=A.textContent,F=C?f(L,{language:C,ignoreIllegals:!0}):h(L);b.innerHTML=F.value,b.dataset.highlighted="yes",_(b,C,F.language),b.result={language:F.language,re:F.relevance,relevance:F.relevance},F.secondBest&&(b.secondBest={language:F.secondBest.language,relevance:F.secondBest.relevance}),X("after:highlightElement",{el:b,result:F,text:L})}function w(b){c=ar(c,b)}let x=()=>{T(),Xe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function m(){T(),Xe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let S=!1;function T(){function b(){T()}if(document.readyState==="loading"){S||window.addEventListener("DOMContentLoaded",b,!1),S=!0;return}document.querySelectorAll(c.cssSelector).forEach(E)}function N(b,A){let C=null;try{C=A(e)}catch(L){if(Re("Language definition for '{}' could not be registered.".replace("{}",b)),r)Re(L);else throw L;C=a}C.name||(C.name=b),t[b]=C,C.rawDefinition=A.bind(null,e),C.aliases&&P(C.aliases,{languageName:b})}function O(b){delete t[b];for(let A of Object.keys(n))n[A]===b&&delete n[A]}function B(){return Object.keys(t)}function H(b){return b=(b||"").toLowerCase(),t[b]||t[n[b]]}function P(b,{languageName:A}){typeof b=="string"&&(b=[b]),b.forEach(C=>{n[C.toLowerCase()]=A})}function Y(b){let A=H(b);return A&&!A.disableAutodetect}function Q(b){b["before:highlightBlock"]&&!b["before:highlightElement"]&&(b["before:highlightElement"]=A=>{b["before:highlightBlock"](Object.assign({block:A.el},A))}),b["after:highlightBlock"]&&!b["after:highlightElement"]&&(b["after:highlightElement"]=A=>{b["after:highlightBlock"](Object.assign({block:A.el},A))})}function Z(b){Q(b),s.push(b)}function ue(b){let A=s.indexOf(b);A!==-1&&s.splice(A,1)}function X(b,A){let C=b;s.forEach(function(L){L[C]&&L[C](A)})}function V(b){return Xe("10.7.0","highlightBlock will be removed entirely in v12.0"),Xe("10.7.0","Please use highlightElement now."),E(b)}Object.assign(e,{highlight:f,highlightAuto:h,highlightAll:T,highlightElement:E,highlightBlock:V,configure:w,initHighlighting:x,initHighlightingOnLoad:m,registerLanguage:N,unregisterLanguage:O,listLanguages:B,getLanguage:H,registerAliases:P,autoDetection:Y,inherit:ar,addPlugin:Z,removePlugin:ue}),e.debugMode=function(){r=!1},e.safeMode=function(){r=!0},e.versionString=Lc,e.regex={concat:Oe,lookahead:dr,either:Ut,optional:Va,anyNumberOfTimes:Qa};for(let b in Ht)typeof Ht[b]=="object"&&lr(Ht[b]);return Object.assign(e,Ht),e},Qe=_r({});Qe.newInstance=()=>_r({});wr.exports=Qe;Qe.HighlightJS=Qe;Qe.default=Qe});var We=[];function Qs(e,t){t<120||(We.push({label:e,ms:t,at:Date.now()}),We.sort((n,s)=>s.ms-n.ms),We.length>6&&(We.length=6))}function Se(e,t){let n=performance.now();try{return t()}finally{Qs(e,performance.now()-n)}}function Vs(){if(!(typeof PerformanceObserver>"u"))try{new PerformanceObserver(e=>{for(let t of e.getEntries())Qs(`longtask/${t.name??"?"}`,t.duration)}).observe({entryTypes:["longtask"]})}catch{}}var Bt=new Map;function Ge(e){Bt.set(e,(Bt.get(e)??0)+1)}function Zs(){return Bt.size===0?"none":[...Bt.entries()].map(([e,t])=>`${e}:${t}`).join(" ")}function js(){return We.length===0?"none >120ms":We.map(e=>`${e.label} ${Math.round(e.ms)}ms`).join(" | ")}function l(e,t,...n){let s=document.createElement(e);if(t)for(let[r,i]of Object.entries(t))i==null||i===!1||(r==="class"?s.className=i:r.startsWith("on")&&typeof i=="function"?s.addEventListener(r.slice(2).toLowerCase(),i):r==="html"?s.innerHTML=i:s.setAttribute(r,String(i)));for(let r of n)if(!(r==null||r===!1))if(Array.isArray(r))for(let i of r)Js(s,i);else Js(s,r);return s}var qn=10;function Ye(){let e=window.getSelection();return!!e&&!e.isCollapsed&&e.toString().length>0}function Te(e){return e instanceof HTMLElement?e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT"||e.isContentEditable:!1}function er(){return window.matchMedia("(hover: hover) and (pointer: fine)").matches}var tr="(min-width: 1000px)";function J(){return window.matchMedia(tr).matches}function nr(e){window.matchMedia(tr).addEventListener("change",e)}function I(e){let t=!1,n=0,s=0;return{onpointerdown:r=>{if(Te(r.target))return;let i=r;i.pointerType==="mouse"&&i.button!==0||(n=i.clientX,s=i.clientY,r.preventDefault(),r.stopPropagation())},onpointerup:r=>{if(Te(r.target))return;let i=r;i.pointerType==="mouse"&&i.button!==0||(r.stopPropagation(),!(Math.hypot(i.clientX-n,i.clientY-s)>qn)&&(Ye()||(t=!0,e(r))))},onclick:r=>{if(!Te(r.target)){if(r.stopPropagation(),t){t=!1;return}r.detail===0&&(Ye()||e(r))}}}}function Js(e,t){t==null||t===!1||(t instanceof Node?e.appendChild(t):e.appendChild(document.createTextNode(String(t))))}var Sr=Ga(vr(),1);var G=Sr.default;function Tr(e){let t=e.regex,n={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});let r={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,r]};r.contains.push(c);let u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},f={match:/\\'/},g={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},p=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],h=e.SHEBANG({binary:`(${p.join("|")})`,relevance:10}),_={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},E=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],w=["true","false"],x={match:/(\/[a-z._-]+)+/},m=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],S=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],T=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],N=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:E,literal:w,built_in:[...m,...S,"set","shopt",...T,...N]},contains:[h,e.SHEBANG(),_,g,i,a,x,c,u,d,f,n]}}function Ir(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="("+s+"|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",c=t.concat(/\batomic_/,t.either("bool","char","schar","uchar","short","ushort","int","uint","long","ulong","llong","ullong","char16_t","char32_t","wchar_t","int_least8_t","uint_least8_t","int_least16_t","uint_least16_t","int_least32_t","uint_least32_t","int_least64_t","uint_least64_t","int_fast8_t","uint_fast8_t","int_fast16_t","uint_fast16_t","int_fast32_t","uint_fast32_t","int_fast64_t","uint_fast64_t","intptr_t","uintptr_t","size_t","ptrdiff_t","intmax_t","uintmax_t"),/\b/),u={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:c}]},f={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},g={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},p={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},f,{scope:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},h={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(f,{className:"string"}),n,e.C_BLOCK_COMMENT_MODE]},_=[p,h],E={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},w=t.optional(r)+e.IDENT_RE+"\\s*\\(",x=12,T={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},N=[..._,u,n,e.C_BLOCK_COMMENT_MODE,g,f],O={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:T,contains:N.concat([{begin:/\(/,end:/\)/,keywords:T,contains:N.concat(["self"]),relevance:0}]),relevance:0},B={begin:"("+a+"[\\*&\\s]+){1,"+x+"}"+w,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:T,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:T,relevance:0},{begin:w,returnBegin:!0,contains:[e.inherit(E,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:T,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,f,g,u,{begin:/\(/,end:/\)/,keywords:T,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,f,g,u]}]},u,n,e.C_BLOCK_COMMENT_MODE,..._]};return{name:"C",aliases:["h"],keywords:T,disableAutodetect:!0,illegal:"</",contains:[].concat(O,B,N,[..._,{begin:e.IDENT_RE+"::",keywords:T},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:h,strings:f,keywords:T}}}function Ar(e){let t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="(?!struct)("+s+"|"+t.optional(r)+"[a-zA-Z_]\\w*"+t.optional("<[^<>]+>")+")",c={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},d={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\\s"]{0,16})\(/,end:/\)([^()\\\s"]{0,16})"/})]},f={className:"number",variants:[{begin:"[+-]?(?:(?:\\b[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|\\b[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|\\b0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},g={scope:"meta",begin:/#\s*include\b/,end:/$/,keywords:{keyword:"include"},contains:[{begin:/\\\n/},d,{scope:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},p={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(d,{className:"string"}),n,e.C_BLOCK_COMMENT_MODE]},h=[g,p],_={className:"title",begin:t.optional(r)+e.IDENT_RE,relevance:0},E=t.optional(r)+e.IDENT_RE+"\\s*\\(",w=12,x=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],m=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],S=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],T=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],B={type:m,keyword:x,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:S},H={className:"function.dispatch",relevance:0,keywords:{_hint:T},begin:t.concat(/\b/,`(?!${x.join("|")})`,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},P=[H,...h,c,n,e.C_BLOCK_COMMENT_MODE,f,d],Y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:B,contains:P.concat([{begin:/\(/,end:/\)/,keywords:B,contains:P.concat(["self"]),relevance:0}]),relevance:0},Q={className:"function",begin:"("+a+"[\\*&\\s]+){1,"+w+"}"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:B,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:B,relevance:0},{begin:E,returnBegin:!0,contains:[_],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[d,f]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,d,f,c,{begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,d,f,c]}]},c,n,e.C_BLOCK_COMMENT_MODE,...h]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:B,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(Y,Q,H,P,[...h,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:B,contains:["self",c]},{begin:e.IDENT_RE+"::",keywords:B},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}var Pc=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Bc=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Hc=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],Fc=[...Bc,...Hc],$c=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Uc=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),qc=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Kc=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","corner-bottom-left-shape","corner-bottom-right-shape","corner-shape","corner-top-left-shape","corner-top-right-shape","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Cr(e){let t=e.regex,n=Pc(e),s={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},r="and or not only",i=/@-?\w[\w]*(-\w+)*/,a="[a-zA-Z-][a-zA-Z0-9_-]*",c=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,s,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+a,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Uc.join("|")+")"},{begin:":(:)?("+qc.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Kc.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,n.UNICODE_RANGE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:i},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:r,attribute:$c.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+Fc.join("|")+")\\b"}]}}function Mr(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}function xr(e){let i={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:i,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:i,illegal:/["']/}]}]}}function kr(e){let t=e.regex,n={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:e.NUMBER_RE}]},s=e.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];let r={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},i={className:"literal",begin:/\bon|off|true|false|yes|no\b/},a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[s,i,r,a,n,"self"],relevance:0},u=/[A-Za-z0-9_-]+/,d=/"(\\"|[^"])*"/,f=/'[^']*'/,g=t.either(u,d,f),p=t.concat(g,"(\\s*\\.\\s*",g,")*",t.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{begin:p,className:"attr",starts:{end:/$/,contains:[s,c,i,r,a,n]}}]}}var Ve="[0-9](_*[0-9])*",Kt=`\\.(${Ve})`,zt="[0-9a-fA-F](_*[0-9a-fA-F])*",Nr={className:"number",variants:[{begin:`(\\b(${Ve})((${Kt})|\\.)?|(${Kt}))[eE][+-]?(${Ve})[fFdD]?\\b`},{begin:`\\b(${Ve})((${Kt})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Kt})[fFdD]?\\b`},{begin:`\\b(${Ve})[fFdD]\\b`},{begin:`\\b0[xX]((${zt})\\.?|(${zt})?\\.(${zt}))[pP][+-]?(${Ve})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${zt})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Rr(e,t,n){return n===-1?"":e.replace(t,s=>Rr(e,t,n-1))}function Or(e){let t=e.regex,n="[\xC0-\u02B8a-zA-Z_$][\xC0-\u02B8a-zA-Z_$0-9]*",s="(?:(?:\\s*\\[\\s*])+)?",r=n+"<@@@>"+s,a="(?:"+("\\?(?:\\s+(?:extends|super)\\s+"+r+")?")+"|"+r+")",c=Rr("(?:\\s*<\\s*"+a+"(?:\\s*,\\s*"+a+")*\\s*>)?",/<@@@>/g,2),p={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},h={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},_={className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:p,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{beginKeywords:"new throw return else yield assert",relevance:0},{begin:[n,t.concat(c,s,/\s+/),n,s,/\s*/,/=(?!=)/],className:{1:"type",3:"variable",6:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[_,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{begin:[n,t.concat(c,s,/\s+/),n,/\s*(?=\()/],className:{1:"type",3:"title.function"},keywords:p,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:p,relevance:0,contains:[h,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,Nr,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Nr,h]}}var Lr="[A-Za-z$_][0-9A-Za-z$_]*",zc=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Wc=["true","false","null","undefined","NaN","Infinity"],Dr=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Pr=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Br=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Gc=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Yc=[].concat(Br,Dr,Pr);function Hr(e){let t=e.regex,n=(C,{after:L})=>{let F="</"+C[0].slice(1);return C.input.indexOf(F,L)!==-1},s=Lr,r={begin:"<>",end:"</>"},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(C,L)=>{let F=C[0].length+C.index,K=C.input[F];if(K==="<"||K===","){L.ignoreMatch();return}K===">"&&(n(C,{after:F})||L.ignoreMatch());let W,ie=C.input.substring(F);if(W=ie.match(/^\s*=/)){L.ignoreMatch();return}if((W=ie.match(/^\s+extends\s+/))&&W.index===0){L.ignoreMatch();return}}},c={$pattern:Lr,keyword:zc,literal:Wc,built_in:Yc,"variable.language":Gc},u="[0-9](_?[0-9])*",d=`\\.(${u})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={className:"number",variants:[{begin:`(\\b(${f})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${f})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},p={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,p],subLanguage:"xml"}},_={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,p],subLanguage:"css"}},E={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,p],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,p]},m={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},S=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,_,E,w,{match:/\$\d+/},g];p.contains=S.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(S)});let T=[].concat(m,p.contains),N=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(T)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:N},B={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,t.concat(s,"(",t.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Dr,...Pr]}},P={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},Y={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Z(C){return t.concat("(?!",C.join("|"),")")}let ue={match:t.concat(/\b/,Z([...Br,"super","import","await"].map(C=>`${C}\\s*\\(`)),s,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:t.concat(/\./,t.lookahead(t.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},b="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",A={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(b)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:H},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),P,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,_,E,w,m,{match:/\$\d+/},g,H,{scope:"attr",match:s+t.lookahead(":"),relevance:0},A,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{className:"function",begin:b,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},Y,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},ue,Q,B,V,{match:/\$[(.]/}]}}var Xc="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",Qc={scope:"number",match:Xc,relevance:0};function Fr(e){let t={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},s=["true","false","null"],r={scope:"literal",beginKeywords:s.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:s},contains:[t,n,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,Qc,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var Ze="[0-9](_*[0-9])*",Wt=`\\.(${Ze})`,Gt="[0-9a-fA-F](_*[0-9a-fA-F])*",Vc={className:"number",variants:[{begin:`(\\b(${Ze})((${Wt})|\\.)?|(${Wt}))[eE][+-]?(${Ze})[fFdD]?\\b`},{begin:`\\b(${Ze})((${Wt})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Wt})[fFdD]?\\b`},{begin:`\\b(${Ze})[fFdD]\\b`},{begin:`\\b0[xX]((${Gt})\\.?|(${Gt})?\\.(${Gt}))[pP][+-]?(${Ze})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Gt})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function $r(e){let t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},s={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},r={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},a={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,r]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,i,r]}]};r.contains.push(a);let c={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},u={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(a,{className:"string"}),"self"]}]},d=Vc,f=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),g={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},p=g;return p.variants[1].contains=[g],g.variants[1].contains=[p],{name:"Kotlin",aliases:["kt","kts","ktm","ktx"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,f,n,s,c,u,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[g,e.C_LINE_COMMENT_MODE,f],relevance:0},e.C_LINE_COMMENT_MODE,f,c,u,a,e.C_NUMBER_MODE]},f]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},c,u]},a,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
647
+ `},d]}}function Ur(e){let t=e.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},s={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},i={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},a={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},d={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},f={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},g=e.inherit(d,{contains:[]}),p=e.inherit(f,{contains:[]});d.contains.push(p),f.contains.push(g);let h=[n,u];return[d,f,g,p].forEach(x=>{x.contains=x.contains.concat(h)}),h=h.concat(d,f),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:h},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:h}]}]},n,i,s,d,f,{className:"quote",begin:"^>\\s+",contains:h,end:"$"},r,u,a,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function qr(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,s=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),r=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),i=t.concat(/[A-Z]+/,n),a={scope:"variable",match:"\\$+"+s},c={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},u={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},d=e.inherit(e.APOS_STRING_MODE,{illegal:null}),f=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(u)}),g={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(u),"on:begin":(X,V)=>{V.data._beginMatch=X[1]||X[2]},"on:end":(X,V)=>{V.data._beginMatch!==X[1]&&V.ignoreMatch()}},p=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),h=`[
648
+ ]`,_={scope:"string",variants:[f,d,g,p]},E={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},w=["false","null","true"],x=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],m=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],T={keyword:x,literal:(X=>{let V=[];return X.forEach(b=>{V.push(b),b.toLowerCase()===b?V.push(b.toUpperCase()):V.push(b.toLowerCase())}),V})(w),built_in:m},N=X=>X.map(V=>V.replace(/\|\d+$/,"")),O={variants:[{match:[/new/,t.concat(h,"+"),t.concat("(?!",N(m).join("\\b|"),"\\b)"),r],scope:{1:"keyword",4:"title.class"}}]},B=t.concat(s,"\\b(?!\\()"),H={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),B],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[r,t.concat(/::/,t.lookahead(/(?!class\b)/)),B],scope:{1:"title.class",3:"variable.constant"}},{match:[r,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[r,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},P={scope:"attr",match:t.concat(s,t.lookahead(":"),t.lookahead(/(?!::)/))},Y={relevance:0,begin:/\(/,end:/\)/,keywords:T,contains:[P,a,H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,_,E,O]},Q={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",N(x).join("\\b|"),"|",N(m).join("\\b|"),"\\b)"),s,t.concat(h,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[Y]};Y.contains.push(Q);let Z=[P,H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,_,E,O],ue={begin:t.concat(/#\[\s*\\?/,t.either(r,i)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:w,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:w,keyword:["new","array"]},contains:["self",...Z]},...Z,{scope:"meta",variants:[{match:r},{match:i}]}]};return{case_insensitive:!1,keywords:T,contains:[ue,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},c,{scope:"variable.language",match:/\$this\b/},a,Q,H,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},O,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:T,contains:["self",ue,a,H,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,_,E]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},_,E]}}function Kr(e){let t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},f={begin:/\{\{/,relevance:0},g={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,u,f,d]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,u,f,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,f,d]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,f,d]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},p="[0-9](_?[0-9])*",h=`(\\b(${p}))?\\.(${p})|\\b(${p})\\.`,_=`\\b|${s.join("|")}`,E={className:"number",relevance:0,variants:[{begin:`(\\b(${p})|(${h}))[eE][+-]?(${p})[jJ]?(?=${_})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${_})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${_})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${_})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${_})`},{begin:`\\b(${p})[jJ](?=${_})`}]},w={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},x={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,E,g,e.HASH_COMMENT_MODE]}]};return d.contains=[g,E,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:c,illegal:/(<\/|\?)|=>/,contains:[u,E,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},g,w,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[x]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[E,x,g]}]}}function zr(e){let t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),r=t.concat(s,/(::\w+)*/),a={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},c={className:"doctag",begin:"@[A-Za-z]+"},u={begin:"#<",end:">"},d=[e.COMMENT("#","$",{contains:[c]}),e.COMMENT("^=begin","^=end",{contains:[c],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],f={className:"subst",begin:/#\{/,end:/\}/,keywords:a},g={className:"string",contains:[e.BACKSLASH_ESCAPE,f],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,f]})]}]},p="[1-9](_?[0-9])*|0",h="[0-9](_?[0-9])*",_={className:"number",relevance:0,variants:[{begin:`\\b(${p})(\\.(${h}))?([eE][+-]?(${h})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},E={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:a}]},O=[g,{variants:[{match:[/class\s+/,r,/\s+<\s+/,r]},{match:[/\b(class|module)\s+/,r]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:a},{match:[/(include|extend)\s+/,r],scope:{2:"title.class"},keywords:a},{relevance:0,match:[r,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[E]},{begin:"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[g,{begin:n}],relevance:0},_,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:a},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,f],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(u,d),relevance:0}].concat(u,d);f.contains=O,E.contains=O;let Y=[{begin:/^\s*=>/,starts:{end:"$",contains:O}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:a,contains:O}}];return d.unshift(u),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:a,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(Y).concat(d).concat(O)}}function Wr(e){let t=e.regex,n=/(r#)?/,s=t.concat(n,e.UNDERSCORE_IDENT_RE),r=t.concat(n,e.IDENT_RE),i={scope:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,r,t.lookahead(/\s*\(/))},a="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",c=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],u=["true","false","Some","None","Ok","Err"],d=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],f=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:f,keyword:c,literal:u,built_in:d},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{scope:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{scope:"number",variants:[{begin:"\\b0b([01_]+)"+a},{begin:"\\b0o([0-7_]+)"+a},{begin:"\\b0x([A-Fa-f0-9_]+)"+a},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+a}],relevance:0},{begin:[/\bsafe/,/\s+/,/extern/],scope:{1:"keyword",3:"keyword"}},{begin:[/fn/,/\s+/,s],scope:{1:"keyword",3:"title.function"}},{scope:"meta",begin:"#!?\\[",end:"\\]",contains:[{scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],scope:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],scope:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],scope:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],scope:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:d,type:f}},{scope:"punctuation",begin:"->"},i]}}function Gr(e){let t=e.regex,n=e.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},r={begin:/"/,end:/"/,contains:[{match:/""/}]},i=["true","false","unknown"],a=["double precision","large object","with timezone","without timezone"],c=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],u=["add","asc","collation","desc","final","first","last","view"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],f=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],g=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],p=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=f,_=[...d,...u].filter(N=>!f.includes(N)),E={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},w={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},x={match:t.concat(/\b/,t.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function m(N){return t.concat(/\b/,t.either(...N.map(O=>O.replace(/\s+/,"\\s+"))),/\b/)}let S={scope:"keyword",match:m(p),relevance:0};function T(N,{exceptions:O,when:B}={}){let H=B;return O=O||[],N.map(P=>P.match(/\|\d+$/)||O.includes(P)?P:H(P)?`${P}|0`:P)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:T(_,{when:N=>N.length<3}),literal:i,type:c,built_in:g},contains:[{scope:"type",match:m(a)},S,x,E,s,r,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,w]}}function Vr(e){return e?typeof e=="string"?e:e.source:null}function wt(e){return q("(?=",e,")")}function q(...e){return e.map(n=>Vr(n)).join("")}function Zc(e){let t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function te(...e){return"("+(Zc(e).capture?"":"?:")+e.map(s=>Vr(s)).join("|")+")"}new RegExp(te(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));var jn=e=>q(/\b/,e,/\w$/.test(e)?/\b/:/\B/),jc=["Protocol","Type"].map(jn),Yr=["init","self"].map(jn),Jc=["Any","Self"],Vn=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Xr=["false","nil","true"],el=["assignment","associativity","higherThan","left","lowerThan","none","right"],tl=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Qr=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Zr=te(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),jr=te(Zr,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Zn=q(Zr,jr,"*"),Jr=te(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),Xt=te(Jr,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),me=q(Jr,Xt,"*"),Yt=q(/[A-Z]/,Xt,"*"),nl=["attached","autoclosure",q(/convention\(/,te("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",q(/objc\(/,me,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],sl=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function eo(e){let t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),s=[e.C_LINE_COMMENT_MODE,n],r={match:[/\./,te(...jc,...Yr)],className:{2:"keyword"}},i={match:q(/\./,te(...Vn)),relevance:0},a=Vn.filter(U=>typeof U=="string").concat(["_|0"]),c=Vn.filter(U=>typeof U!="string").concat(Jc).map(jn),u={variants:[{className:"keyword",match:te(...c,...Yr)}]},d={$pattern:te(/\b\w+/,/#\w+/),keyword:a.concat(tl),literal:Xr},f=[r,i,u],g={match:q(/\./,te(...Qr)),relevance:0},p={className:"built_in",match:q(/\b/,te(...Qr),/(?=\()/)},h=[g,p],_={match:/->/,relevance:0},E={className:"operator",relevance:0,variants:[{match:Zn},{match:`\\.(\\.|${jr})+`}]},w=[_,E],x="([0-9]_*)+",m="([0-9a-fA-F]_*)+",S={className:"number",relevance:0,variants:[{match:`\\b(${x})(\\.(${x}))?([eE][+-]?(${x}))?\\b`},{match:`\\b0x(${m})(\\.(${m}))?([pP][+-]?(${x}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},T=(U="")=>({className:"subst",variants:[{match:q(/\\/,U,/[0\\tnr"']/)},{match:q(/\\/,U,/u\{[0-9a-fA-F]{1,8}\}/)}]}),N=(U="")=>({className:"subst",match:q(/\\/,U,/[\t ]*(?:[\r\n]|\r\n)/)}),O=(U="")=>({className:"subst",label:"interpol",begin:q(/\\/,U,/\(/),end:/\)/}),B=(U="")=>({begin:q(U,/"""/),end:q(/"""/,U),contains:[T(U),N(U),O(U)]}),H=(U="")=>({begin:q(U,/"/),end:q(/"/,U),contains:[T(U),O(U)]}),P={className:"string",variants:[B(),B("#"),B("##"),B("###"),H(),H("#"),H("##"),H("###")]},Y=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],Q={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:Y},Z=U=>{let ve=q(U,/\//),R=q(/\//,U);return{begin:ve,end:R,contains:[...Y,{scope:"comment",begin:`#(?!.*${R})`,end:/$/}]}},ue={scope:"regexp",variants:[Z("###"),Z("##"),Z("#"),Q]},X={match:q(/`/,me,/`/)},V={className:"variable",match:/\$\d+/},b={className:"variable",match:`\\$${Xt}+`},A=[X,V,b],C={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:sl,contains:[...w,S,P]}]}},L={scope:"keyword",match:q(/@/,te(...nl),wt(te(/\(/,/\s+/)))},F={scope:"meta",match:q(/@/,me)},K=[C,L,F],W={match:wt(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:q(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,Xt,"+")},{className:"type",match:Yt,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:q(/\s+&\s+/,wt(Yt)),relevance:0}]},ie={begin:/</,end:/>/,keywords:d,contains:[...s,...f,...K,_,W]};W.contains.push(ie);let se={match:q(me,/\s*:/),keywords:"_|0",relevance:0},oe={begin:/\(/,end:/\)/,relevance:0,keywords:d,contains:["self",se,...s,ue,...f,...h,...w,S,P,...A,...K,W]},Ke={begin:/</,end:/>/,keywords:"repeat each",contains:[...s,W]},Ot={begin:te(wt(q(me,/\s*:/)),wt(q(me,/\s+/,me,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:me}]},Et={begin:/\(/,end:/\)/,keywords:d,contains:[Ot,...s,...f,...w,S,P,...K,W,oe],endsParent:!0,illegal:/["']/},Pn={match:[/(func|macro)/,/\s+/,te(X.match,me,Zn)],className:{1:"keyword",3:"title.function"},contains:[Ke,Et,t],illegal:[/\[/,/%/]},Bn={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Ke,Et,t],illegal:/\[|%/},Hn={match:[/operator/,/\s+/,Zn],className:{1:"keyword",3:"title"}},Fn={begin:[/precedencegroup/,/\s+/,Yt],className:{1:"keyword",3:"title"},contains:[W],keywords:[...el,...Xr],end:/}/},ze={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Lt={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},ae={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,me,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:d,contains:[Ke,...f,{begin:/:/,end:/\{/,keywords:d,contains:[{scope:"title.class.inherited",match:Yt},...f],relevance:0}]};for(let U of P.variants){let ve=U.contains.find(Dt=>Dt.label==="interpol");ve.keywords=d;let R=[...f,...h,...w,S,P,...A];ve.contains=[...R,{begin:/\(/,end:/\)/,contains:["self",...R]}]}return{name:"Swift",keywords:d,contains:[...s,Pn,Bn,ze,Lt,ae,Hn,Fn,{beginKeywords:"import",end:/$/,contains:[...s],relevance:0},ue,...f,...h,...w,S,P,...A,...K,W,oe]}}var Qt="[A-Za-z$_][0-9A-Za-z$_]*",to=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],no=["true","false","null","undefined","NaN","Infinity"],so=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ro=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],oo=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],io=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],ao=[].concat(oo,so,ro);function rl(e){let t=e.regex,n=(C,{after:L})=>{let F="</"+C[0].slice(1);return C.input.indexOf(F,L)!==-1},s=Qt,r={begin:"<>",end:"</>"},i=/<[A-Za-z0-9\\._:-]+\s*\/>/,a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(C,L)=>{let F=C[0].length+C.index,K=C.input[F];if(K==="<"||K===","){L.ignoreMatch();return}K===">"&&(n(C,{after:F})||L.ignoreMatch());let W,ie=C.input.substring(F);if(W=ie.match(/^\s*=/)){L.ignoreMatch();return}if((W=ie.match(/^\s+extends\s+/))&&W.index===0){L.ignoreMatch();return}}},c={$pattern:Qt,keyword:to,literal:no,built_in:ao,"variable.language":io},u="[0-9](_?[0-9])*",d=`\\.(${u})`,f="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={className:"number",variants:[{begin:`(\\b(${f})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${f})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},p={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,p],subLanguage:"xml"}},_={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,p],subLanguage:"css"}},E={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,p],subLanguage:"graphql"}},w={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,p]},m={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},S=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,_,E,w,{match:/\$\d+/},g];p.contains=S.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(S)});let T=[].concat(m,p.contains),N=T.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(T)}]),O={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:N},B={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,t.concat(s,"(",t.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},H={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...so,...ro]}},P={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},Y={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[O],illegal:/%/},Q={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Z(C){return t.concat("(?!",C.join("|"),")")}let ue={match:t.concat(/\b/,Z([...oo,"super","import","await"].map(C=>`${C}\\s*\\(`)),s,t.lookahead(/\s*\(/)),className:"title.function",relevance:0},X={begin:t.concat(/\./,t.lookahead(t.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},V={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},O]},b="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",A={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(b)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[O]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:N,CLASS_REFERENCE:H},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),P,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,_,E,w,m,{match:/\$\d+/},g,H,{scope:"attr",match:s+t.lookahead(":"),relevance:0},A,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{className:"function",begin:b,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:N}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r.begin,end:r.end},{match:i},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},Y,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[O,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},X,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[O]},ue,Q,B,V,{match:/\$[(.]/}]}}function co(e){let t=e.regex,n=rl(e),s=Qt,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[n.exports.CLASS_REFERENCE]},c={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Qt,keyword:to.concat(u),literal:no,built_in:ao.concat(r),"variable.language":io},f={className:"meta",begin:"@"+s},g=(E,w,x)=>{let m=E.contains.findIndex(S=>S.label===w);if(m===-1)throw new Error("can not find mode to replace");E.contains.splice(m,1,x)};Object.assign(n.keywords,d),n.exports.PARAMS_CONTAINS.push(f);let p=n.contains.find(E=>E.scope==="attr"),h=Object.assign({},p,{match:t.concat(s,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,p,h]),n.contains=n.contains.concat([f,i,a,h]),g(n,"shebang",e.SHEBANG()),g(n,"use_strict",c);let _=n.contains.find(E=>E.label==="func.def");return _.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function lo(e){let t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s=/[\p{L}0-9._:-]+/u,r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(i,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{className:"string"}),u=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[i,u,c,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[i,a,u,c]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[d],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[d],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:d}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function uo(e){let t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},r={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},i={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},a={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,r]},c=e.inherit(a,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),p={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},h={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},_={begin:/\{/,end:/\}/,contains:[h],illegal:"\\n",relevance:0},E={begin:"\\[",end:"\\]",contains:[h],illegal:"\\n",relevance:0},w=[s,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},p,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},_,E,i,a],x=[...w];return x.pop(),x.push(c),h.contains=x,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:w}}G.registerLanguage("bash",Tr);G.registerLanguage("c",Ir);G.registerLanguage("cpp",Ar);G.registerLanguage("css",Cr);G.registerLanguage("dockerfile",Mr);G.registerLanguage("go",xr);G.registerLanguage("ini",kr);G.registerLanguage("java",Or);G.registerLanguage("javascript",Hr);G.registerLanguage("json",Fr);G.registerLanguage("kotlin",$r);G.registerLanguage("markdown",Ur);G.registerLanguage("php",qr);G.registerLanguage("python",Kr);G.registerLanguage("ruby",zr);G.registerLanguage("rust",Wr);G.registerLanguage("sql",Gr);G.registerLanguage("swift",eo);G.registerLanguage("typescript",co);G.registerLanguage("xml",lo);G.registerLanguage("yaml",uo);var fo={bash:"bash",sh:"bash",zsh:"bash",c:"c",h:"c",cc:"cpp",cpp:"cpp",cxx:"cpp",hpp:"cpp",hxx:"cpp",css:"css",dockerfile:"dockerfile",go:"go",ini:"ini",toml:"ini",java:"java",cjs:"javascript",js:"javascript",jsx:"javascript",mjs:"javascript",json:"json",jsonc:"json",kt:"kotlin",kts:"kotlin",md:"markdown",markdown:"markdown",php:"php",py:"python",rb:"ruby",rs:"rust",sql:"sql",swift:"swift",cts:"typescript",mts:"typescript",ts:"typescript",tsx:"typescript",htm:"xml",html:"xml",svg:"xml",xml:"xml",yaml:"yaml",yml:"yaml"};function po(e,t){let n=t.split(".").pop()?.toLowerCase()??"",s=fo[n]??(t.toLowerCase()==="dockerfile"?"dockerfile":null);return s?G.highlight(e,{language:s}).value:null}var ol=new Set(["bash","c","cpp","css","dockerfile","go","ini","java","javascript","json","kotlin","markdown","php","python","ruby","rust","sql","swift","typescript","xml","yaml"]),il={"c++":"cpp",shell:"bash",console:"bash"};function go(e,t){let n=t.trim().toLowerCase();if(!n)return null;let s=ol.has(n)?n:il[n]??fo[n];return s?G.highlight(e,{language:s}).value:null}function ce(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function Jn(e){return e.replace(/\bhttps?:\/\/[^\s<]+/g,t=>{let n=t,s="";for(;;){let r=n.match(/(&quot;|&#39;|&gt;|[.,;:!?'\]}"])$/);if(!r)break;s=r[0]+s,n=n.slice(0,-r[0].length)}for(;n.endsWith(")");){let r=(n.match(/\(/g)??[]).length,i=(n.match(/\)/g)??[]).length;if(r>=i)break;s=")"+s,n=n.slice(0,-1)}return n?`<a href="${n}" target="_blank" rel="noopener noreferrer">${n}</a>${s}`:t})}function al(e){let t=/<code>([\s\S]*?)<\/code>|<a\b[^>]*>[\s\S]*?<\/a>/g,n="",s=0,r;for(;(r=t.exec(e))!==null;){n+=Jn(e.slice(s,r.index));let i=r[1];i!==void 0&&/^https?:\/\/[^\s<]+$/.test(i.trim())?n+=`<code>${Jn(i)}</code>`:n+=r[0],s=r.index+r[0].length}return n+Jn(e.slice(s))}function je(e){return e=e.replace(/`([^`\n]+)`/g,(t,n)=>`<code>${n}</code>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,"<strong>$1</strong>"),e=e.replace(/(^|[^*])\*([^*\n]+)\*/g,"$1<em>$2</em>"),e=e.replace(/__([^_\n]+)__/g,"<strong>$1</strong>"),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(t,n,s)=>{let r=s.match(/^hydra:\/\/(?:[^/\s]+\/)?sessions\/([A-Za-z0-9_-]+)(?:#turn-\d+)?$/);if(r){let i=r[1];return`<a href="#/session/${ce(i)}">${n}</a>`}return/^(https?:\/\/|\/|\.)/i.test(s)?`<a href="${ce(s)}" target="_blank" rel="noopener noreferrer">${n}</a>`:`[${n}](${s})`}),al(e)}function es(e){let t=e.trim();if(!t.includes("|"))return null;let n=t;return n.startsWith("|")&&(n=n.slice(1)),n.endsWith("|")&&(n=n.slice(0,-1)),n.split("|").map(s=>s.trim())}function cl(e){let t=es(e);if(!t||t.length===0)return null;let n=[];for(let s of t){if(!/^:?-+:?$/.test(s))return null;let r=s.startsWith(":"),i=s.endsWith(":");r&&i?n.push("center"):i?n.push("right"):r?n.push("left"):n.push(null)}return n}function mo(e,t){let n=go(e,t),s=ce(t),r=n!==null?` class="hljs" data-lang="${s}"`:` data-lang="${s}"`,i=n??ce(e);return`<pre><code${r}>${i}</code></pre>`}function ho(e,t,n){let s="<tr>";for(let r=0;r<e.length;r++){let i=t[r]??null,a=i?` style="text-align:${i}"`:"";s+=`<${n}${a}>${je(ce(e[r]))}</${n}>`}return s+="</tr>",s}function bo(e){typeof e!="string"&&(e=String(e??""));let t=e.split(`
649
+ `),n="",s=!1,r="",i=[],a=null,c=[];function u(){c.length!==0&&(n+=`<p>${je(c.join(" "))}</p>`,c=[])}function d(){a&&(n+=`</${a}>`,a=null)}let f=0;for(;f<t.length;){let g=t[f];if(s){if(/^```/.test(g)){n+=mo(i.join(`
650
+ `),r),s=!1,i=[],r="",f++;continue}i.push(g),f++;continue}if(/^```/.test(g)){u(),d(),s=!0,r=g.slice(3).trim(),f++;continue}if(f+1<t.length&&g.includes("|")){let h=es(g),_=cl(t[f+1]);if(h&&_&&h.length>0&&_.length>0){u(),d();let E=Math.max(h.length,_.length),w=[];for(let m=0;m<E;m++)w.push(_[m]??null);n+="<table><thead>",n+=ho(h,w,"th"),n+="</thead><tbody>";let x=f+2;for(;x<t.length;){let m=es(t[x]);if(!m)break;n+=ho(m,w,"td"),x++}n+="</tbody></table>",f=x;continue}}if(/^\s*$/.test(g)){u(),d(),f++;continue}let p;if(p=g.match(/^(#{1,3})\s+(.+)$/)){u(),d();let h=p[1].length;n+=`<h${h}>${je(ce(p[2]))}</h${h}>`,f++;continue}if(p=g.match(/^\s*[-*]\s+(.*)$/)){u(),a!=="ul"&&(d(),n+="<ul>",a="ul"),n+=`<li>${je(ce(p[1]))}</li>`,f++;continue}if(p=g.match(/^\s*\d+\.\s+(.*)$/)){u(),a!=="ol"&&(d(),n+="<ol>",a="ol"),n+=`<li>${je(ce(p[1]))}</li>`,f++;continue}if(p=g.match(/^\s*>\s?(.*)$/)){u(),d(),n+=`<blockquote>${je(ce(p[1]))}</blockquote>`,f++;continue}d(),c.push(ce(g)),f++}return s&&(n+=mo(i.join(`
650
651
  `),r)),u(),d(),n}function vt(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.map(vt).join("");if(e&&typeof e=="object"){let t=e;if(typeof t.text=="string")return t.text;if(typeof t.content=="string")return t.content}return""}function Eo(e){let t=e.content;if(Array.isArray(t))for(let s of t){if(!s||typeof s!="object")continue;let r=s;if(r.type!=="diff")continue;let i=typeof r.oldText=="string"?r.oldText:void 0,a=typeof r.newText=="string"?r.newText:void 0;if(i===void 0&&a===void 0)continue;let c=typeof r.path=="string"?r.path:void 0;return{...c!==void 0?{path:c}:{},oldText:i??"",newText:a??""}}let n=e.rawInput;if(n&&typeof n=="object"&&!Array.isArray(n)){let s=n,r=typeof s.file_path=="string"?s.file_path:typeof s.path=="string"?s.path:void 0;if(typeof s.old_string=="string"&&typeof s.new_string=="string")return{...r!==void 0?{path:r}:{},oldText:s.old_string,newText:s.new_string};if(typeof s.content=="string")return{...r!==void 0?{path:r}:{},oldText:"",newText:s.content}}return null}function yo(e){let t=e.oldText.split(`
651
652
  `),n=e.newText.split(`
652
- `);return t.length>0&&t[t.length-1]===""&&t.pop(),n.length>0&&n[n.length-1]===""&&n.pop(),{oldLines:t,newLines:n}}var ll=1e6;function ul(e,t){let n=e.length,s=t.length;if(n===0||s===0||n*s>ll){let u=[];for(let d of e)u.push({op:"-",text:d});for(let d of t)u.push({op:"+",text:d});return u}let r=Array.from({length:n+1},()=>new Array(s+1).fill(0));for(let u=n-1;u>=0;u--)for(let d=s-1;d>=0;d--)e[u]===t[d]?r[u][d]=r[u+1][d+1]+1:r[u][d]=Math.max(r[u+1][d],r[u][d+1]);let i=[],a=0,c=0;for(;a<n&&c<s;)e[a]===t[c]?(i.push({op:"=",text:e[a]}),a++,c++):r[a+1][c]>=r[a][c+1]?(i.push({op:"-",text:e[a]}),a++):(i.push({op:"+",text:t[c]}),c++);for(;a<n;)i.push({op:"-",text:e[a]}),a++;for(;c<s;)i.push({op:"+",text:t[c]}),c++;return i}function _o(e,t){let n=0,s=Math.min(e.length,t.length);for(;n<s&&e[n]===t[n];)n++;let r=e.length,i=t.length;for(;r>n&&i>n&&e[r-1]===t[i-1];)r--,i--;let a=[];for(let c=0;c<n;c++)a.push({op:"=",text:e[c]});a.push(...ul(e.slice(n,r),t.slice(n,i)));for(let c=r;c<e.length;c++)a.push({op:"=",text:e[c]});return a}function wo(e){let{oldLines:t,newLines:n}=yo(e),s=0,r=0;for(let i of _o(t,n))i.op==="+"?s++:i.op==="-"&&r++;return{added:s,removed:r}}function vo(e,t={}){let n=t.maxLines??40,s=t.contextLines??3,{oldLines:r,newLines:i}=yo(e),a=_o(r,i),c=[];if(Number.isFinite(s)){if(!a.some(g=>g.op!=="="))return[];let f=new Array(a.length).fill(!1);for(let g=0;g<a.length;g++)if(a[g].op!=="="){let m=Math.max(0,g-s),_=Math.min(a.length-1,g+s);for(let w=m;w<=_;w++)f[w]=!0}let p=0;for(;p<a.length;){if(f[p]){c.push({op:a[p].op,text:a[p].text}),p++;continue}let g=p;for(;g<a.length&&!f[g];)g++;let m=g-p;c.push({op:"gap",text:`\u22EF ${m} unchanged line${m===1?"":"s"}`}),p=g}}else for(let d of a)c.push({op:d.op,text:d.text});let u=[];for(let d=0;d<c.length;d++){if(u.length>=n-1&&d<c.length-1){let p=c.length-d;u.push({op:"gap",text:`\u2026 ${p} more line${p===1?"":"s"}`});break}u.push(c[d])}return u}var dl="hydra-acp-history-cache",fl=4,de="sessions",pl=6e6,So=10,gl=2e3,Vt=null;function ts(){return Vt||(Vt=new Promise(e=>{if(!("indexedDB"in window)){e(null);return}let t;try{t=indexedDB.open(dl,fl)}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(de)&&t.result.deleteObjectStore(de),t.result.createObjectStore(de,{keyPath:"sessionId"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)}),Vt)}function ml(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}async function Ao(e){let t=await ts();return t?new Promise(n=>{let s;try{s=t.transaction(de,"readwrite")}catch{n(null);return}let r=s.objectStore(de),i=r.get(e);i.onsuccess=()=>{let a=i.result;if(!a){n(null);return}a.lastAccessed=Date.now(),r.put(a),n({frames:Se("cache-read-map",()=>a.frames.map(c=>c.frame))})},i.onerror=()=>n(null)}):null}async function Co(e){let t=await ts();return t?new Promise(n=>{let s;try{s=t.transaction(de,"readonly")}catch{n("unreadable");return}let r=s.objectStore(de).get(e);r.onsuccess=()=>{let i=r.result;if(!i){n("empty");return}let a=new Map;for(let u of i.frames){let d=u.frame.params?.update,f=typeof d?.sessionUpdate=="string"?d.sessionUpdate:"?";a.set(f,(a.get(f)??0)+1)}let c=[...a.entries()].sort((u,d)=>d[1]-u[1]).map(([u,d])=>`${u.replace(/_chunk$/,"")}:${d}`).join(" ");n(`${i.frames.length}f ${(i.totalBytes/1e6).toFixed(1)}MB \u2014 ${c}`)},r.onerror=()=>n("unreadable")}):"unavailable"}var Le=new Map,Je;function Zt(e,t){let n=Le.get(e)??[];n.push(t),Le.set(e,n),Je===void 0&&(Je=setTimeout(()=>{Je=void 0,Mo()},gl))}var To=Promise.resolve();function Mo(){To=To.then(hl).catch(()=>{})}function Io(){Je!==void 0&&(clearTimeout(Je),Je=void 0),Mo()}async function hl(){if(Le.size===0)return;let e=Array.from(Le.keys()),t=await ts();if(!t){Le.clear();return}for(let n of e){let s=Le.get(n);Le.delete(n),s&&await bl(t,n,s)}await El(t)}function bl(e,t,n){return new Promise(s=>{let r;try{r=e.transaction(de,"readwrite")}catch{s();return}let i=r.objectStore(de),a=i.get(t);a.onsuccess=()=>{let c=a.result,u=Se("cache-size",()=>n.map(m=>({frame:m,bytes:ml(m)}))),d=[...c?.frames??[],...u],f=(c?.totalBytes??0)+u.reduce((m,_)=>m+_.bytes,0);for(;d.length>1&&f>pl;){let m=d.shift();m&&(f-=m.bytes)}let p=d.findIndex(m=>m.frame.params?.update?.sessionUpdate==="prompt_received");if(p>0)for(let m of d.splice(0,p))f-=m.bytes;let g={sessionId:t,frames:d,totalBytes:f,lastAccessed:Date.now()};Se("cache-put",()=>i.put(g)),s()},a.onerror=()=>s()})}function El(e){return new Promise(t=>{let n;try{n=e.transaction(de,"readwrite")}catch{t();return}let s=n.objectStore(de),r=s.getAll();r.onsuccess=()=>{let i=r.result??[];if(i.length<=So){t();return}i.sort((c,u)=>c.lastAccessed-u.lastAccessed);let a=i.slice(0,i.length-So);for(let c of a)s.delete(c.sessionId);t()},r.onerror=()=>t()})}typeof window<"u"&&typeof document<"u"&&(window.addEventListener("pagehide",Io),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Io()}));typeof navigator<"u"&&navigator.storage?.persist&&navigator.storage.persist();function en(e){o.current&&o.current.log.push(e)}var yl=new Set(["session_info_update","_hydra_current_model_update","current_mode_update","available_commands_update","_hydra_available_modes_update","usage_update","config_option_update","_hydra_compaction","_hydra_workspace","clarifier_question_asked","clarifier_question_answered","clarifier_question_dismissed"]);function tn(e){e.log=[],e.toolCalls=new Map,e.pendingPermissions=new Map,e.spinner=null,e.plan=null,e.mode=null,e.model=null,e.modes=[],e.models=[],e.contextUsed=null,e.contextSize=null,e.cost=null,e.busy=!1,e.recentOwnPrompts=[],e.promptQueue=[],e.queueByMessageId=new Map,e.ownPromptIds=new Map,e.inTurn=!1,e.unsolicitedTurnOpen=new Set,e.currentPlanEntry=null,e.daemonSupportsAmend=!1,e.ownClientId=void 0,e.currentHeadMessageId=void 0,e.lastSeenMessageId=void 0,e.pendingCursorMessageId=void 0,e.lastSeenSeq=void 0,e.spinnerOwner=void 0}function _l(e){if(!e||typeof e!="object")return;let t=e._meta;if(!t||typeof t!="object")return;let n=t["hydra-acp"];if(!n||typeof n!="object")return;let s=n.seq;return typeof s=="number"&&Number.isFinite(s)?s:void 0}function wl(e){if(!e||typeof e!="object")return;let t=e._meta;if(!t||typeof t!="object")return;let n=t["hydra-acp"];if(!n||typeof n!="object")return;let s=n.recordedAt;return typeof s=="number"&&Number.isFinite(s)?s:void 0}function vl(e){if(e.kind!=="stream"||e.role!=="user"||!e.queueEntry)return!1;let t=e.queueEntry.status;return t==="queued"||t==="editing"}function ss(){if(!o.current)return 0;let e=o.current.log;for(let t=0;t<e.length;t++)if(vl(e[t]))return t;return e.length}function _e(e){o.current&&o.current.log.splice(ss(),0,e)}function rs(e){if(!(!o.current||e.messageId===void 0)){for(let t of o.current.log)if(t.kind==="stream"&&t.queueEntry===e){t.messageId=e.messageId,Tl(e);return}}}function Sl(e,t){let n=o.current?.spinnerOwner;!o.current||n===void 0||Zt(o.current.sessionId,{method:"session/update",params:{sessionId:o.current.sessionId,update:{sessionUpdate:"turn_complete",messageId:`${n}:turn_complete`,...e!==void 0?{stopReason:e}:{}},_meta:{"hydra-acp":{recordedAt:t??Date.now()}}}})}function Tl(e){!o.current||e.messageId===void 0||Zt(o.current.sessionId,{method:"session/update",params:{sessionId:o.current.sessionId,update:{sessionUpdate:"prompt_received",messageId:e.messageId,prompt:[{type:"text",text:e.text},...(e.attachments??[]).map(t=>({type:"image",mimeType:t.mimeType,data:t.data}))]},_meta:{"hydra-acp":{recordedAt:Date.now()}}}})}function fe(){o.current&&(o.current.inTurn=!0)}function Il(){if(!o.current)return;o.current.inTurn=!1;let e=o.current.idleListeners;o.current.idleListeners=[];for(let t of e)try{t()}catch{}}function ns(e,t,n=!1,s){if(!o.current)return;let r=vt(t);if(!r)return;let i=o.current.log,a=ss(),c;for(let u=a-1;u>=0;u--){let d=i[u];if(d.kind!=="spinner"){c=d;break}}if(c&&c.kind==="stream"&&c.role===e&&!c.closed&&!!c.synthetic===n&&(c.messageId===void 0||s===void 0||c.messageId===s)){c.text+=r,s!==void 0&&(c.messageId=s);return}i.splice(a,0,{kind:"stream",role:e,text:r,synthetic:n||void 0,messageId:s})}function tt(){if(o.current)for(let e=o.current.log.length-1;e>=0;e--){let t=o.current.log[e];if(t.kind==="stream"&&!t.closed){t.closed=!0;return}}}function xo(){if(!o.current)return;let e=o.current,t=e.pendingCursorMessageId;t===void 0||t===e.lastSeenMessageId||(e.log=e.log.filter(n=>!(n.kind==="stream"&&n.role!=="user"&&n.messageId===t)),e.pendingCursorMessageId=e.lastSeenMessageId)}function ko(e){if(!o.current)return!1;let t=vt(e);if(!t)return!1;let n=o.current.recentOwnPrompts;for(let s=0;s<n.length;s++)if(n[s].text===t)return n.splice(s,1),!0;return!1}function jt(e){if(!e)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(jt).join("");if(typeof e=="object"){let t=e;if(t.text)return String(t.text);if(t.content)return jt(t.content);if(t.diff)return String(t.diff);try{return JSON.stringify(e,null,2)}catch{return String(e)}}return""}function we(e){if(!o.current)return;let t=o.current;if(t.spinner){t.log.some(n=>n.kind==="spinner")||_e({kind:"spinner",spinner:t.spinner});return}t.spinner={toolCallIds:[],expanded:!1,startedAt:e??Date.now(),sending:!1},t.spinnerOwner=void 0,_e({kind:"spinner",spinner:t.spinner})}function No(e,t){if(!o.current)return;let n=o.current,s=n.spinner;if(s){let r=n.log.findIndex(i=>i.kind==="spinner");r>=0&&(n.log[r]={kind:"turn-stamp",elapsedMs:Math.max(0,(e??Date.now())-s.startedAt),toolCount:s.toolCallIds.length,stopReason:t})}n.spinner=null,n.spinnerOwner=void 0,n.log=n.log.filter(r=>r.kind!=="spinner")}function nt(e,t,n=!1){if(!o.current)return;let s=o.current;No(e),s.spinner={toolCallIds:[],expanded:!1,startedAt:e??Date.now(),sending:n},s.spinnerOwner=t,_e({kind:"spinner",spinner:s.spinner})}function Al(e){return typeof e!="string"||!e?!1:e.toLowerCase().replace(/[_\s-]/g,"")==="exitplanmode"}function Cl(e){let t=e.rawInput;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t.plan;return typeof n!="string"||n.length===0?null:n}function Ml(e){if(!o.current)return null;let t=o.current.log;for(let n=0;n<t.length;n++){let s=t[n];if(s.kind==="exit-plan-mode"&&s.toolCallId===e)return{idx:n,item:s}}return null}function Ro(e){if(!o.current)return!1;let t=String(e.toolCallId??"");if(!t)return!1;let n=e.name??e.title,s=Ml(t);if(!Al(n)&&!s)return!1;let r=Cl(e),i=typeof e.status=="string"?e.status:void 0;if(s)return r!==null&&(s.item.plan=r),i!==void 0&&(s.item.status=i),!0;if(r===null)return!1;tt();let a={kind:"exit-plan-mode",toolCallId:t,plan:r};return i!==void 0&&(a.status=i),_e(a),!0}function xl(e){if(!o.current)return null;let t=o.current.log;for(let n=0;n<t.length;n++){let s=t[n];if(s.kind==="edit-diff"&&s.toolCallId===e)return{idx:n,item:s}}return null}function Oo(e){if(!o.current)return!1;let t=String(e.toolCallId??"");if(!t)return!1;let n=xl(t),s=Eo(e),r=typeof e.status=="string"?e.status:void 0;if(n)return s!==null&&(n.item.diff=s),r!==void 0&&(n.item.status=r),!0;if(s===null)return!1;tt();let i={kind:"edit-diff",toolCallId:t,diff:s,expanded:!1};return r!==void 0&&(i.status=r),_e(i),!0}function kl(e){let t=e._meta;if(!t||typeof t!="object")return;let n=t.claudeCode;if(!n||typeof n!="object")return;let s=n.parentToolUseId;return typeof s=="string"?s:void 0}function Nl(e){if(!o.current)return;if(kl(e)===void 0&&tt(),Ro(e)){et(String(e.toolCallId),typeof e.status=="string"?e.status:void 0);return}if(Oo(e)){et(String(e.toolCallId),typeof e.status=="string"?e.status:void 0);return}let t={toolCallId:String(e.toolCallId),title:String(e.title??e.kind??"tool"),kind:String(e.kind??""),status:String(e.status??"in_progress"),content:jt(e.content)};o.current.toolCalls.set(t.toolCallId,t),we(),o.current.spinner?.toolCallIds.push(t.toolCallId),et(t.toolCallId,t.status)}function Rl(e){if(!o.current)return;if(Ro(e)){typeof e.status=="string"&&et(String(e.toolCallId),e.status);return}if(Oo(e)){typeof e.status=="string"&&et(String(e.toolCallId),e.status);return}let t=o.current.toolCalls.get(String(e.toolCallId));t&&(typeof e.status=="string"&&(t.status=e.status,et(t.toolCallId,e.status)),typeof e.title=="string"&&(t.title=e.title),e.content!==void 0&&(t.content=(t.content||"")+jt(e.content)))}function De(e,t,n=!1){if(o.current){n&&Sl(e,t),No(t,e),tt();for(let s of o.current.promptQueue)s.status==="processing"&&(s.status=e==="cancelled"?"cancelled":"done");for(let s of o.current.promptQueue)s.reseatAfterCurrentTurn&&s.status!=="done"&&s.status!=="cancelled"&&(s.reseatAfterCurrentTurn=void 0,nn(o.current,s));o.current.currentPlanEntry=null,o.current.currentHeadMessageId=void 0,Il()}}function Ol(e,t){if(!o.current)return;let s=(Array.isArray(e.prompt)?e.prompt:[]).map(a=>vt(a)).join("");if(!s)return;let r=typeof e.messageId=="string"?e.messageId:void 0;if(r&&o.current.queueByMessageId.has(r)||r&&o.current.log.some(a=>a.kind==="stream"&&a.role==="user"&&a.messageId===r)||ko({text:s}))return;let i=o.current.promptQueue.find(a=>a.text===s&&(a.status==="pending"||a.status==="queued"||a.status==="processing"));if(i){r!==void 0&&i.messageId===void 0&&(i.messageId=r,o.current.queueByMessageId.set(r,i),rs(i),o.current.spinnerOwner===i.id&&(o.current.spinnerOwner=r));return}tt(),_e({kind:"stream",role:"user",text:s,closed:!0,messageId:r,attachments:os(e.prompt)}),nt(t,r),fe()}function Lo(e){if(o.current)for(let t of e){if(!t||typeof t!="object")continue;let n=t,s=typeof n.messageId=="string"?n.messageId:"";if(!s)continue;let r=typeof n.position=="number"?n.position:0,i=o.current.queueByMessageId.get(s);if(i){r===0?(o.current.currentHeadMessageId=s,(i.status==="queued"||i.status==="pending")&&(i.status="processing")):i.status==="pending"&&(i.status="queued");continue}let a=Do(n.prompt);if(!a)continue;let c=o.current.promptQueue.find(d=>d.messageId===void 0&&d.text===a&&(d.status==="pending"||d.status==="queued"||d.status==="cancelled"));if(c){c.messageId=s,o.current.queueByMessageId.set(s,c),rs(c),c.aheadAtEnqueue=Math.max(0,r),c.status=r===0?"processing":"queued",r===0&&(o.current.currentHeadMessageId=s);continue}let u={id:"snap_"+Math.random().toString(36).slice(2,10),text:a,status:r===0?"processing":"queued",aheadAtEnqueue:Math.max(0,r),messageId:s};if(o.current.queueByMessageId.set(s,u),r===0){o.current.currentHeadMessageId=s;let d=Ll(a);if(d){d.queueEntry=u;continue}}o.current.log.push({kind:"stream",role:"user",text:a,closed:!0,queueEntry:u,attachments:os(n.prompt)})}}function Ll(e){if(!o.current)return null;let t=o.current.log;for(let n=t.length-1;n>=0;n--){let s=t[n];if(s.kind==="stream"&&s.role==="user"&&!s.queueEntry&&s.text===e)return s}return null}function Do(e){let t=Array.isArray(e)?e:[],n="";for(let s of t)if(s&&typeof s=="object"){let r=s;r.type==="text"&&typeof r.text=="string"&&(n+=r.text)}return n}function os(e){let t=Array.isArray(e)?e:[],n=[];for(let s of t){if(!s||typeof s!="object")continue;let r=s;r.type!=="image"||typeof r.data!="string"||n.push({mimeType:typeof r.mimeType=="string"?r.mimeType:"image/png",data:r.data,sizeBytes:Math.round(r.data.length*3/4)})}return n.length>0?n:void 0}function Dl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let s=(e._meta??{})["hydra-acp"]??{},r=typeof s.amending=="string"?s.amending:void 0,i=e.originator??{},a=typeof i.clientId=="string"?i.clientId:"",c=!!o.current.ownClientId&&a===o.current.ownClientId,u=Do(e.prompt);if(c){let _=o.current.promptQueue.filter(E=>E.messageId===void 0&&(E.status==="pending"||E.status==="queued"||E.status==="editing")),S=(u.length>0?_.find(E=>E.text===u):void 0)??_[0]??o.current.promptQueue.find(E=>E.messageId===void 0&&E.status==="cancelled"&&E.text===u);if(!S)return;S.messageId=t,o.current.queueByMessageId.set(t,S),rs(S),o.current.spinnerOwner===S.id&&(o.current.spinnerOwner=t),r!==void 0&&(S.amendsMessageId=r,Jt(r,t));let b=typeof e.position=="number"?e.position:1;if(S.aheadAtEnqueue=Math.max(0,b),b===0)S.status="processing";else if(S.status==="pending"||S.status==="cancelled"){S.status="queued",o.current.spinnerOwner!==void 0&&o.current.spinnerOwner===S.id&&o.current.spinner&&(o.current.spinner=null,o.current.spinnerOwner=void 0,o.current.log=o.current.log.filter(C=>C.kind!=="spinner"));let E=o.current.log,x=E.findIndex(C=>C.kind==="stream"&&C.queueEntry===S);if(x>=0){let[C]=E.splice(x,1),R=ss();R>x?E.splice(R,0,C):E.splice(x,0,C)}}return}let d=u;if(!d)return;let f=typeof e.position=="number"?e.position:0,p=typeof e.queueDepth=="number"?e.queueDepth:1,g={id:"peer_"+Math.random().toString(36).slice(2,10),text:d,status:f===0?"processing":"queued",aheadAtEnqueue:Math.max(0,f),messageId:t};r!==void 0&&(g.amendsMessageId=r,Jt(r,t)),o.current.queueByMessageId.set(t,g),tt();let m={kind:"stream",role:"user",text:d,closed:!0,queueEntry:g,messageId:t,attachments:os(e.prompt)};f===0?_e(m):o.current.log.push(m)}function Pl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=o.current.queueByMessageId.get(t);if(!n)return;let s=Array.isArray(e.prompt)?e.prompt:[],r="";for(let i of s)if(i&&typeof i=="object"){let a=i;a.type==="text"&&typeof a.text=="string"&&(r+=a.text)}if(r){n.text=r;for(let i of o.current.log)if(i.kind==="stream"&&i.role==="user"&&i.queueEntry===n){i.text=r;break}}}function nn(e,t){let n=e.log.findIndex(r=>r.kind==="stream"&&r.queueEntry===t);if(n<0||n===e.log.length-1)return;let[s]=e.log.splice(n,1);s&&e.log.push(s)}function Bl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=typeof e.reason=="string"?e.reason:"";n==="started"&&(o.current.currentHeadMessageId=t);let s=o.current.queueByMessageId.get(t);s&&(n==="started"?(s.status="processing",s.reseatAfterCurrentTurn=void 0,o.current.spinnerOwner!==void 0&&(o.current.spinnerOwner===s.id||o.current.spinnerOwner===t)?(o.current.spinnerOwner=t,o.current.spinner&&(o.current.spinner.sending=!1)):nt(void 0,t),fe()):(n==="cancelled"||n==="abandoned")&&(s.amendedByMessageId!==void 0?s.status="amended":s.status="cancelled",o.current.queueByMessageId.delete(t)))}function Hl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=o.current.queueByMessageId.get(t);n&&(n.held=!0)}function Fl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=o.current.queueByMessageId.get(t);n&&(n.held=!1)}function $l(e){o.current&&typeof e.count=="number"&&(o.current.armedTasks=e.count,o.current.armedSince=e.count>0&&typeof e.since=="number"?e.since:void 0,o.current.armedTaskList=is(e.tasks))}function is(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let s=n;typeof s.label!="string"||typeof s.since!="number"||t.push({label:s.label,since:s.since,taskId:typeof s.taskId=="string"?s.taskId:void 0,taskType:typeof s.taskType=="string"?s.taskType:void 0,toolCallId:typeof s.toolCallId=="string"?s.toolCallId:void 0})}return t}function Ul(e){if(!o.current)return;switch(typeof e.phase=="string"?e.phase:""){case"started":case"iteration":o.current.compactionPhase="running";break;case"deferred":o.current.compactionPhase="deferred";break;case"swapped":o.current.compactionPhase=void 0,k({banner:{kind:"good",text:"Context compacted."}});break;case"failed":o.current.compactionPhase=void 0,k({banner:{kind:"bad",text:"Context compaction failed."}});break;case"rolled_back":o.current.compactionPhase=void 0,k({banner:{kind:"warn",text:"Compaction rolled back."}});break;default:break}}function ql(e){if(!o.current)return;let t=typeof e.cancelledMessageId=="string"?e.cancelledMessageId:"",n=typeof e.newMessageId=="string"?e.newMessageId:"";if(!t||!n)return;Jt(t,n);let s=o.current.queueByMessageId.get(n);s&&s.amendsMessageId===void 0&&(s.amendsMessageId=t)}function Jt(e,t){if(!o.current)return;let n=o.current.queueByMessageId.get(e)??o.current.promptQueue.find(s=>s.messageId===e);n&&(n.amendedByMessageId=t,n.status==="cancelled"&&(n.status="amended"))}function Kl(e){if(!o.current)return;let t=e.entries??e.plan??null;if(o.current.plan=t,o.current.currentPlanEntry){o.current.currentPlanEntry.entries=t;return}let n={kind:"plan",entries:t};_e(n),o.current.currentPlanEntry=n}function zl(e){if(!o.current)return;let t=typeof e?.toolCallId=="string"?e.toolCallId:void 0;t&&Po(t)}function Po(e){o.current&&(o.current.pendingPermissions.delete(e),o.current.log=o.current.log.filter(t=>!(t.kind==="perm"&&t.toolCallId===e)))}function et(e,t){!o.current||!e||!t||t==="pending"||o.current.pendingPermissions.has(e)&&Po(e)}function sn(e,t=!1){if(o.current?.cold&&(o.current.cold=!1,o.current.ready=!0),e.method==="hydra-acp/prompt_queue/added"){Dl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/updated"){Pl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/removed"){Bl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/held"){Hl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/released"){Fl(e.params??{});return}if(e.method==="hydra-acp/session/armed_tasks_updated"){$l(e.params??{});return}if(e.method==="hydra-acp/prompt/amended"){ql(e.params??{});return}if(e.method!=="session/update")return;let n=e.params?.update??null;if(!n||typeof n!="object")return;let s=String(n.sessionUpdate??"");if(o.current&&!t&&s&&!yl.has(s)&&typeof n.messageId=="string"){n.messageId!==o.current.pendingCursorMessageId&&(o.current.pendingCursorMessageId!==void 0&&(o.current.lastSeenMessageId=o.current.pendingCursorMessageId),o.current.pendingCursorMessageId=n.messageId);let d=_l(e.params);d!==void 0&&(o.current.lastSeenSeq=d),Zt(o.current.sessionId,e)}if(s==="permission_resolved"){zl(n);return}let i=(n._meta??{})["hydra-acp"]??{},a=s==="agent_message_chunk"&&i.synthetic===!0,c=typeof n.messageId=="string"?n.messageId:void 0,u=wl(e.params);switch(s){case"prompt_received":case"user_message_chunk":case"agent_message_chunk":case"agent_thought_chunk":case"tool_call":case"tool_call_update":case"plan":a||(fe(),o.current?.spinner&&(o.current.spinner.sending=!1));break;default:break}switch(s){case"user_message_chunk":{if(i.compatFor==="prompt_received")break;ko(n.content)||ns("user",n.content,!1,c);break}case"agent_message_chunk":ns("agent",n.content,a,c);break;case"agent_thought_chunk":ns("thought",n.content,!1,c);break;case"tool_call":Nl(n);break;case"tool_call_update":Rl(n);break;case"current_mode_update":o.current&&(o.current.mode=n.modeId??n.currentModeId??null,Array.isArray(n.availableModes)&&(o.current.modes=n.availableModes),y());break;case"_hydra_available_modes_update":o.current&&Array.isArray(n.availableModes)&&(o.current.modes=n.availableModes,y());break;case"_hydra_current_model_update":o.current&&(o.current.model=n.modelId??n.currentModelId??null,Array.isArray(n.availableModels)&&(o.current.models=n.availableModels),y());break;case"config_option_update":o.current&&Array.isArray(n.configOptions)&&(o.current.configOptions=n.configOptions,y());break;case"usage_update":if(o.current){let d=n.used??n.contextUsed,f=n.size??n.contextSize;typeof d=="number"&&(o.current.contextUsed=d),typeof f=="number"&&(o.current.contextSize=f),n.cost&&(o.current.cost=n.cost)}break;case"plan":Kl(n);break;case"prompt_received":Ol(n,u);break;case"stop":case"turn_complete":{let p=((n._meta??{})["hydra-acp"]??{}).amended;if(p){let m=typeof p.cancelledMessageId=="string"?p.cancelledMessageId:"",_=typeof p.newMessageId=="string"?p.newMessageId:"";m&&_&&Jt(m,_)}let g=typeof n.stopReason=="string"?n.stopReason:void 0;De(g,u);break}case"_hydra_turn_started":{if(!o.current)break;let f=(n._meta??{})["hydra-acp"]??{};if(f.unsolicited!==!0)break;let p=typeof n.messageId=="string"?n.messageId:void 0;if(!p||o.current.unsolicitedTurnOpen.has(p))break;o.current.unsolicitedTurnOpen.add(p),fe();let g=f.cause??{},m=typeof g.label=="string"?g.label:void 0;_e({kind:"system",text:m?`agent resumed on its own: background task finished (${m})`:"agent resumed on its own"});break}case"_hydra_turn_ended":{if(!o.current)break;let f=(n._meta??{})["hydra-acp"]??{};if(f.unsolicited!==!0)break;let p=typeof n.startedMessageId=="string"?n.startedMessageId:void 0;if(!p||!o.current.unsolicitedTurnOpen.has(p)||(o.current.unsolicitedTurnOpen.delete(p),f.reason==="superseded")||o.current.unsolicitedTurnOpen.size>0)break;De(void 0,u);break}case"session_info_update":o.current&&typeof n.title=="string"&&(o.current.title=n.title);break;case"_hydra_compaction":Ul(n);break;default:break}o.current?.inTurn&&we(u)}function Bo(e){if(o.current){if(e.method==="session/request_permission"){let t=e.params??{},n=t.toolCall??{},s=typeof n.toolCallId=="string"?n.toolCallId:"";if(!s){o.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32602,message:"missing toolCall.toolCallId"}}));return}o.current.pendingPermissions.set(s,{requestId:e.id,toolCallId:s,toolCall:n,options:t.options??[]}),en({kind:"perm",toolCallId:s});return}o.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32601,message:`method not handled: ${String(e.method)}`}}))}}var Wl="hydra-acp-draft:";function rn(e){return Wl+e}function Fo(e){try{return localStorage.getItem(rn(e))??""}catch{return""}}var on=new Map,Pe;function st(e,t){on.set(e,t),Pe!==void 0&&clearTimeout(Pe),Pe=setTimeout(()=>{Pe=void 0,$o()},400)}function an(e){on.delete(e);try{localStorage.removeItem(rn(e))}catch{}}function $o(){for(let[e,t]of on)try{t?localStorage.setItem(rn(e),t):localStorage.removeItem(rn(e))}catch{}on.clear()}function Ho(){Pe!==void 0&&(clearTimeout(Pe),Pe=void 0),$o()}typeof window<"u"&&typeof document<"u"&&(window.addEventListener("pagehide",Ho),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ho()}));var Gl="hydra-acp-offline-queue";var Be="sessions",cn=null;function as(){return cn||(cn=new Promise(e=>{if(!("indexedDB"in window)){e(null);return}let t;try{t=indexedDB.open(Gl,1)}catch{e(null);return}t.onupgradeneeded=()=>{t.result.createObjectStore(Be,{keyPath:"sessionId"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)}),cn)}async function Uo(e){let t=await as();return t?new Promise(n=>{let s;try{s=t.transaction(Be,"readonly")}catch{n([]);return}let r=s.objectStore(Be).get(e);r.onsuccess=()=>{let i=r.result;n(i?.entries??[])},r.onerror=()=>n([])}):[]}async function cs(e,t){let n=await as();if(n)return new Promise(s=>{let r;try{r=n.transaction(Be,"readwrite")}catch{s();return}let i=r.objectStore(Be),a=i.get(e);a.onsuccess=()=>{let c=a.result??{sessionId:e,entries:[]},u=c.entries.findIndex(d=>d.id===t.id);u>=0?c.entries[u]=t:c.entries.push(t),i.put(c),s()},a.onerror=()=>s()})}async function ln(e,t){let n=await as();if(n)return new Promise(s=>{let r;try{r=n.transaction(Be,"readwrite")}catch{s();return}let i=r.objectStore(Be),a=i.get(e);a.onsuccess=()=>{let c=a.result;if(!c){s();return}c.entries=c.entries.filter(u=>u.id!==t),c.entries.length===0?i.delete(e):i.put(c),s()},a.onerror=()=>s()})}function Tt(e,t){let n=[];e&&n.push({type:"text",text:e});for(let s of t)n.push({type:"image",data:s.data,mimeType:s.mimeType});return n}function It(){let e=o.current;if(!e)return;let t=e.composerValue.trim(),n=e.attachments;!t&&n.length===0||(us(e,t,{attachments:n})&&(e.composerValue="",e.attachments=[],an(e.sessionId)),y())}function Ko(e){let t=o.current;t&&(us(t,`/hydra workspace ${e}`,{addToHistory:!1}),y())}function zo(){let e=o.current;e&&(us(e,"/hydra compact",{addToHistory:!1}),y())}function us(e,t,n={}){let s=n.attachments??[],r=!e.connectionHealthy||!navigator.onLine||!e.ws||e.ws.readyState!==WebSocket.OPEN,i=e.promptQueue.filter(p=>p.status==="queued"||p.status==="pending"||p.status==="processing").length,a=e.inTurn&&!e.promptQueue.some(p=>p.status==="processing"),c=r?0:i+(a?1:0),u={id:"p_"+Math.random().toString(36).slice(2,10),text:t,status:r?"offline":c>0?"queued":"pending",aheadAtEnqueue:c,attachments:s.length>0?s:void 0};e.promptQueue.push(u),e.log.push({kind:"stream",role:"user",text:t,closed:!0,queueEntry:u,attachments:u.attachments}),e.recentOwnPrompts.push({text:t,at:Date.now()});let d=Date.now()-6e4;if(e.recentOwnPrompts=e.recentOwnPrompts.filter(p=>p.at>=d).slice(-16),r)return cs(e.sessionId,{id:u.id,text:t,attachments:u.attachments}),nt(void 0,u.id,!0),fe(),St(e),(n.addToHistory??!0)&&ls(e,t),!0;let f=pe("session/prompt",{sessionId:e.sessionId,prompt:Tt(t,s)});return f!==void 0&&e.ownPromptIds.set(String(f),u),u.status==="pending"?nt(void 0,u.id,!0):we(),fe(),St(e),(n.addToHistory??!0)&&ls(e,t),!0}function Wo(e){let t=!1,n=null;for(let s of e.promptQueue){if(s.status!=="offline")continue;if(!e.ws||e.ws.readyState!==WebSocket.OPEN)break;t=!0;let r=e.promptQueue.filter(u=>u.status==="queued"||u.status==="pending"||u.status==="processing").length,i=e.inTurn&&!e.promptQueue.some(u=>u.status==="processing"),a=r+(i?1:0);s.aheadAtEnqueue=a,s.status=a>0?"queued":"pending",!n&&s.status==="pending"&&(n=s);let c=pe("session/prompt",{sessionId:e.sessionId,prompt:Tt(s.text,s.attachments??[])});c!==void 0&&e.ownPromptIds.set(String(c),s),ln(e.sessionId,s.id),nn(e,s),e.inTurn&&(s.reseatAfterCurrentTurn=!0)}t&&(n?nt(void 0,n.id,!0):we(),fe())}var qo=100;function ls(e,t){e.history[0]!==t&&(e.history.unshift(t),e.history.length>qo&&(e.history.length=qo)),e.historyIndex=null,e.historyDraft=null}function dn(e){let t=o.current;if(t){if(e.messageId!==void 0){pe("hydra-acp/prompt/cancel",{sessionId:t.sessionId,messageId:e.messageId});return}e.status==="offline"&&ln(t.sessionId,e.id),e.status="cancelled",y()}}function Go(e){let t=o.current;if(!t||!t.daemonSupportsAmend||t.currentHeadMessageId===void 0||e.messageId===void 0||e.status!=="queued")return;if(!t.connectionHealthy||!navigator.onLine||!t.ws||t.ws.readyState!==WebSocket.OPEN){k({banner:{kind:"warn",text:"Not connected \u2014 still queued, try again in a moment."}});return}let n=t.currentHeadMessageId,s=e.messageId;t.queueByMessageId.delete(s),e.messageId=void 0,e.status="pending",e.amendsMessageId=n,e.aheadAtEnqueue=0,nn(t,e),pe("hydra-acp/prompt/cancel",{sessionId:t.sessionId,messageId:s}),Qo(e,e.text,n,e.text),St(t),y()}function Yo(e,t){let n=o.current;if(!n)return;let s=t.trim();if(s){if(e.status==="offline"){e.text=s,cs(n.sessionId,{id:e.id,text:s,attachments:e.attachments}),y();return}if(e.messageId===void 0){e.text=s,y();return}pe("hydra-acp/prompt/update",{sessionId:n.sessionId,messageId:e.messageId,prompt:Tt(s,e.attachments??[])})}}function Xo(){let e=o.current;if(!e)return;let t=e.composerValue.trim(),n=e.attachments;if(!t&&n.length===0)return;if(!e.connectionHealthy||!navigator.onLine||!e.ws||e.ws.readyState!==WebSocket.OPEN){e.log.push({kind:"error",text:"Not connected to session \u2014 prompt not sent."}),e.composerValue="",e.attachments=[],an(e.sessionId),y();return}if(!e.daemonSupportsAmend||e.currentHeadMessageId===void 0){It();return}let s=e.currentHeadMessageId,r=e.composerValue;e.composerValue="",e.attachments=[],an(e.sessionId),ls(e,t);let i={id:"p_"+Math.random().toString(36).slice(2,10),text:t,status:"pending",aheadAtEnqueue:0,amendsMessageId:s,attachments:n.length>0?n:void 0};e.promptQueue.push(i),e.log.push({kind:"stream",role:"user",text:t,closed:!0,queueEntry:i,attachments:i.attachments}),e.recentOwnPrompts.push({text:t,at:Date.now()});let a=Date.now()-6e4;e.recentOwnPrompts=e.recentOwnPrompts.filter(c=>c.at>=a).slice(-16),we(),fe(),St(e),Qo(i,r,s,t),y()}function Qo(e,t,n,s){let r=o.current;if(!r)return;let i=pe("_session/steering",{sessionId:r.sessionId,prompt:Tt(s,e.attachments??[])});i!==void 0&&r.responseHandlers.set(String(i),a=>{Yl(e,t,n,s,a)})}function Yl(e,t,n,s,r){let i=o.current;if(!i)return;if(r.error){if(r.error?.code===-32601){Xl(e,t,n,s);return}un(i,e,t),k({banner:{kind:"bad",text:`steering failed: ${Vo(r.error)}`}});return}let a=r.result??{};if(a.outcome==="injected"){e.status="processing",y();return}a.outcome!=="startedNewTurn"&&(un(i,e,t),k({banner:{kind:"warn",text:"steering failed"}}))}function Xl(e,t,n,s){let r=o.current;if(!r)return;let i=pe("hydra-acp/prompt/amend",{sessionId:r.sessionId,targetMessageId:n,prompt:Tt(s,e.attachments??[])});i!==void 0&&r.responseHandlers.set(String(i),a=>{Ql(e,t,a)})}function Ql(e,t,n){let s=o.current;if(!s)return;if(n.error){un(s,e,t),k({banner:{kind:"bad",text:`amend failed: ${Vo(n.error)}`}});return}let r=n.result??{};if(r.amended&&r.reason==="ok")return;un(s,e,t);let i="amend rejected";r.reason==="target_completed"?i="previous response finished \u2014 press Send to send as a new turn":r.reason==="target_cancelled"?i="amend skipped \u2014 previous turn was cancelled":r.reason==="target_not_found"&&(i="amend skipped \u2014 no matching prompt"),k({banner:{kind:"warn",text:i}})}function un(e,t,n){let s=e.promptQueue.indexOf(t);s>=0&&e.promptQueue.splice(s,1),e.log=e.log.filter(r=>!(r.kind==="stream"&&r.role==="user"&&r.queueEntry===t)),e.composerValue=n,e.attachments=t.attachments??[],st(e.sessionId,n),y()}function Vo(e){if(e&&typeof e=="object"&&"message"in e){let t=e.message;if(typeof t=="string")return t}return"unknown error"}function Zo(){let e=o.current;!e||!e.inTurn||rt("session/cancel",{sessionId:e.sessionId})}function jo(){let e=o.current;if(!e)return;let t=!1;for(let n of e.promptQueue)(n.status==="queued"||n.status==="pending")&&(dn(n),t=!0);e.inTurn&&rt("session/cancel",{sessionId:e.sessionId}),t&&y()}function Jo(e){o.current&&pe("session/set_mode",{sessionId:o.current.sessionId,modeId:e})}function ei(e){o.current&&pe("session/set_model",{sessionId:o.current.sessionId,modelId:e})}function ti(e,t){let n=o.current;if(!n)return;let s=pe("session/set_config_option",{sessionId:n.sessionId,configId:e,value:t});s!==void 0&&n.responseHandlers.set(String(s),r=>{let i=r.result?.configOptions;Array.isArray(i)&&o.current===n&&(n.configOptions=i,y())})}function ni(e){for(let t of e.promptQueue)t.status!=="done"&&t.status!=="cancelled"&&(t.status==="offline"&&ln(e.sessionId,t.id),t.status="cancelled",t.messageId!==void 0&&e.queueByMessageId.delete(t.messageId))}function si(e){for(let t of e.promptQueue)t.messageId===void 0&&t.status!=="done"&&t.status!=="cancelled"&&t.status!=="offline"&&t.status!=="processing"&&(t.status="cancelled")}var fn=null;async function ot(){if(fn)return fn;if(!("serviceWorker"in navigator))return null;try{return fn=await navigator.serviceWorker.register("/sw.js"),fn}catch{return null}}async function ri(){return typeof Notification>"u"||!await ot()?!1:Notification.permission==="granted"?!0:Notification.permission==="denied"?!1:await Notification.requestPermission()==="granted"}function oi(){return document.visibilityState!=="visible"||!document.hasFocus()}async function ii(){let e=await ot();return!e||!("pushManager"in e)?void 0:(await e.pushManager.getSubscription())?.endpoint}function Vl(e){let t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),s=atob(n);return Uint8Array.from(s,r=>r.charCodeAt(0))}async function pn(){let e=await ot();if(!(!e||!("pushManager"in e)))try{let{publicKey:t}=await ne("/api/push/vapid-public-key"),n=await e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Vl(t)});await ne("/api/push/subscribe",{method:"POST",body:JSON.stringify(n.toJSON())})}catch(t){console.warn("push subscribe failed:",t)}}async function ai(){let e=await ot();if(!(!e||!("pushManager"in e)))try{let t=await e.pushManager.getSubscription();if(!t)return;let n=t.endpoint;await t.unsubscribe(),await ne("/api/push/unsubscribe",{method:"POST",body:JSON.stringify({endpoint:n})})}catch(t){console.warn("push unsubscribe failed:",t)}}function pe(e,t){let n=o.current;if(!n||!n.ws||n.ws.readyState!==WebSocket.OPEN)return;let s=n.nextId=n.nextId??1;return n.nextId=s+1,n.ws.send(JSON.stringify({jsonrpc:"2.0",id:s,method:e,params:t})),s}function rt(e,t){let n=o.current;!n||!n.ws||n.ws.readyState!==WebSocket.OPEN||n.ws.send(JSON.stringify({jsonrpc:"2.0",method:e,params:t}))}function At(){rt("bridge/visibility",{visible:!oi()})}function it(){ii().then(e=>{rt("bridge/push-endpoint",{endpoint:e??null})})}var Zl=1e4,jl=5e3;function ci(e){e.heartbeatTimer=setTimeout(()=>Jl(e),Zl)}function Jl(e){o.current!==e||!e.ws||e.ws.readyState!==WebSocket.OPEN||(rt("bridge/ping",{}),e.heartbeatDeadline=setTimeout(()=>{e.connectionHealthy=!1,y();try{e.ws?.close()}catch{}},jl))}function eu(e){e.connectionHealthy=!0,e.heartbeatDeadline!==void 0&&(clearTimeout(e.heartbeatDeadline),e.heartbeatDeadline=void 0),ci(e)}function tu(e){gn(e),e.connectionHealthy=!0,ci(e)}function gn(e){e.heartbeatTimer!==void 0&&(clearTimeout(e.heartbeatTimer),e.heartbeatTimer=void 0),e.heartbeatDeadline!==void 0&&(clearTimeout(e.heartbeatDeadline),e.heartbeatDeadline=void 0)}function nu(e,t){let n=o.current;!n||!n.ws||n.ws.readyState!==WebSocket.OPEN||n.ws.send(JSON.stringify({jsonrpc:"2.0",id:e,result:t}))}function li(e){if(o.current){if(e.method==="bridge/replay_policy"){e.params?.policy!=="after_message"?(o.current.log.length>0&&ui(),o.current.pinAfterReplaySwap=!0,tn(o.current)):o.current.resumedByMessageId&&xo();return}if(e.method==="bridge/ready"){o.current.ready=!0,o.current.cold=!1,o.banner=null,o.current.reconnectAttempt=0;let t=e.params??{};typeof t.clientId=="string"&&(o.current.ownClientId=t.clientId),Array.isArray(t.configOptions)&&(o.current.configOptions=t.configOptions);let s=t._meta?.["hydra-acp"];if(s?.busy===!1&&o.current.inTurn&&De(),s?.busy===!0){fe(),o.current.spinner&&(o.current.spinner.sending=!1);let c=s.turnStartedAt;typeof c=="number"&&Number.isFinite(c)?(o.current.spinner||we(),o.current.spinner&&o.current.spinnerOwner===void 0&&(o.current.spinner.startedAt=c)):o.current.spinner||we()}let r=s?.queue;Array.isArray(r)&&Lo(r),s?.prompt?.amending===!0&&(o.current.daemonSupportsAmend=!0),typeof s?.armedTasks=="number"&&(o.current.armedTasks=s.armedTasks,o.current.armedSince=s.armedTasks>0&&typeof s.armedSince=="number"?s.armedSince:void 0,o.current.armedTaskList=is(s.armedTaskList));let a=o.current.readyListeners;o.current.readyListeners=[];for(let c of a)try{c()}catch{}At(),it(),tu(o.current),Wo(o.current),fs(),y();return}if(e.method==="bridge/pong"){o.current&&eu(o.current);return}if(e.method==="bridge/error"){en({kind:"error",text:`Bridge error: ${e.params?.message??"?"}`}),y();return}if(e.method==="hydra-acp/session/closed"){o.current&&(o.current.ready=!1,o.current.cold=!0,ni(o.current),De()),y();return}if(e.method&&"id"in e){Bo(e),o.current.ready&&y();return}if(e.method){sn(e),o.current.ready&&y();return}if("id"in e&&e.id!==void 0&&o.current.ownPromptIds.has(String(e.id))){let t=o.current.ownPromptIds.get(String(e.id));if(o.current.ownPromptIds.delete(String(e.id)),o.current.cold&&(o.current.cold=!1,o.current.ready=!0),e.error){let a=e.error;en({kind:"error",text:`Prompt failed: ${a.message??"unknown error"}`}),De(),y();return}let n=e.result,s=typeof n?.stopReason=="string"?n.stopReason:void 0,r=o.current.spinnerOwner;t===void 0||r===void 0||r===t.id||t.messageId!==void 0&&r===t.messageId?De(s,void 0,!0):s==="cancelled"&&t.status!=="amended"&&(t.status="cancelled"),y();return}if("id"in e&&e.id!==void 0){let t=o.current.responseHandlers.get(String(e.id));t&&(o.current.responseHandlers.delete(String(e.id)),t({result:e.result,error:e.error}))}}}function ds(e,t){if(!o.current)return;let n=o.current.pendingPermissions.get(e);n&&(o.current.pendingPermissions.delete(e),o.current.log=o.current.log.filter(s=>!(s.kind==="perm"&&s.toolCallId===e)),nu(n.requestId,{outcome:t==="__cancel__"?{outcome:"cancelled"}:{outcome:"selected",optionId:t}}),y())}var di=[1e3,2e3,4e3,8e3,16e3,3e4],su=5;function ms(e,t){let n=encodeURIComponent(e);return t?`#/session/${n}?load=true`:`#/session/${n}`}function fi(){let t=new URLSearchParams(window.location.search).get("protocol_launch");if(!t)return;history.replaceState(null,"",window.location.pathname+window.location.hash);let n;try{n=new URL(t)}catch{return}if(n.protocol!=="web+hydra:"||n.hostname!=="sessions")return;let s=decodeURIComponent(n.pathname.replace(/^\/+/,""));s&&(window.location.hash=ms(s,!0))}var ps=!1,gs=!1;function ru(){try{return window.matchMedia?.("(display-mode: standalone)").matches===!0||navigator.standalone===!0}catch{return!1}}function hs(e){if(window.location.hash===e)return;ps=!0;let t=gs||ru()?history.replaceState:history.pushState;gs=!1;try{t.call(history,null,"",e||window.location.pathname+window.location.search)}finally{queueMicrotask(()=>{ps=!1})}}function bs(){if(ps)return;let t=window.location.hash.match(/^#\/session\/([^?]+)(?:\?(.*))?$/);if(t){let n=decodeURIComponent(t[1]),r=new URLSearchParams(t[2]??"").get("load")==="true";if(o.view==="chat"&&o.current?.sessionId===n)return;He(n,r);return}o.view!=="list"&&Fe()}function He(e,t){hs(ms(e,t)),ys();let n=o.sessions.find(r=>r.sessionId===e),s={sessionId:e,title:n?.title??"",cwd:n?.cwd||"",agentId:n?.agentId||"",ws:null,ready:!1,log:[],toolCalls:new Map,pendingPermissions:new Map,pendingRequestById:new Map,responseHandlers:new Map,spinner:null,plan:null,mode:null,model:null,modes:[],models:[],contextUsed:null,contextSize:null,cost:null,fileOverlay:null,composerValue:Fo(e),attachments:[],busy:!1,recentOwnPrompts:[],history:[],historyIndex:null,historyDraft:null,_lastMetaFp:n?`${n.title}|${n.cwd}|${n.agentId}`:"",promptQueue:[],queueByMessageId:new Map,ownPromptIds:new Map,inTurn:!1,idleListeners:[],readyListeners:[],currentPlanEntry:null,daemonSupportsAmend:!1,loadOnConnect:t,reconnectAttempt:0,headerExpanded:!1,unsolicitedTurnOpen:new Set,configOptions:[],connectionHealthy:!0};o.current=s,k({view:"chat",listHighlightedSessionId:e,lastSessionId:e}),ou(s)}async function ou(e){let t=await Ao(e.sessionId);if(o.current!==e)return;t&&(Se("cache-replay",()=>{for(let s of t.frames)try{sn(s,!0)}catch(r){console.error("[hydra] cached frame failed to replay",r,s)}}),e.historyIsPartial=!0);let n=await Uo(e.sessionId);if(o.current===e){for(let s of n){let r={id:s.id,text:s.text,status:"offline",aheadAtEnqueue:0,attachments:s.attachments};e.promptQueue.push(r),e.log.push({kind:"stream",role:"user",text:s.text,closed:!0,queueEntry:r,attachments:r.attachments})}(t||n.length>0)&&y(),hn(e)}}function pi(e){if(o.current!==e)return;let t=document.querySelector(".chat-body");if(t){let n=t.getBoundingClientRect().top;for(let s of t.querySelectorAll("[data-message-id]"))if(s.getBoundingClientRect().bottom>n){e.scrollRestoreMessageId=s.dataset.messageId;break}}ys(),Es(e),tn(e),e.historyIsPartial=!1,e.wantFullHistory=!0,y(),hn(e)}function hn(e){let t=new URL("/ws",location.href);t.protocol=location.protocol==="https:"?"wss:":"ws:",t.searchParams.set("session",e.sessionId),e.loadOnConnect&&t.searchParams.set("load","true"),e.wantFullHistory&&(t.searchParams.set("fullHistory","true"),e.wantFullHistory=!1),e.lastSeenMessageId!==void 0&&t.searchParams.set("afterMessageId",e.lastSeenMessageId),e.lastSeenSeq!==void 0&&t.searchParams.set("afterSeq",String(e.lastSeenSeq)),e.resumedByMessageId=e.lastSeenSeq===void 0&&e.lastSeenMessageId!==void 0;let n=new WebSocket(t.toString());e.ws=n,n.addEventListener("open",()=>{}),n.addEventListener("message",s=>{if(!o.current||o.current.ws!==n)return;let r;try{r=JSON.parse(String(s.data))}catch{return}li(r)}),n.addEventListener("close",()=>{!o.current||o.current.ws!==n||iu(o.current)}),n.addEventListener("error",()=>{})}function iu(e){e.ready=!1,si(e);let t=e.reconnectAttempt??0,n=di[Math.min(t,di.length-1)],s=t>=su;k({banner:s?{kind:"bad",text:"Still disconnected \u2014 retrying\u2026"}:{kind:"warn",text:"Reconnecting\u2026"}}),e.reconnectTimer=setTimeout(()=>{!o.current||o.current!==e||(e.reconnectTimer=void 0,e.reconnectAttempt=t+1,Es(e),y(),hn(e))},n)}function Es(e){e.ws=null,e.ready=!1,e.pendingRequestById=new Map,e.responseHandlers=new Map,e.ownPromptIds=new Map,e.idleListeners=[],e.readyListeners=[],e.nextId=void 0,gn(e)}function gi(){if(o.view==="chat")return;let e=o.lastSessionId;if(!e||(k({listHighlightedSessionId:e}),!J()))return;let t=n=>{if(o.view==="chat")return;let s=o.sessions.find(r=>r.sessionId===e);if(s){s.status!=="cold"&&(gs=!0,He(e,!1));return}n<20&&setTimeout(()=>t(n+1),250)};t(0)}var mn=null;function mi(){return mn}var hi=0;function bi(){return hi}function Ei(e){return mn!==e?!1:(mn=null,hs(ms(e.sessionId,!1)),Es(e),e.reconnectAttempt=0,o.current=e,k({view:"chat",listHighlightedSessionId:e.sessionId,lastSessionId:e.sessionId}),hn(e),!0)}function Fe(){hs(""),ys();let e=o.current?.sessionId??o.lastSessionId;mn=o.current,hi=o.current?yi(o.current):0,k({view:"list",current:null,lastSessionId:e,listHighlightedSessionId:e??o.listHighlightedSessionId}),at()}function bn(){if(o.current?.ws)try{o.current.ws.close()}catch{}}function ys(){if(o.current&&(o.current.reconnectTimer&&(clearTimeout(o.current.reconnectTimer),o.current.reconnectTimer=void 0),gn(o.current),o.current.ws)){try{o.current.ws.close()}catch{}o.current.ws=null}}var _i="(prefers-color-scheme: dark)";function au(){return o.theme==="system"?window.matchMedia(_i).matches?"dark":"light":o.theme}function yn(){document.documentElement.style.fontSize=`${16*o.fontScale}px`}function En(){let e=au();document.documentElement.setAttribute("data-theme",e),document.querySelector('meta[name="theme-color"]')?.setAttribute("content",e==="light"?"#ffffff":"#0e1116")}function wi(){En(),window.matchMedia(_i).addEventListener("change",()=>{o.theme==="system"&&En()})}var vi=10*1024*1024,Ct=new WeakSet;function Is(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)}MB`:e>=1024?`${(e/1024).toFixed(0)}KB`:`${e}B`}function cu(e,t){for(let n of t){if(n.size>vi){k({banner:{kind:"warn",text:`pasted image is ${Is(n.size)}, max ${Is(vi)}`}});continue}let s=new FileReader;s.onload=()=>{let r=s.result;if(typeof r!="string")return;let i=r.indexOf(",");i<0||(e.attachments.push({mimeType:n.type||"image/png",data:r.slice(i+1),sizeBytes:n.size}),y())},s.readAsDataURL(n)}}function Oi(e){return`data:${e.mimeType};base64,${e.data}`}function lu(e){return e.attachments.length===0?null:l("div",{class:"attachment-chips"},...e.attachments.map((t,n)=>l("span",{class:"attachment-chip",title:Is(t.sizeBytes)},l("img",{class:"attachment-thumb",src:Oi(t)}),l("button",{class:"attachment-remove",title:"Remove image",...T(()=>{e.attachments.splice(n,1),y()})},"\xD7"))))}function xs(e){return"untitled"}function he(e){return e.replace(/^hydra_session_/,"")}function uu(e){if(!e)return;let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Li(e,t){let n=e||"?",s=uu(t);return s?`${n}\u2022${s}`:n}function Di(e){let t=Math.floor(Math.max(0,e)/1e3);if(t<60)return"<1m";let n=Math.floor(t/60);if(n<60)return`${n}m`;let s=Math.floor(n/60);if(s<24)return`${s}h`;let r=Math.floor(s/24);if(r<14)return`${r}d`;let i=Math.floor(r/7);if(i<9)return`${i}w`;let a=Math.floor(r/30);return a<12?`${a}mo`:`${Math.floor(r/365)}y`}function du(e,t=Date.now()){if(!e)return"?";let n=Date.parse(e);return Number.isNaN(n)?"?":Di(t-n)}function Si(e){return Number.isFinite(e)?e<1e3?String(e):e<1e6?(e/1e3).toFixed(e<1e4?1:0).replace(/\.0$/,"")+"k":(e/1e6).toFixed(2).replace(/\.?0+$/,"")+"M":"?"}function Ti(e){let t=null,n="USD";if(typeof e=="number")t=e;else if(e&&typeof e=="object"){let r=e;if(typeof r.amount=="number")t=r.amount;else if(typeof r.total=="number")t=r.total;else if(r.total&&typeof r.total=="object"){let i=r.total;typeof i.amount=="number"&&(t=i.amount),typeof i.currency=="string"&&(n=i.currency)}typeof r.currency=="string"&&(n=r.currency)}if(t===null)return null;let s=t<.01?4:t<1?3:2;return n==="USD"?`$${t.toFixed(s)}`:`${t.toFixed(s)} ${n}`}function Pi(e,t){t.banner&&e.appendChild(l("div",{class:"banner "+t.banner.kind},t.banner.text)),J()?e.appendChild(mu(t)):t.view==="list"?(e.appendChild($i()),e.appendChild(Fi()),e.appendChild(zi())):t.view==="chat"&&t.current&&(e.appendChild(Tn(t.current)),t.current.fileOverlay&&e.appendChild(ta(t.current))),t.modal&&(t.modal.kind==="session"?e.appendChild(Gu(t.modal)):t.modal.kind==="modes"&&t.current?e.appendChild(Ai("Mode",t.current.modes,t.current.mode,n=>Jo(n.id))):t.modal.kind==="models"&&t.current?e.appendChild(Ai("Model",t.current.models,t.current.model,n=>ei(n.id))):t.modal.kind==="options"&&e.appendChild(Ou()))}function ks(){return[$i(),Fi(),zi()]}function Bi(){return l("div",{class:"swipe-preview-list"},...ks())}function Hi(e){let t=e.title||xs(e.sessionId),n=[he(e.sessionId),Li(e.agentId,e.currentModel)].join(" \xB7 ");return l("div",{class:"swipe-preview-chat"},l("div",{class:"chat-header"},l("div",{class:"chat-title-row"},l("div",{class:"chat-title"},t)),l("div",{class:"chat-header-row"},l("div",{class:"info"},l("div",{class:"row2"},n)))),l("div",{class:"chat-body swipe-preview-chat-body"},l("div",{class:"swipe-preview-loading"},l("span",{class:"dot"}),"opening\u2026")))}function fu(){let e=l("div",{class:"rail",tabindex:"-1","data-focus-key":"list-rail"},...ks());return o.railWidth!==null&&(e.style.flex=`0 0 ${As(o.railWidth)}px`),Ds(),e}function pu(e){if(!sa())return;let t=e.querySelector(".list"),n=t?t.scrollTop:null,s=t?Rs(t):null,r=document.activeElement,i=r&&e.contains(r)?r.dataset.focusKey??null:null,a=i?r.selectionStart:null,c=i?r.selectionEnd:null;if(e.replaceChildren(...ks()),Ds(),i){let d=e.querySelector(`[data-focus-key="${CSS.escape(i)}"]`);if(d){d.focus();let f=d;if(a!==null&&typeof f.setSelectionRange=="function")try{f.setSelectionRange(a,c)}catch{}}}let u=e.querySelector(".list");u&&(s?Os(u,s):n!==null&&(u.scrollTop=n))}function As(e){let t=Math.max(280,Math.min(window.innerWidth*.6,window.innerWidth-360));return Math.round(Math.max(240,Math.min(e,t)))}function gu(){let e=l("div",{class:"splitter",title:"Drag to resize (double-click to reset)"});return e.addEventListener("dblclick",()=>{let t=e.previousElementSibling;t&&(t.style.flex=""),k({railWidth:null})}),e.addEventListener("pointerdown",t=>{let n=e.previousElementSibling;if(!n)return;t.preventDefault();let s=t.clientX,r=n.getBoundingClientRect().width;e.setPointerCapture(t.pointerId),e.classList.add("dragging");let i=c=>{n.style.flex=`0 0 ${As(r+(c.clientX-s))}px`},a=()=>{e.releasePointerCapture(t.pointerId),e.classList.remove("dragging"),e.removeEventListener("pointermove",i),e.removeEventListener("pointerup",a),e.removeEventListener("pointercancel",a),k({railWidth:As(n.getBoundingClientRect().width)})};e.addEventListener("pointermove",i),e.addEventListener("pointerup",a),e.addEventListener("pointercancel",a)}),e}function mu(e){let t=l("div",{class:"split-detail"});return e.current?(t.appendChild(Tn(e.current)),e.current.fileOverlay&&t.appendChild(ta(e.current))):t.appendChild(l("div",{class:"split-detail-empty"},"Select a session from the list")),l("div",{class:"split"},fu(),gu(),t)}function Ns(){let e=document.querySelector('[data-focus-key="list-rail"]');e&&(o.current&&k({listHighlightedSessionId:o.current.sessionId}),e.focus())}function Fi(){let e=o.sessionSearch.length>0?l("button",{class:"session-search-clear",title:"Clear filter",...T(()=>k({sessionSearch:""}))},"\xD7"):null;return l("div",{class:"session-search-row"},l("input",{class:"session-search",type:"text",placeholder:"Filter sessions\u2026",value:o.sessionSearch,"data-focus-key":"session-search",autocomplete:"off",autocapitalize:"off",autocorrect:"off",spellcheck:"false",oninput:t=>{k({sessionSearch:t.target.value})},onkeydown:t=>{t.key==="Escape"&&(t.preventDefault(),t.stopPropagation(),o.sessionSearch.length>0?k({sessionSearch:""}):t.target.blur())}}),e)}function $i(){return l("div",{class:"topbar"},l("span",{class:"pill clickable",title:"Click to toggle grouping by project/recent",...T(()=>k({groupBy:o.groupBy==="project"?"recent":"project"}))},o.groupBy),l("span",{class:"pill clickable",title:"Click to toggle showing disk-only sessions",...T(()=>{k({showCold:!o.showCold})})},o.showCold?"all":"warm"),hu(),l("span",{class:"spacer"}),l("button",{...T(Wi),title:"Options"},"\u2699"),l("button",{...T(Uu),title:"Import a *.hydra bundle from disk"},"\u{1F4E5}"),l("button",{...T(Vi),title:"New Session"},"\uFF0B"))}function hu(){let e=new Set;for(let r of o.sessions)r.importedFromMachine&&!r.upstreamSessionId&&e.add(r.importedFromMachine);let t=[...e].sort(),n=l("select",{class:"host-select",title:"Filter sessions by origin host",onchange:r=>{let i=r.target.value;k({hostFilter:i})}}),s=(r,i)=>{let a=document.createElement("option");a.value=r,a.textContent=i,o.hostFilter===r&&(a.selected=!0),n.appendChild(a)};s("__local","local");for(let r of t)s(r,r);return s("__all","all"),o.hostFilter!=="__local"&&o.hostFilter!=="__all"&&!t.includes(o.hostFilter)&&(n.value=o.hostFilter),n}function bu(e,t){if(t.length===0)return!0;let n=t.toLowerCase();return[he(e.sessionId),e.upstreamSessionId??"",e.agentId??"",e.title??"",e.cwd,e.cwd.replace(/^\/(?:home|Users)\/[^/]+/,"~")].some(r=>r.toLowerCase().includes(n))}function Ui(){let e=o.showCold?o.sessions:o.sessions.filter(n=>n.status!=="cold");o.hostFilter==="__local"?e=e.filter(n=>!n.importedFromMachine||!!n.upstreamSessionId):o.hostFilter!=="__all"&&(e=e.filter(n=>n.importedFromMachine===o.hostFilter&&!n.upstreamSessionId));let t=o.sessionSearch.trim();return t.length>0&&(e=e.filter(n=>bu(n,t))),e}function Eu(){return Yi(Ui(),o.groupBy).flatMap(e=>e.sessions.map(t=>t.sessionId))}function qi(){document.querySelector('[data-focus-key="composer"]')?.focus()}function Cs(e,t){if(J()&&o.current?.sessionId===e){qi();return}He(e,t)}function Ki(e){let t=document.activeElement?.dataset.focusKey==="list-rail";if(o.view!=="list"&&!(J()&&t)||Te(document.activeElement))return;if(e.key==="Escape"){if(J()&&o.current){e.preventDefault(),k({listHighlightedSessionId:o.current.sessionId}),qi();return}let u=o.lastSessionId,d=u?o.sessions.find(f=>f.sessionId===u):void 0;if(!d)return;e.preventDefault(),Cs(d.sessionId,d.status==="cold");return}if(e.key.toLowerCase()==="c"&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey){e.preventDefault(),Vi();return}let n=!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey,s=e.key==="ArrowDown"||e.key==="n"&&n,r=e.key==="ArrowUp"||e.key==="p"&&n;if(!s&&!r&&e.key!=="Enter")return;let i=Eu();if(i.length===0)return;if(e.key==="Enter"){let u=o.listHighlightedSessionId;if(!u||!i.includes(u))return;let d=o.sessions.find(f=>f.sessionId===u);if(!d)return;e.preventDefault(),Cs(d.sessionId,d.status==="cold");return}e.preventDefault();let a=o.listHighlightedSessionId?i.indexOf(o.listHighlightedSessionId):-1,c=a===-1?0:s?Math.min(i.length-1,a+1):Math.max(0,a-1);k({listHighlightedSessionId:i[c]})}var _s=null;function zi(){let e=Ui(),t=o.showCold?0:o.sessions.filter(r=>r.status==="cold").length,n=Yi(e,o.groupBy),s=l("div",{class:"list"});if(o.listHighlightedSessionId&&o.listHighlightedSessionId!==_s?(_s=o.listHighlightedSessionId,queueMicrotask(()=>{document.querySelector(".card.highlighted")?.scrollIntoView({block:"nearest"})})):o.listHighlightedSessionId||(_s=null),e.length===0){let r;o.sessionSearch.trim().length>0?r=`No sessions match \u201C${o.sessionSearch.trim()}\u201D.`:o.sessions.length===0?r="No sessions. Use + to create one, or run `hydra-acp launch <agent>` from your editor.":o.hostFilter==="__local"?r="No local sessions. Switch the host filter to see imported sessions.":o.hostFilter!=="__all"?r=`No sessions from ${o.hostFilter}. Try a different host.`:r=`No warm sessions. ${t} cold session${t===1?"":"s"} hidden \u2014 click "warm" to switch to "all".`,s.appendChild(l("div",{class:"empty"},r))}for(let r of n){let i=l("div",{class:"group"});r.label&&i.appendChild(l("h2",null,r.label));for(let a of r.sessions)i.appendChild(Bu(a,r.label===null));s.appendChild(i)}return s}function yu(e,t){let n=a=>a.priority&&a.priority>0?a.priority:0,s=a=>{let c=a.status==="warm",u=n(a)>0;return c&&a.busy&&a.awaitingInput?6:c&&a.busy?5:c&&a.awaitingInput?4:c&&u?3:c?2:u?1:0},r=s(t)-s(e);if(r!==0)return r;let i=n(t)-n(e);return i!==0?i:String(t.updatedAt||"").slice(0,16).localeCompare(String(e.updatedAt||"").slice(0,16))}function In(e){return e.replace(/^\/(home|Users)\/[^/]+/,"~")}function ws(e,t){return l("div",{class:"detail"},l("span",{class:"k"},e),l("code",null,t))}function _u(e,t){let n=l("input",{type:"checkbox",title:"Float this session to the top of the list",onchange:s=>{wu(e,s.target.checked?1:null)}});return n.checked=(t??0)>0,l("div",{class:"detail"},l("span",{class:"k"},"high priority"),n)}async function wu(e,t){try{await ne(`/api/sessions/${encodeURIComponent(e)}/priority`,{method:"PATCH",body:JSON.stringify({priority:t})}),Ce()}catch(n){k({banner:{kind:"bad",text:"priority update failed: "+n.message}})}}function vu(e){let t=(n,s)=>l("button",{class:"ghost",...T(()=>Ko(n))},s);return e?l("div",{class:"detail"},l("span",{class:"k"},"workspace"),l("code",null,`${e.label}${e.clean===!1?" \xB7 dirty":""}`),t("sync","Sync"),t("stop","Stop"),t("apply","Apply")):l("div",{class:"detail"},l("span",{class:"k"},"workspace"),t("start","Start workspace"))}function Su(){return l("div",{class:"detail"},l("span",{class:"k"},"hide thoughts"),l("label",{class:"checkbox-label"},l("input",{type:"checkbox",checked:o.hideThoughts?"":void 0,onchange:e=>{k({hideThoughts:e.target.checked})}})))}function Tu(){return l("div",{class:"detail"},l("span",{class:"k"},"notify"),l("label",{class:"checkbox-label"},l("input",{type:"checkbox",checked:o.notifyOnTurnEnd?"":void 0,onchange:e=>{if(!e.target.checked){k({notifyOnTurnEnd:!1}),ai().then(()=>it());return}ri().then(n=>{if(!n){k({banner:{kind:"warn",text:"Notifications blocked \u2014 enable them for this site in your browser settings."}});return}k({notifyOnTurnEnd:!0}),pn().then(()=>it())})}})))}function Wi(){let e=o.current?.sessionId;o.cacheInfo=e?"\u2026":"no session open",e&&Co(e).then(t=>{o.cacheInfo=t,y()}),o.daemonVersion="\u2026",ne("/api/health").then(t=>{o.daemonVersion=t.upstream?.version??"unknown",y()}).catch(()=>{o.daemonVersion="unreachable",y()}),k({modal:{kind:"options"}})}var Iu=[{value:"system",label:"system"},{value:"dark",label:"dark"},{value:"light",label:"light"}],Au=[{value:.85,label:"smaller"},{value:.95,label:"small"},{value:1,label:"normal"},{value:1.15,label:"large"},{value:1.3,label:"larger"},{value:1.5,label:"largest"}];function Cu(){let e=l("select",{onchange:t=>{k({fontScale:Number(t.target.value)}),yn()}},...Au.map(t=>l("option",{value:String(t.value)},t.label)));return e.value=String(o.fontScale),l("div",{class:"detail"},l("span",{class:"k"},"text size"),e)}function ct(e,t){let n=l("span",{class:"diag-value"},t);return l("div",{class:"detail diag-copy",title:"Tap to copy",...T(()=>{let r=()=>{let a=n.textContent;n.textContent="copied",setTimeout(()=>{n.textContent=a},1200)},i=`${e}: ${t}`;navigator.clipboard?.writeText?navigator.clipboard.writeText(i).then(r,()=>Ii(n)):Ii(n)})},l("span",{class:"k"},e),n)}function Ii(e){let t=document.createRange();t.selectNodeContents(e);let n=window.getSelection();n?.removeAllRanges(),n?.addRange(t)}function Mu(){return ct("cache",o.cacheInfo??"\u2026")}function xu(){return ct("build","2026-09-03 06:31Z")}function ku(){return ct("browser","0.1.43")}function Nu(){return ct("daemon",o.daemonVersion??"\u2026")}function Ru(){let e=l("select",{onchange:t=>{k({theme:t.target.value}),En()}},...Iu.map(t=>{let n=l("option",{value:t.value},t.label);return t.value===o.theme&&n.setAttribute("selected",""),n}));return e.value=o.theme,l("div",{class:"detail"},l("span",{class:"k"},"theme"),e)}function Ou(){return l("div",{class:"modal-bg",...T(e=>{e.target.classList.contains("modal-bg")&&be()})},l("div",{class:"modal"},l("h2",null,"Options"),Ru(),Cu(),Su(),Tu(),l("div",{class:"diagnostics"},ku(),Nu(),xu(),Mu(),ct("slow",js()),ct("paths",Zs())),l("div",{class:"actions"},l("button",{class:"primary",...T(be)},"Close"))))}function Lu(e){let t=l("select",{onchange:n=>{ti(e.id,n.target.value)}},...e.options.map(n=>{let s=l("option",{value:n.value},n.name||n.value);return n.value===e.currentValue&&s.setAttribute("selected",""),s}));return t.value=e.currentValue,l("div",{class:"detail"},l("span",{class:"k",title:e.description??""},e.name||e.id),t)}var Du=500,Gi=0;document.addEventListener("pointermove",e=>{e.target?.closest?.(".list")&&(Gi=performance.now())});var vs=null;function Pu(e){let t=e.slice().sort(yu);if(performance.now()-Gi>Du||!vs)return vs=t.map(r=>r.sessionId),t;let s=new Map(vs.map((r,i)=>[r,i]));return t.map((r,i)=>({s:r,i})).sort((r,i)=>{let a=s.get(r.s.sessionId),c=s.get(i.s.sessionId);return a!==void 0&&c!==void 0?a-c:a!==void 0?-1:c!==void 0?1:r.i-i.i}).map(r=>r.s)}function Yi(e,t){let n=Pu(e);if(t==="recent")return[{label:null,sessions:n}];let s=new Map;for(let i of n){let a=i.cwd||"(unknown)";s.has(a)||s.set(a,[]),s.get(a).push(i)}let r=[];for(let[i,a]of[...s.entries()].sort((c,u)=>c[0].localeCompare(u[0])))r.push({label:In(i),sessions:a});return r}function Rs(e){if(e.scrollTop<=0)return null;let t=e.getBoundingClientRect().top;for(let n of e.querySelectorAll(".card")){let s=n.getBoundingClientRect();if(s.bottom<=t)continue;let r=n.dataset.sessionId;return r?{sessionId:r,offset:s.top-t}:null}return null}function Os(e,t){if(!t)return;let n=e.querySelector(`.card[data-session-id="${CSS.escape(t.sessionId)}"]`);if(!n)return;let s=n.getBoundingClientRect().top-e.getBoundingClientRect().top-t.offset;e.scrollTop+=s}function Bu(e,t){let n=e.title||xs(e.sessionId),s=[he(e.sessionId),Li(e.agentId,e.currentModel),`age ${du(e.updatedAt)}`].join(" \xB7 "),r=!e.busy&&(e.armedTasks??0)>0;return l("div",{class:e.sessionId===o.listHighlightedSessionId?"card highlighted":"card","data-session-id":e.sessionId,...T(i=>{i.target.closest("button")||Cs(e.sessionId,e.status==="cold")})},l("div",{class:"row1"},n),l("div",{class:"card-body"},l("div",{class:"meta"},l("div",{class:"row2"},s)),l("div",{class:"badges"},e.status==="cold"||!(e.busy||e.awaitingInput||r)?l("span",{class:`badge ${e.status==="cold"?"cold":"warm"}`,title:e.status==="cold"?"Disk-only \u2014 opening will resurrect the session":"Live in-memory session"},e.status==="cold"?"cold":"warm"):null,e.busy||r?l("span",{class:"badge busy",title:e.busy?"Agent is working":"Agent has a background task running. It may resume on its own."},"busy"):null,e.awaitingInput?l("span",{class:"badge blocked",title:"Waiting on you \u2014 a permission request or other prompt is pending"},"blocked"):null,...e.importedFromMachine&&!e.upstreamSessionId?[l("span",{class:"badge imported",title:`Passive mirror imported from ${e.importedFromMachine} \u2014 attach to start working on it here.`},`\u2190 ${e.importedFromMachine}`)]:[])),t?l("div",{class:"row3"},e.cwd?In(e.cwd):"?"):null,e.status!=="cold"?l("button",{class:"card-kill",title:"Kill this session",...T(()=>{Hu(e)})},"\xD7"):null)}async function Hu(e){if(confirm(`Kill session ${e.title?`"${e.title}" (${he(e.sessionId)})`:he(e.sessionId)}?`))try{await ne("/api/kill",{method:"POST",body:JSON.stringify({sessionId:e.sessionId})}),Ce()}catch(t){k({banner:{kind:"bad",text:"kill failed: "+t.message}})}}function Fu(e){e.compactionPhase||confirm("Compact this session's context now? The agent will summarize history and continue from the summary.")&&zo()}function $u(e){let t=document.createElement("a");t.href=`/api/sessions/${encodeURIComponent(e)}/export`,t.download="",t.rel="noopener",document.body.appendChild(t),t.click(),t.remove()}function Uu(){let e=document.createElement("input");e.type="file",e.accept=".hydra,application/json",e.style.display="none",e.onchange=()=>{let t=e.files&&e.files[0];document.body.removeChild(e),t&&qu(t)},document.body.appendChild(e),e.click()}async function qu(e){let t;try{let s=await e.text();t=JSON.parse(s)}catch(s){k({banner:{kind:"bad",text:"import: bundle is not valid JSON: "+s.message}});return}let n=await oa(t);if(n.ok){let s=n.result;k({banner:{kind:"good",text:s.replaced?`Replaced ${he(s.sessionId)} from bundle`:`Imported as ${he(s.sessionId)}`}}),Ce();return}if(n.status===409&&n.existingSessionId){let s=n.existingSessionId;if(!confirm(`This session is already imported locally as ${he(s)}.
653
+ `);return t.length>0&&t[t.length-1]===""&&t.pop(),n.length>0&&n[n.length-1]===""&&n.pop(),{oldLines:t,newLines:n}}var ll=1e6;function ul(e,t){let n=e.length,s=t.length;if(n===0||s===0||n*s>ll){let u=[];for(let d of e)u.push({op:"-",text:d});for(let d of t)u.push({op:"+",text:d});return u}let r=Array.from({length:n+1},()=>new Array(s+1).fill(0));for(let u=n-1;u>=0;u--)for(let d=s-1;d>=0;d--)e[u]===t[d]?r[u][d]=r[u+1][d+1]+1:r[u][d]=Math.max(r[u+1][d],r[u][d+1]);let i=[],a=0,c=0;for(;a<n&&c<s;)e[a]===t[c]?(i.push({op:"=",text:e[a]}),a++,c++):r[a+1][c]>=r[a][c+1]?(i.push({op:"-",text:e[a]}),a++):(i.push({op:"+",text:t[c]}),c++);for(;a<n;)i.push({op:"-",text:e[a]}),a++;for(;c<s;)i.push({op:"+",text:t[c]}),c++;return i}function _o(e,t){let n=0,s=Math.min(e.length,t.length);for(;n<s&&e[n]===t[n];)n++;let r=e.length,i=t.length;for(;r>n&&i>n&&e[r-1]===t[i-1];)r--,i--;let a=[];for(let c=0;c<n;c++)a.push({op:"=",text:e[c]});a.push(...ul(e.slice(n,r),t.slice(n,i)));for(let c=r;c<e.length;c++)a.push({op:"=",text:e[c]});return a}function wo(e){let{oldLines:t,newLines:n}=yo(e),s=0,r=0;for(let i of _o(t,n))i.op==="+"?s++:i.op==="-"&&r++;return{added:s,removed:r}}function vo(e,t={}){let n=t.maxLines??40,s=t.contextLines??3,{oldLines:r,newLines:i}=yo(e),a=_o(r,i),c=[];if(Number.isFinite(s)){if(!a.some(p=>p.op!=="="))return[];let f=new Array(a.length).fill(!1);for(let p=0;p<a.length;p++)if(a[p].op!=="="){let h=Math.max(0,p-s),_=Math.min(a.length-1,p+s);for(let E=h;E<=_;E++)f[E]=!0}let g=0;for(;g<a.length;){if(f[g]){c.push({op:a[g].op,text:a[g].text}),g++;continue}let p=g;for(;p<a.length&&!f[p];)p++;let h=p-g;c.push({op:"gap",text:`\u22EF ${h} unchanged line${h===1?"":"s"}`}),g=p}}else for(let d of a)c.push({op:d.op,text:d.text});let u=[];for(let d=0;d<c.length;d++){if(u.length>=n-1&&d<c.length-1){let g=c.length-d;u.push({op:"gap",text:`\u2026 ${g} more line${g===1?"":"s"}`});break}u.push(c[d])}return u}var dl="hydra-acp-history-cache",fl=4,de="sessions",pl=6e6,So=10,gl=2e3,Vt=null;function ts(){return Vt||(Vt=new Promise(e=>{if(!("indexedDB"in window)){e(null);return}let t;try{t=indexedDB.open(dl,fl)}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(de)&&t.result.deleteObjectStore(de),t.result.createObjectStore(de,{keyPath:"sessionId"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)}),Vt)}function ml(e){try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 0}}async function Ao(e){let t=await ts();return t?new Promise(n=>{let s;try{s=t.transaction(de,"readwrite")}catch{n(null);return}let r=s.objectStore(de),i=r.get(e);i.onsuccess=()=>{let a=i.result;if(!a){n(null);return}a.lastAccessed=Date.now(),r.put(a),n({frames:Se("cache-read-map",()=>a.frames.map(c=>c.frame))})},i.onerror=()=>n(null)}):null}async function Co(e){let t=await ts();return t?new Promise(n=>{let s;try{s=t.transaction(de,"readonly")}catch{n("unreadable");return}let r=s.objectStore(de).get(e);r.onsuccess=()=>{let i=r.result;if(!i){n("empty");return}let a=new Map;for(let u of i.frames){let d=u.frame.params?.update,f=typeof d?.sessionUpdate=="string"?d.sessionUpdate:"?";a.set(f,(a.get(f)??0)+1)}let c=[...a.entries()].sort((u,d)=>d[1]-u[1]).map(([u,d])=>`${u.replace(/_chunk$/,"")}:${d}`).join(" ");n(`${i.frames.length}f ${(i.totalBytes/1e6).toFixed(1)}MB \u2014 ${c}`)},r.onerror=()=>n("unreadable")}):"unavailable"}var Le=new Map,Je;function Zt(e,t){let n=Le.get(e)??[];n.push(t),Le.set(e,n),Je===void 0&&(Je=setTimeout(()=>{Je=void 0,Mo()},gl))}var To=Promise.resolve();function Mo(){To=To.then(hl).catch(()=>{})}function Io(){Je!==void 0&&(clearTimeout(Je),Je=void 0),Mo()}async function hl(){if(Le.size===0)return;let e=Array.from(Le.keys()),t=await ts();if(!t){Le.clear();return}for(let n of e){let s=Le.get(n);Le.delete(n),s&&await bl(t,n,s)}await El(t)}function bl(e,t,n){return new Promise(s=>{let r;try{r=e.transaction(de,"readwrite")}catch{s();return}let i=r.objectStore(de),a=i.get(t);a.onsuccess=()=>{let c=a.result,u=Se("cache-size",()=>n.map(h=>({frame:h,bytes:ml(h)}))),d=[...c?.frames??[],...u],f=(c?.totalBytes??0)+u.reduce((h,_)=>h+_.bytes,0);for(;d.length>1&&f>pl;){let h=d.shift();h&&(f-=h.bytes)}let g=d.findIndex(h=>h.frame.params?.update?.sessionUpdate==="prompt_received");if(g>0)for(let h of d.splice(0,g))f-=h.bytes;let p={sessionId:t,frames:d,totalBytes:f,lastAccessed:Date.now()};Se("cache-put",()=>i.put(p)),s()},a.onerror=()=>s()})}function El(e){return new Promise(t=>{let n;try{n=e.transaction(de,"readwrite")}catch{t();return}let s=n.objectStore(de),r=s.getAll();r.onsuccess=()=>{let i=r.result??[];if(i.length<=So){t();return}i.sort((c,u)=>c.lastAccessed-u.lastAccessed);let a=i.slice(0,i.length-So);for(let c of a)s.delete(c.sessionId);t()},r.onerror=()=>t()})}typeof window<"u"&&typeof document<"u"&&(window.addEventListener("pagehide",Io),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Io()}));typeof navigator<"u"&&navigator.storage?.persist&&navigator.storage.persist();function en(e){o.current&&o.current.log.push(e)}var yl=new Set(["session_info_update","_hydra_current_model_update","current_mode_update","available_commands_update","_hydra_available_modes_update","usage_update","config_option_update","_hydra_compaction","_hydra_workspace","clarifier_question_asked","clarifier_question_answered","clarifier_question_dismissed"]);function tn(e){e.log=[],e.toolCalls=new Map,e.pendingPermissions=new Map,e.spinner=null,e.plan=null,e.mode=null,e.model=null,e.modes=[],e.models=[],e.contextUsed=null,e.contextSize=null,e.cost=null,e.busy=!1,e.recentOwnPrompts=[],e.promptQueue=[],e.queueByMessageId=new Map,e.ownPromptIds=new Map,e.inTurn=!1,e.unsolicitedTurnOpen=new Set,e.currentPlanEntry=null,e.daemonSupportsAmend=!1,e.ownClientId=void 0,e.currentHeadMessageId=void 0,e.lastSeenMessageId=void 0,e.pendingCursorMessageId=void 0,e.lastSeenSeq=void 0,e.spinnerOwner=void 0}function _l(e){if(!e||typeof e!="object")return;let t=e._meta;if(!t||typeof t!="object")return;let n=t["hydra-acp"];if(!n||typeof n!="object")return;let s=n.seq;return typeof s=="number"&&Number.isFinite(s)?s:void 0}function wl(e){if(!e||typeof e!="object")return;let t=e._meta;if(!t||typeof t!="object")return;let n=t["hydra-acp"];if(!n||typeof n!="object")return;let s=n.recordedAt;return typeof s=="number"&&Number.isFinite(s)?s:void 0}function vl(e){if(e.kind!=="stream"||e.role!=="user"||!e.queueEntry)return!1;let t=e.queueEntry.status;return t==="queued"||t==="editing"}function ss(){if(!o.current)return 0;let e=o.current.log;for(let t=0;t<e.length;t++)if(vl(e[t]))return t;return e.length}function _e(e){o.current&&o.current.log.splice(ss(),0,e)}function rs(e){if(!(!o.current||e.messageId===void 0)){for(let t of o.current.log)if(t.kind==="stream"&&t.queueEntry===e){t.messageId=e.messageId,Tl(e);return}}}function Sl(e,t){let n=o.current?.spinnerOwner;!o.current||n===void 0||Zt(o.current.sessionId,{method:"session/update",params:{sessionId:o.current.sessionId,update:{sessionUpdate:"turn_complete",messageId:`${n}:turn_complete`,...e!==void 0?{stopReason:e}:{}},_meta:{"hydra-acp":{recordedAt:t??Date.now()}}}})}function Tl(e){!o.current||e.messageId===void 0||Zt(o.current.sessionId,{method:"session/update",params:{sessionId:o.current.sessionId,update:{sessionUpdate:"prompt_received",messageId:e.messageId,prompt:[{type:"text",text:e.text},...(e.attachments??[]).map(t=>({type:"image",mimeType:t.mimeType,data:t.data}))]},_meta:{"hydra-acp":{recordedAt:Date.now()}}}})}function fe(){o.current&&(o.current.inTurn=!0)}function Il(){if(!o.current)return;o.current.inTurn=!1;let e=o.current.idleListeners;o.current.idleListeners=[];for(let t of e)try{t()}catch{}}function ns(e,t,n=!1,s){if(!o.current)return;let r=vt(t);if(!r)return;let i=o.current.log,a=ss(),c;for(let u=a-1;u>=0;u--){let d=i[u];if(d.kind!=="spinner"){c=d;break}}if(c&&c.kind==="stream"&&c.role===e&&!c.closed&&!!c.synthetic===n&&(c.messageId===void 0||s===void 0||c.messageId===s)){c.text+=r,s!==void 0&&(c.messageId=s);return}i.splice(a,0,{kind:"stream",role:e,text:r,synthetic:n||void 0,messageId:s})}function tt(){if(o.current)for(let e=o.current.log.length-1;e>=0;e--){let t=o.current.log[e];if(t.kind==="stream"&&!t.closed){t.closed=!0;return}}}function xo(){if(!o.current)return;let e=o.current,t=e.pendingCursorMessageId;t===void 0||t===e.lastSeenMessageId||(e.log=e.log.filter(n=>!(n.kind==="stream"&&n.role!=="user"&&n.messageId===t)),e.pendingCursorMessageId=e.lastSeenMessageId)}function ko(e){if(!o.current)return!1;let t=vt(e);if(!t)return!1;let n=o.current.recentOwnPrompts;for(let s=0;s<n.length;s++)if(n[s].text===t)return n.splice(s,1),!0;return!1}function jt(e){if(!e)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(jt).join("");if(typeof e=="object"){let t=e;if(t.text)return String(t.text);if(t.content)return jt(t.content);if(t.diff)return String(t.diff);try{return JSON.stringify(e,null,2)}catch{return String(e)}}return""}function we(e){if(!o.current)return;let t=o.current;if(t.spinner){t.log.some(n=>n.kind==="spinner")||_e({kind:"spinner",spinner:t.spinner});return}t.spinner={toolCallIds:[],expanded:!1,startedAt:e??Date.now(),sending:!1},t.spinnerOwner=void 0,_e({kind:"spinner",spinner:t.spinner})}function No(e,t){if(!o.current)return;let n=o.current,s=n.spinner;if(s){let r=n.log.findIndex(i=>i.kind==="spinner");r>=0&&(n.log[r]={kind:"turn-stamp",elapsedMs:Math.max(0,(e??Date.now())-s.startedAt),toolCount:s.toolCallIds.length,stopReason:t})}n.spinner=null,n.spinnerOwner=void 0,n.log=n.log.filter(r=>r.kind!=="spinner")}function nt(e,t,n=!1){if(!o.current)return;let s=o.current;No(e),s.spinner={toolCallIds:[],expanded:!1,startedAt:e??Date.now(),sending:n},s.spinnerOwner=t,_e({kind:"spinner",spinner:s.spinner})}function Al(e){return typeof e!="string"||!e?!1:e.toLowerCase().replace(/[_\s-]/g,"")==="exitplanmode"}function Cl(e){let t=e.rawInput;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t.plan;return typeof n!="string"||n.length===0?null:n}function Ml(e){if(!o.current)return null;let t=o.current.log;for(let n=0;n<t.length;n++){let s=t[n];if(s.kind==="exit-plan-mode"&&s.toolCallId===e)return{idx:n,item:s}}return null}function Ro(e){if(!o.current)return!1;let t=String(e.toolCallId??"");if(!t)return!1;let n=e.name??e.title,s=Ml(t);if(!Al(n)&&!s)return!1;let r=Cl(e),i=typeof e.status=="string"?e.status:void 0;if(s)return r!==null&&(s.item.plan=r),i!==void 0&&(s.item.status=i),!0;if(r===null)return!1;tt();let a={kind:"exit-plan-mode",toolCallId:t,plan:r};return i!==void 0&&(a.status=i),_e(a),!0}function xl(e){if(!o.current)return null;let t=o.current.log;for(let n=0;n<t.length;n++){let s=t[n];if(s.kind==="edit-diff"&&s.toolCallId===e)return{idx:n,item:s}}return null}function Oo(e){if(!o.current)return!1;let t=String(e.toolCallId??"");if(!t)return!1;let n=xl(t),s=Eo(e),r=typeof e.status=="string"?e.status:void 0;if(n)return s!==null&&(n.item.diff=s),r!==void 0&&(n.item.status=r),!0;if(s===null)return!1;tt();let i={kind:"edit-diff",toolCallId:t,diff:s,expanded:!1};return r!==void 0&&(i.status=r),_e(i),!0}function kl(e){let t=e._meta;if(!t||typeof t!="object")return;let n=t.claudeCode;if(!n||typeof n!="object")return;let s=n.parentToolUseId;return typeof s=="string"?s:void 0}function Nl(e){if(!o.current)return;if(kl(e)===void 0&&tt(),Ro(e)){et(String(e.toolCallId),typeof e.status=="string"?e.status:void 0);return}if(Oo(e)){et(String(e.toolCallId),typeof e.status=="string"?e.status:void 0);return}let t={toolCallId:String(e.toolCallId),title:String(e.title??e.kind??"tool"),kind:String(e.kind??""),status:String(e.status??"in_progress"),content:jt(e.content)};o.current.toolCalls.set(t.toolCallId,t),we(),o.current.spinner?.toolCallIds.push(t.toolCallId),et(t.toolCallId,t.status)}function Rl(e){if(!o.current)return;if(Ro(e)){typeof e.status=="string"&&et(String(e.toolCallId),e.status);return}if(Oo(e)){typeof e.status=="string"&&et(String(e.toolCallId),e.status);return}let t=o.current.toolCalls.get(String(e.toolCallId));t&&(typeof e.status=="string"&&(t.status=e.status,et(t.toolCallId,e.status)),typeof e.title=="string"&&(t.title=e.title),e.content!==void 0&&(t.content=(t.content||"")+jt(e.content)))}function De(e,t,n=!1){if(o.current){n&&Sl(e,t),No(t,e),tt();for(let s of o.current.promptQueue)s.status==="processing"&&(s.status=e==="cancelled"?"cancelled":"done");for(let s of o.current.promptQueue)s.reseatAfterCurrentTurn&&s.status!=="done"&&s.status!=="cancelled"&&(s.reseatAfterCurrentTurn=void 0,nn(o.current,s));o.current.currentPlanEntry=null,o.current.currentHeadMessageId=void 0,Il()}}function Ol(e,t){if(!o.current)return;let s=(Array.isArray(e.prompt)?e.prompt:[]).map(a=>vt(a)).join("");if(!s)return;let r=typeof e.messageId=="string"?e.messageId:void 0;if(r&&o.current.queueByMessageId.has(r)||r&&o.current.log.some(a=>a.kind==="stream"&&a.role==="user"&&a.messageId===r)||ko({text:s}))return;let i=o.current.promptQueue.find(a=>a.text===s&&(a.status==="pending"||a.status==="queued"||a.status==="processing"));if(i){r!==void 0&&i.messageId===void 0&&(i.messageId=r,o.current.queueByMessageId.set(r,i),rs(i),o.current.spinnerOwner===i.id&&(o.current.spinnerOwner=r));return}tt(),_e({kind:"stream",role:"user",text:s,closed:!0,messageId:r,attachments:os(e.prompt)}),nt(t,r),fe()}function Lo(e){if(o.current)for(let t of e){if(!t||typeof t!="object")continue;let n=t,s=typeof n.messageId=="string"?n.messageId:"";if(!s)continue;let r=typeof n.position=="number"?n.position:0,i=o.current.queueByMessageId.get(s);if(i){r===0?(o.current.currentHeadMessageId=s,(i.status==="queued"||i.status==="pending")&&(i.status="processing")):i.status==="pending"&&(i.status="queued");continue}let a=Do(n.prompt);if(!a)continue;let c=o.current.promptQueue.find(d=>d.messageId===void 0&&d.text===a&&(d.status==="pending"||d.status==="queued"||d.status==="cancelled"));if(c){c.messageId=s,o.current.queueByMessageId.set(s,c),rs(c),c.aheadAtEnqueue=Math.max(0,r),c.status=r===0?"processing":"queued",r===0&&(o.current.currentHeadMessageId=s);continue}let u={id:"snap_"+Math.random().toString(36).slice(2,10),text:a,status:r===0?"processing":"queued",aheadAtEnqueue:Math.max(0,r),messageId:s};if(o.current.queueByMessageId.set(s,u),r===0){o.current.currentHeadMessageId=s;let d=Ll(a);if(d){d.queueEntry=u;continue}}o.current.log.push({kind:"stream",role:"user",text:a,closed:!0,queueEntry:u,attachments:os(n.prompt)})}}function Ll(e){if(!o.current)return null;let t=o.current.log;for(let n=t.length-1;n>=0;n--){let s=t[n];if(s.kind==="stream"&&s.role==="user"&&!s.queueEntry&&s.text===e)return s}return null}function Do(e){let t=Array.isArray(e)?e:[],n="";for(let s of t)if(s&&typeof s=="object"){let r=s;r.type==="text"&&typeof r.text=="string"&&(n+=r.text)}return n}function os(e){let t=Array.isArray(e)?e:[],n=[];for(let s of t){if(!s||typeof s!="object")continue;let r=s;r.type!=="image"||typeof r.data!="string"||n.push({mimeType:typeof r.mimeType=="string"?r.mimeType:"image/png",data:r.data,sizeBytes:Math.round(r.data.length*3/4)})}return n.length>0?n:void 0}function Dl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let s=(e._meta??{})["hydra-acp"]??{},r=typeof s.amending=="string"?s.amending:void 0,i=e.originator??{},a=typeof i.clientId=="string"?i.clientId:"",c=!!o.current.ownClientId&&a===o.current.ownClientId,u=Do(e.prompt);if(c){let _=o.current.promptQueue.filter(m=>m.messageId===void 0&&(m.status==="pending"||m.status==="queued"||m.status==="editing")),w=(u.length>0?_.find(m=>m.text===u):void 0)??_[0]??o.current.promptQueue.find(m=>m.messageId===void 0&&m.status==="cancelled"&&m.text===u);if(!w)return;w.messageId=t,o.current.queueByMessageId.set(t,w),rs(w),o.current.spinnerOwner===w.id&&(o.current.spinnerOwner=t),r!==void 0&&(w.amendsMessageId=r,Jt(r,t));let x=typeof e.position=="number"?e.position:1;if(w.aheadAtEnqueue=Math.max(0,x),x===0)w.status="processing";else if(w.status==="pending"||w.status==="cancelled"){w.status="queued",o.current.spinnerOwner!==void 0&&o.current.spinnerOwner===w.id&&o.current.spinner&&(o.current.spinner=null,o.current.spinnerOwner=void 0,o.current.log=o.current.log.filter(T=>T.kind!=="spinner"));let m=o.current.log,S=m.findIndex(T=>T.kind==="stream"&&T.queueEntry===w);if(S>=0){let[T]=m.splice(S,1),N=ss();N>S?m.splice(N,0,T):m.splice(S,0,T)}}return}let d=u;if(!d)return;let f=typeof e.position=="number"?e.position:0,g=typeof e.queueDepth=="number"?e.queueDepth:1,p={id:"peer_"+Math.random().toString(36).slice(2,10),text:d,status:f===0?"processing":"queued",aheadAtEnqueue:Math.max(0,f),messageId:t};r!==void 0&&(p.amendsMessageId=r,Jt(r,t)),o.current.queueByMessageId.set(t,p),tt();let h={kind:"stream",role:"user",text:d,closed:!0,queueEntry:p,messageId:t,attachments:os(e.prompt)};f===0?_e(h):o.current.log.push(h)}function Pl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=o.current.queueByMessageId.get(t);if(!n)return;let s=Array.isArray(e.prompt)?e.prompt:[],r="";for(let i of s)if(i&&typeof i=="object"){let a=i;a.type==="text"&&typeof a.text=="string"&&(r+=a.text)}if(r){n.text=r;for(let i of o.current.log)if(i.kind==="stream"&&i.role==="user"&&i.queueEntry===n){i.text=r;break}}}function nn(e,t){let n=e.log.findIndex(r=>r.kind==="stream"&&r.queueEntry===t);if(n<0||n===e.log.length-1)return;let[s]=e.log.splice(n,1);s&&e.log.push(s)}function Bl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=typeof e.reason=="string"?e.reason:"";n==="started"&&(o.current.currentHeadMessageId=t);let s=o.current.queueByMessageId.get(t);s&&(n==="started"?(s.status="processing",s.reseatAfterCurrentTurn=void 0,o.current.spinnerOwner!==void 0&&(o.current.spinnerOwner===s.id||o.current.spinnerOwner===t)?(o.current.spinnerOwner=t,o.current.spinner&&(o.current.spinner.sending=!1)):nt(void 0,t),fe()):(n==="cancelled"||n==="abandoned")&&(s.amendedByMessageId!==void 0?s.status="amended":s.status="cancelled",o.current.queueByMessageId.delete(t)))}function Hl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=o.current.queueByMessageId.get(t);n&&(n.held=!0)}function Fl(e){if(!o.current)return;let t=typeof e.messageId=="string"?e.messageId:"";if(!t)return;let n=o.current.queueByMessageId.get(t);n&&(n.held=!1)}function $l(e){o.current&&typeof e.count=="number"&&(o.current.armedTasks=e.count,o.current.armedSince=e.count>0&&typeof e.since=="number"?e.since:void 0,o.current.armedTaskList=is(e.tasks))}function is(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!n||typeof n!="object")continue;let s=n;typeof s.label!="string"||typeof s.since!="number"||t.push({label:s.label,since:s.since,taskId:typeof s.taskId=="string"?s.taskId:void 0,taskType:typeof s.taskType=="string"?s.taskType:void 0,toolCallId:typeof s.toolCallId=="string"?s.toolCallId:void 0})}return t}function Ul(e){if(!o.current)return;switch(typeof e.phase=="string"?e.phase:""){case"started":case"iteration":o.current.compactionPhase="running";break;case"deferred":o.current.compactionPhase="deferred";break;case"swapped":o.current.compactionPhase=void 0,k({banner:{kind:"good",text:"Context compacted."}});break;case"failed":o.current.compactionPhase=void 0,k({banner:{kind:"bad",text:"Context compaction failed."}});break;case"rolled_back":o.current.compactionPhase=void 0,k({banner:{kind:"warn",text:"Compaction rolled back."}});break;default:break}}function ql(e){if(!o.current)return;let t=typeof e.cancelledMessageId=="string"?e.cancelledMessageId:"",n=typeof e.newMessageId=="string"?e.newMessageId:"";if(!t||!n)return;Jt(t,n);let s=o.current.queueByMessageId.get(n);s&&s.amendsMessageId===void 0&&(s.amendsMessageId=t)}function Jt(e,t){if(!o.current)return;let n=o.current.queueByMessageId.get(e)??o.current.promptQueue.find(s=>s.messageId===e);n&&(n.amendedByMessageId=t,n.status==="cancelled"&&(n.status="amended"))}function Kl(e){if(!o.current)return;let t=e.entries??e.plan??null;if(o.current.plan=t,o.current.currentPlanEntry){o.current.currentPlanEntry.entries=t;return}let n={kind:"plan",entries:t};_e(n),o.current.currentPlanEntry=n}function zl(e){if(!o.current)return;let t=typeof e?.toolCallId=="string"?e.toolCallId:void 0;t&&Po(t)}function Po(e){o.current&&(o.current.pendingPermissions.delete(e),o.current.log=o.current.log.filter(t=>!(t.kind==="perm"&&t.toolCallId===e)))}function et(e,t){!o.current||!e||!t||t==="pending"||o.current.pendingPermissions.has(e)&&Po(e)}function sn(e,t=!1){if(o.current?.cold&&(o.current.cold=!1,o.current.ready=!0),e.method==="hydra-acp/prompt_queue/added"){Dl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/updated"){Pl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/removed"){Bl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/held"){Hl(e.params??{});return}if(e.method==="hydra-acp/prompt_queue/released"){Fl(e.params??{});return}if(e.method==="hydra-acp/session/armed_tasks_updated"){$l(e.params??{});return}if(e.method==="hydra-acp/prompt/amended"){ql(e.params??{});return}if(e.method!=="session/update")return;let n=e.params?.update??null;if(!n||typeof n!="object")return;let s=String(n.sessionUpdate??"");if(o.current&&!t&&s&&!yl.has(s)&&typeof n.messageId=="string"){n.messageId!==o.current.pendingCursorMessageId&&(o.current.pendingCursorMessageId!==void 0&&(o.current.lastSeenMessageId=o.current.pendingCursorMessageId),o.current.pendingCursorMessageId=n.messageId);let d=_l(e.params);d!==void 0&&(o.current.lastSeenSeq=d),Zt(o.current.sessionId,e)}if(s==="permission_resolved"){zl(n);return}let i=(n._meta??{})["hydra-acp"]??{},a=s==="agent_message_chunk"&&i.synthetic===!0,c=typeof n.messageId=="string"?n.messageId:void 0,u=wl(e.params);switch(s){case"prompt_received":case"user_message_chunk":case"agent_message_chunk":case"agent_thought_chunk":case"tool_call":case"tool_call_update":case"plan":a||(fe(),o.current?.spinner&&(o.current.spinner.sending=!1));break;default:break}switch(s){case"user_message_chunk":{if(i.compatFor==="prompt_received")break;ko(n.content)||ns("user",n.content,!1,c);break}case"agent_message_chunk":ns("agent",n.content,a,c);break;case"agent_thought_chunk":ns("thought",n.content,!1,c);break;case"tool_call":Nl(n);break;case"tool_call_update":Rl(n);break;case"current_mode_update":o.current&&(o.current.mode=n.modeId??n.currentModeId??null,Array.isArray(n.availableModes)&&(o.current.modes=n.availableModes),y());break;case"_hydra_available_modes_update":o.current&&Array.isArray(n.availableModes)&&(o.current.modes=n.availableModes,y());break;case"_hydra_current_model_update":o.current&&(o.current.model=n.modelId??n.currentModelId??null,Array.isArray(n.availableModels)&&(o.current.models=n.availableModels),y());break;case"config_option_update":o.current&&Array.isArray(n.configOptions)&&(o.current.configOptions=n.configOptions,y());break;case"usage_update":if(o.current){let d=n.used??n.contextUsed,f=n.size??n.contextSize;typeof d=="number"&&(o.current.contextUsed=d),typeof f=="number"&&(o.current.contextSize=f),n.cost&&(o.current.cost=n.cost)}break;case"plan":Kl(n);break;case"prompt_received":Ol(n,u);break;case"stop":case"turn_complete":{let g=((n._meta??{})["hydra-acp"]??{}).amended;if(g){let h=typeof g.cancelledMessageId=="string"?g.cancelledMessageId:"",_=typeof g.newMessageId=="string"?g.newMessageId:"";h&&_&&Jt(h,_)}let p=typeof n.stopReason=="string"?n.stopReason:void 0;De(p,u);break}case"_hydra_turn_started":{if(!o.current)break;let f=(n._meta??{})["hydra-acp"]??{};if(f.unsolicited!==!0)break;let g=typeof n.messageId=="string"?n.messageId:void 0;if(!g||o.current.unsolicitedTurnOpen.has(g))break;o.current.unsolicitedTurnOpen.add(g),fe();let p=f.cause??{},h=typeof p.label=="string"?p.label:void 0;_e({kind:"system",text:h?`agent resumed on its own: background task finished (${h})`:"agent resumed on its own"});break}case"_hydra_turn_ended":{if(!o.current)break;let f=(n._meta??{})["hydra-acp"]??{};if(f.unsolicited!==!0)break;let g=typeof n.startedMessageId=="string"?n.startedMessageId:void 0;if(!g||!o.current.unsolicitedTurnOpen.has(g)||(o.current.unsolicitedTurnOpen.delete(g),f.reason==="superseded")||o.current.unsolicitedTurnOpen.size>0)break;De(void 0,u);break}case"session_info_update":o.current&&typeof n.title=="string"&&(o.current.title=n.title);break;case"_hydra_compaction":Ul(n);break;default:break}o.current?.inTurn&&we(u)}function Bo(e){if(o.current){if(e.method==="session/request_permission"){let t=e.params??{},n=t.toolCall??{},s=typeof n.toolCallId=="string"?n.toolCallId:"";if(!s){o.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32602,message:"missing toolCall.toolCallId"}}));return}o.current.pendingPermissions.set(s,{requestId:e.id,toolCallId:s,toolCall:n,options:t.options??[]}),en({kind:"perm",toolCallId:s});return}o.current.ws?.send(JSON.stringify({jsonrpc:"2.0",id:e.id,error:{code:-32601,message:`method not handled: ${String(e.method)}`}}))}}var Wl="hydra-acp-draft:";function rn(e){return Wl+e}function Fo(e){try{return localStorage.getItem(rn(e))??""}catch{return""}}var on=new Map,Pe;function st(e,t){on.set(e,t),Pe!==void 0&&clearTimeout(Pe),Pe=setTimeout(()=>{Pe=void 0,$o()},400)}function an(e){on.delete(e);try{localStorage.removeItem(rn(e))}catch{}}function $o(){for(let[e,t]of on)try{t?localStorage.setItem(rn(e),t):localStorage.removeItem(rn(e))}catch{}on.clear()}function Ho(){Pe!==void 0&&(clearTimeout(Pe),Pe=void 0),$o()}typeof window<"u"&&typeof document<"u"&&(window.addEventListener("pagehide",Ho),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ho()}));var Gl="hydra-acp-offline-queue";var Be="sessions",cn=null;function as(){return cn||(cn=new Promise(e=>{if(!("indexedDB"in window)){e(null);return}let t;try{t=indexedDB.open(Gl,1)}catch{e(null);return}t.onupgradeneeded=()=>{t.result.createObjectStore(Be,{keyPath:"sessionId"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)}),cn)}async function Uo(e){let t=await as();return t?new Promise(n=>{let s;try{s=t.transaction(Be,"readonly")}catch{n([]);return}let r=s.objectStore(Be).get(e);r.onsuccess=()=>{let i=r.result;n(i?.entries??[])},r.onerror=()=>n([])}):[]}async function cs(e,t){let n=await as();if(n)return new Promise(s=>{let r;try{r=n.transaction(Be,"readwrite")}catch{s();return}let i=r.objectStore(Be),a=i.get(e);a.onsuccess=()=>{let c=a.result??{sessionId:e,entries:[]},u=c.entries.findIndex(d=>d.id===t.id);u>=0?c.entries[u]=t:c.entries.push(t),i.put(c),s()},a.onerror=()=>s()})}async function ln(e,t){let n=await as();if(n)return new Promise(s=>{let r;try{r=n.transaction(Be,"readwrite")}catch{s();return}let i=r.objectStore(Be),a=i.get(e);a.onsuccess=()=>{let c=a.result;if(!c){s();return}c.entries=c.entries.filter(u=>u.id!==t),c.entries.length===0?i.delete(e):i.put(c),s()},a.onerror=()=>s()})}function Tt(e,t){let n=[];e&&n.push({type:"text",text:e});for(let s of t)n.push({type:"image",data:s.data,mimeType:s.mimeType});return n}function It(){let e=o.current;if(!e)return;let t=e.composerValue.trim(),n=e.attachments;!t&&n.length===0||(us(e,t,{attachments:n})&&(e.composerValue="",e.attachments=[],an(e.sessionId)),y())}function Ko(e){let t=o.current;t&&(us(t,`/hydra workspace ${e}`,{addToHistory:!1}),y())}function zo(){let e=o.current;e&&(us(e,"/hydra compact",{addToHistory:!1}),y())}function us(e,t,n={}){let s=n.attachments??[],r=!e.connectionHealthy||!navigator.onLine||!e.ws||e.ws.readyState!==WebSocket.OPEN,i=e.promptQueue.filter(g=>g.status==="queued"||g.status==="pending"||g.status==="processing").length,a=e.inTurn&&!e.promptQueue.some(g=>g.status==="processing"),c=r?0:i+(a?1:0),u={id:"p_"+Math.random().toString(36).slice(2,10),text:t,status:r?"offline":c>0?"queued":"pending",aheadAtEnqueue:c,attachments:s.length>0?s:void 0};e.promptQueue.push(u),e.log.push({kind:"stream",role:"user",text:t,closed:!0,queueEntry:u,attachments:u.attachments}),e.recentOwnPrompts.push({text:t,at:Date.now()});let d=Date.now()-6e4;if(e.recentOwnPrompts=e.recentOwnPrompts.filter(g=>g.at>=d).slice(-16),r)return cs(e.sessionId,{id:u.id,text:t,attachments:u.attachments}),nt(void 0,u.id,!0),fe(),St(e),(n.addToHistory??!0)&&ls(e,t),!0;let f=pe("session/prompt",{sessionId:e.sessionId,prompt:Tt(t,s)});return f!==void 0&&e.ownPromptIds.set(String(f),u),u.status==="pending"?nt(void 0,u.id,!0):we(),fe(),St(e),(n.addToHistory??!0)&&ls(e,t),!0}function Wo(e){let t=!1,n=null;for(let s of e.promptQueue){if(s.status!=="offline")continue;if(!e.ws||e.ws.readyState!==WebSocket.OPEN)break;t=!0;let r=e.promptQueue.filter(u=>u.status==="queued"||u.status==="pending"||u.status==="processing").length,i=e.inTurn&&!e.promptQueue.some(u=>u.status==="processing"),a=r+(i?1:0);s.aheadAtEnqueue=a,s.status=a>0?"queued":"pending",!n&&s.status==="pending"&&(n=s);let c=pe("session/prompt",{sessionId:e.sessionId,prompt:Tt(s.text,s.attachments??[])});c!==void 0&&e.ownPromptIds.set(String(c),s),ln(e.sessionId,s.id),nn(e,s),e.inTurn&&(s.reseatAfterCurrentTurn=!0)}t&&(n?nt(void 0,n.id,!0):we(),fe())}var qo=100;function ls(e,t){e.history[0]!==t&&(e.history.unshift(t),e.history.length>qo&&(e.history.length=qo)),e.historyIndex=null,e.historyDraft=null}function dn(e){let t=o.current;if(t){if(e.messageId!==void 0){pe("hydra-acp/prompt/cancel",{sessionId:t.sessionId,messageId:e.messageId});return}e.status==="offline"&&ln(t.sessionId,e.id),e.status="cancelled",y()}}function Go(e){let t=o.current;if(!t||!t.daemonSupportsAmend||t.currentHeadMessageId===void 0||e.messageId===void 0||e.status!=="queued")return;if(!t.connectionHealthy||!navigator.onLine||!t.ws||t.ws.readyState!==WebSocket.OPEN){k({banner:{kind:"warn",text:"Not connected \u2014 still queued, try again in a moment."}});return}let n=t.currentHeadMessageId,s=e.messageId;t.queueByMessageId.delete(s),e.messageId=void 0,e.status="pending",e.amendsMessageId=n,e.aheadAtEnqueue=0,nn(t,e),pe("hydra-acp/prompt/cancel",{sessionId:t.sessionId,messageId:s}),Qo(e,e.text,n,e.text),St(t),y()}function Yo(e,t){let n=o.current;if(!n)return;let s=t.trim();if(s){if(e.status==="offline"){e.text=s,cs(n.sessionId,{id:e.id,text:s,attachments:e.attachments}),y();return}if(e.messageId===void 0){e.text=s,y();return}pe("hydra-acp/prompt/update",{sessionId:n.sessionId,messageId:e.messageId,prompt:Tt(s,e.attachments??[])})}}function Xo(){let e=o.current;if(!e)return;let t=e.composerValue.trim(),n=e.attachments;if(!t&&n.length===0)return;if(!e.connectionHealthy||!navigator.onLine||!e.ws||e.ws.readyState!==WebSocket.OPEN){e.log.push({kind:"error",text:"Not connected to session \u2014 prompt not sent."}),e.composerValue="",e.attachments=[],an(e.sessionId),y();return}if(!e.daemonSupportsAmend||e.currentHeadMessageId===void 0){It();return}let s=e.currentHeadMessageId,r=e.composerValue;e.composerValue="",e.attachments=[],an(e.sessionId),ls(e,t);let i={id:"p_"+Math.random().toString(36).slice(2,10),text:t,status:"pending",aheadAtEnqueue:0,amendsMessageId:s,attachments:n.length>0?n:void 0};e.promptQueue.push(i),e.log.push({kind:"stream",role:"user",text:t,closed:!0,queueEntry:i,attachments:i.attachments}),e.recentOwnPrompts.push({text:t,at:Date.now()});let a=Date.now()-6e4;e.recentOwnPrompts=e.recentOwnPrompts.filter(c=>c.at>=a).slice(-16),we(),fe(),St(e),Qo(i,r,s,t),y()}function Qo(e,t,n,s){let r=o.current;if(!r)return;let i=pe("_session/steering",{sessionId:r.sessionId,prompt:Tt(s,e.attachments??[])});i!==void 0&&r.responseHandlers.set(String(i),a=>{Yl(e,t,n,s,a)})}function Yl(e,t,n,s,r){let i=o.current;if(!i)return;if(r.error){if(r.error?.code===-32601){Xl(e,t,n,s);return}un(i,e,t),k({banner:{kind:"bad",text:`steering failed: ${Vo(r.error)}`}});return}let a=r.result??{};if(a.outcome==="injected"){e.status="processing",y();return}a.outcome!=="startedNewTurn"&&(un(i,e,t),k({banner:{kind:"warn",text:"steering failed"}}))}function Xl(e,t,n,s){let r=o.current;if(!r)return;let i=pe("hydra-acp/prompt/amend",{sessionId:r.sessionId,targetMessageId:n,prompt:Tt(s,e.attachments??[])});i!==void 0&&r.responseHandlers.set(String(i),a=>{Ql(e,t,a)})}function Ql(e,t,n){let s=o.current;if(!s)return;if(n.error){un(s,e,t),k({banner:{kind:"bad",text:`amend failed: ${Vo(n.error)}`}});return}let r=n.result??{};if(r.amended&&r.reason==="ok")return;un(s,e,t);let i="amend rejected";r.reason==="target_completed"?i="previous response finished \u2014 press Send to send as a new turn":r.reason==="target_cancelled"?i="amend skipped \u2014 previous turn was cancelled":r.reason==="target_not_found"&&(i="amend skipped \u2014 no matching prompt"),k({banner:{kind:"warn",text:i}})}function un(e,t,n){let s=e.promptQueue.indexOf(t);s>=0&&e.promptQueue.splice(s,1),e.log=e.log.filter(r=>!(r.kind==="stream"&&r.role==="user"&&r.queueEntry===t)),e.composerValue=n,e.attachments=t.attachments??[],st(e.sessionId,n),y()}function Vo(e){if(e&&typeof e=="object"&&"message"in e){let t=e.message;if(typeof t=="string")return t}return"unknown error"}function Zo(){let e=o.current;!e||!e.inTurn||rt("session/cancel",{sessionId:e.sessionId})}function jo(){let e=o.current;if(!e)return;let t=!1;for(let n of e.promptQueue)(n.status==="queued"||n.status==="pending")&&(dn(n),t=!0);e.inTurn&&rt("session/cancel",{sessionId:e.sessionId}),t&&y()}function Jo(e){o.current&&pe("session/set_mode",{sessionId:o.current.sessionId,modeId:e})}function ei(e){o.current&&pe("session/set_model",{sessionId:o.current.sessionId,modelId:e})}function ti(e,t){let n=o.current;if(!n)return;let s=pe("session/set_config_option",{sessionId:n.sessionId,configId:e,value:t});s!==void 0&&n.responseHandlers.set(String(s),r=>{let i=r.result?.configOptions;Array.isArray(i)&&o.current===n&&(n.configOptions=i,y())})}function ni(e){for(let t of e.promptQueue)t.status!=="done"&&t.status!=="cancelled"&&(t.status==="offline"&&ln(e.sessionId,t.id),t.status="cancelled",t.messageId!==void 0&&e.queueByMessageId.delete(t.messageId))}function si(e){for(let t of e.promptQueue)t.messageId===void 0&&t.status!=="done"&&t.status!=="cancelled"&&t.status!=="offline"&&t.status!=="processing"&&(t.status="cancelled")}var fn=null;async function ot(){if(fn)return fn;if(!("serviceWorker"in navigator))return null;try{return fn=await navigator.serviceWorker.register("/sw.js"),fn}catch{return null}}async function ri(){return typeof Notification>"u"||!await ot()?!1:Notification.permission==="granted"?!0:Notification.permission==="denied"?!1:await Notification.requestPermission()==="granted"}function oi(){return document.visibilityState!=="visible"||!document.hasFocus()}async function ii(){let e=await ot();return!e||!("pushManager"in e)?void 0:(await e.pushManager.getSubscription())?.endpoint}function Vl(e){let t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),s=atob(n);return Uint8Array.from(s,r=>r.charCodeAt(0))}async function pn(){let e=await ot();if(!(!e||!("pushManager"in e)))try{let{publicKey:t}=await ne("/api/push/vapid-public-key"),n=await e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Vl(t)});await ne("/api/push/subscribe",{method:"POST",body:JSON.stringify(n.toJSON())})}catch(t){console.warn("push subscribe failed:",t)}}async function ai(){let e=await ot();if(!(!e||!("pushManager"in e)))try{let t=await e.pushManager.getSubscription();if(!t)return;let n=t.endpoint;await t.unsubscribe(),await ne("/api/push/unsubscribe",{method:"POST",body:JSON.stringify({endpoint:n})})}catch(t){console.warn("push unsubscribe failed:",t)}}function pe(e,t){let n=o.current;if(!n||!n.ws||n.ws.readyState!==WebSocket.OPEN)return;let s=n.nextId=n.nextId??1;return n.nextId=s+1,n.ws.send(JSON.stringify({jsonrpc:"2.0",id:s,method:e,params:t})),s}function rt(e,t){let n=o.current;!n||!n.ws||n.ws.readyState!==WebSocket.OPEN||n.ws.send(JSON.stringify({jsonrpc:"2.0",method:e,params:t}))}function At(){rt("bridge/visibility",{visible:!oi()})}function it(){ii().then(e=>{rt("bridge/push-endpoint",{endpoint:e??null})})}var Zl=1e4,jl=5e3;function ci(e){e.heartbeatTimer=setTimeout(()=>Jl(e),Zl)}function Jl(e){o.current!==e||!e.ws||e.ws.readyState!==WebSocket.OPEN||(rt("bridge/ping",{}),e.heartbeatDeadline=setTimeout(()=>{e.connectionHealthy=!1,y();try{e.ws?.close()}catch{}},jl))}function eu(e){e.connectionHealthy=!0,e.heartbeatDeadline!==void 0&&(clearTimeout(e.heartbeatDeadline),e.heartbeatDeadline=void 0),ci(e)}function tu(e){gn(e),e.connectionHealthy=!0,ci(e)}function gn(e){e.heartbeatTimer!==void 0&&(clearTimeout(e.heartbeatTimer),e.heartbeatTimer=void 0),e.heartbeatDeadline!==void 0&&(clearTimeout(e.heartbeatDeadline),e.heartbeatDeadline=void 0)}function nu(e,t){let n=o.current;!n||!n.ws||n.ws.readyState!==WebSocket.OPEN||n.ws.send(JSON.stringify({jsonrpc:"2.0",id:e,result:t}))}function li(e){if(o.current){if(e.method==="bridge/replay_policy"){e.params?.policy!=="after_message"?(o.current.log.length>0&&ui(),o.current.pinAfterReplaySwap=!0,tn(o.current)):o.current.resumedByMessageId&&xo();return}if(e.method==="bridge/ready"){o.current.ready=!0,o.current.cold=!1,o.banner=null,o.current.reconnectAttempt=0;let t=e.params??{};typeof t.clientId=="string"&&(o.current.ownClientId=t.clientId),Array.isArray(t.configOptions)&&(o.current.configOptions=t.configOptions);let s=t._meta?.["hydra-acp"];if(s?.busy===!1&&o.current.inTurn&&De(),s?.busy===!0){fe(),o.current.spinner&&(o.current.spinner.sending=!1);let c=s.turnStartedAt;typeof c=="number"&&Number.isFinite(c)?(o.current.spinner||we(),o.current.spinner&&o.current.spinnerOwner===void 0&&(o.current.spinner.startedAt=c)):o.current.spinner||we()}let r=s?.queue;Array.isArray(r)&&Lo(r),s?.prompt?.amending===!0&&(o.current.daemonSupportsAmend=!0),typeof s?.armedTasks=="number"&&(o.current.armedTasks=s.armedTasks,o.current.armedSince=s.armedTasks>0&&typeof s.armedSince=="number"?s.armedSince:void 0,o.current.armedTaskList=is(s.armedTaskList));let a=o.current.readyListeners;o.current.readyListeners=[];for(let c of a)try{c()}catch{}At(),it(),tu(o.current),Wo(o.current),fs(),y();return}if(e.method==="bridge/pong"){o.current&&eu(o.current);return}if(e.method==="bridge/error"){en({kind:"error",text:`Bridge error: ${e.params?.message??"?"}`}),y();return}if(e.method==="hydra-acp/session/closed"){o.current&&(o.current.ready=!1,o.current.cold=!0,ni(o.current),De()),y();return}if(e.method&&"id"in e){Bo(e),o.current.ready&&y();return}if(e.method){sn(e),o.current.ready&&y();return}if("id"in e&&e.id!==void 0&&o.current.ownPromptIds.has(String(e.id))){let t=o.current.ownPromptIds.get(String(e.id));if(o.current.ownPromptIds.delete(String(e.id)),o.current.cold&&(o.current.cold=!1,o.current.ready=!0),e.error){let a=e.error;en({kind:"error",text:`Prompt failed: ${a.message??"unknown error"}`}),De(),y();return}let n=e.result,s=typeof n?.stopReason=="string"?n.stopReason:void 0,r=o.current.spinnerOwner;t===void 0||r===void 0||r===t.id||t.messageId!==void 0&&r===t.messageId?De(s,void 0,!0):s==="cancelled"&&t.status!=="amended"&&(t.status="cancelled"),y();return}if("id"in e&&e.id!==void 0){let t=o.current.responseHandlers.get(String(e.id));t&&(o.current.responseHandlers.delete(String(e.id)),t({result:e.result,error:e.error}))}}}function ds(e,t){if(!o.current)return;let n=o.current.pendingPermissions.get(e);n&&(o.current.pendingPermissions.delete(e),o.current.log=o.current.log.filter(s=>!(s.kind==="perm"&&s.toolCallId===e)),nu(n.requestId,{outcome:t==="__cancel__"?{outcome:"cancelled"}:{outcome:"selected",optionId:t}}),y())}var di=[1e3,2e3,4e3,8e3,16e3,3e4],su=5;function ms(e,t){let n=encodeURIComponent(e);return t?`#/session/${n}?load=true`:`#/session/${n}`}function fi(){let t=new URLSearchParams(window.location.search).get("protocol_launch");if(!t)return;history.replaceState(null,"",window.location.pathname+window.location.hash);let n;try{n=new URL(t)}catch{return}if(n.protocol!=="web+hydra:"||n.hostname!=="sessions")return;let s=decodeURIComponent(n.pathname.replace(/^\/+/,""));s&&(window.location.hash=ms(s,!0))}var ps=!1,gs=!1;function ru(){try{return window.matchMedia?.("(display-mode: standalone)").matches===!0||navigator.standalone===!0}catch{return!1}}function hs(e){if(window.location.hash===e)return;ps=!0;let t=gs||ru()?history.replaceState:history.pushState;gs=!1;try{t.call(history,null,"",e||window.location.pathname+window.location.search)}finally{queueMicrotask(()=>{ps=!1})}}function bs(){if(ps)return;let t=window.location.hash.match(/^#\/session\/([^?]+)(?:\?(.*))?$/);if(t){let n=decodeURIComponent(t[1]),r=new URLSearchParams(t[2]??"").get("load")==="true";if(o.view==="chat"&&o.current?.sessionId===n)return;He(n,r);return}o.view!=="list"&&Fe()}function He(e,t){hs(ms(e,t)),ys();let n=o.sessions.find(r=>r.sessionId===e),s={sessionId:e,title:n?.title??"",cwd:n?.cwd||"",agentId:n?.agentId||"",ws:null,ready:!1,log:[],toolCalls:new Map,pendingPermissions:new Map,pendingRequestById:new Map,responseHandlers:new Map,spinner:null,plan:null,mode:null,model:null,modes:[],models:[],contextUsed:null,contextSize:null,cost:null,fileOverlay:null,composerValue:Fo(e),attachments:[],busy:!1,recentOwnPrompts:[],history:[],historyIndex:null,historyDraft:null,_lastMetaFp:n?`${n.title}|${n.cwd}|${n.agentId}`:"",promptQueue:[],queueByMessageId:new Map,ownPromptIds:new Map,inTurn:!1,idleListeners:[],readyListeners:[],currentPlanEntry:null,daemonSupportsAmend:!1,loadOnConnect:t,reconnectAttempt:0,headerExpanded:!1,unsolicitedTurnOpen:new Set,configOptions:[],connectionHealthy:!0};o.current=s,k({view:"chat",listHighlightedSessionId:e,lastSessionId:e}),ou(s)}async function ou(e){let t=await Ao(e.sessionId);if(o.current!==e)return;t&&(Se("cache-replay",()=>{for(let s of t.frames)try{sn(s,!0)}catch(r){console.error("[hydra] cached frame failed to replay",r,s)}}),e.historyIsPartial=!0);let n=await Uo(e.sessionId);if(o.current===e){for(let s of n){let r={id:s.id,text:s.text,status:"offline",aheadAtEnqueue:0,attachments:s.attachments};e.promptQueue.push(r),e.log.push({kind:"stream",role:"user",text:s.text,closed:!0,queueEntry:r,attachments:r.attachments})}(t||n.length>0)&&y(),hn(e)}}function pi(e){if(o.current!==e)return;let t=document.querySelector(".chat-body");if(t){let n=t.getBoundingClientRect().top;for(let s of t.querySelectorAll("[data-message-id]"))if(s.getBoundingClientRect().bottom>n){e.scrollRestoreMessageId=s.dataset.messageId;break}}ys(),Es(e),tn(e),e.historyIsPartial=!1,e.wantFullHistory=!0,y(),hn(e)}function hn(e){let t=new URL("/ws",location.href);t.protocol=location.protocol==="https:"?"wss:":"ws:",t.searchParams.set("session",e.sessionId),e.loadOnConnect&&t.searchParams.set("load","true"),e.wantFullHistory&&(t.searchParams.set("fullHistory","true"),e.wantFullHistory=!1),e.lastSeenMessageId!==void 0&&t.searchParams.set("afterMessageId",e.lastSeenMessageId),e.lastSeenSeq!==void 0&&t.searchParams.set("afterSeq",String(e.lastSeenSeq)),e.resumedByMessageId=e.lastSeenSeq===void 0&&e.lastSeenMessageId!==void 0;let n=new WebSocket(t.toString());e.ws=n,n.addEventListener("open",()=>{}),n.addEventListener("message",s=>{if(!o.current||o.current.ws!==n)return;let r;try{r=JSON.parse(String(s.data))}catch{return}li(r)}),n.addEventListener("close",()=>{!o.current||o.current.ws!==n||iu(o.current)}),n.addEventListener("error",()=>{})}function iu(e){e.ready=!1,si(e);let t=e.reconnectAttempt??0,n=di[Math.min(t,di.length-1)],s=t>=su;k({banner:s?{kind:"bad",text:"Still disconnected \u2014 retrying\u2026"}:{kind:"warn",text:"Reconnecting\u2026"}}),e.reconnectTimer=setTimeout(()=>{!o.current||o.current!==e||(e.reconnectTimer=void 0,e.reconnectAttempt=t+1,Es(e),y(),hn(e))},n)}function Es(e){e.ws=null,e.ready=!1,e.pendingRequestById=new Map,e.responseHandlers=new Map,e.ownPromptIds=new Map,e.idleListeners=[],e.readyListeners=[],e.nextId=void 0,gn(e)}function gi(){if(o.view==="chat")return;let e=o.lastSessionId;if(!e||(k({listHighlightedSessionId:e}),!J()))return;let t=n=>{if(o.view==="chat")return;let s=o.sessions.find(r=>r.sessionId===e);if(s){s.status!=="cold"&&(gs=!0,He(e,!1));return}n<20&&setTimeout(()=>t(n+1),250)};t(0)}var mn=null;function mi(){return mn}var hi=0;function bi(){return hi}function Ei(e){return mn!==e?!1:(mn=null,hs(ms(e.sessionId,!1)),Es(e),e.reconnectAttempt=0,o.current=e,k({view:"chat",listHighlightedSessionId:e.sessionId,lastSessionId:e.sessionId}),hn(e),!0)}function Fe(){hs(""),ys();let e=o.current?.sessionId??o.lastSessionId;mn=o.current,hi=o.current?yi(o.current):0,k({view:"list",current:null,lastSessionId:e,listHighlightedSessionId:e??o.listHighlightedSessionId}),at()}function bn(){if(o.current?.ws)try{o.current.ws.close()}catch{}}function ys(){if(o.current&&(o.current.reconnectTimer&&(clearTimeout(o.current.reconnectTimer),o.current.reconnectTimer=void 0),gn(o.current),o.current.ws)){try{o.current.ws.close()}catch{}o.current.ws=null}}var _i="(prefers-color-scheme: dark)";function au(){return o.theme==="system"?window.matchMedia(_i).matches?"dark":"light":o.theme}function yn(){document.documentElement.style.fontSize=`${16*o.fontScale}px`}function En(){let e=au();document.documentElement.setAttribute("data-theme",e),document.querySelector('meta[name="theme-color"]')?.setAttribute("content",e==="light"?"#ffffff":"#0e1116")}function wi(){En(),window.matchMedia(_i).addEventListener("change",()=>{o.theme==="system"&&En()})}var vi=10*1024*1024,Ct=new WeakSet;function Is(e){return e>=1024*1024?`${(e/(1024*1024)).toFixed(1)}MB`:e>=1024?`${(e/1024).toFixed(0)}KB`:`${e}B`}function cu(e,t){for(let n of t){if(n.size>vi){k({banner:{kind:"warn",text:`pasted image is ${Is(n.size)}, max ${Is(vi)}`}});continue}let s=new FileReader;s.onload=()=>{let r=s.result;if(typeof r!="string")return;let i=r.indexOf(",");i<0||(e.attachments.push({mimeType:n.type||"image/png",data:r.slice(i+1),sizeBytes:n.size}),y())},s.readAsDataURL(n)}}function Oi(e){return`data:${e.mimeType};base64,${e.data}`}function lu(e){return e.attachments.length===0?null:l("div",{class:"attachment-chips"},...e.attachments.map((t,n)=>l("span",{class:"attachment-chip",title:Is(t.sizeBytes)},l("img",{class:"attachment-thumb",src:Oi(t)}),l("button",{class:"attachment-remove",title:"Remove image",...I(()=>{e.attachments.splice(n,1),y()})},"\xD7"))))}function xs(e){return"untitled"}function he(e){return e.replace(/^hydra_session_/,"")}function uu(e){if(!e)return;let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Li(e,t){let n=e||"?",s=uu(t);return s?`${n}\u2022${s}`:n}function Di(e){let t=Math.floor(Math.max(0,e)/1e3);if(t<60)return"<1m";let n=Math.floor(t/60);if(n<60)return`${n}m`;let s=Math.floor(n/60);if(s<24)return`${s}h`;let r=Math.floor(s/24);if(r<14)return`${r}d`;let i=Math.floor(r/7);if(i<9)return`${i}w`;let a=Math.floor(r/30);return a<12?`${a}mo`:`${Math.floor(r/365)}y`}function du(e,t=Date.now()){if(!e)return"?";let n=Date.parse(e);return Number.isNaN(n)?"?":Di(t-n)}function Si(e){return Number.isFinite(e)?e<1e3?String(e):e<1e6?(e/1e3).toFixed(e<1e4?1:0).replace(/\.0$/,"")+"k":(e/1e6).toFixed(2).replace(/\.?0+$/,"")+"M":"?"}function Ti(e){let t=null,n="USD";if(typeof e=="number")t=e;else if(e&&typeof e=="object"){let r=e;if(typeof r.amount=="number")t=r.amount;else if(typeof r.total=="number")t=r.total;else if(r.total&&typeof r.total=="object"){let i=r.total;typeof i.amount=="number"&&(t=i.amount),typeof i.currency=="string"&&(n=i.currency)}typeof r.currency=="string"&&(n=r.currency)}if(t===null)return null;let s=t<.01?4:t<1?3:2;return n==="USD"?`$${t.toFixed(s)}`:`${t.toFixed(s)} ${n}`}function Pi(e,t){t.banner&&e.appendChild(l("div",{class:"banner "+t.banner.kind},t.banner.text)),J()?e.appendChild(mu(t)):t.view==="list"?(e.appendChild($i()),e.appendChild(Fi()),e.appendChild(zi())):t.view==="chat"&&t.current&&(e.appendChild(Tn(t.current)),t.current.fileOverlay&&e.appendChild(ta(t.current))),t.modal&&(t.modal.kind==="session"?e.appendChild(Gu(t.modal)):t.modal.kind==="modes"&&t.current?e.appendChild(Ai("Mode",t.current.modes,t.current.mode,n=>Jo(n.id))):t.modal.kind==="models"&&t.current?e.appendChild(Ai("Model",t.current.models,t.current.model,n=>ei(n.id))):t.modal.kind==="options"&&e.appendChild(Ou()))}function ks(){return[$i(),Fi(),zi()]}function Bi(){return l("div",{class:"swipe-preview-list"},...ks())}function Hi(e){let t=e.title||xs(e.sessionId),n=[he(e.sessionId),Li(e.agentId,e.currentModel)].join(" \xB7 ");return l("div",{class:"swipe-preview-chat"},l("div",{class:"chat-header"},l("div",{class:"chat-title-row"},l("div",{class:"chat-title"},t)),l("div",{class:"chat-header-row"},l("div",{class:"info"},l("div",{class:"row2"},n)))),l("div",{class:"chat-body swipe-preview-chat-body"},l("div",{class:"swipe-preview-loading"},l("span",{class:"dot"}),"opening\u2026")))}function fu(){let e=l("div",{class:"rail",tabindex:"-1","data-focus-key":"list-rail"},...ks());return o.railWidth!==null&&(e.style.flex=`0 0 ${As(o.railWidth)}px`),Ds(),e}function pu(e){if(!sa())return;let t=e.querySelector(".list"),n=t?t.scrollTop:null,s=t?Rs(t):null,r=document.activeElement,i=r&&e.contains(r)?r.dataset.focusKey??null:null,a=i?r.selectionStart:null,c=i?r.selectionEnd:null;if(e.replaceChildren(...ks()),Ds(),i){let d=e.querySelector(`[data-focus-key="${CSS.escape(i)}"]`);if(d){d.focus();let f=d;if(a!==null&&typeof f.setSelectionRange=="function")try{f.setSelectionRange(a,c)}catch{}}}let u=e.querySelector(".list");u&&(s?Os(u,s):n!==null&&(u.scrollTop=n))}function As(e){let t=Math.max(280,Math.min(window.innerWidth*.6,window.innerWidth-360));return Math.round(Math.max(240,Math.min(e,t)))}function gu(){let e=l("div",{class:"splitter",title:"Drag to resize (double-click to reset)"});return e.addEventListener("dblclick",()=>{let t=e.previousElementSibling;t&&(t.style.flex=""),k({railWidth:null})}),e.addEventListener("pointerdown",t=>{let n=e.previousElementSibling;if(!n)return;t.preventDefault();let s=t.clientX,r=n.getBoundingClientRect().width;e.setPointerCapture(t.pointerId),e.classList.add("dragging");let i=c=>{n.style.flex=`0 0 ${As(r+(c.clientX-s))}px`},a=()=>{e.releasePointerCapture(t.pointerId),e.classList.remove("dragging"),e.removeEventListener("pointermove",i),e.removeEventListener("pointerup",a),e.removeEventListener("pointercancel",a),k({railWidth:As(n.getBoundingClientRect().width)})};e.addEventListener("pointermove",i),e.addEventListener("pointerup",a),e.addEventListener("pointercancel",a)}),e}function mu(e){let t=l("div",{class:"split-detail"});return e.current?(t.appendChild(Tn(e.current)),e.current.fileOverlay&&t.appendChild(ta(e.current))):t.appendChild(l("div",{class:"split-detail-empty"},"Select a session from the list")),l("div",{class:"split"},fu(),gu(),t)}function Ns(){let e=document.querySelector('[data-focus-key="list-rail"]');e&&(o.current&&k({listHighlightedSessionId:o.current.sessionId}),e.focus())}function Fi(){let e=o.sessionSearch.length>0?l("button",{class:"session-search-clear",title:"Clear filter",...I(()=>k({sessionSearch:""}))},"\xD7"):null;return l("div",{class:"session-search-row"},l("input",{class:"session-search",type:"text",placeholder:"Filter sessions\u2026",value:o.sessionSearch,"data-focus-key":"session-search",autocomplete:"off",autocapitalize:"off",autocorrect:"off",spellcheck:"false",oninput:t=>{k({sessionSearch:t.target.value})},onkeydown:t=>{t.key==="Escape"&&(t.preventDefault(),t.stopPropagation(),o.sessionSearch.length>0?k({sessionSearch:""}):t.target.blur())}}),e)}function $i(){return l("div",{class:"topbar"},l("span",{class:"pill clickable",title:"Click to toggle grouping by project/recent",...I(()=>k({groupBy:o.groupBy==="project"?"recent":"project"}))},o.groupBy),l("span",{class:"pill clickable",title:"Click to toggle showing disk-only sessions",...I(()=>{k({showCold:!o.showCold})})},o.showCold?"all":"warm"),hu(),l("span",{class:"spacer"}),l("button",{...I(Wi),title:"Options"},"\u2699"),l("button",{...I(Uu),title:"Import a *.hydra bundle from disk"},"\u{1F4E5}"),l("button",{...I(Vi),title:"New Session"},"\uFF0B"))}function hu(){let e=new Set;for(let r of o.sessions)r.importedFromMachine&&!r.upstreamSessionId&&e.add(r.importedFromMachine);let t=[...e].sort(),n=l("select",{class:"host-select",title:"Filter sessions by origin host",onchange:r=>{let i=r.target.value;k({hostFilter:i})}}),s=(r,i)=>{let a=document.createElement("option");a.value=r,a.textContent=i,o.hostFilter===r&&(a.selected=!0),n.appendChild(a)};s("__local","local");for(let r of t)s(r,r);return s("__all","all"),o.hostFilter!=="__local"&&o.hostFilter!=="__all"&&!t.includes(o.hostFilter)&&(n.value=o.hostFilter),n}function bu(e,t){if(t.length===0)return!0;let n=t.toLowerCase();return[he(e.sessionId),e.upstreamSessionId??"",e.agentId??"",e.title??"",e.cwd,e.cwd.replace(/^\/(?:home|Users)\/[^/]+/,"~")].some(r=>r.toLowerCase().includes(n))}function Ui(){let e=o.showCold?o.sessions:o.sessions.filter(n=>n.status!=="cold");o.hostFilter==="__local"?e=e.filter(n=>!n.importedFromMachine||!!n.upstreamSessionId):o.hostFilter!=="__all"&&(e=e.filter(n=>n.importedFromMachine===o.hostFilter&&!n.upstreamSessionId));let t=o.sessionSearch.trim();return t.length>0&&(e=e.filter(n=>bu(n,t))),e}function Eu(){return Yi(Ui(),o.groupBy).flatMap(e=>e.sessions.map(t=>t.sessionId))}function qi(){document.querySelector('[data-focus-key="composer"]')?.focus()}function Cs(e,t){if(J()&&o.current?.sessionId===e){qi();return}He(e,t)}function Ki(e){let t=document.activeElement?.dataset.focusKey==="list-rail";if(o.view!=="list"&&!(J()&&t)||Te(document.activeElement))return;if(e.key==="Escape"){if(J()&&o.current){e.preventDefault(),k({listHighlightedSessionId:o.current.sessionId}),qi();return}let u=o.lastSessionId,d=u?o.sessions.find(f=>f.sessionId===u):void 0;if(!d)return;e.preventDefault(),Cs(d.sessionId,d.status==="cold");return}if(e.key.toLowerCase()==="c"&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey){e.preventDefault(),Vi();return}let n=!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey,s=e.key==="ArrowDown"||e.key==="n"&&n,r=e.key==="ArrowUp"||e.key==="p"&&n;if(!s&&!r&&e.key!=="Enter")return;let i=Eu();if(i.length===0)return;if(e.key==="Enter"){let u=o.listHighlightedSessionId;if(!u||!i.includes(u))return;let d=o.sessions.find(f=>f.sessionId===u);if(!d)return;e.preventDefault(),Cs(d.sessionId,d.status==="cold");return}e.preventDefault();let a=o.listHighlightedSessionId?i.indexOf(o.listHighlightedSessionId):-1,c=a===-1?0:s?Math.min(i.length-1,a+1):Math.max(0,a-1);k({listHighlightedSessionId:i[c]})}var _s=null;function zi(){let e=Ui(),t=o.showCold?0:o.sessions.filter(r=>r.status==="cold").length,n=Yi(e,o.groupBy),s=l("div",{class:"list"});if(o.listHighlightedSessionId&&o.listHighlightedSessionId!==_s?(_s=o.listHighlightedSessionId,queueMicrotask(()=>{document.querySelector(".card.highlighted")?.scrollIntoView({block:"nearest"})})):o.listHighlightedSessionId||(_s=null),e.length===0){let r;o.sessionSearch.trim().length>0?r=`No sessions match \u201C${o.sessionSearch.trim()}\u201D.`:o.sessions.length===0?r="No sessions. Use + to create one, or run `hydra-acp launch <agent>` from your editor.":o.hostFilter==="__local"?r="No local sessions. Switch the host filter to see imported sessions.":o.hostFilter!=="__all"?r=`No sessions from ${o.hostFilter}. Try a different host.`:r=`No warm sessions. ${t} cold session${t===1?"":"s"} hidden \u2014 click "warm" to switch to "all".`,s.appendChild(l("div",{class:"empty"},r))}for(let r of n){let i=l("div",{class:"group"});r.label&&i.appendChild(l("h2",null,r.label));for(let a of r.sessions)i.appendChild(Bu(a,r.label===null));s.appendChild(i)}return s}function yu(e,t){let n=a=>a.priority&&a.priority>0?a.priority:0,s=a=>{let c=a.status==="warm",u=n(a)>0;return c&&a.busy&&a.awaitingInput?6:c&&a.busy?5:c&&a.awaitingInput?4:c&&u?3:c?2:u?1:0},r=s(t)-s(e);if(r!==0)return r;let i=n(t)-n(e);return i!==0?i:String(t.updatedAt||"").slice(0,16).localeCompare(String(e.updatedAt||"").slice(0,16))}function In(e){return e.replace(/^\/(home|Users)\/[^/]+/,"~")}function ws(e,t){return l("div",{class:"detail"},l("span",{class:"k"},e),l("code",null,t))}function _u(e,t){let n=l("input",{type:"checkbox",title:"Float this session to the top of the list",onchange:s=>{wu(e,s.target.checked?1:null)}});return n.checked=(t??0)>0,l("div",{class:"detail"},l("span",{class:"k"},"high priority"),n)}async function wu(e,t){try{await ne(`/api/sessions/${encodeURIComponent(e)}/priority`,{method:"PATCH",body:JSON.stringify({priority:t})}),Ce()}catch(n){k({banner:{kind:"bad",text:"priority update failed: "+n.message}})}}function vu(e){let t=(n,s)=>l("button",{class:"ghost",...I(()=>Ko(n))},s);return e?l("div",{class:"detail"},l("span",{class:"k"},"workspace"),l("code",null,`${e.label}${e.clean===!1?" \xB7 dirty":""}`),t("sync","Sync"),t("stop","Stop"),t("apply","Apply")):l("div",{class:"detail"},l("span",{class:"k"},"workspace"),t("start","Start workspace"))}function Su(){return l("div",{class:"detail"},l("span",{class:"k"},"hide thoughts"),l("label",{class:"checkbox-label"},l("input",{type:"checkbox",checked:o.hideThoughts?"":void 0,onchange:e=>{k({hideThoughts:e.target.checked})}})))}function Tu(){return l("div",{class:"detail"},l("span",{class:"k"},"notify"),l("label",{class:"checkbox-label"},l("input",{type:"checkbox",checked:o.notifyOnTurnEnd?"":void 0,onchange:e=>{if(!e.target.checked){k({notifyOnTurnEnd:!1}),ai().then(()=>it());return}ri().then(n=>{if(!n){k({banner:{kind:"warn",text:"Notifications blocked \u2014 enable them for this site in your browser settings."}});return}k({notifyOnTurnEnd:!0}),pn().then(()=>it())})}})))}function Wi(){let e=o.current?.sessionId;o.cacheInfo=e?"\u2026":"no session open",e&&Co(e).then(t=>{o.cacheInfo=t,y()}),o.daemonVersion="\u2026",ne("/api/health").then(t=>{o.daemonVersion=t.upstream?.version??"unknown",y()}).catch(()=>{o.daemonVersion="unreachable",y()}),k({modal:{kind:"options"}})}var Iu=[{value:"system",label:"system"},{value:"dark",label:"dark"},{value:"light",label:"light"}],Au=[{value:.85,label:"smaller"},{value:.95,label:"small"},{value:1,label:"normal"},{value:1.15,label:"large"},{value:1.3,label:"larger"},{value:1.5,label:"largest"}];function Cu(){let e=l("select",{onchange:t=>{k({fontScale:Number(t.target.value)}),yn()}},...Au.map(t=>l("option",{value:String(t.value)},t.label)));return e.value=String(o.fontScale),l("div",{class:"detail"},l("span",{class:"k"},"text size"),e)}function ct(e,t){let n=l("span",{class:"diag-value"},t);return l("div",{class:"detail diag-copy",title:"Tap to copy",...I(()=>{let r=()=>{let a=n.textContent;n.textContent="copied",setTimeout(()=>{n.textContent=a},1200)},i=`${e}: ${t}`;navigator.clipboard?.writeText?navigator.clipboard.writeText(i).then(r,()=>Ii(n)):Ii(n)})},l("span",{class:"k"},e),n)}function Ii(e){let t=document.createRange();t.selectNodeContents(e);let n=window.getSelection();n?.removeAllRanges(),n?.addRange(t)}function Mu(){return ct("cache",o.cacheInfo??"\u2026")}function xu(){return ct("build","2026-09-04 13:40Z")}function ku(){return ct("browser","0.1.45")}function Nu(){return ct("daemon",o.daemonVersion??"\u2026")}function Ru(){let e=l("select",{onchange:t=>{k({theme:t.target.value}),En()}},...Iu.map(t=>{let n=l("option",{value:t.value},t.label);return t.value===o.theme&&n.setAttribute("selected",""),n}));return e.value=o.theme,l("div",{class:"detail"},l("span",{class:"k"},"theme"),e)}function Ou(){return l("div",{class:"modal-bg",...I(e=>{e.target.classList.contains("modal-bg")&&be()})},l("div",{class:"modal"},l("h2",null,"Options"),Ru(),Cu(),Su(),Tu(),l("div",{class:"diagnostics"},ku(),Nu(),xu(),Mu(),ct("slow",js()),ct("paths",Zs())),l("div",{class:"actions"},l("button",{class:"primary",...I(be)},"Close"))))}function Lu(e){let t=l("select",{onchange:n=>{ti(e.id,n.target.value)}},...e.options.map(n=>{let s=l("option",{value:n.value},n.name||n.value);return n.value===e.currentValue&&s.setAttribute("selected",""),s}));return t.value=e.currentValue,l("div",{class:"detail"},l("span",{class:"k",title:e.description??""},e.name||e.id),t)}var Du=500,Gi=0;document.addEventListener("pointermove",e=>{e.target?.closest?.(".list")&&(Gi=performance.now())});var vs=null;function Pu(e){let t=e.slice().sort(yu);if(performance.now()-Gi>Du||!vs)return vs=t.map(r=>r.sessionId),t;let s=new Map(vs.map((r,i)=>[r,i]));return t.map((r,i)=>({s:r,i})).sort((r,i)=>{let a=s.get(r.s.sessionId),c=s.get(i.s.sessionId);return a!==void 0&&c!==void 0?a-c:a!==void 0?-1:c!==void 0?1:r.i-i.i}).map(r=>r.s)}function Yi(e,t){let n=Pu(e);if(t==="recent")return[{label:null,sessions:n}];let s=new Map;for(let i of n){let a=i.cwd||"(unknown)";s.has(a)||s.set(a,[]),s.get(a).push(i)}let r=[];for(let[i,a]of[...s.entries()].sort((c,u)=>c[0].localeCompare(u[0])))r.push({label:In(i),sessions:a});return r}function Rs(e){if(e.scrollTop<=0)return null;let t=e.getBoundingClientRect().top;for(let n of e.querySelectorAll(".card")){let s=n.getBoundingClientRect();if(s.bottom<=t)continue;let r=n.dataset.sessionId;return r?{sessionId:r,offset:s.top-t}:null}return null}function Os(e,t){if(!t)return;let n=e.querySelector(`.card[data-session-id="${CSS.escape(t.sessionId)}"]`);if(!n)return;let s=n.getBoundingClientRect().top-e.getBoundingClientRect().top-t.offset;e.scrollTop+=s}function Bu(e,t){let n=e.title||xs(e.sessionId),s=[he(e.sessionId),Li(e.agentId,e.currentModel),`age ${du(e.updatedAt)}`].join(" \xB7 "),r=!e.busy&&(e.armedTasks??0)>0;return l("div",{class:e.sessionId===o.listHighlightedSessionId?"card highlighted":"card","data-session-id":e.sessionId,...I(i=>{i.target.closest("button")||Cs(e.sessionId,e.status==="cold")})},l("div",{class:"row1"},n),l("div",{class:"card-body"},l("div",{class:"meta"},l("div",{class:"row2"},s)),l("div",{class:"badges"},e.status==="cold"||!(e.busy||e.awaitingInput||r)?l("span",{class:`badge ${e.status==="cold"?"cold":"warm"}`,title:e.status==="cold"?"Disk-only \u2014 opening will resurrect the session":"Live in-memory session"},e.status==="cold"?"cold":"warm"):null,e.busy||r?l("span",{class:"badge busy",title:e.busy?"Agent is working":"Agent has a background task running. It may resume on its own."},"busy"):null,e.awaitingInput?l("span",{class:"badge blocked",title:"Waiting on you \u2014 a permission request or other prompt is pending"},"blocked"):null,...e.importedFromMachine&&!e.upstreamSessionId?[l("span",{class:"badge imported",title:`Passive mirror imported from ${e.importedFromMachine} \u2014 attach to start working on it here.`},`\u2190 ${e.importedFromMachine}`)]:[])),t?l("div",{class:"row3"},e.cwd?In(e.cwd):"?"):null,e.status!=="cold"?l("button",{class:"card-kill",title:"Kill this session",...I(()=>{Hu(e)})},"\xD7"):null)}async function Hu(e){if(confirm(`Kill session ${e.title?`"${e.title}" (${he(e.sessionId)})`:he(e.sessionId)}?`))try{await ne("/api/kill",{method:"POST",body:JSON.stringify({sessionId:e.sessionId})}),Ce()}catch(t){k({banner:{kind:"bad",text:"kill failed: "+t.message}})}}function Fu(e){e.compactionPhase||confirm("Compact this session's context now? The agent will summarize history and continue from the summary.")&&zo()}function $u(e){let t=document.createElement("a");t.href=`/api/sessions/${encodeURIComponent(e)}/export`,t.download="",t.rel="noopener",document.body.appendChild(t),t.click(),t.remove()}function Uu(){let e=document.createElement("input");e.type="file",e.accept=".hydra,application/json",e.style.display="none",e.onchange=()=>{let t=e.files&&e.files[0];document.body.removeChild(e),t&&qu(t)},document.body.appendChild(e),e.click()}async function qu(e){let t;try{let s=await e.text();t=JSON.parse(s)}catch(s){k({banner:{kind:"bad",text:"import: bundle is not valid JSON: "+s.message}});return}let n=await oa(t);if(n.ok){let s=n.result;k({banner:{kind:"good",text:s.replaced?`Replaced ${he(s.sessionId)} from bundle`:`Imported as ${he(s.sessionId)}`}}),Ce();return}if(n.status===409&&n.existingSessionId){let s=n.existingSessionId;if(!confirm(`This session is already imported locally as ${he(s)}.
653
654
 
654
- Replace it? (Any live attach will be closed.)`)){k({banner:{kind:"warn",text:"Import cancelled."}});return}try{let i=await ra(t,{replace:!0});k({banner:{kind:"good",text:`Replaced ${he(i.sessionId)} from bundle`}}),Ce()}catch(i){k({banner:{kind:"bad",text:"import failed: "+i.message}})}return}k({banner:{kind:"bad",text:"import failed: "+n.message}})}var Xi="hydra-acp-browser:lastCwd",Qi="hydra-acp-browser:cwdHistory",Ku=20;function Ls(){try{let e=localStorage.getItem(Qi);if(e){let n=JSON.parse(e);if(Array.isArray(n))return n.filter(s=>typeof s=="string")}let t=localStorage.getItem(Xi);return t?[t]:[]}catch{return[]}}function zu(){return Ls()[0]??null}function Wu(e){try{let t=Ls().filter(n=>n!==e);t.unshift(e),localStorage.setItem(Qi,JSON.stringify(t.slice(0,Ku))),localStorage.removeItem(Xi)}catch{}}function Vi(){k({modal:{kind:"session",cwd:zu()??o.defaultCwd??"",agentId:"",name:"",prompt:"",err:null,busy:!1}})}function Gu(e){return l("div",{class:"modal-bg",...T(t=>{t.target.classList.contains("modal-bg")&&be()})},l("div",{class:"modal"},l("h2",null,"New session"),l("div",{class:"field"},l("label",{for:"f-cwd"},"cwd"),l("input",{id:"f-cwd","data-focus-key":"session-modal-cwd",value:e.cwd,placeholder:"/home/you/dev/project",list:"f-cwd-history",autocomplete:"off",oninput:t=>{e.cwd=t.target.value}}),l("datalist",{id:"f-cwd-history"},...Ls().map(t=>l("option",{value:t})))),l("div",{class:"field"},l("label",{for:"f-agent"},"agent"),Yu(e)),l("div",{class:"field"},l("label",{for:"f-name"},"name (optional)"),l("input",{id:"f-name","data-focus-key":"session-modal-name",value:e.name,placeholder:"feature-x",oninput:t=>{e.name=t.target.value}})),l("div",{class:"field"},l("label",{for:"f-prompt"},"first prompt (optional)"),l("textarea",{id:"f-prompt","data-focus-key":"session-modal-prompt",rows:"4",placeholder:"What should the agent do first?",autocapitalize:"off",oninput:t=>{e.prompt=t.target.value}},e.prompt)),e.err?l("div",{class:"err"},e.err):null,l("div",{class:"actions"},l("button",{...T(be)},"Cancel"),l("button",{class:"primary",...T(Xu),disabled:e.busy},e.busy?"Creating\u2026":"Create"))))}function Yu(e){let t=l("select",{id:"f-agent","data-focus-key":"session-modal-agent",onchange:s=>{e.agentId=s.target.value}}),n=l("option",{value:""},"<default>");e.agentId===""&&n.setAttribute("selected",""),t.appendChild(n);for(let s of o.agents){let r=l("option",{value:s.id},s.id);s.id===e.agentId&&r.setAttribute("selected",""),t.appendChild(r)}return t}async function Xu(){let e=o.modal;if(!(!e||e.kind!=="session")){if(!e.cwd){e.err="cwd is required",y();return}e.busy=!0,e.err=null,y();try{let t={cwd:e.cwd};e.agentId&&(t.agentId=e.agentId),e.name&&(t.name=e.name),e.prompt&&(t.prompt=e.prompt);let n=await ne("/api/sessions",{method:"POST",body:JSON.stringify(t),timeoutMs:6e4});if(Wu(e.cwd),Ce(),o.modal!==e)return;be(),n&&n.sessionId&&He(n.sessionId,!1)}catch(t){if(o.modal!==e)return;e.err=t.message,e.busy=!1,y()}}}function be(){k({modal:null})}function Qu(){!o.current?.models||o.current.models.length===0||k({modal:{kind:"models"}})}function Ai(e,t,n,s){return l("div",{class:"modal-bg",...T(r=>{r.target.classList.contains("modal-bg")&&be()})},l("div",{class:"modal"},l("h2",null,e),...t.map(r=>l("div",{class:"card",...T(()=>{s(r),be()})},l("div",{class:"meta"},l("div",{class:"row1"},r.name||r.id),l("div",{class:"row2"},r.id)),r.id===n?l("span",{class:"badge warm"},"current"):null)),l("div",{class:"actions"},l("button",{...T(be)},"Cancel"))))}var Ss=5;function Vu(e){let t=e.armedTaskList;if(!t||t.length===0)return document.createTextNode("");let n=t.slice(0,Ss),s=Date.now();return l("div",{class:"armed-tasks"},...n.map(r=>l("div",{class:"armed-task"},l("span",{class:"dot"},"\u25D0"),l("span",{class:"label"},r.label.length>0?r.label:r.taskType??"background task"),l("span",{class:"elapsed"},Di(s-r.since)))),t.length>Ss?l("div",{class:"armed-tasks-more"},`+${t.length-Ss} more`):null)}var Ts=200,Ms=450,Zu=250;function _n(e){let t=e.body;Math.abs(t.scrollTop-(t.scrollHeight-t.clientHeight))>1&&(t.scrollTop=t.scrollHeight)}function ju(e){e.stickToBottom=!0,e.reflowUntil=performance.now()+700,_n(e),requestAnimationFrame(()=>_n(e)),setTimeout(()=>_n(e),120),setTimeout(()=>{_n(e),e.reflowUntil=0;let t=e.body,n=t.scrollHeight-t.scrollTop-t.clientHeight<50;e.jump.classList.toggle("visible",!n),An(t,e.turnToast)},450)}function Mt(e){if(!e.stickToBottom||e.touchActive)return;let t=performance.now();if(t-e.lastTouchEndAt<Ms||t-e.lastScrollAt<Zu)return;let n=e.body,s=n.scrollHeight-n.clientHeight;Math.abs(n.scrollTop-s)>1&&(n.scrollTop=n.scrollHeight)}var Ae=new WeakMap;function Zi(e){return Ae.get(e)?.root??null}function yi(e){return Ae.get(e)?.body.scrollTop??0}function Ju(e){let t=Ae.get(e);if(t)return t;let n=l("div",{class:"chat-body"}),s=l("button",{class:"jump-to-latest-btn",...T(()=>{n.scrollTop=n.scrollHeight,c.classList.remove("visible")})},"\u2193 Bottom"),r=l("button",{class:"jump-to-latest-btn icon",...T(()=>Sn("prev")),title:"Previous turn (Cmd/Ctrl+PageUp)"},"\u25B2"),i=l("button",{class:"jump-to-latest-btn icon",...T(()=>Sn("next")),title:"Next turn (Cmd/Ctrl+PageDown)"},"\u25BC"),a=l("div",{class:"turn-toast"}),c=l("div",{class:"jump-to-latest"},r,a,i,s),u=0;n.addEventListener("scroll",()=>{t.lastScrollAt=performance.now();let E=n.scrollHeight-n.scrollTop-n.clientHeight<50;performance.now()>=t.reflowUntil&&(t.stickToBottom=E),u&&cancelAnimationFrame(u),u=requestAnimationFrame(()=>{u=0,!(performance.now()<t.reflowUntil)&&(c.classList.toggle("visible",!E),An(n,a))})},{passive:!0});let d=0;n.addEventListener("touchstart",()=>{t.touchActive=!0,d=n.scrollHeight},{passive:!0});let f=E=>{E.touches.length>0||(t.touchActive=!1,t.lastTouchEndAt=performance.now(),n.scrollHeight!==d&&(setTimeout(()=>Mt(t),Ms+50),setTimeout(()=>Mt(t),Ms+900)))};n.addEventListener("touchend",f,{passive:!0}),n.addEventListener("touchcancel",f,{passive:!0});let p=0,g=0;n.addEventListener("pointerdown",E=>{p=E.clientX,g=E.clientY},{passive:!0}),n.addEventListener("pointerup",E=>{if(Te(E.target)||Math.hypot(E.clientX-p,E.clientY-g)>qn)return;let x=document.activeElement;(x instanceof HTMLTextAreaElement||x instanceof HTMLInputElement)&&x.blur()},{passive:!0});let m=l("div",{class:"chat-slot"}),_=l("div",{class:"chat-slot"}),w=l("div",{class:"chat-slot"}),S=l("div",{class:"chat-slot"});{let C=null,R=null,L=!1,B=!1,H=()=>{let P=document.activeElement;B&&(P instanceof HTMLTextAreaElement||P instanceof HTMLInputElement)&&P.blur(),C=null,R=null,L=!1,B=!1};S.addEventListener("touchstart",P=>{C=null,R=null,L=!1,B=!1;let Y=document.activeElement;if(!(Y instanceof HTMLTextAreaElement||Y instanceof HTMLInputElement))return;let Q=P.touches[0];Q&&(C=Q.clientX,R=Q.clientY)},{passive:!0}),S.addEventListener("touchmove",P=>{if(C===null||R===null)return;let Y=P.touches[0];if(!Y)return;let Q=Y.clientX-C,Z=Y.clientY-R;if(!L){if(Math.abs(Q)<10&&Math.abs(Z)<10)return;if(Math.abs(Q)>Math.abs(Z)||Z<0){C=null,R=null;return}L=!0}B=Z>=50},{passive:!0}),S.addEventListener("touchend",H,{passive:!0}),S.addEventListener("touchcancel",H,{passive:!0})}return t={root:l("div",{class:"chat"},m,_,w,n,S),body:n,jump:c,headerSlot:m,detailsSlot:_,armedSlot:w,composerSlot:S,stickToBottom:!0,touchActive:!1,lastTouchEndAt:0,lastScrollAt:0,reflowUntil:0,turnToast:a},Ae.set(e,t),t}var Ci=new WeakMap;function ed(e){if(e.kind==="stream"){let t=e.queueEntry;return[e.text,e.role,e.synthetic??!1,e.closed??!1,Ct.has(e),t?.status,t?.amendedByMessageId,t?.amendsMessageId,e.attachments?.length??0]}return e.kind==="system"||e.kind==="error"?[e.text]:e.kind==="edit-diff"?[e.diff,e.expanded,e.status]:e.kind==="exit-plan-mode"?[e.plan,e.status]:e.kind==="turn-stamp"?[e.elapsedMs,e.toolCount,e.stopReason]:null}var Mi="pre, table";function td(e,t){if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))return;let n=e.querySelectorAll(Mi);if(n.length===0)return;let s=[];n.forEach((r,i)=>{(r.scrollLeft!==0||r.scrollTop!==0)&&s.push([i,r.scrollLeft])}),s.length!==0&&queueMicrotask(()=>{let r=t.querySelectorAll(Mi);for(let[i,a]of s){let c=r[i];c&&(c.scrollLeft=a)}})}function nd(e){let t=ed(e);if(t===null)return ki(e);let n=Ci.get(e);if(n&&n.sig.length===t.length&&n.sig.every((r,i)=>r===t[i]))return Ge("node-hit"),n.node;Ge(n?"node-resig":"node-new");let s=ki(e);return n&&td(n.node,s),Ci.set(e,{node:s,sig:t}),s}function sd(e,t){let n=new Set(t);for(let s=e.childNodes.length-1;s>=0;s--){let r=e.childNodes[s];n.has(r)||e.removeChild(r)}for(let s=0;s<t.length;s++){let r=t[s],i=e.childNodes[s]??null;i!==r&&e.insertBefore(r,i)}for(;e.childNodes.length>t.length;)e.removeChild(e.lastChild)}function rd(e,t){let n=t.body,s=!e.renderAllHistory&&e.log.length>Ts,r=s?e.log.length-Ts:0;if(s){let c=Math.max(0,e.log.length-Ts*2);for(let u=r;u>=c;u--){let d=e.log[u];if(d&&d.kind==="stream"&&d.role==="user"){r=u;break}}}let i=s?e.log.slice(r):e.log,a=[];if(e.historyIsPartial&&!s&&a.push(l("button",{class:"show-earlier",...T(()=>pi(e))},"Load full history")),s){let c=r;a.push(l("button",{class:"show-earlier",...T(()=>{e.renderAllHistory=!0,y()})},`Show ${c} earlier message${c===1?"":"s"}`))}for(let c of i)o.hideThoughts&&c.kind==="stream"&&c.role==="thought"||a.push(nd(c));if(a.push(t.jump),sd(n,a),e.pinAfterReplaySwap){e.pinAfterReplaySwap=!1,ju(t);return}Mt(t)}function vn(e){let t=o.current?.scrollRestoreMessageId;if(!t)return!1;let n=e.querySelector(`[data-message-id="${CSS.escape(t)}"]`);return n?(n.scrollIntoView({block:"start"}),o.current.scrollRestoreMessageId=void 0,!0):!1}function ji(e,t){if(t.view!=="chat"||!t.current||t.banner||t.modal||t.current.fileOverlay)return!1;let n=Ae.get(t.current);if(!n)return!1;if(J()){if(e.childNodes.length!==1)return!1;let s=e.firstElementChild;if(!s||!s.classList.contains("split"))return!1;let r=s.querySelector(":scope > .rail"),i=s.querySelector(":scope > .split-detail");return!r||!i||i.childNodes.length!==1||i.firstChild!==n.root?!1:(pu(r),Tn(t.current),vn(n.body),!0)}return e.childNodes.length!==1||e.firstChild!==n.root?!1:(Tn(t.current),vn(n.body),!0)}function Ji(e){let t=Ae.get(e);t&&Mt(t)}function St(e){let t=Ae.get(e);t&&(t.stickToBottom=!0,Mt(t))}function An(e,t){let n=Array.from(e.querySelectorAll(".msg.user"));if(n.length===0){t.textContent="";return}let s=e.getBoundingClientRect().top,r=1,i=-1;for(let a=n.length-1;a>=0;a--)if(n[a].getBoundingClientRect().top<s+r){i=a;break}t.textContent=i===-1?"Start":`Turn ${i+1} of ${n.length}`}function Sn(e){let t=document.querySelector(".chat-body");if(!t)return;let n=Array.from(t.querySelectorAll(".msg.user"));if(n.length===0){let u=t.clientHeight*.9;t.scrollBy({top:e==="next"?u:-u,behavior:"smooth"});return}let s=o.current?Ae.get(o.current):void 0,r=t.getBoundingClientRect().top,i=1,a=null,c=-1;if(e==="prev"){for(let u=n.length-1;u>=0;u--)if(n[u].getBoundingClientRect().top<r-i){a=n[u],c=u;break}a?(a.scrollIntoView({block:"start",behavior:"smooth"}),s&&(s.turnToast.textContent=`Turn ${c+1} of ${n.length}`)):(t.scrollTo({top:0,behavior:"smooth"}),s&&(s.turnToast.textContent="Start"));return}for(let u=0;u<n.length;u++)if(n[u].getBoundingClientRect().top>r+i){a=n[u],c=u;break}a?(a.scrollIntoView({block:"start",behavior:"smooth"}),s&&(s.turnToast.textContent=`Turn ${c+1} of ${n.length}`)):t.scrollTo({top:t.scrollHeight,behavior:"smooth"})}function Tn(e){let t=o.sessions.find(b=>b.sessionId===e.sessionId),n=t?.title||e.title||xs(e.sessionId),s=t?.cwd||e.cwd,r=()=>{e.headerExpanded=!e.headerExpanded,y()},i=l("div",{class:"chat-header"},l("div",{class:"chat-title-row"},J()?null:l("button",{class:"chat-back",title:"Back to session list",...T(()=>Fe())},"\u2190"),l("div",{class:"chat-title clickable",title:"Click for session details",...T(r)},n)),l("div",{class:"chat-header-row"},!e.ready&&e.cold?l("span",{class:"pill cold clickable",title:"Session closed cold \u2014 sending a prompt will resurrect it",...T(r)},"cold"):e.ready?e.inTurn?l("span",{class:"pill working clickable",title:"Agent is working",...T(r)},l("span",{class:"dot"},"\u25CF"),"thinking"):e.armedTasks&&e.armedTasks>0?l("span",{class:"pill waiting clickable",title:e.armedSince?`Agent has a background task running (armed ${Math.max(1,Math.floor((Date.now()-e.armedSince)/6e4))}m ago). It may resume on its own.`:"Agent has a background task running. It may resume on its own.",...T(r)},l("span",{class:"dot"},"\u25CF"),"waiting"):l("span",{class:"pill ready clickable",title:"Ready for a prompt",...T(r)},l("span",{class:"dot"},"\u25CF"),"ready"):l("span",{class:"pill clickable",title:"Click for session details",...T(r)},"connecting\u2026"),t?.workspace?l("span",{class:"pill clickable",title:`In workspace "${t.workspace.label}" (source: ${In(t.workspace.sourceCwd)})`,...T(r)},"\u2387 "+t.workspace.label):null,e.model?l("span",{class:"pill clickable",title:"Model (click to change)",...T(Qu)},e.model):null,e.contextUsed!=null&&e.contextSize?l("span",{class:e.compactionPhase?"pill clickable compacting":"pill clickable",title:e.compactionPhase?e.compactionPhase==="deferred"?"Compaction queued \u2014 will run once the session is idle.":"Compacting\u2026":`${e.contextUsed.toLocaleString()} / ${e.contextSize.toLocaleString()} context tokens \u2014 click to compact`,...T(()=>Fu(e))},e.compactionPhase?e.compactionPhase==="deferred"?"\u23F3 queued":"\u25D0 compacting\u2026":`${Si(e.contextUsed)}/${Si(e.contextSize)}`):null,Ti(e.cost)?l("span",{class:"pill",title:"Session cost so far"},Ti(e.cost)):null,J()?null:l("button",{...T(Wi),title:"Options"},"\u2699"),l("button",{...T(Ed),title:"Files"},"\u{1F4C1}"),l("button",{title:"Export this session as a *.hydra bundle",...T(()=>$u(e.sessionId))},"\u2B07"),l("div",{class:"info clickable",title:"Click for session details",...T(r)}))),a=e.headerExpanded?l("div",{class:"chat-details"},ws("title",n),ws("session",he(e.sessionId)),ws("directory",s||"?"),_u(e.sessionId,t?.priority),vu(t?.workspace),...e.configOptions.map(Lu)):null,c=Ju(e),u=b=>{b.style.height="auto",b.style.height=b.scrollHeight+"px"},d=(b,E)=>{b.value=E,e.composerValue=E,st(e.sessionId,E),u(b),b.setSelectionRange(E.length,E.length)},f=b=>{if(b.isComposing)return;if(b.key==="Escape"&&J()&&!o.modal){b.preventDefault(),b.stopPropagation(),Ns();return}let E=b.target;if(b.key==="ArrowUp"&&!b.shiftKey&&!b.altKey&&!b.ctrlKey&&!b.metaKey&&E.selectionStart===0&&E.selectionEnd===0&&e.history.length>0){let x=e.historyIndex===null?0:Math.min(e.history.length-1,e.historyIndex+1);e.historyIndex===null&&(e.historyDraft=e.composerValue),e.historyIndex=x,b.preventDefault(),d(E,e.history[x]);return}if(b.key==="ArrowDown"&&!b.shiftKey&&!b.altKey&&!b.ctrlKey&&!b.metaKey&&E.selectionStart===E.value.length&&E.selectionEnd===E.value.length&&e.historyIndex!==null){if(b.preventDefault(),e.historyIndex>0)e.historyIndex-=1,d(E,e.history[e.historyIndex]);else{let x=e.historyDraft??"";e.historyIndex=null,e.historyDraft=null,d(E,x)}return}if(b.key==="Enter"&&!b.shiftKey){if(b.altKey||b.ctrlKey||b.metaKey){b.preventDefault(),Td(E,`
655
- `);return}b.preventDefault(),It()}},p=()=>l("textarea",{"data-focus-key":"composer",placeholder:e.ready?"Message\u2026":e.cold?"Message\u2026 (wakes the session)":"Connecting\u2026",rows:"1",autocapitalize:"off",onkeydown:f,onpaste:b=>{let E=b.clipboardData?.items;if(!E)return;let x=[];for(let C of E){if(C.kind!=="file"||!C.type.startsWith("image/"))continue;let R=C.getAsFile();R&&x.push(R)}x.length!==0&&(b.preventDefault(),cu(e,x))},oninput:b=>{na();let E=b.target;e.composerValue=E.value,st(e.sessionId,E.value),e.historyIndex!==null&&(e.historyIndex=null,e.historyDraft=null),u(E);let x=E.value.trim().length>0||e.attachments.length>0,C=E.closest(".composer")?.querySelectorAll(".content-gated")??[];for(let R of C)R.classList.toggle("empty",!x)}},e.composerValue),g=c.composerTextarea;if(g||(g=p(),c.composerTextarea=g),g.placeholder=e.ready?"Message\u2026":e.cold?"Message\u2026 (wakes the session)":"Connecting\u2026",g.value!==e.composerValue){g.value=e.composerValue;let b=g;queueMicrotask(()=>u(b))}if(e.composerValue&&e.composerValue.length>0){let b=g;queueMicrotask(()=>u(b))}!e.composerAutoFocused&&er()&&(e.composerAutoFocused=!0,queueMicrotask(()=>g.focus()));let m=e.composerValue.trim().length>0||e.attachments.length>0,_=[];e.inTurn?(e.daemonSupportsAmend&&e.currentHeadMessageId!==void 0&&_.push(l("button",{class:`content-gated${m?"":" empty"}`,...T(Xo),title:"Cancel the current turn and replace its prompt"},"Amend")),_.push(l("button",{class:`primary content-gated${m?"":" empty"}`,...T(It),title:"Queue this prompt to run after the current turn"},"Enqueue"))):_.push(l("button",{class:`primary content-gated${m?"":" empty"}`,...T(It)},"Send"));let w=l("div",{class:"composer"},lu(e),g,l("div",{class:"composer-buttons"},l("button",{class:"stop",disabled:!e.inTurn&&!e.promptQueue.some(b=>b.status==="queued"||b.status==="pending"),...T(jo),title:"Cancel current turn"},"Stop"),..._));return c.headerSlot.replaceChildren(i),a!==null&&document.activeElement!==null&&c.detailsSlot.contains(document.activeElement)||(a?c.detailsSlot.replaceChildren(a):c.detailsSlot.replaceChildren()),c.armedSlot.replaceChildren(Vu(e)),c.composerSlot.replaceChildren(w),rd(e,c),c.root}var xi=new WeakMap;function ea(e,t){let n=xi.get(e);if(n&&n.text===t)return n.html;let s=bo(t);return xi.set(e,{text:t,html:s}),s}function ki(e){if(e.kind==="stream"){let t=e.role==="thought",n=e.role==="user"?"msg user":t?"msg system":"msg agent",s=t&&Ct.has(e),r=l("div",{class:s?n+" collapsed":n,"data-message-id":e.messageId});t&&r.addEventListener("click",()=>{if(!!Ct.has(e)){Ct.delete(e),y();return}let c=document.querySelector(".chat-body"),u=c?.getBoundingClientRect(),d=r.getBoundingClientRect(),f=d.top-(u?.top??0)+(c?.scrollTop??0),g=!u||d.top>=u.top&&d.top<u.bottom?c?.scrollTop??0:f;Ct.add(e),y(),requestAnimationFrame(()=>{let m=document.querySelector(".chat-body");m&&(m.scrollTop=g)})});let i=e.queueEntry;if(i&&i.amendedByMessageId!==void 0&&i.status==="amended"&&r.classList.add("amended-target"),i&&(i.status==="queued"||i.status==="pending"||i.status==="cancelled"||i.status==="editing"||i.status==="amended"||i.status==="offline")&&r.appendChild(dd(i)),i&&i.amendsMessageId!==void 0&&r.appendChild(l("span",{class:"amend-badge",title:"Merged amend \u2014 replaces the previous, cancelled prompt"},"+")),i&&i.status==="editing")r.classList.add("bubble-editing"),r.appendChild(fd(i,a=>{e.text=a}));else{e.attachments&&e.attachments.length>0&&r.appendChild(l("div",{class:"attachment-thumbs"},...e.attachments.map(c=>l("img",{class:"attachment-thumb",src:Oi(c)}))));let a=l("div",{class:e.synthetic?"body raw":"body"});e.synthetic?a.textContent=e.text:a.innerHTML=ea(e,e.text),i&&i.status==="cancelled"&&(a.style.textDecoration="line-through",a.style.opacity="0.6"),r.appendChild(a)}return r}if(e.kind==="system")return l("div",{class:"msg system"},e.text);if(e.kind==="error")return l("div",{class:"msg error"},e.text);if(e.kind==="spinner")return gd(e.spinner);if(e.kind==="turn-stamp")return pd(e);if(e.kind==="perm"){if(!o.current)return document.createTextNode("");let t=o.current.pendingPermissions.get(e.toolCallId);return t?hd(t):document.createTextNode("")}return e.kind==="plan"?bd(e.entries):e.kind==="exit-plan-mode"?ld(e):e.kind==="edit-diff"?cd(e):document.createTextNode("")}function od(e){return e==="+"?"diff-line hljs-addition":e==="-"?"diff-line hljs-deletion":e==="gap"?"diff-line diff-gap":"diff-line"}function id(e){return e==="+"?"+ ":e==="-"?"- ":e==="gap"?"":" "}var Ni=new WeakMap;function ad(e){let t=Ni.get(e);return t||(t={counts:wo(e)},Ni.set(e,t)),t}function cd(e){let t=ad(e.diff),n=t.counts,s=e.diff.path?In(e.diff.path):"file",r=[];n.added>0&&r.push(l("span",{class:"add"},`+${n.added}`)),n.removed>0&&r.push(l("span",{class:"del"},`-${n.removed}`));let i=l("div",{class:"head",...T(()=>{e.expanded=!e.expanded,y()})},l("span",null,e.expanded?"\u25BE":"\u25B8"),l("span",{class:"title"},`Edited ${s}`),r.length>0?l("span",{class:"kind edit-summary"},r):null),a=l("div",{class:e.expanded?"toolcard open":"toolcard"},i);if(e.expanded){let c=t.lines??(t.lines=vo(e.diff));a.appendChild(l("div",{class:"body"},l("pre",null,l("code",{class:"diff-body"},c.map(u=>l("div",{class:od(u.op)},id(u.op)+u.text))))))}return a}function ld(e){let t=l("div",{class:"msg agent plan-markdown"});t.appendChild(l("div",{class:"plan-header"},"\u{1F4CB} Plan"));let n=l("div",{class:"body"});n.innerHTML=ea(e,e.plan),t.appendChild(n);let s=ud(e.status);return s!==null&&t.appendChild(s),t}function ud(e){if(e===void 0)return null;switch(e){case"completed":case"succeeded":case"ok":return l("div",{class:"plan-status plan-status-ok"},"\u2713 Approved");case"failed":case"error":case"rejected":return l("div",{class:"plan-status plan-status-fail"},"\u2717 Rejected");case"cancelled":return l("div",{class:"plan-status plan-status-cancelled"},"\u229D Cancelled");case"pending":case"in_progress":case"running":case"updated":return l("div",{class:"plan-status plan-status-pending"},"awaiting approval\u2026");default:return null}}function dd(e){if(e.status==="queued"||e.status==="pending"){let t=e.status==="pending"?"sending\u2026":`queued \xB7 ${Math.max(1,e.aheadAtEnqueue)} ahead`+(e.held?" \xB7 held: agent resumed":""),n=e.status==="queued"&&e.messageId!==void 0&&o.current!==null&&o.current.daemonSupportsAmend&&o.current.currentHeadMessageId!==void 0&&o.current.inTurn;return l("div",{class:"queue-chip queue-queued"},l("span",null,t),n?l("button",{class:"queue-edit",...T(()=>Go(e)),title:"Send now \u2014 amends the running turn instead of waiting"},l("span",{class:"queue-btn-glyph"},"+")):null,l("button",{class:"queue-edit",...T(()=>{e.status="editing",y()}),title:"Edit before sending"},l("span",{class:"queue-btn-glyph"},"\u270E")),l("button",{class:"queue-cancel",...T(()=>dn(e)),title:"Cancel before sending"},l("span",{class:"queue-btn-glyph"},"\xD7")))}return e.status==="editing"?l("div",{class:"queue-chip queue-editing"},l("span",null,"editing \u2014 Save or Cancel below")):e.status==="processing"?l("div",{class:"queue-chip queue-processing"},l("span",{class:"dot"}),l("span",null,"processing")):e.status==="cancelled"?l("div",{class:"queue-chip queue-cancelled"},l("span",null,"cancelled")):e.status==="amended"?l("div",{class:"queue-chip queue-amended"},l("span",null,"amended \u2014 merged into the next prompt")):e.status==="offline"?l("div",{class:"queue-chip queue-offline"},l("span",null,"pending"),l("button",{class:"queue-edit",...T(()=>{e.editReturnStatus="offline",e.status="editing",y()}),title:"Edit before sending"},l("span",{class:"queue-btn-glyph"},"\u270E")),l("button",{class:"queue-cancel",...T(()=>dn(e)),title:"Discard, this was never sent"},l("span",{class:"queue-btn-glyph"},"\xD7"))):document.createTextNode("")}function fd(e,t){let n=l("textarea",{class:"queue-edit-area",rows:"1",autocapitalize:"off"});n.value=e.text;let s=()=>{n.style.height="auto",n.style.height=`${n.scrollHeight}px`};n.addEventListener("input",s);let r=()=>{e.status=e.editReturnStatus??"queued",e.editReturnStatus=void 0},i=()=>{let c=n.value;e.text=c,t(c),r(),Yo(e,c),y()},a=()=>{r(),y()};return n.addEventListener("keydown",c=>{c.key==="Enter"&&!c.shiftKey?(c.preventDefault(),i()):c.key==="Escape"&&(c.preventDefault(),a())}),queueMicrotask(()=>{s(),n.focus(),n.setSelectionRange(n.value.length,n.value.length)}),l("div",{class:"queue-editor"},n,l("div",{class:"queue-editor-actions"},l("button",{class:"ghost",...T(a)},"Cancel"),l("button",{class:"primary",...T(i)},"Save")))}function wn(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function pd(e){let t=e.stopReason!==void 0&&e.stopReason!=="end_turn",n=t?`stopped (${e.stopReason}) \xB7 ${wn(e.elapsedMs)}`:e.toolCount>0?`${e.toolCount} tool${e.toolCount===1?"":"s"} \xB7 took ${wn(e.elapsedMs)}`:`thought \xB7 ${wn(e.elapsedMs)}`;return l("div",{class:t?"turn-stamp bad":"turn-stamp"},n)}function gd(e){let t=l("button",{class:"queue-cancel",...T(()=>Zo()),title:"Cancel this turn"},l("span",{class:"queue-btn-glyph"},"\xD7")),n=wn(Date.now()-e.startedAt);if(!e.expanded)return l("div",{class:"spinner",...T(()=>{e.expanded=!0,y()})},l("div",{class:"head"},l("span",{class:"dot"}),l("span",null,e.sending?"sending\u2026":e.toolCallIds.length===0?`thinking \xB7 ${n}`:`working \u2014 ${e.toolCallIds.length} tool call${e.toolCallIds.length===1?"":"s"} \xB7 ${n}`),t));let s=e.toolCallIds.map(r=>{let i=o.current?.toolCalls.get(r);if(!i)return null;let a=i.status==="completed"||i.status==="success"?"\u2705":i.status==="failed"||i.status==="error"?"\u274C":"\u25B6";return l("li",null,l("span",{class:"icon"},a),document.createTextNode(" "+i.title))});return l("div",{class:"spinner expanded",...T(()=>{e.expanded=!1,y()})},l("div",{class:"head"},l("span",{class:"dot"}),l("span",null,e.sending?"sending\u2026":`working \xB7 ${n}`),t),l("ul",null,s))}function md(e){let t=f=>typeof f=="string"&&f.length>0?f:void 0,n=[],s=(f,p)=>l("div",{class:"detail"},l("span",{class:"k"},f),l("code",null,p)),r=t(e.kind);r&&n.push(s("kind",r));let i=new Set,a=[],c=f=>{let p=t(f);p&&!i.has(p)&&(i.add(p),a.push(p))},u=e.locations;if(Array.isArray(u))for(let f of u)f&&typeof f=="object"&&c(f.path);let d=e.rawInput&&typeof e.rawInput=="object"?e.rawInput:void 0;d&&(c(d.file_path),c(d.filePath),c(d.path));for(let f of a)n.push(s("path",f));if(d){let f=t(d.command);f&&n.push(s("command",f));let p=t(d.url);p&&n.push(s("url",p));let g=t(d.description);g&&n.push(l("div",{class:"detail note"},g))}return n}function hd(e){let t=e.toolCall||{};return l("div",{class:"perm"},l("div",{class:"title"},"\u{1F512} Permission requested"),l("div",{class:"desc"},t.title||t.name||"tool call"),md(t),l("div",{class:"opts"},...e.options.map(n=>l("button",{class:n.kind?.startsWith("allow")?"primary":n.kind?.startsWith("reject")?"danger":"",...T(()=>ds(e.toolCallId,n.optionId))},n.name||n.optionId)),l("button",{...T(()=>ds(e.toolCallId,"__cancel__"))},"Cancel")))}function bd(e){return Array.isArray(e)?l("div",{class:"msg agent"},l("div",{class:"body"},l("strong",null,"Plan")),l("ul",null,...e.map(t=>l("li",null,`${t.status==="completed"?"\u2713":t.status==="in_progress"?"\u25B8":"\xB7"} ${t.content||t.title||""}`)))):document.createTextNode("")}function Ed(){o.current&&(o.current.fileOverlay={path:"",entries:[],preview:null,err:null},y(),xt(""))}async function xt(e){if(o.current)try{let t=await ne("/api/files/list",{method:"POST",body:JSON.stringify({sessionId:o.current.sessionId,path:e})});o.current.fileOverlay={path:t.path,entries:t.entries??[],preview:null,err:null},y()}catch(t){o.current.fileOverlay={path:e,entries:[],preview:null,err:t.message},y()}}async function yd(e){if(o.current)try{let t=await ne("/api/files/read",{method:"POST",body:JSON.stringify({sessionId:o.current.sessionId,path:e})}),n=o.current.fileOverlay;o.current.fileOverlay={path:n.path,entries:n.entries,preview:{path:e,content:t.content},err:null},y()}catch(t){o.current.fileOverlay&&(o.current.fileOverlay={...o.current.fileOverlay,err:t.message}),y()}}function Ri(){o.current&&(o.current.fileOverlay=null,y())}function _d(e){if(!o.current?.fileOverlay)return;let t=o.current.fileOverlay,n=t.path?`${t.path}/${e.name}`:e.name;e.kind==="dir"?xt(n):e.kind==="file"&&yd(n)}function wd(e){let t=e?e.split("/").filter(Boolean):[],n=[l("span",{class:"crumb",...T(()=>xt(""))},".")],s="";for(let r of t){s=s?`${s}/${r}`:r;let i=s;n.push(document.createTextNode(" / ")),n.push(l("span",{class:"crumb",...T(()=>xt(i))},r))}return l("div",{class:"crumbs"},n)}function vd(e,t){if(!o.current)return;let n=`${e}:${t}`,s=o.current.composerValue;o.current.composerValue=s?`${s} ${n}`:n,st(o.current.sessionId,o.current.composerValue),y()}function Sd(){o.current?.fileOverlay&&(o.current.fileOverlay.preview=null,y())}function ta(e){let t=e.fileOverlay;if(!t)return document.createTextNode("");let n;if(t.preview){let{path:s,content:r}=t.preview,i=po(r,s)??ce(r),a=r.split(`
656
- `).length,c=l("div",{class:"code-gutter"});for(let u=1;u<=a;u++){let d=u;c.appendChild(l("div",{class:"ln",...T(()=>vd(s,d))},String(d)))}n=l("div",{class:"preview"},l("div",{class:"crumbs"},l("span",{class:"crumb",...T(()=>Sd())},"\u2190 back to listing"),document.createTextNode(` ${s}`)),l("div",{class:"code-view"},c,l("pre",{},l("code",{class:"hljs",html:i}))))}else n=l("div",{class:"body"},t.err?l("div",{class:"msg error"},t.err):null,t.path?l("div",{class:"entry",...T(()=>xt(t.path.split("/").slice(0,-1).join("/")))},l("span",{class:"icon"},"\u25B8"),l("span",{class:"name"},".."),l("span",{class:"size"},"")):null,...t.entries.map(s=>l("div",{class:"entry",...T(()=>_d(s))},l("span",{class:"icon"},s.kind==="dir"?"\u25B8":"\xB7"),l("span",{class:"name"},s.name),l("span",{class:"size"},s.kind==="file"?`${s.size}b`:""))));return l("div",{class:"modal-bg",...T(s=>{s.target.classList.contains("modal-bg")&&Ri()})},l("div",{class:"modal file-modal"},l("div",{class:"topbar",style:"border-bottom:1px solid var(--border)"},l("span",{class:"title"},"Files"),l("span",{class:"pill"},e.cwd),l("span",{class:"spacer"}),l("button",{...T(Ri)},"\xD7")),wd(t.path),l("div",{class:"files"},n)))}function Td(e,t){e.focus();let n=!1;if(typeof document.execCommand=="function")try{n=document.execCommand("insertText",!1,t)}catch{n=!1}if(!n){let s=e.selectionStart??e.value.length,r=e.selectionEnd??e.value.length,i=e.value.slice(0,s),a=e.value.slice(r);e.value=i+t+a;let c=s+t.length;e.setSelectionRange(c,c),e.dispatchEvent(new Event("input",{bubbles:!0}))}}var Ps=!1,Id=100,Hs=0,Me=!1,Ee=!1,ut=!1,Cn=!1,lt;function ui(){lt!==void 0&&clearTimeout(lt),Cn=!0,lt=setTimeout(()=>fs(),4e3)}function fs(){lt!==void 0&&(clearTimeout(lt),lt=void 0),Cn&&(Cn=!1,Ee=!1,at())}function ia(){ut=!0}function Fs(){ut=!1,Ee&&(Ee=!1,y())}document.addEventListener("pointerdown",()=>{Me=!0},!0);document.addEventListener("pointerup",e=>{if(!Me||(Me=!1,$e!==void 0&&(clearTimeout($e),$e=void 0),!Ee)||ut)return;if(Ee=!1,Ye()){Mn=!0;return}let n=e.target?.tagName;if(n==="TEXTAREA"||n==="INPUT"||n==="SELECT"){setTimeout(y,300);return}y()},!0);var Mn=!1;document.addEventListener("selectionchange",()=>{!Mn||Ye()||(Mn=!1,y())});document.addEventListener("pointercancel",()=>{Me=!1,Ee&&!ut&&(Ee=!1,y())},!0);var aa=250,ca=0;function na(){ca=performance.now()}function $s(){let e=document.activeElement;return!(e instanceof HTMLTextAreaElement)&&!(e instanceof HTMLInputElement)?!1:performance.now()-ca<aa}var Bs=!1,Ad=700,$e;function at(){Hs=0,y()}function y(){if(Ps)return;Ps=!0;let e=performance.now()-Hs,t=Math.max(0,Id-e),n=()=>{if(Ps=!1,Me||ut||Cn){Ee=!0,Me&&($e!==void 0&&clearTimeout($e),$e=setTimeout(()=>{$e=void 0,Me&&(Me=!1,Ee&&!ut&&(Ee=!1,y()))},Ad));return}if($s()){Bs=!0,setTimeout(()=>{Bs&&(Bs=!1,y())},aa);return}if(Ye()){Mn=!0;return}Hs=performance.now(),Se("render",Cd)};t>0?setTimeout(()=>requestAnimationFrame(n),t):requestAnimationFrame(n)}function Cd(){let e=document.getElementById("app");if(!e)return;let t=document.activeElement,n=null,s=null,r=null;if(t&&t!==document.body&&t.dataset&&t.dataset.focusKey&&(n=t.dataset.focusKey,"selectionStart"in t))try{s=t.selectionStart,r=t.selectionEnd}catch{}let i=()=>{if(!n)return;let x=e.querySelector(`[data-focus-key="${CSS.escape(n)}"]`);if(!x)return;x.focus();let C=x;if(s!==null&&typeof C.setSelectionRange=="function")try{C.setSelectionRange(s,r)}catch{}};if(ji(e,o)){Ge("patch"),i();return}Ge("teardown");let a=e.querySelector(".chat-body"),c=a?a.scrollTop:null,u=e.querySelector(".list"),d=u?u.scrollTop:null,f=u?Rs(u):null,p=e.querySelector(".files .body"),g=p?p.scrollTop:null,m=e.querySelector(".files .preview"),_=m?m.scrollTop:null;e.replaceChildren(),Pi(e,o);let w=e.querySelector(".chat-body");if(w){!vn(w)&&c!==null&&(w.scrollTop=c),o.current&&Ji(o.current);let x=w.querySelector(".jump-to-latest");if(x){let R=w.scrollHeight-w.scrollTop-w.clientHeight<50;x.classList.toggle("visible",!R)}let C=w.querySelector(".turn-toast");C&&An(w,C)}let S=e.querySelector(".list");S&&(f?Os(S,f):d!==null&&(S.scrollTop=d));let b=e.querySelector(".files .body");b&&g!==null&&(b.scrollTop=g);let E=e.querySelector(".files .preview");E&&_!==null&&(E.scrollTop=_),i()}var la="hydra-acp-browser:filters",ua=["groupBy","showCold","hostFilter","hideThoughts","notifyOnTurnEnd","theme","fontScale","railWidth","lastSessionId"];function Md(){try{let e=localStorage.getItem(la);return e?JSON.parse(e):{}}catch{return{}}}function xd(){try{let e={};for(let t of ua)e[t]=o[t];localStorage.setItem(la,JSON.stringify(e))}catch{}}var o={view:"list",sessions:[],agents:[],defaultCwd:null,groupBy:"recent",showCold:!0,sessionSearch:"",fontScale:1,railWidth:null,hostFilter:"__local",listHighlightedSessionId:null,hideThoughts:!1,notifyOnTurnEnd:!1,theme:"dark",banner:null,modal:null,current:null,lastSessionId:null,...Md()},kd=["sessions","groupBy","showCold","hostFilter","listHighlightedSessionId","sessionSearch"],xn=!0;function da(){xn=!0}function sa(){return xn}function Ds(){xn=!1}function k(e){let t=!1,n=!1;for(let s of Object.keys(e)){let r=e[s];Us(o[s],r)||(o[s]=r,t=!0,ua.includes(s)&&(n=!0),kd.includes(s)&&(xn=!0))}n&&xd(),t&&y()}function Us(e,t){return e===t?!0:e===null||t===null||typeof e!=typeof t||typeof e!="object"?!1:JSON.stringify(e)===JSON.stringify(t)}function fa(e,t,n){if(!n)return t.sessions;let s=new Map(e.map(r=>[r.sessionId,r]));for(let r of s.values())r.status==="warm"&&s.delete(r.sessionId);for(let r of t.removed)s.delete(r);for(let r of t.sessions)s.set(r.sessionId,r);return[...s.values()]}var Nd="hydra-acp-session-cache";var ft="cache",ma="sessions";function Rd(e){let t=[];for(let n of e)n.status!=="warm"&&t.push({sessionId:n.sessionId,cwd:n.cwd,agentId:n.agentId,currentModel:n.currentModel,title:n.title,status:n.status,busy:n.busy,awaitingInput:n.awaitingInput,priority:n.priority,importedFromMachine:n.importedFromMachine,upstreamSessionId:n.upstreamSessionId,armedTasks:n.armedTasks,updatedAt:n.updatedAt});return t}var kn=null;function ha(){return kn||(kn=new Promise(e=>{if(!("indexedDB"in window)){e(null);return}let t;try{t=indexedDB.open(Nd,1)}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ft)||t.result.createObjectStore(ft,{keyPath:"key"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)}),kn)}async function ba(){let e=await ha();return e?new Promise(t=>{let n;try{n=e.transaction(ft,"readonly")}catch{t(null);return}let s=n.objectStore(ft).get(ma);s.onsuccess=()=>{let r=s.result;if(!r||!Array.isArray(r.sessions)||typeof r.cursor!="number"){t(null);return}t({sessions:r.sessions,cursor:r.cursor})},s.onerror=()=>t(null)}):null}var qs,dt,pa=Promise.resolve();function Ea(e,t){qs={sessions:e,cursor:t},dt===void 0&&(dt=setTimeout(()=>{dt=void 0,ya()},2e3))}function ga(){dt!==void 0&&(clearTimeout(dt),dt=void 0),ya()}function ya(){pa=pa.then(Od).catch(()=>{})}async function Od(){let e=qs;if(!e)return;qs=void 0;let t=await ha();if(!t)return;let n={key:ma,sessions:Rd(e.sessions),cursor:e.cursor};return new Promise(s=>{let r;try{r=t.transaction(ft,"readwrite")}catch{s();return}r.objectStore(ft).put(n),r.oncomplete=()=>s(),r.onerror=()=>s()})}typeof window<"u"&&typeof document<"u"&&(window.addEventListener("pagehide",ga),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ga()}));function Ld(){let e=window.getSelection();return!e||e.isCollapsed?!1:e.toString().length>0}async function ne(e,t){let{timeoutMs:n,...s}=t??{},r=n!==void 0?new AbortController:void 0,i=r!==void 0?setTimeout(()=>r.abort(),n):void 0,a;try{a=await fetch(e,{credentials:"same-origin",headers:{"Content-Type":"application/json"},...r?{signal:r.signal}:{},...s})}catch(c){throw r?.signal.aborted?new Error("timed out \u2014 it may still have completed; check the session list"):c}finally{i!==void 0&&clearTimeout(i)}if(!a.ok){let c=`${a.status} ${a.statusText}`;try{let u=await a.json();u&&u.error&&(c=u.error)}catch{}throw new Error(c)}return a.status===204?null:await a.json()}var Ks=null,kt;async function _a(){let e=await ba();e&&(o.sessions=e.sessions,kt=e.cursor||void 0)}async function Ce(){if(!$s()){if(o.view==="chat"&&o.current&&!J()){await Dd(o.current.sessionId);return}await Pd()}}function wa(e){e.status==="warm"&&o.current&&o.current.sessionId===e.sessionId&&o.current.cold&&bn()}async function Dd(e){try{let t=await ne(`/api/sessions/${encodeURIComponent(e)}`),n=o.sessions.findIndex(r=>r.sessionId===e);if(n>=0?o.sessions[n]=t:o.sessions.push(t),!o.current||o.current.sessionId!==e)return;wa(t);let s=`${t.title}|${t.cwd}|${t.agentId}|${t.currentModel}|${t.workspace?.label}|${t.workspace?.vcs?.branch}|${t.workspace?.clean}`;s!==o.current._lastMetaFp&&(o.current._lastMetaFp=s,y())}catch{}}async function Pd(){try{let e=kt!==void 0,t=e?`/api/sessions?since=${kt}`:"/api/sessions",n=await ne(t),s={sessions:n.sessions??[],removed:n.removed??[],cursor:n.cursor??0},r=fa(o.sessions,s,e);kt=s.cursor,(s.removed.length>0||s.sessions.some(c=>c.status==="cold"))&&Ea(r,kt);let i=o.banner!==null,a=!Us(o.sessions,r);if(o.sessions=r,o.banner=null,o.current){let c=r.find(u=>u.sessionId===o.current.sessionId);c&&wa(c)}if(a&&da(),!a&&!i||!i&&Ld()||!i&&o.modal)return;y()}catch(e){k({banner:{kind:"bad",text:"session list failed: "+e.message}})}}function va(){Ks&&clearInterval(Ks),Ce(),Ks=setInterval(()=>{Ce()},2e3)}async function Sa(){try{let e=await ne("/api/agents");k({agents:e.agents??[]})}catch(e){k({banner:{kind:"warn",text:"agents unavailable: "+e.message}})}}async function Ta(){try{let e=await ne("/api/config");k({defaultCwd:e.defaultCwd??null})}catch{}}async function ra(e,t={}){return ne("/api/sessions/import",{method:"POST",body:JSON.stringify({bundle:e,replace:t.replace===!0})})}async function oa(e){let t=await fetch("/api/sessions/import",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({bundle:e})});if(t.ok)return{ok:!0,result:await t.json()};let n,s=`${t.status} ${t.statusText}`;try{let r=await t.json();r.existingSessionId&&(n=r.existingSessionId),r.error&&(s=r.error)}catch{}return{ok:!1,status:t.status,message:s,existingSessionId:n}}var Ia=70,Bd=110,Nn=null,Rn=null,gt=!1,Ue=!1,pt=null;function Ws(){return pt||(pt=document.createElement("div"),pt.className="pull-refresh",document.body.appendChild(pt),pt)}function Hd(e){let t=Ws(),n=Math.max(0,Math.min(e,Bd));Ue=n>=Ia,t.style.opacity=n>0?String(Math.min(n/Ia,1)):"0",t.style.transform=`translate(-50%, ${n>0?n-32:-48}px)`,t.textContent=Ue?"\u2191 Release to refresh":"\u2193 Pull to refresh"}function zs(){let e=Ws();e.style.opacity="0",e.style.transform="translate(-50%, -48px)"}function Ca(){return document.querySelector(".list")}function Fd(e){if(gt=!1,Ue=!1,o.view!=="list")return;let t=Ca(),n=e.touches[0];!t||!n||t.scrollTop>0||!t.contains(n.target)||(Nn=n.clientX,Rn=n.clientY,gt=!0)}function $d(e){if(!gt||Nn===null||Rn===null)return;let t=Ca(),n=e.touches[0];if(!t||!n)return;let s=n.clientY-Rn,r=n.clientX-Nn;if(Math.abs(r)>Math.abs(s)){zs(),gt=!1,Ue=!1;return}if(s<=0||t.scrollTop>0){zs(),Ue=!1;return}e.preventDefault(),Hd(s)}function Aa(){if(gt&&Ue){let e=Ws();e.textContent="Refreshing\u2026",location.reload()}else zs();gt=!1,Ue=!1,Nn=null,Rn=null}function Ma(){document.addEventListener("touchstart",Fd,{passive:!0}),document.addEventListener("touchmove",$d,{passive:!1}),document.addEventListener("touchend",Aa,{passive:!0}),document.addEventListener("touchcancel",Aa,{passive:!0})}var Gs=80,xa=12,Ys=.25,xe=220;function Ud(e){let t=e instanceof Element?e:null;for(;t&&t!==document.body;){if(t.scrollWidth>t.clientWidth&&t.scrollLeft>0)return!0;t=t.parentElement}return!1}var bt=null,On=null,ge=null,Nt=!1,mt=!1,ke=[],qe=null,le=null,re=null,Ln=null,ht=null;function qd(e){if(Ln=null,ht=null,e==="toList")return Bi();let t=o.lastSessionId;if(!t)return null;let n=mi();if(n&&n.sessionId===t){let r=Zi(n);if(r){r.style.transform="",r.style.transition="",r.style.zIndex="",Ln=n;let i=r.querySelector(".chat-body");return i&&(ht={body:i,top:bi()}),r}}let s=o.sessions.find(r=>r.sessionId===t);return s?Hi(s):null}function Kd(e){let t=document.getElementById("app");if(!t)return!1;let n=qd(e);if(!n||(ke=Array.from(t.children),ke.length===0))return!1;le=document.createElement("div"),le.className="swipe-reveal-content",le.appendChild(n),qe=document.createElement("div"),qe.className="swipe-reveal-layer",qe.appendChild(le),re=document.createElement("div"),re.className="swipe-reveal-scrim";let s=e==="toList";for(let r of ke)r.style.zIndex=s?"2":"0";return qe.style.zIndex=s?"0":"2",re.style.zIndex="1",t.insertBefore(re,t.firstChild),t.insertBefore(qe,t.firstChild),ht&&(ht.body.scrollTop=ht.top),ia(),!0}function ka(e,t){if(!le||!re)return;let n=Math.min(Math.abs(e)/Gs,1);if(t==="toList"){for(let s of ke)s.style.transform=`translateX(${e}px)`;re.style.opacity=String(Ys*(1-n))}else{let s=window.innerWidth;le.style.transform=`translateX(${s+e}px)`,re.style.opacity=String(Ys*n)}}function Na(){for(let e of ke)e.style.transform="",e.style.transition="",e.style.zIndex="";ke=[],qe?.remove(),re?.remove(),qe=null,le=null,re=null,Ln=null,ht=null,Fs()}function zd(e){let t=window.innerWidth;if(e==="toList"){for(let s of ke)s.style.transition=`transform ${xe}ms ease-out`,s.style.transform=`translateX(${t}px)`;re&&(re.style.transition=`opacity ${xe}ms ease-out`,re.style.opacity="0")}else le&&(le.style.transition=`transform ${xe}ms ease-out`,le.style.transform="translateX(0)"),re&&(re.style.transition=`opacity ${xe}ms ease-out`,re.style.opacity=String(Ys));let n=Ln;setTimeout(()=>{if(Fs(),e==="toList"){Fe();return}if(n&&Ei(n))return;let s=o.lastSessionId,r=s?o.sessions.find(i=>i.sessionId===s):void 0;s&&r?He(s,r.status==="cold"):Na()},xe)}function Ra(){for(let e of ke)e.style.transition=`transform ${xe}ms ease-out`,e.style.transform="translateX(0)";le&&(le.style.transition=`transform ${xe}ms ease-out`),ka(0,ge??"toList"),setTimeout(Na,xe)}function Dn(){bt=null,On=null,ge=null,Nt=!1,mt=!1}function Wd(e){if(Dn(),J()||o.modal||o.banner)return;let t=e.touches[0];if(t){if(o.view==="list"&&o.lastSessionId)ge="toChat";else if(o.view==="chat"&&!Te(t.target)&&!Ud(t.target))ge="toList";else return;bt=t.clientX,On=t.clientY,Nt=!0}}function Gd(e){if(!Nt||bt===null||On===null||!ge)return;let t=e.touches[0];if(!t)return;let n=t.clientX-bt,s=t.clientY-On;if(!mt){if(Math.abs(n)<xa&&Math.abs(s)<xa)return;let r=ge==="toChat"?n<0:n>0;if(Math.abs(s)>Math.abs(n)||!r){Nt=!1;return}if(mt=!0,!Kd(ge)){Nt=!1,mt=!1;return}}e.preventDefault(),ka(n,ge)}function Yd(e){if(!mt||bt===null||!ge){Dn();return}let t=e.changedTouches[0],n=t?t.clientX-bt:0;(ge==="toChat"?n<=-Gs:n>=Gs)?zd(ge):Ra(),Dn()}function Xd(){mt&&Ra(),Dn()}function Oa(){document.addEventListener("touchstart",Wd,{passive:!0}),document.addEventListener("touchmove",Gd,{passive:!1}),document.addEventListener("touchend",Yd,{passive:!0}),document.addEventListener("touchcancel",Xd,{passive:!0})}var Qd=(()=>{try{return new URLSearchParams(window.location.search).get("vpdebug")==="1"}catch{return!1}})();function Vd(e,t,n){let s=document.getElementById("__viewport_debug__");s||(s=document.createElement("div"),s.id="__viewport_debug__",s.style.cssText="position:absolute;top:0;left:0;right:0;z-index:9999;background:rgba(0,0,0,0.85);color:#fd9;padding:0.4rem 0.6rem;font:11px/1.4 ui-monospace,monospace;border:1px solid #d4a17e;border-radius:6px;white-space:pre;pointer-events:none;opacity:0.9",document.body.appendChild(s));let r=document.querySelector(".composer"),i=r?.getBoundingClientRect(),a=r?getComputedStyle(r).paddingBottom:"n/a",c=document.getElementById("app"),u=c?.getBoundingClientRect(),d=c?getComputedStyle(c).height:"n/a",p=document.querySelector(".chat-body")?.getBoundingClientRect(),g=document.getElementById("__vp_icb_line__");g||(g=document.createElement("div"),g.id="__vp_icb_line__",document.body.appendChild(g)),g.style.cssText=`position:absolute;left:0;right:0;top:${window.innerHeight-3}px;height:3px;background:lime;z-index:9999;pointer-events:none`;let m=document.getElementById("__vp_app_line__");m||(m=document.createElement("div"),m.id="__vp_app_line__",document.body.appendChild(m)),m.style.cssText="position:absolute;left:0;right:0;top:calc(var(--app-height, 100%) - 3px);height:3px;background:magenta;z-index:9999;pointer-events:none";let _=document.querySelector(".composer-buttons");_&&(_.style.outline="2px solid cyan");let w=b=>b?`top=${b.top.toFixed(0)} h=${b.height.toFixed(0)} bottom=${b.bottom.toFixed(0)}`:"n/a",S=document.body.getBoundingClientRect();s.textContent=`innerHeight=${window.innerHeight} appH(vv+inset)=${e.toFixed(1)} inset=${La().toFixed(0)}
655
+ Replace it? (Any live attach will be closed.)`)){k({banner:{kind:"warn",text:"Import cancelled."}});return}try{let i=await ra(t,{replace:!0});k({banner:{kind:"good",text:`Replaced ${he(i.sessionId)} from bundle`}}),Ce()}catch(i){k({banner:{kind:"bad",text:"import failed: "+i.message}})}return}k({banner:{kind:"bad",text:"import failed: "+n.message}})}var Xi="hydra-acp-browser:lastCwd",Qi="hydra-acp-browser:cwdHistory",Ku=20;function Ls(){try{let e=localStorage.getItem(Qi);if(e){let n=JSON.parse(e);if(Array.isArray(n))return n.filter(s=>typeof s=="string")}let t=localStorage.getItem(Xi);return t?[t]:[]}catch{return[]}}function zu(){return Ls()[0]??null}function Wu(e){try{let t=Ls().filter(n=>n!==e);t.unshift(e),localStorage.setItem(Qi,JSON.stringify(t.slice(0,Ku))),localStorage.removeItem(Xi)}catch{}}function Vi(){k({modal:{kind:"session",cwd:zu()??o.defaultCwd??"",agentId:"",name:"",prompt:"",err:null,busy:!1}})}function Gu(e){return l("div",{class:"modal-bg",...I(t=>{t.target.classList.contains("modal-bg")&&be()})},l("div",{class:"modal"},l("h2",null,"New session"),l("div",{class:"field"},l("label",{for:"f-cwd"},"cwd"),l("input",{id:"f-cwd","data-focus-key":"session-modal-cwd",value:e.cwd,placeholder:"/home/you/dev/project",list:"f-cwd-history",autocomplete:"off",oninput:t=>{e.cwd=t.target.value}}),l("datalist",{id:"f-cwd-history"},...Ls().map(t=>l("option",{value:t})))),l("div",{class:"field"},l("label",{for:"f-agent"},"agent"),Yu(e)),l("div",{class:"field"},l("label",{for:"f-name"},"name (optional)"),l("input",{id:"f-name","data-focus-key":"session-modal-name",value:e.name,placeholder:"feature-x",oninput:t=>{e.name=t.target.value}})),l("div",{class:"field"},l("label",{for:"f-prompt"},"first prompt (optional)"),l("textarea",{id:"f-prompt","data-focus-key":"session-modal-prompt",rows:"4",placeholder:"What should the agent do first?",autocapitalize:"off",oninput:t=>{e.prompt=t.target.value}},e.prompt)),e.err?l("div",{class:"err"},e.err):null,l("div",{class:"actions"},l("button",{...I(be)},"Cancel"),l("button",{class:"primary",...I(Xu),disabled:e.busy},e.busy?"Creating\u2026":"Create"))))}function Yu(e){let t=l("select",{id:"f-agent","data-focus-key":"session-modal-agent",onchange:s=>{e.agentId=s.target.value}}),n=l("option",{value:""},"<default>");e.agentId===""&&n.setAttribute("selected",""),t.appendChild(n);for(let s of o.agents){let r=l("option",{value:s.id},s.id);s.id===e.agentId&&r.setAttribute("selected",""),t.appendChild(r)}return t}async function Xu(){let e=o.modal;if(!(!e||e.kind!=="session")){if(!e.cwd){e.err="cwd is required",y();return}e.busy=!0,e.err=null,y();try{let t={cwd:e.cwd};e.agentId&&(t.agentId=e.agentId),e.name&&(t.name=e.name),e.prompt&&(t.prompt=e.prompt);let n=await ne("/api/sessions",{method:"POST",body:JSON.stringify(t),timeoutMs:6e4});if(Wu(e.cwd),Ce(),o.modal!==e)return;be(),n&&n.sessionId&&He(n.sessionId,!1)}catch(t){if(o.modal!==e)return;e.err=t.message,e.busy=!1,y()}}}function be(){k({modal:null})}function Qu(){!o.current?.models||o.current.models.length===0||k({modal:{kind:"models"}})}function Ai(e,t,n,s){return l("div",{class:"modal-bg",...I(r=>{r.target.classList.contains("modal-bg")&&be()})},l("div",{class:"modal"},l("h2",null,e),...t.map(r=>l("div",{class:"card",...I(()=>{s(r),be()})},l("div",{class:"meta"},l("div",{class:"row1"},r.name||r.id),l("div",{class:"row2"},r.id)),r.id===n?l("span",{class:"badge warm"},"current"):null)),l("div",{class:"actions"},l("button",{...I(be)},"Cancel"))))}var Ss=5;function Vu(e){let t=e.armedTaskList;if(!t||t.length===0)return document.createTextNode("");let n=t.slice(0,Ss),s=Date.now();return l("div",{class:"armed-tasks"},...n.map(r=>l("div",{class:"armed-task"},l("span",{class:"dot"},"\u25D0"),l("span",{class:"label"},r.label.length>0?r.label:r.taskType??"background task"),l("span",{class:"elapsed"},Di(s-r.since)))),t.length>Ss?l("div",{class:"armed-tasks-more"},`+${t.length-Ss} more`):null)}var Ts=200,Ms=450,Zu=250;function _n(e){let t=e.body;Math.abs(t.scrollTop-(t.scrollHeight-t.clientHeight))>1&&(t.scrollTop=t.scrollHeight)}function ju(e){e.stickToBottom=!0,e.reflowUntil=performance.now()+700,_n(e),requestAnimationFrame(()=>_n(e)),setTimeout(()=>_n(e),120),setTimeout(()=>{_n(e),e.reflowUntil=0;let t=e.body,n=t.scrollHeight-t.scrollTop-t.clientHeight<50;e.jump.classList.toggle("visible",!n),An(t,e.turnToast)},450)}function Mt(e){if(!e.stickToBottom||e.touchActive)return;let t=performance.now();if(t-e.lastTouchEndAt<Ms||t-e.lastScrollAt<Zu)return;let n=e.body,s=n.scrollHeight-n.clientHeight;Math.abs(n.scrollTop-s)>1&&(n.scrollTop=n.scrollHeight)}var Ae=new WeakMap;function Zi(e){return Ae.get(e)?.root??null}function yi(e){return Ae.get(e)?.body.scrollTop??0}function Ju(e){let t=Ae.get(e);if(t)return t;let n=l("div",{class:"chat-body"}),s=l("button",{class:"jump-to-latest-btn",...I(()=>{n.scrollTop=n.scrollHeight,c.classList.remove("visible")})},"\u2193 Bottom"),r=l("button",{class:"jump-to-latest-btn icon",...I(()=>Sn("prev")),title:"Previous turn (Cmd/Ctrl+PageUp)"},"\u25B2"),i=l("button",{class:"jump-to-latest-btn icon",...I(()=>Sn("next")),title:"Next turn (Cmd/Ctrl+PageDown)"},"\u25BC"),a=l("div",{class:"turn-toast"}),c=l("div",{class:"jump-to-latest"},r,a,i,s),u=0;n.addEventListener("scroll",()=>{t.lastScrollAt=performance.now();let m=n.scrollHeight-n.scrollTop-n.clientHeight<50;performance.now()>=t.reflowUntil&&(t.stickToBottom=m),u&&cancelAnimationFrame(u),u=requestAnimationFrame(()=>{u=0,!(performance.now()<t.reflowUntil)&&(c.classList.toggle("visible",!m),An(n,a))})},{passive:!0});let d=0;n.addEventListener("touchstart",()=>{t.touchActive=!0,d=n.scrollHeight},{passive:!0});let f=m=>{m.touches.length>0||(t.touchActive=!1,t.lastTouchEndAt=performance.now(),n.scrollHeight!==d&&(setTimeout(()=>Mt(t),Ms+50),setTimeout(()=>Mt(t),Ms+900)))};n.addEventListener("touchend",f,{passive:!0}),n.addEventListener("touchcancel",f,{passive:!0});let g=0,p=0;n.addEventListener("pointerdown",m=>{g=m.clientX,p=m.clientY},{passive:!0}),n.addEventListener("pointerup",m=>{if(Te(m.target)||Math.hypot(m.clientX-g,m.clientY-p)>qn)return;let S=document.activeElement;(S instanceof HTMLTextAreaElement||S instanceof HTMLInputElement)&&S.blur()},{passive:!0});let h=l("div",{class:"chat-slot"}),_=l("div",{class:"chat-slot"}),E=l("div",{class:"chat-slot"}),w=l("div",{class:"chat-slot"});{let T=null,N=null,O=!1,B=!1,H=()=>{let P=document.activeElement;B&&(P instanceof HTMLTextAreaElement||P instanceof HTMLInputElement)&&P.blur(),T=null,N=null,O=!1,B=!1};w.addEventListener("touchstart",P=>{T=null,N=null,O=!1,B=!1;let Y=document.activeElement;if(!(Y instanceof HTMLTextAreaElement||Y instanceof HTMLInputElement))return;let Q=P.touches[0];Q&&(T=Q.clientX,N=Q.clientY)},{passive:!0}),w.addEventListener("touchmove",P=>{if(T===null||N===null)return;let Y=P.touches[0];if(!Y)return;let Q=Y.clientX-T,Z=Y.clientY-N;if(!O){if(Math.abs(Q)<10&&Math.abs(Z)<10)return;if(Math.abs(Q)>Math.abs(Z)||Z<0){T=null,N=null;return}O=!0}B=Z>=50},{passive:!0}),w.addEventListener("touchend",H,{passive:!0}),w.addEventListener("touchcancel",H,{passive:!0})}return t={root:l("div",{class:"chat"},h,_,E,n,w),body:n,jump:c,headerSlot:h,detailsSlot:_,armedSlot:E,composerSlot:w,stickToBottom:!0,touchActive:!1,lastTouchEndAt:0,lastScrollAt:0,reflowUntil:0,turnToast:a},Ae.set(e,t),t}var Ci=new WeakMap;function ed(e){if(e.kind==="stream"){let t=e.queueEntry;return[e.text,e.role,e.synthetic??!1,e.closed??!1,Ct.has(e),t?.status,t?.amendedByMessageId,t?.amendsMessageId,e.attachments?.length??0]}return e.kind==="system"||e.kind==="error"?[e.text]:e.kind==="edit-diff"?[e.diff,e.expanded,e.status]:e.kind==="exit-plan-mode"?[e.plan,e.status]:e.kind==="turn-stamp"?[e.elapsedMs,e.toolCount,e.stopReason]:null}var Mi="pre, table";function td(e,t){if(!(e instanceof HTMLElement)||!(t instanceof HTMLElement))return;let n=e.querySelectorAll(Mi);if(n.length===0)return;let s=[];n.forEach((r,i)=>{(r.scrollLeft!==0||r.scrollTop!==0)&&s.push([i,r.scrollLeft])}),s.length!==0&&queueMicrotask(()=>{let r=t.querySelectorAll(Mi);for(let[i,a]of s){let c=r[i];c&&(c.scrollLeft=a)}})}function nd(e){let t=ed(e);if(t===null)return ki(e);let n=Ci.get(e);if(n&&n.sig.length===t.length&&n.sig.every((r,i)=>r===t[i]))return Ge("node-hit"),n.node;Ge(n?"node-resig":"node-new");let s=ki(e);return n&&td(n.node,s),Ci.set(e,{node:s,sig:t}),s}function sd(e,t){let n=new Set(t);for(let s=e.childNodes.length-1;s>=0;s--){let r=e.childNodes[s];n.has(r)||e.removeChild(r)}for(let s=0;s<t.length;s++){let r=t[s],i=e.childNodes[s]??null;i!==r&&e.insertBefore(r,i)}for(;e.childNodes.length>t.length;)e.removeChild(e.lastChild)}function rd(e,t){let n=t.body,s=!e.renderAllHistory&&e.log.length>Ts,r=s?e.log.length-Ts:0;if(s){let c=Math.max(0,e.log.length-Ts*2);for(let u=r;u>=c;u--){let d=e.log[u];if(d&&d.kind==="stream"&&d.role==="user"){r=u;break}}}let i=s?e.log.slice(r):e.log,a=[];if(e.historyIsPartial&&!s&&a.push(l("button",{class:"show-earlier",...I(()=>pi(e))},"Load full history")),s){let c=r;a.push(l("button",{class:"show-earlier",...I(()=>{e.renderAllHistory=!0,y()})},`Show ${c} earlier message${c===1?"":"s"}`))}for(let c of i)o.hideThoughts&&c.kind==="stream"&&c.role==="thought"||a.push(nd(c));if(a.push(t.jump),sd(n,a),e.pinAfterReplaySwap){e.pinAfterReplaySwap=!1,ju(t);return}Mt(t)}function vn(e){let t=o.current?.scrollRestoreMessageId;if(!t)return!1;let n=e.querySelector(`[data-message-id="${CSS.escape(t)}"]`);return n?(n.scrollIntoView({block:"start"}),o.current.scrollRestoreMessageId=void 0,!0):!1}function ji(e,t){if(t.view!=="chat"||!t.current||t.banner||t.modal||t.current.fileOverlay)return!1;let n=Ae.get(t.current);if(!n)return!1;if(J()){if(e.childNodes.length!==1)return!1;let s=e.firstElementChild;if(!s||!s.classList.contains("split"))return!1;let r=s.querySelector(":scope > .rail"),i=s.querySelector(":scope > .split-detail");return!r||!i||i.childNodes.length!==1||i.firstChild!==n.root?!1:(pu(r),Tn(t.current),vn(n.body),!0)}return e.childNodes.length!==1||e.firstChild!==n.root?!1:(Tn(t.current),vn(n.body),!0)}function Ji(e){let t=Ae.get(e);t&&Mt(t)}function St(e){let t=Ae.get(e);t&&(t.stickToBottom=!0,Mt(t))}function An(e,t){let n=Array.from(e.querySelectorAll(".msg.user"));if(n.length===0){t.textContent="";return}let s=e.getBoundingClientRect().top,r=1,i=-1;for(let a=n.length-1;a>=0;a--)if(n[a].getBoundingClientRect().top<s+r){i=a;break}t.textContent=i===-1?"Start":`Turn ${i+1} of ${n.length}`}function Sn(e){let t=document.querySelector(".chat-body");if(!t)return;let n=Array.from(t.querySelectorAll(".msg.user"));if(n.length===0){let u=t.clientHeight*.9;t.scrollBy({top:e==="next"?u:-u,behavior:"smooth"});return}let s=o.current?Ae.get(o.current):void 0,r=t.getBoundingClientRect().top,i=1,a=null,c=-1;if(e==="prev"){for(let u=n.length-1;u>=0;u--)if(n[u].getBoundingClientRect().top<r-i){a=n[u],c=u;break}a?(a.scrollIntoView({block:"start",behavior:"smooth"}),s&&(s.turnToast.textContent=`Turn ${c+1} of ${n.length}`)):(t.scrollTo({top:0,behavior:"smooth"}),s&&(s.turnToast.textContent="Start"));return}for(let u=0;u<n.length;u++)if(n[u].getBoundingClientRect().top>r+i){a=n[u],c=u;break}a?(a.scrollIntoView({block:"start",behavior:"smooth"}),s&&(s.turnToast.textContent=`Turn ${c+1} of ${n.length}`)):t.scrollTo({top:t.scrollHeight,behavior:"smooth"})}function Tn(e){let t=o.sessions.find(m=>m.sessionId===e.sessionId),n=t?.title||e.title||xs(e.sessionId),s=t?.cwd||e.cwd,r=()=>{e.headerExpanded=!e.headerExpanded,y()},i=l("div",{class:"chat-header"},l("div",{class:"chat-title-row"},J()?null:l("button",{class:"chat-back",title:"Back to session list",...I(()=>Fe())},"\u2190"),l("div",{class:"chat-title clickable",title:"Click for session details",...I(r)},n)),l("div",{class:"chat-header-row"},!e.ready&&e.cold?l("span",{class:"pill cold clickable",title:"Session closed cold \u2014 sending a prompt will resurrect it",...I(r)},"cold"):e.ready?e.inTurn?l("span",{class:"pill working clickable",title:"Agent is working",...I(r)},l("span",{class:"dot"},"\u25CF"),"thinking"):e.armedTasks&&e.armedTasks>0?l("span",{class:"pill waiting clickable",title:e.armedSince?`Agent has a background task running (armed ${Math.max(1,Math.floor((Date.now()-e.armedSince)/6e4))}m ago). It may resume on its own.`:"Agent has a background task running. It may resume on its own.",...I(r)},l("span",{class:"dot"},"\u25CF"),"waiting"):l("span",{class:"pill ready clickable",title:"Ready for a prompt",...I(r)},l("span",{class:"dot"},"\u25CF"),"ready"):l("span",{class:"pill clickable",title:"Click for session details",...I(r)},"connecting\u2026"),t?.workspace?l("span",{class:"pill clickable",title:`In workspace "${t.workspace.label}" (source: ${In(t.workspace.sourceCwd)})`,...I(r)},"\u2387 "+t.workspace.label):null,e.model?l("span",{class:"pill clickable",title:"Model (click to change)",...I(Qu)},e.model):null,e.contextUsed!=null&&e.contextSize?l("span",{class:e.compactionPhase?"pill clickable compacting":"pill clickable",title:e.compactionPhase?e.compactionPhase==="deferred"?"Compaction queued \u2014 will run once the session is idle.":"Compacting\u2026":`${e.contextUsed.toLocaleString()} / ${e.contextSize.toLocaleString()} context tokens \u2014 click to compact`,...I(()=>Fu(e))},e.compactionPhase?e.compactionPhase==="deferred"?"\u23F3 queued":"\u25D0 compacting\u2026":`${Si(e.contextUsed)}/${Si(e.contextSize)}`):null,Ti(e.cost)?l("span",{class:"pill",title:"Session cost so far"},Ti(e.cost)):null,J()?null:l("button",{...I(Wi),title:"Options"},"\u2699"),l("button",{...I(Ed),title:"Files"},"\u{1F4C1}"),l("button",{title:"Export this session as a *.hydra bundle",...I(()=>$u(e.sessionId))},"\u2B07"),l("div",{class:"info clickable",title:"Click for session details",...I(r)}))),a=e.headerExpanded?l("div",{class:"chat-details"},ws("title",n),ws("session",he(e.sessionId)),ws("directory",s||"?"),_u(e.sessionId,t?.priority),vu(t?.workspace),...e.configOptions.map(Lu)):null,c=Ju(e),u=m=>{m.style.height="auto",m.style.height=m.scrollHeight+"px"},d=(m,S)=>{m.value=S,e.composerValue=S,st(e.sessionId,S),u(m),m.setSelectionRange(S.length,S.length)},f=m=>{if(m.isComposing)return;if(m.key==="Escape"&&J()&&!o.modal){m.preventDefault(),m.stopPropagation(),Ns();return}let S=m.target;if(m.key==="ArrowUp"&&!m.shiftKey&&!m.altKey&&!m.ctrlKey&&!m.metaKey&&S.selectionStart===0&&S.selectionEnd===0&&e.history.length>0){let T=e.historyIndex===null?0:Math.min(e.history.length-1,e.historyIndex+1);e.historyIndex===null&&(e.historyDraft=e.composerValue),e.historyIndex=T,m.preventDefault(),d(S,e.history[T]);return}if(m.key==="ArrowDown"&&!m.shiftKey&&!m.altKey&&!m.ctrlKey&&!m.metaKey&&S.selectionStart===S.value.length&&S.selectionEnd===S.value.length&&e.historyIndex!==null){if(m.preventDefault(),e.historyIndex>0)e.historyIndex-=1,d(S,e.history[e.historyIndex]);else{let T=e.historyDraft??"";e.historyIndex=null,e.historyDraft=null,d(S,T)}return}if(m.key==="Enter"&&!m.shiftKey){if(m.altKey||m.ctrlKey||m.metaKey){m.preventDefault(),Td(S,`
656
+ `);return}m.preventDefault(),It()}},g=()=>l("textarea",{"data-focus-key":"composer",placeholder:e.ready?"Message\u2026":e.cold?"Message\u2026 (wakes the session)":"Connecting\u2026",rows:"1",autocapitalize:"off",onkeydown:f,onpaste:m=>{let S=m.clipboardData?.items;if(!S)return;let T=[];for(let N of S){if(N.kind!=="file"||!N.type.startsWith("image/"))continue;let O=N.getAsFile();O&&T.push(O)}T.length!==0&&(m.preventDefault(),cu(e,T))},oninput:m=>{na();let S=m.target;e.composerValue=S.value,st(e.sessionId,S.value),e.historyIndex!==null&&(e.historyIndex=null,e.historyDraft=null),u(S);let T=S.value.trim().length>0||e.attachments.length>0,N=S.closest(".composer")?.querySelectorAll(".content-gated")??[];for(let O of N)O.classList.toggle("empty",!T)}},e.composerValue),p=c.composerTextarea,h=!p;if(p||(p=g(),c.composerTextarea=p),p.placeholder=e.ready?"Message\u2026":e.cold?"Message\u2026 (wakes the session)":"Connecting\u2026",p.value!==e.composerValue){p.value=e.composerValue;let m=p;queueMicrotask(()=>u(m))}else if(h&&e.composerValue.length>0){let m=p;queueMicrotask(()=>u(m))}!e.composerAutoFocused&&er()&&(e.composerAutoFocused=!0,queueMicrotask(()=>p.focus()));let _=e.composerValue.trim().length>0||e.attachments.length>0,E=[];e.inTurn?(e.daemonSupportsAmend&&e.currentHeadMessageId!==void 0&&E.push(l("button",{class:`content-gated${_?"":" empty"}`,...I(Xo),title:"Cancel the current turn and replace its prompt"},"Amend")),E.push(l("button",{class:`primary content-gated${_?"":" empty"}`,...I(It),title:"Queue this prompt to run after the current turn"},"Enqueue"))):E.push(l("button",{class:`primary content-gated${_?"":" empty"}`,...I(It)},"Send"));let w=l("div",{class:"composer"},lu(e),p,l("div",{class:"composer-buttons"},l("button",{class:"stop",disabled:!e.inTurn&&!e.promptQueue.some(m=>m.status==="queued"||m.status==="pending"),...I(jo),title:"Cancel current turn"},"Stop"),...E));return c.headerSlot.replaceChildren(i),a!==null&&document.activeElement!==null&&c.detailsSlot.contains(document.activeElement)||(a?c.detailsSlot.replaceChildren(a):c.detailsSlot.replaceChildren()),c.armedSlot.replaceChildren(Vu(e)),c.composerSlot.replaceChildren(w),rd(e,c),c.root}var xi=new WeakMap;function ea(e,t){let n=xi.get(e);if(n&&n.text===t)return n.html;let s=bo(t);return xi.set(e,{text:t,html:s}),s}function ki(e){if(e.kind==="stream"){let t=e.role==="thought",n=e.role==="user"?"msg user":t?"msg system thought":"msg agent",s=t&&Ct.has(e),r=l("div",{class:s?n+" collapsed":n,"data-message-id":e.messageId});t&&r.addEventListener("click",()=>{if(!!Ct.has(e)){Ct.delete(e),y();return}let c=document.querySelector(".chat-body"),u=c?.getBoundingClientRect(),d=r.getBoundingClientRect(),f=d.top-(u?.top??0)+(c?.scrollTop??0),p=!u||d.top>=u.top&&d.top<u.bottom?c?.scrollTop??0:f;Ct.add(e),y(),requestAnimationFrame(()=>{let h=document.querySelector(".chat-body");h&&(h.scrollTop=p)})});let i=e.queueEntry;if(i&&i.amendedByMessageId!==void 0&&i.status==="amended"&&r.classList.add("amended-target"),i&&(i.status==="queued"||i.status==="pending"||i.status==="cancelled"||i.status==="editing"||i.status==="amended"||i.status==="offline")&&r.appendChild(dd(i)),i&&i.amendsMessageId!==void 0&&r.appendChild(l("span",{class:"amend-badge",title:"Merged amend \u2014 replaces the previous, cancelled prompt"},"+")),i&&i.status==="editing")r.classList.add("bubble-editing"),r.appendChild(fd(i,a=>{e.text=a}));else{e.attachments&&e.attachments.length>0&&r.appendChild(l("div",{class:"attachment-thumbs"},...e.attachments.map(c=>l("img",{class:"attachment-thumb",src:Oi(c)}))));let a=l("div",{class:e.synthetic?"body raw":"body"});e.synthetic?a.textContent=e.text:a.innerHTML=ea(e,e.text),i&&i.status==="cancelled"&&(a.style.textDecoration="line-through",a.style.opacity="0.6"),r.appendChild(a)}return r}if(e.kind==="system")return l("div",{class:"msg system"},e.text);if(e.kind==="error")return l("div",{class:"msg error"},e.text);if(e.kind==="spinner")return gd(e.spinner);if(e.kind==="turn-stamp")return pd(e);if(e.kind==="perm"){if(!o.current)return document.createTextNode("");let t=o.current.pendingPermissions.get(e.toolCallId);return t?hd(t):document.createTextNode("")}return e.kind==="plan"?bd(e.entries):e.kind==="exit-plan-mode"?ld(e):e.kind==="edit-diff"?cd(e):document.createTextNode("")}function od(e){return e==="+"?"diff-line hljs-addition":e==="-"?"diff-line hljs-deletion":e==="gap"?"diff-line diff-gap":"diff-line"}function id(e){return e==="+"?"+ ":e==="-"?"- ":e==="gap"?"":" "}var Ni=new WeakMap;function ad(e){let t=Ni.get(e);return t||(t={counts:wo(e)},Ni.set(e,t)),t}function cd(e){let t=ad(e.diff),n=t.counts,s=e.diff.path?In(e.diff.path):"file",r=[];n.added>0&&r.push(l("span",{class:"add"},`+${n.added}`)),n.removed>0&&r.push(l("span",{class:"del"},`-${n.removed}`));let i=l("div",{class:"head",...I(()=>{e.expanded=!e.expanded,y()})},l("span",null,e.expanded?"\u25BE":"\u25B8"),l("span",{class:"title"},`Edited ${s}`),r.length>0?l("span",{class:"kind edit-summary"},r):null),a=l("div",{class:e.expanded?"toolcard open":"toolcard"},i);if(e.expanded){let c=t.lines??(t.lines=vo(e.diff));a.appendChild(l("div",{class:"body"},l("pre",null,l("code",{class:"diff-body"},c.map(u=>l("div",{class:od(u.op)},id(u.op)+u.text))))))}return a}function ld(e){let t=l("div",{class:"msg agent plan-markdown"});t.appendChild(l("div",{class:"plan-header"},"\u{1F4CB} Plan"));let n=l("div",{class:"body"});n.innerHTML=ea(e,e.plan),t.appendChild(n);let s=ud(e.status);return s!==null&&t.appendChild(s),t}function ud(e){if(e===void 0)return null;switch(e){case"completed":case"succeeded":case"ok":return l("div",{class:"plan-status plan-status-ok"},"\u2713 Approved");case"failed":case"error":case"rejected":return l("div",{class:"plan-status plan-status-fail"},"\u2717 Rejected");case"cancelled":return l("div",{class:"plan-status plan-status-cancelled"},"\u229D Cancelled");case"pending":case"in_progress":case"running":case"updated":return l("div",{class:"plan-status plan-status-pending"},"awaiting approval\u2026");default:return null}}function dd(e){if(e.status==="queued"||e.status==="pending"){let t=e.status==="pending"?"sending\u2026":`queued \xB7 ${Math.max(1,e.aheadAtEnqueue)} ahead`+(e.held?" \xB7 held: agent resumed":""),n=e.status==="queued"&&e.messageId!==void 0&&o.current!==null&&o.current.daemonSupportsAmend&&o.current.currentHeadMessageId!==void 0&&o.current.inTurn;return l("div",{class:"queue-chip queue-queued"},l("span",null,t),n?l("button",{class:"queue-edit",...I(()=>Go(e)),title:"Send now \u2014 amends the running turn instead of waiting"},l("span",{class:"queue-btn-glyph"},"+")):null,l("button",{class:"queue-edit",...I(()=>{e.status="editing",y()}),title:"Edit before sending"},l("span",{class:"queue-btn-glyph"},"\u270E")),l("button",{class:"queue-cancel",...I(()=>dn(e)),title:"Cancel before sending"},l("span",{class:"queue-btn-glyph"},"\xD7")))}return e.status==="editing"?l("div",{class:"queue-chip queue-editing"},l("span",null,"editing \u2014 Save or Cancel below")):e.status==="processing"?l("div",{class:"queue-chip queue-processing"},l("span",{class:"dot"}),l("span",null,"processing")):e.status==="cancelled"?l("div",{class:"queue-chip queue-cancelled"},l("span",null,"cancelled")):e.status==="amended"?l("div",{class:"queue-chip queue-amended"},l("span",null,"amended \u2014 merged into the next prompt")):e.status==="offline"?l("div",{class:"queue-chip queue-offline"},l("span",null,"pending"),l("button",{class:"queue-edit",...I(()=>{e.editReturnStatus="offline",e.status="editing",y()}),title:"Edit before sending"},l("span",{class:"queue-btn-glyph"},"\u270E")),l("button",{class:"queue-cancel",...I(()=>dn(e)),title:"Discard, this was never sent"},l("span",{class:"queue-btn-glyph"},"\xD7"))):document.createTextNode("")}function fd(e,t){let n=l("textarea",{class:"queue-edit-area",rows:"1",autocapitalize:"off"});n.value=e.text;let s=()=>{n.style.height="auto",n.style.height=`${n.scrollHeight}px`};n.addEventListener("input",s);let r=()=>{e.status=e.editReturnStatus??"queued",e.editReturnStatus=void 0},i=()=>{let c=n.value;e.text=c,t(c),r(),Yo(e,c),y()},a=()=>{r(),y()};return n.addEventListener("keydown",c=>{c.key==="Enter"&&!c.shiftKey?(c.preventDefault(),i()):c.key==="Escape"&&(c.preventDefault(),a())}),queueMicrotask(()=>{s(),n.focus(),n.setSelectionRange(n.value.length,n.value.length)}),l("div",{class:"queue-editor"},n,l("div",{class:"queue-editor-actions"},l("button",{class:"ghost",...I(a)},"Cancel"),l("button",{class:"primary",...I(i)},"Save")))}function wn(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}function pd(e){let t=e.stopReason!==void 0&&e.stopReason!=="end_turn",n=t?`stopped (${e.stopReason}) \xB7 ${wn(e.elapsedMs)}`:e.toolCount>0?`${e.toolCount} tool${e.toolCount===1?"":"s"} \xB7 took ${wn(e.elapsedMs)}`:`thought \xB7 ${wn(e.elapsedMs)}`;return l("div",{class:t?"turn-stamp bad":"turn-stamp"},n)}function gd(e){let t=l("button",{class:"queue-cancel",...I(()=>Zo()),title:"Cancel this turn"},l("span",{class:"queue-btn-glyph"},"\xD7")),n=wn(Date.now()-e.startedAt);if(!e.expanded)return l("div",{class:"spinner",...I(()=>{e.expanded=!0,y()})},l("div",{class:"head"},l("span",{class:"dot"}),l("span",null,e.sending?"sending\u2026":e.toolCallIds.length===0?`thinking \xB7 ${n}`:`working \u2014 ${e.toolCallIds.length} tool call${e.toolCallIds.length===1?"":"s"} \xB7 ${n}`),t));let s=e.toolCallIds.map(r=>{let i=o.current?.toolCalls.get(r);if(!i)return null;let a=i.status==="completed"||i.status==="success"?"\u2705":i.status==="failed"||i.status==="error"?"\u274C":"\u25B6";return l("li",null,l("span",{class:"icon"},a),document.createTextNode(" "+i.title))});return l("div",{class:"spinner expanded",...I(()=>{e.expanded=!1,y()})},l("div",{class:"head"},l("span",{class:"dot"}),l("span",null,e.sending?"sending\u2026":`working \xB7 ${n}`),t),l("ul",null,s))}function md(e){let t=f=>typeof f=="string"&&f.length>0?f:void 0,n=[],s=(f,g)=>l("div",{class:"detail"},l("span",{class:"k"},f),l("code",null,g)),r=t(e.kind);r&&n.push(s("kind",r));let i=new Set,a=[],c=f=>{let g=t(f);g&&!i.has(g)&&(i.add(g),a.push(g))},u=e.locations;if(Array.isArray(u))for(let f of u)f&&typeof f=="object"&&c(f.path);let d=e.rawInput&&typeof e.rawInput=="object"?e.rawInput:void 0;d&&(c(d.file_path),c(d.filePath),c(d.path));for(let f of a)n.push(s("path",f));if(d){let f=t(d.command);f&&n.push(s("command",f));let g=t(d.url);g&&n.push(s("url",g));let p=t(d.description);p&&n.push(l("div",{class:"detail note"},p))}return n}function hd(e){let t=e.toolCall||{};return l("div",{class:"perm"},l("div",{class:"title"},"\u{1F512} Permission requested"),l("div",{class:"desc"},t.title||t.name||"tool call"),md(t),l("div",{class:"opts"},...e.options.map(n=>l("button",{class:n.kind?.startsWith("allow")?"primary":n.kind?.startsWith("reject")?"danger":"",...I(()=>ds(e.toolCallId,n.optionId))},n.name||n.optionId)),l("button",{...I(()=>ds(e.toolCallId,"__cancel__"))},"Cancel")))}function bd(e){return Array.isArray(e)?l("div",{class:"msg agent"},l("div",{class:"body"},l("strong",null,"Plan")),l("ul",null,...e.map(t=>l("li",null,`${t.status==="completed"?"\u2713":t.status==="in_progress"?"\u25B8":"\xB7"} ${t.content||t.title||""}`)))):document.createTextNode("")}function Ed(){o.current&&(o.current.fileOverlay={path:"",entries:[],preview:null,err:null},y(),xt(""))}async function xt(e){if(o.current)try{let t=await ne("/api/files/list",{method:"POST",body:JSON.stringify({sessionId:o.current.sessionId,path:e})});o.current.fileOverlay={path:t.path,entries:t.entries??[],preview:null,err:null},y()}catch(t){o.current.fileOverlay={path:e,entries:[],preview:null,err:t.message},y()}}async function yd(e){if(o.current)try{let t=await ne("/api/files/read",{method:"POST",body:JSON.stringify({sessionId:o.current.sessionId,path:e})}),n=o.current.fileOverlay;o.current.fileOverlay={path:n.path,entries:n.entries,preview:{path:e,content:t.content},err:null},y()}catch(t){o.current.fileOverlay&&(o.current.fileOverlay={...o.current.fileOverlay,err:t.message}),y()}}function Ri(){o.current&&(o.current.fileOverlay=null,y())}function _d(e){if(!o.current?.fileOverlay)return;let t=o.current.fileOverlay,n=t.path?`${t.path}/${e.name}`:e.name;e.kind==="dir"?xt(n):e.kind==="file"&&yd(n)}function wd(e){let t=e?e.split("/").filter(Boolean):[],n=[l("span",{class:"crumb",...I(()=>xt(""))},".")],s="";for(let r of t){s=s?`${s}/${r}`:r;let i=s;n.push(document.createTextNode(" / ")),n.push(l("span",{class:"crumb",...I(()=>xt(i))},r))}return l("div",{class:"crumbs"},n)}function vd(e,t){if(!o.current)return;let n=`${e}:${t}`,s=o.current.composerValue;o.current.composerValue=s?`${s} ${n}`:n,st(o.current.sessionId,o.current.composerValue),y()}function Sd(){o.current?.fileOverlay&&(o.current.fileOverlay.preview=null,y())}function ta(e){let t=e.fileOverlay;if(!t)return document.createTextNode("");let n;if(t.preview){let{path:s,content:r}=t.preview,i=po(r,s)??ce(r),a=r.split(`
657
+ `).length,c=l("div",{class:"code-gutter"});for(let u=1;u<=a;u++){let d=u;c.appendChild(l("div",{class:"ln",...I(()=>vd(s,d))},String(d)))}n=l("div",{class:"preview"},l("div",{class:"crumbs"},l("span",{class:"crumb",...I(()=>Sd())},"\u2190 back to listing"),document.createTextNode(` ${s}`)),l("div",{class:"code-view"},c,l("pre",{},l("code",{class:"hljs",html:i}))))}else n=l("div",{class:"body"},t.err?l("div",{class:"msg error"},t.err):null,t.path?l("div",{class:"entry",...I(()=>xt(t.path.split("/").slice(0,-1).join("/")))},l("span",{class:"icon"},"\u25B8"),l("span",{class:"name"},".."),l("span",{class:"size"},"")):null,...t.entries.map(s=>l("div",{class:"entry",...I(()=>_d(s))},l("span",{class:"icon"},s.kind==="dir"?"\u25B8":"\xB7"),l("span",{class:"name"},s.name),l("span",{class:"size"},s.kind==="file"?`${s.size}b`:""))));return l("div",{class:"modal-bg",...I(s=>{s.target.classList.contains("modal-bg")&&Ri()})},l("div",{class:"modal file-modal"},l("div",{class:"topbar",style:"border-bottom:1px solid var(--border)"},l("span",{class:"title"},"Files"),l("span",{class:"pill"},e.cwd),l("span",{class:"spacer"}),l("button",{...I(Ri)},"\xD7")),wd(t.path),l("div",{class:"files"},n)))}function Td(e,t){e.focus();let n=!1;if(typeof document.execCommand=="function")try{n=document.execCommand("insertText",!1,t)}catch{n=!1}if(!n){let s=e.selectionStart??e.value.length,r=e.selectionEnd??e.value.length,i=e.value.slice(0,s),a=e.value.slice(r);e.value=i+t+a;let c=s+t.length;e.setSelectionRange(c,c),e.dispatchEvent(new Event("input",{bubbles:!0}))}}var Ps=!1,Id=100,Hs=0,Me=!1,Ee=!1,ut=!1,Cn=!1,lt;function ui(){lt!==void 0&&clearTimeout(lt),Cn=!0,lt=setTimeout(()=>fs(),4e3)}function fs(){lt!==void 0&&(clearTimeout(lt),lt=void 0),Cn&&(Cn=!1,Ee=!1,at())}function ia(){ut=!0}function Fs(){ut=!1,Ee&&(Ee=!1,y())}document.addEventListener("pointerdown",()=>{Me=!0},!0);document.addEventListener("pointerup",e=>{if(!Me||(Me=!1,$e!==void 0&&(clearTimeout($e),$e=void 0),!Ee)||ut)return;if(Ee=!1,Ye()){Mn=!0;return}let n=e.target?.tagName;if(n==="TEXTAREA"||n==="INPUT"||n==="SELECT"){setTimeout(y,300);return}y()},!0);var Mn=!1;document.addEventListener("selectionchange",()=>{!Mn||Ye()||(Mn=!1,y())});document.addEventListener("pointercancel",()=>{Me=!1,Ee&&!ut&&(Ee=!1,y())},!0);var aa=250,ca=0;function na(){ca=performance.now()}function $s(){let e=document.activeElement;return!(e instanceof HTMLTextAreaElement)&&!(e instanceof HTMLInputElement)?!1:performance.now()-ca<aa}var Bs=!1,Ad=700,$e;function at(){Hs=0,y()}function y(){if(Ps)return;Ps=!0;let e=performance.now()-Hs,t=Math.max(0,Id-e),n=()=>{if(Ps=!1,Me||ut||Cn){Ee=!0,Me&&($e!==void 0&&clearTimeout($e),$e=setTimeout(()=>{$e=void 0,Me&&(Me=!1,Ee&&!ut&&(Ee=!1,y()))},Ad));return}if($s()){Bs=!0,setTimeout(()=>{Bs&&(Bs=!1,y())},aa);return}if(Ye()){Mn=!0;return}Hs=performance.now(),Se("render",Cd)};t>0?setTimeout(()=>requestAnimationFrame(n),t):requestAnimationFrame(n)}function Cd(){let e=document.getElementById("app");if(!e)return;let t=document.activeElement,n=null,s=null,r=null;if(t&&t!==document.body&&t.dataset&&t.dataset.focusKey&&(n=t.dataset.focusKey,"selectionStart"in t))try{s=t.selectionStart,r=t.selectionEnd}catch{}let i=()=>{if(!n)return;let S=e.querySelector(`[data-focus-key="${CSS.escape(n)}"]`);if(!S)return;S.focus();let T=S;if(s!==null&&typeof T.setSelectionRange=="function")try{T.setSelectionRange(s,r)}catch{}};if(ji(e,o)){Ge("patch"),i();return}Ge("teardown");let a=e.querySelector(".chat-body"),c=a?a.scrollTop:null,u=e.querySelector(".list"),d=u?u.scrollTop:null,f=u?Rs(u):null,g=e.querySelector(".files .body"),p=g?g.scrollTop:null,h=e.querySelector(".files .preview"),_=h?h.scrollTop:null;e.replaceChildren(),Pi(e,o);let E=e.querySelector(".chat-body");if(E){!vn(E)&&c!==null&&(E.scrollTop=c),o.current&&Ji(o.current);let S=E.querySelector(".jump-to-latest");if(S){let N=E.scrollHeight-E.scrollTop-E.clientHeight<50;S.classList.toggle("visible",!N)}let T=E.querySelector(".turn-toast");T&&An(E,T)}let w=e.querySelector(".list");w&&(f?Os(w,f):d!==null&&(w.scrollTop=d));let x=e.querySelector(".files .body");x&&p!==null&&(x.scrollTop=p);let m=e.querySelector(".files .preview");m&&_!==null&&(m.scrollTop=_),i()}var la="hydra-acp-browser:filters",ua=["groupBy","showCold","hostFilter","hideThoughts","notifyOnTurnEnd","theme","fontScale","railWidth","lastSessionId"];function Md(){try{let e=localStorage.getItem(la);return e?JSON.parse(e):{}}catch{return{}}}function xd(){try{let e={};for(let t of ua)e[t]=o[t];localStorage.setItem(la,JSON.stringify(e))}catch{}}var o={view:"list",sessions:[],agents:[],defaultCwd:null,groupBy:"recent",showCold:!0,sessionSearch:"",fontScale:1,railWidth:null,hostFilter:"__local",listHighlightedSessionId:null,hideThoughts:!1,notifyOnTurnEnd:!1,theme:"dark",banner:null,modal:null,current:null,lastSessionId:null,...Md()},kd=["sessions","groupBy","showCold","hostFilter","listHighlightedSessionId","sessionSearch"],xn=!0;function da(){xn=!0}function sa(){return xn}function Ds(){xn=!1}function k(e){let t=!1,n=!1;for(let s of Object.keys(e)){let r=e[s];Us(o[s],r)||(o[s]=r,t=!0,ua.includes(s)&&(n=!0),kd.includes(s)&&(xn=!0))}n&&xd(),t&&y()}function Us(e,t){return e===t?!0:e===null||t===null||typeof e!=typeof t||typeof e!="object"?!1:JSON.stringify(e)===JSON.stringify(t)}function fa(e,t,n){if(!n)return t.sessions;let s=new Map(e.map(r=>[r.sessionId,r]));for(let r of s.values())r.status!=="cold"&&s.delete(r.sessionId);for(let r of t.removed)s.delete(r);for(let r of t.sessions)s.set(r.sessionId,r);return[...s.values()]}var Nd="hydra-acp-session-cache";var ft="cache",ma="sessions";function Rd(e){let t=[];for(let n of e)n.status!=="warm"&&t.push({sessionId:n.sessionId,cwd:n.cwd,agentId:n.agentId,currentModel:n.currentModel,title:n.title,status:n.status,busy:n.busy,awaitingInput:n.awaitingInput,priority:n.priority,importedFromMachine:n.importedFromMachine,upstreamSessionId:n.upstreamSessionId,armedTasks:n.armedTasks,updatedAt:n.updatedAt});return t}var kn=null;function ha(){return kn||(kn=new Promise(e=>{if(!("indexedDB"in window)){e(null);return}let t;try{t=indexedDB.open(Nd,1)}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ft)||t.result.createObjectStore(ft,{keyPath:"key"})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null)}),kn)}async function ba(){let e=await ha();return e?new Promise(t=>{let n;try{n=e.transaction(ft,"readonly")}catch{t(null);return}let s=n.objectStore(ft).get(ma);s.onsuccess=()=>{let r=s.result;if(!r||!Array.isArray(r.sessions)||typeof r.cursor!="number"){t(null);return}t({sessions:r.sessions,cursor:r.cursor})},s.onerror=()=>t(null)}):null}var qs,dt,pa=Promise.resolve();function Ea(e,t){qs={sessions:e,cursor:t},dt===void 0&&(dt=setTimeout(()=>{dt=void 0,ya()},2e3))}function ga(){dt!==void 0&&(clearTimeout(dt),dt=void 0),ya()}function ya(){pa=pa.then(Od).catch(()=>{})}async function Od(){let e=qs;if(!e)return;qs=void 0;let t=await ha();if(!t)return;let n={key:ma,sessions:Rd(e.sessions),cursor:e.cursor};return new Promise(s=>{let r;try{r=t.transaction(ft,"readwrite")}catch{s();return}r.objectStore(ft).put(n),r.oncomplete=()=>s(),r.onerror=()=>s()})}typeof window<"u"&&typeof document<"u"&&(window.addEventListener("pagehide",ga),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ga()}));function Ld(){let e=window.getSelection();return!e||e.isCollapsed?!1:e.toString().length>0}async function ne(e,t){let{timeoutMs:n,...s}=t??{},r=n!==void 0?new AbortController:void 0,i=r!==void 0?setTimeout(()=>r.abort(),n):void 0,a;try{a=await fetch(e,{credentials:"same-origin",headers:{"Content-Type":"application/json"},...r?{signal:r.signal}:{},...s})}catch(c){throw r?.signal.aborted?new Error("timed out \u2014 it may still have completed; check the session list"):c}finally{i!==void 0&&clearTimeout(i)}if(!a.ok){let c=`${a.status} ${a.statusText}`;try{let u=await a.json();u&&u.error&&(c=u.error)}catch{}throw new Error(c)}return a.status===204?null:await a.json()}var Ks=null,kt;async function _a(){let e=await ba();e&&(o.sessions=e.sessions,kt=e.cursor||void 0)}async function Ce(){if(!$s()){if(o.view==="chat"&&o.current&&!J()){await Dd(o.current.sessionId);return}await Pd()}}function wa(e){e.status==="warm"&&o.current&&o.current.sessionId===e.sessionId&&o.current.cold&&bn()}async function Dd(e){try{let t=await ne(`/api/sessions/${encodeURIComponent(e)}`),n=o.sessions.findIndex(r=>r.sessionId===e);if(n>=0?o.sessions[n]=t:o.sessions.push(t),!o.current||o.current.sessionId!==e)return;wa(t);let s=`${t.title}|${t.cwd}|${t.agentId}|${t.currentModel}|${t.workspace?.label}|${t.workspace?.vcs?.branch}|${t.workspace?.clean}`;s!==o.current._lastMetaFp&&(o.current._lastMetaFp=s,y())}catch{}}async function Pd(){try{let e=kt!==void 0,t=e?`/api/sessions?since=${kt}`:"/api/sessions",n=await ne(t),s={sessions:n.sessions??[],removed:n.removed??[],cursor:n.cursor??0},r=fa(o.sessions,s,e);kt=s.cursor,(s.removed.length>0||s.sessions.some(c=>c.status==="cold"))&&Ea(r,kt);let i=o.banner!==null,a=!Us(o.sessions,r);if(o.sessions=r,o.banner=null,o.current){let c=r.find(u=>u.sessionId===o.current.sessionId);c&&wa(c)}if(a&&da(),!a&&!i||!i&&Ld()||!i&&o.modal)return;y()}catch(e){k({banner:{kind:"bad",text:"session list failed: "+e.message}})}}function va(){Ks&&clearInterval(Ks),Ce(),Ks=setInterval(()=>{Ce()},2e3)}async function Sa(){try{let e=await ne("/api/agents");k({agents:e.agents??[]})}catch(e){k({banner:{kind:"warn",text:"agents unavailable: "+e.message}})}}async function Ta(){try{let e=await ne("/api/config");k({defaultCwd:e.defaultCwd??null})}catch{}}async function ra(e,t={}){return ne("/api/sessions/import",{method:"POST",body:JSON.stringify({bundle:e,replace:t.replace===!0})})}async function oa(e){let t=await fetch("/api/sessions/import",{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json"},body:JSON.stringify({bundle:e})});if(t.ok)return{ok:!0,result:await t.json()};let n,s=`${t.status} ${t.statusText}`;try{let r=await t.json();r.existingSessionId&&(n=r.existingSessionId),r.error&&(s=r.error)}catch{}return{ok:!1,status:t.status,message:s,existingSessionId:n}}var Ia=70,Bd=110,Nn=null,Rn=null,gt=!1,Ue=!1,pt=null;function Ws(){return pt||(pt=document.createElement("div"),pt.className="pull-refresh",document.body.appendChild(pt),pt)}function Hd(e){let t=Ws(),n=Math.max(0,Math.min(e,Bd));Ue=n>=Ia,t.style.opacity=n>0?String(Math.min(n/Ia,1)):"0",t.style.transform=`translate(-50%, ${n>0?n-32:-48}px)`,t.textContent=Ue?"\u2191 Release to refresh":"\u2193 Pull to refresh"}function zs(){let e=Ws();e.style.opacity="0",e.style.transform="translate(-50%, -48px)"}function Ca(){return document.querySelector(".list")}function Fd(e){if(gt=!1,Ue=!1,o.view!=="list")return;let t=Ca(),n=e.touches[0];!t||!n||t.scrollTop>0||!t.contains(n.target)||(Nn=n.clientX,Rn=n.clientY,gt=!0)}function $d(e){if(!gt||Nn===null||Rn===null)return;let t=Ca(),n=e.touches[0];if(!t||!n)return;let s=n.clientY-Rn,r=n.clientX-Nn;if(Math.abs(r)>Math.abs(s)){zs(),gt=!1,Ue=!1;return}if(s<=0||t.scrollTop>0){zs(),Ue=!1;return}e.preventDefault(),Hd(s)}function Aa(){if(gt&&Ue){let e=Ws();e.textContent="Refreshing\u2026",location.reload()}else zs();gt=!1,Ue=!1,Nn=null,Rn=null}function Ma(){document.addEventListener("touchstart",Fd,{passive:!0}),document.addEventListener("touchmove",$d,{passive:!1}),document.addEventListener("touchend",Aa,{passive:!0}),document.addEventListener("touchcancel",Aa,{passive:!0})}var Gs=80,xa=12,Ys=.25,xe=220;function Ud(e){let t=e instanceof Element?e:null;for(;t&&t!==document.body;){if(t.scrollWidth>t.clientWidth&&t.scrollLeft>0)return!0;t=t.parentElement}return!1}var bt=null,On=null,ge=null,Nt=!1,mt=!1,ke=[],qe=null,le=null,re=null,Ln=null,ht=null;function qd(e){if(Ln=null,ht=null,e==="toList")return Bi();let t=o.lastSessionId;if(!t)return null;let n=mi();if(n&&n.sessionId===t){let r=Zi(n);if(r){r.style.transform="",r.style.transition="",r.style.zIndex="",Ln=n;let i=r.querySelector(".chat-body");return i&&(ht={body:i,top:bi()}),r}}let s=o.sessions.find(r=>r.sessionId===t);return s?Hi(s):null}function Kd(e){let t=document.getElementById("app");if(!t)return!1;let n=qd(e);if(!n||(ke=Array.from(t.children),ke.length===0))return!1;le=document.createElement("div"),le.className="swipe-reveal-content",le.appendChild(n),qe=document.createElement("div"),qe.className="swipe-reveal-layer",qe.appendChild(le),re=document.createElement("div"),re.className="swipe-reveal-scrim";let s=e==="toList";for(let r of ke)r.style.zIndex=s?"2":"0";return qe.style.zIndex=s?"0":"2",re.style.zIndex="1",t.insertBefore(re,t.firstChild),t.insertBefore(qe,t.firstChild),ht&&(ht.body.scrollTop=ht.top),ia(),!0}function ka(e,t){if(!le||!re)return;let n=Math.min(Math.abs(e)/Gs,1);if(t==="toList"){for(let s of ke)s.style.transform=`translateX(${e}px)`;re.style.opacity=String(Ys*(1-n))}else{let s=window.innerWidth;le.style.transform=`translateX(${s+e}px)`,re.style.opacity=String(Ys*n)}}function Na(){for(let e of ke)e.style.transform="",e.style.transition="",e.style.zIndex="";ke=[],qe?.remove(),re?.remove(),qe=null,le=null,re=null,Ln=null,ht=null,Fs()}function zd(e){let t=window.innerWidth;if(e==="toList"){for(let s of ke)s.style.transition=`transform ${xe}ms ease-out`,s.style.transform=`translateX(${t}px)`;re&&(re.style.transition=`opacity ${xe}ms ease-out`,re.style.opacity="0")}else le&&(le.style.transition=`transform ${xe}ms ease-out`,le.style.transform="translateX(0)"),re&&(re.style.transition=`opacity ${xe}ms ease-out`,re.style.opacity=String(Ys));let n=Ln;setTimeout(()=>{if(Fs(),e==="toList"){Fe();return}if(n&&Ei(n))return;let s=o.lastSessionId,r=s?o.sessions.find(i=>i.sessionId===s):void 0;s&&r?He(s,r.status==="cold"):Na()},xe)}function Ra(){for(let e of ke)e.style.transition=`transform ${xe}ms ease-out`,e.style.transform="translateX(0)";le&&(le.style.transition=`transform ${xe}ms ease-out`),ka(0,ge??"toList"),setTimeout(Na,xe)}function Dn(){bt=null,On=null,ge=null,Nt=!1,mt=!1}function Wd(e){if(Dn(),J()||o.modal||o.banner)return;let t=e.touches[0];if(t){if(o.view==="list"&&o.lastSessionId)ge="toChat";else if(o.view==="chat"&&!Te(t.target)&&!Ud(t.target))ge="toList";else return;bt=t.clientX,On=t.clientY,Nt=!0}}function Gd(e){if(!Nt||bt===null||On===null||!ge)return;let t=e.touches[0];if(!t)return;let n=t.clientX-bt,s=t.clientY-On;if(!mt){if(Math.abs(n)<xa&&Math.abs(s)<xa)return;let r=ge==="toChat"?n<0:n>0;if(Math.abs(s)>Math.abs(n)||!r){Nt=!1;return}if(mt=!0,!Kd(ge)){Nt=!1,mt=!1;return}}e.preventDefault(),ka(n,ge)}function Yd(e){if(!mt||bt===null||!ge){Dn();return}let t=e.changedTouches[0],n=t?t.clientX-bt:0;(ge==="toChat"?n<=-Gs:n>=Gs)?zd(ge):Ra(),Dn()}function Xd(){mt&&Ra(),Dn()}function Oa(){document.addEventListener("touchstart",Wd,{passive:!0}),document.addEventListener("touchmove",Gd,{passive:!1}),document.addEventListener("touchend",Yd,{passive:!0}),document.addEventListener("touchcancel",Xd,{passive:!0})}var Qd=(()=>{try{return new URLSearchParams(window.location.search).get("vpdebug")==="1"}catch{return!1}})();function Vd(e,t,n){let s=document.getElementById("__viewport_debug__");s||(s=document.createElement("div"),s.id="__viewport_debug__",s.style.cssText="position:absolute;top:0;left:0;right:0;z-index:9999;background:rgba(0,0,0,0.85);color:#fd9;padding:0.4rem 0.6rem;font:11px/1.4 ui-monospace,monospace;border:1px solid #d4a17e;border-radius:6px;white-space:pre;pointer-events:none;opacity:0.9",document.body.appendChild(s));let r=document.querySelector(".composer"),i=r?.getBoundingClientRect(),a=r?getComputedStyle(r).paddingBottom:"n/a",c=document.getElementById("app"),u=c?.getBoundingClientRect(),d=c?getComputedStyle(c).height:"n/a",g=document.querySelector(".chat-body")?.getBoundingClientRect(),p=document.getElementById("__vp_icb_line__");p||(p=document.createElement("div"),p.id="__vp_icb_line__",document.body.appendChild(p)),p.style.cssText=`position:absolute;left:0;right:0;top:${window.innerHeight-3}px;height:3px;background:lime;z-index:9999;pointer-events:none`;let h=document.getElementById("__vp_app_line__");h||(h=document.createElement("div"),h.id="__vp_app_line__",document.body.appendChild(h)),h.style.cssText="position:absolute;left:0;right:0;top:calc(var(--app-height, 100%) - 3px);height:3px;background:magenta;z-index:9999;pointer-events:none";let _=document.querySelector(".composer-buttons");_&&(_.style.outline="2px solid cyan");let E=x=>x?`top=${x.top.toFixed(0)} h=${x.height.toFixed(0)} bottom=${x.bottom.toFixed(0)}`:"n/a",w=document.body.getBoundingClientRect();s.textContent=`innerHeight=${window.innerHeight} appH(vv+inset)=${e.toFixed(1)} inset=${La().toFixed(0)}
657
658
  vv.offsetTop=${t.toFixed(1)} keyboard-open=${n}
658
659
  screen.h=${screen.height} docClientH=${document.documentElement.clientHeight}
659
- body ${w(S)}
660
- #app styleH=${d} ${w(u)}
661
- .chat-body ${w(p)}
662
- .composer padBottom=${a} ${w(i)}`}var Rt=null;function La(){return Rt||(Rt=document.createElement("div"),Rt.style.cssText="position:fixed;top:0;left:0;width:1px;height:env(safe-area-inset-top,0px);visibility:hidden;pointer-events:none",document.documentElement.appendChild(Rt)),Rt.getBoundingClientRect().height}function Da(){let e=document.documentElement,t=new Map,n=null,s=null,r=null,i=()=>{let d=window.visualViewport,f=(d?.height??window.innerHeight)+La(),p=d?.offsetTop??0;f!==n&&(n=f,e.style.setProperty("--app-height",`${f}px`));let g=Math.round(d?.width??window.innerWidth),m=Math.max(f,t.get(g)??0);t.set(g,m);let _=m-f>100;_!==s&&(s=_,e.classList.toggle("keyboard-open",_));let w=_?p:0;w!==r&&(r=w,e.style.setProperty("--app-offset-top",`${w}px`)),Qd&&Vd(f,w,_)};i(),window.visualViewport&&(window.visualViewport.addEventListener("resize",i),window.visualViewport.addEventListener("scroll",i)),window.addEventListener("resize",i),window.addEventListener("orientationchange",i),window.addEventListener("pageshow",i),window.addEventListener("focus",i),document.addEventListener("visibilitychange",i);let a=1200,c=0,u=()=>{c&&cancelAnimationFrame(c);let d=performance.now()+a,f=null,p=0,g=()=>{i();let m=window.visualViewport?.height??window.innerHeight;if(f!==null&&Math.abs(m-f)<.5?p++:p=0,f=m,p>=2||performance.now()>=d){c=0;return}c=requestAnimationFrame(g)};c=requestAnimationFrame(g)};document.addEventListener("focusin",u),document.addEventListener("focusout",u),setInterval(i,1e3)}wi();Vs();yn();Da();nr(()=>y());window.addEventListener("DOMContentLoaded",async()=>{await _a(),va(),Sa(),Ta(),ot(),o.notifyOnTurnEnd&&typeof Notification<"u"&&Notification.permission==="granted"&&pn().then(()=>it()),fi(),bs(),gi(),y(),Ma(),Oa()});window.addEventListener("hashchange",()=>{bs()});function Pa(){let e=document.getElementById("app");e&&(e.style.transform="translateZ(0)",requestAnimationFrame(()=>{e.style.transform=""}))}window.addEventListener("pageshow",()=>{at(),Pa()});document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(at(),Pa())});document.addEventListener("visibilitychange",()=>At());window.addEventListener("focus",()=>At());window.addEventListener("blur",()=>At());window.addEventListener("online",()=>bn());setInterval(()=>{o.current?.inTurn&&o.current.spinner&&y()},1e3);window.addEventListener("keydown",e=>{e.key.toLowerCase()!=="p"||!e.ctrlKey||e.metaKey||e.altKey||(e.preventDefault(),J()?Ns():o.view==="chat"&&Fe())});window.addEventListener("keydown",e=>{e.key!=="Escape"||!o.modal||(e.preventDefault(),e.stopImmediatePropagation(),be())});window.addEventListener("keydown",e=>Ki(e));window.addEventListener("keydown",e=>{if(e.key!=="PageUp"&&e.key!=="PageDown"||o.view!=="chat")return;let t=document.activeElement;if(t instanceof HTMLTextAreaElement&&t.scrollHeight>t.clientHeight)return;let n=document.querySelector(".chat-body");if(!n)return;if(e.preventDefault(),e.metaKey||e.ctrlKey){Sn(e.key==="PageDown"?"next":"prev");return}let s=n.clientHeight*.9;n.scrollBy({top:e.key==="PageDown"?s:-s,behavior:"smooth"})});})();
660
+ body ${E(w)}
661
+ #app styleH=${d} ${E(u)}
662
+ .chat-body ${E(g)}
663
+ .composer padBottom=${a} ${E(i)}`}var Rt=null;function La(){return Rt||(Rt=document.createElement("div"),Rt.style.cssText="position:fixed;top:0;left:0;width:1px;height:env(safe-area-inset-top,0px);visibility:hidden;pointer-events:none",document.documentElement.appendChild(Rt)),Rt.getBoundingClientRect().height}function Da(){let e=document.documentElement,t=new Map,n=null,s=null,r=null,i=!1,a=()=>{if(i)return;let g=window.visualViewport,p=(g?.height??window.innerHeight)+La(),h=g?.offsetTop??0;p!==n&&(n=p,e.style.setProperty("--app-height",`${p}px`));let _=Math.round(g?.width??window.innerWidth),E=Math.max(p,t.get(_)??0);t.set(_,E);let w=E-p>100;w!==s&&(s=w,e.classList.toggle("keyboard-open",w));let x=w?h:0;x!==r&&(r=x,e.style.setProperty("--app-offset-top",`${x}px`)),Qd&&Vd(p,x,w)};a(),window.visualViewport&&(window.visualViewport.addEventListener("resize",a),window.visualViewport.addEventListener("scroll",a)),window.addEventListener("resize",a),window.addEventListener("orientationchange",a),window.addEventListener("pageshow",a),window.addEventListener("focus",a),document.addEventListener("visibilitychange",a),window.addEventListener("pointerdown",()=>{i=!0},{capture:!0});let c=()=>{i&&(i=!1,a())};window.addEventListener("pointerup",c,{capture:!0}),window.addEventListener("pointercancel",c,{capture:!0});let u=1200,d=0,f=()=>{d&&cancelAnimationFrame(d);let g=performance.now()+u,p=null,h=0,_=()=>{a();let E=window.visualViewport?.height??window.innerHeight;if(p!==null&&Math.abs(E-p)<.5?h++:h=0,p=E,h>=2||performance.now()>=g){d=0;return}d=requestAnimationFrame(_)};d=requestAnimationFrame(_)};document.addEventListener("focusin",f),document.addEventListener("focusout",f),setInterval(a,1e3)}wi();Vs();yn();Da();nr(()=>y());window.addEventListener("DOMContentLoaded",async()=>{await _a(),va(),Sa(),Ta(),ot(),o.notifyOnTurnEnd&&typeof Notification<"u"&&Notification.permission==="granted"&&pn().then(()=>it()),fi(),bs(),gi(),y(),Ma(),Oa()});window.addEventListener("hashchange",()=>{bs()});function Pa(){let e=document.getElementById("app");e&&(e.style.transform="translateZ(0)",requestAnimationFrame(()=>{e.style.transform=""}))}window.addEventListener("pageshow",()=>{at(),Pa()});document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&(at(),Pa())});document.addEventListener("visibilitychange",()=>At());window.addEventListener("focus",()=>At());window.addEventListener("blur",()=>At());window.addEventListener("online",()=>bn());setInterval(()=>{o.current?.inTurn&&o.current.spinner&&y()},1e3);window.addEventListener("keydown",e=>{e.key.toLowerCase()!=="p"||!e.ctrlKey||e.metaKey||e.altKey||(e.preventDefault(),J()?Ns():o.view==="chat"&&Fe())});window.addEventListener("keydown",e=>{e.key!=="Escape"||!o.modal||(e.preventDefault(),e.stopImmediatePropagation(),be())});window.addEventListener("keydown",e=>Ki(e));window.addEventListener("keydown",e=>{if(e.key!=="PageUp"&&e.key!=="PageDown"||o.view!=="chat")return;let t=document.activeElement;if(t instanceof HTMLTextAreaElement&&t.scrollHeight>t.clientHeight)return;let n=document.querySelector(".chat-body");if(!n)return;if(e.preventDefault(),e.metaKey||e.ctrlKey){Sn(e.key==="PageDown"?"next":"prev");return}let s=n.clientHeight*.9;n.scrollBy({top:e.key==="PageDown"?s:-s,behavior:"smooth"})});})();
663
664
  </script>
664
665
  </body>
665
666
  </html>