@timqi/pier 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/agent/listing.js +14 -10
  2. package/dist/agent/pi.js +2 -2
  3. package/dist/agent/roles.js +5 -4
  4. package/dist/channels/conversations.js +4 -4
  5. package/dist/channels/lark-outbound.js +5 -0
  6. package/dist/channels/lark.js +25 -5
  7. package/dist/channels/runtime.js +47 -2
  8. package/dist/channels/slack-outbound.js +7 -0
  9. package/dist/channels/slack-thread.js +65 -0
  10. package/dist/channels/slack.js +27 -72
  11. package/dist/cli.js +7 -2
  12. package/dist/core/chain.js +27 -5
  13. package/dist/core/identity.js +2 -2
  14. package/dist/core/inbound-file.js +9 -3
  15. package/dist/core/reply.js +17 -3
  16. package/dist/core/search.js +65 -0
  17. package/dist/core/types.js +2 -0
  18. package/dist/db.js +8 -0
  19. package/dist/drain.js +1 -1
  20. package/dist/main.js +21 -5
  21. package/dist/settings.js +1 -1
  22. package/dist/socket.js +1 -0
  23. package/dist/tasks/agent.js +1 -1
  24. package/dist/tasks/callbacks.js +1 -1
  25. package/dist/tasks/execution.js +9 -3
  26. package/dist/tasks/open-items.js +53 -35
  27. package/dist/tasks/service.js +22 -1
  28. package/dist/tasks/store.js +5 -2
  29. package/dist/tasks/types.js +0 -2
  30. package/dist/tools.js +10 -3
  31. package/dist/web/public/assets/{code-BZwvPani.js → code-CWT27KH1.js} +1 -1
  32. package/dist/web/public/assets/code-CWT27KH1.js.br +0 -0
  33. package/dist/web/public/assets/code-CWT27KH1.js.gz +0 -0
  34. package/dist/web/public/assets/{explorer-DDoVzMLQ.js → explorer-BoU77faI.js} +4 -4
  35. package/dist/web/public/assets/explorer-BoU77faI.js.br +0 -0
  36. package/dist/web/public/assets/explorer-BoU77faI.js.gz +0 -0
  37. package/dist/web/public/assets/highlight-CDSk2hRJ.js +72 -0
  38. package/dist/web/public/assets/highlight-CDSk2hRJ.js.br +0 -0
  39. package/dist/web/public/assets/highlight-CDSk2hRJ.js.gz +0 -0
  40. package/dist/web/public/assets/index-DqLJpDE0.js +14 -0
  41. package/dist/web/public/assets/index-DqLJpDE0.js.br +0 -0
  42. package/dist/web/public/assets/index-DqLJpDE0.js.gz +0 -0
  43. package/dist/web/public/assets/index-JN0Ic8K5.css +2 -0
  44. package/dist/web/public/assets/index-JN0Ic8K5.css.br +0 -0
  45. package/dist/web/public/assets/index-JN0Ic8K5.css.gz +0 -0
  46. package/dist/web/public/assets/settings-BprIId_R.js +9 -0
  47. package/dist/web/public/assets/settings-BprIId_R.js.br +0 -0
  48. package/dist/web/public/assets/settings-BprIId_R.js.gz +0 -0
  49. package/dist/web/public/index.html +3 -4
  50. package/dist/web/public/index.html.br +0 -0
  51. package/dist/web/public/index.html.gz +0 -0
  52. package/dist/web/push.js +2 -2
  53. package/dist/web/server.js +2 -4
  54. package/dist/web/session-state.js +1 -2
  55. package/package.json +1 -1
  56. package/skills/pier-help/SKILL.md +6 -1
  57. package/skills/pier-search/SKILL.md +27 -0
  58. package/skills/pier-tasks/SKILL.md +17 -3
  59. package/dist/web/public/assets/code-BZwvPani.js.br +0 -0
  60. package/dist/web/public/assets/code-BZwvPani.js.gz +0 -0
  61. package/dist/web/public/assets/explorer-DDoVzMLQ.js.br +0 -0
  62. package/dist/web/public/assets/explorer-DDoVzMLQ.js.gz +0 -0
  63. package/dist/web/public/assets/highlight-5Bl8zZ8q.js +0 -72
  64. package/dist/web/public/assets/highlight-5Bl8zZ8q.js.br +0 -0
  65. package/dist/web/public/assets/highlight-5Bl8zZ8q.js.gz +0 -0
  66. package/dist/web/public/assets/index-BpFzCwlo.js +0 -7
  67. package/dist/web/public/assets/index-BpFzCwlo.js.br +0 -0
  68. package/dist/web/public/assets/index-BpFzCwlo.js.gz +0 -0
  69. package/dist/web/public/assets/index-wAGxFFPj.css +0 -2
  70. package/dist/web/public/assets/index-wAGxFFPj.css.br +0 -0
  71. package/dist/web/public/assets/index-wAGxFFPj.css.gz +0 -0
  72. package/dist/web/public/assets/report-zjE8Bt8S.js +0 -8
  73. package/dist/web/public/assets/report-zjE8Bt8S.js.br +0 -0
  74. package/dist/web/public/assets/report-zjE8Bt8S.js.gz +0 -0
  75. package/dist/web/public/assets/settings-Cv7rbeqf.js +0 -9
  76. package/dist/web/public/assets/settings-Cv7rbeqf.js.br +0 -0
  77. package/dist/web/public/assets/settings-Cv7rbeqf.js.gz +0 -0
