pulls.review 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +5 -0
  2. package/dist/client/assets/ActionButton-V4dY2wPS.js +1 -0
  3. package/dist/client/assets/ActionIconButton-4b5xelMn.js +1 -0
  4. package/dist/client/assets/ChatMessage-Ccffh_8Z.js +80 -0
  5. package/dist/client/assets/ChatWidget-BFjNWi3R.js +1 -0
  6. package/dist/client/assets/DisplayFileIcon-DWj5Zxib.js +151 -0
  7. package/dist/client/assets/GithubAvatar-DGJrpCsX.js +1 -0
  8. package/dist/client/assets/LandingHero-DWdx6_8g.js +1 -0
  9. package/dist/client/assets/LocalAgentSettings-COjAszEL.js +1 -0
  10. package/dist/client/assets/ModelPicker-CDTiUMZ3.js +3 -0
  11. package/dist/client/assets/SelectViewport-DF4P4Akh.js +1 -0
  12. package/dist/client/assets/_repo_-D3lApLQL.js +22 -0
  13. package/dist/client/assets/analyze-BgWIIbl3.js +1 -0
  14. package/dist/client/assets/anthropic-messages-Btz8sjqp.js +41 -0
  15. package/dist/client/assets/browser-agent-rpc-BXhoSh1z-DrvKG05N.js +1 -0
  16. package/dist/client/assets/core-messages-ClW97ZVa.js +1 -0
  17. package/dist/client/assets/de-BoIOg_UW.js +1 -0
  18. package/dist/client/assets/diagnostics-wATZy2jc.js +1 -0
  19. package/dist/client/assets/diff-CNRGXNmw.js +1 -0
  20. package/dist/client/assets/{diff-BKQFn0my.js → diff-Cx43r-a6.js} +3 -3
  21. package/dist/client/assets/diffs-store-D3BzIMVi.js +1431 -0
  22. package/dist/client/assets/en-CbWYrCM5.js +1 -0
  23. package/dist/client/assets/es-CqEudTln.js +1 -0
  24. package/dist/client/assets/floating-ui.dom-CfpSQvPs.js +1 -0
  25. package/dist/client/assets/fr-qiQQ-4AO.js +1 -0
  26. package/dist/client/assets/i18n-Cx8anq4V.js +2 -0
  27. package/dist/client/assets/{id-NIGs9Xhn.js → id-BkDzu8gq.js} +1 -1
  28. package/dist/client/assets/index-De-UtOit.css +1 -0
  29. package/dist/client/assets/index-KDAJXf4E.js +2 -0
  30. package/dist/client/assets/install-D-S32JY7.js +4 -0
  31. package/dist/client/assets/it-tZZZbUKN.js +1 -0
  32. package/dist/client/assets/{ja-BAKkDsQ5.js → ja-kGPK4Fmt.js} +1 -1
  33. package/dist/client/assets/ko-CULiae40.js +1 -0
  34. package/dist/client/assets/llm-Le5CPsNn.js +88 -0
  35. package/dist/client/assets/llm-store-CzMnTJNa.js +1 -0
  36. package/dist/client/assets/local-agents-BQLn-Ppw.js +1 -0
  37. package/dist/client/assets/models-D651LTTp.js +8 -0
  38. package/dist/client/assets/nanoid-Cya-tyvy.js +1 -0
  39. package/dist/client/assets/node.browser-C0q8i5sA.js +1 -0
  40. package/dist/client/assets/{openai-completions-CSvY9IVo.js → openai-completions-DvmbMyzl.js} +5 -5
  41. package/dist/client/assets/pages-ByEfDjFa.js +1 -0
  42. package/dist/client/assets/pages-local-CVPpEWZ_.js +1 -0
  43. package/dist/client/assets/pages-web-BLxMupU5.js +21 -0
  44. package/dist/client/assets/portalTarget-DQg8GgWm.js +1 -0
  45. package/dist/client/assets/pt-BR-BcwoZLSs.js +1 -0
  46. package/dist/client/assets/rpc-backends-DYtuJyeF.js +1 -0
  47. package/dist/client/assets/ru-DOordgLF.js +1 -0
  48. package/dist/client/assets/runtime-dom.esm-bundler-Du_ZCcVN.js +2 -0
  49. package/dist/client/assets/{source-hSji-yvG.js → source-CvnvCX42.js} +1 -1
  50. package/dist/client/assets/sync-interval-oKvsW-lT.js +1 -0
  51. package/dist/client/assets/{transform-messages-C8U1xonk.js → transform-messages-Cg_2u7I2.js} +1 -1
  52. package/dist/client/assets/upload-DRO7bkBV.js +1 -0
  53. package/dist/client/assets/useDocumentTitle-BQJCa6Lm.js +92 -0
  54. package/dist/client/assets/useNonce-CwUrgryd.js +1 -0
  55. package/dist/client/assets/{vue-i18n-DVI_S4Q5.js → vue-i18n-CGHHpbTP.js} +3 -3
  56. package/dist/client/assets/zh-CN-CmTqGY9s.js +1 -0
  57. package/dist/client/assets/zh-TW-DKGtbJQy.js +1 -0
  58. package/dist/client/index.html +9 -8
  59. package/dist/devframe-DH2vpasJ.mjs +1124 -0
  60. package/dist/devframe.mjs +1 -1
  61. package/dist/index.mjs +28 -8
  62. package/package.json +7 -3
  63. package/dist/client/assets/ChatWidget-BsnoQ6oS.js +0 -1
  64. package/dist/client/assets/DisplayFileIcon-DzBo3Ez5.js +0 -151
  65. package/dist/client/assets/GithubAvatar-CSsUV5vf.js +0 -1
  66. package/dist/client/assets/LandingHero-BkTBSu71.js +0 -1
  67. package/dist/client/assets/_repo_-Dcgj3PGg.js +0 -22
  68. package/dist/client/assets/analyze-509KQQBC.js +0 -1
  69. package/dist/client/assets/anthropic-messages-Cd2DkgOC.js +0 -41
  70. package/dist/client/assets/browser-agent-rpc-BXhoSh1z-DrxWeI3_.js +0 -1
  71. package/dist/client/assets/de-Bq9RfdAn.js +0 -1
  72. package/dist/client/assets/diff-Bx6SazPw.js +0 -1
  73. package/dist/client/assets/diffs-store-ncE62OUU.js +0 -1510
  74. package/dist/client/assets/dist-Dh0a8u-Y.js +0 -1
  75. package/dist/client/assets/en-8hQdak1X.js +0 -1
  76. package/dist/client/assets/es-QcvEBShr.js +0 -1
  77. package/dist/client/assets/fr-DAWKVvDP.js +0 -1
  78. package/dist/client/assets/i18n-CGV_MDS8.js +0 -2
  79. package/dist/client/assets/index-BCCy9wJJ.js +0 -2
  80. package/dist/client/assets/index-BDPZiDIt.css +0 -1
  81. package/dist/client/assets/install-B-q5w2uE.js +0 -4
  82. package/dist/client/assets/it-DjRuurmk.js +0 -1
  83. package/dist/client/assets/ko-DHculY2W.js +0 -1
  84. package/dist/client/assets/llm-DYDmh8Ki.js +0 -2
  85. package/dist/client/assets/llm-store-CVM33nlB.js +0 -2
  86. package/dist/client/assets/node.browser-BX-QLlU2.js +0 -1
  87. package/dist/client/assets/pages-B5mEqsbn.js +0 -1
  88. package/dist/client/assets/pages-local-x_ACBinc.js +0 -1
  89. package/dist/client/assets/pages-web-DitAPN6U.js +0 -21
  90. package/dist/client/assets/portalTarget-C60SzJiK.js +0 -1
  91. package/dist/client/assets/pt-BR-LLtJ99P6.js +0 -1
  92. package/dist/client/assets/ru-DvkrOLxc.js +0 -1
  93. package/dist/client/assets/runtime-dom.esm-bundler-CqL7__VR.js +0 -2
  94. package/dist/client/assets/upload-GnI9kmJu.js +0 -1
  95. package/dist/client/assets/useDocumentTitle-nuqxXiNo.js +0 -185
  96. package/dist/client/assets/zh-CN-BIibd6kG.js +0 -1
  97. package/dist/client/assets/zh-TW-3FtUHjoZ.js +0 -1
  98. package/dist/devframe-CX5butdC.mjs +0 -493
