@timqi/pier 0.0.19 → 0.0.21

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 (85) hide show
  1. package/dist/agent/config-sync.js +123 -0
  2. package/dist/agent/config.js +95 -3
  3. package/dist/agent/events.js +10 -1
  4. package/dist/agent/pi.js +50 -28
  5. package/dist/config-sync-fetch.js +84 -0
  6. package/dist/config-sync-task.js +59 -0
  7. package/dist/config-sync.js +179 -0
  8. package/dist/core/hub.js +10 -3
  9. package/dist/core/reply.js +12 -2
  10. package/dist/core/router.js +162 -37
  11. package/dist/db.js +6 -0
  12. package/dist/main.js +31 -1
  13. package/dist/tasks/agent.js +11 -22
  14. package/dist/tasks/callbacks.js +1 -1
  15. package/dist/tasks/definitions.js +25 -16
  16. package/dist/tasks/execution.js +11 -3
  17. package/dist/tasks/messages.js +57 -14
  18. package/dist/tasks/routes.js +58 -10
  19. package/dist/tasks/runs.js +0 -5
  20. package/dist/tasks/service.js +9 -4
  21. package/dist/tasks/store.js +45 -0
  22. package/dist/tasks/tool.js +8 -4
  23. package/dist/web/config-sync.js +91 -0
  24. package/dist/web/public/assets/activity-Cw0LRVNI.js +5 -0
  25. package/dist/web/public/assets/activity-Cw0LRVNI.js.br +0 -0
  26. package/dist/web/public/assets/activity-Cw0LRVNI.js.gz +0 -0
  27. package/dist/web/public/assets/{boards-DEMQ51m1.js → boards-DMVbV84c.js} +1 -1
  28. package/dist/web/public/assets/boards-DMVbV84c.js.br +0 -0
  29. package/dist/web/public/assets/boards-DMVbV84c.js.gz +0 -0
  30. package/dist/web/public/assets/{code-DjWvqL94.js → code-C86xKk2k.js} +1 -1
  31. package/dist/web/public/assets/{explorer-BTGQ6Syc.js → explorer-DTvsy5Rs.js} +1 -1
  32. package/dist/web/public/assets/explorer-DTvsy5Rs.js.br +0 -0
  33. package/dist/web/public/assets/explorer-DTvsy5Rs.js.gz +0 -0
  34. package/dist/web/public/assets/{ghostty-web-D8CLFi_l.js → ghostty-web-CvSZragH.js} +1 -1
  35. package/dist/web/public/assets/ghostty-web-CvSZragH.js.br +0 -0
  36. package/dist/web/public/assets/ghostty-web-CvSZragH.js.gz +0 -0
  37. package/dist/web/public/assets/index-DHxoYoeq.js +79 -0
  38. package/dist/web/public/assets/index-DHxoYoeq.js.br +0 -0
  39. package/dist/web/public/assets/index-DHxoYoeq.js.gz +0 -0
  40. package/dist/web/public/assets/{index-yNocr797.css → index-DuZ2vERd.css} +1 -1
  41. package/dist/web/public/assets/index-DuZ2vERd.css.br +0 -0
  42. package/dist/web/public/assets/index-DuZ2vERd.css.gz +0 -0
  43. package/dist/web/public/assets/runs-jY40JBP-.js +1 -0
  44. package/dist/web/public/assets/runs-jY40JBP-.js.br +0 -0
  45. package/dist/web/public/assets/runs-jY40JBP-.js.gz +0 -0
  46. package/dist/web/public/assets/settings-Dux7PIKF.js +6 -0
  47. package/dist/web/public/assets/settings-Dux7PIKF.js.br +0 -0
  48. package/dist/web/public/assets/settings-Dux7PIKF.js.gz +0 -0
  49. package/dist/web/public/assets/task-runs-DKvtBVxS.js +3 -0
  50. package/dist/web/public/assets/task-runs-DKvtBVxS.js.br +0 -0
  51. package/dist/web/public/assets/task-runs-DKvtBVxS.js.gz +0 -0
  52. package/dist/web/public/assets/tasks-CqfrOVIt.js +4 -0
  53. package/dist/web/public/assets/tasks-CqfrOVIt.js.br +0 -0
  54. package/dist/web/public/assets/tasks-CqfrOVIt.js.gz +0 -0
  55. package/dist/web/public/assets/{terminal-zLyOvGto.js → terminal-DL_0yEy7.js} +2 -2
  56. package/dist/web/public/assets/terminal-DL_0yEy7.js.br +0 -0
  57. package/dist/web/public/assets/terminal-DL_0yEy7.js.gz +0 -0
  58. package/dist/web/public/index.html +13 -2
  59. package/dist/web/public/index.html.br +0 -0
  60. package/dist/web/public/index.html.gz +0 -0
  61. package/dist/web/server.js +65 -60
  62. package/package.json +2 -2
  63. package/skills/pier-tasks/SKILL.md +14 -9
  64. package/dist/web/public/assets/activity-BsoWK6vt.js +0 -5
  65. package/dist/web/public/assets/activity-BsoWK6vt.js.br +0 -0
  66. package/dist/web/public/assets/activity-BsoWK6vt.js.gz +0 -0
  67. package/dist/web/public/assets/boards-DEMQ51m1.js.br +0 -0
  68. package/dist/web/public/assets/boards-DEMQ51m1.js.gz +0 -0
  69. package/dist/web/public/assets/explorer-BTGQ6Syc.js.br +0 -0
  70. package/dist/web/public/assets/explorer-BTGQ6Syc.js.gz +0 -0
  71. package/dist/web/public/assets/ghostty-web-D8CLFi_l.js.br +0 -0
  72. package/dist/web/public/assets/ghostty-web-D8CLFi_l.js.gz +0 -0
  73. package/dist/web/public/assets/index-BFzmvpGX.js +0 -78
  74. package/dist/web/public/assets/index-BFzmvpGX.js.br +0 -0
  75. package/dist/web/public/assets/index-BFzmvpGX.js.gz +0 -0
  76. package/dist/web/public/assets/index-yNocr797.css.br +0 -0
  77. package/dist/web/public/assets/index-yNocr797.css.gz +0 -0
  78. package/dist/web/public/assets/settings-DSTKXN2o.js +0 -6
  79. package/dist/web/public/assets/settings-DSTKXN2o.js.br +0 -0
  80. package/dist/web/public/assets/settings-DSTKXN2o.js.gz +0 -0
  81. package/dist/web/public/assets/tasks-Dy1SCAE_.js +0 -4
  82. package/dist/web/public/assets/tasks-Dy1SCAE_.js.br +0 -0
  83. package/dist/web/public/assets/tasks-Dy1SCAE_.js.gz +0 -0
  84. package/dist/web/public/assets/terminal-zLyOvGto.js.br +0 -0
  85. package/dist/web/public/assets/terminal-zLyOvGto.js.gz +0 -0