@@ -1,72 +0,0 @@
1
- var e={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},t=([e,n,r])=>{let i=document.createElementNS(`http://www.w3.org/2000/svg`,e);return Object.keys(n).forEach(e=>{i.setAttribute(e,String(n[e]))}),r?.length&&r.forEach(e=>{let n=t(e);i.appendChild(n)}),i},n=(n,r={})=>t([`svg`,{...e,...r},n]),r=[[`path`,{d:`m5 12 7-7 7 7`}],[`path`,{d:`M12 19V5`}]],i=[[`path`,{d:`M20 6 9 17l-5-5`}]],a=[[`path`,{d:`m6 9 6 6 6-6`}]],o=[[`path`,{d:`m15 18-6-6 6-6`}]],s=[[`path`,{d:`m9 18 6-6-6-6`}]],c=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`}],[`path`,{d:`M12 17h.01`}]],l=[[`circle`,{cx:`12`,cy:`12`,r:`10`}],[`path`,{d:`M12 6v6l4 2`}]],u=[[`circle`,{cx:`12`,cy:`12`,r:`1`}],[`circle`,{cx:`19`,cy:`12`,r:`1`}],[`circle`,{cx:`5`,cy:`12`,r:`1`}]],d=[[`path`,{d:`M5 12h14`}],[`path`,{d:`M12 5v14`}]],ee=[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`}],[`path`,{d:`M21 3v5h-5`}]],te=[[`path`,{d:`m21 21-4.34-4.34`}],[`circle`,{cx:`11`,cy:`11`,r:`8`}]],ne=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}]],re=[[`path`,{d:`M9 14 4 9l5-5`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`}]],f=[[`path`,{d:`M18 6 6 18`}],[`path`,{d:`m6 6 12 12`}]],p=(e,t=`h-3.5 w-3.5`)=>n(e,{class:`flex-none ${t}`,"aria-hidden":`true`,focusable:`false`});function ie(){let e={ArrowUp:r,ChevronLeft:o,ChevronRight:s,Clock:l,Ellipsis:u,Plus:d,RotateCw:ee,Search:te,Square:ne,Undo2:re,X:f};for(let t of document.querySelectorAll(`[data-icon]`)){let n=e[t.dataset.icon];if(!n)throw Error(`Unknown shell icon: ${t.dataset.icon}`);t.replaceChildren(p(n,`h-full w-full`))}let t=p(a);t.setAttribute(`stroke`,`#737373`),document.documentElement.style.setProperty(`--select-chevron`,`url("data:image/svg+xml,${encodeURIComponent(t.outerHTML)}")`)}var m=33554432,ae=e=>`[${e.split(`/`).pop()??`file`}](file://${encodeURI(e).replace(/\(/g,`%28`).replace(/\)/g,`%29`)})`,oe=/^ {0,3}(`{3,}|~{3,})/;function se(e){let t=[],n,r=0;for(let i of e.split(`
2
- `)){let e=oe.exec(i)?.[1];if(n!==void 0)t.push([r,r+i.length]),e&&e[0]===n[0]&&e.length>=n.length&&(n=void 0);else if(e)n=e,t.push([r,r+i.length]);else{let e=[...i.matchAll(/`+/g)];for(let n=0;n<e.length;n++){let i=e[n],a=n+1;for(;a<e.length&&e[a][0].length!==i[0].length;)a++;if(a===e.length)break;t.push([r+i.index,r+e[a].index+e[a][0].length]),n=a}}r+=i.length+1}return t}function ce(e,t,n){let r=se(e),i=``,a=0;for(let o of e.matchAll(t)){let t=o.index;r.some(([e,n])=>t>=e&&t<n)||(i+=e.slice(a,t)+n(o),a=t+o[0].length)}return i+e.slice(a)}var h=/^\[[^\]\n]*\]\(\s*<?file:\/\/(\/[^)>\s]*)>?\s*\)$/;function le(e){let t=e.split(`
3
- `),n=t.length;for(;n>0&&h.test(t[n-1].trim());)n--;let r=t.slice(n).map(e=>{let t=h.exec(e.trim())[1];try{return decodeURIComponent(t)}catch{return t}});return{text:t.slice(0,n).join(`
4
- `).trimEnd(),paths:r}}var ue=/[\u201c\u201d"\u2018\u2019'()\uff08\uff09\u300c\u300d\u300e\u300f\u3010\u3011\u300a\u300b\u3008\u3009[\]]/;function de(e){return ce(e,/\*\*(\S|\S[\s\S]*?\S)\*\*/g,([e,t=``])=>{let n=``,r=``,i=t;for(;i.length>1&&ue.test(i[0]);)n+=i[0],i=i.slice(1);for(;i.length>1&&ue.test(i.at(-1));)r=i.at(-1)+r,i=i.slice(0,-1);return n||r?`${n}**${i}**${r}`:e})}var fe=e=>!e.text.trim()&&e.suggestions.length===0,pe=e=>e===`xhigh`?`Extra high`:e[0].toUpperCase()+e.slice(1);function me(e,t){let n=Math.round((t-e)/6e4);return n<1?`now`:n<60?`${String(n)}m`:n<1440?`${String(Math.round(n/60))}h`:`${String(Math.round(n/1440))}d`}var he=(e,t)=>{let n=me(e,t);return n===`now`?`just now`:`${n} ago`},ge=e=>{if(e<1e3)return String(e);let t=e/1e3;return t>=9.95?`${Math.round(t)}K`:`${t.toFixed(1)}K`},_e=/(?:^|\n)[ \t]*-{3,}[ \t]*\r?\n((?:[ \t]*\[[^\]\r\n]+\][ \t]*(?:[||][ \t]*)?)+)\s*$/,ve=/\[([^\]\r\n]+)\]/g,ye=5,be=String.raw`[\u200B-\u200D\u2060\uFEFF]*`,g=e=>e.split(``).join(be),xe=RegExp(`${g(`<silent>`)}([\\s\\S]*?)${g(`</silent>`)}`,`gi`),_=RegExp(`<(\\/?)(${[`silent`,`open`,`done`].map(g).join(`|`)})${be}>`,`gi`),Se=new RegExp(be.slice(0,-1),`g`),Ce=RegExp(`${g(`<open>`)}([\\s\\S]*?)${g(`</open>`)}[ \\t]*\\n?|${g(`<done>`)}([\\s\\S]*?)${g(`</done>`)}[ \\t]*\\n?`,`gi`);function we(e){let t=[...e.matchAll(xe)].map(e=>(e[1]??``).trim()).filter(Boolean);return t.length?t.join(` · `):void 0}function Te(e,t){let n=Ee(e),r=we(e),i=_e.exec(n);if(!i?.[1])return{text:n,suggestions:[],meta:t,silence:r};let a=[...i[1].matchAll(ve)].map(e=>(e[1]??``).trim()).filter(Boolean).slice(0,ye);return a.length?{text:n.slice(0,i.index).trimEnd(),suggestions:a,meta:t,silence:r}:{text:n,suggestions:[],meta:t,silence:r}}var Ee=e=>de(ce(e.replace(xe,``),Ce,()=>``).trim()),De=/^(?:\s|[-*+>]|\d+[.)])/;function Oe(e,t=0){let n=e.lastIndexOf(`
5
- `)+1,r=``,i=``,a=t,o=-1,s=``;for(let c=t;c<n;){let t=e.indexOf(`
6
- `,c),n=e.slice(c,t);c=t+1;let l=/^\s*(`{3,}|~{3,})(.*)$/.exec(n);if(!r&&!i&&!n.trim()){o<0&&s&&(o=c);continue}!r&&!i&&o>=0&&!(De.test(s)&&De.test(n))&&(a=o);let u=l?.[1]??``;if(!r&&u&&!i?r=u:r&&u[0]===r[0]&&u.length>=r.length&&!l?.[2]?.trim()&&(r=``),!r&&(!u||i))for(let e of n.matchAll(_)){let t=e[2].replace(Se,``).toLowerCase();!e[1]&&!i?i=t:e[1]&&t===i&&(i=``)}o=-1,s=n}return a}function ke(e){let t,n=!1;return()=>(n=!0,t??=(async()=>{for(;n;)n=!1,await e()})().finally(()=>{t=void 0}))}var Ae=(e,t)=>({method:t,headers:{"content-type":`application/json`},body:JSON.stringify(e)}),v=(e,t,n=`POST`)=>fetch(e,Ae(t,n)),je=(e,t,n,r=`POST`)=>Me(e,n,Ae(t,r));async function y(e,t){return(await e.json().catch(()=>({}))).error??`${t} (${e.status})`}async function Me(e,t,n){let r;try{r=await fetch(e,n)}catch(e){return{ok:!1,error:`${t}: ${String(e)}`}}if(!r.ok)return{ok:!1,error:await y(r,t)};try{return{ok:!0,value:await r.json()}}catch(e){return{ok:!1,error:`${t}: ${String(e)}`}}}async function b(e,t,n){let r=await Me(e,t,n);if(!r.ok)throw Error(r.error);return r.value}async function Ne(e,t,n){try{let r=await fetch(e,{method:t});return r.ok?void 0:await y(r,n)}catch(e){return`${n}: ${String(e)}`}}function Pe(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function x(e){if(Array.isArray(e))return e}function Fe(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Ie(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
7
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Le(e,t){return x(e)||Fe(e,t)||Re(e,t)||Ie()}function Re(e,t){if(e){if(typeof e==`string`)return Pe(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Pe(e,t):void 0}}var ze=Object.entries,S=Object.setPrototypeOf,C=Object.isFrozen,Be=Object.getPrototypeOf,Ve=Object.getOwnPropertyDescriptor,w=Object.freeze,T=Object.seal,He=Object.create,Ue=typeof Reflect<`u`&&Reflect,We=Ue.apply,Ge=Ue.construct;w||=function(e){return e},T||=function(e){return e},We||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Ge||=function(e){return new e(...[...arguments].slice(1))};var Ke=O(Array.prototype.forEach),qe=O(Array.prototype.lastIndexOf),Je=O(Array.prototype.pop),Ye=O(Array.prototype.push),Xe=O(Array.prototype.splice),Ze=Array.isArray,Qe=O(String.prototype.toLowerCase),$e=O(String.prototype.toString),et=O(String.prototype.match),tt=O(String.prototype.replace),nt=O(String.prototype.indexOf),rt=O(String.prototype.trim),it=O(Number.prototype.toString),at=O(Boolean.prototype.toString),ot=typeof BigInt>`u`?null:O(BigInt.prototype.toString),st=typeof Symbol>`u`?null:O(Symbol.prototype.toString),E=O(Object.prototype.hasOwnProperty),ct=O(Object.prototype.toString),D=O(RegExp.prototype.test),lt=ut(TypeError);function O(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return We(e,t,n)}}function ut(e){return function(){return Ge(e,[...arguments])}}function k(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Qe;if(S&&S(e,null),!Ze(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(C(t)||(t[r]=e),i=e)}e[i]=!0}return e}function dt(e){for(let t=0;t<e.length;t++)E(e,t)||(e[t]=null);return e}function A(e){let t=He(null);for(let r of ze(e)){var n=Le(r,2);let i=n[0],a=n[1];E(e,i)&&(t[i]=Ze(a)?dt(a):a&&typeof a==`object`&&a.constructor===Object?A(a):a)}return t}function ft(e){switch(typeof e){case`string`:return e;case`number`:return it(e);case`boolean`:return at(e);case`bigint`:return ot?ot(e):`0`;case`symbol`:return st?st(e):`Symbol()`;case`undefined`:return ct(e);case`function`:case`object`:{if(e===null)return ct(e);let t=e,n=j(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:ct(e)}return ct(e)}default:return ct(e)}}function j(e,t){for(;e!==null;){let n=Ve(e,t);if(n){if(n.get)return O(n.get);if(typeof n.value==`function`)return O(n.value)}e=Be(e)}function n(){return null}return n}function pt(e){try{return D(e,``),!0}catch{return!1}}var mt=w(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),ht=w(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),gt=w([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),_t=w([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),vt=w(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),yt=w([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),bt=w([`#text`]),xt=w(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),St=w(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),Ct=w(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),wt=w([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),Tt=T(/{{[\w\W]*|^[\w\W]*}}/g),Et=T(/<%[\w\W]*|^[\w\W]*%>/g),Dt=T(/\${[\w\W]*/g),Ot=T(/^data-[\-\w.\u00B7-\uFFFF]+$/),kt=T(/^aria-[\-\w]+$/),At=T(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),jt=T(/^(?:\w+script|data):/i),Mt=T(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Nt=T(/^html$/i),Pt=T(/^[a-z][.\w]*(-[.\w]+)+$/i),Ft=T(/<[/\w!]/g),It=T(/<[/\w]/g),Lt=T(/<\/no(script|embed|frames)/i),Rt=T(/\/>/i),M={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},N=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],zt=w(k({},N)),Bt=function(){let e={};return Ke(N,t=>{e[t]=T(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),w(e)}(),Vt=function(){return typeof window>`u`?null:window},Ht=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Ut=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},P=function(e,t,n,r){return E(e,t)&&Ze(e[t])?k(r.base?A(r.base):{},e[t],r.transform):n},Wt=function(e,t,n){let r=E(e,t)?e[t]:void 0;return r&&typeof r==`object`?A(r):n()};function Gt(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Vt(),t=e=>Gt(e);if(t.version=`3.4.14`,t.removed=[],!e||!e.document||e.document.nodeType!==M.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,ee=j(d,`cloneNode`),te=j(d,`remove`),ne=j(d,`nextSibling`),re=j(d,`childNodes`),f=j(d,`parentNode`),p=j(d,`shadowRoot`),ie=j(d,`attributes`),m=o&&o.prototype?j(o.prototype,`nodeType`):null,ae=o&&o.prototype?j(o.prototype,`nodeName`):null,oe=o&&o.prototype?j(o.prototype,`ownerDocument`):null,se=function(e){return m?m(e):e.nodeType},ce=function(e){return ae?ae(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let h,le=``,ue,de=!1,fe=0,pe=function(){if(fe>0)throw lt(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},me=function(e){pe(),fe++;try{return h.createHTML(e)}finally{fe--}},he=function(e){pe(),fe++;try{return h.createScriptURL(e)}finally{fe--}},ge=function(){return de||=(ue=Ht(u,i),!0),ue},_e=n,ve=_e.implementation,ye=_e.createNodeIterator,be=_e.createDocumentFragment,g=_e.getElementsByTagName,xe=r.importNode,_=Ut();t.isSupported=typeof ze==`function`&&typeof f==`function`&&ve&&ve.createHTMLDocument!==void 0;let Se=Tt,Ce=Et,we=Dt,Te=Ot,Ee=kt,De=jt,Oe=Mt,ke=Pt,Ae=At,v=null,je=k({},[...mt,...ht,...gt,...vt,...bt]),y=null,Me=k({},[...xt,...St,...Ct,...wt]),b=Object.seal(He(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ne=null,Pe=null,x=Object.seal(He(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Fe=!0,Ie=!0,Le=!1,Re=!0,S=!1,C=!0,Be=!1,Ve=!1,Ue=null,We=null,Ge=!1,it=!1,at=!1,ot=!1,st=!0,ct=!1,O=`user-content-`,ut=!0,dt=!1,N={},F=null,Kt=k({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),I=null,qt=k({},[`audio`,`video`,`img`,`source`,`image`,`track`]),L=null,R=k({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),z=`http://www.w3.org/1998/Math/MathML`,Jt=`http://www.w3.org/2000/svg`,B=`http://www.w3.org/1999/xhtml`,Yt=B,Xt=!1,Zt=null,Qt=k({},[z,Jt,B],$e),$t=w([`mi`,`mo`,`mn`,`ms`,`mtext`]),en=k({},$t),tn=w([`annotation-xml`]),nn=k({},tn),rn=k({},[`title`,`style`,`font`,`a`,`script`]),V=null,an=[`application/xhtml+xml`,`text/html`],H=null,on=null,sn=n.createElement(`form`),cn=function(e){return e instanceof RegExp||e instanceof Function},ln=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(on&&on===e)return;(!e||typeof e!=`object`)&&(e={}),e=A(e),V=an.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,H=V===`application/xhtml+xml`?$e:Qe,v=P(e,`ALLOWED_TAGS`,je,{transform:H}),y=P(e,`ALLOWED_ATTR`,Me,{transform:H}),Zt=P(e,`ALLOWED_NAMESPACES`,Qt,{transform:$e}),L=P(e,`ADD_URI_SAFE_ATTR`,R,{transform:H,base:R}),I=P(e,`ADD_DATA_URI_TAGS`,qt,{transform:H,base:qt}),F=P(e,`FORBID_CONTENTS`,Kt,{transform:H}),Ne=P(e,`FORBID_TAGS`,A({}),{transform:H}),Pe=P(e,`FORBID_ATTR`,A({}),{transform:H}),N=E(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?A(e.USE_PROFILES):e.USE_PROFILES:!1,Fe=e.ALLOW_ARIA_ATTR!==!1,Ie=e.ALLOW_DATA_ATTR!==!1,Le=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Re=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,S=e.SAFE_FOR_TEMPLATES||!1,C=e.SAFE_FOR_XML!==!1,Be=e.WHOLE_DOCUMENT||!1,it=e.RETURN_DOM||!1,at=e.RETURN_DOM_FRAGMENT||!1,ot=e.RETURN_TRUSTED_TYPE||!1,Ge=e.FORCE_BODY||!1,st=e.SANITIZE_DOM!==!1,ct=e.SANITIZE_NAMED_PROPS||!1,ut=e.KEEP_CONTENT!==!1,dt=e.IN_PLACE||!1,Ae=pt(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:At,Yt=typeof e.NAMESPACE==`string`?e.NAMESPACE:B,en=Wt(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>k({},$t)),nn=Wt(e,`HTML_INTEGRATION_POINTS`,()=>k({},tn));let t=Wt(e,`CUSTOM_ELEMENT_HANDLING`,()=>He(null));if(b=He(null),E(t,`tagNameCheck`)&&cn(t.tagNameCheck)&&(b.tagNameCheck=t.tagNameCheck),E(t,`attributeNameCheck`)&&cn(t.attributeNameCheck)&&(b.attributeNameCheck=t.attributeNameCheck),E(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(b.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),T(b),S&&(Ie=!1),at&&(it=!0),N&&(v=k({},bt),y=He(null),N.html===!0&&(k(v,mt),k(y,xt)),N.svg===!0&&(k(v,ht),k(y,St),k(y,wt)),N.svgFilters===!0&&(k(v,gt),k(y,St),k(y,wt)),N.mathMl===!0&&(k(v,vt),k(y,Ct),k(y,wt))),x.tagCheck=null,x.attributeCheck=null,E(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?x.tagCheck=e.ADD_TAGS:Ze(e.ADD_TAGS)&&(v===je&&(v=A(v)),k(v,e.ADD_TAGS,H))),E(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?x.attributeCheck=e.ADD_ATTR:Ze(e.ADD_ATTR)&&(y===Me&&(y=A(y)),k(y,e.ADD_ATTR,H))),E(e,`ADD_FORBID_CONTENTS`)&&Ze(e.ADD_FORBID_CONTENTS)&&(F===Kt&&(F=A(F)),k(F,e.ADD_FORBID_CONTENTS,H)),ut&&(v[`#text`]=!0),Be&&k(v,[`html`,`head`,`body`]),v.table&&(k(v,[`tbody`]),delete Ne.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw lt(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw lt(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=h;h=e.TRUSTED_TYPES_POLICY;try{le=me(``)}catch(e){throw h=t,e}}else e.TRUSTED_TYPES_POLICY===null?(h=void 0,le=``):(h===void 0&&(h=ge()),h&&typeof le==`string`&&(le=me(``)));w&&w(e),on=e},un=k({},[...ht,...gt,..._t]),dn=k({},[...vt,...yt]),fn=function(e,t,n){return t.namespaceURI===B?e===`svg`:t.namespaceURI===z?e===`svg`&&(n===`annotation-xml`||en[n]):!!un[e]},pn=function(e,t,n){return t.namespaceURI===B?e===`math`:t.namespaceURI===Jt?e===`math`&&nn[n]:!!dn[e]},mn=function(e,t,n){return t.namespaceURI===Jt&&!nn[n]||t.namespaceURI===z&&!en[n]?!1:!dn[e]&&(rn[e]||!un[e])},hn=function(e){let t=f(e);(!t||!t.tagName)&&(t={namespaceURI:Yt,tagName:`template`});let n=Qe(e.tagName),r=Qe(t.tagName);return Zt[e.namespaceURI]?e.namespaceURI===Jt?fn(n,t,r):e.namespaceURI===z?pn(n,t,r):e.namespaceURI===B?mn(n,t,r):!!(V===`application/xhtml+xml`&&Zt[e.namespaceURI]):!1},U=function(e){Ye(t.removed,{element:e});try{f(e).removeChild(e)}catch{if(te(e),!f(e))throw lt(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},gn=function(e,t,n){try{e.removeAttributeNode(t)}catch{try{e.removeAttribute(n)}catch{}}},_n=function(e){bn(e);let t=re(e);if(t){let e=[];Ke(t,t=>{Ye(e,t)}),Ke(e,e=>{try{te(e)}catch{}})}let n=ie(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&gn(e,r,i)}},vn=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}Ye(t.removed,{attribute:r||null,from:n});try{r?n.removeAttributeNode(r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(it||at)try{U(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},yn=function(e){let t=ie(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||y[H(i)]||gn(e,r,i)}},bn=function(e){let t=[e];for(;t.length>0;){let e=t.pop();se(e)===M.element&&yn(e);let n=re(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},W=function(e,t){return C?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},xn=function(e){if(!C)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=se(e);if(n===M.processingInstruction||n===M.comment&&D(It,e.data)){try{te(e)}catch{}continue}if(n===M.element){let t=e,n=H(ce(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&W(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=re(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},Sn=function(e){let t=null,r=null;if(Ge)e=`<remove></remove>`+e;else{let t=et(e,/^[\r\n\t ]+/);r=t&&t[0]}V===`application/xhtml+xml`&&Yt===B&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=h?me(e):e;if(Yt===B)try{t=new l().parseFromString(i,V)}catch{}if(!t||!t.documentElement){t=ve.createDocument(Yt,`template`,null);try{t.documentElement.innerHTML=Xt?le:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Yt===B?g.call(t,Be?`html`:`body`)[0]:Be?t.documentElement:a},Cn=function(e){let t=oe?oe(e):e.ownerDocument;return ye.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},wn=function(e){return e=tt(e,Se,` `),e=tt(e,Ce,` `),e=tt(e,we,` `),e},Tn=function(e){e.normalize();let t=oe?oe(e):e.ownerDocument,n=ye.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=wn(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&Ke(i,e=>{Dn(e.content)&&Tn(e.content)})},En=function(e){let t=ae?ae(e):null;return typeof t!=`string`||H(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==ie(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==m(e)||e.childNodes!==re(e)},Dn=function(e){if(!m||typeof e!=`object`||!e)return!1;try{return m(e)===M.documentFragment}catch{return!1}},On=function(e){if(!m||typeof e!=`object`||!e)return!1;try{return typeof m(e)==`number`}catch{return!1}};function G(e,n,r){e.length!==0&&Ke(e,e=>{e.call(t,n,r,on)})}let kn=function(e,t){return!!(C&&e.hasChildNodes()&&!On(e.firstElementChild)&&D(Ft,e.textContent)&&D(Ft,e.innerHTML)||C&&e.namespaceURI===B&&zt[t]&&(On(e.firstElementChild)||typeof e.textContent==`string`&&D(Bt[t],e.textContent))||e.nodeType===M.processingInstruction||C&&e.nodeType===M.comment&&D(It,e.data))},An=function(e,t){return e instanceof RegExp?D(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},jn=function(e,t,n){if(!Ne[t]&&Ln(t)&&An(b.tagNameCheck,t))return!1;if(ut&&!F[t]){let t=f(e),r=re(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?ee(r[a],!0):r[a];t.insertBefore(i,ne(e))}}}return U(e),!0},Mn=function(e,t,n,r){return e.length===0?t:t===n||t===r?A(t):t},Nn=function(e,t){return e===t||f(e)!==null?!1:(dt&&bn(e),!0)},Pn=function(e,n){if(G(_.beforeSanitizeElements,e,null),Nn(e,n))return!0;if(En(e))return U(e),!0;let r=H(ce(e));if(v=Mn(_.uponSanitizeElement,v,je,Ue),G(_.uponSanitizeElement,e,{tagName:r,allowedTags:v}),Nn(e,n))return!0;if(kn(e,r))return U(e),!0;if(Ne[r]||!(x.tagCheck instanceof Function&&x.tagCheck(r))&&!v[r]){let t=jn(e,r,n);return t===!1&&G(_.afterSanitizeElements,e,null),t}if(se(e)===M.element&&!hn(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&D(Lt,e.innerHTML))return U(e),!0;if(S&&e.nodeType===M.text){let n=wn(e.textContent);e.textContent!==n&&(Ye(t.removed,{element:e.cloneNode()}),e.textContent=n)}return G(_.afterSanitizeElements,e,null),!1},Fn=function(e,t,r){if(Pe[t]||W(t,e)||st&&(t===`id`||t===`name`)&&(r in n||r in sn))return!1;let i=y[t]||x.attributeCheck instanceof Function&&x.attributeCheck(t,e);return Ie&&D(Te,t)||Fe&&D(Ee,t)?!0:i?L[t]||D(Ae,tt(r,Oe,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&nt(r,`data:`)===0&&I[e]||Le&&!D(De,tt(r,Oe,``))?!0:!r:Ln(e)&&An(b.tagNameCheck,e)&&An(b.attributeNameCheck,t,e)||t===`is`&&b.allowCustomizedBuiltInElements&&An(b.tagNameCheck,r)},In=k({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Ln=function(e){return!In[Qe(e)]&&D(ke,e)},Rn=function(e,t,n,r){if(h&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return me(r);case`TrustedScriptURL`:return he(r)}return r},zn=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),En(e)?U(e):Je(t.removed)}catch{vn(n,e)}},Bn=function(e){G(_.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||En(e))return;y=Mn(_.uponSanitizeAttribute,y,Me,We);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:y,forceKeepAttr:void 0},r=t.length,i=H(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=H(o),u=c,d=o===`value`?u:rt(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,G(_.uponSanitizeAttribute,e,n),d=n.attrValue,ct&&(l===`id`||l===`name`)&&nt(d,O)!==0&&(vn(o,e,a),d=O+d),C&&D(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){vn(o,e,a);continue}if(l===`attributename`&&et(d,`href`)){vn(o,e,a);continue}if(!n.forceKeepAttr){if(!n.keepAttr){vn(o,e,a);continue}if(!Re&&D(Rt,d)){vn(o,e,a);continue}if(S&&(d=wn(d)),!Fn(i,l,d)){vn(o,e,a);continue}d=Rn(i,l,s,d),d!==u&&zn(e,o,s,d)}}G(_.afterSanitizeAttributes,e,null)},Vn=function(e){let t=null,n=Cn(e);for(G(_.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(G(_.uponSanitizeShadowNode,t,null),Pn(t,e),Bn(t),Dn(t.content)&&Vn(t.content),se(t)===M.element){let e=p(t);Dn(e)&&(Hn(e),Vn(e))}G(_.afterSanitizeShadowDOM,e,null)},Hn=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Vn(e.shadow);continue}let n=e.node,r=se(n)===M.element,i=re(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=ae?ae(n):null;if(typeof e==`string`&&H(e)===`template`){let e=n.content;Dn(e)&&t.push({node:e,shadow:null})}}if(r){let e=p(n);Dn(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Xt=!e,Xt&&(e=`<!-->`),typeof e!=`string`&&!On(e)&&(e=ft(e),typeof e!=`string`))throw lt(`dirty is not a string, aborting`);if(!t.isSupported)return e;Ve?(v=Ue,y=We):ln(n),(_.uponSanitizeElement.length>0||_.uponSanitizeAttribute.length>0)&&(v=A(v)),_.uponSanitizeAttribute.length>0&&(y=A(y)),t.removed=[];let c=dt&&typeof e!=`string`&&On(e);if(c){xn(e);let t=ce(e);if(typeof t==`string`){let n=H(t);if(!v[n]||Ne[n])throw _n(e),lt(`root node is forbidden and cannot be sanitized in-place`)}if(En(e))throw _n(e),lt(`root node is clobbered and cannot be sanitized in-place`);try{Hn(e)}catch(t){throw _n(e),t}}else if(On(e))i=Sn(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===M.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Hn(a);else{if(!it&&!S&&!Be&&e.indexOf(`<`)===-1)return h&&ot?me(e):e;if(i=Sn(e),!i)return it?null:ot?le:``}i&&Ge&&U(i.firstChild);let l=c?e:i;try{let e=Cn(l);for(;o=e.nextNode();)Pn(o,l),Bn(o),Dn(o.content)&&Vn(o.content)}catch(n){throw c&&(_n(e),Ke(t.removed,e=>{e.element&&bn(e.element)})),n}if(c)return Ke(t.removed,e=>{e.element&&bn(e.element)}),S&&Tn(e),e;if(it){if(S&&Tn(i),at)for(s=be.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(y.shadowroot||y.shadowrootmode)&&(s=xe.call(r,s,!0)),s}let u=Be?i.outerHTML:i.innerHTML;return Be&&v[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&D(Nt,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
8
- `+u),S&&(u=wn(u)),h&&ot?me(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ln(e),Ve=!0,Ue=v,We=y},t.clearConfig=function(){on=null,Ve=!1,Ue=null,We=null,h=ue,le=``},t.isValidAttribute=function(e,t,n){on||ln({});let r=H(e),i=H(t);return Fn(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&E(_,e)&&Ye(_[e],t)},t.removeHook=function(e,t){if(E(_,e)){if(t!==void 0){let n=qe(_[e],t);return n===-1?void 0:Xe(_[e],n,1)[0]}return Je(_[e])}},t.removeHooks=function(e){E(_,e)&&(_[e]=[])},t.removeAllHooks=function(){_=Ut()},t}var F=Gt();function Kt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var I=Kt();function qt(e){I=e}var L={exec:()=>null};function R(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function z(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(B.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Jt=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),B={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:R(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:R(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:R(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:R(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:R(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:R(e=>RegExp(`^ {0,${e}}>`))},Yt=/^(?:[ \t]*(?:\n|$))+/,Xt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Zt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Qt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,$t=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,en=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,tn=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,nn=z(tn).replace(/bull/g,en).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),rn=z(tn).replace(/bull/g,en).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),V=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,an=/^[^\n]+/,H=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,on=z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,H).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),sn=z(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,en).getRegex(),cn=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,ln=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,un=z(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,ln).replace(`tag`,cn).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),dn=e=>z(V).replace(`hr`,Qt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,cn).getRegex(),fn=dn(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),pn=dn(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),mn={blockquote:z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,pn).getRegex(),code:Xt,def:on,fences:Zt,heading:$t,hr:Qt,html:un,lheading:nn,list:sn,newline:Yt,paragraph:fn,table:L,text:an},hn=z(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Qt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,cn).getRegex(),U={...mn,lheading:rn,table:hn,paragraph:z(V).replace(`hr`,Qt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,hn).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,cn).getRegex()},gn={...mn,html:z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,ln).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:L,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:z(V).replace(`hr`,Qt).replace(`heading`,` *#{1,6} *[^
9
- ]`).replace(`lheading`,nn).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},_n=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,vn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,yn=/^( {2,}|\\)\n(?!\s*$)/,bn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,W=/[\p{P}\p{S}]/u,xn=/[\s\p{P}\p{S}]/u,Sn=/[^\s\p{P}\p{S}]/u,Cn=z(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,xn).getRegex(),wn=/[\p{Pi}\p{Ps}"']/u,Tn=/(?!~)[\p{P}\p{S}]/u,En=/(?!~)[\s\p{P}\p{S}]/u,Dn=/(?:[^\s\p{P}\p{S}]|~)/u,On=z(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Jt?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),G=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,kn=z(G,`u`).replace(/punct/g,W).getRegex(),An=z(G,`u`).replace(/punct/g,Tn).getRegex(),jn=z(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,wn).replace(/punct/g,W).getRegex(),Mn=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,Nn=z(Mn,`gu`).replace(/notPunctSpace/g,Sn).replace(/punctSpace/g,xn).replace(/punct/g,W).getRegex(),Pn=z(Mn,`gu`).replace(/notPunctSpace/g,Dn).replace(/punctSpace/g,En).replace(/punct/g,Tn).getRegex(),Fn=z(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Sn).replace(/punctSpace/g,xn).replace(/punct/g,W).getRegex(),In=z(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Sn).replace(/punctSpace/g,xn).replace(/punct/g,W).getRegex(),Ln=z(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Sn).replace(/punctSpace/g,xn).replace(/punct/g,W).getRegex(),Rn=z(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,W).getRegex(),zn=z(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Sn).replace(/punctSpace/g,xn).replace(/punct/g,W).getRegex(),Bn=z(/\\(punct)/,`gu`).replace(/punct/g,W).getRegex(),Vn=z(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Hn=z(ln).replace(`(?:-->|$)`,`-->`).getRegex(),Un=z(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Hn).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Wn=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Gn=z(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Wn).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Kn=z(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Wn).replace(`ref`,H).getRegex(),qn=z(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,H).getRegex(),Jn=z(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,Kn).replace(`nolink`,qn).getRegex(),Yn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Xn={_backpedal:L,anyPunctuation:Bn,autolink:Vn,blockSkip:On,br:yn,code:vn,del:L,delLDelim:L,delRDelim:L,emStrongLDelim:kn,emStrongRDelimAst:Nn,emStrongRDelimUnd:In,escape:_n,link:Gn,nolink:qn,punctuation:Cn,reflink:Kn,reflinkSearch:Jn,tag:Un,text:bn,url:L},Zn={...Xn,emStrongLDelim:jn,emStrongRDelimAst:Fn,emStrongRDelimUnd:Ln,link:z(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Wn).getRegex(),reflink:z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Wn).getRegex()},Qn={...Xn,emStrongRDelimAst:Pn,emStrongLDelim:An,delLDelim:Rn,delRDelim:zn,url:z(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,Yn).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:z(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,Yn).getRegex()},$n={...Qn,br:z(yn).replace(`{2,}`,`*`).getRegex(),text:z(Qn.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},er={normal:mn,gfm:U,pedantic:gn},tr={normal:Xn,gfm:Qn,breaks:$n,pedantic:Zn},nr={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},rr=e=>nr[e];function K(e,t){if(t){if(B.escapeTest.test(e))return e.replace(B.escapeReplace,rr)}else if(B.escapeTestNoEncode.test(e))return e.replace(B.escapeReplaceNoEncode,rr);return e}function ir(e){try{e=encodeURI(e).replace(B.percentDecode,`%`)}catch{return null}return e}function ar(e,t){let n=e.replace(B.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(B.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(B.slashPipe,`|`);return n}function or(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function sr(e){let t=e.split(`
10
- `),n=t.length-1;for(;n>=0&&B.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
11
- `)}function cr(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]===`\\`)r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function lr(e,t=0){let n=t,r=``;for(let t of e)if(t===` `){let e=4-n%4;r+=` `.repeat(e),n+=e}else r+=t,n++;return r}function ur(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,`$1`);r.state.inLink=!0;let c={type:e[0].charAt(0)===`!`?`image`:`link`,raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,c}function dr(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
12
- `).map(e=>{let t=e.match(n.other.beginningSpace);if(t===null)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(`
13
- `)}var fr=class{options;rules;lexer;constructor(e){this.options=e||I}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:`space`,raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=this.options.pedantic?t[0]:sr(t[0]);return{type:`code`,raw:e,codeBlockStyle:`indented`,text:e.replace(this.rules.other.codeRemoveIndent,``)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=dr(e,t[3]||``,this.rules);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=or(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:or(t[0],`
14
- `),depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:or(t[0],`
15
- `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=or(t[0],`
16
- `).split(`
17
- `),n=``,r=``,i=[];for(;e.length>0;){let t=!1,a=[],o;for(o=0;o<e.length;o++)if(this.rules.other.blockquoteStart.test(e[o]))a.push(e[o]),t=!0;else if(!t)a.push(e[o]);else break;e=e.slice(o);let s=a.join(`
18
- `),c=s.replace(this.rules.other.blockquoteSetextReplace,`
19
- $1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
20
- ${s}`:s,r=r?`${r}
21
- ${c}`:c;let l=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,i,!0),this.lexer.state.top=l,e.length===0)break;let u=i.at(-1);if(u?.type===`code`)break;if(u?.type===`blockquote`){let t=u,a=e.join(`
22
- `),o=t.raw+`
23
- `+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s,n=`${n}
24
- ${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
25
- `+e.join(`
26
- `),o=this.list(a);i[i.length-1]=o,n=n.substring(0,n.length-u.raw.length)+o.raw,r=r.substring(0,r.length-t.raw.length)+o.raw,e=a.substring(i.at(-1).raw.length).split(`
27
- `);continue}}return{type:`blockquote`,raw:n,tokens:i,text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:`list`,raw:``,ordered:r,start:r?+n.slice(0,-1):``,loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:`[*+-]`);let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let n=!1,r=``,s=``;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let c=lr(t[2].split(`
28
- `,1)[0],t[1].length),l=e.split(`
29
- `,1)[0],u=!c.trim(),d=0;if(this.options.pedantic?(d=2,s=c.trimStart()):u?d=t[1].length+1:(d=c.search(this.rules.other.nonSpaceChar),d=d>4?1:d,s=c.slice(d),d+=t[1].length),u&&this.rules.other.blankLine.test(l)&&(r+=l+`
30
- `,e=e.substring(l.length+1),n=!0),!n){let t=this.rules.other.nextBulletRegex(d),n=this.rules.other.hrRegex(d),i=this.rules.other.fencesBeginRegex(d),a=this.rules.other.headingBeginRegex(d),o=this.rules.other.htmlBeginRegex(d),ee=this.rules.other.blockquoteBeginRegex(d);for(;e;){let te=e.split(`
31
- `,1)[0],ne;if(l=te,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),ne=l):ne=l.replace(this.rules.other.tabCharGlobal,` `),i.test(l)||a.test(l)||o.test(l)||ee.test(l)||t.test(l)||n.test(l))break;if(ne.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
32
- `+ne.slice(d);else{if(u||c.replace(this.rules.other.tabCharGlobal,` `).search(this.rules.other.nonSpaceChar)>=4||i.test(c)||a.test(c)||n.test(c))break;s+=`
33
- `+l}u=!l.trim(),r+=te+`
34
- `,e=e.substring(te.length+1),c=ne.slice(d)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(o=!0)),i.items.push({type:`list_item`,raw:r,task:!!this.options.gfm&&this.rules.other.listIsTask.test(s),loose:!1,text:s,tokens:[]}),i.raw+=r}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let e of i.items)if(this.lexer.state.top=!1,e.tokens=this.lexer.blockTokens(e.text,[]),!i.loose){let t=e.tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>this.rules.other.anyLine.test(e.raw))}for(let e of i.items){let t=e.tokens[0];if(e.task&&(t?.type===`text`||t?.type===`paragraph`)){e.text=e.text.replace(this.rules.other.listReplaceTask,``),t.raw=t.raw.replace(this.rules.other.listReplaceTask,``),t.text=t.text.replace(this.rules.other.listReplaceTask,``);for(let e=this.lexer.inlineQueue.length-1;e>=0;e--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[e].src)){this.lexer.inlineQueue[e].src=this.lexer.inlineQueue[e].src.replace(this.rules.other.listReplaceTask,``);break}let n=this.rules.other.listTaskCheckbox.exec(e.raw);if(n){let t={type:`checkbox`,raw:n[0]+` `,checked:n[0]!==`[ ]`};e.checked=t.checked,i.loose?e.tokens[0]&&[`paragraph`,`text`].includes(e.tokens[0].type)&&`tokens`in e.tokens[0]&&e.tokens[0].tokens?(e.tokens[0].raw=t.raw+e.tokens[0].raw,e.tokens[0].text=t.raw+e.tokens[0].text,e.tokens[0].tokens.unshift(t)):e.tokens.unshift({type:`paragraph`,raw:t.raw,text:t.raw,tokens:[t]}):e.tokens.unshift(t)}}else e.task&&=!1}if(i.loose)for(let e of i.items){e.loose=!0;for(let t of e.tokens)t.type===`text`&&(t.type=`paragraph`)}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let e=sr(t[0]);return{type:`html`,block:!0,raw:e,pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:e}}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,` `),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:or(t[0],`
35
- `),href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=ar(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
36
- `):[],a={type:`table`,raw:or(t[0],`
37
- `),header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)this.rules.other.tableAlignRight.test(e)?a.align.push(`right`):this.rules.other.tableAlignCenter.test(e)?a.align.push(`center`):this.rules.other.tableAlignLeft.test(e)?a.align.push(`left`):a.align.push(null);for(let e=0;e<n.length;e++)a.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:a.align[e]});for(let e of i)a.rows.push(ar(e,a.header.length).map((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:a.align[t]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let e=t[1].trim();return{type:`heading`,raw:or(t[0],`
38
- `),depth:t[2].charAt(0)===`=`?1:2,text:e,tokens:this.lexer.inline(e)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
39
- `?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:`text`,raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:`escape`,raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:`html`,raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;let t=or(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=cr(t[2],`()`);if(e===-2)return;if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),ur(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return ur(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,c=0,l=r[0][0],u=n===l,d=l===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}if(r[5]||r[6]){if(i%3&&!((i+o)%3)){c+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+c);let t=[...r[0]][0].length,n=e.slice(0,i+r.index+t+o);if(Math.min(i,o)%2){let e=n.slice(1,-1);return{type:`em`,raw:n,text:e,tokens:this.lexer.inlineTokens(e)}}let l=n.slice(2,-2);return{type:`strong`,raw:n,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal,` `),n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e,t,n=``){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=this.rules.inline.delRDelim;for(s.lastIndex=0,t=t.slice(-1*e.length+n);(r=s.exec(t))!==null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i||(a=[...i].length,a!==n))continue;if(r[3]||r[4]){o+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o);let t=[...r[0]][0].length,s=e.slice(0,n+r.index+t+a),c=s.slice(n,-n);return{type:`del`,raw:s,text:c,tokens:this.lexer.inlineTokens(c)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=t[1],n=`mailto:`+e):(e=t[1],n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=t[0],n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=t[0],n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e=this.lexer.state.inRawBlock;return{type:`text`,raw:t[0],text:t[0],escaped:e}}}},q=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||I,this.options.tokenizer=this.options.tokenizer||new fr,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:B,block:er.normal,inline:tr.normal};this.options.pedantic?(t.block=er.pedantic,t.inline=tr.pedantic):this.options.gfm&&(t.block=er.gfm,t.inline=this.options.breaks?tr.breaks:tr.gfm),this.tokenizer.rules=t}static get rules(){return{block:er,inline:tr}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(B.carriageReturn,`
40
- `),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(B.tabCharGlobal,` `).replace(B.spaceLine,``));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let i;if(this.options.extensions?.block?.some(n=>(i=n.call({lexer:this},e,t))?(e=e.substring(i.raw.length),t.push(i),!0):!1))continue;if(i=this.tokenizer.space(e)){e=e.substring(i.raw.length);let n=t.at(-1);i.raw.length===1&&n!==void 0?n.raw+=`
41
- `:t.push(i);continue}if(i=this.tokenizer.code(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
42
- `)?``:`
43
- `)+i.raw,n.text+=`
44
- `+i.text,this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(i=this.tokenizer.fences(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.heading(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.hr(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.blockquote(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.list(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.html(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.def(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`paragraph`||n?.type===`text`?(n.raw+=(n.raw.endsWith(`
45
- `)?``:`
46
- `)+i.raw,n.text+=`
47
- `+i.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title},t.push(i));continue}if(i=this.tokenizer.table(e)){e=e.substring(i.raw.length),t.push(i);continue}if(i=this.tokenizer.lheading(e)){e=e.substring(i.raw.length),t.push(i);continue}let a=e;if(this.options.extensions?.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(this.state.top&&(i=this.tokenizer.paragraph(a))){let r=t.at(-1);n&&r?.type===`paragraph`?(r.raw+=(r.raw.endsWith(`
48
- `)?``:`
49
- `)+i.raw,r.text+=`
50
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(i),n=a.length!==e.length,e=e.substring(i.raw.length);continue}if(i=this.tokenizer.text(e)){e=e.substring(i.raw.length);let n=t.at(-1);n?.type===`text`?(n.raw+=(n.raw.endsWith(`
51
- `)?``:`
52
- `)+i.raw,n.text+=`
53
- `+i.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(i);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e;if(this.tokens.links){let e=Object.keys(this.tokens.links);e.length>0&&(n=n.replace(this.tokenizer.rules.inline.reflinkSearch,t=>e.includes(t.slice(t.lastIndexOf(`[`)+1,-1))?`[`+`a`.repeat(t.length-2)+`]`:t))}n=n.replace(this.tokenizer.rules.inline.anyPunctuation,e=>`+`.repeat(e.length)),n=n.replace(this.tokenizer.rules.inline.blockSkip,(e,t,n)=>{let r=n?n.length:0;return e.slice(0,r)+`[`+`a`.repeat(e.length-r-2)+`]`}),n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let r=!1,i=``,a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}r||(i=``),r=!1;let o;if(this.options.extensions?.inline?.some(n=>(o=n.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let n=t.at(-1);o.type===`text`&&n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,i)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let s=e;if(this.options.extensions?.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(s=e.substring(0,t+1))}if(o=this.tokenizer.inlineText(s)){e=e.substring(o.raw.length),o.raw.slice(-1)!==`_`&&(i=o.raw.slice(-1)),r=!0;let n=t.at(-1);n?.type===`text`?(n.raw+=o.raw,n.text+=o.text):t.push(o);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t=`Infinite loop on byte: `+e;if(this.options.silent)console.error(t);else throw Error(t)}},pr=class{options;parser;constructor(e){this.options=e||I}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(B.notSpaceStart)?.[0],i=e.replace(B.endingNewline,``)+`
54
- `;return r?`<pre><code class="language-`+K(r)+`">`+(n?i:K(i,!0))+`</code></pre>
55
- `:`<pre><code>`+(n?i:K(i,!0))+`</code></pre>
56
- `}blockquote({tokens:e}){return`<blockquote>
57
- ${this.parser.parse(e)}</blockquote>
58
- `}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
59
- `}hr(e){return`<hr>
60
- `}list(e){let t=e.ordered,n=e.start,r=``;for(let t=0;t<e.items.length;t++){let n=e.items[t];r+=this.listitem(n)}let i=t?`ol`:`ul`,a=t&&n!==1?` start="`+n+`"`:``;return`<`+i+a+`>
61
- `+r+`</`+i+`>
62
- `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
63
- `}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
64
- `}table(e){let t=``,n=``;for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let r=``;for(let t=0;t<e.rows.length;t++){let i=e.rows[t];n=``;for(let e=0;e<i.length;e++)n+=this.tablecell(i[e]);r+=this.tablerow({text:n})}return r&&=`<tbody>${r}</tbody>`,`<table>
65
- <thead>
66
- `+t+`</thead>
67
- `+r+`</table>
68
- `}tablerow({text:e}){return`<tr>
69
- ${e}</tr>
70
- `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
71
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${K(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=ir(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+K(t)+`"`),a+=`>`+r+`</a>`,a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=ir(e);if(i===null)return K(n);e=i;let a=`<img src="${e}" alt="${K(n)}"`;return t&&(a+=` title="${K(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:K(e.text)}},mr=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},J=class e{options;renderer;textRenderer;constructor(e){this.options=e||I,this.options.renderer=this.options.renderer||new pr,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new mr}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},hr=class{options;block;constructor(e){this.options=e||I}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?q.lex:q.lexInline}provideParser(e=this.block){return e?J.parse:J.parseInline}},gr=new class{defaults=Kt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=J;Renderer=pr;TextRenderer=mr;Lexer=q;Tokenizer=fr;Hooks=hr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new pr(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new fr(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new hr;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=hr.passThroughHooks.has(n)?e=>{if(this.defaults.async&&hr.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return q.lex(e,t??this.defaults)}parser(e,t){return J.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?q.lex:q.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?J.parse:J.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?q.lex:q.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?J.parse:J.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
72
- Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+K(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function Y(e,t){return gr.parse(e,t)}Y.options=Y.setOptions=function(e){return gr.setOptions(e),Y.defaults=gr.defaults,qt(Y.defaults),Y},Y.getDefaults=Kt,Y.defaults=I;function _r(...e){return gr.use(...e),Y.defaults=gr.defaults,qt(Y.defaults),Y}Y.use=_r,Y.walkTokens=function(e,t){return gr.walkTokens(e,t)},Y.parseInline=gr.parseInline,Y.Parser=J,Y.parser=J.parse,Y.Renderer=pr,Y.TextRenderer=mr,Y.Lexer=q,Y.lexer=q.lex,Y.Tokenizer=fr,Y.Hooks=hr,Y.parse=Y,Y.options,Y.setOptions,Y.walkTokens,Y.parseInline,J.parse,q.lex;var vr=e=>{let t=document.querySelector(e);if(!t)throw Error(`missing element: ${e}`);return t},yr=e=>me(e,Date.now()),br=e=>he(e,Date.now());function X(e,t,...n){let r=document.createElement(e);return t&&(r.className=t),r.append(...n),r}var xr=e=>e.split(`/`).filter(Boolean).pop()??e,Sr=e=>`New session in ${xr(e)}`;function Cr(e){let t=new Date(e),n=e=>String(e).padStart(2,`0`);return`${`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}`} ${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function wr(e,t,n){return{visible:!1,show(n,r){this.visible=!0,e.classList.remove(`hidden`),e.classList.add(`flex`),t(n,r)},hide(){n?.(),this.visible=!1,e.classList.add(`hidden`),e.classList.remove(`flex`)}}}function Tr(e){let t=X(`span`,`help`);return t.innerHTML=F.sanitize(Y.parseInline(e,{async:!1})),Dr(t),t}function Er(e){let t=X(`div`,``);return t.innerHTML=F.sanitize(Y.parse(e,{async:!1})),Dr(t),t}function Dr(e){for(let t of e.querySelectorAll(`a`))(t.getAttribute(`href`)??``).startsWith(`#`)||(t.target=`_blank`,t.rel=`noreferrer`)}async function Or(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);let t=document.createElement(`textarea`);t.value=e,t.className=`fixed opacity-0`,document.body.append(t),t.select();let n=document.execCommand(`copy`);if(t.remove(),!n)throw Error(`clipboard unavailable`)}function kr(e,t){let n=X(`button`,e,`Copy`);n.title=`Copy to clipboard`;let r;return n.onclick=async e=>{e.stopPropagation(),n.textContent=await Or(t()).then(()=>`Copied`,()=>`Failed`),clearTimeout(r),r=setTimeout(()=>n.textContent=`Copy`,1200)},n}function Ar(e){for(let t of e.querySelectorAll(`pre`)){let e=t.querySelector(`code`);if(!e)continue;let n=X(`div`,`group/code relative`);t.replaceWith(n),n.append(t,kr(`absolute right-1.5 top-1.5 cursor-pointer rounded border border-black/[0.08] bg-white/85 px-1.5 py-0.5 text-[11px] text-neutral-500 opacity-0 transition-opacity hover:bg-white hover:text-neutral-800 focus:opacity-100 group-hover/code:opacity-100 pointer-coarse:opacity-100 dark:border-neutral-200`,()=>e.textContent??``))}}var jr=450,Mr=8,Nr=700;function Pr(e,t){let n,r,i={x:0,y:0},a=!1,o=()=>clearTimeout(n),s=t=>{e.classList.remove(`bg-emerald-100`,`bg-red-100`),e.classList.add(t),clearTimeout(r),r=setTimeout(()=>e.classList.remove(t),Nr)};e.addEventListener(`pointerdown`,e=>{a=!1,i={x:e.clientX,y:e.clientY},o(),n=setTimeout(()=>{a=!0,Or(t()).then(()=>s(`bg-emerald-100`),()=>s(`bg-red-100`))},jr)}),e.addEventListener(`pointermove`,e=>{Math.hypot(e.clientX-i.x,e.clientY-i.y)>Mr&&o()});for(let t of[`pointerup`,`pointercancel`,`pointerleave`])e.addEventListener(t,o);e.addEventListener(`click`,e=>{a&&(e.preventDefault(),e.stopImmediatePropagation())})}var Fr=()=>p(s,`chev h-3 w-3`);function Ir(e,t){let n=document.createElement(`details`);n.className=e;let r=X(`summary`,`flex cursor-pointer select-none items-center gap-1.5`);return r.append(Fr(),...t),n.append(r),{el:n,summary:r}}var Lr=(e,t=!1)=>Z(e,`${t?`btn btn-primary`:`btn`} text-[12.5px]`),Z=(e,t=``)=>{let n=X(`button`,t,e);return n.type=`button`,n},Rr=e=>X(`span`,`mr-1 flex-none font-medium`,e);function zr(e,t,n){let r=X(`div`,`inline-flex flex-none items-center gap-0.5 rounded-full bg-neutral-100 p-1`);for(let[i,a,o]of e){let e=a===t,s=Z(o?``:i,`cursor-pointer whitespace-nowrap rounded-full text-[12px] transition-colors ${o?`flex h-7 w-7 items-center justify-center`:`px-3 py-1`} ${e?`bg-white font-medium text-neutral-800 shadow-xs`:`text-neutral-500 hover:text-neutral-700`}`);o&&(s.append(p(o,`h-4 w-4`)),s.setAttribute(`aria-label`,i),s.title=i),s.setAttribute(`aria-pressed`,String(e)),s.onclick=()=>n(a),r.append(s)}return r}function Br(e,t,n){let r=X(`div`,`flex flex-wrap items-center gap-2`);r.setAttribute(`role`,`radiogroup`);let a=e.map(([e])=>e),o=e.map(([e,t])=>{let n=Z(``,`flex h-10 w-10 cursor-pointer items-center justify-center rounded-full ring-neutral-800 ring-offset-2 ring-offset-white transition-shadow hover:ring-2`);return n.style.background=t,n.setAttribute(`role`,`radio`),n.setAttribute(`aria-label`,e),n.title=e,n}),s=e=>{o.forEach((t,n)=>{let r=a[n]===e;t.classList.toggle(`ring-2`,r),t.setAttribute(`aria-checked`,String(r)),t.tabIndex=r?0:-1,t.replaceChildren(...r?[p(i,`h-4 w-4 text-white dark:text-neutral-950`)]:[])})},c=e=>{s(e),n(e)};return o.forEach((e,t)=>{e.onclick=()=>c(a[t]),e.onkeydown=e=>{let n=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!n)return;e.preventDefault();let r=(t+n+a.length)%a.length;o[r].focus(),c(a[r])}}),s(t),r.append(...o),r}function Vr(e,t,n){let r=Z(e,`flex cursor-pointer items-center gap-1.5 rounded-full px-3.5 py-2 text-[13px] transition-colors ${t?`bg-indigo-50 font-medium text-indigo-700 ring-1 ring-indigo-200/70`:`text-neutral-600 hover:bg-neutral-100`}`);return r.onclick=n,r}var Hr=`rounded-3xl border border-neutral-200 bg-white shadow-sm`,Ur=`border-b border-neutral-200/70 bg-neutral-50/50`,Wr=`${Hr} flex flex-col overflow-hidden`,Gr=`${Ur} flex flex-none items-center`;function Kr(e,t,...n){let r=X(`section`,Hr),i=X(`div`,`rounded-t-3xl ${Ur} px-5 py-4`);return i.append(X(`h2`,`text-[14px] font-semibold text-neutral-800`,e)),t&&i.append(X(`p`,`mt-1 text-[12px] leading-normal text-neutral-500`,t)),r.append(i,X(`div`,`flex flex-col gap-4 px-5 py-5`,...n)),r}function qr(e,t,n={}){let r=X(`div`,`flex flex-col gap-1.5`),i=X(`div`,`flex items-center gap-1.5`,X(`span`,`field-label`,e));return n.help&&i.append(n.help),r.append(i,t),n.hint&&r.append(X(`span`,`text-[11.5px] leading-snug text-neutral-400`,n.hint)),r}var Jr=`w-full rounded-xl border border-neutral-200 bg-neutral-50/60 px-3 py-2.5 text-[12.5px] transition-colors placeholder:text-neutral-400 hover:border-neutral-300 focus:border-indigo-400 focus:ring-2 focus:ring-indigo-100 focus:outline-none`,Yr=`${Jr} cursor-pointer truncate text-left hover:bg-neutral-50`,Xr=(e,t,n,r=!1)=>{let i=document.createElement(`input`);return i.className=r?`${Jr} font-mono`:Jr,i.value=e,i.placeholder=t,i.oninput=()=>n(i.value),i},Zr=(e=``,t=`text`)=>{let n=document.createElement(`input`);return n.type=t,n.className=Jr,n.value=e,n},Qr=(e,t)=>{let n=document.createElement(`select`);return n.className=`${Jr} select`,n.append(...e.map(([e,t])=>new Option(e,t))),n.value=t,n},$r=(e=``,t=4)=>{let n=document.createElement(`textarea`);return n.className=`${Jr} resize-y font-mono`,n.value=e,n.rows=t,n.spellcheck=!1,n};function ei(e,t,n,r,i){let a=document.createElement(`input`);a.type=`checkbox`,a.className=`peer sr-only`,a.checked=n,a.onchange=()=>r(a.checked);let o=X(`span`,`relative h-4 w-7 flex-none rounded-full bg-neutral-300 transition-colors after:absolute after:left-0.5 after:top-0.5 after:h-3 after:w-3 after:rounded-full after:bg-white dark:after:bg-neutral-950 after:shadow-sm after:transition-transform peer-checked:bg-indigo-600 peer-checked:after:translate-x-3 peer-focus-visible:ring-2 peer-focus-visible:ring-indigo-200 peer-disabled:cursor-not-allowed peer-disabled:opacity-45`),s=X(`label`,`flex cursor-pointer gap-2.5 ${e?`items-start`:`items-center`}`);if(s.append(a,o),e){let n=X(`span`,`flex items-center gap-1.5`,X(`span`,`text-[13px] text-neutral-700`,e));i&&n.append(i);let r=X(`span`,`flex min-w-0 flex-col`,n);t&&r.append(X(`span`,`text-[11.5px] leading-snug text-neutral-400`,t)),s.append(r)}return s}var ti={idle:`text-neutral-400`,saving:`text-neutral-400`,saved:`text-green-700`,failed:`text-red-600`};function ni(e,t,n){e.className=`text-[11.5px] ${ti[t]}`,e.textContent=n}var ri=(e,t,n)=>X(`span`,`inline-flex flex-none items-center gap-1 rounded-full px-1.5 py-px text-[10px] font-medium uppercase tracking-wide ring-1 ${t}`,...n?[X(`span`,`inline-block h-1.5 w-1.5 flex-none rounded-full ${n}`)]:[],e),ii=(e=`hover:text-red-600`)=>`flex-none cursor-pointer text-[11.5px] text-neutral-400 opacity-0 transition-opacity ${e} group-hover:opacity-100 pointer-coarse:opacity-100`;function ai(e,t,n,r={}){let i=X(`div`,`flex min-w-0 flex-col`,X(`span`,`flex min-w-0 items-center gap-2`,X(`span`,`truncate text-[12.5px] text-neutral-700`,e),...r.tag?[r.tag]:[]),X(`span`,`truncate text-[11.5px] text-neutral-400`,t));return r.title&&(i.title=r.title),X(`div`,`flex items-center justify-between gap-3 rounded-lg border border-neutral-200 px-3 py-2`,i,n)}var oi=e=>X(`p`,`rounded-lg border border-dashed border-neutral-200 px-3 py-4 text-center text-[12.5px] text-neutral-400`,e);function si(e,t){let n=X(`span`,`group relative inline-flex`),r=Z(``,`flex h-4 w-4 cursor-help items-center justify-center text-neutral-400 transition-colors group-hover:text-indigo-500`);r.append(p(c,`h-full w-full`)),r.setAttribute(`aria-label`,e);let i=X(`span`,`absolute left-0 top-full z-20 hidden w-[min(27rem,calc(100vw-3rem))] pt-1.5 group-hover:block`),a=X(`span`,`flex flex-col gap-2 rounded-xl border border-neutral-200 bg-white p-3.5 text-[12px] font-normal normal-case leading-[1.55] tracking-normal text-neutral-600 shadow-xl`);a.append(X(`span`,`text-[12.5px] font-semibold text-neutral-800`,e));let o=X(`ol`,`flex list-decimal flex-col gap-1.5 pl-4`);for(let e of t){let t=X(`li`,`marker:text-neutral-400`);t.append(typeof e==`string`?Tr(e):e),o.append(t)}return a.append(o),i.append(a),r.onclick=()=>{let e=i.classList.contains(`hidden`);i.classList.toggle(`hidden`,!e),i.classList.toggle(`block`,e),r.classList.toggle(`text-indigo-500`,e)},n.append(r,i),n}var ci=(e,t)=>X(`span`,`flex flex-col gap-1`,Tr(e),t),Q=null,li=null,ui=null;function di(e){Q&&!Q.contains(e.target)&&e.target!==ui&&$()}var fi={ArrowDown:1,ArrowUp:-1},pi={n:1,j:1,p:-1,k:-1},mi=()=>Q!==null;function hi(e){if(!(e.altKey||e.metaKey||e.shiftKey||!e.key))return e.ctrlKey?pi[e.key.toLowerCase()]:fi[e.key]}function gi(e,t){let n=[...e.querySelectorAll(`button:not(:disabled)`)];if(!n.length)return!1;let r=n.indexOf(document.activeElement);return n[t===`first`?0:t===`last`?n.length-1:r<0?t>0?0:n.length-1:(r+t+n.length)%n.length]?.focus(),!0}function _i(e){if(e.dataset.menu===`true`)return{rows:e,ends:!0};let t=e.querySelector(`[data-list]`);return t?{rows:t,ends:!1}:null}function vi(e){let t=Q?_i(Q):null;if(t){let n=(t.ends?e.key===`Home`?`first`:e.key===`End`?`last`:void 0:void 0)??hi(e);if(n!==void 0&&gi(t.rows,n)){e.preventDefault();return}}e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),$())}function yi(e){li&&e.target.contains(li)&&$()}function $(){if(!Q)return;document.removeEventListener(`pointerdown`,di,!0),document.removeEventListener(`focusin`,di,!0),document.removeEventListener(`wheel`,di,!0),document.removeEventListener(`keydown`,vi,!0),window.removeEventListener(`scroll`,yi,!0),window.removeEventListener(`resize`,$);let e=Q;Q=null,ui?.remove(),ui=null,e.contains(document.activeElement)&&li?.focus({preventScroll:!0}),li?.removeAttribute(`aria-expanded`),li=null,e.inert=!0,e.dataset.closing=``,Promise.allSettled(e.getAnimations().map(e=>e.finished)).then(()=>e.remove())}var bi=null;function xi(e){let t=e.getBoundingClientRect(),n={top:t.bottom+4,left:t.left};return t.width||t.height?n:bi?.anchor===e?{top:bi.top,left:bi.left}:n}var Si=()=>window.innerWidth<640;function Ci(e,t){$(),document.querySelectorAll(`.glass-menu[data-closing]`).forEach(e=>e.remove());let n=Si();Q=X(`div`,`glass-menu fixed z-50 border border-neutral-200 p-2 font-sans leading-6 ${n?`rounded-3xl inset-x-2 bottom-2 max-h-[70dvh] overflow-y-auto pb-[calc(0.25rem+env(safe-area-inset-bottom))] text-[16px]`:`rounded-2xl min-w-60 max-w-[min(42rem,calc(100vw-1rem))] max-h-[calc(100dvh-1rem)] overflow-y-auto text-[15px]`}`),Q.dataset.presentation=n?`sheet`:`popover`,Q.append(t);let r=e.closest(`dialog[open]`)??document.body;if(n&&(ui=X(`div`,`fixed inset-0 z-50 bg-black/15`),ui.onclick=e=>{e.stopPropagation(),$()},r.append(ui)),r.append(Q),!n){let t=xi(e);bi={anchor:e,...t},Q.style.top=`${Math.max(8,Math.min(t.top,window.innerHeight-Q.offsetHeight-8))}px`,Q.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-Q.offsetWidth-8))}px`}return li=e,li.setAttribute(`aria-expanded`,`true`),Q.tabIndex=-1,(Q.querySelector(`button, input, select, [tabindex='0']`)??Q).focus({preventScroll:!0}),document.addEventListener(`pointerdown`,di,!0),document.addEventListener(`focusin`,di,!0),document.addEventListener(`wheel`,di,{capture:!0,passive:!0}),document.addEventListener(`keydown`,vi,!0),window.addEventListener(`scroll`,yi,!0),window.addEventListener(`resize`,$),Q}function wi(e){let t=X(`button`,`flex w-full cursor-pointer items-center gap-2 rounded-xl px-3 text-left transition-colors hover:bg-indigo-50 hover:text-indigo-700 active:bg-indigo-100 ${Si()?`min-h-12 py-3`:`min-h-10 py-2`}`,...e.checked===void 0?[]:[p(i,`h-3 w-3 text-indigo-600 ${e.checked?``:`invisible`}`)],X(`span`,`min-w-0 truncate`,e.label));if(e.hint){let n=X(`span`,`ml-auto max-w-28 shrink-[999] truncate text-[13px] text-neutral-500`,e.hint);n.title=e.hint,t.append(n)}return e.disabled&&(t.disabled=!0,t.classList.add(`cursor-default`,`text-neutral-400`,`hover:bg-transparent`,`hover:text-neutral-400`)),t.onclick=()=>e.onSelect(),t}function Ti(e,t,n){let r=X(`div`,``);if(n&&Si()){let e=X(`button`,`icon-btn h-11 w-11`,p(f));e.setAttribute(`aria-label`,`Close session actions`),e.onclick=$,r.append(X(`div`,`flex items-center gap-3 border-b border-neutral-200 px-3 pb-1 mb-1`,X(`span`,`min-w-0 flex-1 truncate text-sm font-medium text-neutral-500`,n),e))}for(let e of t)e.separatorBefore&&r.append(X(`hr`,`my-2 border-neutral-200`)),r.append(wi(e));Ci(e,r),Q&&(Q.dataset.menu=`true`,Q.setAttribute(`aria-label`,n?`Actions for ${n}`:`Actions`),Q.setAttribute(`role`,`group`))}var Ei=async e=>{let t=await Me(`/api/fs/ls${e?.startsWith(`/`)?`?path=${encodeURIComponent(e)}`:``}`,`Could not list directories`);return t.ok?t.value:null},Di=e=>e.entries.filter(e=>e.dir&&!e.name.startsWith(`.`)).map(e=>e.name),Oi=`flex w-full min-h-10 cursor-pointer items-center gap-2 rounded-xl px-3 py-2 text-left transition-colors hover:bg-indigo-50 hover:text-indigo-700 active:bg-indigo-100`,ki=`font-mono text-[0.875rem]`,Ai=(e,t,n)=>{let r=Z(e,`${Oi} ${t}`);return r.onclick=n,r};function ji(e,t){let n=X(`div`,`mt-2 flex-none border-t border-neutral-200 pt-2`),r=Ai(`New folder`,`text-neutral-500`,()=>{let r=document.createElement(`input`);r.className=`w-full rounded-xl border-0 bg-neutral-100 px-3 py-2 ${ki} focus:outline-none`,r.placeholder=`folder-name`;let i=X(`p`,`hidden px-3 pt-1 text-[0.8125rem] text-red-600`);r.onkeydown=async n=>{if(n.key!==`Enter`)return;n.preventDefault();let a=await v(`/api/fs/mkdir`,{path:e,name:r.value});if(!a.ok){i.textContent=(await a.json()).error??`could not create`,i.classList.remove(`hidden`);return}t((await a.json()).path)},n.replaceChildren(r,i),r.focus()});return r.prepend(p(d)),n.append(r),n}function Mi(e,t,n){let r=e=>{n(e),$()};async function i(t){let n=await Ei(t);if(!n)return;let a=X(`div`,`flex max-h-[60dvh] w-full flex-col sm:w-88`),o=Z(`Use`,`btn btn-primary ml-auto flex-none px-3 py-1 text-[0.8125rem]`);o.onclick=()=>r(n.path);let s=document.createElement(`input`);s.className=`min-w-0 flex-1 border-0 bg-transparent ${ki} text-neutral-600 focus:outline-none`,s.value=n.path,s.spellcheck=!1,s.title=`Type or paste a path, then Enter`,s.onfocus=()=>s.select();let c=X(`p`,`hidden flex-none px-3 pb-1 text-[0.8125rem] text-red-600`);s.onkeydown=async e=>{if(e.key!==`Enter`)return;e.preventDefault(),e.stopPropagation();let t=s.value.trim();if(!t)return;let n=await Ei(t);if(!n){c.textContent=`${t} is not a folder this can read`,c.classList.remove(`hidden`);return}r(n.path)};let l=X(`div`,`mb-2 flex flex-none items-center gap-2 border-b border-neutral-200 px-3 pb-2 pt-1`,s,o),u=X(`div`,`min-h-0 flex-1 overflow-y-auto`);u.dataset.list=``,n.parent&&u.append(Ai(`../`,`${ki} text-neutral-500`,()=>void i(n.parent)));let d=Di(n);for(let e of d)u.append(Ai(e,`truncate`,()=>void i(`${n.path}/${e}`.replace(`//`,`/`))));d.length||u.append(X(`p`,`px-3 py-2 text-[0.8125rem] text-neutral-400`,`No sub-folders.`)),a.append(l,c,u,ji(n.path,e=>void i(e))),Ci(e,a)}i(t)}function Ni(e,t,n,r){Ti(e,[...t.map(e=>({label:e.path,...e.hint?{hint:e.hint}:{},checked:e.path===n,onSelect:()=>{$(),r(e.path)}})),{label:`Browse…`,onSelect:()=>Mi(e,n||void 0,r)}])}var Pi=(e,t)=>n=>{e.value=n,e.dispatchEvent(new Event(`input`,{bubbles:!0})),t?.(n)};function Fi(e,t){let n=Z(`Browse…`,`btn flex-none self-stretch rounded-xl px-3 text-[12.5px] text-neutral-600`);return n.onclick=()=>Mi(n,e.value.trim()||void 0,Pi(e,t)),n}function Ii(e,t,n){let r=document.createElement(`input`);return r.className=`${Jr} min-w-0 flex-1 font-mono`,r.value=e,r.placeholder=t,r.oninput=()=>n(r.value),{el:X(`div`,`flex items-center gap-1.5`,r,Fi(r,n)),input:r}}var Li=`modulepreload`,Ri=function(e){return`/app/`+e},zi={},Bi=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ri(t,n),t=s(t),t in zi)return;zi[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Li,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Vi,Hi;function Ui(){return Hi??=Bi(()=>import(`./hljs-BRz6a8Dq.js`).then(e=>Vi=e.default,e=>{console.warn(`highlighting unavailable — code stays plain text`,e)}),[]),Hi}async function Wi(e){let t=await Ui();if(t)for(let n of e.querySelectorAll(`pre code[class]`)){let e=/(?:language|lang)-(\S+)/.exec(n.className)?.[1]?.toLowerCase();!e||!t.getLanguage(e)||(n.innerHTML=t.highlight(n.textContent??``,{language:e}).value)}}var Gi={ts:`typescript`,tsx:`typescript`,mts:`typescript`,cts:`typescript`,js:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,py:`python`,rs:`rust`,sh:`bash`,zsh:`bash`,md:`markdown`,yml:`yaml`,html:`xml`,htm:`xml`,svg:`xml`,patch:`diff`};async function Ki(e){let t=await Ui(),n=e.split(`.`).pop()?.toLowerCase()??``,r=Gi[n]??n;return t?.getLanguage(r)?r:null}function qi(e,t){let n=document.createElement(`span`);return Vi&&t&&e.length<=500?n.innerHTML=Vi.highlight(e,{language:t}).value:n.textContent=e,n}export{Sr as $,Vr as A,vr as B,Kr as C,o as Ct,si as D,qr as E,r as Et,Br as F,wr as G,br as H,Xr as I,X as J,kr as K,$r as L,zr as M,Qr as N,Zr as O,ni as P,Cr as Q,ei as R,Lr as S,s as St,oi as T,i as Tt,xr as U,Ar as V,Fr as W,Er as X,Pr as Y,yr as Z,Hr as _,le as _t,Ii as a,Ne as at,ri as b,f as bt,$ as c,fe as ct,Ti as d,Oe as dt,ke as et,Ci as f,Ee as ft,Wr as g,ce as gt,Yr as h,ae as ht,Bi as i,je as it,ii as j,Rr as k,hi as l,we as lt,Jr as m,m as mt,Ki as n,Me as nt,Ei as o,v as ot,Gr as p,pe as pt,Ir as q,qi as r,b as rt,Ni as s,ge as st,Wi as t,y as tt,mi as u,Te as ut,Ur as v,p as vt,ai as w,a as wt,Z as x,d as xt,ti as y,ie as yt,ci as z};
@@ -1,7 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/explorer-DDoVzMLQ.js","assets/highlight-5Bl8zZ8q.js","assets/code-BZwvPani.js","assets/settings-Cv7rbeqf.js","assets/report-zjE8Bt8S.js","assets/hljs-BRz6a8Dq.js"])))=>i.map(i=>d[i]);
2
- import{$ as e,B as t,C as n,Ct as r,E as i,G as a,H as o,J as s,K as c,P as l,Q as u,R as d,S as f,St as p,T as ee,Tt as te,U as ne,Z as re,b as ie,bt as ae,c as m,d as h,et as oe,f as se,h as ce,ht as le,i as ue,l as de,nt as g,ot as _,pt as fe,rt as pe,st as v,tt as y,u as me,vt as b,w as he,x as ge,yt as _e}from"./highlight-5Bl8zZ8q.js";import{A as ve,C as ye,D as be,E as xe,N as Se,O as Ce,P as x,S as we,T as Te,_ as Ee,a as De,b as Oe,c as ke,d as Ae,f as je,g as Me,h as Ne,i as Pe,j as Fe,k as Ie,l as Le,m as Re,n as ze,o as Be,p as Ve,r as He,s as S,t as Ue,u as We,v as C,w as Ge,x as Ke,y as qe}from"./report-zjE8Bt8S.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Je=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],Ye=[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`}]],Xe=[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`}]],Ze=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`}]],Qe=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],$e=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],et=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],tt=window.fetch.bind(window),nt=()=>{location.assign(`/login?next=${encodeURIComponent(location.pathname+location.hash)}`)};function rt(){window.fetch=async(...e)=>{let t=await tt(...e);return t.status===401&&nt(),t}}function it(e,t){if(e.readyState!==EventSource.CLOSED)return;let n=()=>{let e=ze(`${t} stream disconnected`);if(!e)return;let n=f(`Reload`);n.classList.add(`ml-2`,`align-middle`),n.onclick=()=>location.reload(),e.append(` `,n)};tt(`/api/sessions`).then(e=>e.status===401?nt():n(),n)}var at=/Mac|iP(?:hone|ad|od)/.test(navigator.userAgent),ot=at?`⌘`:`Ctrl+`,st=at?`⇧`:`Shift+`,ct=e=>e.startsWith(`shift+`)?{key:e.slice(6),shift:!0}:{key:e,shift:!1};function lt(e){let{key:t,shift:n}=ct(e);return`${ot}${n?st:``}${t.toUpperCase()}`}var ut=e=>[...document.querySelectorAll(`dialog[open]`)].some(t=>!t.contains(e??null)),dt=`pointer-events-none fixed z-50 flex items-center gap-2 whitespace-nowrap rounded-md bg-neutral-800 px-2 py-1 text-[11.5px] text-neutral-100 shadow-lg`;function ft(e,t,n){e.removeAttribute(`title`);let r=null,i=()=>{r?.remove(),r=null,document.removeEventListener(`keydown`,i,!0)};e.addEventListener(`pointerenter`,a=>{if(a.pointerType!==`mouse`)return;i(),r=s(`div`,dt,t,s(`kbd`,`rounded bg-white/15 px-1 py-px font-sans text-[10.5px]`,n)),(e.closest(`dialog[open]`)??document.body).append(r);let o=e.getBoundingClientRect(),c=o.bottom+6,l=c+r.offsetHeight+8<=window.innerHeight;r.style.top=`${l?c:Math.max(8,o.top-r.offsetHeight-6)}px`,r.style.left=`${Math.max(8,Math.min(o.left,window.innerWidth-r.offsetWidth-8))}px`,document.addEventListener(`keydown`,i,!0)}),e.addEventListener(`pointerleave`,i),e.addEventListener(`pointerdown`,i)}function pt(e,t,n,r){ft(e,t,`Esc`),document.addEventListener(`keydown`,e=>{e.key!==`Escape`||e.isComposing||e.defaultPrevented||ut()||!r()||(e.preventDefault(),n())})}var mt=`input, textarea, select, [contenteditable]`;function ht(e,t,n,r,i){ft(e,n,t[0].toUpperCase()),document.addEventListener(`keydown`,n=>{n.metaKey||n.ctrlKey||n.altKey||n.isComposing||n.defaultPrevented||!n.key||!t.includes(n.key.toLowerCase())||n.target?.closest?.(mt)||ut(e)||!i()||(n.preventDefault(),r())})}function gt(e,t,n){let{key:r,shift:i}=ct(e);document.addEventListener(`keydown`,e=>{!e.key||e.altKey||e.shiftKey!==i||e.key.toLowerCase()===r&&(!e.metaKey&&!e.ctrlKey||n?.()||(e.preventDefault(),e.stopPropagation(),t()))},!0)}var w,_t=t(`#composer`),T=t(`#input`),vt=t(`#send`),yt=t(`#send-arrow`),bt=t(`#send-queue`),xt=t(`#stop`),St=t(`#queue-panel`),Ct=t(`#queue-rows`),wt=t(`#queue-label`),Tt=t(`#queue-actions`),Et=t(`#image-strip`),Dt=t(`#command-menu`),Ot=t(`#attach-input`),kt=!1,At=0,jt=[],Mt={steering:[],followUp:[]},Nt=new Set,E=[],Pt=[];function Ft(){let e=window.visualViewport;if(!e)return;let t=()=>{let t=e.scale<=1.05&&window.innerHeight-e.height-e.offsetTop>80;t?document.body.dataset.kb=``:delete document.body.dataset.kb,document.body.style.height=t?`${String(e.height)}px`:``,t&&window.scrollY&&window.scrollTo(0,0)};e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t)}function It(){let e=_t.parentElement,t=[St,_t],n=new ResizeObserver(()=>{let n=t.reduce((e,t)=>e+t.offsetHeight,0);e.style.setProperty(`--dock-h`,`${String(n)}px`)});for(let e of t)n.observe(e,{box:`border-box`})}function Lt(){T.focus()}function Rt(e){let t=Pt.indexOf(e);return t<0?!1:(Pt.splice(t,1),!0)}function zt(e){Pt.push(e)}function Bt(){Pt=[]}function Vt(){let e=w.sessionState()===`streaming`,t=w.sessionId()!==null||w.continuous();vt.disabled=!t,vt.className=`flex h-7 w-7 flex-none items-center justify-center rounded-lg ${t?e?`cursor-pointer bg-amber-100 text-amber-700 hover:bg-amber-200 active:bg-amber-300`:`cursor-pointer bg-indigo-600 text-white hover:bg-indigo-500 active:bg-indigo-700 dark:text-neutral-50`:`cursor-default bg-neutral-100 text-neutral-400`}`,vt.title=t?e?`Queue — delivered when the turn ends`:`Send`:`No session`,yt.classList.toggle(`hidden`,e),bt.classList.toggle(`hidden`,!e),xt.classList.toggle(`hidden`,!e),xt.classList.toggle(`flex`,e)}function Ht(){let e=w.chatVisible()&&kt;St.classList.toggle(`hidden`,!e),St.classList.toggle(`flex`,e)}function D(e,t,n=jt){++At,jt=n,Mt={steering:e,followUp:t};let r=[...e.map(e=>({mode:`steer`,text:e})),...t.map(e=>({mode:`queued`,text:e})),...jt.map(e=>({mode:`after this turn · ${e.runName}`,text:e.text}))];kt=r.length>0,wt.textContent=r.length>1?`Queued · ${r.length}`:`Queued`;let i=e.length+t.length>0;Tt.classList.toggle(`hidden`,!i),Tt.classList.toggle(`flex`,i),Ht(),Ct.replaceChildren(...r.map(e=>{let t=s(`li`,`flex items-start gap-2 text-[13px] leading-[18px]`);return e.mode===`steer`?t.append(s(`span`,`flex-none rounded bg-indigo-100 px-1 py-0.5 text-[10.5px] font-semibold uppercase tracking-wide text-indigo-700`,e.mode)):e.mode!==`queued`&&t.append(s(`span`,`max-w-[40%] flex-none truncate rounded bg-neutral-100 px-1 py-0.5 text-[10.5px] font-semibold text-neutral-600`,e.mode)),t.append(s(`span`,`min-w-0 whitespace-pre-wrap break-words text-neutral-700`,e.text)),t}))}function Ut(e){jt.some(t=>t.messageId===e)&&D(Mt.steering,Mt.followUp,jt.filter(t=>t.messageId!==e))}var Wt=8;function Gt(){let e=w.sessionId();e&&E.length?un.set(e,E):e&&un.delete(e),Et.classList.toggle(`hidden`,E.length===0),Et.classList.toggle(`flex`,E.length>0),Et.replaceChildren(...E.map((e,t)=>{let n=e.mimeType.startsWith(`image/`)?be(`data:${e.mimeType};base64,${e.data}`):s(`span`,`flex h-16 max-w-40 items-center truncate rounded-md border border-neutral-200 bg-neutral-50 px-2 text-[12px] text-neutral-700`,e.name??`file`),r=s(`button`,`absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-neutral-700 text-[10px] leading-none text-white hover:bg-red-600`,b(ae,`h-3 w-3`));return r.setAttribute(`type`,`button`),r.setAttribute(`aria-label`,`Remove ${e.name??`attachment`}`),r.onclick=()=>{E.splice(t,1),Gt()},s(`div`,`relative`,n,r)}))}function Kt(e){if(E.length>=Wt){S(`error`,`attachment limit is ${Wt} files per message`);return}if(e.size>33554432){S(`error`,`${e.name||`file`} is too large (32MB max)`);return}let t=new FileReader;t.onload=()=>{let n=t.result;E.push(qt({data:n.slice(n.indexOf(`,`)+1),mimeType:e.type||`application/octet-stream`,name:e.name||void 0})),Gt()},t.readAsDataURL(e)}function qt({data:e,mimeType:t,name:n}){let r={data:e,mimeType:t,name:n},i=_(`/api/inbox`,r).then(async e=>e.ok?le((await e.json()).path):null).catch(()=>null);return{...r,marker:i}}async function Jt(e){let t=await Promise.all(e.map(e=>e.marker));return t.every(e=>e!==null)?t:null}var Yt=[],O=[],Xt=0,Zt=!1;function Qt(e){Yt=e,rn()}function $t(){let e=T.value;if(!e.startsWith(`/`)||/\s/.test(e)||Zt)return[];let t=e.slice(1),n=w.continuous()?Object.keys(Fe):[];return n.some(e=>e===t)?[]:[...n.filter(e=>e.startsWith(t)).map(e=>({word:`/${e}`,line:Fe[e],fill:`/${e}`})),...Yt.filter(e=>`skill:${e.name}`.startsWith(t)||e.name.startsWith(t)).map(e=>({word:`/skill:${e.name}`,line:e.description,fill:`/skill:${e.name} `}))]}var en=()=>O.length>0;function tn(e){if(O.length){Xt=(e+O.length)%O.length;for(let[e,t]of O.entries())t.classList.toggle(`bg-indigo-50`,e===Xt),t.setAttribute(`aria-selected`,String(e===Xt));O[Xt].scrollIntoView({block:`nearest`})}}function nn(e){T.value=e.fill,T.focus(),A(),k(),rn()}function rn(){O=$t().map(e=>{let t=s(`li`,`palette-row col-span-2 grid min-h-9 cursor-pointer grid-cols-subgrid items-center gap-x-3 rounded-[10px] px-2.5 py-1.5 text-[14px] leading-5 text-neutral-800`,s(`span`,`font-mono`,e.word),s(`span`,`min-w-0 truncate text-[13px] text-neutral-500`,e.line));t.setAttribute(`role`,`option`);let n;return t.onpointerdown=e=>{e.preventDefault(),n=e.clientY},t.onpointerup=t=>{n!==void 0&&Math.abs(t.clientY-n)<8&&nn(e),n=void 0},t}),Dt.replaceChildren(...O),Dt.classList.toggle(`hidden`,!O.length),Dt.classList.toggle(`grid`,O.length>0),tn(0)}function an(e){if(!en())return!1;let t=de(e);if(t!==void 0)tn(Xt+t);else if(e.key===`Enter`||e.key===`Tab`)nn($t()[Xt]);else if(e.key===`Escape`)Zt=!0,rn();else return!1;return e.preventDefault(),!0}var on=`pier.draft.`,sn=e=>`${on}${e}`,cn=0;function ln(){try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n?.startsWith(on)&&e.push(n)}for(let t of e){let e=localStorage.getItem(t);e&&!sessionStorage.getItem(t)&&sessionStorage.setItem(t,e),localStorage.removeItem(t)}}catch(e){console.warn(`could not move older drafts out of localStorage`,e)}}var un=new Map;function k(e=w.sessionId(),t=T.value){e&&(t?sessionStorage.setItem(sn(e),t):sessionStorage.removeItem(sn(e)))}function dn(e){++cn,T.value=sessionStorage.getItem(sn(e))??``,A(),Zt=!1,rn(),E=un.get(e)??[],Gt()}function A(){let e=T.style.height;T.style.height=`auto`;let t=`${Math.min(T.scrollHeight,192)}px`;T.style.height=t,t!==e&&Ee()}var fn=!1;async function pn(e,t){let n=(t??T.value).trim(),r=t===void 0?E:[],i=w.sessionId(),a=w.continuous();if(!(!n&&r.length===0||!i&&!a)){if(t===void 0){if(fn)return;fn=!0,T.value=``,A(),k(),rn(),E=[],Gt()}try{let t=[];if(r.length){let e=await Jt(r);if(e===null){S(`error`,`attachment upload failed`),T.value=[n,T.value.trim()].filter(Boolean).join(`
3
- `),A(),k(),E=r.map(qt),Gt();return}t=e}let o=[n,...t].filter(Boolean).join(`
4
- `),s=w.sessionState()===`idle`&&e===`auto`;s?w.setState(`streaming`):Vt(),(s||e===`steer`)&&(zt(o),S(`user`,o,!1,Date.now()),Ee(!0));let c=await _(a?`/api/continuous/messages`:`/api/sessions/${i}/messages`,{text:o,mode:e});if(!c.ok){let e=await y(c,`send failed`);i&&await w.reload(i),S(`error`,e)}else if(a){let{sessionId:e,command:t}=await c.json();t&&s&&w.setState(`idle`),e!==i&&w.headMoved?.()}}finally{t===void 0&&(fn=!1)}}}async function mn(e){let t=w.sessionId();if(!t)return;D([],[]);let n=await _(`/api/sessions/${t}/queue/deliver`,{mode:e});if(!n.ok){let r=await y(n,`Queue ${e} failed`);await w.reload(t),w.sessionId()===t&&S(`error`,r)}}async function hn(){let e=w.sessionId();if(!e||Nt.has(e))return;Nt.add(e);let t=At,n=cn,r=document.activeElement;try{k();let i=await fetch(`/api/sessions/${e}/queue/recall`,{method:`POST`});if(!i.ok){let t=await y(i,`Could not recall queued messages`);w.sessionId()===e&&S(`error`,t);return}let{messages:a}=await i.json(),o=w.sessionId()===e;if(a.length)try{let t=o?T.value:sessionStorage.getItem(sn(e))??``,i=(t?[t,...a]:a).join(`
5
- `);o&&(T.value=i,A(),n===cn&&w.chatVisible()&&document.activeElement===r&&T.focus()),k(e,i)}catch(t){S(`error`,`Could not save recalled messages for session ${e}: ${String(t)}\nRecalled messages (not saved):\n${a.join(`
6
- `)}`)}o&&t===At&&D([],[])}finally{Nt.delete(e)}}function gn(e){w=e,ln(),Ft(),It();let n=()=>{let e=w.sessionId();e&&fetch(`/api/sessions/${e}/abort`,{method:`POST`})};xt.onclick=n,pt(xt,`Stop the running turn`,n,()=>w.sessionState()===`streaming`&&w.chatVisible()),t(`#queue-steer`).onclick=()=>void mn(`steer`),t(`#queue-restart`).onclick=()=>void mn(`restart`),t(`#queue-recall`).onclick=()=>void hn(),_t.onsubmit=e=>{e.preventDefault(),pn(`auto`)},ht(T,[`/`],`Write a message`,Lt,w.chatVisible),T.onfocus=Ae,T.oninput=()=>{A(),k(),Zt=!1,rn()};let r=!matchMedia(`(pointer: coarse)`).matches;T.onkeydown=e=>{e.isComposing||e.keyCode===229||an(e)||r&&e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),pn(`auto`))},T.onpaste=e=>{for(let t of e.clipboardData?.items??[]){let e=t.kind===`file`?t.getAsFile():null;e&&Kt(e)}let t=e.clipboardData?.getData(`text/plain`)??``,n=t.trim();!n||n===t||(e.preventDefault(),T.setRangeText(n,T.selectionStart??0,T.selectionEnd??0,`end`),A(),k())},C.ondragover=e=>e.preventDefault(),C.ondrop=e=>{e.preventDefault();for(let t of e.dataTransfer?.files??[])Kt(t)},t(`#attach`).onclick=()=>Ot.click(),Ot.onchange=()=>{for(let e of Ot.files??[])Kt(e);Ot.value=``},Vt()}var j=`pier.push`,_n=`/app/sw.js`,vn=()=>/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.maxTouchPoints>1&&/Macintosh/.test(navigator.userAgent),yn=()=>matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0;function bn(){return window.isSecureContext?vn()&&!yn()?`On iPhone and iPad, notifications work only from the installed app: Share → Add to Home Screen, then open Pier from that icon.`:!(`serviceWorker`in navigator)||!(`PushManager`in window)||!(`Notification`in window)?`This browser has no Web Push support.`:``:`Notifications need HTTPS. Reach this Pier through its public URL, not over plain http.`}var xn=[[/iPhone/,`iPhone`],[/iPad/,`iPad`],[/Android/,`Android`],[/Macintosh/,`Mac`],[/Windows/,`Windows`]],Sn=[[/Edg\//,`Edge`],[/Chrome\//,`Chrome`],[/Firefox\//,`Firefox`],[/Safari\//,`Safari`]];function Cn(){let e=navigator.userAgent,t=(t,n)=>t.find(([t])=>t.test(e))?.[1]??n;return`${t(xn,`Linux`)} · ${t(Sn,`browser`)}${yn()?` (installed)`:``}`}var wn=e=>{let t=atob(e.replace(/-/g,`+`).replace(/_/g,`/`)),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n},Tn=null;async function En(){return!(`serviceWorker`in navigator)||!window.isSecureContext?null:(Tn??=await navigator.serviceWorker.register(_n,{scope:`/app/`}).catch(e=>(console.warn(`service worker registration failed`,e),null)),Tn)}var Dn=(e,t)=>{let n=e?new Uint8Array(e):null;return n?.length===t.length&&n.every((e,n)=>e===t[n])};async function On(e){let{publicKey:t}=await pe(`/api/push`,`Could not read this instance's push key`),n=wn(t),r=await e.pushManager.getSubscription();if(r){if(Dn(r.options.applicationServerKey,n))return r;await r.unsubscribe()}return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:n})}async function kn(e){return _(`/api/push/subscribe`,{...e.toJSON(),label:Cn()})}async function An(){Nn();let e=await En();if(!(!e||localStorage.getItem(j)!==`on`)&&!(!(`Notification`in window)||Notification.permission!==`granted`))try{await kn(await On(e))}catch(e){console.warn(`re-registering this browser for notifications failed`,e)}}var jn=null,Mn=null;function Nn(){window.addEventListener(`beforeinstallprompt`,e=>{e.preventDefault(),jn=e,Mn?.()}),window.addEventListener(`appinstalled`,()=>{jn=null,Mn?.()})}function Pn(e){let t=navigator;(e>0?t.setAppBadge?.(e):t.clearAppBadge?.())?.catch(()=>{})}function Fn(){let e=s(`span`,`text-[11.5px]`,``),t=f(`Send a test notification`),r=s(`div`,`flex items-center gap-3`,t,e),i=s(`div`,`flex flex-col gap-4`),a=()=>localStorage.getItem(j)===`on`,c=s(`div`,`flex flex-col gap-2`),u=s(`span`,`text-[11.5px]`,``),p=s(`div`,`flex flex-col gap-2`,c,u);async function te(e){l(u,`saving`,`removing…`);try{let t=await _(`/api/push/unsubscribe`,{endpoint:e.endpoint});if(!t.ok)l(u,`failed`,await y(t,`Could not remove it`));else{let t=await(await En())?.pushManager.getSubscription();t?.endpoint===e.endpoint&&(localStorage.setItem(j,`off`),await t.unsubscribe(),h()),l(u,`saved`,`Removed.`)}}catch(e){l(u,`failed`,`Could not remove it: ${String(e)}`)}await ne()}async function ne(){let e=await g(`/api/push/subscriptions`,`Could not load subscribed devices`);if(!e.ok)return l(u,`failed`,e.error);if(!e.value.devices.length){c.replaceChildren(ee(`No device is subscribed.`));return}c.replaceChildren(...e.value.devices.map(e=>{let t=f(`Remove`);return t.onclick=()=>{t.disabled=!0,te(e)},he(e.label,`subscribed ${o(e.createdAt)}`,t,{tag:e.current?ie(`This browser`,`bg-neutral-50 text-neutral-500 ring-neutral-200`):void 0})}))}async function re(){l(e,`saving`,`asking this browser…`);let t=await Notification.requestPermission();if(t!==`granted`)return localStorage.setItem(j,`off`),h(),l(e,`failed`,t===`denied`?`Notifications are blocked for this site — allow them in the browser's site settings, then try again.`:`No answer to the permission prompt.`);let n=await En();if(!n)return l(e,`failed`,`This browser refused to register a service worker.`);try{let t=await kn(await On(n));if(!t.ok)return l(e,`failed`,await y(t,`Could not register this browser`));localStorage.setItem(j,`on`),h(),l(e,`saved`,`This browser will be notified when a turn finishes unseen.`),ne()}catch(t){l(e,`failed`,`Could not subscribe: ${String(t)}`)}}async function ae(){localStorage.setItem(j,`off`),h();let t=await(await En())?.pushManager.getSubscription();t&&(await _(`/api/push/unsubscribe`,{endpoint:t.endpoint}),await t.unsubscribe()),l(e,`idle`,`This browser will not be notified.`),ne()}t.onclick=()=>{l(e,`saving`,`sending…`),(async()=>{let t=await _(`/api/push/test`,{});if(!t.ok)return l(e,`failed`,await y(t,`Could not send`));let{sent:n,failed:r}=await t.json();l(e,r?`failed`:`saved`,`Handed ${String(n)} device(s) to their push service${r?`, ${String(r)} refused`:``}.`)})()};function m(){if(!jn)return[];let e=f(`Install Pier`,!0);return e.onclick=()=>{let e=jn;e&&e.prompt().then(()=>e.userChoice).finally(()=>{jn=null,h()})},[s(`div`,`flex items-center gap-3`,e,s(`span`,`text-[11.5px] leading-snug text-neutral-500`,`Its own window and icon — and where notifications look like an app's.`))]}function h(){let e=bn();if(e){i.replaceChildren(...m(),s(`p`,`text-[12.5px] leading-snug text-neutral-500`,e),p);return}let n=a()&&Notification.permission===`granted`;t.disabled=!n,i.replaceChildren(...m(),d(`Notify this device`,`A turn that finishes while nobody is looking at it becomes a notification here. Per browser — each device is enabled on its own.`,n,e=>void(e?re():ae())),r,p)}return Mn=h,h(),{el:n(`Notifications`,`Web Push, so a finished turn reaches you with the workbench closed. Installed — Chrome's address-bar icon, or Share → Add to Home Screen on iOS — Pier notifies you the way an app does.`,i),load:()=>{l(u,`idle`,``),ne()}}}var M,N=t(`#status-chip`),In=e=>e.modified??e.createdAt,Ln=e=>e.unread,Rn=e=>e.state===`streaming`||Ln(e)||e.activeRuns>0||e.runLive===!0||e.designOpen===!0;function zn(e){return e.state===`streaming`?`working`:Ln(e)?`unread`:e.activeRuns>0?`runs`:e.runLive?`queued`:e.designOpen?`design`:null}var Bn=e=>e===`unread`||e===`design`;function Vn(e){let t=zn(e);return t?Un(t===`working`?Hn:t===`unread`?[`bg-amber-500`,`turn finished — not viewed yet`]:t===`runs`?[`bg-sky-500`,`${e.activeRuns} subagent${e.activeRuns>1?`s`:``} running`]:[`bg-neutral-400`,t===`queued`?`lead — run queued`:`design — waiting for you to finalize`]):[]}var Hn=[`bg-green-500 animate-pulse`,`working…`];function Un([e,t]){let n=s(`span`,`h-2 w-2 flex-none rounded-full ${e}`);return n.title=t,[n]}var Wn=e=>e.phase?Kn(e.phase,e.phase===`design`?`lead — designing with you`:`lead — building per the design`):[],Gn=e=>e.state===`running`?Un(Hn):[],Kn=(e,t)=>{let n=s(`span`,`flex-none rounded bg-neutral-100 px-1 text-[0.6875rem] font-medium leading-4 text-neutral-500`,e);return n.title=t,[n]};function qn(e,t){let n=new Set(t.map(e=>e.sessionId));return e.filter(e=>Rn(e)&&!n.has(e.id))}var Jn=()=>{let e=M.chain()[0]?.sessionId;return M.sessions().find(t=>t.id===e)},Yn=`flex items-center gap-1 rounded-[10px] px-1.5 hover:bg-neutral-100`,Xn=`session-open flex min-h-10 min-w-0 flex-1 cursor-pointer items-center gap-1.5 text-left`,Zn=`flex-none text-xs font-medium uppercase leading-5 text-neutral-500`,Qn=e=>e.channel&&e.channel!==`web`?[s(`span`,Zn,e.channel[0]??``)]:[];function $n(e,t,n,r,i,a=[]){let o=s(`li`,Yn),c=s(`button`,Xn,s(`span`,`min-w-0 flex-1 truncate`,e),...t);return c.setAttribute(`type`,`button`),c.onclick=()=>{m(),i()},n===M.currentId()&&c.setAttribute(`aria-current`,`page`),o.dataset.sessionId=n,o.title=r,o.append(c,...a),o}var er=e=>$n(e.title??`untitled`,[...Wn(e),...Vn(e)],e.id,[e.cwd,`active ${re(In(e))} ago · created ${new Date(e.createdAt).toLocaleDateString()}`,...e.channel&&e.channel!==`web`?[`answering ${e.channel}`]:[]].join(`
7
- `),()=>M.select(e.id),Qn(e)),tr=e=>e.state===`running`||e.state===`queued`;function nr(e){let t=M.open();return t?[...t.items.flatMap(e=>e.runs),...t.unlisted].filter(t=>tr(t)&&!(t.targetSessionId&&e.has(t.targetSessionId))):[]}var rr=e=>{let t=e.targetSessionId;return $n(e.name,[...Kn(`run`,`run ${e.runId} · ${e.state}`),...Gn(e)],`run:${e.runId}`,`run ${e.runId} · ${e.state}${e.cwd?`\n${e.cwd}`:``}`,()=>t?M.select(t):M.openContinuous())},ir=null,ar=[],or=!1,sr=()=>`${M.currentId()??``}\n${JSON.stringify(M.chain())}\n${JSON.stringify(M.sessions())}\n${JSON.stringify(M.open())}`,cr=``;function P(){let e=sr();if(e===cr)return;cr=e;let t=qn(M.sessions(),M.chain()),n=nr(new Set(M.sessions().map(e=>e.id))),r=t.filter(e=>Bn(zn(e))).length,i=t.length+n.length-r;ar=[...t.map(er),...n.map(rr)],Pn(r+ +!!Jn()?.unread);let a=M.open()?.items.length??0,o=[...i?[`${i} running`]:[],...r?[`${r} needs you`]:[]],s=(o.length?o:a?[`${a} open`]:[]).join(` · `);or=!!s,N.textContent=s,N.classList.toggle(`hidden`,!s),N.classList.toggle(`block`,!!s),N.classList.toggle(`text-amber-700`,r>0),N.classList.toggle(`text-neutral-600`,r===0),ir?.isConnected&&!ir.closest(`[inert]`)&&(or?(lr(ir),pr&&hr(pr)):m()),Vr()}function lr(e){let t=document.activeElement?.closest(`[data-session-id]`)?.dataset.sessionId;e.replaceChildren(...ar),e.previousElementSibling?.classList.toggle(`hidden`,!ar.length),e.nextElementSibling?.classList.toggle(`mt-2`,ar.length>0),t&&ar.find(e=>e.dataset.sessionId===t)?.querySelector(`.session-open`)?.focus({preventScroll:!0})}var ur=`px-2 pb-1 text-xs font-semibold leading-5 text-neutral-500`;function dr(){if(N.getAttribute(`aria-expanded`)===`true`)return m();if(!or)return;let e=s(`ul`,``);e.dataset.list=``;let t=xe(`border-l-cyan-500`);t.classList.add(`px-4`),t.append(Te(`Loading…`));let n=s(`div`,`w-[min(32rem,calc(100vw-2rem))] max-sm:w-full font-sans text-sm`,s(`div`,ur,`In progress`),e,s(`div`,ur,`Open items`),t);lr(e),ir=e,pr=t,hr(t),se(N,n).setAttribute(`aria-label`,`Status`)}function fr(e){M=e,N.onclick=dr,gt(`shift+p`,dr,ut)}var pr=null,mr=0;async function hr(e){let t=++mr,n=await g(`/api/continuous/status`,`Could not load status`);if(t!==mr)return;let r=Te(n.ok?n.value.text:n.error);n.ok?we(r,n.value.sessions,e=>{m(),M.select(e)}):r.classList.add(`text-red-600`),e.replaceChildren(r)}var F,I=t(`#palette`),gr=t(`#palette-input`),_r=t(`#palette-list`),vr=t(`#palette-count`),yr=[{name:`settings`,icon:$e,label:`Settings`,detail:`Console — models and providers, agent files and extensions, channels, password, sign out, security`}],br=7,xr=8,Sr=80,Cr=``,wr,Tr,Er;function Dr(e){Cr!==e&&(clearTimeout(Er),Tr?.abort(),Tr=void 0,Cr=e,wr=void 0,e&&(Er=setTimeout(()=>{let t=Tr=new AbortController;g(`/api/search?q=${encodeURIComponent(e)}`,`Search unavailable`,{signal:t.signal}).then(n=>{t.signal.aborted||Cr!==e||(Tr=void 0,wr=n.ok?{hits:n.value.hits}:{error:n.error},I.open&&Br())})},Sr)))}var L=[],R=0;function Or(e){if(L.length){R=(e+L.length)%L.length;for(let[e,{el:t}]of L.entries())t.classList.toggle(`bg-indigo-50`,e===R),t.setAttribute(`aria-selected`,String(e===R));L[R]?.el.scrollIntoView({block:`nearest`})}}var kr=e=>e.hit?.at??e.session?.createdAt;function Ar(e){let t=s(`span`,`min-w-0 flex-1 truncate text-neutral-500`);for(let n of e.replaceAll(/\s+/g,` `).split(``)){let[e=``,r]=n.split(``,2);r===void 0?t.append(e):t.append(s(`span`,`font-medium text-neutral-800`,e),r)}return t}var jr=`flex min-w-0 flex-1 items-baseline gap-2`,Mr=`shrink-0 truncate`,Nr=`min-w-[2.5em] truncate text-[0.8125rem] text-neutral-400`,Pr=`flex-none text-[0.75rem] tabular-nums text-neutral-400`,Fr=`flex h-7 w-7 flex-none items-center justify-center rounded-[8px] bg-neutral-100 text-neutral-500`;function Ir(e){let t=s(`li`,`palette-row flex cursor-pointer items-center gap-3 rounded-[10px] px-2 leading-5 ${e.hit?`py-1.5`:`min-h-10`}`);t.setAttribute(`role`,`option`),t.append(s(`span`,Fr,b(e.icon,`h-4 w-4`)));let n=s(`div`,`flex min-w-0 flex-1 flex-col`),r=s(`div`,`flex items-center gap-2`);e.session&&r.append(...Vn(e.session));let i=s(`span`,jr,s(`span`,`${Mr} ${e.detail?`max-w-[calc(100%-3em)]`:`max-w-full`}`,e.label));e.detail&&i.append(s(`span`,Nr,e.detail)),r.append(i);let a=kr(e);return e.session&&r.append(...Wn(e.session)),a!==void 0&&r.append(s(`span`,Pr,re(a))),n.append(r),e.hit&&n.append(s(`div`,`flex items-baseline gap-2 text-[0.8125rem] leading-5`,s(`span`,`flex-none text-[0.75rem] text-neutral-400`,e.hit.role===`user`?`You`:`Agent`),Ar(e.hit.snippet))),t.append(n),t.onclick=e.open,t}var Lr=e=>s(`li`,`px-2 pb-1.5 pt-4 text-[0.6875rem] font-semibold leading-4 tracking-[0.02em] text-neutral-400 first:pt-2`,e);function Rr(e,t){let n=s(`li`,`px-2 py-2 pl-12 text-[0.8125rem] leading-5 text-neutral-400`,e);return t&&(n.title=t),n}var zr=e=>e.channel&&e.channel!==`web`?e.channel:``;function Br(){let t=gr.value.trim(),n=t.toLowerCase().split(/\s+/).filter(Boolean),r=e=>{let t=e.toLowerCase();return n.every(e=>t.includes(e))},i=e=>()=>{I.close(),e()},a=F.sessions(),o=new Map(a.map(e=>[e.id,e])),s=t=>({icon:Ye,label:t.title??e(t.cwd),detail:[ne(t.cwd),zr(t)].filter(Boolean).join(` · `),open:i(()=>void F.select(t.id)),session:t}),c=Jn(),l=!t||r(`pier conversation`)?[{icon:Xe,label:`Pier`,detail:``,open:i(F.openContinuous),...c?{session:c}:{}}]:[],u=yr.filter(e=>!t||r(`${e.label} ${e.detail}`)).map(({name:e,icon:t,label:n,detail:r})=>({icon:t,label:n,detail:r,open:i(()=>F.openConsole(e))})),d=[[``,l]];if(!t)d.push([`Recent`,a.filter(e=>!Rn(e)&&e.id!==c?.id).slice(0,br).map(s)],[`Actions`,u]);else{let e=a.filter(e=>r(`${e.title??``} ${e.cwd} ${zr(e)}`)).slice(0,xr),n=new Set(e.map(e=>e.id)),c=e.map(s);if(Cr!==t||!wr)c.push(Rr(`Searching messages…`));else if(`error`in wr)c.push(Rr(`Message search unavailable`,wr.error));else{for(let e of wr.hits){if(c.length>=xr)break;let t=o.get(e.sessionId);!t||n.has(t.id)||c.push({...s(t),hit:e,open:i(()=>void F.select(t.id).then(()=>Me(e.role,e.at)))})}c.length||c.push(Rr(`No sessions match`))}d.push([`Actions`,u],[`Sessions`,c])}L=[];let f=[];for(let[e,t]of d)if(t.length){e&&f.push(Lr(e));for(let e of t){if(e instanceof HTMLElement){f.push(e);continue}let t=Ir(e);L.push({el:t,open:e.open}),f.push(t)}}_r.replaceChildren(...f.length?f:[Rr(`Nothing matches`)]),vr.textContent=`${L.length} ${L.length===1?`row`:`rows`}`,Or(Math.min(R,Math.max(0,L.length-1)))}function Vr(){I.open&&Br()}function Hr(){if(I.open)return I.close();gr.value=``,R=0,Dr(``),Br(),I.showModal(),gr.focus(),F.loadSessions().then(Vr)}function Ur(e){F=e,gt(`k`,Hr,()=>I.open||me()),I.onclick=e=>{e.target===I&&I.close()},I.onclose=()=>Dr(``),gr.oninput=()=>{R=0,Dr(gr.value.trim()),Br()},gr.onkeydown=e=>{let t=de(e);if(t!==void 0){e.preventDefault(),Or(R+t);return}e.key===`Enter`&&!e.ctrlKey&&(e.preventDefault(),L[R]?.open())}}var Wr=0,Gr=null;async function Kr(){let{modelMenu:e}=await pe(`/api/settings`,`Could not read the pinned model menu`);return e}function qr(e){let t=s(`button`,`flex w-full min-w-0 cursor-pointer items-center gap-2 px-3 py-1.5 text-left hover:bg-neutral-100`,b(te,`h-3 w-3 text-indigo-600 ${e.checked?``:`invisible`}`),s(`span`,`truncate`,e.label));return e.hint&&t.append(s(`span`,`ml-auto flex-none text-[11.5px] text-neutral-400`,e.hint)),t.onclick=()=>e.onSelect(),t}function Jr({models:e,current:t,thinkingLevel:n,thinkingLevels:r,onPick:i,onThinkingPick:a}){let o=n,c=s(`div`,`flex w-full min-w-0 flex-col sm:min-w-72`),l=s(`div`,`flex flex-col gap-2 border-b border-neutral-200 px-2 py-2`),u=document.createElement(`input`);if(u.type=`search`,u.placeholder=`Search models`,u.setAttribute(`aria-label`,`Search models`),u.className=`w-full rounded-md border border-neutral-300 px-2 py-1.5 text-[12.5px] focus:border-indigo-400 focus:outline-none`,l.append(u),r.length){let e=document.createElement(`details`),t=s(`span`,`ml-auto font-medium text-indigo-700`,fe(o)),n=s(`summary`,`flex min-h-11 cursor-pointer list-none items-center gap-2 rounded-xl px-3 text-sm text-neutral-700 hover:bg-neutral-100 [&::-webkit-details-marker]:hidden`,s(`span`,`font-medium`,`Reasoning effort`),t,b(p,`chev h-3 w-3 text-neutral-400`)),i=s(`fieldset`,`grid grid-cols-2 gap-1 rounded-xl bg-neutral-50 p-1`);i.append(s(`legend`,`sr-only`,`Reasoning effort`));let c=`reasoning-${++Wr}`;for(let e of r){let n=document.createElement(`input`);n.type=`radio`,n.name=c,n.value=e,n.checked=e===o,n.className=`peer sr-only`,n.onchange=()=>{n.checked&&(o=e,t.textContent=fe(o),te(u.value),a(o))},i.append(s(`label`,`relative cursor-pointer`,n,s(`span`,`flex min-h-11 items-center rounded-lg border border-transparent px-3 text-sm text-neutral-700 hover:bg-neutral-100 peer-checked:border-indigo-200 peer-checked:bg-indigo-50 peer-checked:font-semibold peer-checked:text-indigo-700 peer-focus-visible:outline-2 peer-focus-visible:outline-indigo-500`,fe(e))))}e.append(n,i),l.append(e)}let d=s(`div`,`max-h-72 overflow-y-auto py-1`),f=new Map(e.map(e=>[x(e),e])),ee=e=>{let n=(Gr??[]).map(e=>({e,model:f.get(x(e))})).filter(t=>!!t.model&&(!e||x(t.model).toLowerCase().includes(e)));n.length&&d.append(s(`div`,`px-3 pb-0.5 pt-1 text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400`,`Pinned`),...n.map(({e,model:n})=>qr({label:n.id,hint:fe(e.thinking),checked:!!t&&x(t)===x(n)&&o===e.thinking,onSelect:()=>i(n,e.thinking)})),s(`div`,`my-1 border-t border-neutral-100`))},te=n=>{d.replaceChildren();let r=n.trim().toLowerCase();ee(r);let a=new Map;for(let t of e){if(r&&!x(t).toLowerCase().includes(r))continue;let e=a.get(t.provider);e?e.push(t):a.set(t.provider,[t])}if(!a.size){d.append(s(`div`,`px-3 py-2 text-[12.5px] text-neutral-400`,e.length?`No matching models.`:`No models available.`));return}for(let[e,n]of a){let a=n.some(e=>!!t&&x(t)===x(e)),o=document.createElement(`details`);o.open=a||r.length>0;let c=s(`summary`,`flex cursor-pointer select-none items-center gap-1.5 px-3 py-1 text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400 hover:bg-neutral-100`,b(p,`chev h-3 w-3`),s(`span`,`truncate`,e),s(`span`,`ml-auto flex-none normal-case text-neutral-300`,String(n.length)));o.append(c,...n.map(e=>qr({label:e.id,checked:!!t&&x(t)===x(e),onSelect:()=>i(e)}))),d.append(o)}};return u.oninput=()=>te(u.value),te(``),Kr().then(e=>{let t=JSON.stringify(e)!==JSON.stringify(Gr);Gr=e,t&&te(u.value)}).catch(e=>ze(`model menu unavailable`,e)),c.append(l,d),queueMicrotask(()=>u.focus()),c}function Yr(e,t,n,r){let a=t.model?`${t.model.id}${t.thinking?` · ${fe(t.thinking)}`:``}`:t.thinking?`Pi default · ${fe(t.thinking)}`:`Pi default`,o=ge(a,`${ce} flex items-center gap-1.5 ${t.model?`text-neutral-700`:`text-neutral-400`}`);return o.title=t.model?x(t.model):`Whatever the project and Pi pick`,o.onclick=()=>{let e=Jr({models:n,current:t.model,thinkingLevel:t.thinking??`medium`,thinkingLevels:[...Se],onPick:(e,n)=>{m(),r({model:e,thinking:n??t.thinking})},onThinkingPick:e=>{t={...t,thinking:e},r(t)}}),i=ge(`Pi default`,`w-full cursor-pointer px-3 py-1.5 text-left text-[12.5px] text-neutral-500 hover:bg-neutral-100`);i.onclick=()=>{m(),r({model:null,thinking:null})};let a=s(`div`,`flex flex-col`);a.append(e,s(`div`,`border-t border-neutral-200`),i),se(o,a)},i(e,o)}var z;function Xr(e){z=e,Qr.onclick=()=>z.openContinuous(),ti.onclick=()=>bi(ti),gt(Zr,()=>{z.currentSession()&&(m(),z.toggleFiles())},()=>ut(t(`#files-dialog`)))}var Zr=`i`,Qr=t(`#bar-back`),$r=t(`#chat-title`),ei=t(`#chat-phase`),ti=t(`#chat-menu`),ni=t(`#session-meta`),ri=null,ii=new Map,B=null,V=null,H=null,ai=null;function oi(){B=null,V=null,H=null,ai=null,pi()}function si(e,t,n,r){B=e,V=t,H=n,ai=r,U()}function ci(e){ai=e.completedAt,V&&={...V,tokens:e.tokens},pi()}function U(){let t=z.currentSession(),n=z.continuousOpen();$r.textContent=n?`Pier`:t?t.title??e(t.cwd):z.currentId()??`no session`,$r.disabled=!t,$r.classList.toggle(`cursor-pointer`,!!t),$r.title=t?`Session info`:``,$r.onclick=t?()=>mi($r,t):null,Qr.classList.toggle(`hidden`,n),Qr.classList.toggle(`flex`,!n);let i=n?void 0:Jn();Qr.replaceChildren(b(r,`h-4.5 w-4.5`),...i&&(i.state===`streaming`||i.unread)?Vn(i):[]),ei.replaceChildren(...!n&&t?Wn(t):[]),pi()}var li=70,ui=(e,t)=>Math.min(100,Math.round(e/t*100)),di=e=>z.continuousOpen()?z.rotateAt():e.compactAt,fi=(e,t)=>e.tokens===null?`?/${v(t)}`:`${v(e.tokens)}/${v(t)} · ${100-ui(e.tokens,t)}% left`;function pi(){let e=V,t=e?.tokens??null,n=z.currentId(),r=z.continuousOpen(),i=[];if(n&&!r){let e=(e,t)=>{let r=s(`button`,`cursor-pointer font-mono ${t}`,e);return r.title=`Change model or reasoning`,r.onclick=()=>void hi(r,n),r};B&&i.push(e(B.id,`min-w-0 truncate rounded bg-indigo-50 px-1.5 py-px font-medium text-indigo-700 hover:bg-indigo-100`)),H&&i.push(e(H,`flex-none text-neutral-500 hover:text-indigo-700`))}let a=e?di(e):null,o=0;if(e&&t!==null&&a){o=ui(t,a);let n=o>=90?`text-red-700`:o>=li?`text-amber-700`:`text-neutral-500`;if(r){let r=s(`span`,`flex-none rounded-full bg-neutral-100 px-2 py-0.5 font-mono text-[12px] ${n}`,v(t).toLowerCase());r.title=`Context: ${fi(e,a)} before the next message starts a new session`,i.push(r)}else i.push(s(`span`,`flex-none font-mono ${n}`,v(t).toLowerCase()))}let c=i.flatMap((e,t)=>t===0?[e]:[s(`span`,`flex-none text-neutral-300`,`·`),e]);ni.replaceChildren(...c),ni.classList.toggle(`hidden`,i.length===0),ni.classList.toggle(`flex`,i.length>0),ni.toggleAttribute(`data-urgent`,o>=li),ni.toggleAttribute(`data-inline`,r)}function mi(t,n,r){let i=[[`Directory`,n.cwd],[`Session`,n.id]],a=n.id===z.currentId();if(a){i.push([`Model`,B?.id??`—`]),i.push([`Reasoning`,H??`—`]);let e=V?di(V):null;i.push([`Context`,V&&e?fi(V,e):`—`])}if(i.push([`Created`,u(n.createdAt),o(n.createdAt)]),a){let e=ai;i.push(e===null?[`Last reply`,`—`]:[`Last reply`,u(e),o(e)])}let l=s(`div`,`w-[min(26rem,calc(100vw-2rem))] max-sm:w-full rounded-xl bg-white px-3 py-3 font-sans text-[15px] leading-normal`),d=s(`button`,`icon-btn h-11 w-11 sm:h-8 sm:w-8`,b(ae));d.setAttribute(`aria-label`,`Close session info`),d.onclick=m;let f=s(`div`,`sticky top-0 z-10 flex items-start gap-2 bg-white pb-2`,s(`div`,`min-w-0 flex-1`,s(`div`,`text-sm font-medium text-neutral-500`,`Session info`),s(`h2`,`mt-1 [overflow-wrap:anywhere] text-lg leading-7 font-semibold text-neutral-900`,n.title??e(n.cwd))),d);if(r){let e=s(`button`,`icon-btn h-11 w-11 sm:h-8 sm:w-8`,b(Je));e.setAttribute(`aria-label`,`Back to session actions`),e.onclick=r,f.prepend(e)}l.append(f);let p=s(`dl`,``);for(let[e,t,n]of i){let r=e===`Directory`||e===`Session`,i=s(`dd`,`min-w-0 flex items-start gap-2 text-neutral-700 ${r?`font-mono text-sm leading-6`:``}`,s(`span`,`min-w-0 flex-1 [overflow-wrap:anywhere]`,t));if(r){let n=c(`min-h-11 min-w-11 sm:min-h-8 shrink-0 cursor-pointer rounded-lg px-2 py-1 text-[13px] font-sans text-neutral-500 hover:bg-neutral-100 focus-visible:outline-2`,()=>t);n.setAttribute(`aria-label`,`Copy ${e.toLowerCase()}`),i.append(n)}n&&i.firstElementChild?.append(s(`span`,`ml-2 inline-block font-sans text-[13px] leading-5 text-neutral-500`,n));let a=e===`Model`||e===`Created`;p.append(s(`div`,`grid gap-1 py-1.5 sm:grid-cols-[5.5rem_minmax(0,1fr)] sm:gap-3 ${a?`mt-2 border-t border-neutral-200 pt-2.5`:``}`,s(`dt`,`text-[15px] text-neutral-500`,e===`Session`?`Session ID`:e),i))}return l.append(p),se(t,l)}async function hi(t,n,r){let i=s(`div`,`px-3 py-3 text-[15px] text-neutral-500`,`Loading models…`),a=s(`div`,`w-[min(24rem,calc(100vw-2rem))] min-w-0 max-sm:w-full`,i),o=i;r&&a.prepend(yi(t,r.title??e(r.cwd),`Close model picker`)),se(t,a);let c=()=>o.isConnected&&!o.closest(`[inert]`),l=``,u=(e,r,i)=>{let s=JSON.stringify([e,r,i]);if(s===l)return;l=s;let c=Jr({models:e,current:n===z.currentId()?B:null,thinkingLevel:r,thinkingLevels:i,onPick:(e,t)=>{m(),gi(n,e,t)},onThinkingPick:e=>void vi(n,e)});o.replaceWith(c),o=c,se(t,a)},d=n===z.currentId()&&B?ii.get(x(B)):void 0;ri&&d&&H&&u(ri,H,d);try{let[e,t]=await Promise.all([pe(`/api/sessions/${n}/models`,`Could not load models`),pe(`/api/sessions/${n}/thinking`,`Could not read the reasoning level`)]);if(ri=e,n===z.currentId()&&B&&ii.set(x(B),t.levels),!c())return;u(e,t.level,t.levels)}catch(e){l?S(`error`,`model options are stale: ${String(e)}`):c()?(i.textContent=`Could not load models: ${String(e)}`,i.setAttribute(`role`,`alert`)):S(`error`,`model options failed: ${String(e)}`)}}async function gi(e,t,n){await _i(e,t)&&n&&await vi(e,n)}async function _i(e,t){let n=B;e===z.currentId()&&(B=t,U());let r=await _(`/api/sessions/${e}/model`,t);if(!r.ok){let{error:t}=await r.json().catch(()=>({}));return e===z.currentId()&&(B=n,U()),S(`error`,`model change failed: ${t??r.status}`),!1}let{model:i}=await r.json();return e===z.currentId()&&i&&(B=i,U()),!0}async function vi(e,t){let n=await _(`/api/sessions/${e}/thinking`,{level:t});if(!n.ok){S(`error`,`reasoning change failed: ${n.status}`);return}let{level:r}=await n.json();e===z.currentId()&&(H=r,pi())}function yi(e,t,n){let r=s(`button`,`icon-btn h-11 w-11`,b(Je));r.setAttribute(`aria-label`,`Back to session actions`),r.onclick=()=>bi(e);let i=s(`button`,`icon-btn h-11 w-11`,b(ae));i.setAttribute(`aria-label`,n),i.onclick=m;let a=s(`span`,`min-w-0 flex-1 truncate text-sm font-medium`,t);return a.title=a.textContent??``,s(`div`,`flex items-center gap-2 border-b border-neutral-200 pb-2 mb-2`,r,a,i)}function bi(t){let n=z.currentSession(),r=z.continuousOpen(),i=n?{}:{disabled:!0,hint:`after the first reply`},a=[...r?[{label:`Search`,hint:lt(`k`),onSelect:()=>{m(),Hr()}}]:[],{label:`Session info`,separatorBefore:r,onSelect:()=>n&&mi(t,n,()=>bi(t)),...i},{label:`Browse files`,hint:lt(Zr),onSelect:()=>{m(),z.openFiles()}},{label:`Model & reasoning…`,separatorBefore:!0,hint:B?.id??`…`,onSelect:()=>n&&void hi(t,n.id,n),...i},{label:`Settings`,separatorBefore:!0,onSelect:()=>{m(),z.openSettings()}}];h(t,a,r?`Pier`:n?n.title??e(n.cwd):`Session`)}var xi=`pier.theme`,Si=[`system`,`light`,`dark`],Ci=window.matchMedia(`(prefers-color-scheme: dark)`),wi={system:Ze,light:et,dark:Qe},Ti=()=>{let e=null;try{e=localStorage.getItem(xi)}catch{return`system`}return e===`light`||e===`dark`?e:`system`},Ei=()=>{let e=Ti();return e===`system`?Ci.matches?`dark`:`light`:e};function Di(){let e=Ei();document.documentElement.dataset.theme=e;let n=getComputedStyle(document.documentElement).getPropertyValue(`--workbench-canvas`).trim();t(`meta[name="theme-color"]`).setAttribute(`content`,n)}function Oi(){let e=t(`#theme-toggle`),n=()=>{let t=Ti();e.title=`Theme: ${t}${t===`system`?` (${Ei()})`:``}`,e.replaceChildren(b(wi[t])),e.setAttribute(`aria-label`,e.title),Di()};e.onclick=()=>{let e=Si[(Si.indexOf(Ti())+1)%Si.length];try{e===`system`?localStorage.removeItem(xi):localStorage.setItem(xi,e)}catch{}n()},Ci.addEventListener(`change`,n),n()}var ki=`https://github.com/timqi/pier`,Ai=[`text-neutral-400`,`hover:text-neutral-700`],ji=[`rounded-full`,`bg-emerald-50`,`px-1.5`,`text-emerald-700`,`ring-1`,`ring-inset`,`ring-emerald-600/20`,`hover:bg-emerald-100`],Mi=18e5,W=null,G=t(`#version`);function Ni(e){let t=W?.available===!0&&W.latest!==null;G.textContent=`v${e}`,G.title=t?`Pier ${W?.latest} is out`:``,G.classList.remove(...t?Ai:ji),G.classList.add(...t?ji:Ai)}var Pi=(e,t=`px-3 py-1 text-[12px] leading-snug text-neutral-500`)=>s(`p`,t,e);function Fi(){let e=s(`div`,`flex w-72 flex-col gap-1 py-1`);if(!W)return e.append(Pi(`Checking the registry…`)),e;let{current:t,latest:n,available:r,canApply:i,problem:a}=W,o=s(`span`,``,``),c=(e,t)=>l(o,e?`failed`:`idle`,t),u=s(`div`,`flex items-center gap-2 px-3 py-1.5`);if(e.append(Pi(r?`Pier ${n} is out`:`Pier ${t}`,`px-3 py-1 text-[12.5px] font-medium text-neutral-700`),Pi(r?`You are running ${t}.`:n===null?`The registry could not be reached, so this may not be the latest.`:`This is the latest release.`)),a&&e.append(Pi(a,`mx-3 my-1 rounded-md bg-red-50 px-2 py-1.5 text-[11.5px] leading-snug text-red-700`)),r&&i&&!a){let e=f(`Update now`,!0);e.onclick=()=>void(async()=>{e.disabled=!0,c(!1,`starting the updater…`);let t=await _(`/api/update`,{});if(!t.ok)return e.disabled=!1,c(!0,await y(t,`Could not update`));let{draining:n}=await t.json();c(!1,n?`Waiting for running work to finish — Pier then installs and restarts.`:`Installing — Pier restarts once it is on disk, and this page reconnects on its own.`)})(),u.append(e)}u.append(Object.assign(s(`a`,`btn text-[12.5px] no-underline`,`Source`),{href:r?`${ki}/releases`:ki,target:`_blank`,rel:`noreferrer`,title:`Pier is free software (AGPL-3.0)`})),e.append(u,s(`div`,`px-3`,o)),r&&!i&&!a&&e.append(Pi(`No service manager owns this Pier, so it cannot restart itself — update it with: pier update`));let p=d(`Update automatically`,i?`Installs a new release once nothing is running — no turn in flight, no task run.`:`Needs the systemd service (pier service install); nothing here can restart Pier.`,W.autoUpdate,e=>void(async()=>{W&&(W.autoUpdate=e);let t=await _(`/api/settings`,{autoUpdate:e},`PUT`);t.ok||(W&&(W.autoUpdate=!e),ee&&(ee.checked=!e),c(!0,await y(t,`Could not save`)))})()),ee=p.querySelector(`input`);return ee&&(ee.disabled=!i),e.append(s(`div`,`mt-1 border-t border-neutral-200 px-3 pb-1 pt-2`,p)),e}async function Ii(e){let t=await g(`/api/update`,`Update check failed`);t.ok&&Ni((W=t.value).current||e)}function Li(e){Ni(e),G.onclick=e=>{e.preventDefault(),se(G,Fi())};let t=()=>void Ii(e);t(),setInterval(t,Mi)}var K,Ri=t(`#composer`),zi=[t(`#bar`),C,Ri],Bi=()=>Ui===null,Vi=new Map,Hi=new Map,Ui=null,Wi=0,Gi=new Map,Ki={settings:`Settings`};function qi(e,t,n){let r=na();r&&(r.kind!==`console`||r.name!==e)&&Gi.set(e,r),ia({kind:`console`,name:e,arg:t,query:n}),Ui=e;for(let e of zi)e.classList.add(`hidden`);Ht();for(let[t,n]of Vi)t!==e&&n.hide();Ji(e,t,n,++Wi)}async function Ji(e,n,r,i){let o=Vi.get(e);if(!o){let n=Hi.get(e);if(!n){let r=t(`#${e}-view`);n=la[e](r).catch(t=>(console.warn(`${e} view failed to load`,t),a(r,()=>r.replaceChildren(s(`p`,`p-4 text-[13px] text-red-600`,`Could not load ${Ki[e]} — reload the page.`))))),Hi.set(e,n)}o=await n,Vi.set(e,o),Hi.delete(e)}Ui===e&&i===Wi&&o.show(n,r)}var Yi=(e,t)=>void ue(()=>import(`./explorer-DDoVzMLQ.js`).then(n=>n.openFiles(K.currentSession(),e,t)),__vite__mapDeps([0,1,2])),Xi=()=>void ue(()=>import(`./explorer-DDoVzMLQ.js`).then(e=>e.toggleFiles(K.currentSession())),__vite__mapDeps([0,1,2]));function Zi(e){let t=K.currentId(),n=Gi.get(e)??(t?aa(t):$i);Gi.delete(e),ia(n)}function Qi(){if(Ui){Ui=null;for(let e of Vi.values())e.hide();for(let e of zi)e.classList.remove(`hidden`);Ht(),K.maybeAckRead()}}var $i={kind:`conversation`},ea=e=>e.kind===`session`?`#/session/${encodeURIComponent(e.id)}`:e.kind===`conversation`?`#/conversation`:`#/${e.name}${e.arg?`/${encodeURIComponent(e.arg)}`:``}${e.query?`?${e.query}`:``}`,ta={config:`files`,channels:`channels`,providers:`models`};function na(){let e=location.hash.replace(/^#\/?/,``),t=e.indexOf(`?`),[n=``,r]=(t<0?e:e.slice(0,t)).split(`/`),i=t<0?void 0:e.slice(t+1)||void 0,a;try{a=r?decodeURIComponent(r):void 0}catch{return null}return ta[n]?{kind:`console`,name:`settings`,arg:ta[n]}:Object.hasOwn(Ki,n)?{kind:`console`,name:n,arg:a,query:i}:n===`session`&&a?{kind:`session`,id:a}:n===`conversation`?$i:null}var ra=!1;function ia(e,t=!1){if(ra)return;let n=ea(e);location.hash!==n&&(t?history.replaceState(null,``,n):location.hash=n)}var aa=e=>K.inConversation(e)?$i:{kind:`session`,id:e},oa=e=>ia(aa(e)),sa=()=>ia($i);function ca(){let e=na()??$i;ra=!0;try{e.kind===`conversation`?K.openContinuous():e.kind===`session`?e.id===K.currentId()?Qi():K.select(e.id):(K.currentId()||K.openContinuous(),qi(e.name,e.arg,e.query))}finally{ra=!1}e.kind===`conversation`?ia($i,!0):e.kind===`session`&&ia(aa(e.id),!0)}var la={settings:async e=>(await ue(async()=>{let{createSettingsView:e}=await import(`./settings-Cv7rbeqf.js`);return{createSettingsView:e}},__vite__mapDeps([3,1,4,5,2]))).createSettingsView(e,()=>Ce(K.sessions()),e=>qi(`settings`,e),Yi,()=>Zi(`settings`))};function ua(e){K=e,window.onhashchange=ca}var q=[],da=null,fa=0,pa=!1,J=null,ma=`idle`,Y=null,ha=0,ga=!1,_a=!1,X=[],va=null,Z=[],ya=!1,ba=!1,xa=0,Sa=null,Q=()=>X[0]?.sessionId??null,Ca=e=>X.some(t=>t.sessionId===e),wa=()=>ya||J!==null&&J===Q(),Ta={first:`new session`,idle:`new session — idle 1h`,lost:`new session — the previous one was lost`,full:`new session — the previous one was full`,new:`new session — /new`};async function Ea(){let e=await fetch(`/api/continuous`);if(!e.ok)throw Error(await y(e,`Could not load the continuous conversation`));let{chain:t,rotateAt:n}=await e.json();if(!Array.isArray(t)||typeof n!=`number`||!(n>0))throw Error(`The continuous conversation's chain is malformed`);return{chain:t,rotateAt:n}}async function Da(){let e=await fetch(`/api/continuous/open`);if(!e.ok)throw Error(await y(e,`Could not load the open items`));return await e.json()}var Oa=oe(async()=>{Sa=await Da(),P()});function ka(){let e=Q();if(e)return void Ha(e);if(ya)return Qi(),sa();++fa,k(),Qi(),Y?.close(),Y=null,J=null,da=null,ma=`idle`,ya=!0,Z=[],Ua(),S(`system`,`The continuous conversation — your first message starts it.`),sa(),P(),U(),Vt(),Lt()}async function Aa(e){Z=[],ya=!1,await Ha(e),X.length>1&&await ja()}async function ja(){let e=Q(),t=X[Z.length+1];if(!(ba||!e||!t||J!==e)){ba=!0;try{let n=await g(`/api/sessions/${t.sessionId}/history`,`Could not load the earlier session`);if(J!==e)return;Z.unshift(n.ok?{member:t,turns:n.value.turns,runs:n.value.backgroundRuns}:{member:t,turns:[],runs:[],error:n.error});let r=C.scrollHeight-C.scrollTop,i=document.activeElement?.id===`chain-pager`;await Wa(e,!0),C.scrollTop=C.scrollHeight-r,i&&document.getElementById(`chain-pager`)?.focus({preventScroll:!0}),xa=Date.now()}finally{ba=!1}}}function Ma(){Z.length<X.length-1&&De(()=>void ja());for(let[e,t]of Z.entries()){t.error&&S(`error`,t.error),Re(t.turns,`idle`,t.runs,!0);let n=Z[e+1]?.member??X[0];Pe(Ta[n.reason],n.startedAt)}}C.addEventListener(`scroll`,()=>{C.scrollTop<40&&wa()&&!pa&&Date.now()-xa>500&&ja()},{passive:!0});function Na(e){q=e.map(e=>({...e,title:Ie(e.title)})),q.sort((e,t)=>t.createdAt-e.createdAt),P(),U(),Pa()}var $=oe(async()=>{let[e,t,n]=await Promise.all([pe(`/api/sessions`,`Could not load sessions`),Ea(),Da()]),r=wa(),i=Q();X=t.chain,va=t.rotateAt,Sa=n,Na(e);let a=Q();r&&a&&a!==i&&await Aa(a)});function Pa(){if(document.hidden||!document.hasFocus()||!Bi())return;let e=q.find(e=>e.id===J);e?.unread&&(e.unread=!1,P(),fetch(`/api/sessions/${e.id}/read`,{method:`POST`}))}function Fa(){return q.find(e=>e.id===J)??(da&&da.id===J?da:void 0)}async function Ia(e){let t=await g(`/api/sessions/${e}`,`failed to load session`);J!==e||!t.ok||(da={...t.value,title:Ie(t.value.title)},U())}function La(e,t){let n=q.find(t=>t.id===e);!n||n.title||!t.trim()||(n.title=t.trim().slice(0,80),P(),U())}function Ra(e){ma=e;let t=q.find(e=>e.id===J);t&&(t.state=e),P(),U(),Vt(),e===`idle`&&$()}function za(e){if(!(e.sessionId!==J||e.seq<=ha))switch(ha=e.seq,e.type){case`turn-start`:ga=!0,_a=!1;break;case`system-input`:We(),Be(e.text,e.origin),e.origin.kind===`task-message`&&Ut(e.origin.messageId);break;case`task-status`:Ge(e.run);break;case`user-message`:{let t=ve(e.text).text;if(La(e.sessionId,t),Rt(t))break;We(),S(`user`,e.text,!1,e.ts),Ee();break}case`text-start`:We();break;case`text-delta`:He(e.text);break;case`thinking-delta`:We(),qe(e.ts,e.text);break;case`tool-start`:We(),Ke(e.ts,e.toolCallId,e.toolName,e.args);break;case`tool-end`:Oe(e.toolCallId,e.isError,e.output);break;case`turn-end`:ga=!1,Le(e.text,e.meta),e.meta&&ci(e.meta);break;case`queue-state`:D(e.steering,e.followUp);break;case`context-compacted`:We(),S(`system`,`Context compacted — ${v(e.before)} → ${v(e.after)}`,!1,e.ts),Ee();break;case`error`:ye(),S(`error`,e.message),_a&&(_a=!1,Ra(`idle`));break;case`state`:_a=!1,e.state===`idle`&&ga&&(ga=!1,Ve()),e.state===`idle`&&D([],[]),Ra(e.state)}}function Ba(){let e=new EventSource(`/api/events`);e.onopen=()=>void $(),e.onerror=()=>it(e,`Workspace`),e.onmessage=e=>{let t=JSON.parse(e.data);if(t.type===`sessions-changed`){$();return}if(t.type===`tasks-changed`||t.type===`task-run-changed`||t.type===`task-message-changed`||t.type===`task-group-changed`){t.type===`task-run-changed`&&$();return}if(t.type===`open-items-changed`){Oa();return}if(t.sessionId===J)return;let n=q.find(e=>e.id===t.sessionId);if(!n){$();return}n.state=t.state,P(),t.sessionId===Q()&&U()}}function Va(e,t,n){Y?.close();let r=new EventSource(`/api/sessions/${e}/events?after=${t}`),i=()=>Y===r&&J===e&&n===fa;r.onmessage=e=>{i()&&za(JSON.parse(e.data))},r.addEventListener(`reset`,()=>{i()&&Wa(e)}),r.onerror=()=>{i()&&it(r,`Session`)},Y=r}async function Ha(e){Ca(e)&&(e=Q()),(e!==J||ya)&&(Z=[],ya=!1),Qi(),oa(e),!(e===J&&(Y||pa))&&(++fa,k(),J=e,da=null,q.some(t=>t.id===e)||Ia(e),ma=q.find(t=>t.id===e)?.state??`idle`,dn(e),P(),U(),Pa(),await Wa(e))}function Ua(){Ne(),D([],[],[]),Qt([]),oi(),ga=!1,_a=!1,Bt(),ha=0}async function Wa(e,t=!1){if(J!==e)return;let n=++fa;Y?.close(),Y=null,pa=!0,t||(Ua(),ke(!0));let r=await g(`/api/sessions/${e}/history`,`failed to load session`);if(J!==e||n!==fa)return;if(pa=!1,t&&Ua(),!r.ok){ke(!1),S(`error`,r.error);return}let i=r.value;wa()&&Ma(),Re(i.turns,i.state,i.backgroundRuns),ha=i.lastSeq,ga=i.state===`streaming`,Ra(i.state),D(i.queue.steering,i.queue.followUp,i.queue.parked),Qt(i.skills);let a=i.turns.reduce((e,t)=>t.meta?.completedAt??e,null);si(i.model,i.context,i.thinkingLevel,a),Va(e,`${i.epoch}:${i.lastSeq}`,n)}Ue(),_e(),rt(),Oi();var Ga=e=>{_a=e===`streaming`,Ra(e)},Ka=async e=>{J===e&&await Wa(e)};je({sessionId:()=>J,sessionCwd:()=>Fa()?.cwd??null,sessionChannel:()=>Fa()?.channel??null,sessionState:()=>ma,select:e=>void Ha(e),send:(e,t)=>void pn(e,t),ownTurn:e=>{zt(e),Ga(`streaming`)},reload:Ka}),gn({sessionId:()=>J,sessionState:()=>ma,chatVisible:Bi,setState:Ga,reload:Ka,continuous:wa,headMoved:()=>void $()}),fr({sessions:()=>q,currentId:()=>J,select:e=>void Ha(e),chain:()=>X,openContinuous:ka,open:()=>Sa}),Ur({sessions:()=>q,loadSessions:$,select:Ha,openContinuous:ka,openConsole:qi}),Xr({currentId:()=>J,currentSession:Fa,openFiles:Yi,toggleFiles:Xi,openSettings:()=>qi(`settings`),continuousOpen:wa,rotateAt:()=>va,openContinuous:ka}),ua({sessions:()=>q,currentId:()=>J,currentSession:Fa,select:e=>void Ha(e),inConversation:Ca,openContinuous:ka,maybeAckRead:Pa}),Li(`0.2.0`),An(),document.addEventListener(`gesturestart`,e=>e.preventDefault()),document.addEventListener(`visibilitychange`,Pa),window.addEventListener(`focus`,Pa),Ba(),$().then(ca);export{ht as a,pt as i,Jr as n,Fn as r,Yr as t};