repr-cli 0.2.16__py3-none-any.whl → 0.2.18__py3-none-any.whl

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 (49) hide show
  1. repr/__init__.py +1 -1
  2. repr/api.py +363 -62
  3. repr/auth.py +47 -38
  4. repr/change_synthesis.py +478 -0
  5. repr/cli.py +4306 -364
  6. repr/config.py +119 -11
  7. repr/configure.py +889 -0
  8. repr/cron.py +419 -0
  9. repr/dashboard/__init__.py +9 -0
  10. repr/dashboard/build.py +126 -0
  11. repr/dashboard/dist/assets/index-B-aCjaCw.js +384 -0
  12. repr/dashboard/dist/assets/index-BYFVbEev.css +1 -0
  13. repr/dashboard/dist/assets/index-BrrhyJFO.css +1 -0
  14. repr/dashboard/dist/assets/index-C7Gzxc4f.js +384 -0
  15. repr/dashboard/dist/assets/index-CQdMXo6g.js +391 -0
  16. repr/dashboard/dist/assets/index-CcEg74ts.js +270 -0
  17. repr/dashboard/dist/assets/index-Cerc-iA_.js +377 -0
  18. repr/dashboard/dist/assets/index-CjVcBW2L.css +1 -0
  19. repr/dashboard/dist/assets/index-Cs8ofFGd.js +384 -0
  20. repr/dashboard/dist/assets/index-Dfl3mR5E.js +377 -0
  21. repr/dashboard/dist/assets/index-DwN0SeMc.css +1 -0
  22. repr/dashboard/dist/assets/index-YFch_e0S.js +384 -0
  23. repr/dashboard/dist/favicon.svg +4 -0
  24. repr/dashboard/dist/index.html +14 -0
  25. repr/dashboard/manager.py +234 -0
  26. repr/dashboard/server.py +1489 -0
  27. repr/db.py +980 -0
  28. repr/hooks.py +3 -2
  29. repr/loaders/__init__.py +22 -0
  30. repr/loaders/base.py +156 -0
  31. repr/loaders/claude_code.py +287 -0
  32. repr/loaders/clawdbot.py +313 -0
  33. repr/loaders/gemini_antigravity.py +381 -0
  34. repr/mcp_server.py +1196 -0
  35. repr/models.py +503 -0
  36. repr/openai_analysis.py +25 -0
  37. repr/session_extractor.py +481 -0
  38. repr/storage.py +328 -0
  39. repr/story_synthesis.py +1296 -0
  40. repr/templates.py +68 -4
  41. repr/timeline.py +710 -0
  42. repr/tools.py +17 -8
  43. {repr_cli-0.2.16.dist-info → repr_cli-0.2.18.dist-info}/METADATA +48 -10
  44. repr_cli-0.2.18.dist-info/RECORD +58 -0
  45. {repr_cli-0.2.16.dist-info → repr_cli-0.2.18.dist-info}/WHEEL +1 -1
  46. {repr_cli-0.2.16.dist-info → repr_cli-0.2.18.dist-info}/entry_points.txt +1 -0
  47. repr_cli-0.2.16.dist-info/RECORD +0 -26
  48. {repr_cli-0.2.16.dist-info → repr_cli-0.2.18.dist-info}/licenses/LICENSE +0 -0
  49. {repr_cli-0.2.16.dist-info → repr_cli-0.2.18.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,270 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function s(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=s(i);fetch(i.href,o)}})();/**
2
+ * @vue/shared v3.5.27
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function Os(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const G={},it=[],Ie=()=>{},Gn=()=>!1,Qt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),js=e=>e.startsWith("onUpdate:"),te=Object.assign,Hs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},lo=Object.prototype.hasOwnProperty,U=(e,t)=>lo.call(e,t),H=Array.isArray,yt=e=>Xt(e)==="[object Map]",ao=e=>Xt(e)==="[object Set]",j=e=>typeof e=="function",X=e=>typeof e=="string",dt=e=>typeof e=="symbol",Q=e=>e!==null&&typeof e=="object",qn=e=>(Q(e)||j(e))&&j(e.then)&&j(e.catch),co=Object.prototype.toString,Xt=e=>co.call(e),uo=e=>Xt(e).slice(8,-1),fo=e=>Xt(e)==="[object Object]",Ls=e=>X(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bt=Os(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},po=/-\w/g,Ke=Zt(e=>e.replace(po,t=>t.slice(1).toUpperCase())),ho=/\B([A-Z])/g,Ze=Zt(e=>e.replace(ho,"-$1").toLowerCase()),zn=Zt(e=>e.charAt(0).toUpperCase()+e.slice(1)),fs=Zt(e=>e?`on${zn(e)}`:""),Ve=(e,t)=>!Object.is(e,t),ps=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Yn=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},go=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let fn;const es=()=>fn||(fn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ns(e){if(H(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],i=X(n)?bo(n):Ns(n);if(i)for(const o in i)t[o]=i[o]}return t}else if(X(e)||Q(e))return e}const mo=/;(?![^(]*\))/g,vo=/:([^]+)/,yo=/\/\*[^]*?\*\//g;function bo(e){const t={};return e.replace(yo,"").split(mo).forEach(s=>{if(s){const n=s.split(vo);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Us(e){let t="";if(X(e))t=e;else if(H(e))for(let s=0;s<e.length;s++){const n=Us(e[s]);n&&(t+=n+" ")}else if(Q(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const wo="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",xo=Os(wo);function Qn(e){return!!e||e===""}/**
6
+ * @vue/reactivity v3.5.27
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let ce;class Xn{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ce,!t&&ce&&(this.index=(ce.scopes||(ce.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=ce;try{return ce=this,t()}finally{ce=s}}}on(){++this._on===1&&(this.prevScope=ce,ce=this)}off(){this._on>0&&--this._on===0&&(ce=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const i=this.parent.scopes.pop();i&&i!==this&&(this.parent.scopes[this.index]=i,i.index=this.index)}this.parent=void 0}}}function _o(e){return new Xn(e)}function So(){return ce}let J;const hs=new WeakSet;class Zn{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ce&&ce.active&&ce.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,hs.has(this)&&(hs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||ti(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,pn(this),si(this);const t=J,s=ve;J=this,ve=!0;try{return this.fn()}finally{ni(this),J=t,ve=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ws(t);this.deps=this.depsTail=void 0,pn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?hs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Es(this)&&this.run()}get dirty(){return Es(this)}}let ei=0,wt,xt;function ti(e,t=!1){if(e.flags|=8,t){e.next=xt,xt=e;return}e.next=wt,wt=e}function Vs(){ei++}function Ks(){if(--ei>0)return;if(xt){let t=xt;for(xt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;wt;){let t=wt;for(wt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function si(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ni(e){let t,s=e.depsTail,n=s;for(;n;){const i=n.prevDep;n.version===-1?(n===s&&(s=i),Ws(n),Eo(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}e.deps=t,e.depsTail=s}function Es(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ii(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ii(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===It)||(e.globalVersion=It,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Es(e))))return;e.flags|=2;const t=e.dep,s=J,n=ve;J=e,ve=!0;try{si(e);const i=e.fn(e._value);(t.version===0||Ve(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{J=s,ve=n,ni(e),e.flags&=-3}}function Ws(e,t=!1){const{dep:s,prevSub:n,nextSub:i}=e;if(n&&(n.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let o=s.computed.deps;o;o=o.nextDep)Ws(o,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Eo(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let ve=!0;const oi=[];function Fe(){oi.push(ve),ve=!1}function De(){const e=oi.pop();ve=e===void 0?!0:e}function pn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=J;J=void 0;try{t()}finally{J=s}}}let It=0;class Co{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Js{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!J||!ve||J===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==J)s=this.activeLink=new Co(J,this),J.deps?(s.prevDep=J.depsTail,J.depsTail.nextDep=s,J.depsTail=s):J.deps=J.depsTail=s,ri(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=J.depsTail,s.nextDep=void 0,J.depsTail.nextDep=s,J.depsTail=s,J.deps===s&&(J.deps=n)}return s}trigger(t){this.version++,It++,this.notify(t)}notify(t){Vs();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Ks()}}}function ri(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)ri(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Cs=new WeakMap,Qe=Symbol(""),ks=Symbol(""),$t=Symbol("");function Z(e,t,s){if(ve&&J){let n=Cs.get(e);n||Cs.set(e,n=new Map);let i=n.get(s);i||(n.set(s,i=new Js),i.map=n,i.key=s),i.track()}}function Me(e,t,s,n,i,o){const l=Cs.get(e);if(!l){It++;return}const a=d=>{d&&d.trigger()};if(Vs(),t==="clear")l.forEach(a);else{const d=H(e),p=d&&Ls(s);if(d&&s==="length"){const f=Number(n);l.forEach((w,T)=>{(T==="length"||T===$t||!dt(T)&&T>=f)&&a(w)})}else switch((s!==void 0||l.has(void 0))&&a(l.get(s)),p&&a(l.get($t)),t){case"add":d?p&&a(l.get("length")):(a(l.get(Qe)),yt(e)&&a(l.get(ks)));break;case"delete":d||(a(l.get(Qe)),yt(e)&&a(l.get(ks)));break;case"set":yt(e)&&a(l.get(Qe));break}}Ks()}function st(e){const t=N(e);return t===e?t:(Z(t,"iterate",$t),ye(e)?t:t.map(Pe))}function Gs(e){return Z(e=N(e),"iterate",$t),e}function He(e,t){return We(e)?Bt(ot(e)?Pe(t):t):Pe(t)}const ko={__proto__:null,[Symbol.iterator](){return gs(this,Symbol.iterator,e=>He(this,e))},concat(...e){return st(this).concat(...e.map(t=>H(t)?st(t):t))},entries(){return gs(this,"entries",e=>(e[1]=He(this,e[1]),e))},every(e,t){return Re(this,"every",e,t,void 0,arguments)},filter(e,t){return Re(this,"filter",e,t,s=>s.map(n=>He(this,n)),arguments)},find(e,t){return Re(this,"find",e,t,s=>He(this,s),arguments)},findIndex(e,t){return Re(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Re(this,"findLast",e,t,s=>He(this,s),arguments)},findLastIndex(e,t){return Re(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Re(this,"forEach",e,t,void 0,arguments)},includes(...e){return ms(this,"includes",e)},indexOf(...e){return ms(this,"indexOf",e)},join(e){return st(this).join(e)},lastIndexOf(...e){return ms(this,"lastIndexOf",e)},map(e,t){return Re(this,"map",e,t,void 0,arguments)},pop(){return gt(this,"pop")},push(...e){return gt(this,"push",e)},reduce(e,...t){return hn(this,"reduce",e,t)},reduceRight(e,...t){return hn(this,"reduceRight",e,t)},shift(){return gt(this,"shift")},some(e,t){return Re(this,"some",e,t,void 0,arguments)},splice(...e){return gt(this,"splice",e)},toReversed(){return st(this).toReversed()},toSorted(e){return st(this).toSorted(e)},toSpliced(...e){return st(this).toSpliced(...e)},unshift(...e){return gt(this,"unshift",e)},values(){return gs(this,"values",e=>He(this,e))}};function gs(e,t,s){const n=Gs(e),i=n[t]();return n!==e&&!ye(e)&&(i._next=i.next,i.next=()=>{const o=i._next();return o.done||(o.value=s(o.value)),o}),i}const To=Array.prototype;function Re(e,t,s,n,i,o){const l=Gs(e),a=l!==e&&!ye(e),d=l[t];if(d!==To[t]){const w=d.apply(e,o);return a?Pe(w):w}let p=s;l!==e&&(a?p=function(w,T){return s.call(this,He(e,w),T,e)}:s.length>2&&(p=function(w,T){return s.call(this,w,T,e)}));const f=d.call(l,p,n);return a&&i?i(f):f}function hn(e,t,s,n){const i=Gs(e);let o=s;return i!==e&&(ye(e)?s.length>3&&(o=function(l,a,d){return s.call(this,l,a,d,e)}):o=function(l,a,d){return s.call(this,l,He(e,a),d,e)}),i[t](o,...n)}function ms(e,t,s){const n=N(e);Z(n,"iterate",$t);const i=n[t](...s);return(i===-1||i===!1)&&Qs(s[0])?(s[0]=N(s[0]),n[t](...s)):i}function gt(e,t,s=[]){Fe(),Vs();const n=N(e)[t].apply(e,s);return Ks(),De(),n}const Io=Os("__proto__,__v_isRef,__isVue"),li=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(dt));function $o(e){dt(e)||(e=String(e));const t=N(this);return Z(t,"has",e),t.hasOwnProperty(e)}class ai{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const i=this._isReadonly,o=this._isShallow;if(s==="__v_isReactive")return!i;if(s==="__v_isReadonly")return i;if(s==="__v_isShallow")return o;if(s==="__v_raw")return n===(i?o?Ho:fi:o?ui:di).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const l=H(t);if(!i){let d;if(l&&(d=ko[s]))return d;if(s==="hasOwnProperty")return $o}const a=Reflect.get(t,s,ee(t)?t:n);if((dt(s)?li.has(s):Io(s))||(i||Z(t,"get",s),o))return a;if(ee(a)){const d=l&&Ls(s)?a:a.value;return i&&Q(d)?Is(d):d}return Q(a)?i?Is(a):zs(a):a}}class ci extends ai{constructor(t=!1){super(!1,t)}set(t,s,n,i){let o=t[s];const l=H(t)&&Ls(s);if(!this._isShallow){const p=We(o);if(!ye(n)&&!We(n)&&(o=N(o),n=N(n)),!l&&ee(o)&&!ee(n))return p||(o.value=n),!0}const a=l?Number(s)<t.length:U(t,s),d=Reflect.set(t,s,n,ee(t)?t:i);return t===N(i)&&(a?Ve(n,o)&&Me(t,"set",s,n):Me(t,"add",s,n)),d}deleteProperty(t,s){const n=U(t,s);t[s];const i=Reflect.deleteProperty(t,s);return i&&n&&Me(t,"delete",s,void 0),i}has(t,s){const n=Reflect.has(t,s);return(!dt(s)||!li.has(s))&&Z(t,"has",s),n}ownKeys(t){return Z(t,"iterate",H(t)?"length":Qe),Reflect.ownKeys(t)}}class Bo extends ai{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Ro=new ci,Ao=new Bo,Mo=new ci(!0);const Ts=e=>e,jt=e=>Reflect.getPrototypeOf(e);function Fo(e,t,s){return function(...n){const i=this.__v_raw,o=N(i),l=yt(o),a=e==="entries"||e===Symbol.iterator&&l,d=e==="keys"&&l,p=i[e](...n),f=s?Ts:t?Bt:Pe;return!t&&Z(o,"iterate",d?ks:Qe),te(Object.create(p),{next(){const{value:w,done:T}=p.next();return T?{value:w,done:T}:{value:a?[f(w[0]),f(w[1])]:f(w),done:T}}})}}function Ht(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Do(e,t){const s={get(i){const o=this.__v_raw,l=N(o),a=N(i);e||(Ve(i,a)&&Z(l,"get",i),Z(l,"get",a));const{has:d}=jt(l),p=t?Ts:e?Bt:Pe;if(d.call(l,i))return p(o.get(i));if(d.call(l,a))return p(o.get(a));o!==l&&o.get(i)},get size(){const i=this.__v_raw;return!e&&Z(N(i),"iterate",Qe),i.size},has(i){const o=this.__v_raw,l=N(o),a=N(i);return e||(Ve(i,a)&&Z(l,"has",i),Z(l,"has",a)),i===a?o.has(i):o.has(i)||o.has(a)},forEach(i,o){const l=this,a=l.__v_raw,d=N(a),p=t?Ts:e?Bt:Pe;return!e&&Z(d,"iterate",Qe),a.forEach((f,w)=>i.call(o,p(f),p(w),l))}};return te(s,e?{add:Ht("add"),set:Ht("set"),delete:Ht("delete"),clear:Ht("clear")}:{add(i){!t&&!ye(i)&&!We(i)&&(i=N(i));const o=N(this);return jt(o).has.call(o,i)||(o.add(i),Me(o,"add",i,i)),this},set(i,o){!t&&!ye(o)&&!We(o)&&(o=N(o));const l=N(this),{has:a,get:d}=jt(l);let p=a.call(l,i);p||(i=N(i),p=a.call(l,i));const f=d.call(l,i);return l.set(i,o),p?Ve(o,f)&&Me(l,"set",i,o):Me(l,"add",i,o),this},delete(i){const o=N(this),{has:l,get:a}=jt(o);let d=l.call(o,i);d||(i=N(i),d=l.call(o,i)),a&&a.call(o,i);const p=o.delete(i);return d&&Me(o,"delete",i,void 0),p},clear(){const i=N(this),o=i.size!==0,l=i.clear();return o&&Me(i,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(i=>{s[i]=Fo(i,e,t)}),s}function qs(e,t){const s=Do(e,t);return(n,i,o)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?n:Reflect.get(U(s,i)&&i in n?s:n,i,o)}const Po={get:qs(!1,!1)},Oo={get:qs(!1,!0)},jo={get:qs(!0,!1)};const di=new WeakMap,ui=new WeakMap,fi=new WeakMap,Ho=new WeakMap;function Lo(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function No(e){return e.__v_skip||!Object.isExtensible(e)?0:Lo(uo(e))}function zs(e){return We(e)?e:Ys(e,!1,Ro,Po,di)}function Uo(e){return Ys(e,!1,Mo,Oo,ui)}function Is(e){return Ys(e,!0,Ao,jo,fi)}function Ys(e,t,s,n,i){if(!Q(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=No(e);if(o===0)return e;const l=i.get(e);if(l)return l;const a=new Proxy(e,o===2?n:s);return i.set(e,a),a}function ot(e){return We(e)?ot(e.__v_raw):!!(e&&e.__v_isReactive)}function We(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function Qs(e){return e?!!e.__v_raw:!1}function N(e){const t=e&&e.__v_raw;return t?N(t):e}function pi(e){return!U(e,"__v_skip")&&Object.isExtensible(e)&&Yn(e,"__v_skip",!0),e}const Pe=e=>Q(e)?zs(e):e,Bt=e=>Q(e)?Is(e):e;function ee(e){return e?e.__v_isRef===!0:!1}function Vo(e){return Ko(e,!1)}function Ko(e,t){return ee(e)?e:new Wo(e,t)}class Wo{constructor(t,s){this.dep=new Js,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:N(t),this._value=s?t:Pe(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||ye(t)||We(t);t=n?t:N(t),Ve(t,s)&&(this._rawValue=t,this._value=n?t:Pe(t),this.dep.trigger())}}function Jo(e){return ee(e)?e.value:e}const Go={get:(e,t,s)=>t==="__v_raw"?e:Jo(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const i=e[t];return ee(i)&&!ee(s)?(i.value=s,!0):Reflect.set(e,t,s,n)}};function hi(e){return ot(e)?e:new Proxy(e,Go)}class qo{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Js(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=It-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&J!==this)return ti(this,!0),!0}get value(){const t=this.dep.track();return ii(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function zo(e,t,s=!1){let n,i;return j(e)?n=e:(n=e.get,i=e.set),new qo(n,i,s)}const Lt={},Kt=new WeakMap;let Ye;function Yo(e,t=!1,s=Ye){if(s){let n=Kt.get(s);n||Kt.set(s,n=[]),n.push(e)}}function Qo(e,t,s=G){const{immediate:n,deep:i,once:o,scheduler:l,augmentJob:a,call:d}=s,p=k=>i?k:ye(k)||i===!1||i===0?Ue(k,1):Ue(k);let f,w,T,g,h=!1,m=!1;if(ee(e)?(w=()=>e.value,h=ye(e)):ot(e)?(w=()=>p(e),h=!0):H(e)?(m=!0,h=e.some(k=>ot(k)||ye(k)),w=()=>e.map(k=>{if(ee(k))return k.value;if(ot(k))return p(k);if(j(k))return d?d(k,2):k()})):j(e)?t?w=d?()=>d(e,2):e:w=()=>{if(T){Fe();try{T()}finally{De()}}const k=Ye;Ye=f;try{return d?d(e,3,[g]):e(g)}finally{Ye=k}}:w=Ie,t&&i){const k=w,O=i===!0?1/0:i;w=()=>Ue(k(),O)}const x=So(),y=()=>{f.stop(),x&&x.active&&Hs(x.effects,f)};if(o&&t){const k=t;t=(...O)=>{k(...O),y()}}let v=m?new Array(e.length).fill(Lt):Lt;const A=k=>{if(!(!(f.flags&1)||!f.dirty&&!k))if(t){const O=f.run();if(i||h||(m?O.some((q,P)=>Ve(q,v[P])):Ve(O,v))){T&&T();const q=Ye;Ye=f;try{const P=[O,v===Lt?void 0:m&&v[0]===Lt?[]:v,g];v=O,d?d(t,3,P):t(...P)}finally{Ye=q}}}else f.run()};return a&&a(A),f=new Zn(w),f.scheduler=l?()=>l(A,!1):A,g=k=>Yo(k,!1,f),T=f.onStop=()=>{const k=Kt.get(f);if(k){if(d)d(k,4);else for(const O of k)O();Kt.delete(f)}},t?n?A(!0):v=f.run():l?l(A.bind(null,!0),!0):f.run(),y.pause=f.pause.bind(f),y.resume=f.resume.bind(f),y.stop=y,y}function Ue(e,t=1/0,s){if(t<=0||!Q(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ee(e))Ue(e.value,t,s);else if(H(e))for(let n=0;n<e.length;n++)Ue(e[n],t,s);else if(ao(e)||yt(e))e.forEach(n=>{Ue(n,t,s)});else if(fo(e)){for(const n in e)Ue(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Ue(e[n],t,s)}return e}/**
10
+ * @vue/runtime-core v3.5.27
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function Ft(e,t,s,n){try{return n?e(...n):e()}catch(i){ts(i,t,s)}}function $e(e,t,s,n){if(j(e)){const i=Ft(e,t,s,n);return i&&qn(i)&&i.catch(o=>{ts(o,t,s)}),i}if(H(e)){const i=[];for(let o=0;o<e.length;o++)i.push($e(e[o],t,s,n));return i}}function ts(e,t,s,n=!0){const i=t?t.vnode:null,{errorHandler:o,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||G;if(t){let a=t.parent;const d=t.proxy,p=`https://vuejs.org/error-reference/#runtime-${s}`;for(;a;){const f=a.ec;if(f){for(let w=0;w<f.length;w++)if(f[w](e,d,p)===!1)return}a=a.parent}if(o){Fe(),Ft(o,null,10,[e,d,p]),De();return}}Xo(e,s,i,n,l)}function Xo(e,t,s,n=!0,i=!1){if(i)throw e;console.error(e)}const oe=[];let Ce=-1;const rt=[];let Le=null,nt=0;const gi=Promise.resolve();let Wt=null;function Zo(e){const t=Wt||gi;return e?t.then(this?e.bind(this):e):t}function er(e){let t=Ce+1,s=oe.length;for(;t<s;){const n=t+s>>>1,i=oe[n],o=Rt(i);o<e||o===e&&i.flags&2?t=n+1:s=n}return t}function Xs(e){if(!(e.flags&1)){const t=Rt(e),s=oe[oe.length-1];!s||!(e.flags&2)&&t>=Rt(s)?oe.push(e):oe.splice(er(t),0,e),e.flags|=1,mi()}}function mi(){Wt||(Wt=gi.then(yi))}function tr(e){H(e)?rt.push(...e):Le&&e.id===-1?Le.splice(nt+1,0,e):e.flags&1||(rt.push(e),e.flags|=1),mi()}function gn(e,t,s=Ce+1){for(;s<oe.length;s++){const n=oe[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;oe.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function vi(e){if(rt.length){const t=[...new Set(rt)].sort((s,n)=>Rt(s)-Rt(n));if(rt.length=0,Le){Le.push(...t);return}for(Le=t,nt=0;nt<Le.length;nt++){const s=Le[nt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}Le=null,nt=0}}const Rt=e=>e.id==null?e.flags&2?-1:1/0:e.id;function yi(e){try{for(Ce=0;Ce<oe.length;Ce++){const t=oe[Ce];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ft(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Ce<oe.length;Ce++){const t=oe[Ce];t&&(t.flags&=-2)}Ce=-1,oe.length=0,vi(),Wt=null,(oe.length||rt.length)&&yi()}}let Te=null,bi=null;function Jt(e){const t=Te;return Te=e,bi=e&&e.type.__scopeId||null,t}function sr(e,t=Te,s){if(!t||e._n)return e;const n=(...i)=>{n._d&&Cn(-1);const o=Jt(t);let l;try{l=e(...i)}finally{Jt(o),n._d&&Cn(1)}return l};return n._n=!0,n._c=!0,n._d=!0,n}function qe(e,t,s,n){const i=e.dirs,o=t&&t.dirs;for(let l=0;l<i.length;l++){const a=i[l];o&&(a.oldValue=o[l].value);let d=a.dir[n];d&&(Fe(),$e(d,s,8,[e.el,a,e,t]),De())}}function nr(e,t){if(re){let s=re.provides;const n=re.parent&&re.parent.provides;n===s&&(s=re.provides=Object.create(n)),s[e]=t}}function Nt(e,t,s=!1){const n=il();if(n||lt){let i=lt?lt._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(i&&e in i)return i[e];if(arguments.length>1)return s&&j(t)?t.call(n&&n.proxy):t}}const ir=Symbol.for("v-scx"),or=()=>Nt(ir);function vs(e,t,s){return wi(e,t,s)}function wi(e,t,s=G){const{immediate:n,deep:i,flush:o,once:l}=s,a=te({},s),d=t&&n||!t&&o!=="post";let p;if(Mt){if(o==="sync"){const g=or();p=g.__watcherHandles||(g.__watcherHandles=[])}else if(!d){const g=()=>{};return g.stop=Ie,g.resume=Ie,g.pause=Ie,g}}const f=re;a.call=(g,h,m)=>$e(g,f,h,m);let w=!1;o==="post"?a.scheduler=g=>{ue(g,f&&f.suspense)}:o!=="sync"&&(w=!0,a.scheduler=(g,h)=>{h?g():Xs(g)}),a.augmentJob=g=>{t&&(g.flags|=4),w&&(g.flags|=2,f&&(g.id=f.uid,g.i=f))};const T=Qo(e,t,a);return Mt&&(p?p.push(T):d&&T()),T}function rr(e,t,s){const n=this.proxy,i=X(e)?e.includes(".")?xi(n,e):()=>n[e]:e.bind(n,n);let o;j(t)?o=t:(o=t.handler,s=t);const l=Dt(this),a=wi(i,o.bind(n),s);return l(),a}function xi(e,t){const s=t.split(".");return()=>{let n=e;for(let i=0;i<s.length&&n;i++)n=n[s[i]];return n}}const lr=Symbol("_vte"),ar=e=>e.__isTeleport,cr=Symbol("_leaveCb");function Zs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Zs(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function _i(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const Gt=new WeakMap;function _t(e,t,s,n,i=!1){if(H(e)){e.forEach((h,m)=>_t(h,t&&(H(t)?t[m]:t),s,n,i));return}if(St(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&_t(e,t,s,n.component.subTree);return}const o=n.shapeFlag&4?nn(n.component):n.el,l=i?null:o,{i:a,r:d}=e,p=t&&t.r,f=a.refs===G?a.refs={}:a.refs,w=a.setupState,T=N(w),g=w===G?Gn:h=>U(T,h);if(p!=null&&p!==d){if(mn(t),X(p))f[p]=null,g(p)&&(w[p]=null);else if(ee(p)){p.value=null;const h=t;h.k&&(f[h.k]=null)}}if(j(d))Ft(d,a,12,[l,f]);else{const h=X(d),m=ee(d);if(h||m){const x=()=>{if(e.f){const y=h?g(d)?w[d]:f[d]:d.value;if(i)H(y)&&Hs(y,o);else if(H(y))y.includes(o)||y.push(o);else if(h)f[d]=[o],g(d)&&(w[d]=f[d]);else{const v=[o];d.value=v,e.k&&(f[e.k]=v)}}else h?(f[d]=l,g(d)&&(w[d]=l)):m&&(d.value=l,e.k&&(f[e.k]=l))};if(l){const y=()=>{x(),Gt.delete(e)};y.id=-1,Gt.set(e,y),ue(y,s)}else mn(e),x()}}}function mn(e){const t=Gt.get(e);t&&(t.flags|=8,Gt.delete(e))}es().requestIdleCallback;es().cancelIdleCallback;const St=e=>!!e.type.__asyncLoader,Si=e=>e.type.__isKeepAlive;function dr(e,t){Ei(e,"a",t)}function ur(e,t){Ei(e,"da",t)}function Ei(e,t,s=re){const n=e.__wdc||(e.__wdc=()=>{let i=s;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(ss(t,n,s),s){let i=s.parent;for(;i&&i.parent;)Si(i.parent.vnode)&&fr(n,t,s,i),i=i.parent}}function fr(e,t,s,n){const i=ss(t,e,n,!0);ki(()=>{Hs(n[t],i)},s)}function ss(e,t,s=re,n=!1){if(s){const i=s[e]||(s[e]=[]),o=t.__weh||(t.__weh=(...l)=>{Fe();const a=Dt(s),d=$e(t,s,e,l);return a(),De(),d});return n?i.unshift(o):i.push(o),o}}const Oe=e=>(t,s=re)=>{(!Mt||e==="sp")&&ss(e,(...n)=>t(...n),s)},pr=Oe("bm"),Ci=Oe("m"),hr=Oe("bu"),gr=Oe("u"),mr=Oe("bum"),ki=Oe("um"),vr=Oe("sp"),yr=Oe("rtg"),br=Oe("rtc");function wr(e,t=re){ss("ec",e,t)}const xr=Symbol.for("v-ndc"),$s=e=>e?Wi(e)?nn(e):$s(e.parent):null,Et=te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>$s(e.parent),$root:e=>$s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ii(e),$forceUpdate:e=>e.f||(e.f=()=>{Xs(e.update)}),$nextTick:e=>e.n||(e.n=Zo.bind(e.proxy)),$watch:e=>rr.bind(e)}),ys=(e,t)=>e!==G&&!e.__isScriptSetup&&U(e,t),_r={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:i,props:o,accessCache:l,type:a,appContext:d}=e;if(t[0]!=="$"){const T=l[t];if(T!==void 0)switch(T){case 1:return n[t];case 2:return i[t];case 4:return s[t];case 3:return o[t]}else{if(ys(n,t))return l[t]=1,n[t];if(i!==G&&U(i,t))return l[t]=2,i[t];if(U(o,t))return l[t]=3,o[t];if(s!==G&&U(s,t))return l[t]=4,s[t];Bs&&(l[t]=0)}}const p=Et[t];let f,w;if(p)return t==="$attrs"&&Z(e.attrs,"get",""),p(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(s!==G&&U(s,t))return l[t]=4,s[t];if(w=d.config.globalProperties,U(w,t))return w[t]},set({_:e},t,s){const{data:n,setupState:i,ctx:o}=e;return ys(i,t)?(i[t]=s,!0):n!==G&&U(n,t)?(n[t]=s,!0):U(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:i,props:o,type:l}},a){let d;return!!(s[a]||e!==G&&a[0]!=="$"&&U(e,a)||ys(t,a)||U(o,a)||U(n,a)||U(Et,a)||U(i.config.globalProperties,a)||(d=l.__cssModules)&&d[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:U(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function vn(e){return H(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let Bs=!0;function Sr(e){const t=Ii(e),s=e.proxy,n=e.ctx;Bs=!1,t.beforeCreate&&yn(t.beforeCreate,e,"bc");const{data:i,computed:o,methods:l,watch:a,provide:d,inject:p,created:f,beforeMount:w,mounted:T,beforeUpdate:g,updated:h,activated:m,deactivated:x,beforeDestroy:y,beforeUnmount:v,destroyed:A,unmounted:k,render:O,renderTracked:q,renderTriggered:P,errorCaptured:Y,serverPrefetch:et,expose:be,inheritAttrs:je,components:Be,directives:tt,filters:ds}=t;if(p&&Er(p,n,null),l)for(const z in l){const K=l[z];j(K)&&(n[z]=K.bind(s))}if(i){const z=i.call(s,s);Q(z)&&(e.data=zs(z))}if(Bs=!0,o)for(const z in o){const K=o[z],Je=j(K)?K.bind(s,s):j(K.get)?K.get.bind(s,s):Ie,Pt=!j(K)&&j(K.set)?K.set.bind(s):Ie,Ge=dl({get:Je,set:Pt});Object.defineProperty(n,z,{enumerable:!0,configurable:!0,get:()=>Ge.value,set:we=>Ge.value=we})}if(a)for(const z in a)Ti(a[z],n,s,z);if(d){const z=j(d)?d.call(s):d;Reflect.ownKeys(z).forEach(K=>{nr(K,z[K])})}f&&yn(f,e,"c");function se(z,K){H(K)?K.forEach(Je=>z(Je.bind(s))):K&&z(K.bind(s))}if(se(pr,w),se(Ci,T),se(hr,g),se(gr,h),se(dr,m),se(ur,x),se(wr,Y),se(br,q),se(yr,P),se(mr,v),se(ki,k),se(vr,et),H(be))if(be.length){const z=e.exposed||(e.exposed={});be.forEach(K=>{Object.defineProperty(z,K,{get:()=>s[K],set:Je=>s[K]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});O&&e.render===Ie&&(e.render=O),je!=null&&(e.inheritAttrs=je),Be&&(e.components=Be),tt&&(e.directives=tt),et&&_i(e)}function Er(e,t,s=Ie){H(e)&&(e=Rs(e));for(const n in e){const i=e[n];let o;Q(i)?"default"in i?o=Nt(i.from||n,i.default,!0):o=Nt(i.from||n):o=Nt(i),ee(o)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[n]=o}}function yn(e,t,s){$e(H(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Ti(e,t,s,n){let i=n.includes(".")?xi(s,n):()=>s[n];if(X(e)){const o=t[e];j(o)&&vs(i,o)}else if(j(e))vs(i,e.bind(s));else if(Q(e))if(H(e))e.forEach(o=>Ti(o,t,s,n));else{const o=j(e.handler)?e.handler.bind(s):t[e.handler];j(o)&&vs(i,o,e)}}function Ii(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:i,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,a=o.get(t);let d;return a?d=a:!i.length&&!s&&!n?d=t:(d={},i.length&&i.forEach(p=>qt(d,p,l,!0)),qt(d,t,l)),Q(t)&&o.set(t,d),d}function qt(e,t,s,n=!1){const{mixins:i,extends:o}=t;o&&qt(e,o,s,!0),i&&i.forEach(l=>qt(e,l,s,!0));for(const l in t)if(!(n&&l==="expose")){const a=Cr[l]||s&&s[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const Cr={data:bn,props:wn,emits:wn,methods:vt,computed:vt,beforeCreate:ne,created:ne,beforeMount:ne,mounted:ne,beforeUpdate:ne,updated:ne,beforeDestroy:ne,beforeUnmount:ne,destroyed:ne,unmounted:ne,activated:ne,deactivated:ne,errorCaptured:ne,serverPrefetch:ne,components:vt,directives:vt,watch:Tr,provide:bn,inject:kr};function bn(e,t){return t?e?function(){return te(j(e)?e.call(this,this):e,j(t)?t.call(this,this):t)}:t:e}function kr(e,t){return vt(Rs(e),Rs(t))}function Rs(e){if(H(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function ne(e,t){return e?[...new Set([].concat(e,t))]:t}function vt(e,t){return e?te(Object.create(null),e,t):t}function wn(e,t){return e?H(e)&&H(t)?[...new Set([...e,...t])]:te(Object.create(null),vn(e),vn(t??{})):t}function Tr(e,t){if(!e)return t;if(!t)return e;const s=te(Object.create(null),e);for(const n in t)s[n]=ne(e[n],t[n]);return s}function $i(){return{app:null,config:{isNativeTag:Gn,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Ir=0;function $r(e,t){return function(n,i=null){j(n)||(n=te({},n)),i!=null&&!Q(i)&&(i=null);const o=$i(),l=new WeakSet,a=[];let d=!1;const p=o.app={_uid:Ir++,_component:n,_props:i,_container:null,_context:o,_instance:null,version:ul,get config(){return o.config},set config(f){},use(f,...w){return l.has(f)||(f&&j(f.install)?(l.add(f),f.install(p,...w)):j(f)&&(l.add(f),f(p,...w))),p},mixin(f){return o.mixins.includes(f)||o.mixins.push(f),p},component(f,w){return w?(o.components[f]=w,p):o.components[f]},directive(f,w){return w?(o.directives[f]=w,p):o.directives[f]},mount(f,w,T){if(!d){const g=p._ceVNode||Xe(n,i);return g.appContext=o,T===!0?T="svg":T===!1&&(T=void 0),e(g,f,T),d=!0,p._container=f,f.__vue_app__=p,nn(g.component)}},onUnmount(f){a.push(f)},unmount(){d&&($e(a,p._instance,16),e(null,p._container),delete p._container.__vue_app__)},provide(f,w){return o.provides[f]=w,p},runWithContext(f){const w=lt;lt=p;try{return f()}finally{lt=w}}};return p}}let lt=null;const Br=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ke(t)}Modifiers`]||e[`${Ze(t)}Modifiers`];function Rr(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||G;let i=s;const o=t.startsWith("update:"),l=o&&Br(n,t.slice(7));l&&(l.trim&&(i=s.map(f=>X(f)?f.trim():f)),l.number&&(i=s.map(go)));let a,d=n[a=fs(t)]||n[a=fs(Ke(t))];!d&&o&&(d=n[a=fs(Ze(t))]),d&&$e(d,e,6,i);const p=n[a+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,$e(p,e,6,i)}}const Ar=new WeakMap;function Bi(e,t,s=!1){const n=s?Ar:t.emitsCache,i=n.get(e);if(i!==void 0)return i;const o=e.emits;let l={},a=!1;if(!j(e)){const d=p=>{const f=Bi(p,t,!0);f&&(a=!0,te(l,f))};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!o&&!a?(Q(e)&&n.set(e,null),null):(H(o)?o.forEach(d=>l[d]=null):te(l,o),Q(e)&&n.set(e,l),l)}function ns(e,t){return!e||!Qt(t)?!1:(t=t.slice(2).replace(/Once$/,""),U(e,t[0].toLowerCase()+t.slice(1))||U(e,Ze(t))||U(e,t))}function xn(e){const{type:t,vnode:s,proxy:n,withProxy:i,propsOptions:[o],slots:l,attrs:a,emit:d,render:p,renderCache:f,props:w,data:T,setupState:g,ctx:h,inheritAttrs:m}=e,x=Jt(e);let y,v;try{if(s.shapeFlag&4){const k=i||n,O=k;y=ke(p.call(O,k,f,w,g,T,h)),v=a}else{const k=t;y=ke(k.length>1?k(w,{attrs:a,slots:l,emit:d}):k(w,null)),v=t.props?a:Mr(a)}}catch(k){Ct.length=0,ts(k,e,1),y=Xe(at)}let A=y;if(v&&m!==!1){const k=Object.keys(v),{shapeFlag:O}=A;k.length&&O&7&&(o&&k.some(js)&&(v=Fr(v,o)),A=ct(A,v,!1,!0))}return s.dirs&&(A=ct(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(s.dirs):s.dirs),s.transition&&Zs(A,s.transition),y=A,Jt(x),y}const Mr=e=>{let t;for(const s in e)(s==="class"||s==="style"||Qt(s))&&((t||(t={}))[s]=e[s]);return t},Fr=(e,t)=>{const s={};for(const n in e)(!js(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Dr(e,t,s){const{props:n,children:i,component:o}=e,{props:l,children:a,patchFlag:d}=t,p=o.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&d>=0){if(d&1024)return!0;if(d&16)return n?_n(n,l,p):!!l;if(d&8){const f=t.dynamicProps;for(let w=0;w<f.length;w++){const T=f[w];if(l[T]!==n[T]&&!ns(p,T))return!0}}}else return(i||a)&&(!a||!a.$stable)?!0:n===l?!1:n?l?_n(n,l,p):!0:!!l;return!1}function _n(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let i=0;i<n.length;i++){const o=n[i];if(t[o]!==e[o]&&!ns(s,o))return!0}return!1}function Pr({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Ri={},Ai=()=>Object.create(Ri),Mi=e=>Object.getPrototypeOf(e)===Ri;function Or(e,t,s,n=!1){const i={},o=Ai();e.propsDefaults=Object.create(null),Fi(e,t,i,o);for(const l in e.propsOptions[0])l in i||(i[l]=void 0);s?e.props=n?i:Uo(i):e.type.props?e.props=i:e.props=o,e.attrs=o}function jr(e,t,s,n){const{props:i,attrs:o,vnode:{patchFlag:l}}=e,a=N(i),[d]=e.propsOptions;let p=!1;if((n||l>0)&&!(l&16)){if(l&8){const f=e.vnode.dynamicProps;for(let w=0;w<f.length;w++){let T=f[w];if(ns(e.emitsOptions,T))continue;const g=t[T];if(d)if(U(o,T))g!==o[T]&&(o[T]=g,p=!0);else{const h=Ke(T);i[h]=As(d,a,h,g,e,!1)}else g!==o[T]&&(o[T]=g,p=!0)}}}else{Fi(e,t,i,o)&&(p=!0);let f;for(const w in a)(!t||!U(t,w)&&((f=Ze(w))===w||!U(t,f)))&&(d?s&&(s[w]!==void 0||s[f]!==void 0)&&(i[w]=As(d,a,w,void 0,e,!0)):delete i[w]);if(o!==a)for(const w in o)(!t||!U(t,w))&&(delete o[w],p=!0)}p&&Me(e.attrs,"set","")}function Fi(e,t,s,n){const[i,o]=e.propsOptions;let l=!1,a;if(t)for(let d in t){if(bt(d))continue;const p=t[d];let f;i&&U(i,f=Ke(d))?!o||!o.includes(f)?s[f]=p:(a||(a={}))[f]=p:ns(e.emitsOptions,d)||(!(d in n)||p!==n[d])&&(n[d]=p,l=!0)}if(o){const d=N(s),p=a||G;for(let f=0;f<o.length;f++){const w=o[f];s[w]=As(i,d,w,p[w],e,!U(p,w))}}return l}function As(e,t,s,n,i,o){const l=e[s];if(l!=null){const a=U(l,"default");if(a&&n===void 0){const d=l.default;if(l.type!==Function&&!l.skipFactory&&j(d)){const{propsDefaults:p}=i;if(s in p)n=p[s];else{const f=Dt(i);n=p[s]=d.call(null,t),f()}}else n=d;i.ce&&i.ce._setProp(s,n)}l[0]&&(o&&!a?n=!1:l[1]&&(n===""||n===Ze(s))&&(n=!0))}return n}const Hr=new WeakMap;function Di(e,t,s=!1){const n=s?Hr:t.propsCache,i=n.get(e);if(i)return i;const o=e.props,l={},a=[];let d=!1;if(!j(e)){const f=w=>{d=!0;const[T,g]=Di(w,t,!0);te(l,T),g&&a.push(...g)};!s&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!d)return Q(e)&&n.set(e,it),it;if(H(o))for(let f=0;f<o.length;f++){const w=Ke(o[f]);Sn(w)&&(l[w]=G)}else if(o)for(const f in o){const w=Ke(f);if(Sn(w)){const T=o[f],g=l[w]=H(T)||j(T)?{type:T}:te({},T),h=g.type;let m=!1,x=!0;if(H(h))for(let y=0;y<h.length;++y){const v=h[y],A=j(v)&&v.name;if(A==="Boolean"){m=!0;break}else A==="String"&&(x=!1)}else m=j(h)&&h.name==="Boolean";g[0]=m,g[1]=x,(m||U(g,"default"))&&a.push(w)}}const p=[l,a];return Q(e)&&n.set(e,p),p}function Sn(e){return e[0]!=="$"&&!bt(e)}const en=e=>e==="_"||e==="_ctx"||e==="$stable",tn=e=>H(e)?e.map(ke):[ke(e)],Lr=(e,t,s)=>{if(t._n)return t;const n=sr((...i)=>tn(t(...i)),s);return n._c=!1,n},Pi=(e,t,s)=>{const n=e._ctx;for(const i in e){if(en(i))continue;const o=e[i];if(j(o))t[i]=Lr(i,o,n);else if(o!=null){const l=tn(o);t[i]=()=>l}}},Oi=(e,t)=>{const s=tn(t);e.slots.default=()=>s},ji=(e,t,s)=>{for(const n in t)(s||!en(n))&&(e[n]=t[n])},Nr=(e,t,s)=>{const n=e.slots=Ai();if(e.vnode.shapeFlag&32){const i=t._;i?(ji(n,t,s),s&&Yn(n,"_",i,!0)):Pi(t,n)}else t&&Oi(e,t)},Ur=(e,t,s)=>{const{vnode:n,slots:i}=e;let o=!0,l=G;if(n.shapeFlag&32){const a=t._;a?s&&a===1?o=!1:ji(i,t,s):(o=!t.$stable,Pi(t,i)),l=t}else t&&(Oi(e,t),l={default:1});if(o)for(const a in i)!en(a)&&l[a]==null&&delete i[a]},ue=Gr;function Vr(e){return Kr(e)}function Kr(e,t){const s=es();s.__VUE__=!0;const{insert:n,remove:i,patchProp:o,createElement:l,createText:a,createComment:d,setText:p,setElementText:f,parentNode:w,nextSibling:T,setScopeId:g=Ie,insertStaticContent:h}=e,m=(c,u,b,C=null,_=null,S=null,B=void 0,$=null,I=!!u.dynamicChildren)=>{if(c===u)return;c&&!mt(c,u)&&(C=Ot(c),we(c,_,S,!0),c=null),u.patchFlag===-2&&(I=!1,u.dynamicChildren=null);const{type:E,ref:F,shapeFlag:R}=u;switch(E){case is:x(c,u,b,C);break;case at:y(c,u,b,C);break;case ws:c==null&&v(u,b,C,B);break;case me:Be(c,u,b,C,_,S,B,$,I);break;default:R&1?O(c,u,b,C,_,S,B,$,I):R&6?tt(c,u,b,C,_,S,B,$,I):(R&64||R&128)&&E.process(c,u,b,C,_,S,B,$,I,pt)}F!=null&&_?_t(F,c&&c.ref,S,u||c,!u):F==null&&c&&c.ref!=null&&_t(c.ref,null,S,c,!0)},x=(c,u,b,C)=>{if(c==null)n(u.el=a(u.children),b,C);else{const _=u.el=c.el;u.children!==c.children&&p(_,u.children)}},y=(c,u,b,C)=>{c==null?n(u.el=d(u.children||""),b,C):u.el=c.el},v=(c,u,b,C)=>{[c.el,c.anchor]=h(c.children,u,b,C,c.el,c.anchor)},A=({el:c,anchor:u},b,C)=>{let _;for(;c&&c!==u;)_=T(c),n(c,b,C),c=_;n(u,b,C)},k=({el:c,anchor:u})=>{let b;for(;c&&c!==u;)b=T(c),i(c),c=b;i(u)},O=(c,u,b,C,_,S,B,$,I)=>{if(u.type==="svg"?B="svg":u.type==="math"&&(B="mathml"),c==null)q(u,b,C,_,S,B,$,I);else{const E=c.el&&c.el._isVueCE?c.el:null;try{E&&E._beginPatch(),et(c,u,_,S,B,$,I)}finally{E&&E._endPatch()}}},q=(c,u,b,C,_,S,B,$)=>{let I,E;const{props:F,shapeFlag:R,transition:M,dirs:D}=c;if(I=c.el=l(c.type,S,F&&F.is,F),R&8?f(I,c.children):R&16&&Y(c.children,I,null,C,_,bs(c,S),B,$),D&&qe(c,null,C,"created"),P(I,c,c.scopeId,B,C),F){for(const W in F)W!=="value"&&!bt(W)&&o(I,W,null,F[W],S,C);"value"in F&&o(I,"value",null,F.value,S),(E=F.onVnodeBeforeMount)&&Ee(E,C,c)}D&&qe(c,null,C,"beforeMount");const L=Wr(_,M);L&&M.beforeEnter(I),n(I,u,b),((E=F&&F.onVnodeMounted)||L||D)&&ue(()=>{E&&Ee(E,C,c),L&&M.enter(I),D&&qe(c,null,C,"mounted")},_)},P=(c,u,b,C,_)=>{if(b&&g(c,b),C)for(let S=0;S<C.length;S++)g(c,C[S]);if(_){let S=_.subTree;if(u===S||Ui(S.type)&&(S.ssContent===u||S.ssFallback===u)){const B=_.vnode;P(c,B,B.scopeId,B.slotScopeIds,_.parent)}}},Y=(c,u,b,C,_,S,B,$,I=0)=>{for(let E=I;E<c.length;E++){const F=c[E]=$?Ne(c[E]):ke(c[E]);m(null,F,u,b,C,_,S,B,$)}},et=(c,u,b,C,_,S,B)=>{const $=u.el=c.el;let{patchFlag:I,dynamicChildren:E,dirs:F}=u;I|=c.patchFlag&16;const R=c.props||G,M=u.props||G;let D;if(b&&ze(b,!1),(D=M.onVnodeBeforeUpdate)&&Ee(D,b,u,c),F&&qe(u,c,b,"beforeUpdate"),b&&ze(b,!0),(R.innerHTML&&M.innerHTML==null||R.textContent&&M.textContent==null)&&f($,""),E?be(c.dynamicChildren,E,$,b,C,bs(u,_),S):B||K(c,u,$,null,b,C,bs(u,_),S,!1),I>0){if(I&16)je($,R,M,b,_);else if(I&2&&R.class!==M.class&&o($,"class",null,M.class,_),I&4&&o($,"style",R.style,M.style,_),I&8){const L=u.dynamicProps;for(let W=0;W<L.length;W++){const V=L[W],le=R[V],ae=M[V];(ae!==le||V==="value")&&o($,V,le,ae,_,b)}}I&1&&c.children!==u.children&&f($,u.children)}else!B&&E==null&&je($,R,M,b,_);((D=M.onVnodeUpdated)||F)&&ue(()=>{D&&Ee(D,b,u,c),F&&qe(u,c,b,"updated")},C)},be=(c,u,b,C,_,S,B)=>{for(let $=0;$<u.length;$++){const I=c[$],E=u[$],F=I.el&&(I.type===me||!mt(I,E)||I.shapeFlag&198)?w(I.el):b;m(I,E,F,null,C,_,S,B,!0)}},je=(c,u,b,C,_)=>{if(u!==b){if(u!==G)for(const S in u)!bt(S)&&!(S in b)&&o(c,S,u[S],null,_,C);for(const S in b){if(bt(S))continue;const B=b[S],$=u[S];B!==$&&S!=="value"&&o(c,S,$,B,_,C)}"value"in b&&o(c,"value",u.value,b.value,_)}},Be=(c,u,b,C,_,S,B,$,I)=>{const E=u.el=c?c.el:a(""),F=u.anchor=c?c.anchor:a("");let{patchFlag:R,dynamicChildren:M,slotScopeIds:D}=u;D&&($=$?$.concat(D):D),c==null?(n(E,b,C),n(F,b,C),Y(u.children||[],b,F,_,S,B,$,I)):R>0&&R&64&&M&&c.dynamicChildren&&c.dynamicChildren.length===M.length?(be(c.dynamicChildren,M,b,_,S,B,$),(u.key!=null||_&&u===_.subTree)&&Hi(c,u,!0)):K(c,u,b,F,_,S,B,$,I)},tt=(c,u,b,C,_,S,B,$,I)=>{u.slotScopeIds=$,c==null?u.shapeFlag&512?_.ctx.activate(u,b,C,B,I):ds(u,b,C,_,S,B,I):rn(c,u,I)},ds=(c,u,b,C,_,S,B)=>{const $=c.component=nl(c,C,_);if(Si(c)&&($.ctx.renderer=pt),ol($,!1,B),$.asyncDep){if(_&&_.registerDep($,se,B),!c.el){const I=$.subTree=Xe(at);y(null,I,u,b),c.placeholder=I.el}}else se($,c,u,b,_,S,B)},rn=(c,u,b)=>{const C=u.component=c.component;if(Dr(c,u,b))if(C.asyncDep&&!C.asyncResolved){z(C,u,b);return}else C.next=u,C.update();else u.el=c.el,C.vnode=u},se=(c,u,b,C,_,S,B)=>{const $=()=>{if(c.isMounted){let{next:R,bu:M,u:D,parent:L,vnode:W}=c;{const _e=Li(c);if(_e){R&&(R.el=W.el,z(c,R,B)),_e.asyncDep.then(()=>{c.isUnmounted||$()});return}}let V=R,le;ze(c,!1),R?(R.el=W.el,z(c,R,B)):R=W,M&&ps(M),(le=R.props&&R.props.onVnodeBeforeUpdate)&&Ee(le,L,R,W),ze(c,!0);const ae=xn(c),xe=c.subTree;c.subTree=ae,m(xe,ae,w(xe.el),Ot(xe),c,_,S),R.el=ae.el,V===null&&Pr(c,ae.el),D&&ue(D,_),(le=R.props&&R.props.onVnodeUpdated)&&ue(()=>Ee(le,L,R,W),_)}else{let R;const{el:M,props:D}=u,{bm:L,m:W,parent:V,root:le,type:ae}=c,xe=St(u);ze(c,!1),L&&ps(L),!xe&&(R=D&&D.onVnodeBeforeMount)&&Ee(R,V,u),ze(c,!0);{le.ce&&le.ce._def.shadowRoot!==!1&&le.ce._injectChildStyle(ae);const _e=c.subTree=xn(c);m(null,_e,b,C,c,_,S),u.el=_e.el}if(W&&ue(W,_),!xe&&(R=D&&D.onVnodeMounted)){const _e=u;ue(()=>Ee(R,V,_e),_)}(u.shapeFlag&256||V&&St(V.vnode)&&V.vnode.shapeFlag&256)&&c.a&&ue(c.a,_),c.isMounted=!0,u=b=C=null}};c.scope.on();const I=c.effect=new Zn($);c.scope.off();const E=c.update=I.run.bind(I),F=c.job=I.runIfDirty.bind(I);F.i=c,F.id=c.uid,I.scheduler=()=>Xs(F),ze(c,!0),E()},z=(c,u,b)=>{u.component=c;const C=c.vnode.props;c.vnode=u,c.next=null,jr(c,u.props,C,b),Ur(c,u.children,b),Fe(),gn(c),De()},K=(c,u,b,C,_,S,B,$,I=!1)=>{const E=c&&c.children,F=c?c.shapeFlag:0,R=u.children,{patchFlag:M,shapeFlag:D}=u;if(M>0){if(M&128){Pt(E,R,b,C,_,S,B,$,I);return}else if(M&256){Je(E,R,b,C,_,S,B,$,I);return}}D&8?(F&16&&ft(E,_,S),R!==E&&f(b,R)):F&16?D&16?Pt(E,R,b,C,_,S,B,$,I):ft(E,_,S,!0):(F&8&&f(b,""),D&16&&Y(R,b,C,_,S,B,$,I))},Je=(c,u,b,C,_,S,B,$,I)=>{c=c||it,u=u||it;const E=c.length,F=u.length,R=Math.min(E,F);let M;for(M=0;M<R;M++){const D=u[M]=I?Ne(u[M]):ke(u[M]);m(c[M],D,b,null,_,S,B,$,I)}E>F?ft(c,_,S,!0,!1,R):Y(u,b,C,_,S,B,$,I,R)},Pt=(c,u,b,C,_,S,B,$,I)=>{let E=0;const F=u.length;let R=c.length-1,M=F-1;for(;E<=R&&E<=M;){const D=c[E],L=u[E]=I?Ne(u[E]):ke(u[E]);if(mt(D,L))m(D,L,b,null,_,S,B,$,I);else break;E++}for(;E<=R&&E<=M;){const D=c[R],L=u[M]=I?Ne(u[M]):ke(u[M]);if(mt(D,L))m(D,L,b,null,_,S,B,$,I);else break;R--,M--}if(E>R){if(E<=M){const D=M+1,L=D<F?u[D].el:C;for(;E<=M;)m(null,u[E]=I?Ne(u[E]):ke(u[E]),b,L,_,S,B,$,I),E++}}else if(E>M)for(;E<=R;)we(c[E],_,S,!0),E++;else{const D=E,L=E,W=new Map;for(E=L;E<=M;E++){const de=u[E]=I?Ne(u[E]):ke(u[E]);de.key!=null&&W.set(de.key,E)}let V,le=0;const ae=M-L+1;let xe=!1,_e=0;const ht=new Array(ae);for(E=0;E<ae;E++)ht[E]=0;for(E=D;E<=R;E++){const de=c[E];if(le>=ae){we(de,_,S,!0);continue}let Se;if(de.key!=null)Se=W.get(de.key);else for(V=L;V<=M;V++)if(ht[V-L]===0&&mt(de,u[V])){Se=V;break}Se===void 0?we(de,_,S,!0):(ht[Se-L]=E+1,Se>=_e?_e=Se:xe=!0,m(de,u[Se],b,null,_,S,B,$,I),le++)}const cn=xe?Jr(ht):it;for(V=cn.length-1,E=ae-1;E>=0;E--){const de=L+E,Se=u[de],dn=u[de+1],un=de+1<F?dn.el||Ni(dn):C;ht[E]===0?m(null,Se,b,un,_,S,B,$,I):xe&&(V<0||E!==cn[V]?Ge(Se,b,un,2):V--)}}},Ge=(c,u,b,C,_=null)=>{const{el:S,type:B,transition:$,children:I,shapeFlag:E}=c;if(E&6){Ge(c.component.subTree,u,b,C);return}if(E&128){c.suspense.move(u,b,C);return}if(E&64){B.move(c,u,b,pt);return}if(B===me){n(S,u,b);for(let R=0;R<I.length;R++)Ge(I[R],u,b,C);n(c.anchor,u,b);return}if(B===ws){A(c,u,b);return}if(C!==2&&E&1&&$)if(C===0)$.beforeEnter(S),n(S,u,b),ue(()=>$.enter(S),_);else{const{leave:R,delayLeave:M,afterLeave:D}=$,L=()=>{c.ctx.isUnmounted?i(S):n(S,u,b)},W=()=>{S._isLeaving&&S[cr](!0),R(S,()=>{L(),D&&D()})};M?M(S,L,W):W()}else n(S,u,b)},we=(c,u,b,C=!1,_=!1)=>{const{type:S,props:B,ref:$,children:I,dynamicChildren:E,shapeFlag:F,patchFlag:R,dirs:M,cacheIndex:D}=c;if(R===-2&&(_=!1),$!=null&&(Fe(),_t($,null,b,c,!0),De()),D!=null&&(u.renderCache[D]=void 0),F&256){u.ctx.deactivate(c);return}const L=F&1&&M,W=!St(c);let V;if(W&&(V=B&&B.onVnodeBeforeUnmount)&&Ee(V,u,c),F&6)ro(c.component,b,C);else{if(F&128){c.suspense.unmount(b,C);return}L&&qe(c,null,u,"beforeUnmount"),F&64?c.type.remove(c,u,b,pt,C):E&&!E.hasOnce&&(S!==me||R>0&&R&64)?ft(E,u,b,!1,!0):(S===me&&R&384||!_&&F&16)&&ft(I,u,b),C&&ln(c)}(W&&(V=B&&B.onVnodeUnmounted)||L)&&ue(()=>{V&&Ee(V,u,c),L&&qe(c,null,u,"unmounted")},b)},ln=c=>{const{type:u,el:b,anchor:C,transition:_}=c;if(u===me){oo(b,C);return}if(u===ws){k(c);return}const S=()=>{i(b),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(c.shapeFlag&1&&_&&!_.persisted){const{leave:B,delayLeave:$}=_,I=()=>B(b,S);$?$(c.el,S,I):I()}else S()},oo=(c,u)=>{let b;for(;c!==u;)b=T(c),i(c),c=b;i(u)},ro=(c,u,b)=>{const{bum:C,scope:_,job:S,subTree:B,um:$,m:I,a:E}=c;En(I),En(E),C&&ps(C),_.stop(),S&&(S.flags|=8,we(B,c,u,b)),$&&ue($,u),ue(()=>{c.isUnmounted=!0},u)},ft=(c,u,b,C=!1,_=!1,S=0)=>{for(let B=S;B<c.length;B++)we(c[B],u,b,C,_)},Ot=c=>{if(c.shapeFlag&6)return Ot(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=T(c.anchor||c.el),b=u&&u[lr];return b?T(b):u};let us=!1;const an=(c,u,b)=>{let C;c==null?u._vnode&&(we(u._vnode,null,null,!0),C=u._vnode.component):m(u._vnode||null,c,u,null,null,null,b),u._vnode=c,us||(us=!0,gn(C),vi(),us=!1)},pt={p:m,um:we,m:Ge,r:ln,mt:ds,mc:Y,pc:K,pbc:be,n:Ot,o:e};return{render:an,hydrate:void 0,createApp:$r(an)}}function bs({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function ze({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Wr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Hi(e,t,s=!1){const n=e.children,i=t.children;if(H(n)&&H(i))for(let o=0;o<n.length;o++){const l=n[o];let a=i[o];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=i[o]=Ne(i[o]),a.el=l.el),!s&&a.patchFlag!==-2&&Hi(l,a)),a.type===is&&(a.patchFlag!==-1?a.el=l.el:a.__elIndex=o+(e.type===me?1:0)),a.type===at&&!a.el&&(a.el=l.el)}}function Jr(e){const t=e.slice(),s=[0];let n,i,o,l,a;const d=e.length;for(n=0;n<d;n++){const p=e[n];if(p!==0){if(i=s[s.length-1],e[i]<p){t[n]=i,s.push(n);continue}for(o=0,l=s.length-1;o<l;)a=o+l>>1,e[s[a]]<p?o=a+1:l=a;p<e[s[o]]&&(o>0&&(t[n]=s[o-1]),s[o]=n)}}for(o=s.length,l=s[o-1];o-- >0;)s[o]=l,l=t[l];return s}function Li(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Li(t)}function En(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Ni(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Ni(t.subTree):null}const Ui=e=>e.__isSuspense;function Gr(e,t){t&&t.pendingBranch?H(e)?t.effects.push(...e):t.effects.push(e):tr(e)}const me=Symbol.for("v-fgt"),is=Symbol.for("v-txt"),at=Symbol.for("v-cmt"),ws=Symbol.for("v-stc"),Ct=[];let fe=null;function qr(e=!1){Ct.push(fe=e?null:[])}function zr(){Ct.pop(),fe=Ct[Ct.length-1]||null}let At=1;function Cn(e,t=!1){At+=e,e<0&&fe&&t&&(fe.hasOnce=!0)}function Yr(e){return e.dynamicChildren=At>0?fe||it:null,zr(),At>0&&fe&&fe.push(e),e}function Qr(e,t,s,n,i,o){return Yr(r(e,t,s,n,i,o,!0))}function Vi(e){return e?e.__v_isVNode===!0:!1}function mt(e,t){return e.type===t.type&&e.key===t.key}const Ki=({key:e})=>e??null,Ut=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?X(e)||ee(e)||j(e)?{i:Te,r:e,k:t,f:!!s}:e:null);function r(e,t=null,s=null,n=0,i=null,o=e===me?0:1,l=!1,a=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ki(t),ref:t&&Ut(t),scopeId:bi,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Te};return a?(sn(d,s),o&128&&e.normalize(d)):s&&(d.shapeFlag|=X(s)?8:16),At>0&&!l&&fe&&(d.patchFlag>0||o&6)&&d.patchFlag!==32&&fe.push(d),d}const Xe=Xr;function Xr(e,t=null,s=null,n=0,i=null,o=!1){if((!e||e===xr)&&(e=at),Vi(e)){const a=ct(e,t,!0);return s&&sn(a,s),At>0&&!o&&fe&&(a.shapeFlag&6?fe[fe.indexOf(e)]=a:fe.push(a)),a.patchFlag=-2,a}if(cl(e)&&(e=e.__vccOpts),t){t=Zr(t);let{class:a,style:d}=t;a&&!X(a)&&(t.class=Us(a)),Q(d)&&(Qs(d)&&!H(d)&&(d=te({},d)),t.style=Ns(d))}const l=X(e)?1:Ui(e)?128:ar(e)?64:Q(e)?4:j(e)?2:0;return r(e,t,s,n,i,l,o,!0)}function Zr(e){return e?Qs(e)||Mi(e)?te({},e):e:null}function ct(e,t,s=!1,n=!1){const{props:i,ref:o,patchFlag:l,children:a,transition:d}=e,p=t?el(i||{},t):i,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:p,key:p&&Ki(p),ref:t&&t.ref?s&&o?H(o)?o.concat(Ut(t)):[o,Ut(t)]:Ut(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==me?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:d,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ct(e.ssContent),ssFallback:e.ssFallback&&ct(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return d&&n&&Zs(f,d.clone(f)),f}function ie(e=" ",t=0){return Xe(is,null,e,t)}function ke(e){return e==null||typeof e=="boolean"?Xe(at):H(e)?Xe(me,null,e.slice()):Vi(e)?Ne(e):Xe(is,null,String(e))}function Ne(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ct(e)}function sn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(H(t))s=16;else if(typeof t=="object")if(n&65){const i=t.default;i&&(i._c&&(i._d=!1),sn(e,i()),i._c&&(i._d=!0));return}else{s=32;const i=t._;!i&&!Mi(t)?t._ctx=Te:i===3&&Te&&(Te.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else j(t)?(t={default:t,_ctx:Te},s=32):(t=String(t),n&64?(s=16,t=[ie(t)]):s=8);e.children=t,e.shapeFlag|=s}function el(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const i in n)if(i==="class")t.class!==n.class&&(t.class=Us([t.class,n.class]));else if(i==="style")t.style=Ns([t.style,n.style]);else if(Qt(i)){const o=t[i],l=n[i];l&&o!==l&&!(H(o)&&o.includes(l))&&(t[i]=o?[].concat(o,l):l)}else i!==""&&(t[i]=n[i])}return t}function Ee(e,t,s,n=null){$e(e,t,7,[s,n])}const tl=$i();let sl=0;function nl(e,t,s){const n=e.type,i=(t?t.appContext:e.appContext)||tl,o={uid:sl++,vnode:e,type:n,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new Xn(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Di(n,i),emitsOptions:Bi(n,i),emit:null,emitted:null,propsDefaults:G,inheritAttrs:n.inheritAttrs,ctx:G,data:G,props:G,attrs:G,slots:G,refs:G,setupState:G,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=Rr.bind(null,o),e.ce&&e.ce(o),o}let re=null;const il=()=>re||Te;let zt,Ms;{const e=es(),t=(s,n)=>{let i;return(i=e[s])||(i=e[s]=[]),i.push(n),o=>{i.length>1?i.forEach(l=>l(o)):i[0](o)}};zt=t("__VUE_INSTANCE_SETTERS__",s=>re=s),Ms=t("__VUE_SSR_SETTERS__",s=>Mt=s)}const Dt=e=>{const t=re;return zt(e),e.scope.on(),()=>{e.scope.off(),zt(t)}},kn=()=>{re&&re.scope.off(),zt(null)};function Wi(e){return e.vnode.shapeFlag&4}let Mt=!1;function ol(e,t=!1,s=!1){t&&Ms(t);const{props:n,children:i}=e.vnode,o=Wi(e);Or(e,n,o,t),Nr(e,i,s||t);const l=o?rl(e,t):void 0;return t&&Ms(!1),l}function rl(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,_r);const{setup:n}=s;if(n){Fe();const i=e.setupContext=n.length>1?al(e):null,o=Dt(e),l=Ft(n,e,0,[e.props,i]),a=qn(l);if(De(),o(),(a||e.sp)&&!St(e)&&_i(e),a){if(l.then(kn,kn),t)return l.then(d=>{Tn(e,d)}).catch(d=>{ts(d,e,0)});e.asyncDep=l}else Tn(e,l)}else Ji(e)}function Tn(e,t,s){j(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Q(t)&&(e.setupState=hi(t)),Ji(e)}function Ji(e,t,s){const n=e.type;e.render||(e.render=n.render||Ie);{const i=Dt(e);Fe();try{Sr(e)}finally{De(),i()}}}const ll={get(e,t){return Z(e,"get",""),e[t]}};function al(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,ll),slots:e.slots,emit:e.emit,expose:t}}function nn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(hi(pi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Et)return Et[s](e)},has(t,s){return s in t||s in Et}})):e.proxy}function cl(e){return j(e)&&"__vccOpts"in e}const dl=(e,t)=>zo(e,t,Mt),ul="3.5.27";/**
14
+ * @vue/runtime-dom v3.5.27
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let Fs;const In=typeof window<"u"&&window.trustedTypes;if(In)try{Fs=In.createPolicy("vue",{createHTML:e=>e})}catch{}const Gi=Fs?e=>Fs.createHTML(e):e=>e,fl="http://www.w3.org/2000/svg",pl="http://www.w3.org/1998/Math/MathML",Ae=typeof document<"u"?document:null,$n=Ae&&Ae.createElement("template"),hl={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const i=t==="svg"?Ae.createElementNS(fl,e):t==="mathml"?Ae.createElementNS(pl,e):s?Ae.createElement(e,{is:s}):Ae.createElement(e);return e==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:e=>Ae.createTextNode(e),createComment:e=>Ae.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ae.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,i,o){const l=s?s.previousSibling:t.lastChild;if(i&&(i===o||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),s),!(i===o||!(i=i.nextSibling)););else{$n.innerHTML=Gi(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const a=$n.content;if(n==="svg"||n==="mathml"){const d=a.firstChild;for(;d.firstChild;)a.appendChild(d.firstChild);a.removeChild(d)}t.insertBefore(a,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},gl=Symbol("_vtc");function ml(e,t,s){const n=e[gl];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Bn=Symbol("_vod"),vl=Symbol("_vsh"),yl=Symbol(""),bl=/(?:^|;)\s*display\s*:/;function wl(e,t,s){const n=e.style,i=X(s);let o=!1;if(s&&!i){if(t)if(X(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();s[a]==null&&Vt(n,a,"")}else for(const l in t)s[l]==null&&Vt(n,l,"");for(const l in s)l==="display"&&(o=!0),Vt(n,l,s[l])}else if(i){if(t!==s){const l=n[yl];l&&(s+=";"+l),n.cssText=s,o=bl.test(s)}}else t&&e.removeAttribute("style");Bn in e&&(e[Bn]=o?n.display:"",e[vl]&&(n.display="none"))}const Rn=/\s*!important$/;function Vt(e,t,s){if(H(s))s.forEach(n=>Vt(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=xl(e,t);Rn.test(s)?e.setProperty(Ze(n),s.replace(Rn,""),"important"):e[n]=s}}const An=["Webkit","Moz","ms"],xs={};function xl(e,t){const s=xs[t];if(s)return s;let n=Ke(t);if(n!=="filter"&&n in e)return xs[t]=n;n=zn(n);for(let i=0;i<An.length;i++){const o=An[i]+n;if(o in e)return xs[t]=o}return t}const Mn="http://www.w3.org/1999/xlink";function Fn(e,t,s,n,i,o=xo(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(Mn,t.slice(6,t.length)):e.setAttributeNS(Mn,t,s):s==null||o&&!Qn(s)?e.removeAttribute(t):e.setAttribute(t,o?"":dt(s)?String(s):s)}function Dn(e,t,s,n,i){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?Gi(s):s);return}const o=e.tagName;if(t==="value"&&o!=="PROGRESS"&&!o.includes("-")){const a=o==="OPTION"?e.getAttribute("value")||"":e.value,d=s==null?e.type==="checkbox"?"on":"":String(s);(a!==d||!("_value"in e))&&(e.value=d),s==null&&e.removeAttribute(t),e._value=s;return}let l=!1;if(s===""||s==null){const a=typeof e[t];a==="boolean"?s=Qn(s):s==null&&a==="string"?(s="",l=!0):a==="number"&&(s=0,l=!0)}try{e[t]=s}catch{}l&&e.removeAttribute(i||t)}function _l(e,t,s,n){e.addEventListener(t,s,n)}function Sl(e,t,s,n){e.removeEventListener(t,s,n)}const Pn=Symbol("_vei");function El(e,t,s,n,i=null){const o=e[Pn]||(e[Pn]={}),l=o[t];if(n&&l)l.value=n;else{const[a,d]=Cl(t);if(n){const p=o[t]=Il(n,i);_l(e,a,p,d)}else l&&(Sl(e,a,l,d),o[t]=void 0)}}const On=/(?:Once|Passive|Capture)$/;function Cl(e){let t;if(On.test(e)){t={};let n;for(;n=e.match(On);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Ze(e.slice(2)),t]}let _s=0;const kl=Promise.resolve(),Tl=()=>_s||(kl.then(()=>_s=0),_s=Date.now());function Il(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;$e($l(n,s.value),t,5,[n])};return s.value=e,s.attached=Tl(),s}function $l(e,t){if(H(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>i=>!i._stopped&&n&&n(i))}else return t}const jn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Bl=(e,t,s,n,i,o)=>{const l=i==="svg";t==="class"?ml(e,n,l):t==="style"?wl(e,s,n):Qt(t)?js(t)||El(e,t,s,n,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Rl(e,t,n,l))?(Dn(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fn(e,t,n,l,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!X(n))?Dn(e,Ke(t),n,o,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Fn(e,t,n,l))};function Rl(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&jn(t)&&j(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return jn(t)&&X(s)?!1:t in e}const Al=te({patchProp:Bl},hl);let Hn;function Ml(){return Hn||(Hn=Vr(Al))}const Fl=(...e)=>{const t=Ml().createApp(...e),{mount:s}=t;return t.mount=n=>{const i=Pl(n);if(!i)return;const o=t._component;!j(o)&&!o.render&&!o.template&&(o.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const l=s(i,!1,Dl(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),l},t};function Dl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Pl(e){return X(e)?document.querySelector(e):e}/*!
18
+ * pinia v2.3.1
19
+ * (c) 2025 Eduardo San Martin Morote
20
+ * @license MIT
21
+ */const Ol=Symbol();var Ln;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Ln||(Ln={}));function jl(){const e=_o(!0),t=e.run(()=>Vo({}));let s=[],n=[];const i=pi({install(o){i._a=o,o.provide(Ol,i),o.config.globalProperties.$pinia=i,n.forEach(l=>s.push(l)),n=[]},use(o){return this._a?s.push(o):n.push(o),this},_p:s,_a:null,_e:e,_s:new Map,state:t});return i}function Hl(e){let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<5)-t);return`hsl(${Math.abs(t)%360}, 70%, 45%)`}function Ll(e){if(!e)return"";let t=e.replace(/^(feat|chore|docs|fix|refactor|style|test|perf|ci|build)(\(.*\))?!?:?\s*/i,"");return t.charAt(0).toUpperCase()+t.slice(1)}function Ds(e){if(!e)return"";const t=document.createElement("div");return t.textContent=e,t.innerHTML}function Nl(e,t){if(!t||!e)return Ds(e);const s=Ds(e);try{const n=new RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return s.replace(n,'<span class="highlight">$1</span>')}catch{return s}}function Ul(e){const t=Math.floor((new Date-e)/1e3);if(t<60)return"Just now";const s=Math.floor(t/60);if(s<60)return s+"m";const n=Math.floor(s/60);return n<24?n+"h":Math.floor(n/24)+"d"}function Vl(e,t="success"){const s=document.querySelector(".toast");s&&s.remove();const n=document.createElement("div");n.className=`toast ${t}`,n.textContent=e,document.body.appendChild(n),setTimeout(()=>n.remove(),3e3)}function Kl(){const e=document.querySelector(".sidebar"),t=document.querySelector(".sidebar-overlay");e.classList.toggle("open"),t.classList.toggle("open")}function Wl(){"Notification"in window&&Notification.permission==="default"&&Notification.requestPermission()}function Jl(e,t={}){"Notification"in window&&Notification.permission==="granted"&&new Notification(e,t)}window.toggleSidebar=Kl;function Gl(e){const t=document.getElementById(e);t&&(t.classList.add("open"),document.body.style.overflow="hidden")}function ql(e){const t=document.getElementById(e);t&&(t.classList.remove("open"),document.body.style.overflow="")}window.openModal=Gl;window.closeModal=ql;Object.assign(window,{stringToColor:Hl,cleanTitle:Ll,escapeHtml:Ds,highlightText:Nl,timeSince:Ul,showToast:Vl,requestNotificationPermission:Wl,notify:Jl});const ge="";async function pe(e,t={},s=2){for(let n=0;n<=s;n++)try{const i=await fetch(e,t);if(!i.ok&&n<s){await new Promise(o=>setTimeout(o,1e3*(n+1)));continue}return i}catch(i){if(n===s)throw i;await new Promise(o=>setTimeout(o,1e3*(n+1)))}}async function zl(){try{return await(await pe(`${ge}/api/status`)).json()}catch(e){throw console.error("Failed to fetch status:",e),e}}async function Yl(){try{return await(await pe(`${ge}/api/stories`)).json()}catch(e){throw console.error("Failed to fetch stories:",e),e}}async function Ql(){try{return await(await pe(`${ge}/api/config`)).json()}catch(e){throw console.error("Failed to fetch config:",e),e}}async function Xl(e){try{const t=await pe(`${ge}/api/config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw new Error("Failed to save config");return await t.json()}catch(t){throw console.error("Failed to update config:",t),t}}async function Zl(){try{return await(await pe(`${ge}/api/repos`)).json()}catch(e){throw console.error("Failed to fetch repos:",e),e}}async function ea(e){try{return await(await pe(`${ge}/api/repos/add`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to add repo:",t),t}}async function ta(e){try{return await(await pe(`${ge}/api/repos/remove`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to remove repo:",t),t}}async function sa(e){try{return await(await pe(`${ge}/api/repos/pause`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to pause repo:",t),t}}async function na(e){try{return await(await pe(`${ge}/api/repos/resume`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e})})).json()}catch(t){throw console.error("Failed to resume repo:",t),t}}async function ia(e,t){try{return await(await pe(`${ge}/api/repos/rename`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e,name:t})})).json()}catch(s){throw console.error("Failed to rename repo:",s),s}}async function oa(){try{return await(await pe(`${ge}/api/cron`)).json()}catch(e){throw console.error("Failed to fetch cron status:",e),e}}async function ra(){try{return await(await pe(`${ge}/api/generate`,{method:"POST"})).json()}catch(e){throw console.error("Failed to trigger generation:",e),e}}Object.assign(window,{fetchWithRetry:pe,getStatus:zl,getStories:Yl,getConfig:Ql,updateConfig:Xl,getRepos:Zl,addRepo:ea,removeRepo:ta,pauseRepo:sa,resumeRepo:na,renameRepo:ia,getCronStatus:oa,triggerGeneration:ra});class qi{constructor(){this.state={stories:[],repos:[],config:null,cronStatus:null,currentRepo:"all",searchQuery:"",currentMainView:"stories",currentSettingsTab:"form",configDirty:!1,previousView:"view-main"},this.subscribers=[]}get(t){return t?this.state[t]:this.state}update(t,s){const n=this.state[t];this.state[t]=s,this.subscribers.forEach(i=>i(t,s,n))}batchUpdate(t){Object.entries(t).forEach(([s,n])=>{this.state[s]=n}),this.subscribers.forEach(s=>s("batch",t,null))}subscribe(t){return this.subscribers.push(t),()=>{const s=this.subscribers.indexOf(t);s>-1&&this.subscribers.splice(s,1)}}reset(){this.state={stories:[],repos:[],config:null,cronStatus:null,currentRepo:"all",searchQuery:"",currentMainView:"stories",currentSettingsTab:"form",configDirty:!1,previousView:"view-main"},this.subscribers.forEach(t=>t("reset",this.state,null))}}const kt=new qi;kt.initRouter=function(){window.addEventListener("popstate",e=>{const t=e.state;if(!t){kt.update("currentMainView","stories"),switchMainView("stories",!1),Nn();return}t.view==="detail"&&t.storyId?kt.get("stories").find(i=>i.id===t.storyId)&&openStory(null,t.storyId,!1):t.view==="profile"&&t.repoName?openProfile(null,t.repoName,!1):t.view==="user"&&t.authorName?openUser(null,t.authorName,t.authorEmail||"",!1):t.view==="main"&&(Nn(),t.mainView&&switchMainView(t.mainView,!1))})};kt.pushHistory=function(e,t,s){history.pushState(e,t,s)};function Nn(){document.getElementById("view-main").style.display=""}window.store=kt;window.State=qi;const Ps="repr-dashboard-theme";function la(){const e=localStorage.getItem(Ps);if(e)Tt(e);else{const t=window.matchMedia("(prefers-color-scheme: dark)").matches;Tt(t?"dark":"light")}window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",t=>{localStorage.getItem(Ps)||Tt(t.matches?"dark":"light")})}function Tt(e){document.documentElement.setAttribute("data-theme",e),zi(e)}function aa(){const t=document.documentElement.getAttribute("data-theme")==="dark"?"light":"dark";Tt(t),localStorage.setItem(Ps,t),showToast(`${t==="dark"?"Dark":"Light"} mode enabled`,"success")}function ca(){return document.documentElement.getAttribute("data-theme")||"light"}function zi(e){const t=document.getElementById("theme-toggle");if(t){const s=t.querySelector(".theme-toggle-icon");s&&(s.textContent=e==="dark"?"☀":"☾")}}window.toggleTheme=aa;Object.assign(window,{initTheme:la,setTheme:Tt,getTheme:ca,updateThemeToggleIcon:zi});let he=-1,Yt=!1;function da(){document.addEventListener("keydown",ua)}function ua(e){if((e.metaKey||e.ctrlKey)&&e.key==="k"){e.preventDefault(),Un();return}if(e.target.tagName==="INPUT"||e.target.tagName==="TEXTAREA"){if(e.key==="Escape"){e.target.blur();return}return}if(Yt){(e.key==="Escape"||e.key==="?")&&(Qi(),e.preventDefault());return}switch(e.key){case"/":e.preventDefault(),Un();break;case"j":e.preventDefault(),fa();break;case"k":e.preventDefault(),pa();break;case"Enter":he>=0&&(e.preventDefault(),ha());break;case"Escape":e.preventDefault(),ga();break;case"r":case"R":e.preventDefault(),refreshStories();break;case"?":e.preventDefault(),ma();break}}function Un(){const e=document.getElementById("search-input");e&&(e.focus(),showToast("Search focused (type to filter, Esc to clear)","success"))}function fa(){const e=os();e.length&&(he=Math.min(he+1,e.length-1),Yi(e))}function pa(){const e=os();e.length&&(he=Math.max(he-1,0),Yi(e))}function os(){return Array.from(document.querySelectorAll(".post-card"))}function Yi(e){e.forEach((t,s)=>{t.classList.toggle("selected",s===he),s===he&&t.scrollIntoView({behavior:"smooth",block:"center"})})}function ha(){const e=os();if(he>=0&&he<e.length){const s=e[he].id.replace("post-","");s&&openStory({stopPropagation:()=>{}},s)}}function ga(){const e=document.getElementById("view-detail"),t=document.getElementById("view-profile");if((e==null?void 0:e.style.display)!=="none"||(t==null?void 0:t.style.display)!=="none"){goBack();return}const s=document.getElementById("search-input");if(s&&s.value){s.value="",store.update("searchQuery",""),filterAndRenderStories();return}he>=0&&(he=-1,os().forEach(i=>i.classList.remove("selected")))}function ma(){if(Yt)return;Yt=!0;const e=document.createElement("div");e.id="keyboard-shortcuts-modal",e.className="keyboard-modal",e.innerHTML=`
22
+ <div class="keyboard-modal-backdrop" onclick="hideKeyboardShortcuts()"></div>
23
+ <div class="keyboard-modal-content">
24
+ <div class="keyboard-modal-header">
25
+ <h3>Keyboard Shortcuts</h3>
26
+ <button class="keyboard-modal-close" onclick="hideKeyboardShortcuts()">×</button>
27
+ </div>
28
+ <div class="keyboard-shortcuts-list">
29
+ <div class="shortcut-row">
30
+ <kbd>/</kbd>
31
+ <span>Focus search</span>
32
+ </div>
33
+ <div class="shortcut-row">
34
+ <kbd>j</kbd>
35
+ <span>Next story</span>
36
+ </div>
37
+ <div class="shortcut-row">
38
+ <kbd>k</kbd>
39
+ <span>Previous story</span>
40
+ </div>
41
+ <div class="shortcut-row">
42
+ <kbd>Enter</kbd>
43
+ <span>Open selected story</span>
44
+ </div>
45
+ <div class="shortcut-row">
46
+ <kbd>Esc</kbd>
47
+ <span>Close / Clear search / Reset</span>
48
+ </div>
49
+ <div class="shortcut-row">
50
+ <kbd>r</kbd>
51
+ <span>Refresh stories</span>
52
+ </div>
53
+ <div class="shortcut-row">
54
+ <kbd>?</kbd>
55
+ <span>Show this help</span>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ `,document.body.appendChild(e)}function Qi(){const e=document.getElementById("keyboard-shortcuts-modal");e&&(e.remove(),Yt=!1)}Object.assign(window,{initKeyboard:da,hideKeyboardShortcuts:Qi});const Ss=[{id:"mock-new-1",repo_name:"repr",author_name:"Mendrika Ramarlina",handle:"pumpfun-trader",verified:!0,signature_status:"all_verified",signed_count:5,total_commits:5,category:"feature",title:"Integrate real-time monitoring system with 6-stage pipeline",problem:"The system lacked real-time market tracking and structured lifecycle management for tokens beyond the initial screening phase.",approach:`Before:
60
+ [Screening]
61
+
62
+ After:
63
+ [Helius WS] --> [Bonding Stream]
64
+ |
65
+ v
66
+ [SQLite DB] <--- [Monitor Service]
67
+ |
68
+ v
69
+ [Dashboard] <--- [Socket.io]`,created_at:new Date(Date.now()-1e3*60*60*24).toISOString(),technologies:["websockets","socket.io","sqlite"],diagram:"const STAGES = ['screening', 'monitoring', 'post-graduation', 'entry-watch', 'holding', 'dropped'];",files:["src/monitor.ts","src/pipeline.ts"]},{id:"mock-new-2",repo_name:"repr-dashboard",author_name:"Mendrika Ramarlina",handle:"pumpfun-trader",verified:!0,category:"feature",title:"SSE-powered screening dashboard",problem:"The long-running screening process was opaque, and there was no interface to view enriched data.",created_at:new Date(Date.now()-1e3*60*60*25).toISOString(),technologies:["server-sent-events(sse)","express.js","rest-api"],files:["dashboard/server.js"]},{id:"mock-1",repo_name:"cli",author_name:"mendrika",verified:!0,signature_status:"all_verified",signed_count:3,total_commits:3,category:"feature",title:"Restore dashboard diff functionality and improve branch suggestions",problem:"The dashboard lacked diff visualization, and internal models required refactoring to support better branch suggestions.",approach:"Executed a refactor of core data models and synthesis logic to improve code representation, then restored the diff view in the dashboard.",created_at:new Date(Date.now()-1e3*60*60*2).toISOString(),technologies:["Python","SQLite","Jinja2"],lessons:["Separating the 'Synthesis' logic from the 'Presentation' logic made the diff rendering 3x faster."],files:["src/dashboard.py","templates/index.html"],implementation_details:["Refactored `DiffGenerator` class to handle binary files gracefully.","Updated Jinja2 templates to loop through file deltas.","Added caching layer for diffs larger than 1MB."],key_snippets:[{file_path:"src/dashboard.py",line_count:15,content:`def get_diff(self, file_path):
70
+ # Check cache first
71
+ if file_path in self.cache:
72
+ return self.cache[file_path]
73
+
74
+ # Generate diff
75
+ diff = git.diff(file_path)
76
+ return diff`}]},{id:"mock-2",repo_name:"repr",author_name:"johndoe",verified:!1,signature_status:"unsigned",signed_count:0,total_commits:2,category:"chore",title:"docs: update CLI usage messages for clarity",problem:"The previous usage messages were too generic and lacked context for specific arguments.",approach:"Updated help strings in Typer/Click definitions to include examples.",created_at:new Date(Date.now()-1e3*60*60*5).toISOString(),technologies:["Python","Typer"],files:["cli/main.py"]},{id:"mock-3",repo_name:"agent-core",author_name:"alice",verified:!1,signature_status:"partially_signed",signed_count:2,total_commits:4,category:"bugfix",title:"Fix memory leak in background worker",problem:"The worker process was consuming increasing RAM over long execution periods.",approach:"Identified a circular reference in the Task object. Implemented weak references for parent links.",created_at:new Date(Date.now()-1e3*60*60*24).toISOString(),technologies:["Rust","Tokio"],diagram:`Task -> (strong) -> Context -> (strong) -> Task [LEAK]
77
+
78
+ Fix:
79
+ Task -> (strong) -> Context -> (weak) -> Task`}];async function Xi(){ka();try{const[o,l]=await Promise.all([getStatus(),getStories(),window.loadRepos?window.loadRepos():Promise.resolve()]);document.getElementById("status-text").innerText=`${o.count} stories · ${o.repos} repos`,store.update("stories",l.stories),Vn(l.stories,o.repos)}catch(o){console.warn("Using mock data:",o),store.update("stories",Ss),document.getElementById("status-text").innerText=`${Ss.length} stories · Demo Mode`,Vn(Ss,3)}ba(),va(),rs(),store.initRouter&&store.initRouter();const e=new URLSearchParams(window.location.search),t=e.get("view"),s=e.get("profile"),n=e.get("user"),i=e.get("story");i?Zi(null,i,!1):s?eo(null,s,!1):n?to(null,decodeURIComponent(n),"",!1):t&&["stories","settings","llm","privacy","repos","cron"].includes(t)&&switchMainView(t,!1)}function Vn(e,t){const s=document.getElementById("stat-total-stories"),n=document.getElementById("stat-total-repos");s&&(s.textContent=e.length),n&&(n.textContent=t)}function va(){const e=document.getElementById("recommended-repos");if(!e)return;const t=store.get("repos")||[],s=document.getElementById("show-more-repos-btn");if(t.length===0){e.innerHTML='<div class="loading-text">No repositories tracked</div>',s&&(s.style.display="none");return}const n=[...t].sort((i,o)=>{var d,p;const l=((d=i.project)==null?void 0:d.name)||i.path.split("/").pop(),a=((p=o.project)==null?void 0:p.name)||o.path.split("/").pop();return l.localeCompare(a)});s&&(s.style.display=n.length>3?"block":"none",e.classList.remove("expanded"),s.textContent="Show more"),e.innerHTML=n.map(i=>{var f;const o=((f=i.project)==null?void 0:f.name)||i.origin_name||i.path.split("/").pop(),l=stringToColor(o),a=o.substring(0,1).toUpperCase(),p=(store.get("stories")||[]).filter(w=>w.repo_name===o).length;return`
80
+ <div class="widget-item" onclick="openProfile(event, '${escapeHtml(o)}')">
81
+ <div class="widget-item-avatar" style="background: ${l}">${a}</div>
82
+ <div class="widget-item-info">
83
+ <div class="widget-item-name">${escapeHtml(o)}</div>
84
+ <div class="widget-item-subtitle">${p} stories</div>
85
+ </div>
86
+ </div>
87
+ `}).join("")}function ya(){const e=document.getElementById("recommended-repos"),t=document.getElementById("show-more-repos-btn");!e||!t||(e.classList.toggle("expanded"),e.classList.contains("expanded")?t.textContent="Show less":t.textContent="Show more")}function ba(){const e=document.getElementById("repo-tabs");if(!e)return;store.get("stories");const t={};let s='<div class="repo-tab active" data-repo="all">All</div>';Object.entries(t).sort((n,i)=>i[1]-n[1]).forEach(([n,i])=>{s+=`<div class="repo-tab" data-repo="${n}">${n}</div>`}),e.innerHTML=s,e.querySelectorAll(".repo-tab").forEach(n=>{n.onclick=()=>{e.querySelectorAll(".repo-tab").forEach(i=>i.classList.remove("active")),n.classList.add("active"),store.update("currentRepo",n.dataset.repo),rs()}})}function rs(){const e=store.get("stories"),t=store.get("currentRepo"),s=store.get("searchQuery");let n=e;t!=="all"&&(n=n.filter(i=>i.repo_name===t)),s&&(n=n.filter(i=>[i.title,i.repo_name,i.category,i.problem,i.approach,...i.technologies||[],...i.files||[]].join(" ").toLowerCase().includes(s))),ls(n)}function wa(e){const t=new Date,s=new Date(e),n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=new Date(s.getFullYear(),s.getMonth(),s.getDate()),o=Math.floor((n-i)/(1e3*60*60*24));if(o===0)return"Today";if(o===1)return"Yesterday";if(o<7)return"This Week";const l={month:"short",day:"numeric"};return s.getFullYear()!==t.getFullYear()&&(l.year="numeric"),s.toLocaleDateString("en-US",l)}function xa(e){const t={};e.forEach(i=>{const o=i.started_at||i.created_at,l=wa(o);t[l]||(t[l]=[]),t[l].push(i)});const s=["Today","Yesterday","This Week"],n=Object.keys(t).sort((i,o)=>{const l=s.indexOf(i),a=s.indexOf(o);return l!==-1&&a!==-1?l-a:l!==-1?-1:a!==-1?1:new Date(t[o][0].started_at||t[o][0].created_at)-new Date(t[i][0].started_at||t[i][0].created_at)});return{groups:t,labels:n}}function ls(e,t="feed",s={}){const n=document.getElementById(t),i=store.get("searchQuery");if(!e||!e.length){i?n.innerHTML=`
88
+ <div class="empty-state">
89
+ <div class="empty-state-title">No matches found</div>
90
+ <div style="font-size: 14px;">Try adjusting your search query or filters</div>
91
+ <button class="btn btn-secondary" onclick="document.getElementById('search-input').value=''; store.update('searchQuery', ''); filterAndRenderStories();" style="margin-top: 16px;">Clear Search</button>
92
+ </div>`:n.innerHTML=`
93
+ <div class="empty-state">
94
+ <div class="empty-state-title">Your timeline is empty</div>
95
+ <div style="font-size: 14px;">Run your first generation to see your development story</div>
96
+ <button class="btn btn-primary" onclick="triggerGenerationClick()" style="margin-top: 16px;">Generate Now</button>
97
+ </div>`;return}if(i){n.innerHTML=e.map(d=>Kn(d,i,s)).join("");return}const{groups:o,labels:l}=xa(e);let a="";l.forEach(d=>{const p=o[d];a+=`
98
+ <div class="date-header">
99
+ <span class="date-header-label">${d}</span>
100
+ </div>
101
+ ${p.map(f=>Kn(f,i,s)).join("")}
102
+ `}),n.innerHTML=a}function Kn(e,t,s={}){const n=timeSince(new Date(e.started_at||e.created_at)),i=e.category||"chore",o=e.repo_name||"cli";let l=e.author_name||e.username||"unknown";const a=e.verified||!1,d=highlightText(cleanTitle(e.title),t),p=e.problem?highlightText(e.problem,t):"",f=e.approach?highlightText(e.approach,t):"";let w=stringToColor(l),T=l.substring(0,1).toUpperCase(),g=highlightText(l,t),h=e.handle?`/r/${e.handle}`:`/r/${o}`;const m=a?'<span class="verified-badge" title="GPG signed commits">✓</span>':"",x=e.author_email||"",y=x?on(x,80):null,v=y?`<img src="${y}" alt="${escapeHtml(l)}" style="width:100%;height:100%;border-radius:50%;object-fit:cover;">`:T,A=[];e.technologies&&e.technologies.length&&e.technologies.slice(0,3).forEach(P=>A.push(P.toLowerCase().replace(/\s+/g,"")));const k=A.length?A.map(P=>`<span class="hashtag" onclick="filterByTag(event, '${P}')">#${highlightText(P,t)}</span>`).join(" "):"",O=p||f;let q="";return e.diagram&&(q+=`<div class="post-media"><pre class="post-diagram">${escapeHtml(e.diagram)}</pre></div>`),e.show&&(q+=`<div class="post-media"><pre class="post-output">${escapeHtml(e.show)}</pre></div>`),`
103
+ <article class="post-card" id="post-${e.id}" onclick="openStory(event, '${e.id}')">
104
+ <div class="post-card-header">
105
+ <div class="post-avatar" style="background:${y?"transparent":w}; cursor: pointer;" onclick="openUser(event, '${escapeHtml(e.author_name||l)}', '${escapeHtml(x)}')">${v}</div>
106
+ <div class="post-header-info">
107
+ <div class="post-header-author">
108
+ <span class="post-author" onclick="openUser(event, '${escapeHtml(e.author_name||l)}', '${escapeHtml(e.author_email||"")}')">${g}${m}</span>
109
+ <span class="post-title-inline"> - ${d}</span>
110
+ </div>
111
+ <div class="post-header-meta">
112
+ <span class="post-handle" onclick="openProfile(event, '${o}')">${h}</span>
113
+ <span class="post-meta-sep">·</span>
114
+ <span class="category-meta ${i}">${i}</span>
115
+ <span class="post-meta-sep">·</span>
116
+ <span class="post-time">${n}</span>
117
+ </div>
118
+ </div>
119
+ </div>
120
+
121
+ <div class="post-content-full">
122
+ <div class="post-text">${O?`${O}`:""}</div>
123
+ ${q}
124
+ ${k?`<div class="post-tags">${k}</div>`:""}
125
+ <div class="post-actions">
126
+ <div class="post-action" title="Comment">
127
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
128
+ <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path>
129
+ </svg>
130
+ <span></span>
131
+ </div>
132
+ <div class="post-action" title="Repost">
133
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
134
+ <polyline points="17 1 21 5 17 9"></polyline>
135
+ <path d="M3 11V9a4 4 0 0 1 4-4h14"></path>
136
+ <polyline points="7 23 3 19 7 15"></polyline>
137
+ <path d="M21 13v2a4 4 0 0 1-4 4H3"></path>
138
+ </svg>
139
+ </div>
140
+ <div class="post-action" title="Like">
141
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
142
+ <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path>
143
+ </svg>
144
+ </div>
145
+ <div class="post-action" title="Share">
146
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
147
+ <path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path>
148
+ <polyline points="16 6 12 2 8 6"></polyline>
149
+ <line x1="12" y1="2" x2="12" y2="15"></line>
150
+ </svg>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </article >
155
+ `}function Zi(e,t,s=!0){const i=store.get("stories").find(P=>P.id===t);if(!i)return;s&&(window.lastScrollY=window.scrollY,document.getElementById("view-profile").style.display==="block"?store.update("previousView","view-profile"):document.getElementById("view-user").style.display==="block"?store.update("previousView","view-user"):store.update("previousView","view-main"),store.pushHistory({view:"detail",storyId:t},`Repr - ${cleanTitle(i.title)} `,` ? story = ${t} `)),["stories","settings","llm","privacy","repos","cron","profile","user"].forEach(P=>{const Y=document.getElementById("view-"+P);Y&&(Y.style.display="none")}),document.getElementById("view-detail").style.display="block",window.scrollTo(0,0);const o=document.getElementById("detail-content"),l=timeSince(new Date(i.started_at||i.created_at)),a=i.category||"update",d=i.repo_name||"cli",p=i.author_name||i.username||"unknown",f=i.verified||!1,w=cleanTitle(i.title),T=f?'<span class="verified-badge" title="GPG signed commits">✓</span>':"";i.signature_status&&(f||i.signature_status,i.signed_count!==void 0&&`${i.signed_count}${i.total_commits}`),i.technologies&&i.technologies.length&&`${i.technologies.map(P=>`<span class="skill-tag">${escapeHtml(P)}</span>`).join("")}`;const g=i.show?`<div class="snippet-block" style="margin-top:16px"><div class="snippet-header">Output</div><div class="snippet-code"><pre>${escapeHtml(i.show)}</pre></div></div>`:"",h=i.diagram?`<div class="diagram-block"><pre>${escapeHtml(i.diagram)}</pre></div>`:"",m=i.files&&i.files.length?`<div class="section-subtitle">Files Touched</div>
156
+ <div class="files-row">
157
+ ${i.files.map(P=>`<span class="file-tag">${escapeHtml(P.split("/").pop())}</span>`).join("")}
158
+ </div>`:"",x=i.key_snippets&&i.key_snippets.length?`<div class="section-subtitle">Key Snippets</div>
159
+ ${i.key_snippets.map(P=>`
160
+ <div class="snippet-block">
161
+ <div class="snippet-header">${escapeHtml(P.file_path)}</div>
162
+ <div class="snippet-code"><pre>${escapeHtml(P.content)}</pre></div>
163
+ </div>
164
+ `).join("")} `:"",y=i.file_changes&&i.file_changes.length?`<div class="section-subtitle">File Changes</div>
165
+ <ul style="padding-left:16px; color:var(--text-secondary); font-size:15px; margin-bottom: 24px; list-style: none;">
166
+ ${i.file_changes.map(P=>{const Y=P.file_path||P.path||"unknown",et=P.change_type||"modified",be=P.insertions||0,je=P.deletions||0,Be=[];be>0&&Be.push(`<span style="color: var(--green);">+${be}</span>`),je>0&&Be.push(`<span style="color: var(--red);">-${je}</span>`);const tt=Be.length>0?Be.join("/"):"0 changes";return`<li style="margin-bottom: 4px; font-family: var(--font-mono); font-size: 13px;">
167
+ <span style="color: var(--text-muted);">[${et}]</span> ${escapeHtml(Y.split("/").pop())}
168
+ <span style="margin-left: 8px; font-size: 12px;">${tt}</span>
169
+ </li>`}).join("")}
170
+ </ul>`:"",v=stringToColor(p),A=p.substring(0,2).toUpperCase(),k=i.author_email||"",O=on(k,96),q=O?`<img src="${O}" alt="${escapeHtml(p)}" style="width:100%;height:100%;border-radius:50%;object-fit:cover;">`:A;o.innerHTML=`
171
+ <div class="post-detail" >
172
+ <div class="post-detail-header">
173
+ <div class="post-avatar" style="background:${O?"transparent":v}; width: 48px; height: 48px; font-size: 18px;" onclick="openUser(event, '${escapeHtml(p)}', '${escapeHtml(k)}')">${q}</div>
174
+ <div class="post-detail-author-info">
175
+ <div class="post-author" onclick="openUser(event, '${escapeHtml(p)}', '${escapeHtml(k)}')" style="font-size: 16px;">${escapeHtml(p)}${T}</div>
176
+ <div class="post-handle" onclick="openProfile(event, '${d}')" style="font-size: 15px;">@${d} · ${l}</div>
177
+ </div>
178
+ <div class="post-detail-category">
179
+ <span class="category ${a}">${a}</span>
180
+ </div>
181
+ </div>
182
+
183
+ <div class="post-detail-body">
184
+ <h1 class="post-detail-title">${escapeHtml(w)}</h1>
185
+ ${i.problem?`<div class="post-detail-text" style="font-size: 18px; color: var(--text-primary); margin-bottom: 24px;">${escapeHtml(i.problem)}</div>`:""}
186
+ ${i.approach?`<div class="post-detail-text" style="font-size: 18px; color: var(--text-secondary); line-height: 1.6;">${escapeHtml(i.approach)}</div>`:""}
187
+
188
+ ${g}
189
+ ${h}
190
+
191
+ ${i.lessons&&i.lessons.length?`
192
+ <div class="insight-box" style="margin-top: 32px;">
193
+ <div class="insight-label">Key Insight</div>
194
+ ${i.lessons.map(P=>`<div class="insight-text">${escapeHtml(P)}</div>`).join("")}
195
+ </div>
196
+ `:""}
197
+
198
+ ${i.implementation_details&&i.implementation_details.length?`
199
+ <div class="section-subtitle">Implementation</div>
200
+ <ul class="detail-list">
201
+ ${i.implementation_details.map(P=>`<li>${escapeHtml(P)}</li>`).join("")}
202
+ </ul>
203
+ `:""}
204
+
205
+ ${m}
206
+ ${x}
207
+ ${y}
208
+ </div>
209
+
210
+ <div class="post-detail-footer">
211
+ <div class="post-actions" style="max-width: none; border-top: 1px solid var(--border); padding-top: 12px; margin-top: 32px;">
212
+ <!-- Same actions as card -->
213
+ <div class="post-action">
214
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"/></svg>
215
+ <span>${i.total_commits||""}</span>
216
+ </div>
217
+ <div class="post-action"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="17 1 21 5 17 9"></polyline><path d="M3 11V9a4 4 0 0 1 4-4h14"></path><polyline points="7 23 3 19 7 15"></polyline><path d="M21 13v2a4 4 0 0 1-4 4H3"></path></svg></div>
218
+ <div class="post-action"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path></svg></div>
219
+ <div class="post-action"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"></path><polyline points="16 6 12 2 8 6"></polyline><line x1="12" y1="2" x2="12" y2="15"></line></svg></div>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ `}function eo(e,t,s=!0){e&&e.stopPropagation(),s&&(window.lastScrollY=window.scrollY,store.update("previousView","view-profile"),store.pushHistory({view:"profile",repoName:t},`Repr - @${t} `,` ? profile = ${t} `)),["stories","settings","llm","privacy","repos","cron","detail","user"].forEach(h=>{const m=document.getElementById("view-"+h);m&&(m.style.display="none")}),document.getElementById("view-profile").style.display="block",window.scrollTo(0,0);const n=stringToColor(t),i=t.substring(0,1).toUpperCase(),o=document.getElementById("profile-view-avatar");o.style.background=n,o.textContent=i,document.getElementById("profile-view-name").textContent=t,document.getElementById("profile-nav-name").textContent=t,document.getElementById("profile-view-handle").textContent="@"+t;const l=Math.abs(stringToColor(t+"1").hashCode()||0)%360,a=Math.abs(stringToColor(t+"2").hashCode()||0)%360;document.getElementById("profile-cover").style.background=`linear - gradient(135deg, hsl(${l}, 70 %, 80 %) 0 %, hsl(${a}, 70 %, 85 %) 100 %)`;const p=store.get("stories").filter(h=>h.repo_name===t),f=p.reduce((h,m)=>h+(m.total_commits||0),0),w=new Set(p.map(h=>h.author_name)).size;document.getElementById("profile-stories-count").textContent=p.length,document.getElementById("profile-commits-count").textContent=f,document.getElementById("profile-contributors-count").textContent=w,document.getElementById("profile-stats-count").textContent=`+ ${w} contributors`;const T=p[0],g=T?timeSince(new Date(T.started_at||T.created_at)):"a while ago";document.getElementById("profile-view-bio").textContent=`Repository tracked by Repr.Active ${g}. Contains ${p.length} stories.`,ls(p,"profile-feed",{})}function _a(e){function t(v,A){return v<<A|v>>>32-A}function s(v,A){const k=(v&65535)+(A&65535);return(v>>16)+(A>>16)+(k>>16)<<16|k&65535}function n(v,A,k){return v&A|~v&k}function i(v,A,k){return v&k|A&~k}function o(v,A,k){return v^A^k}function l(v,A,k){return A^(v|~k)}function a(v,A,k,O,q,P,Y){return s(t(s(s(v,n(A,k,O)),s(q,Y)),P),A)}function d(v,A,k,O,q,P,Y){return s(t(s(s(v,i(A,k,O)),s(q,Y)),P),A)}function p(v,A,k,O,q,P,Y){return s(t(s(s(v,o(A,k,O)),s(q,Y)),P),A)}function f(v,A,k,O,q,P,Y){return s(t(s(s(v,l(A,k,O)),s(q,Y)),P),A)}function w(v){const A=(v.length+8>>6)+1,k=Array(A*16).fill(0);for(let O=0;O<v.length;O++)k[O>>2]|=v.charCodeAt(O)<<O%4*8;return k[v.length>>2]|=128<<v.length%4*8,k[A*16-2]=v.length*8,k}function T(v){let A="";for(let k=0;k<4;k++)A+=(v>>k*8&255).toString(16).padStart(2,"0");return A}const g=w(e);let h=1732584193,m=4023233417,x=2562383102,y=271733878;for(let v=0;v<g.length;v+=16){const A=h,k=m,O=x,q=y;h=a(h,m,x,y,g[v],7,3614090360),y=a(y,h,m,x,g[v+1],12,3905402710),x=a(x,y,h,m,g[v+2],17,606105819),m=a(m,x,y,h,g[v+3],22,3250441966),h=a(h,m,x,y,g[v+4],7,4118548399),y=a(y,h,m,x,g[v+5],12,1200080426),x=a(x,y,h,m,g[v+6],17,2821735955),m=a(m,x,y,h,g[v+7],22,4249261313),h=a(h,m,x,y,g[v+8],7,1770035416),y=a(y,h,m,x,g[v+9],12,2336552879),x=a(x,y,h,m,g[v+10],17,4294925233),m=a(m,x,y,h,g[v+11],22,2304563134),h=a(h,m,x,y,g[v+12],7,1804603682),y=a(y,h,m,x,g[v+13],12,4254626195),x=a(x,y,h,m,g[v+14],17,2792965006),m=a(m,x,y,h,g[v+15],22,1236535329),h=d(h,m,x,y,g[v+1],5,4129170786),y=d(y,h,m,x,g[v+6],9,3225465664),x=d(x,y,h,m,g[v+11],14,643717713),m=d(m,x,y,h,g[v],20,3921069994),h=d(h,m,x,y,g[v+5],5,3593408605),y=d(y,h,m,x,g[v+10],9,38016083),x=d(x,y,h,m,g[v+15],14,3634488961),m=d(m,x,y,h,g[v+4],20,3889429448),h=d(h,m,x,y,g[v+9],5,568446438),y=d(y,h,m,x,g[v+14],9,3275163606),x=d(x,y,h,m,g[v+3],14,4107603335),m=d(m,x,y,h,g[v+8],20,1163531501),h=d(h,m,x,y,g[v+13],5,2850285829),y=d(y,h,m,x,g[v+2],9,4243563512),x=d(x,y,h,m,g[v+7],14,1735328473),m=d(m,x,y,h,g[v+12],20,2368359562),h=p(h,m,x,y,g[v+5],4,4294588738),y=p(y,h,m,x,g[v+8],11,2272392833),x=p(x,y,h,m,g[v+11],16,1839030562),m=p(m,x,y,h,g[v+14],23,4259657740),h=p(h,m,x,y,g[v+1],4,2763975236),y=p(y,h,m,x,g[v+4],11,1272893353),x=p(x,y,h,m,g[v+7],16,4139469664),m=p(m,x,y,h,g[v+10],23,3200236656),h=p(h,m,x,y,g[v+13],4,681279174),y=p(y,h,m,x,g[v],11,3936430074),x=p(x,y,h,m,g[v+3],16,3572445317),m=p(m,x,y,h,g[v+6],23,76029189),h=p(h,m,x,y,g[v+9],4,3654602809),y=p(y,h,m,x,g[v+12],11,3873151461),x=p(x,y,h,m,g[v+15],16,530742520),m=p(m,x,y,h,g[v+2],23,3299628645),h=f(h,m,x,y,g[v],6,4096336452),y=f(y,h,m,x,g[v+7],10,1126891415),x=f(x,y,h,m,g[v+14],15,2878612391),m=f(m,x,y,h,g[v+5],21,4237533241),h=f(h,m,x,y,g[v+12],6,1700485571),y=f(y,h,m,x,g[v+3],10,2399980690),x=f(x,y,h,m,g[v+10],15,4293915773),m=f(m,x,y,h,g[v+1],21,2240044497),h=f(h,m,x,y,g[v+8],6,1873313359),y=f(y,h,m,x,g[v+15],10,4264355552),x=f(x,y,h,m,g[v+6],15,2734768916),m=f(m,x,y,h,g[v+13],21,1309151649),h=f(h,m,x,y,g[v+4],6,4149444226),y=f(y,h,m,x,g[v+11],10,3174756917),x=f(x,y,h,m,g[v+2],15,718787259),m=f(m,x,y,h,g[v+9],21,3951481745),h=s(h,A),m=s(m,k),x=s(x,O),y=s(y,q)}return T(h)+T(m)+T(x)+T(y)}function on(e,t=134){return e?`https://www.gravatar.com/avatar/${_a(e.trim().toLowerCase())}?s=${t}&d=identicon`:null}function to(e,t,s,n=!0){e&&e.stopPropagation(),n&&(window.lastScrollY=window.scrollY,store.update("previousView","view-user"),store.pushHistory({view:"user",authorName:t},`Repr - ${t}`,`?user=${encodeURIComponent(t)}`)),["stories","settings","llm","privacy","repos","cron","detail","profile"].forEach(x=>{const y=document.getElementById("view-"+x);y&&(y.style.display="none")}),document.getElementById("view-user").style.display="block",window.scrollTo(0,0);const i=stringToColor(t),o=t.substring(0,1).toUpperCase(),l=document.getElementById("user-view-avatar"),a=on(s);a?(l.innerHTML=`<img src="${a}" alt="${escapeHtml(t)}" style="width:100%;height:100%;border-radius:50%;object-fit:cover;">`,l.style.background="transparent"):(l.innerHTML=o,l.style.background=i),document.getElementById("user-view-name").textContent=t,document.getElementById("user-nav-name").textContent=t,document.getElementById("user-view-handle").textContent="@"+t.toLowerCase().replace(/\s+/g,"");const d=Math.abs((t+"1").hashCode()||0)%360,p=Math.abs((t+"2").hashCode()||0)%360;document.getElementById("user-cover").style.background=`linear-gradient(135deg, hsl(${d}, 60%, 75%) 0%, hsl(${p}, 60%, 80%) 100%)`;const w=store.get("stories").filter(x=>x.author_name===t),T=w.reduce((x,y)=>x+(y.total_commits||0),0),g=new Set(w.map(x=>x.repo_name)).size;document.getElementById("user-stories-count").textContent=w.length,document.getElementById("user-commits-count").textContent=T,document.getElementById("user-contributors-count").textContent=g,document.getElementById("user-stats-count").textContent=`+${g} repos`;const h=w[0],m=h?timeSince(new Date(h.started_at||h.created_at)):"a while ago";document.getElementById("user-view-bio").textContent=`Developer tracked by Repr. Active ${m}. ${w.length} stories across ${g} repositories.`,ls(w,"user-feed",{})}String.prototype.hashCode=function(){let e=0,t,s;if(this.length===0)return e;for(t=0;t<this.length;t++)s=this.charCodeAt(t),e=(e<<5)-e+s,e|=0;return e};function Sa(){const e=document.getElementById("view-profile"),t=document.getElementById("view-user"),s=document.getElementById("view-detail");e&&(e.style.display="none"),t&&(t.style.display="none"),s&&(s.style.display="none"),document.getElementById("view-stories").style.display="block",history.replaceState({view:"main",mainView:"stories"},"Repr",window.location.pathname),window.lastScrollY&&window.scrollTo(0,window.lastScrollY)}async function Ea(){showToast("Refreshing...","success"),await Xi()}async function Ca(){if(confirm("Start generating stories now? This will run in the background."))try{(await triggerGeneration()).success?showToast("Generation started","success"):showToast("Failed to start generation","error")}catch{showToast("Error triggering generation","error")}}function ka(e="feed",t=3){const s=document.getElementById(e);if(!s)return;let n="";for(let i=0;i<t;i++)n+=`
224
+ <div class="skeleton-card">
225
+ <div class="skeleton-avatar skeleton"></div>
226
+ <div class="skeleton-body">
227
+ <div class="skeleton-header skeleton"></div>
228
+ <div class="skeleton-title skeleton"></div>
229
+ <div class="skeleton-text skeleton"></div>
230
+ <div class="skeleton-text skeleton" style="width: 60%"></div>
231
+ </div>
232
+ </div>
233
+ `;s.innerHTML=n}function Ta(e,t){e&&e.stopPropagation();const s=document.getElementById("search-input");s.value=t,store.update("searchQuery",t.toLowerCase()),rs(),switchMainView("stories",!1)}window.openStory=Zi;window.openProfile=eo;window.openUser=to;window.filterByTag=Ta;window.triggerGenerationClick=Ca;window.goBack=Sa;window.refreshStories=Ea;window.toggleSubscribedRepos=ya;Object.assign(window,{initStories:Xi,renderStories:ls,filterAndRenderStories:rs});function Ia(e,t=!0){store.update("currentMainView",e),t&&store.pushHistory({view:"main",mainView:e},`Repr - ${e.charAt(0).toUpperCase()+e.slice(1)}`,`?view=${e}`),document.querySelectorAll(".sidebar-item").forEach(i=>{i.classList.toggle("active",i.dataset.view===e)}),document.querySelectorAll(".mobile-nav-item").forEach(i=>{const o=i.querySelector("span:last-child").textContent.toLowerCase();i.classList.toggle("active",e.startsWith(o))}),document.querySelector(".sidebar").classList.contains("open")&&toggleSidebar(),["stories","settings","llm","privacy","repos","cron","detail","profile"].forEach(i=>{const o=document.getElementById("view-"+i);o&&(o.style.display="none")});const n=document.getElementById("view-"+e);n&&(n.style.display="block"),["settings","llm","privacy","cron"].includes(e)&&!store.get("config")&&so(),e==="repos"&&loadRepos(),e==="cron"&&Fa()}function $a(e){if(store.update("currentSettingsTab",e),document.querySelectorAll(".settings-nav-item").forEach(t=>{t.classList.toggle("active",t.dataset.tab===e)}),document.getElementById("settings-form").style.display=e==="form"?"block":"none",document.getElementById("settings-json").style.display=e==="json"?"block":"none",e==="json"){const t=store.get("config");t&&(document.getElementById("json-editor").value=JSON.stringify(t,null,2))}}async function so(){try{const e=await getConfig();store.batchUpdate({config:e,configDirty:!1}),no(e),document.getElementById("json-editor").value=JSON.stringify(e,null,2),cs()}catch{showToast("Failed to load config","error")}}function no(e){var t,s,n,i,o,l,a,d,p,f,w,T,g,h,m,x,y,v,A;document.getElementById("llm-default").value=((t=e.llm)==null?void 0:t.default)||"local",document.getElementById("llm-local-provider").value=((s=e.llm)==null?void 0:s.local_provider)||"",document.getElementById("llm-local-model").value=((n=e.llm)==null?void 0:n.local_model)||"",document.getElementById("llm-local-url").value=((i=e.llm)==null?void 0:i.local_api_url)||"",document.getElementById("gen-batch-size").value=((o=e.generation)==null?void 0:o.batch_size)||5,document.getElementById("gen-max-commits").value=((l=e.generation)==null?void 0:l.max_commits_per_batch)||50,document.getElementById("gen-template").value=((a=e.generation)==null?void 0:a.default_template)||"resume",document.getElementById("gen-auto-hook").checked=((d=e.generation)==null?void 0:d.auto_generate_on_hook)||!1,document.getElementById("privacy-local-only").checked=((p=e.privacy)==null?void 0:p.lock_local_only)||!1,document.getElementById("privacy-redact-paths").checked=((f=e.llm)==null?void 0:f.cloud_redact_paths)!==!1,document.getElementById("privacy-redact-emails").checked=((w=e.llm)==null?void 0:w.cloud_redact_emails)||!1,document.getElementById("privacy-send-diffs").checked=((T=e.llm)==null?void 0:T.cloud_send_diffs)||!1,document.getElementById("privacy-visibility").value=((g=e.privacy)==null?void 0:g.profile_visibility)||"public",document.getElementById("cron-interval").value=((h=e.cron)==null?void 0:h.interval_hours)||4,document.getElementById("cron-min-commits").value=((m=e.cron)==null?void 0:m.min_commits)||3,document.getElementById("cron-installed").checked=((x=e.cron)==null?void 0:x.installed)||!1,document.getElementById("cron-paused").checked=((y=e.cron)==null?void 0:y.paused)||!1,Wn("default-paths-container",((v=e.settings)==null?void 0:v.default_paths)||["~/code"],"path"),Wn("skip-patterns-container",((A=e.settings)==null?void 0:A.skip_patterns)||[],"pattern")}function Ba(){const e=JSON.parse(JSON.stringify(store.get("config")));return e.llm=e.llm||{},e.llm.default=document.getElementById("llm-default").value,e.llm.local_provider=document.getElementById("llm-local-provider").value||null,e.llm.local_model=document.getElementById("llm-local-model").value||null,e.llm.local_api_url=document.getElementById("llm-local-url").value||null,e.generation=e.generation||{},e.generation.batch_size=parseInt(document.getElementById("gen-batch-size").value)||5,e.generation.max_commits_per_batch=parseInt(document.getElementById("gen-max-commits").value)||50,e.generation.default_template=document.getElementById("gen-template").value,e.generation.auto_generate_on_hook=document.getElementById("gen-auto-hook").checked,e.privacy=e.privacy||{},e.privacy.lock_local_only=document.getElementById("privacy-local-only").checked,e.privacy.profile_visibility=document.getElementById("privacy-visibility").value,e.llm.cloud_redact_paths=document.getElementById("privacy-redact-paths").checked,e.llm.cloud_redact_emails=document.getElementById("privacy-redact-emails").checked,e.llm.cloud_send_diffs=document.getElementById("privacy-send-diffs").checked,e.cron=e.cron||{},e.cron.interval_hours=parseInt(document.getElementById("cron-interval").value)||4,e.cron.min_commits=parseInt(document.getElementById("cron-min-commits").value)||3,e.cron.installed=document.getElementById("cron-installed").checked,e.cron.paused=document.getElementById("cron-paused").checked,e.settings=e.settings||{},e.settings.default_paths=Jn("default-paths-container"),e.settings.skip_patterns=Jn("skip-patterns-container"),e}async function Ra(){try{const e=Ba();await updateConfig(e),store.batchUpdate({config:e,configDirty:!1}),cs(),showToast("Configuration saved","success")}catch{showToast("Failed to save config","error")}}async function Aa(){try{const e=document.getElementById("json-editor").value,t=JSON.parse(e);await updateConfig(t),store.batchUpdate({config:t,configDirty:!1}),no(t),cs(),showToast("Configuration saved","success")}catch(e){e instanceof SyntaxError?showToast("Invalid JSON syntax","error"):showToast("Failed to save config","error")}}function Ma(){try{const e=document.getElementById("json-editor"),t=JSON.parse(e.value);e.value=JSON.stringify(t,null,2)}catch{showToast("Invalid JSON - cannot format","error")}}function as(){store.update("configDirty",!0),cs()}function cs(){const e=store.get("configDirty");["save-btn","save-json-btn","save-llm-btn","save-privacy-btn","save-cron-btn"].forEach(s=>{const n=document.getElementById(s);n&&(n.disabled=!e)})}async function Fa(){try{const e=await getCronStatus();store.update("cronStatus",e),Da(e)}catch{document.getElementById("cron-status").innerHTML='<div class="loading-text">Failed to load cron status</div>'}}function Da(e){const t=document.getElementById("cron-status");let s="Not installed",n="inactive";e.installed&&(e.paused?(s="Paused",n="paused"):(s="Active",n="active")),t.innerHTML=`
234
+ <div class="cron-status-row">
235
+ <span class="cron-status-label">Status</span>
236
+ <span class="cron-status-value ${n}">${s}</span>
237
+ </div>
238
+ <div class="cron-status-row">
239
+ <span class="cron-status-label">Interval</span>
240
+ <span class="cron-status-value">${e.interval_hours?e.interval_hours+" hours":"Not set"}</span>
241
+ </div>
242
+ <div class="cron-status-row">
243
+ <span class="cron-status-label">Min Commits</span>
244
+ <span class="cron-status-value">${e.min_commits||"Not set"}</span>
245
+ </div>
246
+ `}function Wn(e,t,s){const n=document.getElementById(e),i=n.querySelector("input");n.querySelectorAll(".tag-item").forEach(o=>o.remove()),t.forEach(o=>{const l=document.createElement("span");l.className="tag-item",l.innerHTML=`${escapeHtml(o)}<span class="tag-remove" onclick="removeTag(this, '${s}')">&times;</span>`,n.insertBefore(l,i)})}function Jn(e){const t=document.getElementById(e);return Array.from(t.querySelectorAll(".tag-item")).map(s=>s.textContent.slice(0,-1))}function Pa(e,t){e.parentElement.remove(),as()}function Oa(e){if(e.key==="Enter"){e.preventDefault();const t=e.target,s=t.value.trim();if(s){const n=t.parentElement,i=document.createElement("span");i.className="tag-item",i.innerHTML=`${escapeHtml(s)}<span class="tag-remove" onclick="removeTag(this, 'path')">&times;</span>`,n.insertBefore(i,t),t.value="",as()}}}function ja(e){if(e.key==="Enter"){e.preventDefault();const t=e.target,s=t.value.trim();if(s){const n=t.parentElement,i=document.createElement("span");i.className="tag-item",i.innerHTML=`${escapeHtml(s)}<span class="tag-remove" onclick="removeTag(this, 'pattern')">&times;</span>`,n.insertBefore(i,t),t.value="",as()}}}window.switchMainView=Ia;window.loadConfig=so;window.saveConfig=Ra;window.saveJsonConfig=Aa;window.formatJson=Ma;window.switchSettingsTab=$a;Object.assign(window,{handlePathInput:Oa,handlePatternInput:ja,removeTag:Pa,markConfigDirty:as});async function ut(){try{const e=await getRepos();store.update("repos",e.repos||[]),Ha()}catch{document.getElementById("repos-list").innerHTML='<div class="loading-text">Failed to load repositories</div>'}}function Ha(){const e=store.get("repos"),t=document.getElementById("repos-list");if(!e.length){t.innerHTML=`
247
+ <div class="empty-state">
248
+ <div class="empty-state-title">No repositories tracked</div>
249
+ <div>Add a repository path above to start tracking</div>
250
+ </div>`;return}t.innerHTML=e.map(s=>{var w;const i=((w=s.project)==null?void 0:w.name)||""||s.origin_name||s.path.split("/").pop(),o=s.paused,l=!s.exists,a=s.hook_installed;let d="active";l?d="missing":o&&(d="paused");const p=s.origin?Ka(s.origin):null,f=escapeHtml(s.path).replace(/'/g,"\\'");return`
251
+ <div class="repo-item ${o?"paused":""} ${l?"missing":""}">
252
+ <div class="repo-info">
253
+ <div class="repo-name-row">
254
+ <span class="repo-name" id="repo-name-${f}" onclick="editRepoName('${f}')">${escapeHtml(i)}</span>
255
+ <button class="repo-edit-btn" onclick="editRepoName('${f}')" title="Edit name">✎</button>
256
+ ${p?`<a href="${escapeHtml(p)}" target="_blank" rel="noopener noreferrer" class="repo-link" title="Open repository"><span class="repo-link-icon">&#8599;</span></a>`:""}
257
+ </div>
258
+ <div class="repo-path">${escapeHtml(s.path)}</div>
259
+ <div class="repo-status">
260
+ <span class="repo-badge ${d}">${l?"Missing":o?"Paused":"Active"}</span>
261
+ ${a?'<span class="repo-badge hook">Hook</span>':""}
262
+ ${s.last_sync?`<span style="font-size: 11px; color: var(--text-muted);">Last sync: ${new Date(s.last_sync).toLocaleDateString()}</span>`:""}
263
+ </div>
264
+ </div>
265
+ <div class="repo-actions">
266
+ ${o?`<button class="repo-action-btn" onclick="resumeRepoClick('${f}')">Resume</button>`:`<button class="repo-action-btn" onclick="pauseRepoClick('${f}')">Pause</button>`}
267
+ <button class="repo-action-btn danger" onclick="removeRepoClick('${f}')">Remove</button>
268
+ </div>
269
+ </div>
270
+ `}).join("")}async function La(){const e=document.getElementById("add-repo-path"),t=e.value.trim();if(!t){showToast("Please enter a repository path","error");return}try{const s=await addRepo(t);s.success?(e.value="",showToast("Repository added","success"),ut()):showToast(s.error||"Failed to add repository","error")}catch{showToast("Failed to add repository","error")}}async function Na(e){if(confirm("Remove this repository from tracking?"))try{(await removeRepo(e)).success?(showToast("Repository removed","success"),ut()):showToast("Failed to remove repository","error")}catch{showToast("Failed to remove repository","error")}}async function Ua(e){try{(await pauseRepo(e)).success?(showToast("Repository paused","success"),ut()):showToast("Failed to pause repository","error")}catch{showToast("Failed to pause repository","error")}}async function Va(e){try{(await resumeRepo(e)).success?(showToast("Repository resumed","success"),ut()):showToast("Failed to resume repository","error")}catch{showToast("Failed to resume repository","error")}}function Ka(e){if(!e)return null;if(e.startsWith("http://")||e.startsWith("https://"))return e;const t=e.match(/^git@([^:]+):(.+?)(\.git)?$/);if(t){const n=t[1],i=t[2];return`https://${n}/${i}`}const s=e.match(/^git:\/\/(.+?)(\.git)?$/);return s?`https://${s[1]}`:e}function Wa(e){var l;const s=store.get("repos").find(a=>a.path===e);if(!s)return;const n=((l=s.project)==null?void 0:l.name)||s.origin_name||s.path.split("/").pop();document.getElementById("edit-repo-modal");const i=document.getElementById("edit-repo-name-input"),o=document.getElementById("edit-repo-path-input");i.value=n,o.value=e,openModal("edit-repo-modal"),setTimeout(()=>{i.focus(),i.select()},100)}async function Ja(){const e=document.getElementById("edit-repo-name-input"),t=document.getElementById("edit-repo-path-input"),s=e.value.trim(),n=t.value;if(s===""){showToast("Name cannot be empty","error");return}const i=document.getElementById("save-repo-btn"),o=i.textContent;i.disabled=!0,i.textContent="Saving...";try{const l=await renameRepo(n,s);l.success?(showToast("Project renamed","success"),closeModal("edit-repo-modal"),ut()):showToast(l.error||"Failed to rename project","error")}catch{showToast("Failed to rename project","error")}finally{i.disabled=!1,i.textContent=o}}window.addRepoClick=La;window.editRepoName=Wa;window.saveRepoEdit=Ja;Object.assign(window,{loadRepos:ut,removeRepoClick:Na,pauseRepoClick:Ua,resumeRepoClick:Va});const Ga={__name:"App",setup(e){return Ci(()=>{/(Mac|iPhone|iPad|iPod)/i.test(navigator.platform)||document.body.classList.add("is-windows"),window.initTheme&&window.initTheme(),window.initKeyboard&&window.initKeyboard();const t=document.getElementById("search-input");t&&t.addEventListener("input",s=>{window.store&&(window.store.update("searchQuery",s.target.value.trim().toLowerCase()),window.filterAndRenderStories&&window.filterAndRenderStories())}),window.initStories&&window.initStories()}),(t,s)=>(qr(),Qr(me,null,[s[0]||(s[0]=r("div",{class:"dashboard",id:"view-main"},[r("div",{class:"sidebar-overlay",onclick:"toggleSidebar()"}),r("aside",{class:"sidebar"},[r("div",{class:"sidebar-header"},[r("div",{class:"sidebar-logo"},[r("div",{class:"sidebar-avatar"},"R"),r("div",null,[r("div",{class:"sidebar-title"},"Repr"),r("div",{class:"sidebar-subtitle"},"Dashboard")])])]),r("nav",{class:"sidebar-nav"},[r("div",{class:"sidebar-section"},[r("div",{class:"sidebar-section-title"},"Overview"),r("div",{class:"sidebar-item active","data-view":"stories",onclick:"switchMainView('stories')",role:"button","aria-label":"View Stories"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),r("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"})])]),ie(" Stories ")]),r("div",{class:"sidebar-item","data-view":"repos",onclick:"switchMainView('repos')",role:"button","aria-label":"View Repositories"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])]),ie(" Repositories ")])]),r("div",{class:"sidebar-section"},[r("div",{class:"sidebar-section-title"},"Configuration"),r("div",{class:"sidebar-item","data-view":"settings",onclick:"switchMainView('settings')",role:"button","aria-label":"Settings"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("circle",{cx:"12",cy:"12",r:"3"}),r("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})])]),ie(" Settings ")]),r("div",{class:"sidebar-item","data-view":"llm",onclick:"switchMainView('llm')",role:"button","aria-label":"LLM Configuration"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M12 2a10 10 0 0 1 10 10 10 10 0 0 1-10 10 10 10 0 0 1-10-10 10 10 0 0 1 10-10z"}),r("path",{d:"M8 14s1.5 2 4 2 4-2 4-2"}),r("line",{x1:"9",y1:"9",x2:"9.01",y2:"9"}),r("line",{x1:"15",y1:"9",x2:"15.01",y2:"9"})])]),ie(" LLM ")]),r("div",{class:"sidebar-item","data-view":"privacy",onclick:"switchMainView('privacy')",role:"button","aria-label":"Privacy Settings"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),r("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})])]),ie(" Privacy ")]),r("div",{class:"sidebar-item","data-view":"cron",onclick:"switchMainView('cron')",role:"button","aria-label":"Cron Settings"},[r("span",{class:"sidebar-icon","aria-hidden":"true"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("circle",{cx:"12",cy:"12",r:"10"}),r("polyline",{points:"12 6 12 12 16 14"})])]),ie(" Cron ")])])]),r("div",{class:"sidebar-footer"},[r("div",{class:"sidebar-status"},[r("span",{class:"status-dot"}),r("span",{id:"status-text"},"Loading...")]),r("div",{class:"sidebar-item theme-toggle-compact",id:"theme-toggle",onclick:"toggleTheme()"},[r("span",{class:"sidebar-icon theme-toggle-icon"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})])]),ie(" Toggle Theme ")])])]),r("main",{class:"main-content"},[r("div",{class:"main-layout"},[r("div",{class:"feed-column"},[r("div",{id:"view-stories"},[r("div",{class:"tabs-bar"},[r("div",{class:"mobile-menu-toggle",onclick:"toggleSidebar()"},[r("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),r("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),r("line",{x1:"3",y1:"18",x2:"21",y2:"18"})])]),r("div",{class:"view-title"},"Home"),r("div",{class:"search-container"},[r("div",{class:"search-icon"},[r("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[r("circle",{cx:"11",cy:"11",r:"8"}),r("path",{d:"m21 21-4.35-4.35"})])]),r("input",{type:"text",id:"search-input",class:"search-input",placeholder:"Search stories..."}),r("kbd",{class:"search-shortcut"},[r("span",{class:"search-shortcut-mod"}),ie("K")])])]),r("div",{class:"feed-wrapper"},[r("div",{class:"feed",id:"feed"})])]),r("div",{id:"view-detail",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"back-button",onclick:"goBack()"},[r("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),r("polyline",{points:"12 19 5 12 12 5"})])]),r("div",{class:"view-title"},"Post")]),r("div",{id:"detail-content"})]),r("div",{id:"view-profile",style:{display:"none"}},[r("div",{class:"profile-container"},[r("div",{class:"profile-header-nav"},[r("div",{class:"back-button",onclick:"goBack()"},[r("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),r("polyline",{points:"12 19 5 12 12 5"})])]),r("div",{class:"profile-nav-title",id:"profile-nav-name"},"Profile")]),r("div",{class:"profile-cover",id:"profile-cover"}),r("div",{class:"profile-content"},[r("div",{class:"profile-top-section"},[r("div",{class:"profile-avatar-wrapper"},[r("div",{class:"profile-avatar-large",id:"profile-view-avatar"},"R")]),r("div",{class:"profile-actions"})]),r("div",{class:"profile-details"},[r("div",{class:"profile-name-row"},[r("h1",{id:"profile-view-name"},"Repo Name"),r("span",{class:"verified-badge-large",id:"profile-verified-badge",style:{display:"none"}},[r("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[r("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})])])]),r("div",{class:"profile-handle",id:"profile-view-handle"},"@repo"),r("div",{class:"profile-bio",id:"profile-view-bio"}," Repository timeline and activity. "),r("div",{class:"profile-metadata-row"},[r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"📦"),r("span",{id:"profile-repo-link"},"Repository")]),r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"🔗"),r("span",{id:"profile-web-link"},"Website")]),r("div",{class:"profile-pill-count",id:"profile-stats-count"},"+2")]),r("div",{class:"profile-stats-row"},[r("span",{class:"stat-item"},[r("strong",{id:"profile-stories-count"},"0"),ie(),r("span",{class:"stat-label"},"Stories")]),r("span",{class:"stat-item"},[r("strong",{id:"profile-commits-count"},"0"),ie(),r("span",{class:"stat-label"},"Commits")]),r("span",{class:"stat-item"},[r("strong",{id:"profile-contributors-count"},"0"),ie(),r("span",{class:"stat-label"},"Contributors")])])]),r("div",{class:"feed-container",style:{"padding-top":"0"}},[r("div",{class:"feed",id:"profile-feed"})])])])]),r("div",{id:"view-user",style:{display:"none"}},[r("div",{class:"profile-container"},[r("div",{class:"profile-header-nav"},[r("div",{class:"back-button",onclick:"goBack()"},[r("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[r("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),r("polyline",{points:"12 19 5 12 12 5"})])]),r("div",{class:"profile-nav-title",id:"user-nav-name"},"User Profile")]),r("div",{class:"profile-cover",id:"user-cover"}),r("div",{class:"profile-content"},[r("div",{class:"profile-top-section"},[r("div",{class:"profile-avatar-wrapper"},[r("div",{class:"profile-avatar-large",id:"user-view-avatar"},"U")]),r("div",{class:"profile-actions"})]),r("div",{class:"profile-details"},[r("div",{class:"profile-name-row"},[r("h1",{id:"user-view-name"},"User Name"),r("span",{class:"verified-badge-large",id:"user-verified-badge",style:{display:"none"}},[r("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[r("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})])])]),r("div",{class:"profile-handle",id:"user-view-handle"},"@user"),r("div",{class:"profile-bio",id:"user-view-bio"}," User activity. "),r("div",{class:"profile-metadata-row"},[r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"📦"),r("span",{id:"user-repo-link"},"Github")]),r("div",{class:"profile-pill"},[r("span",{class:"pill-icon"},"🔗"),r("span",{id:"user-web-link"},"Website")]),r("div",{class:"profile-pill-count",id:"user-stats-count"},"+2")]),r("div",{class:"profile-stats-row"},[r("span",{class:"stat-item"},[r("strong",{id:"user-stories-count"},"0"),ie(),r("span",{class:"stat-label"},"Stories")]),r("span",{class:"stat-item"},[r("strong",{id:"user-commits-count"},"0"),ie(),r("span",{class:"stat-label"},"Commits")]),r("span",{class:"stat-item"},[r("strong",{id:"user-contributors-count"},"0"),ie(),r("span",{class:"stat-label"},"Repos")])])]),r("div",{class:"feed-container",style:{"padding-top":"0"}},[r("div",{class:"feed",id:"user-feed"})])])])]),r("div",{id:"view-settings",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Settings")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("nav",{class:"settings-nav"},[r("div",{class:"settings-nav-item active","data-tab":"form",onclick:"switchSettingsTab('form')"},"Form"),r("div",{class:"settings-nav-item","data-tab":"json",onclick:"switchSettingsTab('json')"},"JSON")]),r("div",{id:"settings-form",class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Generation"),r("div",{class:"settings-row"},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Commits per Story"),r("input",{type:"number",class:"settings-input",id:"gen-batch-size",min:"1",max:"50",oninput:"markConfigDirty()"}),r("div",{class:"settings-hint"},"How many commits to group into a single story")]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Max Commits per Batch"),r("input",{type:"number",class:"settings-input",id:"gen-max-commits",min:"1",max:"200",oninput:"markConfigDirty()"})])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Template"),r("select",{class:"settings-select",id:"gen-template",onchange:"markConfigDirty()"},[r("option",{value:"resume"},"Resume"),r("option",{value:"technical"},"Technical"),r("option",{value:"narrative"},"Narrative")])]),r("div",{class:"settings-checkbox-row"},[r("input",{type:"checkbox",class:"settings-checkbox",id:"gen-auto-hook",onchange:"markConfigDirty()"}),r("label",{class:"settings-checkbox-label",for:"gen-auto-hook"},"Auto-generate on git hook")])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Paths"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Scan Paths"),r("div",{class:"tags-input",id:"default-paths-container"},[r("input",{type:"text",placeholder:"Add path and press Enter",onkeydown:"handlePathInput(event)"})]),r("div",{class:"settings-hint"},"Directories to scan for git repositories")]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Skip Patterns"),r("div",{class:"tags-input",id:"skip-patterns-container"},[r("input",{type:"text",placeholder:"Add pattern and press Enter",onkeydown:"handlePatternInput(event)"})]),r("div",{class:"settings-hint"},"Directory names to skip when scanning")])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveConfig()",id:"save-btn",disabled:""},"Save Changes"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset")])]),r("div",{id:"settings-json",class:"settings-content",style:{display:"none"}},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Raw Configuration (JSON)"),r("textarea",{class:"json-editor",id:"json-editor",oninput:"markConfigDirty()"}),r("div",{class:"settings-hint"},"Edit the raw JSON configuration. Be careful with syntax.")]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveJsonConfig()",id:"save-json-btn",disabled:""},"Save JSON"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset"),r("button",{class:"btn btn-secondary",onclick:"formatJson()"},"Format")])])])])]),r("div",{id:"view-llm",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"LLM Configuration")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Mode"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Default Mode"),r("select",{class:"settings-select",id:"llm-default",onchange:"markConfigDirty()"},[r("option",{value:"local"},"Local (Ollama/LM Studio)"),r("option",{value:"cloud"},"Cloud (repr.dev)"),r("option",{value:"byok:openai"},"BYOK: OpenAI"),r("option",{value:"byok:anthropic"},"BYOK: Anthropic"),r("option",{value:"byok:groq"},"BYOK: Groq"),r("option",{value:"byok:together"},"BYOK: Together AI")])])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Local Provider"),r("div",{class:"settings-row"},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Provider"),r("select",{class:"settings-select",id:"llm-local-provider",onchange:"markConfigDirty()"},[r("option",{value:""},"Not configured"),r("option",{value:"ollama"},"Ollama"),r("option",{value:"lmstudio"},"LM Studio"),r("option",{value:"custom"},"Custom")])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Model"),r("input",{type:"text",class:"settings-input",id:"llm-local-model",placeholder:"e.g., llama3.2",oninput:"markConfigDirty()"})])]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"API URL"),r("input",{type:"text",class:"settings-input",id:"llm-local-url",placeholder:"http://localhost:11434/v1",oninput:"markConfigDirty()"})])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveConfig()",id:"save-llm-btn",disabled:""},"Save Changes"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset")])])])])]),r("div",{id:"view-privacy",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Privacy")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Data Sharing"),r("div",{class:"settings-checkbox-row"},[r("input",{type:"checkbox",class:"settings-checkbox",id:"privacy-local-only",onchange:"markConfigDirty()"}),r("label",{class:"settings-checkbox-label",for:"privacy-local-only"},"Lock to local-only mode")]),r("div",{class:"settings-checkbox-row"},[r("input",{type:"checkbox",class:"settings-checkbox",id:"privacy-send-diffs",onchange:"markConfigDirty()"}),r("label",{class:"settings-checkbox-label",for:"privacy-send-diffs"},"Send diffs to cloud")])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Profile"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Profile Visibility"),r("select",{class:"settings-select",id:"privacy-visibility",onchange:"markConfigDirty()"},[r("option",{value:"public"},"Public"),r("option",{value:"unlisted"},"Unlisted"),r("option",{value:"private"},"Private")])])]),r("div",{class:"btn-row"},[r("button",{class:"btn btn-primary",onclick:"saveConfig()",id:"save-privacy-btn",disabled:""},"Save Changes"),r("button",{class:"btn btn-secondary",onclick:"loadConfig()"},"Reset")])])])])]),r("div",{id:"view-repos",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Explore")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Add Repository"),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Repository Path"),r("div",{style:{display:"flex",gap:"12px"}},[r("input",{type:"text",class:"settings-input",id:"add-repo-path",placeholder:"~/code/my-project",style:{flex:"1"}}),r("button",{class:"btn btn-primary",onclick:"addRepoClick()"},"Add")])])]),r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Tracked Repositories"),r("div",{id:"repos-list",class:"repos-list"},[r("div",{class:"loading-text"},"Loading repositories...")])])])])])]),r("div",{id:"view-cron",style:{display:"none"}},[r("div",{class:"tabs-bar"},[r("div",{class:"view-title"},"Activity")]),r("div",{class:"content-body"},[r("div",{class:"settings-container"},[r("div",{class:"settings-content"},[r("div",{class:"settings-section"},[r("h3",{class:"settings-section-title"},"Status"),r("div",{id:"cron-status",class:"cron-status-box"},[r("div",{class:"loading-text"},"Loading cron status...")])])])])])])]),r("aside",{class:"right-sidebar"},[r("div",{class:"widget"},[r("h3",{class:"widget-title"},"Subscribed Repositories"),r("div",{id:"recommended-repos",class:"widget-list"},[r("div",{class:"loading-text"},"Loading repos...")]),r("button",{class:"btn-text",id:"show-more-repos-btn",onclick:"toggleSubscribedRepos()"},"Show more")]),r("div",{class:"widget"},[r("h3",{class:"widget-title"},"Statistics"),r("div",{class:"stats-grid"},[r("div",{class:"stat-box"},[r("div",{class:"stat-label"},"Total Stories"),r("div",{class:"stat-value",id:"stat-total-stories"},"0")]),r("div",{class:"stat-box"},[r("div",{class:"stat-label"},"Active Repos"),r("div",{class:"stat-value",id:"stat-total-repos"},"0")])])]),r("footer",{class:"right-sidebar-footer"},[r("nav",null,[r("a",{href:"#"},"Terms"),r("a",{href:"#"},"Privacy"),r("a",{href:"#"},"Cookies"),r("span",null,"© 2026 Repr")])])])])])],-1)),s[1]||(s[1]=r("div",{class:"modal-overlay",id:"edit-repo-modal",onclick:"if(event.target === this) closeModal('edit-repo-modal')"},[r("div",{class:"modal-container"},[r("div",{class:"modal-header"},[r("h3",{class:"modal-title"},"Edit Repository"),r("button",{class:"modal-close",onclick:"closeModal('edit-repo-modal')"},"×")]),r("div",{class:"modal-body"},[r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Project Name"),r("div",{class:"editable-field-container"},[r("input",{type:"text",class:"settings-input",id:"edit-repo-name-input",placeholder:"Project Name",onkeydown:"if(event.key === 'Enter') saveRepoEdit()"}),r("span",{class:"editable-field-icon"},"✎")]),r("div",{class:"settings-hint"},"This name will be used in the timeline and stories")]),r("div",{class:"settings-group"},[r("label",{class:"settings-label"},"Path"),r("input",{type:"text",class:"settings-input",id:"edit-repo-path-input",readonly:"",style:{background:"var(--surface-hover)",color:"var(--text-muted)",cursor:"not-allowed"}})])]),r("div",{class:"modal-footer"},[r("button",{class:"btn btn-secondary",onclick:"closeModal('edit-repo-modal')"},"Cancel"),r("button",{class:"btn btn-primary",id:"save-repo-btn",onclick:"saveRepoEdit()"},"Save Changes")])])],-1))],64))}},io=Fl(Ga);io.use(jl());io.mount("#app");