pulls.review 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{DisplayFileIcon-DIcJdZir.js → DisplayFileIcon-DWj5Zxib.js} +1 -1
  3. package/dist/client/assets/{LandingHero-CS9lP7Qs.js → LandingHero-DWdx6_8g.js} +1 -1
  4. package/dist/client/assets/LocalAgentSettings-COjAszEL.js +1 -0
  5. package/dist/client/assets/{_repo_-DtGh1V5_.js → _repo_-D3lApLQL.js} +1 -1
  6. package/dist/client/assets/{analyze-CTcNbJBk.js → analyze-BgWIIbl3.js} +1 -1
  7. package/dist/client/assets/{core-messages-CsAgH4H9.js → core-messages-ClW97ZVa.js} +1 -1
  8. package/dist/client/assets/{de-DQCc3irO.js → de-BoIOg_UW.js} +1 -1
  9. package/dist/client/assets/{diagnostics-CrG4-M7r.js → diagnostics-wATZy2jc.js} +1 -1
  10. package/dist/client/assets/{diff-BsZcYqbE.js → diff-CNRGXNmw.js} +1 -1
  11. package/dist/client/assets/{diff-Bq6jHPox.js → diff-Cx43r-a6.js} +1 -1
  12. package/dist/client/assets/{diffs-store-CzecLzBW.js → diffs-store-D3BzIMVi.js} +26 -26
  13. package/dist/client/assets/{en-CBwAorrh.js → en-CbWYrCM5.js} +1 -1
  14. package/dist/client/assets/{es-hetdr90_.js → es-CqEudTln.js} +1 -1
  15. package/dist/client/assets/{fr-Cayf6fbk.js → fr-qiQQ-4AO.js} +1 -1
  16. package/dist/client/assets/i18n-Cx8anq4V.js +2 -0
  17. package/dist/client/assets/{id-lw2zLhUO.js → id-BkDzu8gq.js} +1 -1
  18. package/dist/client/assets/index-De-UtOit.css +1 -0
  19. package/dist/client/assets/{index-DP4XBqUv.js → index-KDAJXf4E.js} +2 -2
  20. package/dist/client/assets/{install-DKy8VRs5.js → install-D-S32JY7.js} +3 -3
  21. package/dist/client/assets/{it-BfFzmCsC.js → it-tZZZbUKN.js} +1 -1
  22. package/dist/client/assets/{ja-DxaV4C1r.js → ja-kGPK4Fmt.js} +1 -1
  23. package/dist/client/assets/{ko-D93r2P2k.js → ko-CULiae40.js} +1 -1
  24. package/dist/client/assets/{llm-XBWohzAo.js → llm-Le5CPsNn.js} +5 -4
  25. package/dist/client/assets/{llm-store-7CdL0d74.js → llm-store-CzMnTJNa.js} +1 -1
  26. package/dist/client/assets/{pages-Tf2MYsp8.js → pages-ByEfDjFa.js} +1 -1
  27. package/dist/client/assets/{pages-local-iBHcLWBK.js → pages-local-CVPpEWZ_.js} +1 -1
  28. package/dist/client/assets/{pages-web-Bmq8l7JI.js → pages-web-BLxMupU5.js} +1 -1
  29. package/dist/client/assets/{pt-BR-Isafy_5V.js → pt-BR-BcwoZLSs.js} +1 -1
  30. package/dist/client/assets/{rpc-backends-CLzNPIWN.js → rpc-backends-DYtuJyeF.js} +1 -1
  31. package/dist/client/assets/{ru-Bx9Wj7Aa.js → ru-DOordgLF.js} +1 -1
  32. package/dist/client/assets/{source-Dk1PNoY7.js → source-CvnvCX42.js} +1 -1
  33. package/dist/client/assets/{upload-CFwsDMhO.js → upload-DRO7bkBV.js} +1 -1
  34. package/dist/client/assets/{useDocumentTitle-ByFCALbG.js → useDocumentTitle-BQJCa6Lm.js} +3 -3
  35. package/dist/client/assets/{zh-CN-CgGEKuLF.js → zh-CN-CmTqGY9s.js} +1 -1
  36. package/dist/client/assets/{zh-TW-DzNR26_1.js → zh-TW-DKGtbJQy.js} +1 -1
  37. package/dist/client/index.html +6 -6
  38. package/dist/{devframe-D66W-pHy.mjs → devframe-DH2vpasJ.mjs} +175 -53
  39. package/dist/devframe.mjs +1 -1
  40. package/dist/index.mjs +2 -2
  41. package/package.json +2 -2
  42. package/dist/client/assets/LocalAgentSettings-C4AeYCZ0.js +0 -1
  43. package/dist/client/assets/i18n-CgsK6PK3.js +0 -2
  44. package/dist/client/assets/index-DSHKSKKf.css +0 -1
package/README.md CHANGED
@@ -14,7 +14,7 @@ npx pulls.review owner/repo#1 # a GitHub pull request (or a github.com PR, comp
14
14
 