@@ -0,0 +1,79 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tasks-CqfrOVIt.js","assets/task-runs-DKvtBVxS.js","assets/runs-jY40JBP-.js","assets/explorer-DTvsy5Rs.js","assets/code-C86xKk2k.js","assets/settings-Dux7PIKF.js"])))=>i.map(i=>d[i]);
2
+ (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 e=/[\u201c\u201d"\u2018\u2019'()\uff08\uff09\u300c\u300d\u300e\u300f\u3010\u3011\u300a\u300b\u3008\u3009[\]]/;function t(t){let n=[],r=e=>`\uE010${n.push(e)-1}\uE011`,i=t.replace(/```[\s\S]*?```/g,e=>r(e)).replace(/`[^`\n]+`/g,e=>r(e));return i=i.replace(/\*\*(\S|\S[\s\S]*?\S)\*\*/g,(t,n)=>{let r=``,i=``,a=n;for(;a.length>1&&e.test(a[0]);)r+=a[0],a=a.slice(1);for(;a.length>1&&e.test(a.at(-1));)i=a.at(-1)+i,a=a.slice(0,-1);return r||i?`${r}**${a}**${i}`:t}),i.replace(/\uE010(\d+)\uE011/g,(e,t)=>n[Number(t)]??``)}var n=e=>!e.text.trim()&&e.suggestions.length===0,r=e=>e===`xhigh`?`Extra high`:e[0].toUpperCase()+e.slice(1),i=e=>{if(e<1e3)return String(e);let t=e/1e3;return t>=9.95?`${Math.round(t)}K`:`${t.toFixed(1)}K`},a=/(?:^|\n)[ \t]*-{3,}[ \t]*\r?\n((?:[ \t]*\[[^\]\r\n]+\][ \t]*(?:[||][ \t]*)?)+)\s*$/,o=/\[([^\]\r\n]+)\]/g,s=5,c=/<silent>([\s\S]*?)<\/silent>/gi;function l(e){let t=[...e.matchAll(c)].map(e=>(e[1]??``).trim()).filter(Boolean);return t.length?t.join(` · `):void 0}function u(e,n){let r=t(e.replace(c,``).trim()),i=l(e),u=a.exec(r);if(!u?.[1])return{text:r,suggestions:[],meta:n,silence:i};let d=[...u[1].matchAll(o)].map(e=>(e[1]??``).trim()).filter(Boolean).slice(0,s);return d.length?{text:r.slice(0,u.index).trimEnd(),suggestions:d,meta:n,silence:i}:{text:r,suggestions:[],meta:n,silence:i}}var d=e=>t(e.replace(c,``).trim()),ee=/^(?:\s|[-*+>]|\d+[.)])/;function f(e,t=0){let n=e.lastIndexOf(`
3
+ `)+1,r=``,i=!1,a=t,o=-1,s=``;for(let c=t;c<n;){let t=e.indexOf(`
4
+ `,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&&!(ee.test(s)&&ee.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(/<(\/?)silent>/gi))i=!e[1];o=-1,s=n}return a}var p=/^\[(?:([^\n[\]<>]*)<([^\n[\]<>]+)>)? ?((?:\d{4}-\d{2}-\d{2} )?\d{1,2}:\d{2})?\]\n/;function te(e){let t=p.exec(e);return!t?.[2]&&!t?.[3]?{text:e}:{...t[1]?{name:t[1]}:{},...t[2]?{id:t[2]}:{},...t[3]?{when:t[3]}:{},text:e.slice(t[0].length)}}function ne(e){if(!e)return e;let{text:t}=te(e);return t===e?e:t.replace(/\s+/g,` `).trim()||e}function re(e){let t,n=!1;return()=>(n=!0,t??=(async()=>{for(;n;)n=!1,await e()})().finally(()=>{t=void 0}))}var m=(e,t,n=`POST`)=>fetch(e,{method:n,headers:{"content-type":`application/json`},body:JSON.stringify(t)});async function h(e,t){return(await e.json().catch(()=>({}))).error??`${t} (${e.status})`}async function ie(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 h(r,t)};try{return{ok:!0,value:await r.json()}}catch(e){return{ok:!1,error:`${t}: ${String(e)}`}}}async function ae(e,t,n){let r=await ie(e,t,n);if(!r.ok)throw Error(r.error);return r.value}async function oe(e,t,n){try{let r=await fetch(e,{method:t});return r.ok?void 0:await h(r,n)}catch(e){return`${n}: ${String(e)}`}}async function se(e,t,n,r){let i=window.prompt(e);if(!i?.trim())return{sent:!1};try{let e=await m(t,{message:i,...n});return{sent:!0,...e.ok?{response:e}:{error:await h(e,r)}}}catch(e){return{sent:!0,error:`${r}: ${String(e)}`}}}function g(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 ce(e){if(Array.isArray(e))return e}function le(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 ue(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
5
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function de(e,t){return ce(e)||le(e,t)||fe(e,t)||ue()}function fe(e,t){if(e){if(typeof e==`string`)return g(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)?g(e,t):void 0}}var pe=Object.entries,me=Object.setPrototypeOf,he=Object.isFrozen,ge=Object.getPrototypeOf,_e=Object.getOwnPropertyDescriptor,_=Object.freeze,v=Object.seal,ve=Object.create,ye=typeof Reflect<`u`&&Reflect,be=ye.apply,xe=ye.construct;_||=function(e){return e},v||=function(e){return e},be||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},xe||=function(e){return new e(...[...arguments].slice(1))};var Se=S(Array.prototype.forEach),Ce=S(Array.prototype.lastIndexOf),we=S(Array.prototype.pop),Te=S(Array.prototype.push),Ee=S(Array.prototype.splice),De=Array.isArray,Oe=S(String.prototype.toLowerCase),ke=S(String.prototype.toString),Ae=S(String.prototype.match),je=S(String.prototype.replace),Me=S(String.prototype.indexOf),Ne=S(String.prototype.trim),Pe=S(Number.prototype.toString),Fe=S(Boolean.prototype.toString),y=typeof BigInt>`u`?null:S(BigInt.prototype.toString),Ie=typeof Symbol>`u`?null:S(Symbol.prototype.toString),b=S(Object.prototype.hasOwnProperty),Le=S(Object.prototype.toString),x=S(RegExp.prototype.test),Re=ze(TypeError);function S(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return be(e,t,n)}}function ze(e){return function(){return xe(e,[...arguments])}}function C(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Oe;if(me&&me(e,null),!De(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(he(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Be(e){for(let t=0;t<e.length;t++)b(e,t)||(e[t]=null);return e}function w(e){let t=ve(null);for(let r of pe(e)){var n=de(r,2);let i=n[0],a=n[1];b(e,i)&&(t[i]=De(a)?Be(a):a&&typeof a==`object`&&a.constructor===Object?w(a):a)}return t}function Ve(e){switch(typeof e){case`string`:return e;case`number`:return Pe(e);case`boolean`:return Fe(e);case`bigint`:return y?y(e):`0`;case`symbol`:return Ie?Ie(e):`Symbol()`;case`undefined`:return Le(e);case`function`:case`object`:{if(e===null)return Le(e);let t=e,n=He(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Le(e)}return Le(e)}default:return Le(e)}}function He(e,t){for(;e!==null;){let n=_e(e,t);if(n){if(n.get)return S(n.get);if(typeof n.value==`function`)return S(n.value)}e=ge(e)}function n(){return null}return n}function Ue(e){try{return x(e,``),!0}catch{return!1}}var We=_(`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(`.`)),Ge=_(`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(`.`)),Ke=_([`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`]),qe=_([`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`]),Je=_(`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(`.`)),Ye=_([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),Xe=_([`#text`]),Ze=_(`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(`.`)),Qe=_(`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(`.`)),$e=_(`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(`.`)),et=_([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),tt=v(/{{[\w\W]*|^[\w\W]*}}/g),nt=v(/<%[\w\W]*|^[\w\W]*%>/g),rt=v(/\${[\w\W]*/g),it=v(/^data-[\-\w.\u00B7-\uFFFF]+$/),at=v(/^aria-[\-\w]+$/),ot=v(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),st=v(/^(?:\w+script|data):/i),ct=v(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),lt=v(/^html$/i),ut=v(/^[a-z][.\w]*(-[.\w]+)+$/i),dt=v(/<[/\w!]/g),ft=v(/<[/\w]/g),pt=v(/<\/no(script|embed|frames)/i),mt=v(/\/>/i),T={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},ht=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],gt=_(C({},ht)),_t=function(){let e={};return Se(ht,t=>{e[t]=v(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),_(e)}(),vt=function(){return typeof window>`u`?null:window},yt=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}},bt=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},xt=function(e,t,n,r){return b(e,t)&&De(e[t])?C(r.base?w(r.base):{},e[t],r.transform):n},St=function(e,t,n){let r=b(e,t)?e[t]:void 0;return r&&typeof r==`object`?w(r):n()};function Ct(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:vt(),t=e=>Ct(e);if(t.version=`3.4.14`,t.removed=[],!e||!e.document||e.document.nodeType!==T.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=He(d,`cloneNode`),f=He(d,`remove`),p=He(d,`nextSibling`),te=He(d,`childNodes`),ne=He(d,`parentNode`),re=He(d,`shadowRoot`),m=He(d,`attributes`),h=o&&o.prototype?He(o.prototype,`nodeType`):null,ie=o&&o.prototype?He(o.prototype,`nodeName`):null,ae=o&&o.prototype?He(o.prototype,`ownerDocument`):null,oe=function(e){return h?h(e):e.nodeType},se=function(e){return ie?ie(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let g,ce=``,le,ue=!1,de=0,fe=function(){if(de>0)throw Re(`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){fe(),de++;try{return g.createHTML(e)}finally{de--}},he=function(e){fe(),de++;try{return g.createScriptURL(e)}finally{de--}},ge=function(){return ue||=(le=yt(u,i),!0),le},_e=n,ye=_e.implementation,be=_e.createNodeIterator,xe=_e.createDocumentFragment,Pe=_e.getElementsByTagName,Fe=r.importNode,y=bt();t.isSupported=typeof pe==`function`&&typeof ne==`function`&&ye&&ye.createHTMLDocument!==void 0;let Ie=tt,Le=nt,S=rt,ze=it,Be=at,ht=st,wt=ct,Tt=ut,Et=ot,E=null,Dt=C({},[...We,...Ge,...Ke,...Je,...Xe]),D=null,O=C({},[...Ze,...Qe,...$e,...et]),Ot=Object.seal(ve(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}})),k=null,kt=null,At=Object.seal(ve(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),jt=!0,Mt=!0,Nt=!1,Pt=!0,Ft=!1,It=!0,Lt=!1,Rt=!1,zt=null,Bt=null,Vt=!1,Ht=!1,Ut=!1,Wt=!1,Gt=!0,Kt=!1,qt=`user-content-`,Jt=!0,Yt=!1,Xt={},Zt=null,Qt=C({},`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(`.`)),$t=null,en=C({},[`audio`,`video`,`img`,`source`,`image`,`track`]),tn=null,nn=C({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),A=`http://www.w3.org/1998/Math/MathML`,rn=`http://www.w3.org/2000/svg`,j=`http://www.w3.org/1999/xhtml`,an=j,on=!1,sn=null,cn=C({},[A,rn,j],ke),ln=_([`mi`,`mo`,`mn`,`ms`,`mtext`]),un=C({},ln),dn=_([`annotation-xml`]),fn=C({},dn),pn=C({},[`title`,`style`,`font`,`a`,`script`]),mn=null,hn=[`application/xhtml+xml`,`text/html`],M=null,gn=null,_n=n.createElement(`form`),vn=function(e){return e instanceof RegExp||e instanceof Function},yn=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(gn&&gn===e)return;(!e||typeof e!=`object`)&&(e={}),e=w(e),mn=hn.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,M=mn===`application/xhtml+xml`?ke:Oe,E=xt(e,`ALLOWED_TAGS`,Dt,{transform:M}),D=xt(e,`ALLOWED_ATTR`,O,{transform:M}),sn=xt(e,`ALLOWED_NAMESPACES`,cn,{transform:ke}),tn=xt(e,`ADD_URI_SAFE_ATTR`,nn,{transform:M,base:nn}),$t=xt(e,`ADD_DATA_URI_TAGS`,en,{transform:M,base:en}),Zt=xt(e,`FORBID_CONTENTS`,Qt,{transform:M}),k=xt(e,`FORBID_TAGS`,w({}),{transform:M}),kt=xt(e,`FORBID_ATTR`,w({}),{transform:M}),Xt=b(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?w(e.USE_PROFILES):e.USE_PROFILES:!1,jt=e.ALLOW_ARIA_ATTR!==!1,Mt=e.ALLOW_DATA_ATTR!==!1,Nt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Pt=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ft=e.SAFE_FOR_TEMPLATES||!1,It=e.SAFE_FOR_XML!==!1,Lt=e.WHOLE_DOCUMENT||!1,Ht=e.RETURN_DOM||!1,Ut=e.RETURN_DOM_FRAGMENT||!1,Wt=e.RETURN_TRUSTED_TYPE||!1,Vt=e.FORCE_BODY||!1,Gt=e.SANITIZE_DOM!==!1,Kt=e.SANITIZE_NAMED_PROPS||!1,Jt=e.KEEP_CONTENT!==!1,Yt=e.IN_PLACE||!1,Et=Ue(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:ot,an=typeof e.NAMESPACE==`string`?e.NAMESPACE:j,un=St(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>C({},ln)),fn=St(e,`HTML_INTEGRATION_POINTS`,()=>C({},dn));let t=St(e,`CUSTOM_ELEMENT_HANDLING`,()=>ve(null));if(Ot=ve(null),b(t,`tagNameCheck`)&&vn(t.tagNameCheck)&&(Ot.tagNameCheck=t.tagNameCheck),b(t,`attributeNameCheck`)&&vn(t.attributeNameCheck)&&(Ot.attributeNameCheck=t.attributeNameCheck),b(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(Ot.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),v(Ot),Ft&&(Mt=!1),Ut&&(Ht=!0),Xt&&(E=C({},Xe),D=ve(null),Xt.html===!0&&(C(E,We),C(D,Ze)),Xt.svg===!0&&(C(E,Ge),C(D,Qe),C(D,et)),Xt.svgFilters===!0&&(C(E,Ke),C(D,Qe),C(D,et)),Xt.mathMl===!0&&(C(E,Je),C(D,$e),C(D,et))),At.tagCheck=null,At.attributeCheck=null,b(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?At.tagCheck=e.ADD_TAGS:De(e.ADD_TAGS)&&(E===Dt&&(E=w(E)),C(E,e.ADD_TAGS,M))),b(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?At.attributeCheck=e.ADD_ATTR:De(e.ADD_ATTR)&&(D===O&&(D=w(D)),C(D,e.ADD_ATTR,M))),b(e,`ADD_FORBID_CONTENTS`)&&De(e.ADD_FORBID_CONTENTS)&&(Zt===Qt&&(Zt=w(Zt)),C(Zt,e.ADD_FORBID_CONTENTS,M)),Jt&&(E[`#text`]=!0),Lt&&C(E,[`html`,`head`,`body`]),E.table&&(C(E,[`tbody`]),delete k.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Re(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Re(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=g;g=e.TRUSTED_TYPES_POLICY;try{ce=me(``)}catch(e){throw g=t,e}}else e.TRUSTED_TYPES_POLICY===null?(g=void 0,ce=``):(g===void 0&&(g=ge()),g&&typeof ce==`string`&&(ce=me(``)));_&&_(e),gn=e},bn=C({},[...Ge,...Ke,...qe]),xn=C({},[...Je,...Ye]),Sn=function(e,t,n){return t.namespaceURI===j?e===`svg`:t.namespaceURI===A?e===`svg`&&(n===`annotation-xml`||un[n]):!!bn[e]},Cn=function(e,t,n){return t.namespaceURI===j?e===`math`:t.namespaceURI===rn?e===`math`&&fn[n]:!!xn[e]},wn=function(e,t,n){return t.namespaceURI===rn&&!fn[n]||t.namespaceURI===A&&!un[n]?!1:!xn[e]&&(pn[e]||!bn[e])},Tn=function(e){let t=ne(e);(!t||!t.tagName)&&(t={namespaceURI:an,tagName:`template`});let n=Oe(e.tagName),r=Oe(t.tagName);return sn[e.namespaceURI]?e.namespaceURI===rn?Sn(n,t,r):e.namespaceURI===A?Cn(n,t,r):e.namespaceURI===j?wn(n,t,r):!!(mn===`application/xhtml+xml`&&sn[e.namespaceURI]):!1},En=function(e){Te(t.removed,{element:e});try{ne(e).removeChild(e)}catch{if(f(e),!ne(e))throw Re(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},Dn=function(e,t,n){try{e.removeAttributeNode(t)}catch{try{e.removeAttribute(n)}catch{}}},On=function(e){jn(e);let t=te(e);if(t){let e=[];Se(t,t=>{Te(e,t)}),Se(e,e=>{try{f(e)}catch{}})}let n=m(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&Dn(e,r,i)}},kn=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}Te(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(Ht||Ut)try{En(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},An=function(e){let t=m(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||D[M(i)]||Dn(e,r,i)}},jn=function(e){let t=[e];for(;t.length>0;){let e=t.pop();oe(e)===T.element&&An(e);let n=te(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},Mn=function(e,t){return It?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},Nn=function(e){if(!It)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=oe(e);if(n===T.processingInstruction||n===T.comment&&x(ft,e.data)){try{f(e)}catch{}continue}if(n===T.element){let t=e,n=M(se(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&Mn(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=te(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},Pn=function(e){let t=null,r=null;if(Vt)e=`<remove></remove>`+e;else{let t=Ae(e,/^[\r\n\t ]+/);r=t&&t[0]}mn===`application/xhtml+xml`&&an===j&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=g?me(e):e;if(an===j)try{t=new l().parseFromString(i,mn)}catch{}if(!t||!t.documentElement){t=ye.createDocument(an,`template`,null);try{t.documentElement.innerHTML=on?ce:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),an===j?Pe.call(t,Lt?`html`:`body`)[0]:Lt?t.documentElement:a},Fn=function(e){let t=ae?ae(e):e.ownerDocument;return be.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},In=function(e){return e=je(e,Ie,` `),e=je(e,Le,` `),e=je(e,S,` `),e},Ln=function(e){e.normalize();let t=ae?ae(e):e.ownerDocument,n=be.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=In(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&Se(i,e=>{zn(e.content)&&Ln(e.content)})},Rn=function(e){let t=ie?ie(e):null;return typeof t!=`string`||M(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==m(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==h(e)||e.childNodes!==te(e)},zn=function(e){if(!h||typeof e!=`object`||!e)return!1;try{return h(e)===T.documentFragment}catch{return!1}},N=function(e){if(!h||typeof e!=`object`||!e)return!1;try{return typeof h(e)==`number`}catch{return!1}};function P(e,n,r){e.length!==0&&Se(e,e=>{e.call(t,n,r,gn)})}let Bn=function(e,t){return!!(It&&e.hasChildNodes()&&!N(e.firstElementChild)&&x(dt,e.textContent)&&x(dt,e.innerHTML)||It&&e.namespaceURI===j&&gt[t]&&(N(e.firstElementChild)||typeof e.textContent==`string`&&x(_t[t],e.textContent))||e.nodeType===T.processingInstruction||It&&e.nodeType===T.comment&&x(ft,e.data))},Vn=function(e,t){return e instanceof RegExp?x(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},Hn=function(e,t,n){if(!k[t]&&F(t)&&Vn(Ot.tagNameCheck,t))return!1;if(Jt&&!Zt[t]){let t=ne(e),r=te(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,p(e))}}}return En(e),!0},Un=function(e,t,n,r){return e.length===0?t:t===n||t===r?w(t):t},Wn=function(e,t){return e===t||ne(e)!==null?!1:(Yt&&jn(e),!0)},Gn=function(e,n){if(P(y.beforeSanitizeElements,e,null),Wn(e,n))return!0;if(Rn(e))return En(e),!0;let r=M(se(e));if(E=Un(y.uponSanitizeElement,E,Dt,zt),P(y.uponSanitizeElement,e,{tagName:r,allowedTags:E}),Wn(e,n))return!0;if(Bn(e,r))return En(e),!0;if(k[r]||!(At.tagCheck instanceof Function&&At.tagCheck(r))&&!E[r]){let t=Hn(e,r,n);return t===!1&&P(y.afterSanitizeElements,e,null),t}if(oe(e)===T.element&&!Tn(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&x(pt,e.innerHTML))return En(e),!0;if(Ft&&e.nodeType===T.text){let n=In(e.textContent);e.textContent!==n&&(Te(t.removed,{element:e.cloneNode()}),e.textContent=n)}return P(y.afterSanitizeElements,e,null),!1},Kn=function(e,t,r){if(kt[t]||Mn(t,e)||Gt&&(t===`id`||t===`name`)&&(r in n||r in _n))return!1;let i=D[t]||At.attributeCheck instanceof Function&&At.attributeCheck(t,e);return Mt&&x(ze,t)||jt&&x(Be,t)?!0:i?tn[t]||x(Et,je(r,wt,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&Me(r,`data:`)===0&&$t[e]||Nt&&!x(ht,je(r,wt,``))?!0:!r:F(e)&&Vn(Ot.tagNameCheck,e)&&Vn(Ot.attributeNameCheck,t,e)||t===`is`&&Ot.allowCustomizedBuiltInElements&&Vn(Ot.tagNameCheck,r)},qn=C({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),F=function(e){return!qn[Oe(e)]&&x(Tt,e)},Jn=function(e,t,n,r){if(g&&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},Yn=function(e,n,r,i){try{r?e.setAttributeNS(r,n,i):e.setAttribute(n,i),Rn(e)?En(e):we(t.removed)}catch{kn(n,e)}},I=function(e){P(y.beforeSanitizeAttributes,e,null);let t=e.attributes;if(!t||Rn(e))return;D=Un(y.uponSanitizeAttribute,D,O,Bt);let n={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:D,forceKeepAttr:void 0},r=t.length,i=M(e.nodeName);for(;r--;){let a=t[r],o=a.name,s=a.namespaceURI,c=a.value,l=M(o),u=c,d=o===`value`?u:Ne(u);if(n.attrName=l,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,P(y.uponSanitizeAttribute,e,n),d=n.attrValue,Kt&&(l===`id`||l===`name`)&&Me(d,qt)!==0&&(kn(o,e,a),d=qt+d),It&&x(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){kn(o,e,a);continue}if(l===`attributename`&&Ae(d,`href`)){kn(o,e,a);continue}if(!n.forceKeepAttr){if(!n.keepAttr){kn(o,e,a);continue}if(!Pt&&x(mt,d)){kn(o,e,a);continue}if(Ft&&(d=In(d)),!Kn(i,l,d)){kn(o,e,a);continue}d=Jn(i,l,s,d),d!==u&&Yn(e,o,s,d)}}P(y.afterSanitizeAttributes,e,null)},Xn=function(e){let t=null,n=Fn(e);for(P(y.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(P(y.uponSanitizeShadowNode,t,null),Gn(t,e),I(t),zn(t.content)&&Xn(t.content),oe(t)===T.element){let e=re(t);zn(e)&&(Zn(e),Xn(e))}P(y.afterSanitizeShadowDOM,e,null)},Zn=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Xn(e.shadow);continue}let n=e.node,r=oe(n)===T.element,i=te(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=ie?ie(n):null;if(typeof e==`string`&&M(e)===`template`){let e=n.content;zn(e)&&t.push({node:e,shadow:null})}}if(r){let e=re(n);zn(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(on=!e,on&&(e=`<!-->`),typeof e!=`string`&&!N(e)&&(e=Ve(e),typeof e!=`string`))throw Re(`dirty is not a string, aborting`);if(!t.isSupported)return e;Rt?(E=zt,D=Bt):yn(n),(y.uponSanitizeElement.length>0||y.uponSanitizeAttribute.length>0)&&(E=w(E)),y.uponSanitizeAttribute.length>0&&(D=w(D)),t.removed=[];let c=Yt&&typeof e!=`string`&&N(e);if(c){Nn(e);let t=se(e);if(typeof t==`string`){let n=M(t);if(!E[n]||k[n])throw On(e),Re(`root node is forbidden and cannot be sanitized in-place`)}if(Rn(e))throw On(e),Re(`root node is clobbered and cannot be sanitized in-place`);try{Zn(e)}catch(t){throw On(e),t}}else if(N(e))i=Pn(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===T.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Zn(a);else{if(!Ht&&!Ft&&!Lt&&e.indexOf(`<`)===-1)return g&&Wt?me(e):e;if(i=Pn(e),!i)return Ht?null:Wt?ce:``}i&&Vt&&En(i.firstChild);let l=c?e:i;try{let e=Fn(l);for(;o=e.nextNode();)Gn(o,l),I(o),zn(o.content)&&Xn(o.content)}catch(n){throw c&&(On(e),Se(t.removed,e=>{e.element&&jn(e.element)})),n}if(c)return Se(t.removed,e=>{e.element&&jn(e.element)}),Ft&&Ln(e),e;if(Ht){if(Ft&&Ln(i),Ut)for(s=xe.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(D.shadowroot||D.shadowrootmode)&&(s=Fe.call(r,s,!0)),s}let u=Lt?i.outerHTML:i.innerHTML;return Lt&&E[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&x(lt,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
6
+ `+u),Ft&&(u=In(u)),g&&Wt?me(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};yn(e),Rt=!0,zt=E,Bt=D},t.clearConfig=function(){gn=null,Rt=!1,zt=null,Bt=null,g=le,ce=``},t.isValidAttribute=function(e,t,n){gn||yn({});let r=M(e),i=M(t);return Kn(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&b(y,e)&&Te(y[e],t)},t.removeHook=function(e,t){if(b(y,e)){if(t!==void 0){let n=Ce(y[e],t);return n===-1?void 0:Ee(y[e],n,1)[0]}return we(y[e])}},t.removeHooks=function(e){b(y,e)&&(y[e]=[])},t.removeAllHooks=function(){y=bt()},t}var wt=Ct();function Tt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Et=Tt();function E(e){Et=e}var Dt={exec:()=>null};function D(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 O(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(k.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Ot=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),k={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:D(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:D(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:D(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:D(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:D(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:D(e=>RegExp(`^ {0,${e}}>`))},kt=/^(?:[ \t]*(?:\n|$))+/,At=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,jt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Mt=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Nt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Pt=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Ft=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,It=O(Ft).replace(/bull/g,Pt).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(),Lt=O(Ft).replace(/bull/g,Pt).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(),Rt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,zt=/^[^\n]+/,Bt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Vt=O(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Bt).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ht=O(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Pt).getRegex(),Ut=`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`,Wt=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Gt=O(`^ {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`,Wt).replace(`tag`,Ut).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Kt=e=>O(Rt).replace(`hr`,Mt).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`,Ut).getRegex(),qt=Kt(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),Jt=Kt(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),Yt={blockquote:O(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,Jt).getRegex(),code:At,def:Vt,fences:jt,heading:Nt,hr:Mt,html:Gt,lheading:It,list:Ht,newline:kt,paragraph:qt,table:Dt,text:zt},Xt=O(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,Mt).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`,Ut).getRegex(),Zt={...Yt,lheading:Lt,table:Xt,paragraph:O(Rt).replace(`hr`,Mt).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Xt).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`,Ut).getRegex()},Qt={...Yt,html:O(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Wt).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:Dt,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:O(Rt).replace(`hr`,Mt).replace(`heading`,` *#{1,6} *[^
7
+ ]`).replace(`lheading`,It).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},$t=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,en=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,tn=/^( {2,}|\\)\n(?!\s*$)/,nn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,A=/[\p{P}\p{S}]/u,rn=/[\s\p{P}\p{S}]/u,j=/[^\s\p{P}\p{S}]/u,an=O(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,rn).getRegex(),on=/[\p{Pi}\p{Ps}"']/u,sn=/(?!~)[\p{P}\p{S}]/u,cn=/(?!~)[\s\p{P}\p{S}]/u,ln=/(?:[^\s\p{P}\p{S}]|~)/u,un=O(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Ot?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),dn=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,fn=O(dn,`u`).replace(/punct/g,A).getRegex(),pn=O(dn,`u`).replace(/punct/g,sn).getRegex(),mn=O(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,on).replace(/punct/g,A).getRegex(),hn=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,M=O(hn,`gu`).replace(/notPunctSpace/g,j).replace(/punctSpace/g,rn).replace(/punct/g,A).getRegex(),gn=O(hn,`gu`).replace(/notPunctSpace/g,ln).replace(/punctSpace/g,cn).replace(/punct/g,sn).getRegex(),_n=O(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,j).replace(/punctSpace/g,rn).replace(/punct/g,A).getRegex(),vn=O(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,j).replace(/punctSpace/g,rn).replace(/punct/g,A).getRegex(),yn=O(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,j).replace(/punctSpace/g,rn).replace(/punct/g,A).getRegex(),bn=O(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,A).getRegex(),xn=O(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,j).replace(/punctSpace/g,rn).replace(/punct/g,A).getRegex(),Sn=O(/\\(punct)/,`gu`).replace(/punct/g,A).getRegex(),Cn=O(/^<(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(),wn=O(Wt).replace(`(?:-->|$)`,`-->`).getRegex(),Tn=O(`^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`,wn).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),En=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Dn=O(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,En).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),On=O(/^!?\[(label)\]\[(ref)\]/).replace(`label`,En).replace(`ref`,Bt).getRegex(),kn=O(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Bt).getRegex(),An=O(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,On).replace(`nolink`,kn).getRegex(),jn=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Mn={_backpedal:Dt,anyPunctuation:Sn,autolink:Cn,blockSkip:un,br:tn,code:en,del:Dt,delLDelim:Dt,delRDelim:Dt,emStrongLDelim:fn,emStrongRDelimAst:M,emStrongRDelimUnd:vn,escape:$t,link:Dn,nolink:kn,punctuation:an,reflink:On,reflinkSearch:An,tag:Tn,text:nn,url:Dt},Nn={...Mn,emStrongLDelim:mn,emStrongRDelimAst:_n,emStrongRDelimUnd:yn,link:O(/^!?\[(label)\]\((.*?)\)/).replace(`label`,En).getRegex(),reflink:O(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,En).getRegex()},Pn={...Mn,emStrongRDelimAst:gn,emStrongLDelim:pn,delLDelim:bn,delRDelim:xn,url:O(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,jn).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:O(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,jn).getRegex()},Fn={...Pn,br:O(tn).replace(`{2,}`,`*`).getRegex(),text:O(Pn.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},In={normal:Yt,gfm:Zt,pedantic:Qt},Ln={normal:Mn,gfm:Pn,breaks:Fn,pedantic:Nn},Rn={"&":`&amp;`,"<":`&lt;`,">":`&gt;`,'"':`&quot;`,"'":`&#39;`},zn=e=>Rn[e];function N(e,t){if(t){if(k.escapeTest.test(e))return e.replace(k.escapeReplace,zn)}else if(k.escapeTestNoEncode.test(e))return e.replace(k.escapeReplaceNoEncode,zn);return e}function P(e){try{e=encodeURI(e).replace(k.percentDecode,`%`)}catch{return null}return e}function Bn(e,t){let n=e.replace(k.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(k.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(k.slashPipe,`|`);return n}function Vn(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 Hn(e){let t=e.split(`
8
+ `),n=t.length-1;for(;n>=0&&k.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
9
+ `)}function Un(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 Wn(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 Gn(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 Kn(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
10
+ `).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(`
11
+ `)}var qn=class{options;rules;lexer;constructor(e){this.options=e||Et}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]:Hn(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=Kn(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=Vn(e,`#`);(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:`heading`,raw:Vn(t[0],`
12
+ `),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:Vn(t[0],`
13
+ `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=Vn(t[0],`
14
+ `).split(`
15
+ `),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(`
16
+ `),c=s.replace(this.rules.other.blockquoteSetextReplace,`
17
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,``);n=n?`${n}
18
+ ${s}`:s,r=r?`${r}
19
+ ${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(`
20
+ `),o=t.raw+`
21
+ `+a.replace(this.rules.other.blockquoteSetextReplace2,``),s=this.blockquote(o);i[i.length-1]=s,n=`${n}
22
+ ${a}`,r=r.substring(0,r.length-t.text.length)+s.text;break}if(u?.type===`list`){let t=u,a=t.raw+`
23
+ `+e.join(`
24
+ `),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(`
25
+ `);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=Wn(t[2].split(`
26
+ `,1)[0],t[1].length),l=e.split(`
27
+ `,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+`
28
+ `,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 f=e.split(`
29
+ `,1)[0],p;if(l=f,this.options.pedantic?(l=l.replace(this.rules.other.listReplaceNesting,` `),p=l):p=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(p.search(this.rules.other.nonSpaceChar)>=d||!l.trim())s+=`
30
+ `+p.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+=`
31
+ `+l}u=!l.trim(),r+=f+`
32
+ `,e=e.substring(f.length+1),c=p.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=Hn(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:Vn(t[0],`
33
+ `),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=Bn(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,``).split(`|`),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,``).split(`
34
+ `):[],a={type:`table`,raw:Vn(t[0],`
35
+ `),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(Bn(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:Vn(t[0],`
36
+ `),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)===`
37
+ `?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=Vn(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=Un(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)),Gn(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 Gn(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}}}},F=class e{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Et,this.options.tokenizer=this.options.tokenizer||new qn,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:k,block:In.normal,inline:Ln.normal};this.options.pedantic?(t.block=In.pedantic,t.inline=Ln.pedantic):this.options.gfm&&(t.block=In.gfm,t.inline=this.options.breaks?Ln.breaks:Ln.gfm),this.tokenizer.rules=t}static get rules(){return{block:In,inline:Ln}}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(k.carriageReturn,`
38
+ `),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(k.tabCharGlobal,` `).replace(k.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+=`
39
+ `: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(`
40
+ `)?``:`
41
+ `)+i.raw,n.text+=`
42
+ `+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(`
43
+ `)?``:`
44
+ `)+i.raw,n.text+=`
45
+ `+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(`
46
+ `)?``:`
47
+ `)+i.raw,r.text+=`
48
+ `+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(`
49
+ `)?``:`
50
+ `)+i.raw,n.text+=`
51
+ `+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)}},Jn=class{options;parser;constructor(e){this.options=e||Et}space(e){return``}code({text:e,lang:t,escaped:n}){let r=(t||``).match(k.notSpaceStart)?.[0],i=e.replace(k.endingNewline,``)+`
52
+ `;return r?`<pre><code class="language-`+N(r)+`">`+(n?i:N(i,!0))+`</code></pre>
53
+ `:`<pre><code>`+(n?i:N(i,!0))+`</code></pre>
54
+ `}blockquote({tokens:e}){return`<blockquote>
55
+ ${this.parser.parse(e)}</blockquote>
56
+ `}html({text:e}){return e}def(e){return``}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
57
+ `}hr(e){return`<hr>
58
+ `}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+`>
59
+ `+r+`</`+i+`>
60
+ `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
61
+ `}checkbox({checked:e}){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox"> `}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
62
+ `}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>
63
+ <thead>
64
+ `+t+`</thead>
65
+ `+r+`</table>
66
+ `}tablerow({text:e}){return`<tr>
67
+ ${e}</tr>
68
+ `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
69
+ `}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>${N(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=P(e);if(i===null)return r;e=i;let a=`<a href="`+e+`"`;return t&&(a+=` title="`+N(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=P(e);if(i===null)return N(n);e=i;let a=`<img src="${e}" alt="${N(n)}"`;return t&&(a+=` title="${N(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:N(e.text)}},Yn=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}},I=class e{options;renderer;textRenderer;constructor(e){this.options=e||Et,this.options.renderer=this.options.renderer||new Jn,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Yn}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}},Xn=class{options;block;constructor(e){this.options=e||Et}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?F.lex:F.lexInline}provideParser(e=this.block){return e?I.parse:I.parseInline}},Zn=new class{defaults=Tt();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=I;Renderer=Jn;TextRenderer=Yn;Lexer=F;Tokenizer=qn;Hooks=Xn;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 Jn(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 qn(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 Xn;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]=Xn.passThroughHooks.has(n)?e=>{if(this.defaults.async&&Xn.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 F.lex(e,t??this.defaults)}parser(e,t){return I.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?F.lex:F.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?I.parse:I.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?F.lex:F.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?I.parse:I.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+=`
70
+ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+N(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function L(e,t){return Zn.parse(e,t)}L.options=L.setOptions=function(e){return Zn.setOptions(e),L.defaults=Zn.defaults,E(L.defaults),L},L.getDefaults=Tt,L.defaults=Et;function Qn(...e){return Zn.use(...e),L.defaults=Zn.defaults,E(L.defaults),L}L.use=Qn,L.walkTokens=function(e,t){return Zn.walkTokens(e,t)},L.parseInline=Zn.parseInline,L.Parser=I,L.parser=I.parse,L.Renderer=Jn,L.TextRenderer=Yn,L.Lexer=F,L.lexer=F.lex,L.Tokenizer=qn,L.Hooks=Xn,L.parse=L,L.options,L.setOptions,L.walkTokens,L.parseInline,I.parse,F.lex;var R=e=>{let t=document.querySelector(e);if(!t)throw Error(`missing element: ${e}`);return t};function $n(e){let t=Math.round((Date.now()-e)/6e4);return t<1?`now`:t<60?`${t}m`:t<1440?`${Math.round(t/60)}h`:`${Math.round(t/1440)}d`}var er=e=>{let t=$n(e);return t===`now`?`just now`:`${t} ago`};function z(e,t,...n){let r=document.createElement(e);return t&&(r.className=t),r.append(...n),r}var tr=e=>e.split(`/`).filter(Boolean).pop()??e,nr=e=>`New session in ${tr(e)}`;function rr(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 ir(e){let t=Math.max(0,Math.round(e/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function ar(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 or(e){let t=z(`span`,`help`);return t.innerHTML=wt.sanitize(L.parseInline(e,{async:!1})),sr(t),t}function sr(e){for(let t of e.querySelectorAll(`a`))(t.getAttribute(`href`)??``).startsWith(`#`)||(t.target=`_blank`,t.rel=`noreferrer`)}async function cr(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 lr(e,t){let n=z(`button`,e,`Copy`);n.title=`Copy to clipboard`;let r;return n.onclick=async e=>{e.stopPropagation(),n.textContent=await cr(t()).then(()=>`Copied`,()=>`Failed`),clearTimeout(r),r=setTimeout(()=>n.textContent=`Copy`,1200)},n}function ur(e,t){let n=document.createElement(`details`);n.className=e;let r=z(`summary`,`flex cursor-pointer select-none items-center gap-1.5`);return r.append(z(`span`,`chev`,`▶`),...t),n.append(r),{el:n,summary:r}}var dr=`text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400`,fr=(e,t=!1)=>pr(e,`${t?`btn btn-primary`:`btn`} text-[12.5px]`),pr=(e,t=``)=>{let n=z(`button`,t,e);return n.type=`button`,n};function mr(e,t,n){let r=fr(e);return t&&r.classList.add(`bg-neutral-200`),r.onclick=n,r}function hr(e,t,n){let r=pr(e,`flex cursor-pointer items-center gap-1.5 rounded-full px-3 py-1 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}function gr(e,t,...n){let r=z(`section`,`rounded-xl border border-neutral-200 bg-white shadow-xs`),i=z(`div`,`rounded-t-xl border-b border-neutral-200/70 bg-neutral-50/70 px-4 py-2.5`);return i.append(z(`h2`,`text-[13px] font-semibold text-neutral-700`,e)),t&&i.append(z(`p`,`mt-0.5 text-[11.5px] leading-snug text-neutral-500`,t)),r.append(i,z(`div`,`flex flex-col gap-4 px-4 py-3.5`,...n)),r}function _r(e,t,n={}){let r=z(`div`,`flex flex-col gap-1.5`),i=z(`div`,`flex items-center gap-1.5`,z(`span`,dr,e));return n.help&&i.append(n.help),r.append(i,t),n.hint&&r.append(z(`span`,`text-[11.5px] leading-snug text-neutral-400`,n.hint)),r}var vr=`w-full rounded-lg border border-neutral-300 bg-white px-2.5 py-1.5 text-[12.5px] transition-colors placeholder:text-neutral-400 focus:border-indigo-400 focus:ring-2 focus:ring-indigo-100 focus:outline-none`,yr=(e,t,n,r=!1)=>{let i=document.createElement(`input`);return i.className=r?`${vr} font-mono`:vr,i.value=e,i.placeholder=t,i.oninput=()=>n(i.value),i},br=(e=``,t=`text`)=>{let n=document.createElement(`input`);return n.type=t,n.className=vr,n.value=e,n},xr=(e,t)=>{let n=document.createElement(`select`);return n.className=`${vr} select`,n.append(...e.map(([e,t])=>new Option(e,t))),n.value=t,n},Sr=(e=``,t=4)=>{let n=document.createElement(`textarea`);return n.className=`${vr} resize-y font-mono`,n.value=e,n.rows=t,n.spellcheck=!1,n};function Cr(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=z(`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 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`),s=z(`label`,`flex cursor-pointer gap-2.5 ${e?`items-start`:`items-center`}`);if(s.append(a,o),e){let n=z(`span`,`flex items-center gap-1.5`,z(`span`,`text-[13px] text-neutral-700`,e));i&&n.append(i);let r=z(`span`,`flex min-w-0 flex-col`,n);t&&r.append(z(`span`,`text-[11.5px] leading-snug text-neutral-400`,t)),s.append(r)}return s}var wr={idle:`text-neutral-400`,saving:`text-neutral-400`,saved:`text-green-700`,failed:`text-red-600`};function Tr(e,t,n){e.className=`text-[11.5px] ${wr[t]}`,e.textContent=n}var Er=(e,t)=>z(`span`,`flex-none rounded-full px-1.5 py-px text-[10px] font-medium uppercase tracking-wide ring-1 ${t}`,e),Dr=e=>z(`p`,`rounded-lg border border-dashed border-neutral-200 px-3 py-4 text-center text-[12.5px] text-neutral-400`,e);function Or(e,t,n=`left`){let r=z(`span`,`group relative inline-flex`),i=pr(`?`,`flex h-4 w-4 cursor-help items-center justify-center rounded-full border border-neutral-300 text-[9px] font-bold text-neutral-400 transition-colors group-hover:border-indigo-400 group-hover:text-indigo-500`),a=z(`span`,`absolute ${n===`right`?`right-0`:`left-0`} top-full z-20 hidden w-[min(27rem,calc(100vw-3rem))] pt-1.5 group-hover:block`),o=z(`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`);o.append(z(`span`,`text-[12.5px] font-semibold text-neutral-800`,e));let s=z(`ol`,`flex list-decimal flex-col gap-1.5 pl-4`);for(let e of t){let t=z(`li`,`marker:text-neutral-400`);t.append(typeof e==`string`?or(e):e),s.append(t)}return o.append(s),a.append(o),i.onclick=()=>{let e=a.classList.contains(`hidden`);a.classList.toggle(`hidden`,!e),a.classList.toggle(`block`,e),i.classList.toggle(`border-indigo-400`,e),i.classList.toggle(`text-indigo-500`,e)},r.append(i,a),r}var kr=(e,t)=>z(`span`,`flex flex-col gap-1`,or(e),t),Ar=R(`#image-dialog`),jr=R(`#image-full`),Mr=R(`#image-prev`),Nr=R(`#image-next`),Pr=[],Fr=0;function Ir(e){Pr.length<2||(Fr=(Fr+e+Pr.length)%Pr.length,jr.src=Pr[Fr])}function Lr(e){let t=e.closest(`[data-gallery]`);Pr=t?[...t.querySelectorAll(`img.thumb`)].map(e=>e.src):[e.src],Fr=Math.max(0,Pr.indexOf(e.src)),jr.src=e.src;let n=Pr.length<2?`none`:`flex`;Mr.style.display=n,Nr.style.display=n,Ar.showModal()}Ar.onclick=()=>Ar.close();var Rr=(e,t)=>{e.onclick=e=>{e.stopPropagation(),Ir(t)}};Rr(Mr,-1),Rr(Nr,1),Ar.onkeydown=e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),Ir(e.key===`ArrowLeft`?-1:1))};function zr(e){let t=e.querySelector(`:scope > .thumbs`);if(t)return t;let n=z(`div`,`thumbs`);return e.append(n),n}function Br(e){let t=document.createElement(`img`);return t.src=e,t.loading=`lazy`,t.className=`thumb`,t.onclick=()=>Lr(t),t}var Vr=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`avif`,`bmp`]),Hr=new Set([`txt`,`md`,`log`,`json`,`csv`,`yaml`,`yml`]),Ur=524288,Wr=R(`#file-dialog`),Gr=R(`#file-name`),Kr=R(`#file-text`),qr=R(`#file-download`);R(`#file-close`).onclick=()=>Wr.close();var Jr=e=>e.split(`.`).pop()?.toLowerCase()??``,Yr=(e,t,n=!1)=>`/api/sessions/${encodeURIComponent(e)}/files?path=${encodeURIComponent(t)}${n?`&download=1`:``}`;function Xr(e,t){return e.replace(/\]\(\s*<?file:\/\/(\/[^)>\s]*)>?\s*\)/g,(e,n)=>{let r=n;try{r=decodeURIComponent(n)}catch{}return`](${Yr(t,r)})`})}var Zr=e=>/^\/api\/sessions\/[^/]+\/files\?/.test(e);function Qr(e,t){let n=tr(t)||`file`,r=Yr(e,t);return Vr.has(Jr(n))?ti(r,n):ni(r,n)}function $r(e){return new URLSearchParams(e.slice(e.indexOf(`?`)+1)).get(`path`)??``}async function ei(e,t){Gr.textContent=t,qr.href=`${e}&download=1`,Kr.textContent=`loading…`,Wr.showModal();let n;try{let t=await fetch(e);n=t.ok?await t.text():await h(t,`failed to load`)}catch(e){n=`failed to load: ${String(e)}`}Kr.textContent=n.length>Ur?`${n.slice(0,Ur)}\n…`:n}function ti(e,t){let n=Br(e);return n.alt=t,n}function ni(e,t){let n=Jr(t),r=z(`span`,`inline-flex max-w-full items-center gap-2.5 rounded-lg border border-neutral-200 bg-neutral-50 px-2.5 py-1.5 no-underline`),i=z(`span`,`flex h-7 w-7 flex-none items-center justify-center rounded-md bg-indigo-50 text-[10px] font-semibold uppercase text-indigo-600`,n.slice(0,4)||`file`),a=z(`span`,`min-w-0 truncate text-[13px] font-medium text-neutral-800`,t),o=z(`span`,`ml-1 flex flex-none items-center gap-0.5`);if(Hr.has(n)||n===`pdf`){let r=z(`button`,`icon-btn h-6 w-6 text-[13px]`,`◉`);r.title=`Preview`,r.onclick=r=>{r.preventDefault(),n===`pdf`?window.open(e,`_blank`,`noopener`):ei(e,t)},o.append(r)}let s=document.createElement(`a`);return s.className=`icon-btn h-6 w-6 text-[13px] no-underline`,s.href=`${e}&download=1`,s.download=t,s.title=`Download`,s.textContent=`↓`,o.append(s),r.append(i,a,o),r}function ri(e){let t=new Set;for(let n of e)n.parentElement&&t.add(n.parentElement);for(let n of t){let t=[...n.children].filter(t=>e.includes(t));if([...n.childNodes].every(e=>e.nodeType===Node.TEXT_NODE?!e.textContent?.trim():t.includes(e))){n.classList.add(`thumbs`);continue}let r=z(`div`,`thumbs`);r.append(...t),n.after(r)}}function ii(e){let t=[];for(let n of e.querySelectorAll(`img`)){let e=n.getAttribute(`src`)??``;if(!Zr(e))continue;let r=ti(e,tr($r(e)));n.replaceWith(r),t.push(r)}for(let n of e.querySelectorAll(`a`)){let e=n.getAttribute(`href`)??``;if(!Zr(e))continue;let r=tr($r(e))||n.textContent?.trim()||`file`,i=Vr.has(Jr(r))?ti(e,r):ni(e,r);n.replaceWith(i),t.push(i)}t.length&&ri(t)}var ai=e=>`[${e.split(`/`).pop()??`file`}](file://${encodeURI(e).replace(/\(/g,`%28`).replace(/\)/g,`%29`)})`,oi=/^\[[^\]\n]*\]\(\s*<?file:\/\/(\/[^)>\s]*)>?\s*\)$/;function si(e){let t=e.split(`
71
+ `),n=t.length;for(;n>0&&oi.test(t[n-1].trim());)n--;let r=t.slice(n).map(e=>{let t=oi.exec(e.trim())[1];try{return decodeURIComponent(t)}catch{return t}});return{text:t.slice(0,n).join(`
72
+ `).trimEnd(),paths:r}}var ci=`modulepreload`,li=function(e){return`/`+e},ui={},di=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=li(t,n),t=s(t),t in ui)return;ui[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`:ci,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)})},fi,pi;function mi(){return pi??=di(()=>import(`./hljs-tWqyD59G.js`).then(e=>fi=e.default,e=>{console.warn(`highlighting unavailable — code stays plain text`,e)}),[]),pi}async function hi(e){let t=await mi();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 _i(e){let t=await mi(),n=e.split(`.`).pop()?.toLowerCase()??``,r=gi[n]??n;return t?.getLanguage(r)?r:null}function vi(e,t){let n=document.createElement(`span`);return fi&&t&&e.length<=500?n.innerHTML=fi.highlight(e,{language:t}).value:n.textContent=e,n}var yi=null,bi=`max-w-full cursor-pointer break-words rounded-full border border-indigo-200 bg-indigo-50 px-2.5 py-0.5 text-left text-[12.5px] text-indigo-700 transition-colors hover:border-indigo-300 hover:bg-indigo-100`;function xi(){yi=null}function Si(e,t,n){if(yi?.remove(),yi=null,!t.length)return;let r=z(`div`,`mt-1.5 flex flex-wrap gap-1.5`);for(let e of t){let t=z(`button`,bi,e);t.type=`button`,t.onclick=()=>{yi===r&&(yi=null),r.remove(),n(e)},r.append(t)}e.append(r),yi=r}var Ci=8e3,wi=[`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`],Ti,Ei;function Di(e,t){Ti=e,Ei=t}var Oi={queued:`border-amber-200 bg-amber-50 text-amber-800`,running:`border-green-200 bg-green-50 text-green-800`,succeeded:`border-neutral-200 bg-neutral-50 text-neutral-600`,failed:`border-red-200 bg-red-50 text-red-700`,cancelled:`border-neutral-200 bg-neutral-50 text-neutral-500`,interrupted:`border-amber-200 bg-amber-50 text-amber-800`,skipped:`border-neutral-200 bg-neutral-50 text-neutral-500`},ki=new Map;async function Ai(e){let t=await e;t.sent&&t.error&&Ei.append(`error`,t.error)}async function ji(e,t){let n=await oe(e,`POST`,t);n&&Ei.append(`error`,n)}async function Mi(e){let t=Ti.sessionId();t&&await Ai(se(`Reply to subagent`,`/api/task-messages/${e}/reply`,{sourceSessionId:t},`reply failed`))}function Ni(e){let t=z(`button`,`flex-none text-[11px] font-semibold normal-case text-cyan-800 hover:underline`,`Reply`);return t.onclick=()=>void Mi(e),t}function Pi(e){for(let[e,t]of ki)t.isConnected||ki.delete(e);let t=ki.get(e.runId);t||(t=z(`div`,`mx-5 my-1.5 border px-3 py-2 text-[13px]`),t.dataset.kind=`background-run`,Ei.el.append(t),ki.set(e.runId,t)),t.className=`mx-5 my-1.5 border px-3 py-2 text-[13px] ${Oi[e.state]}`;let n=e.state===`queued`||e.state===`running`,r=`/api/task-runs/${e.runId}`,i=n?z(`span`,`spinner`):z(`span`,`w-3 flex-none text-center`,e.state===`succeeded`?`✓`:e.state===`failed`?`✕`:`·`),a=z(`button`,`min-w-0 truncate text-left font-medium hover:underline`,e.taskName);a.onclick=()=>Ti.showRun(e.runId);let o=z(`div`,`flex items-center gap-2`,i,z(`span`,`flex-none text-[11px] font-semibold uppercase`,e.state),a),s=z(`div`,`ml-auto flex flex-none items-center gap-2`);if(e.targetSessionId){let t=z(`button`,`font-mono text-[11px] hover:underline`,`Open`);t.title=`Open ${e.targetSessionId}`,t.onclick=()=>Ti.select(e.targetSessionId),s.append(t)}if(n){let e=z(`button`,`text-[11px] font-semibold hover:underline`,`Steer`),t={mode:`steer`,sourceSessionId:Ti.sessionId()};e.onclick=()=>void Ai(se(`Steer subagent`,`${r}/steer`,t,`could not steer the run`));let n=z(`button`,`text-[11px] font-semibold hover:underline`,`Stop`);n.onclick=()=>void ji(`${r}/cancel`,`could not stop the run`),s.append(e,n)}else if(e.targetSessionId&&e.sessionMode!==null){let e=z(`button`,`text-[11px] font-semibold hover:underline`,`Continue`),t={sourceSessionId:Ti.sessionId()};e.onclick=()=>void Ai(se(`Continue subagent`,`${r}/resume`,t,`could not continue`)),s.append(e)}o.append(s);let c=Math.max(0,Math.round(((e.finishedAt??Date.now())-(e.startedAt??e.queuedAt))/1e3));t.replaceChildren(o,z(`div`,`mt-1 break-words text-[11px] opacity-70`,`${e.sessionMode??`task`} · depth ${e.depth} · ${c}s · ${e.runId}`)),Ei.scroll()}var B=null,Fi=null,Ii=null,Li=!1;function Ri(){if(!Fi)return;Fi.text=Fi.text.slice(-4e3),Fi.pre.textContent=Fi.text;let e=Fi.text.split(`
73
+ `).filter(Boolean).pop()??`thinking…`,t=Fi.summary.lastElementChild;t.textContent=e.length>90?`…`+e.slice(-90):e}function zi(){if(Ii){Li=!0;return}Li=!1,Ri(),Ii=setTimeout(()=>{Ii=null,Li&&zi()},80)}function Bi(){Ii&&clearTimeout(Ii),Ii=null,Li&&Ri(),Li=!1}var Vi=new WeakMap,Hi=e=>{let t=Vi.get(e)??[];return Vi.set(e,t),t};function Ui(){B&&!B.toolRows.size&&ta(`done`)}var Wi=null;function Gi(){B=null,Wi=null,Fi=null,Bi(),ki.clear()}function Ki(){let e=Wi;return!e||B?.el===e||(Wi=null,e!==Ei.el.lastElementChild)?null:(e.remove(),e.dataset.adopted=`1`,Ji(e,e.dataset.status),e)}var qi={running:`text-green-700 open:bg-green-50`,done:`text-neutral-400 hover:text-neutral-600 open:bg-black/[0.02] open:text-neutral-500 dark:open:bg-neutral-100`,failed:`text-red-600 open:bg-red-50`,interrupted:`text-amber-700 open:bg-amber-50`};function Ji(e,t){e.dataset.status=t,e.className=`${e.dataset.adopted?`float-left min-w-[6.5rem] pr-3 tabular-nums mt-[3px] open:float-none open:mt-0 open:mb-1.5 open:min-w-0 open:pr-0`:`mx-5 my-1.5`} rounded-md text-[11.5px] leading-[1.35] open:border open:border-black/[0.06] open:px-2 open:py-1.5 dark:open:border-neutral-200 ${qi[t]}`}var Yi={failed:`✕`,interrupted:`⏸`};function Xi(e){return e===`running`?z(`span`,`spinner`):e===`done`?z(`span`,`hidden`):z(`span`,`flex-none text-[12px] font-bold`,Yi[e])}function Zi(e){if(B)return B;let t=Xi(`running`),n=z(`span`,`min-w-0 truncate`,`working…`),{el:r}=ur(``,[t,n]);r.dataset.kind=`activity`,Ji(r,`running`);let i=z(`div`,`mt-1.5 flex max-h-64 flex-col gap-1 overflow-y-auto overscroll-contain border-t border-black/5 pt-1.5 dark:border-neutral-200`);return r.append(i),Qi(r,i),Ei.el.append(r),Wi=r,Ei.scroll(),B={el:r,statusIcon:t,headline:n,rowsEl:i,toolRows:new Map,thinking:null,steps:0,failedSteps:0,startTs:e,sawError:!1},B}function Qi(e,t){t.dataset.follow=`1`,t.addEventListener(`scroll`,()=>{let e=t.scrollHeight-t.scrollTop-t.clientHeight<24;t.dataset.follow=e?`1`:``}),e.addEventListener(`toggle`,()=>{e.open&&(t.scrollTop=t.scrollHeight,t.dataset.follow=`1`)})}function $i(e){Ei.bulk()||!e.el.open||!e.rowsEl.dataset.follow||(e.rowsEl.scrollTop=e.rowsEl.scrollHeight)}function ea(e,t,n){let r=Math.max(1,Math.round((Date.now()-e.startTs)/1e3)),i=`${e.steps} step${e.steps===1?``:`s`} · ${r}s`;e.headline.textContent=t===`running`&&n?`${i} · ${n}`:t===`done`?i:`${i} · ${t}`,Ji(e.el,t);let a=Xi(t);e.statusIcon.replaceWith(a),e.statusIcon=a}function ta(e){if(!B)return;Bi();for(let{statusEl:e}of B.toolRows.values())e.textContent===`running…`&&(e.textContent=`interrupted`);let t=B.steps>0&&B.failedSteps===B.steps;ea(B,(B.sawError||t)&&e===`done`?`failed`:e),B=null}function na(){B&&(B.sawError=!0)}function ra(e){let t=e.slice(0,400).replace(/\s+/g,` `);return t.length>100?t.slice(0,100)+`…`:t}function ia(e,t,n,r){let i=Zi(e);i.steps+=1,Bi(),i.thinking=null;let a=JSON.stringify(r,null,2)??``,o=z(`span`,`ml-auto flex-none text-neutral-400`,`running…`),s=z(`span`,`min-w-0 truncate text-neutral-500`,ra(a)),{el:c}=ur(`rounded-md px-1 py-0.5 font-mono text-[12.5px] hover:bg-black/[0.03] dark:hover:bg-neutral-100`,[z(`span`,`flex-none font-semibold`,n),s,o]),l=z(`pre`,`max-h-40 overflow-y-auto whitespace-pre-wrap break-words rounded bg-black/[0.04] p-1.5 text-[12px] dark:bg-neutral-100`,a),u=z(`pre`,`hidden max-h-56 overflow-y-auto whitespace-pre-wrap break-words rounded bg-black/[0.04] p-1.5 text-[12px] dark:bg-neutral-100`);c.append(z(`div`,`mt-1 flex flex-col gap-1 pl-4`,l,u)),Hi(i.el).push({tool:n,call:t,preview:s,argsPre:l,outputPre:u}),i.toolRows.set(t,{el:c,statusEl:o,outputPre:u}),i.rowsEl.append(c),$i(i),ea(i,`running`,n),Ei.scroll()}function aa(e,t,n){let r=B;if(!r)return;let i=r.toolRows.get(e);r.toolRows.delete(e),i&&(i.statusEl.textContent=t?`failed`:`ok`,i.statusEl.className=`ml-auto flex-none ${t?`text-red-600`:`text-green-700`}`,i.el.classList.toggle(`bg-red-50`,t),i.el.classList.toggle(`text-red-700`,t),n&&(i.outputPre.textContent=n.length>8e3?n.slice(0,Ci)+`…`:n,i.outputPre.classList.remove(`hidden`)),t&&(r.failedSteps+=1)),ea(r,`running`)}function oa(e,t){let n=Zi(e);if(!n.thinking){Bi();let{el:e,summary:t}=ur(`rounded-md px-1 py-0.5 text-[12.5px] italic text-neutral-500 hover:bg-black/[0.03] dark:hover:bg-neutral-100`,[z(`span`,`min-w-0 truncate`,`thinking…`)]),r=z(`div`,`mt-1 max-h-56 overflow-y-auto whitespace-pre-wrap break-words pl-4 not-italic text-neutral-500`,``);e.append(r),n.rowsEl.append(e),n.thinking={pre:r,summary:t,text:``},Fi=n.thinking,$i(n),ea(n,`running`,`thinking…`)}n.thinking.text+=t,zi()}var sa=0;function ca(e,t=0,n=!1,r){let i=Date.now()-t,a=Zi(i).el;for(let t of e){if(t.kind===`thinking`){oa(i,t.text??``);continue}let e=t.id??`replay-${++sa}`;ia(i,e,t.toolName??``,t.args),t.done&&aa(e,t.isError??!1,t.output??``)}r!==void 0&&e.some(e=>e.kind===`tool`&&e.args===void 0)&&la(a,r),!n&&ta(e.some(e=>e.kind===`tool`&&!e.done)?`interrupted`:`done`)}function la(e,t){let n=()=>{e.open&&(e.removeEventListener(`toggle`,n),ua(e,t))};e.addEventListener(`toggle`,n)}async function ua(e,t){let n=Ti.sessionId(),r=Hi(e),i=new Set(r.filter(e=>!e.argsPre.textContent)),a=e=>{for(let t of i)t.argsPre.textContent=e};if(a(`loading…`),!n)return a(`no session`);let o=await ie(`/api/sessions/${n}/turns/${t}/steps`,`could not load these steps`);if(!o.ok)return a(o.error);let s=o.value.steps.filter(e=>e.kind===`tool`);for(let[e,t]of r.entries()){if(!i.has(t))continue;let n=s[e];if(!(n&&(n.id?n.id===t.call:n.toolName===t.tool))){t.argsPre.textContent=`detail no longer available — reload the session`;continue}let r=JSON.stringify(n.args,null,2)??``;t.argsPre.textContent=r,t.preview.textContent=ra(r),n.output&&(t.outputPre.textContent=n.output,t.outputPre.classList.remove(`hidden`))}}var da,V=R(`#turns`);function fa(e){da=e,Di(e,{el:V,append:H,scroll:ya,bulk:()=>pa})}var pa=!1,ma=()=>V.scrollHeight-V.scrollTop-V.clientHeight<80,ha=!0;V.addEventListener(`scroll`,()=>{pa||(ha=ma())},{passive:!0});var ga=0;function _a(){!ha||pa||ga||(ga=requestAnimationFrame(()=>{ga=0,ha&&!pa&&(V.scrollTop=V.scrollHeight)}))}new ResizeObserver(_a).observe(V),V.addEventListener(`load`,_a,!0),new MutationObserver(_a).observe(V,{childList:!0,subtree:!0,characterData:!0});function va(){ma()&&(ha=!0)}function ya(e=!1){pa||(e&&(ha=!0),ha&&(V.scrollTop=V.scrollHeight))}var ba=500,xa=0,Sa=0,Ca=null;function wa(){for(;V.childElementCount>ba;){let e=V.firstElementChild;e.remove(),e!==Ca&&(e.dataset.kind===`user`&&xa++,Sa++)}Sa&&(Ca||(Ca=z(`div`,`px-5 py-2 text-center text-[11.5px] italic text-neutral-400`),Ca.dataset.kind=`trim`),Ca.textContent=`${Sa} earlier row${Sa===1?``:`s`} not shown — still in the transcript, not on this screen`,V.firstElementChild!==Ca&&V.prepend(Ca))}var Ta={user:{row:`border-l-indigo-500 bg-indigo-50`,body:`text-neutral-900`},assistant:{row:`border-l-transparent`,body:`text-neutral-900`},error:{row:`border-l-red-400 bg-red-50`,body:`text-red-700`},system:{row:`border-l-cyan-500 bg-cyan-50`,body:`text-neutral-800`}};function H(e,t,n=!1,r){Ui();let i=e===`assistant`?Ki():null,a=Ta[e],o=e===`user`&&r!==void 0&&Na(r)?r:void 0,s=z(`div`,`group relative border-l-2 px-5 ${o===void 0&&V.lastElementChild?.dataset.kind===e?`pt-1 pb-2.5`:`mt-1.5 py-2.5`} ${a.row}`);s.dataset.kind=e;let c=e===`user`?si(t):null,l=c?.text??t,u=e===`user`?te(l):null,d=u?.id||u?.when?u:null,ee=d?.id&&d.id!==`web`?d:null,f=z(`div`,`whitespace-pre-wrap break-words ${a.body}`,d?.text??l);(c?.paths.length||d)&&(f.dataset.raw=t),n&&Ha(f,t),i&&(s.classList.add(`flow-root`),s.append(i)),(ee||o!==void 0)&&s.append(Ea(ee,o)),s.append(f);let p=da.sessionId();if(c?.paths.length&&p){let e=zr(s);for(let t of c.paths)e.append(Qr(p,t))}if(e===`user`){let e=z(`button`,`absolute right-2 top-1 hidden h-6 w-6 items-center justify-center rounded text-neutral-400 hover:bg-neutral-200 hover:text-neutral-700 group-hover:flex pointer-coarse:flex`);e.title=`Edit — resends from here; this message and later turns leave the context`,e.setAttribute(`aria-label`,`Edit message`),e.innerHTML=`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5"><path d="m10.7 2.3 3 3L6 13H3v-3l7.7-7.7zM9.3 3.7l3 3"/></svg>`,e.onclick=()=>Oa(s,f),s.append(e)}return V.append(s),wa(),ya(),f}function Ea(e,t){let n=z(`div`,`mb-1 flex items-baseline gap-2 text-[11.5px] leading-tight`),r=e?.name??e?.id;if(r){let t=z(`span`,`font-semibold text-indigo-700`,r);e?.id&&(t.title=e.id),n.append(t)}return t!==void 0&&n.append(Pa(t,`font-mono text-[11px] text-indigo-600`)),n}function Da(e,t){let n=t.kind===`task-callback`?`Task callback`:t.kind===`task-message`?t.messageKind===`decision`?`Decision needed`:`Task ${t.messageKind.replace(`_`,` `)}`:`Agent task input`;Ui();let r=z(`div`,`group relative mt-1.5 border-l-2 border-l-cyan-500 bg-cyan-50 px-5 py-2.5`);r.dataset.kind=`system`;let i=z(`div`,`mb-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[11px] font-semibold uppercase text-cyan-800`,z(`span`,`flex-none`,n)),a=t.source;if(a&&i.append(z(`span`,`min-w-0 truncate font-medium normal-case text-cyan-700`,a.taskName)),t.sourceSessionId&&t.sourceSessionId!==`console`){let e=z(`button`,`truncate font-mono normal-case text-cyan-700 hover:underline`,t.sourceSessionId.slice(0,12));e.title=`Open source session`,e.onclick=()=>da.select(t.sourceSessionId),i.append(z(`span`,`text-cyan-400`,`from`),e)}if(a?.model){let e=z(`span`,`flex-none rounded bg-cyan-100 px-1.5 py-px font-mono font-medium normal-case text-cyan-800`,a.model.id);e.title=`${a.model.provider} / ${a.model.id}`,i.append(e)}if(a?.thinking){let e=z(`span`,`flex-none font-mono font-normal normal-case text-cyan-600`,a.thinking);e.title=`Reasoning effort`,i.append(e)}let o=z(`button`,`ml-auto flex-none font-mono normal-case text-cyan-700 hover:underline`,`run ${t.runId.slice(0,8)}`);o.onclick=()=>da.showRun(t.runId),i.append(o),t.kind===`task-message`&&t.messageKind===`decision`&&i.append(Ni(t.messageId));let s=[`max-h-[min(18rem,40dvh)]`,`overflow-hidden`],c=z(`div`,`whitespace-pre-wrap break-words text-[14px] text-neutral-800 ${s.join(` `)}`,e);r.append(i,c),V.append(r);let l=e.length>800||e.split(`
74
+ `).length>12;if(c.clientHeight?c.scrollHeight>c.clientHeight+1:l){let e=z(`button`,`mx-auto mt-1.5 block w-fit rounded border border-cyan-200 bg-white px-2 py-1 text-[12px] font-medium text-cyan-800 shadow-sm hover:bg-cyan-100 pointer-coarse:py-3.5`,`Show full message`);e.setAttribute(`type`,`button`),e.onclick=()=>{let t=c.classList.toggle(s[0]);c.classList.toggle(s[1],t),e.textContent=t?`Show full message`:`Collapse message`,c.tabIndex=-1,c.focus({preventScroll:!0})},r.append(e)}else c.classList.remove(...s);wa(),ya()}function Oa(e,t){if(da.sessionState()!==`idle`){H(`error`,`can't edit while streaming — stop the turn first`);return}if(e.querySelector(`textarea`))return;let n=document.createElement(`textarea`);n.value=t.dataset.raw??t.textContent??``,n.className=`block w-full resize-none rounded-md border border-indigo-300 bg-white px-2 py-1 focus:outline-none`;let r=()=>{n.style.height=`auto`,n.style.height=`${Math.min(n.scrollHeight,192)}px`};n.oninput=r,t.classList.add(`hidden`),t.after(n),r(),n.focus(),n.setSelectionRange(n.value.length,n.value.length);let i=()=>{n.remove(),t.classList.remove(`hidden`)};n.onkeydown=t=>{if(!(t.isComposing||t.keyCode===229)&&(t.key===`Escape`&&i(),t.key===`Enter`&&!t.shiftKey)){t.preventDefault();let r=n.value.trim();if(!r)return i();ka(e,r)}}}async function ka(e,t){let n=da.sessionId();if(!n)return;let r=xa+[...V.querySelectorAll(`[data-kind="user"]`)].indexOf(e);for(;e.nextElementSibling;)e.nextElementSibling.remove();e.remove(),da.ownTurn(t),H(`user`,t,!1,Date.now()),ya(!0);let i=await m(`/api/sessions/${n}/turns/${r}/edit`,{text:t});if(!i.ok){let e=await h(i,`edit failed`);await da.reload(n),H(`error`,e)}}var Aa=6e5,ja=null,Ma=(e,t)=>new Date(e).toDateString()===new Date(t).toDateString();function Na(e){let t=ja;return ja=e,t===null||e-t>=Aa||!Ma(t,e)}function Pa(e,t){let n=z(`div`,t);return n.dataset.at=String(e),Fa(n),La??=setInterval(Ra,6e4),n}function Fa(e){let t=Number(e.dataset.at);e.textContent=`${rr(t)} · ${er(t)}`}var Ia=null,La;function Ra(){let e=V.querySelectorAll(`[data-at]`);if(!e.length){clearInterval(La),La=void 0;return}for(let t of e)Fa(t)}function za(e,t){t&&(Ia?.remove(),Ia=Pa(t.completedAt,`mt-1 font-mono text-[11px] text-neutral-400`),(e.parentElement??e).append(Ia))}function Ba(e){for(let t of e.querySelectorAll(`pre`)){let e=t.querySelector(`code`);if(!e)continue;let n=z(`div`,`group/code relative`);t.replaceWith(n),n.append(t,lr(`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??``))}}function Va(e){let t=da.sessionId(),n=z(`div`,``);return n.innerHTML=wt.sanitize(L.parse(t?Xr(e,t):e,{async:!1})),sr(n),n}function Ha(e,t){e.replaceChildren(...Va(t).childNodes),e.classList.remove(`whitespace-pre-wrap`),e.classList.add(`md`),hi(e),Ba(e),ii(e)}function Ua(e,t,r,i=!1){let{text:a,suggestions:o}=u(t);return n({text:a,suggestions:o})?Wa(e,l(t)):Ha(e,a),i&&Si(e.parentElement??e,o,e=>da.send(`auto`,e)),za(e,r),e}function Wa(e,t){e.classList.remove(`md`,`whitespace-pre-wrap`),e.replaceChildren(z(`span`,`text-[12.5px] italic text-neutral-400`,t?`Stayed silent — ${t}`:`Stayed silent.`))}var Ga=(e,t,n=!1)=>Ua(H(`assistant`,``),e,t,n),U=null,Ka=null,qa=!1,Ja=0,Ya=0;function Xa(e){let t=e.dataset.raw??``;for(;e.childNodes.length>Ya;)e.lastChild.remove();let n=f(t,Ja);n>Ja&&(e.append(...Va(d(t.slice(Ja,n))).childNodes),Ja=n,Ya=e.childNodes.length),e.append(...Va(u(t.slice(Ja)).text).childNodes),e.classList.remove(`whitespace-pre-wrap`),e.classList.add(`md`)}function Za(){if(Ka){qa=!0;return}qa=!1,U&&(Xa(U),ya()),Ka=setTimeout(()=>{Ka=null,qa&&Za()},80)}function Qa(){Ka&&clearTimeout(Ka),Ka=null,qa=!1}function $a(e){U||(U=H(`assistant`,``),Ja=0,Ya=0),U.dataset.raw=(U.dataset.raw??``)+e,Za()}function eo(e=!1,t){if(!U)return;let n=U;U=null,Qa(),Ua(n,n.dataset.raw??``,t,e)}function to(e,t){if(ta(`done`),U){e&&(U.dataset.raw=e),eo(!0,t);return}e&&Ga(e,t,!0)}function no(){ta(`interrupted`),eo()}function ro(){V.replaceChildren(),xa=0,Sa=0,Ca=null,ja=null,Ia=null,U=null,Qa(),Gi(),xi()}function io(e){if(!e){V.querySelector(`[data-kind="loading"]`)?.remove();return}let t=z(`div`,`flex flex-col gap-3 px-5 py-4`);t.dataset.kind=`loading`;for(let e of[`w-2/5`,`w-4/5`,`w-3/5`,`w-1/3`,`w-2/3`])t.append(z(`div`,`skeleton h-3.5 ${e}`));V.append(t)}function ao(e,t,n){io(!1);let r=new Map(n.map(e=>[e.runId,e])),i=e=>[...r].filter(([,t])=>t.queuedAt<=e).map(([e])=>e),a=e=>{for(let t of e){let e=r.get(t);e&&(Pi(e),r.delete(t))}},o=e.reduce((e,t,n)=>t.role===`assistant`?n:e,-1);pa=!0;try{for(let[n,r]of e.entries()){let s=t===`streaming`&&n===e.length-1&&(!r.text||(r.steps?.some(e=>e.kind===`tool`&&!e.done)??!1)),c=r.steps;if(c?.length&&(ca(c,r.meta?.durationMs,s,n),r.meta&&a(i(r.meta.completedAt))),r.text){if(r.role===`system`&&r.origin){a(r.origin.kind===`task-message`?[r.origin.runId]:r.origin.runIds??[r.origin.runId]),Da(r.text,r.origin);continue}r.role===`assistant`?Ga(r.text,r.meta,t===`idle`&&n===o):H(r.role,r.text,!1,r.at)}}for(let e of r.values())Pi(e)}finally{pa=!1}ya(!0)}var oo=window.fetch.bind(window),so=20,co=6e4,lo=[],uo=new Map,fo=e=>e instanceof Error?e.stack??`${e.name}: ${e.message}`:void 0;function po(e,t){let n=t===void 0?e:`${e}: ${String(t)}`,r=Date.now();return r-(uo.get(n)??-6e4)<co||(uo.size>100&&uo.clear(),uo.set(n,r),lo=lo.filter(e=>r-e<6e4),lo.length>=so)?null:(lo.push(r),oo(`/api/client-log`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:n,stack:fo(t),view:location.hash||`/`}),keepalive:!0}).catch(()=>{}),H(`error`,n))}function mo(){window.__pierReporting=!0,window.addEventListener(`error`,e=>{po(`script error: ${e.message}`,e.error)}),window.addEventListener(`unhandledrejection`,e=>{po(`unhandled rejection`,e.reason)})}var ho=window.fetch.bind(window),go=()=>{location.assign(`/login?next=${encodeURIComponent(location.pathname+location.hash)}`)};function _o(){window.fetch=async(...e)=>{let t=await ho(...e);return t.status===401&&go(),t}}function vo(e,t){if(e.readyState!==EventSource.CLOSED)return;let n=()=>{let e=po(`${t} stream disconnected`);if(!e)return;let n=fr(`Reload`);n.classList.add(`ml-2`,`align-middle`),n.onclick=()=>location.reload(),e.append(` `,n)};ho(`/api/projects`).then(e=>e.status===401?go():n(),n)}var yo=/Mac|iP(?:hone|ad|od)/.test(navigator.userAgent),bo=yo?`⌘`:`Ctrl+`,xo=yo?`⇧`:`Shift+`,So=e=>{let t=e.startsWith(`meta+`),n=t?e.slice(5):e;return n.startsWith(`shift+`)?{key:n.slice(6),shift:!0,meta:t}:{key:n,shift:!1,meta:t}};function Co(e){let{key:t,shift:n,meta:r}=So(e);return`${r?`⌘`:bo}${n?xo:``}${t.toUpperCase()}`}var wo=`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 To(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=z(`div`,wo,t,z(`kbd`,`rounded bg-white/15 px-1 py-px font-sans text-[10.5px]`,n)),document.body.append(r);let o=e.getBoundingClientRect(),s=o.bottom+6,c=s+r.offsetHeight+8<=window.innerHeight;r.style.top=`${c?s: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 Eo(e,t,n,r,i){To(e,n,Co(t)),Ao(t,r,i)}function Do(e,t,n,r){To(e,t,`Esc`),document.addEventListener(`keydown`,e=>{e.key!==`Escape`||e.isComposing||e.defaultPrevented||document.querySelector(`dialog[open]`)||!r()||(e.preventDefault(),n())})}var Oo=`input, textarea, select, [contenteditable]`;function ko(e,t,n,r,i){To(e,n,t[0].toUpperCase()),document.addEventListener(`keydown`,e=>{e.metaKey||e.ctrlKey||e.altKey||e.isComposing||e.defaultPrevented||!e.key||!t.includes(e.key.toLowerCase())||e.target?.closest?.(Oo)||document.querySelector(`dialog[open]`)||!i()||(e.preventDefault(),r())})}function Ao(e,t,n){let{key:r,shift:i,meta:a}=So(e);document.addEventListener(`keydown`,e=>{!e.key||e.key.toLowerCase()!==r||e.altKey||e.shiftKey!==i||(a?!e.metaKey:!e.metaKey&&!e.ctrlKey)||!e.metaKey&&e.target?.closest?.(`[data-owns-keyboard]`)||n?.()||(e.preventDefault(),e.stopPropagation(),t())},!0)}var W,jo=R(`#composer`),G=R(`#input`),Mo=R(`#send`),No=R(`#send-plane`),Po=R(`#send-queue`),Fo=R(`#stop`),Io=R(`#queue-panel`),Lo=R(`#queue-rows`),Ro=R(`#queue-label`),zo=z(`div`,`hidden max-h-48 overflow-y-auto border-t border-neutral-200 px-3 py-1.5 text-[13px]`);Io.after(zo);var Bo=R(`#image-strip`),Vo=R(`#attach-input`),Ho=!1,Uo=0,Wo=new Set,Go=[],Ko=[];function qo(){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 Jo(){G.focus()}function Yo(e){let t=Ko.indexOf(e);return t<0?!1:(Ko.splice(t,1),!0)}function Xo(e){Ko.push(e)}function Zo(){Ko=[]}function Qo(){let e=W.sessionState()===`streaming`,t=W.sessionId()!==null,n=W.starting();Mo.disabled=!t,Mo.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`}`,Mo.title=t?e?`Queue — delivered when the turn ends`:`Send`:n?`Starting the session…`:`No session`,G.placeholder=n?`Starting the session…`:`Message…`,No.classList.toggle(`hidden`,e),Po.classList.toggle(`hidden`,!e),Fo.classList.toggle(`hidden`,!e),Fo.classList.toggle(`flex`,e)}function $o(){let e=W.chatVisible()&&Ho;Io.classList.toggle(`hidden`,!e),Io.classList.toggle(`flex`,e),zo.classList.toggle(`hidden`,!W.chatVisible()||!zo.childElementCount)}function es(e,t=!1){let n=W.sessionId();if(zo.replaceChildren(...e.map(e=>{let t=z(`details`,`py-1`),r=e.status===`submitting`?`Handing off`:e.status===`not-submitted`?`Not submitted`:`Acceptance unknown`,i=e.status===`submitting`?``:`; automatic queue paused`;t.append(z(`summary`,`cursor-pointer break-words text-amber-700`,`Queue recovery: ${r}${i} (in memory)`));for(let n of[...e.steering,...e.followUp]){let e=z(`div`,`flex items-start gap-2 border-t border-neutral-100 py-1`);e.append(z(`span`,`min-w-0 flex-1 whitespace-pre-wrap break-words`,n),lr(`flex-none cursor-pointer px-1 text-neutral-500 hover:text-neutral-800`,()=>n)),t.append(e)}e.error&&t.append(z(`div`,`break-words text-red-600`,e.error));let a=z(`button`,`cursor-pointer py-1 text-neutral-500 disabled:cursor-default disabled:opacity-40`,`Acknowledge`);return a.type=`button`,a.disabled=e.status===`submitting`,a.title=`Remove this recovery copy without sending it`,a.onclick=async()=>{if(!n||!confirm(`Remove this recovery copy? This does not resend the messages.`))return;let t=await m(`/api/sessions/${n}/queue/recovery/${e.id}/ack`,{}),r=t.ok?null:await h(t,`Could not acknowledge queue recovery`);W.sessionId()===n&&(r===null?await W.reload(n):H(`error`,r))},t.append(a),t})),t){let e=z(`div`,`flex flex-wrap items-center gap-x-2 py-1 text-amber-700`,`Automatic queue paused: acceptance unknown (in memory)`),t=z(`button`,`cursor-pointer underline`,`Recall queue`);t.title=`Clear the live queue and return its messages to the composer`,t.onclick=()=>void ms(),e.append(t),zo.prepend(e)}$o()}function ts(e,t){++Uo;let n=[...e.map(e=>({mode:`steer`,text:e})),...t.map(e=>({mode:`queued`,text:e}))];Ho=n.length>0,Ro.textContent=n.length>1?`Queued · ${n.length}`:`Queued`,$o(),Lo.replaceChildren(...n.map(e=>{let t=z(`li`,`flex items-start gap-2 text-[13px] leading-[18px]`);return e.mode===`steer`&&t.append(z(`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)),t.append(z(`span`,`min-w-0 whitespace-pre-wrap break-words text-neutral-700`,e.text)),t}))}var ns=8;function rs(){Bo.classList.toggle(`hidden`,Go.length===0),Bo.classList.toggle(`flex`,Go.length>0),Bo.replaceChildren(...Go.map((e,t)=>{let n=e.mimeType.startsWith(`image/`)?Br(`data:${e.mimeType};base64,${e.data}`):z(`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=z(`button`,`absolute -right-1.5 -top-1.5 h-4 w-4 cursor-pointer rounded-full bg-neutral-700 text-[10px] leading-none text-white hover:bg-red-600`,`×`);return r.onclick=()=>{Go.splice(t,1),rs()},z(`div`,`relative`,n,r)}))}function is(e){if(Go.length>=ns){H(`error`,`attachment limit is ${ns} files per message`);return}if(e.size>33554432){H(`error`,`${e.name||`file`} is too large (32MB max)`);return}let t=new FileReader;t.onload=()=>{let n=t.result;Go.push({data:n.slice(n.indexOf(`,`)+1),mimeType:e.type||`application/octet-stream`,name:e.name||void 0}),rs()},t.readAsDataURL(e)}async function as(e){let t=[];for(let n of e){let e=await m(`/api/inbox`,n);if(!e.ok)return null;let{path:r}=await e.json();t.push(ai(r))}return t}var os=e=>`pier.draft.${e}`,ss=0;function cs(e=W.sessionId(),t=G.value){e&&(t?localStorage.setItem(os(e),t):localStorage.removeItem(os(e)))}function ls(e){++ss,G.value=localStorage.getItem(os(e))??``,us(),Go=[],rs()}function us(){let e=G.style.height;G.style.height=`auto`;let t=`${Math.min(G.scrollHeight,192)}px`;G.style.height=t,t!==e&&ya()}var ds=!1;async function fs(e,t){let n=(t??G.value).trim(),r=t===void 0?Go:[],i=W.sessionId();if(!(!n&&r.length===0||!i)){if(t===void 0){if(ds)return;ds=!0,G.value=``,us(),cs(),Go=[],rs()}try{let t=[];if(r.length){let e=await as(r);if(e===null){H(`error`,`attachment upload failed`),G.value=[n,G.value.trim()].filter(Boolean).join(`
75
+ `),us(),cs(),Go=r,rs();return}t=e}let a=[n,...t].filter(Boolean).join(`
76
+ `),o=W.sessionState()===`idle`&&e===`auto`;o?W.setState(`streaming`):Qo(),(o||e===`steer`)&&(Xo(a),H(`user`,a,!1,Date.now()),ya(!0));let s=await m(`/api/sessions/${i}/messages`,{text:a,mode:e});if(!s.ok){let e=await h(s,`send failed`);await W.reload(i),H(`error`,e)}}finally{t===void 0&&(ds=!1)}}}async function ps(e){let t=W.sessionId();if(!t)return;ts([],[]);let n=await m(`/api/sessions/${t}/queue/deliver`,{mode:e});if(!n.ok){let r=await h(n,`Queue ${e} failed`);await W.reload(t),W.sessionId()===t&&H(`error`,r)}}async function ms(){let e=W.sessionId();if(!e||Wo.has(e))return;Wo.add(e);let t=Uo,n=ss,r=document.activeElement;try{cs();let i=await fetch(`/api/sessions/${e}/queue/recall`,{method:`POST`});if(!i.ok){let t=await h(i,`Could not recall queued messages`);W.sessionId()===e&&H(`error`,t);return}let{messages:a}=await i.json(),o=W.sessionId()===e;if(a.length)try{let t=o?G.value:localStorage.getItem(os(e))??``,i=(t?[t,...a]:a).join(`
77
+ `);o&&(G.value=i,us(),n===ss&&W.chatVisible()&&document.activeElement===r&&G.focus()),cs(e,i)}catch(t){H(`error`,`Could not save recalled messages for session ${e}: ${String(t)}\nRecalled messages (not saved):\n${a.join(`
78
+ `)}`)}o&&t===Uo&&ts([],[])}finally{Wo.delete(e)}}function hs(e){W=e,qo();let t=()=>{let e=W.sessionId();e&&fetch(`/api/sessions/${e}/abort`,{method:`POST`})};Fo.onclick=t,Do(Fo,`Stop the running turn`,t,()=>W.sessionState()===`streaming`&&W.chatVisible()),R(`#queue-steer`).onclick=()=>void ps(`steer`),R(`#queue-restart`).onclick=()=>void ps(`restart`),R(`#queue-recall`).onclick=()=>void ms(),jo.onsubmit=e=>{e.preventDefault(),fs(`auto`)},ko(G,[`/`],`Write a message`,Jo,W.chatVisible),G.onfocus=va,G.oninput=()=>{us(),cs()};let n=!matchMedia(`(pointer: coarse)`).matches;G.onkeydown=e=>{e.isComposing||e.keyCode===229||n&&e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),fs(`auto`))},G.onpaste=e=>{for(let t of e.clipboardData?.items??[]){let e=t.kind===`file`?t.getAsFile():null;e&&is(e)}let t=e.clipboardData?.getData(`text/plain`)??``,n=t.trim();!n||n===t||(e.preventDefault(),G.setRangeText(n,G.selectionStart??0,G.selectionEnd??0,`end`),us(),cs())},V.ondragover=e=>e.preventDefault(),V.ondrop=e=>{e.preventDefault();for(let t of e.dataTransfer?.files??[])is(t)},R(`#attach`).onclick=()=>Vo.click(),Vo.onchange=()=>{for(let e of Vo.files??[])is(e);Vo.value=``},Qo()}var gs=`pier.push`,_s=`/sw.js`,vs=()=>/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.maxTouchPoints>1&&/Macintosh/.test(navigator.userAgent),ys=()=>matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0;function bs(){return window.isSecureContext?vs()&&!ys()?`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 xs=[[/iPhone/,`iPhone`],[/iPad/,`iPad`],[/Android/,`Android`],[/Macintosh/,`Mac`],[/Windows/,`Windows`]],Ss=[[/Edg\//,`Edge`],[/Chrome\//,`Chrome`],[/Firefox\//,`Firefox`],[/Safari\//,`Safari`]];function Cs(){let e=navigator.userAgent,t=(t,n)=>t.find(([t])=>t.test(e))?.[1]??n;return`${t(xs,`Linux`)} · ${t(Ss,`browser`)}${ys()?` (installed)`:``}`}var ws=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},Ts=null;async function Es(){return!(`serviceWorker`in navigator)||!window.isSecureContext?null:(Ts??=await navigator.serviceWorker.register(_s,{scope:`/`}).catch(e=>(console.warn(`service worker registration failed`,e),null)),Ts)}var Ds=(e,t)=>{let n=e?new Uint8Array(e):null;return n?.length===t.length&&n.every((e,n)=>e===t[n])};async function Os(e){let{publicKey:t}=await ae(`/api/push`,`Could not read this instance's push key`),n=ws(t),r=await e.pushManager.getSubscription();if(r){if(Ds(r.options.applicationServerKey,n))return r;await r.unsubscribe()}return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:n})}async function ks(e){return m(`/api/push/subscribe`,{...e.toJSON(),label:Cs()})}async function As(){Ns();let e=await Es();if(!(!e||localStorage.getItem(gs)!==`on`)&&!(!(`Notification`in window)||Notification.permission!==`granted`))try{await ks(await Os(e))}catch(e){console.warn(`re-registering this browser for notifications failed`,e)}}var js=null,Ms=null;function Ns(){window.addEventListener(`beforeinstallprompt`,e=>{e.preventDefault(),js=e,Ms?.()}),window.addEventListener(`appinstalled`,()=>{js=null,Ms?.()})}function Ps(e){let t=navigator;(e>0?t.setAppBadge?.(e):t.clearAppBadge?.())?.catch(()=>{})}function Fs(){let e=z(`span`,`text-[11.5px]`,``),t=fr(`Send a test notification`),n=z(`div`,`flex items-center gap-3`,t,e),r=z(`div`,`flex flex-col gap-4`),i=()=>localStorage.getItem(gs)===`on`;async function a(){Tr(e,`saving`,`asking this browser…`);let t=await Notification.requestPermission();if(t!==`granted`)return localStorage.setItem(gs,`off`),c(),Tr(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 Es();if(!n)return Tr(e,`failed`,`This browser refused to register a service worker.`);try{let t=await ks(await Os(n));if(!t.ok)return Tr(e,`failed`,await h(t,`Could not register this browser`));localStorage.setItem(gs,`on`),c(),Tr(e,`saved`,`This browser will be notified when a turn finishes unseen.`)}catch(t){Tr(e,`failed`,`Could not subscribe: ${String(t)}`)}}async function o(){localStorage.setItem(gs,`off`),c();let t=await(await Es())?.pushManager.getSubscription();t&&(await m(`/api/push/unsubscribe`,{endpoint:t.endpoint}),await t.unsubscribe()),Tr(e,`idle`,`This browser will not be notified.`)}t.onclick=()=>{Tr(e,`saving`,`sending…`),(async()=>{let t=await m(`/api/push/test`,{});if(!t.ok)return Tr(e,`failed`,await h(t,`Could not send`));let{sent:n,failed:r}=await t.json();Tr(e,r?`failed`:`saved`,`Handed ${String(n)} device(s) to their push service${r?`, ${String(r)} refused`:``}.`)})()};function s(){if(!js)return[];let e=fr(`Install Pier`,!0);return e.onclick=()=>{let e=js;e&&e.prompt().then(()=>e.userChoice).finally(()=>{js=null,c()})},[z(`div`,`flex items-center gap-3`,e,z(`span`,`text-[11.5px] leading-snug text-neutral-500`,`Its own window and icon — and where notifications look like an app's.`))]}function c(){let e=bs();if(e){r.replaceChildren(...s(),z(`p`,`text-[12.5px] leading-snug text-neutral-500`,e));return}let c=i()&&Notification.permission===`granted`;t.disabled=!c,r.replaceChildren(...s(),Cr(`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.`,c,e=>void(e?a():o())),n)}return Ms=c,c(),gr(`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.`,r)}var K=null;function Is(e){K&&!K.contains(e.target)&&q()}function Ls(e){e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),q())}function Rs(e){K&&!K.contains(e.target)&&q()}function q(){K&&=(document.removeEventListener(`pointerdown`,Is,!0),document.removeEventListener(`keydown`,Ls,!0),window.removeEventListener(`scroll`,Rs,!0),window.removeEventListener(`resize`,q),K.remove(),null)}var zs=null;function Bs(e){let t=e.getBoundingClientRect(),n={top:t.bottom+4,left:t.left};return t.width||t.height?n:zs?.anchor===e?{top:zs.top,left:zs.left}:n}var Vs=()=>window.innerWidth<640;function Hs(e,t){q();let n=Vs();if(K=z(`div`,`fixed z-50 rounded-lg border border-neutral-200 bg-white py-1 shadow-lg ${n?`inset-x-2 bottom-2 max-h-[70dvh] overflow-y-auto pb-[calc(0.25rem+env(safe-area-inset-bottom))] text-[16px]`:`min-w-52 max-w-[min(42rem,calc(100vw-1rem))] text-[13px]`}`),K.append(t),(e.closest(`dialog[open]`)??document.body).append(K),!n){let t=Bs(e);zs={anchor:e,...t},K.style.top=`${Math.max(8,Math.min(t.top,window.innerHeight-K.offsetHeight-8))}px`,K.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-K.offsetWidth-8))}px`}document.addEventListener(`pointerdown`,Is,!0),document.addEventListener(`keydown`,Ls,!0),window.addEventListener(`scroll`,Rs,!0),window.addEventListener(`resize`,q)}function Us(e){let t=z(`button`,`flex w-full cursor-pointer items-center gap-2 px-3 text-left hover:bg-neutral-100 active:bg-neutral-100 ${Vs()?`py-3`:`py-1.5`}`,z(`span`,`flex-none w-3 text-indigo-600`,e.checked?`✓`:``),z(`span`,`truncate`,e.label));return e.hint&&t.append(z(`span`,`ml-auto flex-none text-[11.5px] text-neutral-400`,e.hint)),t.onclick=()=>e.onSelect(),t}function Ws(e,t){Hs(e,z(`div`,``,...t.map(Us)))}var Gs=e=>`${e.provider}/${e.id}`,Ks=`pier.modelFavorites`,qs=e=>`${Gs(e)}@${e.thinking}`,Js=null;async function Ys(){let{modelMenu:e}=await ae(`/api/settings`,`Could not read the pinned model menu`);return e}function Xs(){try{let e=JSON.parse(localStorage.getItem(Ks)??`[]`);return Array.isArray(e)?e.filter(e=>{let t=e;return!!t&&typeof t==`object`&&typeof t.provider==`string`&&typeof t.id==`string`&&typeof t.thinking==`string`}):[]}catch{return[]}}function Zs(e){let t=z(`button`,`flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-1.5 text-left`,z(`span`,`w-3 flex-none text-indigo-600`,e.checked?`✓`:``),z(`span`,`truncate`,e.label));e.hint&&t.append(z(`span`,`ml-auto flex-none text-[11.5px] text-neutral-400`,e.hint)),e.title&&(t.title=e.title),t.onclick=()=>e.onSelect();let n=z(`button`,`flex-none cursor-pointer px-2 py-1.5 leading-none ${e.starred?`text-amber-500`:`text-neutral-300 opacity-0 hover:text-amber-500 group-hover/row:opacity-100`}`,e.starred?`★`:`☆`);return n.title=e.starred?`Unstar`:`Star this model + reasoning`,n.onclick=t=>{t.stopPropagation(),e.onStar()},z(`div`,`group/row flex w-full items-center hover:bg-neutral-100`,t,n)}function Qs({models:e,current:t,thinkingLevel:n,thinkingLevels:i,onPick:a,onThinkingPick:o}){let s=Xs(),c=n,l=z(`div`,`flex w-72 flex-col`),u=z(`div`,`flex flex-col gap-2 border-b border-neutral-200 px-2 py-2`),d=document.createElement(`input`);if(d.type=`search`,d.placeholder=`Search models`,d.setAttribute(`aria-label`,`Search models`),d.className=`w-full rounded-md border border-neutral-300 px-2 py-1.5 text-[12.5px] focus:border-indigo-400 focus:outline-none`,u.append(d),i.length){let e=z(`label`,`flex items-center gap-2 px-1 text-[12px] text-neutral-500`),t=document.createElement(`select`);t.className=`select ml-auto rounded-md border border-neutral-300 px-2 py-1 text-[12px] text-neutral-700 focus:border-indigo-400 focus:outline-none`,t.setAttribute(`aria-label`,`Reasoning level`);for(let e of i){let n=document.createElement(`option`);n.value=e,n.textContent=r(e),t.append(n)}t.value=n,t.onchange=()=>{c=t.value,re(d.value),o(c)},e.append(z(`span`,`font-medium`,`Reasoning`),t),u.append(e)}let ee=e=>{let t=qs(e);s=s.some(e=>qs(e)===t)?s.filter(e=>qs(e)!==t):[...s,e],localStorage.setItem(Ks,JSON.stringify(s)),re(d.value)},f=(e,t)=>s.some(n=>qs(n)===`${Gs(e)}@${t}`),p=z(`div`,`max-h-72 overflow-y-auto py-1`),te=new Map(e.map(e=>[Gs(e),e])),ne=(e,n,i)=>{let o=n.map(e=>({e,model:te.get(Gs(e))})).filter(e=>!!e.model&&(!i||Gs(e.model).toLowerCase().includes(i)));o.length&&p.append(z(`div`,`px-3 pb-0.5 pt-1 text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400`,e),...o.map(({e,model:n})=>{let i=e.thinking??c;return Zs({label:n.id,hint:e.thinking?r(e.thinking):void 0,title:e.note,checked:!!t&&Gs(t)===Gs(n)&&c===i,starred:f(n,i),onSelect:()=>a(n,e.thinking),onStar:()=>ee({provider:n.provider,id:n.id,thinking:i})})}),z(`div`,`my-1 border-t border-neutral-100`))},re=n=>{p.replaceChildren();let r=n.trim().toLowerCase();ne(`Pinned`,Js??[],r),ne(`Starred`,s,r);let i=new Map;for(let t of e){if(r&&!Gs(t).toLowerCase().includes(r))continue;let e=i.get(t.provider);e?e.push(t):i.set(t.provider,[t])}if(!i.size){p.append(z(`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 i){let i=n.some(e=>!!t&&Gs(t)===Gs(e)),o=document.createElement(`details`);o.open=i||r.length>0;let s=z(`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`,z(`span`,`chev`,`▶`),z(`span`,`truncate`,e),z(`span`,`ml-auto flex-none normal-case text-neutral-300`,String(n.length)));o.append(s,...n.map(e=>Zs({label:e.id,checked:!!t&&Gs(t)===Gs(e),starred:f(e,c),onSelect:()=>a(e),onStar:()=>ee({provider:e.provider,id:e.id,thinking:c})}))),p.append(o)}};return d.oninput=()=>re(d.value),re(``),Ys().then(e=>{let t=JSON.stringify(e)!==JSON.stringify(Js);Js=e,t&&re(d.value)}).catch(e=>po(`model menu unavailable`,e)),l.append(u,p),queueMicrotask(()=>d.focus()),l}function $s(e,t,n,i){let a=pr(t.model?`${t.model.id}${t.thinking?` · ${r(t.thinking)}`:``}`:t.thinking?`Pi default · ${r(t.thinking)}`:`Pi default`,`${vr} flex cursor-pointer items-center gap-1.5 truncate text-left hover:bg-neutral-50 ${t.model?`text-neutral-700`:`text-neutral-400`}`);return a.title=t.model?`${t.model.provider}/${t.model.id}`:`Whatever the project and Pi pick`,a.onclick=()=>{let e=Qs({models:n,current:t.model,thinkingLevel:t.thinking??`medium`,thinkingLevels:[...wi],onPick:(e,n)=>{q(),i({model:e,thinking:n??t.thinking})},onThinkingPick:e=>i({...t,thinking:e})}),r=pr(`Pi default`,`w-full cursor-pointer px-3 py-1.5 text-left text-[12.5px] text-neutral-500 hover:bg-neutral-100`);r.onclick=()=>{q(),i({model:null,thinking:null})};let o=z(`div`,`flex flex-col`);o.append(e,z(`div`,`border-t border-neutral-200`),r),Hs(a,o)},_r(e,a)}var ec=async e=>{let t=await ie(`/api/fs/ls${e?.startsWith(`/`)?`?path=${encodeURIComponent(e)}`:``}`,`Could not list directories`);return t.ok?t.value:null},tc=e=>e.entries.filter(e=>e.dir&&!e.name.startsWith(`.`)).map(e=>e.name),nc=(e,t,n)=>{let r=pr(e,`flex w-full cursor-pointer items-center gap-1.5 px-3 py-1 text-left ${t}`);return r.onclick=n,r};function rc(e,t){let n=z(`div`,`flex-none border-t border-neutral-200`),r=nc(`+ New folder`,`text-[12px] text-neutral-500 hover:bg-neutral-100`,()=>{let r=document.createElement(`input`);r.className=`w-full border-0 bg-transparent px-3 py-1 font-mono text-[12.5px] focus:outline-none`,r.placeholder=`folder-name`;let i=z(`p`,`hidden px-3 pb-1 text-[11.5px] text-red-600`);r.onkeydown=async n=>{if(n.key!==`Enter`)return;n.preventDefault();let a=await m(`/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 n.append(r),n}function ic(e,t,n){let r=e=>{n(e),q()};async function i(t){let n=await ec(t);if(!n)return;let a=z(`div`,`flex max-h-80 w-80 flex-col`),o=pr(`Use`,`ml-auto flex-none cursor-pointer rounded bg-indigo-600 px-2 py-0.5 text-[11.5px] text-white dark:text-neutral-50`);o.onclick=()=>r(n.path);let s=document.createElement(`input`);s.className=`min-w-0 flex-1 border-0 bg-transparent font-mono text-[11.5px] text-neutral-500 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=z(`p`,`hidden flex-none px-3 pb-1 text-[11.5px] 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 ec(t);if(!n){c.textContent=`${t} is not a folder this can read`,c.classList.remove(`hidden`);return}r(n.path)};let l=z(`div`,`flex flex-none items-center gap-2 border-b border-neutral-200 px-3 py-1.5`,s,o),u=z(`div`,`min-h-0 flex-1 overflow-y-auto py-0.5 text-[12.5px]`);n.parent&&u.append(nc(`../`,`font-mono text-neutral-500 hover:bg-neutral-100`,()=>void i(n.parent)));let d=tc(n);for(let e of d)u.append(nc(e,`truncate hover:bg-neutral-100`,()=>void i(`${n.path}/${e}`.replace(`//`,`/`))));d.length||u.append(z(`p`,`px-3 py-1.5 text-[12px] text-neutral-400`,`No sub-folders.`)),a.append(l,c,u,rc(n.path,e=>void i(e))),Hs(e,a)}i(t)}function ac(e,t,n,r){Ws(e,[...t.map(e=>({label:e.path,...e.hint?{hint:e.hint}:{},checked:e.path===n,onSelect:()=>{q(),r(e.path)}})),{label:`Browse…`,onSelect:()=>ic(e,n||void 0,r)}])}var oc=(e,t)=>n=>{e.value=n,e.dispatchEvent(new Event(`input`,{bubbles:!0})),t?.(n)};function sc(e,t){let n=pr(`Browse…`,`flex-none cursor-pointer rounded-md border border-neutral-300 px-2 py-1 text-[12px] text-neutral-600 hover:bg-neutral-100`);return n.onclick=()=>ic(n,e.value.trim()||void 0,oc(e,t)),n}function cc(e,t){let n=oc(e);e.classList.add(`select`),e.title=`Pick a project folder, or type a path`,e.onclick=()=>{let r=e.value.trim()||void 0,i=t();if(i.length)return ac(e,i,r,n);ic(e,r,n)},e.addEventListener(`input`,()=>q())}function lc(e,t,n){let r=document.createElement(`input`);return r.className=`min-w-0 flex-1 rounded-md border border-neutral-300 bg-white px-2 py-1 font-mono text-[12.5px] focus:border-indigo-400 focus:outline-none`,r.value=e,r.placeholder=t,r.oninput=()=>n(r.value),{el:z(`div`,`flex items-center gap-1.5`,r,sc(r,n)),input:r}}var uc=R(`#sidebar`),dc=R(`#drawer-scrim`),fc=R(`#mobile-title`),pc=R(`#mobile-menu`);function mc(){delete uc.dataset.open,dc.classList.add(`hidden`)}function hc(e,t){fc.textContent=e,fc.classList.toggle(`cursor-pointer`,t),pc.classList.toggle(`hidden`,!t)}var gc=`pier.railClosed`;localStorage.getItem(gc)===`1`&&(document.body.dataset.rail=`closed`);function _c(e){document.body.dataset.rail=e?`closed`:``,localStorage.setItem(gc,e?`1`:`0`)}function vc(){if(uc.dataset.open!==void 0)return mc();uc.dataset.open=``,dc.classList.remove(`hidden`)}var yc=()=>window.innerWidth<768,bc=[R(`#rail-toggle`),R(`#drawer-toggle`)],xc=`attention absolute -right-0.5 -top-0.5 rounded-full bg-amber-500`,Sc=e=>e===1?z(`span`,`${xc} h-2 w-2`):z(`span`,`${xc} flex h-3.5 min-w-3.5 items-center justify-center px-0.5 text-[9px] font-semibold text-white`,e>9?`9+`:String(e));function Cc(e){for(let t of bc)t.querySelector(`.attention`)?.remove(),e&&t.append(Sc(e))}var wc=20,Tc=.35,Ec=8;function Dc(){let e=-1,t=0,n=!1,r=!1,i=1,a=e=>{uc.style.transition=`none`,uc.style.transform=`translateX(${String(e-i)}px)`,dc.classList.remove(`hidden`),dc.style.opacity=String(e/i)},o=t=>{uc.style.transition=``,uc.style.transform=``,dc.style.opacity=``,t?(uc.dataset.open=``,dc.classList.remove(`hidden`)):mc(),e=-1,r=!1};window.addEventListener(`touchstart`,a=>{if(r||(e=-1,!yc()||a.touches.length!==1))return;let o=a.touches[0],s=uc.dataset.open!==void 0;if(i=uc.offsetWidth||1,s){if(o.clientX>i)return}else{if(o.clientX>wc||a.target?.closest(`button, a, input, textarea, select`))return;a.preventDefault()}e=o.clientX,t=o.clientY,n=!s},{passive:!1}),window.addEventListener(`touchmove`,o=>{if(e<0)return;let s=o.touches[0],c=s.clientX-e;if(!r){if(Math.abs(s.clientY-t)>Math.abs(c))return void(e=-1);if(Math.abs(c)<Ec)return;r=!0}o.preventDefault(),a(Math.max(0,Math.min(i,n?c:i+c)))},{passive:!1});let s=()=>{if(e<0)return;if(!r)return void(e=-1);let t=uc.getBoundingClientRect().right;o(n?t>i*Tc:t>i*.65)};window.addEventListener(`touchend`,s),window.addEventListener(`touchcancel`,s)}function Oc(e){Dc(),R(`#drawer-toggle`).onclick=vc,dc.onclick=mc,pc.onclick=()=>e.sessionMenu(pc),fc.onclick=()=>{pc.classList.contains(`hidden`)||e.sessionInfo(fc)};let t=R(`#rail-toggle`);t.onclick=()=>_c(document.body.dataset.rail!==`closed`),Eo(t,`meta+b`,`Toggle sidebar`,()=>yc()?vc():_c(document.body.dataset.rail!==`closed`))}var J,kc=R(`#project-tree`),Ac=R(`#archive-dialog`),jc=R(`#archive-list`),Mc=R(`#archive-search`),Nc=R(`#archive-count`),Pc=R(`#new-dialog`),Fc=`pier.collapsedProjects`,Ic=new Set(Lc());function Lc(){try{let e=JSON.parse(localStorage.getItem(Fc)??`[]`);return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}catch{return[]}}function Rc(e,t){t?Ic.add(e):Ic.delete(e),localStorage.setItem(Fc,JSON.stringify([...Ic]))}function zc(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i?i.push(r):n.set(e,[r])}return n}var Bc=e=>zc(e,e=>e.cwd),Vc=e=>e.repo??e.cwd,Hc=e=>e.endsWith(`/.git`)?e.slice(0,-5):void 0,Uc=(e,t)=>tr(Hc(e)??t[0]?.cwd??e);function Wc(e,t){let n=Hc(e),r=[...new Set(t.map(e=>e.cwd))];return n&&r.includes(n)?[n,...r.filter(e=>e!==n)]:r}function Gc(e,t){return e===t?0:e===void 0?-1:t===void 0?1:e-t}function Kc(e){let t=[...zc(e,Vc)].map(([e,t])=>[e,[...t].sort((e,t)=>(e.branch??e.cwd).localeCompare(t.branch??t.cwd)||Gc(e.sort,t.sort)||t.createdAt-e.createdAt)]),n=e=>{let t=e.map(e=>e.projectSort).filter(e=>e!==void 0);return t.length?Math.min(...t):void 0},r=e=>Math.min(...e.map(e=>e.createdAt));return t.sort(([,e],[,t])=>Gc(n(e),n(t))||r(t)-r(e))}function qc(e,t,n,r){let i=e.filter(e=>e!==t);return i.splice(i.indexOf(n)+ +!!r,0,t),i}var Jc=()=>Kc(J.sessions().filter(e=>e.listed)),Yc=()=>Jc().flatMap(([e,t])=>Wc(e,t).map(e=>{let n=t.find(t=>t.cwd===e)?.branch;return{path:e,...n?{hint:n}:{}}}));function Xc(e,t,n,r){let i=new Map(e.map((e,t)=>[e,t]));for(let e of J.sessions()){let r=i.get(t(e));r!==void 0&&n(e,r)}gl();let a=()=>void J.loadSessions();m(`/api/projects/order`,r).then(e=>{e.ok||a()},a)}function Zc(e,t,n,r){let i=Jc().find(([t])=>t===e);if(!i)return;let a=qc(i[1].map(e=>e.id),t,n,r);Xc(a,e=>e.id,(e,t)=>e.sort=t,{sessions:a})}function Qc(e,t,n){let r=Jc(),i=qc(r.map(([e])=>e),e,t,n);Xc(i,Vc,(e,t)=>e.projectSort=t,{projects:i.flatMap(e=>{let t=r.find(([t])=>t===e);return t?Wc(e,t[1]):[]})})}var $c=null;function el(e,t){e.style.boxShadow=t===null?``:`inset 0 ${t?-2:2}px 0 0 #818cf8`}function tl(e,t,n,r){e.draggable=!0,e.ondragstart=e=>{e.stopPropagation(),$c={list:t,key:n},e.dataTransfer?.setData(`text/plain`,n)},e.ondragend=()=>{$c=null,gl(!0)};let i=t=>{let n=e.getBoundingClientRect();return t.clientY>n.top+n.height/2},a=e=>!$c||$c.list!==t||$c.key===n?!1:(e.preventDefault(),e.stopPropagation(),!0);e.ondragover=t=>{a(t)&&el(e,i(t))},e.ondragleave=()=>el(e,null),e.ondrop=t=>{let n=$c?.key;el(e,null),a(t)&&n&&r(n,i(t))}}var nl=`hidden flex-none rounded px-1 leading-none text-neutral-400 hover:bg-neutral-200 hover:text-neutral-700 group-hover:block pointer-coarse:block`,rl=e=>e.unread&&e.listed;function il(e){let[t,n]=e.state===`streaming`?[`bg-green-500 animate-pulse`,`working…`]:rl(e)?[`bg-amber-500`,`turn finished — not viewed yet`]:e.activeRuns>0?[`bg-sky-500`,`${e.activeRuns} subagent${e.activeRuns>1?`s`:``} running`]:[`bg-neutral-300`,`idle`],r=z(`span`,`h-2 w-2 flex-none rounded-full ${t}`);return r.title=n,r}async function al(e,t,n,r,i){let a=t=>{e(t),gl(),J.onPinsChanged()};a(t),(await m(r,i)).ok||a(n)}async function ol(e){let t=window.prompt(`Session name — empty resets it to the first message`,e.title??``);t!==null&&await al(t=>e.title=t,t.trim()||void 0,e.title,`/api/sessions/${e.id}/rename`,{name:t})}var sl=(e,t)=>al(t=>e.listed=t,t,!t,`/api/sessions/${e.id}/pin`,{pinned:t}),cl=(e,t)=>e.find(e=>e.cwd===t)?.branch??tr(t),ll=`flex-none truncate rounded bg-neutral-200/70 px-1 font-mono text-[10px] leading-[15px] text-neutral-500`,ul={telegram:`tg`};function dl(e){if(!e.channel||e.channel===`web`)return[];let t=z(`span`,ll,ul[e.channel]??e.channel);return t.title=`answering ${e.channel}`,[t]}function fl(e){let t=z(`li`,`group flex cursor-pointer items-center gap-1.5 py-1.5 pl-6 pr-3 hover:bg-neutral-100 ${e.id===J.currentId()?`bg-indigo-50 hover:bg-indigo-50`:``}`),n=z(`button`,nl,`⋯`);n.title=`Session actions`,n.onclick=t=>{t.stopPropagation(),J.sessionMenu(n,e)};let r=z(`button`,nl,`✓`);r.title=`Done — remove from Projects (the session and its transcript stay)`,r.onclick=t=>{t.stopPropagation(),sl(e,!1)},t.append(il(e),z(`span`,`truncate`,e.title??`untitled`),z(`div`,`ml-auto flex flex-none items-center gap-1`,...dl(e),r,n)),t.onclick=()=>J.select(e.id),t.title=`Drag to reorder`;let i=Vc(e);return tl(t,i,e.id,(t,n)=>Zc(i,t,e.id,n)),t}function pl(e,t){let n=Wc(e,t),r=n[0]??e,i=z(`span`,`flex-none text-[11px] text-neutral-400 group-hover:hidden`,String(t.length)),a=z(`button`,nl,`⋯`);a.title=`Project actions`,a.onclick=e=>{e.preventDefault(),e.stopPropagation(),Ws(a,[...n.map(e=>({label:n.length>1?`New session in ${cl(t,e)}`:`New session here`,hint:tr(e),onSelect:()=>{q(),J.createSession(e)}})),{label:`Browse files`,onSelect:()=>{q(),J.openFiles(r)}},{label:`Terminal here`,onSelect:()=>{q(),J.openTerminal(r)}},{label:`Remove ${t.length} session${t.length>1?`s`:``} from Projects`,onSelect:()=>{q();for(let e of t)sl(e,!1)}}])};let{el:o,summary:s}=ur(`border-b border-neutral-200/70`,[z(`span`,`truncate font-mono text-[11px] font-semibold uppercase tracking-wide text-neutral-500`,Uc(e,t)),z(`div`,`ml-auto flex flex-none items-center gap-1.5`,i,a)]);s.className+=` group px-3 py-1.5 hover:bg-neutral-100`,s.title=`${n.join(`
79
+ `)}\nDrag to reorder`,tl(s,``,e,(t,n)=>Qc(t,e,n)),o.open=!Ic.has(e),o.ontoggle=()=>Rc(e,!o.open);let c=z(`ul`,`pb-1`);return c.append(...t.map(fl)),o.append(c),o}var ml=()=>`${J.currentId()??``}\n${JSON.stringify(J.sessions())}`,hl=``;function gl(e=!1){let t=ml();if(t===hl&&!e)return;hl=t;let n=J.sessions().filter(rl);Cc(n.length),Ps(n.filter(e=>e.channel===`web`).length);let r=Jc();kc.replaceChildren(...r.length?r.map(([e,t])=>pl(e,t)):[z(`p`,`px-3 py-2 text-[12.5px] leading-snug text-neutral-400`,`No projects yet — create a session, or pin one from All sessions.`)]),Ac.open&&El()}var _l=[{name:`tasks`,label:`Tasks`,detail:`Console — task definitions and schedules`},{name:`runs`,label:`Runs`,detail:`Console — executions, subagents, decisions and callbacks`},{name:`activity`,label:`Activity`,detail:`Console — sessions and relationships`},{name:`boards`,label:`Boards`,detail:`Console — the static pages Pier publishes`},{name:`settings`,label:`Settings`,detail:`Console — models and providers, agent files and extensions, channels, password, sign out, security`}],vl=[],yl=0,bl={ArrowDown:1,ArrowUp:-1},xl={n:1,j:1,p:-1,k:-1};function Sl(e){if(vl.length){yl=(e+vl.length)%vl.length;for(let[e,{el:t}]of vl.entries())t.classList.toggle(`bg-indigo-100`,e===yl),t.classList.toggle(`border-indigo-500`,e===yl);vl[yl]?.el.scrollIntoView({block:`nearest`})}}function Cl(e){let t=z(`button`,`flex-none rounded px-1.5 py-0.5 text-[11.5px] ${e.listed?`bg-indigo-50 text-indigo-600`:`text-neutral-400 hover:bg-neutral-200 hover:text-neutral-700`}`,e.listed?`pinned`:`pin`);return t.title=e.listed?`Remove from Projects`:`Pin to Projects`,t.onclick=t=>{t.stopPropagation(),sl(e,!e.listed)},t}function wl(e){let t=z(`li`,`flex cursor-pointer items-center gap-2 border-l-2 border-transparent px-3 py-1.5 hover:bg-neutral-100`);return t.append(e.session?il(e.session):z(`span`,`h-2 w-2 flex-none`)),t.append(z(`span`,`min-w-0 flex-1 truncate`,e.label),z(`span`,`max-w-[45%] flex-none truncate text-[11.5px] text-neutral-400`,e.detail)),e.session&&t.append(z(`span`,`flex-none text-[11px] text-neutral-400`,$n(e.session.createdAt)),Cl(e.session)),t.onclick=e.open,t}var Tl=e=>z(`li`,`px-3 pb-0.5 pt-2 text-[11px] font-semibold uppercase tracking-wide text-neutral-400`,e);function El(){let e=Mc.value.trim().toLowerCase(),t=t=>!e||t.toLowerCase().includes(e),n=e=>()=>{Ac.close(),e()},r=e=>e.channel&&e.channel!==`web`?e.channel:``,i=J.sessions().filter(e=>t(`${e.title??``} ${e.cwd} ${r(e)}`)),a=(e,t)=>t.createdAt-e.createdAt,o=e=>({label:e.title??nr(e.cwd),detail:[tr(e.cwd),r(e)].filter(Boolean).join(` · `),open:n(()=>J.select(e.id)),session:e}),s=i.filter(e=>e.state===`streaming`),c=i.filter(e=>e.state!==`streaming`),l=[`Console`,_l.filter(e=>t(`${e.label} ${e.detail}`)).map(({name:e,label:t,detail:r})=>({label:t,detail:r,open:n(()=>J.openConsole(e))}))],u=[[`Running`,s.sort(a).map(o)],[`Projects`,c.filter(e=>e.listed).sort(a).map(o)],[`Other sessions`,c.filter(e=>!e.listed).sort(a).map(o)]];e?u.unshift(l):u.push(l),vl=[];let d=[];for(let[e,t]of u)if(t.length){d.push(Tl(e));for(let e of t){let t=wl(e);vl.push({el:t,open:e.open}),d.push(t)}}jc.replaceChildren(...d.length?d:[z(`li`,`px-3 py-3 text-[13px] text-neutral-400`,`Nothing matches.`)]),Nc.textContent=String(vl.length),Sl(yl)}function Dl(){if(Ac.open)return Ac.close();Mc.value=``,yl=0,El(),Ac.showModal(),Mc.focus(),J.loadSessions().then(()=>{Ac.open&&El()})}function Ol(e){J=e,cc(R(`#new-cwd`),Yc);let t=R(`#new-session`),n=()=>{let e=J.sessions().find(e=>e.id===J.currentId())?.cwd??``,t=R(`#new-cwd`);t.value=e,Pc.showModal(),t.select()};t.onclick=n,Eo(t,`shift+o`,`New session`,n,()=>Pc.open),R(`#new-cancel`).onclick=()=>Pc.close(),R(`#new-form`).onsubmit=()=>void J.createSession(R(`#new-cwd`).value.trim());let r=R(`#open-archive`);r.onclick=Dl,Eo(r,`k`,`Search sessions and Console`,Dl,()=>Ac.open),R(`#archive-close`).onclick=()=>Ac.close(),Mc.oninput=()=>{yl=0,El()},Mc.onkeydown=e=>{let t=e.altKey||e.metaKey||e.shiftKey||!e.key?void 0:e.ctrlKey?xl[e.key.toLowerCase()]:bl[e.key];if(t!==void 0){e.preventDefault(),Sl(yl+t);return}e.key===`Enter`&&!e.ctrlKey&&(e.preventDefault(),vl[yl]?.open())}}var Y;function kl(e){Y=e,Ao(jl,()=>{let e=Y.currentSession();e&&(q(),sl(e,!e.listed))},Al),Ao(Ml,()=>{Y.currentSession()&&(q(),Y.toggleFiles())},Al)}var Al=()=>document.querySelector(`dialog[open]`)!==null,jl=`d`,Ml=`i`,Nl=R(`#chat-title`),Pl=R(`#chat-menu`),Fl=R(`#session-meta`),Il=null,Ll=null,Rl=null,zl=null;function Bl(){Il=null,Ll=null,Rl=null,zl=null,Jl()}function Vl(e,t,n,r){Il=e,Ll=t,Rl=n,zl=r,Gl()}function Hl(e){zl=e.completedAt,Ll&&={...Ll,tokens:e.tokens},Jl()}var Ul=null;function Wl(e){Ul=e===null?null:nr(e),Gl()}function Gl(){let e=Y.currentSession();e&&(Ul=null),Nl.textContent=e?e.title??nr(e.cwd):Ul??`no session`,Nl.classList.toggle(`cursor-pointer`,!!e),Nl.title=e?`Session info`:``,Nl.onclick=e?()=>Yl(Nl,e):null,Pl.classList.toggle(`hidden`,!e),e&&(Pl.onclick=()=>tu(Pl,e)),Jl(),Y.syncBar()}var Kl=(e,t)=>Math.min(100,Math.round(e/t.contextWindow*100)),ql=e=>e.tokens===null?`?/${i(e.contextWindow)}`:`${i(e.tokens)}/${i(e.contextWindow)} · ${100-Kl(e.tokens,e)}% left`;function Jl(){let e=Ll,t=e?.tokens??null,n=Y.currentId(),r=[];if(!n&&Ul&&r.push(z(`span`,`flex flex-none items-center gap-1.5 text-neutral-500`,z(`span`,`spinner`),`starting…`)),n){let e=(e,t)=>{let r=z(`button`,`flex-none cursor-pointer font-mono ${t}`,e);return r.title=`Change model or reasoning`,r.onclick=()=>void Xl(r,n),r};Il&&r.push(e(Il.id,`rounded bg-indigo-50 px-1.5 py-px font-medium text-indigo-700 hover:bg-indigo-100`)),Rl&&r.push(e(Rl,`text-neutral-500 hover:text-indigo-700`))}if(e&&t!==null){let n=Kl(t,e),a=n>=90?`text-red-700`:n>=70?`text-amber-700`:`text-neutral-500`;r.push(z(`span`,`flex-none font-mono ${a}`,i(t).toLowerCase()))}let a=r.flatMap((e,t)=>t===0?[e]:[z(`span`,`text-neutral-300`,`·`),e]);Fl.replaceChildren(...a),Fl.classList.toggle(`hidden`,r.length===0),Fl.classList.toggle(`flex`,r.length>0)}function Yl(e,t){let n=[[`Title`,t.title??`untitled`],[`Directory`,t.cwd],[`Session`,t.id]],r=t.id===Y.currentId();if(r&&(n.push([`Model`,Il?.id??`—`]),n.push([`Reasoning`,Rl??`—`]),n.push([`Context`,Ll?ql(Ll):`—`])),n.push([`Created`,rr(t.createdAt),er(t.createdAt)]),r){let e=zl;n.push(e===null?[`Last reply`,`—`]:[`Last reply`,rr(e),er(e)])}let i=z(`div`,`flex max-w-80 flex-col gap-1.5 px-3 py-2`);for(let[e,t,r]of n){let n=z(`div`,`flex items-center gap-1.5`,z(`span`,`text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400`,e),lr(`cursor-pointer text-[10.5px] uppercase tracking-wide text-neutral-400 opacity-0 hover:text-neutral-700 focus:opacity-100 group-hover:opacity-100 pointer-coarse:opacity-100`,()=>t)),a=z(`span`,`break-all font-mono text-[12px] text-neutral-700`,t);r&&a.append(z(`span`,`ml-1.5 font-sans text-[11px] text-neutral-400`,r)),i.append(z(`div`,`group flex flex-col`,n,a))}Hs(e,i)}async function Xl(e,t){try{let[n,r]=await Promise.all([ae(`/api/sessions/${t}/models`,`Could not load models`),ae(`/api/sessions/${t}/thinking`,`Could not read the reasoning level`)]);Hs(e,Qs({models:n,current:t===Y.currentId()?Il:null,thinkingLevel:r.level,thinkingLevels:r.levels,onPick:(e,n)=>{q(),Zl(t,e,n)},onThinkingPick:e=>void $l(t,e)}))}catch(e){H(`error`,`model options failed: ${String(e)}`)}}async function Zl(e,t,n){await Ql(e,t)&&n&&await $l(e,n)}async function Ql(e,t){let n=Il;e===Y.currentId()&&(Il=t,Gl());let r=await m(`/api/sessions/${e}/model`,t);if(!r.ok){let{error:t}=await r.json().catch(()=>({}));return e===Y.currentId()&&(Il=n,Gl()),H(`error`,`model change failed: ${t??r.status}`),!1}let{model:i}=await r.json();return e===Y.currentId()&&i&&(Il=i,Gl()),!0}async function $l(e,t){let n=await m(`/api/sessions/${e}/thinking`,{level:t});if(!n.ok){H(`error`,`reasoning change failed: ${n.status}`);return}let{level:r}=await n.json();e===Y.currentId()&&(Rl=r,Jl())}async function eu(e){let t=await m(`/api/sessions/${e}/compact`,{});t.ok||H(`error`,`compact failed: ${await h(t,`no reason given`)}`)}function tu(e,t){let n=t.id===Y.currentId();Ws(e,[{label:`Session info`,onSelect:()=>Yl(e,t)},{label:`Rename…`,onSelect:()=>{q(),ol(t)}},{label:t.listed?`Done — remove from Projects`:`Pin to Projects`,hint:n?Co(jl):``,onSelect:()=>{q(),sl(t,!t.listed)}},{label:`Model`,hint:n?Il?.id??`…`:``,onSelect:()=>void Xl(e,t.id)},{label:`Compact context`,onSelect:()=>{q(),eu(t.id)}},{label:`New session here`,hint:tr(t.cwd),onSelect:()=>{q(),Y.createSession(t.cwd)}},{label:`Browse files`,hint:n?Co(Ml):``,onSelect:()=>{q(),Y.openFiles(n?void 0:t.cwd)}}])}var nu=`pier.theme`,ru=[`system`,`light`,`dark`],iu=window.matchMedia(`(prefers-color-scheme: dark)`),au={system:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" class="h-3.5 w-3.5"><circle cx="8" cy="8" r="5.25"/><path d="M8 2.75a5.25 5.25 0 0 0 0 10.5z" fill="currentColor" stroke="none"/></svg>`,light:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="h-3.5 w-3.5"><circle cx="8" cy="8" r="3.1"/><path d="M8 1.5v1.4M8 13.1v1.4M1.5 8h1.4M13.1 8h1.4M3.4 3.4l1 1M11.6 11.6l1 1M12.6 3.4l-1 1M4.4 11.6l-1 1"/></svg>`,dark:`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" class="h-3.5 w-3.5"><path d="M13 9.4A5.6 5.6 0 0 1 6.6 3a5.6 5.6 0 1 0 6.4 6.4z"/></svg>`},ou=()=>{let e=null;try{e=localStorage.getItem(nu)}catch{return`system`}return e===`light`||e===`dark`?e:`system`},su=()=>{let e=ou();return e===`system`?iu.matches?`dark`:`light`:e};function cu(){let e=su();document.documentElement.dataset.theme=e,R(`meta[name="theme-color"]`).setAttribute(`content`,e===`dark`?`#1c1c1c`:`#fafafa`),window.dispatchEvent(new Event(`pier:theme`))}function lu(){let e=R(`#theme-toggle`),t=()=>{let t=ou();e.title=`Theme: ${t}${t===`system`?` (${su()})`:``}`,e.innerHTML=au[t],cu()};e.onclick=()=>{let e=ru[(ru.indexOf(ou())+1)%ru.length];try{e===`system`?localStorage.removeItem(nu):localStorage.setItem(nu,e)}catch{}t()},iu.addEventListener(`change`,t),t()}var uu=`https://github.com/timqi/pier`,du=[`text-neutral-400`,`hover:text-neutral-700`],fu=[`rounded-full`,`bg-emerald-50`,`px-1.5`,`text-emerald-700`,`ring-1`,`ring-inset`,`ring-emerald-600/20`,`hover:bg-emerald-100`],pu=18e5,mu=null,hu=R(`#version`);function gu(e){let t=mu?.available===!0&&mu.latest!==null;hu.textContent=`v${e}`,hu.title=t?`Pier ${mu?.latest} is out`:``,hu.classList.remove(...t?du:fu),hu.classList.add(...t?fu:du)}var _u=e=>z(`p`,`px-3 py-1 text-[12px] leading-snug text-neutral-500`,e);function vu(){let e=z(`div`,`flex w-72 flex-col gap-1 py-1`);if(!mu)return e.append(_u(`Checking the registry…`)),e;let{current:t,latest:n,available:r,canApply:i,problem:a}=mu;e.append(z(`p`,`px-3 py-1 text-[12.5px] font-medium text-neutral-700`,r?`Pier ${n} is out`:`Pier ${t}`)),e.append(_u(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.`));let o=z(`span`,`px-3 text-[11.5px] text-neutral-400`,``),s=z(`div`,`flex items-center gap-2 px-3 py-1.5`);if(a&&e.append(z(`p`,`mx-3 my-1 rounded-md bg-red-50 px-2 py-1.5 text-[11.5px] leading-snug text-red-700`,a)),r&&i&&!a){let e=fr(`Update now`,!0);e.onclick=()=>{e.disabled=!0,o.className=`px-3 text-[11.5px] text-neutral-400`,o.textContent=`starting the updater…`,(async()=>{let t=await m(`/api/update`,{});if(!t.ok){e.disabled=!1,o.className=`px-3 text-[11.5px] text-red-600`,o.textContent=await h(t,`Could not update`);return}let{draining:n}=await t.json();o.textContent=n?`Waiting for running work to finish — Pier then stops, installs and starts again.`:`Pier is stopping, installing and starting again — this page reconnects on its own.`})()},s.append(e)}let c=z(`a`,`btn text-[12.5px] no-underline`,`Source`);c.href=r?`${uu}/releases`:uu,c.target=`_blank`,c.rel=`noreferrer`,c.title=`Pier is free software (AGPL-3.0)`,s.append(c),e.append(s,o),r&&!i&&!a&&e.append(_u(`No service manager owns this Pier, so it cannot restart itself — update it with: pier update`));let l=Cr(`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.`,mu.autoUpdate,e=>{mu&&(mu.autoUpdate=e),(async()=>{let t=await m(`/api/settings`,{autoUpdate:e},`PUT`);if(t.ok)return;mu&&(mu.autoUpdate=!e);let n=l.querySelector(`input`);n&&(n.checked=!e),o.className=`px-3 text-[11.5px] text-red-600`,o.textContent=await h(t,`Could not save`)})()});if(!i){let e=l.querySelector(`input`);e&&(e.disabled=!0)}return e.append(z(`div`,`mt-1 border-t border-neutral-200 px-3 pb-1 pt-2`,l)),e}async function yu(e){let t=await ie(`/api/update`,`Update check failed`);t.ok&&(mu=t.value,gu(mu.current||e))}function bu(e){gu(e),hu.onclick=e=>{e.preventDefault(),Hs(hu,vu())};let t=()=>void yu(e).catch(()=>{});t(),setInterval(t,pu)}var X,xu=R(`#chat-header`),Su=R(`#chat-title`),Cu=[xu,V,R(`#composer`)],wu=()=>ju===null,Tu,Eu,Du,Ou=new Map,ku=new Map,Au=new Map,ju=null,Mu=0,Nu=[`files`,`terminal`],Pu=new Map,Fu={tasks:`Tasks`,runs:`Runs`,activity:`Activity`,boards:`Boards`,settings:`Settings`,files:`Files`,terminal:`Terminal`},Iu=e=>Tu?.refresh(e),Lu=()=>Eu?.refresh(),Ru=()=>Du?.refresh();function zu(){ju?hc(Fu[ju],!1):hc(Su.textContent??``,X.currentSession()!==void 0)}function Z(e,t,n){if(Nu.includes(e)){let t=$u();t&&(t.kind!==`console`||t.name!==e)&&Pu.set(e,t)}td({kind:`console`,name:e,arg:t,query:n}),mc(),ju=e;for(let e of Cu)e.classList.add(`hidden`);$o();for(let[t,n]of Ou)t!==e&&n.hide();for(let[t,n]of Au)n.classList.toggle(`bg-indigo-50`,t===e);zu(),Bu(e,t,n,++Mu)}async function Bu(e,t,n,r){let i=Ou.get(e);if(!i){let t=ku.get(e);if(!t){let n=R(`#${e}-view`);t=id[e](n).catch(t=>(console.warn(`${e} view failed to load`,t),ar(n,()=>n.replaceChildren(z(`p`,`p-4 text-[13px] text-red-600`,`Could not load ${Fu[e]} — reload the page.`))))),ku.set(e,t)}i=await t,Ou.set(e,i),ku.delete(e)}ju===e&&r===Mu&&i.show(t,n)}var Vu=e=>Z(`tasks`,e),Hu=(e={},t)=>Z(`runs`,t,new URLSearchParams(e).toString()),Uu=e=>Hu({},e),Wu=e=>Z(`files`,e),Gu=e=>Z(`terminal`,e),Ku=(e,t)=>{ju===e?Yu(e):Z(e,t)},qu=e=>Ku(`files`,e),Ju=e=>Ku(`terminal`,e);function Yu(e){let t=X.currentId(),n=Pu.get(e)??(t?{kind:`session`,id:t}:null);Pu.delete(e),n?td(n):(history.replaceState(null,``,`#/`),Xu())}function Xu(){if(ju){ju=null;for(let e of Ou.values())e.hide();for(let e of Au.values())e.classList.remove(`bg-indigo-50`);for(let e of Cu)e.classList.remove(`hidden`);$o(),zu(),X.maybeAckRead()}}var Zu=e=>e.kind===`session`?`#/session/${encodeURIComponent(e.id)}`:`#/${e.name}${e.arg?`/${encodeURIComponent(e.arg)}`:``}${e.query?`?${e.query}`:``}`,Qu={config:`files`,channels:`channels`,providers:`models`};function $u(){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 Qu[n]?{kind:`console`,name:`settings`,arg:Qu[n]}:Object.hasOwn(Fu,n)?{kind:`console`,name:n,arg:a,query:i}:n===`session`&&a?{kind:`session`,id:a}:null}var ed=!1;function td(e,t=!1){if(ed)return;let n=Zu(e);location.hash!==n&&(t?history.replaceState(null,``,n):location.hash=n)}var nd=e=>td({kind:`session`,id:e});function rd(){let e=$u(),t=X.sessions(),n=X.currentId(),r=(e?.kind===`session`?e.id:null)??n??(t.find(e=>e.listed)??t[0])?.id??null;ed=!0;try{r&&r!==n&&X.select(r),e?.kind===`console`?Z(e.name,e.arg,e.query):Xu(),r||Gl()}finally{ed=!1}e?.kind!==`console`&&r&&td({kind:`session`,id:r},!0)}var id={tasks:async e=>Tu=(await di(async()=>{let{createTasksView:e}=await import(`./tasks-CqfrOVIt.js`);return{createTasksView:e}},__vite__mapDeps([0,1]))).createTasksView(e,()=>X.sessions().map(({id:e,cwd:t,title:n})=>({id:e,cwd:t,title:n})),X.loadSessions,X.select,()=>X.currentId(),Hu,Vu),runs:async e=>Eu=(await di(async()=>{let{createRunsView:e}=await import(`./runs-jY40JBP-.js`);return{createRunsView:e}},__vite__mapDeps([2,1]))).createRunsView(e,X.select,()=>X.currentId(),Hu,Vu),activity:async e=>Du=(await di(async()=>{let{createActivityView:e}=await import(`./activity-Cw0LRVNI.js`);return{createActivityView:e}},[])).createActivityView(e,X.select,Uu),boards:async e=>(await di(async()=>{let{createBoardsView:e}=await import(`./boards-DMVbV84c.js`);return{createBoardsView:e}},[])).createBoardsView(e,X.select),files:async e=>(await di(async()=>{let{createExplorerView:e}=await import(`./explorer-DTvsy5Rs.js`);return{createExplorerView:e}},__vite__mapDeps([3,4]))).createExplorerView(e,()=>X.currentSession(),e=>Z(`files`,e),e=>Z(`terminal`,e),()=>Yu(`files`)),terminal:async e=>(await di(async()=>{let{createTerminalView:e}=await import(`./terminal-DL_0yEy7.js`);return{createTerminalView:e}},[])).createTerminalView(e,()=>[...Bc(X.sessions()).keys()],()=>X.currentSession()?.cwd,e=>Z(`terminal`,e),e=>Z(`files`,e),()=>Yu(`terminal`)),settings:async e=>(await di(async()=>{let{createSettingsView:e}=await import(`./settings-Dux7PIKF.js`);return{createSettingsView:e}},__vite__mapDeps([5,4]))).createSettingsView(e,()=>[...Bc(X.sessions()).keys()],e=>Z(`settings`,e))};function ad(e){X=e;let t=R(`#open-terminal`);t.onclick=()=>Ju(),Eo(t,`meta+;`,`Terminal`,()=>Ju());for(let e of[`tasks`,`runs`,`activity`,`boards`,`settings`]){let t=R(`#open-${e}`);Au.set(e,t),t.onclick=()=>Z(e)}let n=R(`#console-section`);n.open=localStorage.getItem(`pier.consoleCollapsed`)!==`1`,n.ontoggle=()=>localStorage.setItem(`pier.consoleCollapsed`,n.open?`0`:`1`),window.onhashchange=rd}var Q=[],od=0,sd=0,cd=!1,$=null,ld=`idle`,ud=null,dd=0,fd=!1,pd=!1;async function md(e){let t=++od;++sd,cd=!1,Xu(),mc(),$=null,ud?.close(),ud=null,ro(),es([]),Bl(),Wl(e),io(!0),pd=!0,Qo();let n=await m(`/api/sessions`,{cwd:e});if(t!==od)return;if(pd=!1,!n.ok){io(!1),Wl(null),Qo(),H(`error`,`session create failed: ${n.status}`);return}let{id:r}=await n.json();if(t!==od)return;let{repo:i,branch:a}=Q.find(t=>t.cwd===e)??{};Q.unshift({id:r,cwd:e,createdAt:Date.now(),state:`idle`,listed:!0,unread:!1,channel:`web`,activeRuns:0,repo:i,branch:a}),await Td(r),$===r&&Jo()}function hd(e,t){let n=e.map(e=>({...e,title:ne(e.title)}));if(t)Q=n;else{let e=new Map(n.map(e=>[e.id,e]));Q=Q.map(t=>e.get(t.id)??(t.listed?{...t,listed:!1}:t));let t=new Set(Q.map(e=>e.id));Q.push(...n.filter(e=>!t.has(e.id)))}Q.sort((e,t)=>t.createdAt-e.createdAt),gl(),vd()}var gd=re(async()=>{hd(await ae(`/api/projects`,`Could not load projects`),!1)}),_d=re(async()=>{hd(await ae(`/api/sessions`,`Could not load sessions`),!0)});function vd(){if(document.hidden||!document.hasFocus()||!wu())return;let e=Q.find(e=>e.id===$);e?.unread&&(e.unread=!1,gl(),fetch(`/api/sessions/${e.id}/read`,{method:`POST`}))}function yd(){return Q.find(e=>e.id===$)}function bd(e,t){let n=Q.find(t=>t.id===e);!n||n.title||!t.trim()||(n.title=t.trim().slice(0,80),gl(),Gl())}function xd(e){ld=e;let t=Q.find(e=>e.id===$);t&&(t.state=e),gl(),Gl(),Qo(),e===`idle`&&gd()}function Sd(e){if(!(e.sessionId!==$||e.seq<=dd))switch(dd=e.seq,e.type){case`turn-start`:fd=!0;break;case`system-input`:eo(),Da(e.text,e.origin);break;case`task-status`:Pi(e.run);break;case`user-message`:{let t=te(e.text).text;if(bd(e.sessionId,t),Yo(t))break;eo(),H(`user`,e.text,!1,e.ts),ya();break}case`text-delta`:$a(e.text);break;case`thinking-delta`:oa(e.ts,e.text);break;case`tool-start`:eo(),ia(e.ts,e.toolCallId,e.toolName,e.args);break;case`tool-end`:aa(e.toolCallId,e.isError,e.output);break;case`turn-end`:fd=!1,to(e.text,e.meta),e.meta&&Hl(e.meta);break;case`queue-state`:ts(e.steering,e.followUp);break;case`queue-recovery`:es(e.batches,e.uncertain);break;case`context-compacted`:eo(),H(`system`,`Context compacted — ${i(e.before)} → ${i(e.after)}`,!1,e.ts),ya();break;case`error`:na(),H(`error`,e.message);break;case`state`:e.state===`idle`&&fd&&(fd=!1,no()),e.state===`idle`&&ts([],[]),xd(e.state)}}function Cd(){let e=new EventSource(`/api/events`);e.onopen=()=>void gd(),e.onerror=()=>vo(e,`Workspace`),e.onmessage=e=>{let t=JSON.parse(e.data);if(t.type===`sessions-changed`){gd();return}if(t.type===`tasks-changed`||t.type===`task-run-changed`||t.type===`task-message-changed`||t.type===`task-group-changed`){Iu(t.type===`task-run-changed`?t.taskId:void 0),Lu(),Ru(),t.type===`task-run-changed`&&gd();return}if(Ru(),t.sessionId===$)return;let n=Q.find(e=>e.id===t.sessionId);n&&(n.state=t.state,gl())}}function wd(e,t,n){ud?.close();let r=new EventSource(`/api/sessions/${e}/events?after=${t}`),i=()=>ud===r&&$===e&&n===sd;r.onmessage=e=>{i()&&Sd(JSON.parse(e.data))},r.addEventListener(`reset`,()=>{i()&&Ed(e)}),r.onerror=()=>{i()&&vo(r,`Session`)},ud=r}async function Td(e){Xu(),mc(),nd(e);let t=Q.some(t=>t.id===e);if(e===$&&t&&(ud||cd))return;let n=++od;if(++sd,pd=!1,cs(),$=e,ld=Q.find(t=>t.id===e)?.state??`idle`,ls(e),gl(),Gl(),vd(),t)return await Ed(e);ud?.close(),ud=null,ro(),io(!0),await _d(),n===od&&$===e&&await Ed(e,!Q.some(t=>t.id===e))}async function Ed(e,t=!1){if($!==e)return;let n=++sd;if(ud?.close(),ud=null,cd=!0,ro(),ts([],[]),es([]),Bl(),fd=!1,Zo(),dd=0,io(!0),t){cd=!1,io(!1),H(`error`,`session not found: ${e}`);return}let r=await ie(`/api/sessions/${e}/history`,`failed to load session`);if($!==e||n!==sd)return;if(cd=!1,!r.ok){io(!1),H(`error`,r.error);return}let i=r.value;ao(i.turns,i.state,i.backgroundRuns),dd=i.lastSeq,fd=i.state===`streaming`,xd(i.state),ts(i.queue.steering,i.queue.followUp),es(i.queueRecovery,i.queueUncertain);let a=i.turns.reduce((e,t)=>t.meta?.completedAt??e,null);Vl(i.model,i.context,i.thinkingLevel,a),wd(e,`${i.epoch}:${i.lastSeq}`,n)}mo(),_o(),lu();var Dd=async e=>{$===e&&await Ed(e)};fa({sessionId:()=>$,sessionState:()=>ld,select:e=>void Td(e),showRun:Uu,send:(e,t)=>void fs(e,t),ownTurn:e=>{Xo(e),xd(`streaming`)},reload:Dd}),hs({sessionId:()=>$,starting:()=>pd,sessionState:()=>ld,chatVisible:wu,setState:xd,reload:Dd}),Oc({sessionMenu:e=>{let t=yd();t&&tu(e,t)},sessionInfo:e=>{let t=yd();t&&Yl(e,t)}}),Ol({sessions:()=>Q,loadSessions:_d,currentId:()=>$,select:e=>void Td(e),sessionMenu:tu,createSession:md,openFiles:Wu,openTerminal:Gu,openConsole:Z,onPinsChanged:Gl}),kl({currentId:()=>$,currentSession:yd,createSession:e=>void md(e),syncBar:zu,openFiles:Wu,toggleFiles:qu}),ad({sessions:()=>Q,loadSessions:_d,currentId:()=>$,currentSession:yd,select:e=>void Td(e),maybeAckRead:vd}),bu(`0.0.21`),As(),document.addEventListener(`visibilitychange`,vd),window.addEventListener(`focus`,vd),Cd(),gd().then(rd);export{er as A,h as B,xr as C,Sr as D,yr as E,ir as F,m as G,ae as H,z as I,ne as K,$n as L,ar as M,lr as N,Cr as O,ur as P,nr as R,hr as S,mr as T,se as U,ie as V,oe as W,gr as _,Hs as a,Or as b,wi as c,di as d,vr as f,fr as g,pr as h,q as i,tr as j,kr as k,_i as l,Er as m,ac as n,Fs as o,wr as p,r as q,$s as r,ko as s,lc as t,vi as u,Dr as v,Tr as w,br as x,_r as y,re as z};