@@ -0,0 +1,21 @@
1
+ import{$ as e,At as t,Bt as n,Cr as r,Dr as i,E as a,Er as o,G as s,H as c,Hn as l,Jt as u,K as d,Kt as f,M as p,Pt as m,Q as h,U as g,W as _,Wn as v,er as y,h as b,hn as x,m as S,mn as C,n as w,qt as T,sn as E,tt as D,u as O,un as k,xn as A,yn as j}from"./vue-i18n-CGHHpbTP.js";import{w as M,x as N}from"./runtime-dom.esm-bundler-Du_ZCcVN.js";import{k as P,n as ee}from"./ModelPicker-CDTiUMZ3.js";import{a as F,n as te,t as ne,u as re}from"./useDocumentTitle-BQJCa6Lm.js";import{d as ie,i as ae,n as oe,r as se,s as ce,t as I}from"./index-KDAJXf4E.js";import{t as L}from"./ActionButton-V4dY2wPS.js";import{a as le,r as ue,s as de,t as fe}from"./DisplayFileIcon-DWj5Zxib.js";import{n as pe,t as R}from"./GithubAvatar-DGJrpCsX.js";import{i as me,n as he,r as ge,t as _e}from"./LandingHero-DWdx6_8g.js";import{t as ve}from"./time-ago-Bdao9Hh1.js";import{t as ye}from"./uploadSession-BUj4FNau.js";var be=`javascript:${String.raw`(()=>{const R={'github.com':['https://pulls.review',[[/^\/([^/]+)\/([^/]+)\/pull\/(\d+).*$/,'/gh/$1/$2/$3'],[/^\/([^/]+)\/([^/]+)\/(commit\/[^/]+|compare\/.+\.\.\..+)$/,'/gh/$1/$2/$3'],[/^\/([^/]+)\/([^/]+)\/pulls\/?$/,'/gh/$1/$2']]],'pulls.review':['https://github.com',[[/^\/gh\/([^/]+)\/([^/]+)\/(\d+)\/?$/,'/$1/$2/pull/$3'],[/^\/gh\/([^/]+)\/([^/]+)\/(commit\/[^/]+|compare\/.+\.\.\..+)$/,'/$1/$2/$3'],[/^\/gh\/([^/]+)\/([^/]+)\/?$/,'/$1/$2/pulls']]]};const[o,r]=R[location.hostname]||[];const p=location.pathname;const m=r&&r.find(([x])=>x.test(p));m?location.href=o+p.replace(m[0],m[1]):alert('Open a pull request, commit or compare page on github.com or pulls.review.')})();`}`,xe=D({__name:`BookmarkletButton`,setup(e){return(e,t)=>(n(),_(L,{href:y(be),icon:`i-ph:bookmark-simple-duotone`,class:`cursor-grab active:cursor-grabbing`,title:e.$t(`landing.bookmarkletDrag`),onClick:t[0]||=M(()=>{},[`prevent`])},{default:j(()=>[...t[1]||=[h(` pulls.review ⇄ GitHub `,-1)]]),_:1},8,[`href`,`title`]))}}),Se=[`href`],Ce=D({__name:`ExternalLink`,props:{href:{}},setup(e){return(t,r)=>(n(),d(`a`,{href:e.href,target:`_blank`,rel:`noopener`,class:`inline-flex items-center gap-0.5 color-active hover:underline`},[T(t.$slots,`default`),r[0]||=g(`span`,{class:`i-ph:arrow-square-out text-[0.85em]`,"aria-hidden":`true`},null,-1)],8,Se))}}),we=typeof window<`u`,Te=we?window:null,Ee=we?document:null,z={OBJECT:0,ATTRIBUTE:1,CSS:2,TRANSFORM:3,CSS_VAR:4},B={NUMBER:0,UNIT:1,COLOR:2,COMPLEX:3},V={NONE:0,AUTO:1,FORCE:2},H={replace:0,none:1,blend:2},De=Symbol(),Oe=Symbol(),ke=Symbol(),Ae=Symbol(),je=Symbol(),U=1e-11,Me=0xe8d4a51000,Ne=1e3,Pe=[],Fe=(()=>{let e=new Map;return e.set(`x`,`translateX`),e.set(`y`,`translateY`),e.set(`z`,`translateZ`),e})(),Ie=[`perspective`,`translateX`,`translateY`,`translateZ`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`scale`,`scaleX`,`scaleY`,`scaleZ`,`skew`,`skewX`,`skewY`],Le=Ie.reduce((e,t)=>({...e,[t]:t+`(`}),{}),W=()=>{},Re=e=>e,ze=/\)\s*[-.\d]/,Be=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,Ve=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,He=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,Ue=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,We=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,Ge=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,Ke=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,qe=/([a-z])([A-Z])/g,Je=/(\*=|\+=|-=)/,Ye=/var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/,Xe={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:240,loop:0,reversed:!1,alternate:!1,autoplay:!0,persist:!1,duration:Ne,delay:0,loopDelay:0,ease:`out(2)`,composition:H.replace,modifier:Re,onBegin:W,onBeforeUpdate:W,onUpdate:W,onLoop:W,onPause:W,onComplete:W,onRender:W},Ze={current:null,root:Ee},G={defaults:Xe,precision:4,timeScale:1,tickThreshold:200,editor:null},Qe={version:`4.5.0`,engine:null};we&&(Te.AnimeJS||=[],Te.AnimeJS.push(Qe));var $e=e=>e.replace(qe,`$1-$2`).toLowerCase(),et=(e,t)=>e.indexOf(t)===0,tt=Date.now,nt=Array.isArray,rt=e=>e&&e.constructor===Object,it=e=>typeof e==`number`&&!isNaN(e),at=e=>typeof e==`string`,ot=e=>typeof e==`function`,K=e=>e===void 0,st=e=>K(e)||e===null,ct=e=>we&&e instanceof SVGElement,lt=e=>Be.test(e),ut=e=>et(e,`rgb`),dt=e=>et(e,`hsl`),ft=e=>lt(e)||(ut(e)||dt(e))&&(e[e.length-1]===`)`||!ze.test(e)),pt=e=>!G.defaults.hasOwnProperty(e),mt=[`opacity`,`rotate`,`overflow`,`color`],ht=(e,t)=>{if(mt.includes(t))return!1;if(e.getAttribute(t)||t in e){if(t===`scale`){let t=e.parentNode;return t&&t.tagName===`filter`}return!0}},gt=e=>at(e)?parseFloat(e):e,_t=Math.pow,vt=Math.sqrt,yt=Math.sin,bt=Math.cos,xt=Math.abs,St=Math.floor,Ct=Math.asin,wt=Math.PI,Tt=Math.round,Et=(e,t,n)=>e<t?t:e>n?n:e,q=(e,t)=>{if(t<0)return e;if(!t)return Tt(e);let n=10**t;return Tt(e*n)/n},Dt=(e,t,n)=>n===1?t:n===0?e:e+(t-e)*n,Ot=e=>e===1/0?Me:e===-1/0?-Me:e,kt=e=>e<=1e-11?U:Ot(q(e,11)),J=e=>nt(e)?[...e]:e,At=(e,t)=>{let n={...e};for(let r in t){let i=e[r];n[r]=K(i)?t[r]:i}return n},Y=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._head,o=i;for(n&&(a=e._tail,o=r);a;){let e=a[o];t(a),a=e}},jt=(e,t,n=`_prev`,r=`_next`)=>{let i=t[n],a=t[r];i?i[r]=a:e._head=a,a?a[n]=i:e._tail=i,t[n]=null,t[r]=null},Mt=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._tail;for(;a&&n&&n(a,t);)a=a[r];let o=a?a[i]:e._head;a?a[i]=t:e._head=t,o?o[r]=t:e._tail=t,t[r]=a,t[i]=o},Nt=(e,t,n)=>{let r=e.style.transform;if(r){let i=e[Ae],a=0,o=r.length,s;for(;a<o;){for(;a<o&&r.charCodeAt(a)===32;)a++;if(a>=o)break;let e=a;for(;a<o&&r.charCodeAt(a)!==40;)a++;if(a>=o)break;let t=r.substring(e,a),n=1,c=a+1,l=-1,u=-1;for(a++;a<o&&n>0;){let e=r.charCodeAt(a);e===40?n++:e===41?n--:e===44&&n===1&&(l===-1?l=a:u===-1&&(u=a)),a++}let d=a-1;t===`translate`||t===`translate3d`?(l===-1?i.translateX=r.substring(c,d).trim():(i.translateX=r.substring(c,l).trim(),u===-1?i.translateY=r.substring(l+1,d).trim():(i.translateY=r.substring(l+1,u).trim(),i.translateZ=r.substring(u+1,d).trim())),s=r.substring(c,d)):t===`scale`||t===`scale3d`?l===-1?i.scale=r.substring(c,d).trim():(i.scaleX=r.substring(c,l).trim(),u===-1?i.scaleY=r.substring(l+1,d).trim():(i.scaleY=r.substring(l+1,u).trim(),i.scaleZ=r.substring(u+1,d).trim())):i[t]=r.substring(c,d)}if(t===`translate3d`&&s)return n&&(n[t]=s),s;let c=i[t];if(!K(c))return n&&(n[t]=c),c}return t===`translate3d`?`0px, 0px, 0px`:t===`rotate3d`?`0, 0, 0, 0deg`:et(t,`scale`)?`1`:et(t,`rotate`)||et(t,`skew`)?`0deg`:`0px`},Pt=e=>{let t=``;for(let n=0,r=Ie.length;n<r;n++){let r=Ie[n],i=e[r];if(i!==void 0){if(r===`translateX`){let r=e.translateY;if(r!==void 0){let a=e.translateZ;a===void 0?(t+=`translate(${i},${r}) `,n+=1):(t+=`translate3d(${i},${r},${a}) `,n+=2);continue}}if(r===`scaleX`&&e.scale===void 0){let r=e.scaleY;if(r!==void 0){let a=e.scaleZ;a===void 0?(t+=`scale(${i},${r}) `,n+=1):(t+=`scale3d(${i},${r},${a}) `,n+=2);continue}}t+=`${Le[r]}${i}) `}r===`rotateZ`&&e.rotate3d!==void 0&&(t+=`rotate3d(${e.rotate3d}) `)}return e.matrix!==void 0&&(t+=`matrix(${e.matrix}) `),e.matrix3d!==void 0&&(t+=`matrix3d(${e.matrix3d}) `),t},Ft=[];function It(e,t){if(!e)return null;let n=Ft.length;outer:for(let r=0;r<n;r++){let n=Ft[r];if(n.detect&&!n.detect(e))continue;let i=n.targetAdapters;for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r.detect(e)){let n=r.props[t];if(n&&(!n.gate||n.gate(e)))return n;break outer}}}for(let r=0;r<n;r++){let n=Ft[r];if(n.detect&&!n.detect(e))continue;let i=n.propertyResolvers;for(let n=0,r=i.length;n<r;n++){let r=i[n](e,t);if(r)return r}}return null}var Lt=e=>{let t=Ve.exec(e)||He.exec(e),n=K(t[4])?1:+t[4];return[+t[1],+t[2],+t[3],n]},Rt=e=>{let t=e.length,n=t===4||t===5;return[+(`0x`+e[1]+e[n?1:2]),+(`0x`+e[n?2:3]+e[n?2:4]),+(`0x`+e[n?3:5]+e[n?3:6]),t===5||t===9?+((`0x`+e[n?4:7]+e[n?4:8])/255).toFixed(3):1]},zt=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),Bt=e=>{let t=Ue.exec(e)||We.exec(e),n=t[1]/360,r=t[2]/100,i=t[3]/100,a=K(t[4])?1:+t[4],o,s,c;if(r===0)o=s=c=i;else{let e=i<.5?i*(1+r):i+r-i*r,t=2*i-e;o=q(zt(t,e,n+1/3)*255,0),s=q(zt(t,e,n)*255,0),c=q(zt(t,e,n-1/3)*255,0)}return[o,s,c,a]},Vt=e=>ut(e)?Lt(e):lt(e)?Rt(e):dt(e)?Bt(e):[0,0,0,1],X=(e,t)=>K(e)?t:e,Ht=(e,t)=>{let n=e.match(Ye),r=t[Oe]?t:document.documentElement,i=getComputedStyle(r)?.getPropertyValue(n[1]);return(!i||i.trim()===``)&&n[2]&&(i=n[2].trim()),i||0},Ut=(e,t,n,r,i,a)=>{if(ot(e)){if(!i){let i=e(t,n,r,a);return isNaN(+i)?i||0:+i}let o=()=>{let i=e(t,n,r,a);return isNaN(+i)?i||0:+i};return i.func=o,o()}if(at(e)&&et(e,`var(`)){if(!i)return Ht(e,t);let n=()=>Ht(e,t);return i.func=n,n()}return e},Wt=(e,t)=>e[Oe]?e[ke]&&ht(e,t)?z.ATTRIBUTE:Ie.includes(t)||Fe.get(t)?z.TRANSFORM:et(t,`--`)?z.CSS_VAR:t in e.style?z.CSS:t in e?z.OBJECT:z.ATTRIBUTE:z.OBJECT,Gt=(e,t,n)=>{let r=e.style[t];r&&n&&(n[t]=r);let i=r||getComputedStyle(e[je]||e).getPropertyValue(t);return i===`auto`?`0`:i},Kt=(e,t,n,r)=>{let i=K(n)?Wt(e,t):n,a=It(e,t);if(a){let n=a.get(e);return n&&r&&(r[t]=n),n??0}if(i===z.OBJECT){let n=e[t];return n&&r&&(r[t]=n),n||0}if(i===z.ATTRIBUTE){let n=e.getAttribute(t);return n&&r&&(r[t]=n),n}return i===z.TRANSFORM?Nt(e,t,r):i===z.CSS_VAR?Gt(e,t,r).trimStart():Gt(e,t,r)},qt=(e,t,n)=>n===`-`?e-t:n===`+`?e+t:e*t,Jt=()=>({t:B.NUMBER,n:0,u:null,o:null,d:null,s:null}),Yt=(e,t)=>{if(t.t=B.NUMBER,t.n=0,t.u=null,t.o=null,t.d=null,t.s=null,!e)return t;let n=+e;if(!isNaN(n))return t.n=n,t;let r=e;r[1]===`=`&&(t.o=r[0],r=r.slice(2));let i=!r.includes(` `)&&Ke.exec(r);if(i)return t.t=B.UNIT,t.n=+i[1],t.u=i[2],t;if(t.o)return t.n=+r,t;if(ft(r))return t.t=B.COLOR,t.d=Vt(r),t;{let e=r.match(Ge);return t.t=B.COMPLEX,t.d=e?e.map(Number):[],t.s=r.split(Ge)||[],t}},Xt=(e,t)=>(t.t=e._valueType,t.n=e._toNumber,t.u=e._unit,t.o=null,t.d=J(e._toNumbers),t.s=J(e._strings),t),Zt=Jt(),Qt=(e,t,n)=>{let r=e._modifier,i=e._fromNumbers,a=e._toNumbers,o=e._strings,s=o[0];for(let c=0,l=a.length;c<l;c++){let l=r(q(Dt(i[c],a[c],t),n)),u=o[c+1];s+=`${u?l+u:l}`,e._numbers[c]=l}return s},$t=(e,t,n,r,i)=>{let a=e.parent,o=e.duration,s=e.completed,c=e.iterationDuration,l=e.iterationCount,u=e._currentIteration,d=e._loopDelay,f=e._reversed,p=e._alternate,m=e._hasChildren,h=e._delay,g=e._currentTime,_=h+c,v=t-h,y=Et(g,-h,o),b=Et(v,-h,o),x=v-g,S=b>0,C=b>=o,w=o<=U,T=i===V.FORCE,E=0,D=v,O=0;if(l>1){let t=c+(C?0:d),n=~~(b/t);e._currentIteration=Et(n,0,l),C&&e._currentIteration--,E=e._currentIteration%2,D=b-n*t||0}let k=f^(p&&E),A=e._ease,j=C?k?0:o:k?c-D:D;A&&(j=c*A(j/c)||0);let M=(a?a.backwards:v<g)?!k:!!k;if(e._currentTime=v,e._iterationTime=j,e.backwards=M,S&&!e.began?(e.began=!0,!n&&(!a||!M&&a.began)&&e.onBegin(e)):v<=0&&(e.began=!1),!n&&!m&&S&&e._currentIteration!==u&&e.onLoop(e),T||i===V.AUTO&&(t>=(a&&h>0?0:h)&&t<=_||t<=h&&y>h||t>=_&&y!==o)||j>=_&&y!==o||j<=h&&y>0&&!C||t<=y&&y===o&&s||C&&!s&&w){if(S&&(e.computeDeltaTime(y),n||e.onBeforeUpdate(e)),!m){let t=T||(M?x*-1:x)>=G.tickThreshold,i=q(e._offset+(a?a._offset:0)+h+j,12),o=e._head,s,c,l,u,d=0;for(;o;){let e=o._composition,n=o._currentTime,a=o._changeDuration,f=o._absoluteStartTime+o._changeDuration,p=o._nextRep,m=o._prevRep,h=e!==H.none,g=m?m._absoluteStartTime+m._changeDuration:0,_=m&&m.parent!==o.parent,v=!p||p._isOverridden?f:p.parent===o.parent?f+p._delay:p._absoluteStartTime<p._absoluteUpdateStartTime?p._absoluteStartTime:p._absoluteUpdateStartTime;if((t||(n!==a||i<=v||m&&!_&&(!p||p.parent!==o.parent))&&(n!==0||i>=o._absoluteStartTime||_&&!o._hasFromValue&&!m._isOverridden&&i>=g||p&&!p._isOverridden&&p.parent===o.parent&&p._currentTime!==0&&j<p._startTime))&&(!m||_||j>=o._startTime)&&(!h||!o._isOverridden&&(!o._isOverlapped||i<=f)&&(!p||p._isOverridden||i<=v)&&(!m||m._isOverridden||(_?i>=o._absoluteStartTime||!o._hasFromValue&&i>=g:i>=g+o._delay)))){let t=o._currentTime=Et(j-o._startTime,0,a),n=o._ease(t/o._updateDuration),i=o._modifier,f=o._valueType,p=o._tweenType,m=p===z.OBJECT,g=f===B.NUMBER,_=g&&m||n===0||n===1?-1:G.precision,v,y;if(g)v=y=i(q(Dt(o._fromNumber,o._toNumber,n),_));else if(f===B.UNIT)y=i(q(Dt(o._fromNumber,o._toNumber,n),_)),v=`${y}${o._unit}`;else if(f===B.COLOR){let e=o._numbers,t=o._fromNumbers,a=o._toNumbers,s=1-n,c=t[0],l=t[1],u=t[2],d=a[0],f=a[1],p=a[2];e[0]=i(Math.sqrt(c*c*s+d*d*n)),e[1]=i(Math.sqrt(l*l*s+f*f*n)),e[2]=i(Math.sqrt(u*u*s+p*p*n)),e[3]=i(Dt(t[3],a[3],n)),(!o._setter||r)&&(v=`rgba(${q(e[0],0)},${q(e[1],0)},${q(e[2],0)},${e[3]})`)}else f===B.COMPLEX&&(v=Qt(o,n,_));if(h&&(o._number=y),!r&&e!==H.blend){let e=o.property;s=o.target,o._setter?o._setter(s,y,o):m?s[e]=v:p===z.ATTRIBUTE?s.setAttribute(e,v):(c=s.style,p===z.TRANSFORM?(s!==l&&(l=s,u=s[Ae]),u[e]=v,d=1):p===z.CSS?c[e]=v:p===z.CSS_VAR&&c.setProperty(e,v)),S&&(O=1)}else o._value=v}else n&&m&&!_&&j<o._startTime&&(o._currentTime=0);d&&o._renderTransforms&&(c.transform=Pt(u),d=0),o=o._next}!n&&O&&e.onRender(e)}!n&&S&&e.onUpdate(e)}return a&&w?!n&&(a.began&&!M&&v>0&&!s||M&&v<=1e-11&&s)&&(e.onComplete(e),e.completed=!M):S&&C?l===1/0?e._startTime+=e.duration:e._currentIteration>=l-1&&(e.paused=!0,!s&&!m&&(e.completed=!0,!n&&(!a||!M&&a.began)&&(e.onComplete(e),e._resolve(e)))):e.completed=!1,O},en=(e,t,n,r,i)=>{let a=e._currentIteration;if($t(e,t,n,r,i),e._hasChildren){let o=e,s=o.backwards,c=r?t:o._iterationTime,l=tt(),u=0,d=!0;if(!r&&o._currentIteration!==a){let e=o.iterationDuration;Y(o,t=>{if(!s)!t.completed&&!t.backwards&&t._currentTime<t.iterationDuration&&$t(t,e,n,1,V.FORCE),t.began=!1,t.completed=!1;else{let r=t.duration,i=t._offset+t._delay,a=i+r;!n&&r<=1e-11&&(!i||a===e)&&t.onComplete(t)}}),n||o.onLoop(o)}Y(o,e=>{let t=q((c-e._offset)*e._speed,12);if(s&&t>e._delay+e.duration)return;let a=e._fps<o._fps?e.requestTick(l):i;u+=$t(e,t,n,r,a),!e.completed&&d&&(d=!1)},s),!n&&u&&o.onRender(o),(d||s)&&o._currentTime>=o.duration&&(o.paused=!0,o.completed||(o.completed=!0,n||(o.onComplete(o),o._resolve(o))))}},tn={},nn=(e,t,n)=>{if(n===z.TRANSFORM)return Fe.get(e)||e;if(n===z.CSS||n===z.ATTRIBUTE&&ct(t)&&e in t.style){let t=tn[e];if(t)return t;{let t=e&&$e(e);return tn[e]=t,t}}return e},rn=(e,t=!1)=>{if(e._hasChildren)Y(e,e=>rn(e,t),!0);else{let n=e;n.pause(),Y(n,e=>{let r=e.property,i=e.target,a=e._tweenType,o=e._inlineValue,s=st(o)||o===``;if(e._setter){if(!t&&!s){if(Yt(o,Zt),Zt.d){let t=Zt.d,n=e._numbers;for(let e=0,r=t.length;e<r;e++)n[e]=t[e]}else e._number=Zt.n;e._setter(e.target,e._number,e)}}else if(a===z.OBJECT)!t&&!s&&(i[r]=o);else if(i[Oe]){if(a===z.ATTRIBUTE)t||(s?i.removeAttribute(r):i.setAttribute(r,o));else{let t=i.style;if(a===z.TRANSFORM){let n=i[Ae];s?delete n[r]:n[r]=o,e._renderTransforms&&(Object.keys(n).length?t.transform=Pt(n):t.removeProperty(`transform`))}else s?t.removeProperty($e(r)):t[r]=o}}i[Oe]&&n._tail===e&&n.targets.forEach(e=>{e.getAttribute&&e.getAttribute(`style`)===``&&e.removeAttribute(`style`)})})}return e},an=class{constructor(e=0){this.deltaTime=0,this._currentTime=e,this._lastTickTime=e,this._startTime=e,this._lastTime=e,this._frameDuration=Ne/240,this._fps=240,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(e){let t=+e,n=t<1e-11?U:t,r=Ne/n;n>Xe.frameRate&&(Xe.frameRate=n),this._fps=n,this._frameDuration=r}get speed(){return this._speed}set speed(e){let t=+e;this._speed=t<1e-11?U:t}requestTick(e){let t=this._frameDuration,n=e-this._lastTickTime,r=t*.25;return n+(r<4?r:4)<t?V.NONE:(this._lastTickTime=n>=t?e-n%t:e,V.AUTO)}computeDeltaTime(e){let t=e-this._lastTime;return this.deltaTime=t,this._lastTime=e,t}},on={animation:null,update:W},sn=e=>{let t=on.animation;return t||(t={duration:U,computeDeltaTime:W,_offset:0,_delay:0,_head:null,_tail:null},on.animation=t,on.update=()=>{e.forEach(e=>{for(let t in e){let n=e[t],r=n._head;if(r){let e=r._valueType,t=e===B.COMPLEX||e===B.COLOR?J(r._fromNumbers):null,i=r._fromNumber,a=n._tail;for(;a&&a!==r;){if(t)for(let e=0,n=a._numbers.length;e<n;e++)t[e]+=a._numbers[e];else i+=a._number;a=a._prevAdd}r._toNumber=i,r._toNumbers=t}}}),$t(t,1,1,0,V.FORCE)}),t},cn=we?requestAnimationFrame:setImmediate,ln=we?cancelAnimationFrame:clearImmediate,un=class extends an{constructor(e){super(e),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=Xe,this.paused=!0,this.reqId=0}update(){let e=this._currentTime=tt();if(this.requestTick(e)){this.computeDeltaTime(e);let t=this._speed,n=this._fps,r=this._head;for(;r;){let i=r._next;r.paused?(jt(this,r),this._hasChildren=!!this._tail,r._running=!1,r.completed&&!r._cancelled&&r.cancel()):en(r,(e-r._startTime)*r._speed*t,0,0,r._fps<n?r.requestTick(e):V.AUTO),r=i}on.update()}}wake(){return this.useDefaultMainLoop&&!this.reqId&&(this.requestTick(tt()),this.reqId=cn(dn)),this}pause(){if(this.reqId)return this.paused=!0,fn()}resume(){if(this.paused)return this.paused=!1,Y(this,e=>e.resetTime()),this.wake()}get speed(){return this._speed*(G.timeScale===1?1:Ne)}set speed(e){let t=e*G.timeScale;this._speed!==t&&(this._speed=t,Y(this,e=>e.speed=e._speed))}get timeUnit(){return G.timeScale===1?`ms`:`s`}set timeUnit(e){let t=.001,n=e===`s`,r=n?t:1;if(G.timeScale!==r){G.timeScale=r,G.tickThreshold=200*r;let e=n?t:Ne;this.defaults.duration*=e,this._speed*=e}}get precision(){return G.precision}set precision(e){G.precision=e}},Z=(()=>{let e=new un(tt());return we&&(Qe.engine=e,Ee.addEventListener(`visibilitychange`,()=>{e.pauseOnDocumentHidden&&(Ee.hidden?e.pause():e.resume())})),e})(),dn=()=>{Z._head?(Z.reqId=cn(dn),Z.update()):Z.reqId=0},fn=()=>(ln(Z.reqId),Z.reqId=0,Z),pn={_rep:new WeakMap,_add:new Map},mn=(e,t,n=`_rep`)=>{let r=pn[n],i=r.get(e);return i||(i={},r.set(e,i)),i[t]?i[t]:i[t]={_head:null,_tail:null}},hn=(e,t)=>e._isOverridden||e._absoluteStartTime>t._absoluteStartTime,gn=e=>{e._isOverlapped=1,e._isOverridden=1,e._changeDuration=U,e._currentTime=U},_n=(e,t)=>{let n=e._composition;if(n===H.replace){let n=e._absoluteStartTime;Mt(t,e,hn,`_prevRep`,`_nextRep`);let r=e._prevRep;if(r){let t=r.parent,i=r._absoluteEndTime;if(e.parent.id!==t.id&&t.iterationCount>1&&i+(t.duration-t.iterationDuration)>n){gn(r);let e=r._prevRep;for(;e&&e.parent.id===t.id;)gn(e),e=e._prevRep}let a=e._absoluteUpdateStartTime;if(i>a){let e=r._startTime,t=q(a-(i-(e+r._updateDuration))-e,12);r._changeDuration=t,r._currentTime=t,r._isOverlapped=1,t<1e-11&&gn(r)}let o=e.parent.parent;if(!o||o!==t.parent){let e=!0;if(Y(t,t=>{t._isOverlapped||(e=!1)}),e){let e=t.parent;if(e){let n=!0;Y(e,e=>{e!==t&&Y(e,e=>{e._isOverlapped||(n=!1)})}),n&&e.cancel()}else t.cancel()}}}}else if(n===H.blend){let t=mn(e.target,e.property,`_add`),n=sn(pn._add),r=t._head;r||(r={...e},r._composition=H.replace,r._updateDuration=U,r._startTime=0,r._numbers=J(e._fromNumbers),r._number=0,r._next=null,r._prev=null,Mt(t,r),Mt(n,r));let i=e._toNumber;if(e._fromNumber=r._fromNumber-i,e._toNumber=0,e._numbers=J(e._fromNumbers),e._number=0,r._fromNumber=i,e._toNumbers.length){let t=J(e._toNumbers);t.forEach((t,n)=>{e._fromNumbers[n]=r._fromNumbers[n]-t,e._toNumbers[n]=0}),r._fromNumbers=t}Mt(t,e,null,`_prevAdd`,`_nextAdd`)}return e},vn=e=>{let t=e._composition;if(t!==H.none){let n=e.target,r=e.property,i=pn._rep.get(n)[r];if(jt(i,e,`_prevRep`,`_nextRep`),t===H.blend){let t=pn._add,i=t.get(n);if(!i)return;let a=i[r],o=on.animation;jt(a,e,`_prevAdd`,`_nextAdd`);let s=a._head;if(s&&s===a._tail){jt(a,s,`_prevAdd`,`_nextAdd`),jt(o,s);let e=!0;for(let t in i)if(i[t]._head){e=!1;break}e&&t.delete(n)}}}return e},yn=(e,t,n)=>{let r=!1;return Y(t,i=>{let a=i.target;if(e.includes(a)){let e=i.property,o=i._tweenType,s=nn(n,a,o);(!s||s&&s===e)&&(i.parent._tail===i&&i._tweenType===z.TRANSFORM&&i._prev&&i._prev._tweenType===z.TRANSFORM&&(i._prev._renderTransforms=1),jt(t,i),vn(i),r=!0)}},!0),r},bn=(e,t,n)=>{let r=t||Z,i;if(r._hasChildren){let t=0;Y(r,a=>{if(!a._hasChildren){if(i=yn(e,a,n),i&&!a._head)a.cancel(),jt(r,a);else{let e=a._offset+a._delay+a.duration;e>t&&(t=e)}}a._head?bn(e,a,n):a._hasChildren=!1},!0),K(r.iterationDuration)||(r.iterationDuration=t)}else i=yn(e,r,n);i&&!r._head&&(r._hasChildren=!1,r.cancel&&r.cancel())},xn=e=>(e.paused=!0,e.began=!1,e.completed=!1,e),Sn=e=>e._cancelled?(e._hasChildren?Y(e,Sn):Y(e,e=>{e._composition!==H.none&&_n(e,mn(e.target,e.property))}),e._cancelled=0,e):e,Cn=0,wn=(e,t)=>e._priority>t._priority,Tn=class extends an{constructor(e={},t=null,n=0){super(0),++Cn;let{id:r,delay:i,duration:a,reversed:o,alternate:s,loop:c,loopDelay:l,autoplay:u,frameRate:d,playbackRate:f,priority:p,onComplete:m,onLoop:h,onPause:g,onBegin:_,onBeforeUpdate:v,onUpdate:y}=e;Ze.current&&Ze.current.register(this);let b=t?0:Z._lastTickTime,x=t?t.defaults:G.defaults,S=ot(i)||K(i)?x.delay:+i,C=ot(a)||K(a)?1/0:+a,w=X(c,x.loop),T=X(l,x.loopDelay),E=w===!0||w===1/0||w<0?1/0:w+1,D=0;t?D=n:(Z.reqId||Z.requestTick(tt()),D=(Z._lastTickTime-Z._startTime)*G.timeScale),this.id=K(r)?Cn:r,this.parent=t,this.duration=Ot((C+T)*E-T)||1e-11,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=_||x.onBegin,this.onBeforeUpdate=v||x.onBeforeUpdate,this.onUpdate=y||x.onUpdate,this.onLoop=h||x.onLoop,this.onPause=g||x.onPause,this.onComplete=m||x.onComplete,this.iterationDuration=C,this.iterationCount=E,this._autoplay=!t&&X(u,x.autoplay),this._offset=D,this._delay=S,this._loopDelay=T,this._iterationTime=0,this._currentIteration=0,this._resolve=W,this._running=!1,this._reversed=+X(o,x.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=X(s,x.alternate),this._prev=null,this._next=null,this._lastTickTime=b,this._startTime=b,this._lastTime=b,this._fps=X(d,x.frameRate),this._speed=X(f,x.playbackRate),this._priority=+X(p,1)}get cancelled(){return!!this._cancelled}set cancelled(e){e?this.cancel():this.reset(!0).play()}get currentTime(){return Et(q(this._currentTime,G.precision),-this._delay,this.duration)}set currentTime(e){let t=this.paused;this.pause().seek(+e),t||this.resume()}get iterationCurrentTime(){return Et(q(this._iterationTime,G.precision),0,this.iterationDuration)}set iterationCurrentTime(e){this.currentTime=this.iterationDuration*this._currentIteration+e}get progress(){return Et(q(this._currentTime/this.duration,10),0,1)}set progress(e){this.currentTime=this.duration*e}get iterationProgress(){return Et(q(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(e){let t=this.iterationDuration;this.currentTime=t*this._currentIteration+t*e}get currentIteration(){return this._currentIteration}set currentIteration(e){this.currentTime=this.iterationDuration*Et(+e,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(e){e?this.reverse():this.play()}get speed(){return super.speed}set speed(e){super.speed=e,this.resetTime()}reset(e=!1){return Sn(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,en(this,0,1,~~e,V.FORCE),xn(this),this._hasChildren&&Y(this,xn),this}init(e=!1){this.fps=this._fps,this.speed=this._speed,!e&&this._hasChildren&&en(this,this.duration,1,~~e,V.FORCE),this.reset(e);let t=this._autoplay;return t===!0?this.resume():t&&!K(t.linked)&&t.link(this),this}resetTime(){let e=1/(this._speed*Z._speed);return this._startTime=tt()-(this._currentTime+this._delay)*e,this}pause(){return this.paused?this:(this.paused=!0,this.onPause(this),this)}resume(){return this.paused?(this.paused=!1,this.duration<=1e-11&&!this._hasChildren?en(this,U,0,0,V.FORCE):(this._running||=(Mt(Z,this,wn),Z._hasChildren=!0,!0),this.resetTime(),this._startTime-=12,Z.wake()),this):this}restart(){return this.reset().resume()}seek(e,t=0,n=0){Sn(this),this.completed=!1;let r=this.paused;return this.paused=!0,en(this,e+this._delay,~~t,~~n,V.AUTO),r?this:this.resume()}alternate(){let e=this._reversed,t=this.iterationCount,n=this.iterationDuration,r=t===1/0?St(Me/n):t;return this._reversed=+(this._alternate&&!(r%2)?e:!e),t===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*r-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?Y(this,e=>e.cancel(),!0):Y(this,vn),this._cancelled=1,this.pause()}stretch(e){let t=this.duration,n=kt(e);if(t===n)return this;let r=e/t,i=e<=U;return this.duration=i?U:n,this.iterationDuration=i?U:kt(this.iterationDuration*r),this._offset*=r,this._delay*=r,this._loopDelay*=r,this}revert(){en(this,0,1,0,V.AUTO);let e=this._autoplay;return e&&e.linked&&e.linked===this&&e.revert(),this.cancel()}complete(e=0){return this.seek(this.duration,e).cancel()}then(e=W){let t=this.then,n=()=>{this.then=null,e(this),this.then=t,this._resolve=W};return new Promise(e=>(this._resolve=()=>e(n()),this.completed&&this._resolve(),this))}};function En(e){let t=at(e)?Ze.root.querySelectorAll(e):e;if(t instanceof NodeList||t instanceof HTMLCollection)return t}function Dn(e){if(st(e))return[];if(!we)return nt(e)&&e.flat(1/0)||[e];if(nt(e)){let t=e.flat(1/0),n=[];for(let e=0,r=t.length;e<r;e++){let r=t[e];if(!st(r)){let e=En(r);if(e)for(let t=0,r=e.length;t<r;t++){let r=e[t];if(!st(r)){let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}else{let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}}return n}let t=En(e);return t?Array.from(t):[e]}function On(e){let t=Dn(e),n=t.length;for(let e=0;e<n;e++){let n=t[e];if(!n[De]){n[De]=!0;let e=ct(n);(n.nodeType||e)&&(n[Oe]=!0,n[ke]=e,n[Ae]={})}}return t}var kn={deg:1,rad:180/wt,turn:360},An={},jn=(e,t,n,r=!1)=>{let i=t.u,a=t.n;if(t.t===B.UNIT&&i===n)return t;let o=a+i+n,s=An[o];if(!K(s)&&!r)t.n=s;else{let r;if(i in kn)r=a*kn[i]/kn[n];else{let t=e.cloneNode(),o=e.parentNode,s=o&&o!==Ee?o:Ee.body;s.appendChild(t);let c=t.style;c.width=100+i;let l=t.offsetWidth||100;c.width=100+n;let u=l/(t.offsetWidth||100);s.removeChild(t),r=u*a}t.n=r,An[o]=r}return t.t,B.UNIT,t.u=n,t},Mn=e=>e,Nn=(e=1.68)=>t=>_t(t,+e),Pn={in:e=>t=>e(t),out:e=>t=>1-e(1-t),inOut:e=>t=>t<.5?e(t*2)/2:1-e(t*-2+2)/2,outIn:e=>t=>t<.5?(1-e(1-t*2))/2:(e(t*2-1)+1)/2},Fn=wt/2,In=wt*2,Ln={"":Nn,Quad:Nn(2),Cubic:Nn(3),Quart:Nn(4),Quint:Nn(5),Sine:e=>1-bt(e*Fn),Circ:e=>1-vt(1-e*e),Expo:e=>e?_t(2,10*e-10):0,Bounce:e=>{let t,n=4;for(;e<((t=_t(2,--n))-1)/11;);return 1/_t(4,3-n)-7.5625*_t((t*3-2)/22-e,2)},Back:(e=1.7)=>t=>(+e+1)*t*t*t-+e*t*t,Elastic:(e=1,t=.3)=>{let n=Et(+e,1,10),r=Et(+t,U,2),i=r/In*Ct(1/n),a=In/r;return e=>e===0||e===1?e:-n*_t(2,-10*(1-e))*yt((1-e-i)*a)}},Rn=(()=>{let e={linear:Mn,none:Mn};for(let t in Pn)for(let n in Ln){let r=Ln[n],i=Pn[t];e[t+n]=n===``||n===`Back`||n===`Elastic`?(e,t)=>i(r(e,t)):i(r)}return e})(),zn={linear:Mn,none:Mn},Bn=e=>{if(zn[e])return zn[e];if(e.indexOf(`(`)<=-1){let t=Pn[e]||e.includes(`Back`)||e.includes(`Elastic`)?Rn[e]():Rn[e];return t?zn[e]=t:Mn}{let t=e.slice(0,-1).split(`(`),n=Rn[t[0]];return n?zn[e]=n(...t[1].split(`,`)):Mn}},Vn=[`steps(`,`irregular(`,`linear(`,`cubicBezier(`],Hn=e=>{if(at(e)){for(let t=0,n=Vn.length;t<n;t++)if(et(e,Vn[t]))return console.warn(`String syntax for \`ease: "${e}"\` has been removed from the core and replaced by importing and passing the easing function directly: \`ease: ${e}\``),Mn}return ot(e)?e:at(e)?Bn(e):Mn},Q=Jt(),$=Jt(),Un={},Wn={func:null},Gn={func:null},Kn=[null],qn=[null,null],Jn={to:null},Yn=0,Xn=0,Zn,Qn,$n=(e,t)=>{let n={};if(nt(e)){let t=[].concat(...e.map(e=>Object.keys(e))).filter(pt);for(let r=0,i=t.length;r<i;r++){let i=t[r];n[i]=e.map(e=>{let t={};for(let n in e){let r=e[n];pt(n)?n===i&&(t.to=r):t[n]=r}return t})}}else{let r=X(t.duration,G.defaults.duration);Object.keys(e).map(t=>({o:parseFloat(t)/100,p:e[t]})).sort((e,t)=>e.o-t.o).forEach(e=>{let t=e.o,i=e.p;for(let e in i)if(pt(e)){let a=n[e];a||=n[e]=[];let o=t*r,s=a.length,c=a[s-1],l={to:i[e]},u=0;for(let e=0;e<s;e++)u+=a[e].duration;s===1&&(l.from=c.to),i.ease&&(l.ease=i.ease),l.duration=o-(s?u:0),a.push(l)}return e});for(let e in n){let t=n[e],r;for(let e=0,n=t.length;e<n;e++){let n=t[e],i=n.ease;n.ease=r||void 0,r=i}t[0].duration||t.shift()}}return n},er=class extends Tn{constructor(e,t,n,r,i=!1,a=0,o){super(t,n,r),this._head,this._tail,++Xn;let s=On(e),c=s.length,l=t.keyframes,u=l?At($n(l,t),t):t,{id:d,delay:f,duration:p,ease:m,playbackEase:h,modifier:g,composition:_,onRender:v}=u,y=n?n.defaults:G.defaults,b=X(m,y.ease),x=X(h,y.playbackEase),S=x?Hn(x):null,C=!K(b.ease),w=C?b.ease:X(m,S?`linear`:y.ease),T=C?b.settlingDuration:X(p,y.duration),E=X(f,y.delay),D=g||y.modifier,O=K(_)&&c>=1e3?H.none:K(_)?y.composition:_,k=this._offset+(n?n._offset:0);C&&(b.parent=this);let A=NaN,j=NaN,M=0,N=0;for(let e=0;e<c;e++){let t=s[e],r=a||e,c=o||s,l=NaN,d=NaN;for(let e in u)if(pt(e)){let a=Wt(t,e),o=It(t,e),s=nn(e,t,a),f=u[e],p=nt(f);if(i&&!p&&(qn[0]=f,qn[1]=f,f=qn),p){let e=f.length,t=!rt(f[0]);e===2&&t?(Jn.to=f,Kn[0]=Jn,Zn=Kn):e>2&&t?(Zn=[],f.forEach((e,t)=>{t?t===1?(qn[1]=e,Zn.push(qn)):Zn.push(e):qn[0]=e})):Zn=f}else Kn[0]=f,Zn=Kn;let m=null,h=null,g=NaN,_=0,v=0;for(let e=Zn.length;v<e;v++){let i=Zn[v];rt(i)?Qn=i:(Jn.to=i,Qn=Jn),Wn.func=null,Gn.func=null;let l=Ut(X(Qn.composition,O),t,r,c,null,null),u=it(l)?l:H[l];!m&&u!==H.none&&(m=mn(t,s));let d=m?m._tail:null,f=n&&d&&d.parent.parent===n?d:h,p=Ut(Qn.to,t,r,c,Wn,f),y;rt(p)&&!K(p.to)?(Qn=p,y=p.to):y=p;let b=Ut(Qn.from,t,r,c,Gn,f),x=Qn.ease||w,S=Ut(x,t,r,c,null,f),C=ot(S)||at(S)?S:x,A=!K(C)&&!K(C.ease),j=A?C.ease:C,P=A?C.settlingDuration:Ut(X(Qn.duration,e>1?Ut(T,t,r,c,null,f)/e:T),t,r,c,null,f),ee=Ut(X(Qn.delay,v?0:E),t,r,c,null,f),F=Qn.modifier||D,te=!K(b),ne=!K(y),re=nt(y),ie=re||te&&ne,ae=h?_:0,oe=h?_+ee:ee,se=q(k+oe,12),ce=q(k+ae,12);!N&&(te||re)&&(N=1);let I=h;if(u!==H.none){let e=m._head;for(;e&&e._absoluteStartTime<=se;)if(e._isOverridden||(I=e),e=e._nextRep,e&&e._absoluteStartTime>=se)for(;e;)gn(e),e=e._nextRep}if(ie){Yt(re?Ut(y[0],t,r,c,Gn,f):b,Q),Yt(re?Ut(y[1],t,r,c,Wn,f):y,$);let e=Kt(t,s,a,Un);Q.t===B.NUMBER&&(I?I._valueType===B.UNIT&&(Q.t=B.UNIT,Q.u=I._unit):(Yt(e,Zt),Zt.t===B.UNIT&&(Q.t=B.UNIT,Q.u=Zt.u)))}else ne?Yt(y,$):h?Xt(h,$):Yt(n&&I&&I.parent.parent===n?I._value:Kt(t,s,a,Un),$),te?Yt(b,Q):h?Xt(h,Q):Yt(n&&I&&I.parent.parent===n?I._value:Kt(t,s,a,Un),Q);if(Q.o&&(Q.n=qt(I?I._toNumber:Yt(Kt(t,s,a,Un),Zt).n,Q.n,Q.o)),$.o&&($.n=qt(Q.n,$.n,$.o)),Q.t!==$.t){if(Q.t===B.COMPLEX||$.t===B.COMPLEX){let e=Q.t===B.COMPLEX?Q:$,t=Q.t===B.COMPLEX?$:Q;t.t=B.COMPLEX,t.s=J(e.s),t.d=e.d.map(()=>t.n)}else if(Q.t===B.UNIT||$.t===B.UNIT){let e=Q.t===B.UNIT?Q:$,t=Q.t===B.UNIT?$:Q;t.t=B.UNIT,t.u=e.u}else if(Q.t===B.COLOR||$.t===B.COLOR){let e=Q.t===B.COLOR?Q:$,t=Q.t===B.COLOR?$:Q;t.t=B.COLOR,t.d=e.d.map(()=>0)}}if(Q.u!==$.u){let e=$.u?Q:$;e=jn(t,e,$.u?$.u:Q.u,!1)}if($.d&&Q.d&&$.d.length!==Q.d.length){let e=Q.d.length>$.d.length?Q:$,t=e===Q?$:Q;t.d=e.d.map((e,n)=>K(t.d[n])?0:t.d[n]),t.s=J(e.s)}let L=q(+P||1e-11,12),le=Un[s];st(le)||(Un[s]=null);let ue=o?o.set:null;_=q(oe+L,12);let de=Q.d,fe=$.d,pe=$.s,R={parent:this,id:Yn++,property:s,target:t,_value:null,_toFunc:Wn.func,_fromFunc:Gn.func,_ease:Hn(j),_fromNumbers:de?J(de):Pe,_toNumbers:fe?J(fe):Pe,_strings:pe?J(pe):Pe,_fromNumber:Q.n,_toNumber:$.n,_numbers:de?J(de):Pe,_number:Q.n,_unit:$.u,_modifier:F,_currentTime:0,_startTime:oe,_delay:+ee,_updateDuration:L,_changeDuration:L,_absoluteStartTime:se,_absoluteUpdateStartTime:ce,_absoluteEndTime:q(k+_,12),_hasFromValue:te||re?1:0,_tweenType:a,_setter:ue,_valueType:$.t,_composition:u,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_inlineValue:le,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};u!==H.none&&_n(R,m);let me=R._valueType;if(me===B.COMPLEX)R._value=Qt(R,1,-1);else if(me===B.UNIT)R._value=`${F(R._toNumber)}${R._unit}`;else if(me===B.COLOR){let e=$.d;R._value=`rgba(${q(e[0],0)},${q(e[1],0)},${q(e[2],0)},${e[3]})`}else R._value=F(R._toNumber);isNaN(g)&&(g=R._startTime),h=R,M++,Mt(this,R)}(isNaN(j)||g<j)&&(j=g),(isNaN(A)||_>A)&&(A=_),a===z.TRANSFORM&&(l=M-v,d=M)}if(!isNaN(l)){let e=0;Y(this,t=>{e>=l&&e<d&&(t._renderTransforms=1,t._composition===H.blend&&Y(on.animation,e=>{e.id===t.id&&(e._renderTransforms=1)})),e++})}}c||console.warn(`No target found. Make sure the element you're trying to animate is accessible before creating your animation.`),j?(Y(this,e=>{e._startTime-e._delay||(e._delay-=j),e._startTime-=j}),A-=j):j=0,A||(A=U,this.iterationCount=0),this.targets=s,this.id=K(d)?Xn:d,this.duration=A===1e-11?U:Ot((A+this._loopDelay)*this.iterationCount-this._loopDelay)||1e-11,this.onRender=v||y.onRender,this._ease=S,this._delay=j,this.iterationDuration=A,!this._autoplay&&N&&this.onRender(this)}stretch(e){let t=this.duration;if(t===kt(e))return this;let n=e/t;return Y(this,e=>{e._updateDuration=kt(e._updateDuration*n),e._changeDuration=kt(e._changeDuration*n),e._currentTime*=n,e._delay*=n,e._startTime*=n,e._absoluteStartTime*=n,e._absoluteUpdateStartTime*=n,e._absoluteEndTime*=n}),super.stretch(e)}refresh(){return Y(this,e=>{let t=e._toFunc,n=e._fromFunc;(t||n)&&(n?(Yt(n(),Q),Q.u!==e._unit&&e.target[Oe]&&jn(e.target,Q,e._unit,!0),e._fromNumbers=J(Q.d),e._fromNumber=Q.n):t&&(Yt(Kt(e.target,e.property,e._tweenType),Zt),e._fromNumbers=J(Zt.d),e._fromNumber=Zt.n),t&&(Yt(t(),$),e._toNumbers=J($.d),e._strings=J($.s),e._toNumber=$.o?qt(e._fromNumber,$.n,$.o):$.n))}),this.duration===1e-11&&this.restart(),this}revert(){return super.revert(),rn(this)}then(e){return super.then(e)}},tr=(e,t)=>{if(et(t,`<`)){let n=t[1]===`<`,r=e._tail,i=r?r._offset+r._delay:0;return n?i:i+r.duration}},nr=(e,t)=>{let n=e.iterationDuration;if(n===1e-11&&(n=0),K(t))return n;if(it(+t))return+t;let r=t,i=e?e.labels:null,a=!st(i),o=tr(e,r),s=!K(o),c=Je.exec(r);if(c){let e=c[0],t=r.split(e),l=a&&t[0]?i[t[0]]:n;return qt(s?o:a?l:n,+t[1],e[0])}return s?o:a?K(i[r])?n:i[r]:n};function rr(e){return Ot((e.iterationDuration+e._loopDelay)*e.iterationCount-e._loopDelay)||1e-11}function ir(e,t,n,r,i,a){let o=it(e.duration)&&e.duration<=1e-11?n-U:n;t.composition&&en(t,o,1,1,V.AUTO);let s=r?new er(r,e,t,o,!1,i,a):new Tn(e,t,o);return t.composition&&s.init(!0),Mt(t,s),Y(t,e=>{let n=e._offset+e._delay+e.duration;n>t.iterationDuration&&(t.iterationDuration=n)}),t.duration=rr(t),t}var ar=0,or=class extends Tn{constructor(e={}){super(e,null,0),++ar,this.id=K(e.id)?ar:e.id,this.duration=0,this.labels={};let t=e.defaults,n=G.defaults;this.defaults=t?At(t,n):n,this.composition=X(e.composition,!0),this.onRender=e.onRender||n.onRender;let r=X(e.playbackEase,n.playbackEase);this._ease=r?Hn(r):null,this.iterationDuration=0}add(e,t,n){let r=rt(t),i=rt(e);if(r||i){if(this._hasChildren=!0,r){let r=t,i=G.editor&&G.editor.addTimelineChild,a=n&&n.type===`Stagger`&&G.editor,o=ot(n)?n:null;if(o||a){let t=Dn(e),a=this.duration,s=this.iterationDuration,c=r.id,l=0,u=t.length,d=i?i(e,r,this.id,n,u):null,f=o||G.editor.resolveStagger(n.defaultValue);t.forEach(e=>{let n={...d||r};this.duration=a,this.iterationDuration=s,K(c)||(n.id=c+`-`+l);let i=nr(this,f(e,l,t,null,this));ir(n,this,i,e,l,t),l++})}else{let t=i?i(e,r,this.id,n):r,a=n&&n.type?n.defaultValue:n;ir(t,this,nr(this,a),e)}}else ir(e,this,nr(this,t));return this.composition&&this.init(!0),this}}sync(e,t){if(K(e)||e&&K(e.pause))return this;e.pause();let n=+(e.effect?e.effect.getTiming().duration:e.duration);!K(e)&&!K(e.persist)&&(e.persist=!0);let r=G.editor,i=r&&r.addTimelineChild;r&&r.addTimelineSync&&(t=r.addTimelineSync(e,t,this.id),r.addTimelineChild=null);let a=this.add(e,{currentTime:[0,n],duration:n,delay:0,ease:`linear`,playbackEase:`linear`},t);return r&&(r.addTimelineChild=i),a}set(e,t,n){return K(t)?this:(t.duration=U,t.composition=H.replace,this.add(e,t,n))}call(e,t){return K(e)||e&&!ot(e)?this:(G.editor&&G.editor.addTimelineCall&&(t=G.editor.addTimelineCall(e,t,this.id)),this.add({duration:0,delay:0,onComplete:()=>e(this)},t))}label(e,t){return K(e)||e&&!at(e)?this:(G.editor&&G.editor.addTimelineLabel&&(t=G.editor.addTimelineLabel(e,t,this.id)),this.labels[e]=nr(this,t),this)}remove(e,t){return bn(Dn(e),this,t),this}stretch(e){let t=this.duration;if(t===kt(e))return this;let n=e/t,r=this.labels;Y(this,e=>e.stretch(e.duration*n));for(let e in r)r[e]*=n;return super.stretch(e)}refresh(){return Y(this,e=>{e.refresh&&e.refresh()}),this}revert(){return super.revert(),Y(this,e=>e.revert,!0),rn(this)}then(e){return super.then(e)}},sr=e=>G.editor?G.editor.addTimeline(e):new or(e).init(),cr=(e=0,t=1,n=0)=>{let r=10**n;return Math.floor((Math.random()*(t-e+1/r)+e)*r)/r},lr=0,ur=(e,t=0,n=1,r=0)=>{let i=e===void 0?lr++:e;return(e=t,a=n,o=r)=>{i+=1831565813,i=Math.imul(i^i>>>15,i|1),i^=i+Math.imul(i^i>>>7,i|61);let s=10**o;return Math.floor((((i^i>>>14)>>>0)/4294967296*(a-e+1/s)+e)*s)/s}},dr=(e,t=cr)=>{let n=e.length,r,i;for(;n;)i=t(0,--n),r=e[n],e[n]=e[i],e[i]=r;return e},fr=(e,t={})=>{let n=[],r=0,i,a=null,o=t.from,s=t.reversed,c=t.ease,l=!K(c),u=l&&!K(c.ease)?c.ease:l?Hn(c):null,d=t.grid,f=d===!0,p=t.axis,m=t.total,h=K(o)||o===0||o===`first`,g=o===`center`,_=o===`last`,v=o===`random`,y=nt(o),b=nt(e),x=t.use,S=gt(b?e[0]:e),C=b?gt(e[1]):0,w=Ke.exec((b?e[1]:e)+``),T=t.start||0+(b?S:0),E=t.seed,D=!K(E)&&E!==!1?ur(E===!0?0:E):cr,O=t.jitter,k=!K(O),A=nt(O),j=A?O[0]:O||0,M=A?O[1]:O||0,N=h?0:it(o)?o:0;return(e,c,l,h,E)=>{let[O]=On(e),A=K(m)?l.length:m,P=K(x)?!1:ot(x)?x(O,c,A):Kt(O,x),ee=it(P)||at(P)&&it(+P)?+P:c,F=ee>=0&&ee<A?ee:c;if(g&&(N=(A-1)/2),_&&(N=A-1),!n.length){if(f){let e=!0,t=!1,r=1/0,i=1/0,a=1/0,s=-1/0,c=-1/0,u=-1/0,d=[],f=[],m=[];for(let n=0;n<A;n++){let o=l[n],p=0,h=0,g=0,_=!1;if(o&&ot(o.getBoundingClientRect)){let e=o.getBoundingClientRect();p=e.left+e.width/2,h=e.top+e.height/2,_=!0}else{let e=o;e&&it(e.x)&&it(e.y)&&(p=e.x,h=e.y,it(e.z)&&(g=e.z,t=!0),_=!0)}if(!_){e=!1;break}d.push(p),f.push(h),m.push(g),p<r&&(r=p),h<i&&(i=h),g<a&&(a=g),p>s&&(s=p),h>c&&(c=h),g>u&&(u=g)}if(e){let e=d[0],l=f[0],h=m[0];y?(e=r+o[0]*(s-r),l=i+o[1]*(c-i),h=t?a+(o.length>=3?o[2]:.5)*(u-a):0):g?(e=(r+s)/2,l=(i+c)/2,h=(a+u)/2):_?(e=d[A-1],l=f[A-1],h=m[A-1]):it(o)&&(e=d[o],l=f[o],h=m[o]);for(let r=0;r<A;r++){let i=e-d[r],a=l-f[r],o=h-m[r],s=vt(i*i+a*a+(t?o*o:0));p===`x`&&(s=-i),p===`y`&&(s=-a),p===`z`&&(s=-o),n.push(s)}let v=1/0;for(let e=0;e<A;e++){let t=xt(n[e]);t>0&&t<v&&(v=t)}if(v>0&&v<1/0)for(let e=0;e<A;e++)n[e]=n[e]/v}else for(let e=0;e<A;e++)n.push(xt(N-e))}else for(let e=0;e<A;e++)if(!d)n.push(xt(N-e));else{let t=d.length,r=d[0]*d[1],i,a,s;y?(i=o[0]*(d[0]-1),a=o[1]*(d[1]-1),s=t===3?(o.length>=3?o[2]:.5)*(d[2]-1):0):g?(i=(d[0]-1)/2,a=(d[1]-1)/2,s=t===3?(d[2]-1)/2:0):(i=N%d[0],a=St(N/d[0])%d[1],s=t===3?St(N/r):0);let c=e%d[0],l=St(e/d[0])%d[1],u=t===3?St(e/r):0,f=i-c,m=a-l,h=s-u,_=vt(f*f+m*m+(t===3?h*h:0));p===`x`&&(_=-f),p===`y`&&(_=-m),p===`z`&&(_=-h),n.push(_)}r=n[0];for(let e=1;e<A;e++)n[e]>r&&(r=n[e]);if(u||s)for(let e=0;e<A;e++){let t=n[e];u&&(t=u(t/r)*r),s&&(t=p?-t:xt(r-t)),n[e]=t}if(k){a=Array(A);for(let e=0;e<A;e++)a[e]=D(-1,1,4)}v&&(n=dr(n,D))}let te=b?(C-S)/r:S;K(i)&&(i=E?nr(E,K(t.start)?E.iterationDuration:T):T);let ne=i+(te*q(n[F],2)||0);if(k){let e=r?n[F]/r:0,t=j+(M-j)*e;ne+=a[F]*t}return t.modifier&&(ne=t.modifier(ne)),w&&(ne=`${ne}${w[2]}`),ne}},pr={number:9,additions:1358,deletions:156,files:37},mr=[{key:`store`,category:`api`,additions:363,deletions:3,files:8,expanded:!0},{key:`ui`,category:`ui`,additions:331,deletions:31,files:11,expanded:!0},{key:`refactor`,category:`core`,additions:182,deletions:77,files:9,expanded:!0},{key:`tests`,category:`tests`,additions:353,deletions:1,files:4},{key:`docs`,category:`docs`,additions:129,deletions:44,files:5}],hr=[{path:`app/stores/shared-analysis-store.ts`,group:0},{path:`app/components/diff/ShareResultModal.vue`,group:1},{path:`.agents/01-architecture.md`,group:4},{path:`app/providers/github/shared-analysis-comment.ts`,group:0},{path:`app/stores/diffs-store.ts`,group:2},{path:`app/stores/diffs-store.test.ts`,group:3},{path:`app/stores/shared-analysis-store.test.ts`,group:3},{path:`pnpm-lock.yaml`,group:4},{path:`app/components/diff/DiffsHeader.vue`,group:1},{path:`app/cache/pr-cache.ts`,group:0},{path:`test/fixtures/shared-analysis/comment.json`,group:3},{path:`app/stores/reviews-store.ts`,group:2},{path:`app/components/diff/share-result.css`,group:1},{path:`plans/07-share-result.md`,group:4},{path:`plans/04-local-provider.md`,group:4}],gr={flat:2e3,morph:1200,grouped:1e3,review:700,complete:2e3,reset:500};function _r(e){let t=[],n=0,r=(e,r)=>{t.push({name:e,at:n,duration:r}),n+=r};r(`flat`,gr.flat),r(`morph`,gr.morph),r(`grouped`,gr.grouped);for(let t=0;t<e;t++)r(`review-${t}`,gr.review);return r(`complete`,gr.complete),r(`reset`,gr.reset),t}function vr(e,t){let n=e.find(e=>e.name===t);if(!n)throw Error(`[LandingDemo] no beat named ${t}`);return n}var yr={key:0,class:`mb2 text-xs font-mono op-fade`},br={class:`flex items-start gap-2`},xr={class:`min-w-0 flex-1`},Sr={class:`flex items-start gap-3`},Cr={class:`min-w-0 flex-1 text-sm font-medium leading-snug`},wr={class:`op-fade`},Tr={class:`grid grid-cols-1 mt-1.5`},Er={class:`whitespace-nowrap op-fade`},Dr={class:`op-fade`},Or={class:`min-w-0 truncate`},kr={class:`op-fade`},Ar={"data-tail":``,class:`h-8 flex items-center op-fade`},jr={"data-label":``,class:`min-w-0 truncate text-sm font-medium`},Mr={class:`whitespace-nowrap op-fade`},Nr={class:`grid size-4 shrink-0 place-items-center color-accent-teal`},Pr={key:0,class:`flex flex-col pl-5`},Fr=[`data-target`],Ir={class:`min-w-0 truncate`},Lr={class:`op-fade`},Rr={class:`op-fade`},zr=D({__name:`LandingDemo`,props:{still:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0}},setup(o){let u=o,_=S(),x=c(()=>u.still||_.value===`reduce`),w=k(`root`),T=k(`body`),E=mr.map(()=>l({value:0})),D=v(!1);function A(e){let t=e.lastIndexOf(`/`);return{dir:e.slice(0,t+1),base:e.slice(t+1)}}let j=hr.map(e=>({...e,...A(e.path)})),M=pr.files-hr.length,N=mr.map((e,t)=>{let n=j.filter(e=>e.group===t);return{...e,shown:e.expanded?n:[],hidden:e.files-n.length}}),P,ee=!1;function F(e){return Array.from(w.value?.querySelectorAll(e)??[])}function ne(){if(!w.value||!T.value)return;let e=_r(mr.length),t=vr(e,`morph`),n=vr(e,`reset`),r=F(`[data-row]`),i=F(`[data-card]`),a=F(`[data-detail]`),o=F(`[data-donut]`),s=F(`[data-check]`),[c]=F(`[data-total]`),[l]=F(`[data-summary]`),[u]=F(`[data-tail]`),[d]=F(`[data-grouped]`),f=sr({loop:!0,autoplay:!1,defaults:{ease:`inOutQuad`}});f.add(T.value,{opacity:[0,1],duration:400},0),c&&f.add(c,{opacity:0,duration:400},t.at),l&&f.add(l,{opacity:[0,1],duration:400},t.at+300),u&&f.add(u,{opacity:0,duration:300},t.at);let p=t.at+t.duration*.3;f.call(()=>D.value=!0,p),f.call(()=>D.value=!1,n.at),d&&f.set(d,{opacity:1},p),f.add(i,{opacity:[0,1],y:[12,0],duration:500,delay:fr(60)},p);let m=t.duration*.55;r.forEach((e,n)=>{let r=j[n],i=e.getBoundingClientRect(),a=t.at+n*30,o=w.value.querySelector(`[data-target="${r.path}"]`);if(o){let t=o.getBoundingClientRect();f.add(e,{x:t.left-i.left,y:t.top-i.top,duration:m,ease:`inOutCubic`},a),f.set(e,{opacity:0},a+m),f.set(o,{opacity:1},a+m)}else f.add(e,{opacity:0,duration:m*.6},a)}),f.add(a,{opacity:[0,1],duration:300,delay:fr(60)},t.at+m),mr.forEach((t,n)=>{let r=vr(e,`review-${n}`),i=r.duration*.7;f.add(E[n],{value:1,duration:i},r.at),f.add(o[n],{opacity:0,duration:150},r.at+i),f.add(s[n],{opacity:[0,1],scale:[0,1],duration:300,ease:`outBack`},r.at+i)}),f.add(T.value,{opacity:0,duration:n.duration},n.at),P=f,ee&&f.play()}function re(){P?.revert(),P=void 0,D.value=!1}function ie(){re(),x.value||ne()}let ae=0;return m(()=>{ae=w.value?.clientWidth??0,ie()}),t(re),C(x,ie),b(w,a(([e])=>{let t=e?.contentRect.width??0;t!==ae&&(ae=t,ie())},200)),O(w,([e])=>{ee=e?.isIntersecting??!1,ee?P?.play():P?.pause()}),(t,a)=>(n(),d(`div`,{ref_key:`root`,ref:w,class:`select-none rounded-lg p4 text-xs lt-md:border lt-md:border-base`,"aria-hidden":`true`},[o.showHeader?(n(),d(`h2`,yr,i(t.$t(x.value||D.value?`landing.demoAfter`:`landing.demoBefore`)),1)):s(``,!0),g(`div`,br,[e(te,{state:`open`,class:`mt-0.5`}),g(`div`,xr,[g(`div`,Sr,[g(`div`,Cr,[h(i(t.$t(`landing.demoTitle`))+` `,1),g(`span`,wr,`#`+i(y(pr).number),1)])]),g(`div`,Tr,[g(`span`,{"data-total":``,class:r([`col-start-1 row-start-1 flex items-center self-start gap-2`,{"op-0":x.value}])},[e(pe,{additions:y(pr).additions,deletions:y(pr).deletions},null,8,[`additions`,`deletions`]),g(`span`,Er,i(t.$t(`common.files`,{n:y(pr).files},y(pr).files)),1)],2),g(`span`,{"data-summary":``,class:r([`col-start-1 row-start-1 flex items-start gap-1.5`,{"op-0":!x.value}])},[a[0]||=g(`span`,{class:`i-ph-sparkle-duotone mt-0.5 shrink-0 color-accent-magenta`},null,-1),g(`span`,Dr,i(t.$t(`landing.demoSummary`)),1)],2)])])]),g(`div`,{ref_key:`body`,ref:T,class:`grid grid-cols-1 mt-4 pl-6`},[g(`ul`,{class:r([`col-start-1 row-start-1 mt--5 flex flex-col pl2`,{"op-0":x.value}])},[(n(!0),d(p,null,f(y(j),t=>(n(),d(`li`,{key:t.path,"data-row":``,class:`h-6 flex origin-left items-center gap-1`},[e(fe,{path:t.path,class:`shrink-0`},null,8,[`path`]),g(`span`,Or,[g(`span`,kr,i(t.dir),1),h(i(t.base),1)])]))),128)),g(`li`,Ar,i(t.$t(`landing.moreFiles`,{n:M})),1)],2),g(`div`,{"data-grouped":``,class:r([`col-start-1 row-start-1 flex flex-col gap-2`,{"op-0":!x.value}])},[(n(!0),d(p,null,f(y(N),(o,c)=>(n(),d(`div`,{key:o.key,class:`flex flex-col`},[g(`div`,{"data-card":``,class:r([`ml--5 flex items-center gap-2 py-1`,{"op-0":!x.value}])},[g(`span`,{class:r([`shrink-0 op-fade`,o.expanded?`i-ph-caret-down-bold`:`i-ph-caret-right-bold`])},null,2),e(ue,{category:o.category,class:`text-sm`},null,8,[`category`]),g(`span`,jr,i(t.$t(`landing.demoGroups.${o.key}`)),1),a[1]||=g(`span`,{class:`flex-1`},null,-1),e(pe,{additions:o.additions,deletions:o.deletions},null,8,[`additions`,`deletions`]),g(`span`,Mr,i(t.$t(`common.files`,{n:o.files},o.files)),1),g(`span`,Nr,[g(`span`,{"data-donut":``,class:r([`col-start-1 row-start-1 flex`,{"op-0":x.value}])},[e(le,{value:x.value?1:y(E)[c].value,size:14,thickness:2.5,color:`currentColor`},null,8,[`value`])],2),g(`span`,{"data-check":``,class:r([`i-ph-check-circle-duotone col-start-1 row-start-1 m--0.5 text-base`,{"op-0":!x.value}])},null,2)])],2),o.shown.length?(n(),d(`ul`,Pr,[(n(!0),d(p,null,f(o.shown,t=>(n(),d(`li`,{key:t.path,"data-target":t.path,class:r([`h-6 flex items-center gap-1`,{"op-0":!x.value}])},[e(fe,{path:t.path,class:`shrink-0`},null,8,[`path`]),g(`span`,Ir,[g(`span`,Lr,i(t.dir),1),h(i(t.base),1)])],10,Fr))),128)),o.hidden?(n(),d(`li`,{key:0,"data-detail":``,class:r([`h-6 flex items-center`,{"op-0":!x.value}])},[g(`span`,Rr,i(t.$t(`landing.moreFiles`,{n:o.hidden})),1)],2)):s(``,!0)])):s(``,!0)]))),128))],2)],512)],512))}}),Br={class:`mt-2 max-w-full overflow-x-auto border border-base rounded-md bg-code p-3 text-xs leading-relaxed`},Vr={key:0},Hr={key:1},Ur=D({__name:`GuideCode`,props:{code:{},lang:{}},setup(e){let t=e,r=v();return x(async()=>{let{light:e,dark:n}=re.value,i=await de({themes:[e,n],langs:[t.lang]});r.value=i.codeToTokens(t.code,{lang:t.lang,themes:{light:e,dark:n},defaultColor:`light-dark()`}).tokens}),(t,a)=>(n(),d(`pre`,Br,[r.value?(n(),d(`code`,Vr,[(n(!0),d(p,null,f(r.value,(e,t)=>(n(),d(p,{key:t},[h(i(t?`
2
+ `:``),1),(n(!0),d(p,null,f(e,(e,t)=>(n(),d(`span`,{key:t,style:o(e.htmlStyle)},i(e.content),5))),128))],64))),128))])):(n(),d(`code`,Hr,i(e.code),1))]))}}),Wr={key:0,class:`flex flex-col gap-4 text-sm`},Gr={class:`leading-relaxed`},Kr={class:`flex flex-col list-decimal gap-3 pl-5`},qr={class:`mt-2 flex`},Jr={class:`color-base`},Yr={class:`mt-2 flex`},Xr=`# .github/workflows/pulls-review.yml
3
+ name: pulls.review
4
+ on:
5
+ # Only reads the diff through the API and never checks out PR code,
6
+ # so \`pull_request_target\` is safe and fork PRs get a comment too.
7
+ pull_request_target:
8
+ types: [opened, synchronize, reopened]
9
+
10
+ permissions:
11
+ pull-requests: write
12
+
13
+ jobs:
14
+ analyze:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: antfu/pulls.review@main
18
+ with:
19
+ api-key: \${{ secrets.VERCEL_AI_GATEWAY_API_KEY }}`,Zr=`npx pulls.review main...feat # what feat adds since it forked from main
20
+ npx pulls.review HEAD # the last commit
21
+ npx pulls.review --worktree # uncommitted changes, new files included`,Qr=D({__name:`LandingGuideModal`,props:{guide:{required:!0},guideModifiers:{}},emits:[`update:guide`],setup(t){let r=E(t,`guide`);return(t,a)=>{let o=u(`i18n-t`);return n(),_(F,{open:!!r.value,title:r.value&&t.$t(`guide.${r.value}.title`),padding:`medium`,"onUpdate:open":a[0]||=e=>r.value=void 0},{default:j(()=>[r.value?(n(),d(`div`,Wr,[g(`p`,Gr,i(t.$t(`guide.${r.value}.intro`)),1),g(`ol`,Kr,[r.value===`userscript`?(n(),d(p,{key:0},[e(o,{keypath:`guide.userscript.manager`,tag:`li`,scope:`global`},{tampermonkey:j(()=>[e(Ce,{href:`https://www.tampermonkey.net/`},{default:j(()=>[...a[1]||=[h(` Tampermonkey `,-1)]]),_:1})]),violentmonkey:j(()=>[e(Ce,{href:`https://violentmonkey.github.io/`},{default:j(()=>[...a[2]||=[h(` Violentmonkey `,-1)]]),_:1})]),_:1}),g(`li`,null,[h(i(t.$t(`guide.userscript.install`))+` `,1),g(`div`,qr,[e(L,{href:`https://pulls.review/pulls-review-github.user.js`,icon:`i-ph:download-duotone`},{default:j(()=>[h(i(t.$t(`landing.installUserscript`)),1)]),_:1})])]),e(o,{keypath:`guide.userscript.open`,tag:`li`,scope:`global`},{tab:j(()=>[g(`strong`,Jr,i(t.$t(`embed.reviewChanges`)),1)]),_:1}),g(`li`,null,i(t.$t(`guide.userscript.ai`)),1)],64)):r.value===`bookmarklet`?(n(),d(p,{key:1},[e(o,{keypath:`guide.bookmarklet.bar`,tag:`li`,scope:`global`},{shortcut:j(()=>[...a[3]||=[g(`kbd`,{class:`rounded bg-code px-1 text-[0.85em] font-mono`},`Ctrl/⌘ + Shift + B`,-1)]]),_:1}),g(`li`,null,[h(i(t.$t(`guide.bookmarklet.drag`))+` `,1),g(`div`,Yr,[e(xe)])]),g(`li`,null,i(t.$t(`guide.bookmarklet.use`)),1)],64)):r.value===`actions`?(n(),d(p,{key:2},[e(o,{keypath:`guide.actions.secret`,tag:`li`,scope:`global`},{name:j(()=>[...a[4]||=[g(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`VERCEL_AI_GATEWAY_API_KEY`,-1)]]),_:1}),g(`li`,null,[h(i(t.$t(`guide.actions.workflow`))+` `,1),e(Ur,{code:Xr,lang:`yaml`})]),g(`li`,null,i(t.$t(`guide.actions.result`)),1),e(o,{keypath:`guide.actions.options`,tag:`li`,scope:`global`},{provider:j(()=>[...a[5]||=[g(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`provider`,-1)]]),model:j(()=>[...a[6]||=[g(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`model`,-1)]]),locale:j(()=>[...a[7]||=[g(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`locale`,-1)]]),readme:j(()=>[e(Ce,{href:`https://github.com/antfu/pulls.review#analyze-pull-requests-from-ci-experimental`},{default:j(()=>[...a[8]||=[h(` README `,-1)]]),_:1})]),_:1})],64)):r.value===`cli`?(n(),d(p,{key:3},[g(`li`,null,[h(i(t.$t(`guide.cli.branch`))+` `,1),e(Ur,{code:`npx pulls.review`,lang:`shellscript`})]),g(`li`,null,[h(i(t.$t(`guide.cli.target`))+` `,1),e(Ur,{code:Zr,lang:`shellscript`})]),e(o,{keypath:`guide.cli.browser`,tag:`li`,scope:`global`},{url:j(()=>[...a[9]||=[g(`code`,{class:`rounded bg-code px-1 text-[0.85em]`},`http://localhost:<port>/`,-1)]]),_:1})],64)):s(``,!0)])])):s(``,!0)]),_:1},8,[`open`,`title`])}}}),$r={class:`flex flex-col gap-3`},ei={class:`cursor-pointer text-sm color-muted`},ti=D({__name:`LoadDiffPanel`,emits:[`submit`],setup(t,{emit:a}){let o=a,s=v(``),c=v(!1);function l(){s.value.trim()&&o(`submit`,s.value)}async function u(e){s.value=await e.text()}function f(e){c.value=!1;let t=e.dataTransfer?.files[0];t&&u(t)}function p(e){let t=e.target.files?.[0];t&&u(t)}return(t,a)=>(n(),d(`div`,$r,[e(P,{label:t.$t(`load.pasteLabel`)},{default:j(()=>[A(g(`textarea`,{"onUpdate:modelValue":a[0]||=e=>s.value=e,rows:`10`,placeholder:`diff --git a/foo b/foo…`,class:r([`w-full resize-y border border-base rounded bg-raised p-2 text-sm font-mono outline-none focus-visible:ring-2 focus-visible:ring-primary-500/40`,{"border-primary-500 ring-2 ring-primary-500/40":c.value}]),onDragover:a[1]||=M(e=>c.value=!0,[`prevent`]),onDragleave:a[2]||=M(e=>c.value=!1,[`prevent`]),onDrop:M(f,[`prevent`])},null,34),[[N,s.value]])]),_:1},8,[`label`]),g(`label`,ei,[h(i(t.$t(`load.chooseFile`))+` `,1),g(`input`,{type:`file`,accept:`.diff,.patch,text/plain`,class:`hidden`,onChange:p},null,32)]),e(L,{variant:`primary`,disabled:!s.value.trim(),onClick:l},{default:j(()=>[h(i(t.$t(`load.loadButton`)),1)]),_:1},8,[`disabled`])]))}}),ni=D({__name:`LoadDiffModal`,props:{open:{type:Boolean},document:{}},emits:[`update:open`],setup(t,{emit:r}){let i=r,a=ce();function o(e,t){sessionStorage.setItem(ye,JSON.stringify({text:e,title:t})),i(`update:open`,!1),a.push(`/upload`)}return(r,a)=>(n(),_(F,{title:r.$t(`load.title`),description:r.$t(`load.description`),open:t.open,document:t.document,"onUpdate:open":a[0]||=e=>i(`update:open`,e??!1)},{default:j(()=>[e(ti,{onSubmit:o})]),_:1},8,[`title`,`description`,`open`,`document`]))}}),ri={class:`whitespace-nowrap font-medium`},ii={class:`op-fade`},ai=D({__name:`RepositoryPill`,props:{owner:{},repo:{}},setup(t){return(r,a)=>{let o=u(`RouterLink`);return n(),_(o,{to:y(oe)(t.owner,t.repo),class:`max-w-full flex items-center gap-2 border border-base rounded-full px-3 py-1.5 text-sm transition hover:border-accent-teal-400/50 hover:bg-hover`},{default:j(()=>[e(R,{login:t.owner,size:16},null,8,[`login`]),g(`span`,ri,[g(`span`,ii,i(t.owner)+`/`,1),h(i(t.repo),1)]),T(r.$slots,`default`)]),_:3},8,[`to`])}}});function oi(e=8){let{cache:t}=ie(),n=v([]);async function r(){let r=[];for(let n of await t.diffs.listRecent(e)){let e=se(n.ref);if(!e)continue;let i=await t.reviewMarks.get(n.fileShas);r.push({route:e,parent:I(n.ref)?.label,label:n.label,title:n.title,state:n.pullRequestState,reviewedCount:n.fileShas.filter(e=>i.has(e)).length,totalFiles:n.fileShas.length,lastViewedAt:n.lastViewedAt})}n.value=r}return{recent:n,load:r}}function si(e=8){let{cache:t}=ie(),n=v([]);async function r(){n.value=(await t.pullRequestLists.listRecent(e)).map(e=>({owner:e.owner,repo:e.repo,openCount:e.page.totalCount,lastViewedAt:e.lastViewedAt}))}return{recent:n,load:r}}var ci={key:0,class:`pointer-events-none fixed inset-4 z-toast flex items-center justify-center border-4 border-accent-teal-400 rounded-2xl border-dashed bg-accent-teal-400/10 text-lg color-accent-teal font-medium backdrop-blur-sm`},li={class:`mxa max-w-6xl w-full flex flex-1 flex-col gap-20 px-6 py-16 sm:py-20`},ui={class:`grid items-center gap-12 lg:grid-cols-[minmax(0,1fr)_minmax(0,30rem)] lg:gap-16`},di={class:`flex flex-col gap-8`},fi={class:`max-w-md text-sm leading-relaxed op-fade`},pi={class:`max-w-md flex flex-col gap-2`},mi={class:`text-xs op-fade`},hi={key:0,class:`flex flex-col gap-3`},gi={class:`text-xs font-mono op-fade`},_i={class:`flex flex-wrap gap-2`},vi={class:`flex color-accent-teal`},yi={class:`text-xs op-fade`},bi={key:1,class:`flex flex-col gap-3`},xi={class:`text-xs font-mono op-fade`},Si={class:`flex flex-wrap gap-2`},Ci={class:`text-xs op-fade`},wi={class:`text-xs op-fade`},Ti={class:`flex flex-col gap-3`},Ei={class:`text-xs font-mono op-fade`},Di={class:`flex flex-wrap gap-2`},Oi={class:`max-w-56 truncate text-xs op-fade`},ki={class:`grid gap-4 sm:grid-cols-2`},Ai={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},ji={class:`flex items-start gap-3`},Mi={class:`flex-1`},Ni={class:`font-semibold`},Pi={class:`mt-auto flex`},Fi={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},Ii={class:`flex items-start gap-3`},Li={class:`flex-1`},Ri={class:`font-semibold`},zi={class:`mt-auto flex gap-2`},Bi={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},Vi={class:`flex items-start gap-3`},Hi={class:`flex-1`},Ui={class:`font-semibold`},Wi={class:`text-sm op-fade`},Gi={class:`mt-auto flex gap-2`},Ki={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},qi={class:`flex items-start gap-3`},Ji={class:`flex-1`},Yi={class:`font-semibold`},Xi={class:`text-sm op-fade`},Zi={class:`mt-auto flex`},Qi={class:`flex flex-col gap-4 border border-base rounded-lg p-5`},$i={class:`flex items-start gap-3`},ea={class:`flex-1`},ta={class:`font-semibold`},na={class:`text-sm op-fade`},ra={class:`mt-auto flex`},ia=`github-actions[bot]`,aa=D({__name:`index`,setup(t){let r=[{owner:`antfu`,repo:`pulls.review`,number:45,state:`merged`,title:`feat: review any GitHub compare range or single commit`},{owner:`antfu`,repo:`pulls.review`,number:46,state:`merged`,title:`feat(app): sidebar tree mode for the group list`}],a=ce(),{locale:o,t:l}=w(),b=v(``),x=v(!1),S=v(),C=c(()=>ae(b.value));function T(){C.value&&a.push(C.value)}async function E(e){let t=await e.text();sessionStorage.setItem(ye,JSON.stringify({text:t,title:e.name})),a.push(`/upload`)}let D=0,O=v(!1);function k(e){O.value=!1;let t=e.dataTransfer?.files[0];t&&E(t)}function A(e){e.dataTransfer?.types.includes(`Files`)&&(D++,O.value=!0)}function N(){D=Math.max(0,D-1),D===0&&(O.value=!1)}let{recent:P,load:F}=oi(),{recent:te,load:re}=si();return m(()=>{F(),re()}),ne(()=>l(`landing.documentTitle`),` - `),(t,a)=>{let c=u(`i18n-t`);return n(),d(`div`,{class:`relative min-h-screen flex flex-col`,onDragenter:M(A,[`prevent`]),onDragleave:M(N,[`prevent`]),onDragover:a[8]||=M(()=>{},[`prevent`]),onDrop:M(k,[`prevent`])},[e(ge),O.value?(n(),d(`div`,ci,i(t.$t(`landing.dropHint`)),1)):s(``,!0),g(`main`,li,[g(`section`,ui,[g(`div`,di,[e(_e),g(`p`,fi,i(t.$t(`landing.tagline`)),1),g(`div`,pi,[g(`form`,{class:`flex items-stretch gap-2`,onSubmit:M(T,[`prevent`])},[e(ee,{modelValue:b.value,"onUpdate:modelValue":a[0]||=e=>b.value=e,icon:`i-ph:link-simple-duotone`,placeholder:`https://github.com/owner/repo/pull/123`,class:`flex-1`},null,8,[`modelValue`]),e(L,{type:`submit`,variant:`primary`,class:`pl-3 pr-4`,icon:`i-ph-arrow-right-bold`,disabled:!C.value},{default:j(()=>[h(i(t.$t(`landing.open`)),1)]),_:1},8,[`disabled`])],32),g(`p`,mi,i(t.$t(`landing.pasteHint`)),1)])]),e(zr,{class:`min-w-0 w-full`})]),y(P).length?(n(),d(`section`,hi,[g(`h2`,gi,i(t.$t(`landing.recentlyViewed`)),1),g(`div`,_i,[(n(!0),d(p,null,f(y(P),t=>(n(),_(he,{key:t.route,to:t.route,parent:t.parent,label:t.label,state:t.state,title:t.title},{default:j(()=>[g(`span`,vi,[e(le,{value:t.totalFiles?t.reviewedCount/t.totalFiles:0,size:14,thickness:2.5,color:`currentColor`},null,8,[`value`])]),g(`span`,yi,i(y(ve)(new Date(t.lastViewedAt),y(o))),1)]),_:2},1032,[`to`,`parent`,`label`,`state`,`title`]))),128))])])):s(``,!0),y(te).length?(n(),d(`section`,bi,[g(`h2`,xi,i(t.$t(`landing.recentRepositories`)),1),g(`div`,Si,[(n(!0),d(p,null,f(y(te),e=>(n(),_(ai,{key:`${e.owner}/${e.repo}`,owner:e.owner,repo:e.repo},{default:j(()=>[g(`span`,Ci,i(t.$t(`pulls.open`,{n:e.openCount})),1),g(`span`,wi,i(y(ve)(new Date(e.lastViewedAt),y(o))),1)]),_:2},1032,[`owner`,`repo`]))),128))])])):s(``,!0),g(`section`,Ti,[g(`h2`,Ei,i(t.$t(`landing.tryDemos`)),1),g(`div`,Di,[(n(),d(p,null,f(r,t=>e(he,{key:`${t.owner}/${t.repo}#${t.number}`,to:`${y(se)({kind:`github-pr`,owner:t.owner,repo:t.repo,number:String(t.number)})}?from=${encodeURIComponent(ia)}`,parent:`${t.owner}/${t.repo}`,label:`#${t.number}`,state:t.state,title:t.title},{default:j(()=>[g(`span`,Oi,i(t.title),1)]),_:2},1032,[`to`,`parent`,`label`,`state`,`title`])),64))])]),g(`section`,ki,[g(`div`,Ai,[g(`div`,ji,[a[11]||=g(`span`,{class:`i-ph:upload-simple-duotone mt-0.5 shrink-0 text-xl color-accent-teal`,"aria-hidden":`true`},null,-1),g(`div`,Mi,[g(`h2`,Ni,i(t.$t(`landing.uploadTitle`)),1),e(c,{keypath:`landing.uploadDescription`,tag:`p`,class:`text-sm op-fade`,scope:`global`},{diff:j(()=>[...a[9]||=[g(`code`,{class:`rounded bg-code px-1`},`.diff`,-1)]]),patch:j(()=>[...a[10]||=[g(`code`,{class:`rounded bg-code px-1`},`.patch`,-1)]]),_:1})])]),g(`div`,Pi,[e(L,{icon:`i-ph:upload-simple-duotone`,onClick:a[1]||=e=>x.value=!0},{default:j(()=>[h(i(t.$t(`landing.uploadButton`)),1)]),_:1})])]),g(`div`,Fi,[g(`div`,Ii,[a[14]||=g(`span`,{class:`i-ph:puzzle-piece-duotone mt-0.5 shrink-0 text-xl color-accent-magenta`,"aria-hidden":`true`},null,-1),g(`div`,Li,[g(`h2`,Ri,i(t.$t(`landing.embedTitle`)),1),e(c,{keypath:`landing.embedDescription`,tag:`p`,class:`text-sm op-fade`,scope:`global`},{tampermonkey:j(()=>[e(Ce,{href:`https://www.tampermonkey.net/`},{default:j(()=>[...a[12]||=[h(` Tampermonkey `,-1)]]),_:1})]),violentmonkey:j(()=>[e(Ce,{href:`https://violentmonkey.github.io/`},{default:j(()=>[...a[13]||=[h(` Violentmonkey `,-1)]]),_:1})]),_:1})])]),g(`div`,zi,[e(L,{href:`https://pulls.review/pulls-review-github.user.js`,icon:`i-ph:download-duotone`},{default:j(()=>[h(i(t.$t(`landing.installUserscript`)),1)]),_:1}),e(L,{icon:`i-ph:book-open-duotone`,onClick:a[2]||=e=>S.value=`userscript`},{default:j(()=>[h(i(t.$t(`landing.viewGuide`)),1)]),_:1})])]),g(`div`,Bi,[g(`div`,Vi,[a[15]||=g(`span`,{class:`i-ph:bookmark-simple-duotone mt-0.5 shrink-0 text-xl color-accent-magenta`,"aria-hidden":`true`},null,-1),g(`div`,Hi,[g(`h2`,Ui,i(t.$t(`landing.bookmarkletTitle`)),1),g(`p`,Wi,i(t.$t(`landing.bookmarkletDescription`)),1)])]),g(`div`,Gi,[e(xe),e(L,{icon:`i-ph:book-open-duotone`,onClick:a[3]||=e=>S.value=`bookmarklet`},{default:j(()=>[h(i(t.$t(`landing.viewGuide`)),1)]),_:1})])]),g(`div`,Ki,[g(`div`,qi,[a[16]||=g(`span`,{class:`i-ph:lightning-duotone mt-0.5 shrink-0 text-xl color-accent-orange`,"aria-hidden":`true`},null,-1),g(`div`,Ji,[g(`h2`,Yi,i(t.$t(`landing.actionsTitle`)),1),g(`p`,Xi,i(t.$t(`landing.actionsDescription`)),1)])]),g(`div`,Zi,[e(L,{icon:`i-ph:book-open-duotone`,onClick:a[4]||=e=>S.value=`actions`},{default:j(()=>[h(i(t.$t(`landing.viewGuide`)),1)]),_:1})])]),g(`div`,Qi,[g(`div`,$i,[a[17]||=g(`span`,{class:`i-ph:terminal-window-duotone mt-0.5 shrink-0 text-xl color-accent-teal`,"aria-hidden":`true`},null,-1),g(`div`,ea,[g(`h2`,ta,i(t.$t(`landing.cliTitle`)),1),g(`p`,na,i(t.$t(`landing.cliDescription`)),1)])]),g(`div`,ra,[e(L,{icon:`i-ph:book-open-duotone`,onClick:a[5]||=e=>S.value=`cli`},{default:j(()=>[h(i(t.$t(`landing.viewGuide`)),1)]),_:1})])])])]),e(me),e(ni,{open:x.value,"onUpdate:open":a[6]||=e=>x.value=e},null,8,[`open`]),e(Qr,{guide:S.value,"onUpdate:guide":a[7]||=e=>S.value=e},null,8,[`guide`])],32)}}});export{aa as default};
@@ -0,0 +1 @@
1
+ import{At as e,H as t,Pt as n,lt as r,qn as i}from"./vue-i18n-CGHHpbTP.js";function a(a){let o=r(),s=i(),c;return n(()=>{let e=o?.proxy?.$el,t=e?.getRootNode();if(!(t instanceof ShadowRoot))return;let n=document.createElement(`div`);t.append(n),s.value=n;let r=(e instanceof Element?e:e?.parentElement)?.closest(`.dark, .light`);if(r){let e=()=>{n.className=r.classList.contains(`dark`)?`dark`:`light`};e(),c=new MutationObserver(e),c.observe(r,{attributeFilter:[`class`]})}}),e(()=>{c?.disconnect(),s.value?.remove(),s.value=void 0}),t(()=>a?.()??s.value)}export{a as t};
@@ -0,0 +1 @@
1
+ var e={cancel:`Cancelar`,save:`Salvar`,remove:`Remover`,retry:`Tentar novamente`,close:`Fechar`,dismiss:`Dispensar`,refresh:`Atualizar`,settings:`Configurações`,you:`você`,loading:`Carregando…`,send:`Enviar`,stop:`Parar`,clear:`Limpar`,reply:`Responder`,submit:`Enviar`,abort:`Abortar`,rerun:`Executar novamente`,files:`{n} arquivo | {n} arquivos`,subgroups:`{n} subgrupo | {n} subgrupos`,githubRepository:`Repositório no GitHub`,avatar:`Avatar de {login}`},t={dropHint:`Solte para carregar seu arquivo diff / .patch`,tagline:`Agrupa os arquivos alterados, resume o que importa e permite revisar um escopo por vez. Tudo funciona localmente no seu navegador.`,documentTitle:`Revisões de pull requests claras e organizadas`,open:`Abrir`,pasteHint:`Cole a URL de qualquer pull request do GitHub ou escolha uma demo abaixo.`,recentlyViewed:`// vistos recentemente`,recentRepositories:`// repositórios vistos recentemente`,tryDemos:`// experimente algumas demos`,demoBefore:`// antes`,demoAfter:`// depois`,moreFiles:`... mais {n} arquivos`,demoTitle:`feat: compartilhar uma análise de IA como comentário do PR e carregar resultados compartilhados`,demoSummary:`Um revisor com API key publica sua análise no PR; todos os outros a carregam sem token.`,demoGroups:{store:`Store de análises compartilhadas e contrato do comentário`,ui:`UI de compartilhamento de resultado`,refactor:`Refatoração do store: resultado na raiz`,tests:`Testes`,docs:`Docs e dependências`},uploadTitle:`Revise um diff sem PR`,uploadDescription:`Envie ou cole um unified diff, ou solte um arquivo {diff} / {patch} em qualquer lugar desta página.`,uploadButton:`Enviar um diff`,embedTitle:`Use integrado ao github.com`,embedDescription:`Com {tampermonkey} ou {violentmonkey} instalado, um painel do pulls.review aparece em cada página de pull request.`,installUserscript:`Instalar userscript`,bookmarkletTitle:`Alterne entre github.com e pulls.review`,bookmarkletDescription:`Não pode instalar extensões? Arraste este bookmarklet para a barra de favoritos para abrir o pull request atual no pulls.review, e voltar.`,bookmarkletDrag:`Arraste-me para a barra de favoritos`,actionsTitle:`Configure a análise automática com GitHub Actions`,actionsDescription:`Analise cada pull request uma vez na CI e publique o resultado como comentário, para que cada revisor não precise da própria chave de modelo.`,cliTitle:`Rode em mudanças locais do git com a CLI`,cliDescription:`Revise sua árvore de trabalho, um commit ou uma branch antes do push, agrupados e resumidos como um PR.`,viewGuide:`Ver guia`},n={userscript:{title:`Use o pulls.review integrado ao github.com`,intro:`O userscript adiciona um painel do pulls.review diretamente às páginas de pull request no github.com, com arquivos agrupados e resumos, para você não precisar trocar de aba.`,manager:`Instale um gerenciador de userscripts: {tampermonkey} ou {violentmonkey}.`,install:`Instale o userscript do pulls.review. Seu gerenciador pede confirmação.`,open:`Abra qualquer pull request no github.com e clique na aba {tab} ao lado de "Files changed".`,ai:`O github.com bloqueia as requisições de que a análise por IA precisa, então o painel mostra análises compartilhadas como comentários do PR. Abra o PR no pulls.review para rodar uma nova.`},bookmarklet:{title:`Alterne entre github.com e pulls.review`,intro:`Um bookmarklet é um favorito que executa um pequeno script. Funciona em qualquer navegador, sem instalar extensões, e abre a página atual no outro site.`,bar:`Mostre a barra de favoritos, por exemplo com {shortcut}.`,drag:`Arraste este botão para a barra de favoritos:`,use:`Em uma página de pull request, commit ou comparação no github.com, clique no favorito para abri-la no pulls.review. Clique de novo para voltar.`},actions:{title:`Análise automática com GitHub Actions`,intro:`Deixe a CI analisar cada pull request uma vez, assim que ele é aberto ou atualizado. Todos que abrem o PR, aqui ou no painel do github.com, veem na hora o mesmo resumo agrupado. Ninguém precisa da própria chave de modelo, e pull requests de forks também recebem.`,secret:`Adicione sua chave de modelo como secret do repositório, por exemplo {name}.`,workflow:`Adicione este workflow ao repositório:`,result:`Abra ou atualize um pull request para testar. A análise chega como comentário, e novas execuções em um PR sem mudanças pulam a chamada ao modelo.`,options:`O {provider} é inferido a partir da chave. Defina {provider}, {model} ou {locale} para substituí-lo. Veja o {readme} para todas as opções.`},cli:{title:`Revise mudanças locais do git com a CLI`,intro:`Revise sua própria mudança antes de qualquer outra pessoa. A CLI abre no pulls.review sua branch, um commit ou o trabalho ainda sem commit, para você ver como a mudança se lê, agrupada e resumida, antes do push ou de abrir um PR.`,branch:`Em um repositório git, rode isto para revisar sua branch atual em relação à branch padrão:`,target:`Ou escolha o que revisar:`,browser:`Ela abre {url} no navegador para visualizar suas mudanças locais. Confirme a aba com o código de uso único exibido no terminal. Lá você também pode escolher outras branches ou commits para comparar.`}},r={title:`Carregar um diff`,description:`Cole ou solte um arquivo unified diff / .patch para revisá-lo.`,pasteLabel:`Cole um unified diff / .patch`,chooseFile:`Ou escolha um arquivo .diff/.patch`,loadButton:`Carregar diff`,parsing:`Analisando o diff…`,parseFailed:`Não foi possível analisar este diff`,noDiff:`Nenhum diff carregado`,noDiffHint:`Volte à página inicial e use o botão de envio para colar ou soltar um diff.`,goHome:`Ir para o início`},i={loading:`Carregando pull request…`,loadFailed:`Não foi possível carregar este pull request`,somethingWrong:`Algo deu errado`,newCommits:`Este pull request tem novos commits desde que foi armazenado em cache.`,autoRefreshNextTime:`Atualizar automaticamente na próxima vez`,endOfDiff:`Você chegou ao fim do diff.`,analyzeBy:`Analisar por`,rules:`Regras`,ai:`IA`,by:`por`,sharedBy:`Vendo a análise de IA compartilhada por`,sharedAnalysis:`Vendo a análise compartilhada`,reviewedOf:`/ {total} revisados`,openInSite:`Abrir no pulls.review`},a={reviewChanges:`Revisar alterações`,updateUserscript:`Atualizar userscript`},o={loading:`Carregando pull requests…`,loadFailed:`Não foi possível carregar os pull requests`,open:`{n} abertos`,search:`Filtrar pull requests`,empty:`Não há pull requests abertos`,noMatches:`Nenhum pull request corresponde à sua busca`,searchingAll:`Buscando em todos os {n} pull requests abertos…`,loadingMore:`Carregando mais…`,openedBy:`aberto {time} por {author}`,milestone:`Marco`,comments:`{n} comentário | {n} comentários`,linkedIssues:`{n} issue vinculada | {n} issues vinculadas`,assignedTo:`Atribuído a {login}`,groups:`{n} grupo | {n} grupos`,viewedHint:`Visto neste navegador`,aiAvailable:`Análise de IA disponível`,sort:{label:`Ordenar`,"recently-updated":`Atualizados recentemente`,"least-recently-updated":`Atualizados há mais tempo`,newest:`Mais recentes`,oldest:`Mais antigos`,"most-commented":`Mais comentados`,"least-commented":`Menos comentados`},review:{approved:`Aprovado`,changes_requested:`Alterações solicitadas`,review_required:`Revisão necessária`},checks:{success:`Todas as verificações passaram`,failure:`Algumas verificações falharam`,pending:`Algumas verificações ainda não terminaram`}},s={setupKeys:`Configurar chaves de API`,analyzing:`Analisando…`,failed:`A análise falhou`,failedTitle:`A análise de IA falhou: {message}`,reanalyze:`Analisar novamente`,withAi:`Analisar com IA`,statusTitle:`Análise de IA`,starting:`Iniciando…`,thinking:`Pensando… (etapa {step})`,reading:`Lendo {n} arquivo: {first} | Lendo {n} arquivos: {first}`,organizing:`Organizando grupos…`,notConfigured:`A análise de IA não está configurada: adicione um token de gateway ou uma API key de fornecedor nas Configurações`,chatFailed:`A solicitação do chat falhou`,agentSessionLost:`O agente não tem mais esta conversa. Reanalise para conversar.`},c={button:`Compartilhar resultado`,updateButton:`Atualizar comentário compartilhado`,sharing:`Compartilhando…`,tooltip:`Publica esta análise como comentário no pull request para que outros possam carregá-la`,needsToken:`É necessário um token do GitHub com acesso de escrita para compartilhar`,failed:`Falha ao compartilhar: {message}`,titleUpdate:`Atualizar sua análise compartilhada`,titleShare:`Compartilhar esta análise no GitHub`,willUpdate:`Seu {comment} existente neste pull request será atualizado como {user} com seu token do GitHub.`,willPost:`Um comentário público será publicado neste pull request como {user} com seu token do GitHub.`,commentLink:`comentário`,contains:`O comentário contém:`,containsLink:`um link para abrir esta revisão no {site}`,containsJson:`o agrupamento e os resumos desta análise de IA como JSON dentro de um bloco recolhido`,excludes:`Suas mensagens de chat, chaves de API ou qualquer outra coisa das suas configurações não serão incluídas.`,anyoneCanLoad:`Qualquer pessoa que veja o pull request pode carregar a análise compartilhada.`,englishRecommended:`Se você trabalha em um projeto público, recomendamos compartilhar o resultado em inglês para que seja útil à comunidade.`,share:`Compartilhar`,update:`Atualizar`,shareAnyway:`Compartilhar mesmo assim`,updateAnyway:`Atualizar mesmo assim`,loadReplaces:`Carregar uma análise de IA compartilhada? Ela substituirá a sua:`,available:`Análises de IA compartilhadas deste pull request disponíveis:`,staleTitle:`Analisado antes dos commits mais recentes`,outdated:`(desatualizado)`,inLanguage:`Analisado em {language}`,notShared:`{login} não compartilhou uma análise deste pull request.`},l={toggle:`Expandir ou recolher grupo`,filesReviewed:`{reviewed} / {total} arquivos revisados`,subgroupsOf:`subgrupos de`,hideSubgroups:`Ocultar subgrupos`,showSubgroups:`Mostrar subgrupos`,navTabs:`Mostrar grupos como abas`,navSidebar:`Mostrar grupos como barra lateral`,uncategorized:`Sem categoria`,uncategorizedSummary:`Arquivos não cobertos pela análise atual.`},u={critical:`Revisar com atenção`},d={layoutTree:`Mostrar arquivos como árvore`,layoutList:`Mostrar arquivos como lista`,markReviewed:`Marcar como revisado`,markFolderReviewed:`Marcar todos os arquivos em {name} como revisados`,changedSinceReviewed:`Este arquivo já foi revisado, mas mudou em commits posteriores`,resolved:`{n} resolvidos`,binary:`Arquivo binário`,binaryNotShown:`Arquivo binário não exibido.`,tooLarge:`Diff grande demais para ser exibido.`,loadFailed:`Falha ao carregar`,loadFull:`Carregar conteúdo completo do arquivo`,expand:`Expandir arquivo`,collapse:`Recolher arquivo`,collapseMenu:`Expandir ou recolher arquivos`,expandAll:`Expandir todos os arquivos`,collapseAll:`Recolher todos os arquivos`,collapseReviewed:`Recolher arquivos revisados`,noLongerInDiff:`Não está mais neste diff`,removed:`removido`},f={title:`Progresso da revisão`,markAll:`Marcar todos como revisados`,reset:`Redefinir estado da revisão`,invert:`Inverter estado da revisão`,status:{reviewed:`Revisado`,changed:`Alterado após a revisão`,unreviewed:`Não revisado`}},p={added:`adicionado`,removed:`removido`,modified:`modificado`,renamed:`renomeado`,copied:`copiado`},m={open:`aberto`,draft:`rascunho`,closed:`fechado`,merged:`mesclado`},h={ui:`UI`,api:`API`,core:`núcleo`,data:`dados`,cli:`CLI`,security:`segurança`,tests:`testes`,docs:`documentação`,examples:`exemplos`,deps:`dependências`,build:`build`,scripts:`scripts`,config:`configuração`,i18n:`i18n`,assets:`recursos`,other:`outros`},g={addReview:`Adicionar revisão`,hideComments:`Ocultar comentários de revisão`,showComments:`Mostrar comentários de revisão`,reviews:`Revisões`,approved:`aprovou`,changesRequested:`solicitou alterações`,commented:`comentou`,dismissed:`revisão descartada`,reviewChanges:`Revisar alterações`,includesPending:`O envio inclui seu {n} comentário pendente. | O envio inclui seus {n} comentários pendentes.`,summaryPlaceholder:`Deixe um resumo (opcional para aprovar)`,comment:`Comentar`,approve:`Aprovar`,requestChanges:`Solicitar alterações`,discard:`Descartar revisão`,leaveComment:`Deixe um comentário`,addSingle:`Adicionar comentário único`,addToReview:`Adicionar comentário de revisão`,startReview:`Iniciar uma revisão`,pending:`Pendente`,editComment:`Editar comentário`,deleteComment:`Excluir comentário`,replyPlaceholder:`Responder…`,resolve:`Resolver`},_={title:`Perguntar sobre este PR`,collapse:`Recolher`,reanalyzeToEnable:`Analise novamente para habilitar o chat`,thinking:`Pensando…`,placeholder:`Pergunte sobre este PR…`,updatedGrouping:`Agrupamento atualizado: {n} grupos`,readFiles:`Leu {n} arquivo | Leu {n} arquivos`,updatingGrouping:`Atualizando agrupamento…`,submittingGrouping:`Enviando agrupamento…`,requestFailed:`A solicitação falhou`,stopped:`parado`},v={layout:`Layout do diff`,wrapLines:`Quebrar linhas`,unified:`Unificado`,split:`Dividido`,syntaxTheme:{label:`Tema de sintaxe`,light:`Modo claro`,dark:`Modo escuro`},cached:`Pull requests em cache`,autoRefresh:`Atualizar automaticamente quando novos commits forem encontrados`,language:`Idioma`,token:{label:`Token de acesso pessoal do GitHub`,optional:`Opcional para repositórios públicos; obrigatório para repositórios privados ou para deixar revisões.`,scopes:`Revisões precisam do escopo {repo} (token clássico) ou {fineGrained} (token granular)`,storedLocally:`Armazenado apenas neste navegador.`,generate:`Gerar um no GitHub →`,fineGrained:`Token granular (sem escopos clássicos)`,updated:`Atualizado`,expires:`Expira`,neverExpires:`Nunca expira`,change:`Alterar token`,checking:`Verificando token…`,couldNotVerify:`Não foi possível verificar este token.`},tabs:{appearance:`Aparência`,behavior:`Comportamento`,github:`GitHub`,ai:`Análise com IA`,notSetUp:`Ainda não configurado`},llm:{title:`Análise de IA`,description:`Configure um provedor de modelos para habilitar resumos gerados por IA. Armazenado apenas neste navegador e enviado somente ao provedor que você escolher.`,provider:`Provedor`,baseUrl:`URL base`,baseUrlDescription:`Qualquer endpoint de chat completions compatível com OpenAI (a própria OpenAI, um servidor local etc.).`,apiKey:`API key`,gatewayHint:`Um token do {link}, que alcança qualquer um dos fornecedores suportados com um único token.`,anthropicHint:`Uma {link}, chamada diretamente deste navegador (sem gateway).`,anthropicLink:`API key da Anthropic`,openaiHint:`A API key do endpoint acima.`,createKey:`Criar uma no {provider} →`,configured:`Configurada`,changeKey:`Alterar chave`,model:`Modelo`,modelListFailed:`Não foi possível carregar a lista de modelos ({error}). Digite um id de modelo manualmente.`,embedUnavailable:`Os recursos de IA não estão disponíveis no modo incorporado`,embedReason:`A rígida CSP do github.com bloqueia as solicitações de que os recursos de IA precisam aqui. {link} para usá-los.`,goToWebsite:`Acesse o site`,agent:`Agente`,agentNeedsCli:"Agentes locais rodam na CLI do pulls.review: inicie-a em um repositório com `npx pulls.review` e escolha um lá.",agentDetecting:`Procurando CLIs de agentes…`,agentNone:`Nenhuma CLI de agente encontrada nesta máquina.`,agentHint:`Um agente de código instalado nesta máquina, com sua própria conta: {claude} ou {opencode}. Ele lê o patch e o repositório, nunca escreve.`,agentPick:`Escolha um agente…`},models:{placeholder:`id do modelo`,loading:`Carregando modelos…`,search:`Buscar modelos…`,noMatch:`Nenhum modelo correspondente`,useCustom:`Usar “{id}”`,free:`Grátis`,priceTitle:`Entrada {input}/M · Saída {output}/M tokens`,agentDefault:`Padrão do agente`}},y={allFiles:`Todos os arquivos`,code:{label:`Código`,summary:`Alterações no código-fonte.`},other:{label:`Outros`,summary:`Outras alterações que não se encaixam em uma categoria existente.`},docs:{label:`Documentação`,summary:`Atualizações de documentação.`},tests:{label:`Testes`,summary:`Cobertura de testes da alteração.`},config:{label:`Configuração`,summary:`Alterações de configuração.`},deps:{label:`Dependências`,summary:`Alterações de versão de dependências.`},generated:{label:`Gerados`,summary:`Alterações em arquivos gerados ou de build.`}},b={tokenRequired:`É necessário um token do GitHub para escrever neste pull request.`,diffNotLoaded:`O diff ainda não terminou de carregar.`,noViewer:`Não foi possível determinar o usuário do GitHub deste token.`,tokenRejected:`O GitHub rejeitou este token (401). Verifique se ele foi colado por completo e não foi revogado.`,tooLarge:`A análise é grande demais para ser compartilhada como comentário ({n} caracteres).`},x={loading:`Carregando alterações locais…`,loadFailed:`Não foi possível carregar estas alterações`,auth:{title:`Digite o código do seu terminal`,hint:`O pulls.review exibiu um código de 6 dígitos no terminal em que está rodando.`,invalid:`Esse código não funcionou. Confira o terminal e tente novamente.`,submit:`Continuar`},picker:{tagline:`Revise suas branches locais, intervalos e alterações não commitadas como um pull request: agrupados, resumidos, um escopo por vez.`,title:`Revisar alterações locais`,base:`Base`,head:`Head`,compare:`Comparar`,shortcuts:`Atalhos`,worktree:`Alterações não commitadas`,recentCommits:`Commits recentes`,branches:`Branches`,against:`em relação a {base}`,current:`Branch atual`,github:`Ou um pull request, comparação ou commit do GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};
@@ -0,0 +1 @@
1
+ import{T as e,_ as t,b as n,f as r,x as i}from"./source-CvnvCX42.js";import{m as a}from"./index-KDAJXf4E.js";import{u as o}from"./pages-ByEfDjFa.js";function s(n){return{name:`pulls-review-rpc`,hasItem:async r=>i(t(e()),await n.call(o.storageGetItem,{key:r}))!==null,getItem:async r=>i(t(e()),await n.call(o.storageGetItem,{key:r})),setItem:async(e,t)=>{await n.call(o.storageSetItem,{key:e,value:t})},removeItem:async e=>{await n.call(o.storageRemoveItem,{key:e})},getKeys:async t=>i(r(e()),await n.call(o.storageGetKeys,{base:t}))}}function c(t,r){let a;return{async githubToken(){return a??=t.call(o.githubToken).then(t=>i(n(e()),t??void 0)),await a??r.githubToken()}}}function l(t,r){return{key:async()=>i(e(),await t.call(o.sourceKey,{target:await r})),fetch:async()=>i(a,await t.call(o.sourceFetch,{target:await r})),fingerprint:async()=>i(e(),await t.call(o.sourceFingerprint,{target:await r})),loadFile:async(a,s)=>i(n(e()),await t.call(o.sourceLoadFile,{target:await r,path:a,sha:s})??void 0)}}export{s as n,l as r,c as t};
@@ -0,0 +1 @@
1
+ var e={cancel:`Отмена`,save:`Сохранить`,remove:`Удалить`,retry:`Повторить`,close:`Закрыть`,dismiss:`Скрыть`,refresh:`Обновить`,settings:`Настройки`,you:`вы`,loading:`Загрузка…`,send:`Отправить`,stop:`Стоп`,clear:`Очистить`,reply:`Ответить`,submit:`Отправить`,abort:`Прервать`,rerun:`Запустить снова`,files:`{n} файлов | {n} файл | {n} файла | {n} файлов`,subgroups:`{n} подгрупп | {n} подгруппа | {n} подгруппы | {n} подгрупп`,githubRepository:`Репозиторий на GitHub`,avatar:`Аватар {login}`},t={dropHint:`Отпустите, чтобы загрузить файл diff / .patch`,tagline:`Группирует изменённые файлы, кратко излагает главное и позволяет ревьюить по одной области за раз. Всё работает локально в вашем браузере.`,documentTitle:`Понятные и упорядоченные ревью пул-реквестов`,open:`Открыть`,pasteHint:`Вставьте ссылку на любой pull request GitHub или выберите демо ниже.`,recentlyViewed:`// недавно просмотренные`,recentRepositories:`// недавно просмотренные репозитории`,tryDemos:`// попробуйте демо`,demoBefore:`// до`,demoAfter:`// после`,moreFiles:`... ещё {n} файлов`,demoTitle:`feat: делиться ИИ-анализом в комментарии к PR и загружать общие результаты`,demoSummary:`Один ревьюер с API-ключом публикует свой анализ в PR; все остальные загружают его без токена.`,demoGroups:{store:`Store общих анализов и контракт комментария`,ui:`UI публикации результата`,refactor:`Рефакторинг store: результат в корень`,tests:`Тесты`,docs:`Документация и зависимости`},uploadTitle:`Ревью diff без PR`,uploadDescription:`Загрузите или вставьте unified diff либо перетащите файл {diff} / {patch} в любое место этой страницы.`,uploadButton:`Загрузить diff`,embedTitle:`Встроенный режим на github.com`,embedDescription:`С установленным {tampermonkey} или {violentmonkey} панель pulls.review появляется на каждой странице pull request.`,installUserscript:`Установить userscript`,bookmarkletTitle:`Переход между github.com и pulls.review`,bookmarkletDescription:`Нельзя устанавливать расширения? Перетащите этот букмарклет на панель закладок, чтобы открыть текущий pull request на pulls.review и вернуться обратно.`,bookmarkletDrag:`Перетащите меня на панель закладок`,actionsTitle:`Настройте автоанализ через GitHub Actions`,actionsDescription:`Анализируйте каждый pull request один раз в CI и публикуйте результат комментарием, чтобы каждому ревьюеру не нужен был свой ключ модели.`,cliTitle:`Запуск на локальных изменениях git через CLI`,cliDescription:`Проверяйте рабочее дерево, коммит или ветку до push, сгруппированными и с описанием, как в PR.`,viewGuide:`Открыть руководство`},n={userscript:{title:`pulls.review, встроенный в github.com`,intro:`Пользовательский скрипт добавляет панель pulls.review прямо на страницы pull request'ов на github.com: сгруппированные файлы и описания, без переключения вкладок.`,manager:`Установите менеджер пользовательских скриптов: {tampermonkey} или {violentmonkey}.`,install:`Установите пользовательский скрипт pulls.review. Менеджер попросит подтверждение.`,open:`Откройте любой pull request на github.com и нажмите вкладку {tab} рядом с "Files changed".`,ai:`github.com блокирует запросы, нужные для ИИ-анализа, поэтому панель показывает анализы, опубликованные комментариями в PR. Чтобы запустить новый, откройте PR на pulls.review.`},bookmarklet:{title:`Переход между github.com и pulls.review`,intro:`Букмарклет это закладка, которая запускает небольшой скрипт. Он работает в любом браузере без расширений и открывает текущую страницу на другом сайте.`,bar:`Покажите панель закладок, например с помощью {shortcut}.`,drag:`Перетащите эту кнопку на панель закладок:`,use:`На странице pull request, коммита или сравнения на github.com нажмите на закладку, чтобы открыть её на pulls.review. Нажмите ещё раз, чтобы вернуться.`},actions:{title:`Автоанализ через GitHub Actions`,intro:`Пусть CI анализирует каждый pull request один раз, как только его открыли или обновили. Все, кто открывает PR, здесь или в панели на github.com, сразу видят одно и то же сгруппированное описание. Никому не нужен свой ключ модели, и pull request'ы из форков тоже его получают.`,secret:`Добавьте ключ модели как секрет репозитория, например {name}.`,workflow:`Добавьте этот workflow в репозиторий:`,result:`Откройте или обновите pull request, чтобы попробовать. Анализ придёт комментарием, а повторные запуски на неизменённом PR не обращаются к модели.`,options:`{provider} определяется по ключу. Задайте {provider}, {model} или {locale}, чтобы переопределить. Все параметры описаны в {readme}.`},cli:{title:`Проверка локальных изменений git через CLI`,intro:`Проверьте своё изменение раньше всех. CLI открывает в pulls.review вашу ветку, коммит или незакоммиченную работу, чтобы до push или открытия PR увидеть, как изменение выглядит в сгруппированном и описанном виде.`,branch:`В git-репозитории запустите это, чтобы сравнить текущую ветку с веткой по умолчанию:`,target:`Или выберите, что проверить:`,browser:`Он откроет {url} в браузере и покажет ваши локальные изменения. Подтвердите вкладку одноразовым кодом из терминала. Там же можно выбрать другие ветки или коммиты для сравнения.`}},r={title:`Загрузить diff`,description:`Вставьте или перетащите файл unified diff / .patch для ревью.`,pasteLabel:`Вставьте unified diff / .patch`,chooseFile:`Или выберите файл .diff/.patch`,loadButton:`Загрузить diff`,parsing:`Разбор diff…`,parseFailed:`Не удалось разобрать этот diff`,noDiff:`Diff не загружен`,noDiffHint:`Перейдите на главную и воспользуйтесь кнопкой загрузки, чтобы вставить или перетащить diff.`,goHome:`На главную`},i={loading:`Загрузка pull request…`,loadFailed:`Не удалось загрузить этот pull request`,somethingWrong:`Что-то пошло не так`,newCommits:`В этом pull request появились новые коммиты с момента кэширования.`,autoRefreshNextTime:`В следующий раз обновлять автоматически`,endOfDiff:`Вы дошли до конца diff.`,analyzeBy:`Анализ`,rules:`Правила`,ai:`ИИ`,by:`автор`,sharedBy:`Просмотр ИИ-анализа, которым поделился`,sharedAnalysis:`Просмотр общего анализа`,reviewedOf:`/ {total} проверено`,openInSite:`Открыть в pulls.review`},a={reviewChanges:`Ревью изменений`,updateUserscript:`Обновить userscript`},o={loading:`Загрузка pull request'ов…`,loadFailed:`Не удалось загрузить pull request'ы`,open:`{n} открытых`,search:`Фильтр pull request'ов`,empty:`Открытых pull request'ов нет`,noMatches:`Ни один pull request не соответствует запросу`,searchingAll:`Поиск по всем {n} открытым pull request'ам…`,loadingMore:`Загрузка…`,openedBy:`открыт {time}, автор {author}`,milestone:`Этап`,comments:`{n} комментарий | {n} комментария | {n} комментариев`,linkedIssues:`{n} связанный issue | {n} связанных issue | {n} связанных issue`,assignedTo:`Назначен на {login}`,groups:`{n} группа | {n} группы | {n} групп`,viewedHint:`Просмотрен в этом браузере`,aiAvailable:`Доступен ИИ-анализ`,sort:{label:`Сортировка`,"recently-updated":`Недавно обновлённые`,"least-recently-updated":`Давно не обновлялись`,newest:`Сначала новые`,oldest:`Сначала старые`,"most-commented":`Больше комментариев`,"least-commented":`Меньше комментариев`},review:{approved:`Одобрен`,changes_requested:`Запрошены изменения`,review_required:`Требуется ревью`},checks:{success:`Все проверки пройдены`,failure:`Некоторые проверки не пройдены`,pending:`Некоторые проверки ещё не завершены`}},s={setupKeys:`Настроить API-ключи`,analyzing:`Анализ…`,failed:`Анализ не удался`,failedTitle:`ИИ-анализ не удался: {message}`,reanalyze:`Повторить анализ`,withAi:`Анализировать с ИИ`,statusTitle:`ИИ-анализ`,starting:`Запуск…`,thinking:`Думаю… (шаг {step})`,reading:`Чтение {n} файлов: {first} | Чтение {n} файла: {first} | Чтение {n} файлов: {first} | Чтение {n} файлов: {first}`,organizing:`Формирование групп…`,notConfigured:`ИИ-анализ не настроен: добавьте токен gateway или API-ключ провайдера в настройках`,chatFailed:`Запрос чата не удался`,agentSessionLost:`У агента больше нет этого разговора. Проанализируйте заново, чтобы продолжить чат.`},c={button:`Поделиться результатом`,updateButton:`Обновить опубликованный комментарий`,sharing:`Публикация…`,tooltip:`Опубликовать этот анализ комментарием к pull request, чтобы другие могли его загрузить`,needsToken:`Для публикации нужен токен GitHub с правом записи`,failed:`Не удалось поделиться: {message}`,titleUpdate:`Обновить опубликованный анализ`,titleShare:`Поделиться этим анализом на GitHub`,willUpdate:`Ваш существующий {comment} к этому pull request будет обновлён от имени {user} с помощью вашего токена GitHub.`,willPost:`Публичный комментарий будет добавлен к этому pull request от имени {user} с помощью вашего токена GitHub.`,commentLink:`комментарий`,contains:`Комментарий содержит:`,containsLink:`ссылку для открытия этого ревью на {site}`,containsJson:`группировку и краткие описания этого ИИ-анализа в виде JSON в свёрнутом блоке`,excludes:`Ваши сообщения чата, API-ключи и другие данные из настроек не будут включены.`,anyoneCanLoad:`Любой, кто просматривает pull request, может загрузить опубликованный анализ.`,englishRecommended:`Если вы работаете над публичным проектом, рекомендуем делиться результатом на английском, чтобы он был полезен сообществу.`,share:`Поделиться`,update:`Обновить`,shareAnyway:`Всё равно поделиться`,updateAnyway:`Всё равно обновить`,loadReplaces:`Загрузить опубликованный ИИ-анализ? Он заменит ваш:`,available:`Доступны опубликованные ИИ-анализы этого pull request:`,staleTitle:`Проанализирован до последних коммитов`,outdated:`(устарел)`,inLanguage:`Проанализирован на языке: {language}`,notShared:`{login} не делился анализом этого pull request.`},l={toggle:`Свернуть или развернуть группу`,filesReviewed:`Проверено файлов: {reviewed} / {total}`,subgroupsOf:`подгруппы:`,hideSubgroups:`Скрыть подгруппы`,showSubgroups:`Показать подгруппы`,navTabs:`Показать группы вкладками`,navSidebar:`Показать группы в боковой панели`,uncategorized:`Без категории`,uncategorizedSummary:`Файлы, не охваченные текущим анализом.`},u={critical:`Проверьте внимательно`},d={layoutTree:`Показать файлы деревом`,layoutList:`Показать файлы списком`,markReviewed:`Отметить как проверенный`,markFolderReviewed:`Отметить все файлы в {name} как проверенные`,changedSinceReviewed:`Этот файл уже был проверен, но изменился в последующих коммитах`,resolved:`{n} решено`,binary:`Бинарный файл`,binaryNotShown:`Бинарный файл не отображается.`,tooLarge:`Diff слишком большой для отображения.`,loadFailed:`Не удалось загрузить`,loadFull:`Загрузить полное содержимое файла`,expand:`Развернуть файл`,collapse:`Свернуть файл`,collapseMenu:`Развернуть или свернуть файлы`,expandAll:`Развернуть все файлы`,collapseAll:`Свернуть все файлы`,collapseReviewed:`Свернуть проверенные файлы`,noLongerInDiff:`Больше нет в этом diff`,removed:`удалён`},f={title:`Ход проверки`,markAll:`Отметить все как проверенные`,reset:`Сбросить состояние проверки`,invert:`Инвертировать состояние проверки`,status:{reviewed:`Проверен`,changed:`Изменён после проверки`,unreviewed:`Не проверен`}},p={added:`добавлен`,removed:`удалён`,modified:`изменён`,renamed:`переименован`,copied:`скопирован`},m={open:`открыт`,draft:`черновик`,closed:`закрыт`,merged:`влит`},h={ui:`UI`,api:`API`,core:`ядро`,data:`данные`,cli:`CLI`,security:`безопасность`,tests:`тесты`,docs:`документация`,examples:`примеры`,deps:`зависимости`,build:`сборка`,scripts:`скрипты`,config:`конфигурация`,i18n:`i18n`,assets:`ресурсы`,other:`прочее`},g={addReview:`Добавить ревью`,hideComments:`Скрыть комментарии ревью`,showComments:`Показать комментарии ревью`,reviews:`Ревью`,approved:`одобрил`,changesRequested:`запросил изменения`,commented:`прокомментировал`,dismissed:`ревью отклонено`,reviewChanges:`Ревью изменений`,includesPending:`Отправка включает {n} ожидающих комментариев. | Отправка включает {n} ожидающий комментарий. | Отправка включает {n} ожидающих комментария. | Отправка включает {n} ожидающих комментариев.`,summaryPlaceholder:`Оставьте резюме (необязательно при одобрении)`,comment:`Комментировать`,approve:`Одобрить`,requestChanges:`Запросить изменения`,discard:`Отменить ревью`,leaveComment:`Оставьте комментарий`,addSingle:`Добавить одиночный комментарий`,addToReview:`Добавить комментарий ревью`,startReview:`Начать ревью`,pending:`Ожидает`,editComment:`Редактировать комментарий`,deleteComment:`Удалить комментарий`,replyPlaceholder:`Ответить…`,resolve:`Решено`},_={title:`Спросить об этом PR`,collapse:`Свернуть`,reanalyzeToEnable:`Повторите анализ, чтобы включить чат`,thinking:`Думаю…`,placeholder:`Спросите об этом PR…`,updatedGrouping:`Группировка обновлена: {n} групп`,readFiles:`Прочитано {n} файлов | Прочитан {n} файл | Прочитано {n} файла | Прочитано {n} файлов`,updatingGrouping:`Обновление группировки…`,submittingGrouping:`Отправка группировки…`,requestFailed:`Запрос не удался`,stopped:`остановлено`},v={layout:`Вид diff`,wrapLines:`Переносить строки`,unified:`Единый`,split:`Раздельный`,syntaxTheme:{label:`Тема подсветки синтаксиса`,light:`Светлый режим`,dark:`Тёмный режим`},cached:`Кэшированные pull request`,autoRefresh:`Автоматически обновлять при обнаружении новых коммитов`,language:`Язык`,token:{label:`GitHub Personal Access Token`,optional:`Необязателен для публичных репозиториев; нужен для приватных репозиториев и для отправки ревью.`,scopes:`Для ревью нужен scope {repo} (классический токен) или {fineGrained} (детализированный токен)`,storedLocally:`Хранится только в этом браузере.`,generate:`Создать на GitHub →`,fineGrained:`Детализированный токен (без классических scope)`,updated:`Обновлён`,expires:`Истекает`,neverExpires:`Бессрочный`,change:`Сменить токен`,checking:`Проверка токена…`,couldNotVerify:`Не удалось проверить этот токен.`},tabs:{appearance:`Внешний вид`,behavior:`Поведение`,github:`GitHub`,ai:`ИИ-анализ`,notSetUp:`Ещё не настроено`},llm:{title:`ИИ-анализ`,description:`Настройте провайдера моделей, чтобы включить сгенерированные ИИ описания. Хранится только в этом браузере и отправляется только выбранному провайдеру.`,provider:`Провайдер`,baseUrl:`Базовый URL`,baseUrlDescription:`Любой OpenAI-совместимый endpoint chat completions (сам OpenAI, локальный сервер и т. д.).`,apiKey:`API-ключ`,gatewayHint:`Токен {link}, дающий доступ ко всем поддерживаемым вендорам одним токеном.`,anthropicHint:`{link}, вызываемый напрямую из этого браузера (без gateway).`,anthropicLink:`API-ключ Anthropic`,openaiHint:`API-ключ для указанного выше endpoint.`,createKey:`Создать на {provider} →`,configured:`Настроен`,changeKey:`Сменить ключ`,model:`Модель`,modelListFailed:`Не удалось загрузить список моделей ({error}). Введите id модели вручную.`,embedUnavailable:`Функции ИИ недоступны во встроенном режиме`,embedReason:`Строгая CSP github.com блокирует запросы, необходимые функциям ИИ. {link}, чтобы использовать их.`,goToWebsite:`Перейдите на сайт`,agent:`Агент`,agentNeedsCli:"Локальные агенты работают в CLI pulls.review: запустите её в репозитории командой `npx pulls.review` и выберите агента там.",agentDetecting:`Поиск CLI агентов…`,agentNone:`На этом компьютере не найдено CLI агентов.`,agentHint:`Установленный на этом компьютере агент для кода со своей учётной записью: {claude} или {opencode}. Он читает патч и репозиторий и ничего не записывает.`,agentPick:`Выберите агента…`},models:{placeholder:`id модели`,loading:`Загрузка моделей…`,search:`Поиск моделей…`,noMatch:`Подходящих моделей нет`,useCustom:`Использовать «{id}»`,free:`Бесплатно`,priceTitle:`Вход {input}/M · Выход {output}/M токенов`,agentDefault:`По умолчанию для агента`}},y={allFiles:`Все файлы`,code:{label:`Код`,summary:`Изменения исходного кода.`},other:{label:`Прочее`,summary:`Другие изменения, не подходящие под существующие категории.`},docs:{label:`Документация`,summary:`Обновления документации.`},tests:{label:`Тесты`,summary:`Тестовое покрытие изменения.`},config:{label:`Конфигурация`,summary:`Изменения конфигурации.`},deps:{label:`Зависимости`,summary:`Изменения версий зависимостей.`},generated:{label:`Сгенерированное`,summary:`Изменения сгенерированных файлов или артефактов сборки.`}},b={tokenRequired:`Для записи в этот pull request нужен токен GitHub.`,diffNotLoaded:`Diff ещё не загрузился.`,noViewer:`Не удалось определить пользователя GitHub для этого токена.`,tokenRejected:`GitHub отклонил этот токен (401). Проверьте, что он вставлен полностью и не отозван.`,tooLarge:`Анализ слишком велик, чтобы поделиться им в комментарии ({n} символов).`},x={loading:`Загрузка локальных изменений…`,loadFailed:`Не удалось загрузить эти изменения`,auth:{title:`Введите код из терминала`,hint:`pulls.review вывел 6-значный код в терминале, где он запущен.`,invalid:`Этот код не подошёл. Проверьте терминал и попробуйте ещё раз.`,submit:`Продолжить`},picker:{tagline:`Ревьюйте локальные ветки, диапазоны и незакоммиченные изменения как pull request: по группам, с кратким описанием, по одной области за раз.`,title:`Ревью локальных изменений`,base:`База`,head:`Head`,compare:`Сравнить`,shortcuts:`Быстрые ссылки`,worktree:`Незакоммиченные изменения`,recentCommits:`Последние коммиты`,branches:`Ветки`,against:`относительно {base}`,current:`Текущая ветка`,github:`Или pull request, сравнение или коммит на GitHub`}},S={common:e,landing:t,guide:n,load:r,pr:i,embed:a,pulls:o,analyze:s,share:c,group:l,note:u,file:d,reviewProgress:f,fileStatus:p,prState:m,category:h,review:g,chat:_,settings:v,rules:y,errors:b,local:x};export{s as analyze,h as category,_ as chat,e as common,S as default,a as embed,b as errors,d as file,p as fileStatus,l as group,n as guide,t as landing,r as load,x as local,u as note,i as pr,m as prState,o as pulls,g as review,f as reviewProgress,y as rules,v as settings,c as share};
@@ -0,0 +1,2 @@
1
+ import{$ as e,D as t,Dt as n,M as r,O as i,P as a,Pt as o,Rt as s,Sr as c,Wt as l,Y as u,Yn as d,Zt as f,_r as p,ar as m,br as h,cr as ee,dn as te,dr as g,en as _,er as v,fr as y,ft as ne,gr as b,hr as x,ir as re,jt as S,kr as C,lr as ie,lt as w,mn as ae,mr as oe,nr as se,or as ce,pr as le,q as ue,rr as T,sr as E,tr as de,tt as fe,ur as D,ut as pe,vr as O,wr as me,xr as k,yr as he,z as ge,zt as _e}from"./vue-i18n-CGHHpbTP.js";var A=void 0,ve=typeof window<`u`&&window.trustedTypes;if(ve)try{A=ve.createPolicy(`vue`,{createHTML:e=>e})}catch{}var ye=A?e=>A.createHTML(e):e=>e,be=`http://www.w3.org/2000/svg`,xe=`http://www.w3.org/1998/Math/MathML`,j=typeof document<`u`?document:null,Se=j&&j.createElement(`template`),Ce={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i=t===`svg`?j.createElementNS(be,e):t===`mathml`?j.createElementNS(xe,e):n?j.createElement(e,{is:n}):j.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>j.createTextNode(e),createComment:e=>j.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>j.querySelector(e),setScopeId(e,t){e.setAttribute(t,``)},insertStaticContent(e,t,n,r,i,a){let o=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==a&&(i=i.nextSibling););else{Se.innerHTML=ye(r===`svg`?`<svg>${e}</svg>`:r===`mathml`?`<math>${e}</math>`:e);let i=Se.content;if(r===`svg`||r===`mathml`){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},M=`transition`,N=`animation`,P=Symbol(`_vtc`),we={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Te=m({},i,we),Ee=(e=>(e.displayName=`Transition`,e.props=Te,e))((e,{slots:n})=>ne(t,Oe(e),n)),F=(e,t=[])=>{D(e)?e.forEach(e=>e(...t)):e&&e(...t)},De=e=>e?D(e)?e.some(e=>e.length>1):e.length>1:!1;function Oe(e){let t={};for(let n in e)n in we||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:l=o,appearToClass:u=s,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:f=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,h=ke(i),ee=h&&h[0],te=h&&h[1],{onBeforeEnter:g,onEnter:_,onEnterCancelled:v,onLeave:y,onLeaveCancelled:ne,onBeforeAppear:b=g,onAppear:x=_,onAppearCancelled:re=v}=t,S=(e,t,n,r)=>{e._enterCancelled=r,R(e,t?u:s),R(e,t?l:o),n&&n()},C=(e,t)=>{e._isLeaving=!1,R(e,d),R(e,p),R(e,f),t&&t()},ie=e=>(t,n)=>{let i=e?x:_,o=()=>S(t,e,n);F(i,[t,o]),Ae(()=>{R(t,e?c:a),L(t,e?u:s),De(i)||Me(t,r,ee,o)})};return m(t,{onBeforeEnter(e){F(g,[e]),L(e,a),L(e,o)},onBeforeAppear(e){F(b,[e]),L(e,c),L(e,l)},onEnter:ie(!1),onAppear:ie(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>C(e,t);L(e,d),e._enterCancelled?(L(e,f),Ie(e)):(Ie(e),L(e,f)),Ae(()=>{e._isLeaving&&(R(e,d),L(e,p),De(y)||Me(e,r,te,n))}),F(y,[e,n])},onEnterCancelled(e){S(e,!1,void 0,!0),F(v,[e])},onAppearCancelled(e){S(e,!0,void 0,!0),F(re,[e])},onLeaveCancelled(e){C(e),F(ne,[e])}})}function ke(e){if(e==null)return null;if(le(e))return[I(e.enter),I(e.leave)];{let t=I(e);return[t,t]}}function I(e){return C(e)}function L(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[P]||(e[P]=new Set)).add(t)}function R(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[P];n&&(n.delete(t),n.size||(e[P]=void 0))}function Ae(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var je=0;function Me(e,t,n,r){let i=e._endId=++je,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Ne(e,t);if(!o)return r();let l=o+`end`,u=0,d=()=>{e.removeEventListener(l,f),a()},f=t=>{t.target===e&&++u>=c&&d()};setTimeout(()=>{u<c&&d()},s+1),e.addEventListener(l,f)}function Ne(e,t){let n=window.getComputedStyle(e),r=e=>(n[e]||``).split(`, `),i=r(`${M}Delay`),a=r(`${M}Duration`),o=Pe(i,a),s=r(`${N}Delay`),c=r(`${N}Duration`),l=Pe(s,c),u=null,d=0,f=0;t===M?o>0&&(u=M,d=o,f=a.length):t===N?l>0&&(u=N,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?M:N:null,f=u?u===M?a.length:c.length:0);let p=u===M&&/\b(?:transform|all)(?:,|$)/.test(r(`${M}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Pe(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((t,n)=>Fe(t)+Fe(e[n])))}function Fe(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function Ie(e){return(e?e.ownerDocument:document).body.offsetHeight}function Le(e,t,n){let r=e[P];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var z=Symbol(`_vod`),Re=Symbol(`_vsh`),ze={name:`show`,beforeMount(e,{value:t},{transition:n}){e[z]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):B(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),B(e,!0),r.enter(e)):r.leave(e,()=>{B(e,!1)}):B(e,t))},beforeUnmount(e,{value:t}){B(e,t)}};function B(e,t){e.style.display=t?e[z]:`none`,e[Re]=!t}function Be(){ze.getSSRProps=({value:e})=>{if(!e)return{style:{display:`none`}}}}var Ve=Symbol(``);function He(e){let t=w();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>V(e,n))},r=()=>{let r=e(t.proxy);t.ce?V(t.ce,r):Ue(t.subTree,r),n(r)};S(()=>{l(r)}),o(()=>{ae(r,se,{flush:`post`});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),s(()=>e.disconnect())})}function Ue(e,t){if(e.shapeFlag&128){let n=e.suspense;e=n.activeBranch,n.pendingBranch&&!n.isHydrating&&n.effects.push(()=>{Ue(n.activeBranch,t)})}for(;e.component;)e=e.component.subTree;if(e.shapeFlag&1&&e.el)V(e.el,t);else if(e.type===r)e.children.forEach(e=>Ue(e,t));else if(e.type===a){let{el:n,anchor:r}=e;for(;n&&(V(n,t),n!==r);)n=n.nextSibling}}function V(e,t){if(e.nodeType===1){let n=e.style,r=``;for(let e in t){let i=me(t[e]);n.setProperty(`--${e}`,i),r+=`--${e}: ${i};`}n[Ve]=r}}var We=/(?:^|;)\s*display\s*:/;function Ge(e,t,n){let r=e.style,i=O(n),a=!1;if(n&&!i){if(t){if(O(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??U(r,t,``)}else for(let e in t)n[e]??U(r,e,``)}for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?U(r,i,``):Ye(e,i,!O(t)&&t?t[i]:void 0,o)||U(r,i,o)}}else if(i){if(t!==n){let e=r[Ve];e&&(n+=`;`+e),r.cssText=n,a=We.test(n)}}else t&&e.removeAttribute(`style`);z in e&&(e[z]=a?r.display:``,e[Re]&&(r.display=`none`))}var H=/\s*!important$/;function U(e,t,n){if(D(n))n.forEach(n=>U(e,t,n));else if(n??=``,t.startsWith(`--`))H.test(n)?e.setProperty(t,n.replace(H,``),`important`):e.setProperty(t,n);else{let r=Je(e,t);H.test(n)?e.setProperty(E(r),n.replace(H,``),`important`):e[r]=n}}var Ke=[`Webkit`,`Moz`,`ms`],qe={};function Je(e,t){let n=qe[t];if(n)return n;let r=T(t);if(r!==`filter`&&r in e)return qe[t]=r;r=re(r);for(let n=0;n<Ke.length;n++){let i=Ke[n]+r;if(i in e)return qe[t]=i}return t}function Ye(e,t,n,r){return e.tagName===`TEXTAREA`&&(t===`width`||t===`height`)&&O(r)&&n===r}var Xe=`http://www.w3.org/1999/xlink`;function Ze(e,t,n,r,i,a=p(t)){r&&t.startsWith(`xlink:`)?n==null?e.removeAttributeNS(Xe,t.slice(6,t.length)):e.setAttributeNS(Xe,t,n):n==null||a&&!ee(n)?e.removeAttribute(t):e.setAttribute(t,a?``:he(n)?String(n):n)}function Qe(e,t,n,r,i){if(t===`innerHTML`||t===`textContent`){n!=null&&(e[t]=t===`innerHTML`?ye(n):n);return}let a=e.tagName;if(t===`value`&&a!==`PROGRESS`&&!a.includes(`-`)){let r=a===`OPTION`?e.getAttribute(`value`)||``:e.value,i=n==null?e.type===`checkbox`?`on`:``:String(n);(r!==i||!(`_value`in e))&&(e.value=i),n??e.removeAttribute(t),e._value=n;return}let o=!1;if(n===``||n==null){let r=typeof e[t];r===`boolean`?n=ee(n):n==null&&r===`string`?(n=``,o=!0):r===`number`&&(n=0,o=!0)}try{e[t]=n}catch{}o&&e.removeAttribute(i||t)}function W(e,t,n,r){e.addEventListener(t,n,r)}function $e(e,t,n,r){e.removeEventListener(t,n,r)}var et=Symbol(`_vei`);function tt(e,t,n,r,i=null){let a=e[et]||(e[et]={}),o=a[t];if(r&&o)o.value=r;else{let[n,s]=it(t);r?W(e,n,a[t]=ct(r,i),s):o&&($e(e,n,o,s),a[t]=void 0)}}var nt=/(Once|Passive|Capture)$/,rt=/^on:?(?:Once|Passive|Capture)$/;function it(e){let t,n;for(;(n=e.match(nt))&&!rt.test(e);)t||={},e=e.slice(0,e.length-n[1].length),t[n[1].toLowerCase()]=!0;return[e[2]===`:`?e.slice(3):E(e.slice(2)),t]}var at=0,ot=Promise.resolve(),st=()=>at||=(ot.then(()=>at=0),Date.now());function ct(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(D(r)){let n=e.stopImmediatePropagation;e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0};let i=r.slice(),a=[e];for(let n=0;n<i.length&&!e._stopped;n++){let e=i[n];e&&ge(e,t,5,a)}}else ge(r,t,5,[e])};return n.value=e,n.attached=st(),n}var lt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ut=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Le(e,r,o):t===`style`?Ge(e,n,r):oe(t)?y(t)||tt(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),1):t[0]===`^`?(t=t.slice(1),0):dt(e,t,r,o))?(Qe(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Ze(e,t,r,o,a,t!==`value`)):e._isVueCE&&(ft(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!O(r)))?Qe(e,T(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Ze(e,t,r,o))};function dt(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&lt(t)&&g(n));if(t===`spellcheck`||t===`draggable`||t===`translate`||t===`autocorrect`||t===`sandbox`&&e.tagName===`IFRAME`||t===`form`||t===`list`&&e.tagName===`INPUT`||t===`type`&&e.tagName===`TEXTAREA`)return!1;if(t===`width`||t===`height`){let t=e.tagName;if(t===`IMG`||t===`VIDEO`||t===`CANVAS`||t===`SOURCE`)return!1}return lt(t)&&O(n)?!1:t in e}function ft(e,t){let n=e._def.props;if(!n)return!1;let r=T(t);return Array.isArray(n)?n.some(e=>T(e)===r):Object.keys(n).some(e=>T(e)===r)}var pt={};function mt(e,t,n){let r=fe(e,t);x(r)&&(r=m({},r,t));class i extends _t{constructor(e){super(r,e,n)}}return i.def=r,i}var ht=((e,t)=>mt(e,t,en)),gt=typeof HTMLElement<`u`?HTMLElement:class{},_t=class t extends gt{constructor(e,t={},n=$){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==$?this._root=this.shadowRoot:e.shadowRoot===!1?this._root=this:(this.attachShadow(m({},e.shadowRootOptions,{mode:`open`})),this._root=this.shadowRoot)}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let e=this;for(;e&&=e.assignedSlot||e.parentNode||e.host;)if(e instanceof t){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,n(()=>{this._connected||(this._ob&&=(this._ob.disconnect(),null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&=(this._teleportTargets.clear(),void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let e=0;e<this.attributes.length;e++)this._setAttr(this.attributes[e].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});let e=(e,t=!1)=>{this._resolved=!0,this._pendingResolve=void 0;let{props:n,styles:r}=e,i;if(n&&!D(n))for(let e in n){let t=n[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=C(this._props[e])),(i||=Object.create(null))[T(e)]=!0)}this._numberProps=i,this._resolveProps(e),this.shadowRoot&&this._applyStyles(r),this._mount(e)},t=this._def.__asyncLoader;if(t)return this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}),this._pendingResolve;e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)ce(this,e)||Object.defineProperty(this,e,{get:()=>v(t[e])})}_resolveProps(e){let{props:t}=e,n=D(t)?t:Object.keys(t||{});for(let e of Object.keys(this))e[0]!==`_`&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(T))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith(`data-v-`))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):pt,r=T(e);t&&this._numberProps&&this._numberProps[r]&&(n=C(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===pt?delete this._props[e]:(this._props[e]=t,e===`key`&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),t===!0?this.setAttribute(E(e),``):typeof t==`string`||typeof t==`number`?this.setAttribute(E(e),t+``):t||this.removeAttribute(E(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),Qt(e,this._root)}_createVNode(){let t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));let n=e(this._def,m(t,this._props));return this._instance||(n.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{this.dispatchEvent(new CustomEvent(e,x(t[0])?m({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),E(e)!==e&&t(E(e),n)},this._setParent()}),n}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,a=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),o=null;for(let s=e.length-1;s>=0;s--){let c=document.createElement(`style`);r&&c.setAttribute(`nonce`,r),c.textContent=e[s],i.insertBefore(c,o||a),o=c,s===0&&(n||this._styleAnchors.set(this._def,c),t&&this._styleAnchors.set(t,c))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t<e.childNodes.length;t++){let n=e.childNodes[t];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){let e=this._slots={},t;for(;t=this.firstChild;){let n=t.nodeType===1&&t.getAttribute(`slot`)||`default`;(e[n]||(e[n]=[])).push(t),this.removeChild(t)}}_renderSlots(){let e=this._getSlots(),t=this._instance.type.__scopeId;for(let n=0;n<e.length;n++){let r=e[n],i=r.getAttribute(`name`)||`default`,a=this._slots[i],o=r.parentNode;if(a)for(let e of a){if(t&&e.nodeType===1){let n=t+`-s`,r=document.createTreeWalker(e,1);e.setAttribute(n,``);let i;for(;i=r.nextNode();)i.setAttribute(n,``)}o.insertBefore(e,r)}else for(;r.firstChild;)o.insertBefore(r.firstChild,r);o.removeChild(r)}}_getSlots(){let e=[this];this._teleportTargets&&e.push(...this._teleportTargets);let t=new Set;for(let n of e){let e=n.querySelectorAll(`slot`);for(let n=0;n<e.length;n++)t.add(e[n])}return Array.from(t)}_injectChildStyle(e,t){this._applyStyles(e.styles,e,t)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(e){}};function vt(e){let t=w();return t&&t.ce||null}function yt(){let e=vt();return e&&e.shadowRoot}function bt(e=`$style`){{let t=w();if(!t)return de;let n=t.type.__cssModules;return n&&n[e]||de}}var xt=new WeakMap,St=new WeakMap,G=Symbol(`_moveCb`),Ct=Symbol(`_enterCb`),wt=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:m({},Te,{tag:String,moveClass:String}),setup(t,{slots:n}){let i=w(),a=te(),o,s;return _e(()=>{if(!o.length)return;let e=t.moveClass||`${t.name||`v`}-move`;if(!kt(o[0].el,i.vnode.el,e)){o=[];return}o.forEach(Tt),o.forEach(Et);let n=o.filter(Dt);Ie(i.vnode.el),n.forEach(t=>{let n=t.el,r=n.style;L(n,e),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[G]=t=>{t&&t.target!==n||(!t||t.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[G]=null,R(n,e))};n.addEventListener(`transitionend`,i)}),o=[]}),()=>{let c=d(t),l=Oe(c),u=c.tag||r;if(o=[],s)for(let e=0;e<s.length;e++){let t=s[e];t.el&&t.el instanceof Element&&!t.el[Re]&&(o.push(t),_(t,f(t,l,a,i)),xt.set(t,Ot(t.el)))}s=n.default?pe(n.default()):[];for(let e=0;e<s.length;e++){let t=s[e];t.key!=null&&_(t,f(t,l,a,i))}return e(u,null,s)}}});function Tt(e){let t=e.el;t[G]&&t[G](),t[Ct]&&t[Ct]()}function Et(e){St.set(e,Ot(e.el))}function Dt(e){let t=xt.get(e),n=St.get(e),r=t.left-n.left,i=t.top-n.top;if(r||i){let t=e.el,n=t.style,a=t.getBoundingClientRect(),o=1,s=1;return t.offsetWidth&&(o=a.width/t.offsetWidth),t.offsetHeight&&(s=a.height/t.offsetHeight),(!Number.isFinite(o)||o===0)&&(o=1),(!Number.isFinite(s)||s===0)&&(s=1),Math.abs(o-1)<.01&&(o=1),Math.abs(s-1)<.01&&(s=1),n.transform=n.webkitTransform=`translate(${r/o}px,${i/s}px)`,n.transitionDuration=`0s`,e}}function Ot(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}function kt(e,t,n){let r=e.cloneNode(),i=e[P];i&&i.forEach(e=>{e.split(/\s+/).forEach(e=>e&&r.classList.remove(e))}),n.split(/\s+/).forEach(e=>e&&r.classList.add(e)),r.style.display=`none`;let a=t.nodeType===1?t:t.parentNode;a.appendChild(r);let{hasTransform:o}=Ne(r);return a.removeChild(r),o}var K=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return D(t)?e=>ie(t,e):t};function At(e){e.target.composing=!0}function jt(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var q=Symbol(`_assign`),J=Symbol(`_initialValue`);function Mt(e,t,n){return t&&(e=e.trim()),n&&(e=c(e)),e}var Y={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e.parentNode&&(e.type===`text`?e[J]=e.defaultValue.replace(/[\r\n]/g,``):e.type===`textarea`&&(e[J]=e.defaultValue.replace(/\r\n?/g,`
2
+ `))),e[q]=K(i);let a=r||i.props&&i.props.type===`number`;W(e,t?`change`:`input`,t=>{t.target.composing||e[q](Mt(e.value,n,a))}),(n||a)&&W(e,`change`,()=>{e.value=Mt(e.value,n,a)}),t||(W(e,`compositionstart`,At),W(e,`compositionend`,jt),W(e,`change`,jt))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let i=t??``,a=e[J];delete e[J],a!==void 0&&(e.type===`text`||e.type===`textarea`)&&e.value!==a?e[q](Mt(e.value,n,r)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[q]=K(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?c(e.value):e.value,l=t??``;if(s===l)return;let u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===l)||(e.value=l)}},Nt={deep:!0,created(e,t,n){e[q]=K(n),W(e,`change`,()=>{let t=e._modelValue,n=X(e),r=e.checked,i=e[q];if(D(t)){let e=k(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(b(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(zt(e,r))})},mounted:Pt,beforeUpdate(e,t,n){e[q]=K(n),Pt(e,t,n)}};function Pt(e,{value:t,oldValue:n},r){e._modelValue=t;let i;if(D(t))i=k(t,r.props.value)>-1;else if(b(t))i=t.has(r.props.value);else{if(t===n)return;i=h(t,zt(e,!0))}e.checked!==i&&(e.checked=i)}var Ft={created(e,{value:t},n){e.checked=h(t,n.props.value),e[q]=K(n),W(e,`change`,()=>{e[q](X(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[q]=K(r),t!==n&&(e.checked=h(t,r.props.value))}},It={deep:!0,created(e,{value:t,modifiers:{number:r}},i){e._modelValue=t,W(e,`change`,()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>r?c(X(e)):X(e)),i=e.multiple,a=i?b(e._modelValue)?new Set(t):t:t[0],o=e._pendingValue=[i,i?D(a)?t.slice():t:a];try{e[q](a)}finally{n(()=>{e._pendingValue===o&&(e._pendingValue=void 0)})}}),e[q]=K(i)},mounted(e,{value:t}){Rt(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[q]=K(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!Lt(t,n[1],n[0]))&&Rt(e,t)}};function Lt(e,t,n){if(!n||D(e))return h(e,t);if(b(e)){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}return!1}function Rt(e,t){let n=e.multiple,r=D(t);if(!n||r||b(t)){for(let i=0,a=e.options.length;i<a;i++){let a=e.options[i],o=X(a);if(n){if(r){let e=typeof o;a.selected=e===`string`||e===`number`?t.some(e=>String(e)===String(o)):k(t,o)>-1}else a.selected=t.has(o)}else if(h(X(a),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function X(e){return`_value`in e?e._value:e.value}function zt(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var Bt={created(e,t,n){Z(e,t,n,null,`created`)},mounted(e,t,n){Z(e,t,n,null,`mounted`)},beforeUpdate(e,t,n,r){Z(e,t,n,r,`beforeUpdate`)},updated(e,t,n,r){Z(e,t,n,r,`updated`)}};function Vt(e,t){switch(e){case`SELECT`:return It;case`TEXTAREA`:return Y;default:switch(t){case`checkbox`:return Nt;case`radio`:return Ft;default:return Y}}}function Z(e,t,n,r,i){let a=Vt(e.tagName,n.props&&n.props.type)[i];a&&a(e,t,n,r)}function Ht(){Y.getSSRProps=({value:e})=>({value:e}),Ft.getSSRProps=({value:e},t)=>{if(t.props&&h(t.props.value,e))return{checked:!0}},Nt.getSSRProps=({value:e},t)=>{if(D(e)){if(t.props&&k(e,t.props.value)>-1)return{checked:!0}}else if(b(e)){if(t.props&&e.has(t.props.value))return{checked:!0}}else if(e)return{checked:!0}},Bt.getSSRProps=(e,t)=>{if(typeof t.type!=`string`)return;let n=Vt(t.type.toUpperCase(),t.props&&t.props.type);if(n.getSSRProps)return n.getSSRProps(e,t)}}var Ut=[`ctrl`,`shift`,`alt`,`meta`],Wt={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Ut.some(n=>e[`${n}Key`]&&!t.includes(n))},Gt=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e<t.length;e++){let r=Wt[t[e]];if(r&&r(n,t))return}return e(n,...r)}))},Kt={esc:`escape`,space:` `,up:`arrow-up`,left:`arrow-left`,right:`arrow-right`,down:`arrow-down`,delete:`backspace`},qt=(e,t)=>{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=E(n.key);if(t.some(e=>e===r||Kt[e]===r))return e(n)}))},Jt=m({patchProp:ut},Ce),Q,Yt=!1;function Xt(){return Q||=u(Jt)}function Zt(){return Q=Yt?Q:ue(Jt),Yt=!0,Q}var Qt=((...e)=>{Xt().render(...e)}),$t=((...e)=>{Zt().hydrate(...e)}),$=((...e)=>{let t=Xt().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=nn(e);if(!r)return;let i=t._component;!g(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,tn(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t}),en=((...e)=>{let t=Zt().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=nn(e);if(t)return n(t,!0,tn(t))},t});function tn(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function nn(e){return O(e)?document.querySelector(e):e}var rn=!1,an=()=>{rn||(rn=!0,Ht(),Be())};export{qt as C,ze as S,Nt as _,en as a,It as b,$t as c,ut as d,Qt as f,yt as g,vt as h,$ as i,an as l,He as m,wt as n,mt as o,bt as p,_t as r,ht as s,Ee as t,Ce as u,Bt as v,Gt as w,Y as x,Ft as y};
@@ -1,2 +1,2 @@
1
1
  var e={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function t(t){return t?{lang:t?.lang??void 0,message:t?.message,abortEarly:t?.abortEarly??void 0,abortPipeEarly:t?.abortPipeEarly??void 0}:e}function n(e){let t=typeof e;return t===`string`?`"${e}"`:t===`number`||t===`bigint`||t===`boolean`?`${e}`:t===`object`||t===`function`?(e&&Object.getPrototypeOf(e)?.constructor?.name)??`null`:t}function r(e,t,r,i,a){let o=a&&`input`in a?a.input:r.value,s=a?.expected??e.expects??null,c=a?.received??n(o),l={kind:e.kind,type:e.type,input:o,expected:s,received:c,message:`Invalid ${t}: ${s?`Expected ${s} but r`:`R`}eceived ${c}`,requirement:e.requirement,path:a?.path,issues:a?.issues,lang:i.lang,abortEarly:i.abortEarly,abortPipeEarly:i.abortPipeEarly},u=e.kind===`schema`,d=a?.message??e.message??(e.reference,l.lang,void 0)??(u?(l.lang,void 0):null)??i.message??(l.lang,void 0);d!==void 0&&(l.message=typeof d==`function`?d(l):d),u&&(r.typed=!1),r.issues?r.issues.push(l):r.issues=[l]}function i(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&t!==`__proto__`&&t!==`prototype`&&t!==`constructor`}function o(e,t){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??`never`}function s(e){return e[`~standard`]={version:1,vendor:`valibot`,validate:n=>e[`~run`]({value:n},t())},e}function c(e){if(e.path){let t=``;for(let n of e.path)if(typeof n.key==`string`||typeof n.key==`number`)t+=t?`.${n.key}`:n.key;else return null;return t}return null}var l=class extends Error{constructor(e){super(e[0].message),this.name=`ValiError`,this.issues=e}};function u(e){return{kind:`metadata`,type:`description`,reference:u,description:e}}var d={abortEarly:!0};function f(e,t,n){return typeof e.fallback==`function`?e.fallback(t,n):e.fallback}function p(e,t,n){return typeof e.default==`function`?e.default(t,n):e.default}function m(e,t){return s({kind:`schema`,type:`array`,reference:m,expects:`Array`,async:!1,item:e,message:t,"~run"(e,t){let n=e.value;if(Array.isArray(n)){e.typed=!0,e.value=[];for(let r=0;r<n.length;r++){let i=n[r],a=this.item[`~run`]({value:i},t);if(a.issues){let o={type:`array`,origin:`value`,input:n,key:r,value:i};for(let t of a.issues)t.path?t.path.unshift(o):t.path=[o],e.issues?.push(t);if(e.issues||=a.issues,t.abortEarly){e.typed=!1;break}}a.typed||(e.typed=!1),e.value.push(a.value)}}else r(this,`type`,e,t);return e}})}function h(e){return s({kind:`schema`,type:`boolean`,reference:h,expects:`boolean`,async:!1,message:e,"~run"(e,t){return typeof e.value==`boolean`?e.typed=!0:r(this,`type`,e,t),e}})}function g(e,t){return s({kind:`schema`,type:`literal`,reference:g,expects:n(e),async:!1,literal:e,message:t,"~run"(e,t){return i(e.value,this.literal)?e.typed=!0:r(this,`type`,e,t),e}})}function _(e,t){return s({kind:`schema`,type:`loose_object`,reference:_,expects:`Object`,async:!1,entries:e,message:t,"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let i in this.entries){let a=this.entries[i];if(i in n||(a.type===`exact_optional`||a.type===`optional`||a.type===`nullish`)&&a.default!==void 0){let r=i in n?n[i]:p(a),o=a[`~run`]({value:r},t);if(o.issues){let a={type:`object`,origin:`value`,input:n,key:i,value:r};for(let t of o.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[i]=o.value}else if(a.fallback!==void 0)e.value[i]=f(a);else if(a.type!==`exact_optional`&&a.type!==`optional`&&a.type!==`nullish`&&(r(this,`key`,e,t,{input:void 0,expected:`"${i}"`,path:[{type:`object`,origin:`key`,input:n,key:i,value:n[i]}]}),t.abortEarly))break}if(!e.issues||!t.abortEarly)for(let t in n)a(n,t)&&!Object.prototype.hasOwnProperty.call(this.entries,t)&&(e.value[t]=n[t])}else r(this,`type`,e,t);return e}})}function v(e,t){return s({kind:`schema`,type:`nullable`,reference:v,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,"~run"(e,t){return e.value===null&&(this.default!==void 0&&(e.value=p(this,e,t)),e.value===null)?(e.typed=!0,e):this.wrapped[`~run`](e,t)}})}function y(e){return s({kind:`schema`,type:`number`,reference:y,expects:`number`,async:!1,message:e,"~run"(e,t){return typeof e.value==`number`&&!isNaN(e.value)?e.typed=!0:r(this,`type`,e,t),e}})}function b(e,t){return s({kind:`schema`,type:`object`,reference:b,expects:`Object`,async:!1,entries:e,message:t,"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){e.typed=!0,e.value={};for(let i in this.entries){let a=this.entries[i];if(i in n||(a.type===`exact_optional`||a.type===`optional`||a.type===`nullish`)&&a.default!==void 0){let r=i in n?n[i]:p(a),o=a[`~run`]({value:r},t);if(o.issues){let a={type:`object`,origin:`value`,input:n,key:i,value:r};for(let t of o.issues)t.path?t.path.unshift(a):t.path=[a],e.issues?.push(t);if(e.issues||=o.issues,t.abortEarly){e.typed=!1;break}}o.typed||(e.typed=!1),e.value[i]=o.value}else if(a.fallback!==void 0)e.value[i]=f(a);else if(a.type!==`exact_optional`&&a.type!==`optional`&&a.type!==`nullish`&&(r(this,`key`,e,t,{input:void 0,expected:`"${i}"`,path:[{type:`object`,origin:`key`,input:n,key:i,value:n[i]}]}),t.abortEarly))break}}else r(this,`type`,e,t);return e}})}function x(e,t){return s({kind:`schema`,type:`optional`,reference:x,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,"~run"(e,t){return e.value===void 0&&(this.default!==void 0&&(e.value=p(this,e,t)),e.value===void 0)?(e.typed=!0,e):this.wrapped[`~run`](e,t)}})}function S(e,t){return s({kind:`schema`,type:`picklist`,reference:S,expects:o(e.map(n),`|`),async:!1,options:e,message:t,"~run"(e,t){return this.options.includes(e.value)?e.typed=!0:r(this,`type`,e,t),e}})}function C(e){return s({kind:`schema`,type:`string`,reference:C,expects:`string`,async:!1,message:e,"~run"(e,t){return typeof e.value==`string`?e.typed=!0:r(this,`type`,e,t),e}})}function w(e,t,n){return s({kind:`schema`,type:`variant`,reference:w,expects:`Object`,async:!1,key:e,options:t,message:n,"~run"(e,t){let n=e.value;if(n&&typeof n==`object`){let i,a=0,s=this.key,c=[],l=(e,r)=>{for(let o of e.options){if(o.type===`variant`)l(o,new Set(r).add(o.key));else{let e=!0,l=0;for(let t of r){let r=o.entries[t];if(t in n?r[`~run`]({typed:!1,value:n[t]},d).issues:r.type!==`exact_optional`&&r.type!==`optional`&&r.type!==`nullish`){e=!1,s!==t&&(a<l||a===l&&t in n&&!(s in n))&&(a=l,s=t,c=[]),s===t&&c.push(o.entries[t].expects);break}l++}if(e){let e=o[`~run`]({value:n},t);(!i||!i.typed&&e.typed)&&(i=e)}}if(i&&!i.issues)break}};if(l(this,new Set([this.key])),i)return i;r(this,`type`,e,t,{input:n[s],expected:o(c,`|`),path:[{type:`object`,origin:`value`,input:n,key:s,value:n[s]}]})}else r(this,`type`,e,t);return e}})}function T(e,n,r){let i=e[`~run`]({value:n},t(r));if(i.issues)throw new l(i.issues);return i.value}function E(...e){return s({...e[0],pipe:e,"~run"(t,n){for(let r of e)if(r.kind!==`metadata`){if(t.issues&&(r.kind===`schema`||r.kind===`transformation`)){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=r[`~run`](t,n))}return t}})}function D(e,n,r){let i=e[`~run`]({value:n},t(r));return{typed:i.typed,success:!i.issues,output:i.value,issues:i.issues}}function O(e){let t=``;for(let n of e){t&&(t+=`
2
- `),t+=`× ${n.message}`;let e=c(n);e&&(t+=`\n → at ${e}`)}return t}var k=S([`none`,`rule-based`,`llm`,`web-llm`]),A=S([`ui`,`api`,`core`,`data`,`cli`,`security`,`tests`,`docs`,`examples`,`deps`,`build`,`scripts`,`config`,`i18n`,`assets`,`other`]),j=[`ui: components, views, styles, layout.`,`api: endpoints, handlers, contracts between services or packages, third-party integrations.`,`core: domain/business logic and internal modules; use only when ui/api/data/cli don't fit.`,`data: schemas, migrations, models, queries, storage.`,`cli: command-line entry points, arg parsing, terminal output.`,`security: auth, permissions, secrets handling, input validation.`,`tests: tests, fixtures, snapshots, stories, benchmarks.`,`docs: README, guides, changelog, comment-only edits.`,`examples: examples, playgrounds, demos.`,`deps: dependency bumps, lockfiles.`,`build: bundler/compiler/toolchain config, package manifests.`,`scripts: dev and one-off scripts, automation under bin/ or tools/.`,`config: runtime config, env, feature flags, linter config, CI/CD, deployment, containers, IaC.`,`i18n: translations, locales.`,`assets: images, fonts, static files.`,`other: generated/vendored code or anything that fits nothing above.`].join(` `),M=b({key:E(C(),u(`Stable, short, kebab-case-ish id, e.g. "docs" or "feature-a".`)),label:E(C(),u(`Short, human-readable display name for this group.`)),summary:x(E(C(),u(`Concise explanation of the intention of this group (why over what). Rendered as Markdown.`))),category:E(A,u(`Which part of the system this group touches. ${j}`)),filePaths:E(m(C()),u(`File paths belonging directly to this group (not to a child). Every file path given to you MUST end up in exactly one group or child - never both, never omitted.`))}),N=b({...M.entries,category:x(M.entries.category)});function P(e){return b({...e.entries,children:x(E(m(e),u(`One extra level of nesting, e.g. splitting a large group by sub-area. Children cannot have children of their own.`)))})}var F=P(N),I=b({...b({overallSummary:x(E(C(),u(`Short paragraph summarizing the whole PR for a reviewer, rendered as Markdown.`))),groups:m(F),schemaVersion:y()}).entries,source:k,generatedAt:C(),model:x(C()),sharedBy:x(C()),locale:x(C())});function L(e,t,n){return{...t,source:e,generatedAt:new Date().toISOString(),model:n}}var R=w(`kind`,[b({kind:g(`github-pr`),owner:C(),repo:C(),number:C()}),b({kind:g(`github-compare`),owner:C(),repo:C(),base:C(),head:C()}),b({kind:g(`github-commit`),owner:C(),repo:C(),sha:C()}),b({kind:g(`paste`),hash:C()}),b({kind:g(`local`),repo:C(),target:C()})]);function z(e){switch(e.kind){case`github-pr`:return`github:${e.owner}/${e.repo}#${e.number}`;case`github-compare`:return`github:${e.owner}/${e.repo}@${e.base}...${e.head}`;case`github-commit`:return`github:${e.owner}/${e.repo}@${e.sha}`;case`paste`:return`paste:${e.hash}`;case`local`:return`local:${encodeURIComponent(e.repo)}@${encodeURIComponent(e.target)}`}}function B(e){return{githubToken:async()=>e}}export{O as S,T as _,M as a,D as b,m as c,g as d,_ as f,x as g,b as h,I as i,h as l,y as m,z as n,L as o,v as p,B as r,P as s,R as t,u,S as v,C as x,E as y};
2
+ `),t+=`× ${n.message}`;let e=c(n);e&&(t+=`\n → at ${e}`)}return t}var k=S([`additions`,`deletions`]),A=b({login:C(),avatarUrl:x(C())}),j=b({threads:m(b({rootId:y(),path:C(),side:k,line:x(y()),startLine:x(y()),startSide:x(k),outdated:h(),resolved:x(h()),threadId:x(C()),pending:h(),comments:m(b({id:y(),author:x(A),body:C(),createdAt:C(),url:x(C()),pending:h()}))})),summaries:m(b({id:y(),author:x(A),state:S([`approved`,`changes_requested`,`commented`,`dismissed`]),body:C(),submittedAt:x(C()),url:x(C())})),pendingReview:x(b({id:y(),nodeId:C(),body:C()}))}),M=S([`none`,`rule-based`,`llm`,`web-llm`]),N=S([`ui`,`api`,`core`,`data`,`cli`,`security`,`tests`,`docs`,`examples`,`deps`,`build`,`scripts`,`config`,`i18n`,`assets`,`other`]),P=[`ui: components, views, styles, layout.`,`api: endpoints, handlers, contracts between services or packages, third-party integrations.`,`core: domain/business logic and internal modules; use only when ui/api/data/cli don't fit.`,`data: schemas, migrations, models, queries, storage.`,`cli: command-line entry points, arg parsing, terminal output.`,`security: auth, permissions, secrets handling, input validation.`,`tests: tests, fixtures, snapshots, stories, benchmarks.`,`docs: README, guides, changelog, comment-only edits.`,`examples: examples, playgrounds, demos.`,`deps: dependency bumps, lockfiles.`,`build: bundler/compiler/toolchain config, package manifests.`,`scripts: dev and one-off scripts, automation under bin/ or tools/.`,`config: runtime config, env, feature flags, linter config, CI/CD, deployment, containers, IaC.`,`i18n: translations, locales.`,`assets: images, fonts, static files.`,`other: generated/vendored code or anything that fits nothing above.`].join(` `),F=E(C(),u(`1-2 sentences explaining what a reviewer would otherwise have to work out: non-obvious logic, a subtle behavior change, a risk. Rendered as Markdown.`)),I=x(E(h(),u(`Set only when the reviewer should take extra care here: security, data loss, hard to revert, easy to get wrong.`))),L=b({path:E(C(),u(`A path from this group's filePaths.`)),text:F,critical:I}),R=b({path:E(C(),u(`A path from this group's filePaths.`)),side:E(k,u(`"additions" for a line that is new or unchanged in the new file, "deletions" for a removed line.`)),line:E(y(),u(`Line number as counted in the hunk headers: new-file numbering for "additions", old-file numbering for "deletions".`)),text:F,critical:I}),z=b({key:E(C(),u(`Stable, short, kebab-case-ish id, e.g. "docs" or "feature-a".`)),label:E(C(),u(`Short, human-readable display name for this group.`)),summary:x(E(C(),u(`Concise explanation of the intention of this group (why over what). Rendered as Markdown.`))),category:E(N,u(`Which part of the system this group touches. ${P}`)),filePaths:E(m(C()),u(`File paths belonging directly to this group (not to a child). Every file path given to you MUST end up in exactly one group or child - never both, never omitted.`)),critical:x(E(h(),u(`Set only when the whole group deserves extra reviewer care (security, data loss, hard to revert). Most groups are not critical.`))),fileNotes:x(E(m(L),u(`Optional notes about a whole file. Add one only where it saves the reviewer time; never explain the obvious. Most files need none.`))),lineNotes:x(E(m(R),u(`Optional notes about one specific line. Same bar as fileNotes; prefer a line note when the point is about one spot in the diff.`)))}),B=b({...z.entries,category:x(z.entries.category)});function V(e){return b({...e.entries,children:x(E(m(e),u(`Rarely needed; omit by default. One extra level of nesting, only to split a very large group into clearly distinct sub-areas. Children cannot have children of their own.`)))})}var H=V(B),U=b({...b({overallSummary:x(E(C(),u(`Short paragraph summarizing the whole PR for a reviewer, rendered as Markdown.`))),groups:m(H),schemaVersion:y()}).entries,source:M,generatedAt:C(),model:x(C()),sharedBy:x(C()),locale:x(C())});function W(e,t,n){return{...t,source:e,generatedAt:new Date().toISOString(),model:n}}var G=w(`kind`,[b({step:y(),kind:g(`thinking`)}),b({step:y(),kind:g(`reading`),paths:m(C())}),b({step:y(),kind:g(`organizing`)})]),K=b({agent:C(),id:C(),model:x(C())}),q=w(`kind`,[b({kind:g(`github-pr`),owner:C(),repo:C(),number:C()}),b({kind:g(`github-compare`),owner:C(),repo:C(),base:C(),head:C()}),b({kind:g(`github-commit`),owner:C(),repo:C(),sha:C()}),b({kind:g(`paste`),hash:C()}),b({kind:g(`local`),repo:C(),target:C()})]);function J(e){switch(e.kind){case`github-pr`:return`github:${e.owner}/${e.repo}#${e.number}`;case`github-compare`:return`github:${e.owner}/${e.repo}@${e.base}...${e.head}`;case`github-commit`:return`github:${e.owner}/${e.repo}@${e.sha}`;case`paste`:return`paste:${e.hash}`;case`local`:return`local:${encodeURIComponent(e.repo)}@${encodeURIComponent(e.target)}`}}function Y(e){return{githubToken:async()=>e}}export{E as C,w as D,O as E,S,C as T,v as _,G as a,x as b,W as c,j as d,m as f,_ as g,g as h,K as i,V as l,u as m,J as n,U as o,h as p,Y as r,z as s,q as t,A as u,y as v,D as w,T as x,b as y};
@@ -0,0 +1 @@
1
+ import{a as e}from"./error-CJ3RHG07.js";var t=15e3,n=5e3;function r(t,r){if(!(t>=5e3))throw new e(`${r} must be at least ${n}ms (got ${t}); to run without memory sync, pass \`memorySyncIntervalMs: null\` to the worker instead`)}export{n,r,t};
@@ -1,3 +1,3 @@
1
- import{t as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Zt as t}from"./useDocumentTitle-nuqxXiNo.js";function n(e){let t={};for(let[n,r]of e.entries())t[n]=r;return t}var r=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.ALL=e.COLLECTION=e.ATOM=e.SPECIAL=e.INF=e._INFINITY=e.INFINITY=e.NAN=e.BOOL=e.NULL=e.OBJ=e.ARR=e.NUM=e.STR=void 0,e.STR=1,e.NUM=2,e.ARR=4,e.OBJ=8,e.NULL=16,e.BOOL=32,e.NAN=64,e.INFINITY=128,e._INFINITY=256,e.INF=e.INFINITY|e._INFINITY,e.SPECIAL=e.NULL|e.BOOL|e.INF|e.NAN,e.ATOM=e.STR|e.NUM|e.SPECIAL,e.COLLECTION=e.ARR|e.OBJ,e.ALL=e.ATOM|e.COLLECTION,e.Allow={STR:e.STR,NUM:e.NUM,ARR:e.ARR,OBJ:e.OBJ,NULL:e.NULL,BOOL:e.BOOL,NAN:e.NAN,INFINITY:e.INFINITY,_INFINITY:e._INFINITY,INF:e.INF,SPECIAL:e.SPECIAL,ATOM:e.ATOM,COLLECTION:e.COLLECTION,ALL:e.ALL},e.default=e.Allow})),i=e((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.MalformedJSON=e.PartialJSON=e.parseJSON=e.parse=void 0;var i=r();Object.defineProperty(e,"Allow",{enumerable:!0,get:function(){return i.Allow}}),n(r(),e);var a=class extends Error{};e.PartialJSON=a;var o=class extends Error{};e.MalformedJSON=o;function s(e,t=i.Allow.ALL){if(typeof e!=`string`)throw TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw Error(`${e} is empty`);return c(e.trim(),t)}e.parseJSON=s;var c=(e,t)=>{let n=e.length,r=0,s=e=>{throw new a(`${e} at position ${r}`)},c=e=>{throw new o(`${e} at position ${r}`)},l=()=>(m(),r>=n&&s(`Unexpected end of input`),e[r]===`"`?u():e[r]===`{`?d():e[r]===`[`?f():e.substring(r,r+4)===`null`||i.Allow.NULL&t&&n-r<4&&`null`.startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)===`true`||i.Allow.BOOL&t&&n-r<4&&`true`.startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)===`false`||i.Allow.BOOL&t&&n-r<5&&`false`.startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)===`Infinity`||i.Allow.INFINITY&t&&n-r<8&&`Infinity`.startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)===`-Infinity`||i.Allow._INFINITY&t&&1<n-r&&n-r<9&&`-Infinity`.startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)===`NaN`||i.Allow.NAN&t&&n-r<3&&`NaN`.startsWith(e.substring(r))?(r+=3,NaN):p()),u=()=>{let a=r,o=!1;for(r++;r<n&&(e[r]!==`"`||o&&e[r-1]===`\\`);)o=e[r]===`\\`&&!o,r++;if(e.charAt(r)==`"`)try{return JSON.parse(e.substring(a,++r-Number(o)))}catch(e){c(String(e))}else if(i.Allow.STR&t)try{return JSON.parse(e.substring(a,r-Number(o))+`"`)}catch{return JSON.parse(e.substring(a,e.lastIndexOf(`\\`))+`"`)}s(`Unterminated string literal`)},d=()=>{r++,m();let a={};try{for(;e[r]!==`}`;){if(m(),r>=n&&i.Allow.OBJ&t)return a;let o=u();m(),r++;try{a[o]=l()}catch(e){if(i.Allow.OBJ&t)return a;throw e}m(),e[r]===`,`&&r++}}catch{if(i.Allow.OBJ&t)return a;s(`Expected '}' at end of object`)}return r++,a},f=()=>{r++;let n=[];try{for(;e[r]!==`]`;)n.push(l()),m(),e[r]===`,`&&r++}catch{if(i.Allow.ARR&t)return n;s(`Expected ']' at end of array`)}return r++,n},p=()=>{if(r===0){e===`-`&&c(`Not sure what '-' is`);try{return JSON.parse(e)}catch(n){if(i.Allow.NUM&t)try{return JSON.parse(e.substring(0,e.lastIndexOf(`e`)))}catch{}c(String(n))}}let a=r;for(e[r]===`-`&&r++;e[r]&&`,]}`.indexOf(e[r])===-1;)r++;r==n&&!(i.Allow.NUM&t)&&s(`Unterminated number literal`);try{return JSON.parse(e.substring(a,r))}catch{e.substring(a,r)===`-`&&s(`Not sure what '-' is`);try{return JSON.parse(e.substring(a,e.lastIndexOf(`e`)))}catch(e){c(String(e))}}},m=()=>{for(;r<n&&`
1
+ import{t as e}from"./rolldown-runtime-Dd_uD5pT.js";import{_ as t}from"./models-D651LTTp.js";function n(e){let t={};for(let[n,r]of e.entries())t[n]=r;return t}var r=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.ALL=e.COLLECTION=e.ATOM=e.SPECIAL=e.INF=e._INFINITY=e.INFINITY=e.NAN=e.BOOL=e.NULL=e.OBJ=e.ARR=e.NUM=e.STR=void 0,e.STR=1,e.NUM=2,e.ARR=4,e.OBJ=8,e.NULL=16,e.BOOL=32,e.NAN=64,e.INFINITY=128,e._INFINITY=256,e.INF=e.INFINITY|e._INFINITY,e.SPECIAL=e.NULL|e.BOOL|e.INF|e.NAN,e.ATOM=e.STR|e.NUM|e.SPECIAL,e.COLLECTION=e.ARR|e.OBJ,e.ALL=e.ATOM|e.COLLECTION,e.Allow={STR:e.STR,NUM:e.NUM,ARR:e.ARR,OBJ:e.OBJ,NULL:e.NULL,BOOL:e.BOOL,NAN:e.NAN,INFINITY:e.INFINITY,_INFINITY:e._INFINITY,INF:e.INF,SPECIAL:e.SPECIAL,ATOM:e.ATOM,COLLECTION:e.COLLECTION,ALL:e.ALL},e.default=e.Allow})),i=e((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.MalformedJSON=e.PartialJSON=e.parseJSON=e.parse=void 0;var i=r();Object.defineProperty(e,"Allow",{enumerable:!0,get:function(){return i.Allow}}),n(r(),e);var a=class extends Error{};e.PartialJSON=a;var o=class extends Error{};e.MalformedJSON=o;function s(e,t=i.Allow.ALL){if(typeof e!=`string`)throw TypeError(`expecting str, got ${typeof e}`);if(!e.trim())throw Error(`${e} is empty`);return c(e.trim(),t)}e.parseJSON=s;var c=(e,t)=>{let n=e.length,r=0,s=e=>{throw new a(`${e} at position ${r}`)},c=e=>{throw new o(`${e} at position ${r}`)},l=()=>(m(),r>=n&&s(`Unexpected end of input`),e[r]===`"`?u():e[r]===`{`?d():e[r]===`[`?f():e.substring(r,r+4)===`null`||i.Allow.NULL&t&&n-r<4&&`null`.startsWith(e.substring(r))?(r+=4,null):e.substring(r,r+4)===`true`||i.Allow.BOOL&t&&n-r<4&&`true`.startsWith(e.substring(r))?(r+=4,!0):e.substring(r,r+5)===`false`||i.Allow.BOOL&t&&n-r<5&&`false`.startsWith(e.substring(r))?(r+=5,!1):e.substring(r,r+8)===`Infinity`||i.Allow.INFINITY&t&&n-r<8&&`Infinity`.startsWith(e.substring(r))?(r+=8,1/0):e.substring(r,r+9)===`-Infinity`||i.Allow._INFINITY&t&&1<n-r&&n-r<9&&`-Infinity`.startsWith(e.substring(r))?(r+=9,-1/0):e.substring(r,r+3)===`NaN`||i.Allow.NAN&t&&n-r<3&&`NaN`.startsWith(e.substring(r))?(r+=3,NaN):p()),u=()=>{let a=r,o=!1;for(r++;r<n&&(e[r]!==`"`||o&&e[r-1]===`\\`);)o=e[r]===`\\`&&!o,r++;if(e.charAt(r)==`"`)try{return JSON.parse(e.substring(a,++r-Number(o)))}catch(e){c(String(e))}else if(i.Allow.STR&t)try{return JSON.parse(e.substring(a,r-Number(o))+`"`)}catch{return JSON.parse(e.substring(a,e.lastIndexOf(`\\`))+`"`)}s(`Unterminated string literal`)},d=()=>{r++,m();let a={};try{for(;e[r]!==`}`;){if(m(),r>=n&&i.Allow.OBJ&t)return a;let o=u();m(),r++;try{a[o]=l()}catch(e){if(i.Allow.OBJ&t)return a;throw e}m(),e[r]===`,`&&r++}}catch{if(i.Allow.OBJ&t)return a;s(`Expected '}' at end of object`)}return r++,a},f=()=>{r++;let n=[];try{for(;e[r]!==`]`;)n.push(l()),m(),e[r]===`,`&&r++}catch{if(i.Allow.ARR&t)return n;s(`Expected ']' at end of array`)}return r++,n},p=()=>{if(r===0){e===`-`&&c(`Not sure what '-' is`);try{return JSON.parse(e)}catch(n){if(i.Allow.NUM&t)try{return JSON.parse(e.substring(0,e.lastIndexOf(`e`)))}catch{}c(String(n))}}let a=r;for(e[r]===`-`&&r++;e[r]&&`,]}`.indexOf(e[r])===-1;)r++;r==n&&!(i.Allow.NUM&t)&&s(`Unterminated number literal`);try{return JSON.parse(e.substring(a,r))}catch{e.substring(a,r)===`-`&&s(`Not sure what '-' is`);try{return JSON.parse(e.substring(a,e.lastIndexOf(`e`)))}catch(e){c(String(e))}}},m=()=>{for(;r<n&&`
2
2
  \r `.includes(e[r]);)r++};return l()};e.parse=s}))(),a=new Set([`"`,`\\`,`/`,`b`,`f`,`n`,`r`,`t`,`u`]);function o(e){let t=e.codePointAt(0);return t!==void 0&&t>=0&&t<=31}function s(e){switch(e){case`\b`:return`\\b`;case`\f`:return`\\f`;case`
3
3
  `:return`\\n`;case`\r`:return`\\r`;case` `:return`\\t`;default:return`\\u${e.codePointAt(0)?.toString(16).padStart(4,`0`)??`0000`}`}}function c(e){let t=``,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(!n){t+=i,i===`"`&&(n=!0);continue}if(i===`"`){t+=i,n=!1;continue}if(i===`\\`){let n=e[r+1];if(n===void 0){t+=`\\\\`;continue}if(n===`u`){let n=e.slice(r+2,r+6);if(/^[0-9a-fA-F]{4}$/.test(n)){t+=`\\u${n}`,r+=5;continue}}if(a.has(n)){t+=`\\${n}`,r+=1;continue}t+=`\\\\`;continue}t+=o(i)?s(i):i}return t}function l(e){try{return JSON.parse(e)}catch(t){let n=c(e);if(n!==e)return JSON.parse(n);throw t}}function u(e){if(!e||e.trim()===``)return{};try{return l(e)}catch{try{return(0,i.parse)(e)??{}}catch{try{return(0,i.parse)(c(e))??{}}catch{return{}}}}}function d(){return typeof process>`u`||!(process.versions?.node||process.versions?.bun)?null:process.getBuiltinModule?.(`node:os`)??null}var f=d();function p(){return f?`pi (${f.platform()} ${f.release()}; ${f.arch()})`:`pi (browser)`}var m=e(((e,t)=>{t.exports={}})),h=null;function g(e){if(!(typeof process>`u`||!process.versions?.bun||Object.keys({}).length>0)){if(h===null){h=new Map;try{let{readFileSync:e}=m(),t=e(`/proc/self/environ`,`utf-8`);for(let e of t.split(`\0`)){let t=e.indexOf(`=`);t>0&&h.set(e.slice(0,t),e.slice(t+1))}}catch{}}return h.get(e)}}function ee(e,t){return t?.[e]||(typeof process<`u`?{}[e]:void 0)||g(e)||void 0}var _=6e4;function te(e){return!(e instanceof Error)||!(`status`in e)||!(`headers`in e)?!1:(e.status===void 0||typeof e.status==`number`)&&(e.headers===void 0||e.headers instanceof Headers)}function v(e){let t=e.headers?.get(`x-should-retry`);return t===`true`?!0:t===`false`?!1:e.status===void 0||e.status===408||e.status===409||e.status===429||typeof e.status==`number`&&e.status>=500}function y(e,t,n){let r=t??_;if(r>0&&e>r)throw Error(`Server requested ${Math.ceil(e/1e3)}s retry delay (max: ${Math.ceil(r/1e3)}s). ${n}`);return e}function b(e,t,n){let r=e.headers?.get(`retry-after-ms`);if(r){let t=Number.parseFloat(r);if(!Number.isNaN(t))return y(t,n,e.message)}let i=e.headers?.get(`retry-after`);if(i){let t=Number.parseFloat(i);return y(Number.isNaN(t)?Date.parse(i)-Date.now():t*1e3,n,e.message)}return Math.min(.5*2**t,8)*1e3*(1-Math.random()*.25)}function x(){let e=Error(`Request aborted`);return e.name=`AbortError`,e}function S(e,t){return new Promise((n,r)=>{if(t?.aborted){r(x());return}let i=()=>{clearTimeout(a),r(x())},a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},Math.max(0,e));t?.addEventListener(`abort`,i,{once:!0})})}async function ne(e,t={}){let n=t.maxRetries??0,r=n;for(;;)try{return await e()}catch(e){if(t.signal?.aborted)throw x();if(r<=0||!te(e)||!v(e))throw e;let i=n-r;r--,await S(b(e,i,t.maxRetryDelayMs),t.signal)}}function C(e){return e.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,``)}var w=class extends Error{},T=[`$ref`,`$defs`,`definitions`,`allOf`,`oneOf`,`patternProperties`,`dependentSchemas`,`dependencies`,`unevaluatedProperties`,`propertyNames`,`contains`,`prefixItems`,`not`,`if`,`then`,`else`];function E(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function D(e){if(!E(e))return!1;let t=typeof e.type==`string`?[e.type]:Array.isArray(e.type)?e.type:[];return t.includes(`object`)||t.includes(`array`)||e.properties!==void 0||e.items!==void 0}function O(e){return E(e)?e.type===`null`||Array.isArray(e.type)&&e.type.includes(`null`)||e.const===null||Array.isArray(e.enum)&&e.enum.includes(null)?!0:Array.isArray(e.anyOf)&&e.anyOf.some(e=>O(e)):!1}function k(e){if(!E(e))throw new w(`boolean schemas are unsupported`);for(let t of T)if(e[t]!==void 0)throw new w(`${t} schemas are unsupported`);if(e.anyOf!==void 0){if(!Array.isArray(e.anyOf)||e.anyOf.length===0)throw new w(`anyOf must contain at least one schema`);for(let t of e.anyOf){if(D(t))throw new w(`object and array unions are unsupported`);k(t)}}if(e.items!==void 0){if(Array.isArray(e.items))throw new w(`tuple schemas are unsupported`);k(e.items)}let t=e.type===`object`;if(e.properties!==void 0&&!t)throw new w(`properties require type object`);if(!t)return;if(e.additionalProperties!==void 0&&e.additionalProperties!==!1)throw new w(`schema-valued or true additionalProperties is unsupported`);if(e.properties!==void 0&&!E(e.properties))throw new w(`object properties must be a schema map`);if(e.required!==void 0&&(!Array.isArray(e.required)||e.required.some(e=>typeof e!=`string`)))throw new w(`object required must be a string array`);let n=e.properties??{},r=Object.keys(n),i=new Set(Array.isArray(e.required)?e.required:[]);if([...i].some(e=>!r.includes(e)))throw new w(`required contains an unknown property`);for(let[e,t]of Object.entries(n))k(t),!i.has(e)&&!O(t)&&(n[e]={anyOf:[t,{type:`null`}]});e.required=r,e.additionalProperties=!1}function A(e){let t=structuredClone(e);if(!E(t)||(k(t),t.type!==`object`))throw new w(`root schema must have type object`);return t}function re(e,t){return t===!0?A(e.parameters):e.parameters}function ie(e,t,n){let r=t[n];if(typeof r!=`string`)throw Error(`Grammar tool call "${e}" requires argument "${n}" to be a string.`);return r}function j(e,t,n,r){if(e.closed){if(r&&n===e.input)return;throw Error(`grammar tool input for property "${t}" changed after it was closed`)}if(!n.startsWith(e.input))throw Error(`grammar tool input for property "${t}" changed non-monotonically`);let i=n.slice(e.input.length);if(!r&&i.length===0)return;let a=``;return e.started||=(a+=`{${JSON.stringify(t)}:"`,!0),a+=JSON.stringify(i).slice(1,-1),e.input=n,r&&(a+=`"}`,e.closed=!0),a}function M(e){let t=e.parameters;if(t.type!==`object`)throw Error(`grammar constrained sampling requires an object parameter schema`);if(!Array.isArray(t.required)||t.required.length!==1||typeof t.required[0]!=`string`)throw Error(`grammar constrained sampling requires exactly one required string property`);let n=t.required[0];if(!t.properties?.[n])throw Error(`grammar constrained sampling requires a properties entry for ${n}`);if(t.properties[n]?.type!==`string`)throw Error(`grammar constrained sampling property ${n} must have type string`);return n}function N(e,t){let n=e.constrainedSampling;if(n&&n.type===`json_schema`){if(t)try{return A(e.parameters),!0}catch(t){if(!(t instanceof w))throw t;if(n.strict!==`require`)return;throw Error(`Tool "${e.name}" requires JSON-schema constrained sampling, but ${t.message}.`)}if(n.strict===`require`)throw Error(`Tool "${e.name}" requires JSON-schema constrained sampling, but strict tools are unsupported.`)}}function P(e,t){let n=e.constrainedSampling;if(!n||n.type!==`grammar`||!t)return;let r=n.variants.openai_lark,i=n.variants.openai_regex,a=typeof r==`string`&&r.trim().length>0,o=typeof i==`string`&&i.trim().length>0;if(!a&&!o)throw Error(`Tool "${e.name}" cannot use grammar constrained sampling: no supported grammar variant was provided.`);try{return{format:a?`lark`:`regex`,definition:a?r:i,inputProperty:M(e)}}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Tool "${e.name}" cannot use grammar constrained sampling: ${n}.`)}}function F(e,t){let n=new Map;for(let r of e??[]){let e=P(r,t);e&&n.set(r.name,e.inputProperty)}return n}function I(e){let t=e[e.length-1];return t&&t.role!==`user`?`agent`:`user`}function L(e){return e.some(e=>e.role===`user`&&Array.isArray(e.content)||e.role===`toolResult`&&Array.isArray(e.content)?e.content.some(e=>e.type===`image`):!1)}function R(e){let t={"X-Initiator":I(e.messages),"Openai-Intent":`conversation-edits`};return e.hasImages&&(t[`Copilot-Vision-Request`]=`true`),t}var z=4,B=4800;function V(e){return e.totalTokens||e.input+e.output+e.cacheRead+e.cacheWrite}function H(e){try{return JSON.stringify(e)??`undefined`}catch{return`[unserializable]`}}function U(e){if(typeof e==`string`)return e.length;let t=0;for(let n of e)t+=n.type===`text`?n.text.length:B;return t}function W(e){return Math.ceil(e.length/z)}function G(e){return Math.ceil(U(e)/z)}function K(e){let n=0;if(e.role===`system`)return W(t(e))+J(e.toolsAdded)+J(e.toolsRemoved);if(e.role===`user`||e.role===`toolResult`)return G(e.content);for(let t of e.content)t.type===`text`?n+=t.text.length:t.type===`thinking`?n+=t.thinking.length:n+=t.name.length+H(t.arguments).length;return Math.ceil(n/z)}function ae(e){let t=-1/0,n;for(let r=0;r<e.length;r++){let i=e[r];if(i.role===`assistant`){let e=i;e.timestamp>=t&&e.stopReason!==`aborted`&&e.stopReason!==`error`&&V(e.usage)>0&&(n={usage:e.usage,index:r})}t=Math.max(t,i.timestamp)}return n}function q(e){let t=`messages`in e?e.messages:e,n=ae(t);if(n){let e=V(n.usage),r=0;for(let e=n.index+1;e<t.length;e++)r+=K(t[e]);return{tokens:e+r,usageTokens:e,trailingTokens:r,lastUsageIndex:n.index}}let r=0;for(let e of t)r+=K(e);return{tokens:r,usageTokens:0,trailingTokens:r,lastUsageIndex:null}}function J(e){return!e||e.length===0?0:W(H(e))}var oe=4096,Y=1;function X(e,t,n){if(e.contextWindow<=0)return Math.max(Y,n);let r=e.contextWindow-q(t).tokens-oe;return Math.min(n,Math.max(Y,r))}function se(e,t,n,r){let i=e.samplingParams||n?.samplingParams?{...e.samplingParams,...n?.samplingParams}:void 0;return{temperature:n?.temperature,samplingParams:i,maxTokens:X(e,t,n?.maxTokens??e.maxTokens),signal:n?.signal,telemetryContext:n?.telemetryContext,apiKey:r||n?.apiKey,fetch:n?.fetch,transport:n?.transport,cacheRetention:n?.cacheRetention,sessionId:n?.sessionId,headers:n?.headers,onPayload:n?.onPayload,onResponse:n?.onResponse,timeoutMs:n?.timeoutMs,websocketConnectTimeoutMs:n?.websocketConnectTimeoutMs,maxRetries:n?.maxRetries,maxRetryDelayMs:n?.maxRetryDelayMs,metadata:n?.metadata,env:n?.env}}var ce=1024,le={minimal:1024,low:2048,medium:8192,high:16384};function ue(e){return e===`xhigh`||e===`max`?`high`:e}function Z(e,t){return{...le,...t}[ue(e)]}function Q(e,t){return Math.min(e,Math.max(0,t-ce))}function de(e,t,n,r){let i=Z(n,r),a=e===void 0?t:Math.min(e+i,t);return a<=i&&(i=Q(i,a)),{maxTokens:a,thinkingBudget:i}}var fe=`(image omitted: model does not support images)`,pe=`(tool image omitted: model does not support images)`;function $(e,t){let n=[],r=!1;for(let i of e){if(i.type===`image`){r||n.push({type:`text`,text:t}),r=!0;continue}n.push(i),r=i.text===t}return n}function me(e,t){return t.input.includes(`image`)?e:e.map(e=>e.role===`user`&&Array.isArray(e.content)?{...e,content:$(e.content,fe)}:e.role===`toolResult`?{...e,content:$(e.content,pe)}:e)}function he(e,t,n){let r=new Map,i=me(e.map(e=>e.content==null?{...e,content:[]}:e),t).map(e=>{if(e.role===`system`||e.role===`user`)return e;if(e.role===`toolResult`){let t=r.get(e.toolCallId);return t&&t!==e.toolCallId?{...e,toolCallId:t}:e}if(e.role===`assistant`){let i=e,a=i.provider===t.provider&&i.api===t.api&&i.model===t.id,o=i.content.flatMap(e=>{if(e.type===`thinking`)return e.redacted?a?e:[]:a&&e.thinkingSignature?e:!e.thinking||e.thinking.trim()===``?[]:a?e:{type:`text`,text:e.thinking};if(e.type===`text`)return a?e:{type:`text`,text:e.text};if(e.type===`toolCall`){let o=e,s=o;if(!a&&o.thoughtSignature&&(s={...o},delete s.thoughtSignature),!a&&n){let e=n(o.id,t,i);e!==o.id&&(r.set(o.id,e),s={...s,id:e})}return s}return e});return{...i,content:o}}return e}),a=[],o=[],s=new Set,c=[],l=()=>{if(o.length>0){for(let e of o)s.has(e.id)||a.push({role:`toolResult`,toolCallId:e.id,toolName:e.name,content:[{type:`text`,text:`No result provided`}],isError:!0,timestamp:Date.now()});o=[],s=new Set}a.push(...c),c.length=0};for(let e=0;e<i.length;e++){let t=i[e];if(t.role===`assistant`){l();let e=t;if(e.stopReason===`error`||e.stopReason===`aborted`)continue;let n=e.content.filter(e=>e.type===`toolCall`);n.length>0&&(o=n,s=new Set),a.push(t)}else t.role===`toolResult`?(s.add(t.toolCallId),a.push(t)):t.role===`system`?o.length>0?c.push(t):a.push(t):(t.role===`user`&&l(),a.push(t))}return l(),a}export{ee as _,Q as a,u as b,L as c,ie as d,re as f,ne as g,C as h,X as i,j as l,N as m,de as n,Z as o,P as p,se as r,R as s,he as t,F as u,p as v,n as x,l as y};
@@ -0,0 +1 @@
1
+ import{$ as e,Bt as t,Dr as n,K as r,Pt as i,Q as a,Wn as o,er as s,tt as c,yn as l}from"./vue-i18n-CGHHpbTP.js";import{n as u}from"./source-CvnvCX42.js";import{a as d,i as f}from"./analyze-BgWIIbl3.js";import{t as p}from"./useDocumentTitle-BQJCa6Lm.js";import{n as m,t as h}from"./diffs-store-D3BzIMVi.js";import{r as g,t as _}from"./patch-parser-k3Vbbmi0.js";import{d as v,s as y}from"./index-KDAJXf4E.js";import{t as b}from"./ActionButton-V4dY2wPS.js";import{t as x}from"./uploadSession-BUj4FNau.js";function S(e,t){let n=_(e);return{key:async()=>u({kind:`paste`,hash:await n}),async fetch(){return{ref:{kind:`paste`,hash:await n},title:t??`Pasted diff`,description:``,files:await g(e)}}}}var C=c({__name:`upload`,setup(c){let u=y(),{cache:g,llm:_}=v(),C=o(!1),w=(()=>{let e=sessionStorage.getItem(x);if(e)return JSON.parse(e)})(),T=w?h(S(w.text,w.title),{cache:g,llm:_}):void 0;p(()=>T?.diff?.title);async function E(){if(!T){C.value=!1;return}C.value=!0,await T.load()}return i(E),(i,o)=>(t(),r(`main`,null,[e(m,{store:s(T)},{loading:l(()=>[e(f,{text:i.$t(`load.parsing`)},null,8,[`text`])]),error:l(({error:t})=>[e(d,{icon:`i-ph:warning-duotone`,title:i.$t(`load.parseFailed`)},{hint:l(()=>[a(n(t.message),1)]),_:2},1032,[`title`])]),empty:l(()=>[e(d,{icon:`i-ph:upload-simple-duotone`,title:i.$t(`load.noDiff`)},{hint:l(()=>[a(n(i.$t(`load.noDiffHint`)),1)]),actions:l(()=>[e(b,{variant:`primary`,onClick:o[0]||=e=>s(u).push(`/`)},{default:l(()=>[a(n(i.$t(`load.goHome`)),1)]),_:1})]),_:1},8,[`title`])]),_:1},8,[`store`])]))}});export{C as default};