15
15
  Run it inside a git repository. It serves on `localhost` through [devframe](https://github.com/devframes/devframe) and opens the page for the argument; any other branch, range or commit can be picked from `/`. The tab is trusted with a one-time code printed in the terminal. Reviewed marks and AI results are cached in `.git/pulls-review`.
16
16
 
17
- AI analysis can run through a coding agent already installed and signed in on the machine - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) or [OpenCode](https://opencode.ai) - instead of an API key: pick **Local agent** as the provider in Settings. The agent reads the patch and, for a local diff, the repository, with read-only tools; follow-up chat continues in its session.
17
+ AI analysis can run through a coding agent already installed and signed in on the machine - [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [OpenCode](https://opencode.ai), or [Pi](https://github.com/earendil-works/pi) - instead of an API key: pick **Local agent** as the provider in Settings. The agent reads the patch and, for a local diff, the repository, with read-only tools; follow-up chat continues in its session.
18
18
 
19
19
  GitHub pull requests open on the same `/gh/{owner}/{repo}/{number}` pages as the site, with comments and reviews, using the token from `GITHUB_TOKEN` (or `PULLS_REVIEW_GITHUB_TOKEN`), else from `gh auth token`.
20
20
 
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./typescript-BTGs5etX.js","./rolldown-runtime-Dd_uD5pT.js","./javascript-DcMHgNcu.js","./jsx-BUUYi3qs.js","./tsx-DvWhG4dC.js","./vue-BbYmdtmv.js","./css-DlBQoFxe.js","./html-BC8aFsRK.js","./json-qhed-kSA.js","./vue-html-BXjKVtKk.js","./scss-C-_0yqZd.js","./xml-BsprbK0m.js","./java-D7h0NA_A.js","./c-BNQJhXlP.js","./cpp-7GgD5o7L.js","./ruby-CfFGiaYl.js","./graphql-ki1Ij_uk.js","./lua-DCW0Dwo5.js","./sql-BsFa4tDR.js","./shellscript-CLZ0U2zV.js","./yaml-rwi0_p6S.js","./php-BahmaYs0.js","./perl-C8GHouAq.js","./elixir-D3n0XgqJ.js","./nginx-C4fSytnP.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Bt as t,Cr as n,Er as r,H as i,K as a,U as o,er as s,tt as c}from"./vue-i18n-CGHHpbTP.js";import{t as l}from"./preload-helper-BaNbYf_w.js";import{A as u,C as d,D as f,E as p,F as m,H as h,I as g,L as _,M as ee,N as te,O as ne,P as re,R as v,S as ie,T as ae,j as oe,k as se,w as y,x as ce}from"./useDocumentTitle-ByFCALbG.js";var le=new Map,ue=new Map,de=new Map,fe=new Set;function pe(e){for(let t of Array.isArray(e)?e:[e])if(t!==`text`&&t!==`ansi`&&!fe.has(t))return!1;return!0}function me(e,t){e=Array.isArray(e)?e:[e];for(let n of e){if(fe.has(n.name))continue;let e=le.get(n.name);e??(e=n,le.set(n.name,e));let r=e.data.find(t=>t.name===e.name||t.aliases?.includes(e.name)===!0);if(r==null)throw Error(`attachResolvedLanguages: No returned grammar declares "${e.name}" as its name or an alias.`);t.loadLanguageSync(e.data);try{t.getLanguage(e.name)}catch{throw Error(`attachResolvedLanguages: "${r.name}" is already loaded without alias "${e.name}". Load the alias first or give the grammar a unique name.`)}fe.add(e.name)}}function he(){return typeof WorkerGlobalScope<`u`&&typeof self<`u`&&self instanceof WorkerGlobalScope}var ge=[`area`,`base`,`basefont`,`bgsound`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`image`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],_e=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};_e.prototype.normal={},_e.prototype.property={},_e.prototype.space=void 0;function ve(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new _e(n,r,t)}function ye(e){return e.toLowerCase()}var b=class{constructor(e,t){this.attribute=t,this.property=e}};b.prototype.attribute=``,b.prototype.booleanish=!1,b.prototype.boolean=!1,b.prototype.commaOrSpaceSeparated=!1,b.prototype.commaSeparated=!1,b.prototype.defined=!1,b.prototype.mustUseProperty=!1,b.prototype.number=!1,b.prototype.overloadedBoolean=!1,b.prototype.property=``,b.prototype.spaceSeparated=!1,b.prototype.space=void 0;var be=e({boolean:()=>x,booleanish:()=>S,commaOrSpaceSeparated:()=>E,commaSeparated:()=>T,number:()=>C,overloadedBoolean:()=>Se,spaceSeparated:()=>w}),xe=0,x=D(),S=D(),Se=D(),C=D(),w=D(),T=D(),E=D();function D(){return 2**++xe}var Ce=Object.keys(be),we=class extends b{constructor(e,t,n,r){let i=-1;if(super(e,t),Te(this,`space`,r),typeof n==`number`)for(;++i<Ce.length;){let e=Ce[i];Te(this,Ce[i],(n&be[e])===be[e])}}};we.prototype.defined=!0;function Te(e,t,n){n&&(e[t]=n)}function O(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new we(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ye(r)]=r,n[ye(a.attribute)]=r}return new _e(t,n,e.space)}var Ee=O({properties:{ariaActiveDescendant:null,ariaAtomic:S,ariaAutoComplete:null,ariaBusy:S,ariaChecked:S,ariaColCount:C,ariaColIndex:C,ariaColSpan:C,ariaControls:w,ariaCurrent:null,ariaDescribedBy:w,ariaDetails:null,ariaDisabled:S,ariaDropEffect:w,ariaErrorMessage:null,ariaExpanded:S,ariaFlowTo:w,ariaGrabbed:S,ariaHasPopup:null,ariaHidden:S,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:w,ariaLevel:C,ariaLive:null,ariaModal:S,ariaMultiLine:S,ariaMultiSelectable:S,ariaOrientation:null,ariaOwns:w,ariaPlaceholder:null,ariaPosInSet:C,ariaPressed:S,ariaReadOnly:S,ariaRelevant:null,ariaRequired:S,ariaRoleDescription:w,ariaRowCount:C,ariaRowIndex:C,ariaRowSpan:C,ariaSelected:S,ariaSetSize:C,ariaSort:null,ariaValueMax:C,ariaValueMin:C,ariaValueNow:C,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function De(e,t){return t in e?e[t]:t}function Oe(e,t){return De(e,t.toLowerCase())}var ke=O({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:T,acceptCharset:w,accessKey:w,action:null,allow:null,allowFullScreen:x,allowPaymentRequest:x,allowUserMedia:x,alpha:x,alt:null,as:null,async:x,autoCapitalize:null,autoComplete:w,autoFocus:x,autoPlay:x,blocking:w,capture:null,charSet:null,checked:x,cite:null,className:w,closedBy:null,colorSpace:null,cols:C,colSpan:C,command:null,commandFor:null,content:null,contentEditable:S,controls:x,controlsList:w,coords:C|T,crossOrigin:null,data:null,dateTime:null,decoding:null,default:x,defer:x,dir:null,dirName:null,disabled:x,download:Se,draggable:S,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:x,formTarget:null,headers:w,height:C,hidden:Se,high:C,href:null,hrefLang:null,htmlFor:w,httpEquiv:w,id:null,imageSizes:null,imageSrcSet:null,inert:x,inputMode:null,integrity:null,is:null,isMap:x,itemId:null,itemProp:w,itemRef:w,itemScope:x,itemType:w,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:x,low:C,manifest:null,max:null,maxLength:C,media:null,method:null,min:null,minLength:C,multiple:x,muted:x,name:null,nonce:null,noModule:x,noValidate:x,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:x,optimum:C,pattern:null,ping:w,placeholder:null,playsInline:x,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:x,referrerPolicy:null,rel:w,required:x,reversed:x,rows:C,rowSpan:C,sandbox:w,scope:null,scoped:x,seamless:x,selected:x,shadowRootClonable:x,shadowRootCustomElementRegistry:x,shadowRootDelegatesFocus:x,shadowRootMode:null,shadowRootSerializable:x,shape:null,size:C,sizes:null,slot:null,span:C,spellCheck:S,src:null,srcDoc:null,srcLang:null,srcSet:null,start:C,step:null,style:null,tabIndex:C,target:null,title:null,translate:null,type:null,typeMustMatch:x,useMap:null,value:S,width:C,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:w,axis:null,background:null,bgColor:null,border:C,borderColor:null,bottomMargin:C,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:x,declare:x,event:null,face:null,frame:null,frameBorder:null,hSpace:C,leftMargin:C,link:null,longDesc:null,lowSrc:null,marginHeight:C,marginWidth:C,noResize:x,noHref:x,noShade:x,noWrap:x,object:null,profile:null,prompt:null,rev:null,rightMargin:C,rules:null,scheme:null,scrolling:S,standby:null,summary:null,text:null,topMargin:C,valueType:null,version:null,vAlign:null,vLink:null,vSpace:C,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:x,disablePictureInPicture:x,disableRemotePlayback:x,exportParts:T,part:w,prefix:null,property:null,results:C,security:null,unselectable:null},space:`html`,transform:Oe}),Ae=O({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:E,accentHeight:C,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:C,amplitude:C,arabicForm:null,ascent:C,attributeName:null,attributeType:null,azimuth:C,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:C,by:null,calcMode:null,capHeight:C,className:w,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:C,diffuseConstant:C,direction:null,display:null,dur:null,divisor:C,dominantBaseline:null,download:x,dx:null,dy:null,edgeMode:null,editable:null,elevation:C,enableBackground:null,end:null,event:null,exponent:C,externalResourcesRequired:null,fill:null,fillOpacity:C,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:T,g2:T,glyphName:T,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:C,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:C,horizOriginX:C,horizOriginY:C,id:null,ideographic:C,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:C,k:C,k1:C,k2:C,k3:C,k4:C,kernelMatrix:E,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:C,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:C,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:C,overlineThickness:C,paintOrder:null,panose1:null,path:null,pathLength:C,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:w,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:C,pointsAtY:C,pointsAtZ:C,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:E,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:E,rev:E,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:E,requiredFeatures:E,requiredFonts:E,requiredFormats:E,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:C,specularExponent:C,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:C,strikethroughThickness:C,string:null,stroke:null,strokeDashArray:E,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:C,strokeOpacity:C,strokeWidth:null,style:null,surfaceScale:C,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:E,tabIndex:C,tableValues:null,target:null,targetX:C,targetY:C,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:E,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:C,underlineThickness:C,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:C,values:null,vAlphabetic:C,vMathematical:C,vectorEffect:null,vHanging:C,vIdeographic:C,version:null,vertAdvY:C,vertOriginX:C,vertOriginY:C,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:C,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:De}),je=O({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),Me=O({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:Oe}),Ne=O({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Pe=/[A-Z]/g,Fe=/-[a-z]/g,Ie=/^data[-\w.:]+$/i;function Le(e,t){let n=ye(t),r=t,i=b;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&Ie.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(Fe,ze);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!Fe.test(e)){let n=e.replace(Pe,Re);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=we}return new i(r,t)}function Re(e){return`-`+e.toLowerCase()}function ze(e){return e.charAt(1).toUpperCase()}var Be=ve([Ee,ke,je,Me,Ne],`html`),Ve=ve([Ee,Ae,je,Me,Ne],`svg`),He={}.hasOwnProperty;function Ue(e,t){let n=t||{};function r(t,...n){let i=r.invalid,a=r.handlers;if(t&&He.call(t,e)){let n=String(t[e]);i=He.call(a,n)?a[n]:r.unknown}if(i)return i.call(this,t,...n)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var We=/["&'<>`]/g,Ge=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ke=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,qe=/[|\\{}()[\]^$+*?.]/g,Je=new WeakMap;function Ye(e,t){return e=e.replace(t.subset?Xe(t.subset):We,r),t.subset||t.escapeOnly?e:e.replace(Ge,n).replace(Ke,r);function n(e,n,r){return t.format((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charCodeAt(n+2),t)}function r(e,n,r){return t.format(e.charCodeAt(0),r.charCodeAt(n+1),t)}}function Xe(e){let t=Je.get(e);return t||(t=Ze(e),Je.set(e,t)),t}function Ze(e){let t=[],n=-1;for(;++n<e.length;)t.push(e[n].replace(qe,`\\$&`));return RegExp(`(?:`+t.join(`|`)+`)`,`g`)}var Qe=/[\dA-Fa-f]/;function $e(e,t,n){let r=`&#x`+e.toString(16).toUpperCase();return n&&t&&!Qe.test(String.fromCharCode(t))?r:r+`;`}var et=/\d/;function tt(e,t,n){let r=`&#`+String(e);return n&&t&&!et.test(String.fromCharCode(t))?r:r+`;`}var nt=`AElig.AMP.Aacute.Acirc.Agrave.Aring.Atilde.Auml.COPY.Ccedil.ETH.Eacute.Ecirc.Egrave.Euml.GT.Iacute.Icirc.Igrave.Iuml.LT.Ntilde.Oacute.Ocirc.Ograve.Oslash.Otilde.Ouml.QUOT.REG.THORN.Uacute.Ucirc.Ugrave.Uuml.Yacute.aacute.acirc.acute.aelig.agrave.amp.aring.atilde.auml.brvbar.ccedil.cedil.cent.copy.curren.deg.divide.eacute.ecirc.egrave.eth.euml.frac12.frac14.frac34.gt.iacute.icirc.iexcl.igrave.iquest.iuml.laquo.lt.macr.micro.middot.nbsp.not.ntilde.oacute.ocirc.ograve.ordf.ordm.oslash.otilde.ouml.para.plusmn.pound.quot.raquo.reg.sect.shy.sup1.sup2.sup3.szlig.thorn.times.uacute.ucirc.ugrave.uml.uuml.yacute.yen.yuml`.split(`.`),rt={nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`〈`,rang:`〉`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,quot:`"`,amp:`&`,lt:`<`,gt:`>`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`},it=[`cent`,`copy`,`divide`,`gt`,`lt`,`not`,`para`,`times`],at={}.hasOwnProperty,ot={},st;for(st in rt)at.call(rt,st)&&(ot[rt[st]]=st);var ct=/[^\dA-Za-z]/;function lt(e,t,n,r){let i=String.fromCharCode(e);if(at.call(ot,i)){let e=ot[i],a=`&`+e;return n&&nt.includes(e)&&!it.includes(e)&&(!r||t&&t!==61&&ct.test(String.fromCharCode(t)))?a:a+`;`}return``}function ut(e,t,n){let r=$e(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=lt(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let i=tt(e,t,n.omitOptionalSemicolons);i.length<r.length&&(r=i)}return i&&(!n.useShortestReferences||i.length<r.length)?i:r}function k(e,t){return Ye(e,Object.assign({format:ut},t))}var dt=/^>|^->|<!--|-->|--!>|<!-$/g,ft=[`>`],pt=[`<`,`>`];function mt(e,t,n,r){return r.settings.bogusComments?`<?`+k(e.value,Object.assign({},r.settings.characterReferences,{subset:ft}))+`>`:`<!--`+e.value.replace(dt,i)+`-->`;function i(e){return k(e,Object.assign({},r.settings.characterReferences,{subset:pt}))}}function ht(e,t,n,r){return`<!`+(r.settings.upperDoctype?`DOCTYPE`:`doctype`)+(r.settings.tightDoctype?``:` `)+`html>`}function gt(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function _t(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}function vt(e){return e.join(` `).trim()}var yt=/[ \t\n\f\r]/g;function bt(e){return typeof e==`object`?e.type===`text`&&xt(e.value):xt(e)}function xt(e){return e.replace(yt,``)===``}var A=wt(1),St=wt(-1),Ct=[];function wt(e){return t;function t(t,n,r){let i=t?t.children:Ct,a=(n||0)+e,o=i[a];if(!r)for(;o&&bt(o);)a+=e,o=i[a];return o}}var Tt={}.hasOwnProperty;function Et(e){return t;function t(t,n,r){return Tt.call(e,t.tagName)&&e[t.tagName](t,n,r)}}var Dt=Et({body:At,caption:Ot,colgroup:Ot,dd:Pt,dt:Nt,head:Ot,html:kt,li:Mt,optgroup:It,option:Lt,p:jt,rp:Ft,rt:Ft,tbody:zt,td:Ht,tfoot:Bt,th:Ht,thead:Rt,tr:Vt});function Ot(e,t,n){let r=A(n,t,!0);return!r||r.type!==`comment`&&!(r.type===`text`&&bt(r.value.charAt(0)))}function kt(e,t,n){let r=A(n,t);return!r||r.type!==`comment`}function At(e,t,n){let r=A(n,t);return!r||r.type!==`comment`}function jt(e,t,n){let r=A(n,t);return r?r.type===`element`&&(r.tagName===`address`||r.tagName===`article`||r.tagName===`aside`||r.tagName===`blockquote`||r.tagName===`details`||r.tagName===`div`||r.tagName===`dl`||r.tagName===`fieldset`||r.tagName===`figcaption`||r.tagName===`figure`||r.tagName===`footer`||r.tagName===`form`||r.tagName===`h1`||r.tagName===`h2`||r.tagName===`h3`||r.tagName===`h4`||r.tagName===`h5`||r.tagName===`h6`||r.tagName===`header`||r.tagName===`hgroup`||r.tagName===`hr`||r.tagName===`main`||r.tagName===`menu`||r.tagName===`nav`||r.tagName===`ol`||r.tagName===`p`||r.tagName===`pre`||r.tagName===`section`||r.tagName===`table`||r.tagName===`ul`):!n||n.type!==`element`||n.tagName!==`a`&&n.tagName!==`audio`&&n.tagName!==`del`&&n.tagName!==`ins`&&n.tagName!==`map`&&n.tagName!==`noscript`&&n.tagName!==`video`}function Mt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&r.tagName===`li`}function Nt(e,t,n){let r=A(n,t);return!(!r||r.type!==`element`||r.tagName!==`dt`&&r.tagName!==`dd`)}function Pt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`)}function Ft(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`rp`||r.tagName===`rt`)}function It(e,t,n){let r=A(n,t);return!r||r.type===`element`&&r.tagName===`optgroup`}function Lt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`option`||r.tagName===`optgroup`)}function Rt(e,t,n){let r=A(n,t);return!(!r||r.type!==`element`||r.tagName!==`tbody`&&r.tagName!==`tfoot`)}function zt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`)}function Bt(e,t,n){return!A(n,t)}function Vt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&r.tagName===`tr`}function Ht(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`td`||r.tagName===`th`)}var Ut=Et({body:Kt,colgroup:qt,head:Gt,html:Wt,tbody:Jt});function Wt(e){let t=A(e,-1);return!t||t.type!==`comment`}function Gt(e){let t=new Set;for(let n of e.children)if(n.type===`element`&&(n.tagName===`base`||n.tagName===`title`)){if(t.has(n.tagName))return!1;t.add(n.tagName)}let n=e.children[0];return!n||n.type===`element`}function Kt(e){let t=A(e,-1,!0);return!t||t.type!==`comment`&&!(t.type===`text`&&bt(t.value.charAt(0)))&&(t.type!==`element`||t.tagName!==`meta`&&t.tagName!==`link`&&t.tagName!==`script`&&t.tagName!==`style`&&t.tagName!==`template`)}function qt(e,t,n){let r=St(n,t),i=A(e,-1,!0);return n&&r&&r.type===`element`&&r.tagName===`colgroup`&&Dt(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`col`)}function Jt(e,t,n){let r=St(n,t),i=A(e,-1);return n&&r&&r.type===`element`&&(r.tagName===`thead`||r.tagName===`tbody`)&&Dt(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`tr`)}var Yt={name:[[`
2
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import{Bt as t,Cr as n,Er as r,H as i,K as a,U as o,er as s,tt as c}from"./vue-i18n-CGHHpbTP.js";import{t as l}from"./preload-helper-BaNbYf_w.js";import{A as u,C as d,D as f,E as p,F as m,H as h,I as g,L as _,M as ee,N as te,O as ne,P as re,R as v,S as ie,T as ae,j as oe,k as se,w as y,x as ce}from"./useDocumentTitle-BQJCa6Lm.js";var le=new Map,ue=new Map,de=new Map,fe=new Set;function pe(e){for(let t of Array.isArray(e)?e:[e])if(t!==`text`&&t!==`ansi`&&!fe.has(t))return!1;return!0}function me(e,t){e=Array.isArray(e)?e:[e];for(let n of e){if(fe.has(n.name))continue;let e=le.get(n.name);e??(e=n,le.set(n.name,e));let r=e.data.find(t=>t.name===e.name||t.aliases?.includes(e.name)===!0);if(r==null)throw Error(`attachResolvedLanguages: No returned grammar declares "${e.name}" as its name or an alias.`);t.loadLanguageSync(e.data);try{t.getLanguage(e.name)}catch{throw Error(`attachResolvedLanguages: "${r.name}" is already loaded without alias "${e.name}". Load the alias first or give the grammar a unique name.`)}fe.add(e.name)}}function he(){return typeof WorkerGlobalScope<`u`&&typeof self<`u`&&self instanceof WorkerGlobalScope}var ge=[`area`,`base`,`basefont`,`bgsound`,`br`,`col`,`command`,`embed`,`frame`,`hr`,`image`,`img`,`input`,`keygen`,`link`,`meta`,`param`,`source`,`track`,`wbr`],_e=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};_e.prototype.normal={},_e.prototype.property={},_e.prototype.space=void 0;function ve(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new _e(n,r,t)}function ye(e){return e.toLowerCase()}var b=class{constructor(e,t){this.attribute=t,this.property=e}};b.prototype.attribute=``,b.prototype.booleanish=!1,b.prototype.boolean=!1,b.prototype.commaOrSpaceSeparated=!1,b.prototype.commaSeparated=!1,b.prototype.defined=!1,b.prototype.mustUseProperty=!1,b.prototype.number=!1,b.prototype.overloadedBoolean=!1,b.prototype.property=``,b.prototype.spaceSeparated=!1,b.prototype.space=void 0;var be=e({boolean:()=>x,booleanish:()=>S,commaOrSpaceSeparated:()=>E,commaSeparated:()=>T,number:()=>C,overloadedBoolean:()=>Se,spaceSeparated:()=>w}),xe=0,x=D(),S=D(),Se=D(),C=D(),w=D(),T=D(),E=D();function D(){return 2**++xe}var Ce=Object.keys(be),we=class extends b{constructor(e,t,n,r){let i=-1;if(super(e,t),Te(this,`space`,r),typeof n==`number`)for(;++i<Ce.length;){let e=Ce[i];Te(this,Ce[i],(n&be[e])===be[e])}}};we.prototype.defined=!0;function Te(e,t,n){n&&(e[t]=n)}function O(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new we(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[ye(r)]=r,n[ye(a.attribute)]=r}return new _e(t,n,e.space)}var Ee=O({properties:{ariaActiveDescendant:null,ariaAtomic:S,ariaAutoComplete:null,ariaBusy:S,ariaChecked:S,ariaColCount:C,ariaColIndex:C,ariaColSpan:C,ariaControls:w,ariaCurrent:null,ariaDescribedBy:w,ariaDetails:null,ariaDisabled:S,ariaDropEffect:w,ariaErrorMessage:null,ariaExpanded:S,ariaFlowTo:w,ariaGrabbed:S,ariaHasPopup:null,ariaHidden:S,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:w,ariaLevel:C,ariaLive:null,ariaModal:S,ariaMultiLine:S,ariaMultiSelectable:S,ariaOrientation:null,ariaOwns:w,ariaPlaceholder:null,ariaPosInSet:C,ariaPressed:S,ariaReadOnly:S,ariaRelevant:null,ariaRequired:S,ariaRoleDescription:w,ariaRowCount:C,ariaRowIndex:C,ariaRowSpan:C,ariaSelected:S,ariaSetSize:C,ariaSort:null,ariaValueMax:C,ariaValueMin:C,ariaValueNow:C,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function De(e,t){return t in e?e[t]:t}function Oe(e,t){return De(e,t.toLowerCase())}var ke=O({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:T,acceptCharset:w,accessKey:w,action:null,allow:null,allowFullScreen:x,allowPaymentRequest:x,allowUserMedia:x,alpha:x,alt:null,as:null,async:x,autoCapitalize:null,autoComplete:w,autoFocus:x,autoPlay:x,blocking:w,capture:null,charSet:null,checked:x,cite:null,className:w,closedBy:null,colorSpace:null,cols:C,colSpan:C,command:null,commandFor:null,content:null,contentEditable:S,controls:x,controlsList:w,coords:C|T,crossOrigin:null,data:null,dateTime:null,decoding:null,default:x,defer:x,dir:null,dirName:null,disabled:x,download:Se,draggable:S,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:x,formTarget:null,headers:w,height:C,hidden:Se,high:C,href:null,hrefLang:null,htmlFor:w,httpEquiv:w,id:null,imageSizes:null,imageSrcSet:null,inert:x,inputMode:null,integrity:null,is:null,isMap:x,itemId:null,itemProp:w,itemRef:w,itemScope:x,itemType:w,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:x,low:C,manifest:null,max:null,maxLength:C,media:null,method:null,min:null,minLength:C,multiple:x,muted:x,name:null,nonce:null,noModule:x,noValidate:x,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:x,optimum:C,pattern:null,ping:w,placeholder:null,playsInline:x,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:x,referrerPolicy:null,rel:w,required:x,reversed:x,rows:C,rowSpan:C,sandbox:w,scope:null,scoped:x,seamless:x,selected:x,shadowRootClonable:x,shadowRootCustomElementRegistry:x,shadowRootDelegatesFocus:x,shadowRootMode:null,shadowRootSerializable:x,shape:null,size:C,sizes:null,slot:null,span:C,spellCheck:S,src:null,srcDoc:null,srcLang:null,srcSet:null,start:C,step:null,style:null,tabIndex:C,target:null,title:null,translate:null,type:null,typeMustMatch:x,useMap:null,value:S,width:C,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:w,axis:null,background:null,bgColor:null,border:C,borderColor:null,bottomMargin:C,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:x,declare:x,event:null,face:null,frame:null,frameBorder:null,hSpace:C,leftMargin:C,link:null,longDesc:null,lowSrc:null,marginHeight:C,marginWidth:C,noResize:x,noHref:x,noShade:x,noWrap:x,object:null,profile:null,prompt:null,rev:null,rightMargin:C,rules:null,scheme:null,scrolling:S,standby:null,summary:null,text:null,topMargin:C,valueType:null,version:null,vAlign:null,vLink:null,vSpace:C,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:x,disablePictureInPicture:x,disableRemotePlayback:x,exportParts:T,part:w,prefix:null,property:null,results:C,security:null,unselectable:null},space:`html`,transform:Oe}),Ae=O({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:E,accentHeight:C,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:C,amplitude:C,arabicForm:null,ascent:C,attributeName:null,attributeType:null,azimuth:C,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:C,by:null,calcMode:null,capHeight:C,className:w,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:C,diffuseConstant:C,direction:null,display:null,dur:null,divisor:C,dominantBaseline:null,download:x,dx:null,dy:null,edgeMode:null,editable:null,elevation:C,enableBackground:null,end:null,event:null,exponent:C,externalResourcesRequired:null,fill:null,fillOpacity:C,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:T,g2:T,glyphName:T,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:C,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:C,horizOriginX:C,horizOriginY:C,id:null,ideographic:C,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:C,k:C,k1:C,k2:C,k3:C,k4:C,kernelMatrix:E,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:C,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:C,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:C,overlineThickness:C,paintOrder:null,panose1:null,path:null,pathLength:C,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:w,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:C,pointsAtY:C,pointsAtZ:C,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:E,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:E,rev:E,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:E,requiredFeatures:E,requiredFonts:E,requiredFormats:E,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:C,specularExponent:C,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:C,strikethroughThickness:C,string:null,stroke:null,strokeDashArray:E,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:C,strokeOpacity:C,strokeWidth:null,style:null,surfaceScale:C,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:E,tabIndex:C,tableValues:null,target:null,targetX:C,targetY:C,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:E,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:C,underlineThickness:C,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:C,values:null,vAlphabetic:C,vMathematical:C,vectorEffect:null,vHanging:C,vIdeographic:C,version:null,vertAdvY:C,vertOriginX:C,vertOriginY:C,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:C,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:De}),je=O({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),Me=O({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:Oe}),Ne=O({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),Pe=/[A-Z]/g,Fe=/-[a-z]/g,Ie=/^data[-\w.:]+$/i;function Le(e,t){let n=ye(t),r=t,i=b;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&Ie.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(Fe,ze);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!Fe.test(e)){let n=e.replace(Pe,Re);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=we}return new i(r,t)}function Re(e){return`-`+e.toLowerCase()}function ze(e){return e.charAt(1).toUpperCase()}var Be=ve([Ee,ke,je,Me,Ne],`html`),Ve=ve([Ee,Ae,je,Me,Ne],`svg`),He={}.hasOwnProperty;function Ue(e,t){let n=t||{};function r(t,...n){let i=r.invalid,a=r.handlers;if(t&&He.call(t,e)){let n=String(t[e]);i=He.call(a,n)?a[n]:r.unknown}if(i)return i.call(this,t,...n)}return r.handlers=n.handlers||{},r.invalid=n.invalid,r.unknown=n.unknown,r}var We=/["&'<>`]/g,Ge=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ke=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,qe=/[|\\{}()[\]^$+*?.]/g,Je=new WeakMap;function Ye(e,t){return e=e.replace(t.subset?Xe(t.subset):We,r),t.subset||t.escapeOnly?e:e.replace(Ge,n).replace(Ke,r);function n(e,n,r){return t.format((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charCodeAt(n+2),t)}function r(e,n,r){return t.format(e.charCodeAt(0),r.charCodeAt(n+1),t)}}function Xe(e){let t=Je.get(e);return t||(t=Ze(e),Je.set(e,t)),t}function Ze(e){let t=[],n=-1;for(;++n<e.length;)t.push(e[n].replace(qe,`\\$&`));return RegExp(`(?:`+t.join(`|`)+`)`,`g`)}var Qe=/[\dA-Fa-f]/;function $e(e,t,n){let r=`&#x`+e.toString(16).toUpperCase();return n&&t&&!Qe.test(String.fromCharCode(t))?r:r+`;`}var et=/\d/;function tt(e,t,n){let r=`&#`+String(e);return n&&t&&!et.test(String.fromCharCode(t))?r:r+`;`}var nt=`AElig.AMP.Aacute.Acirc.Agrave.Aring.Atilde.Auml.COPY.Ccedil.ETH.Eacute.Ecirc.Egrave.Euml.GT.Iacute.Icirc.Igrave.Iuml.LT.Ntilde.Oacute.Ocirc.Ograve.Oslash.Otilde.Ouml.QUOT.REG.THORN.Uacute.Ucirc.Ugrave.Uuml.Yacute.aacute.acirc.acute.aelig.agrave.amp.aring.atilde.auml.brvbar.ccedil.cedil.cent.copy.curren.deg.divide.eacute.ecirc.egrave.eth.euml.frac12.frac14.frac34.gt.iacute.icirc.iexcl.igrave.iquest.iuml.laquo.lt.macr.micro.middot.nbsp.not.ntilde.oacute.ocirc.ograve.ordf.ordm.oslash.otilde.ouml.para.plusmn.pound.quot.raquo.reg.sect.shy.sup1.sup2.sup3.szlig.thorn.times.uacute.ucirc.ugrave.uml.uuml.yacute.yen.yuml`.split(`.`),rt={nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`〈`,rang:`〉`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,quot:`"`,amp:`&`,lt:`<`,gt:`>`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`},it=[`cent`,`copy`,`divide`,`gt`,`lt`,`not`,`para`,`times`],at={}.hasOwnProperty,ot={},st;for(st in rt)at.call(rt,st)&&(ot[rt[st]]=st);var ct=/[^\dA-Za-z]/;function lt(e,t,n,r){let i=String.fromCharCode(e);if(at.call(ot,i)){let e=ot[i],a=`&`+e;return n&&nt.includes(e)&&!it.includes(e)&&(!r||t&&t!==61&&ct.test(String.fromCharCode(t)))?a:a+`;`}return``}function ut(e,t,n){let r=$e(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=lt(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let i=tt(e,t,n.omitOptionalSemicolons);i.length<r.length&&(r=i)}return i&&(!n.useShortestReferences||i.length<r.length)?i:r}function k(e,t){return Ye(e,Object.assign({format:ut},t))}var dt=/^>|^->|<!--|-->|--!>|<!-$/g,ft=[`>`],pt=[`<`,`>`];function mt(e,t,n,r){return r.settings.bogusComments?`<?`+k(e.value,Object.assign({},r.settings.characterReferences,{subset:ft}))+`>`:`<!--`+e.value.replace(dt,i)+`-->`;function i(e){return k(e,Object.assign({},r.settings.characterReferences,{subset:pt}))}}function ht(e,t,n,r){return`<!`+(r.settings.upperDoctype?`DOCTYPE`:`doctype`)+(r.settings.tightDoctype?``:` `)+`html>`}function gt(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function _t(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}function vt(e){return e.join(` `).trim()}var yt=/[ \t\n\f\r]/g;function bt(e){return typeof e==`object`?e.type===`text`&&xt(e.value):xt(e)}function xt(e){return e.replace(yt,``)===``}var A=wt(1),St=wt(-1),Ct=[];function wt(e){return t;function t(t,n,r){let i=t?t.children:Ct,a=(n||0)+e,o=i[a];if(!r)for(;o&&bt(o);)a+=e,o=i[a];return o}}var Tt={}.hasOwnProperty;function Et(e){return t;function t(t,n,r){return Tt.call(e,t.tagName)&&e[t.tagName](t,n,r)}}var Dt=Et({body:At,caption:Ot,colgroup:Ot,dd:Pt,dt:Nt,head:Ot,html:kt,li:Mt,optgroup:It,option:Lt,p:jt,rp:Ft,rt:Ft,tbody:zt,td:Ht,tfoot:Bt,th:Ht,thead:Rt,tr:Vt});function Ot(e,t,n){let r=A(n,t,!0);return!r||r.type!==`comment`&&!(r.type===`text`&&bt(r.value.charAt(0)))}function kt(e,t,n){let r=A(n,t);return!r||r.type!==`comment`}function At(e,t,n){let r=A(n,t);return!r||r.type!==`comment`}function jt(e,t,n){let r=A(n,t);return r?r.type===`element`&&(r.tagName===`address`||r.tagName===`article`||r.tagName===`aside`||r.tagName===`blockquote`||r.tagName===`details`||r.tagName===`div`||r.tagName===`dl`||r.tagName===`fieldset`||r.tagName===`figcaption`||r.tagName===`figure`||r.tagName===`footer`||r.tagName===`form`||r.tagName===`h1`||r.tagName===`h2`||r.tagName===`h3`||r.tagName===`h4`||r.tagName===`h5`||r.tagName===`h6`||r.tagName===`header`||r.tagName===`hgroup`||r.tagName===`hr`||r.tagName===`main`||r.tagName===`menu`||r.tagName===`nav`||r.tagName===`ol`||r.tagName===`p`||r.tagName===`pre`||r.tagName===`section`||r.tagName===`table`||r.tagName===`ul`):!n||n.type!==`element`||n.tagName!==`a`&&n.tagName!==`audio`&&n.tagName!==`del`&&n.tagName!==`ins`&&n.tagName!==`map`&&n.tagName!==`noscript`&&n.tagName!==`video`}function Mt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&r.tagName===`li`}function Nt(e,t,n){let r=A(n,t);return!(!r||r.type!==`element`||r.tagName!==`dt`&&r.tagName!==`dd`)}function Pt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`)}function Ft(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`rp`||r.tagName===`rt`)}function It(e,t,n){let r=A(n,t);return!r||r.type===`element`&&r.tagName===`optgroup`}function Lt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`option`||r.tagName===`optgroup`)}function Rt(e,t,n){let r=A(n,t);return!(!r||r.type!==`element`||r.tagName!==`tbody`&&r.tagName!==`tfoot`)}function zt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`)}function Bt(e,t,n){return!A(n,t)}function Vt(e,t,n){let r=A(n,t);return!r||r.type===`element`&&r.tagName===`tr`}function Ht(e,t,n){let r=A(n,t);return!r||r.type===`element`&&(r.tagName===`td`||r.tagName===`th`)}var Ut=Et({body:Kt,colgroup:qt,head:Gt,html:Wt,tbody:Jt});function Wt(e){let t=A(e,-1);return!t||t.type!==`comment`}function Gt(e){let t=new Set;for(let n of e.children)if(n.type===`element`&&(n.tagName===`base`||n.tagName===`title`)){if(t.has(n.tagName))return!1;t.add(n.tagName)}let n=e.children[0];return!n||n.type===`element`}function Kt(e){let t=A(e,-1,!0);return!t||t.type!==`comment`&&!(t.type===`text`&&bt(t.value.charAt(0)))&&(t.type!==`element`||t.tagName!==`meta`&&t.tagName!==`link`&&t.tagName!==`script`&&t.tagName!==`style`&&t.tagName!==`template`)}function qt(e,t,n){let r=St(n,t),i=A(e,-1,!0);return n&&r&&r.type===`element`&&r.tagName===`colgroup`&&Dt(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`col`)}function Jt(e,t,n){let r=St(n,t),i=A(e,-1);return n&&r&&r.type===`element`&&(r.tagName===`thead`||r.tagName===`tbody`)&&Dt(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`tr`)}var Yt={name:[[`
3
3
  \f\r &/=>`.split(``),`
4
4
  \f\r "&'/=>\``.split(``)],[`\0
5
5
  \f\r "&'/<=>`.split(``),`\0
@@ -1 +1 @@
1
- import{$ as e,Bt as t,Cr as n,Dr as r,G as i,Jt as a,K as o,Q as s,U as c,W as l,Wn as u,Z as d,l as f,qt as p,tt as m,yn as h}from"./vue-i18n-CGHHpbTP.js";import{n as g,r as _}from"./useDocumentTitle-ByFCALbG.js";import{c as v}from"./index-DP4XBqUv.js";import{t as y}from"./ActionIconButton-4b5xelMn.js";var b={},x={class:`flex items-center justify-center gap-2 px-6 py-6 text-xs op-fade`};function S(e,n){return t(),o(`footer`,x,[...n[0]||=[d(`<span>made by <a href="https://github.com/antfu" target="_blank" rel="noopener" class="color-base hover:underline">@antfu</a></span><span>·</span><span>supported by <a href="https://vercel.com" target="_blank" rel="noopener" class="color-base hover:underline">▲ Vercel</a> and <a href="https://github.com/sponsors/antfu" target="_blank" rel="noopener" class="color-base hover:underline">sponsors</a></span><span>·</span><span>MIT</span><span>·</span><a href="https://github.com/antfu/pulls.review" target="_blank" rel="noopener" class="transition hover:color-base hover:op100">GitHub</a>`,7)]])}var C=v(b,[[`render`,S]]),w=m({__name:`AppHeader`,props:{document:{}},setup(r){let i=r,l=u(0);return f(()=>i.document??document,`scroll`,e=>{l.value=e.target instanceof Element?e.target.scrollTop:window.scrollY},{capture:!0}),(r,i)=>{let u=a(`RouterLink`);return t(),o(`header`,{class:n([`sticky top-0 z-nav h-14 flex items-center gap-3 border-b bg-base bg-glass px-4 transition-all`,l.value>10?`border-base`:`border-transparent`])},[e(u,{to:`/`,class:`shrink-0 text-lg font-mono`},{default:h(()=>[...i[0]||=[c(`span`,{class:`color-accent-magenta`},`+`,-1),s(`pulls`,-1),c(`span`,{class:`color-accent-orange`},`.`,-1),c(`span`,{class:`color-accent-teal`},`review`,-1)]]),_:1}),i[1]||=c(`div`,{class:`flex-1`},null,-1),e(_,null,{default:h(()=>[e(y,{href:`https://github.com/antfu/pulls.review`,target:`_blank`,rel:`noopener`,icon:`i-carbon-logo-github`,label:r.$t(`common.githubRepository`),tooltip:`GitHub`},null,8,[`label`])]),_:1})],2)}}}),T={class:`whitespace-nowrap font-medium`},E={key:0,class:`op-fade`},D=m({__name:`DiffPill`,props:{to:{},parent:{},label:{},state:{},title:{}},setup(e){return(n,u)=>{let d=a(`RouterLink`);return t(),l(d,{to:e.to,title:e.title,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:h(()=>[e.state?(t(),l(g,{key:0,state:e.state,class:`text-sm`},null,8,[`state`])):i(``,!0),c(`span`,T,[s(r(e.parent),1),e.label?(t(),o(`span`,E,r(e.parent?` `:``)+r(e.label),1)):i(``,!0)]),p(n.$slots,`default`)]),_:3},8,[`to`,`title`])}}}),O={},k={class:`text-[clamp(2.25rem,4.6vw,4rem)] font-medium leading-[1.05] tracking-tight font-mono`};function A(e,n){return t(),o(`h1`,k,[...n[0]||=[d(`<span class="block"><span class="color-accent-orange" aria-hidden="true">@@</span> pull</span><span class="block">reviews<span class="color-accent-magenta" aria-hidden="true">:</span></span><span class="block"><span class="color-accent-teal" aria-hidden="true">+</span> made<span class="color-accent-orange" aria-hidden="true">{}</span></span><span class="block"><span class="color-accent-magenta" aria-hidden="true">&gt;&gt;&gt;</span>clear<span class="i-ph-check-bold inline-block translate-y-2 text-[0.8em] color-accent-teal" aria-hidden="true"></span></span>`,4)]])}var j=v(O,[[`render`,A]]);export{C as i,D as n,w as r,j as t};
1
+ import{$ as e,Bt as t,Cr as n,Dr as r,G as i,Jt as a,K as o,Q as s,U as c,W as l,Wn as u,Z as d,l as f,qt as p,tt as m,yn as h}from"./vue-i18n-CGHHpbTP.js";import{n as g,r as _}from"./useDocumentTitle-BQJCa6Lm.js";import{c as v}from"./index-KDAJXf4E.js";import{t as y}from"./ActionIconButton-4b5xelMn.js";var b={},x={class:`flex items-center justify-center gap-2 px-6 py-6 text-xs op-fade`};function S(e,n){return t(),o(`footer`,x,[...n[0]||=[d(`<span>made by <a href="https://github.com/antfu" target="_blank" rel="noopener" class="color-base hover:underline">@antfu</a></span><span>·</span><span>supported by <a href="https://vercel.com" target="_blank" rel="noopener" class="color-base hover:underline">▲ Vercel</a> and <a href="https://github.com/sponsors/antfu" target="_blank" rel="noopener" class="color-base hover:underline">sponsors</a></span><span>·</span><span>MIT</span><span>·</span><a href="https://github.com/antfu/pulls.review" target="_blank" rel="noopener" class="transition hover:color-base hover:op100">GitHub</a>`,7)]])}var C=v(b,[[`render`,S]]),w=m({__name:`AppHeader`,props:{document:{}},setup(r){let i=r,l=u(0);return f(()=>i.document??document,`scroll`,e=>{l.value=e.target instanceof Element?e.target.scrollTop:window.scrollY},{capture:!0}),(r,i)=>{let u=a(`RouterLink`);return t(),o(`header`,{class:n([`sticky top-0 z-nav h-14 flex items-center gap-3 border-b bg-base bg-glass px-4 transition-all`,l.value>10?`border-base`:`border-transparent`])},[e(u,{to:`/`,class:`shrink-0 text-lg font-mono`},{default:h(()=>[...i[0]||=[c(`span`,{class:`color-accent-magenta`},`+`,-1),s(`pulls`,-1),c(`span`,{class:`color-accent-orange`},`.`,-1),c(`span`,{class:`color-accent-teal`},`review`,-1)]]),_:1}),i[1]||=c(`div`,{class:`flex-1`},null,-1),e(_,null,{default:h(()=>[e(y,{href:`https://github.com/antfu/pulls.review`,target:`_blank`,rel:`noopener`,icon:`i-carbon-logo-github`,label:r.$t(`common.githubRepository`),tooltip:`GitHub`},null,8,[`label`])]),_:1})],2)}}}),T={class:`whitespace-nowrap font-medium`},E={key:0,class:`op-fade`},D=m({__name:`DiffPill`,props:{to:{},parent:{},label:{},state:{},title:{}},setup(e){return(n,u)=>{let d=a(`RouterLink`);return t(),l(d,{to:e.to,title:e.title,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:h(()=>[e.state?(t(),l(g,{key:0,state:e.state,class:`text-sm`},null,8,[`state`])):i(``,!0),c(`span`,T,[s(r(e.parent),1),e.label?(t(),o(`span`,E,r(e.parent?` `:``)+r(e.label),1)):i(``,!0)]),p(n.$slots,`default`)]),_:3},8,[`to`,`title`])}}}),O={},k={class:`text-[clamp(2.25rem,4.6vw,4rem)] font-medium leading-[1.05] tracking-tight font-mono`};function A(e,n){return t(),o(`h1`,k,[...n[0]||=[d(`<span class="block"><span class="color-accent-orange" aria-hidden="true">@@</span> pull</span><span class="block">reviews<span class="color-accent-magenta" aria-hidden="true">:</span></span><span class="block"><span class="color-accent-teal" aria-hidden="true">+</span> made<span class="color-accent-orange" aria-hidden="true">{}</span></span><span class="block"><span class="color-accent-magenta" aria-hidden="true">&gt;&gt;&gt;</span>clear<span class="i-ph-check-bold inline-block translate-y-2 text-[0.8em] color-accent-teal" aria-hidden="true"></span></span>`,4)]])}var j=v(O,[[`render`,A]]);export{C as i,D as n,w as r,j as t};
@@ -0,0 +1 @@
1
+ import{$ as e,Bt as t,Cr as n,Dr as r,G as i,H as a,Jt as o,K as s,Kt as c,M as l,Q as u,U as d,W as f,er as p,tt as m,un as h,yn as g}from"./vue-i18n-CGHHpbTP.js";import{k as _,t as v}from"./ModelPicker-CDTiUMZ3.js";import{a as y,c as b,i as x,l as S,n as C,o as w,r as T,s as E,t as D,u as O}from"./SelectViewport-DF4P4Akh.js";import{n as k}from"./local-agents-BQLn-Ppw.js";var A={key:0,class:`flex items-center gap-2 text-sm color-faint`},j={key:1,class:`text-sm color-faint`},M={class:`flex items-center gap-2`},N={key:1,class:`text-xs op-mute`},P={class:`text-xs op-mute`},F=m({__name:`LocalAgentSettings`,props:{llmSettings:{},models:{},modelsLoading:{type:Boolean},modelsError:{}},emits:[`update:llmSettings`],setup(m,{emit:F}){let I=m,L=F,R={claude:`i-simple-icons-claudecode`,opencode:`i-simple-icons-opencode`,pi:`i-ph:terminal-window-duotone`},z=h(`host`),B=k(),V=a(()=>B?.value),H=a(()=>V.value?.find(e=>e.name===I.llmSettings.agent));function U(e){L(`update:llmSettings`,{...I.llmSettings,agent:e,agentModel:``})}let W=a({get:()=>I.llmSettings.agentModel,set:e=>L(`update:llmSettings`,{...I.llmSettings,agentModel:e})});return(a,h)=>{let k=o(`i18n-t`);return t(),s(l,null,[e(_,{label:a.$t(`settings.llm.agent`)},{description:g(()=>[e(k,{keypath:`settings.llm.agentHint`,scope:`global`},{claude:g(()=>[...h[5]||=[d(`a`,{href:`https://docs.anthropic.com/en/docs/claude-code`,target:`_blank`,rel:`noopener`,class:`hover:underline`},`Claude Code`,-1)]]),opencode:g(()=>[...h[6]||=[d(`a`,{href:`https://opencode.ai`,target:`_blank`,rel:`noopener`,class:`hover:underline`},`OpenCode`,-1)]]),pi:g(()=>[...h[7]||=[d(`a`,{href:`https://github.com/earendil-works/pi`,target:`_blank`,rel:`noopener`,class:`hover:underline`},`Pi`,-1)]]),_:1})]),default:g(()=>[V.value?V.value.length?(t(),s(`div`,{key:2,ref_key:`host`,ref:z,class:`relative`},[e(p(O),{"model-value":m.llmSettings.agent,"onUpdate:modelValue":h[0]||=e=>U(e)},{default:g(()=>[e(p(T),{class:`h-9 min-w-56 inline-flex items-center justify-between gap-2 border border-base rounded bg-raised px-2.5 text-sm outline-none transition focus-visible:ring-2 focus-visible:ring-primary-500/40`},{default:g(()=>[d(`span`,M,[H.value?(t(),s(`span`,{key:0,class:n(R[H.value.name]),"aria-hidden":`true`},null,2)):i(``,!0),e(p(C),{placeholder:a.$t(`settings.llm.agentPick`)},null,8,[`placeholder`]),H.value?(t(),s(`span`,N,r(H.value.version),1)):i(``,!0)]),e(p(b),{class:`op-fade`},{default:g(()=>[...h[3]||=[d(`span`,{class:`i-ph:caret-down`,"aria-hidden":`true`},null,-1)]]),_:1})]),_:1}),e(p(x),{to:z.value??void 0},{default:g(()=>[e(p(S),{position:`popper`,"side-offset":6,class:`z-dropdown min-w-[--reka-select-trigger-width] overflow-hidden border border-base rounded-lg bg-glass:75 shadow-lg`},{default:g(()=>[e(p(D),{class:`p-1`},{default:g(()=>[(t(!0),s(l,null,c(V.value,i=>(t(),f(p(E),{key:i.name,value:i.name,class:`relative flex cursor-pointer select-none items-center gap-2 rounded-md py-1.5 pl-7 pr-2 text-sm color-base outline-none transition data-[highlighted]:bg-hover`},{default:g(()=>[e(p(w),{class:`absolute left-1.5 inline-flex items-center color-active`},{default:g(()=>[...h[4]||=[d(`span`,{class:`i-ph:check-bold`,"aria-hidden":`true`},null,-1)]]),_:1}),d(`span`,{class:n(R[i.name]),"aria-hidden":`true`},null,2),e(p(y),null,{default:g(()=>[u(r(i.label),1)]),_:2},1024),d(`span`,P,r(i.version),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1})]),_:1},8,[`to`])]),_:1},8,[`model-value`])],512)):(t(),s(`p`,j,r(a.$t(`settings.llm.agentNone`)),1)):(t(),s(`p`,A,[h[2]||=d(`span`,{class:`i-ph:circle-notch animate-spin`,"aria-hidden":`true`},null,-1),u(` `+r(a.$t(`settings.llm.agentDetecting`)),1)]))]),_:1},8,[`label`]),m.llmSettings.agent?(t(),f(_,{key:0,label:a.$t(`settings.llm.model`)},{default:g(()=>[e(v,{modelValue:W.value,"onUpdate:modelValue":h[1]||=e=>W.value=e,models:m.models,loading:m.modelsLoading,error:m.modelsError},null,8,[`modelValue`,`models`,`loading`,`error`])]),_:1},8,[`label`])):i(``,!0)],64)}}});export{F as default};
@@ -1,4 +1,4 @@
1
- import"./rolldown-runtime-Dd_uD5pT.js";import{$ as e,Bt as t,Cr as n,Dr as r,Er as i,Et as a,G as o,H as s,Hn as c,Jt as l,K as u,Kt as d,M as f,Pt as p,Q as m,Tt as h,U as g,W as _,Wn as v,c as y,er as b,l as x,mn as S,n as C,qn as w,qt as T,sn as E,tt as D,un as O,yn as k}from"./vue-i18n-CGHHpbTP.js";import{n as A}from"./ModelPicker-CDTiUMZ3.js";import{a as j,i as M,n as N,r as P,s as ee}from"./analyze-CTcNbJBk.js";import{_ as F,d as I,dt as te,n as ne,r as re,t as ie}from"./useDocumentTitle-ByFCALbG.js";import{d as ae,o as oe,r as se}from"./index-DP4XBqUv.js";import{t as ce}from"./ActionButton-V4dY2wPS.js";import{t as le}from"./ActionIconButton-4b5xelMn.js";import{a as ue,c as de,i as fe,l as pe,n as me,o as he,r as ge,s as _e,t as ve,u as ye}from"./SelectViewport-DF4P4Akh.js";import{n as be,t as xe}from"./GithubAvatar-DGJrpCsX.js";import{t as Se}from"./portalTarget-DQg8GgWm.js";import{t as Ce}from"./time-ago-Bdao9Hh1.js";var L=100;async function we(e,t,n,r){return await e.token()?je(e,t,n,r):Oe(e,t,n,r)}function Te(e,t){return`repo:${e}/${t} is:pr is:open`}function Ee(e){return{login:e.login,avatarUrl:e.avatar_url}}var De=1e3;async function Oe(e,t,n,r){let i=r?Number(r):1,a=new URLSearchParams({q:Te(t,n),sort:`updated`,order:`desc`,per_page:String(L),page:String(i)}),o=await(await e.request(`/search/issues?${a}`)).json(),s=i*L,c=o.items.length===L&&s<Math.min(o.total_count,De);return{totalCount:o.total_count,items:o.items.map(ke),next:c?String(i+1):void 0}}function ke(e){return{number:e.number,title:e.title,url:e.html_url,state:e.draft?`draft`:`open`,author:e.user?Ee(e.user):void 0,labels:e.labels.map(e=>({name:e.name,color:e.color,description:e.description??void 0})),assignees:(e.assignees??[]).map(Ee),milestone:e.milestone?.title,createdAt:e.created_at,updatedAt:e.updated_at,comments:e.comments}}var Ae=`
1
+ import"./rolldown-runtime-Dd_uD5pT.js";import{$ as e,Bt as t,Cr as n,Dr as r,Er as i,Et as a,G as o,H as s,Hn as c,Jt as l,K as u,Kt as d,M as f,Pt as p,Q as m,Tt as h,U as g,W as _,Wn as v,c as y,er as b,l as x,mn as S,n as C,qn as w,qt as T,sn as E,tt as D,un as O,yn as k}from"./vue-i18n-CGHHpbTP.js";import{n as A}from"./ModelPicker-CDTiUMZ3.js";import{a as j,i as M,n as N,r as P,s as ee}from"./analyze-BgWIIbl3.js";import{_ as F,d as I,dt as te,n as ne,r as re,t as ie}from"./useDocumentTitle-BQJCa6Lm.js";import{d as ae,o as oe,r as se}from"./index-KDAJXf4E.js";import{t as ce}from"./ActionButton-V4dY2wPS.js";import{t as le}from"./ActionIconButton-4b5xelMn.js";import{a as ue,c as de,i as fe,l as pe,n as me,o as he,r as ge,s as _e,t as ve,u as ye}from"./SelectViewport-DF4P4Akh.js";import{n as be,t as xe}from"./GithubAvatar-DGJrpCsX.js";import{t as Se}from"./portalTarget-DQg8GgWm.js";import{t as Ce}from"./time-ago-Bdao9Hh1.js";var L=100;async function we(e,t,n,r){return await e.token()?je(e,t,n,r):Oe(e,t,n,r)}function Te(e,t){return`repo:${e}/${t} is:pr is:open`}function Ee(e){return{login:e.login,avatarUrl:e.avatar_url}}var De=1e3;async function Oe(e,t,n,r){let i=r?Number(r):1,a=new URLSearchParams({q:Te(t,n),sort:`updated`,order:`desc`,per_page:String(L),page:String(i)}),o=await(await e.request(`/search/issues?${a}`)).json(),s=i*L,c=o.items.length===L&&s<Math.min(o.total_count,De);return{totalCount:o.total_count,items:o.items.map(ke),next:c?String(i+1):void 0}}function ke(e){return{number:e.number,title:e.title,url:e.html_url,state:e.draft?`draft`:`open`,author:e.user?Ee(e.user):void 0,labels:e.labels.map(e=>({name:e.name,color:e.color,description:e.description??void 0})),assignees:(e.assignees??[]).map(Ee),milestone:e.milestone?.title,createdAt:e.created_at,updatedAt:e.updated_at,comments:e.comments}}var Ae=`
2
2
  query OpenPullRequests($query: String!, $first: Int!, $cursor: String) {
3
3
  search(query: $query, type: ISSUE, first: $first, after: $cursor) {
4
4
  issueCount
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{$ as t,$n as n,Bt as r,Cr as i,Dr as a,G as o,H as s,K as c,Q as l,W as u,er as d,mn as f,qn as p,qt as m,tt as h,zn as g}from"./vue-i18n-CGHHpbTP.js";import{n as _,r as v}from"./i18n-CgsK6PK3.js";import{c as y}from"./source-Dk1PNoY7.js";import{a as ee,i as b,o as x,r as S}from"./llm-XBWohzAo.js";import{p as C,y as w}from"./useDocumentTitle-ByFCALbG.js";import{h as T}from"./index-DP4XBqUv.js";import{n as E}from"./ActionButton-V4dY2wPS.js";function D(e){return{id:`none`,available:!0,async analyze(t){let n={groups:[{key:`all`,label:e(),filePaths:t.files.map(e=>e.path)}],schemaVersion:1};return y(`none`,n)}}}var O=e(x(),1),k=b.map(e=>({rule:e,isMatch:e.patterns?(0,O.default)(e.patterns):()=>!1}));function A(e){for(let{rule:t,isMatch:n}of k)if(n(e))return t;return S}function te(e){return{id:`rule-based`,available:!0,async analyze(t){let n=new Map;for(let r of t.files){let t=r.isBinary?ee:A(r.path),i=n.get(t);i||(i={key:t.key,...e(t.key),category:t.category,filePaths:[]},n.set(t,i)),i.filePaths.push(r.path)}let r={groups:b.flatMap(e=>n.get(e)??[]),schemaVersion:1};return y(`rule-based`,r)}}}function ne(e){return typeof e==`object`?e.key:e}function re(e,t){let n=e.length;return new Proxy(e,{get(e,r,i){if(typeof r==`string`){let i=r.charCodeAt(0);if(i>=48&&i<=57){let i=+r;if(Number.isInteger(i)&&i>=0&&i<n){let n=e[i];if(typeof n!=`object`){let r=t[i*2];n=e[i]={index:i,key:n,start:r,size:t[i*2+1],end:r+t[i*2+1],lane:0}}return n}}if(r===`length`)return n}return Reflect.get(e,r,i)}})}function j(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function M(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var N=(e,t)=>Math.abs(e-t)<1.01,P=(e,t,n)=>{let r;return Object.assign(function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)},{cancel:()=>{e.clearTimeout(r)}})},F,I=()=>{if(F!==void 0)return F;if(typeof navigator>`u`)return F=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return F=!0;let e=navigator.maxTouchPoints;return F=navigator.platform===`MacIntel`&&e!==void 0&&e>0},L=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},R=e=>e,z=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},B=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(L(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(L(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},V={passive:!0},H=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=()=>{t({width:n.innerWidth,height:n.innerHeight})};return r(),n.addEventListener(`resize`,r,V),()=>{n.removeEventListener(`resize`,r)}},U=typeof window>`u`||`onscrollend`in window,W=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&U,o=0,s=a?null:P(i,()=>t(n(r),!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,V),a&&r.addEventListener(`scrollend`,u,V),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u),s?.cancel()}},G=(e,t)=>W(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),K=(e,t)=>W(e,t,t=>e.options.horizontal?t.scrollX:t.scrollY),q=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},J=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},Y=J,X=J;function ie(e,t,n,r){if(t===0)return!1;let i=r(0),a=new Set,o=0;for(;o<e;){let e=n(o);if(e===i)break;a.add(e),o++}let s=e-o;if(s===0||s>=t)return!1;for(let e=0;e<s;e++)if(r(e)!==n(o+e))return!1;for(let e=s;e<t;e++)if(a.has(r(e)))return!1;return!0}var ae=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this._clampedAdjustment=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.isIndexInRange(n)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:R,rangeExtractor:z,onChange:()=>{},measureElement:q,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=this._singleLaneMeasurements?.items??s,l=e=>ne(c[e]),u=e>0?l(0):null,d=e>0?l(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==u||t.getItemKey(o-1)!==d)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>0&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==d)&&(o>e||ie(e,o,l,t.getItemKey))&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:a,getItemKey:c}=this.options,l=0;for(;l<a&&c(l)!==e;)l++;if(l<a){let e=n[l];if(e){let n=Math.max(0,e.start+t);!i&&n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=j(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._clampedAdjustment=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this._clampedAdjustment!==null&&Math.abs(e-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null),this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,I()&&this.targetWindow!=null&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,V),e.addEventListener(`touchend`,n,V),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(I()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this.scrollState?.behavior===`smooth`&&!N(this.getScrollOffset()-i,this.scrollState.lastTargetOffset)||this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}this._retryClampedAdjustment()},this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;let{target:e,maxAtWrite:t}=this._clampedAdjustment,n=this.getMaxScrollOffset();n>t+.5&&(this._clampedAdjustment=e>n+.5?{target:e,maxAtWrite:n}:null,this._scrollToOffset(e,{adjustments:void 0,behavior:void 0}))},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=j(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.isIndexInRange=e=>e>=0&&e<this.options.count,this.getMeasurements=j(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._singleLaneMeasurements?.flat;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e}let o=u===0?Array(e):this._singleLaneMeasurements.items.slice(),c;if(u===0)c=t+n;else{let e=u-1;c=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t);o[t]=e;let n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=c,a[t*2+1]=i,c+=i+s}this._singleLaneMeasurements={flat:a,items:o};let d=re(o,a);return this.measurementsCache=d,d}let d=this.measurementsCache.slice(0,u),f=Array(a).fill(void 0),p=new Float64Array(a),m=0;for(let e=0;e<u;e++){let t=d[e];t&&(f[t.lane]===void 0&&m++,f[t.lane]=e,p[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,h,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=f[u],r=e===void 0?void 0:d[e];h=r?r.end+s:t+n}else if(m===a){let e=0,t=p[0],n=f[0];for(let r=1;r<a;r++){let i=p[r];(i<t||i===t&&f[r]<n)&&(e=r,t=i,n=f[r])}u=e,h=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,h=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=h+v;d[i]={index:i,start:h,size:v,end:y,key:e,lane:u},f[u]===void 0&&m++,f[u]=i,p[u]=y}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=j(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=se(e,t,n,r,r===1&&this._singleLaneMeasurements!==null?this._singleLaneMeasurements.flat:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=j(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e);if(!this.isIndexInRange(t))return;let n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(!this.isIndexInRange(e))return;let n,r,i,a=this._singleLaneMeasurements?.flat;if(this.options.lanes===1&&a!=null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f),this._retryClampedAdjustment()}},this.getVirtualItems=j(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._singleLaneMeasurements?.flat,r=this.options.lanes===1&&n!=null;return M(t[Z(0,t.length-1,r?e=>n[e*2]:e=>M(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._singleLaneMeasurements?.flat;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){if(e===0)return!1;if(I()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded))return this._iosDeferredAdjustment+=e,!1;{let n=this.getScrollOffset()+this.scrollAdjustments+e,r=this.scrollElement,i=r!==null&&(`scrollHeight`in r||`document`in r)?this.getMaxScrollOffset():null;return this._clampedAdjustment=i!==null&&n>i+.5?{target:n,maxAtWrite:i}:null,this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0}}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&N(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},Z=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function oe(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function se(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=oe(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=Z(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}function Q(e){let t=new ae(d(e)),r=p(t),i=t._didMount();return f(()=>d(e).getScrollElement(),e=>{e&&t._willUpdate()},{immediate:!0}),f(()=>d(e),e=>{t.setOptions({...e,onChange:(t,i)=>{var a;n(r),(a=e.onChange)==null||a.call(e,t,i)}}),t._willUpdate(),n(r)},{immediate:!0}),g(i),r}function ce(e){return Q(s(()=>({observeElementRect:B,observeElementOffset:G,scrollToFn:X,...d(e)})))}function le(e){return Q(s(()=>({getScrollElement:()=>typeof document<`u`?window:null,observeElementRect:H,observeElementOffset:K,scrollToFn:Y,initialOffset:()=>typeof document<`u`?window.scrollY:0,...d(e)})))}var ue={class:`px-6 py-10 text-center op-fade flex flex-col gap-2 items-center justify-center`},de={key:0,class:`text-sm color-base font-medium`},fe={key:1,class:`text-xs op-mute max-w-prose`},pe={key:2,class:`mt-2 flex gap-2 items-center`},me=h({__name:`FeedbackEmptyState`,props:{title:{},icon:{}},setup(e){return(t,n)=>(r(),c(`div`,ue,[m(t.$slots,`icon`,{},()=>[e.icon?(r(),c(`span`,{key:0,class:i([e.icon,`text-3xl op-mute`]),"aria-hidden":`true`},null,2)):o(``,!0)]),e.title||t.$slots.default?(r(),c(`div`,de,[m(t.$slots,`default`,{},()=>[l(a(e.title),1)])])):o(``,!0),t.$slots.hint?(r(),c(`div`,fe,[m(t.$slots,`hint`)])):o(``,!0),t.$slots.actions?(r(),c(`div`,pe,[m(t.$slots,`actions`)])):o(``,!0)]))}}),he={key:0,class:`text-sm`},ge=h({__name:`FeedbackLoading`,props:{text:{},panel:{type:Boolean}},setup(e){return(n,s)=>(r(),c(`div`,{class:i([`op-fade flex gap-2 items-center justify-center`,e.panel?`h-full w-full py-12`:`py-4`])},[t(E),e.text||n.$slots.default?(r(),c(`span`,he,[m(n.$slots,`default`,{},()=>[l(a(e.text),1)])])):o(``,!0)],2))}}),_e=h({__name:`GithubTokenRecovery`,emits:[`saved`],setup(e,{emit:t}){let n=t,{meta:i,busy:a,error:o,saveToken:s}=w();async function c(e){await s(e)&&n(`saved`)}return(e,t)=>(r(),u(C,{"token-set":!!d(v).githubToken,meta:d(i),busy:d(a),error:d(o),onSave:c},null,8,[`token-set`,`meta`,`busy`,`error`]))}}),ve={id:`llm`,get available(){return T.isSetup()},async analyze(e,t){return(await T.analyze(e,t??{})).result}},ye={id:`web-llm`,available:!1,analyze:()=>{throw Error(`web-llm adapter not implemented yet`)}},$=te(e=>({label:_(`rules.${e}.label`),summary:_(`rules.${e}.summary`)})),be={none:D(()=>_(`rules.allFiles`)),"rule-based":$,llm:ve,"web-llm":ye};function xe(e){return be[e]}export{me as a,ge as i,$ as n,ce as o,_e as r,le as s,xe as t};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{$ as t,$n as n,Bt as r,Cr as i,Dr as a,G as o,H as s,K as c,Q as l,W as u,er as d,mn as f,qn as p,qt as m,tt as h,zn as g}from"./vue-i18n-CGHHpbTP.js";import{n as _,r as v}from"./i18n-Cx8anq4V.js";import{c as y}from"./source-CvnvCX42.js";import{a as ee,i as b,o as x,r as S}from"./llm-Le5CPsNn.js";import{p as C,y as w}from"./useDocumentTitle-BQJCa6Lm.js";import{h as T}from"./index-KDAJXf4E.js";import{n as E}from"./ActionButton-V4dY2wPS.js";function D(e){return{id:`none`,available:!0,async analyze(t){let n={groups:[{key:`all`,label:e(),filePaths:t.files.map(e=>e.path)}],schemaVersion:1};return y(`none`,n)}}}var O=e(x(),1),k=b.map(e=>({rule:e,isMatch:e.patterns?(0,O.default)(e.patterns):()=>!1}));function A(e){for(let{rule:t,isMatch:n}of k)if(n(e))return t;return S}function te(e){return{id:`rule-based`,available:!0,async analyze(t){let n=new Map;for(let r of t.files){let t=r.isBinary?ee:A(r.path),i=n.get(t);i||(i={key:t.key,...e(t.key),category:t.category,filePaths:[]},n.set(t,i)),i.filePaths.push(r.path)}let r={groups:b.flatMap(e=>n.get(e)??[]),schemaVersion:1};return y(`rule-based`,r)}}}function ne(e){return typeof e==`object`?e.key:e}function re(e,t){let n=e.length;return new Proxy(e,{get(e,r,i){if(typeof r==`string`){let i=r.charCodeAt(0);if(i>=48&&i<=57){let i=+r;if(Number.isInteger(i)&&i>=0&&i<n){let n=e[i];if(typeof n!=`object`){let r=t[i*2];n=e[i]={index:i,key:n,start:r,size:t[i*2+1],end:r+t[i*2+1],lane:0}}return n}}if(r===`length`)return n}return Reflect.get(e,r,i)}})}function j(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function M(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var N=(e,t)=>Math.abs(e-t)<1.01,P=(e,t,n)=>{let r;return Object.assign(function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)},{cancel:()=>{e.clearTimeout(r)}})},F,I=()=>{if(F!==void 0)return F;if(typeof navigator>`u`)return F=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return F=!0;let e=navigator.maxTouchPoints;return F=navigator.platform===`MacIntel`&&e!==void 0&&e>0},L=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},R=e=>e,z=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},B=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(L(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(L(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},V={passive:!0},H=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=()=>{t({width:n.innerWidth,height:n.innerHeight})};return r(),n.addEventListener(`resize`,r,V),()=>{n.removeEventListener(`resize`,r)}},U=typeof window>`u`||`onscrollend`in window,W=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&U,o=0,s=a?null:P(i,()=>t(n(r),!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,V),a&&r.addEventListener(`scrollend`,u,V),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u),s?.cancel()}},G=(e,t)=>W(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),K=(e,t)=>W(e,t,t=>e.options.horizontal?t.scrollX:t.scrollY),q=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},J=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},Y=J,X=J;function ie(e,t,n,r){if(t===0)return!1;let i=r(0),a=new Set,o=0;for(;o<e;){let e=n(o);if(e===i)break;a.add(e),o++}let s=e-o;if(s===0||s>=t)return!1;for(let e=0;e<s;e++)if(r(e)!==n(o+e))return!1;for(let e=s;e<t;e++)if(a.has(r(e)))return!1;return!0}var ae=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this._clampedAdjustment=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.isIndexInRange(n)&&this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:R,rangeExtractor:z,onChange:()=>{},measureElement:q,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=this._singleLaneMeasurements?.items??s,l=e=>ne(c[e]),u=e>0?l(0):null,d=e>0?l(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==u||t.getItemKey(o-1)!==d)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>0&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==d)&&(o>e||ie(e,o,l,t.getItemKey))&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:a,getItemKey:c}=this.options,l=0;for(;l<a&&c(l)!==e;)l++;if(l<a){let e=n[l];if(e){let n=Math.max(0,e.start+t);!i&&n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=j(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.isScrolling=!1,this.scrollDirection=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._clampedAdjustment=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.targetWindow=this.scrollElement&&`ownerDocument`in this.scrollElement?this.scrollElement.ownerDocument.defaultView:this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this._clampedAdjustment!==null&&Math.abs(e-this._clampedAdjustment.maxAtWrite)>=1.5&&(this._clampedAdjustment=null),this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,I()&&this.targetWindow!=null&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,V),e.addEventListener(`touchend`,n,V),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(I()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this.scrollState?.behavior===`smooth`&&!N(this.getScrollOffset()-i,this.scrollState.lastTargetOffset)||this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}this._retryClampedAdjustment()},this._retryClampedAdjustment=()=>{if(this._clampedAdjustment===null||!this.scrollElement||!this.options.enabled)return;let{target:e,maxAtWrite:t}=this._clampedAdjustment,n=this.getMaxScrollOffset();n>t+.5&&(this._clampedAdjustment=e>n+.5?{target:e,maxAtWrite:n}:null,this._scrollToOffset(e,{adjustments:void 0,behavior:void 0}))},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;if(this._iosDeferredAdjustment<0&&e>=t-1){this._iosDeferredAdjustment=0;return}let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=j(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(e,t,n,r,i,a,o,s)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s}),{key:!1}),this.isIndexInRange=e=>e>=0&&e<this.options.count,this.getMeasurements=j(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o,gap:s},c)=>{let l=this.itemSizeCache;if(!i)return this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this._singleLaneMeasurements=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let u=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=e*2,a=this._singleLaneMeasurements?.flat;if(!a||a.length<i){let e=new Float64Array(i);a&&u>0&&e.set(a.subarray(0,u*2)),a=e}let o=u===0?Array(e):this._singleLaneMeasurements.items.slice(),c;if(u===0)c=t+n;else{let e=u-1;c=a[e*2]+a[e*2+1]+s}for(let t=u;t<e;t++){let e=r(t);o[t]=e;let n=l.get(e),i=typeof n==`number`?n:this.options.estimateSize(t);a[t*2]=c,a[t*2+1]=i,c+=i+s}this._singleLaneMeasurements={flat:a,items:o};let d=re(o,a);return this.measurementsCache=d,d}let d=this.measurementsCache.slice(0,u),f=Array(a).fill(void 0),p=new Float64Array(a),m=0;for(let e=0;e<u;e++){let t=d[e];t&&(f[t.lane]===void 0&&m++,f[t.lane]=e,p[t.lane]=t.end)}for(let i=u;i<e;i++){let e=r(i),c=this.laneAssignments.get(i),u,h,g=o===`estimate`||l.has(e);if(c!==void 0&&this.options.lanes>1){u=c;let e=f[u],r=e===void 0?void 0:d[e];h=r?r.end+s:t+n}else if(m===a){let e=0,t=p[0],n=f[0];for(let r=1;r<a;r++){let i=p[r];(i<t||i===t&&f[r]<n)&&(e=r,t=i,n=f[r])}u=e,h=t+s,g&&this.laneAssignments.set(i,u)}else u=i%this.options.lanes,h=t+n,g&&this.laneAssignments.set(i,u);let _=l.get(e),v=typeof _==`number`?_:this.options.estimateSize(i),y=h+v;d[i]={index:i,start:h,size:v,end:y,key:e,lane:u},f[u]===void 0&&m++,f[u]=i,p[u]=y}return this.measurementsCache=d,d},{key:!1,debug:()=>this.options.debug}),this.calculateRange=j(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=se(e,t,n,r,r===1&&this._singleLaneMeasurements!==null?this._singleLaneMeasurements.flat:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=j(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e);if(!this.isIndexInRange(t))return;let n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(!this.isIndexInRange(e))return;let n,r,i,a=this._singleLaneMeasurements?.flat;if(this.options.lanes===1&&a!=null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=this.itemSizeCache.get(i)??n,s=t-o;if(s!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,c=a?this.getTotalSize():0,l=this.getScrollOffset()+this.scrollAdjustments,u=this.itemSizeCache.has(i)?r+o<=l&&this.scrollDirection!==`backward`:r<l,d=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?u:this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},s,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++;let f=!1;a?f=this.applyScrollAdjustment(this.getTotalSize()-c):d&&(f=this.applyScrollAdjustment(s)),this.notify(f),this._retryClampedAdjustment()}},this.getVirtualItems=j(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._singleLaneMeasurements?.flat,r=this.options.lanes===1&&n!=null;return M(t[Z(0,t.length-1,r?e=>n[e*2]:e=>M(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`){if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t]}if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0;let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{this._iosDeferredAdjustment=0,e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._singleLaneMeasurements?.flat;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){if(e===0)return!1;if(I()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded))return this._iosDeferredAdjustment+=e,!1;{let n=this.getScrollOffset()+this.scrollAdjustments+e,r=this.scrollElement,i=r!==null&&(`scrollHeight`in r||`document`in r)?this.getMaxScrollOffset():null;return this._clampedAdjustment=i!==null&&n>i+.5?{target:n,maxAtWrite:i}:null,this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollOffset<0&&(this.scrollOffset=0),this.scrollAdjustments=0),!0}}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&N(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},Z=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function oe(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function se(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=oe(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=Z(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}function Q(e){let t=new ae(d(e)),r=p(t),i=t._didMount();return f(()=>d(e).getScrollElement(),e=>{e&&t._willUpdate()},{immediate:!0}),f(()=>d(e),e=>{t.setOptions({...e,onChange:(t,i)=>{var a;n(r),(a=e.onChange)==null||a.call(e,t,i)}}),t._willUpdate(),n(r)},{immediate:!0}),g(i),r}function ce(e){return Q(s(()=>({observeElementRect:B,observeElementOffset:G,scrollToFn:X,...d(e)})))}function le(e){return Q(s(()=>({getScrollElement:()=>typeof document<`u`?window:null,observeElementRect:H,observeElementOffset:K,scrollToFn:Y,initialOffset:()=>typeof document<`u`?window.scrollY:0,...d(e)})))}var ue={class:`px-6 py-10 text-center op-fade flex flex-col gap-2 items-center justify-center`},de={key:0,class:`text-sm color-base font-medium`},fe={key:1,class:`text-xs op-mute max-w-prose`},pe={key:2,class:`mt-2 flex gap-2 items-center`},me=h({__name:`FeedbackEmptyState`,props:{title:{},icon:{}},setup(e){return(t,n)=>(r(),c(`div`,ue,[m(t.$slots,`icon`,{},()=>[e.icon?(r(),c(`span`,{key:0,class:i([e.icon,`text-3xl op-mute`]),"aria-hidden":`true`},null,2)):o(``,!0)]),e.title||t.$slots.default?(r(),c(`div`,de,[m(t.$slots,`default`,{},()=>[l(a(e.title),1)])])):o(``,!0),t.$slots.hint?(r(),c(`div`,fe,[m(t.$slots,`hint`)])):o(``,!0),t.$slots.actions?(r(),c(`div`,pe,[m(t.$slots,`actions`)])):o(``,!0)]))}}),he={key:0,class:`text-sm`},ge=h({__name:`FeedbackLoading`,props:{text:{},panel:{type:Boolean}},setup(e){return(n,s)=>(r(),c(`div`,{class:i([`op-fade flex gap-2 items-center justify-center`,e.panel?`h-full w-full py-12`:`py-4`])},[t(E),e.text||n.$slots.default?(r(),c(`span`,he,[m(n.$slots,`default`,{},()=>[l(a(e.text),1)])])):o(``,!0)],2))}}),_e=h({__name:`GithubTokenRecovery`,emits:[`saved`],setup(e,{emit:t}){let n=t,{meta:i,busy:a,error:o,saveToken:s}=w();async function c(e){await s(e)&&n(`saved`)}return(e,t)=>(r(),u(C,{"token-set":!!d(v).githubToken,meta:d(i),busy:d(a),error:d(o),onSave:c},null,8,[`token-set`,`meta`,`busy`,`error`]))}}),ve={id:`llm`,get available(){return T.isSetup()},async analyze(e,t){return(await T.analyze(e,t??{})).result}},ye={id:`web-llm`,available:!1,analyze:()=>{throw Error(`web-llm adapter not implemented yet`)}},$=te(e=>({label:_(`rules.${e}.label`),summary:_(`rules.${e}.summary`)})),be={none:D(()=>_(`rules.allFiles`)),"rule-based":$,llm:ve,"web-llm":ye};function xe(e){return be[e]}export{me as a,ge as i,$ as n,ce as o,_e as r,le as s,xe as t};
@@ -1 +1 @@
1
- import{i as e,n as t}from"./i18n-CgsK6PK3.js";var n={llmNotConfigured:`analyze.notConfigured`,agentSessionLost:`analyze.agentSessionLost`,tokenRejected:`errors.tokenRejected`,commentTooLarge:`errors.tooLarge`};function r(e){return e in n}function i(i){return i instanceof e&&r(i.name)?Error(t(n[i.name],i.data??{})):i instanceof Error?i:Error(String(i))}function a(e){switch(e.kind){case`thinking`:return t(`analyze.thinking`,{step:e.step});case`reading`:{let n=e.paths.length>1?`, …`:``;return t(`analyze.reading`,{n:e.paths.length,first:`${e.paths[0]??``}${n}`},e.paths.length)}case`organizing`:return t(`analyze.organizing`)}}export{i as n,a as t};
1
+ import{i as e,n as t}from"./i18n-Cx8anq4V.js";var n={llmNotConfigured:`analyze.notConfigured`,agentSessionLost:`analyze.agentSessionLost`,tokenRejected:`errors.tokenRejected`,commentTooLarge:`errors.tooLarge`};function r(e){return e in n}function i(i){return i instanceof e&&r(i.name)?Error(t(n[i.name],i.data??{})):i instanceof Error?i:Error(String(i))}function a(e){switch(e.kind){case`thinking`:return t(`analyze.thinking`,{step:e.step});case`reading`:{let n=e.paths.length>1?`, …`:``;return t(`analyze.reading`,{n:e.paths.length,first:`${e.paths[0]??``}${n}`},e.paths.length)}case`organizing`:return t(`analyze.organizing`)}}export{i as n,a as t};
@@ -1 +1 @@
1
- var e={cancel:`Abbrechen`,save:`Speichern`,remove:`Entfernen`,retry:`Erneut versuchen`,close:`Schließen`,dismiss:`Ausblenden`,refresh:`Aktualisieren`,settings:`Einstellungen`,you:`du`,loading:`Wird geladen…`,send:`Senden`,stop:`Stopp`,clear:`Leeren`,reply:`Antworten`,submit:`Absenden`,abort:`Abbrechen`,rerun:`Erneut ausführen`,files:`{n} Datei | {n} Dateien`,subgroups:`{n} Untergruppe | {n} Untergruppen`,githubRepository:`GitHub-Repository`,avatar:`Avatar von {login}`},t={dropHint:`Loslassen, um deine diff- / .patch-Datei zu laden`,tagline:`Gruppiert geänderte Dateien, fasst das Wesentliche zusammen und lässt dich Bereich für Bereich reviewen. Alles läuft lokal in deinem Browser.`,documentTitle:`Pull-Request-Reviews klar und übersichtlich`,open:`Öffnen`,pasteHint:`Füge eine beliebige GitHub-Pull-Request-URL ein oder wähle unten eine Demo.`,recentlyViewed:`// zuletzt angesehen`,recentRepositories:`// zuletzt angesehene Repositories`,tryDemos:`// Demos ausprobieren`,demoBefore:`// vorher`,demoAfter:`// nachher`,moreFiles:`... {n} weitere Dateien`,demoTitle:`feat: KI-Analyse als PR-Kommentar teilen und geteilte Ergebnisse laden`,demoSummary:`Ein Reviewer mit API-Key postet seine Analyse in den PR; alle anderen laden sie ohne Token.`,demoGroups:{store:`Store für geteilte Analysen & Kommentarvertrag`,ui:`UI zum Teilen des Ergebnisses`,refactor:`Store-Refactoring: Ergebnis auf Root-Ebene`,tests:`Tests`,docs:`Doku & Abhängigkeiten`},uploadTitle:`Ein Diff ohne PR reviewen`,uploadDescription:`Lade ein Unified Diff hoch oder füge es ein, oder ziehe eine {diff}- / {patch}-Datei irgendwo auf diese Seite.`,uploadButton:`Diff hochladen`,embedTitle:`Eingebettet auf github.com nutzen`,embedDescription:`Mit installiertem {tampermonkey} oder {violentmonkey} erscheint auf jeder Pull-Request-Seite ein pulls.review-Panel.`,installUserscript:`Userscript installieren`,bookmarkletTitle:`Zwischen github.com und pulls.review wechseln`,bookmarkletDescription:`Keine Erweiterungen erlaubt? Zieh dieses Bookmarklet in deine Lesezeichenleiste, um den aktuellen Pull Request auf pulls.review zu öffnen, und zurück.`,bookmarkletDrag:`In die Lesezeichenleiste ziehen`,actionsTitle:`Automatische Analyse mit GitHub Actions einrichten`,actionsDescription:`Jeden Pull Request einmal in der CI analysieren und das Ergebnis als PR-Kommentar posten, damit nicht jeder Reviewer einen eigenen Modell-Key braucht.`,cliTitle:`Lokale Git-Änderungen mit der CLI prüfen`,cliDescription:`Prüfe Working Tree, einen Commit oder einen Branch vor dem Push, gruppiert und zusammengefasst wie ein PR.`,viewGuide:`Anleitung ansehen`},n={userscript:{title:`pulls.review eingebettet auf github.com nutzen`,intro:`Das Userscript fügt Pull-Request-Seiten auf github.com direkt eine pulls.review-Seitenleiste mit gruppierten Dateien und Zusammenfassungen hinzu, sodass du keinen Tab wechseln musst.`,manager:`Installiere einen Userscript-Manager: {tampermonkey} oder {violentmonkey}.`,install:`Installiere das pulls.review-Userscript. Dein Manager fragt nach einer Bestätigung.`,open:`Öffne einen beliebigen Pull Request auf github.com und klicke auf den Tab {tab} neben "Files changed".`,ai:`github.com blockiert die Anfragen, die die KI-Analyse braucht. Die Seitenleiste zeigt daher als PR-Kommentar geteilte Analysen. Öffne den PR auf pulls.review, um eine neue zu starten.`},bookmarklet:{title:`Zwischen github.com und pulls.review wechseln`,intro:`Ein Bookmarklet ist ein Lesezeichen, das ein kleines Skript ausführt. Es funktioniert in jedem Browser ohne Erweiterung und öffnet die aktuelle Seite auf der jeweils anderen Website.`,bar:`Blende deine Lesezeichenleiste ein, zum Beispiel mit {shortcut}.`,drag:`Zieh diesen Button in die Lesezeichenleiste:`,use:`Klicke auf einer Pull-Request-, Commit- oder Compare-Seite auf github.com auf das Lesezeichen, um sie auf pulls.review zu öffnen. Klicke erneut, um zurückzukehren.`},actions:{title:`Automatische Analyse mit GitHub Actions`,intro:`Lass die CI jeden Pull Request einmal analysieren, sobald er geöffnet oder aktualisiert wird. Alle, die den PR öffnen, hier oder in der Seitenleiste auf github.com, sehen sofort dieselbe gruppierte Zusammenfassung. Niemand braucht einen eigenen Modell-Key, und auch Pull Requests aus Forks bekommen sie.`,secret:`Lege deinen Modell-Key als Repository-Secret an, zum Beispiel {name}.`,workflow:`Füge diesen Workflow zum Repository hinzu:`,result:`Öffne oder aktualisiere einen Pull Request, um es auszuprobieren. Die Analyse kommt als Kommentar, und erneute Läufe auf einem unveränderten PR überspringen den Modellaufruf.`,options:`Der {provider} wird aus dem Key abgeleitet. Setze {provider}, {model} oder {locale}, um das zu überschreiben. Alle Optionen stehen in der {readme}.`},cli:{title:`Lokale Git-Änderungen mit der CLI prüfen`,intro:`Prüfe deine eigene Änderung, bevor es andere tun. Die CLI öffnet deinen Branch, einen Commit oder deine nicht committete Arbeit in pulls.review. So siehst du gruppiert und zusammengefasst, wie sich die Änderung liest, bevor du pushst oder einen PR öffnest.`,branch:`Führe das in einem Git-Repository aus, um deinen aktuellen Branch gegen den Standard-Branch zu prüfen:`,target:`Oder wähle, was du prüfen willst:`,browser:`Sie öffnet {url} im Browser und zeigt deine lokalen Änderungen an. Bestätige den Tab mit dem Einmalcode aus deinem Terminal. Dort kannst du auch andere Branches oder Commits zum Vergleichen auswählen.`}},r={title:`Diff laden`,description:`Füge ein Unified Diff / eine .patch-Datei ein oder ziehe sie hierher, um sie zu reviewen.`,pasteLabel:`Unified Diff / .patch einfügen`,chooseFile:`Oder eine .diff-/.patch-Datei wählen`,loadButton:`Diff laden`,parsing:`Diff wird geparst…`,parseFailed:`Dieses Diff konnte nicht geparst werden`,noDiff:`Kein Diff geladen`,noDiffHint:`Gehe zur Startseite und nutze den Upload-Button, um ein Diff einzufügen oder abzulegen.`,goHome:`Zur Startseite`},i={loading:`Pull Request wird geladen…`,loadFailed:`Dieser Pull Request konnte nicht geladen werden`,somethingWrong:`Etwas ist schiefgelaufen`,newCommits:`Dieser Pull Request hat seit dem Zwischenspeichern neue Commits.`,autoRefreshNextTime:`Nächstes Mal automatisch aktualisieren`,endOfDiff:`Du hast das Ende des Diffs erreicht.`,analyzeBy:`Analysieren mit`,rules:`Regeln`,ai:`KI`,by:`von`,sharedBy:`Geteilte KI-Analyse von`,sharedAnalysis:`Geteilte Analyse`,reviewedOf:`/ {total} reviewt`,openInSite:`In pulls.review öffnen`},a={reviewChanges:`Änderungen reviewen`,updateUserscript:`Userscript aktualisieren`},o={loading:`Pull Requests werden geladen…`,loadFailed:`Pull Requests konnten nicht geladen werden`,open:`{n} offen`,search:`Pull Requests filtern`,empty:`Es gibt keine offenen Pull Requests`,noMatches:`Keine Pull Requests passen zu deiner Suche`,searchingAll:`Alle {n} offenen Pull Requests werden durchsucht…`,loadingMore:`Mehr wird geladen…`,openedBy:`eröffnet {time} von {author}`,milestone:`Meilenstein`,comments:`{n} Kommentar | {n} Kommentare`,linkedIssues:`{n} verknüpftes Issue | {n} verknüpfte Issues`,assignedTo:`Zugewiesen an {login}`,groups:`{n} Gruppe | {n} Gruppen`,viewedHint:`In diesem Browser angesehen`,aiAvailable:`KI-Analyse verfügbar`,sort:{label:`Sortieren`,"recently-updated":`Zuletzt aktualisiert`,"least-recently-updated":`Am längsten nicht aktualisiert`,newest:`Neueste`,oldest:`Älteste`,"most-commented":`Meiste Kommentare`,"least-commented":`Wenigste Kommentare`},review:{approved:`Genehmigt`,changes_requested:`Änderungen angefordert`,review_required:`Review erforderlich`},checks:{success:`Alle Checks bestanden`,failure:`Einige Checks waren nicht erfolgreich`,pending:`Einige Checks sind noch nicht abgeschlossen`}},s={setupKeys:`API-Key einrichten`,analyzing:`Analysiere…`,failed:`Analyse fehlgeschlagen`,failedTitle:`KI-Analyse fehlgeschlagen: {message}`,reanalyze:`Erneut analysieren`,withAi:`Mit KI analysieren`,statusTitle:`KI-Analyse`,starting:`Startet…`,thinking:`Denke nach… (Schritt {step})`,reading:`Lese {n} Datei: {first} | Lese {n} Dateien: {first}`,organizing:`Gruppen werden geordnet…`,notConfigured:`Die KI-Analyse ist nicht konfiguriert: Füge in den Einstellungen ein Gateway-Token oder einen Anbieter-API-Key hinzu`,chatFailed:`Chat-Anfrage fehlgeschlagen`,agentSessionLost:`Der Agent hat diese Unterhaltung nicht mehr. Erneut analysieren, um zu chatten.`},c={button:`Ergebnis teilen`,updateButton:`Geteilten Kommentar aktualisieren`,sharing:`Wird geteilt…`,tooltip:`Diese Analyse als Kommentar im Pull Request veröffentlichen, damit andere sie laden können`,needsToken:`Zum Teilen ist ein GitHub-Token mit Schreibzugriff erforderlich`,failed:`Teilen fehlgeschlagen: {message}`,titleUpdate:`Deine geteilte Analyse aktualisieren`,titleShare:`Diese Analyse auf GitHub teilen`,willUpdate:`Dein bestehender {comment} zu diesem Pull Request wird als {user} mit deinem GitHub-Token aktualisiert.`,willPost:`Ein öffentlicher Kommentar wird als {user} mit deinem GitHub-Token zu diesem Pull Request veröffentlicht.`,commentLink:`Kommentar`,contains:`Der Kommentar enthält:`,containsLink:`einen Link, um dieses Review auf {site} zu öffnen`,containsJson:`die Gruppierung und Zusammenfassungen dieser KI-Analyse als JSON in einem eingeklappten Block`,excludes:`Deine Chat-Nachrichten, API-Key oder andere Daten aus deinen Einstellungen werden nicht enthalten sein.`,anyoneCanLoad:`Jeder, der den Pull Request ansieht, kann die geteilte Analyse laden.`,englishRecommended:`Wenn du an einem öffentlichen Projekt arbeitest, empfehlen wir, das Ergebnis auf Englisch zu teilen, damit es der Community nützt.`,share:`Teilen`,update:`Aktualisieren`,shareAnyway:`Trotzdem teilen`,updateAnyway:`Trotzdem aktualisieren`,loadReplaces:`Geteilte KI-Analyse laden? Sie ersetzt deine:`,available:`Geteilte KI-Analysen zu diesem Pull Request verfügbar:`,staleTitle:`Vor den neuesten Commits analysiert`,outdated:`(veraltet)`,inLanguage:`Analysiert auf {language}`,notShared:`{login} hat keine Analyse dieses Pull Requests geteilt.`},l={toggle:`Gruppe ein-/ausklappen`,filesReviewed:`{reviewed} / {total} Dateien reviewt`,subgroupsOf:`Untergruppen von`,hideSubgroups:`Untergruppen ausblenden`,showSubgroups:`Untergruppen anzeigen`,navTabs:`Gruppen als Tabs anzeigen`,navSidebar:`Gruppen als Seitenleiste anzeigen`,uncategorized:`Nicht kategorisiert`,uncategorizedSummary:`Dateien, die die aktuelle Analyse nicht abdeckt.`},u={critical:`Sorgfältig prüfen`},d={markReviewed:`Als reviewt markieren`,markFolderReviewed:`Alle Dateien in {name} als reviewt markieren`,changedSinceReviewed:`Diese Datei wurde bereits reviewt, hat sich aber in späteren Commits geändert`,resolved:`{n} gelöst`,binary:`Binärdatei`,binaryNotShown:`Binärdatei wird nicht angezeigt.`,tooLarge:`Diff zu groß zum Anzeigen.`,loadFailed:`Laden fehlgeschlagen`,loadFull:`Vollständigen Dateiinhalt laden`,expand:`Datei ausklappen`,collapse:`Datei einklappen`,noLongerInDiff:`Nicht mehr in diesem Diff`,removed:`entfernt`},f={title:`Review-Fortschritt`,markAll:`Alle als reviewt markieren`,reset:`Review-Status zurücksetzen`,invert:`Review-Status umkehren`,status:{reviewed:`Reviewt`,changed:`Seit dem Review geändert`,unreviewed:`Nicht reviewt`}},p={added:`hinzugefügt`,removed:`entfernt`,modified:`geändert`,renamed:`umbenannt`,copied:`kopiert`},m={open:`offen`,draft:`Entwurf`,closed:`geschlossen`,merged:`gemergt`},h={ui:`UI`,api:`API`,core:`Kern`,data:`Daten`,cli:`CLI`,security:`Sicherheit`,tests:`Tests`,docs:`Doku`,examples:`Beispiele`,deps:`Abhängigkeiten`,build:`Build`,scripts:`Skripte`,config:`Konfiguration`,i18n:`i18n`,assets:`Assets`,other:`Sonstiges`},g={addReview:`Review hinzufügen`,hideComments:`Review-Kommentare ausblenden`,showComments:`Review-Kommentare anzeigen`,reviews:`Reviews`,approved:`hat genehmigt`,changesRequested:`hat Änderungen angefordert`,commented:`hat kommentiert`,dismissed:`Review verworfen`,reviewChanges:`Änderungen reviewen`,includesPending:`Beim Absenden wird dein {n} ausstehender Kommentar einbezogen. | Beim Absenden werden deine {n} ausstehenden Kommentare einbezogen.`,summaryPlaceholder:`Zusammenfassung hinterlassen (optional beim Genehmigen)`,comment:`Kommentieren`,approve:`Genehmigen`,requestChanges:`Änderungen anfordern`,discard:`Review verwerfen`,leaveComment:`Kommentar hinterlassen`,addSingle:`Einzelnen Kommentar hinzufügen`,addToReview:`Review-Kommentar hinzufügen`,startReview:`Review beginnen`,pending:`Ausstehend`,editComment:`Kommentar bearbeiten`,deleteComment:`Kommentar löschen`,replyPlaceholder:`Antworten…`,resolve:`Lösen`},_={title:`Fragen zu diesem PR`,collapse:`Einklappen`,reanalyzeToEnable:`Erneut analysieren, um den Chat zu aktivieren`,thinking:`Denke nach…`,placeholder:`Frage zu diesem PR…`,updatedGrouping:`Gruppierung aktualisiert: {n} Gruppen`,readFiles:`{n} Datei gelesen | {n} Dateien gelesen`,updatingGrouping:`Gruppierung wird aktualisiert…`,submittingGrouping:`Gruppierung wird gesendet…`,requestFailed:`Anfrage fehlgeschlagen`,stopped:`gestoppt`},v={layout:`Diff-Layout`,wrapLines:`Zeilen umbrechen`,unified:`Einheitlich`,split:`Geteilt`,syntaxTheme:{label:`Syntax-Theme`,light:`Heller Modus`,dark:`Dunkler Modus`},cached:`Zwischengespeicherte Pull Requests`,autoRefresh:`Automatisch aktualisieren, wenn neue Commits gefunden werden`,language:`Sprache`,token:{label:`GitHub Personal Access Token`,optional:`Optional für öffentliche Repositories; erforderlich für private Repositories oder zum Reviewen.`,scopes:`Reviews benötigen den Scope {repo} (klassisches Token) oder {fineGrained} (feingranulares Token)`,storedLocally:`Nur in diesem Browser gespeichert.`,generate:`Eines auf GitHub erstellen →`,fineGrained:`Feingranulares Token (keine klassischen Scopes)`,updated:`Aktualisiert`,expires:`Läuft ab`,neverExpires:`Läuft nie ab`,change:`Token ändern`,checking:`Token wird geprüft…`,couldNotVerify:`Dieses Token konnte nicht überprüft werden.`},tabs:{appearance:`Darstellung`,behavior:`Verhalten`,github:`GitHub`,ai:`KI-Analyse`,notSetUp:`Noch nicht eingerichtet`},llm:{title:`KI-Analyse`,description:`Konfiguriere einen Modellanbieter, um KI-generierte Zusammenfassungen zu aktivieren. Nur in diesem Browser gespeichert und nur an den gewählten Anbieter gesendet.`,provider:`Anbieter`,baseUrl:`Basis-URL`,baseUrlDescription:`Ein beliebiger OpenAI-kompatibler Chat-Completions-Endpoint (OpenAI selbst, ein lokaler Server usw.).`,apiKey:`API-Key`,gatewayHint:`Ein {link}-Token, das mit einem einzigen Token alle unterstützten Anbieter erreicht.`,anthropicHint:`Ein {link}, direkt aus diesem Browser aufgerufen (ohne Gateway).`,anthropicLink:`Anthropic-API-Key`,openaiHint:`Der API-Key für den obigen Endpoint.`,createKey:`Eine auf {provider} erstellen →`,configured:`Konfiguriert`,changeKey:`Key ändern`,model:`Modell`,modelListFailed:`Die Modellliste konnte nicht geladen werden ({error}). Gib eine Modell-ID manuell ein.`,embedUnavailable:`KI-Funktionen sind im eingebetteten Modus nicht verfügbar`,embedReason:`Die strikte CSP von github.com blockiert die Anfragen, die KI-Funktionen hier benötigen. {link}, um sie zu nutzen.`,goToWebsite:`Zur Website`,agent:`Agent`,agentNeedsCli:"Lokale Agenten laufen in der pulls.review-CLI: starte sie in einem Repository mit `npx pulls.review` und wähle dort einen aus.",agentDetecting:`Suche nach Agent-CLIs…`,agentNone:`Keine Agent-CLI auf diesem Rechner gefunden.`,agentHint:`Ein auf diesem Rechner installierter Coding-Agent mit eigenem Konto: {claude} oder {opencode}. Er liest den Patch und das Repository, schreibt nie.`,agentPick:`Agent wählen…`},models:{placeholder:`Modell-ID`,loading:`Modelle werden geladen…`,search:`Modelle suchen…`,noMatch:`Kein passendes Modell`,useCustom:`„{id}“ verwenden`,free:`Kostenlos`,priceTitle:`Eingabe {input}/M · Ausgabe {output}/M Tokens`,agentDefault:`Standard des Agenten`}},y={allFiles:`Alle Dateien`,code:{label:`Code`,summary:`Änderungen am Quellcode.`},other:{label:`Sonstiges`,summary:`Andere Änderungen, die in keine bestehende Kategorie passen.`},docs:{label:`Doku`,summary:`Aktualisierungen der Dokumentation.`},tests:{label:`Tests`,summary:`Testabdeckung für die Änderung.`},config:{label:`Konfiguration`,summary:`Konfigurationsänderungen.`},deps:{label:`Abhängigkeiten`,summary:`Versionsänderungen von Abhängigkeiten.`},generated:{label:`Generiert`,summary:`Änderungen an generierten oder Build-Dateien.`}},b={tokenRequired:`Zum Schreiben in diesen Pull Request ist ein GitHub-Token erforderlich.`,diffNotLoaded:`Das Diff ist noch nicht fertig geladen.`,noViewer:`Der GitHub-Benutzer dieses Tokens konnte nicht ermittelt werden.`,tokenRejected:`GitHub hat dieses Token abgelehnt (401). Prüfe, ob es vollständig eingefügt wurde und nicht widerrufen ist.`,tooLarge:`Die Analyse ist zu groß, um als Kommentar geteilt zu werden ({n} Zeichen).`},x={loading:`Lokale Änderungen werden geladen…`,loadFailed:`Diese Änderungen konnten nicht geladen werden`,auth:{title:`Code aus dem Terminal eingeben`,hint:`pulls.review hat im Terminal, in dem es läuft, einen 6-stelligen Code ausgegeben.`,invalid:`Dieser Code hat nicht funktioniert. Prüfe das Terminal und versuche es erneut.`,submit:`Weiter`},picker:{tagline:`Reviewe lokale Branches, Bereiche und nicht committete Änderungen wie einen Pull Request: gruppiert, zusammengefasst, ein Bereich nach dem anderen.`,title:`Lokale Änderungen reviewen`,base:`Basis`,head:`Head`,compare:`Vergleichen`,shortcuts:`Schnellzugriff`,worktree:`Nicht committete Änderungen`,recentCommits:`Letzte Commits`,branches:`Branches`,against:`gegen {base}`,current:`Ausgecheckt`,github:`Oder ein GitHub-Pull-Request, -Vergleich oder -Commit`}},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};
1
+ var e={cancel:`Abbrechen`,save:`Speichern`,remove:`Entfernen`,retry:`Erneut versuchen`,close:`Schließen`,dismiss:`Ausblenden`,refresh:`Aktualisieren`,settings:`Einstellungen`,you:`du`,loading:`Wird geladen…`,send:`Senden`,stop:`Stopp`,clear:`Leeren`,reply:`Antworten`,submit:`Absenden`,abort:`Abbrechen`,rerun:`Erneut ausführen`,files:`{n} Datei | {n} Dateien`,subgroups:`{n} Untergruppe | {n} Untergruppen`,githubRepository:`GitHub-Repository`,avatar:`Avatar von {login}`},t={dropHint:`Loslassen, um deine diff- / .patch-Datei zu laden`,tagline:`Gruppiert geänderte Dateien, fasst das Wesentliche zusammen und lässt dich Bereich für Bereich reviewen. Alles läuft lokal in deinem Browser.`,documentTitle:`Pull-Request-Reviews klar und übersichtlich`,open:`Öffnen`,pasteHint:`Füge eine beliebige GitHub-Pull-Request-URL ein oder wähle unten eine Demo.`,recentlyViewed:`// zuletzt angesehen`,recentRepositories:`// zuletzt angesehene Repositories`,tryDemos:`// Demos ausprobieren`,demoBefore:`// vorher`,demoAfter:`// nachher`,moreFiles:`... {n} weitere Dateien`,demoTitle:`feat: KI-Analyse als PR-Kommentar teilen und geteilte Ergebnisse laden`,demoSummary:`Ein Reviewer mit API-Key postet seine Analyse in den PR; alle anderen laden sie ohne Token.`,demoGroups:{store:`Store für geteilte Analysen & Kommentarvertrag`,ui:`UI zum Teilen des Ergebnisses`,refactor:`Store-Refactoring: Ergebnis auf Root-Ebene`,tests:`Tests`,docs:`Doku & Abhängigkeiten`},uploadTitle:`Ein Diff ohne PR reviewen`,uploadDescription:`Lade ein Unified Diff hoch oder füge es ein, oder ziehe eine {diff}- / {patch}-Datei irgendwo auf diese Seite.`,uploadButton:`Diff hochladen`,embedTitle:`Eingebettet auf github.com nutzen`,embedDescription:`Mit installiertem {tampermonkey} oder {violentmonkey} erscheint auf jeder Pull-Request-Seite ein pulls.review-Panel.`,installUserscript:`Userscript installieren`,bookmarkletTitle:`Zwischen github.com und pulls.review wechseln`,bookmarkletDescription:`Keine Erweiterungen erlaubt? Zieh dieses Bookmarklet in deine Lesezeichenleiste, um den aktuellen Pull Request auf pulls.review zu öffnen, und zurück.`,bookmarkletDrag:`In die Lesezeichenleiste ziehen`,actionsTitle:`Automatische Analyse mit GitHub Actions einrichten`,actionsDescription:`Jeden Pull Request einmal in der CI analysieren und das Ergebnis als PR-Kommentar posten, damit nicht jeder Reviewer einen eigenen Modell-Key braucht.`,cliTitle:`Lokale Git-Änderungen mit der CLI prüfen`,cliDescription:`Prüfe Working Tree, einen Commit oder einen Branch vor dem Push, gruppiert und zusammengefasst wie ein PR.`,viewGuide:`Anleitung ansehen`},n={userscript:{title:`pulls.review eingebettet auf github.com nutzen`,intro:`Das Userscript fügt Pull-Request-Seiten auf github.com direkt eine pulls.review-Seitenleiste mit gruppierten Dateien und Zusammenfassungen hinzu, sodass du keinen Tab wechseln musst.`,manager:`Installiere einen Userscript-Manager: {tampermonkey} oder {violentmonkey}.`,install:`Installiere das pulls.review-Userscript. Dein Manager fragt nach einer Bestätigung.`,open:`Öffne einen beliebigen Pull Request auf github.com und klicke auf den Tab {tab} neben "Files changed".`,ai:`github.com blockiert die Anfragen, die die KI-Analyse braucht. Die Seitenleiste zeigt daher als PR-Kommentar geteilte Analysen. Öffne den PR auf pulls.review, um eine neue zu starten.`},bookmarklet:{title:`Zwischen github.com und pulls.review wechseln`,intro:`Ein Bookmarklet ist ein Lesezeichen, das ein kleines Skript ausführt. Es funktioniert in jedem Browser ohne Erweiterung und öffnet die aktuelle Seite auf der jeweils anderen Website.`,bar:`Blende deine Lesezeichenleiste ein, zum Beispiel mit {shortcut}.`,drag:`Zieh diesen Button in die Lesezeichenleiste:`,use:`Klicke auf einer Pull-Request-, Commit- oder Compare-Seite auf github.com auf das Lesezeichen, um sie auf pulls.review zu öffnen. Klicke erneut, um zurückzukehren.`},actions:{title:`Automatische Analyse mit GitHub Actions`,intro:`Lass die CI jeden Pull Request einmal analysieren, sobald er geöffnet oder aktualisiert wird. Alle, die den PR öffnen, hier oder in der Seitenleiste auf github.com, sehen sofort dieselbe gruppierte Zusammenfassung. Niemand braucht einen eigenen Modell-Key, und auch Pull Requests aus Forks bekommen sie.`,secret:`Lege deinen Modell-Key als Repository-Secret an, zum Beispiel {name}.`,workflow:`Füge diesen Workflow zum Repository hinzu:`,result:`Öffne oder aktualisiere einen Pull Request, um es auszuprobieren. Die Analyse kommt als Kommentar, und erneute Läufe auf einem unveränderten PR überspringen den Modellaufruf.`,options:`Der {provider} wird aus dem Key abgeleitet. Setze {provider}, {model} oder {locale}, um das zu überschreiben. Alle Optionen stehen in der {readme}.`},cli:{title:`Lokale Git-Änderungen mit der CLI prüfen`,intro:`Prüfe deine eigene Änderung, bevor es andere tun. Die CLI öffnet deinen Branch, einen Commit oder deine nicht committete Arbeit in pulls.review. So siehst du gruppiert und zusammengefasst, wie sich die Änderung liest, bevor du pushst oder einen PR öffnest.`,branch:`Führe das in einem Git-Repository aus, um deinen aktuellen Branch gegen den Standard-Branch zu prüfen:`,target:`Oder wähle, was du prüfen willst:`,browser:`Sie öffnet {url} im Browser und zeigt deine lokalen Änderungen an. Bestätige den Tab mit dem Einmalcode aus deinem Terminal. Dort kannst du auch andere Branches oder Commits zum Vergleichen auswählen.`}},r={title:`Diff laden`,description:`Füge ein Unified Diff / eine .patch-Datei ein oder ziehe sie hierher, um sie zu reviewen.`,pasteLabel:`Unified Diff / .patch einfügen`,chooseFile:`Oder eine .diff-/.patch-Datei wählen`,loadButton:`Diff laden`,parsing:`Diff wird geparst…`,parseFailed:`Dieses Diff konnte nicht geparst werden`,noDiff:`Kein Diff geladen`,noDiffHint:`Gehe zur Startseite und nutze den Upload-Button, um ein Diff einzufügen oder abzulegen.`,goHome:`Zur Startseite`},i={loading:`Pull Request wird geladen…`,loadFailed:`Dieser Pull Request konnte nicht geladen werden`,somethingWrong:`Etwas ist schiefgelaufen`,newCommits:`Dieser Pull Request hat seit dem Zwischenspeichern neue Commits.`,autoRefreshNextTime:`Nächstes Mal automatisch aktualisieren`,endOfDiff:`Du hast das Ende des Diffs erreicht.`,analyzeBy:`Analysieren mit`,rules:`Regeln`,ai:`KI`,by:`von`,sharedBy:`Geteilte KI-Analyse von`,sharedAnalysis:`Geteilte Analyse`,reviewedOf:`/ {total} reviewt`,openInSite:`In pulls.review öffnen`},a={reviewChanges:`Änderungen reviewen`,updateUserscript:`Userscript aktualisieren`},o={loading:`Pull Requests werden geladen…`,loadFailed:`Pull Requests konnten nicht geladen werden`,open:`{n} offen`,search:`Pull Requests filtern`,empty:`Es gibt keine offenen Pull Requests`,noMatches:`Keine Pull Requests passen zu deiner Suche`,searchingAll:`Alle {n} offenen Pull Requests werden durchsucht…`,loadingMore:`Mehr wird geladen…`,openedBy:`eröffnet {time} von {author}`,milestone:`Meilenstein`,comments:`{n} Kommentar | {n} Kommentare`,linkedIssues:`{n} verknüpftes Issue | {n} verknüpfte Issues`,assignedTo:`Zugewiesen an {login}`,groups:`{n} Gruppe | {n} Gruppen`,viewedHint:`In diesem Browser angesehen`,aiAvailable:`KI-Analyse verfügbar`,sort:{label:`Sortieren`,"recently-updated":`Zuletzt aktualisiert`,"least-recently-updated":`Am längsten nicht aktualisiert`,newest:`Neueste`,oldest:`Älteste`,"most-commented":`Meiste Kommentare`,"least-commented":`Wenigste Kommentare`},review:{approved:`Genehmigt`,changes_requested:`Änderungen angefordert`,review_required:`Review erforderlich`},checks:{success:`Alle Checks bestanden`,failure:`Einige Checks waren nicht erfolgreich`,pending:`Einige Checks sind noch nicht abgeschlossen`}},s={setupKeys:`API-Key einrichten`,analyzing:`Analysiere…`,failed:`Analyse fehlgeschlagen`,failedTitle:`KI-Analyse fehlgeschlagen: {message}`,reanalyze:`Erneut analysieren`,withAi:`Mit KI analysieren`,statusTitle:`KI-Analyse`,starting:`Startet…`,thinking:`Denke nach… (Schritt {step})`,reading:`Lese {n} Datei: {first} | Lese {n} Dateien: {first}`,organizing:`Gruppen werden geordnet…`,notConfigured:`Die KI-Analyse ist nicht konfiguriert: Füge in den Einstellungen ein Gateway-Token oder einen Anbieter-API-Key hinzu`,chatFailed:`Chat-Anfrage fehlgeschlagen`,agentSessionLost:`Der Agent hat diese Unterhaltung nicht mehr. Erneut analysieren, um zu chatten.`},c={button:`Ergebnis teilen`,updateButton:`Geteilten Kommentar aktualisieren`,sharing:`Wird geteilt…`,tooltip:`Diese Analyse als Kommentar im Pull Request veröffentlichen, damit andere sie laden können`,needsToken:`Zum Teilen ist ein GitHub-Token mit Schreibzugriff erforderlich`,failed:`Teilen fehlgeschlagen: {message}`,titleUpdate:`Deine geteilte Analyse aktualisieren`,titleShare:`Diese Analyse auf GitHub teilen`,willUpdate:`Dein bestehender {comment} zu diesem Pull Request wird als {user} mit deinem GitHub-Token aktualisiert.`,willPost:`Ein öffentlicher Kommentar wird als {user} mit deinem GitHub-Token zu diesem Pull Request veröffentlicht.`,commentLink:`Kommentar`,contains:`Der Kommentar enthält:`,containsLink:`einen Link, um dieses Review auf {site} zu öffnen`,containsJson:`die Gruppierung und Zusammenfassungen dieser KI-Analyse als JSON in einem eingeklappten Block`,excludes:`Deine Chat-Nachrichten, API-Key oder andere Daten aus deinen Einstellungen werden nicht enthalten sein.`,anyoneCanLoad:`Jeder, der den Pull Request ansieht, kann die geteilte Analyse laden.`,englishRecommended:`Wenn du an einem öffentlichen Projekt arbeitest, empfehlen wir, das Ergebnis auf Englisch zu teilen, damit es der Community nützt.`,share:`Teilen`,update:`Aktualisieren`,shareAnyway:`Trotzdem teilen`,updateAnyway:`Trotzdem aktualisieren`,loadReplaces:`Geteilte KI-Analyse laden? Sie ersetzt deine:`,available:`Geteilte KI-Analysen zu diesem Pull Request verfügbar:`,staleTitle:`Vor den neuesten Commits analysiert`,outdated:`(veraltet)`,inLanguage:`Analysiert auf {language}`,notShared:`{login} hat keine Analyse dieses Pull Requests geteilt.`},l={toggle:`Gruppe ein-/ausklappen`,filesReviewed:`{reviewed} / {total} Dateien reviewt`,subgroupsOf:`Untergruppen von`,hideSubgroups:`Untergruppen ausblenden`,showSubgroups:`Untergruppen anzeigen`,navTabs:`Gruppen als Tabs anzeigen`,navSidebar:`Gruppen als Seitenleiste anzeigen`,uncategorized:`Nicht kategorisiert`,uncategorizedSummary:`Dateien, die die aktuelle Analyse nicht abdeckt.`},u={critical:`Sorgfältig prüfen`},d={layoutTree:`Dateien als Baum anzeigen`,layoutList:`Dateien als Liste anzeigen`,markReviewed:`Als reviewt markieren`,markFolderReviewed:`Alle Dateien in {name} als reviewt markieren`,changedSinceReviewed:`Diese Datei wurde bereits reviewt, hat sich aber in späteren Commits geändert`,resolved:`{n} gelöst`,binary:`Binärdatei`,binaryNotShown:`Binärdatei wird nicht angezeigt.`,tooLarge:`Diff zu groß zum Anzeigen.`,loadFailed:`Laden fehlgeschlagen`,loadFull:`Vollständigen Dateiinhalt laden`,expand:`Datei ausklappen`,collapse:`Datei einklappen`,collapseMenu:`Dateien ein-/ausklappen`,expandAll:`Alle Dateien ausklappen`,collapseAll:`Alle Dateien einklappen`,collapseReviewed:`Reviewte Dateien einklappen`,noLongerInDiff:`Nicht mehr in diesem Diff`,removed:`entfernt`},f={title:`Review-Fortschritt`,markAll:`Alle als reviewt markieren`,reset:`Review-Status zurücksetzen`,invert:`Review-Status umkehren`,status:{reviewed:`Reviewt`,changed:`Seit dem Review geändert`,unreviewed:`Nicht reviewt`}},p={added:`hinzugefügt`,removed:`entfernt`,modified:`geändert`,renamed:`umbenannt`,copied:`kopiert`},m={open:`offen`,draft:`Entwurf`,closed:`geschlossen`,merged:`gemergt`},h={ui:`UI`,api:`API`,core:`Kern`,data:`Daten`,cli:`CLI`,security:`Sicherheit`,tests:`Tests`,docs:`Doku`,examples:`Beispiele`,deps:`Abhängigkeiten`,build:`Build`,scripts:`Skripte`,config:`Konfiguration`,i18n:`i18n`,assets:`Assets`,other:`Sonstiges`},g={addReview:`Review hinzufügen`,hideComments:`Review-Kommentare ausblenden`,showComments:`Review-Kommentare anzeigen`,reviews:`Reviews`,approved:`hat genehmigt`,changesRequested:`hat Änderungen angefordert`,commented:`hat kommentiert`,dismissed:`Review verworfen`,reviewChanges:`Änderungen reviewen`,includesPending:`Beim Absenden wird dein {n} ausstehender Kommentar einbezogen. | Beim Absenden werden deine {n} ausstehenden Kommentare einbezogen.`,summaryPlaceholder:`Zusammenfassung hinterlassen (optional beim Genehmigen)`,comment:`Kommentieren`,approve:`Genehmigen`,requestChanges:`Änderungen anfordern`,discard:`Review verwerfen`,leaveComment:`Kommentar hinterlassen`,addSingle:`Einzelnen Kommentar hinzufügen`,addToReview:`Review-Kommentar hinzufügen`,startReview:`Review beginnen`,pending:`Ausstehend`,editComment:`Kommentar bearbeiten`,deleteComment:`Kommentar löschen`,replyPlaceholder:`Antworten…`,resolve:`Lösen`},_={title:`Fragen zu diesem PR`,collapse:`Einklappen`,reanalyzeToEnable:`Erneut analysieren, um den Chat zu aktivieren`,thinking:`Denke nach…`,placeholder:`Frage zu diesem PR…`,updatedGrouping:`Gruppierung aktualisiert: {n} Gruppen`,readFiles:`{n} Datei gelesen | {n} Dateien gelesen`,updatingGrouping:`Gruppierung wird aktualisiert…`,submittingGrouping:`Gruppierung wird gesendet…`,requestFailed:`Anfrage fehlgeschlagen`,stopped:`gestoppt`},v={layout:`Diff-Layout`,wrapLines:`Zeilen umbrechen`,unified:`Einheitlich`,split:`Geteilt`,syntaxTheme:{label:`Syntax-Theme`,light:`Heller Modus`,dark:`Dunkler Modus`},cached:`Zwischengespeicherte Pull Requests`,autoRefresh:`Automatisch aktualisieren, wenn neue Commits gefunden werden`,language:`Sprache`,token:{label:`GitHub Personal Access Token`,optional:`Optional für öffentliche Repositories; erforderlich für private Repositories oder zum Reviewen.`,scopes:`Reviews benötigen den Scope {repo} (klassisches Token) oder {fineGrained} (feingranulares Token)`,storedLocally:`Nur in diesem Browser gespeichert.`,generate:`Eines auf GitHub erstellen →`,fineGrained:`Feingranulares Token (keine klassischen Scopes)`,updated:`Aktualisiert`,expires:`Läuft ab`,neverExpires:`Läuft nie ab`,change:`Token ändern`,checking:`Token wird geprüft…`,couldNotVerify:`Dieses Token konnte nicht überprüft werden.`},tabs:{appearance:`Darstellung`,behavior:`Verhalten`,github:`GitHub`,ai:`KI-Analyse`,notSetUp:`Noch nicht eingerichtet`},llm:{title:`KI-Analyse`,description:`Konfiguriere einen Modellanbieter, um KI-generierte Zusammenfassungen zu aktivieren. Nur in diesem Browser gespeichert und nur an den gewählten Anbieter gesendet.`,provider:`Anbieter`,baseUrl:`Basis-URL`,baseUrlDescription:`Ein beliebiger OpenAI-kompatibler Chat-Completions-Endpoint (OpenAI selbst, ein lokaler Server usw.).`,apiKey:`API-Key`,gatewayHint:`Ein {link}-Token, das mit einem einzigen Token alle unterstützten Anbieter erreicht.`,anthropicHint:`Ein {link}, direkt aus diesem Browser aufgerufen (ohne Gateway).`,anthropicLink:`Anthropic-API-Key`,openaiHint:`Der API-Key für den obigen Endpoint.`,createKey:`Eine auf {provider} erstellen →`,configured:`Konfiguriert`,changeKey:`Key ändern`,model:`Modell`,modelListFailed:`Die Modellliste konnte nicht geladen werden ({error}). Gib eine Modell-ID manuell ein.`,embedUnavailable:`KI-Funktionen sind im eingebetteten Modus nicht verfügbar`,embedReason:`Die strikte CSP von github.com blockiert die Anfragen, die KI-Funktionen hier benötigen. {link}, um sie zu nutzen.`,goToWebsite:`Zur Website`,agent:`Agent`,agentNeedsCli:"Lokale Agenten laufen in der pulls.review-CLI: starte sie in einem Repository mit `npx pulls.review` und wähle dort einen aus.",agentDetecting:`Suche nach Agent-CLIs…`,agentNone:`Keine Agent-CLI auf diesem Rechner gefunden.`,agentHint:`Ein auf diesem Rechner installierter Coding-Agent mit eigenem Konto: {claude} oder {opencode}. Er liest den Patch und das Repository, schreibt nie.`,agentPick:`Agent wählen…`},models:{placeholder:`Modell-ID`,loading:`Modelle werden geladen…`,search:`Modelle suchen…`,noMatch:`Kein passendes Modell`,useCustom:`„{id}“ verwenden`,free:`Kostenlos`,priceTitle:`Eingabe {input}/M · Ausgabe {output}/M Tokens`,agentDefault:`Standard des Agenten`}},y={allFiles:`Alle Dateien`,code:{label:`Code`,summary:`Änderungen am Quellcode.`},other:{label:`Sonstiges`,summary:`Andere Änderungen, die in keine bestehende Kategorie passen.`},docs:{label:`Doku`,summary:`Aktualisierungen der Dokumentation.`},tests:{label:`Tests`,summary:`Testabdeckung für die Änderung.`},config:{label:`Konfiguration`,summary:`Konfigurationsänderungen.`},deps:{label:`Abhängigkeiten`,summary:`Versionsänderungen von Abhängigkeiten.`},generated:{label:`Generiert`,summary:`Änderungen an generierten oder Build-Dateien.`}},b={tokenRequired:`Zum Schreiben in diesen Pull Request ist ein GitHub-Token erforderlich.`,diffNotLoaded:`Das Diff ist noch nicht fertig geladen.`,noViewer:`Der GitHub-Benutzer dieses Tokens konnte nicht ermittelt werden.`,tokenRejected:`GitHub hat dieses Token abgelehnt (401). Prüfe, ob es vollständig eingefügt wurde und nicht widerrufen ist.`,tooLarge:`Die Analyse ist zu groß, um als Kommentar geteilt zu werden ({n} Zeichen).`},x={loading:`Lokale Änderungen werden geladen…`,loadFailed:`Diese Änderungen konnten nicht geladen werden`,auth:{title:`Code aus dem Terminal eingeben`,hint:`pulls.review hat im Terminal, in dem es läuft, einen 6-stelligen Code ausgegeben.`,invalid:`Dieser Code hat nicht funktioniert. Prüfe das Terminal und versuche es erneut.`,submit:`Weiter`},picker:{tagline:`Reviewe lokale Branches, Bereiche und nicht committete Änderungen wie einen Pull Request: gruppiert, zusammengefasst, ein Bereich nach dem anderen.`,title:`Lokale Änderungen reviewen`,base:`Basis`,head:`Head`,compare:`Vergleichen`,shortcuts:`Schnellzugriff`,worktree:`Nicht committete Änderungen`,recentCommits:`Letzte Commits`,branches:`Branches`,against:`gegen {base}`,current:`Ausgecheckt`,github:`Oder ein GitHub-Pull-Request, -Vergleich oder -Commit`}},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};
@@ -1 +1 @@
1
- import{a as e}from"./i18n-CgsK6PK3.js";function t(e,t,n,r){return{id:e,name:e,api:t,provider:n,baseUrl:r,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16e3}}function n(e){switch(e.provider){case`local-agent`:return;case`gateway`:return e.gatewayToken?{model:t(e.gatewayModel,`anthropic-messages`,`vercel-ai-gateway`,`https://ai-gateway.vercel.sh`),apiKey:e.gatewayToken}:void 0;case`anthropic`:return e.anthropicApiKey?{model:t(e.anthropicModel,`anthropic-messages`,`anthropic`,`https://api.anthropic.com`),apiKey:e.anthropicApiKey}:void 0;case`openai-compatible`:return e.openaiApiKey?{model:t(e.openaiModel,`openai-completions`,`openai-compatible`,e.openaiBaseUrl),apiKey:e.openaiApiKey}:void 0}}var r=e({codes:{llmNotConfigured:{why:`No LLM provider is configured.`,fix:`Set an API key or gateway token for the selected provider.`},agentSessionLost:{why:`The agent no longer has this conversation.`,fix:`Re-analyze to chat.`},tokenRejected:{why:`GitHub rejected the token.`,fix:`Check that the token is valid and has not expired.`},writeForbidden:{why:e=>e.reason,fix:`Use a token with the "repo" scope (classic token) or "Pull requests: Read and write" permission (fine-grained token).`},commentTooLarge:{why:e=>`The analysis is too large to post as a comment (${e.n} characters).`,data:e=>({n:e.n})}}});export{n,r as t};
1
+ import{a as e}from"./i18n-Cx8anq4V.js";function t(e,t,n,r){return{id:e,name:e,api:t,provider:n,baseUrl:r,reasoning:!1,input:[`text`],cost:{input:0,output:0,cacheRead:0,cacheWrite:0},contextWindow:128e3,maxTokens:16e3}}function n(e){switch(e.provider){case`local-agent`:return;case`gateway`:return e.gatewayToken?{model:t(e.gatewayModel,`anthropic-messages`,`vercel-ai-gateway`,`https://ai-gateway.vercel.sh`),apiKey:e.gatewayToken}:void 0;case`anthropic`:return e.anthropicApiKey?{model:t(e.anthropicModel,`anthropic-messages`,`anthropic`,`https://api.anthropic.com`),apiKey:e.anthropicApiKey}:void 0;case`openai-compatible`:return e.openaiApiKey?{model:t(e.openaiModel,`openai-completions`,`openai-compatible`,e.openaiBaseUrl),apiKey:e.openaiApiKey}:void 0}}var r=e({codes:{llmNotConfigured:{why:`No LLM provider is configured.`,fix:`Set an API key or gateway token for the selected provider.`},agentSessionLost:{why:`The agent no longer has this conversation.`,fix:`Re-analyze to chat.`},tokenRejected:{why:`GitHub rejected the token.`,fix:`Check that the token is valid and has not expired.`},writeForbidden:{why:e=>e.reason,fix:`Use a token with the "repo" scope (classic token) or "Pull requests: Read and write" permission (fine-grained token).`},commentTooLarge:{why:e=>`The analysis is too large to post as a comment (${e.n} characters).`,data:e=>({n:e.n})}}});export{n,r as t};
@@ -1 +1 @@
1
- import{$ as e,Bt as t,Dr as n,K as r,Pt as i,Q as a,bt as o,er as s,tt as c,yn as l}from"./vue-i18n-CGHHpbTP.js";import{a as u,i as d}from"./analyze-CTcNbJBk.js";import{t as f}from"./useDocumentTitle-ByFCALbG.js";import{n as p,t as m}from"./diffs-store-CzecLzBW.js";import{d as h}from"./index-DP4XBqUv.js";import{t as g}from"./ActionButton-V4dY2wPS.js";import{a as _,i as v,r as y}from"./pages-Tf2MYsp8.js";import{r as b}from"./rpc-backends-CLzNPIWN.js";var x=c({__name:`diff`,props:{page:{}},setup(c){let x=c,S=o(_),{cache:C,llm:w}=h(),T=m(b(S,v(x.page,S)),{cache:C,llm:w});return f(()=>T.diff?.title??y(x.page)),i(()=>T.load()),(i,o)=>(t(),r(`main`,null,[e(p,{store:s(T)},{loading:l(()=>[e(d,{text:i.$t(`local.loading`)},null,8,[`text`])]),error:l(({error:t,retry:r})=>[e(u,{icon:`i-ph:warning-duotone`,title:i.$t(`local.loadFailed`)},{hint:l(()=>[a(n(t.message),1)]),actions:l(()=>[e(g,{variant:`primary`,onClick:r},{default:l(()=>[a(n(i.$t(`common.retry`)),1)]),_:1},8,[`onClick`])]),_:2},1032,[`title`])]),_:1},8,[`store`])]))}});export{x as default};
1
+ import{$ as e,Bt as t,Dr as n,K as r,Pt as i,Q as a,bt as o,er as s,tt as c,yn as l}from"./vue-i18n-CGHHpbTP.js";import{a as u,i as d}from"./analyze-BgWIIbl3.js";import{t as f}from"./useDocumentTitle-BQJCa6Lm.js";import{n as p,t as m}from"./diffs-store-D3BzIMVi.js";import{d as h}from"./index-KDAJXf4E.js";import{t as g}from"./ActionButton-V4dY2wPS.js";import{a as _,i as v,r as y}from"./pages-ByEfDjFa.js";import{r as b}from"./rpc-backends-DYtuJyeF.js";var x=c({__name:`diff`,props:{page:{}},setup(c){let x=c,S=o(_),{cache:C,llm:w}=h(),T=m(b(S,v(x.page,S)),{cache:C,llm:w});return f(()=>T.diff?.title??y(x.page)),i(()=>T.load()),(i,o)=>(t(),r(`main`,null,[e(p,{store:s(T)},{loading:l(()=>[e(d,{text:i.$t(`local.loading`)},null,8,[`text`])]),error:l(({error:t,retry:r})=>[e(u,{icon:`i-ph:warning-duotone`,title:i.$t(`local.loadFailed`)},{hint:l(()=>[a(n(t.message),1)]),actions:l(()=>[e(g,{variant:`primary`,onClick:r},{default:l(()=>[a(n(i.$t(`common.retry`)),1)]),_:1},8,[`onClick`])]),_:2},1032,[`title`])]),_:1},8,[`store`])]))}});export{x as default};
@@ -1,4 +1,4 @@
1
- import{$ as e,Bt as t,Dr as n,K as r,Pt as i,Q as a,er as o,tt as s,yn as c}from"./vue-i18n-CGHHpbTP.js";import{t as l}from"./diagnostics-CrG4-M7r.js";import{n as u}from"./source-Dk1PNoY7.js";import{a as d,i as ee}from"./analyze-CTcNbJBk.js";import{dt as f,lt as p,t as m,ut as h,v as te}from"./useDocumentTitle-ByFCALbG.js";import{a as g,i as _,n as v,o as y,r as b,s as x,t as S}from"./diffs-store-CzecLzBW.js";import{n as C,r as ne}from"./patch-parser-k3Vbbmi0.js";import{d as re,o as ie}from"./index-DP4XBqUv.js";import{t as ae}from"./ActionButton-V4dY2wPS.js";async function w(e,t,n,r){return(await e.request(`/repos/${t}/${n}/pulls/${r}`)).json()}function oe(e,t,n,r){return e.paginate(`/repos/${t}/${n}/pulls/${r}/files`)}function T(e,t,n,r){return e.paginate(`/repos/${t}/${n}/pulls/${r}/commits`)}function E(e){return e.split(`/`).map(encodeURIComponent).join(`/`)}async function D(e,t,n,r,i){return(await e.request(`/repos/${t}/${n}/compare/${E(r)}...${E(i)}`)).json()}async function O(e,t,n,r){return(await e.request(`/repos/${t}/${n}/commits/${E(r)}`)).json()}async function k(e,t,n,r){return(await(await e.request(`/repos/${t}/${n}/commits/${E(r)}`,{accept:`application/vnd.github.sha`})).text()).trim()}async function A(e,t){try{return await(await e.request(t,{accept:`application/vnd.github.diff`})).text()}catch(e){if(e instanceof h&&e.status===406)return;throw e}}async function j(e,t,n,r,i){let a=r.split(`/`).map(encodeURIComponent).join(`/`);try{return await(await e.request(`/repos/${t}/${n}/contents/${a}?ref=${encodeURIComponent(i)}`,{accept:`application/vnd.github.raw`})).text()}catch(e){if(e instanceof h&&e.status===404)return;throw e}}var M={added:`added`,removed:`removed`,modified:`modified`,renamed:`renamed`,copied:`copied`,changed:`modified`,unchanged:`modified`};async function N(e,t,n){let r=e.previous_filename??e.filename,[i,a]=await Promise.all([e.status===`added`||!t.base?void 0:n(r,t.base),e.status===`removed`?void 0:n(e.filename,t.head)]);return C(x(r,e.filename,i??``,a??``).split(`
1
+ import{$ as e,Bt as t,Dr as n,K as r,Pt as i,Q as a,er as o,tt as s,yn as c}from"./vue-i18n-CGHHpbTP.js";import{t as l}from"./diagnostics-wATZy2jc.js";import{n as u}from"./source-CvnvCX42.js";import{a as d,i as ee}from"./analyze-BgWIIbl3.js";import{dt as f,lt as p,t as m,ut as h,v as te}from"./useDocumentTitle-BQJCa6Lm.js";import{a as g,i as _,n as v,o as y,r as b,s as x,t as S}from"./diffs-store-D3BzIMVi.js";import{n as C,r as ne}from"./patch-parser-k3Vbbmi0.js";import{d as re,o as ie}from"./index-KDAJXf4E.js";import{t as ae}from"./ActionButton-V4dY2wPS.js";async function w(e,t,n,r){return(await e.request(`/repos/${t}/${n}/pulls/${r}`)).json()}function oe(e,t,n,r){return e.paginate(`/repos/${t}/${n}/pulls/${r}/files`)}function T(e,t,n,r){return e.paginate(`/repos/${t}/${n}/pulls/${r}/commits`)}function E(e){return e.split(`/`).map(encodeURIComponent).join(`/`)}async function D(e,t,n,r,i){return(await e.request(`/repos/${t}/${n}/compare/${E(r)}...${E(i)}`)).json()}async function O(e,t,n,r){return(await e.request(`/repos/${t}/${n}/commits/${E(r)}`)).json()}async function k(e,t,n,r){return(await(await e.request(`/repos/${t}/${n}/commits/${E(r)}`,{accept:`application/vnd.github.sha`})).text()).trim()}async function A(e,t){try{return await(await e.request(t,{accept:`application/vnd.github.diff`})).text()}catch(e){if(e instanceof h&&e.status===406)return;throw e}}async function j(e,t,n,r,i){let a=r.split(`/`).map(encodeURIComponent).join(`/`);try{return await(await e.request(`/repos/${t}/${n}/contents/${a}?ref=${encodeURIComponent(i)}`,{accept:`application/vnd.github.raw`})).text()}catch(e){if(e instanceof h&&e.status===404)return;throw e}}var M={added:`added`,removed:`removed`,modified:`modified`,renamed:`renamed`,copied:`copied`,changed:`modified`,unchanged:`modified`};async function N(e,t,n){let r=e.previous_filename??e.filename,[i,a]=await Promise.all([e.status===`added`||!t.base?void 0:n(r,t.base),e.status===`removed`?void 0:n(e.filename,t.head)]);return C(x(r,e.filename,i??``,a??``).split(`
2
2
  `))}async function P(e,t,n,r){let i=M[e.status]??`modified`;if(e.patch!==void 0){let t=e.patch.split(`
3
3
  `),n=C(t),{additions:r,deletions:a}={additions:e.additions,deletions:e.deletions};return{path:e.filename,previousPath:e.previous_filename,status:i,additions:r,deletions:a,isBinary:!1,sha:e.sha,hunks:n}}let a=await n(),o=(a===void 0?[]:await ne(a)).find(t=>t.path===e.filename||!!e.previous_filename&&t.previousPath===e.previous_filename);return o?{...o,status:i,previousPath:e.previous_filename,sha:e.sha,additions:e.additions,deletions:e.deletions}:a===void 0&&e.additions+e.deletions>0?{path:e.filename,previousPath:e.previous_filename,status:i,additions:e.additions,deletions:e.deletions,isBinary:!1,sha:e.sha,hunks:await N(e,t,r)}:{path:e.filename,previousPath:e.previous_filename,status:i,additions:e.additions,deletions:e.deletions,isBinary:!0,sha:e.sha,hunks:[]}}async function F(e,t,{loadDiffText:n,loadFileContent:r}){let i,a=()=>i??=n();return Promise.all(e.map(e=>P(e,t,a,r)))}function I(e){return e.merged?`merged`:e.state===`closed`?`closed`:e.draft?`draft`:`open`}async function L(e,t,n,r,i,a,o){return{ref:{kind:`github-pr`,owner:e,repo:t,number:n},title:r.title,label:`#${n}`,author:r.user?{name:r.user.login,avatarUrl:r.user.avatar_url}:void 0,description:r.body??``,url:r.html_url,base:{sha:r.base.sha,ref:r.base.ref},head:{sha:r.head.sha,ref:r.head.ref},createdAt:r.created_at,updatedAt:r.updated_at,pullRequest:{state:I(r)},commits:a.map(({sha:e,commit:t})=>({sha:e,message:t.message})),files:await F(i,{base:r.base.sha,head:r.head.sha},o)}}function R(e,t){return(e??[]).map(e=>({...e,sha:e.sha??`${t}:${e.filename}`}))}function z(e,t,n,r){return{loadDiffText:()=>A(e,r),loadFileContent:(r,i)=>j(e,t,n,r,i)}}function B({owner:e,repo:t,base:n,head:r},i){let a=f(i),o=u({kind:`github-compare`,owner:e,repo:t,base:n,head:r});return{key:async()=>o,async fetch(){let i=await D(a,e,t,n,r),o=i.merge_base_commit.sha,s=i.commits.at(-1)?.sha??o,c=`/repos/${e}/${t}/compare/${o}...${s}`;return{ref:{kind:`github-compare`,owner:e,repo:t,base:n,head:r},title:`${n}...${r}`,url:i.html_url,base:{sha:o,ref:n},head:{sha:s,ref:r},commits:i.commits.map(({sha:e,commit:t})=>({sha:e,message:t.message})),files:await F(R(i.files,s),{base:o,head:s},z(a,e,t,c))}},fingerprint:()=>k(a,e,t,r),loadFile:(n,r)=>j(a,e,t,n,r),auth:`github-token`}}function V({owner:e,repo:t,sha:n},r){let i=f(r),a=u({kind:`github-commit`,owner:e,repo:t,sha:n});return{key:async()=>a,async fetch(){let r=await O(i,e,t,n),[a=``,...o]=r.commit.message.split(`
4
4
  `),s=r.parents[0]?.sha;return{ref:{kind:`github-commit`,owner:e,repo:t,sha:n},title:a,label:r.sha.slice(0,7),description:o.join(`