@xdevops/issue-auto-finish 1.0.76 → 1.0.77

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.
@@ -1,5 +1,5 @@
1
- (function(){const d=document.createElement("link").relList;if(d&&d.supports&&d.supports("modulepreload"))return;for(const w of document.querySelectorAll('link[rel="modulepreload"]'))m(w);new MutationObserver(w=>{for(const $ of w)if($.type==="childList")for(const p of $.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&m(p)}).observe(document,{childList:!0,subtree:!0});function b(w){const $={};return w.integrity&&($.integrity=w.integrity),w.referrerPolicy&&($.referrerPolicy=w.referrerPolicy),w.crossOrigin==="use-credentials"?$.credentials="include":w.crossOrigin==="anonymous"?$.credentials="omit":$.credentials="same-origin",$}function m(w){if(w.ep)return;w.ep=!0;const $=b(w);fetch(w.href,$)}})();function Eme(a){const d=Object.create(null);for(const b of a.split(","))d[b]=1;return b=>b in d}const Cc={},FS=[],am=()=>{},Wbt=()=>!1,SX=a=>a.charCodeAt(0)===111&&a.charCodeAt(1)===110&&(a.charCodeAt(2)>122||a.charCodeAt(2)<97),Cme=a=>a.startsWith("onUpdate:"),cf=Object.assign,Sme=(a,d)=>{const b=a.indexOf(d);b>-1&&a.splice(b,1)},qzt=Object.prototype.hasOwnProperty,Nc=(a,d)=>qzt.call(a,d),Mr=Array.isArray,BS=a=>lL(a)==="[object Map]",n_=a=>lL(a)==="[object Set]",V0t=a=>lL(a)==="[object Date]",vs=a=>typeof a=="function",Bl=a=>typeof a=="string",bv=a=>typeof a=="symbol",jc=a=>a!==null&&typeof a=="object",Xbt=a=>(jc(a)||vs(a))&&vs(a.then)&&vs(a.catch),Ybt=Object.prototype.toString,lL=a=>Ybt.call(a),Vzt=a=>lL(a).slice(8,-1),Qbt=a=>lL(a)==="[object Object]",_X=a=>Bl(a)&&a!=="NaN"&&a[0]!=="-"&&""+parseInt(a,10)===a,OO=Eme(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),jX=a=>{const d=Object.create(null);return(b=>d[b]||(d[b]=a(b)))},Kzt=/-\w/g,Mh=jX(a=>a.replace(Kzt,d=>d.slice(1).toUpperCase())),Wzt=/\B([A-Z])/g,D3=jX(a=>a.replace(Wzt,"-$1").toLowerCase()),IX=jX(a=>a.charAt(0).toUpperCase()+a.slice(1)),x2e=jX(a=>a?`on${IX(a)}`:""),Fd=(a,d)=>!Object.is(a,d),JW=(a,...d)=>{for(let b=0;b<a.length;b++)a[b](...d)},Zbt=(a,d,b,m=!1)=>{Object.defineProperty(a,d,{configurable:!0,enumerable:!1,writable:m,value:b})},AX=a=>{const d=parseFloat(a);return isNaN(d)?a:d},Xzt=a=>{const d=Bl(a)?Number(a):NaN;return isNaN(d)?a:d};let K0t;const TX=()=>K0t||(K0t=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function _c(a){if(Mr(a)){const d={};for(let b=0;b<a.length;b++){const m=a[b],w=Bl(m)?eqt(m):_c(m);if(w)for(const $ in w)d[$]=w[$]}return d}else if(Bl(a)||jc(a))return a}const Yzt=/;(?![^(]*\))/g,Qzt=/:([^]+)/,Zzt=/\/\*[^]*?\*\//g;function eqt(a){const d={};return a.replace(Zzt,"").split(Yzt).forEach(b=>{if(b){const m=b.split(Qzt);m.length>1&&(d[m[0].trim()]=m[1].trim())}}),d}function wn(a){let d="";if(Bl(a))d=a;else if(Mr(a))for(let b=0;b<a.length;b++){const m=wn(a[b]);m&&(d+=m+" ")}else if(jc(a))for(const b in a)a[b]&&(d+=b+" ");return d.trim()}const tqt="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",nqt=Eme(tqt);function ept(a){return!!a||a===""}function iqt(a,d){if(a.length!==d.length)return!1;let b=!0;for(let m=0;b&&m<a.length;m++)b=Lk(a[m],d[m]);return b}function Lk(a,d){if(a===d)return!0;let b=V0t(a),m=V0t(d);if(b||m)return b&&m?a.getTime()===d.getTime():!1;if(b=bv(a),m=bv(d),b||m)return a===d;if(b=Mr(a),m=Mr(d),b||m)return b&&m?iqt(a,d):!1;if(b=jc(a),m=jc(d),b||m){if(!b||!m)return!1;const w=Object.keys(a).length,$=Object.keys(d).length;if(w!==$)return!1;for(const p in a){const j=a.hasOwnProperty(p),I=d.hasOwnProperty(p);if(j&&!I||!j&&I||!Lk(a[p],d[p]))return!1}}return String(a)===String(d)}function _me(a,d){return a.findIndex(b=>Lk(b,d))}const tpt=a=>!!(a&&a.__v_isRef===!0),M=a=>Bl(a)?a:a==null?"":Mr(a)||jc(a)&&(a.toString===Ybt||!vs(a.toString))?tpt(a)?M(a.value):JSON.stringify(a,npt,2):String(a),npt=(a,d)=>tpt(d)?npt(a,d.value):BS(d)?{[`Map(${d.size})`]:[...d.entries()].reduce((b,[m,w],$)=>(b[$2e(m,$)+" =>"]=w,b),{})}:n_(d)?{[`Set(${d.size})`]:[...d.values()].map(b=>$2e(b))}:bv(d)?$2e(d):jc(d)&&!Mr(d)&&!Qbt(d)?String(d):d,$2e=(a,d="")=>{var b;return bv(a)?`Symbol(${(b=a.description)!=null?b:d})`:a};let Sh;class ipt{constructor(d=!1){this.detached=d,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Sh,!d&&Sh&&(this.index=(Sh.scopes||(Sh.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let d,b;if(this.scopes)for(d=0,b=this.scopes.length;d<b;d++)this.scopes[d].pause();for(d=0,b=this.effects.length;d<b;d++)this.effects[d].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let d,b;if(this.scopes)for(d=0,b=this.scopes.length;d<b;d++)this.scopes[d].resume();for(d=0,b=this.effects.length;d<b;d++)this.effects[d].resume()}}run(d){if(this._active){const b=Sh;try{return Sh=this,d()}finally{Sh=b}}}on(){++this._on===1&&(this.prevScope=Sh,Sh=this)}off(){this._on>0&&--this._on===0&&(Sh=this.prevScope,this.prevScope=void 0)}stop(d){if(this._active){this._active=!1;let b,m;for(b=0,m=this.effects.length;b<m;b++)this.effects[b].stop();for(this.effects.length=0,b=0,m=this.cleanups.length;b<m;b++)this.cleanups[b]();if(this.cleanups.length=0,this.scopes){for(b=0,m=this.scopes.length;b<m;b++)this.scopes[b].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!d){const w=this.parent.scopes.pop();w&&w!==this&&(this.parent.scopes[this.index]=w,w.index=this.index)}this.parent=void 0}}}function rpt(a){return new ipt(a)}function jme(){return Sh}function UW(a,d=!1){Sh&&Sh.cleanups.push(a)}let Ou;const E2e=new WeakSet;class spt{constructor(d){this.fn=d,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Sh&&Sh.active&&Sh.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,E2e.has(this)&&(E2e.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||cpt(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,W0t(this),upt(this);const d=Ou,b=gv;Ou=this,gv=!0;try{return this.fn()}finally{lpt(this),Ou=d,gv=b,this.flags&=-3}}stop(){if(this.flags&1){for(let d=this.deps;d;d=d.nextDep)Tme(d);this.deps=this.depsTail=void 0,W0t(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?E2e.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){K2e(this)&&this.run()}get dirty(){return K2e(this)}}let opt=0,LO,NO;function cpt(a,d=!1){if(a.flags|=8,d){a.next=NO,NO=a;return}a.next=LO,LO=a}function Ime(){opt++}function Ame(){if(--opt>0)return;if(NO){let d=NO;for(NO=void 0;d;){const b=d.next;d.next=void 0,d.flags&=-9,d=b}}let a;for(;LO;){let d=LO;for(LO=void 0;d;){const b=d.next;if(d.next=void 0,d.flags&=-9,d.flags&1)try{d.trigger()}catch(m){a||(a=m)}d=b}}if(a)throw a}function upt(a){for(let d=a.deps;d;d=d.nextDep)d.version=-1,d.prevActiveLink=d.dep.activeLink,d.dep.activeLink=d}function lpt(a){let d,b=a.depsTail,m=b;for(;m;){const w=m.prevDep;m.version===-1?(m===b&&(b=w),Tme(m),rqt(m)):d=m,m.dep.activeLink=m.prevActiveLink,m.prevActiveLink=void 0,m=w}a.deps=d,a.depsTail=b}function K2e(a){for(let d=a.deps;d;d=d.nextDep)if(d.dep.version!==d.version||d.dep.computed&&(apt(d.dep.computed)||d.dep.version!==d.version))return!0;return!!a._dirty}function apt(a){if(a.flags&4&&!(a.flags&16)||(a.flags&=-17,a.globalVersion===VO)||(a.globalVersion=VO,!a.isSSR&&a.flags&128&&(!a.deps&&!a._dirty||!K2e(a))))return;a.flags|=2;const d=a.dep,b=Ou,m=gv;Ou=a,gv=!0;try{upt(a);const w=a.fn(a._value);(d.version===0||Fd(w,a._value))&&(a.flags|=128,a._value=w,d.version++)}catch(w){throw d.version++,w}finally{Ou=b,gv=m,lpt(a),a.flags&=-3}}function Tme(a,d=!1){const{dep:b,prevSub:m,nextSub:w}=a;if(m&&(m.nextSub=w,a.prevSub=void 0),w&&(w.prevSub=m,a.nextSub=void 0),b.subs===a&&(b.subs=m,!m&&b.computed)){b.computed.flags&=-5;for(let $=b.computed.deps;$;$=$.nextDep)Tme($,!0)}!d&&!--b.sc&&b.map&&b.map.delete(b.key)}function rqt(a){const{prevDep:d,nextDep:b}=a;d&&(d.nextDep=b,a.prevDep=void 0),b&&(b.prevDep=d,a.nextDep=void 0)}let gv=!0;const fpt=[];function A3(){fpt.push(gv),gv=!1}function T3(){const a=fpt.pop();gv=a===void 0?!0:a}function W0t(a){const{cleanup:d}=a;if(a.cleanup=void 0,d){const b=Ou;Ou=void 0;try{d()}finally{Ou=b}}}let VO=0;class sqt{constructor(d,b){this.sub=d,this.dep=b,this.version=b.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class MX{constructor(d){this.computed=d,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(d){if(!Ou||!gv||Ou===this.computed)return;let b=this.activeLink;if(b===void 0||b.sub!==Ou)b=this.activeLink=new sqt(Ou,this),Ou.deps?(b.prevDep=Ou.depsTail,Ou.depsTail.nextDep=b,Ou.depsTail=b):Ou.deps=Ou.depsTail=b,dpt(b);else if(b.version===-1&&(b.version=this.version,b.nextDep)){const m=b.nextDep;m.prevDep=b.prevDep,b.prevDep&&(b.prevDep.nextDep=m),b.prevDep=Ou.depsTail,b.nextDep=void 0,Ou.depsTail.nextDep=b,Ou.depsTail=b,Ou.deps===b&&(Ou.deps=m)}return b}trigger(d){this.version++,VO++,this.notify(d)}notify(d){Ime();try{for(let b=this.subs;b;b=b.prevSub)b.sub.notify()&&b.sub.dep.notify()}finally{Ame()}}}function dpt(a){if(a.dep.sc++,a.sub.flags&4){const d=a.dep.computed;if(d&&!a.dep.subs){d.flags|=20;for(let m=d.deps;m;m=m.nextDep)dpt(m)}const b=a.dep.subs;b!==a&&(a.prevSub=b,b&&(b.nextSub=a)),a.dep.subs=a}}const eX=new WeakMap,s9=Symbol(""),W2e=Symbol(""),KO=Symbol("");function _h(a,d,b){if(gv&&Ou){let m=eX.get(a);m||eX.set(a,m=new Map);let w=m.get(b);w||(m.set(b,w=new MX),w.map=m,w.key=b),w.track()}}function $3(a,d,b,m,w,$){const p=eX.get(a);if(!p){VO++;return}const j=I=>{I&&I.trigger()};if(Ime(),d==="clear")p.forEach(j);else{const I=Mr(a),N=I&&_X(b);if(I&&b==="length"){const P=Number(m);p.forEach((U,V)=>{(V==="length"||V===KO||!bv(V)&&V>=P)&&j(U)})}else switch((b!==void 0||p.has(void 0))&&j(p.get(b)),N&&j(p.get(KO)),d){case"add":I?N&&j(p.get("length")):(j(p.get(s9)),BS(a)&&j(p.get(W2e)));break;case"delete":I||(j(p.get(s9)),BS(a)&&j(p.get(W2e)));break;case"set":BS(a)&&j(p.get(s9));break}}Ame()}function oqt(a,d){const b=eX.get(a);return b&&b.get(d)}function DS(a){const d=hc(a);return d===a?d:(_h(d,"iterate",KO),qg(a)?d:d.map(pv))}function PX(a){return _h(a=hc(a),"iterate",KO),a}function om(a,d){return M3(a)?KS(o9(a)?pv(d):d):pv(d)}const cqt={__proto__:null,[Symbol.iterator](){return C2e(this,Symbol.iterator,a=>om(this,a))},concat(...a){return DS(this).concat(...a.map(d=>Mr(d)?DS(d):d))},entries(){return C2e(this,"entries",a=>(a[1]=om(this,a[1]),a))},every(a,d){return w3(this,"every",a,d,void 0,arguments)},filter(a,d){return w3(this,"filter",a,d,b=>b.map(m=>om(this,m)),arguments)},find(a,d){return w3(this,"find",a,d,b=>om(this,b),arguments)},findIndex(a,d){return w3(this,"findIndex",a,d,void 0,arguments)},findLast(a,d){return w3(this,"findLast",a,d,b=>om(this,b),arguments)},findLastIndex(a,d){return w3(this,"findLastIndex",a,d,void 0,arguments)},forEach(a,d){return w3(this,"forEach",a,d,void 0,arguments)},includes(...a){return S2e(this,"includes",a)},indexOf(...a){return S2e(this,"indexOf",a)},join(a){return DS(this).join(a)},lastIndexOf(...a){return S2e(this,"lastIndexOf",a)},map(a,d){return w3(this,"map",a,d,void 0,arguments)},pop(){return xO(this,"pop")},push(...a){return xO(this,"push",a)},reduce(a,...d){return X0t(this,"reduce",a,d)},reduceRight(a,...d){return X0t(this,"reduceRight",a,d)},shift(){return xO(this,"shift")},some(a,d){return w3(this,"some",a,d,void 0,arguments)},splice(...a){return xO(this,"splice",a)},toReversed(){return DS(this).toReversed()},toSorted(a){return DS(this).toSorted(a)},toSpliced(...a){return DS(this).toSpliced(...a)},unshift(...a){return xO(this,"unshift",a)},values(){return C2e(this,"values",a=>om(this,a))}};function C2e(a,d,b){const m=PX(a),w=m[d]();return m!==a&&!qg(a)&&(w._next=w.next,w.next=()=>{const $=w._next();return $.done||($.value=b($.value)),$}),w}const uqt=Array.prototype;function w3(a,d,b,m,w,$){const p=PX(a),j=p!==a&&!qg(a),I=p[d];if(I!==uqt[d]){const U=I.apply(a,$);return j?pv(U):U}let N=b;p!==a&&(j?N=function(U,V){return b.call(this,om(a,U),V,a)}:b.length>2&&(N=function(U,V){return b.call(this,U,V,a)}));const P=I.call(p,N,m);return j&&w?w(P):P}function X0t(a,d,b,m){const w=PX(a),$=w!==a&&!qg(a);let p=b,j=!1;w!==a&&($?(j=m.length===0,p=function(N,P,U){return j&&(j=!1,N=om(a,N)),b.call(this,N,om(a,P),U,a)}):b.length>3&&(p=function(N,P,U){return b.call(this,N,P,U,a)}));const I=w[d](p,...m);return j?om(a,I):I}function S2e(a,d,b){const m=hc(a);_h(m,"iterate",KO);const w=m[d](...b);return(w===-1||w===!1)&&DX(b[0])?(b[0]=hc(b[0]),m[d](...b)):w}function xO(a,d,b=[]){A3(),Ime();const m=hc(a)[d].apply(a,b);return Ame(),T3(),m}const lqt=Eme("__proto__,__v_isRef,__isVue"),hpt=new Set(Object.getOwnPropertyNames(Symbol).filter(a=>a!=="arguments"&&a!=="caller").map(a=>Symbol[a]).filter(bv));function aqt(a){bv(a)||(a=String(a));const d=hc(this);return _h(d,"has",a),d.hasOwnProperty(a)}class gpt{constructor(d=!1,b=!1){this._isReadonly=d,this._isShallow=b}get(d,b,m){if(b==="__v_skip")return d.__v_skip;const w=this._isReadonly,$=this._isShallow;if(b==="__v_isReactive")return!w;if(b==="__v_isReadonly")return w;if(b==="__v_isShallow")return $;if(b==="__v_raw")return m===(w?$?yqt:vpt:$?wpt:ppt).get(d)||Object.getPrototypeOf(d)===Object.getPrototypeOf(m)?d:void 0;const p=Mr(d);if(!w){let I;if(p&&(I=cqt[b]))return I;if(b==="hasOwnProperty")return aqt}const j=Reflect.get(d,b,Zc(d)?d:m);if((bv(b)?hpt.has(b):lqt(b))||(w||_h(d,"get",b),$))return j;if(Zc(j)){const I=p&&_X(b)?j:j.value;return w&&jc(I)?tX(I):I}return jc(j)?w?tX(j):i_(j):j}}class bpt extends gpt{constructor(d=!1){super(!1,d)}set(d,b,m,w){let $=d[b];const p=Mr(d)&&_X(b);if(!this._isShallow){const N=M3($);if(!qg(m)&&!M3(m)&&($=hc($),m=hc(m)),!p&&Zc($)&&!Zc(m))return N||($.value=m),!0}const j=p?Number(b)<d.length:Nc(d,b),I=Reflect.set(d,b,m,Zc(d)?d:w);return d===hc(w)&&(j?Fd(m,$)&&$3(d,"set",b,m):$3(d,"add",b,m)),I}deleteProperty(d,b){const m=Nc(d,b);d[b];const w=Reflect.deleteProperty(d,b);return w&&m&&$3(d,"delete",b,void 0),w}has(d,b){const m=Reflect.has(d,b);return(!bv(b)||!hpt.has(b))&&_h(d,"has",b),m}ownKeys(d){return _h(d,"iterate",Mr(d)?"length":s9),Reflect.ownKeys(d)}}class fqt extends gpt{constructor(d=!1){super(!0,d)}set(d,b){return!0}deleteProperty(d,b){return!0}}const dqt=new bpt,hqt=new fqt,gqt=new bpt(!0);const X2e=a=>a,$W=a=>Reflect.getPrototypeOf(a);function bqt(a,d,b){return function(...m){const w=this.__v_raw,$=hc(w),p=BS($),j=a==="entries"||a===Symbol.iterator&&p,I=a==="keys"&&p,N=w[a](...m),P=b?X2e:d?KS:pv;return!d&&_h($,"iterate",I?W2e:s9),cf(Object.create(N),{next(){const{value:U,done:V}=N.next();return V?{value:U,done:V}:{value:j?[P(U[0]),P(U[1])]:P(U),done:V}}})}}function EW(a){return function(...d){return a==="delete"?!1:a==="clear"?void 0:this}}function pqt(a,d){const b={get(w){const $=this.__v_raw,p=hc($),j=hc(w);a||(Fd(w,j)&&_h(p,"get",w),_h(p,"get",j));const{has:I}=$W(p),N=d?X2e:a?KS:pv;if(I.call(p,w))return N($.get(w));if(I.call(p,j))return N($.get(j));$!==p&&$.get(w)},get size(){const w=this.__v_raw;return!a&&_h(hc(w),"iterate",s9),w.size},has(w){const $=this.__v_raw,p=hc($),j=hc(w);return a||(Fd(w,j)&&_h(p,"has",w),_h(p,"has",j)),w===j?$.has(w):$.has(w)||$.has(j)},forEach(w,$){const p=this,j=p.__v_raw,I=hc(j),N=d?X2e:a?KS:pv;return!a&&_h(I,"iterate",s9),j.forEach((P,U)=>w.call($,N(P),N(U),p))}};return cf(b,a?{add:EW("add"),set:EW("set"),delete:EW("delete"),clear:EW("clear")}:{add(w){const $=hc(this),p=$W($),j=hc(w),I=!d&&!qg(w)&&!M3(w)?j:w;return p.has.call($,I)||Fd(w,I)&&p.has.call($,w)||Fd(j,I)&&p.has.call($,j)||($.add(I),$3($,"add",I,I)),this},set(w,$){!d&&!qg($)&&!M3($)&&($=hc($));const p=hc(this),{has:j,get:I}=$W(p);let N=j.call(p,w);N||(w=hc(w),N=j.call(p,w));const P=I.call(p,w);return p.set(w,$),N?Fd($,P)&&$3(p,"set",w,$):$3(p,"add",w,$),this},delete(w){const $=hc(this),{has:p,get:j}=$W($);let I=p.call($,w);I||(w=hc(w),I=p.call($,w)),j&&j.call($,w);const N=$.delete(w);return I&&$3($,"delete",w,void 0),N},clear(){const w=hc(this),$=w.size!==0,p=w.clear();return $&&$3(w,"clear",void 0,void 0),p}}),["keys","values","entries",Symbol.iterator].forEach(w=>{b[w]=bqt(w,a,d)}),b}function Mme(a,d){const b=pqt(a,d);return(m,w,$)=>w==="__v_isReactive"?!a:w==="__v_isReadonly"?a:w==="__v_raw"?m:Reflect.get(Nc(b,w)&&w in m?b:m,w,$)}const wqt={get:Mme(!1,!1)},vqt={get:Mme(!1,!0)},mqt={get:Mme(!0,!1)};const ppt=new WeakMap,wpt=new WeakMap,vpt=new WeakMap,yqt=new WeakMap;function kqt(a){switch(a){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xqt(a){return a.__v_skip||!Object.isExtensible(a)?0:kqt(Vzt(a))}function i_(a){return M3(a)?a:Pme(a,!1,dqt,wqt,ppt)}function $qt(a){return Pme(a,!1,gqt,vqt,wpt)}function tX(a){return Pme(a,!0,hqt,mqt,vpt)}function Pme(a,d,b,m,w){if(!jc(a)||a.__v_raw&&!(d&&a.__v_isReactive))return a;const $=xqt(a);if($===0)return a;const p=w.get(a);if(p)return p;const j=new Proxy(a,$===2?m:b);return w.set(a,j),j}function o9(a){return M3(a)?o9(a.__v_raw):!!(a&&a.__v_isReactive)}function M3(a){return!!(a&&a.__v_isReadonly)}function qg(a){return!!(a&&a.__v_isShallow)}function DX(a){return a?!!a.__v_raw:!1}function hc(a){const d=a&&a.__v_raw;return d?hc(d):a}function I3(a){return!Nc(a,"__v_skip")&&Object.isExtensible(a)&&Zbt(a,"__v_skip",!0),a}const pv=a=>jc(a)?i_(a):a,KS=a=>jc(a)?tX(a):a;function Zc(a){return a?a.__v_isRef===!0:!1}function Ye(a){return mpt(a,!1)}function Ok(a){return mpt(a,!0)}function mpt(a,d){return Zc(a)?a:new Eqt(a,d)}class Eqt{constructor(d,b){this.dep=new MX,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=b?d:hc(d),this._value=b?d:pv(d),this.__v_isShallow=b}get value(){return this.dep.track(),this._value}set value(d){const b=this._rawValue,m=this.__v_isShallow||qg(d)||M3(d);d=m?d:hc(d),Fd(d,b)&&(this._rawValue=d,this._value=m?d:pv(d),this.dep.trigger())}}function A(a){return Zc(a)?a.value:a}function Mo(a){return vs(a)?a():A(a)}const Cqt={get:(a,d,b)=>d==="__v_raw"?a:A(Reflect.get(a,d,b)),set:(a,d,b,m)=>{const w=a[d];return Zc(w)&&!Zc(b)?(w.value=b,!0):Reflect.set(a,d,b,m)}};function ypt(a){return o9(a)?a:new Proxy(a,Cqt)}class Sqt{constructor(d){this.__v_isRef=!0,this._value=void 0;const b=this.dep=new MX,{get:m,set:w}=d(b.track.bind(b),b.trigger.bind(b));this._get=m,this._set=w}get value(){return this._value=this._get()}set value(d){this._set(d)}}function kpt(a){return new Sqt(a)}function _qt(a){const d=Mr(a)?new Array(a.length):{};for(const b in a)d[b]=xpt(a,b);return d}class jqt{constructor(d,b,m){this._object=d,this._key=b,this._defaultValue=m,this.__v_isRef=!0,this._value=void 0,this._raw=hc(d);let w=!0,$=d;if(!Mr(d)||!_X(String(b)))do w=!DX($)||qg($);while(w&&($=$.__v_raw));this._shallow=w}get value(){let d=this._object[this._key];return this._shallow&&(d=A(d)),this._value=d===void 0?this._defaultValue:d}set value(d){if(this._shallow&&Zc(this._raw[this._key])){const b=this._object[this._key];if(Zc(b)){b.value=d;return}}this._object[this._key]=d}get dep(){return oqt(this._raw,this._key)}}class Iqt{constructor(d){this._getter=d,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function fu(a,d,b){return Zc(a)?a:vs(a)?new Iqt(a):jc(a)&&arguments.length>1?xpt(a,d,b):Ye(a)}function xpt(a,d,b){return new jqt(a,d,b)}class Aqt{constructor(d,b,m){this.fn=d,this.setter=b,this._value=void 0,this.dep=new MX(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=VO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!b,this.isSSR=m}notify(){if(this.flags|=16,!(this.flags&8)&&Ou!==this)return cpt(this,!0),!0}get value(){const d=this.dep.track();return apt(this),d&&(d.version=this.dep.version),this._value}set value(d){this.setter&&this.setter(d)}}function Tqt(a,d,b=!1){let m,w;return vs(a)?m=a:(m=a.get,w=a.set),new Aqt(m,w,b)}const CW={},nX=new WeakMap;let Z8;function Mqt(a,d=!1,b=Z8){if(b){let m=nX.get(b);m||nX.set(b,m=[]),m.push(a)}}function Pqt(a,d,b=Cc){const{immediate:m,deep:w,once:$,scheduler:p,augmentJob:j,call:I}=b,N=re=>w?re:qg(re)||w===!1||w===0?E3(re,1):E3(re);let P,U,V,X,ee=!1,K=!1;if(Zc(a)?(U=()=>a.value,ee=qg(a)):o9(a)?(U=()=>N(a),ee=!0):Mr(a)?(K=!0,ee=a.some(re=>o9(re)||qg(re)),U=()=>a.map(re=>{if(Zc(re))return re.value;if(o9(re))return N(re);if(vs(re))return I?I(re,2):re()})):vs(a)?d?U=I?()=>I(a,2):a:U=()=>{if(V){A3();try{V()}finally{T3()}}const re=Z8;Z8=P;try{return I?I(a,3,[X]):a(X)}finally{Z8=re}}:U=am,d&&w){const re=U,ye=w===!0?1/0:w;U=()=>E3(re(),ye)}const he=jme(),ke=()=>{P.stop(),he&&he.active&&Sme(he.effects,P)};if($&&d){const re=d;d=(...ye)=>{re(...ye),ke()}}let ue=K?new Array(a.length).fill(CW):CW;const oe=re=>{if(!(!(P.flags&1)||!P.dirty&&!re))if(d){const ye=P.run();if(w||ee||(K?ye.some((pe,be)=>Fd(pe,ue[be])):Fd(ye,ue))){V&&V();const pe=Z8;Z8=P;try{const be=[ye,ue===CW?void 0:K&&ue[0]===CW?[]:ue,X];ue=ye,I?I(d,3,be):d(...be)}finally{Z8=pe}}}else P.run()};return j&&j(oe),P=new spt(U),P.scheduler=p?()=>p(oe,!1):oe,X=re=>Mqt(re,!1,P),V=P.onStop=()=>{const re=nX.get(P);if(re){if(I)I(re,4);else for(const ye of re)ye();nX.delete(P)}},d?m?oe(!0):ue=P.run():p?p(oe.bind(null,!0),!0):P.run(),ke.pause=P.pause.bind(P),ke.resume=P.resume.bind(P),ke.stop=ke,ke}function E3(a,d=1/0,b){if(d<=0||!jc(a)||a.__v_skip||(b=b||new Map,(b.get(a)||0)>=d))return a;if(b.set(a,d),d--,Zc(a))E3(a.value,d,b);else if(Mr(a))for(let m=0;m<a.length;m++)E3(a[m],d,b);else if(n_(a)||BS(a))a.forEach(m=>{E3(m,d,b)});else if(Qbt(a)){for(const m in a)E3(a[m],d,b);for(const m of Object.getOwnPropertySymbols(a))Object.prototype.propertyIsEnumerable.call(a,m)&&E3(a[m],d,b)}return a}function aL(a,d,b,m){try{return m?a(...m):a()}catch(w){OX(w,d,b)}}function wv(a,d,b,m){if(vs(a)){const w=aL(a,d,b,m);return w&&Xbt(w)&&w.catch($=>{OX($,d,b)}),w}if(Mr(a)){const w=[];for(let $=0;$<a.length;$++)w.push(wv(a[$],d,b,m));return w}}function OX(a,d,b,m=!0){const w=d?d.vnode:null,{errorHandler:$,throwUnhandledErrorInProduction:p}=d&&d.appContext.config||Cc;if(d){let j=d.parent;const I=d.proxy,N=`https://vuejs.org/error-reference/#runtime-${b}`;for(;j;){const P=j.ec;if(P){for(let U=0;U<P.length;U++)if(P[U](a,I,N)===!1)return}j=j.parent}if($){A3(),aL($,null,10,[a,I,N]),T3();return}}Dqt(a,b,w,m,p)}function Dqt(a,d,b,m=!0,w=!1){if(w)throw a;console.error(a)}const E1=[];let im=-1;const HS=[];let Pk=null,NS=0;const $pt=Promise.resolve();let iX=null;function _1(a){const d=iX||$pt;return a?d.then(this?a.bind(this):a):d}function Oqt(a){let d=im+1,b=E1.length;for(;d<b;){const m=d+b>>>1,w=E1[m],$=WO(w);$<a||$===a&&w.flags&2?d=m+1:b=m}return d}function Dme(a){if(!(a.flags&1)){const d=WO(a),b=E1[E1.length-1];!b||!(a.flags&2)&&d>=WO(b)?E1.push(a):E1.splice(Oqt(d),0,a),a.flags|=1,Ept()}}function Ept(){iX||(iX=$pt.then(Spt))}function Lqt(a){Mr(a)?HS.push(...a):Pk&&a.id===-1?Pk.splice(NS+1,0,a):a.flags&1||(HS.push(a),a.flags|=1),Ept()}function Y0t(a,d,b=im+1){for(;b<E1.length;b++){const m=E1[b];if(m&&m.flags&2){if(a&&m.id!==a.uid)continue;E1.splice(b,1),b--,m.flags&4&&(m.flags&=-2),m(),m.flags&4||(m.flags&=-2)}}}function Cpt(a){if(HS.length){const d=[...new Set(HS)].sort((b,m)=>WO(b)-WO(m));if(HS.length=0,Pk){Pk.push(...d);return}for(Pk=d,NS=0;NS<Pk.length;NS++){const b=Pk[NS];b.flags&4&&(b.flags&=-2),b.flags&8||b(),b.flags&=-2}Pk=null,NS=0}}const WO=a=>a.id==null?a.flags&2?-1:1/0:a.id;function Spt(a){try{for(im=0;im<E1.length;im++){const d=E1[im];d&&!(d.flags&8)&&(d.flags&4&&(d.flags&=-2),aL(d,d.i,d.i?15:14),d.flags&4||(d.flags&=-2))}}finally{for(;im<E1.length;im++){const d=E1[im];d&&(d.flags&=-2)}im=-1,E1.length=0,Cpt(),iX=null,(E1.length||HS.length)&&Spt()}}let Bd=null,_pt=null;function rX(a){const d=Bd;return Bd=a,_pt=a&&a.type.__scopeId||null,d}function zg(a,d=Bd,b){if(!d||a._n)return a;const m=(...w)=>{m._d&&lX(-1);const $=rX(d);let p;try{p=a(...w)}finally{rX($),m._d&&lX(1)}return p};return m._n=!0,m._c=!0,m._d=!0,m}function Nn(a,d){if(Bd===null)return a;const b=HX(Bd),m=a.dirs||(a.dirs=[]);for(let w=0;w<d.length;w++){let[$,p,j,I=Cc]=d[w];$&&(vs($)&&($={mounted:$,updated:$}),$.deep&&E3(p),m.push({dir:$,instance:b,value:p,oldValue:void 0,arg:j,modifiers:I}))}return a}function W8(a,d,b,m){const w=a.dirs,$=d&&d.dirs;for(let p=0;p<w.length;p++){const j=w[p];$&&(j.oldValue=$[p].value);let I=j.dir[m];I&&(A3(),wv(I,b,8,[a.el,j,a,d]),T3())}}function l9(a,d){if(Ih){let b=Ih.provides;const m=Ih.parent&&Ih.parent.provides;m===b&&(b=Ih.provides=Object.create(m)),b[a]=d}}function fm(a,d,b=!1){const m=hm();if(m||JS){let w=JS?JS._context.provides:m?m.parent==null||m.ce?m.vnode.appContext&&m.vnode.appContext.provides:m.parent.provides:void 0;if(w&&a in w)return w[a];if(arguments.length>1)return b&&vs(d)?d.call(m&&m.proxy):d}}const Nqt=Symbol.for("v-scx"),Rqt=()=>fm(Nqt);function Fqt(a,d){return Ome(a,null,{flush:"sync"})}function Jr(a,d,b){return Ome(a,d,b)}function Ome(a,d,b=Cc){const{immediate:m,deep:w,flush:$,once:p}=b,j=cf({},b),I=d&&m||!d&&$!=="post";let N;if(QO){if($==="sync"){const X=Rqt();N=X.__watcherHandles||(X.__watcherHandles=[])}else if(!I){const X=()=>{};return X.stop=am,X.resume=am,X.pause=am,X}}const P=Ih;j.call=(X,ee,K)=>wv(X,P,ee,K);let U=!1;$==="post"?j.scheduler=X=>{Ch(X,P&&P.suspense)}:$!=="sync"&&(U=!0,j.scheduler=(X,ee)=>{ee?X():Dme(X)}),j.augmentJob=X=>{d&&(X.flags|=4),U&&(X.flags|=2,P&&(X.id=P.uid,X.i=P))};const V=Pqt(a,d,j);return QO&&(N?N.push(V):I&&V()),V}function Bqt(a,d,b){const m=this.proxy,w=Bl(a)?a.includes(".")?jpt(m,a):()=>m[a]:a.bind(m,m);let $;vs(d)?$=d:($=d.handler,b=d);const p=fL(this),j=Ome(w,$.bind(m),b);return p(),j}function jpt(a,d){const b=d.split(".");return()=>{let m=a;for(let w=0;w<b.length&&m;w++)m=m[b[w]];return m}}const Ipt=Symbol("_vte"),Apt=a=>a.__isTeleport,RO=a=>a&&(a.disabled||a.disabled===""),Q0t=a=>a&&(a.defer||a.defer===""),Z0t=a=>typeof SVGElement<"u"&&a instanceof SVGElement,egt=a=>typeof MathMLElement=="function"&&a instanceof MathMLElement,Y2e=(a,d)=>{const b=a&&a.to;return Bl(b)?d?d(b):null:b},Tpt={name:"Teleport",__isTeleport:!0,process(a,d,b,m,w,$,p,j,I,N){const{mc:P,pc:U,pbc:V,o:{insert:X,querySelector:ee,createText:K,createComment:he}}=N,ke=RO(d.props);let{shapeFlag:ue,children:oe,dynamicChildren:re}=d;if(a==null){const ye=d.el=K(""),pe=d.anchor=K("");X(ye,b,m),X(pe,b,m);const be=(le,Ce)=>{ue&16&&P(oe,le,Ce,w,$,p,j,I)},se=()=>{const le=d.target=Y2e(d.props,ee),Ce=Q2e(le,d,K,X);le&&(p!=="svg"&&Z0t(le)?p="svg":p!=="mathml"&&egt(le)&&(p="mathml"),w&&w.isCE&&(w.ce._teleportTargets||(w.ce._teleportTargets=new Set)).add(le),ke||(be(le,Ce),zW(d,!1)))};ke&&(be(b,pe),zW(d,!0)),Q0t(d.props)?(d.el.__isMounted=!1,Ch(()=>{se(),delete d.el.__isMounted},$)):se()}else{if(Q0t(d.props)&&a.el.__isMounted===!1){Ch(()=>{Tpt.process(a,d,b,m,w,$,p,j,I,N)},$);return}d.el=a.el,d.targetStart=a.targetStart;const ye=d.anchor=a.anchor,pe=d.target=a.target,be=d.targetAnchor=a.targetAnchor,se=RO(a.props),le=se?b:pe,Ce=se?ye:be;if(p==="svg"||Z0t(pe)?p="svg":(p==="mathml"||egt(pe))&&(p="mathml"),re?(V(a.dynamicChildren,re,le,w,$,p,j),Fme(a,d,!0)):I||U(a,d,le,Ce,w,$,p,j,!1),ke)se?d.props&&a.props&&d.props.to!==a.props.to&&(d.props.to=a.props.to):SW(d,b,ye,N,1);else if((d.props&&d.props.to)!==(a.props&&a.props.to)){const Se=d.target=Y2e(d.props,ee);Se&&SW(d,Se,null,N,0)}else se&&SW(d,pe,be,N,1);zW(d,ke)}},remove(a,d,b,{um:m,o:{remove:w}},$){const{shapeFlag:p,children:j,anchor:I,targetStart:N,targetAnchor:P,target:U,props:V}=a;if(U&&(w(N),w(P)),$&&w(I),p&16){const X=$||!RO(V);for(let ee=0;ee<j.length;ee++){const K=j[ee];m(K,d,b,X,!!K.dynamicChildren)}}},move:SW,hydrate:Hqt};function SW(a,d,b,{o:{insert:m},m:w},$=2){$===0&&m(a.targetAnchor,d,b);const{el:p,anchor:j,shapeFlag:I,children:N,props:P}=a,U=$===2;if(U&&m(p,d,b),(!U||RO(P))&&I&16)for(let V=0;V<N.length;V++)w(N[V],d,b,2);U&&m(j,d,b)}function Hqt(a,d,b,m,w,$,{o:{nextSibling:p,parentNode:j,querySelector:I,insert:N,createText:P}},U){function V(he,ke){let ue=ke;for(;ue;){if(ue&&ue.nodeType===8){if(ue.data==="teleport start anchor")d.targetStart=ue;else if(ue.data==="teleport anchor"){d.targetAnchor=ue,he._lpa=d.targetAnchor&&p(d.targetAnchor);break}}ue=p(ue)}}function X(he,ke){ke.anchor=U(p(he),ke,j(he),b,m,w,$)}const ee=d.target=Y2e(d.props,I),K=RO(d.props);if(ee){const he=ee._lpa||ee.firstChild;d.shapeFlag&16&&(K?(X(a,d),V(ee,he),d.targetAnchor||Q2e(ee,d,P,N,j(a)===ee?a:null)):(d.anchor=p(a),V(ee,he),d.targetAnchor||Q2e(ee,d,P,N),U(he&&p(he),d,ee,b,m,w,$))),zW(d,K)}else K&&d.shapeFlag&16&&(X(a,d),d.targetStart=a,d.targetAnchor=p(a));return d.anchor&&p(d.anchor)}const Lme=Tpt;function zW(a,d){const b=a.ctx;if(b&&b.ut){let m,w;for(d?(m=a.el,w=a.anchor):(m=a.targetStart,w=a.targetAnchor);m&&m!==w;)m.nodeType===1&&m.setAttribute("data-v-owner",b.uid),m=m.nextSibling;b.ut()}}function Q2e(a,d,b,m,w=null){const $=d.targetStart=b(""),p=d.targetAnchor=b("");return $[Ipt]=p,a&&(m($,a,w),m(p,a,w)),p}const rm=Symbol("_leaveCb"),$O=Symbol("_enterCb");function Gqt(){const a={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return gl(()=>{a.isMounted=!0}),RX(()=>{a.isUnmounting=!0}),a}const ap=[Function,Array],Mpt={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ap,onEnter:ap,onAfterEnter:ap,onEnterCancelled:ap,onBeforeLeave:ap,onLeave:ap,onAfterLeave:ap,onLeaveCancelled:ap,onBeforeAppear:ap,onAppear:ap,onAfterAppear:ap,onAppearCancelled:ap},Ppt=a=>{const d=a.subTree;return d.component?Ppt(d.component):d},Jqt={name:"BaseTransition",props:Mpt,setup(a,{slots:d}){const b=hm(),m=Gqt();return()=>{const w=d.default&&Lpt(d.default(),!0);if(!w||!w.length)return;const $=Dpt(w),p=hc(a),{mode:j}=p;if(m.isLeaving)return _2e($);const I=tgt($);if(!I)return _2e($);let N=Z2e(I,p,m,b,U=>N=U);I.type!==jh&&XO(I,N);let P=b.subTree&&tgt(b.subTree);if(P&&P.type!==jh&&!e9(P,I)&&Ppt(b).type!==jh){let U=Z2e(P,p,m,b);if(XO(P,U),j==="out-in"&&I.type!==jh)return m.isLeaving=!0,U.afterLeave=()=>{m.isLeaving=!1,b.job.flags&8||b.update(),delete U.afterLeave,P=void 0},_2e($);j==="in-out"&&I.type!==jh?U.delayLeave=(V,X,ee)=>{const K=Opt(m,P);K[String(P.key)]=P,V[rm]=()=>{X(),V[rm]=void 0,delete N.delayedLeave,P=void 0},N.delayedLeave=()=>{ee(),delete N.delayedLeave,P=void 0}}:P=void 0}else P&&(P=void 0);return $}}};function Dpt(a){let d=a[0];if(a.length>1){for(const b of a)if(b.type!==jh){d=b;break}}return d}const Uqt=Jqt;function Opt(a,d){const{leavingVNodes:b}=a;let m=b.get(d.type);return m||(m=Object.create(null),b.set(d.type,m)),m}function Z2e(a,d,b,m,w){const{appear:$,mode:p,persisted:j=!1,onBeforeEnter:I,onEnter:N,onAfterEnter:P,onEnterCancelled:U,onBeforeLeave:V,onLeave:X,onAfterLeave:ee,onLeaveCancelled:K,onBeforeAppear:he,onAppear:ke,onAfterAppear:ue,onAppearCancelled:oe}=d,re=String(a.key),ye=Opt(b,a),pe=(le,Ce)=>{le&&wv(le,m,9,Ce)},be=(le,Ce)=>{const Se=Ce[1];pe(le,Ce),Mr(le)?le.every(te=>te.length<=1)&&Se():le.length<=1&&Se()},se={mode:p,persisted:j,beforeEnter(le){let Ce=I;if(!b.isMounted)if($)Ce=he||I;else return;le[rm]&&le[rm](!0);const Se=ye[re];Se&&e9(a,Se)&&Se.el[rm]&&Se.el[rm](),pe(Ce,[le])},enter(le){if(ye[re]===a)return;let Ce=N,Se=P,te=U;if(!b.isMounted)if($)Ce=ke||N,Se=ue||P,te=oe||U;else return;let q=!1;le[$O]=gt=>{q||(q=!0,gt?pe(te,[le]):pe(Se,[le]),se.delayedLeave&&se.delayedLeave(),le[$O]=void 0)};const He=le[$O].bind(null,!1);Ce?be(Ce,[le,He]):He()},leave(le,Ce){const Se=String(a.key);if(le[$O]&&le[$O](!0),b.isUnmounting)return Ce();pe(V,[le]);let te=!1;le[rm]=He=>{te||(te=!0,Ce(),He?pe(K,[le]):pe(ee,[le]),le[rm]=void 0,ye[Se]===a&&delete ye[Se])};const q=le[rm].bind(null,!1);ye[Se]=a,X?be(X,[le,q]):q()},clone(le){const Ce=Z2e(le,d,b,m,w);return w&&w(Ce),Ce}};return se}function _2e(a){if(LX(a))return a=Nk(a),a.children=null,a}function tgt(a){if(!LX(a))return Apt(a.type)&&a.children?Dpt(a.children):a;if(a.component)return a.component.subTree;const{shapeFlag:d,children:b}=a;if(b){if(d&16)return b[0];if(d&32&&vs(b.default))return b.default()}}function XO(a,d){a.shapeFlag&6&&a.component?(a.transition=d,XO(a.component.subTree,d)):a.shapeFlag&128?(a.ssContent.transition=d.clone(a.ssContent),a.ssFallback.transition=d.clone(a.ssFallback)):a.transition=d}function Lpt(a,d=!1,b){let m=[],w=0;for(let $=0;$<a.length;$++){let p=a[$];const j=b==null?p.key:String(b)+String(p.key!=null?p.key:$);p.type===sn?(p.patchFlag&128&&w++,m=m.concat(Lpt(p.children,d,j))):(d||p.type!==jh)&&m.push(j!=null?Nk(p,{key:j}):p)}if(w>1)for(let $=0;$<m.length;$++)m[$].patchFlag=-2;return m}function wr(a,d){return vs(a)?cf({name:a.name},d,{setup:a}):a}function Npt(a){a.ids=[a.ids[0]+a.ids[2]+++"-",0,0]}function ngt(a,d){let b;return!!((b=Object.getOwnPropertyDescriptor(a,d))&&!b.configurable)}const sX=new WeakMap;function FO(a,d,b,m,w=!1){if(Mr(a)){a.forEach((K,he)=>FO(K,d&&(Mr(d)?d[he]:d),b,m,w));return}if(GS(m)&&!w){m.shapeFlag&512&&m.type.__asyncResolved&&m.component.subTree.component&&FO(a,d,b,m.component.subTree);return}const $=m.shapeFlag&4?HX(m.component):m.el,p=w?null:$,{i:j,r:I}=a,N=d&&d.r,P=j.refs===Cc?j.refs={}:j.refs,U=j.setupState,V=hc(U),X=U===Cc?Wbt:K=>ngt(P,K)?!1:Nc(V,K),ee=(K,he)=>!(he&&ngt(P,he));if(N!=null&&N!==I){if(igt(d),Bl(N))P[N]=null,X(N)&&(U[N]=null);else if(Zc(N)){const K=d;ee(N,K.k)&&(N.value=null),K.k&&(P[K.k]=null)}}if(vs(I))aL(I,j,12,[p,P]);else{const K=Bl(I),he=Zc(I);if(K||he){const ke=()=>{if(a.f){const ue=K?X(I)?U[I]:P[I]:ee()||!a.k?I.value:P[a.k];if(w)Mr(ue)&&Sme(ue,$);else if(Mr(ue))ue.includes($)||ue.push($);else if(K)P[I]=[$],X(I)&&(U[I]=P[I]);else{const oe=[$];ee(I,a.k)&&(I.value=oe),a.k&&(P[a.k]=oe)}}else K?(P[I]=p,X(I)&&(U[I]=p)):he&&(ee(I,a.k)&&(I.value=p),a.k&&(P[a.k]=p))};if(p){const ue=()=>{ke(),sX.delete(a)};ue.id=-1,sX.set(a,ue),Ch(ue,b)}else igt(a),ke()}}}function igt(a){const d=sX.get(a);d&&(d.flags|=8,sX.delete(a))}TX().requestIdleCallback;TX().cancelIdleCallback;const GS=a=>!!a.type.__asyncLoader,LX=a=>a.type.__isKeepAlive;function zqt(a,d){Rpt(a,"a",d)}function qqt(a,d){Rpt(a,"da",d)}function Rpt(a,d,b=Ih){const m=a.__wdc||(a.__wdc=()=>{let w=b;for(;w;){if(w.isDeactivated)return;w=w.parent}return a()});if(NX(d,m,b),b){let w=b.parent;for(;w&&w.parent;)LX(w.parent.vnode)&&Vqt(m,d,b,w),w=w.parent}}function Vqt(a,d,b,m){const w=NX(d,a,m,!0);dp(()=>{Sme(m[d],w)},b)}function NX(a,d,b=Ih,m=!1){if(b){const w=b[a]||(b[a]=[]),$=d.__weh||(d.__weh=(...p)=>{A3();const j=fL(b),I=wv(d,b,a,p);return j(),T3(),I});return m?w.unshift($):w.push($),$}}const O3=a=>(d,b=Ih)=>{(!QO||a==="sp")&&NX(a,(...m)=>d(...m),b)},Fpt=O3("bm"),gl=O3("m"),Kqt=O3("bu"),Wqt=O3("u"),RX=O3("bum"),dp=O3("um"),Xqt=O3("sp"),Yqt=O3("rtg"),Qqt=O3("rtc");function Zqt(a,d=Ih){NX("ec",a,d)}const Bpt="components";function Hpt(a,d){return Jpt(Bpt,a,!0,d)||a}const Gpt=Symbol.for("v-ndc");function RS(a){return Bl(a)?Jpt(Bpt,a,!1)||a:a||Gpt}function Jpt(a,d,b=!0,m=!1){const w=Bd||Ih;if(w){const $=w.type;{const j=NVt($,!1);if(j&&(j===d||j===Mh(d)||j===IX(Mh(d))))return $}const p=rgt(w[a]||$[a],d)||rgt(w.appContext[a],d);return!p&&m?$:p}}function rgt(a,d){return a&&(a[d]||a[Mh(d)]||a[IX(Mh(d))])}function bi(a,d,b,m){let w;const $=b&&b[m],p=Mr(a);if(p||Bl(a)){const j=p&&o9(a);let I=!1,N=!1;j&&(I=!qg(a),N=M3(a),a=PX(a)),w=new Array(a.length);for(let P=0,U=a.length;P<U;P++)w[P]=d(I?N?KS(pv(a[P])):pv(a[P]):a[P],P,void 0,$&&$[P])}else if(typeof a=="number"){w=new Array(a);for(let j=0;j<a;j++)w[j]=d(j+1,j,void 0,$&&$[j])}else if(jc(a))if(a[Symbol.iterator])w=Array.from(a,(j,I)=>d(j,I,void 0,$&&$[I]));else{const j=Object.keys(a);w=new Array(j.length);for(let I=0,N=j.length;I<N;I++){const P=j[I];w[I]=d(a[P],P,I,$&&$[I])}}else w=[];return b&&(b[m]=w),w}function Fl(a,d,b={},m,w){if(Bd.ce||Bd.parent&&GS(Bd.parent)&&Bd.parent.ce){const N=Object.keys(b).length>0;return d!=="default"&&(b.name=d),R(),Ts(sn,null,[xr("slot",b,m&&m())],N?-2:64)}let $=a[d];$&&$._c&&($._d=!1),R();const p=$&&Upt($(b)),j=b.key||p&&p.key,I=Ts(sn,{key:(j&&!bv(j)?j:`_${d}`)+(!p&&m?"_fb":"")},p||(m?m():[]),p&&a._===1?64:-2);return I.scopeId&&(I.slotScopeIds=[I.scopeId+"-s"]),$&&$._c&&($._d=!0),I}function Upt(a){return a.some(d=>YO(d)?!(d.type===jh||d.type===sn&&!Upt(d.children)):!0)?a:null}const eme=a=>a?dwt(a)?HX(a):eme(a.parent):null,BO=cf(Object.create(null),{$:a=>a,$el:a=>a.vnode.el,$data:a=>a.data,$props:a=>a.props,$attrs:a=>a.attrs,$slots:a=>a.slots,$refs:a=>a.refs,$parent:a=>eme(a.parent),$root:a=>eme(a.root),$host:a=>a.ce,$emit:a=>a.emit,$options:a=>Vpt(a),$forceUpdate:a=>a.f||(a.f=()=>{Dme(a.update)}),$nextTick:a=>a.n||(a.n=_1.bind(a.proxy)),$watch:a=>Bqt.bind(a)}),j2e=(a,d)=>a!==Cc&&!a.__isScriptSetup&&Nc(a,d),eVt={get({_:a},d){if(d==="__v_skip")return!0;const{ctx:b,setupState:m,data:w,props:$,accessCache:p,type:j,appContext:I}=a;if(d[0]!=="$"){const V=p[d];if(V!==void 0)switch(V){case 1:return m[d];case 2:return w[d];case 4:return b[d];case 3:return $[d]}else{if(j2e(m,d))return p[d]=1,m[d];if(w!==Cc&&Nc(w,d))return p[d]=2,w[d];if(Nc($,d))return p[d]=3,$[d];if(b!==Cc&&Nc(b,d))return p[d]=4,b[d];tme&&(p[d]=0)}}const N=BO[d];let P,U;if(N)return d==="$attrs"&&_h(a.attrs,"get",""),N(a);if((P=j.__cssModules)&&(P=P[d]))return P;if(b!==Cc&&Nc(b,d))return p[d]=4,b[d];if(U=I.config.globalProperties,Nc(U,d))return U[d]},set({_:a},d,b){const{data:m,setupState:w,ctx:$}=a;return j2e(w,d)?(w[d]=b,!0):m!==Cc&&Nc(m,d)?(m[d]=b,!0):Nc(a.props,d)||d[0]==="$"&&d.slice(1)in a?!1:($[d]=b,!0)},has({_:{data:a,setupState:d,accessCache:b,ctx:m,appContext:w,props:$,type:p}},j){let I;return!!(b[j]||a!==Cc&&j[0]!=="$"&&Nc(a,j)||j2e(d,j)||Nc($,j)||Nc(m,j)||Nc(BO,j)||Nc(w.config.globalProperties,j)||(I=p.__cssModules)&&I[j])},defineProperty(a,d,b){return b.get!=null?a._.accessCache[d]=0:Nc(b,"value")&&this.set(a,d,b.value,null),Reflect.defineProperty(a,d,b)}};function tVt(){return zpt().slots}function nVt(){return zpt().attrs}function zpt(a){const d=hm();return d.setupContext||(d.setupContext=gwt(d))}function oX(a){return Mr(a)?a.reduce((d,b)=>(d[b]=null,d),{}):a}function cX(a,d){return!a||!d?a||d:Mr(a)&&Mr(d)?a.concat(d):cf({},oX(a),oX(d))}function iVt(a,d){const b={};for(const m in a)d.includes(m)||Object.defineProperty(b,m,{enumerable:!0,get:()=>a[m]});return b}let tme=!0;function rVt(a){const d=Vpt(a),b=a.proxy,m=a.ctx;tme=!1,d.beforeCreate&&sgt(d.beforeCreate,a,"bc");const{data:w,computed:$,methods:p,watch:j,provide:I,inject:N,created:P,beforeMount:U,mounted:V,beforeUpdate:X,updated:ee,activated:K,deactivated:he,beforeDestroy:ke,beforeUnmount:ue,destroyed:oe,unmounted:re,render:ye,renderTracked:pe,renderTriggered:be,errorCaptured:se,serverPrefetch:le,expose:Ce,inheritAttrs:Se,components:te,directives:q,filters:He}=d;if(N&&sVt(N,m,null),p)for(const jt in p){const Jt=p[jt];vs(Jt)&&(m[jt]=Jt.bind(b))}if(w){const jt=w.call(b,b);jc(jt)&&(a.data=i_(jt))}if(tme=!0,$)for(const jt in $){const Jt=$[jt],xe=vs(Jt)?Jt.bind(b,b):vs(Jt.get)?Jt.get.bind(b,b):am,Pe=!vs(Jt)&&vs(Jt.set)?Jt.set.bind(b):am,Je=En({get:xe,set:Pe});Object.defineProperty(m,jt,{enumerable:!0,configurable:!0,get:()=>Je.value,set:Bt=>Je.value=Bt})}if(j)for(const jt in j)qpt(j[jt],m,b,jt);if(I){const jt=vs(I)?I.call(b):I;Reflect.ownKeys(jt).forEach(Jt=>{l9(Jt,jt[Jt])})}P&&sgt(P,a,"c");function ze(jt,Jt){Mr(Jt)?Jt.forEach(xe=>jt(xe.bind(b))):Jt&&jt(Jt.bind(b))}if(ze(Fpt,U),ze(gl,V),ze(Kqt,X),ze(Wqt,ee),ze(zqt,K),ze(qqt,he),ze(Zqt,se),ze(Qqt,pe),ze(Yqt,be),ze(RX,ue),ze(dp,re),ze(Xqt,le),Mr(Ce))if(Ce.length){const jt=a.exposed||(a.exposed={});Ce.forEach(Jt=>{Object.defineProperty(jt,Jt,{get:()=>b[Jt],set:xe=>b[Jt]=xe,enumerable:!0})})}else a.exposed||(a.exposed={});ye&&a.render===am&&(a.render=ye),Se!=null&&(a.inheritAttrs=Se),te&&(a.components=te),q&&(a.directives=q),le&&Npt(a)}function sVt(a,d,b=am){Mr(a)&&(a=nme(a));for(const m in a){const w=a[m];let $;jc(w)?"default"in w?$=fm(w.from||m,w.default,!0):$=fm(w.from||m):$=fm(w),Zc($)?Object.defineProperty(d,m,{enumerable:!0,configurable:!0,get:()=>$.value,set:p=>$.value=p}):d[m]=$}}function sgt(a,d,b){wv(Mr(a)?a.map(m=>m.bind(d.proxy)):a.bind(d.proxy),d,b)}function qpt(a,d,b,m){let w=m.includes(".")?jpt(b,m):()=>b[m];if(Bl(a)){const $=d[a];vs($)&&Jr(w,$)}else if(vs(a))Jr(w,a.bind(b));else if(jc(a))if(Mr(a))a.forEach($=>qpt($,d,b,m));else{const $=vs(a.handler)?a.handler.bind(b):d[a.handler];vs($)&&Jr(w,$,a)}}function Vpt(a){const d=a.type,{mixins:b,extends:m}=d,{mixins:w,optionsCache:$,config:{optionMergeStrategies:p}}=a.appContext,j=$.get(d);let I;return j?I=j:!w.length&&!b&&!m?I=d:(I={},w.length&&w.forEach(N=>uX(I,N,p,!0)),uX(I,d,p)),jc(d)&&$.set(d,I),I}function uX(a,d,b,m=!1){const{mixins:w,extends:$}=d;$&&uX(a,$,b,!0),w&&w.forEach(p=>uX(a,p,b,!0));for(const p in d)if(!(m&&p==="expose")){const j=oVt[p]||b&&b[p];a[p]=j?j(a[p],d[p]):d[p]}return a}const oVt={data:ogt,props:cgt,emits:cgt,methods:AO,computed:AO,beforeCreate:$1,created:$1,beforeMount:$1,mounted:$1,beforeUpdate:$1,updated:$1,beforeDestroy:$1,beforeUnmount:$1,destroyed:$1,unmounted:$1,activated:$1,deactivated:$1,errorCaptured:$1,serverPrefetch:$1,components:AO,directives:AO,watch:uVt,provide:ogt,inject:cVt};function ogt(a,d){return d?a?function(){return cf(vs(a)?a.call(this,this):a,vs(d)?d.call(this,this):d)}:d:a}function cVt(a,d){return AO(nme(a),nme(d))}function nme(a){if(Mr(a)){const d={};for(let b=0;b<a.length;b++)d[a[b]]=a[b];return d}return a}function $1(a,d){return a?[...new Set([].concat(a,d))]:d}function AO(a,d){return a?cf(Object.create(null),a,d):d}function cgt(a,d){return a?Mr(a)&&Mr(d)?[...new Set([...a,...d])]:cf(Object.create(null),oX(a),oX(d??{})):d}function uVt(a,d){if(!a)return d;if(!d)return a;const b=cf(Object.create(null),a);for(const m in d)b[m]=$1(a[m],d[m]);return b}function Kpt(){return{app:null,config:{isNativeTag:Wbt,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 lVt=0;function aVt(a,d){return function(m,w=null){vs(m)||(m=cf({},m)),w!=null&&!jc(w)&&(w=null);const $=Kpt(),p=new WeakSet,j=[];let I=!1;const N=$.app={_uid:lVt++,_component:m,_props:w,_container:null,_context:$,_instance:null,version:BVt,get config(){return $.config},set config(P){},use(P,...U){return p.has(P)||(P&&vs(P.install)?(p.add(P),P.install(N,...U)):vs(P)&&(p.add(P),P(N,...U))),N},mixin(P){return $.mixins.includes(P)||$.mixins.push(P),N},component(P,U){return U?($.components[P]=U,N):$.components[P]},directive(P,U){return U?($.directives[P]=U,N):$.directives[P]},mount(P,U,V){if(!I){const X=N._ceVNode||xr(m,w);return X.appContext=$,V===!0?V="svg":V===!1&&(V=void 0),a(X,P,V),I=!0,N._container=P,P.__vue_app__=N,HX(X.component)}},onUnmount(P){j.push(P)},unmount(){I&&(wv(j,N._instance,16),a(null,N._container),delete N._container.__vue_app__)},provide(P,U){return $.provides[P]=U,N},runWithContext(P){const U=JS;JS=N;try{return P()}finally{JS=U}}};return N}}let JS=null;function ime(a,d,b=Cc){const m=hm(),w=Mh(d),$=D3(d),p=Wpt(a,w),j=kpt((I,N)=>{let P,U=Cc,V;return Fqt(()=>{const X=a[w];Fd(P,X)&&(P=X,N())}),{get(){return I(),b.get?b.get(P):P},set(X){const ee=b.set?b.set(X):X;if(!Fd(ee,P)&&!(U!==Cc&&Fd(X,U)))return;const K=m.vnode.props;K&&(d in K||w in K||$ in K)&&(`onUpdate:${d}`in K||`onUpdate:${w}`in K||`onUpdate:${$}`in K)||(P=X,N()),m.emit(`update:${d}`,ee),Fd(X,ee)&&Fd(X,U)&&!Fd(ee,V)&&N(),U=X,V=ee}}});return j[Symbol.iterator]=()=>{let I=0;return{next(){return I<2?{value:I++?p||Cc:j,done:!1}:{done:!0}}}},j}const Wpt=(a,d)=>d==="modelValue"||d==="model-value"?a.modelModifiers:a[`${d}Modifiers`]||a[`${Mh(d)}Modifiers`]||a[`${D3(d)}Modifiers`];function fVt(a,d,...b){if(a.isUnmounted)return;const m=a.vnode.props||Cc;let w=b;const $=d.startsWith("update:"),p=$&&Wpt(m,d.slice(7));p&&(p.trim&&(w=b.map(P=>Bl(P)?P.trim():P)),p.number&&(w=b.map(AX)));let j,I=m[j=x2e(d)]||m[j=x2e(Mh(d))];!I&&$&&(I=m[j=x2e(D3(d))]),I&&wv(I,a,6,w);const N=m[j+"Once"];if(N){if(!a.emitted)a.emitted={};else if(a.emitted[j])return;a.emitted[j]=!0,wv(N,a,6,w)}}const dVt=new WeakMap;function Xpt(a,d,b=!1){const m=b?dVt:d.emitsCache,w=m.get(a);if(w!==void 0)return w;const $=a.emits;let p={},j=!1;if(!vs(a)){const I=N=>{const P=Xpt(N,d,!0);P&&(j=!0,cf(p,P))};!b&&d.mixins.length&&d.mixins.forEach(I),a.extends&&I(a.extends),a.mixins&&a.mixins.forEach(I)}return!$&&!j?(jc(a)&&m.set(a,null),null):(Mr($)?$.forEach(I=>p[I]=null):cf(p,$),jc(a)&&m.set(a,p),p)}function FX(a,d){return!a||!SX(d)?!1:(d=d.slice(2).replace(/Once$/,""),Nc(a,d[0].toLowerCase()+d.slice(1))||Nc(a,D3(d))||Nc(a,d))}function ugt(a){const{type:d,vnode:b,proxy:m,withProxy:w,propsOptions:[$],slots:p,attrs:j,emit:I,render:N,renderCache:P,props:U,data:V,setupState:X,ctx:ee,inheritAttrs:K}=a,he=rX(a);let ke,ue;try{if(b.shapeFlag&4){const re=w||m,ye=re;ke=cm(N.call(ye,re,P,U,X,V,ee)),ue=j}else{const re=d;ke=cm(re.length>1?re(U,{attrs:j,slots:p,emit:I}):re(U,null)),ue=d.props?j:hVt(j)}}catch(re){HO.length=0,OX(re,a,1),ke=xr(jh)}let oe=ke;if(ue&&K!==!1){const re=Object.keys(ue),{shapeFlag:ye}=oe;re.length&&ye&7&&($&&re.some(Cme)&&(ue=gVt(ue,$)),oe=Nk(oe,ue,!1,!0))}return b.dirs&&(oe=Nk(oe,null,!1,!0),oe.dirs=oe.dirs?oe.dirs.concat(b.dirs):b.dirs),b.transition&&XO(oe,b.transition),ke=oe,rX(he),ke}const hVt=a=>{let d;for(const b in a)(b==="class"||b==="style"||SX(b))&&((d||(d={}))[b]=a[b]);return d},gVt=(a,d)=>{const b={};for(const m in a)(!Cme(m)||!(m.slice(9)in d))&&(b[m]=a[m]);return b};function bVt(a,d,b){const{props:m,children:w,component:$}=a,{props:p,children:j,patchFlag:I}=d,N=$.emitsOptions;if(d.dirs||d.transition)return!0;if(b&&I>=0){if(I&1024)return!0;if(I&16)return m?lgt(m,p,N):!!p;if(I&8){const P=d.dynamicProps;for(let U=0;U<P.length;U++){const V=P[U];if(Ypt(p,m,V)&&!FX(N,V))return!0}}}else return(w||j)&&(!j||!j.$stable)?!0:m===p?!1:m?p?lgt(m,p,N):!0:!!p;return!1}function lgt(a,d,b){const m=Object.keys(d);if(m.length!==Object.keys(a).length)return!0;for(let w=0;w<m.length;w++){const $=m[w];if(Ypt(d,a,$)&&!FX(b,$))return!0}return!1}function Ypt(a,d,b){const m=a[b],w=d[b];return b==="style"&&jc(m)&&jc(w)?!Lk(m,w):m!==w}function pVt({vnode:a,parent:d},b){for(;d;){const m=d.subTree;if(m.suspense&&m.suspense.activeBranch===a&&(m.el=a.el),m===a)(a=d.vnode).el=b,d=d.parent;else break}}const Qpt={},Zpt=()=>Object.create(Qpt),ewt=a=>Object.getPrototypeOf(a)===Qpt;function wVt(a,d,b,m=!1){const w={},$=Zpt();a.propsDefaults=Object.create(null),twt(a,d,w,$);for(const p in a.propsOptions[0])p in w||(w[p]=void 0);b?a.props=m?w:$qt(w):a.type.props?a.props=w:a.props=$,a.attrs=$}function vVt(a,d,b,m){const{props:w,attrs:$,vnode:{patchFlag:p}}=a,j=hc(w),[I]=a.propsOptions;let N=!1;if((m||p>0)&&!(p&16)){if(p&8){const P=a.vnode.dynamicProps;for(let U=0;U<P.length;U++){let V=P[U];if(FX(a.emitsOptions,V))continue;const X=d[V];if(I)if(Nc($,V))X!==$[V]&&($[V]=X,N=!0);else{const ee=Mh(V);w[ee]=rme(I,j,ee,X,a,!1)}else X!==$[V]&&($[V]=X,N=!0)}}}else{twt(a,d,w,$)&&(N=!0);let P;for(const U in j)(!d||!Nc(d,U)&&((P=D3(U))===U||!Nc(d,P)))&&(I?b&&(b[U]!==void 0||b[P]!==void 0)&&(w[U]=rme(I,j,U,void 0,a,!0)):delete w[U]);if($!==j)for(const U in $)(!d||!Nc(d,U))&&(delete $[U],N=!0)}N&&$3(a.attrs,"set","")}function twt(a,d,b,m){const[w,$]=a.propsOptions;let p=!1,j;if(d)for(let I in d){if(OO(I))continue;const N=d[I];let P;w&&Nc(w,P=Mh(I))?!$||!$.includes(P)?b[P]=N:(j||(j={}))[P]=N:FX(a.emitsOptions,I)||(!(I in m)||N!==m[I])&&(m[I]=N,p=!0)}if($){const I=hc(b),N=j||Cc;for(let P=0;P<$.length;P++){const U=$[P];b[U]=rme(w,I,U,N[U],a,!Nc(N,U))}}return p}function rme(a,d,b,m,w,$){const p=a[b];if(p!=null){const j=Nc(p,"default");if(j&&m===void 0){const I=p.default;if(p.type!==Function&&!p.skipFactory&&vs(I)){const{propsDefaults:N}=w;if(b in N)m=N[b];else{const P=fL(w);m=N[b]=I.call(null,d),P()}}else m=I;w.ce&&w.ce._setProp(b,m)}p[0]&&($&&!j?m=!1:p[1]&&(m===""||m===D3(b))&&(m=!0))}return m}const mVt=new WeakMap;function nwt(a,d,b=!1){const m=b?mVt:d.propsCache,w=m.get(a);if(w)return w;const $=a.props,p={},j=[];let I=!1;if(!vs(a)){const P=U=>{I=!0;const[V,X]=nwt(U,d,!0);cf(p,V),X&&j.push(...X)};!b&&d.mixins.length&&d.mixins.forEach(P),a.extends&&P(a.extends),a.mixins&&a.mixins.forEach(P)}if(!$&&!I)return jc(a)&&m.set(a,FS),FS;if(Mr($))for(let P=0;P<$.length;P++){const U=Mh($[P]);agt(U)&&(p[U]=Cc)}else if($)for(const P in $){const U=Mh(P);if(agt(U)){const V=$[P],X=p[U]=Mr(V)||vs(V)?{type:V}:cf({},V),ee=X.type;let K=!1,he=!0;if(Mr(ee))for(let ke=0;ke<ee.length;++ke){const ue=ee[ke],oe=vs(ue)&&ue.name;if(oe==="Boolean"){K=!0;break}else oe==="String"&&(he=!1)}else K=vs(ee)&&ee.name==="Boolean";X[0]=K,X[1]=he,(K||Nc(X,"default"))&&j.push(U)}}const N=[p,j];return jc(a)&&m.set(a,N),N}function agt(a){return a[0]!=="$"&&!OO(a)}const Nme=a=>a==="_"||a==="_ctx"||a==="$stable",Rme=a=>Mr(a)?a.map(cm):[cm(a)],yVt=(a,d,b)=>{if(d._n)return d;const m=zg((...w)=>Rme(d(...w)),b);return m._c=!1,m},iwt=(a,d,b)=>{const m=a._ctx;for(const w in a){if(Nme(w))continue;const $=a[w];if(vs($))d[w]=yVt(w,$,m);else if($!=null){const p=Rme($);d[w]=()=>p}}},rwt=(a,d)=>{const b=Rme(d);a.slots.default=()=>b},swt=(a,d,b)=>{for(const m in d)(b||!Nme(m))&&(a[m]=d[m])},kVt=(a,d,b)=>{const m=a.slots=Zpt();if(a.vnode.shapeFlag&32){const w=d._;w?(swt(m,d,b),b&&Zbt(m,"_",w,!0)):iwt(d,m)}else d&&rwt(a,d)},xVt=(a,d,b)=>{const{vnode:m,slots:w}=a;let $=!0,p=Cc;if(m.shapeFlag&32){const j=d._;j?b&&j===1?$=!1:swt(w,d,b):($=!d.$stable,iwt(d,w)),p=d}else d&&(rwt(a,d),p={default:1});if($)for(const j in w)!Nme(j)&&p[j]==null&&delete w[j]},Ch=_Vt;function $Vt(a){return EVt(a)}function EVt(a,d){const b=TX();b.__VUE__=!0;const{insert:m,remove:w,patchProp:$,createElement:p,createText:j,createComment:I,setText:N,setElementText:P,parentNode:U,nextSibling:V,setScopeId:X=am,insertStaticContent:ee}=a,K=(Ne,Xe,we,_e=null,Fe=null,Qe=null,it=void 0,Ct=null,Ge=!!Xe.dynamicChildren)=>{if(Ne===Xe)return;Ne&&!e9(Ne,Xe)&&(_e=wi(Ne),Bt(Ne,Fe,Qe,!0),Ne=null),Xe.patchFlag===-2&&(Ge=!1,Xe.dynamicChildren=null);const{type:Ze,ref:mn,shapeFlag:kn}=Xe;switch(Ze){case BX:he(Ne,Xe,we,_e);break;case jh:ke(Ne,Xe,we,_e);break;case qW:Ne==null&&ue(Xe,we,_e,it);break;case sn:te(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge);break;default:kn&1?ye(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge):kn&6?q(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge):(kn&64||kn&128)&&Ze.process(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge,on)}mn!=null&&Fe?FO(mn,Ne&&Ne.ref,Qe,Xe||Ne,!Xe):mn==null&&Ne&&Ne.ref!=null&&FO(Ne.ref,null,Qe,Ne,!0)},he=(Ne,Xe,we,_e)=>{if(Ne==null)m(Xe.el=j(Xe.children),we,_e);else{const Fe=Xe.el=Ne.el;Xe.children!==Ne.children&&N(Fe,Xe.children)}},ke=(Ne,Xe,we,_e)=>{Ne==null?m(Xe.el=I(Xe.children||""),we,_e):Xe.el=Ne.el},ue=(Ne,Xe,we,_e)=>{[Ne.el,Ne.anchor]=ee(Ne.children,Xe,we,_e,Ne.el,Ne.anchor)},oe=({el:Ne,anchor:Xe},we,_e)=>{let Fe;for(;Ne&&Ne!==Xe;)Fe=V(Ne),m(Ne,we,_e),Ne=Fe;m(Xe,we,_e)},re=({el:Ne,anchor:Xe})=>{let we;for(;Ne&&Ne!==Xe;)we=V(Ne),w(Ne),Ne=we;w(Xe)},ye=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{if(Xe.type==="svg"?it="svg":Xe.type==="math"&&(it="mathml"),Ne==null)pe(Xe,we,_e,Fe,Qe,it,Ct,Ge);else{const Ze=Ne.el&&Ne.el._isVueCE?Ne.el:null;try{Ze&&Ze._beginPatch(),le(Ne,Xe,Fe,Qe,it,Ct,Ge)}finally{Ze&&Ze._endPatch()}}},pe=(Ne,Xe,we,_e,Fe,Qe,it,Ct)=>{let Ge,Ze;const{props:mn,shapeFlag:kn,transition:ui,dirs:Si}=Ne;if(Ge=Ne.el=p(Ne.type,Qe,mn&&mn.is,mn),kn&8?P(Ge,Ne.children):kn&16&&se(Ne.children,Ge,null,_e,Fe,I2e(Ne,Qe),it,Ct),Si&&W8(Ne,null,_e,"created"),be(Ge,Ne,Ne.scopeId,it,_e),mn){for(const qs in mn)qs!=="value"&&!OO(qs)&&$(Ge,qs,null,mn[qs],Qe,_e);"value"in mn&&$(Ge,"value",null,mn.value,Qe),(Ze=mn.onVnodeBeforeMount)&&tm(Ze,_e,Ne)}Si&&W8(Ne,null,_e,"beforeMount");const ds=CVt(Fe,ui);ds&&ui.beforeEnter(Ge),m(Ge,Xe,we),((Ze=mn&&mn.onVnodeMounted)||ds||Si)&&Ch(()=>{Ze&&tm(Ze,_e,Ne),ds&&ui.enter(Ge),Si&&W8(Ne,null,_e,"mounted")},Fe)},be=(Ne,Xe,we,_e,Fe)=>{if(we&&X(Ne,we),_e)for(let Qe=0;Qe<_e.length;Qe++)X(Ne,_e[Qe]);if(Fe){let Qe=Fe.subTree;if(Xe===Qe||uwt(Qe.type)&&(Qe.ssContent===Xe||Qe.ssFallback===Xe)){const it=Fe.vnode;be(Ne,it,it.scopeId,it.slotScopeIds,Fe.parent)}}},se=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge=0)=>{for(let Ze=Ge;Ze<Ne.length;Ze++){const mn=Ne[Ze]=Ct?k3(Ne[Ze]):cm(Ne[Ze]);K(null,mn,Xe,we,_e,Fe,Qe,it,Ct)}},le=(Ne,Xe,we,_e,Fe,Qe,it)=>{const Ct=Xe.el=Ne.el;let{patchFlag:Ge,dynamicChildren:Ze,dirs:mn}=Xe;Ge|=Ne.patchFlag&16;const kn=Ne.props||Cc,ui=Xe.props||Cc;let Si;if(we&&X8(we,!1),(Si=ui.onVnodeBeforeUpdate)&&tm(Si,we,Xe,Ne),mn&&W8(Xe,Ne,we,"beforeUpdate"),we&&X8(we,!0),(kn.innerHTML&&ui.innerHTML==null||kn.textContent&&ui.textContent==null)&&P(Ct,""),Ze?Ce(Ne.dynamicChildren,Ze,Ct,we,_e,I2e(Xe,Fe),Qe):it||Jt(Ne,Xe,Ct,null,we,_e,I2e(Xe,Fe),Qe,!1),Ge>0){if(Ge&16)Se(Ct,kn,ui,we,Fe);else if(Ge&2&&kn.class!==ui.class&&$(Ct,"class",null,ui.class,Fe),Ge&4&&$(Ct,"style",kn.style,ui.style,Fe),Ge&8){const ds=Xe.dynamicProps;for(let qs=0;qs<ds.length;qs++){const Ro=ds[qs],uf=kn[Ro],lf=ui[Ro];(lf!==uf||Ro==="value")&&$(Ct,Ro,uf,lf,Fe,we)}}Ge&1&&Ne.children!==Xe.children&&P(Ct,Xe.children)}else!it&&Ze==null&&Se(Ct,kn,ui,we,Fe);((Si=ui.onVnodeUpdated)||mn)&&Ch(()=>{Si&&tm(Si,we,Xe,Ne),mn&&W8(Xe,Ne,we,"updated")},_e)},Ce=(Ne,Xe,we,_e,Fe,Qe,it)=>{for(let Ct=0;Ct<Xe.length;Ct++){const Ge=Ne[Ct],Ze=Xe[Ct],mn=Ge.el&&(Ge.type===sn||!e9(Ge,Ze)||Ge.shapeFlag&198)?U(Ge.el):we;K(Ge,Ze,mn,null,_e,Fe,Qe,it,!0)}},Se=(Ne,Xe,we,_e,Fe)=>{if(Xe!==we){if(Xe!==Cc)for(const Qe in Xe)!OO(Qe)&&!(Qe in we)&&$(Ne,Qe,Xe[Qe],null,Fe,_e);for(const Qe in we){if(OO(Qe))continue;const it=we[Qe],Ct=Xe[Qe];it!==Ct&&Qe!=="value"&&$(Ne,Qe,Ct,it,Fe,_e)}"value"in we&&$(Ne,"value",Xe.value,we.value,Fe)}},te=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{const Ze=Xe.el=Ne?Ne.el:j(""),mn=Xe.anchor=Ne?Ne.anchor:j("");let{patchFlag:kn,dynamicChildren:ui,slotScopeIds:Si}=Xe;Si&&(Ct=Ct?Ct.concat(Si):Si),Ne==null?(m(Ze,we,_e),m(mn,we,_e),se(Xe.children||[],we,mn,Fe,Qe,it,Ct,Ge)):kn>0&&kn&64&&ui&&Ne.dynamicChildren&&Ne.dynamicChildren.length===ui.length?(Ce(Ne.dynamicChildren,ui,we,Fe,Qe,it,Ct),(Xe.key!=null||Fe&&Xe===Fe.subTree)&&Fme(Ne,Xe,!0)):Jt(Ne,Xe,we,mn,Fe,Qe,it,Ct,Ge)},q=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{Xe.slotScopeIds=Ct,Ne==null?Xe.shapeFlag&512?Fe.ctx.activate(Xe,we,_e,it,Ge):He(Xe,we,_e,Fe,Qe,it,Ge):gt(Ne,Xe,Ge)},He=(Ne,Xe,we,_e,Fe,Qe,it)=>{const Ct=Ne.component=PVt(Ne,_e,Fe);if(LX(Ne)&&(Ct.ctx.renderer=on),DVt(Ct,!1,it),Ct.asyncDep){if(Fe&&Fe.registerDep(Ct,ze,it),!Ne.el){const Ge=Ct.subTree=xr(jh);ke(null,Ge,Xe,we),Ne.placeholder=Ge.el}}else ze(Ct,Ne,Xe,we,Fe,Qe,it)},gt=(Ne,Xe,we)=>{const _e=Xe.component=Ne.component;if(bVt(Ne,Xe,we))if(_e.asyncDep&&!_e.asyncResolved){jt(_e,Xe,we);return}else _e.next=Xe,_e.update();else Xe.el=Ne.el,_e.vnode=Xe},ze=(Ne,Xe,we,_e,Fe,Qe,it)=>{const Ct=()=>{if(Ne.isMounted){let{next:kn,bu:ui,u:Si,parent:ds,vnode:qs}=Ne;{const O0=owt(Ne);if(O0){kn&&(kn.el=qs.el,jt(Ne,kn,it)),O0.asyncDep.then(()=>{Ch(()=>{Ne.isUnmounted||Ze()},Fe)});return}}let Ro=kn,uf;X8(Ne,!1),kn?(kn.el=qs.el,jt(Ne,kn,it)):kn=qs,ui&&JW(ui),(uf=kn.props&&kn.props.onVnodeBeforeUpdate)&&tm(uf,ds,kn,qs),X8(Ne,!0);const lf=ugt(Ne),D0=Ne.subTree;Ne.subTree=lf,K(D0,lf,U(D0.el),wi(D0),Ne,Fe,Qe),kn.el=lf.el,Ro===null&&pVt(Ne,lf.el),Si&&Ch(Si,Fe),(uf=kn.props&&kn.props.onVnodeUpdated)&&Ch(()=>tm(uf,ds,kn,qs),Fe)}else{let kn;const{el:ui,props:Si}=Xe,{bm:ds,m:qs,parent:Ro,root:uf,type:lf}=Ne,D0=GS(Xe);X8(Ne,!1),ds&&JW(ds),!D0&&(kn=Si&&Si.onVnodeBeforeMount)&&tm(kn,Ro,Xe),X8(Ne,!0);{uf.ce&&uf.ce._hasShadowRoot()&&uf.ce._injectChildStyle(lf,Ne.parent?Ne.parent.type:void 0);const O0=Ne.subTree=ugt(Ne);K(null,O0,we,_e,Ne,Fe,Qe),Xe.el=O0.el}if(qs&&Ch(qs,Fe),!D0&&(kn=Si&&Si.onVnodeMounted)){const O0=Xe;Ch(()=>tm(kn,Ro,O0),Fe)}(Xe.shapeFlag&256||Ro&&GS(Ro.vnode)&&Ro.vnode.shapeFlag&256)&&Ne.a&&Ch(Ne.a,Fe),Ne.isMounted=!0,Xe=we=_e=null}};Ne.scope.on();const Ge=Ne.effect=new spt(Ct);Ne.scope.off();const Ze=Ne.update=Ge.run.bind(Ge),mn=Ne.job=Ge.runIfDirty.bind(Ge);mn.i=Ne,mn.id=Ne.uid,Ge.scheduler=()=>Dme(mn),X8(Ne,!0),Ze()},jt=(Ne,Xe,we)=>{Xe.component=Ne;const _e=Ne.vnode.props;Ne.vnode=Xe,Ne.next=null,vVt(Ne,Xe.props,_e,we),xVt(Ne,Xe.children,we),A3(),Y0t(Ne),T3()},Jt=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge=!1)=>{const Ze=Ne&&Ne.children,mn=Ne?Ne.shapeFlag:0,kn=Xe.children,{patchFlag:ui,shapeFlag:Si}=Xe;if(ui>0){if(ui&128){Pe(Ze,kn,we,_e,Fe,Qe,it,Ct,Ge);return}else if(ui&256){xe(Ze,kn,we,_e,Fe,Qe,it,Ct,Ge);return}}Si&8?(mn&16&&ln(Ze,Fe,Qe),kn!==Ze&&P(we,kn)):mn&16?Si&16?Pe(Ze,kn,we,_e,Fe,Qe,it,Ct,Ge):ln(Ze,Fe,Qe,!0):(mn&8&&P(we,""),Si&16&&se(kn,we,_e,Fe,Qe,it,Ct,Ge))},xe=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{Ne=Ne||FS,Xe=Xe||FS;const Ze=Ne.length,mn=Xe.length,kn=Math.min(Ze,mn);let ui;for(ui=0;ui<kn;ui++){const Si=Xe[ui]=Ge?k3(Xe[ui]):cm(Xe[ui]);K(Ne[ui],Si,we,null,Fe,Qe,it,Ct,Ge)}Ze>mn?ln(Ne,Fe,Qe,!0,!1,kn):se(Xe,we,_e,Fe,Qe,it,Ct,Ge,kn)},Pe=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{let Ze=0;const mn=Xe.length;let kn=Ne.length-1,ui=mn-1;for(;Ze<=kn&&Ze<=ui;){const Si=Ne[Ze],ds=Xe[Ze]=Ge?k3(Xe[Ze]):cm(Xe[Ze]);if(e9(Si,ds))K(Si,ds,we,null,Fe,Qe,it,Ct,Ge);else break;Ze++}for(;Ze<=kn&&Ze<=ui;){const Si=Ne[kn],ds=Xe[ui]=Ge?k3(Xe[ui]):cm(Xe[ui]);if(e9(Si,ds))K(Si,ds,we,null,Fe,Qe,it,Ct,Ge);else break;kn--,ui--}if(Ze>kn){if(Ze<=ui){const Si=ui+1,ds=Si<mn?Xe[Si].el:_e;for(;Ze<=ui;)K(null,Xe[Ze]=Ge?k3(Xe[Ze]):cm(Xe[Ze]),we,ds,Fe,Qe,it,Ct,Ge),Ze++}}else if(Ze>ui)for(;Ze<=kn;)Bt(Ne[Ze],Fe,Qe,!0),Ze++;else{const Si=Ze,ds=Ze,qs=new Map;for(Ze=ds;Ze<=ui;Ze++){const Hd=Xe[Ze]=Ge?k3(Xe[Ze]):cm(Xe[Ze]);Hd.key!=null&&qs.set(Hd.key,Ze)}let Ro,uf=0;const lf=ui-ds+1;let D0=!1,O0=0;const L3=new Array(lf);for(Ze=0;Ze<lf;Ze++)L3[Ze]=0;for(Ze=Si;Ze<=kn;Ze++){const Hd=Ne[Ze];if(uf>=lf){Bt(Hd,Fe,Qe,!0);continue}let L0;if(Hd.key!=null)L0=qs.get(Hd.key);else for(Ro=ds;Ro<=ui;Ro++)if(L3[Ro-ds]===0&&e9(Hd,Xe[Ro])){L0=Ro;break}L0===void 0?Bt(Hd,Fe,Qe,!0):(L3[L0-ds]=Ze+1,L0>=O0?O0=L0:D0=!0,K(Hd,Xe[L0],we,null,Fe,Qe,it,Ct,Ge),uf++)}const s_=D0?SVt(L3):FS;for(Ro=s_.length-1,Ze=lf-1;Ze>=0;Ze--){const Hd=ds+Ze,L0=Xe[Hd],o_=Xe[Hd+1],c_=Hd+1<mn?o_.el||cwt(o_):_e;L3[Ze]===0?K(null,L0,we,c_,Fe,Qe,it,Ct,Ge):D0&&(Ro<0||Ze!==s_[Ro]?Je(L0,we,c_,2):Ro--)}}},Je=(Ne,Xe,we,_e,Fe=null)=>{const{el:Qe,type:it,transition:Ct,children:Ge,shapeFlag:Ze}=Ne;if(Ze&6){Je(Ne.component.subTree,Xe,we,_e);return}if(Ze&128){Ne.suspense.move(Xe,we,_e);return}if(Ze&64){it.move(Ne,Xe,we,on);return}if(it===sn){m(Qe,Xe,we);for(let kn=0;kn<Ge.length;kn++)Je(Ge[kn],Xe,we,_e);m(Ne.anchor,Xe,we);return}if(it===qW){oe(Ne,Xe,we);return}if(_e!==2&&Ze&1&&Ct)if(_e===0)Ct.beforeEnter(Qe),m(Qe,Xe,we),Ch(()=>Ct.enter(Qe),Fe);else{const{leave:kn,delayLeave:ui,afterLeave:Si}=Ct,ds=()=>{Ne.ctx.isUnmounted?w(Qe):m(Qe,Xe,we)},qs=()=>{Qe._isLeaving&&Qe[rm](!0),kn(Qe,()=>{ds(),Si&&Si()})};ui?ui(Qe,ds,qs):qs()}else m(Qe,Xe,we)},Bt=(Ne,Xe,we,_e=!1,Fe=!1)=>{const{type:Qe,props:it,ref:Ct,children:Ge,dynamicChildren:Ze,shapeFlag:mn,patchFlag:kn,dirs:ui,cacheIndex:Si}=Ne;if(kn===-2&&(Fe=!1),Ct!=null&&(A3(),FO(Ct,null,we,Ne,!0),T3()),Si!=null&&(Xe.renderCache[Si]=void 0),mn&256){Xe.ctx.deactivate(Ne);return}const ds=mn&1&&ui,qs=!GS(Ne);let Ro;if(qs&&(Ro=it&&it.onVnodeBeforeUnmount)&&tm(Ro,Xe,Ne),mn&6)Mt(Ne.component,we,_e);else{if(mn&128){Ne.suspense.unmount(we,_e);return}ds&&W8(Ne,null,Xe,"beforeUnmount"),mn&64?Ne.type.remove(Ne,Xe,we,on,_e):Ze&&!Ze.hasOnce&&(Qe!==sn||kn>0&&kn&64)?ln(Ze,Xe,we,!1,!0):(Qe===sn&&kn&384||!Fe&&mn&16)&&ln(Ge,Xe,we),_e&&wt(Ne)}(qs&&(Ro=it&&it.onVnodeUnmounted)||ds)&&Ch(()=>{Ro&&tm(Ro,Xe,Ne),ds&&W8(Ne,null,Xe,"unmounted")},we)},wt=Ne=>{const{type:Xe,el:we,anchor:_e,transition:Fe}=Ne;if(Xe===sn){Pt(we,_e);return}if(Xe===qW){re(Ne);return}const Qe=()=>{w(we),Fe&&!Fe.persisted&&Fe.afterLeave&&Fe.afterLeave()};if(Ne.shapeFlag&1&&Fe&&!Fe.persisted){const{leave:it,delayLeave:Ct}=Fe,Ge=()=>it(we,Qe);Ct?Ct(Ne.el,Qe,Ge):Ge()}else Qe()},Pt=(Ne,Xe)=>{let we;for(;Ne!==Xe;)we=V(Ne),w(Ne),Ne=we;w(Xe)},Mt=(Ne,Xe,we)=>{const{bum:_e,scope:Fe,job:Qe,subTree:it,um:Ct,m:Ge,a:Ze}=Ne;fgt(Ge),fgt(Ze),_e&&JW(_e),Fe.stop(),Qe&&(Qe.flags|=8,Bt(it,Ne,Xe,we)),Ct&&Ch(Ct,Xe),Ch(()=>{Ne.isUnmounted=!0},Xe)},ln=(Ne,Xe,we,_e=!1,Fe=!1,Qe=0)=>{for(let it=Qe;it<Ne.length;it++)Bt(Ne[it],Xe,we,_e,Fe)},wi=Ne=>{if(Ne.shapeFlag&6)return wi(Ne.component.subTree);if(Ne.shapeFlag&128)return Ne.suspense.next();const Xe=V(Ne.anchor||Ne.el),we=Xe&&Xe[Ipt];return we?V(we):Xe};let Ir=!1;const Ht=(Ne,Xe,we)=>{let _e;Ne==null?Xe._vnode&&(Bt(Xe._vnode,null,null,!0),_e=Xe._vnode.component):K(Xe._vnode||null,Ne,Xe,null,null,null,we),Xe._vnode=Ne,Ir||(Ir=!0,Y0t(_e),Cpt(),Ir=!1)},on={p:K,um:Bt,m:Je,r:wt,mt:He,mc:se,pc:Jt,pbc:Ce,n:wi,o:a};return{render:Ht,hydrate:void 0,createApp:aVt(Ht)}}function I2e({type:a,props:d},b){return b==="svg"&&a==="foreignObject"||b==="mathml"&&a==="annotation-xml"&&d&&d.encoding&&d.encoding.includes("html")?void 0:b}function X8({effect:a,job:d},b){b?(a.flags|=32,d.flags|=4):(a.flags&=-33,d.flags&=-5)}function CVt(a,d){return(!a||a&&!a.pendingBranch)&&d&&!d.persisted}function Fme(a,d,b=!1){const m=a.children,w=d.children;if(Mr(m)&&Mr(w))for(let $=0;$<m.length;$++){const p=m[$];let j=w[$];j.shapeFlag&1&&!j.dynamicChildren&&((j.patchFlag<=0||j.patchFlag===32)&&(j=w[$]=k3(w[$]),j.el=p.el),!b&&j.patchFlag!==-2&&Fme(p,j)),j.type===BX&&(j.patchFlag===-1&&(j=w[$]=k3(j)),j.el=p.el),j.type===jh&&!j.el&&(j.el=p.el)}}function SVt(a){const d=a.slice(),b=[0];let m,w,$,p,j;const I=a.length;for(m=0;m<I;m++){const N=a[m];if(N!==0){if(w=b[b.length-1],a[w]<N){d[m]=w,b.push(m);continue}for($=0,p=b.length-1;$<p;)j=$+p>>1,a[b[j]]<N?$=j+1:p=j;N<a[b[$]]&&($>0&&(d[m]=b[$-1]),b[$]=m)}}for($=b.length,p=b[$-1];$-- >0;)b[$]=p,p=d[p];return b}function owt(a){const d=a.subTree.component;if(d)return d.asyncDep&&!d.asyncResolved?d:owt(d)}function fgt(a){if(a)for(let d=0;d<a.length;d++)a[d].flags|=8}function cwt(a){if(a.placeholder)return a.placeholder;const d=a.component;return d?cwt(d.subTree):null}const uwt=a=>a.__isSuspense;function _Vt(a,d){d&&d.pendingBranch?Mr(a)?d.effects.push(...a):d.effects.push(a):Lqt(a)}const sn=Symbol.for("v-fgt"),BX=Symbol.for("v-txt"),jh=Symbol.for("v-cmt"),qW=Symbol.for("v-stc"),HO=[];let C1=null;function R(a=!1){HO.push(C1=a?null:[])}function jVt(){HO.pop(),C1=HO[HO.length-1]||null}let WS=1;function lX(a,d=!1){WS+=a,a<0&&C1&&d&&(C1.hasOnce=!0)}function lwt(a){return a.dynamicChildren=WS>0?C1||FS:null,jVt(),WS>0&&C1&&C1.push(a),a}function J(a,d,b,m,w,$){return lwt(E(a,d,b,m,w,$,!0))}function Ts(a,d,b,m,w){return lwt(xr(a,d,b,m,w,!0))}function YO(a){return a?a.__v_isVNode===!0:!1}function e9(a,d){return a.type===d.type&&a.key===d.key}const awt=({key:a})=>a??null,VW=({ref:a,ref_key:d,ref_for:b})=>(typeof a=="number"&&(a=""+a),a!=null?Bl(a)||Zc(a)||vs(a)?{i:Bd,r:a,k:d,f:!!b}:a:null);function E(a,d=null,b=null,m=0,w=null,$=a===sn?0:1,p=!1,j=!1){const I={__v_isVNode:!0,__v_skip:!0,type:a,props:d,key:d&&awt(d),ref:d&&VW(d),scopeId:_pt,slotScopeIds:null,children:b,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:$,patchFlag:m,dynamicProps:w,dynamicChildren:null,appContext:null,ctx:Bd};return j?(Bme(I,b),$&128&&a.normalize(I)):b&&(I.shapeFlag|=Bl(b)?8:16),WS>0&&!p&&C1&&(I.patchFlag>0||$&6)&&I.patchFlag!==32&&C1.push(I),I}const xr=IVt;function IVt(a,d=null,b=null,m=0,w=null,$=!1){if((!a||a===Gpt)&&(a=jh),YO(a)){const j=Nk(a,d,!0);return b&&Bme(j,b),WS>0&&!$&&C1&&(j.shapeFlag&6?C1[C1.indexOf(a)]=j:C1.push(j)),j.patchFlag=-2,j}if(RVt(a)&&(a=a.__vccOpts),d){d=AVt(d);let{class:j,style:I}=d;j&&!Bl(j)&&(d.class=wn(j)),jc(I)&&(DX(I)&&!Mr(I)&&(I=cf({},I)),d.style=_c(I))}const p=Bl(a)?1:uwt(a)?128:Apt(a)?64:jc(a)?4:vs(a)?2:0;return E(a,d,b,m,w,p,$,!0)}function AVt(a){return a?DX(a)||ewt(a)?cf({},a):a:null}function Nk(a,d,b=!1,m=!1){const{props:w,ref:$,patchFlag:p,children:j,transition:I}=a,N=d?Hme(w||{},d):w,P={__v_isVNode:!0,__v_skip:!0,type:a.type,props:N,key:N&&awt(N),ref:d&&d.ref?b&&$?Mr($)?$.concat(VW(d)):[$,VW(d)]:VW(d):$,scopeId:a.scopeId,slotScopeIds:a.slotScopeIds,children:j,target:a.target,targetStart:a.targetStart,targetAnchor:a.targetAnchor,staticCount:a.staticCount,shapeFlag:a.shapeFlag,patchFlag:d&&a.type!==sn?p===-1?16:p|16:p,dynamicProps:a.dynamicProps,dynamicChildren:a.dynamicChildren,appContext:a.appContext,dirs:a.dirs,transition:I,component:a.component,suspense:a.suspense,ssContent:a.ssContent&&Nk(a.ssContent),ssFallback:a.ssFallback&&Nk(a.ssFallback),placeholder:a.placeholder,el:a.el,anchor:a.anchor,ctx:a.ctx,ce:a.ce};return I&&m&&XO(P,I.clone(P)),P}function ci(a=" ",d=0){return xr(BX,null,a,d)}function fwt(a,d){const b=xr(qW,null,a);return b.staticCount=d,b}function Ae(a="",d=!1){return d?(R(),Ts(jh,null,a)):xr(jh,null,a)}function cm(a){return a==null||typeof a=="boolean"?xr(jh):Mr(a)?xr(sn,null,a.slice()):YO(a)?k3(a):xr(BX,null,String(a))}function k3(a){return a.el===null&&a.patchFlag!==-1||a.memo?a:Nk(a)}function Bme(a,d){let b=0;const{shapeFlag:m}=a;if(d==null)d=null;else if(Mr(d))b=16;else if(typeof d=="object")if(m&65){const w=d.default;w&&(w._c&&(w._d=!1),Bme(a,w()),w._c&&(w._d=!0));return}else{b=32;const w=d._;!w&&!ewt(d)?d._ctx=Bd:w===3&&Bd&&(Bd.slots._===1?d._=1:(d._=2,a.patchFlag|=1024))}else vs(d)?(d={default:d,_ctx:Bd},b=32):(d=String(d),m&64?(b=16,d=[ci(d)]):b=8);a.children=d,a.shapeFlag|=b}function Hme(...a){const d={};for(let b=0;b<a.length;b++){const m=a[b];for(const w in m)if(w==="class")d.class!==m.class&&(d.class=wn([d.class,m.class]));else if(w==="style")d.style=_c([d.style,m.style]);else if(SX(w)){const $=d[w],p=m[w];p&&$!==p&&!(Mr($)&&$.includes(p))&&(d[w]=$?[].concat($,p):p)}else w!==""&&(d[w]=m[w])}return d}function tm(a,d,b,m=null){wv(a,d,7,[b,m])}const TVt=Kpt();let MVt=0;function PVt(a,d,b){const m=a.type,w=(d?d.appContext:a.appContext)||TVt,$={uid:MVt++,vnode:a,type:m,parent:d,appContext:w,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ipt(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:d?d.provides:Object.create(w.provides),ids:d?d.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:nwt(m,w),emitsOptions:Xpt(m,w),emit:null,emitted:null,propsDefaults:Cc,inheritAttrs:m.inheritAttrs,ctx:Cc,data:Cc,props:Cc,attrs:Cc,slots:Cc,refs:Cc,setupState:Cc,setupContext:null,suspense:b,suspenseId:b?b.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 $.ctx={_:$},$.root=d?d.root:$,$.emit=fVt.bind(null,$),a.ce&&a.ce($),$}let Ih=null;const hm=()=>Ih||Bd;let aX,sme;{const a=TX(),d=(b,m)=>{let w;return(w=a[b])||(w=a[b]=[]),w.push(m),$=>{w.length>1?w.forEach(p=>p($)):w[0]($)}};aX=d("__VUE_INSTANCE_SETTERS__",b=>Ih=b),sme=d("__VUE_SSR_SETTERS__",b=>QO=b)}const fL=a=>{const d=Ih;return aX(a),a.scope.on(),()=>{a.scope.off(),aX(d)}},dgt=()=>{Ih&&Ih.scope.off(),aX(null)};function dwt(a){return a.vnode.shapeFlag&4}let QO=!1;function DVt(a,d=!1,b=!1){d&&sme(d);const{props:m,children:w}=a.vnode,$=dwt(a);wVt(a,m,$,d),kVt(a,w,b||d);const p=$?OVt(a,d):void 0;return d&&sme(!1),p}function OVt(a,d){const b=a.type;a.accessCache=Object.create(null),a.proxy=new Proxy(a.ctx,eVt);const{setup:m}=b;if(m){A3();const w=a.setupContext=m.length>1?gwt(a):null,$=fL(a),p=aL(m,a,0,[a.props,w]),j=Xbt(p);if(T3(),$(),(j||a.sp)&&!GS(a)&&Npt(a),j){if(p.then(dgt,dgt),d)return p.then(I=>{hgt(a,I)}).catch(I=>{OX(I,a,0)});a.asyncDep=p}else hgt(a,p)}else hwt(a)}function hgt(a,d,b){vs(d)?a.type.__ssrInlineRender?a.ssrRender=d:a.render=d:jc(d)&&(a.setupState=ypt(d)),hwt(a)}function hwt(a,d,b){const m=a.type;a.render||(a.render=m.render||am);{const w=fL(a);A3();try{rVt(a)}finally{T3(),w()}}}const LVt={get(a,d){return _h(a,"get",""),a[d]}};function gwt(a){const d=b=>{a.exposed=b||{}};return{attrs:new Proxy(a.attrs,LVt),slots:a.slots,emit:a.emit,expose:d}}function HX(a){return a.exposed?a.exposeProxy||(a.exposeProxy=new Proxy(ypt(I3(a.exposed)),{get(d,b){if(b in d)return d[b];if(b in BO)return BO[b](a)},has(d,b){return b in d||b in BO}})):a.proxy}function NVt(a,d=!0){return vs(a)?a.displayName||a.name:a.name||d&&a.__name}function RVt(a){return vs(a)&&"__vccOpts"in a}const En=(a,d)=>Tqt(a,d,QO);function Sc(a,d,b){try{lX(-1);const m=arguments.length;return m===2?jc(d)&&!Mr(d)?YO(d)?xr(a,null,[d]):xr(a,d):xr(a,null,d):(m>3?b=Array.prototype.slice.call(arguments,2):m===3&&YO(b)&&(b=[b]),xr(a,d,b))}finally{lX(1)}}function FVt(a,d){const b=a.memo;if(b.length!=d.length)return!1;for(let m=0;m<b.length;m++)if(Fd(b[m],d[m]))return!1;return WS>0&&C1&&C1.push(a),!0}const BVt="3.5.30";let ome;const ggt=typeof window<"u"&&window.trustedTypes;if(ggt)try{ome=ggt.createPolicy("vue",{createHTML:a=>a})}catch{}const bwt=ome?a=>ome.createHTML(a):a=>a,HVt="http://www.w3.org/2000/svg",GVt="http://www.w3.org/1998/Math/MathML",y3=typeof document<"u"?document:null,bgt=y3&&y3.createElement("template"),JVt={insert:(a,d,b)=>{d.insertBefore(a,b||null)},remove:a=>{const d=a.parentNode;d&&d.removeChild(a)},createElement:(a,d,b,m)=>{const w=d==="svg"?y3.createElementNS(HVt,a):d==="mathml"?y3.createElementNS(GVt,a):b?y3.createElement(a,{is:b}):y3.createElement(a);return a==="select"&&m&&m.multiple!=null&&w.setAttribute("multiple",m.multiple),w},createText:a=>y3.createTextNode(a),createComment:a=>y3.createComment(a),setText:(a,d)=>{a.nodeValue=d},setElementText:(a,d)=>{a.textContent=d},parentNode:a=>a.parentNode,nextSibling:a=>a.nextSibling,querySelector:a=>y3.querySelector(a),setScopeId(a,d){a.setAttribute(d,"")},insertStaticContent(a,d,b,m,w,$){const p=b?b.previousSibling:d.lastChild;if(w&&(w===$||w.nextSibling))for(;d.insertBefore(w.cloneNode(!0),b),!(w===$||!(w=w.nextSibling)););else{bgt.innerHTML=bwt(m==="svg"?`<svg>${a}</svg>`:m==="mathml"?`<math>${a}</math>`:a);const j=bgt.content;if(m==="svg"||m==="mathml"){const I=j.firstChild;for(;I.firstChild;)j.appendChild(I.firstChild);j.removeChild(I)}d.insertBefore(j,b)}return[p?p.nextSibling:d.firstChild,b?b.previousSibling:d.lastChild]}},Ak="transition",EO="animation",ZO=Symbol("_vtc"),pwt={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},UVt=cf({},Mpt,pwt),zVt=a=>(a.displayName="Transition",a.props=UVt,a),wwt=zVt((a,{slots:d})=>Sc(Uqt,qVt(a),d)),Y8=(a,d=[])=>{Mr(a)?a.forEach(b=>b(...d)):a&&a(...d)},pgt=a=>a?Mr(a)?a.some(d=>d.length>1):a.length>1:!1;function qVt(a){const d={};for(const te in a)te in pwt||(d[te]=a[te]);if(a.css===!1)return d;const{name:b="v",type:m,duration:w,enterFromClass:$=`${b}-enter-from`,enterActiveClass:p=`${b}-enter-active`,enterToClass:j=`${b}-enter-to`,appearFromClass:I=$,appearActiveClass:N=p,appearToClass:P=j,leaveFromClass:U=`${b}-leave-from`,leaveActiveClass:V=`${b}-leave-active`,leaveToClass:X=`${b}-leave-to`}=a,ee=VVt(w),K=ee&&ee[0],he=ee&&ee[1],{onBeforeEnter:ke,onEnter:ue,onEnterCancelled:oe,onLeave:re,onLeaveCancelled:ye,onBeforeAppear:pe=ke,onAppear:be=ue,onAppearCancelled:se=oe}=d,le=(te,q,He,gt)=>{te._enterCancelled=gt,Q8(te,q?P:j),Q8(te,q?N:p),He&&He()},Ce=(te,q)=>{te._isLeaving=!1,Q8(te,U),Q8(te,X),Q8(te,V),q&&q()},Se=te=>(q,He)=>{const gt=te?be:ue,ze=()=>le(q,te,He);Y8(gt,[q,ze]),wgt(()=>{Q8(q,te?I:$),v3(q,te?P:j),pgt(gt)||vgt(q,m,K,ze)})};return cf(d,{onBeforeEnter(te){Y8(ke,[te]),v3(te,$),v3(te,p)},onBeforeAppear(te){Y8(pe,[te]),v3(te,I),v3(te,N)},onEnter:Se(!1),onAppear:Se(!0),onLeave(te,q){te._isLeaving=!0;const He=()=>Ce(te,q);v3(te,U),te._enterCancelled?(v3(te,V),kgt(te)):(kgt(te),v3(te,V)),wgt(()=>{te._isLeaving&&(Q8(te,U),v3(te,X),pgt(re)||vgt(te,m,he,He))}),Y8(re,[te,He])},onEnterCancelled(te){le(te,!1,void 0,!0),Y8(oe,[te])},onAppearCancelled(te){le(te,!0,void 0,!0),Y8(se,[te])},onLeaveCancelled(te){Ce(te),Y8(ye,[te])}})}function VVt(a){if(a==null)return null;if(jc(a))return[A2e(a.enter),A2e(a.leave)];{const d=A2e(a);return[d,d]}}function A2e(a){return Xzt(a)}function v3(a,d){d.split(/\s+/).forEach(b=>b&&a.classList.add(b)),(a[ZO]||(a[ZO]=new Set)).add(d)}function Q8(a,d){d.split(/\s+/).forEach(m=>m&&a.classList.remove(m));const b=a[ZO];b&&(b.delete(d),b.size||(a[ZO]=void 0))}function wgt(a){requestAnimationFrame(()=>{requestAnimationFrame(a)})}let KVt=0;function vgt(a,d,b,m){const w=a._endId=++KVt,$=()=>{w===a._endId&&m()};if(b!=null)return setTimeout($,b);const{type:p,timeout:j,propCount:I}=WVt(a,d);if(!p)return m();const N=p+"end";let P=0;const U=()=>{a.removeEventListener(N,V),$()},V=X=>{X.target===a&&++P>=I&&U()};setTimeout(()=>{P<I&&U()},j+1),a.addEventListener(N,V)}function WVt(a,d){const b=window.getComputedStyle(a),m=ee=>(b[ee]||"").split(", "),w=m(`${Ak}Delay`),$=m(`${Ak}Duration`),p=mgt(w,$),j=m(`${EO}Delay`),I=m(`${EO}Duration`),N=mgt(j,I);let P=null,U=0,V=0;d===Ak?p>0&&(P=Ak,U=p,V=$.length):d===EO?N>0&&(P=EO,U=N,V=I.length):(U=Math.max(p,N),P=U>0?p>N?Ak:EO:null,V=P?P===Ak?$.length:I.length:0);const X=P===Ak&&/\b(?:transform|all)(?:,|$)/.test(m(`${Ak}Property`).toString());return{type:P,timeout:U,propCount:V,hasTransform:X}}function mgt(a,d){for(;a.length<d.length;)a=a.concat(a);return Math.max(...d.map((b,m)=>ygt(b)+ygt(a[m])))}function ygt(a){return a==="auto"?0:Number(a.slice(0,-1).replace(",","."))*1e3}function kgt(a){return(a?a.ownerDocument:document).body.offsetHeight}function XVt(a,d,b){const m=a[ZO];m&&(d=(d?[d,...m]:[...m]).join(" ")),d==null?a.removeAttribute("class"):b?a.setAttribute("class",d):a.className=d}const fX=Symbol("_vod"),vwt=Symbol("_vsh"),YVt={name:"show",beforeMount(a,{value:d},{transition:b}){a[fX]=a.style.display==="none"?"":a.style.display,b&&d?b.beforeEnter(a):CO(a,d)},mounted(a,{value:d},{transition:b}){b&&d&&b.enter(a)},updated(a,{value:d,oldValue:b},{transition:m}){!d!=!b&&(m?d?(m.beforeEnter(a),CO(a,!0),m.enter(a)):m.leave(a,()=>{CO(a,!1)}):CO(a,d))},beforeUnmount(a,{value:d}){CO(a,d)}};function CO(a,d){a.style.display=d?a[fX]:"none",a[vwt]=!d}const QVt=Symbol(""),ZVt=/(?:^|;)\s*display\s*:/;function eKt(a,d,b){const m=a.style,w=Bl(b);let $=!1;if(b&&!w){if(d)if(Bl(d))for(const p of d.split(";")){const j=p.slice(0,p.indexOf(":")).trim();b[j]==null&&KW(m,j,"")}else for(const p in d)b[p]==null&&KW(m,p,"");for(const p in b)p==="display"&&($=!0),KW(m,p,b[p])}else if(w){if(d!==b){const p=m[QVt];p&&(b+=";"+p),m.cssText=b,$=ZVt.test(b)}}else d&&a.removeAttribute("style");fX in a&&(a[fX]=$?m.display:"",a[vwt]&&(m.display="none"))}const xgt=/\s*!important$/;function KW(a,d,b){if(Mr(b))b.forEach(m=>KW(a,d,m));else if(b==null&&(b=""),d.startsWith("--"))a.setProperty(d,b);else{const m=tKt(a,d);xgt.test(b)?a.setProperty(D3(m),b.replace(xgt,""),"important"):a[m]=b}}const $gt=["Webkit","Moz","ms"],T2e={};function tKt(a,d){const b=T2e[d];if(b)return b;let m=Mh(d);if(m!=="filter"&&m in a)return T2e[d]=m;m=IX(m);for(let w=0;w<$gt.length;w++){const $=$gt[w]+m;if($ in a)return T2e[d]=$}return d}const Egt="http://www.w3.org/1999/xlink";function Cgt(a,d,b,m,w,$=nqt(d)){m&&d.startsWith("xlink:")?b==null?a.removeAttributeNS(Egt,d.slice(6,d.length)):a.setAttributeNS(Egt,d,b):b==null||$&&!ept(b)?a.removeAttribute(d):a.setAttribute(d,$?"":bv(b)?String(b):b)}function Sgt(a,d,b,m,w){if(d==="innerHTML"||d==="textContent"){b!=null&&(a[d]=d==="innerHTML"?bwt(b):b);return}const $=a.tagName;if(d==="value"&&$!=="PROGRESS"&&!$.includes("-")){const j=$==="OPTION"?a.getAttribute("value")||"":a.value,I=b==null?a.type==="checkbox"?"on":"":String(b);(j!==I||!("_value"in a))&&(a.value=I),b==null&&a.removeAttribute(d),a._value=b;return}let p=!1;if(b===""||b==null){const j=typeof a[d];j==="boolean"?b=ept(b):b==null&&j==="string"?(b="",p=!0):j==="number"&&(b=0,p=!0)}try{a[d]=b}catch{}p&&a.removeAttribute(w||d)}function C3(a,d,b,m){a.addEventListener(d,b,m)}function nKt(a,d,b,m){a.removeEventListener(d,b,m)}const _gt=Symbol("_vei");function iKt(a,d,b,m,w=null){const $=a[_gt]||(a[_gt]={}),p=$[d];if(m&&p)p.value=m;else{const[j,I]=rKt(d);if(m){const N=$[d]=cKt(m,w);C3(a,j,N,I)}else p&&(nKt(a,j,p,I),$[d]=void 0)}}const jgt=/(?:Once|Passive|Capture)$/;function rKt(a){let d;if(jgt.test(a)){d={};let m;for(;m=a.match(jgt);)a=a.slice(0,a.length-m[0].length),d[m[0].toLowerCase()]=!0}return[a[2]===":"?a.slice(3):D3(a.slice(2)),d]}let M2e=0;const sKt=Promise.resolve(),oKt=()=>M2e||(sKt.then(()=>M2e=0),M2e=Date.now());function cKt(a,d){const b=m=>{if(!m._vts)m._vts=Date.now();else if(m._vts<=b.attached)return;wv(uKt(m,b.value),d,5,[m])};return b.value=a,b.attached=oKt(),b}function uKt(a,d){if(Mr(d)){const b=a.stopImmediatePropagation;return a.stopImmediatePropagation=()=>{b.call(a),a._stopped=!0},d.map(m=>w=>!w._stopped&&m&&m(w))}else return d}const Igt=a=>a.charCodeAt(0)===111&&a.charCodeAt(1)===110&&a.charCodeAt(2)>96&&a.charCodeAt(2)<123,lKt=(a,d,b,m,w,$)=>{const p=w==="svg";d==="class"?XVt(a,m,p):d==="style"?eKt(a,b,m):SX(d)?Cme(d)||iKt(a,d,b,m,$):(d[0]==="."?(d=d.slice(1),!0):d[0]==="^"?(d=d.slice(1),!1):aKt(a,d,m,p))?(Sgt(a,d,m),!a.tagName.includes("-")&&(d==="value"||d==="checked"||d==="selected")&&Cgt(a,d,m,p,$,d!=="value")):a._isVueCE&&(fKt(a,d)||a._def.__asyncLoader&&(/[A-Z]/.test(d)||!Bl(m)))?Sgt(a,Mh(d),m,$,d):(d==="true-value"?a._trueValue=m:d==="false-value"&&(a._falseValue=m),Cgt(a,d,m,p))};function aKt(a,d,b,m){if(m)return!!(d==="innerHTML"||d==="textContent"||d in a&&Igt(d)&&vs(b));if(d==="spellcheck"||d==="draggable"||d==="translate"||d==="autocorrect"||d==="sandbox"&&a.tagName==="IFRAME"||d==="form"||d==="list"&&a.tagName==="INPUT"||d==="type"&&a.tagName==="TEXTAREA")return!1;if(d==="width"||d==="height"){const w=a.tagName;if(w==="IMG"||w==="VIDEO"||w==="CANVAS"||w==="SOURCE")return!1}return Igt(d)&&Bl(b)?!1:d in a}function fKt(a,d){const b=a._def.props;if(!b)return!1;const m=Mh(d);return Array.isArray(b)?b.some(w=>Mh(w)===m):Object.keys(b).some(w=>Mh(w)===m)}const Rk=a=>{const d=a.props["onUpdate:modelValue"]||!1;return Mr(d)?b=>JW(d,b):d};function dKt(a){a.target.composing=!0}function Agt(a){const d=a.target;d.composing&&(d.composing=!1,d.dispatchEvent(new Event("input")))}const fp=Symbol("_assign");function Tgt(a,d,b){return d&&(a=a.trim()),b&&(a=AX(a)),a}const Ci={created(a,{modifiers:{lazy:d,trim:b,number:m}},w){a[fp]=Rk(w);const $=m||w.props&&w.props.type==="number";C3(a,d?"change":"input",p=>{p.target.composing||a[fp](Tgt(a.value,b,$))}),(b||$)&&C3(a,"change",()=>{a.value=Tgt(a.value,b,$)}),d||(C3(a,"compositionstart",dKt),C3(a,"compositionend",Agt),C3(a,"change",Agt))},mounted(a,{value:d}){a.value=d??""},beforeUpdate(a,{value:d,oldValue:b,modifiers:{lazy:m,trim:w,number:$}},p){if(a[fp]=Rk(p),a.composing)return;const j=($||a.type==="number")&&!/^0\d/.test(a.value)?AX(a.value):a.value,I=d??"";j!==I&&(document.activeElement===a&&a.type!=="range"&&(m&&d===b||w&&a.value.trim()===I)||(a.value=I))}},a9={deep:!0,created(a,d,b){a[fp]=Rk(b),C3(a,"change",()=>{const m=a._modelValue,w=XS(a),$=a.checked,p=a[fp];if(Mr(m)){const j=_me(m,w),I=j!==-1;if($&&!I)p(m.concat(w));else if(!$&&I){const N=[...m];N.splice(j,1),p(N)}}else if(n_(m)){const j=new Set(m);$?j.add(w):j.delete(w),p(j)}else p(mwt(a,$))})},mounted:Mgt,beforeUpdate(a,d,b){a[fp]=Rk(b),Mgt(a,d,b)}};function Mgt(a,{value:d,oldValue:b},m){a._modelValue=d;let w;if(Mr(d))w=_me(d,m.props.value)>-1;else if(n_(d))w=d.has(m.props.value);else{if(d===b)return;w=Lk(d,mwt(a,!0))}a.checked!==w&&(a.checked=w)}const Pgt={created(a,{value:d},b){a.checked=Lk(d,b.props.value),a[fp]=Rk(b),C3(a,"change",()=>{a[fp](XS(a))})},beforeUpdate(a,{value:d,oldValue:b},m){a[fp]=Rk(m),d!==b&&(a.checked=Lk(d,m.props.value))}},Rd={deep:!0,created(a,{value:d,modifiers:{number:b}},m){const w=n_(d);C3(a,"change",()=>{const $=Array.prototype.filter.call(a.options,p=>p.selected).map(p=>b?AX(XS(p)):XS(p));a[fp](a.multiple?w?new Set($):$:$[0]),a._assigning=!0,_1(()=>{a._assigning=!1})}),a[fp]=Rk(m)},mounted(a,{value:d}){Dgt(a,d)},beforeUpdate(a,d,b){a[fp]=Rk(b)},updated(a,{value:d}){a._assigning||Dgt(a,d)}};function Dgt(a,d){const b=a.multiple,m=Mr(d);if(!(b&&!m&&!n_(d))){for(let w=0,$=a.options.length;w<$;w++){const p=a.options[w],j=XS(p);if(b)if(m){const I=typeof j;I==="string"||I==="number"?p.selected=d.some(N=>String(N)===String(j)):p.selected=_me(d,j)>-1}else p.selected=d.has(j);else if(Lk(XS(p),d)){a.selectedIndex!==w&&(a.selectedIndex=w);return}}!b&&a.selectedIndex!==-1&&(a.selectedIndex=-1)}}function XS(a){return"_value"in a?a._value:a.value}function mwt(a,d){const b=d?"_trueValue":"_falseValue";return b in a?a[b]:d}const hKt=["ctrl","shift","alt","meta"],gKt={stop:a=>a.stopPropagation(),prevent:a=>a.preventDefault(),self:a=>a.target!==a.currentTarget,ctrl:a=>!a.ctrlKey,shift:a=>!a.shiftKey,alt:a=>!a.altKey,meta:a=>!a.metaKey,left:a=>"button"in a&&a.button!==0,middle:a=>"button"in a&&a.button!==1,right:a=>"button"in a&&a.button!==2,exact:(a,d)=>hKt.some(b=>a[`${b}Key`]&&!d.includes(b))},Ah=(a,d)=>{if(!a)return a;const b=a._withMods||(a._withMods={}),m=d.join(".");return b[m]||(b[m]=((w,...$)=>{for(let p=0;p<d.length;p++){const j=gKt[d[p]];if(j&&j(w,d))return}return a(w,...$)}))},bKt={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Gme=(a,d)=>{const b=a._withKeys||(a._withKeys={}),m=d.join(".");return b[m]||(b[m]=(w=>{if(!("key"in w))return;const $=D3(w.key);if(d.some(p=>p===$||bKt[p]===$))return a(w)}))},pKt=cf({patchProp:lKt},JVt);let Ogt;function wKt(){return Ogt||(Ogt=$Vt(pKt))}const Lgt=((...a)=>{const d=wKt().createApp(...a),{mount:b}=d;return d.mount=m=>{const w=mKt(m);if(!w)return;const $=d._component;!vs($)&&!$.render&&!$.template&&($.template=w.innerHTML),w.nodeType===1&&(w.textContent="");const p=b(w,!1,vKt(w));return w instanceof Element&&(w.removeAttribute("v-cloak"),w.setAttribute("data-v-app","")),p},d});function vKt(a){if(a instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&a instanceof MathMLElement)return"mathml"}function mKt(a){return Bl(a)?document.querySelector(a):a}const _r=a=>Number(a.demandSpec.sourceRef.displayId),ywt=a=>a.demandSpec.title;async function Uo(a,d){const b=await fetch(a,d),m=b.headers.get("content-type")||"";if(!m.includes("application/json"))throw new Error(b.ok?`Expected JSON response from ${a} but got ${m||"unknown content-type"}`:`HTTP ${b.status}`);if(!b.ok){const w=await b.json().catch(()=>({}));throw new Error(w.error||`HTTP ${b.status}`)}return b.json()}async function bl(a,d){return Uo(a,{method:"POST",headers:d?{"Content-Type":"application/json"}:void 0,body:d?JSON.stringify(d):void 0})}async function yKt(a){const d=new URLSearchParams;a?.kind&&d.set("kind",a.kind),a?.status&&d.set("status",a.status);const b=d.toString();return Uo("/api/tasks"+(b?"?"+b:""))}async function kKt(){return Uo("/api/pipeline-meta")}async function dX(a){return Uo(`/api/issues/${a}`)}async function xKt(a){return Uo(`/api/issues/${a}/logs`)}async function kwt(){return Uo("/api/system/status")}async function $Kt(a){await bl(`/api/issues/${a}/start`)}async function EKt(a){await bl(`/api/issues/${a}/retry`)}async function CKt(a){await bl(`/api/issues/${a}/cancel`)}async function SKt(a){await bl(`/api/issues/${a}/restart`)}async function Ngt(a,d){await bl(`/api/issues/${a}/retry-from-phase`,{phase:d})}async function _Kt(a){await bl(`/api/issues/${a}/approve-plan`)}async function jKt(a,d){await bl(`/api/issues/${a}/reject-plan`,{feedback:d})}async function IKt(a){await bl(`/api/issues/${a}/skip-review`)}async function AKt(a){return Uo(`/api/issues/${a}/review-history`)}async function Rgt(a,d,b="html"){const m=b==="html"?`/api/issues/${a}/plans/${d}?format=html`:`/api/issues/${a}/plans/${d}`,w=await fetch(m);if(!w.ok){const $=await w.json().catch(()=>({}));throw new Error($.error||"Failed to load")}return w.text()}async function TKt(a,d,b){await Uo(`/api/issues/${a}/plans/${d}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:b})})}async function MKt(a){return Uo(`/api/issues/${a}/supplement`)}async function PKt(a,d){return Uo(`/api/issues/${a}/supplement`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})}async function DKt(a){const d=new URLSearchParams;return a.search&&d.set("search",a.search),d.set("page",String(a.page??1)),d.set("per_page",String(a.perPage)),Uo(`/api/gongfeng/issues?${d.toString()}`)}async function OKt(a){return bl("/api/issues/start",a)}async function xwt(a,d){return Uo(`/api/issues/${a}/note-sync`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:d})})}async function LKt(a){return Uo("/api/system/note-sync",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:a})})}async function $wt(a,d){return Uo(`/api/issues/${a}/e2e`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:d})})}async function NKt(a,d){return Uo("/api/system/feature-toggle",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({feature:a,enabled:d})})}async function RKt(a){return bl("/api/brainstorm/sessions",{transcript:a})}async function FKt(a){return Uo(`/api/brainstorm/sessions/${a}`)}function P2e(a,d,b){const m=new AbortController,w=`/api/brainstorm/sessions/${a}/${d}`;return{fetchResponse:fetch(w,{method:"POST",headers:{"Content-Type":"application/json"},body:b?JSON.stringify(b):"{}",signal:m.signal}),abort:()=>m.abort()}}async function BKt(a,d,b=!0){return bl(`/api/brainstorm/sessions/${a}/create-issue`,{title:d,addAutoFinishLabel:b})}async function HKt(a){return bl("/api/chat/sessions",{title:a})}async function GKt(){return Uo("/api/chat/sessions")}async function Fgt(a){return Uo(`/api/chat/sessions/${a}`)}async function JKt(a){return Uo(`/api/chat/sessions/${a}`,{method:"DELETE"})}function UKt(a,d){const b=new AbortController;return{fetchResponse:fetch(`/api/chat/sessions/${a}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:d}),signal:b.signal}),abort:()=>b.abort()}}async function zKt(a){const d=new URLSearchParams;a?.q&&d.set("q",a.q),a?.type&&d.set("type",a.type);const b=d.toString();return Uo("/api/knowledge/entries"+(b?"?"+b:""))}async function qKt(a){return Uo("/api/knowledge/entries/"+a)}async function VKt(a){return bl("/api/knowledge/entries",a)}async function KKt(a,d){return Uo("/api/knowledge/entries/"+a,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})}async function WKt(a){return Uo("/api/knowledge/entries/"+a,{method:"DELETE"})}async function XKt(a){return bl("/api/knowledge/import/iwiki",{url:a})}async function YKt(a,d){return bl("/api/knowledge/import/gongfeng",{type:a,iid:d})}async function QKt(a){return bl("/api/knowledge/entries/"+a+"/sync")}async function ZKt(){return Uo("/api/knowledge/stats")}async function Ewt(){return Uo("/api/domain-model")}async function Bgt(a){return Uo("/api/domain-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function eWt(a=!1){const d=new AbortController;return{fetchResponse:fetch(`/api/domain-model/analyze${a?"?refine=true":""}`,{method:"POST",signal:d.signal}),abort:()=>d.abort()}}async function tWt(){return bl("/api/domain-model/confirm")}async function nWt(a){await bl(`/api/issues/${a}/mark-deployed`)}async function iWt(a){return bl(`/api/issues/${a}/restart-preview`)}async function rWt(a){await bl(`/api/issues/${a}/stop-preview`)}async function sWt(){return bl("/api/system/reload-config")}async function oWt(a){const d=a!=null?`?issueIid=${a}`:"";return Uo(`/api/e2e-artifacts${d}`)}async function cWt(a,d){const b=d!=null?`?issueIid=${d}`:"";return Uo(`/api/e2e-artifacts/${encodeURIComponent(a)}/files${b}`)}function _W(a,d,b){const m=b!=null?`?issueIid=${b}`:"";return`/api/e2e-artifacts/${encodeURIComponent(a)}/file/${d}${m}`}function Hgt(a,d){const b=d!=null?`?issueIid=${d}`:"";return`/api/e2e-scenarios/file/${a}${b}`}async function uWt(){return Uo("/api/distill/status")}async function lWt(a){const d=new URLSearchParams;a?.outcome&&d.set("outcome",a.outcome),a?.distilled&&d.set("distilled",a.distilled),d.set("limit",String(a.limit)),a?.offset&&d.set("offset",String(a.offset));const b=d.toString();return Uo("/api/distill/diaries"+(b?"?"+b:""))}async function aWt(a){return Uo("/api/distill/diaries/"+a)}async function fWt(a){return Uo("/api/distill/diaries/"+a,{method:"DELETE"})}function dWt(){const a=new AbortController;return{fetchResponse:fetch("/api/distill/run",{method:"POST",signal:a.signal}),abort:()=>a.abort()}}async function hWt(a,d){return bl("/api/distill/search",{query:a,topK:d})}async function gWt(){return Uo("/api/system-usecase")}async function bWt(a){return Uo("/api/system-usecase",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function pWt(){return bl("/api/system-usecase/confirm")}async function wWt(){return bl("/api/system-usecase/suggest-associations")}const vWt={"app.trackedIssues":"已跟踪 Issue","app.browseIssues":"选择新 Issue","app.brainstorm":"脑暴工坊","app.chat":"智能助手","app.knowledge":"知识库","app.distill":"知识蒸馏","header.connected":"已连接","header.disconnected":"未连接","header.discovery":"发现","header.drive":"驱动","header.uptime":"运行时间","header.syncOnTitle":"Issue 同步已开启(点击关闭)","header.syncOffTitle":"Issue 同步已关闭(点击开启)","header.syncOn":"Issue同步: 开","header.syncOff":"Issue同步: 关","header.langSwitch":"切换语言","stats.total":"总计","stats.active":"进行中","stats.completed":"已完成","stats.failed":"失败","table.filter":"筛选:","table.title":"标题","table.state":"状态","table.progress":"阶段进度","table.retries":"重试","table.updatedAt":"更新时间","table.actions":"操作","table.empty":"暂无 Issue 记录","table.viewInGongfeng":"在工蜂中查看","table.start":"开始处理","table.retry":"重试","table.restart":"重来","table.cancel":"取消","filter.all":"全部","filter.active":"处理中","filter.completed":"已完成","filter.failed":"失败","filter.review":"待审核","filter.deployed":"已上线","browse.searchPlaceholder":"搜索 Issue 标题...","browse.loading":"加载中...","browse.search":"搜索","browse.loadingList":"正在从工蜂加载 Issue 列表...","browse.title":"标题","browse.labels":"标签","browse.author":"作者","browse.createdAt":"创建时间","browse.actions":"操作","browse.empty":"暂无 Issue","browse.tracked":"已跟踪","browse.start":"开始处理","browse.pagination":"共 {total} 条,第 {page} / {totalPages} 页","browse.prevPage":"上一页","browse.nextPage":"下一页","start.title":"开始处理 Issue #{iid}","start.issueTitle":"标题","start.descPreview":"描述预览","start.supplement":"补充信息(可选)","start.requirements":"补充需求说明","start.requirementsPlaceholder":"对 Issue 描述的补充或澄清...","start.acceptance":"验收标准","start.acceptancePlaceholder":"完成后需要满足的验收标准...","start.scope":"变更范围","start.scopePlaceholder":"例: 仅后端、仅前端、前后端...","start.constraints":"约束条件","start.constraintsPlaceholder":"技术约束、兼容性要求等...","start.references":"参考链接","start.referencesPlaceholder":"相关文档、设计稿链接等...","start.freeText":"自由补充","start.freeTextPlaceholder":"其他任何需要 AI 知道的信息...","start.tapdId":"TAPD 单号","start.tapdIdPlaceholder":"如 12345678,用于 MR 关联 TAPD(可选)","start.cancel":"取消","start.processing":"处理中...","start.submit":"开始处理","detail.viewInGongfeng":"在工蜂中查看","detail.basicInfo":"基本信息","detail.title":"标题:","detail.branch":"分支:","detail.state":"状态:","detail.createdAt":"创建时间:","detail.retries":"重试次数:","detail.updatedAt":"更新时间:","detail.noteSync":"同步处理结果到 Issue","detail.enabled":"开启","detail.disabled":"关闭","detail.followSystem":"跟随系统","detail.e2eTitle":"E2E UI 自动验收","detail.e2eArtifacts":"E2E 测试产物","detail.e2eRuns":"次运行","detail.e2eImages":"张截图","detail.e2eVideos":"个视频","detail.e2eDocuments":"个文档","detail.e2eRunDocuments":"运行日志与报告","detail.e2eScreenshots":"截图","detail.e2eVideoRecordings":"操作录像","detail.e2eScenarios":"剧本与脚本","detail.e2eScenariosLabel":"剧本","detail.e2eScriptsLabel":"验证脚本","detail.e2eNoMedia":"本次运行无产物","detail.scenarioViewer":"剧本查看器","detail.scenarioOverview":"总览","detail.scenarioMainPath":"主路径剧本","detail.scenarioVerifyBehavior":"验证行为剧本","detail.scenarioVerifyRule":"验证规则剧本","detail.scenarioCoverage":"覆盖详情","detail.scenarioRuleCoverage":"规则列覆盖率","detail.scenarioAllList":"全部剧本","detail.scenarioInherited":"继承","detail.scenarioEmpty":"暂无数据","detail.scenarioPreconditions":"前置条件","detail.scenarioSteps":"操作步骤","detail.scenarioExpectedResults":"预期结果","detail.scenarioNodeCoverage":"节点覆盖","detail.scenarioRuleColumnCoverage":"规则列覆盖","detail.e2eNotConfigured":"E2E 测试工具未配置","detail.e2eNotConfiguredHint":"请在设置中配置 oa_pc_uat 目录路径以启用 E2E 截图和视频采集","detail.e2eNoRuns":"暂无 E2E 测试产物","detail.e2eNoRunsHint":"E2E 测试运行后,截图和操作录像将在此处展示","detail.loading":"加载中...","detail.mrLabel":"合并请求:","detail.linkedMrLabel":"关联仓库合并请求:","detail.errorInfo":"错误信息","detail.start":"开始处理","detail.retry":"重试处理","detail.restart":"清理重来","detail.cancelTrack":"取消跟踪","detail.markDeployed":"已上线","detail.stopPreview":"停止预览","detail.restartPreview":"重启预览","detail.openFullPage":"打开详情页","detail.backToList":"← 返回列表","detail.tab.docs":"文档","detail.tab.review":"审查","detail.tab.supplement":"补充信息","detail.tab.logs":"日志","detail.tab.e2e":"E2E","detail.settings":"设置","detail.mergeRequest":"合并请求","pipeline.title":"流水线进度","pipeline.retryFrom":"从此重试","review.title":"Plan Review - 实施计划审核","review.description":"AI 已完成规划阶段,请审核实施计划后决定是否继续。","review.currentRound":"(当前为第 {round} 轮审核)","review.history":"审核历史","review.roundLabel":"{n} 轮","review.roundPrefix":"第 {round} 轮","review.approve":"通过计划","review.skip":"跳过审核","review.feedbackLabel":"审核反馈(拒绝时必填)","review.feedbackPlaceholder":"输入修改意见,AI 将根据反馈重新规划...","review.reject":"拒绝并重新规划","review.submitting":"处理中...","supplement.title":"补充信息","supplement.edit":"编辑","supplement.saving":"保存中...","supplement.save":"保存","supplement.cancel":"取消","supplement.loading":"加载中...","supplement.requirements":"补充需求:","supplement.acceptance":"验收标准:","supplement.scope":"变更范围:","supplement.constraints":"约束条件:","supplement.references":"参考链接:","supplement.freeText":"其他:","supplement.tapdId":"TAPD 单号:","supplement.empty":'暂无补充信息,点击"编辑"添加',"supplement.requirementsLabel":"补充需求说明","supplement.acceptanceLabel":"验收标准","supplement.scopeLabel":"变更范围","supplement.constraintsLabel":"约束条件","supplement.referencesLabel":"参考链接","supplement.freeTextLabel":"自由补充","supplement.tapdIdLabel":"TAPD 单号","supplement.tapdIdPlaceholder":"如 12345678,用于 MR 关联 TAPD(可选)","planDoc.title":"计划文档","planDoc.edit":"编辑","planDoc.saving":"保存中...","planDoc.save":"保存","planDoc.cancel":"取消","planDoc.fullscreen":"全屏查看","planDoc.expand":"展开","planDoc.loading":"加载中...","planDoc.editPlaceholder":"编辑文档内容...","planDoc.selectTab":"点击标签页查看文档","planDoc.closeFullscreen":"关闭全屏 (Esc)","planDoc.noReviewFeedback":"暂无审核反馈(计划未被拒绝过)","planDoc.verifyNotGenerated":"验证报告尚未生成","planDoc.fetchFailed":"获取原始文档失败:","planDoc.saveFailed":"保存失败:","agentLog.title":"Agent 实时输出","agentLog.autoScroll":"自动置顶","agentLog.clear":"清空","agentLog.ended":"任务已结束,无实时输出记录","agentLog.finalState":"最终状态:","agentLog.currentState":"当前状态:","agentLog.waiting":"等待 Agent 输出...","agentLog.count":"{count} 条记录","agentLog.type.assistant":"AI 回复","agentLog.type.tool_use":"工具调用","agentLog.type.tool_result":"工具结果","agentLog.type.result":"最终结果","agentLog.type.stderr":"日志","agentLog.type.raw":"输出","agentLog.type.system":"系统","agentLog.type.partial":"输出中","agentLog.type.thinking":"思考中","state.skipped":"已跳过","state.pending":"待处理","state.branch_created":"分支已创建","state.analyzing":"分析中","state.analysis_done":"分析完成","state.designing":"设计中","state.design_done":"设计完成","state.implementing":"实施中","state.implement_done":"实施完成","state.planning":"规划中","state.plan_done":"规划完成","state.waiting_for_review":"待审核","state.review_approved":"审核通过","state.building":"实施中","state.build_done":"实施完成","state.verifying":"验证中","state.completed":"已完成","state.failed":"失败","state.phase_running":"阶段执行中","state.phase_done":"阶段完成","state.phase_waiting":"待审核","state.phase_approved":"审核通过","state.deployed":"已上线","state.resolving_conflict":"冲突修复中","phase.analysis":"分析","phase.design":"设计","phase.implement":"实施","phase.verify":"验证","phase.plan":"规划","phase.review":"审核","phase.build":"实施","phase.release":"发布","verify.loopStarted":"验证-修复循环启动(最多 {max} 轮)","verify.iterationPassed":"第 {n} 轮验证通过","verify.iterationFailed":"第 {n} 轮验证未通过: {reasons}","verify.loopExhausted":"验证-修复循环已达上限({n} 轮),仍有问题未解决","verify.loopBadgeTooltip":"修复轮次 {n}/{max}","planFile.01-analysis.md":"需求分析","planFile.02-design.md":"系统设计","planFile.03-todolist.md":"实施清单","planFile.04-verify-report.md":"验证报告","planFile.01-plan.md":"实施计划","planFile.02-verify-report.md":"验证报告","planFile.review-feedback.md":"审核反馈","planFile.03-release-detect.json":"发布检测报告","planFile.04-release-report.md":"发布报告","confirm.supplementSaved":"补充信息已保存。是否从分析阶段重新执行?","confirm.start":"确定要开始处理 Issue #{iid} 吗?","confirm.retry":"确定要重试 Issue #{iid} 吗?","confirm.cancel":"确定要取消跟踪 Issue #{iid} 吗?","confirm.restart":`确定要清理上下文并重来 Issue #{iid} 吗?
2
- 这将删除 worktree、分支,并将 issue 重置为待处理状态。`,"confirm.retryFromPhase":'确定要从"{phaseLabel}"阶段重试 Issue #{iid} 吗?',"confirm.approve":"确定要通过 Issue #{iid} 的实施计划吗?","confirm.reject.noFeedback":"请输入审核反馈","confirm.skip":"确定要跳过 Issue #{iid} 的审核吗?","alert.saveFailed":"保存失败: ","alert.retryFailed":"重试失败: ","alert.cancelFailed":"取消失败: ","alert.restartFailed":"重来失败: ","alert.retryFromPhaseFailed":"分阶段重试失败: ","alert.approveFailed":"审批失败: ","alert.rejectFailed":"拒绝失败: ","alert.skipFailed":"跳过失败: ","alert.startFailed":"启动失败: ","confirm.markDeployed":"标记 Issue #{iid} 为已上线?将清理 worktree 并关闭工蜂 Issue。","alert.markDeployedFailed":"标记已上线失败: ","alert.restartPreviewFailed":"重启预览失败: ","alert.stopPreviewFailed":"停止预览失败: ","setup.title":"Issue Auto-Finish 初始化配置","setup.step.envCheck":"环境检查","setup.step.projectConfig":"项目配置","setup.step.gongfengConfig":"工蜂配置","setup.step.aiRunner":"AI 编程工具","setup.step.advancedOptions":"高级选项","setup.step.reviewConfirm":"确认配置","setup.complete.title":"配置完成","setup.complete.savedTo":"配置文件已保存到:","setup.complete.startHint":"使用以下命令启动服务:","setup.env.checking":"正在检查系统依赖...","setup.env.checkingShort":"检查中...","setup.env.install":"安装","setup.env.installing":"安装中...","setup.env.waitingOutput":"等待输出...","setup.env.refresh":"刷新","setup.env.viewLogs":"查看日志","setup.env.installSuccess":"安装成功","setup.env.installFailed":"安装失败","setup.env.retry":"重试","setup.env.logPanel":"安装日志","setup.env.closePanel":"关闭","setup.env.installAll":"一键安装全部","setup.env.aiCliGroup":"AI CLI 工具","setup.env.toolchainGroup":"基础工具链","setup.env.installFirst":"优先安装","setup.env.phaseAiCli":"AI CLI","setup.env.phaseToolchain":"工具链","setup.env.phaseAiFallback":"AI 辅助安装","setup.env.emptyResponse":"未收到服务端数据,连接可能中断。请刷新页面后重试。","setup.env.notInstalled":"未安装","setup.env.copied":"已复制","setup.env.manualInstallRefreshHint":"安装完成后,请点击下方「刷新检测状态」按钮更新结果","setup.env.refreshStatus":"刷新检测状态","setup.env.required":"必需","setup.env.optional":"可选","setup.env.loginAfterInstall":"安装后请自行在终端完成登录","setup.project.workDir":"代码仓库路径 *","setup.project.workDirPlaceholder":"/data/user01/myrepo/app/my-service","setup.project.workDirHint":"AI Agent 实际编写代码的目录(绝对路径)。示例:/data/user01/myrepo 或 monorepo 子项目 /data/user01/myrepo/app/my-service","setup.project.advancedToggle":"高级设置(Monorepo / 分支等)","setup.project.advancedHint":"以下选项大部分场景无需修改,留空即可使用默认值","setup.project.gitRootDir":"Git 仓库根目录","setup.project.gitRootDirPlaceholder":"如 /data/user01/myrepo,留空则与代码仓库路径相同","setup.project.gitRootDirHint":"仅 Monorepo 需填:当 .git 所在目录与代码目录不同时填写。例如代码在 /data/user01/myrepo/app/my-service,但 .git 在 /data/user01/myrepo,则填后者","setup.project.baseBranch":"基础分支","setup.project.baseBranchHint":"创建特性分支的基准分支,默认 master","setup.project.branchPrefix":"分支前缀","setup.project.branchPrefixHint":"自动创建的分支名前缀,默认 feat/issue","setup.project.worktreeBaseDir":"临时工作区目录","setup.project.worktreeBaseDirPlaceholder":"如 /data/user01/myrepo-worktrees,留空自动管理","setup.project.worktreeBaseDirHint":"系统为每个 Issue 创建独立 git worktree 的存放目录。建议放在与代码仓库同级的路径下,如 /data/user01/myrepo-worktrees。留空则自动管理","setup.project.projectSubDir":"项目子路径","setup.project.projectSubDirPlaceholder":"如 app/my-service","setup.project.projectSubDirHint":"仅 Monorepo 需填:从 Git 根目录到实际项目的相对路径。例如 Git 根目录是 /data/user01/myrepo,项目在 app/my-service 子目录下,则填 app/my-service","setup.gongfeng.apiUrl":"工蜂 API 地址 *","setup.gongfeng.apiUrlPlaceholder":"如 https://git.example.com","setup.gongfeng.apiUrlHint":"工蜂 GitLab 的访问地址。如 https://git.example.com,一般无需修改","setup.gongfeng.privateToken":"Access Token *","setup.gongfeng.tokenPlaceholder":"输入你的 Access Token(如 AbCdEfGhIjKlMnOpQrSt)","setup.gongfeng.tokenHint":"在工蜂「设置 → Access Tokens」中创建,需 api 权限。Token 形如 AbCdEfGhIjKlMnOpQrSt","setup.gongfeng.verify":"验证","setup.gongfeng.tokenValid":"Token 验证通过","setup.gongfeng.tokenInvalid":"Token 验证失败","setup.gongfeng.projectPath":"仓库路径 *","setup.gongfeng.projectPathPlaceholder":"如 myteam/my-project","setup.gongfeng.projectPathHint":"工蜂仓库 URL 中的路径部分。例如仓库地址是 https://git.example.com/myteam/my-project,则填 myteam/my-project","setup.gongfeng.repoFound":"仓库已找到","setup.gongfeng.repoNotFound":"仓库未找到","setup.ai.modeLabel":"选择 AI 编程工具","setup.ai.claudeInternal":"Claude Internal","setup.ai.claudeInternalDesc":"内部部署的 Claude,适合无 IDE 的服务器环境","setup.ai.cursorAgent":"Cursor Agent","setup.ai.cursorAgentDesc":"通过 Cursor IDE 驱动,需运行在有 Cursor 的环境","setup.ai.codebuddy":"CodeBuddy","setup.ai.codebuddyDesc":"腾讯 CodeBuddy AI 编程助手","setup.ai.model":"AI 模型","setup.ai.modelHint":"AI 使用的模型名称,默认 Claude-4.6-Opus","setup.ai.cliStatus":"工具安装状态","setup.ai.authLoggedIn":"已登录","setup.ai.authNotLoggedIn":"未登录","setup.ai.authUnknown":"无法检测登录状态","setup.ai.authLoginHint":"当前未登录,请自行在终端中完成 AI CLI 工具的登录。","setup.ai.authRefresh":"刷新状态","setup.ai.authWarning":"AI CLI 工具未登录,启动服务后将无法正常调用 AI。请先在终端中完成登录。","setup.ai.authCopied":"已复制","setup.advanced.defaultHint":"以下为高级选项,默认值已适合大部分场景。如无特殊需求,可直接跳过。","setup.advanced.toggleLabel":"展开高级选项","setup.advanced.discoveryInterval":"扫描新 Issue 的间隔 (ms)","setup.advanced.discoveryIntervalHint":"多久检查一次工蜂是否有新的 auto-finish Issue,默认 60 秒","setup.advanced.driveInterval":"任务推进间隔 (ms)","setup.advanced.driveIntervalHint":"多久检查一次进行中的任务并推进下一步,默认 15 秒","setup.advanced.maxRetries":"失败自动重试次数","setup.advanced.maxRetriesHint":"任务失败后自动重试的最大次数","setup.advanced.maxConcurrent":"同时处理的 Issue 上限","setup.advanced.maxConcurrentHint":"最多同时并行处理多少个 Issue","setup.advanced.webPort":"Web 管理面板端口","setup.advanced.webPortHint":"管理面板的访问端口,默认 3000。配置后通过 http://<服务器IP>:<端口> 访问","setup.advanced.pipelineMode":"处理模式","setup.advanced.pipelineAuto":"自动(根据 AI 工具自动选择,推荐)","setup.advanced.pipelineClassic":"经典(分析 → 设计 → 实施 → 验证)","setup.advanced.pipelinePlanMode":"计划(规划 → 人工审核 → 实施 → 验证)","setup.advanced.pipelineModeHint":"选择 AI 处理 Issue 的工作流模式","setup.advanced.enableReview":"AI 完成规划后需人工审核","setup.advanced.enableReviewHint":"开启后,AI 的实施方案需要你在面板上审核通过才会继续执行","setup.advanced.enableRelease":"启用发布阶段","setup.advanced.enableReleaseHint":"验证完成后,AI 将检测目标项目的发布机制并在确认后执行发布","setup.advanced.phaseTimeout":"单阶段最大执行时间 (ms)","setup.advanced.phaseTimeoutHint":"AI 执行单个阶段的超时时间,默认 1800000(30 分钟)","setup.confirm.reviewHint":"请确认将要生成的配置:","setup.nav.back":"上一步","setup.nav.next":"下一步","setup.nav.saving":"保存中...","setup.nav.complete":"完成配置","settings.title":"配置管理","settings.loading":"加载配置中...","settings.save":"保存配置","settings.saving":"保存中...","settings.applying":"生效中...","settings.saved":"配置已保存","settings.savedHint":"部分配置变更需要重启服务才能生效。","settings.savedAndApplied":"配置已保存并立即生效。","settings.savedPendingHint":"配置已保存,等待当前任务完成后自动生效。","settings.saveFailed":"保存失败","settings.section.project":"项目配置","settings.section.gongfeng":"工蜂配置","settings.section.ai":"AI 编程工具","settings.section.workspace":"工作区配置","settings.section.e2e":"E2E 端对端测试","settings.section.advanced":"高级选项","settings.section.experimental":"实验功能","settings.experimental.hint":"切换立即生效,重启服务后恢复为配置文件的值","settings.experimental.brainstorm":"脑暴工坊","settings.experimental.braindump":"Braindump","settings.experimental.chat":"智能助手","settings.experimental.knowledge":"知识库","settings.experimental.distill":"知识蒸馏","settings.configPath":"配置文件路径:","settings.restartHint":"修改后需重启服务才能生效","settings.autoApplyHint":"保存后自动生效,正在执行的任务不受影响","settings.tokenMasked":"(已配置,点击修改)","settings.workspace.active":"已启用","settings.workspace.notConfigured":"未配置","settings.workspace.hint":"配置多仓库工作区,支持主仓 + 关联仓模式。配置后将在处理 issue 时同步操作多个仓库。","settings.workspace.configPath":"工作区配置文件:","settings.workspace.validationFailed":"工作区配置校验失败","settings.workspace.primaryRepo":"主仓库","settings.workspace.associateRepos":"关联仓库","settings.workspace.addRepo":"添加关联仓库","settings.workspace.removeRepo":"移除","settings.workspace.noAssociates":"暂无关联仓库,点击上方按钮添加","settings.workspace.repoName":"仓库名称","settings.workspace.projectPath":"工蜂项目路径","settings.workspace.projectPathPlaceholder":"例: group/repo-name","settings.workspace.localGitRoot":"本地 Git 仓库路径","settings.workspace.localGitRootPlaceholder":"例: /data/projects/repo-name","settings.workspace.baseBranch":"基准分支","settings.workspace.branchPrefix":"分支前缀","settings.workspace.projectSubDir":"项目子目录","settings.workspace.projectSubDirPlaceholder":"留空表示根目录","settings.workspace.role":"角色描述","settings.workspace.rolePlaceholder":"例: 契约仓、配置仓","settings.workspace.advancedToggle":"分支与子目录","settings.workspace.required":"必填","settings.workspace.optional":"选填","settings.workspace.repoCount":"{count} 个","settings.workspace.confirmRemove":"确认移除此关联仓库?","settings.workspace.collapsed":"点击展开编辑","settings.e2e.configured":"已配置","settings.e2e.hint":"配置 oa_pc_uat 端对端测试工具路径。配置后,AI Agent 在验证阶段将自动读取 oa_pc_uat 的 skill,按其流程执行增量 E2E 测试。","settings.e2e.uatVendorDir":"oa_pc_uat 目录","settings.e2e.uatVendorDirPlaceholder":"例如: vendor/oa_pc_uat 或绝对路径","settings.e2e.uatVendorDirHint":"存放 oa_pc_uat 源码的目录,包含 main.py 和 .cursor/skills/oa-web-uat/SKILL.md","settings.e2e.uatConfigFile":"配置文件路径 (可选)","settings.e2e.uatConfigFilePlaceholder":"例如: vendor/oa_pc_uat/config.json","settings.e2e.uatConfigFileHint":"oa_pc_uat 的 config.json 路径,留空则自动查找 vendor 目录下的 config.json","settings.e2e.pythonBin":"Python 可执行文件","settings.e2e.pythonBinPlaceholder":"例如: python3 或 python3.9","settings.e2e.pythonBinHint":"Playwright 需要 Python 3.8+,系统默认 python3 版本过低时可指定高版本路径","settings.e2e.skillDetected":"oa_pc_uat Skill 将在 Verify 阶段自动注入 AI Agent prompt","settings.e2e.skillDetectedHint":"AI Agent 会按照 skill 定义的流程(影响面分析 → 增量剧本生成 → 执行 → REPL 排障)自动完成 E2E 验证","settings.e2e.oneClickSetup":"一键安装","settings.e2e.oneClickSetupHint":"自动克隆仓库、安装 Python 依赖和浏览器、写入配置","settings.e2e.setupRunning":"安装中...","settings.e2e.setupSuccess":"安装完成,配置已自动填充","settings.e2e.setupFailed":"安装失败","settings.e2e.showLogs":"查看日志","settings.e2e.hideLogs":"收起日志","settings.e2e.step.clone":"克隆/更新 oa_pc_uat","settings.e2e.step.detectPython":"检测 Python 版本","settings.e2e.step.installPw":"安装 Playwright","settings.e2e.step.installBrowser":"安装 Chromium 浏览器","settings.e2e.step.configure":"写入配置","settings.e2e.step.reload":"重载配置","header.settings":"配置管理","brainstorm.startRecording":"开始录音","brainstorm.stopRecording":"停止录音","brainstorm.voiceNotSupported":"当前浏览器不支持语音识别,请使用 Chrome 或 Edge,或直接输入文字","brainstorm.clear":"清空","brainstorm.recording":"录音中...","brainstorm.transcriptLabel":"想法描述","brainstorm.transcriptPlaceholder":"在这里输入或通过语音录入你的想法...乱的、不连贯的都没关系","brainstorm.startGenerate":"开始生成 SDD","brainstorm.step1":"倾倒想法","brainstorm.step2":"AI 精炼","brainstorm.step3":"创建 Issue","brainstorm.roundCount":"已完成 {count} 轮精炼","brainstorm.statusGenerating":"正在生成 SDD...","brainstorm.statusReviewing":"正在审查...","brainstorm.statusRefining":"正在精炼...","brainstorm.statusProcessing":"处理中...","brainstorm.abort":"中止","brainstorm.manualReview":"手动审查","brainstorm.manualRefine":"手动精炼","brainstorm.finishAndCreate":"完成并创建 Issue","brainstorm.sddTitle":"软件设计文档 (SDD)","brainstorm.sddEmpty":"SDD 尚未生成","brainstorm.questionsTitle":"审查问题","brainstorm.questionsEmpty":"尚未进行审查","brainstorm.roundHistory":"查看历史轮次","brainstorm.roundLabel":"第 {n} 轮","brainstorm.issueTitleLabel":"Issue 标题","brainstorm.issueTitlePlaceholder":"输入 Issue 标题(留空则自动从 SDD 提取)","brainstorm.addAutoFinishLabel":"添加 auto-finish 标签(系统将自动处理)","brainstorm.sddPreview":"SDD 预览","brainstorm.backToRefine":"返回精炼","brainstorm.createIssueOnly":"仅创建 Issue","brainstorm.createAndStart":"创建并启动处理","brainstorm.creating":"创建中...","brainstorm.issueCreated":"Issue 创建成功!","brainstorm.startNew":"开始新的脑暴","chat.newChat":"新对话","chat.expandSidebar":"展开侧栏","chat.collapseSidebar":"收起侧栏","chat.deleteSession":"删除会话","chat.messagesCount":"条消息","chat.noSessions":"暂无会话","chat.welcome":"智能助手","chat.welcomeHint":'输入问题开始对话,或点击左侧"新对话"创建会话',"chat.inputPlaceholder":"输入消息... (Enter 发送,Shift+Enter 换行)","chat.send":"发送","chat.stop":"停止","chat.streaming":"输出中...","chat.thinking.connecting":"正在连接 AI...","chat.thinking.connected":"AI 已连接,思考中...","chat.thinking.processing":"AI 正在思考...","distill.statusTitle":"蒸馏状态","distill.diaries":"日记","distill.memories":"记忆","distill.rules":"规则","distill.vectors":"向量","distill.undistilled":"未蒸馏","distill.lastRun":"上次蒸馏","distill.nextRun":"下次预计","distill.neverRun":"从未运行","distill.runButton":"立即蒸馏","distill.running":"蒸馏中...","distill.runStarted":"蒸馏已开始","distill.runMemory":"记忆蒸馏: 处理 {diaries} 条日记, {actions} 个操作","distill.runRule":"规则蒸馏: 处理 {memories} 条记忆, {actions} 个操作","distill.runVector":"向量索引: {indexed} 条","distill.runDone":"蒸馏完成","distill.runEmpty":"暂无可蒸馏的日记数据","distill.runError":"蒸馏出错: {error}","distill.searchPlaceholder":"语义搜索知识...","distill.searchButton":"搜索","distill.searchResults":"搜索结果","distill.searchEmpty":"未找到匹配的知识","distill.filterAll":"全部","distill.filterCompleted":"成功","distill.filterFailed":"失败","distill.filterDistilled":"已蒸馏","distill.filterUndistilled":"未蒸馏","distill.diaryDetail":"日记详情","distill.issueIid":"Issue","distill.title":"标题","distill.branch":"分支","distill.pipelineMode":"流水线","distill.outcome":"结果","distill.outcomeCompleted":"成功","distill.outcomeFailed":"失败","distill.mrUrl":"合并请求","distill.timing":"执行效率","distill.totalDuration":"总耗时","distill.failure":"失败信息","distill.failedAtPhase":"失败阶段","distill.errorMessage":"错误信息","distill.retryCount":"重试次数","distill.interventions":"人工介入","distill.interventionType.review-approve":"审核通过","distill.interventionType.review-reject":"审核驳回","distill.interventionType.retry":"重试","distill.interventionType.supplement":"补充信息","distill.interventionType.webhook-command":"Webhook 命令","distill.summary":"产物摘要","distill.distilledStatus":"蒸馏状态","distill.createdAt":"创建时间","distill.diaryEmpty":"暂无日记记录","distill.deleteDiary":"删除日记","distill.confirmDelete":"确定要删除这条日记吗?","distill.score":"相关度","distill.sourceType":"来源类型","distill.close":"关闭"},mWt={"app.trackedIssues":"Tracked Issues","app.browseIssues":"Browse Issues","app.brainstorm":"Brainstorm","app.chat":"Chat Assistant","app.knowledge":"Knowledge Base","app.distill":"Distillation","header.connected":"Connected","header.disconnected":"Disconnected","header.discovery":"Discovery","header.drive":"Drive","header.uptime":"Uptime","header.syncOnTitle":"Issue sync is ON (click to disable)","header.syncOffTitle":"Issue sync is OFF (click to enable)","header.syncOn":"Sync: ON","header.syncOff":"Sync: OFF","header.langSwitch":"Switch Language","stats.total":"Total","stats.active":"In Progress","stats.completed":"Completed","stats.failed":"Failed","table.filter":"Filter:","table.title":"Title","table.state":"State","table.progress":"Phase Progress","table.retries":"Retries","table.updatedAt":"Updated","table.actions":"Actions","table.empty":"No issues tracked yet","table.viewInGongfeng":"View in Gongfeng","table.start":"Start","table.retry":"Retry","table.restart":"Restart","table.cancel":"Cancel","filter.all":"All","filter.active":"Active","filter.completed":"Completed","filter.failed":"Failed","filter.review":"In Review","filter.deployed":"Deployed","browse.searchPlaceholder":"Search issue title...","browse.loading":"Loading...","browse.search":"Search","browse.loadingList":"Loading issues from Gongfeng...","browse.title":"Title","browse.labels":"Labels","browse.author":"Author","browse.createdAt":"Created","browse.actions":"Actions","browse.empty":"No issues found","browse.tracked":"Tracked","browse.start":"Start Processing","browse.pagination":"{total} total, page {page} / {totalPages}","browse.prevPage":"Previous","browse.nextPage":"Next","start.title":"Start Processing Issue #{iid}","start.issueTitle":"Title","start.descPreview":"Description Preview","start.supplement":"Supplement (Optional)","start.requirements":"Additional Requirements","start.requirementsPlaceholder":"Supplement or clarify the issue description...","start.acceptance":"Acceptance Criteria","start.acceptancePlaceholder":"Criteria to meet upon completion...","start.scope":"Change Scope","start.scopePlaceholder":"e.g. backend only, frontend only, full-stack...","start.constraints":"Constraints","start.constraintsPlaceholder":"Technical constraints, compatibility requirements...","start.references":"References","start.referencesPlaceholder":"Related docs, design mockup links...","start.freeText":"Additional Notes","start.freeTextPlaceholder":"Any other info for the AI...","start.tapdId":"TAPD ID","start.tapdIdPlaceholder":"e.g. 12345678, for MR TAPD association (optional)","start.cancel":"Cancel","start.processing":"Processing...","start.submit":"Start Processing","detail.viewInGongfeng":"View in Gongfeng","detail.basicInfo":"Basic Info","detail.title":"Title:","detail.branch":"Branch:","detail.state":"State:","detail.createdAt":"Created:","detail.retries":"Retries:","detail.updatedAt":"Updated:","detail.noteSync":"Sync results to Issue","detail.enabled":"On","detail.disabled":"Off","detail.followSystem":"Follow System","detail.e2eTitle":"E2E UI Auto-verification","detail.e2eArtifacts":"E2E Test Artifacts","detail.e2eRuns":"runs","detail.e2eImages":"screenshots","detail.e2eVideos":"videos","detail.e2eDocuments":"documents","detail.e2eRunDocuments":"Run Logs & Reports","detail.e2eScreenshots":"Screenshots","detail.e2eVideoRecordings":"Video Recordings","detail.e2eScenarios":"Scenarios & Scripts","detail.e2eScenariosLabel":"Scenarios","detail.e2eScriptsLabel":"Test Scripts","detail.e2eNoMedia":"No artifacts in this run","detail.scenarioViewer":"Scenario Viewer","detail.scenarioOverview":"Overview","detail.scenarioMainPath":"Main Path","detail.scenarioVerifyBehavior":"Verify Behavior","detail.scenarioVerifyRule":"Verify Rule","detail.scenarioCoverage":"Coverage","detail.scenarioRuleCoverage":"Rule Column Coverage","detail.scenarioAllList":"All Scenarios","detail.scenarioInherited":"Inherited","detail.scenarioEmpty":"No data","detail.scenarioPreconditions":"Preconditions","detail.scenarioSteps":"Operating Steps","detail.scenarioExpectedResults":"Expected Results","detail.scenarioNodeCoverage":"Node Coverage","detail.scenarioRuleColumnCoverage":"Rule Column Coverage","detail.e2eNotConfigured":"E2E test tool not configured","detail.e2eNotConfiguredHint":"Configure the oa_pc_uat directory path in Settings to enable E2E screenshot and video capture","detail.e2eNoRuns":"No E2E test artifacts yet","detail.e2eNoRunsHint":"Screenshots and video recordings will appear here after E2E tests are run","detail.loading":"Loading...","detail.mrLabel":"Merge Request:","detail.linkedMrLabel":"Linked Repo Merge Requests:","detail.errorInfo":"Error Info","detail.start":"Start Processing","detail.retry":"Retry","detail.restart":"Clean & Restart","detail.cancelTrack":"Untrack","detail.markDeployed":"Mark Deployed","detail.stopPreview":"Stop Preview","detail.restartPreview":"Restart Preview","detail.openFullPage":"Open Detail Page","detail.backToList":"← Back to List","detail.tab.docs":"Docs","detail.tab.review":"Review","detail.tab.supplement":"Supplement","detail.tab.logs":"Logs","detail.tab.e2e":"E2E","detail.settings":"Settings","detail.mergeRequest":"Merge Request","pipeline.title":"Pipeline Progress","pipeline.retryFrom":"Retry from here","review.title":"Plan Review","review.description":"AI has completed the planning phase. Please review the implementation plan before proceeding.","review.currentRound":"(Currently round {round})","review.history":"Review History","review.roundLabel":"Round {n}","review.roundPrefix":"Round {round}","review.approve":"Approve Plan","review.skip":"Skip Review","review.feedbackLabel":"Review Feedback (required when rejecting)","review.feedbackPlaceholder":"Enter feedback, AI will re-plan based on it...","review.reject":"Reject & Re-plan","review.submitting":"Submitting...","supplement.title":"Supplement Info","supplement.edit":"Edit","supplement.saving":"Saving...","supplement.save":"Save","supplement.cancel":"Cancel","supplement.loading":"Loading...","supplement.requirements":"Requirements:","supplement.acceptance":"Acceptance:","supplement.scope":"Scope:","supplement.constraints":"Constraints:","supplement.references":"References:","supplement.freeText":"Other:","supplement.tapdId":"TAPD ID:","supplement.empty":'No supplement info. Click "Edit" to add.',"supplement.requirementsLabel":"Additional Requirements","supplement.acceptanceLabel":"Acceptance Criteria","supplement.scopeLabel":"Change Scope","supplement.constraintsLabel":"Constraints","supplement.referencesLabel":"References","supplement.freeTextLabel":"Additional Notes","supplement.tapdIdLabel":"TAPD ID","supplement.tapdIdPlaceholder":"e.g. 12345678, for MR TAPD association (optional)","planDoc.title":"Plan Documents","planDoc.edit":"Edit","planDoc.saving":"Saving...","planDoc.save":"Save","planDoc.cancel":"Cancel","planDoc.fullscreen":"Fullscreen","planDoc.expand":"Expand","planDoc.loading":"Loading...","planDoc.editPlaceholder":"Edit document content...","planDoc.selectTab":"Click a tab to view document","planDoc.closeFullscreen":"Close Fullscreen (Esc)","planDoc.noReviewFeedback":"No review feedback (plan was never rejected)","planDoc.verifyNotGenerated":"Verification report not yet generated","planDoc.fetchFailed":"Failed to fetch document:","planDoc.saveFailed":"Save failed:","agentLog.title":"Agent Live Output","agentLog.autoScroll":"Auto Scroll","agentLog.clear":"Clear","agentLog.ended":"Task ended, no live output","agentLog.finalState":"Final state:","agentLog.currentState":"Current state:","agentLog.waiting":"Waiting for Agent output...","agentLog.count":"{count} entries","agentLog.type.assistant":"AI Reply","agentLog.type.tool_use":"Tool Call","agentLog.type.tool_result":"Tool Result","agentLog.type.result":"Final Result","agentLog.type.stderr":"Log","agentLog.type.raw":"Output","agentLog.type.system":"System","agentLog.type.partial":"Streaming","agentLog.type.thinking":"Thinking","state.skipped":"Skipped","state.pending":"Pending","state.branch_created":"Branch Created","state.analyzing":"Analyzing","state.analysis_done":"Analysis Done","state.designing":"Designing","state.design_done":"Design Done","state.implementing":"Implementing","state.implement_done":"Implementation Done","state.planning":"Planning","state.plan_done":"Plan Done","state.waiting_for_review":"Awaiting Review","state.review_approved":"Review Approved","state.building":"Building","state.build_done":"Build Done","state.verifying":"Verifying","state.completed":"Completed","state.failed":"Failed","state.phase_running":"Phase Running","state.phase_done":"Phase Done","state.phase_waiting":"Awaiting Review","state.phase_approved":"Review Approved","state.deployed":"Deployed","state.resolving_conflict":"Resolving Conflict","phase.analysis":"Analysis","phase.design":"Design","phase.implement":"Implementation","phase.verify":"Verification","phase.plan":"Planning","phase.review":"Review","phase.build":"Build","phase.release":"Release","verify.loopStarted":"Verify-fix loop started (max {max} iterations)","verify.iterationPassed":"Verification passed on iteration {n}","verify.iterationFailed":"Verification failed on iteration {n}: {reasons}","verify.loopExhausted":"Verify-fix loop exhausted after {n} iterations","verify.loopBadgeTooltip":"Fix iteration {n}/{max}","planFile.01-analysis.md":"Requirements Analysis","planFile.02-design.md":"System Design","planFile.03-todolist.md":"Implementation Checklist","planFile.04-verify-report.md":"Verification Report","planFile.01-plan.md":"Implementation Plan","planFile.02-verify-report.md":"Verification Report","planFile.review-feedback.md":"Review Feedback","planFile.03-release-detect.json":"Release Detection Report","planFile.04-release-report.md":"Release Report","confirm.supplementSaved":"Supplement saved. Retry from analysis phase?","confirm.start":"Start processing Issue #{iid}?","confirm.retry":"Retry Issue #{iid}?","confirm.cancel":"Untrack Issue #{iid}?","confirm.restart":`Clean and restart Issue #{iid}?
1
+ (function(){const d=document.createElement("link").relList;if(d&&d.supports&&d.supports("modulepreload"))return;for(const w of document.querySelectorAll('link[rel="modulepreload"]'))m(w);new MutationObserver(w=>{for(const $ of w)if($.type==="childList")for(const p of $.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&m(p)}).observe(document,{childList:!0,subtree:!0});function b(w){const $={};return w.integrity&&($.integrity=w.integrity),w.referrerPolicy&&($.referrerPolicy=w.referrerPolicy),w.crossOrigin==="use-credentials"?$.credentials="include":w.crossOrigin==="anonymous"?$.credentials="omit":$.credentials="same-origin",$}function m(w){if(w.ep)return;w.ep=!0;const $=b(w);fetch(w.href,$)}})();function Eme(a){const d=Object.create(null);for(const b of a.split(","))d[b]=1;return b=>b in d}const Cc={},FS=[],am=()=>{},Wbt=()=>!1,SX=a=>a.charCodeAt(0)===111&&a.charCodeAt(1)===110&&(a.charCodeAt(2)>122||a.charCodeAt(2)<97),Cme=a=>a.startsWith("onUpdate:"),cf=Object.assign,Sme=(a,d)=>{const b=a.indexOf(d);b>-1&&a.splice(b,1)},qzt=Object.prototype.hasOwnProperty,Nc=(a,d)=>qzt.call(a,d),Mr=Array.isArray,BS=a=>lL(a)==="[object Map]",n_=a=>lL(a)==="[object Set]",V0t=a=>lL(a)==="[object Date]",vs=a=>typeof a=="function",Bl=a=>typeof a=="string",bv=a=>typeof a=="symbol",jc=a=>a!==null&&typeof a=="object",Xbt=a=>(jc(a)||vs(a))&&vs(a.then)&&vs(a.catch),Ybt=Object.prototype.toString,lL=a=>Ybt.call(a),Vzt=a=>lL(a).slice(8,-1),Qbt=a=>lL(a)==="[object Object]",_X=a=>Bl(a)&&a!=="NaN"&&a[0]!=="-"&&""+parseInt(a,10)===a,OO=Eme(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),jX=a=>{const d=Object.create(null);return(b=>d[b]||(d[b]=a(b)))},Kzt=/-\w/g,Mh=jX(a=>a.replace(Kzt,d=>d.slice(1).toUpperCase())),Wzt=/\B([A-Z])/g,D3=jX(a=>a.replace(Wzt,"-$1").toLowerCase()),IX=jX(a=>a.charAt(0).toUpperCase()+a.slice(1)),x2e=jX(a=>a?`on${IX(a)}`:""),Fd=(a,d)=>!Object.is(a,d),JW=(a,...d)=>{for(let b=0;b<a.length;b++)a[b](...d)},Zbt=(a,d,b,m=!1)=>{Object.defineProperty(a,d,{configurable:!0,enumerable:!1,writable:m,value:b})},AX=a=>{const d=parseFloat(a);return isNaN(d)?a:d},Xzt=a=>{const d=Bl(a)?Number(a):NaN;return isNaN(d)?a:d};let K0t;const TX=()=>K0t||(K0t=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function _c(a){if(Mr(a)){const d={};for(let b=0;b<a.length;b++){const m=a[b],w=Bl(m)?eqt(m):_c(m);if(w)for(const $ in w)d[$]=w[$]}return d}else if(Bl(a)||jc(a))return a}const Yzt=/;(?![^(]*\))/g,Qzt=/:([^]+)/,Zzt=/\/\*[^]*?\*\//g;function eqt(a){const d={};return a.replace(Zzt,"").split(Yzt).forEach(b=>{if(b){const m=b.split(Qzt);m.length>1&&(d[m[0].trim()]=m[1].trim())}}),d}function wn(a){let d="";if(Bl(a))d=a;else if(Mr(a))for(let b=0;b<a.length;b++){const m=wn(a[b]);m&&(d+=m+" ")}else if(jc(a))for(const b in a)a[b]&&(d+=b+" ");return d.trim()}const tqt="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",nqt=Eme(tqt);function ept(a){return!!a||a===""}function iqt(a,d){if(a.length!==d.length)return!1;let b=!0;for(let m=0;b&&m<a.length;m++)b=Lk(a[m],d[m]);return b}function Lk(a,d){if(a===d)return!0;let b=V0t(a),m=V0t(d);if(b||m)return b&&m?a.getTime()===d.getTime():!1;if(b=bv(a),m=bv(d),b||m)return a===d;if(b=Mr(a),m=Mr(d),b||m)return b&&m?iqt(a,d):!1;if(b=jc(a),m=jc(d),b||m){if(!b||!m)return!1;const w=Object.keys(a).length,$=Object.keys(d).length;if(w!==$)return!1;for(const p in a){const j=a.hasOwnProperty(p),I=d.hasOwnProperty(p);if(j&&!I||!j&&I||!Lk(a[p],d[p]))return!1}}return String(a)===String(d)}function _me(a,d){return a.findIndex(b=>Lk(b,d))}const tpt=a=>!!(a&&a.__v_isRef===!0),M=a=>Bl(a)?a:a==null?"":Mr(a)||jc(a)&&(a.toString===Ybt||!vs(a.toString))?tpt(a)?M(a.value):JSON.stringify(a,npt,2):String(a),npt=(a,d)=>tpt(d)?npt(a,d.value):BS(d)?{[`Map(${d.size})`]:[...d.entries()].reduce((b,[m,w],$)=>(b[$2e(m,$)+" =>"]=w,b),{})}:n_(d)?{[`Set(${d.size})`]:[...d.values()].map(b=>$2e(b))}:bv(d)?$2e(d):jc(d)&&!Mr(d)&&!Qbt(d)?String(d):d,$2e=(a,d="")=>{var b;return bv(a)?`Symbol(${(b=a.description)!=null?b:d})`:a};let Sh;class ipt{constructor(d=!1){this.detached=d,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=Sh,!d&&Sh&&(this.index=(Sh.scopes||(Sh.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let d,b;if(this.scopes)for(d=0,b=this.scopes.length;d<b;d++)this.scopes[d].pause();for(d=0,b=this.effects.length;d<b;d++)this.effects[d].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let d,b;if(this.scopes)for(d=0,b=this.scopes.length;d<b;d++)this.scopes[d].resume();for(d=0,b=this.effects.length;d<b;d++)this.effects[d].resume()}}run(d){if(this._active){const b=Sh;try{return Sh=this,d()}finally{Sh=b}}}on(){++this._on===1&&(this.prevScope=Sh,Sh=this)}off(){this._on>0&&--this._on===0&&(Sh=this.prevScope,this.prevScope=void 0)}stop(d){if(this._active){this._active=!1;let b,m;for(b=0,m=this.effects.length;b<m;b++)this.effects[b].stop();for(this.effects.length=0,b=0,m=this.cleanups.length;b<m;b++)this.cleanups[b]();if(this.cleanups.length=0,this.scopes){for(b=0,m=this.scopes.length;b<m;b++)this.scopes[b].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!d){const w=this.parent.scopes.pop();w&&w!==this&&(this.parent.scopes[this.index]=w,w.index=this.index)}this.parent=void 0}}}function rpt(a){return new ipt(a)}function jme(){return Sh}function UW(a,d=!1){Sh&&Sh.cleanups.push(a)}let Ou;const E2e=new WeakSet;class spt{constructor(d){this.fn=d,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,Sh&&Sh.active&&Sh.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,E2e.has(this)&&(E2e.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||cpt(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,W0t(this),upt(this);const d=Ou,b=gv;Ou=this,gv=!0;try{return this.fn()}finally{lpt(this),Ou=d,gv=b,this.flags&=-3}}stop(){if(this.flags&1){for(let d=this.deps;d;d=d.nextDep)Tme(d);this.deps=this.depsTail=void 0,W0t(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?E2e.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){K2e(this)&&this.run()}get dirty(){return K2e(this)}}let opt=0,LO,NO;function cpt(a,d=!1){if(a.flags|=8,d){a.next=NO,NO=a;return}a.next=LO,LO=a}function Ime(){opt++}function Ame(){if(--opt>0)return;if(NO){let d=NO;for(NO=void 0;d;){const b=d.next;d.next=void 0,d.flags&=-9,d=b}}let a;for(;LO;){let d=LO;for(LO=void 0;d;){const b=d.next;if(d.next=void 0,d.flags&=-9,d.flags&1)try{d.trigger()}catch(m){a||(a=m)}d=b}}if(a)throw a}function upt(a){for(let d=a.deps;d;d=d.nextDep)d.version=-1,d.prevActiveLink=d.dep.activeLink,d.dep.activeLink=d}function lpt(a){let d,b=a.depsTail,m=b;for(;m;){const w=m.prevDep;m.version===-1?(m===b&&(b=w),Tme(m),rqt(m)):d=m,m.dep.activeLink=m.prevActiveLink,m.prevActiveLink=void 0,m=w}a.deps=d,a.depsTail=b}function K2e(a){for(let d=a.deps;d;d=d.nextDep)if(d.dep.version!==d.version||d.dep.computed&&(apt(d.dep.computed)||d.dep.version!==d.version))return!0;return!!a._dirty}function apt(a){if(a.flags&4&&!(a.flags&16)||(a.flags&=-17,a.globalVersion===VO)||(a.globalVersion=VO,!a.isSSR&&a.flags&128&&(!a.deps&&!a._dirty||!K2e(a))))return;a.flags|=2;const d=a.dep,b=Ou,m=gv;Ou=a,gv=!0;try{upt(a);const w=a.fn(a._value);(d.version===0||Fd(w,a._value))&&(a.flags|=128,a._value=w,d.version++)}catch(w){throw d.version++,w}finally{Ou=b,gv=m,lpt(a),a.flags&=-3}}function Tme(a,d=!1){const{dep:b,prevSub:m,nextSub:w}=a;if(m&&(m.nextSub=w,a.prevSub=void 0),w&&(w.prevSub=m,a.nextSub=void 0),b.subs===a&&(b.subs=m,!m&&b.computed)){b.computed.flags&=-5;for(let $=b.computed.deps;$;$=$.nextDep)Tme($,!0)}!d&&!--b.sc&&b.map&&b.map.delete(b.key)}function rqt(a){const{prevDep:d,nextDep:b}=a;d&&(d.nextDep=b,a.prevDep=void 0),b&&(b.prevDep=d,a.nextDep=void 0)}let gv=!0;const fpt=[];function A3(){fpt.push(gv),gv=!1}function T3(){const a=fpt.pop();gv=a===void 0?!0:a}function W0t(a){const{cleanup:d}=a;if(a.cleanup=void 0,d){const b=Ou;Ou=void 0;try{d()}finally{Ou=b}}}let VO=0;class sqt{constructor(d,b){this.sub=d,this.dep=b,this.version=b.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class MX{constructor(d){this.computed=d,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(d){if(!Ou||!gv||Ou===this.computed)return;let b=this.activeLink;if(b===void 0||b.sub!==Ou)b=this.activeLink=new sqt(Ou,this),Ou.deps?(b.prevDep=Ou.depsTail,Ou.depsTail.nextDep=b,Ou.depsTail=b):Ou.deps=Ou.depsTail=b,dpt(b);else if(b.version===-1&&(b.version=this.version,b.nextDep)){const m=b.nextDep;m.prevDep=b.prevDep,b.prevDep&&(b.prevDep.nextDep=m),b.prevDep=Ou.depsTail,b.nextDep=void 0,Ou.depsTail.nextDep=b,Ou.depsTail=b,Ou.deps===b&&(Ou.deps=m)}return b}trigger(d){this.version++,VO++,this.notify(d)}notify(d){Ime();try{for(let b=this.subs;b;b=b.prevSub)b.sub.notify()&&b.sub.dep.notify()}finally{Ame()}}}function dpt(a){if(a.dep.sc++,a.sub.flags&4){const d=a.dep.computed;if(d&&!a.dep.subs){d.flags|=20;for(let m=d.deps;m;m=m.nextDep)dpt(m)}const b=a.dep.subs;b!==a&&(a.prevSub=b,b&&(b.nextSub=a)),a.dep.subs=a}}const eX=new WeakMap,s9=Symbol(""),W2e=Symbol(""),KO=Symbol("");function _h(a,d,b){if(gv&&Ou){let m=eX.get(a);m||eX.set(a,m=new Map);let w=m.get(b);w||(m.set(b,w=new MX),w.map=m,w.key=b),w.track()}}function $3(a,d,b,m,w,$){const p=eX.get(a);if(!p){VO++;return}const j=I=>{I&&I.trigger()};if(Ime(),d==="clear")p.forEach(j);else{const I=Mr(a),N=I&&_X(b);if(I&&b==="length"){const P=Number(m);p.forEach((U,V)=>{(V==="length"||V===KO||!bv(V)&&V>=P)&&j(U)})}else switch((b!==void 0||p.has(void 0))&&j(p.get(b)),N&&j(p.get(KO)),d){case"add":I?N&&j(p.get("length")):(j(p.get(s9)),BS(a)&&j(p.get(W2e)));break;case"delete":I||(j(p.get(s9)),BS(a)&&j(p.get(W2e)));break;case"set":BS(a)&&j(p.get(s9));break}}Ame()}function oqt(a,d){const b=eX.get(a);return b&&b.get(d)}function DS(a){const d=hc(a);return d===a?d:(_h(d,"iterate",KO),qg(a)?d:d.map(pv))}function PX(a){return _h(a=hc(a),"iterate",KO),a}function om(a,d){return M3(a)?KS(o9(a)?pv(d):d):pv(d)}const cqt={__proto__:null,[Symbol.iterator](){return C2e(this,Symbol.iterator,a=>om(this,a))},concat(...a){return DS(this).concat(...a.map(d=>Mr(d)?DS(d):d))},entries(){return C2e(this,"entries",a=>(a[1]=om(this,a[1]),a))},every(a,d){return w3(this,"every",a,d,void 0,arguments)},filter(a,d){return w3(this,"filter",a,d,b=>b.map(m=>om(this,m)),arguments)},find(a,d){return w3(this,"find",a,d,b=>om(this,b),arguments)},findIndex(a,d){return w3(this,"findIndex",a,d,void 0,arguments)},findLast(a,d){return w3(this,"findLast",a,d,b=>om(this,b),arguments)},findLastIndex(a,d){return w3(this,"findLastIndex",a,d,void 0,arguments)},forEach(a,d){return w3(this,"forEach",a,d,void 0,arguments)},includes(...a){return S2e(this,"includes",a)},indexOf(...a){return S2e(this,"indexOf",a)},join(a){return DS(this).join(a)},lastIndexOf(...a){return S2e(this,"lastIndexOf",a)},map(a,d){return w3(this,"map",a,d,void 0,arguments)},pop(){return xO(this,"pop")},push(...a){return xO(this,"push",a)},reduce(a,...d){return X0t(this,"reduce",a,d)},reduceRight(a,...d){return X0t(this,"reduceRight",a,d)},shift(){return xO(this,"shift")},some(a,d){return w3(this,"some",a,d,void 0,arguments)},splice(...a){return xO(this,"splice",a)},toReversed(){return DS(this).toReversed()},toSorted(a){return DS(this).toSorted(a)},toSpliced(...a){return DS(this).toSpliced(...a)},unshift(...a){return xO(this,"unshift",a)},values(){return C2e(this,"values",a=>om(this,a))}};function C2e(a,d,b){const m=PX(a),w=m[d]();return m!==a&&!qg(a)&&(w._next=w.next,w.next=()=>{const $=w._next();return $.done||($.value=b($.value)),$}),w}const uqt=Array.prototype;function w3(a,d,b,m,w,$){const p=PX(a),j=p!==a&&!qg(a),I=p[d];if(I!==uqt[d]){const U=I.apply(a,$);return j?pv(U):U}let N=b;p!==a&&(j?N=function(U,V){return b.call(this,om(a,U),V,a)}:b.length>2&&(N=function(U,V){return b.call(this,U,V,a)}));const P=I.call(p,N,m);return j&&w?w(P):P}function X0t(a,d,b,m){const w=PX(a),$=w!==a&&!qg(a);let p=b,j=!1;w!==a&&($?(j=m.length===0,p=function(N,P,U){return j&&(j=!1,N=om(a,N)),b.call(this,N,om(a,P),U,a)}):b.length>3&&(p=function(N,P,U){return b.call(this,N,P,U,a)}));const I=w[d](p,...m);return j?om(a,I):I}function S2e(a,d,b){const m=hc(a);_h(m,"iterate",KO);const w=m[d](...b);return(w===-1||w===!1)&&DX(b[0])?(b[0]=hc(b[0]),m[d](...b)):w}function xO(a,d,b=[]){A3(),Ime();const m=hc(a)[d].apply(a,b);return Ame(),T3(),m}const lqt=Eme("__proto__,__v_isRef,__isVue"),hpt=new Set(Object.getOwnPropertyNames(Symbol).filter(a=>a!=="arguments"&&a!=="caller").map(a=>Symbol[a]).filter(bv));function aqt(a){bv(a)||(a=String(a));const d=hc(this);return _h(d,"has",a),d.hasOwnProperty(a)}class gpt{constructor(d=!1,b=!1){this._isReadonly=d,this._isShallow=b}get(d,b,m){if(b==="__v_skip")return d.__v_skip;const w=this._isReadonly,$=this._isShallow;if(b==="__v_isReactive")return!w;if(b==="__v_isReadonly")return w;if(b==="__v_isShallow")return $;if(b==="__v_raw")return m===(w?$?yqt:vpt:$?wpt:ppt).get(d)||Object.getPrototypeOf(d)===Object.getPrototypeOf(m)?d:void 0;const p=Mr(d);if(!w){let I;if(p&&(I=cqt[b]))return I;if(b==="hasOwnProperty")return aqt}const j=Reflect.get(d,b,Zc(d)?d:m);if((bv(b)?hpt.has(b):lqt(b))||(w||_h(d,"get",b),$))return j;if(Zc(j)){const I=p&&_X(b)?j:j.value;return w&&jc(I)?tX(I):I}return jc(j)?w?tX(j):i_(j):j}}class bpt extends gpt{constructor(d=!1){super(!1,d)}set(d,b,m,w){let $=d[b];const p=Mr(d)&&_X(b);if(!this._isShallow){const N=M3($);if(!qg(m)&&!M3(m)&&($=hc($),m=hc(m)),!p&&Zc($)&&!Zc(m))return N||($.value=m),!0}const j=p?Number(b)<d.length:Nc(d,b),I=Reflect.set(d,b,m,Zc(d)?d:w);return d===hc(w)&&(j?Fd(m,$)&&$3(d,"set",b,m):$3(d,"add",b,m)),I}deleteProperty(d,b){const m=Nc(d,b);d[b];const w=Reflect.deleteProperty(d,b);return w&&m&&$3(d,"delete",b,void 0),w}has(d,b){const m=Reflect.has(d,b);return(!bv(b)||!hpt.has(b))&&_h(d,"has",b),m}ownKeys(d){return _h(d,"iterate",Mr(d)?"length":s9),Reflect.ownKeys(d)}}class fqt extends gpt{constructor(d=!1){super(!0,d)}set(d,b){return!0}deleteProperty(d,b){return!0}}const dqt=new bpt,hqt=new fqt,gqt=new bpt(!0);const X2e=a=>a,$W=a=>Reflect.getPrototypeOf(a);function bqt(a,d,b){return function(...m){const w=this.__v_raw,$=hc(w),p=BS($),j=a==="entries"||a===Symbol.iterator&&p,I=a==="keys"&&p,N=w[a](...m),P=b?X2e:d?KS:pv;return!d&&_h($,"iterate",I?W2e:s9),cf(Object.create(N),{next(){const{value:U,done:V}=N.next();return V?{value:U,done:V}:{value:j?[P(U[0]),P(U[1])]:P(U),done:V}}})}}function EW(a){return function(...d){return a==="delete"?!1:a==="clear"?void 0:this}}function pqt(a,d){const b={get(w){const $=this.__v_raw,p=hc($),j=hc(w);a||(Fd(w,j)&&_h(p,"get",w),_h(p,"get",j));const{has:I}=$W(p),N=d?X2e:a?KS:pv;if(I.call(p,w))return N($.get(w));if(I.call(p,j))return N($.get(j));$!==p&&$.get(w)},get size(){const w=this.__v_raw;return!a&&_h(hc(w),"iterate",s9),w.size},has(w){const $=this.__v_raw,p=hc($),j=hc(w);return a||(Fd(w,j)&&_h(p,"has",w),_h(p,"has",j)),w===j?$.has(w):$.has(w)||$.has(j)},forEach(w,$){const p=this,j=p.__v_raw,I=hc(j),N=d?X2e:a?KS:pv;return!a&&_h(I,"iterate",s9),j.forEach((P,U)=>w.call($,N(P),N(U),p))}};return cf(b,a?{add:EW("add"),set:EW("set"),delete:EW("delete"),clear:EW("clear")}:{add(w){const $=hc(this),p=$W($),j=hc(w),I=!d&&!qg(w)&&!M3(w)?j:w;return p.has.call($,I)||Fd(w,I)&&p.has.call($,w)||Fd(j,I)&&p.has.call($,j)||($.add(I),$3($,"add",I,I)),this},set(w,$){!d&&!qg($)&&!M3($)&&($=hc($));const p=hc(this),{has:j,get:I}=$W(p);let N=j.call(p,w);N||(w=hc(w),N=j.call(p,w));const P=I.call(p,w);return p.set(w,$),N?Fd($,P)&&$3(p,"set",w,$):$3(p,"add",w,$),this},delete(w){const $=hc(this),{has:p,get:j}=$W($);let I=p.call($,w);I||(w=hc(w),I=p.call($,w)),j&&j.call($,w);const N=$.delete(w);return I&&$3($,"delete",w,void 0),N},clear(){const w=hc(this),$=w.size!==0,p=w.clear();return $&&$3(w,"clear",void 0,void 0),p}}),["keys","values","entries",Symbol.iterator].forEach(w=>{b[w]=bqt(w,a,d)}),b}function Mme(a,d){const b=pqt(a,d);return(m,w,$)=>w==="__v_isReactive"?!a:w==="__v_isReadonly"?a:w==="__v_raw"?m:Reflect.get(Nc(b,w)&&w in m?b:m,w,$)}const wqt={get:Mme(!1,!1)},vqt={get:Mme(!1,!0)},mqt={get:Mme(!0,!1)};const ppt=new WeakMap,wpt=new WeakMap,vpt=new WeakMap,yqt=new WeakMap;function kqt(a){switch(a){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function xqt(a){return a.__v_skip||!Object.isExtensible(a)?0:kqt(Vzt(a))}function i_(a){return M3(a)?a:Pme(a,!1,dqt,wqt,ppt)}function $qt(a){return Pme(a,!1,gqt,vqt,wpt)}function tX(a){return Pme(a,!0,hqt,mqt,vpt)}function Pme(a,d,b,m,w){if(!jc(a)||a.__v_raw&&!(d&&a.__v_isReactive))return a;const $=xqt(a);if($===0)return a;const p=w.get(a);if(p)return p;const j=new Proxy(a,$===2?m:b);return w.set(a,j),j}function o9(a){return M3(a)?o9(a.__v_raw):!!(a&&a.__v_isReactive)}function M3(a){return!!(a&&a.__v_isReadonly)}function qg(a){return!!(a&&a.__v_isShallow)}function DX(a){return a?!!a.__v_raw:!1}function hc(a){const d=a&&a.__v_raw;return d?hc(d):a}function I3(a){return!Nc(a,"__v_skip")&&Object.isExtensible(a)&&Zbt(a,"__v_skip",!0),a}const pv=a=>jc(a)?i_(a):a,KS=a=>jc(a)?tX(a):a;function Zc(a){return a?a.__v_isRef===!0:!1}function Ye(a){return mpt(a,!1)}function Ok(a){return mpt(a,!0)}function mpt(a,d){return Zc(a)?a:new Eqt(a,d)}class Eqt{constructor(d,b){this.dep=new MX,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=b?d:hc(d),this._value=b?d:pv(d),this.__v_isShallow=b}get value(){return this.dep.track(),this._value}set value(d){const b=this._rawValue,m=this.__v_isShallow||qg(d)||M3(d);d=m?d:hc(d),Fd(d,b)&&(this._rawValue=d,this._value=m?d:pv(d),this.dep.trigger())}}function A(a){return Zc(a)?a.value:a}function Mo(a){return vs(a)?a():A(a)}const Cqt={get:(a,d,b)=>d==="__v_raw"?a:A(Reflect.get(a,d,b)),set:(a,d,b,m)=>{const w=a[d];return Zc(w)&&!Zc(b)?(w.value=b,!0):Reflect.set(a,d,b,m)}};function ypt(a){return o9(a)?a:new Proxy(a,Cqt)}class Sqt{constructor(d){this.__v_isRef=!0,this._value=void 0;const b=this.dep=new MX,{get:m,set:w}=d(b.track.bind(b),b.trigger.bind(b));this._get=m,this._set=w}get value(){return this._value=this._get()}set value(d){this._set(d)}}function kpt(a){return new Sqt(a)}function _qt(a){const d=Mr(a)?new Array(a.length):{};for(const b in a)d[b]=xpt(a,b);return d}class jqt{constructor(d,b,m){this._object=d,this._key=b,this._defaultValue=m,this.__v_isRef=!0,this._value=void 0,this._raw=hc(d);let w=!0,$=d;if(!Mr(d)||!_X(String(b)))do w=!DX($)||qg($);while(w&&($=$.__v_raw));this._shallow=w}get value(){let d=this._object[this._key];return this._shallow&&(d=A(d)),this._value=d===void 0?this._defaultValue:d}set value(d){if(this._shallow&&Zc(this._raw[this._key])){const b=this._object[this._key];if(Zc(b)){b.value=d;return}}this._object[this._key]=d}get dep(){return oqt(this._raw,this._key)}}class Iqt{constructor(d){this._getter=d,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function fu(a,d,b){return Zc(a)?a:vs(a)?new Iqt(a):jc(a)&&arguments.length>1?xpt(a,d,b):Ye(a)}function xpt(a,d,b){return new jqt(a,d,b)}class Aqt{constructor(d,b,m){this.fn=d,this.setter=b,this._value=void 0,this.dep=new MX(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=VO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!b,this.isSSR=m}notify(){if(this.flags|=16,!(this.flags&8)&&Ou!==this)return cpt(this,!0),!0}get value(){const d=this.dep.track();return apt(this),d&&(d.version=this.dep.version),this._value}set value(d){this.setter&&this.setter(d)}}function Tqt(a,d,b=!1){let m,w;return vs(a)?m=a:(m=a.get,w=a.set),new Aqt(m,w,b)}const CW={},nX=new WeakMap;let Z8;function Mqt(a,d=!1,b=Z8){if(b){let m=nX.get(b);m||nX.set(b,m=[]),m.push(a)}}function Pqt(a,d,b=Cc){const{immediate:m,deep:w,once:$,scheduler:p,augmentJob:j,call:I}=b,N=re=>w?re:qg(re)||w===!1||w===0?E3(re,1):E3(re);let P,U,V,X,ee=!1,K=!1;if(Zc(a)?(U=()=>a.value,ee=qg(a)):o9(a)?(U=()=>N(a),ee=!0):Mr(a)?(K=!0,ee=a.some(re=>o9(re)||qg(re)),U=()=>a.map(re=>{if(Zc(re))return re.value;if(o9(re))return N(re);if(vs(re))return I?I(re,2):re()})):vs(a)?d?U=I?()=>I(a,2):a:U=()=>{if(V){A3();try{V()}finally{T3()}}const re=Z8;Z8=P;try{return I?I(a,3,[X]):a(X)}finally{Z8=re}}:U=am,d&&w){const re=U,ye=w===!0?1/0:w;U=()=>E3(re(),ye)}const he=jme(),ke=()=>{P.stop(),he&&he.active&&Sme(he.effects,P)};if($&&d){const re=d;d=(...ye)=>{re(...ye),ke()}}let ue=K?new Array(a.length).fill(CW):CW;const oe=re=>{if(!(!(P.flags&1)||!P.dirty&&!re))if(d){const ye=P.run();if(w||ee||(K?ye.some((pe,be)=>Fd(pe,ue[be])):Fd(ye,ue))){V&&V();const pe=Z8;Z8=P;try{const be=[ye,ue===CW?void 0:K&&ue[0]===CW?[]:ue,X];ue=ye,I?I(d,3,be):d(...be)}finally{Z8=pe}}}else P.run()};return j&&j(oe),P=new spt(U),P.scheduler=p?()=>p(oe,!1):oe,X=re=>Mqt(re,!1,P),V=P.onStop=()=>{const re=nX.get(P);if(re){if(I)I(re,4);else for(const ye of re)ye();nX.delete(P)}},d?m?oe(!0):ue=P.run():p?p(oe.bind(null,!0),!0):P.run(),ke.pause=P.pause.bind(P),ke.resume=P.resume.bind(P),ke.stop=ke,ke}function E3(a,d=1/0,b){if(d<=0||!jc(a)||a.__v_skip||(b=b||new Map,(b.get(a)||0)>=d))return a;if(b.set(a,d),d--,Zc(a))E3(a.value,d,b);else if(Mr(a))for(let m=0;m<a.length;m++)E3(a[m],d,b);else if(n_(a)||BS(a))a.forEach(m=>{E3(m,d,b)});else if(Qbt(a)){for(const m in a)E3(a[m],d,b);for(const m of Object.getOwnPropertySymbols(a))Object.prototype.propertyIsEnumerable.call(a,m)&&E3(a[m],d,b)}return a}function aL(a,d,b,m){try{return m?a(...m):a()}catch(w){OX(w,d,b)}}function wv(a,d,b,m){if(vs(a)){const w=aL(a,d,b,m);return w&&Xbt(w)&&w.catch($=>{OX($,d,b)}),w}if(Mr(a)){const w=[];for(let $=0;$<a.length;$++)w.push(wv(a[$],d,b,m));return w}}function OX(a,d,b,m=!0){const w=d?d.vnode:null,{errorHandler:$,throwUnhandledErrorInProduction:p}=d&&d.appContext.config||Cc;if(d){let j=d.parent;const I=d.proxy,N=`https://vuejs.org/error-reference/#runtime-${b}`;for(;j;){const P=j.ec;if(P){for(let U=0;U<P.length;U++)if(P[U](a,I,N)===!1)return}j=j.parent}if($){A3(),aL($,null,10,[a,I,N]),T3();return}}Dqt(a,b,w,m,p)}function Dqt(a,d,b,m=!0,w=!1){if(w)throw a;console.error(a)}const E1=[];let im=-1;const HS=[];let Pk=null,NS=0;const $pt=Promise.resolve();let iX=null;function _1(a){const d=iX||$pt;return a?d.then(this?a.bind(this):a):d}function Oqt(a){let d=im+1,b=E1.length;for(;d<b;){const m=d+b>>>1,w=E1[m],$=WO(w);$<a||$===a&&w.flags&2?d=m+1:b=m}return d}function Dme(a){if(!(a.flags&1)){const d=WO(a),b=E1[E1.length-1];!b||!(a.flags&2)&&d>=WO(b)?E1.push(a):E1.splice(Oqt(d),0,a),a.flags|=1,Ept()}}function Ept(){iX||(iX=$pt.then(Spt))}function Lqt(a){Mr(a)?HS.push(...a):Pk&&a.id===-1?Pk.splice(NS+1,0,a):a.flags&1||(HS.push(a),a.flags|=1),Ept()}function Y0t(a,d,b=im+1){for(;b<E1.length;b++){const m=E1[b];if(m&&m.flags&2){if(a&&m.id!==a.uid)continue;E1.splice(b,1),b--,m.flags&4&&(m.flags&=-2),m(),m.flags&4||(m.flags&=-2)}}}function Cpt(a){if(HS.length){const d=[...new Set(HS)].sort((b,m)=>WO(b)-WO(m));if(HS.length=0,Pk){Pk.push(...d);return}for(Pk=d,NS=0;NS<Pk.length;NS++){const b=Pk[NS];b.flags&4&&(b.flags&=-2),b.flags&8||b(),b.flags&=-2}Pk=null,NS=0}}const WO=a=>a.id==null?a.flags&2?-1:1/0:a.id;function Spt(a){try{for(im=0;im<E1.length;im++){const d=E1[im];d&&!(d.flags&8)&&(d.flags&4&&(d.flags&=-2),aL(d,d.i,d.i?15:14),d.flags&4||(d.flags&=-2))}}finally{for(;im<E1.length;im++){const d=E1[im];d&&(d.flags&=-2)}im=-1,E1.length=0,Cpt(),iX=null,(E1.length||HS.length)&&Spt()}}let Bd=null,_pt=null;function rX(a){const d=Bd;return Bd=a,_pt=a&&a.type.__scopeId||null,d}function zg(a,d=Bd,b){if(!d||a._n)return a;const m=(...w)=>{m._d&&lX(-1);const $=rX(d);let p;try{p=a(...w)}finally{rX($),m._d&&lX(1)}return p};return m._n=!0,m._c=!0,m._d=!0,m}function Nn(a,d){if(Bd===null)return a;const b=HX(Bd),m=a.dirs||(a.dirs=[]);for(let w=0;w<d.length;w++){let[$,p,j,I=Cc]=d[w];$&&(vs($)&&($={mounted:$,updated:$}),$.deep&&E3(p),m.push({dir:$,instance:b,value:p,oldValue:void 0,arg:j,modifiers:I}))}return a}function W8(a,d,b,m){const w=a.dirs,$=d&&d.dirs;for(let p=0;p<w.length;p++){const j=w[p];$&&(j.oldValue=$[p].value);let I=j.dir[m];I&&(A3(),wv(I,b,8,[a.el,j,a,d]),T3())}}function l9(a,d){if(Ih){let b=Ih.provides;const m=Ih.parent&&Ih.parent.provides;m===b&&(b=Ih.provides=Object.create(m)),b[a]=d}}function fm(a,d,b=!1){const m=hm();if(m||JS){let w=JS?JS._context.provides:m?m.parent==null||m.ce?m.vnode.appContext&&m.vnode.appContext.provides:m.parent.provides:void 0;if(w&&a in w)return w[a];if(arguments.length>1)return b&&vs(d)?d.call(m&&m.proxy):d}}const Nqt=Symbol.for("v-scx"),Rqt=()=>fm(Nqt);function Fqt(a,d){return Ome(a,null,{flush:"sync"})}function Jr(a,d,b){return Ome(a,d,b)}function Ome(a,d,b=Cc){const{immediate:m,deep:w,flush:$,once:p}=b,j=cf({},b),I=d&&m||!d&&$!=="post";let N;if(QO){if($==="sync"){const X=Rqt();N=X.__watcherHandles||(X.__watcherHandles=[])}else if(!I){const X=()=>{};return X.stop=am,X.resume=am,X.pause=am,X}}const P=Ih;j.call=(X,ee,K)=>wv(X,P,ee,K);let U=!1;$==="post"?j.scheduler=X=>{Ch(X,P&&P.suspense)}:$!=="sync"&&(U=!0,j.scheduler=(X,ee)=>{ee?X():Dme(X)}),j.augmentJob=X=>{d&&(X.flags|=4),U&&(X.flags|=2,P&&(X.id=P.uid,X.i=P))};const V=Pqt(a,d,j);return QO&&(N?N.push(V):I&&V()),V}function Bqt(a,d,b){const m=this.proxy,w=Bl(a)?a.includes(".")?jpt(m,a):()=>m[a]:a.bind(m,m);let $;vs(d)?$=d:($=d.handler,b=d);const p=fL(this),j=Ome(w,$.bind(m),b);return p(),j}function jpt(a,d){const b=d.split(".");return()=>{let m=a;for(let w=0;w<b.length&&m;w++)m=m[b[w]];return m}}const Ipt=Symbol("_vte"),Apt=a=>a.__isTeleport,RO=a=>a&&(a.disabled||a.disabled===""),Q0t=a=>a&&(a.defer||a.defer===""),Z0t=a=>typeof SVGElement<"u"&&a instanceof SVGElement,egt=a=>typeof MathMLElement=="function"&&a instanceof MathMLElement,Y2e=(a,d)=>{const b=a&&a.to;return Bl(b)?d?d(b):null:b},Tpt={name:"Teleport",__isTeleport:!0,process(a,d,b,m,w,$,p,j,I,N){const{mc:P,pc:U,pbc:V,o:{insert:X,querySelector:ee,createText:K,createComment:he}}=N,ke=RO(d.props);let{shapeFlag:ue,children:oe,dynamicChildren:re}=d;if(a==null){const ye=d.el=K(""),pe=d.anchor=K("");X(ye,b,m),X(pe,b,m);const be=(le,Ce)=>{ue&16&&P(oe,le,Ce,w,$,p,j,I)},se=()=>{const le=d.target=Y2e(d.props,ee),Ce=Q2e(le,d,K,X);le&&(p!=="svg"&&Z0t(le)?p="svg":p!=="mathml"&&egt(le)&&(p="mathml"),w&&w.isCE&&(w.ce._teleportTargets||(w.ce._teleportTargets=new Set)).add(le),ke||(be(le,Ce),zW(d,!1)))};ke&&(be(b,pe),zW(d,!0)),Q0t(d.props)?(d.el.__isMounted=!1,Ch(()=>{se(),delete d.el.__isMounted},$)):se()}else{if(Q0t(d.props)&&a.el.__isMounted===!1){Ch(()=>{Tpt.process(a,d,b,m,w,$,p,j,I,N)},$);return}d.el=a.el,d.targetStart=a.targetStart;const ye=d.anchor=a.anchor,pe=d.target=a.target,be=d.targetAnchor=a.targetAnchor,se=RO(a.props),le=se?b:pe,Ce=se?ye:be;if(p==="svg"||Z0t(pe)?p="svg":(p==="mathml"||egt(pe))&&(p="mathml"),re?(V(a.dynamicChildren,re,le,w,$,p,j),Fme(a,d,!0)):I||U(a,d,le,Ce,w,$,p,j,!1),ke)se?d.props&&a.props&&d.props.to!==a.props.to&&(d.props.to=a.props.to):SW(d,b,ye,N,1);else if((d.props&&d.props.to)!==(a.props&&a.props.to)){const Se=d.target=Y2e(d.props,ee);Se&&SW(d,Se,null,N,0)}else se&&SW(d,pe,be,N,1);zW(d,ke)}},remove(a,d,b,{um:m,o:{remove:w}},$){const{shapeFlag:p,children:j,anchor:I,targetStart:N,targetAnchor:P,target:U,props:V}=a;if(U&&(w(N),w(P)),$&&w(I),p&16){const X=$||!RO(V);for(let ee=0;ee<j.length;ee++){const K=j[ee];m(K,d,b,X,!!K.dynamicChildren)}}},move:SW,hydrate:Hqt};function SW(a,d,b,{o:{insert:m},m:w},$=2){$===0&&m(a.targetAnchor,d,b);const{el:p,anchor:j,shapeFlag:I,children:N,props:P}=a,U=$===2;if(U&&m(p,d,b),(!U||RO(P))&&I&16)for(let V=0;V<N.length;V++)w(N[V],d,b,2);U&&m(j,d,b)}function Hqt(a,d,b,m,w,$,{o:{nextSibling:p,parentNode:j,querySelector:I,insert:N,createText:P}},U){function V(he,ke){let ue=ke;for(;ue;){if(ue&&ue.nodeType===8){if(ue.data==="teleport start anchor")d.targetStart=ue;else if(ue.data==="teleport anchor"){d.targetAnchor=ue,he._lpa=d.targetAnchor&&p(d.targetAnchor);break}}ue=p(ue)}}function X(he,ke){ke.anchor=U(p(he),ke,j(he),b,m,w,$)}const ee=d.target=Y2e(d.props,I),K=RO(d.props);if(ee){const he=ee._lpa||ee.firstChild;d.shapeFlag&16&&(K?(X(a,d),V(ee,he),d.targetAnchor||Q2e(ee,d,P,N,j(a)===ee?a:null)):(d.anchor=p(a),V(ee,he),d.targetAnchor||Q2e(ee,d,P,N),U(he&&p(he),d,ee,b,m,w,$))),zW(d,K)}else K&&d.shapeFlag&16&&(X(a,d),d.targetStart=a,d.targetAnchor=p(a));return d.anchor&&p(d.anchor)}const Lme=Tpt;function zW(a,d){const b=a.ctx;if(b&&b.ut){let m,w;for(d?(m=a.el,w=a.anchor):(m=a.targetStart,w=a.targetAnchor);m&&m!==w;)m.nodeType===1&&m.setAttribute("data-v-owner",b.uid),m=m.nextSibling;b.ut()}}function Q2e(a,d,b,m,w=null){const $=d.targetStart=b(""),p=d.targetAnchor=b("");return $[Ipt]=p,a&&(m($,a,w),m(p,a,w)),p}const rm=Symbol("_leaveCb"),$O=Symbol("_enterCb");function Gqt(){const a={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return gl(()=>{a.isMounted=!0}),RX(()=>{a.isUnmounting=!0}),a}const ap=[Function,Array],Mpt={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ap,onEnter:ap,onAfterEnter:ap,onEnterCancelled:ap,onBeforeLeave:ap,onLeave:ap,onAfterLeave:ap,onLeaveCancelled:ap,onBeforeAppear:ap,onAppear:ap,onAfterAppear:ap,onAppearCancelled:ap},Ppt=a=>{const d=a.subTree;return d.component?Ppt(d.component):d},Jqt={name:"BaseTransition",props:Mpt,setup(a,{slots:d}){const b=hm(),m=Gqt();return()=>{const w=d.default&&Lpt(d.default(),!0);if(!w||!w.length)return;const $=Dpt(w),p=hc(a),{mode:j}=p;if(m.isLeaving)return _2e($);const I=tgt($);if(!I)return _2e($);let N=Z2e(I,p,m,b,U=>N=U);I.type!==jh&&XO(I,N);let P=b.subTree&&tgt(b.subTree);if(P&&P.type!==jh&&!e9(P,I)&&Ppt(b).type!==jh){let U=Z2e(P,p,m,b);if(XO(P,U),j==="out-in"&&I.type!==jh)return m.isLeaving=!0,U.afterLeave=()=>{m.isLeaving=!1,b.job.flags&8||b.update(),delete U.afterLeave,P=void 0},_2e($);j==="in-out"&&I.type!==jh?U.delayLeave=(V,X,ee)=>{const K=Opt(m,P);K[String(P.key)]=P,V[rm]=()=>{X(),V[rm]=void 0,delete N.delayedLeave,P=void 0},N.delayedLeave=()=>{ee(),delete N.delayedLeave,P=void 0}}:P=void 0}else P&&(P=void 0);return $}}};function Dpt(a){let d=a[0];if(a.length>1){for(const b of a)if(b.type!==jh){d=b;break}}return d}const Uqt=Jqt;function Opt(a,d){const{leavingVNodes:b}=a;let m=b.get(d.type);return m||(m=Object.create(null),b.set(d.type,m)),m}function Z2e(a,d,b,m,w){const{appear:$,mode:p,persisted:j=!1,onBeforeEnter:I,onEnter:N,onAfterEnter:P,onEnterCancelled:U,onBeforeLeave:V,onLeave:X,onAfterLeave:ee,onLeaveCancelled:K,onBeforeAppear:he,onAppear:ke,onAfterAppear:ue,onAppearCancelled:oe}=d,re=String(a.key),ye=Opt(b,a),pe=(le,Ce)=>{le&&wv(le,m,9,Ce)},be=(le,Ce)=>{const Se=Ce[1];pe(le,Ce),Mr(le)?le.every(te=>te.length<=1)&&Se():le.length<=1&&Se()},se={mode:p,persisted:j,beforeEnter(le){let Ce=I;if(!b.isMounted)if($)Ce=he||I;else return;le[rm]&&le[rm](!0);const Se=ye[re];Se&&e9(a,Se)&&Se.el[rm]&&Se.el[rm](),pe(Ce,[le])},enter(le){if(ye[re]===a)return;let Ce=N,Se=P,te=U;if(!b.isMounted)if($)Ce=ke||N,Se=ue||P,te=oe||U;else return;let q=!1;le[$O]=gt=>{q||(q=!0,gt?pe(te,[le]):pe(Se,[le]),se.delayedLeave&&se.delayedLeave(),le[$O]=void 0)};const He=le[$O].bind(null,!1);Ce?be(Ce,[le,He]):He()},leave(le,Ce){const Se=String(a.key);if(le[$O]&&le[$O](!0),b.isUnmounting)return Ce();pe(V,[le]);let te=!1;le[rm]=He=>{te||(te=!0,Ce(),He?pe(K,[le]):pe(ee,[le]),le[rm]=void 0,ye[Se]===a&&delete ye[Se])};const q=le[rm].bind(null,!1);ye[Se]=a,X?be(X,[le,q]):q()},clone(le){const Ce=Z2e(le,d,b,m,w);return w&&w(Ce),Ce}};return se}function _2e(a){if(LX(a))return a=Nk(a),a.children=null,a}function tgt(a){if(!LX(a))return Apt(a.type)&&a.children?Dpt(a.children):a;if(a.component)return a.component.subTree;const{shapeFlag:d,children:b}=a;if(b){if(d&16)return b[0];if(d&32&&vs(b.default))return b.default()}}function XO(a,d){a.shapeFlag&6&&a.component?(a.transition=d,XO(a.component.subTree,d)):a.shapeFlag&128?(a.ssContent.transition=d.clone(a.ssContent),a.ssFallback.transition=d.clone(a.ssFallback)):a.transition=d}function Lpt(a,d=!1,b){let m=[],w=0;for(let $=0;$<a.length;$++){let p=a[$];const j=b==null?p.key:String(b)+String(p.key!=null?p.key:$);p.type===sn?(p.patchFlag&128&&w++,m=m.concat(Lpt(p.children,d,j))):(d||p.type!==jh)&&m.push(j!=null?Nk(p,{key:j}):p)}if(w>1)for(let $=0;$<m.length;$++)m[$].patchFlag=-2;return m}function wr(a,d){return vs(a)?cf({name:a.name},d,{setup:a}):a}function Npt(a){a.ids=[a.ids[0]+a.ids[2]+++"-",0,0]}function ngt(a,d){let b;return!!((b=Object.getOwnPropertyDescriptor(a,d))&&!b.configurable)}const sX=new WeakMap;function FO(a,d,b,m,w=!1){if(Mr(a)){a.forEach((K,he)=>FO(K,d&&(Mr(d)?d[he]:d),b,m,w));return}if(GS(m)&&!w){m.shapeFlag&512&&m.type.__asyncResolved&&m.component.subTree.component&&FO(a,d,b,m.component.subTree);return}const $=m.shapeFlag&4?HX(m.component):m.el,p=w?null:$,{i:j,r:I}=a,N=d&&d.r,P=j.refs===Cc?j.refs={}:j.refs,U=j.setupState,V=hc(U),X=U===Cc?Wbt:K=>ngt(P,K)?!1:Nc(V,K),ee=(K,he)=>!(he&&ngt(P,he));if(N!=null&&N!==I){if(igt(d),Bl(N))P[N]=null,X(N)&&(U[N]=null);else if(Zc(N)){const K=d;ee(N,K.k)&&(N.value=null),K.k&&(P[K.k]=null)}}if(vs(I))aL(I,j,12,[p,P]);else{const K=Bl(I),he=Zc(I);if(K||he){const ke=()=>{if(a.f){const ue=K?X(I)?U[I]:P[I]:ee()||!a.k?I.value:P[a.k];if(w)Mr(ue)&&Sme(ue,$);else if(Mr(ue))ue.includes($)||ue.push($);else if(K)P[I]=[$],X(I)&&(U[I]=P[I]);else{const oe=[$];ee(I,a.k)&&(I.value=oe),a.k&&(P[a.k]=oe)}}else K?(P[I]=p,X(I)&&(U[I]=p)):he&&(ee(I,a.k)&&(I.value=p),a.k&&(P[a.k]=p))};if(p){const ue=()=>{ke(),sX.delete(a)};ue.id=-1,sX.set(a,ue),Ch(ue,b)}else igt(a),ke()}}}function igt(a){const d=sX.get(a);d&&(d.flags|=8,sX.delete(a))}TX().requestIdleCallback;TX().cancelIdleCallback;const GS=a=>!!a.type.__asyncLoader,LX=a=>a.type.__isKeepAlive;function zqt(a,d){Rpt(a,"a",d)}function qqt(a,d){Rpt(a,"da",d)}function Rpt(a,d,b=Ih){const m=a.__wdc||(a.__wdc=()=>{let w=b;for(;w;){if(w.isDeactivated)return;w=w.parent}return a()});if(NX(d,m,b),b){let w=b.parent;for(;w&&w.parent;)LX(w.parent.vnode)&&Vqt(m,d,b,w),w=w.parent}}function Vqt(a,d,b,m){const w=NX(d,a,m,!0);dp(()=>{Sme(m[d],w)},b)}function NX(a,d,b=Ih,m=!1){if(b){const w=b[a]||(b[a]=[]),$=d.__weh||(d.__weh=(...p)=>{A3();const j=fL(b),I=wv(d,b,a,p);return j(),T3(),I});return m?w.unshift($):w.push($),$}}const O3=a=>(d,b=Ih)=>{(!QO||a==="sp")&&NX(a,(...m)=>d(...m),b)},Fpt=O3("bm"),gl=O3("m"),Kqt=O3("bu"),Wqt=O3("u"),RX=O3("bum"),dp=O3("um"),Xqt=O3("sp"),Yqt=O3("rtg"),Qqt=O3("rtc");function Zqt(a,d=Ih){NX("ec",a,d)}const Bpt="components";function Hpt(a,d){return Jpt(Bpt,a,!0,d)||a}const Gpt=Symbol.for("v-ndc");function RS(a){return Bl(a)?Jpt(Bpt,a,!1)||a:a||Gpt}function Jpt(a,d,b=!0,m=!1){const w=Bd||Ih;if(w){const $=w.type;{const j=NVt($,!1);if(j&&(j===d||j===Mh(d)||j===IX(Mh(d))))return $}const p=rgt(w[a]||$[a],d)||rgt(w.appContext[a],d);return!p&&m?$:p}}function rgt(a,d){return a&&(a[d]||a[Mh(d)]||a[IX(Mh(d))])}function bi(a,d,b,m){let w;const $=b&&b[m],p=Mr(a);if(p||Bl(a)){const j=p&&o9(a);let I=!1,N=!1;j&&(I=!qg(a),N=M3(a),a=PX(a)),w=new Array(a.length);for(let P=0,U=a.length;P<U;P++)w[P]=d(I?N?KS(pv(a[P])):pv(a[P]):a[P],P,void 0,$&&$[P])}else if(typeof a=="number"){w=new Array(a);for(let j=0;j<a;j++)w[j]=d(j+1,j,void 0,$&&$[j])}else if(jc(a))if(a[Symbol.iterator])w=Array.from(a,(j,I)=>d(j,I,void 0,$&&$[I]));else{const j=Object.keys(a);w=new Array(j.length);for(let I=0,N=j.length;I<N;I++){const P=j[I];w[I]=d(a[P],P,I,$&&$[I])}}else w=[];return b&&(b[m]=w),w}function Fl(a,d,b={},m,w){if(Bd.ce||Bd.parent&&GS(Bd.parent)&&Bd.parent.ce){const N=Object.keys(b).length>0;return d!=="default"&&(b.name=d),R(),Ts(sn,null,[xr("slot",b,m&&m())],N?-2:64)}let $=a[d];$&&$._c&&($._d=!1),R();const p=$&&Upt($(b)),j=b.key||p&&p.key,I=Ts(sn,{key:(j&&!bv(j)?j:`_${d}`)+(!p&&m?"_fb":"")},p||(m?m():[]),p&&a._===1?64:-2);return I.scopeId&&(I.slotScopeIds=[I.scopeId+"-s"]),$&&$._c&&($._d=!0),I}function Upt(a){return a.some(d=>YO(d)?!(d.type===jh||d.type===sn&&!Upt(d.children)):!0)?a:null}const eme=a=>a?dwt(a)?HX(a):eme(a.parent):null,BO=cf(Object.create(null),{$:a=>a,$el:a=>a.vnode.el,$data:a=>a.data,$props:a=>a.props,$attrs:a=>a.attrs,$slots:a=>a.slots,$refs:a=>a.refs,$parent:a=>eme(a.parent),$root:a=>eme(a.root),$host:a=>a.ce,$emit:a=>a.emit,$options:a=>Vpt(a),$forceUpdate:a=>a.f||(a.f=()=>{Dme(a.update)}),$nextTick:a=>a.n||(a.n=_1.bind(a.proxy)),$watch:a=>Bqt.bind(a)}),j2e=(a,d)=>a!==Cc&&!a.__isScriptSetup&&Nc(a,d),eVt={get({_:a},d){if(d==="__v_skip")return!0;const{ctx:b,setupState:m,data:w,props:$,accessCache:p,type:j,appContext:I}=a;if(d[0]!=="$"){const V=p[d];if(V!==void 0)switch(V){case 1:return m[d];case 2:return w[d];case 4:return b[d];case 3:return $[d]}else{if(j2e(m,d))return p[d]=1,m[d];if(w!==Cc&&Nc(w,d))return p[d]=2,w[d];if(Nc($,d))return p[d]=3,$[d];if(b!==Cc&&Nc(b,d))return p[d]=4,b[d];tme&&(p[d]=0)}}const N=BO[d];let P,U;if(N)return d==="$attrs"&&_h(a.attrs,"get",""),N(a);if((P=j.__cssModules)&&(P=P[d]))return P;if(b!==Cc&&Nc(b,d))return p[d]=4,b[d];if(U=I.config.globalProperties,Nc(U,d))return U[d]},set({_:a},d,b){const{data:m,setupState:w,ctx:$}=a;return j2e(w,d)?(w[d]=b,!0):m!==Cc&&Nc(m,d)?(m[d]=b,!0):Nc(a.props,d)||d[0]==="$"&&d.slice(1)in a?!1:($[d]=b,!0)},has({_:{data:a,setupState:d,accessCache:b,ctx:m,appContext:w,props:$,type:p}},j){let I;return!!(b[j]||a!==Cc&&j[0]!=="$"&&Nc(a,j)||j2e(d,j)||Nc($,j)||Nc(m,j)||Nc(BO,j)||Nc(w.config.globalProperties,j)||(I=p.__cssModules)&&I[j])},defineProperty(a,d,b){return b.get!=null?a._.accessCache[d]=0:Nc(b,"value")&&this.set(a,d,b.value,null),Reflect.defineProperty(a,d,b)}};function tVt(){return zpt().slots}function nVt(){return zpt().attrs}function zpt(a){const d=hm();return d.setupContext||(d.setupContext=gwt(d))}function oX(a){return Mr(a)?a.reduce((d,b)=>(d[b]=null,d),{}):a}function cX(a,d){return!a||!d?a||d:Mr(a)&&Mr(d)?a.concat(d):cf({},oX(a),oX(d))}function iVt(a,d){const b={};for(const m in a)d.includes(m)||Object.defineProperty(b,m,{enumerable:!0,get:()=>a[m]});return b}let tme=!0;function rVt(a){const d=Vpt(a),b=a.proxy,m=a.ctx;tme=!1,d.beforeCreate&&sgt(d.beforeCreate,a,"bc");const{data:w,computed:$,methods:p,watch:j,provide:I,inject:N,created:P,beforeMount:U,mounted:V,beforeUpdate:X,updated:ee,activated:K,deactivated:he,beforeDestroy:ke,beforeUnmount:ue,destroyed:oe,unmounted:re,render:ye,renderTracked:pe,renderTriggered:be,errorCaptured:se,serverPrefetch:le,expose:Ce,inheritAttrs:Se,components:te,directives:q,filters:He}=d;if(N&&sVt(N,m,null),p)for(const jt in p){const Jt=p[jt];vs(Jt)&&(m[jt]=Jt.bind(b))}if(w){const jt=w.call(b,b);jc(jt)&&(a.data=i_(jt))}if(tme=!0,$)for(const jt in $){const Jt=$[jt],xe=vs(Jt)?Jt.bind(b,b):vs(Jt.get)?Jt.get.bind(b,b):am,Pe=!vs(Jt)&&vs(Jt.set)?Jt.set.bind(b):am,Je=En({get:xe,set:Pe});Object.defineProperty(m,jt,{enumerable:!0,configurable:!0,get:()=>Je.value,set:Bt=>Je.value=Bt})}if(j)for(const jt in j)qpt(j[jt],m,b,jt);if(I){const jt=vs(I)?I.call(b):I;Reflect.ownKeys(jt).forEach(Jt=>{l9(Jt,jt[Jt])})}P&&sgt(P,a,"c");function ze(jt,Jt){Mr(Jt)?Jt.forEach(xe=>jt(xe.bind(b))):Jt&&jt(Jt.bind(b))}if(ze(Fpt,U),ze(gl,V),ze(Kqt,X),ze(Wqt,ee),ze(zqt,K),ze(qqt,he),ze(Zqt,se),ze(Qqt,pe),ze(Yqt,be),ze(RX,ue),ze(dp,re),ze(Xqt,le),Mr(Ce))if(Ce.length){const jt=a.exposed||(a.exposed={});Ce.forEach(Jt=>{Object.defineProperty(jt,Jt,{get:()=>b[Jt],set:xe=>b[Jt]=xe,enumerable:!0})})}else a.exposed||(a.exposed={});ye&&a.render===am&&(a.render=ye),Se!=null&&(a.inheritAttrs=Se),te&&(a.components=te),q&&(a.directives=q),le&&Npt(a)}function sVt(a,d,b=am){Mr(a)&&(a=nme(a));for(const m in a){const w=a[m];let $;jc(w)?"default"in w?$=fm(w.from||m,w.default,!0):$=fm(w.from||m):$=fm(w),Zc($)?Object.defineProperty(d,m,{enumerable:!0,configurable:!0,get:()=>$.value,set:p=>$.value=p}):d[m]=$}}function sgt(a,d,b){wv(Mr(a)?a.map(m=>m.bind(d.proxy)):a.bind(d.proxy),d,b)}function qpt(a,d,b,m){let w=m.includes(".")?jpt(b,m):()=>b[m];if(Bl(a)){const $=d[a];vs($)&&Jr(w,$)}else if(vs(a))Jr(w,a.bind(b));else if(jc(a))if(Mr(a))a.forEach($=>qpt($,d,b,m));else{const $=vs(a.handler)?a.handler.bind(b):d[a.handler];vs($)&&Jr(w,$,a)}}function Vpt(a){const d=a.type,{mixins:b,extends:m}=d,{mixins:w,optionsCache:$,config:{optionMergeStrategies:p}}=a.appContext,j=$.get(d);let I;return j?I=j:!w.length&&!b&&!m?I=d:(I={},w.length&&w.forEach(N=>uX(I,N,p,!0)),uX(I,d,p)),jc(d)&&$.set(d,I),I}function uX(a,d,b,m=!1){const{mixins:w,extends:$}=d;$&&uX(a,$,b,!0),w&&w.forEach(p=>uX(a,p,b,!0));for(const p in d)if(!(m&&p==="expose")){const j=oVt[p]||b&&b[p];a[p]=j?j(a[p],d[p]):d[p]}return a}const oVt={data:ogt,props:cgt,emits:cgt,methods:AO,computed:AO,beforeCreate:$1,created:$1,beforeMount:$1,mounted:$1,beforeUpdate:$1,updated:$1,beforeDestroy:$1,beforeUnmount:$1,destroyed:$1,unmounted:$1,activated:$1,deactivated:$1,errorCaptured:$1,serverPrefetch:$1,components:AO,directives:AO,watch:uVt,provide:ogt,inject:cVt};function ogt(a,d){return d?a?function(){return cf(vs(a)?a.call(this,this):a,vs(d)?d.call(this,this):d)}:d:a}function cVt(a,d){return AO(nme(a),nme(d))}function nme(a){if(Mr(a)){const d={};for(let b=0;b<a.length;b++)d[a[b]]=a[b];return d}return a}function $1(a,d){return a?[...new Set([].concat(a,d))]:d}function AO(a,d){return a?cf(Object.create(null),a,d):d}function cgt(a,d){return a?Mr(a)&&Mr(d)?[...new Set([...a,...d])]:cf(Object.create(null),oX(a),oX(d??{})):d}function uVt(a,d){if(!a)return d;if(!d)return a;const b=cf(Object.create(null),a);for(const m in d)b[m]=$1(a[m],d[m]);return b}function Kpt(){return{app:null,config:{isNativeTag:Wbt,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 lVt=0;function aVt(a,d){return function(m,w=null){vs(m)||(m=cf({},m)),w!=null&&!jc(w)&&(w=null);const $=Kpt(),p=new WeakSet,j=[];let I=!1;const N=$.app={_uid:lVt++,_component:m,_props:w,_container:null,_context:$,_instance:null,version:BVt,get config(){return $.config},set config(P){},use(P,...U){return p.has(P)||(P&&vs(P.install)?(p.add(P),P.install(N,...U)):vs(P)&&(p.add(P),P(N,...U))),N},mixin(P){return $.mixins.includes(P)||$.mixins.push(P),N},component(P,U){return U?($.components[P]=U,N):$.components[P]},directive(P,U){return U?($.directives[P]=U,N):$.directives[P]},mount(P,U,V){if(!I){const X=N._ceVNode||xr(m,w);return X.appContext=$,V===!0?V="svg":V===!1&&(V=void 0),a(X,P,V),I=!0,N._container=P,P.__vue_app__=N,HX(X.component)}},onUnmount(P){j.push(P)},unmount(){I&&(wv(j,N._instance,16),a(null,N._container),delete N._container.__vue_app__)},provide(P,U){return $.provides[P]=U,N},runWithContext(P){const U=JS;JS=N;try{return P()}finally{JS=U}}};return N}}let JS=null;function ime(a,d,b=Cc){const m=hm(),w=Mh(d),$=D3(d),p=Wpt(a,w),j=kpt((I,N)=>{let P,U=Cc,V;return Fqt(()=>{const X=a[w];Fd(P,X)&&(P=X,N())}),{get(){return I(),b.get?b.get(P):P},set(X){const ee=b.set?b.set(X):X;if(!Fd(ee,P)&&!(U!==Cc&&Fd(X,U)))return;const K=m.vnode.props;K&&(d in K||w in K||$ in K)&&(`onUpdate:${d}`in K||`onUpdate:${w}`in K||`onUpdate:${$}`in K)||(P=X,N()),m.emit(`update:${d}`,ee),Fd(X,ee)&&Fd(X,U)&&!Fd(ee,V)&&N(),U=X,V=ee}}});return j[Symbol.iterator]=()=>{let I=0;return{next(){return I<2?{value:I++?p||Cc:j,done:!1}:{done:!0}}}},j}const Wpt=(a,d)=>d==="modelValue"||d==="model-value"?a.modelModifiers:a[`${d}Modifiers`]||a[`${Mh(d)}Modifiers`]||a[`${D3(d)}Modifiers`];function fVt(a,d,...b){if(a.isUnmounted)return;const m=a.vnode.props||Cc;let w=b;const $=d.startsWith("update:"),p=$&&Wpt(m,d.slice(7));p&&(p.trim&&(w=b.map(P=>Bl(P)?P.trim():P)),p.number&&(w=b.map(AX)));let j,I=m[j=x2e(d)]||m[j=x2e(Mh(d))];!I&&$&&(I=m[j=x2e(D3(d))]),I&&wv(I,a,6,w);const N=m[j+"Once"];if(N){if(!a.emitted)a.emitted={};else if(a.emitted[j])return;a.emitted[j]=!0,wv(N,a,6,w)}}const dVt=new WeakMap;function Xpt(a,d,b=!1){const m=b?dVt:d.emitsCache,w=m.get(a);if(w!==void 0)return w;const $=a.emits;let p={},j=!1;if(!vs(a)){const I=N=>{const P=Xpt(N,d,!0);P&&(j=!0,cf(p,P))};!b&&d.mixins.length&&d.mixins.forEach(I),a.extends&&I(a.extends),a.mixins&&a.mixins.forEach(I)}return!$&&!j?(jc(a)&&m.set(a,null),null):(Mr($)?$.forEach(I=>p[I]=null):cf(p,$),jc(a)&&m.set(a,p),p)}function FX(a,d){return!a||!SX(d)?!1:(d=d.slice(2).replace(/Once$/,""),Nc(a,d[0].toLowerCase()+d.slice(1))||Nc(a,D3(d))||Nc(a,d))}function ugt(a){const{type:d,vnode:b,proxy:m,withProxy:w,propsOptions:[$],slots:p,attrs:j,emit:I,render:N,renderCache:P,props:U,data:V,setupState:X,ctx:ee,inheritAttrs:K}=a,he=rX(a);let ke,ue;try{if(b.shapeFlag&4){const re=w||m,ye=re;ke=cm(N.call(ye,re,P,U,X,V,ee)),ue=j}else{const re=d;ke=cm(re.length>1?re(U,{attrs:j,slots:p,emit:I}):re(U,null)),ue=d.props?j:hVt(j)}}catch(re){HO.length=0,OX(re,a,1),ke=xr(jh)}let oe=ke;if(ue&&K!==!1){const re=Object.keys(ue),{shapeFlag:ye}=oe;re.length&&ye&7&&($&&re.some(Cme)&&(ue=gVt(ue,$)),oe=Nk(oe,ue,!1,!0))}return b.dirs&&(oe=Nk(oe,null,!1,!0),oe.dirs=oe.dirs?oe.dirs.concat(b.dirs):b.dirs),b.transition&&XO(oe,b.transition),ke=oe,rX(he),ke}const hVt=a=>{let d;for(const b in a)(b==="class"||b==="style"||SX(b))&&((d||(d={}))[b]=a[b]);return d},gVt=(a,d)=>{const b={};for(const m in a)(!Cme(m)||!(m.slice(9)in d))&&(b[m]=a[m]);return b};function bVt(a,d,b){const{props:m,children:w,component:$}=a,{props:p,children:j,patchFlag:I}=d,N=$.emitsOptions;if(d.dirs||d.transition)return!0;if(b&&I>=0){if(I&1024)return!0;if(I&16)return m?lgt(m,p,N):!!p;if(I&8){const P=d.dynamicProps;for(let U=0;U<P.length;U++){const V=P[U];if(Ypt(p,m,V)&&!FX(N,V))return!0}}}else return(w||j)&&(!j||!j.$stable)?!0:m===p?!1:m?p?lgt(m,p,N):!0:!!p;return!1}function lgt(a,d,b){const m=Object.keys(d);if(m.length!==Object.keys(a).length)return!0;for(let w=0;w<m.length;w++){const $=m[w];if(Ypt(d,a,$)&&!FX(b,$))return!0}return!1}function Ypt(a,d,b){const m=a[b],w=d[b];return b==="style"&&jc(m)&&jc(w)?!Lk(m,w):m!==w}function pVt({vnode:a,parent:d},b){for(;d;){const m=d.subTree;if(m.suspense&&m.suspense.activeBranch===a&&(m.el=a.el),m===a)(a=d.vnode).el=b,d=d.parent;else break}}const Qpt={},Zpt=()=>Object.create(Qpt),ewt=a=>Object.getPrototypeOf(a)===Qpt;function wVt(a,d,b,m=!1){const w={},$=Zpt();a.propsDefaults=Object.create(null),twt(a,d,w,$);for(const p in a.propsOptions[0])p in w||(w[p]=void 0);b?a.props=m?w:$qt(w):a.type.props?a.props=w:a.props=$,a.attrs=$}function vVt(a,d,b,m){const{props:w,attrs:$,vnode:{patchFlag:p}}=a,j=hc(w),[I]=a.propsOptions;let N=!1;if((m||p>0)&&!(p&16)){if(p&8){const P=a.vnode.dynamicProps;for(let U=0;U<P.length;U++){let V=P[U];if(FX(a.emitsOptions,V))continue;const X=d[V];if(I)if(Nc($,V))X!==$[V]&&($[V]=X,N=!0);else{const ee=Mh(V);w[ee]=rme(I,j,ee,X,a,!1)}else X!==$[V]&&($[V]=X,N=!0)}}}else{twt(a,d,w,$)&&(N=!0);let P;for(const U in j)(!d||!Nc(d,U)&&((P=D3(U))===U||!Nc(d,P)))&&(I?b&&(b[U]!==void 0||b[P]!==void 0)&&(w[U]=rme(I,j,U,void 0,a,!0)):delete w[U]);if($!==j)for(const U in $)(!d||!Nc(d,U))&&(delete $[U],N=!0)}N&&$3(a.attrs,"set","")}function twt(a,d,b,m){const[w,$]=a.propsOptions;let p=!1,j;if(d)for(let I in d){if(OO(I))continue;const N=d[I];let P;w&&Nc(w,P=Mh(I))?!$||!$.includes(P)?b[P]=N:(j||(j={}))[P]=N:FX(a.emitsOptions,I)||(!(I in m)||N!==m[I])&&(m[I]=N,p=!0)}if($){const I=hc(b),N=j||Cc;for(let P=0;P<$.length;P++){const U=$[P];b[U]=rme(w,I,U,N[U],a,!Nc(N,U))}}return p}function rme(a,d,b,m,w,$){const p=a[b];if(p!=null){const j=Nc(p,"default");if(j&&m===void 0){const I=p.default;if(p.type!==Function&&!p.skipFactory&&vs(I)){const{propsDefaults:N}=w;if(b in N)m=N[b];else{const P=fL(w);m=N[b]=I.call(null,d),P()}}else m=I;w.ce&&w.ce._setProp(b,m)}p[0]&&($&&!j?m=!1:p[1]&&(m===""||m===D3(b))&&(m=!0))}return m}const mVt=new WeakMap;function nwt(a,d,b=!1){const m=b?mVt:d.propsCache,w=m.get(a);if(w)return w;const $=a.props,p={},j=[];let I=!1;if(!vs(a)){const P=U=>{I=!0;const[V,X]=nwt(U,d,!0);cf(p,V),X&&j.push(...X)};!b&&d.mixins.length&&d.mixins.forEach(P),a.extends&&P(a.extends),a.mixins&&a.mixins.forEach(P)}if(!$&&!I)return jc(a)&&m.set(a,FS),FS;if(Mr($))for(let P=0;P<$.length;P++){const U=Mh($[P]);agt(U)&&(p[U]=Cc)}else if($)for(const P in $){const U=Mh(P);if(agt(U)){const V=$[P],X=p[U]=Mr(V)||vs(V)?{type:V}:cf({},V),ee=X.type;let K=!1,he=!0;if(Mr(ee))for(let ke=0;ke<ee.length;++ke){const ue=ee[ke],oe=vs(ue)&&ue.name;if(oe==="Boolean"){K=!0;break}else oe==="String"&&(he=!1)}else K=vs(ee)&&ee.name==="Boolean";X[0]=K,X[1]=he,(K||Nc(X,"default"))&&j.push(U)}}const N=[p,j];return jc(a)&&m.set(a,N),N}function agt(a){return a[0]!=="$"&&!OO(a)}const Nme=a=>a==="_"||a==="_ctx"||a==="$stable",Rme=a=>Mr(a)?a.map(cm):[cm(a)],yVt=(a,d,b)=>{if(d._n)return d;const m=zg((...w)=>Rme(d(...w)),b);return m._c=!1,m},iwt=(a,d,b)=>{const m=a._ctx;for(const w in a){if(Nme(w))continue;const $=a[w];if(vs($))d[w]=yVt(w,$,m);else if($!=null){const p=Rme($);d[w]=()=>p}}},rwt=(a,d)=>{const b=Rme(d);a.slots.default=()=>b},swt=(a,d,b)=>{for(const m in d)(b||!Nme(m))&&(a[m]=d[m])},kVt=(a,d,b)=>{const m=a.slots=Zpt();if(a.vnode.shapeFlag&32){const w=d._;w?(swt(m,d,b),b&&Zbt(m,"_",w,!0)):iwt(d,m)}else d&&rwt(a,d)},xVt=(a,d,b)=>{const{vnode:m,slots:w}=a;let $=!0,p=Cc;if(m.shapeFlag&32){const j=d._;j?b&&j===1?$=!1:swt(w,d,b):($=!d.$stable,iwt(d,w)),p=d}else d&&(rwt(a,d),p={default:1});if($)for(const j in w)!Nme(j)&&p[j]==null&&delete w[j]},Ch=_Vt;function $Vt(a){return EVt(a)}function EVt(a,d){const b=TX();b.__VUE__=!0;const{insert:m,remove:w,patchProp:$,createElement:p,createText:j,createComment:I,setText:N,setElementText:P,parentNode:U,nextSibling:V,setScopeId:X=am,insertStaticContent:ee}=a,K=(Ne,Xe,we,_e=null,Fe=null,Qe=null,it=void 0,Ct=null,Ge=!!Xe.dynamicChildren)=>{if(Ne===Xe)return;Ne&&!e9(Ne,Xe)&&(_e=wi(Ne),Bt(Ne,Fe,Qe,!0),Ne=null),Xe.patchFlag===-2&&(Ge=!1,Xe.dynamicChildren=null);const{type:Ze,ref:mn,shapeFlag:kn}=Xe;switch(Ze){case BX:he(Ne,Xe,we,_e);break;case jh:ke(Ne,Xe,we,_e);break;case qW:Ne==null&&ue(Xe,we,_e,it);break;case sn:te(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge);break;default:kn&1?ye(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge):kn&6?q(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge):(kn&64||kn&128)&&Ze.process(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge,on)}mn!=null&&Fe?FO(mn,Ne&&Ne.ref,Qe,Xe||Ne,!Xe):mn==null&&Ne&&Ne.ref!=null&&FO(Ne.ref,null,Qe,Ne,!0)},he=(Ne,Xe,we,_e)=>{if(Ne==null)m(Xe.el=j(Xe.children),we,_e);else{const Fe=Xe.el=Ne.el;Xe.children!==Ne.children&&N(Fe,Xe.children)}},ke=(Ne,Xe,we,_e)=>{Ne==null?m(Xe.el=I(Xe.children||""),we,_e):Xe.el=Ne.el},ue=(Ne,Xe,we,_e)=>{[Ne.el,Ne.anchor]=ee(Ne.children,Xe,we,_e,Ne.el,Ne.anchor)},oe=({el:Ne,anchor:Xe},we,_e)=>{let Fe;for(;Ne&&Ne!==Xe;)Fe=V(Ne),m(Ne,we,_e),Ne=Fe;m(Xe,we,_e)},re=({el:Ne,anchor:Xe})=>{let we;for(;Ne&&Ne!==Xe;)we=V(Ne),w(Ne),Ne=we;w(Xe)},ye=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{if(Xe.type==="svg"?it="svg":Xe.type==="math"&&(it="mathml"),Ne==null)pe(Xe,we,_e,Fe,Qe,it,Ct,Ge);else{const Ze=Ne.el&&Ne.el._isVueCE?Ne.el:null;try{Ze&&Ze._beginPatch(),le(Ne,Xe,Fe,Qe,it,Ct,Ge)}finally{Ze&&Ze._endPatch()}}},pe=(Ne,Xe,we,_e,Fe,Qe,it,Ct)=>{let Ge,Ze;const{props:mn,shapeFlag:kn,transition:ui,dirs:Si}=Ne;if(Ge=Ne.el=p(Ne.type,Qe,mn&&mn.is,mn),kn&8?P(Ge,Ne.children):kn&16&&se(Ne.children,Ge,null,_e,Fe,I2e(Ne,Qe),it,Ct),Si&&W8(Ne,null,_e,"created"),be(Ge,Ne,Ne.scopeId,it,_e),mn){for(const qs in mn)qs!=="value"&&!OO(qs)&&$(Ge,qs,null,mn[qs],Qe,_e);"value"in mn&&$(Ge,"value",null,mn.value,Qe),(Ze=mn.onVnodeBeforeMount)&&tm(Ze,_e,Ne)}Si&&W8(Ne,null,_e,"beforeMount");const ds=CVt(Fe,ui);ds&&ui.beforeEnter(Ge),m(Ge,Xe,we),((Ze=mn&&mn.onVnodeMounted)||ds||Si)&&Ch(()=>{Ze&&tm(Ze,_e,Ne),ds&&ui.enter(Ge),Si&&W8(Ne,null,_e,"mounted")},Fe)},be=(Ne,Xe,we,_e,Fe)=>{if(we&&X(Ne,we),_e)for(let Qe=0;Qe<_e.length;Qe++)X(Ne,_e[Qe]);if(Fe){let Qe=Fe.subTree;if(Xe===Qe||uwt(Qe.type)&&(Qe.ssContent===Xe||Qe.ssFallback===Xe)){const it=Fe.vnode;be(Ne,it,it.scopeId,it.slotScopeIds,Fe.parent)}}},se=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge=0)=>{for(let Ze=Ge;Ze<Ne.length;Ze++){const mn=Ne[Ze]=Ct?k3(Ne[Ze]):cm(Ne[Ze]);K(null,mn,Xe,we,_e,Fe,Qe,it,Ct)}},le=(Ne,Xe,we,_e,Fe,Qe,it)=>{const Ct=Xe.el=Ne.el;let{patchFlag:Ge,dynamicChildren:Ze,dirs:mn}=Xe;Ge|=Ne.patchFlag&16;const kn=Ne.props||Cc,ui=Xe.props||Cc;let Si;if(we&&X8(we,!1),(Si=ui.onVnodeBeforeUpdate)&&tm(Si,we,Xe,Ne),mn&&W8(Xe,Ne,we,"beforeUpdate"),we&&X8(we,!0),(kn.innerHTML&&ui.innerHTML==null||kn.textContent&&ui.textContent==null)&&P(Ct,""),Ze?Ce(Ne.dynamicChildren,Ze,Ct,we,_e,I2e(Xe,Fe),Qe):it||Jt(Ne,Xe,Ct,null,we,_e,I2e(Xe,Fe),Qe,!1),Ge>0){if(Ge&16)Se(Ct,kn,ui,we,Fe);else if(Ge&2&&kn.class!==ui.class&&$(Ct,"class",null,ui.class,Fe),Ge&4&&$(Ct,"style",kn.style,ui.style,Fe),Ge&8){const ds=Xe.dynamicProps;for(let qs=0;qs<ds.length;qs++){const Ro=ds[qs],uf=kn[Ro],lf=ui[Ro];(lf!==uf||Ro==="value")&&$(Ct,Ro,uf,lf,Fe,we)}}Ge&1&&Ne.children!==Xe.children&&P(Ct,Xe.children)}else!it&&Ze==null&&Se(Ct,kn,ui,we,Fe);((Si=ui.onVnodeUpdated)||mn)&&Ch(()=>{Si&&tm(Si,we,Xe,Ne),mn&&W8(Xe,Ne,we,"updated")},_e)},Ce=(Ne,Xe,we,_e,Fe,Qe,it)=>{for(let Ct=0;Ct<Xe.length;Ct++){const Ge=Ne[Ct],Ze=Xe[Ct],mn=Ge.el&&(Ge.type===sn||!e9(Ge,Ze)||Ge.shapeFlag&198)?U(Ge.el):we;K(Ge,Ze,mn,null,_e,Fe,Qe,it,!0)}},Se=(Ne,Xe,we,_e,Fe)=>{if(Xe!==we){if(Xe!==Cc)for(const Qe in Xe)!OO(Qe)&&!(Qe in we)&&$(Ne,Qe,Xe[Qe],null,Fe,_e);for(const Qe in we){if(OO(Qe))continue;const it=we[Qe],Ct=Xe[Qe];it!==Ct&&Qe!=="value"&&$(Ne,Qe,Ct,it,Fe,_e)}"value"in we&&$(Ne,"value",Xe.value,we.value,Fe)}},te=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{const Ze=Xe.el=Ne?Ne.el:j(""),mn=Xe.anchor=Ne?Ne.anchor:j("");let{patchFlag:kn,dynamicChildren:ui,slotScopeIds:Si}=Xe;Si&&(Ct=Ct?Ct.concat(Si):Si),Ne==null?(m(Ze,we,_e),m(mn,we,_e),se(Xe.children||[],we,mn,Fe,Qe,it,Ct,Ge)):kn>0&&kn&64&&ui&&Ne.dynamicChildren&&Ne.dynamicChildren.length===ui.length?(Ce(Ne.dynamicChildren,ui,we,Fe,Qe,it,Ct),(Xe.key!=null||Fe&&Xe===Fe.subTree)&&Fme(Ne,Xe,!0)):Jt(Ne,Xe,we,mn,Fe,Qe,it,Ct,Ge)},q=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{Xe.slotScopeIds=Ct,Ne==null?Xe.shapeFlag&512?Fe.ctx.activate(Xe,we,_e,it,Ge):He(Xe,we,_e,Fe,Qe,it,Ge):gt(Ne,Xe,Ge)},He=(Ne,Xe,we,_e,Fe,Qe,it)=>{const Ct=Ne.component=PVt(Ne,_e,Fe);if(LX(Ne)&&(Ct.ctx.renderer=on),DVt(Ct,!1,it),Ct.asyncDep){if(Fe&&Fe.registerDep(Ct,ze,it),!Ne.el){const Ge=Ct.subTree=xr(jh);ke(null,Ge,Xe,we),Ne.placeholder=Ge.el}}else ze(Ct,Ne,Xe,we,Fe,Qe,it)},gt=(Ne,Xe,we)=>{const _e=Xe.component=Ne.component;if(bVt(Ne,Xe,we))if(_e.asyncDep&&!_e.asyncResolved){jt(_e,Xe,we);return}else _e.next=Xe,_e.update();else Xe.el=Ne.el,_e.vnode=Xe},ze=(Ne,Xe,we,_e,Fe,Qe,it)=>{const Ct=()=>{if(Ne.isMounted){let{next:kn,bu:ui,u:Si,parent:ds,vnode:qs}=Ne;{const O0=owt(Ne);if(O0){kn&&(kn.el=qs.el,jt(Ne,kn,it)),O0.asyncDep.then(()=>{Ch(()=>{Ne.isUnmounted||Ze()},Fe)});return}}let Ro=kn,uf;X8(Ne,!1),kn?(kn.el=qs.el,jt(Ne,kn,it)):kn=qs,ui&&JW(ui),(uf=kn.props&&kn.props.onVnodeBeforeUpdate)&&tm(uf,ds,kn,qs),X8(Ne,!0);const lf=ugt(Ne),D0=Ne.subTree;Ne.subTree=lf,K(D0,lf,U(D0.el),wi(D0),Ne,Fe,Qe),kn.el=lf.el,Ro===null&&pVt(Ne,lf.el),Si&&Ch(Si,Fe),(uf=kn.props&&kn.props.onVnodeUpdated)&&Ch(()=>tm(uf,ds,kn,qs),Fe)}else{let kn;const{el:ui,props:Si}=Xe,{bm:ds,m:qs,parent:Ro,root:uf,type:lf}=Ne,D0=GS(Xe);X8(Ne,!1),ds&&JW(ds),!D0&&(kn=Si&&Si.onVnodeBeforeMount)&&tm(kn,Ro,Xe),X8(Ne,!0);{uf.ce&&uf.ce._hasShadowRoot()&&uf.ce._injectChildStyle(lf,Ne.parent?Ne.parent.type:void 0);const O0=Ne.subTree=ugt(Ne);K(null,O0,we,_e,Ne,Fe,Qe),Xe.el=O0.el}if(qs&&Ch(qs,Fe),!D0&&(kn=Si&&Si.onVnodeMounted)){const O0=Xe;Ch(()=>tm(kn,Ro,O0),Fe)}(Xe.shapeFlag&256||Ro&&GS(Ro.vnode)&&Ro.vnode.shapeFlag&256)&&Ne.a&&Ch(Ne.a,Fe),Ne.isMounted=!0,Xe=we=_e=null}};Ne.scope.on();const Ge=Ne.effect=new spt(Ct);Ne.scope.off();const Ze=Ne.update=Ge.run.bind(Ge),mn=Ne.job=Ge.runIfDirty.bind(Ge);mn.i=Ne,mn.id=Ne.uid,Ge.scheduler=()=>Dme(mn),X8(Ne,!0),Ze()},jt=(Ne,Xe,we)=>{Xe.component=Ne;const _e=Ne.vnode.props;Ne.vnode=Xe,Ne.next=null,vVt(Ne,Xe.props,_e,we),xVt(Ne,Xe.children,we),A3(),Y0t(Ne),T3()},Jt=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge=!1)=>{const Ze=Ne&&Ne.children,mn=Ne?Ne.shapeFlag:0,kn=Xe.children,{patchFlag:ui,shapeFlag:Si}=Xe;if(ui>0){if(ui&128){Pe(Ze,kn,we,_e,Fe,Qe,it,Ct,Ge);return}else if(ui&256){xe(Ze,kn,we,_e,Fe,Qe,it,Ct,Ge);return}}Si&8?(mn&16&&ln(Ze,Fe,Qe),kn!==Ze&&P(we,kn)):mn&16?Si&16?Pe(Ze,kn,we,_e,Fe,Qe,it,Ct,Ge):ln(Ze,Fe,Qe,!0):(mn&8&&P(we,""),Si&16&&se(kn,we,_e,Fe,Qe,it,Ct,Ge))},xe=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{Ne=Ne||FS,Xe=Xe||FS;const Ze=Ne.length,mn=Xe.length,kn=Math.min(Ze,mn);let ui;for(ui=0;ui<kn;ui++){const Si=Xe[ui]=Ge?k3(Xe[ui]):cm(Xe[ui]);K(Ne[ui],Si,we,null,Fe,Qe,it,Ct,Ge)}Ze>mn?ln(Ne,Fe,Qe,!0,!1,kn):se(Xe,we,_e,Fe,Qe,it,Ct,Ge,kn)},Pe=(Ne,Xe,we,_e,Fe,Qe,it,Ct,Ge)=>{let Ze=0;const mn=Xe.length;let kn=Ne.length-1,ui=mn-1;for(;Ze<=kn&&Ze<=ui;){const Si=Ne[Ze],ds=Xe[Ze]=Ge?k3(Xe[Ze]):cm(Xe[Ze]);if(e9(Si,ds))K(Si,ds,we,null,Fe,Qe,it,Ct,Ge);else break;Ze++}for(;Ze<=kn&&Ze<=ui;){const Si=Ne[kn],ds=Xe[ui]=Ge?k3(Xe[ui]):cm(Xe[ui]);if(e9(Si,ds))K(Si,ds,we,null,Fe,Qe,it,Ct,Ge);else break;kn--,ui--}if(Ze>kn){if(Ze<=ui){const Si=ui+1,ds=Si<mn?Xe[Si].el:_e;for(;Ze<=ui;)K(null,Xe[Ze]=Ge?k3(Xe[Ze]):cm(Xe[Ze]),we,ds,Fe,Qe,it,Ct,Ge),Ze++}}else if(Ze>ui)for(;Ze<=kn;)Bt(Ne[Ze],Fe,Qe,!0),Ze++;else{const Si=Ze,ds=Ze,qs=new Map;for(Ze=ds;Ze<=ui;Ze++){const Hd=Xe[Ze]=Ge?k3(Xe[Ze]):cm(Xe[Ze]);Hd.key!=null&&qs.set(Hd.key,Ze)}let Ro,uf=0;const lf=ui-ds+1;let D0=!1,O0=0;const L3=new Array(lf);for(Ze=0;Ze<lf;Ze++)L3[Ze]=0;for(Ze=Si;Ze<=kn;Ze++){const Hd=Ne[Ze];if(uf>=lf){Bt(Hd,Fe,Qe,!0);continue}let L0;if(Hd.key!=null)L0=qs.get(Hd.key);else for(Ro=ds;Ro<=ui;Ro++)if(L3[Ro-ds]===0&&e9(Hd,Xe[Ro])){L0=Ro;break}L0===void 0?Bt(Hd,Fe,Qe,!0):(L3[L0-ds]=Ze+1,L0>=O0?O0=L0:D0=!0,K(Hd,Xe[L0],we,null,Fe,Qe,it,Ct,Ge),uf++)}const s_=D0?SVt(L3):FS;for(Ro=s_.length-1,Ze=lf-1;Ze>=0;Ze--){const Hd=ds+Ze,L0=Xe[Hd],o_=Xe[Hd+1],c_=Hd+1<mn?o_.el||cwt(o_):_e;L3[Ze]===0?K(null,L0,we,c_,Fe,Qe,it,Ct,Ge):D0&&(Ro<0||Ze!==s_[Ro]?Je(L0,we,c_,2):Ro--)}}},Je=(Ne,Xe,we,_e,Fe=null)=>{const{el:Qe,type:it,transition:Ct,children:Ge,shapeFlag:Ze}=Ne;if(Ze&6){Je(Ne.component.subTree,Xe,we,_e);return}if(Ze&128){Ne.suspense.move(Xe,we,_e);return}if(Ze&64){it.move(Ne,Xe,we,on);return}if(it===sn){m(Qe,Xe,we);for(let kn=0;kn<Ge.length;kn++)Je(Ge[kn],Xe,we,_e);m(Ne.anchor,Xe,we);return}if(it===qW){oe(Ne,Xe,we);return}if(_e!==2&&Ze&1&&Ct)if(_e===0)Ct.beforeEnter(Qe),m(Qe,Xe,we),Ch(()=>Ct.enter(Qe),Fe);else{const{leave:kn,delayLeave:ui,afterLeave:Si}=Ct,ds=()=>{Ne.ctx.isUnmounted?w(Qe):m(Qe,Xe,we)},qs=()=>{Qe._isLeaving&&Qe[rm](!0),kn(Qe,()=>{ds(),Si&&Si()})};ui?ui(Qe,ds,qs):qs()}else m(Qe,Xe,we)},Bt=(Ne,Xe,we,_e=!1,Fe=!1)=>{const{type:Qe,props:it,ref:Ct,children:Ge,dynamicChildren:Ze,shapeFlag:mn,patchFlag:kn,dirs:ui,cacheIndex:Si}=Ne;if(kn===-2&&(Fe=!1),Ct!=null&&(A3(),FO(Ct,null,we,Ne,!0),T3()),Si!=null&&(Xe.renderCache[Si]=void 0),mn&256){Xe.ctx.deactivate(Ne);return}const ds=mn&1&&ui,qs=!GS(Ne);let Ro;if(qs&&(Ro=it&&it.onVnodeBeforeUnmount)&&tm(Ro,Xe,Ne),mn&6)Mt(Ne.component,we,_e);else{if(mn&128){Ne.suspense.unmount(we,_e);return}ds&&W8(Ne,null,Xe,"beforeUnmount"),mn&64?Ne.type.remove(Ne,Xe,we,on,_e):Ze&&!Ze.hasOnce&&(Qe!==sn||kn>0&&kn&64)?ln(Ze,Xe,we,!1,!0):(Qe===sn&&kn&384||!Fe&&mn&16)&&ln(Ge,Xe,we),_e&&wt(Ne)}(qs&&(Ro=it&&it.onVnodeUnmounted)||ds)&&Ch(()=>{Ro&&tm(Ro,Xe,Ne),ds&&W8(Ne,null,Xe,"unmounted")},we)},wt=Ne=>{const{type:Xe,el:we,anchor:_e,transition:Fe}=Ne;if(Xe===sn){Pt(we,_e);return}if(Xe===qW){re(Ne);return}const Qe=()=>{w(we),Fe&&!Fe.persisted&&Fe.afterLeave&&Fe.afterLeave()};if(Ne.shapeFlag&1&&Fe&&!Fe.persisted){const{leave:it,delayLeave:Ct}=Fe,Ge=()=>it(we,Qe);Ct?Ct(Ne.el,Qe,Ge):Ge()}else Qe()},Pt=(Ne,Xe)=>{let we;for(;Ne!==Xe;)we=V(Ne),w(Ne),Ne=we;w(Xe)},Mt=(Ne,Xe,we)=>{const{bum:_e,scope:Fe,job:Qe,subTree:it,um:Ct,m:Ge,a:Ze}=Ne;fgt(Ge),fgt(Ze),_e&&JW(_e),Fe.stop(),Qe&&(Qe.flags|=8,Bt(it,Ne,Xe,we)),Ct&&Ch(Ct,Xe),Ch(()=>{Ne.isUnmounted=!0},Xe)},ln=(Ne,Xe,we,_e=!1,Fe=!1,Qe=0)=>{for(let it=Qe;it<Ne.length;it++)Bt(Ne[it],Xe,we,_e,Fe)},wi=Ne=>{if(Ne.shapeFlag&6)return wi(Ne.component.subTree);if(Ne.shapeFlag&128)return Ne.suspense.next();const Xe=V(Ne.anchor||Ne.el),we=Xe&&Xe[Ipt];return we?V(we):Xe};let Ir=!1;const Ht=(Ne,Xe,we)=>{let _e;Ne==null?Xe._vnode&&(Bt(Xe._vnode,null,null,!0),_e=Xe._vnode.component):K(Xe._vnode||null,Ne,Xe,null,null,null,we),Xe._vnode=Ne,Ir||(Ir=!0,Y0t(_e),Cpt(),Ir=!1)},on={p:K,um:Bt,m:Je,r:wt,mt:He,mc:se,pc:Jt,pbc:Ce,n:wi,o:a};return{render:Ht,hydrate:void 0,createApp:aVt(Ht)}}function I2e({type:a,props:d},b){return b==="svg"&&a==="foreignObject"||b==="mathml"&&a==="annotation-xml"&&d&&d.encoding&&d.encoding.includes("html")?void 0:b}function X8({effect:a,job:d},b){b?(a.flags|=32,d.flags|=4):(a.flags&=-33,d.flags&=-5)}function CVt(a,d){return(!a||a&&!a.pendingBranch)&&d&&!d.persisted}function Fme(a,d,b=!1){const m=a.children,w=d.children;if(Mr(m)&&Mr(w))for(let $=0;$<m.length;$++){const p=m[$];let j=w[$];j.shapeFlag&1&&!j.dynamicChildren&&((j.patchFlag<=0||j.patchFlag===32)&&(j=w[$]=k3(w[$]),j.el=p.el),!b&&j.patchFlag!==-2&&Fme(p,j)),j.type===BX&&(j.patchFlag===-1&&(j=w[$]=k3(j)),j.el=p.el),j.type===jh&&!j.el&&(j.el=p.el)}}function SVt(a){const d=a.slice(),b=[0];let m,w,$,p,j;const I=a.length;for(m=0;m<I;m++){const N=a[m];if(N!==0){if(w=b[b.length-1],a[w]<N){d[m]=w,b.push(m);continue}for($=0,p=b.length-1;$<p;)j=$+p>>1,a[b[j]]<N?$=j+1:p=j;N<a[b[$]]&&($>0&&(d[m]=b[$-1]),b[$]=m)}}for($=b.length,p=b[$-1];$-- >0;)b[$]=p,p=d[p];return b}function owt(a){const d=a.subTree.component;if(d)return d.asyncDep&&!d.asyncResolved?d:owt(d)}function fgt(a){if(a)for(let d=0;d<a.length;d++)a[d].flags|=8}function cwt(a){if(a.placeholder)return a.placeholder;const d=a.component;return d?cwt(d.subTree):null}const uwt=a=>a.__isSuspense;function _Vt(a,d){d&&d.pendingBranch?Mr(a)?d.effects.push(...a):d.effects.push(a):Lqt(a)}const sn=Symbol.for("v-fgt"),BX=Symbol.for("v-txt"),jh=Symbol.for("v-cmt"),qW=Symbol.for("v-stc"),HO=[];let C1=null;function R(a=!1){HO.push(C1=a?null:[])}function jVt(){HO.pop(),C1=HO[HO.length-1]||null}let WS=1;function lX(a,d=!1){WS+=a,a<0&&C1&&d&&(C1.hasOnce=!0)}function lwt(a){return a.dynamicChildren=WS>0?C1||FS:null,jVt(),WS>0&&C1&&C1.push(a),a}function J(a,d,b,m,w,$){return lwt(E(a,d,b,m,w,$,!0))}function Ts(a,d,b,m,w){return lwt(xr(a,d,b,m,w,!0))}function YO(a){return a?a.__v_isVNode===!0:!1}function e9(a,d){return a.type===d.type&&a.key===d.key}const awt=({key:a})=>a??null,VW=({ref:a,ref_key:d,ref_for:b})=>(typeof a=="number"&&(a=""+a),a!=null?Bl(a)||Zc(a)||vs(a)?{i:Bd,r:a,k:d,f:!!b}:a:null);function E(a,d=null,b=null,m=0,w=null,$=a===sn?0:1,p=!1,j=!1){const I={__v_isVNode:!0,__v_skip:!0,type:a,props:d,key:d&&awt(d),ref:d&&VW(d),scopeId:_pt,slotScopeIds:null,children:b,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:$,patchFlag:m,dynamicProps:w,dynamicChildren:null,appContext:null,ctx:Bd};return j?(Bme(I,b),$&128&&a.normalize(I)):b&&(I.shapeFlag|=Bl(b)?8:16),WS>0&&!p&&C1&&(I.patchFlag>0||$&6)&&I.patchFlag!==32&&C1.push(I),I}const xr=IVt;function IVt(a,d=null,b=null,m=0,w=null,$=!1){if((!a||a===Gpt)&&(a=jh),YO(a)){const j=Nk(a,d,!0);return b&&Bme(j,b),WS>0&&!$&&C1&&(j.shapeFlag&6?C1[C1.indexOf(a)]=j:C1.push(j)),j.patchFlag=-2,j}if(RVt(a)&&(a=a.__vccOpts),d){d=AVt(d);let{class:j,style:I}=d;j&&!Bl(j)&&(d.class=wn(j)),jc(I)&&(DX(I)&&!Mr(I)&&(I=cf({},I)),d.style=_c(I))}const p=Bl(a)?1:uwt(a)?128:Apt(a)?64:jc(a)?4:vs(a)?2:0;return E(a,d,b,m,w,p,$,!0)}function AVt(a){return a?DX(a)||ewt(a)?cf({},a):a:null}function Nk(a,d,b=!1,m=!1){const{props:w,ref:$,patchFlag:p,children:j,transition:I}=a,N=d?Hme(w||{},d):w,P={__v_isVNode:!0,__v_skip:!0,type:a.type,props:N,key:N&&awt(N),ref:d&&d.ref?b&&$?Mr($)?$.concat(VW(d)):[$,VW(d)]:VW(d):$,scopeId:a.scopeId,slotScopeIds:a.slotScopeIds,children:j,target:a.target,targetStart:a.targetStart,targetAnchor:a.targetAnchor,staticCount:a.staticCount,shapeFlag:a.shapeFlag,patchFlag:d&&a.type!==sn?p===-1?16:p|16:p,dynamicProps:a.dynamicProps,dynamicChildren:a.dynamicChildren,appContext:a.appContext,dirs:a.dirs,transition:I,component:a.component,suspense:a.suspense,ssContent:a.ssContent&&Nk(a.ssContent),ssFallback:a.ssFallback&&Nk(a.ssFallback),placeholder:a.placeholder,el:a.el,anchor:a.anchor,ctx:a.ctx,ce:a.ce};return I&&m&&XO(P,I.clone(P)),P}function ci(a=" ",d=0){return xr(BX,null,a,d)}function fwt(a,d){const b=xr(qW,null,a);return b.staticCount=d,b}function Ae(a="",d=!1){return d?(R(),Ts(jh,null,a)):xr(jh,null,a)}function cm(a){return a==null||typeof a=="boolean"?xr(jh):Mr(a)?xr(sn,null,a.slice()):YO(a)?k3(a):xr(BX,null,String(a))}function k3(a){return a.el===null&&a.patchFlag!==-1||a.memo?a:Nk(a)}function Bme(a,d){let b=0;const{shapeFlag:m}=a;if(d==null)d=null;else if(Mr(d))b=16;else if(typeof d=="object")if(m&65){const w=d.default;w&&(w._c&&(w._d=!1),Bme(a,w()),w._c&&(w._d=!0));return}else{b=32;const w=d._;!w&&!ewt(d)?d._ctx=Bd:w===3&&Bd&&(Bd.slots._===1?d._=1:(d._=2,a.patchFlag|=1024))}else vs(d)?(d={default:d,_ctx:Bd},b=32):(d=String(d),m&64?(b=16,d=[ci(d)]):b=8);a.children=d,a.shapeFlag|=b}function Hme(...a){const d={};for(let b=0;b<a.length;b++){const m=a[b];for(const w in m)if(w==="class")d.class!==m.class&&(d.class=wn([d.class,m.class]));else if(w==="style")d.style=_c([d.style,m.style]);else if(SX(w)){const $=d[w],p=m[w];p&&$!==p&&!(Mr($)&&$.includes(p))&&(d[w]=$?[].concat($,p):p)}else w!==""&&(d[w]=m[w])}return d}function tm(a,d,b,m=null){wv(a,d,7,[b,m])}const TVt=Kpt();let MVt=0;function PVt(a,d,b){const m=a.type,w=(d?d.appContext:a.appContext)||TVt,$={uid:MVt++,vnode:a,type:m,parent:d,appContext:w,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ipt(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:d?d.provides:Object.create(w.provides),ids:d?d.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:nwt(m,w),emitsOptions:Xpt(m,w),emit:null,emitted:null,propsDefaults:Cc,inheritAttrs:m.inheritAttrs,ctx:Cc,data:Cc,props:Cc,attrs:Cc,slots:Cc,refs:Cc,setupState:Cc,setupContext:null,suspense:b,suspenseId:b?b.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 $.ctx={_:$},$.root=d?d.root:$,$.emit=fVt.bind(null,$),a.ce&&a.ce($),$}let Ih=null;const hm=()=>Ih||Bd;let aX,sme;{const a=TX(),d=(b,m)=>{let w;return(w=a[b])||(w=a[b]=[]),w.push(m),$=>{w.length>1?w.forEach(p=>p($)):w[0]($)}};aX=d("__VUE_INSTANCE_SETTERS__",b=>Ih=b),sme=d("__VUE_SSR_SETTERS__",b=>QO=b)}const fL=a=>{const d=Ih;return aX(a),a.scope.on(),()=>{a.scope.off(),aX(d)}},dgt=()=>{Ih&&Ih.scope.off(),aX(null)};function dwt(a){return a.vnode.shapeFlag&4}let QO=!1;function DVt(a,d=!1,b=!1){d&&sme(d);const{props:m,children:w}=a.vnode,$=dwt(a);wVt(a,m,$,d),kVt(a,w,b||d);const p=$?OVt(a,d):void 0;return d&&sme(!1),p}function OVt(a,d){const b=a.type;a.accessCache=Object.create(null),a.proxy=new Proxy(a.ctx,eVt);const{setup:m}=b;if(m){A3();const w=a.setupContext=m.length>1?gwt(a):null,$=fL(a),p=aL(m,a,0,[a.props,w]),j=Xbt(p);if(T3(),$(),(j||a.sp)&&!GS(a)&&Npt(a),j){if(p.then(dgt,dgt),d)return p.then(I=>{hgt(a,I)}).catch(I=>{OX(I,a,0)});a.asyncDep=p}else hgt(a,p)}else hwt(a)}function hgt(a,d,b){vs(d)?a.type.__ssrInlineRender?a.ssrRender=d:a.render=d:jc(d)&&(a.setupState=ypt(d)),hwt(a)}function hwt(a,d,b){const m=a.type;a.render||(a.render=m.render||am);{const w=fL(a);A3();try{rVt(a)}finally{T3(),w()}}}const LVt={get(a,d){return _h(a,"get",""),a[d]}};function gwt(a){const d=b=>{a.exposed=b||{}};return{attrs:new Proxy(a.attrs,LVt),slots:a.slots,emit:a.emit,expose:d}}function HX(a){return a.exposed?a.exposeProxy||(a.exposeProxy=new Proxy(ypt(I3(a.exposed)),{get(d,b){if(b in d)return d[b];if(b in BO)return BO[b](a)},has(d,b){return b in d||b in BO}})):a.proxy}function NVt(a,d=!0){return vs(a)?a.displayName||a.name:a.name||d&&a.__name}function RVt(a){return vs(a)&&"__vccOpts"in a}const En=(a,d)=>Tqt(a,d,QO);function Sc(a,d,b){try{lX(-1);const m=arguments.length;return m===2?jc(d)&&!Mr(d)?YO(d)?xr(a,null,[d]):xr(a,d):xr(a,null,d):(m>3?b=Array.prototype.slice.call(arguments,2):m===3&&YO(b)&&(b=[b]),xr(a,d,b))}finally{lX(1)}}function FVt(a,d){const b=a.memo;if(b.length!=d.length)return!1;for(let m=0;m<b.length;m++)if(Fd(b[m],d[m]))return!1;return WS>0&&C1&&C1.push(a),!0}const BVt="3.5.30";let ome;const ggt=typeof window<"u"&&window.trustedTypes;if(ggt)try{ome=ggt.createPolicy("vue",{createHTML:a=>a})}catch{}const bwt=ome?a=>ome.createHTML(a):a=>a,HVt="http://www.w3.org/2000/svg",GVt="http://www.w3.org/1998/Math/MathML",y3=typeof document<"u"?document:null,bgt=y3&&y3.createElement("template"),JVt={insert:(a,d,b)=>{d.insertBefore(a,b||null)},remove:a=>{const d=a.parentNode;d&&d.removeChild(a)},createElement:(a,d,b,m)=>{const w=d==="svg"?y3.createElementNS(HVt,a):d==="mathml"?y3.createElementNS(GVt,a):b?y3.createElement(a,{is:b}):y3.createElement(a);return a==="select"&&m&&m.multiple!=null&&w.setAttribute("multiple",m.multiple),w},createText:a=>y3.createTextNode(a),createComment:a=>y3.createComment(a),setText:(a,d)=>{a.nodeValue=d},setElementText:(a,d)=>{a.textContent=d},parentNode:a=>a.parentNode,nextSibling:a=>a.nextSibling,querySelector:a=>y3.querySelector(a),setScopeId(a,d){a.setAttribute(d,"")},insertStaticContent(a,d,b,m,w,$){const p=b?b.previousSibling:d.lastChild;if(w&&(w===$||w.nextSibling))for(;d.insertBefore(w.cloneNode(!0),b),!(w===$||!(w=w.nextSibling)););else{bgt.innerHTML=bwt(m==="svg"?`<svg>${a}</svg>`:m==="mathml"?`<math>${a}</math>`:a);const j=bgt.content;if(m==="svg"||m==="mathml"){const I=j.firstChild;for(;I.firstChild;)j.appendChild(I.firstChild);j.removeChild(I)}d.insertBefore(j,b)}return[p?p.nextSibling:d.firstChild,b?b.previousSibling:d.lastChild]}},Ak="transition",EO="animation",ZO=Symbol("_vtc"),pwt={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},UVt=cf({},Mpt,pwt),zVt=a=>(a.displayName="Transition",a.props=UVt,a),wwt=zVt((a,{slots:d})=>Sc(Uqt,qVt(a),d)),Y8=(a,d=[])=>{Mr(a)?a.forEach(b=>b(...d)):a&&a(...d)},pgt=a=>a?Mr(a)?a.some(d=>d.length>1):a.length>1:!1;function qVt(a){const d={};for(const te in a)te in pwt||(d[te]=a[te]);if(a.css===!1)return d;const{name:b="v",type:m,duration:w,enterFromClass:$=`${b}-enter-from`,enterActiveClass:p=`${b}-enter-active`,enterToClass:j=`${b}-enter-to`,appearFromClass:I=$,appearActiveClass:N=p,appearToClass:P=j,leaveFromClass:U=`${b}-leave-from`,leaveActiveClass:V=`${b}-leave-active`,leaveToClass:X=`${b}-leave-to`}=a,ee=VVt(w),K=ee&&ee[0],he=ee&&ee[1],{onBeforeEnter:ke,onEnter:ue,onEnterCancelled:oe,onLeave:re,onLeaveCancelled:ye,onBeforeAppear:pe=ke,onAppear:be=ue,onAppearCancelled:se=oe}=d,le=(te,q,He,gt)=>{te._enterCancelled=gt,Q8(te,q?P:j),Q8(te,q?N:p),He&&He()},Ce=(te,q)=>{te._isLeaving=!1,Q8(te,U),Q8(te,X),Q8(te,V),q&&q()},Se=te=>(q,He)=>{const gt=te?be:ue,ze=()=>le(q,te,He);Y8(gt,[q,ze]),wgt(()=>{Q8(q,te?I:$),v3(q,te?P:j),pgt(gt)||vgt(q,m,K,ze)})};return cf(d,{onBeforeEnter(te){Y8(ke,[te]),v3(te,$),v3(te,p)},onBeforeAppear(te){Y8(pe,[te]),v3(te,I),v3(te,N)},onEnter:Se(!1),onAppear:Se(!0),onLeave(te,q){te._isLeaving=!0;const He=()=>Ce(te,q);v3(te,U),te._enterCancelled?(v3(te,V),kgt(te)):(kgt(te),v3(te,V)),wgt(()=>{te._isLeaving&&(Q8(te,U),v3(te,X),pgt(re)||vgt(te,m,he,He))}),Y8(re,[te,He])},onEnterCancelled(te){le(te,!1,void 0,!0),Y8(oe,[te])},onAppearCancelled(te){le(te,!0,void 0,!0),Y8(se,[te])},onLeaveCancelled(te){Ce(te),Y8(ye,[te])}})}function VVt(a){if(a==null)return null;if(jc(a))return[A2e(a.enter),A2e(a.leave)];{const d=A2e(a);return[d,d]}}function A2e(a){return Xzt(a)}function v3(a,d){d.split(/\s+/).forEach(b=>b&&a.classList.add(b)),(a[ZO]||(a[ZO]=new Set)).add(d)}function Q8(a,d){d.split(/\s+/).forEach(m=>m&&a.classList.remove(m));const b=a[ZO];b&&(b.delete(d),b.size||(a[ZO]=void 0))}function wgt(a){requestAnimationFrame(()=>{requestAnimationFrame(a)})}let KVt=0;function vgt(a,d,b,m){const w=a._endId=++KVt,$=()=>{w===a._endId&&m()};if(b!=null)return setTimeout($,b);const{type:p,timeout:j,propCount:I}=WVt(a,d);if(!p)return m();const N=p+"end";let P=0;const U=()=>{a.removeEventListener(N,V),$()},V=X=>{X.target===a&&++P>=I&&U()};setTimeout(()=>{P<I&&U()},j+1),a.addEventListener(N,V)}function WVt(a,d){const b=window.getComputedStyle(a),m=ee=>(b[ee]||"").split(", "),w=m(`${Ak}Delay`),$=m(`${Ak}Duration`),p=mgt(w,$),j=m(`${EO}Delay`),I=m(`${EO}Duration`),N=mgt(j,I);let P=null,U=0,V=0;d===Ak?p>0&&(P=Ak,U=p,V=$.length):d===EO?N>0&&(P=EO,U=N,V=I.length):(U=Math.max(p,N),P=U>0?p>N?Ak:EO:null,V=P?P===Ak?$.length:I.length:0);const X=P===Ak&&/\b(?:transform|all)(?:,|$)/.test(m(`${Ak}Property`).toString());return{type:P,timeout:U,propCount:V,hasTransform:X}}function mgt(a,d){for(;a.length<d.length;)a=a.concat(a);return Math.max(...d.map((b,m)=>ygt(b)+ygt(a[m])))}function ygt(a){return a==="auto"?0:Number(a.slice(0,-1).replace(",","."))*1e3}function kgt(a){return(a?a.ownerDocument:document).body.offsetHeight}function XVt(a,d,b){const m=a[ZO];m&&(d=(d?[d,...m]:[...m]).join(" ")),d==null?a.removeAttribute("class"):b?a.setAttribute("class",d):a.className=d}const fX=Symbol("_vod"),vwt=Symbol("_vsh"),YVt={name:"show",beforeMount(a,{value:d},{transition:b}){a[fX]=a.style.display==="none"?"":a.style.display,b&&d?b.beforeEnter(a):CO(a,d)},mounted(a,{value:d},{transition:b}){b&&d&&b.enter(a)},updated(a,{value:d,oldValue:b},{transition:m}){!d!=!b&&(m?d?(m.beforeEnter(a),CO(a,!0),m.enter(a)):m.leave(a,()=>{CO(a,!1)}):CO(a,d))},beforeUnmount(a,{value:d}){CO(a,d)}};function CO(a,d){a.style.display=d?a[fX]:"none",a[vwt]=!d}const QVt=Symbol(""),ZVt=/(?:^|;)\s*display\s*:/;function eKt(a,d,b){const m=a.style,w=Bl(b);let $=!1;if(b&&!w){if(d)if(Bl(d))for(const p of d.split(";")){const j=p.slice(0,p.indexOf(":")).trim();b[j]==null&&KW(m,j,"")}else for(const p in d)b[p]==null&&KW(m,p,"");for(const p in b)p==="display"&&($=!0),KW(m,p,b[p])}else if(w){if(d!==b){const p=m[QVt];p&&(b+=";"+p),m.cssText=b,$=ZVt.test(b)}}else d&&a.removeAttribute("style");fX in a&&(a[fX]=$?m.display:"",a[vwt]&&(m.display="none"))}const xgt=/\s*!important$/;function KW(a,d,b){if(Mr(b))b.forEach(m=>KW(a,d,m));else if(b==null&&(b=""),d.startsWith("--"))a.setProperty(d,b);else{const m=tKt(a,d);xgt.test(b)?a.setProperty(D3(m),b.replace(xgt,""),"important"):a[m]=b}}const $gt=["Webkit","Moz","ms"],T2e={};function tKt(a,d){const b=T2e[d];if(b)return b;let m=Mh(d);if(m!=="filter"&&m in a)return T2e[d]=m;m=IX(m);for(let w=0;w<$gt.length;w++){const $=$gt[w]+m;if($ in a)return T2e[d]=$}return d}const Egt="http://www.w3.org/1999/xlink";function Cgt(a,d,b,m,w,$=nqt(d)){m&&d.startsWith("xlink:")?b==null?a.removeAttributeNS(Egt,d.slice(6,d.length)):a.setAttributeNS(Egt,d,b):b==null||$&&!ept(b)?a.removeAttribute(d):a.setAttribute(d,$?"":bv(b)?String(b):b)}function Sgt(a,d,b,m,w){if(d==="innerHTML"||d==="textContent"){b!=null&&(a[d]=d==="innerHTML"?bwt(b):b);return}const $=a.tagName;if(d==="value"&&$!=="PROGRESS"&&!$.includes("-")){const j=$==="OPTION"?a.getAttribute("value")||"":a.value,I=b==null?a.type==="checkbox"?"on":"":String(b);(j!==I||!("_value"in a))&&(a.value=I),b==null&&a.removeAttribute(d),a._value=b;return}let p=!1;if(b===""||b==null){const j=typeof a[d];j==="boolean"?b=ept(b):b==null&&j==="string"?(b="",p=!0):j==="number"&&(b=0,p=!0)}try{a[d]=b}catch{}p&&a.removeAttribute(w||d)}function C3(a,d,b,m){a.addEventListener(d,b,m)}function nKt(a,d,b,m){a.removeEventListener(d,b,m)}const _gt=Symbol("_vei");function iKt(a,d,b,m,w=null){const $=a[_gt]||(a[_gt]={}),p=$[d];if(m&&p)p.value=m;else{const[j,I]=rKt(d);if(m){const N=$[d]=cKt(m,w);C3(a,j,N,I)}else p&&(nKt(a,j,p,I),$[d]=void 0)}}const jgt=/(?:Once|Passive|Capture)$/;function rKt(a){let d;if(jgt.test(a)){d={};let m;for(;m=a.match(jgt);)a=a.slice(0,a.length-m[0].length),d[m[0].toLowerCase()]=!0}return[a[2]===":"?a.slice(3):D3(a.slice(2)),d]}let M2e=0;const sKt=Promise.resolve(),oKt=()=>M2e||(sKt.then(()=>M2e=0),M2e=Date.now());function cKt(a,d){const b=m=>{if(!m._vts)m._vts=Date.now();else if(m._vts<=b.attached)return;wv(uKt(m,b.value),d,5,[m])};return b.value=a,b.attached=oKt(),b}function uKt(a,d){if(Mr(d)){const b=a.stopImmediatePropagation;return a.stopImmediatePropagation=()=>{b.call(a),a._stopped=!0},d.map(m=>w=>!w._stopped&&m&&m(w))}else return d}const Igt=a=>a.charCodeAt(0)===111&&a.charCodeAt(1)===110&&a.charCodeAt(2)>96&&a.charCodeAt(2)<123,lKt=(a,d,b,m,w,$)=>{const p=w==="svg";d==="class"?XVt(a,m,p):d==="style"?eKt(a,b,m):SX(d)?Cme(d)||iKt(a,d,b,m,$):(d[0]==="."?(d=d.slice(1),!0):d[0]==="^"?(d=d.slice(1),!1):aKt(a,d,m,p))?(Sgt(a,d,m),!a.tagName.includes("-")&&(d==="value"||d==="checked"||d==="selected")&&Cgt(a,d,m,p,$,d!=="value")):a._isVueCE&&(fKt(a,d)||a._def.__asyncLoader&&(/[A-Z]/.test(d)||!Bl(m)))?Sgt(a,Mh(d),m,$,d):(d==="true-value"?a._trueValue=m:d==="false-value"&&(a._falseValue=m),Cgt(a,d,m,p))};function aKt(a,d,b,m){if(m)return!!(d==="innerHTML"||d==="textContent"||d in a&&Igt(d)&&vs(b));if(d==="spellcheck"||d==="draggable"||d==="translate"||d==="autocorrect"||d==="sandbox"&&a.tagName==="IFRAME"||d==="form"||d==="list"&&a.tagName==="INPUT"||d==="type"&&a.tagName==="TEXTAREA")return!1;if(d==="width"||d==="height"){const w=a.tagName;if(w==="IMG"||w==="VIDEO"||w==="CANVAS"||w==="SOURCE")return!1}return Igt(d)&&Bl(b)?!1:d in a}function fKt(a,d){const b=a._def.props;if(!b)return!1;const m=Mh(d);return Array.isArray(b)?b.some(w=>Mh(w)===m):Object.keys(b).some(w=>Mh(w)===m)}const Rk=a=>{const d=a.props["onUpdate:modelValue"]||!1;return Mr(d)?b=>JW(d,b):d};function dKt(a){a.target.composing=!0}function Agt(a){const d=a.target;d.composing&&(d.composing=!1,d.dispatchEvent(new Event("input")))}const fp=Symbol("_assign");function Tgt(a,d,b){return d&&(a=a.trim()),b&&(a=AX(a)),a}const Ci={created(a,{modifiers:{lazy:d,trim:b,number:m}},w){a[fp]=Rk(w);const $=m||w.props&&w.props.type==="number";C3(a,d?"change":"input",p=>{p.target.composing||a[fp](Tgt(a.value,b,$))}),(b||$)&&C3(a,"change",()=>{a.value=Tgt(a.value,b,$)}),d||(C3(a,"compositionstart",dKt),C3(a,"compositionend",Agt),C3(a,"change",Agt))},mounted(a,{value:d}){a.value=d??""},beforeUpdate(a,{value:d,oldValue:b,modifiers:{lazy:m,trim:w,number:$}},p){if(a[fp]=Rk(p),a.composing)return;const j=($||a.type==="number")&&!/^0\d/.test(a.value)?AX(a.value):a.value,I=d??"";j!==I&&(document.activeElement===a&&a.type!=="range"&&(m&&d===b||w&&a.value.trim()===I)||(a.value=I))}},a9={deep:!0,created(a,d,b){a[fp]=Rk(b),C3(a,"change",()=>{const m=a._modelValue,w=XS(a),$=a.checked,p=a[fp];if(Mr(m)){const j=_me(m,w),I=j!==-1;if($&&!I)p(m.concat(w));else if(!$&&I){const N=[...m];N.splice(j,1),p(N)}}else if(n_(m)){const j=new Set(m);$?j.add(w):j.delete(w),p(j)}else p(mwt(a,$))})},mounted:Mgt,beforeUpdate(a,d,b){a[fp]=Rk(b),Mgt(a,d,b)}};function Mgt(a,{value:d,oldValue:b},m){a._modelValue=d;let w;if(Mr(d))w=_me(d,m.props.value)>-1;else if(n_(d))w=d.has(m.props.value);else{if(d===b)return;w=Lk(d,mwt(a,!0))}a.checked!==w&&(a.checked=w)}const Pgt={created(a,{value:d},b){a.checked=Lk(d,b.props.value),a[fp]=Rk(b),C3(a,"change",()=>{a[fp](XS(a))})},beforeUpdate(a,{value:d,oldValue:b},m){a[fp]=Rk(m),d!==b&&(a.checked=Lk(d,m.props.value))}},Rd={deep:!0,created(a,{value:d,modifiers:{number:b}},m){const w=n_(d);C3(a,"change",()=>{const $=Array.prototype.filter.call(a.options,p=>p.selected).map(p=>b?AX(XS(p)):XS(p));a[fp](a.multiple?w?new Set($):$:$[0]),a._assigning=!0,_1(()=>{a._assigning=!1})}),a[fp]=Rk(m)},mounted(a,{value:d}){Dgt(a,d)},beforeUpdate(a,d,b){a[fp]=Rk(b)},updated(a,{value:d}){a._assigning||Dgt(a,d)}};function Dgt(a,d){const b=a.multiple,m=Mr(d);if(!(b&&!m&&!n_(d))){for(let w=0,$=a.options.length;w<$;w++){const p=a.options[w],j=XS(p);if(b)if(m){const I=typeof j;I==="string"||I==="number"?p.selected=d.some(N=>String(N)===String(j)):p.selected=_me(d,j)>-1}else p.selected=d.has(j);else if(Lk(XS(p),d)){a.selectedIndex!==w&&(a.selectedIndex=w);return}}!b&&a.selectedIndex!==-1&&(a.selectedIndex=-1)}}function XS(a){return"_value"in a?a._value:a.value}function mwt(a,d){const b=d?"_trueValue":"_falseValue";return b in a?a[b]:d}const hKt=["ctrl","shift","alt","meta"],gKt={stop:a=>a.stopPropagation(),prevent:a=>a.preventDefault(),self:a=>a.target!==a.currentTarget,ctrl:a=>!a.ctrlKey,shift:a=>!a.shiftKey,alt:a=>!a.altKey,meta:a=>!a.metaKey,left:a=>"button"in a&&a.button!==0,middle:a=>"button"in a&&a.button!==1,right:a=>"button"in a&&a.button!==2,exact:(a,d)=>hKt.some(b=>a[`${b}Key`]&&!d.includes(b))},Ah=(a,d)=>{if(!a)return a;const b=a._withMods||(a._withMods={}),m=d.join(".");return b[m]||(b[m]=((w,...$)=>{for(let p=0;p<d.length;p++){const j=gKt[d[p]];if(j&&j(w,d))return}return a(w,...$)}))},bKt={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Gme=(a,d)=>{const b=a._withKeys||(a._withKeys={}),m=d.join(".");return b[m]||(b[m]=(w=>{if(!("key"in w))return;const $=D3(w.key);if(d.some(p=>p===$||bKt[p]===$))return a(w)}))},pKt=cf({patchProp:lKt},JVt);let Ogt;function wKt(){return Ogt||(Ogt=$Vt(pKt))}const Lgt=((...a)=>{const d=wKt().createApp(...a),{mount:b}=d;return d.mount=m=>{const w=mKt(m);if(!w)return;const $=d._component;!vs($)&&!$.render&&!$.template&&($.template=w.innerHTML),w.nodeType===1&&(w.textContent="");const p=b(w,!1,vKt(w));return w instanceof Element&&(w.removeAttribute("v-cloak"),w.setAttribute("data-v-app","")),p},d});function vKt(a){if(a instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&a instanceof MathMLElement)return"mathml"}function mKt(a){return Bl(a)?document.querySelector(a):a}const _r=a=>Number(a.demandSpec.sourceRef.displayId),ywt=a=>a.demandSpec.title;async function Uo(a,d){const b=await fetch(a,d),m=b.headers.get("content-type")||"";if(!m.includes("application/json"))throw new Error(b.ok?`Expected JSON response from ${a} but got ${m||"unknown content-type"}`:`HTTP ${b.status}`);if(!b.ok){const w=await b.json().catch(()=>({}));throw new Error(w.error||`HTTP ${b.status}`)}return b.json()}async function bl(a,d){return Uo(a,{method:"POST",headers:d?{"Content-Type":"application/json"}:void 0,body:d?JSON.stringify(d):void 0})}async function yKt(a){const d=new URLSearchParams;a?.kind&&d.set("kind",a.kind),a?.status&&d.set("status",a.status);const b=d.toString();return Uo("/api/tasks"+(b?"?"+b:""))}async function kKt(){return Uo("/api/pipeline-meta")}async function dX(a){return Uo(`/api/issues/${a}`)}async function xKt(a){return Uo(`/api/issues/${a}/logs`)}async function kwt(){return Uo("/api/system/status")}async function $Kt(a){await bl(`/api/issues/${a}/start`)}async function EKt(a){await bl(`/api/issues/${a}/retry`)}async function CKt(a){await bl(`/api/issues/${a}/cancel`)}async function SKt(a){await bl(`/api/issues/${a}/restart`)}async function Ngt(a,d){await bl(`/api/issues/${a}/retry-from-phase`,{phase:d})}async function _Kt(a){await bl(`/api/issues/${a}/approve-plan`)}async function jKt(a,d){await bl(`/api/issues/${a}/reject-plan`,{feedback:d})}async function IKt(a){await bl(`/api/issues/${a}/skip-review`)}async function AKt(a){return Uo(`/api/issues/${a}/review-history`)}async function Rgt(a,d,b="html"){const m=b==="html"?`/api/issues/${a}/plans/${d}?format=html`:`/api/issues/${a}/plans/${d}`,w=await fetch(m);if(!w.ok){const $=await w.json().catch(()=>({}));throw new Error($.error||"Failed to load")}return w.text()}async function TKt(a,d,b){await Uo(`/api/issues/${a}/plans/${d}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:b})})}async function MKt(a){return Uo(`/api/issues/${a}/supplement`)}async function PKt(a,d){return Uo(`/api/issues/${a}/supplement`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})}async function DKt(a){const d=new URLSearchParams;return a.search&&d.set("search",a.search),d.set("page",String(a.page??1)),d.set("per_page",String(a.perPage)),Uo(`/api/gongfeng/issues?${d.toString()}`)}async function OKt(a){return bl("/api/issues/start",a)}async function xwt(a,d){return Uo(`/api/issues/${a}/note-sync`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:d})})}async function LKt(a){return Uo("/api/system/note-sync",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:a})})}async function $wt(a,d){return Uo(`/api/issues/${a}/e2e`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:d})})}async function NKt(a,d){return Uo("/api/system/feature-toggle",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({feature:a,enabled:d})})}async function RKt(a){return bl("/api/brainstorm/sessions",{transcript:a})}async function FKt(a){return Uo(`/api/brainstorm/sessions/${a}`)}function P2e(a,d,b){const m=new AbortController,w=`/api/brainstorm/sessions/${a}/${d}`;return{fetchResponse:fetch(w,{method:"POST",headers:{"Content-Type":"application/json"},body:b?JSON.stringify(b):"{}",signal:m.signal}),abort:()=>m.abort()}}async function BKt(a,d,b=!0){return bl(`/api/brainstorm/sessions/${a}/create-issue`,{title:d,addAutoFinishLabel:b})}async function HKt(a){return bl("/api/chat/sessions",{title:a})}async function GKt(){return Uo("/api/chat/sessions")}async function Fgt(a){return Uo(`/api/chat/sessions/${a}`)}async function JKt(a){return Uo(`/api/chat/sessions/${a}`,{method:"DELETE"})}function UKt(a,d){const b=new AbortController;return{fetchResponse:fetch(`/api/chat/sessions/${a}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:d}),signal:b.signal}),abort:()=>b.abort()}}async function zKt(a){const d=new URLSearchParams;a?.q&&d.set("q",a.q),a?.type&&d.set("type",a.type);const b=d.toString();return Uo("/api/knowledge/entries"+(b?"?"+b:""))}async function qKt(a){return Uo("/api/knowledge/entries/"+a)}async function VKt(a){return bl("/api/knowledge/entries",a)}async function KKt(a,d){return Uo("/api/knowledge/entries/"+a,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})}async function WKt(a){return Uo("/api/knowledge/entries/"+a,{method:"DELETE"})}async function XKt(a){return bl("/api/knowledge/import/iwiki",{url:a})}async function YKt(a,d){return bl("/api/knowledge/import/gongfeng",{type:a,iid:d})}async function QKt(a){return bl("/api/knowledge/entries/"+a+"/sync")}async function ZKt(){return Uo("/api/knowledge/stats")}async function Ewt(){return Uo("/api/domain-model")}async function Bgt(a){return Uo("/api/domain-model",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}function eWt(a=!1){const d=new AbortController;return{fetchResponse:fetch(`/api/domain-model/analyze${a?"?refine=true":""}`,{method:"POST",signal:d.signal}),abort:()=>d.abort()}}async function tWt(){return bl("/api/domain-model/confirm")}async function nWt(a){await bl(`/api/issues/${a}/mark-deployed`)}async function iWt(a){return bl(`/api/issues/${a}/restart-preview`)}async function rWt(a){await bl(`/api/issues/${a}/stop-preview`)}async function sWt(){return bl("/api/system/reload-config")}async function oWt(a){const d=a!=null?`?issueIid=${a}`:"";return Uo(`/api/e2e-artifacts${d}`)}async function cWt(a,d){const b=d!=null?`?issueIid=${d}`:"";return Uo(`/api/e2e-artifacts/${encodeURIComponent(a)}/files${b}`)}function _W(a,d,b){const m=b!=null?`?issueIid=${b}`:"";return`/api/e2e-artifacts/${encodeURIComponent(a)}/file/${d}${m}`}function Hgt(a,d){const b=d!=null?`?issueIid=${d}`:"";return`/api/e2e-scenarios/file/${a}${b}`}async function uWt(){return Uo("/api/distill/status")}async function lWt(a){const d=new URLSearchParams;a?.outcome&&d.set("outcome",a.outcome),a?.distilled&&d.set("distilled",a.distilled),d.set("limit",String(a.limit)),a?.offset&&d.set("offset",String(a.offset));const b=d.toString();return Uo("/api/distill/diaries"+(b?"?"+b:""))}async function aWt(a){return Uo("/api/distill/diaries/"+a)}async function fWt(a){return Uo("/api/distill/diaries/"+a,{method:"DELETE"})}function dWt(){const a=new AbortController;return{fetchResponse:fetch("/api/distill/run",{method:"POST",signal:a.signal}),abort:()=>a.abort()}}async function hWt(a,d){return bl("/api/distill/search",{query:a,topK:d})}async function gWt(){return Uo("/api/system-usecase")}async function bWt(a){return Uo("/api/system-usecase",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}async function pWt(){return bl("/api/system-usecase/confirm")}async function wWt(){return bl("/api/system-usecase/suggest-associations")}const vWt={"app.trackedIssues":"已跟踪 Issue","app.browseIssues":"选择新 Issue","app.brainstorm":"脑暴工坊","app.chat":"智能助手","app.knowledge":"知识库","app.distill":"知识蒸馏","header.connected":"已连接","header.disconnected":"未连接","header.discovery":"发现","header.drive":"驱动","header.uptime":"运行时间","header.syncOnTitle":"Issue 同步已开启(点击关闭)","header.syncOffTitle":"Issue 同步已关闭(点击开启)","header.syncOn":"Issue同步: 开","header.syncOff":"Issue同步: 关","header.langSwitch":"切换语言","stats.total":"总计","stats.active":"进行中","stats.completed":"已完成","stats.failed":"失败","table.filter":"筛选:","table.title":"标题","table.state":"状态","table.progress":"阶段进度","table.retries":"重试","table.updatedAt":"更新时间","table.actions":"操作","table.empty":"暂无 Issue 记录","table.viewInGongfeng":"在工蜂中查看","table.start":"开始处理","table.retry":"重试","table.restart":"重来","table.cancel":"取消","filter.all":"全部","filter.active":"处理中","filter.completed":"已完成","filter.failed":"失败","filter.review":"待审核","filter.deployed":"已上线","browse.searchPlaceholder":"搜索 Issue 标题...","browse.loading":"加载中...","browse.search":"搜索","browse.loadingList":"正在从工蜂加载 Issue 列表...","browse.title":"标题","browse.labels":"标签","browse.author":"作者","browse.createdAt":"创建时间","browse.actions":"操作","browse.empty":"暂无 Issue","browse.tracked":"已跟踪","browse.start":"开始处理","browse.pagination":"共 {total} 条,第 {page} / {totalPages} 页","browse.prevPage":"上一页","browse.nextPage":"下一页","start.title":"开始处理 Issue #{iid}","start.issueTitle":"标题","start.descPreview":"描述预览","start.supplement":"补充信息(可选)","start.requirements":"补充需求说明","start.requirementsPlaceholder":"对 Issue 描述的补充或澄清...","start.acceptance":"验收标准","start.acceptancePlaceholder":"完成后需要满足的验收标准...","start.scope":"变更范围","start.scopePlaceholder":"例: 仅后端、仅前端、前后端...","start.constraints":"约束条件","start.constraintsPlaceholder":"技术约束、兼容性要求等...","start.references":"参考链接","start.referencesPlaceholder":"相关文档、设计稿链接等...","start.freeText":"自由补充","start.freeTextPlaceholder":"其他任何需要 AI 知道的信息...","start.tapdId":"TAPD 单号","start.tapdIdPlaceholder":"如 12345678,用于 MR 关联 TAPD(可选)","start.cancel":"取消","start.processing":"处理中...","start.submit":"开始处理","detail.viewInGongfeng":"在工蜂中查看","detail.basicInfo":"基本信息","detail.title":"标题:","detail.branch":"分支:","detail.state":"状态:","detail.createdAt":"创建时间:","detail.retries":"重试次数:","detail.updatedAt":"更新时间:","detail.noteSync":"同步处理结果到 Issue","detail.enabled":"开启","detail.disabled":"关闭","detail.followSystem":"跟随系统","detail.e2eTitle":"E2E UI 自动验收","detail.e2eArtifacts":"E2E 测试产物","detail.e2eRuns":"次运行","detail.e2eImages":"张截图","detail.e2eVideos":"个视频","detail.e2eDocuments":"个文档","detail.e2eRunDocuments":"运行日志与报告","detail.e2eScreenshots":"截图","detail.e2eVideoRecordings":"操作录像","detail.e2eScenarios":"剧本与脚本","detail.e2eScenariosLabel":"剧本","detail.e2eScriptsLabel":"验证脚本","detail.e2eNoMedia":"本次运行无产物","detail.scenarioViewer":"剧本查看器","detail.scenarioOverview":"总览","detail.scenarioMainPath":"主路径剧本","detail.scenarioVerifyBehavior":"验证行为剧本","detail.scenarioVerifyRule":"验证规则剧本","detail.scenarioCoverage":"覆盖详情","detail.scenarioRuleCoverage":"规则列覆盖率","detail.scenarioAllList":"全部剧本","detail.scenarioInherited":"继承","detail.scenarioEmpty":"暂无数据","detail.scenarioPreconditions":"前置条件","detail.scenarioSteps":"操作步骤","detail.scenarioExpectedResults":"预期结果","detail.scenarioNodeCoverage":"节点覆盖","detail.scenarioRuleColumnCoverage":"规则列覆盖","detail.e2eNotConfigured":"E2E 测试工具未配置","detail.e2eNotConfiguredHint":"请在设置中配置 oa_pc_uat 目录路径以启用 E2E 截图和视频采集","detail.e2eNoRuns":"暂无 E2E 测试产物","detail.e2eNoRunsHint":"E2E 测试运行后,截图和操作录像将在此处展示","detail.loading":"加载中...","detail.mrLabel":"合并请求:","detail.linkedMrLabel":"关联仓库合并请求:","detail.errorInfo":"错误信息","detail.start":"开始处理","detail.retry":"重试处理","detail.restart":"清理重来","detail.cancelTrack":"取消跟踪","detail.markDeployed":"已上线","detail.stopPreview":"停止预览","detail.restartPreview":"重启预览","detail.previewLabel":"预览环境","detail.openFullPage":"打开详情页","detail.backToList":"← 返回列表","detail.tab.docs":"文档","detail.tab.review":"审查","detail.tab.supplement":"补充信息","detail.tab.logs":"日志","detail.tab.e2e":"E2E","detail.settings":"设置","detail.mergeRequest":"合并请求","pipeline.title":"流水线进度","pipeline.retryFrom":"从此重试","review.title":"Plan Review - 实施计划审核","review.description":"AI 已完成规划阶段,请审核实施计划后决定是否继续。","review.currentRound":"(当前为第 {round} 轮审核)","review.history":"审核历史","review.roundLabel":"{n} 轮","review.roundPrefix":"第 {round} 轮","review.approve":"通过计划","review.skip":"跳过审核","review.feedbackLabel":"审核反馈(拒绝时必填)","review.feedbackPlaceholder":"输入修改意见,AI 将根据反馈重新规划...","review.reject":"拒绝并重新规划","review.submitting":"处理中...","supplement.title":"补充信息","supplement.edit":"编辑","supplement.saving":"保存中...","supplement.save":"保存","supplement.cancel":"取消","supplement.loading":"加载中...","supplement.requirements":"补充需求:","supplement.acceptance":"验收标准:","supplement.scope":"变更范围:","supplement.constraints":"约束条件:","supplement.references":"参考链接:","supplement.freeText":"其他:","supplement.tapdId":"TAPD 单号:","supplement.empty":'暂无补充信息,点击"编辑"添加',"supplement.requirementsLabel":"补充需求说明","supplement.acceptanceLabel":"验收标准","supplement.scopeLabel":"变更范围","supplement.constraintsLabel":"约束条件","supplement.referencesLabel":"参考链接","supplement.freeTextLabel":"自由补充","supplement.tapdIdLabel":"TAPD 单号","supplement.tapdIdPlaceholder":"如 12345678,用于 MR 关联 TAPD(可选)","planDoc.title":"计划文档","planDoc.edit":"编辑","planDoc.saving":"保存中...","planDoc.save":"保存","planDoc.cancel":"取消","planDoc.fullscreen":"全屏查看","planDoc.expand":"展开","planDoc.loading":"加载中...","planDoc.editPlaceholder":"编辑文档内容...","planDoc.selectTab":"点击标签页查看文档","planDoc.closeFullscreen":"关闭全屏 (Esc)","planDoc.noReviewFeedback":"暂无审核反馈(计划未被拒绝过)","planDoc.verifyNotGenerated":"验证报告尚未生成","planDoc.fetchFailed":"获取原始文档失败:","planDoc.saveFailed":"保存失败:","agentLog.title":"Agent 实时输出","agentLog.autoScroll":"自动置顶","agentLog.clear":"清空","agentLog.ended":"任务已结束,无实时输出记录","agentLog.finalState":"最终状态:","agentLog.currentState":"当前状态:","agentLog.waiting":"等待 Agent 输出...","agentLog.count":"{count} 条记录","agentLog.type.assistant":"AI 回复","agentLog.type.tool_use":"工具调用","agentLog.type.tool_result":"工具结果","agentLog.type.result":"最终结果","agentLog.type.stderr":"日志","agentLog.type.raw":"输出","agentLog.type.system":"系统","agentLog.type.partial":"输出中","agentLog.type.thinking":"思考中","state.skipped":"已跳过","state.pending":"待处理","state.branch_created":"分支已创建","state.analyzing":"分析中","state.analysis_done":"分析完成","state.designing":"设计中","state.design_done":"设计完成","state.implementing":"实施中","state.implement_done":"实施完成","state.planning":"规划中","state.plan_done":"规划完成","state.waiting_for_review":"待审核","state.review_approved":"审核通过","state.building":"实施中","state.build_done":"实施完成","state.verifying":"验证中","state.completed":"已完成","state.failed":"失败","state.phase_running":"阶段执行中","state.phase_done":"阶段完成","state.phase_waiting":"待审核","state.phase_approved":"审核通过","state.deployed":"已上线","state.resolving_conflict":"冲突修复中","phase.analysis":"分析","phase.design":"设计","phase.implement":"实施","phase.verify":"验证","phase.plan":"规划","phase.review":"审核","phase.build":"实施","phase.release":"发布","verify.loopStarted":"验证-修复循环启动(最多 {max} 轮)","verify.iterationPassed":"第 {n} 轮验证通过","verify.iterationFailed":"第 {n} 轮验证未通过: {reasons}","verify.loopExhausted":"验证-修复循环已达上限({n} 轮),仍有问题未解决","verify.loopBadgeTooltip":"修复轮次 {n}/{max}","planFile.01-analysis.md":"需求分析","planFile.02-design.md":"系统设计","planFile.03-todolist.md":"实施清单","planFile.04-verify-report.md":"验证报告","planFile.01-plan.md":"实施计划","planFile.02-verify-report.md":"验证报告","planFile.review-feedback.md":"审核反馈","planFile.03-release-detect.json":"发布检测报告","planFile.04-release-report.md":"发布报告","confirm.supplementSaved":"补充信息已保存。是否从分析阶段重新执行?","confirm.start":"确定要开始处理 Issue #{iid} 吗?","confirm.retry":"确定要重试 Issue #{iid} 吗?","confirm.cancel":"确定要取消跟踪 Issue #{iid} 吗?","confirm.restart":`确定要清理上下文并重来 Issue #{iid} 吗?
2
+ 这将删除 worktree、分支,并将 issue 重置为待处理状态。`,"confirm.retryFromPhase":'确定要从"{phaseLabel}"阶段重试 Issue #{iid} 吗?',"confirm.approve":"确定要通过 Issue #{iid} 的实施计划吗?","confirm.reject.noFeedback":"请输入审核反馈","confirm.skip":"确定要跳过 Issue #{iid} 的审核吗?","alert.saveFailed":"保存失败: ","alert.retryFailed":"重试失败: ","alert.cancelFailed":"取消失败: ","alert.restartFailed":"重来失败: ","alert.retryFromPhaseFailed":"分阶段重试失败: ","alert.approveFailed":"审批失败: ","alert.rejectFailed":"拒绝失败: ","alert.skipFailed":"跳过失败: ","alert.startFailed":"启动失败: ","confirm.markDeployed":"标记 Issue #{iid} 为已上线?将清理 worktree 并关闭工蜂 Issue。","alert.markDeployedFailed":"标记已上线失败: ","alert.restartPreviewFailed":"重启预览失败: ","alert.stopPreviewFailed":"停止预览失败: ","setup.title":"Issue Auto-Finish 初始化配置","setup.step.envCheck":"环境检查","setup.step.projectConfig":"项目配置","setup.step.gongfengConfig":"工蜂配置","setup.step.aiRunner":"AI 编程工具","setup.step.advancedOptions":"高级选项","setup.step.reviewConfirm":"确认配置","setup.complete.title":"配置完成","setup.complete.savedTo":"配置文件已保存到:","setup.complete.startHint":"使用以下命令启动服务:","setup.env.checking":"正在检查系统依赖...","setup.env.checkingShort":"检查中...","setup.env.install":"安装","setup.env.installing":"安装中...","setup.env.waitingOutput":"等待输出...","setup.env.refresh":"刷新","setup.env.viewLogs":"查看日志","setup.env.installSuccess":"安装成功","setup.env.installFailed":"安装失败","setup.env.retry":"重试","setup.env.logPanel":"安装日志","setup.env.closePanel":"关闭","setup.env.installAll":"一键安装全部","setup.env.aiCliGroup":"AI CLI 工具","setup.env.toolchainGroup":"基础工具链","setup.env.installFirst":"优先安装","setup.env.phaseAiCli":"AI CLI","setup.env.phaseToolchain":"工具链","setup.env.phaseAiFallback":"AI 辅助安装","setup.env.emptyResponse":"未收到服务端数据,连接可能中断。请刷新页面后重试。","setup.env.notInstalled":"未安装","setup.env.copied":"已复制","setup.env.manualInstallRefreshHint":"安装完成后,请点击下方「刷新检测状态」按钮更新结果","setup.env.refreshStatus":"刷新检测状态","setup.env.required":"必需","setup.env.optional":"可选","setup.env.loginAfterInstall":"安装后请自行在终端完成登录","setup.project.workDir":"代码仓库路径 *","setup.project.workDirPlaceholder":"/data/user01/myrepo/app/my-service","setup.project.workDirHint":"AI Agent 实际编写代码的目录(绝对路径)。示例:/data/user01/myrepo 或 monorepo 子项目 /data/user01/myrepo/app/my-service","setup.project.advancedToggle":"高级设置(Monorepo / 分支等)","setup.project.advancedHint":"以下选项大部分场景无需修改,留空即可使用默认值","setup.project.gitRootDir":"Git 仓库根目录","setup.project.gitRootDirPlaceholder":"如 /data/user01/myrepo,留空则与代码仓库路径相同","setup.project.gitRootDirHint":"仅 Monorepo 需填:当 .git 所在目录与代码目录不同时填写。例如代码在 /data/user01/myrepo/app/my-service,但 .git 在 /data/user01/myrepo,则填后者","setup.project.baseBranch":"基础分支","setup.project.baseBranchHint":"创建特性分支的基准分支,默认 master","setup.project.branchPrefix":"分支前缀","setup.project.branchPrefixHint":"自动创建的分支名前缀,默认 feat/issue","setup.project.worktreeBaseDir":"临时工作区目录","setup.project.worktreeBaseDirPlaceholder":"如 /data/user01/myrepo-worktrees,留空自动管理","setup.project.worktreeBaseDirHint":"系统为每个 Issue 创建独立 git worktree 的存放目录。建议放在与代码仓库同级的路径下,如 /data/user01/myrepo-worktrees。留空则自动管理","setup.project.projectSubDir":"项目子路径","setup.project.projectSubDirPlaceholder":"如 app/my-service","setup.project.projectSubDirHint":"仅 Monorepo 需填:从 Git 根目录到实际项目的相对路径。例如 Git 根目录是 /data/user01/myrepo,项目在 app/my-service 子目录下,则填 app/my-service","setup.gongfeng.apiUrl":"工蜂 API 地址 *","setup.gongfeng.apiUrlPlaceholder":"如 https://git.example.com","setup.gongfeng.apiUrlHint":"工蜂 GitLab 的访问地址。如 https://git.example.com,一般无需修改","setup.gongfeng.privateToken":"Access Token *","setup.gongfeng.tokenPlaceholder":"输入你的 Access Token(如 AbCdEfGhIjKlMnOpQrSt)","setup.gongfeng.tokenHint":"在工蜂「设置 → Access Tokens」中创建,需 api 权限。Token 形如 AbCdEfGhIjKlMnOpQrSt","setup.gongfeng.verify":"验证","setup.gongfeng.tokenValid":"Token 验证通过","setup.gongfeng.tokenInvalid":"Token 验证失败","setup.gongfeng.projectPath":"仓库路径 *","setup.gongfeng.projectPathPlaceholder":"如 myteam/my-project","setup.gongfeng.projectPathHint":"工蜂仓库 URL 中的路径部分。例如仓库地址是 https://git.example.com/myteam/my-project,则填 myteam/my-project","setup.gongfeng.repoFound":"仓库已找到","setup.gongfeng.repoNotFound":"仓库未找到","setup.ai.modeLabel":"选择 AI 编程工具","setup.ai.claudeInternal":"Claude Internal","setup.ai.claudeInternalDesc":"内部部署的 Claude,适合无 IDE 的服务器环境","setup.ai.cursorAgent":"Cursor Agent","setup.ai.cursorAgentDesc":"通过 Cursor IDE 驱动,需运行在有 Cursor 的环境","setup.ai.codebuddy":"CodeBuddy","setup.ai.codebuddyDesc":"腾讯 CodeBuddy AI 编程助手","setup.ai.model":"AI 模型","setup.ai.modelHint":"AI 使用的模型名称,默认 Claude-4.6-Opus","setup.ai.cliStatus":"工具安装状态","setup.ai.authLoggedIn":"已登录","setup.ai.authNotLoggedIn":"未登录","setup.ai.authUnknown":"无法检测登录状态","setup.ai.authLoginHint":"当前未登录,请自行在终端中完成 AI CLI 工具的登录。","setup.ai.authRefresh":"刷新状态","setup.ai.authWarning":"AI CLI 工具未登录,启动服务后将无法正常调用 AI。请先在终端中完成登录。","setup.ai.authCopied":"已复制","setup.advanced.defaultHint":"以下为高级选项,默认值已适合大部分场景。如无特殊需求,可直接跳过。","setup.advanced.toggleLabel":"展开高级选项","setup.advanced.discoveryInterval":"扫描新 Issue 的间隔 (ms)","setup.advanced.discoveryIntervalHint":"多久检查一次工蜂是否有新的 auto-finish Issue,默认 60 秒","setup.advanced.driveInterval":"任务推进间隔 (ms)","setup.advanced.driveIntervalHint":"多久检查一次进行中的任务并推进下一步,默认 15 秒","setup.advanced.maxRetries":"失败自动重试次数","setup.advanced.maxRetriesHint":"任务失败后自动重试的最大次数","setup.advanced.maxConcurrent":"同时处理的 Issue 上限","setup.advanced.maxConcurrentHint":"最多同时并行处理多少个 Issue","setup.advanced.webPort":"Web 管理面板端口","setup.advanced.webPortHint":"管理面板的访问端口,默认 3000。配置后通过 http://<服务器IP>:<端口> 访问","setup.advanced.pipelineMode":"处理模式","setup.advanced.pipelineAuto":"自动(根据 AI 工具自动选择,推荐)","setup.advanced.pipelineClassic":"经典(分析 → 设计 → 实施 → 验证)","setup.advanced.pipelinePlanMode":"计划(规划 → 人工审核 → 实施 → 验证)","setup.advanced.pipelineModeHint":"选择 AI 处理 Issue 的工作流模式","setup.advanced.enableReview":"AI 完成规划后需人工审核","setup.advanced.enableReviewHint":"开启后,AI 的实施方案需要你在面板上审核通过才会继续执行","setup.advanced.enableRelease":"启用发布阶段","setup.advanced.enableReleaseHint":"验证完成后,AI 将检测目标项目的发布机制并在确认后执行发布","setup.advanced.phaseTimeout":"单阶段最大执行时间 (ms)","setup.advanced.phaseTimeoutHint":"AI 执行单个阶段的超时时间,默认 1800000(30 分钟)","setup.confirm.reviewHint":"请确认将要生成的配置:","setup.nav.back":"上一步","setup.nav.next":"下一步","setup.nav.saving":"保存中...","setup.nav.complete":"完成配置","settings.title":"配置管理","settings.loading":"加载配置中...","settings.save":"保存配置","settings.saving":"保存中...","settings.applying":"生效中...","settings.saved":"配置已保存","settings.savedHint":"部分配置变更需要重启服务才能生效。","settings.savedAndApplied":"配置已保存并立即生效。","settings.savedPendingHint":"配置已保存,等待当前任务完成后自动生效。","settings.saveFailed":"保存失败","settings.section.project":"项目配置","settings.section.gongfeng":"工蜂配置","settings.section.ai":"AI 编程工具","settings.section.workspace":"工作区配置","settings.section.e2e":"E2E 端对端测试","settings.section.advanced":"高级选项","settings.section.experimental":"实验功能","settings.experimental.hint":"切换立即生效,重启服务后恢复为配置文件的值","settings.experimental.brainstorm":"脑暴工坊","settings.experimental.braindump":"Braindump","settings.experimental.chat":"智能助手","settings.experimental.knowledge":"知识库","settings.experimental.distill":"知识蒸馏","settings.configPath":"配置文件路径:","settings.restartHint":"修改后需重启服务才能生效","settings.autoApplyHint":"保存后自动生效,正在执行的任务不受影响","settings.tokenMasked":"(已配置,点击修改)","settings.workspace.active":"已启用","settings.workspace.notConfigured":"未配置","settings.workspace.hint":"配置多仓库工作区,支持主仓 + 关联仓模式。配置后将在处理 issue 时同步操作多个仓库。","settings.workspace.configPath":"工作区配置文件:","settings.workspace.validationFailed":"工作区配置校验失败","settings.workspace.primaryRepo":"主仓库","settings.workspace.associateRepos":"关联仓库","settings.workspace.addRepo":"添加关联仓库","settings.workspace.removeRepo":"移除","settings.workspace.noAssociates":"暂无关联仓库,点击上方按钮添加","settings.workspace.repoName":"仓库名称","settings.workspace.projectPath":"工蜂项目路径","settings.workspace.projectPathPlaceholder":"例: group/repo-name","settings.workspace.localGitRoot":"本地 Git 仓库路径","settings.workspace.localGitRootPlaceholder":"例: /data/projects/repo-name","settings.workspace.baseBranch":"基准分支","settings.workspace.branchPrefix":"分支前缀","settings.workspace.projectSubDir":"项目子目录","settings.workspace.projectSubDirPlaceholder":"留空表示根目录","settings.workspace.role":"角色描述","settings.workspace.rolePlaceholder":"例: 契约仓、配置仓","settings.workspace.advancedToggle":"分支与子目录","settings.workspace.required":"必填","settings.workspace.optional":"选填","settings.workspace.repoCount":"{count} 个","settings.workspace.confirmRemove":"确认移除此关联仓库?","settings.workspace.collapsed":"点击展开编辑","settings.e2e.configured":"已配置","settings.e2e.hint":"配置 oa_pc_uat 端对端测试工具路径。配置后,AI Agent 在验证阶段将自动读取 oa_pc_uat 的 skill,按其流程执行增量 E2E 测试。","settings.e2e.uatVendorDir":"oa_pc_uat 目录","settings.e2e.uatVendorDirPlaceholder":"例如: vendor/oa_pc_uat 或绝对路径","settings.e2e.uatVendorDirHint":"存放 oa_pc_uat 源码的目录,包含 main.py 和 .cursor/skills/oa-web-uat/SKILL.md","settings.e2e.uatConfigFile":"配置文件路径 (可选)","settings.e2e.uatConfigFilePlaceholder":"例如: vendor/oa_pc_uat/config.json","settings.e2e.uatConfigFileHint":"oa_pc_uat 的 config.json 路径,留空则自动查找 vendor 目录下的 config.json","settings.e2e.pythonBin":"Python 可执行文件","settings.e2e.pythonBinPlaceholder":"例如: python3 或 python3.9","settings.e2e.pythonBinHint":"Playwright 需要 Python 3.8+,系统默认 python3 版本过低时可指定高版本路径","settings.e2e.skillDetected":"oa_pc_uat Skill 将在 Verify 阶段自动注入 AI Agent prompt","settings.e2e.skillDetectedHint":"AI Agent 会按照 skill 定义的流程(影响面分析 → 增量剧本生成 → 执行 → REPL 排障)自动完成 E2E 验证","settings.e2e.oneClickSetup":"一键安装","settings.e2e.oneClickSetupHint":"自动克隆仓库、安装 Python 依赖和浏览器、写入配置","settings.e2e.setupRunning":"安装中...","settings.e2e.setupSuccess":"安装完成,配置已自动填充","settings.e2e.setupFailed":"安装失败","settings.e2e.showLogs":"查看日志","settings.e2e.hideLogs":"收起日志","settings.e2e.step.clone":"克隆/更新 oa_pc_uat","settings.e2e.step.detectPython":"检测 Python 版本","settings.e2e.step.installPw":"安装 Playwright","settings.e2e.step.installBrowser":"安装 Chromium 浏览器","settings.e2e.step.configure":"写入配置","settings.e2e.step.reload":"重载配置","header.settings":"配置管理","brainstorm.startRecording":"开始录音","brainstorm.stopRecording":"停止录音","brainstorm.voiceNotSupported":"当前浏览器不支持语音识别,请使用 Chrome 或 Edge,或直接输入文字","brainstorm.clear":"清空","brainstorm.recording":"录音中...","brainstorm.transcriptLabel":"想法描述","brainstorm.transcriptPlaceholder":"在这里输入或通过语音录入你的想法...乱的、不连贯的都没关系","brainstorm.startGenerate":"开始生成 SDD","brainstorm.step1":"倾倒想法","brainstorm.step2":"AI 精炼","brainstorm.step3":"创建 Issue","brainstorm.roundCount":"已完成 {count} 轮精炼","brainstorm.statusGenerating":"正在生成 SDD...","brainstorm.statusReviewing":"正在审查...","brainstorm.statusRefining":"正在精炼...","brainstorm.statusProcessing":"处理中...","brainstorm.abort":"中止","brainstorm.manualReview":"手动审查","brainstorm.manualRefine":"手动精炼","brainstorm.finishAndCreate":"完成并创建 Issue","brainstorm.sddTitle":"软件设计文档 (SDD)","brainstorm.sddEmpty":"SDD 尚未生成","brainstorm.questionsTitle":"审查问题","brainstorm.questionsEmpty":"尚未进行审查","brainstorm.roundHistory":"查看历史轮次","brainstorm.roundLabel":"第 {n} 轮","brainstorm.issueTitleLabel":"Issue 标题","brainstorm.issueTitlePlaceholder":"输入 Issue 标题(留空则自动从 SDD 提取)","brainstorm.addAutoFinishLabel":"添加 auto-finish 标签(系统将自动处理)","brainstorm.sddPreview":"SDD 预览","brainstorm.backToRefine":"返回精炼","brainstorm.createIssueOnly":"仅创建 Issue","brainstorm.createAndStart":"创建并启动处理","brainstorm.creating":"创建中...","brainstorm.issueCreated":"Issue 创建成功!","brainstorm.startNew":"开始新的脑暴","chat.newChat":"新对话","chat.expandSidebar":"展开侧栏","chat.collapseSidebar":"收起侧栏","chat.deleteSession":"删除会话","chat.messagesCount":"条消息","chat.noSessions":"暂无会话","chat.welcome":"智能助手","chat.welcomeHint":'输入问题开始对话,或点击左侧"新对话"创建会话',"chat.inputPlaceholder":"输入消息... (Enter 发送,Shift+Enter 换行)","chat.send":"发送","chat.stop":"停止","chat.streaming":"输出中...","chat.thinking.connecting":"正在连接 AI...","chat.thinking.connected":"AI 已连接,思考中...","chat.thinking.processing":"AI 正在思考...","distill.statusTitle":"蒸馏状态","distill.diaries":"日记","distill.memories":"记忆","distill.rules":"规则","distill.vectors":"向量","distill.undistilled":"未蒸馏","distill.lastRun":"上次蒸馏","distill.nextRun":"下次预计","distill.neverRun":"从未运行","distill.runButton":"立即蒸馏","distill.running":"蒸馏中...","distill.runStarted":"蒸馏已开始","distill.runMemory":"记忆蒸馏: 处理 {diaries} 条日记, {actions} 个操作","distill.runRule":"规则蒸馏: 处理 {memories} 条记忆, {actions} 个操作","distill.runVector":"向量索引: {indexed} 条","distill.runDone":"蒸馏完成","distill.runEmpty":"暂无可蒸馏的日记数据","distill.runError":"蒸馏出错: {error}","distill.searchPlaceholder":"语义搜索知识...","distill.searchButton":"搜索","distill.searchResults":"搜索结果","distill.searchEmpty":"未找到匹配的知识","distill.filterAll":"全部","distill.filterCompleted":"成功","distill.filterFailed":"失败","distill.filterDistilled":"已蒸馏","distill.filterUndistilled":"未蒸馏","distill.diaryDetail":"日记详情","distill.issueIid":"Issue","distill.title":"标题","distill.branch":"分支","distill.pipelineMode":"流水线","distill.outcome":"结果","distill.outcomeCompleted":"成功","distill.outcomeFailed":"失败","distill.mrUrl":"合并请求","distill.timing":"执行效率","distill.totalDuration":"总耗时","distill.failure":"失败信息","distill.failedAtPhase":"失败阶段","distill.errorMessage":"错误信息","distill.retryCount":"重试次数","distill.interventions":"人工介入","distill.interventionType.review-approve":"审核通过","distill.interventionType.review-reject":"审核驳回","distill.interventionType.retry":"重试","distill.interventionType.supplement":"补充信息","distill.interventionType.webhook-command":"Webhook 命令","distill.summary":"产物摘要","distill.distilledStatus":"蒸馏状态","distill.createdAt":"创建时间","distill.diaryEmpty":"暂无日记记录","distill.deleteDiary":"删除日记","distill.confirmDelete":"确定要删除这条日记吗?","distill.score":"相关度","distill.sourceType":"来源类型","distill.close":"关闭"},mWt={"app.trackedIssues":"Tracked Issues","app.browseIssues":"Browse Issues","app.brainstorm":"Brainstorm","app.chat":"Chat Assistant","app.knowledge":"Knowledge Base","app.distill":"Distillation","header.connected":"Connected","header.disconnected":"Disconnected","header.discovery":"Discovery","header.drive":"Drive","header.uptime":"Uptime","header.syncOnTitle":"Issue sync is ON (click to disable)","header.syncOffTitle":"Issue sync is OFF (click to enable)","header.syncOn":"Sync: ON","header.syncOff":"Sync: OFF","header.langSwitch":"Switch Language","stats.total":"Total","stats.active":"In Progress","stats.completed":"Completed","stats.failed":"Failed","table.filter":"Filter:","table.title":"Title","table.state":"State","table.progress":"Phase Progress","table.retries":"Retries","table.updatedAt":"Updated","table.actions":"Actions","table.empty":"No issues tracked yet","table.viewInGongfeng":"View in Gongfeng","table.start":"Start","table.retry":"Retry","table.restart":"Restart","table.cancel":"Cancel","filter.all":"All","filter.active":"Active","filter.completed":"Completed","filter.failed":"Failed","filter.review":"In Review","filter.deployed":"Deployed","browse.searchPlaceholder":"Search issue title...","browse.loading":"Loading...","browse.search":"Search","browse.loadingList":"Loading issues from Gongfeng...","browse.title":"Title","browse.labels":"Labels","browse.author":"Author","browse.createdAt":"Created","browse.actions":"Actions","browse.empty":"No issues found","browse.tracked":"Tracked","browse.start":"Start Processing","browse.pagination":"{total} total, page {page} / {totalPages}","browse.prevPage":"Previous","browse.nextPage":"Next","start.title":"Start Processing Issue #{iid}","start.issueTitle":"Title","start.descPreview":"Description Preview","start.supplement":"Supplement (Optional)","start.requirements":"Additional Requirements","start.requirementsPlaceholder":"Supplement or clarify the issue description...","start.acceptance":"Acceptance Criteria","start.acceptancePlaceholder":"Criteria to meet upon completion...","start.scope":"Change Scope","start.scopePlaceholder":"e.g. backend only, frontend only, full-stack...","start.constraints":"Constraints","start.constraintsPlaceholder":"Technical constraints, compatibility requirements...","start.references":"References","start.referencesPlaceholder":"Related docs, design mockup links...","start.freeText":"Additional Notes","start.freeTextPlaceholder":"Any other info for the AI...","start.tapdId":"TAPD ID","start.tapdIdPlaceholder":"e.g. 12345678, for MR TAPD association (optional)","start.cancel":"Cancel","start.processing":"Processing...","start.submit":"Start Processing","detail.viewInGongfeng":"View in Gongfeng","detail.basicInfo":"Basic Info","detail.title":"Title:","detail.branch":"Branch:","detail.state":"State:","detail.createdAt":"Created:","detail.retries":"Retries:","detail.updatedAt":"Updated:","detail.noteSync":"Sync results to Issue","detail.enabled":"On","detail.disabled":"Off","detail.followSystem":"Follow System","detail.e2eTitle":"E2E UI Auto-verification","detail.e2eArtifacts":"E2E Test Artifacts","detail.e2eRuns":"runs","detail.e2eImages":"screenshots","detail.e2eVideos":"videos","detail.e2eDocuments":"documents","detail.e2eRunDocuments":"Run Logs & Reports","detail.e2eScreenshots":"Screenshots","detail.e2eVideoRecordings":"Video Recordings","detail.e2eScenarios":"Scenarios & Scripts","detail.e2eScenariosLabel":"Scenarios","detail.e2eScriptsLabel":"Test Scripts","detail.e2eNoMedia":"No artifacts in this run","detail.scenarioViewer":"Scenario Viewer","detail.scenarioOverview":"Overview","detail.scenarioMainPath":"Main Path","detail.scenarioVerifyBehavior":"Verify Behavior","detail.scenarioVerifyRule":"Verify Rule","detail.scenarioCoverage":"Coverage","detail.scenarioRuleCoverage":"Rule Column Coverage","detail.scenarioAllList":"All Scenarios","detail.scenarioInherited":"Inherited","detail.scenarioEmpty":"No data","detail.scenarioPreconditions":"Preconditions","detail.scenarioSteps":"Operating Steps","detail.scenarioExpectedResults":"Expected Results","detail.scenarioNodeCoverage":"Node Coverage","detail.scenarioRuleColumnCoverage":"Rule Column Coverage","detail.e2eNotConfigured":"E2E test tool not configured","detail.e2eNotConfiguredHint":"Configure the oa_pc_uat directory path in Settings to enable E2E screenshot and video capture","detail.e2eNoRuns":"No E2E test artifacts yet","detail.e2eNoRunsHint":"Screenshots and video recordings will appear here after E2E tests are run","detail.loading":"Loading...","detail.mrLabel":"Merge Request:","detail.linkedMrLabel":"Linked Repo Merge Requests:","detail.errorInfo":"Error Info","detail.start":"Start Processing","detail.retry":"Retry","detail.restart":"Clean & Restart","detail.cancelTrack":"Untrack","detail.markDeployed":"Mark Deployed","detail.stopPreview":"Stop Preview","detail.restartPreview":"Restart Preview","detail.previewLabel":"Preview","detail.openFullPage":"Open Detail Page","detail.backToList":"← Back to List","detail.tab.docs":"Docs","detail.tab.review":"Review","detail.tab.supplement":"Supplement","detail.tab.logs":"Logs","detail.tab.e2e":"E2E","detail.settings":"Settings","detail.mergeRequest":"Merge Request","pipeline.title":"Pipeline Progress","pipeline.retryFrom":"Retry from here","review.title":"Plan Review","review.description":"AI has completed the planning phase. Please review the implementation plan before proceeding.","review.currentRound":"(Currently round {round})","review.history":"Review History","review.roundLabel":"Round {n}","review.roundPrefix":"Round {round}","review.approve":"Approve Plan","review.skip":"Skip Review","review.feedbackLabel":"Review Feedback (required when rejecting)","review.feedbackPlaceholder":"Enter feedback, AI will re-plan based on it...","review.reject":"Reject & Re-plan","review.submitting":"Submitting...","supplement.title":"Supplement Info","supplement.edit":"Edit","supplement.saving":"Saving...","supplement.save":"Save","supplement.cancel":"Cancel","supplement.loading":"Loading...","supplement.requirements":"Requirements:","supplement.acceptance":"Acceptance:","supplement.scope":"Scope:","supplement.constraints":"Constraints:","supplement.references":"References:","supplement.freeText":"Other:","supplement.tapdId":"TAPD ID:","supplement.empty":'No supplement info. Click "Edit" to add.',"supplement.requirementsLabel":"Additional Requirements","supplement.acceptanceLabel":"Acceptance Criteria","supplement.scopeLabel":"Change Scope","supplement.constraintsLabel":"Constraints","supplement.referencesLabel":"References","supplement.freeTextLabel":"Additional Notes","supplement.tapdIdLabel":"TAPD ID","supplement.tapdIdPlaceholder":"e.g. 12345678, for MR TAPD association (optional)","planDoc.title":"Plan Documents","planDoc.edit":"Edit","planDoc.saving":"Saving...","planDoc.save":"Save","planDoc.cancel":"Cancel","planDoc.fullscreen":"Fullscreen","planDoc.expand":"Expand","planDoc.loading":"Loading...","planDoc.editPlaceholder":"Edit document content...","planDoc.selectTab":"Click a tab to view document","planDoc.closeFullscreen":"Close Fullscreen (Esc)","planDoc.noReviewFeedback":"No review feedback (plan was never rejected)","planDoc.verifyNotGenerated":"Verification report not yet generated","planDoc.fetchFailed":"Failed to fetch document:","planDoc.saveFailed":"Save failed:","agentLog.title":"Agent Live Output","agentLog.autoScroll":"Auto Scroll","agentLog.clear":"Clear","agentLog.ended":"Task ended, no live output","agentLog.finalState":"Final state:","agentLog.currentState":"Current state:","agentLog.waiting":"Waiting for Agent output...","agentLog.count":"{count} entries","agentLog.type.assistant":"AI Reply","agentLog.type.tool_use":"Tool Call","agentLog.type.tool_result":"Tool Result","agentLog.type.result":"Final Result","agentLog.type.stderr":"Log","agentLog.type.raw":"Output","agentLog.type.system":"System","agentLog.type.partial":"Streaming","agentLog.type.thinking":"Thinking","state.skipped":"Skipped","state.pending":"Pending","state.branch_created":"Branch Created","state.analyzing":"Analyzing","state.analysis_done":"Analysis Done","state.designing":"Designing","state.design_done":"Design Done","state.implementing":"Implementing","state.implement_done":"Implementation Done","state.planning":"Planning","state.plan_done":"Plan Done","state.waiting_for_review":"Awaiting Review","state.review_approved":"Review Approved","state.building":"Building","state.build_done":"Build Done","state.verifying":"Verifying","state.completed":"Completed","state.failed":"Failed","state.phase_running":"Phase Running","state.phase_done":"Phase Done","state.phase_waiting":"Awaiting Review","state.phase_approved":"Review Approved","state.deployed":"Deployed","state.resolving_conflict":"Resolving Conflict","phase.analysis":"Analysis","phase.design":"Design","phase.implement":"Implementation","phase.verify":"Verification","phase.plan":"Planning","phase.review":"Review","phase.build":"Build","phase.release":"Release","verify.loopStarted":"Verify-fix loop started (max {max} iterations)","verify.iterationPassed":"Verification passed on iteration {n}","verify.iterationFailed":"Verification failed on iteration {n}: {reasons}","verify.loopExhausted":"Verify-fix loop exhausted after {n} iterations","verify.loopBadgeTooltip":"Fix iteration {n}/{max}","planFile.01-analysis.md":"Requirements Analysis","planFile.02-design.md":"System Design","planFile.03-todolist.md":"Implementation Checklist","planFile.04-verify-report.md":"Verification Report","planFile.01-plan.md":"Implementation Plan","planFile.02-verify-report.md":"Verification Report","planFile.review-feedback.md":"Review Feedback","planFile.03-release-detect.json":"Release Detection Report","planFile.04-release-report.md":"Release Report","confirm.supplementSaved":"Supplement saved. Retry from analysis phase?","confirm.start":"Start processing Issue #{iid}?","confirm.retry":"Retry Issue #{iid}?","confirm.cancel":"Untrack Issue #{iid}?","confirm.restart":`Clean and restart Issue #{iid}?
3
3
  This will delete the worktree, branch, and reset the issue to pending.`,"confirm.retryFromPhase":'Retry Issue #{iid} from "{phaseLabel}" phase?',"confirm.approve":"Approve the implementation plan for Issue #{iid}?","confirm.reject.noFeedback":"Please enter review feedback","confirm.skip":"Skip review for Issue #{iid}?","alert.saveFailed":"Save failed: ","alert.retryFailed":"Retry failed: ","alert.cancelFailed":"Cancel failed: ","alert.restartFailed":"Restart failed: ","alert.retryFromPhaseFailed":"Phase retry failed: ","alert.approveFailed":"Approval failed: ","alert.rejectFailed":"Rejection failed: ","alert.skipFailed":"Skip failed: ","alert.startFailed":"Start failed: ","confirm.markDeployed":"Mark Issue #{iid} as deployed? This will clean up worktree and close the Gongfeng issue.","alert.markDeployedFailed":"Failed to mark deployed: ","alert.restartPreviewFailed":"Restart preview failed: ","alert.stopPreviewFailed":"Stop preview failed: ","setup.title":"Issue Auto-Finish Setup","setup.step.envCheck":"Environment Check","setup.step.projectConfig":"Project Config","setup.step.gongfengConfig":"Gongfeng Config","setup.step.aiRunner":"AI Coding Tool","setup.step.advancedOptions":"Advanced Options","setup.step.reviewConfirm":"Review & Confirm","setup.complete.title":"Setup Complete","setup.complete.savedTo":"Configuration saved to:","setup.complete.startHint":"Start the service with:","setup.env.checking":"Checking required system dependencies...","setup.env.checkingShort":"Checking...","setup.env.install":"Install","setup.env.installing":"Installing...","setup.env.waitingOutput":"Waiting for output...","setup.env.refresh":"Refresh","setup.env.viewLogs":"View Logs","setup.env.installSuccess":"Installed","setup.env.installFailed":"Failed","setup.env.retry":"Retry","setup.env.logPanel":"Install Logs","setup.env.closePanel":"Close","setup.env.installAll":"Install All","setup.env.aiCliGroup":"AI CLI Tools","setup.env.toolchainGroup":"Base Toolchain","setup.env.installFirst":"Install First","setup.env.phaseAiCli":"AI CLI","setup.env.phaseToolchain":"Toolchain","setup.env.phaseAiFallback":"AI-assisted Install","setup.env.emptyResponse":"No data received from server. Connection may have been interrupted. Please refresh and retry.","setup.env.notInstalled":"Not installed","setup.env.copied":"Copied","setup.env.manualInstallRefreshHint":'After installation, click the "Refresh Status" button below to update results',"setup.env.refreshStatus":"Refresh Status","setup.env.required":"Required","setup.env.optional":"Optional","setup.env.loginAfterInstall":"After install, please log in via terminal","setup.project.workDir":"Project Repository Path *","setup.project.workDirPlaceholder":"/data/user01/myrepo/app/my-service","setup.project.workDirHint":"The directory where the AI Agent writes code (absolute path). e.g. /data/user01/myrepo or monorepo sub-project /data/user01/myrepo/app/my-service","setup.project.advancedToggle":"Advanced Settings (Monorepo / Branch etc.)","setup.project.advancedHint":"These options are fine as defaults for most projects. Leave empty to use default values.","setup.project.gitRootDir":"Git Repository Root","setup.project.gitRootDirPlaceholder":"e.g. /data/user01/myrepo, leave empty to use project path","setup.project.gitRootDirHint":"Monorepo only: fill in when .git root differs from the code directory. e.g. code is at /data/user01/myrepo/app/my-service but .git is at /data/user01/myrepo, then enter the latter","setup.project.baseBranch":"Base Branch","setup.project.baseBranchHint":"The branch to create feature branches from, default: master","setup.project.branchPrefix":"Branch Prefix","setup.project.branchPrefixHint":"Prefix for auto-created branches, default: feat/issue","setup.project.worktreeBaseDir":"Temporary Workspace Directory","setup.project.worktreeBaseDirPlaceholder":"e.g. /data/user01/myrepo-worktrees, leave empty for auto-management","setup.project.worktreeBaseDirHint":"Directory for isolated git worktrees created per Issue. Recommended: place alongside the repo, e.g. /data/user01/myrepo-worktrees. Leave empty for automatic management.","setup.project.projectSubDir":"Project Sub-path","setup.project.projectSubDirPlaceholder":"e.g. app/my-service","setup.project.projectSubDirHint":"Monorepo only: relative path from Git root to the project. e.g. Git root is /data/user01/myrepo and the project is under app/my-service, then enter app/my-service","setup.gongfeng.apiUrl":"Gongfeng API URL *","setup.gongfeng.apiUrlPlaceholder":"e.g. https://git.example.com","setup.gongfeng.apiUrlHint":"Gongfeng GitLab access URL. e.g. https://git.example.com, usually no changes needed","setup.gongfeng.privateToken":"Access Token *","setup.gongfeng.tokenPlaceholder":"Enter your Access Token (e.g. AbCdEfGhIjKlMnOpQrSt)","setup.gongfeng.tokenHint":'Create one in Gongfeng "Settings > Access Tokens" with api scope. Token looks like AbCdEfGhIjKlMnOpQrSt',"setup.gongfeng.verify":"Verify","setup.gongfeng.tokenValid":"Token valid","setup.gongfeng.tokenInvalid":"Token invalid","setup.gongfeng.projectPath":"Repository Path *","setup.gongfeng.projectPathPlaceholder":"e.g. myteam/my-project","setup.gongfeng.projectPathHint":"The path part from your Gongfeng repository URL. e.g. if the repo URL is https://git.example.com/myteam/my-project, enter myteam/my-project","setup.gongfeng.repoFound":"Repository found","setup.gongfeng.repoNotFound":"Repository not found","setup.ai.modeLabel":"Choose AI Coding Tool","setup.ai.claudeInternal":"Claude Internal","setup.ai.claudeInternalDesc":"Internally deployed Claude, ideal for headless server environments","setup.ai.cursorAgent":"Cursor Agent","setup.ai.cursorAgentDesc":"Driven by Cursor IDE, requires a Cursor environment","setup.ai.codebuddy":"CodeBuddy","setup.ai.codebuddyDesc":"Tencent CodeBuddy AI coding assistant","setup.ai.model":"AI Model","setup.ai.modelHint":"The AI model to use, default: Claude-4.6-Opus","setup.ai.cliStatus":"Tool Installation Status","setup.ai.authLoggedIn":"Logged in","setup.ai.authNotLoggedIn":"Not logged in","setup.ai.authUnknown":"Unable to detect login status","setup.ai.authLoginHint":"Not logged in. Please log in to the AI CLI tool via terminal.","setup.ai.authRefresh":"Refresh Status","setup.ai.authWarning":"AI CLI tool is not logged in. The service will not be able to invoke AI after starting. Please log in via terminal first.","setup.ai.authCopied":"Copied","setup.advanced.defaultHint":"These are advanced options. The defaults work well for most scenarios. Feel free to skip if unsure.","setup.advanced.toggleLabel":"Show Advanced Options","setup.advanced.discoveryInterval":"New Issue Scan Interval (ms)","setup.advanced.discoveryIntervalHint":"How often to check Gongfeng for new auto-finish Issues, default: 60s","setup.advanced.driveInterval":"Task Progress Interval (ms)","setup.advanced.driveIntervalHint":"How often to check and advance in-progress tasks, default: 15s","setup.advanced.maxRetries":"Auto-retry on Failure","setup.advanced.maxRetriesHint":"Max number of automatic retries when a task fails","setup.advanced.maxConcurrent":"Max Concurrent Issues","setup.advanced.maxConcurrentHint":"Maximum number of Issues to process in parallel","setup.advanced.webPort":"Dashboard Port","setup.advanced.webPortHint":"The port for the web management dashboard, default: 3000. Access via http://<server-IP>:<port> after configuration","setup.advanced.pipelineMode":"Processing Mode","setup.advanced.pipelineAuto":"Auto (select based on AI tool, recommended)","setup.advanced.pipelineClassic":"Classic (Analyze > Design > Implement > Verify)","setup.advanced.pipelinePlanMode":"Plan (Plan > Human Review > Implement > Verify)","setup.advanced.pipelineModeHint":"The workflow for how AI processes Issues","setup.advanced.enableReview":"Require human review after AI planning","setup.advanced.enableReviewHint":"When enabled, AI implementation plans must be reviewed and approved before execution","setup.advanced.enableRelease":"Enable release phase","setup.advanced.enableReleaseHint":"After verification, AI will detect the target project release mechanism and execute after confirmation","setup.advanced.phaseTimeout":"Max Phase Execution Time (ms)","setup.advanced.phaseTimeoutHint":"Timeout for a single AI phase, default: 1800000 (30 min)","setup.confirm.reviewHint":"Review the configuration that will be generated:","setup.nav.back":"Back","setup.nav.next":"Next","setup.nav.saving":"Saving...","setup.nav.complete":"Complete Setup","settings.title":"Settings","settings.loading":"Loading configuration...","settings.save":"Save Configuration","settings.saving":"Saving...","settings.applying":"Applying...","settings.saved":"Configuration Saved","settings.savedHint":"Some changes require a service restart to take effect.","settings.savedAndApplied":"Configuration saved and applied immediately.","settings.savedPendingHint":"Configuration saved, will apply after current tasks complete.","settings.saveFailed":"Save Failed","settings.section.project":"Project Configuration","settings.section.gongfeng":"Gongfeng Configuration","settings.section.ai":"AI Coding Tool","settings.section.workspace":"Workspace Configuration","settings.section.e2e":"E2E Testing","settings.section.advanced":"Advanced Options","settings.section.experimental":"Experimental Features","settings.experimental.hint":"Changes take effect immediately, revert to config file values on restart","settings.experimental.brainstorm":"Brainstorm Workshop","settings.experimental.braindump":"Braindump","settings.experimental.chat":"Chat Agent","settings.experimental.knowledge":"Knowledge Base","settings.experimental.distill":"Distillation","settings.configPath":"Config file path:","settings.restartHint":"Changes require service restart to take effect","settings.autoApplyHint":"Changes apply automatically after save, running tasks are not affected","settings.tokenMasked":"(configured, click to modify)","settings.workspace.active":"Active","settings.workspace.notConfigured":"Not Configured","settings.workspace.hint":"Configure multi-repo workspace with primary + associate repos. When enabled, issues will be processed across multiple repositories.","settings.workspace.configPath":"Workspace config file:","settings.workspace.validationFailed":"Workspace config validation failed","settings.workspace.primaryRepo":"Primary Repository","settings.workspace.associateRepos":"Associate Repositories","settings.workspace.addRepo":"Add Associate Repo","settings.workspace.removeRepo":"Remove","settings.workspace.noAssociates":"No associate repos. Click the button above to add one.","settings.workspace.repoName":"Repo Name","settings.workspace.projectPath":"Gongfeng Project Path","settings.workspace.projectPathPlaceholder":"e.g. group/repo-name","settings.workspace.localGitRoot":"Local Git Root","settings.workspace.localGitRootPlaceholder":"e.g. /data/projects/repo-name","settings.workspace.baseBranch":"Base Branch","settings.workspace.branchPrefix":"Branch Prefix","settings.workspace.projectSubDir":"Project Sub-directory","settings.workspace.projectSubDirPlaceholder":"Leave empty for root","settings.workspace.role":"Role","settings.workspace.rolePlaceholder":"e.g. contract, config","settings.workspace.advancedToggle":"Branch & Sub-directory","settings.workspace.required":"Required","settings.workspace.optional":"Optional","settings.workspace.repoCount":"{count}","settings.workspace.confirmRemove":"Remove this associate repo?","settings.workspace.collapsed":"Click to expand","settings.e2e.configured":"Configured","settings.e2e.hint":"Configure the oa_pc_uat tool path. Once configured, the AI Agent will automatically read the oa_pc_uat skill during verification and run incremental E2E tests.","settings.e2e.uatVendorDir":"oa_pc_uat Directory","settings.e2e.uatVendorDirPlaceholder":"e.g. vendor/oa_pc_uat or absolute path","settings.e2e.uatVendorDirHint":"Directory containing oa_pc_uat source code with main.py and .cursor/skills/oa-web-uat/SKILL.md","settings.e2e.uatConfigFile":"Config File Path (optional)","settings.e2e.uatConfigFilePlaceholder":"e.g. vendor/oa_pc_uat/config.json","settings.e2e.uatConfigFileHint":"Path to oa_pc_uat config.json. Leave empty to auto-detect from vendor directory.","settings.e2e.pythonBin":"Python Binary","settings.e2e.pythonBinPlaceholder":"e.g. python3 or python3.9","settings.e2e.pythonBinHint":"Playwright requires Python 3.8+. Specify a higher version path if system default python3 is too old.","settings.e2e.skillDetected":"oa_pc_uat Skill will be injected into AI Agent prompt during Verify phase","settings.e2e.skillDetectedHint":"The AI Agent will follow the skill-defined workflow (impact analysis → incremental script generation → execution → REPL troubleshooting) for E2E verification","settings.e2e.oneClickSetup":"One-Click Setup","settings.e2e.oneClickSetupHint":"Auto clone repo, install Python dependencies and browser, configure .env","settings.e2e.setupRunning":"Installing...","settings.e2e.setupSuccess":"Setup complete, config auto-filled","settings.e2e.setupFailed":"Setup failed","settings.e2e.showLogs":"Show logs","settings.e2e.hideLogs":"Hide logs","settings.e2e.step.clone":"Clone/update oa_pc_uat","settings.e2e.step.detectPython":"Detect Python version","settings.e2e.step.installPw":"Install Playwright","settings.e2e.step.installBrowser":"Install Chromium browser","settings.e2e.step.configure":"Write config","settings.e2e.step.reload":"Reload config","header.settings":"Settings","brainstorm.startRecording":"Start Recording","brainstorm.stopRecording":"Stop Recording","brainstorm.voiceNotSupported":"Voice input not supported. Please use Chrome/Edge, or type directly.","brainstorm.clear":"Clear","brainstorm.recording":"Recording...","brainstorm.transcriptLabel":"Your Ideas","brainstorm.transcriptPlaceholder":"Type or speak your ideas here... messy and incoherent is fine","brainstorm.startGenerate":"Generate SDD","brainstorm.step1":"Brain Dump","brainstorm.step2":"AI Refine","brainstorm.step3":"Create Issue","brainstorm.roundCount":"{count} refinement rounds completed","brainstorm.statusGenerating":"Generating SDD...","brainstorm.statusReviewing":"Reviewing...","brainstorm.statusRefining":"Refining...","brainstorm.statusProcessing":"Processing...","brainstorm.abort":"Abort","brainstorm.manualReview":"Manual Review","brainstorm.manualRefine":"Manual Refine","brainstorm.finishAndCreate":"Finish & Create Issue","brainstorm.sddTitle":"Software Design Document (SDD)","brainstorm.sddEmpty":"SDD not generated yet","brainstorm.questionsTitle":"Review Questions","brainstorm.questionsEmpty":"No review conducted yet","brainstorm.roundHistory":"View round history","brainstorm.roundLabel":"Round {n}","brainstorm.issueTitleLabel":"Issue Title","brainstorm.issueTitlePlaceholder":"Enter issue title (leave empty to auto-extract from SDD)","brainstorm.addAutoFinishLabel":"Add auto-finish label (system will process automatically)","brainstorm.sddPreview":"SDD Preview","brainstorm.backToRefine":"Back to Refine","brainstorm.createIssueOnly":"Create Issue Only","brainstorm.createAndStart":"Create & Start Processing","brainstorm.creating":"Creating...","brainstorm.issueCreated":"Issue Created Successfully!","brainstorm.startNew":"Start New Brainstorm","chat.newChat":"New Chat","chat.expandSidebar":"Expand sidebar","chat.collapseSidebar":"Collapse sidebar","chat.deleteSession":"Delete session","chat.messagesCount":"messages","chat.noSessions":"No sessions yet","chat.welcome":"Chat Assistant","chat.welcomeHint":'Type a question to start, or click "New Chat" to create a session',"chat.inputPlaceholder":"Type a message... (Enter to send, Shift+Enter for new line)","chat.send":"Send","chat.stop":"Stop","chat.streaming":"Streaming...","chat.thinking.connecting":"Connecting to AI...","chat.thinking.connected":"AI connected, thinking...","chat.thinking.processing":"AI is thinking...","distill.statusTitle":"Distillation Status","distill.diaries":"Diaries","distill.memories":"Memories","distill.rules":"Rules","distill.vectors":"Vectors","distill.undistilled":"Undistilled","distill.lastRun":"Last Run","distill.nextRun":"Next Run","distill.neverRun":"Never","distill.runButton":"Run Distill","distill.running":"Distilling...","distill.runStarted":"Distillation started","distill.runMemory":"Memory distill: processed {diaries} diaries, {actions} actions","distill.runRule":"Rule distill: processed {memories} memories, {actions} actions","distill.runVector":"Vector indexing: {indexed} entries","distill.runDone":"Distillation complete","distill.runEmpty":"No diary data available for distillation","distill.runError":"Distillation error: {error}","distill.searchPlaceholder":"Semantic search knowledge...","distill.searchButton":"Search","distill.searchResults":"Search Results","distill.searchEmpty":"No matching knowledge found","distill.filterAll":"All","distill.filterCompleted":"Completed","distill.filterFailed":"Failed","distill.filterDistilled":"Distilled","distill.filterUndistilled":"Undistilled","distill.diaryDetail":"Diary Detail","distill.issueIid":"Issue","distill.title":"Title","distill.branch":"Branch","distill.pipelineMode":"Pipeline","distill.outcome":"Outcome","distill.outcomeCompleted":"Completed","distill.outcomeFailed":"Failed","distill.mrUrl":"Merge Request","distill.timing":"Execution Timing","distill.totalDuration":"Total Duration","distill.failure":"Failure Info","distill.failedAtPhase":"Failed at Phase","distill.errorMessage":"Error Message","distill.retryCount":"Retry Count","distill.interventions":"Human Interventions","distill.interventionType.review-approve":"Review Approved","distill.interventionType.review-reject":"Review Rejected","distill.interventionType.retry":"Retry","distill.interventionType.supplement":"Supplement","distill.interventionType.webhook-command":"Webhook Command","distill.summary":"Artifact Summary","distill.distilledStatus":"Distilled Status","distill.createdAt":"Created At","distill.diaryEmpty":"No diary entries yet","distill.deleteDiary":"Delete Diary","distill.confirmDelete":"Are you sure you want to delete this diary?","distill.score":"Relevance","distill.sourceType":"Source Type","distill.close":"Close"},Ggt={"zh-CN":vWt,en:mWt},GX=Ye(localStorage.getItem("iaf-locale")||"zh-CN");function Cs(a,d){const b=Ggt[GX.value]?.[a]??Ggt["zh-CN"]?.[a]??a;if(!d)return b;let m=b;for(const[w,$]of Object.entries(d))m=m.replaceAll(`{${w}}`,String($));return m}function yWt(a){GX.value=a,localStorage.setItem("iaf-locale",a)}function kWt(){return GX.value}const Jgt={install(a){a.config.globalProperties.$t=Cs}};function Kg(){return{t:Cs,locale:GX,setLocale:yWt,getLocale:kWt}}const jW=["plan","review","build","verify","uat"],Ugt={skipped:"skipped",pending:"idle",branch_created:"ready",planning:"running",plan_done:"ready",phase_waiting:"waiting",phase_approved:"ready",building:"running",build_done:"ready",verifying:"running",phase_running:"running",phase_done:"ready",resolving_conflict:"running",completed:"done",failed:"failed",deployed:"deployed"},zgt={idle:"bg-gray-100 text-gray-600",skipped:"bg-orange-100 text-orange-600",ready:"bg-blue-100 text-blue-600",running:"bg-blue-100 text-blue-600",waiting:"bg-yellow-100 text-yellow-700",done:"bg-green-100 text-green-700",failed:"bg-red-100 text-red-600",deployed:"bg-purple-100 text-purple-600"},rf=Ye(null);let IW=null;async function Cwt(){if(!rf.value)return IW||(IW=kKt().then(a=>{rf.value=a}).catch(a=>{console.warn("Failed to load pipeline meta, using fallback",a)}),IW)}function r_(){const a=Ye("plan-mode"),d=En(()=>{const ee=a.value;return rf.value?rf.value.modes[ee]?.phases.map(K=>K.name)??[...jW]:[...jW]});function b(ee){const K=ee?.pipelineMode??a.value;return rf.value?rf.value.modes[K].artifacts.map(he=>({file:he.filename,label:he.label})):[{file:"01-plan.md",label:Cs("planFile.01-plan.md")},{file:"02-verify-report.md",label:Cs("planFile.02-verify-report.md")},{file:"review-feedback.md",label:Cs("planFile.review-feedback.md")}]}function m(ee){const K=ee?.pipelineMode??a.value;return rf.value?rf.value.modes[K]?.phases.map(he=>he.name)??[...jW]:[...jW]}function w(ee,K){if(rf.value?.stateLabels){if((ee==="phase_running"||ee==="phase_done"||ee==="phase_waiting"||ee==="phase_approved")&&K){const he=rf.value.stateLabels[`${ee}:${K}`];if(he)return he}if(rf.value.stateLabels[ee])return rf.value.stateLabels[ee]}return Cs(`state.${ee}`)||ee}function $(ee){const he=(rf.value?.stateCategories??Ugt)[ee]??"idle";return zgt[he]??zgt.idle}function p(ee){if(rf.value)for(const K of Object.values(rf.value.modes)){const he=K.phases.find(ke=>ke.name===ee);if(he)return he.label}return Cs(`phase.${ee}`)||ee}function j(ee,K){if(ee.progress?.phases?.[K])return ee.progress.phases[K].status;const he=ee.pipelineMode??a.value;if(rf.value){let ke=ee.state;(ee.state==="phase_running"||ee.state==="phase_done"||ee.state==="phase_waiting"||ee.state==="phase_approved"||ee.state==="failed")&&ee.currentPhase&&(ke=`${ee.state}:${ee.currentPhase}`);const ue=rf.value.phaseStatuses[he]?.[ke];if(ue)return ue[K]??"pending"}return"pending"}function I(ee,K){const he=j(ee,K);return he==="completed"?"bg-green-100 text-green-600":he==="in_progress"?"bg-blue-100 text-blue-600":he==="failed"?"bg-red-100 text-red-600":"bg-gray-100 text-gray-400"}function N(ee){return ee==="completed"?"bg-green-500 text-white":ee==="in_progress"?"bg-blue-500 text-white":ee==="failed"?"bg-red-500 text-white":"bg-gray-200 text-gray-500"}function P(ee){return!U(ee)}function U(ee){const he=(rf.value?.stateCategories??Ugt)[ee];return he==="done"||he==="failed"||he==="skipped"||he==="deployed"}function V(ee){return rf.value?Object.values(rf.value.modes).some(K=>K.artifacts.some(he=>he.filename===ee&&he.editable)):["01-plan.md"].includes(ee)}function X(ee,K){if(!K.value)return"#";const he=K.value.config.gongfengBaseUrl,ke=K.value.config.projectPath;return`${he}/${ke}/issues/${ee}`}return{pipelineMode:a,phaseNames:d,getPlanDocs:b,getPhaseNames:m,stateLabel:w,stateClass:$,phaseLabel:p,phaseStatus:j,phaseIndicatorClass:I,phaseNodeClass:N,isActiveState:P,isTerminalState:U,isEditableDoc:V,issueUrl:X}}function Swt(a){const d=Ye(!1);let b=null;const m=["issue:stateChanged","issue:created","issue:failed","issue:deleted","issue:resetForRetry","issue:restarted","issue:retryFromPhase","review:requested","review:approved","review:rejected","agent:output","pipeline:progress","braindump:task:started","braindump:task:completed","braindump:task:merging","braindump:task:merged","braindump:task:failed","braindump:completed","braindump:failed","verify:loopStarted","verify:iterationComplete","verify:loopExhausted"];function w(){b&&b.close(),b=new EventSource("/api/events"),b.addEventListener("connected",()=>{d.value=!0}),b.addEventListener("heartbeat",()=>{d.value=!0});for(const $ of m)b.addEventListener($,p=>{try{a($,JSON.parse(p.data))}catch{}});b.onerror=()=>{d.value=!1,setTimeout(w,5e3)}}return gl(w),dp(()=>{b&&(b.close(),b=null)}),{connected:d}}function xWt(){return[{value:"all",label:Cs("filter.all")},{value:"active",label:Cs("filter.active")},{value:"completed",label:Cs("filter.completed")},{value:"failed",label:Cs("filter.failed")},{value:"review",label:Cs("filter.review")},{value:"deployed",label:Cs("filter.deployed")}]}function $Wt(a){const d=Ye([]),b=Ye("all");async function m(){try{d.value=await yKt(a?{kind:a}:void 0)}catch(I){console.error("Fetch tasks failed",I)}}const w=En(()=>d.value.filter(I=>I.stateCategory==="active"||I.stateCategory==="blocked").length),$=En(()=>d.value.filter(I=>I.stateCategory==="completed").length),p=En(()=>d.value.filter(I=>I.stateCategory==="failed").length),j=En(()=>b.value==="all"?d.value:b.value==="active"?d.value.filter(I=>I.stateCategory==="active"):b.value==="completed"?d.value.filter(I=>I.stateCategory==="completed"):b.value==="failed"?d.value.filter(I=>I.stateCategory==="failed"):b.value==="review"?d.value.filter(I=>I.stateCategory==="blocked"):b.value==="deployed"?d.value.filter(I=>I.stateCategory==="deployed"):d.value);return{tasks:d,filter:b,filteredTasks:j,activeCount:w,completedCount:$,failedCount:p,refresh:m}}function EWt(a){const d={idle:"bg-gray-100 text-gray-600",preparing:"bg-blue-100 text-blue-600",running:"bg-blue-100 text-blue-600",waiting:"bg-yellow-100 text-yellow-700",merging:"bg-purple-100 text-purple-700",completed:"bg-green-100 text-green-700",failed:"bg-red-100 text-red-600"};return d[a]??d.idle}function CWt(a){return{idle:"等待中",preparing:"准备中",running:"执行中",waiting:"等待审核",merging:"合并中",completed:"已完成",failed:"失败"}[a]??a}function D2e(){return{requirements:"",acceptanceCriteria:"",scope:"",constraints:"",references:"",freeText:"",tapdId:""}}function _wt(){const a=Ye(null),d=Ye(null),b=Ye(0),m=Ye(D2e()),w=Ye(D2e()),$=Ye(!1),p=Ye(!1),j=Ye(!1),I=Ye(""),N=Ye(!1),P=Ye([]);async function U(q,He){a.value=q,p.value=!1,m.value=D2e(),P.value=[],He.value=[];try{const[gt,ze]=await Promise.all([dX(_r(q)),xKt(_r(q))]);a.value=gt,d.value=gt.progress??null,He.value=ze.reverse()}catch(gt){console.error("Fetch detail failed",gt)}ee(_r(q)),X(_r(q))}async function V(){if(!a.value)return;const q=_r(a.value);try{const He=await dX(q);a.value=He,d.value=He.progress??null,b.value++}catch(He){console.error("Refresh detail failed",He)}}async function X(q){try{P.value=await AKt(q)}catch{}}async function ee(q){$.value=!0;try{m.value=await MKt(q)}catch{}finally{$.value=!1}}function K(){w.value={...m.value},p.value=!0}async function he(q){if(a.value){j.value=!0;try{const He=await PKt(_r(a.value),w.value);m.value=He.data??w.value,p.value=!1,confirm(Cs("confirm.supplementSaved"))&&(await Ngt(_r(a.value),"analysis"),await q())}catch(He){alert(Cs("alert.saveFailed")+He.message)}finally{j.value=!1}}}async function ke(q,He){if(confirm(Cs("confirm.start",{iid:q})))try{await $Kt(q),await He(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(gt){alert(Cs("alert.startFailed")+gt.message)}}async function ue(q,He){if(confirm(Cs("confirm.retry",{iid:q})))try{await EKt(q),await He(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(gt){alert(Cs("alert.retryFailed")+gt.message)}}async function oe(q,He){if(confirm(Cs("confirm.cancel",{iid:q})))try{await CKt(q),a.value&&_r(a.value)===q&&(a.value=null),await He()}catch(gt){alert(Cs("alert.cancelFailed")+gt.message)}}async function re(q,He,gt){if(confirm(Cs("confirm.restart",{iid:q})))try{await SKt(q),d.value=null,gt&&(gt.value=gt.value.map(ze=>ze.taskId===String(q)?{...ze,sourceState:"pending",stateCategory:"idle",status:"idle",attempts:0,lastError:void 0,phaseProgress:ze.phaseProgress?.map(jt=>({...jt,status:"pending"}))}:ze)),await He(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(ze){alert(Cs("alert.restartFailed")+ze.message)}}async function ye(q,He,gt,ze){if(confirm(Cs("confirm.retryFromPhase",{phaseLabel:gt,iid:q})))try{await Ngt(q,He),await ze(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(jt){alert(Cs("alert.retryFromPhaseFailed")+jt.message)}}async function pe(q,He){if(confirm(Cs("confirm.approve",{iid:q}))){N.value=!0;try{await _Kt(q),await He(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(gt){alert(Cs("alert.approveFailed")+gt.message)}finally{N.value=!1}}}async function be(q,He){if(!I.value.trim()){alert(Cs("confirm.reject.noFeedback"));return}N.value=!0;try{await jKt(q,I.value),I.value="",await He(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(gt){alert(Cs("alert.rejectFailed")+gt.message)}finally{N.value=!1}}async function se(q,He){if(confirm(Cs("confirm.skip",{iid:q}))){N.value=!0;try{await IKt(q),await He(),a.value&&_r(a.value)===q&&await U(a.value,{value:[]})}catch(gt){alert(Cs("alert.skipFailed")+gt.message)}finally{N.value=!1}}}async function le(q,He){if(confirm(Cs("confirm.markDeployed",{iid:q})))try{await nWt(q),await He(),await V()}catch(gt){alert(Cs("alert.markDeployedFailed")+gt.message)}}async function Ce(q,He){try{await iWt(q),await He(),await V()}catch(gt){alert(Cs("alert.restartPreviewFailed")+gt.message)}}async function Se(q,He){try{await rWt(q),await He(),await V()}catch(gt){alert(Cs("alert.stopPreviewFailed")+gt.message)}}function te(q){return q?!!(q.requirements||q.acceptanceCriteria||q.scope||q.constraints||q.references||q.freeText||q.tapdId):!1}return{selectedIssue:a,detailProgress:d,detailVersion:b,detailSupplement:m,detailSupplementForm:w,detailSupplementLoading:$,detailSupplementEditing:p,detailSupplementSaving:j,reviewFeedback:I,reviewSubmitting:N,reviewHistory:P,selectIssue:U,refreshDetail:V,enterSupplementEdit:K,saveDetailSupplement:he,doStartIssue:ke,doRetryIssue:ue,doCancelIssue:oe,doRestartIssue:re,doRetryFromPhase:ye,doApprovePlan:pe,doRejectPlan:be,doSkipReview:se,doMarkDeployed:le,doRestartPreview:Ce,doStopPreview:Se,hasSupplementData:te}}const qgt=500,SWt=new Set(["assistant","system","thinking"]);function JX(){const a=Ye([]),d=Ye(!0),b=Ye(!1),m=Ye(null),w=En(()=>(b.value?a.value:a.value.filter(K=>SWt.has(K.type))).filter(K=>K.summary.trim()!==""));function $(ee){return Cs(`agentLog.type.${ee}`)||ee}function p(){d.value&&_1(()=>{const ee=m.value;ee&&(ee.scrollTop=0)})}function j(ee){a.value.unshift(ee),a.value.length>qgt&&(a.value=a.value.slice(0,qgt)),p()}function I(ee,K,he,ke){K.value===ee&&j({type:ke.type??"raw",phase:he,timestamp:ke.timestamp??new Date().toISOString(),summary:jwt(ke)})}function N(ee,K,he,ke,ue){K.value===ee&&j({type:"system",phase:he,timestamp:ue,summary:ke})}function P(){a.value=[]}const U=Ye({});function V(ee,K,he){if(K==="verify:loopStarted")U.value={...U.value,[ee]:{active:!0,iteration:0,maxIterations:he.maxIterations,lastPassed:!1}};else if(K==="verify:iterationComplete"){const ke=U.value[ee];ke&&(U.value={...U.value,[ee]:{...ke,iteration:he.iteration,lastPassed:he.passed,active:!he.passed}})}else if(K==="verify:loopExhausted"){const ke=U.value[ee];ke&&(U.value={...U.value,[ee]:{...ke,active:!1}})}}function X(ee){return U.value[ee]}return{agentLogs:a,filteredLogs:w,agentAutoScroll:d,debugMode:b,agentLogContainer:m,agentLogLabel:$,pushLog:j,pushAgentStreamEvent:I,pushSystemLog:N,scrollToTop:p,clear:P,updateVerifyFixLoop:V,getVerifyFixLoop:X}}function jwt(a){const d=a.content;if(!d||typeof d=="string")return String(d??"");if(a.type==="assistant"){const b=d.message??d;if(typeof b=="string")return b.slice(0,200);const m=b;if(m.text)return m.text.slice(0,200);if(m.content){const $=(Array.isArray(m.content)?m.content:[m.content]).filter(p=>p.type==="text").map(p=>p.text).join(" ");if($)return $.slice(0,200)}return""}if(a.type==="thinking")return(d.text??"").slice(0,200);if(a.type==="tool_use"){const b=d,m=b.tool,w=m?.name??b.name??"?",$=m?.input??b.input??{},p=$.path??$.command??$.file_path??"";return w+(p?": "+p:"")}return a.type==="tool_result"?(typeof d.content=="string"?d.content:JSON.stringify(d.content??"")).slice(0,150):a.type==="result"?(d.result??JSON.stringify(d)).slice(0,200):JSON.stringify(d).slice(0,150)}function Vgt(){return{requirements:"",acceptanceCriteria:"",scope:"",constraints:"",references:"",freeText:"",tapdId:""}}function _Wt(a){const d=Ye(""),b=Ye([]),m=Ye(new Set),w=Ye(0),$=Ye(1),p=20,j=Ye(!1),I=Ye(""),N=Ye(null),P=Ye(Vgt()),U=Ye(!1);async function V(){j.value=!0,I.value="";try{const he=await DKt({search:d.value.trim()||void 0,page:$.value,perPage:p});b.value=he.issues,w.value=he.total,m.value=new Set(he.trackedIids)}catch(he){I.value=he.message}finally{j.value=!1}}function X(he){N.value=he,P.value=Vgt(),U.value=!1}function ee(he){return!!(he.requirements||he.acceptanceCriteria||he.scope||he.constraints||he.references||he.freeText)}async function K(he){if(N.value){U.value=!0;try{const ke=N.value,ue={issueId:ke.id,issueIid:ke.iid,issueTitle:ke.title};ee(P.value)&&(ue.supplement=P.value),await OKt(ue),N.value=null,await a(),m.value.add(ke.iid),he()}catch(ke){alert(Cs("alert.startFailed")+ke.message)}finally{U.value=!1}}}return{browseSearch:d,browseIssues:b,browseTrackedIids:m,browseTotal:w,browsePage:$,browsePerPage:p,browseLoading:j,browseError:I,startDialogIssue:N,startSupplement:P,startProcessing:U,fetchGongfengIssues:V,openStartDialog:X,doStartProcessing:K,hasSupplementData:ee}}function jWt(a){const{selectedIssueIid:d,onOpenIssue:b}=a;function m(){const j=new URLSearchParams(window.location.search).get("issue");if(!j)return;const I=Number(j);return Number.isFinite(I)&&I>0?I:void 0}function w(p){const j=new URL(window.location.href);p?j.searchParams.set("issue",String(p)):j.searchParams.delete("issue");const I=j.pathname+j.search,N=window.location.pathname+window.location.search;I!==N&&window.history.pushState({issueIid:p??null},"",I)}function $(p){const j=p.state?.issueIid??m();j?b(j):d.value&&(d.value=void 0)}return Jr(d,p=>w(p)),gl(()=>{window.addEventListener("popstate",$),window.history.replaceState({issueIid:m()??null},"",window.location.href)}),dp(()=>{window.removeEventListener("popstate",$)}),{readIssueIidFromUrl:m}}const Iwt="/logo.png";function YS(a){return a?new Date(a).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"-"}function Awt(a){if(!a||a<0)return"0s";const d=Math.floor(a/1e3);if(d<60)return d+"s";const b=Math.floor(d/60);return b<60?b+"m "+d%60+"s":Math.floor(b/60)+"h "+b%60+"m"}function Twt(a){return a?new Date(a).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit"}):""}const IWt={class:"bg-white shadow-sm border-b border-gray-200"},AWt={class:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between"},TWt={class:"flex items-center space-x-3"},MWt={class:"flex items-center space-x-4 text-sm text-gray-500"},PWt={key:0},DWt={key:1},OWt={key:2},LWt=["disabled","title"],NWt=["title"],RWt=["title"],FWt=wr({__name:"HeaderBar",props:{connected:{type:Boolean},systemStatus:{}},emits:["open-settings"],setup(a,{emit:d}){const{locale:b,setLocale:m}=Kg(),w=a,$=d,p=Ye(!0),j=Ye(!1);Jr(()=>w.systemStatus,N=>{N&&(p.value=N.config.issueNoteSyncEnabled)},{immediate:!0});async function I(){const N=!p.value;j.value=!0;try{await LKt(N),p.value=N}catch(P){console.error("Failed to toggle system note sync",P)}finally{j.value=!1}}return(N,P)=>(R(),J("header",IWt,[E("div",AWt,[E("div",TWt,[P[3]||(P[3]=E("img",{src:Iwt,alt:"Logo",class:"h-8 w-8 rounded-lg"},null,-1)),P[4]||(P[4]=E("h1",{class:"text-xl font-bold text-gray-800"},"Issue Auto-Finish",-1)),E("span",{class:wn(["flex items-center space-x-1 text-sm",a.connected?"text-green-600":"text-red-500"])},[E("span",{class:wn(["inline-block w-2 h-2 rounded-full",a.connected?"bg-green-500 pulse-dot":"bg-red-500"])},null,2),E("span",null,M(a.connected?N.$t("header.connected"):N.$t("header.disconnected")),1)],2)]),E("div",MWt,[a.systemStatus?(R(),J("span",PWt,M(N.$t("header.discovery"))+": "+M((a.systemStatus.config.discoveryIntervalMs/1e3).toFixed(0))+"s / "+M(N.$t("header.drive"))+": "+M((a.systemStatus.config.driveIntervalMs/1e3).toFixed(0))+"s",1)):Ae("",!0),a.systemStatus?(R(),J("span",DWt,M(N.$t("header.uptime"))+": "+M(A(Awt)(a.systemStatus.uptime)),1)):Ae("",!0),a.systemStatus?(R(),J("span",OWt,"AI: "+M(a.systemStatus.config.aiMode),1)):Ae("",!0),a.systemStatus?.config.pipelineMode?(R(),J("span",{key:3,class:wn(["px-2 py-0.5 rounded text-xs font-medium",a.systemStatus.config.pipelineMode==="plan-mode"?"bg-purple-100 text-purple-700":"bg-gray-100 text-gray-600"])},M(a.systemStatus.config.pipelineMode==="plan-mode"?N.$t("setup.advanced.pipelinePlanMode"):N.$t("setup.advanced.pipelineClassic")),3)):Ae("",!0),a.systemStatus?(R(),J("button",{key:4,class:wn(["px-2 py-0.5 rounded text-xs font-medium transition-colors",p.value?"bg-green-100 text-green-700 hover:bg-green-200":"bg-gray-100 text-gray-500 hover:bg-gray-200"]),disabled:j.value,title:p.value?N.$t("header.syncOnTitle"):N.$t("header.syncOffTitle"),onClick:P[0]||(P[0]=U=>I())},M(p.value?N.$t("header.syncOn"):N.$t("header.syncOff")),11,LWt)):Ae("",!0),E("button",{class:"px-2 py-1 text-xs rounded bg-gray-200 text-gray-700 hover:bg-gray-300 transition-colors",title:N.$t("header.settings"),onClick:P[1]||(P[1]=U=>$("open-settings"))},[...P[5]||(P[5]=[E("svg",{class:"h-3.5 w-3.5 inline-block",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 011.37.49l1.296 2.247a1.125 1.125 0 01-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 010 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.248a1.125 1.125 0 01-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 01-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 01-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 01-1.369-.49l-1.297-2.247a1.125 1.125 0 01.26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 010-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 01-.26-1.43l1.297-2.247a1.125 1.125 0 011.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])],8,NWt),E("button",{class:"px-2 py-1 text-xs rounded bg-gray-200 text-gray-700 hover:bg-gray-300 transition-colors",title:N.$t("header.langSwitch"),onClick:P[2]||(P[2]=U=>A(m)(A(b)==="zh-CN"?"en":"zh-CN"))},M(A(b)==="zh-CN"?"EN":"中文"),9,RWt)])])]))}}),BWt={class:"grid grid-cols-4 gap-4 mb-6"},HWt={class:"bg-white rounded-lg shadow-sm p-4 border border-gray-200"},GWt={class:"text-sm text-gray-500"},JWt={class:"text-2xl font-bold text-gray-800"},UWt={class:"bg-white rounded-lg shadow-sm p-4 border border-blue-200"},zWt={class:"text-sm text-blue-500"},qWt={class:"text-2xl font-bold text-blue-600"},VWt={class:"bg-white rounded-lg shadow-sm p-4 border border-green-200"},KWt={class:"text-sm text-green-500"},WWt={class:"text-2xl font-bold text-green-600"},XWt={class:"bg-white rounded-lg shadow-sm p-4 border border-red-200"},YWt={class:"text-sm text-red-500"},QWt={class:"text-2xl font-bold text-red-600"},ZWt=wr({__name:"StatsCards",props:{total:{},active:{},completed:{},failed:{}},setup(a){return(d,b)=>(R(),J("div",BWt,[E("div",HWt,[E("div",GWt,M(d.$t("stats.total")),1),E("div",JWt,M(a.total),1)]),E("div",UWt,[E("div",zWt,M(d.$t("stats.active")),1),E("div",qWt,M(a.active),1)]),E("div",VWt,[E("div",KWt,M(d.$t("stats.completed")),1),E("div",WWt,M(a.completed),1)]),E("div",XWt,[E("div",YWt,M(d.$t("stats.failed")),1),E("div",QWt,M(a.failed),1)])]))}}),eXt={class:"mb-4 flex items-center space-x-2"},tXt={class:"text-sm text-gray-600"},nXt=["onClick"],iXt={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden"},rXt={class:"w-full"},sXt={class:"bg-gray-50 border-b border-gray-200"},oXt={key:0},cXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},uXt={key:0},lXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},aXt={key:0},fXt={key:0},dXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},hXt={class:"divide-y divide-gray-100"},gXt={key:0},bXt={colspan:"7",class:"px-4 py-8 text-center text-gray-400"},pXt=["onClick"],wXt={class:"px-4 py-3 text-sm font-mono text-gray-700"},vXt=["href","title"],mXt={class:"px-4 py-3 text-sm text-gray-800 max-w-xs truncate"},yXt={class:"px-4 py-3"},kXt={class:"px-4 py-3"},xXt={key:0,class:"flex items-center space-x-1"},$Xt=["title"],EXt={key:0},CXt={key:1,class:"pulse-dot"},SXt={key:2},_Xt={key:3},jXt={class:"px-4 py-3 text-sm text-gray-600"},IXt={class:"px-4 py-3 text-sm text-gray-500"},AXt={class:"px-4 py-3"},TXt=["onClick"],MXt=["onClick"],PXt=["onClick"],DXt=["onClick"],OXt=wr({__name:"IssueTable",props:{issues:{},filter:{},systemStatus:{}},emits:["update:filter","select","start","retry","restart","cancel"],setup(a,{emit:d}){const b=a,m=d,{stateLabel:w,stateClass:$}=r_(),p=Ye("updatedAt"),j=Ye("desc");function I(U){return U==="completed"?"bg-green-100 text-green-600":U==="in_progress"?"bg-blue-100 text-blue-600":U==="failed"?"bg-red-100 text-red-600":"bg-gray-100 text-gray-400"}const N=En(()=>{const U=[...b.issues],V=j.value==="asc"?1:-1;return U.sort((X,ee)=>{const K=p.value;return K==="updatedAt"?V*(new Date(X.updatedAt).getTime()-new Date(ee.updatedAt).getTime()):K==="taskId"?V*(Number(X.taskId)-Number(ee.taskId)):K==="attempts"?V*(X.attempts-ee.attempts):V*(X.sourceState??"").localeCompare(ee.sourceState??"")})});function P(U){p.value===U?j.value=j.value==="asc"?"desc":"asc":(p.value=U,j.value=U==="updatedAt"?"desc":"asc")}return(U,V)=>(R(),J("div",null,[E("div",eXt,[E("span",tXt,M(U.$t("table.filter")),1),(R(!0),J(sn,null,bi(A(xWt)(),X=>(R(),J("button",{key:X.value,class:wn(["px-3 py-1 rounded-full text-xs font-medium transition-colors",a.filter===X.value?"bg-gray-800 text-white":"bg-gray-200 text-gray-600 hover:bg-gray-300"]),onClick:ee=>m("update:filter",X.value)},M(X.label),11,nXt))),128))]),E("div",iXt,[E("table",rXt,[E("thead",sXt,[E("tr",null,[E("th",{class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer select-none hover:text-gray-700",onClick:V[0]||(V[0]=X=>P("taskId"))},[V[6]||(V[6]=ci(" IID ",-1)),p.value==="taskId"?(R(),J("span",oXt,M(j.value==="asc"?"▲":"▼"),1)):Ae("",!0)]),E("th",cXt,M(U.$t("table.title")),1),E("th",{class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer select-none hover:text-gray-700",onClick:V[1]||(V[1]=X=>P("sourceState"))},[ci(M(U.$t("table.state"))+" ",1),p.value==="sourceState"?(R(),J("span",uXt,M(j.value==="asc"?"▲":"▼"),1)):Ae("",!0)]),E("th",lXt,M(U.$t("table.progress")),1),E("th",{class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer select-none hover:text-gray-700",onClick:V[2]||(V[2]=X=>P("attempts"))},[ci(M(U.$t("table.retries"))+" ",1),p.value==="attempts"?(R(),J("span",aXt,M(j.value==="asc"?"▲":"▼"),1)):Ae("",!0)]),E("th",{class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase cursor-pointer select-none hover:text-gray-700",onClick:V[3]||(V[3]=X=>P("updatedAt"))},[ci(M(U.$t("table.updatedAt"))+" ",1),p.value==="updatedAt"?(R(),J("span",fXt,M(j.value==="asc"?"▲":"▼"),1)):Ae("",!0)]),E("th",dXt,M(U.$t("table.actions")),1)])]),E("tbody",hXt,[N.value.length===0?(R(),J("tr",gXt,[E("td",bXt,M(U.$t("table.empty")),1)])):Ae("",!0),(R(!0),J(sn,null,bi(N.value,X=>(R(),J("tr",{key:X.taskId,class:"hover:bg-gray-50 cursor-pointer transition-colors",onClick:ee=>m("select",Number(X.taskId))},[E("td",wXt,[E("a",{href:a.systemStatus?`${a.systemStatus.config.gongfengBaseUrl}/${a.systemStatus.config.projectPath}/issues/${X.taskId}`:"#",target:"_blank",rel:"noopener",class:"text-blue-600 hover:text-blue-800 hover:underline inline-flex items-center",onClick:V[4]||(V[4]=Ah(()=>{},["stop"])),title:U.$t("table.viewInGongfeng")},[ci(" #"+M(X.taskId)+" ",1),V[7]||(V[7]=E("svg",{class:"w-3 h-3 ml-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1))],8,vXt)]),E("td",mXt,M(X.title),1),E("td",yXt,[E("span",{class:wn(["px-2 py-1 rounded-full text-xs font-medium",A($)(X.sourceState??"pending")])},M(X.displayLabel??A(w)(X.sourceState??"pending")),3)]),E("td",kXt,[X.phaseProgress?(R(),J("div",xXt,[(R(!0),J(sn,null,bi(X.phaseProgress,ee=>(R(),J("div",{key:ee.name,class:wn(["w-6 h-6 rounded-full flex items-center justify-center text-xs",I(ee.status)]),title:ee.label},[ee.status==="completed"?(R(),J("span",EXt,"✓")):ee.status==="in_progress"?(R(),J("span",CXt,"●")):ee.status==="failed"?(R(),J("span",SXt,"✗")):(R(),J("span",_Xt,"●"))],10,$Xt))),128))])):Ae("",!0)]),E("td",jXt,M(X.attempts),1),E("td",IXt,M(A(YS)(X.updatedAt)),1),E("td",AXt,[E("div",{class:"flex space-x-2",onClick:V[5]||(V[5]=Ah(()=>{},["stop"]))},[X.sourceState==="skipped"?(R(),J("button",{key:0,class:"px-2 py-1 bg-green-500 text-white text-xs rounded hover:bg-green-600",onClick:ee=>m("start",Number(X.taskId))},M(U.$t("table.start")),9,TXt)):Ae("",!0),X.sourceState==="failed"?(R(),J("button",{key:1,class:"px-2 py-1 bg-blue-500 text-white text-xs rounded hover:bg-blue-600",onClick:ee=>m("retry",Number(X.taskId))},M(U.$t("table.retry")),9,MXt)):Ae("",!0),X.sourceState!=="skipped"?(R(),J("button",{key:2,class:"px-2 py-1 bg-yellow-100 text-yellow-700 text-xs rounded hover:bg-yellow-200",onClick:ee=>m("restart",Number(X.taskId))},M(U.$t("table.restart")),9,PXt)):Ae("",!0),E("button",{class:"px-2 py-1 bg-red-100 text-red-600 text-xs rounded hover:bg-red-200",onClick:ee=>m("cancel",Number(X.taskId))},M(U.$t("table.cancel")),9,DXt)])])],8,pXt))),128))])])])]))}}),LXt={class:"mb-4 flex items-center space-x-3"},NXt={class:"relative flex-1 max-w-md"},RXt=["value","placeholder"],FXt=["disabled"],BXt={key:0,class:"py-12 text-center text-gray-400"},HXt={key:1,class:"py-8 text-center text-red-500"},GXt={key:2},JXt={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden"},UXt={class:"w-full"},zXt={class:"bg-gray-50 border-b border-gray-200"},qXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},VXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},KXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},WXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},XXt={class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},YXt={class:"divide-y divide-gray-100"},QXt={key:0},ZXt={colspan:"6",class:"px-4 py-8 text-center text-gray-400"},eYt={class:"px-4 py-3 text-sm font-mono text-gray-700"},tYt=["href"],nYt={class:"px-4 py-3 text-sm text-gray-800 max-w-sm truncate"},iYt={class:"px-4 py-3"},rYt={class:"flex flex-wrap"},sYt={class:"px-4 py-3 text-sm text-gray-600"},oYt={class:"px-4 py-3 text-sm text-gray-500"},cYt={class:"px-4 py-3"},uYt={key:0,class:"px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-500"},lYt=["onClick"],aYt={key:0,class:"flex items-center justify-between mt-4"},fYt={class:"text-sm text-gray-500"},dYt={class:"flex space-x-2"},hYt=["disabled"],gYt=["disabled"],bYt=wr({__name:"BrowsePanel",props:{issues:{},trackedIids:{},total:{},page:{},perPage:{},loading:{type:Boolean},error:{},search:{},systemStatus:{}},emits:["update:search","update:page","search","start"],setup(a,{emit:d}){const b=d;function m(w,$){return $?`${$.config.gongfengBaseUrl}/${$.config.projectPath}/issues/${w}`:"#"}return(w,$)=>(R(),J("div",null,[E("div",LXt,[E("div",NXt,[E("input",{value:a.search,onInput:$[0]||($[0]=p=>b("update:search",p.target.value)),type:"text",placeholder:w.$t("browse.searchPlaceholder"),class:"w-full pl-9 pr-4 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-blue-400 focus:border-transparent",onKeyup:$[1]||($[1]=Gme(p=>b("search"),["enter"]))},null,40,RXt),$[5]||($[5]=E("svg",{class:"absolute left-3 top-2.5 w-4 h-4 text-gray-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1))]),E("button",{class:"px-4 py-2 bg-gray-800 text-white text-sm rounded-lg hover:bg-gray-700",disabled:a.loading,onClick:$[2]||($[2]=p=>b("search"))},M(a.loading?w.$t("browse.loading"):w.$t("browse.search")),9,FXt)]),a.loading?(R(),J("div",BXt,[$[6]||($[6]=E("svg",{class:"animate-spin h-6 w-6 mx-auto mb-2 text-blue-400",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(w.$t("browse.loadingList")),1)])):a.error?(R(),J("div",HXt,M(a.error),1)):(R(),J("div",GXt,[E("div",JXt,[E("table",UXt,[E("thead",zXt,[E("tr",null,[$[7]||($[7]=E("th",{class:"px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase"},"IID",-1)),E("th",qXt,M(w.$t("browse.title")),1),E("th",VXt,M(w.$t("browse.labels")),1),E("th",KXt,M(w.$t("browse.author")),1),E("th",WXt,M(w.$t("browse.createdAt")),1),E("th",XXt,M(w.$t("browse.actions")),1)])]),E("tbody",YXt,[a.issues.length===0?(R(),J("tr",QXt,[E("td",ZXt,M(w.$t("browse.empty")),1)])):Ae("",!0),(R(!0),J(sn,null,bi(a.issues,p=>(R(),J("tr",{key:p.iid,class:"hover:bg-gray-50 transition-colors"},[E("td",eYt,[E("a",{href:m(p.iid,a.systemStatus),target:"_blank",rel:"noopener",class:"text-blue-600 hover:text-blue-800 hover:underline inline-flex items-center"},[ci(" #"+M(p.iid)+" ",1),$[8]||($[8]=E("svg",{class:"w-3 h-3 ml-0.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1))],8,tYt)]),E("td",nYt,M(p.title),1),E("td",iYt,[E("div",rYt,[(R(!0),J(sn,null,bi(p.labels,j=>(R(),J("span",{key:j,class:"label-tag bg-blue-100 text-blue-700"},M(j),1))),128))])]),E("td",sYt,M(p.author?.name||p.author?.username||"-"),1),E("td",oYt,M(A(YS)(p.created_at)),1),E("td",cYt,[a.trackedIids.has(p.iid)?(R(),J("span",uYt,M(w.$t("browse.tracked")),1)):(R(),J("button",{key:1,class:"px-3 py-1 bg-green-500 text-white text-xs rounded-lg hover:bg-green-600 font-medium",onClick:j=>b("start",p)},M(w.$t("browse.start")),9,lYt))])]))),128))])])]),a.total>a.perPage?(R(),J("div",aYt,[E("div",fYt,M(w.$t("browse.pagination",{total:a.total,page:a.page,totalPages:Math.ceil(a.total/a.perPage)})),1),E("div",dYt,[E("button",{class:"px-3 py-1 text-sm bg-white border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-40",disabled:a.page<=1,onClick:$[3]||($[3]=p=>{b("update:page",a.page-1),b("search")})},M(w.$t("browse.prevPage")),9,hYt),E("button",{class:"px-3 py-1 text-sm bg-white border border-gray-300 rounded hover:bg-gray-50 disabled:opacity-40",disabled:a.page>=Math.ceil(a.total/a.perPage),onClick:$[4]||($[4]=p=>{b("update:page",a.page+1),b("search")})},M(w.$t("browse.nextPage")),9,gYt)])])):Ae("",!0)]))]))}});function pYt(){const a=Ye("input"),d=Ye(null),b=Ye(!1),m=Ye(""),w=Ye(""),$=Ye(null),p=Ye(null),j=En(()=>d.value?.currentSdd??""),I=En(()=>d.value?.rounds??[]),N=En(()=>d.value?.status??"idle"),P=En(()=>{const ye=I.value;return ye.length>0?ye[ye.length-1].questions:""});async function U(ye){m.value="",b.value=!0;try{const pe=await RKt(ye);d.value=pe.session,a.value="refine",await V()}catch(pe){m.value=pe.message}finally{b.value=!1}}async function V(ye){if(d.value){m.value="",b.value=!0,w.value="";try{const{fetchResponse:pe,abort:be}=P2e(d.value.id,"auto-refine",ye?{rounds:ye}:void 0);p.value=be;const se=await pe;if(!se.ok){const le=await se.json().catch(()=>({}));throw new Error(le.error||`HTTP ${se.status}`)}await K(se),await ke()}catch(pe){pe.name!=="AbortError"&&(m.value=pe.message)}finally{b.value=!1,p.value=null}}}async function X(){if(d.value){m.value="",b.value=!0,w.value="";try{const{fetchResponse:ye,abort:pe}=P2e(d.value.id,"review");p.value=pe;const be=await ye;if(!be.ok)throw new Error(`HTTP ${be.status}`);await K(be),await ke()}catch(ye){ye.name!=="AbortError"&&(m.value=ye.message)}finally{b.value=!1,p.value=null}}}async function ee(){if(d.value){m.value="",b.value=!0,w.value="";try{const{fetchResponse:ye,abort:pe}=P2e(d.value.id,"refine");p.value=pe;const be=await ye;if(!be.ok)throw new Error(`HTTP ${be.status}`);await K(be),await ke()}catch(ye){ye.name!=="AbortError"&&(m.value=ye.message)}finally{b.value=!1,p.value=null}}}async function K(ye){const pe=ye.body?.getReader();if(!pe)return;const be=new TextDecoder;let se="";for(;;){const{done:le,value:Ce}=await pe.read();if(le)break;se+=be.decode(Ce,{stream:!0});const Se=se.split(`
4
4
  `);se=Se.pop()??"";for(const te of Se)if(te.startsWith("data: "))try{const q=JSON.parse(te.slice(6));he(q)}catch{}}}function he(ye){if(ye.type==="sdd:chunk"||ye.type==="review:chunk"){const pe=ye.data;if(pe?.content){const be=typeof pe.content=="string"?pe.content:JSON.stringify(pe.content);w.value+=be+`
5
5
  `}}if(ye.type==="sdd:complete"){const pe=ye.data;pe?.sdd&&d.value&&(d.value.currentSdd=pe.sdd)}if(ye.type==="review:complete"){const pe=ye.data;pe&&d.value&&(d.value.rounds.find(se=>se.round===pe.round)||d.value.rounds.push({round:pe.round??d.value.rounds.length+1,questions:pe.questions??"",refinedSdd:""}))}if(ye.type==="round:complete"){const pe=ye.data;if(pe?.sdd&&d.value){d.value.currentSdd=pe.sdd;const be=d.value.rounds.find(se=>se.round===pe.round);be&&(be.refinedSdd=pe.sdd)}w.value=""}if(ye.type==="round:start"&&(w.value=""),ye.type==="error"){const pe=ye.data;m.value=pe?.message??"Unknown error"}}async function ke(){if(d.value)try{const ye=await FKt(d.value.id);d.value=ye.session}catch{}}async function ue(ye,pe){if(d.value){m.value="",b.value=!0;try{const be=await BKt(d.value.id,ye,pe);$.value=be.issue,a.value="complete"}catch(be){m.value=be.message}finally{b.value=!1}}}function oe(){p.value?.()}function re(){d.value=null,a.value="input",b.value=!1,m.value="",w.value="",$.value=null,p.value=null}return{step:a,session:d,loading:b,error:m,streamOutput:w,createdIssue:$,currentSdd:j,rounds:I,status:N,lastQuestions:P,startSession:U,runAutoRefine:V,runSingleReview:X,runSingleRefine:ee,createIssue:ue,abort:oe,reset:re}}function wYt(){const a=Ye(!1),d=Ye(""),b=Ye(""),m=Ye(!1),w=Ye("");let $=null;const p=window.SpeechRecognition||window.webkitSpeechRecognition;m.value=!!p;function j(U="zh-CN"){if(!p){w.value="当前浏览器不支持语音识别,请使用 Chrome 或 Edge";return}w.value="",$=new p,$.continuous=!0,$.interimResults=!0,$.lang=U,$.onresult=V=>{let X="",ee="";for(let K=V.resultIndex;K<V.results.length;K++){const he=V.results[K];he.isFinal?X+=he[0].transcript:ee+=he[0].transcript}X&&(d.value+=X),b.value=ee},$.onerror=V=>{V.error!=="no-speech"&&V.error!=="aborted"&&(w.value=`语音识别错误: ${V.error}`),a.value=!1},$.onend=()=>{a.value=!1,b.value=""},$.start(),a.value=!0}function I(){$&&($.stop(),$=null),a.value=!1}function N(U="zh-CN"){a.value?I():j(U)}function P(){d.value="",b.value=""}return dp(()=>{$&&($.abort(),$=null)}),{isRecording:a,transcript:d,interimText:b,isSupported:m,error:w,startRecording:j,stopRecording:I,toggleRecording:N,clearTranscript:P}}const vYt={class:"space-y-4"},mYt={class:"flex items-center gap-3"},yYt={key:0,class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24"},kYt={key:1,class:"w-4 h-4",fill:"currentColor",viewBox:"0 0 24 24"},xYt={key:1,class:"text-sm text-amber-600"},$Yt={key:0,class:"flex items-center gap-2 text-sm text-red-500"},EYt={key:0,class:"text-gray-400 italic ml-2 truncate max-w-md"},CYt={class:"block text-sm font-medium text-gray-700 mb-1"},SYt=["placeholder"],_Yt={key:1,class:"text-sm text-red-500"},jYt={class:"flex justify-end"},IYt=["disabled"],AYt=wr({__name:"VoiceRecorder",emits:["submit"],setup(a,{emit:d}){const{t:b}=Kg(),m=d,{isRecording:w,transcript:$,interimText:p,isSupported:j,error:I,toggleRecording:N,clearTranscript:P}=wYt();function U(){const V=$.value.trim();V&&m("submit",V)}return(V,X)=>(R(),J("div",vYt,[E("div",mYt,[A(j)?(R(),J("button",{key:0,class:wn(["inline-flex items-center gap-2 px-4 py-2.5 rounded-lg font-medium text-sm transition-all",A(w)?"bg-red-500 text-white hover:bg-red-600 animate-pulse":"bg-gray-800 text-white hover:bg-gray-700"]),onClick:X[0]||(X[0]=ee=>A(N)())},[A(w)?(R(),J("svg",kYt,[...X[4]||(X[4]=[E("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"},null,-1)])])):(R(),J("svg",yYt,[...X[3]||(X[3]=[E("path",{d:"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3z"},null,-1),E("path",{d:"M17 11c0 2.76-2.24 5-5 5s-5-2.24-5-5H5c0 3.53 2.61 6.43 6 6.92V21h2v-3.08c3.39-.49 6-3.39 6-6.92h-2z"},null,-1)])])),ci(" "+M(A(w)?A(b)("brainstorm.stopRecording"):A(b)("brainstorm.startRecording")),1)],2)):Ae("",!0),A(j)?Ae("",!0):(R(),J("span",xYt,M(A(b)("brainstorm.voiceNotSupported")),1)),A($).trim()?(R(),J("button",{key:2,class:"text-sm text-gray-500 hover:text-gray-700 underline",onClick:X[1]||(X[1]=ee=>A(P)())},M(A(b)("brainstorm.clear")),1)):Ae("",!0)]),A(w)?(R(),J("div",$Yt,[X[5]||(X[5]=E("span",{class:"relative flex h-2.5 w-2.5"},[E("span",{class:"animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75"}),E("span",{class:"relative inline-flex rounded-full h-2.5 w-2.5 bg-red-500"})],-1)),ci(" "+M(A(b)("brainstorm.recording"))+" ",1),A(p)?(R(),J("span",EYt,M(A(p)),1)):Ae("",!0)])):Ae("",!0),E("div",null,[E("label",CYt,M(A(b)("brainstorm.transcriptLabel")),1),Nn(E("textarea",{"onUpdate:modelValue":X[2]||(X[2]=ee=>Zc($)?$.value=ee:null),rows:"10",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-gray-800 focus:border-transparent resize-y",placeholder:A(b)("brainstorm.transcriptPlaceholder")},null,8,SYt),[[Ci,A($)]])]),A(I)?(R(),J("div",_Yt,M(A(I)),1)):Ae("",!0),E("div",jYt,[E("button",{class:"px-6 py-2.5 bg-gray-800 text-white rounded-lg text-sm font-medium hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",disabled:!A($).trim(),onClick:U},M(A(b)("brainstorm.startGenerate")),9,IYt)])]))}});function Jme(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var b9=Jme();function Mwt(a){b9=a}var t9={exec:()=>null};function Jo(a,d=""){let b=typeof a=="string"?a:a.source,m={replace:(w,$)=>{let p=typeof $=="string"?$:$.source;return p=p.replace(S1.caret,"$1"),b=b.replace(w,p),m},getRegex:()=>new RegExp(b,d)};return m}var TYt=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),S1={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:a=>new RegExp(`^( {0,3}${a})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:a=>new RegExp(`^ {0,${Math.min(3,a-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:a=>new RegExp(`^ {0,${Math.min(3,a-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:a=>new RegExp(`^ {0,${Math.min(3,a-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:a=>new RegExp(`^ {0,${Math.min(3,a-1)}}#`),htmlBeginRegex:a=>new RegExp(`^ {0,${Math.min(3,a-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:a=>new RegExp(`^ {0,${Math.min(3,a-1)}}>`)},MYt=/^(?:[ \t]*(?:\n|$))+/,PYt=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,DYt=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,dL=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,OYt=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ume=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Pwt=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Dwt=Jo(Pwt).replace(/bull/g,Ume).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),LYt=Jo(Pwt).replace(/bull/g,Ume).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),zme=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,NYt=/^[^\n]+/,qme=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,RYt=Jo(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",qme).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),FYt=Jo(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ume).getRegex(),UX="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Vme=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,BYt=Jo("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Vme).replace("tag",UX).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Owt=Jo(zme).replace("hr",dL).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",UX).getRegex(),HYt=Jo(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Owt).getRegex(),Kme={blockquote:HYt,code:PYt,def:RYt,fences:DYt,heading:OYt,hr:dL,html:BYt,lheading:Dwt,list:FYt,newline:MYt,paragraph:Owt,table:t9,text:NYt},Kgt=Jo("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",dL).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",UX).getRegex(),GYt={...Kme,lheading:LYt,table:Kgt,paragraph:Jo(zme).replace("hr",dL).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Kgt).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",UX).getRegex()},JYt={...Kme,html:Jo(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Vme).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:t9,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Jo(zme).replace("hr",dL).replace("heading",` *#{1,6} *[^
@@ -120,8 +120,8 @@ Consider installing the package or pass your own 'workerFactory' to ELK's constr
120
120
  `),K.value=Ce.postconditions.join(`
121
121
  `))}Jr(I,he);function ke(){b.selectedUseCaseId&&m("update-usecase",b.selectedUseCaseId,{name:P.value,displayName:U.value,description:V.value,importance:X.value,preconditions:ee.value.split(`
122
122
  `).filter(Ce=>Ce.trim()),postconditions:K.value.split(`
123
- `).filter(Ce=>Ce.trim())})}function ue(Ce){j.value[Ce]=!j.value[Ce]}const oe=En(()=>b.selectedUseCaseId?b.model.relationships.filter(Ce=>Ce.sourceId===b.selectedUseCaseId||Ce.targetId===b.selectedUseCaseId):[]);function re(Ce){const Se=b.model.useCases.find(te=>te.id===Ce);return Se?.displayName||Se?.name||Ce}const ye=Ye(!1),pe=Ye({sourceId:"",targetId:"",type:"include",label:""});function be(){const Ce="ucrel-"+Date.now().toString(36);m("add-relationship",{id:Ce,type:pe.value.type,sourceId:pe.value.sourceId,targetId:pe.value.targetId,label:pe.value.label||void 0}),pe.value={sourceId:"",targetId:"",type:"include",label:""},ye.value=!1}const se=Object.entries(qO).map(([Ce,Se])=>({value:Ce,label:Se.label})),le=Object.entries(x3).map(([Ce,Se])=>({value:Ce,label:Se.label}));return(Ce,Se)=>(R(),J("div",jdn,[E("div",Idn,[E("button",{class:wn(["flex-1 px-3 py-2 text-xs font-medium",w.value==="list"?"text-blue-600 border-b-2 border-blue-600":"text-gray-500 hover:text-gray-700"]),onClick:Se[0]||(Se[0]=te=>w.value="list")},"用例列表",2),E("button",{class:wn(["flex-1 px-3 py-2 text-xs font-medium",w.value==="detail"?"text-blue-600 border-b-2 border-blue-600":"text-gray-500 hover:text-gray-700"]),disabled:!I.value,onClick:Se[1]||(Se[1]=te=>w.value="detail")},"详情",10,Adn)]),E("div",Tdn,[w.value==="list"?(R(),J(sn,{key:0},[E("div",Mdn,[Nn(E("input",{"onUpdate:modelValue":Se[2]||(Se[2]=te=>$.value=te),class:"w-full px-2 py-1 border rounded text-xs",placeholder:"搜索用例..."},null,512),[[Ci,$.value]]),E("div",Pdn,[(R(!0),J(sn,null,bi([{value:"all",label:"全部"},...A(le)],te=>(R(),J("button",{key:te.value,class:wn(["px-2 py-0.5 text-[10px] rounded-full border",p.value===te.value?"bg-blue-600 text-white border-blue-600":"text-gray-500 border-gray-300 hover:border-gray-400"]),onClick:q=>p.value=te.value},M(te.label),11,Ddn))),128))])]),E("div",Odn,M(N.value.length)+"/"+M(a.model.useCases.length)+" 用例 · "+M(a.model.relationships.length)+" 关系 ",1),(R(!0),J(sn,null,bi(N.value,te=>(R(),J("div",{key:te.id,class:wn(["flex items-center gap-2 px-2 py-1.5 rounded text-xs cursor-pointer hover:bg-gray-50 group",{"bg-blue-50":a.selectedUseCaseId===te.id}]),onClick:q=>m("select-usecase",te.id)},[E("span",{class:"w-2 h-2 rounded-full flex-shrink-0",style:_c({backgroundColor:A(x3)[te.importance]?.color})},null,4),E("span",Ndn,M(te.displayName||te.name),1),E("span",Rdn,M(te.mainPath.length)+"步",1),E("button",{class:"text-red-400 hover:text-red-600 opacity-0 group-hover:opacity-100",title:"删除",onClick:Ah(q=>m("remove-usecase",te.id),["stop"])},"×",8,Fdn)],10,Ldn))),128)),E("div",Bdn,[E("div",Hdn,[Se[27]||(Se[27]=E("span",{class:"text-xs font-semibold text-gray-600"},"关系",-1)),E("button",{class:"text-xs text-blue-600 hover:text-blue-800",onClick:Se[3]||(Se[3]=te=>ye.value=!0)},"+ 添加")]),(R(!0),J(sn,null,bi(a.model.relationships,te=>(R(),J("div",{key:te.id,class:"flex items-center gap-1 px-2 py-1 text-[10px] text-gray-500 hover:bg-gray-50 rounded"},[E("span",Gdn,M(re(te.sourceId))+" → "+M(re(te.targetId)),1),E("span",Jdn,M(A(qO)[te.type]?.label),1),E("button",{class:"text-red-400 hover:text-red-600",onClick:q=>m("remove-relationship",te.id)},"×",8,Udn)]))),128))])],64)):Ae("",!0),w.value==="detail"&&I.value?(R(),J("div",zdn,[E("div",qdn,[E("span",{class:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:_c({color:A(x3)[I.value.importance]?.color,backgroundColor:A(x3)[I.value.importance]?.bgColor,border:"1px solid "+A(x3)[I.value.importance]?.color})},M(A(x3)[I.value.importance]?.label),5),E("span",Vdn,M(I.value.status),1)]),E("div",Kdn,M(I.value.displayName||I.value.name),1),E("div",Wdn,M(I.value.description),1),E("div",null,[Se[28]||(Se[28]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"参与者",-1)),E("div",Xdn,[ci(" 主: "+M(I.value.primaryActor)+" ",1),I.value.auxiliaryActors.length?(R(),J("span",Ydn," · 辅: "+M(I.value.auxiliaryActors.join(", ")),1)):Ae("",!0)])]),I.value.preconditions.length?(R(),J("div",Qdn,[Se[29]||(Se[29]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"前置条件",-1)),E("ul",Zdn,[(R(!0),J(sn,null,bi(I.value.preconditions,(te,q)=>(R(),J("li",{key:q},M(te),1))),128))])])):Ae("",!0),E("div",null,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[4]||(Se[4]=te=>ue("mainPath"))},[E("span",null,"主路径 ("+M(I.value.mainPath.length)+"步)",1),E("span",null,M(j.value.mainPath?"▼":"▶"),1)]),j.value.mainPath?(R(),J("div",ehn,[(R(!0),J(sn,null,bi(I.value.mainPath,te=>(R(),J("div",{key:te.number,class:"flex gap-2 text-xs py-0.5"},[E("span",thn,M(te.number),1),E("span",{class:wn(["text-[10px] font-medium px-1 rounded flex-shrink-0",{"bg-blue-100 text-blue-700":te.type==="request","bg-yellow-100 text-yellow-700":te.type==="validate","bg-green-100 text-green-700":te.type==="change","bg-purple-100 text-purple-700":te.type==="feedback","bg-orange-100 text-orange-700":te.type==="request-auxiliary","bg-teal-100 text-teal-700":te.type==="validate-auxiliary"}])},M(A(ydn)[te.type]),3),E("span",nhn,M(te.description),1)]))),128))])):Ae("",!0)]),I.value.extensions.length?(R(),J("div",ihn,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[5]||(Se[5]=te=>ue("extensions"))},[E("span",null,"扩展路径 ("+M(I.value.extensions.length)+")",1),E("span",null,M(j.value.extensions?"▼":"▶"),1)]),j.value.extensions?(R(),J("div",rhn,[(R(!0),J(sn,null,bi(I.value.extensions,te=>(R(),J("div",{key:te.id,class:"border-l-2 border-orange-200 pl-2"},[E("div",shn,M(te.condition),1),(R(!0),J(sn,null,bi(te.steps,q=>(R(),J("div",{key:q.number,class:"flex gap-2 text-xs py-0.5"},[E("span",ohn,M(q.number),1),E("span",chn,M(q.description),1)]))),128))]))),128))])):Ae("",!0)])):Ae("",!0),I.value.constraints.length?(R(),J("div",uhn,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[6]||(Se[6]=te=>ue("constraints"))},[E("span",null,"补充约束 ("+M(I.value.constraints.length)+")",1),E("span",null,M(j.value.constraints?"▼":"▶"),1)]),j.value.constraints?(R(),J("div",lhn,[(R(!0),J(sn,null,bi(I.value.constraints,te=>(R(),J("div",{key:te.id,class:"text-xs"},[E("div",ahn,[E("span",{class:wn(["text-[10px] font-medium px-1 rounded",{"bg-blue-100 text-blue-700":te.type==="field-list","bg-yellow-100 text-yellow-700":te.type==="business-rule","bg-green-100 text-green-700":te.type==="quality","bg-purple-100 text-purple-700":te.type==="design"}])},M({"field-list":"字段","business-rule":"规则",quality:"质量",design:"设计"}[te.type]),3),E("span",fhn,M(te.name),1)]),E("div",dhn,M(te.content),1)]))),128))])):Ae("",!0)])):Ae("",!0),I.value.postconditions.length?(R(),J("div",hhn,[Se[30]||(Se[30]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"后置条件",-1)),E("ul",ghn,[(R(!0),J(sn,null,bi(I.value.postconditions,(te,q)=>(R(),J("li",{key:q},M(te),1))),128))])])):Ae("",!0),oe.value.length?(R(),J("div",bhn,[E("label",phn,"关系 ("+M(oe.value.length)+")",1),(R(!0),J(sn,null,bi(oe.value,te=>(R(),J("div",{key:te.id,class:"text-xs text-gray-600 pl-2 py-0.5"},[te.sourceId===a.selectedUseCaseId?(R(),J("span",whn,"→ "+M(re(te.targetId)),1)):(R(),J("span",vhn,"← "+M(re(te.sourceId)),1)),E("span",mhn,"("+M(A(qO)[te.type]?.label)+")",1)]))),128))])):Ae("",!0),E("div",yhn,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[7]||(Se[7]=te=>ue("edit"))},[Se[31]||(Se[31]=E("span",null,"编辑",-1)),E("span",null,M(j.value.edit?"▼":"▶"),1)]),j.value.edit?(R(),J("div",khn,[E("div",null,[Se[32]||(Se[32]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"名称",-1)),Nn(E("input",{"onUpdate:modelValue":Se[8]||(Se[8]=te=>P.value=te),class:"w-full px-2 py-1 border rounded text-xs",onBlur:Se[9]||(Se[9]=te=>ke())},null,544),[[Ci,P.value]])]),E("div",null,[Se[33]||(Se[33]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"中文名",-1)),Nn(E("input",{"onUpdate:modelValue":Se[10]||(Se[10]=te=>U.value=te),class:"w-full px-2 py-1 border rounded text-xs",onBlur:Se[11]||(Se[11]=te=>ke())},null,544),[[Ci,U.value]])]),E("div",null,[Se[34]||(Se[34]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"描述",-1)),Nn(E("textarea",{"onUpdate:modelValue":Se[12]||(Se[12]=te=>V.value=te),class:"w-full px-2 py-1 border rounded text-xs",rows:"2",onBlur:Se[13]||(Se[13]=te=>ke())},null,544),[[Ci,V.value]])]),E("div",null,[Se[35]||(Se[35]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"重要性",-1)),Nn(E("select",{"onUpdate:modelValue":Se[14]||(Se[14]=te=>X.value=te),class:"w-full px-2 py-1 border rounded text-xs",onChange:Se[15]||(Se[15]=te=>ke())},[(R(!0),J(sn,null,bi(A(le),te=>(R(),J("option",{key:te.value,value:te.value},M(te.label),9,xhn))),128))],544),[[Rd,X.value]])]),E("div",null,[Se[36]||(Se[36]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"前置条件(每行一条)",-1)),Nn(E("textarea",{"onUpdate:modelValue":Se[16]||(Se[16]=te=>ee.value=te),class:"w-full px-2 py-1 border rounded text-xs",rows:"2",onBlur:Se[17]||(Se[17]=te=>ke())},null,544),[[Ci,ee.value]])]),E("div",null,[Se[37]||(Se[37]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"后置条件(每行一条)",-1)),Nn(E("textarea",{"onUpdate:modelValue":Se[18]||(Se[18]=te=>K.value=te),class:"w-full px-2 py-1 border rounded text-xs",rows:"2",onBlur:Se[19]||(Se[19]=te=>ke())},null,544),[[Ci,K.value]])]),E("button",{class:"w-full px-3 py-1.5 text-xs bg-red-50 text-red-600 rounded hover:bg-red-100",onClick:Se[20]||(Se[20]=te=>{m("remove-usecase",I.value.id),w.value="list"})},"删除此用例")])):Ae("",!0)])])):w.value==="detail"?(R(),J("div",$hn,"点击画布上的节点查看详情")):Ae("",!0)]),ye.value?(R(),J("div",{key:0,class:"fixed inset-0 bg-black/40 flex items-center justify-center z-50",onClick:Se[26]||(Se[26]=Ah(te=>ye.value=!1,["self"]))},[E("div",Ehn,[Se[41]||(Se[41]=E("h4",{class:"text-sm font-semibold"},"添加用例关系",-1)),E("div",null,[Se[38]||(Se[38]=E("label",{class:"text-[10px] text-gray-500"},"源用例",-1)),Nn(E("select",{"onUpdate:modelValue":Se[21]||(Se[21]=te=>pe.value.sourceId=te),class:"w-full px-2 py-1 border rounded text-xs"},[(R(!0),J(sn,null,bi(a.model.useCases,te=>(R(),J("option",{key:te.id,value:te.id},M(te.displayName||te.name),9,Chn))),128))],512),[[Rd,pe.value.sourceId]])]),E("div",null,[Se[39]||(Se[39]=E("label",{class:"text-[10px] text-gray-500"},"目标用例",-1)),Nn(E("select",{"onUpdate:modelValue":Se[22]||(Se[22]=te=>pe.value.targetId=te),class:"w-full px-2 py-1 border rounded text-xs"},[(R(!0),J(sn,null,bi(a.model.useCases,te=>(R(),J("option",{key:te.id,value:te.id},M(te.displayName||te.name),9,Shn))),128))],512),[[Rd,pe.value.targetId]])]),E("div",null,[Se[40]||(Se[40]=E("label",{class:"text-[10px] text-gray-500"},"关系类型",-1)),Nn(E("select",{"onUpdate:modelValue":Se[23]||(Se[23]=te=>pe.value.type=te),class:"w-full px-2 py-1 border rounded text-xs"},[(R(!0),J(sn,null,bi(A(se),te=>(R(),J("option",{key:te.value,value:te.value},M(te.label),9,_hn))),128))],512),[[Rd,pe.value.type]])]),E("div",jhn,[E("button",{class:"px-3 py-1 text-xs bg-gray-200 rounded hover:bg-gray-300",onClick:Se[24]||(Se[24]=te=>ye.value=!1)},"取消"),E("button",{class:"px-3 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50",disabled:!pe.value.sourceId||!pe.value.targetId,onClick:Se[25]||(Se[25]=te=>be())},"添加",8,Ihn)])])])):Ae("",!0)]))}}),Thn={class:"space-y-3"},Mhn={class:"flex items-center justify-between"},Phn={class:"text-[10px] text-gray-500 uppercase font-semibold"},Dhn={key:0,class:"space-y-1"},Ohn={class:"text-[10px] text-indigo-500 font-mono"},Lhn={class:"flex-1 truncate text-gray-700"},Nhn=["onClick"],Rhn={key:1,class:"text-[10px] text-gray-400"},Fhn={class:"max-h-32 overflow-y-auto space-y-0.5"},Bhn=["onClick"],Hhn={class:"text-[10px] text-gray-400 font-mono"},Ghn={class:"flex-1 truncate text-gray-600"},Jhn=wr({__name:"DomainLinkPanel",props:{useCase:{},availableElements:{}},emits:["update-links","suggest"],setup(a,{emit:d}){const b=a,m=d,w=Ye(""),$=En(()=>b.availableElements.filter(N=>b.useCase.domainElementIds.includes(N.id))),p=En(()=>{const N=w.value.toLowerCase();return b.availableElements.filter(P=>!b.useCase.domainElementIds.includes(P.id)).filter(P=>!N||P.name.toLowerCase().includes(N)||P.displayName.toLowerCase().includes(N))});function j(N){m("update-links",[...b.useCase.domainElementIds,N])}function I(N){m("update-links",b.useCase.domainElementIds.filter(P=>P!==N))}return(N,P)=>(R(),J("div",Thn,[E("div",Mhn,[E("label",Phn,"领域关联 ("+M($.value.length)+")",1),E("button",{class:"text-[10px] text-indigo-600 hover:text-indigo-800",onClick:P[0]||(P[0]=U=>m("suggest"))},"AI 推荐")]),$.value.length?(R(),J("div",Dhn,[(R(!0),J(sn,null,bi($.value,U=>(R(),J("div",{key:U.id,class:"flex items-center gap-2 px-2 py-1 bg-indigo-50 rounded text-xs"},[E("span",Ohn,M(U.type),1),E("span",Lhn,M(U.displayName||U.name),1),E("button",{class:"text-red-400 hover:text-red-600 text-xs",onClick:V=>I(U.id)},"×",8,Nhn)]))),128))])):(R(),J("div",Rhn,"暂无关联的领域元素")),E("div",null,[Nn(E("input",{"onUpdate:modelValue":P[1]||(P[1]=U=>w.value=U),class:"w-full px-2 py-1 border rounded text-xs mb-1",placeholder:"搜索领域元素..."},null,512),[[Ci,w.value]]),E("div",Fhn,[(R(!0),J(sn,null,bi(p.value,U=>(R(),J("div",{key:U.id,class:"flex items-center gap-2 px-2 py-1 hover:bg-gray-50 rounded text-xs cursor-pointer",onClick:V=>j(U.id)},[E("span",Hhn,M(U.type),1),E("span",Ghn,M(U.displayName||U.name),1),P[2]||(P[2]=E("span",{class:"text-blue-500 text-[10px]"},"+ 添加",-1))],8,Bhn))),128))])])]))}}),Uhn={class:"flex flex-col",style:{height:"calc(100vh - 220px)"}},zhn={class:"flex items-center gap-2 px-4 py-2 bg-white border-b border-gray-200"},qhn=["disabled"],Vhn=["disabled"],Khn=["disabled"],Whn=["disabled"],Xhn=["disabled"],Yhn={key:1,class:"text-xs text-gray-400"},Qhn={key:0},Zhn={key:0,class:"bg-red-50 border-b border-red-200 text-red-700 px-4 py-2 text-sm"},e1n={key:1,class:"bg-blue-50 border-b border-blue-200 px-4 py-2"},t1n={class:"flex items-center gap-2 text-sm"},n1n={class:"text-blue-700"},i1n={key:2,class:"border-b border-gray-200 bg-white"},r1n={class:"px-4 py-1.5 flex items-center justify-between bg-gray-50 border-b border-gray-100"},s1n={class:"text-xs font-medium text-gray-600"},o1n={class:"overflow-y-auto",style:{"max-height":"12rem"}},c1n={class:"text-gray-400 mr-2"},u1n={class:"flex-1 flex overflow-hidden"},l1n={key:0,class:"flex-1 relative"},a1n={key:1,class:"flex-1 flex items-center justify-center bg-gray-50"},f1n={class:"text-center"},d1n={class:"text-gray-500 mb-2"},h1n={key:2,class:"w-64 border-l border-gray-200 bg-white overflow-auto p-3"},g1n={key:3,class:"flex items-center gap-4 px-4 py-1.5 bg-gray-50 border-t border-gray-200 text-[10px] text-gray-500 overflow-x-auto"},b1n=wr({__name:"SystemUseCasePanel",setup(a){const{model:d,analyzing:b,analyzeProgress:m,loading:w,error:$,selectedUseCaseId:p,selectedUseCase:j,dirty:I,agentLogs:N,suggestingAssociations:P,loadModel:U,saveModel:V,runAnalysis:X,confirmAndPersist:ee,updateUseCase:K,removeUseCase:he,addRelationship:ke,removeRelationship:ue,suggestDomainAssociations:oe,updateDomainLinks:re}=mdn(),ye=Ye(!1),pe=Ye(!0),be=Ye(!1),se=Ye([]);async function le(){try{const gt=await Ewt();gt.model&&(se.value=gt.model.elements.map(ze=>({id:ze.id,name:ze.name,displayName:ze.displayName,type:ze.type})))}catch{}}const Ce={usecase:I3(Cdn),actor:I3(_dn)},Se=En(()=>{if(!d.value)return[];const gt=[],ze=new Set;for(const Jt of d.value.useCases){ze.add(Jt.primaryActor);for(const xe of Jt.auxiliaryActors)ze.add(xe)}for(const Jt of d.value.actors)ze.add(Jt);let jt=50;for(const Jt of ze)gt.push({id:`actor-${Jt}`,type:"actor",position:{x:50,y:jt},data:{name:Jt}}),jt+=120;for(const[Jt,xe]of d.value.useCases.entries())gt.push({id:xe.id,type:"usecase",position:xe.position??{x:300+Jt%3*250,y:50+Math.floor(Jt/3)*160},data:xe});return gt}),te=En(()=>{if(!d.value)return[];const gt=[];for(const ze of d.value.useCases){gt.push({id:`edge-actor-${ze.primaryActor}-${ze.id}`,source:`actor-${ze.primaryActor}`,target:ze.id,type:"default",style:{stroke:"#94A3B8"}});for(const jt of ze.auxiliaryActors)gt.push({id:`edge-actor-${jt}-${ze.id}`,source:`actor-${jt}`,target:ze.id,type:"default",style:{stroke:"#94A3B8",strokeDasharray:"4 3"}})}for(const ze of d.value.relationships){const jt=qO[ze.type];gt.push({id:ze.id,source:ze.sourceId,target:ze.targetId,label:ze.label||jt?.label||"",type:"default",style:{stroke:jt?.color||"#94A3B8",...jt?.style==="dashed"?{strokeDasharray:"6 3"}:{}},markerEnd:sL.ArrowClosed,data:ze})}return gt});function q(gt){gt.node.type==="usecase"&&(p.value=gt.node.id)}function He(){p.value=null}return gl(async()=>{await U(),await le()}),Jr(()=>b.value,async(gt,ze)=>{ze&&!gt&&await le()}),(gt,ze)=>(R(),J("div",Uhn,[E("div",zhn,[E("button",{class:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50",disabled:A(b),onClick:ze[0]||(ze[0]=jt=>A(X)(!1))},M(A(b)?"分析中...":"分析系统用例"),9,qhn),E("button",{class:"px-3 py-1.5 text-sm bg-blue-500 text-white rounded hover:bg-blue-600 disabled:opacity-50",disabled:A(b),onClick:ze[1]||(ze[1]=jt=>A(X)(!0))},"精炼分析",8,Vhn),E("button",{class:"px-3 py-1.5 text-sm bg-green-600 text-white rounded hover:bg-green-700 disabled:opacity-50",disabled:!A(d)||A(w),onClick:ze[2]||(ze[2]=jt=>A(V)())}," 保存"+M(A(I)?" *":""),9,Khn),E("button",{class:"px-3 py-1.5 text-sm bg-purple-600 text-white rounded hover:bg-purple-700 disabled:opacity-50",disabled:!A(d)||A(w),onClick:ze[3]||(ze[3]=jt=>A(ee)())},"确认入库",8,Whn),E("button",{class:"px-3 py-1.5 text-sm bg-indigo-600 text-white rounded hover:bg-indigo-700 disabled:opacity-50",disabled:!A(d)||A(P),onClick:ze[4]||(ze[4]=jt=>A(oe)())},M(A(P)?"推荐中...":"推荐关联"),9,Xhn),ze[12]||(ze[12]=E("div",{class:"flex-1"},null,-1)),A(b)?(R(),J("button",{key:0,class:"px-2 py-1 text-xs text-gray-600 border rounded hover:bg-gray-50",onClick:ze[5]||(ze[5]=jt=>ye.value=!ye.value)},M(ye.value?"隐藏日志":"显示日志"),1)):Ae("",!0),E("button",{class:"px-2 py-1 text-xs text-gray-600 border rounded hover:bg-gray-50",onClick:ze[6]||(ze[6]=jt=>be.value=!be.value)},M(be.value?"隐藏关联":"领域关联"),1),E("button",{class:"px-2 py-1 text-xs text-gray-600 border rounded hover:bg-gray-50",onClick:ze[7]||(ze[7]=jt=>pe.value=!pe.value)},M(pe.value?"隐藏面板":"显示面板"),1),A(d)?(R(),J("div",Yhn,[ci(M(A(d).useCases.length)+" 用例 · "+M(A(d).relationships.length)+" 关系 ",1),A(d).analyzedAt?(R(),J("span",Qhn," · 分析于 "+M(new Date(A(d).analyzedAt).toLocaleString("zh-CN")),1)):Ae("",!0)])):Ae("",!0)]),A($)?(R(),J("div",Zhn,M(A($)),1)):Ae("",!0),A(b)&&A(m)?(R(),J("div",e1n,[E("div",t1n,[ze[13]||(ze[13]=E("svg",{class:"animate-spin h-4 w-4 text-blue-600",viewBox:"0 0 24 24",fill:"none"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),E("span",n1n,M(A(m).message),1)])])):Ae("",!0),A(b)&&ye.value&&A(N).length>0?(R(),J("div",i1n,[E("div",r1n,[E("span",s1n,"AI 实时日志 ("+M(A(N).length)+")",1)]),E("div",o1n,[(R(!0),J(sn,null,bi(A(N),(jt,Jt)=>(R(),J("div",{key:Jt,class:"px-4 py-1 text-xs text-gray-600 border-b border-gray-50"},[E("span",c1n,M(jt.type),1),E("span",null,M(jt.content),1)]))),128))])])):Ae("",!0),E("div",u1n,[A(d)&&A(d).useCases.length>0?(R(),J("div",l1n,[xr(A(Xvt),{nodes:Se.value,edges:te.value,"node-types":Ce,"default-viewport":{x:0,y:0,zoom:.8},"fit-view-on-init":"",onNodeClick:q,onPaneClick:He},{default:zg(()=>[xr(A(Zvt)),xr(A(e2t))]),_:1},8,["nodes","edges"])])):(R(),J("div",a1n,[E("div",f1n,[ze[14]||(ze[14]=E("div",{class:"text-6xl text-gray-300 mb-4"},"⚙",-1)),E("div",d1n,[A(w)?(R(),J(sn,{key:0},[ci("加载中...")],64)):A(b)?(R(),J(sn,{key:1},[ci("正在分析系统用例...")],64)):(R(),J(sn,{key:2},[ci("暂无系统用例数据")],64))]),!A(w)&&!A(b)?(R(),J("button",{key:0,class:"px-4 py-2 text-sm bg-blue-600 text-white rounded hover:bg-blue-700",onClick:ze[8]||(ze[8]=jt=>A(X)(!1))},"开始分析")):Ae("",!0)])])),be.value&&A(j)?(R(),J("div",h1n,[xr(Jhn,{"use-case":A(j),"available-elements":se.value,onUpdateLinks:ze[9]||(ze[9]=jt=>A(re)(A(p),jt)),onSuggest:ze[10]||(ze[10]=jt=>A(oe)())},null,8,["use-case","available-elements"])])):Ae("",!0),pe.value&&A(d)?(R(),Ts(Ahn,{key:3,model:A(d),"selected-use-case-id":A(p),onSelectUsecase:ze[11]||(ze[11]=jt=>p.value=jt),onUpdateUsecase:A(K),onRemoveUsecase:A(he),onAddRelationship:A(ke),onRemoveRelationship:A(ue)},null,8,["model","selected-use-case-id","onUpdateUsecase","onRemoveUsecase","onAddRelationship","onRemoveRelationship"])):Ae("",!0)]),A(d)?(R(),J("div",g1n,[ze[15]||(ze[15]=E("span",{class:"font-semibold text-gray-600"},"图例:",-1)),(R(!0),J(sn,null,bi(A(x3),(jt,Jt)=>(R(),J("span",{key:Jt,class:"flex items-center gap-1 whitespace-nowrap"},[E("span",{class:"inline-block w-3 h-3 rounded-full border",style:_c({backgroundColor:jt.bgColor,borderColor:jt.color})},null,4),ci(" "+M(jt.label),1)]))),128)),ze[16]||(ze[16]=E("span",{class:"text-gray-400"},"|",-1)),(R(!0),J(sn,null,bi(A(qO),(jt,Jt)=>(R(),J("span",{key:Jt,class:"whitespace-nowrap"},[E("span",{style:_c({color:jt.color})},M(jt.label),5)]))),128))])):Ae("",!0)]))}}),p1n={key:0,class:"fixed inset-0 z-50 flex items-center justify-center"},w1n={class:"relative bg-white rounded-xl shadow-2xl w-full max-w-xl max-h-[90vh] overflow-y-auto"},v1n={class:"sticky top-0 bg-white border-b border-gray-200 px-6 py-4 flex items-center justify-between z-10 rounded-t-xl"},m1n={class:"text-lg font-bold text-gray-800"},y1n={class:"px-6 py-4 space-y-4"},k1n={class:"text-sm text-gray-500 mb-1"},x1n={class:"text-sm font-medium text-gray-800"},$1n={key:0},E1n={class:"text-sm text-gray-500 mb-1"},C1n={class:"text-sm text-gray-600 bg-gray-50 rounded-lg p-3 max-h-32 overflow-y-auto whitespace-pre-wrap"},S1n={class:"border-t border-gray-200 pt-4"},_1n={class:"text-sm font-semibold text-gray-700 mb-3"},j1n={class:"space-y-3"},I1n={class:"block text-xs font-medium text-gray-600 mb-1"},A1n=["value","placeholder"],T1n={class:"block text-xs font-medium text-gray-600 mb-1"},M1n=["value","placeholder"],P1n={class:"block text-xs font-medium text-gray-600 mb-1"},D1n=["value","placeholder"],O1n={class:"block text-xs font-medium text-gray-600 mb-1"},L1n=["value","placeholder"],N1n={class:"block text-xs font-medium text-gray-600 mb-1"},R1n=["value","placeholder"],F1n={class:"block text-xs font-medium text-gray-600 mb-1"},B1n=["value","placeholder"],H1n={class:"block text-xs font-medium text-gray-600 mb-1"},G1n=["value","placeholder"],J1n={class:"sticky bottom-0 bg-white border-t border-gray-200 px-6 py-4 flex justify-end space-x-3 rounded-b-xl"},U1n=["disabled"],z1n=wr({__name:"StartDialog",props:{issue:{},supplement:{},processing:{type:Boolean}},emits:["close","start","update:supplement"],setup(a,{emit:d}){const b=a,m=d;function w($,p){m("update:supplement",{...b.supplement,[$]:p})}return($,p)=>(R(),Ts(wwt,{name:"fade"},{default:zg(()=>[a.issue?(R(),J("div",p1n,[E("div",{class:"absolute inset-0 bg-black/30",onClick:p[0]||(p[0]=j=>m("close"))}),E("div",w1n,[E("div",v1n,[E("h2",m1n,M($.$t("start.title",{iid:a.issue.iid})),1),E("button",{class:"text-gray-400 hover:text-gray-600 text-2xl leading-none",onClick:p[1]||(p[1]=j=>m("close"))},"×")]),E("div",y1n,[E("div",null,[E("div",k1n,M($.$t("start.issueTitle")),1),E("div",x1n,M(a.issue.title),1)]),a.issue.description?(R(),J("div",$1n,[E("div",E1n,M($.$t("start.descPreview")),1),E("div",C1n,M(a.issue.description?.slice(0,500))+M((a.issue.description?.length||0)>500?"...":""),1)])):Ae("",!0),E("div",S1n,[E("h3",_1n,M($.$t("start.supplement")),1),E("div",j1n,[E("div",null,[E("label",I1n,M($.$t("start.requirements")),1),E("textarea",{value:a.supplement.requirements,onInput:p[2]||(p[2]=j=>w("requirements",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.requirementsPlaceholder")},null,40,A1n)]),E("div",null,[E("label",T1n,M($.$t("start.acceptance")),1),E("textarea",{value:a.supplement.acceptanceCriteria,onInput:p[3]||(p[3]=j=>w("acceptanceCriteria",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.acceptancePlaceholder")},null,40,M1n)]),E("div",null,[E("label",P1n,M($.$t("start.scope")),1),E("input",{value:a.supplement.scope,onInput:p[4]||(p[4]=j=>w("scope",j.target.value)),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.scopePlaceholder")},null,40,D1n)]),E("div",null,[E("label",O1n,M($.$t("start.constraints")),1),E("textarea",{value:a.supplement.constraints,onInput:p[5]||(p[5]=j=>w("constraints",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.constraintsPlaceholder")},null,40,L1n)]),E("div",null,[E("label",N1n,M($.$t("start.references")),1),E("textarea",{value:a.supplement.references,onInput:p[6]||(p[6]=j=>w("references",j.target.value)),rows:"1",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.referencesPlaceholder")},null,40,R1n)]),E("div",null,[E("label",F1n,M($.$t("start.freeText")),1),E("textarea",{value:a.supplement.freeText,onInput:p[7]||(p[7]=j=>w("freeText",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.freeTextPlaceholder")},null,40,B1n)]),E("div",null,[E("label",H1n,M($.$t("start.tapdId")),1),E("input",{value:a.supplement.tapdId,onInput:p[8]||(p[8]=j=>w("tapdId",j.target.value)),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.tapdIdPlaceholder")},null,40,G1n)])])])]),E("div",J1n,[E("button",{class:"px-4 py-2 text-sm text-gray-600 bg-gray-100 rounded-lg hover:bg-gray-200",onClick:p[9]||(p[9]=j=>m("close"))},M($.$t("start.cancel")),1),E("button",{class:"px-4 py-2 text-sm text-white bg-green-500 rounded-lg hover:bg-green-600 font-medium disabled:opacity-50",disabled:a.processing,onClick:p[10]||(p[10]=j=>m("start"))},M(a.processing?$.$t("start.processing"):$.$t("start.submit")),9,U1n)])])])):Ae("",!0)]),_:1}))}}),q1n={key:0,class:"text-base font-semibold text-gray-700 mb-3"},V1n={key:1,class:"flex flex-col gap-1"},K1n={class:"flex items-center gap-3"},W1n={key:0},X1n={key:1,class:"pulse-dot"},Y1n={key:2},Q1n={key:3},Z1n={class:"flex-1 min-w-0"},e0n={class:"flex items-center gap-2"},t0n={key:0,class:"text-xs text-gray-400"},n0n=["onClick"],i0n={key:0,class:"ml-3.5 relative"},r0n={key:2,class:"flex items-center justify-between"},s0n={class:"flex flex-col items-center space-y-1"},o0n={key:0},c0n={key:1,class:"pulse-dot"},u0n={key:2},l0n={key:3},a0n={class:"text-xs text-gray-600"},f0n={key:0,class:"text-xs text-gray-400"},d0n=["onClick"],h0n={key:0,class:"flex-1 relative mx-2"},g0n=["title"],t2t=wr({__name:"PipelineProgress",props:{issue:{},progress:{},verifyFixLoop:{},vertical:{type:Boolean}},emits:["retryFromPhase"],setup(a,{emit:d}){const b=a,m=d,{getPhaseNames:w,phaseLabel:$,phaseNodeClass:p,phaseStatus:j}=r_();function I(P){return b.progress?.phases?.[P]?b.progress.phases[P].status:j(b.issue,P)}function N(P){if(!b.progress?.phases)return"";const U=b.progress.phases[P];if(!U?.startedAt)return"";const V=new Date(U.startedAt),X=U.completedAt?new Date(U.completedAt):new Date;return Awt(X.getTime()-V.getTime())}return(P,U)=>(R(),J("div",null,[a.vertical?Ae("",!0):(R(),J("h3",q1n,M(P.$t("pipeline.title")),1)),a.vertical?(R(),J("div",V1n,[(R(!0),J(sn,null,bi(A(w)(a.issue),(V,X)=>(R(),J(sn,{key:V},[E("div",K1n,[E("div",{class:wn(["w-7 h-7 rounded-full flex items-center justify-center text-xs font-bold flex-shrink-0",A(p)(I(V))])},[I(V)==="completed"?(R(),J("span",W1n,"✓")):I(V)==="in_progress"?(R(),J("span",X1n,"●")):I(V)==="failed"?(R(),J("span",Y1n,"✗")):(R(),J("span",Q1n,M(X+1),1))],2),E("div",Z1n,[E("div",e0n,[E("span",{class:wn(["text-sm font-medium",I(V)==="in_progress"?"text-blue-600":"text-gray-700"])},M(A($)(V)),3),N(V)?(R(),J("span",t0n,M(N(V)),1)):Ae("",!0)])]),E("button",{class:"text-xs text-gray-400 hover:text-blue-600 hover:underline flex-shrink-0",onClick:ee=>m("retryFromPhase",V)},M(P.$t("pipeline.retryFrom")),9,n0n)]),X<A(w)(a.issue).length-1?(R(),J("div",i0n,[E("div",{class:wn(["w-px h-3",I(V)==="completed"?"bg-green-400":"bg-gray-200"])},null,2),a.verifyFixLoop&&a.verifyFixLoop.iteration>0&&V==="build"?(R(),J("span",{key:0,class:wn(["absolute -left-1 top-0 text-xs rounded-full px-1.5 py-0.5 font-medium whitespace-nowrap border",a.verifyFixLoop.active?"bg-amber-100 text-amber-700 border-amber-300":a.verifyFixLoop.lastPassed?"bg-green-100 text-green-700 border-green-300":"bg-red-100 text-red-700 border-red-300"]),style:{"margin-left":"24px"}},"⟲ "+M(a.verifyFixLoop.iteration)+"/"+M(a.verifyFixLoop.maxIterations),3)):Ae("",!0)])):Ae("",!0)],64))),128))])):(R(),J("div",r0n,[(R(!0),J(sn,null,bi(A(w)(a.issue),(V,X)=>(R(),J(sn,{key:V},[E("div",s0n,[E("div",{class:wn(["w-10 h-10 rounded-full flex items-center justify-center text-sm font-bold",A(p)(I(V))])},[I(V)==="completed"?(R(),J("span",o0n,"✓")):I(V)==="in_progress"?(R(),J("span",c0n,"●")):I(V)==="failed"?(R(),J("span",u0n,"✗")):(R(),J("span",l0n,M(X+1),1))],2),E("span",a0n,M(A($)(V)),1),N(V)?(R(),J("span",f0n,M(N(V)),1)):Ae("",!0),E("button",{class:"text-xs text-blue-500 hover:text-blue-700 hover:underline mt-0.5",onClick:ee=>m("retryFromPhase",V)},M(P.$t("pipeline.retryFrom")),9,d0n)]),X<A(w)(a.issue).length-1?(R(),J("div",h0n,[E("div",{class:wn(["h-0.5",I(A(w)(a.issue)[X])==="completed"?"bg-green-400":"bg-gray-200"])},null,2),a.verifyFixLoop&&a.verifyFixLoop.iteration>0&&V==="build"?(R(),J("span",{key:0,class:wn(["absolute -top-3.5 left-1/2 -translate-x-1/2 text-xs rounded-full px-1.5 py-0.5 font-medium whitespace-nowrap border",a.verifyFixLoop.active?"bg-amber-100 text-amber-700 border-amber-300":a.verifyFixLoop.lastPassed?"bg-green-100 text-green-700 border-green-300":"bg-red-100 text-red-700 border-red-300"]),title:P.$t("verify.loopBadgeTooltip",{n:a.verifyFixLoop.iteration,max:a.verifyFixLoop.maxIterations})},"⟲ "+M(a.verifyFixLoop.iteration)+"/"+M(a.verifyFixLoop.maxIterations),11,g0n)):Ae("",!0)])):Ae("",!0)],64))),128))]))]))}}),b0n={class:"bg-yellow-50 border-2 border-yellow-300 rounded-lg p-4"},p0n={class:"text-base font-semibold text-yellow-800 mb-3"},w0n={class:"text-sm text-yellow-700 mb-3"},v0n={key:0,class:"text-yellow-600 font-medium"},m0n={key:0,class:"mb-4"},y0n={class:"flex items-center mb-2"},k0n={class:"text-xs font-semibold text-yellow-700"},x0n={class:"ml-2 px-1.5 py-0.5 text-xs bg-yellow-200 text-yellow-800 rounded-full"},$0n={class:"space-y-2 max-h-48 overflow-y-auto border border-yellow-200 rounded-lg bg-white/60 p-3"},E0n={class:"flex items-baseline space-x-2 mb-0.5"},C0n={class:"text-xs font-semibold text-yellow-700"},S0n={class:"text-xs text-gray-400"},_0n={class:"text-sm text-gray-700 whitespace-pre-wrap break-words"},j0n={class:"flex items-center space-x-3 mb-3"},I0n=["disabled"],A0n=["disabled"],T0n={class:"space-y-2"},M0n={class:"block text-xs font-medium text-yellow-700"},P0n=["placeholder"],D0n=["disabled"],n2t=wr({__name:"ReviewGatePanel",props:cX({reviewSubmitting:{type:Boolean},reviewHistory:{}},{reviewFeedback:{required:!0},reviewFeedbackModifiers:{}}),emits:cX(["approve","reject","skip"],["update:reviewFeedback"]),setup(a,{emit:d}){const b=ime(a,"reviewFeedback"),m=d;function w($){try{return new Date($).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return $}}return($,p)=>(R(),J("div",b0n,[E("h3",p0n,M($.$t("review.title")),1),E("p",w0n,[ci(M($.$t("review.description"))+" ",1),a.reviewHistory.length>0?(R(),J("span",v0n,M($.$t("review.currentRound",{round:a.reviewHistory.length+1})),1)):Ae("",!0)]),a.reviewHistory.length>0?(R(),J("div",m0n,[E("div",y0n,[E("span",k0n,M($.$t("review.history")),1),E("span",x0n,M($.$t("review.roundLabel",{n:a.reviewHistory.length})),1)]),E("div",$0n,[(R(!0),J(sn,null,bi(a.reviewHistory,j=>(R(),J("div",{key:j.round,class:wn(["relative pl-5 pb-2 border-l-2",j.round===a.reviewHistory.length?"border-yellow-500":"border-yellow-200"])},[E("div",{class:wn(["absolute left-[-5px] top-1 w-2 h-2 rounded-full",j.round===a.reviewHistory.length?"bg-yellow-500":"bg-yellow-300"])},null,2),E("div",E0n,[E("span",C0n,M($.$t("review.roundPrefix",{round:j.round})),1),E("span",S0n,M(w(j.timestamp)),1)]),E("p",_0n,M(j.feedback),1)],2))),128))])])):Ae("",!0),E("div",j0n,[E("button",{class:"px-4 py-2 bg-green-500 text-white text-sm rounded-lg hover:bg-green-600 font-medium disabled:opacity-50",disabled:a.reviewSubmitting,onClick:p[0]||(p[0]=j=>m("approve"))},M(a.reviewSubmitting?$.$t("review.submitting"):$.$t("review.approve")),9,I0n),E("button",{class:"px-4 py-2 bg-gray-400 text-white text-sm rounded-lg hover:bg-gray-500 font-medium disabled:opacity-50",disabled:a.reviewSubmitting,onClick:p[1]||(p[1]=j=>m("skip"))},M($.$t("review.skip")),9,A0n)]),E("div",T0n,[E("label",M0n,M($.$t("review.feedbackLabel")),1),Nn(E("textarea",{"onUpdate:modelValue":p[2]||(p[2]=j=>b.value=j),rows:"3",class:"w-full border border-yellow-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-yellow-400",placeholder:$.$t("review.feedbackPlaceholder")},null,8,P0n),[[Ci,b.value]]),E("button",{class:"px-4 py-2 bg-red-500 text-white text-sm rounded-lg hover:bg-red-600 font-medium disabled:opacity-50",disabled:a.reviewSubmitting||!b.value.trim(),onClick:p[3]||(p[3]=j=>m("reject"))},M($.$t("review.reject")),9,D0n)])]))}}),O0n={class:"flex items-center justify-between mb-2"},L0n={class:"text-base font-semibold text-gray-700"},N0n={class:"flex items-center space-x-2"},R0n=["disabled"],F0n={key:0,class:"py-4 text-center text-gray-400 text-sm"},B0n={key:1},H0n={key:0,class:"space-y-2 text-sm"},G0n={key:0},J0n={class:"text-gray-500 font-medium"},U0n={class:"text-gray-700"},z0n={key:1},q0n={class:"text-gray-500 font-medium"},V0n={class:"text-gray-700"},K0n={key:2},W0n={class:"text-gray-500 font-medium"},X0n={class:"text-gray-700"},Y0n={key:3},Q0n={class:"text-gray-500 font-medium"},Z0n={class:"text-gray-700"},egn={key:4},tgn={class:"text-gray-500 font-medium"},ngn={class:"text-gray-700"},ign={key:5},rgn={class:"text-gray-500 font-medium"},sgn={class:"text-gray-700"},ogn={key:6},cgn={class:"text-gray-500 font-medium"},ugn={class:"text-gray-700"},lgn={key:1,class:"py-4 text-center text-gray-400 text-sm"},agn={key:2,class:"space-y-3"},fgn={class:"block text-xs font-medium text-gray-600 mb-1"},dgn=["value"],hgn={class:"block text-xs font-medium text-gray-600 mb-1"},ggn=["value"],bgn={class:"block text-xs font-medium text-gray-600 mb-1"},pgn=["value"],wgn={class:"block text-xs font-medium text-gray-600 mb-1"},vgn=["value"],mgn={class:"block text-xs font-medium text-gray-600 mb-1"},ygn=["value"],kgn={class:"block text-xs font-medium text-gray-600 mb-1"},xgn=["value"],$gn={class:"block text-xs font-medium text-gray-600 mb-1"},Egn=["value","placeholder"],i2t=wr({__name:"SupplementEditor",props:{supplement:{},supplementForm:{},loading:{type:Boolean},editing:{type:Boolean},saving:{type:Boolean},hasData:{type:Boolean}},emits:["edit","save","cancel","update:supplementForm"],setup(a,{emit:d}){const b=a,m=d;function w($,p){m("update:supplementForm",{...b.supplementForm,[$]:p})}return($,p)=>(R(),J("div",null,[E("div",O0n,[E("h3",L0n,M($.$t("supplement.title")),1),E("div",N0n,[a.editing?(R(),J(sn,{key:1},[E("button",{class:"px-2 py-1 text-xs bg-green-500 text-white rounded hover:bg-green-600",disabled:a.saving,onClick:p[1]||(p[1]=j=>m("save"))},M(a.saving?$.$t("supplement.saving"):$.$t("supplement.save")),9,R0n),E("button",{class:"px-2 py-1 text-xs bg-gray-200 text-gray-600 rounded hover:bg-gray-300",onClick:p[2]||(p[2]=j=>m("cancel"))},M($.$t("supplement.cancel")),1)],64)):(R(),J("button",{key:0,class:"px-2 py-1 text-xs bg-blue-100 text-blue-600 rounded hover:bg-blue-200",onClick:p[0]||(p[0]=j=>m("edit"))},M($.$t("supplement.edit")),1))])]),a.loading?(R(),J("div",F0n,M($.$t("supplement.loading")),1)):a.editing?(R(),J("div",agn,[E("div",null,[E("label",fgn,M($.$t("supplement.requirementsLabel")),1),E("textarea",{value:a.supplementForm.requirements,onInput:p[3]||(p[3]=j=>w("requirements",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,dgn)]),E("div",null,[E("label",hgn,M($.$t("supplement.acceptanceLabel")),1),E("textarea",{value:a.supplementForm.acceptanceCriteria,onInput:p[4]||(p[4]=j=>w("acceptanceCriteria",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,ggn)]),E("div",null,[E("label",bgn,M($.$t("supplement.scopeLabel")),1),E("input",{value:a.supplementForm.scope,onInput:p[5]||(p[5]=j=>w("scope",j.target.value)),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,pgn)]),E("div",null,[E("label",wgn,M($.$t("supplement.constraintsLabel")),1),E("textarea",{value:a.supplementForm.constraints,onInput:p[6]||(p[6]=j=>w("constraints",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,vgn)]),E("div",null,[E("label",mgn,M($.$t("supplement.referencesLabel")),1),E("textarea",{value:a.supplementForm.references,onInput:p[7]||(p[7]=j=>w("references",j.target.value)),rows:"1",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,ygn)]),E("div",null,[E("label",kgn,M($.$t("supplement.freeTextLabel")),1),E("textarea",{value:a.supplementForm.freeText,onInput:p[8]||(p[8]=j=>w("freeText",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,xgn)]),E("div",null,[E("label",$gn,M($.$t("supplement.tapdIdLabel")),1),E("input",{value:a.supplementForm.tapdId,onInput:p[9]||(p[9]=j=>w("tapdId",j.target.value)),type:"text",placeholder:$.$t("supplement.tapdIdPlaceholder"),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,Egn)])])):(R(),J("div",B0n,[a.hasData?(R(),J("div",H0n,[a.supplement.requirements?(R(),J("div",G0n,[E("span",J0n,M($.$t("supplement.requirements")),1),p[10]||(p[10]=ci()),E("span",U0n,M(a.supplement.requirements),1)])):Ae("",!0),a.supplement.acceptanceCriteria?(R(),J("div",z0n,[E("span",q0n,M($.$t("supplement.acceptance")),1),p[11]||(p[11]=ci()),E("span",V0n,M(a.supplement.acceptanceCriteria),1)])):Ae("",!0),a.supplement.scope?(R(),J("div",K0n,[E("span",W0n,M($.$t("supplement.scope")),1),p[12]||(p[12]=ci()),E("span",X0n,M(a.supplement.scope),1)])):Ae("",!0),a.supplement.constraints?(R(),J("div",Y0n,[E("span",Q0n,M($.$t("supplement.constraints")),1),p[13]||(p[13]=ci()),E("span",Z0n,M(a.supplement.constraints),1)])):Ae("",!0),a.supplement.references?(R(),J("div",egn,[E("span",tgn,M($.$t("supplement.references")),1),p[14]||(p[14]=ci()),E("span",ngn,M(a.supplement.references),1)])):Ae("",!0),a.supplement.freeText?(R(),J("div",ign,[E("span",rgn,M($.$t("supplement.freeText")),1),p[15]||(p[15]=ci()),E("span",sgn,M(a.supplement.freeText),1)])):Ae("",!0),a.supplement.tapdId?(R(),J("div",ogn,[E("span",cgn,M($.$t("supplement.tapdId")),1),p[16]||(p[16]=ci()),E("span",ugn,M(a.supplement.tapdId),1)])):Ae("",!0)])):(R(),J("div",lgn,M($.$t("supplement.empty")),1))]))]))}}),Cgn={class:"flex items-center justify-between mb-2"},Sgn={class:"text-base font-semibold text-gray-700"},_gn={class:"flex items-center space-x-2"},jgn={class:"flex items-center space-x-1 text-xs text-gray-500 cursor-pointer"},Ign={class:"flex items-center space-x-1 text-xs text-gray-500 cursor-pointer"},Agn={key:0,class:"border border-gray-200 rounded-lg p-6 text-center text-gray-400 text-sm"},Tgn={class:"text-xs mt-1"},Mgn={key:0,class:"text-xs mt-1"},Pgn={class:"log-badge"},Dgn={class:"text-gray-400 text-xs mr-1"},Ogn={key:0,class:"text-gray-400 text-xs mr-1"},Lgn={class:"text-gray-700 break-all"},Ngn={key:2,class:"text-xs text-gray-400 mt-1 text-right"},r2t=wr({__name:"AgentLogViewer",props:cX({logs:{},issueState:{},currentPhase:{}},{autoScroll:{type:Boolean,default:!0},autoScrollModifiers:{},debugMode:{type:Boolean,default:!1},debugModeModifiers:{}}),emits:cX(["clear"],["update:autoScroll","update:debugMode"]),setup(a,{emit:d}){const b=d,m=ime(a,"autoScroll"),w=ime(a,"debugMode"),{stateLabel:$,isTerminalState:p}=r_(),{agentLogContainer:j,agentLogLabel:I}=JX();return(N,P)=>(R(),J("div",null,[E("div",Cgn,[E("h3",Sgn,M(N.$t("agentLog.title")),1),E("div",_gn,[E("label",jgn,[Nn(E("input",{type:"checkbox","onUpdate:modelValue":P[0]||(P[0]=U=>m.value=U),class:"rounded"},null,512),[[a9,m.value]]),E("span",null,M(N.$t("agentLog.autoScroll")),1)]),E("label",Ign,[Nn(E("input",{type:"checkbox","onUpdate:modelValue":P[1]||(P[1]=U=>w.value=U),class:"rounded"},null,512),[[a9,w.value]]),P[3]||(P[3]=E("span",null,"Debug",-1))]),E("button",{class:"px-2 py-0.5 text-xs bg-gray-200 text-gray-600 rounded hover:bg-gray-300",onClick:P[2]||(P[2]=U=>b("clear"))},M(N.$t("agentLog.clear")),1)])]),a.logs.length===0?(R(),J("div",Agn,[a.issueState&&A(p)(a.issueState)?(R(),J(sn,{key:0},[P[4]||(P[4]=E("svg",{class:"h-5 w-5 mx-auto mb-2 text-gray-300",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12h6m-3-3v6m-7 4h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),E("div",null,M(N.$t("agentLog.ended")),1),E("div",Tgn,[ci(M(N.$t("agentLog.finalState"))+" ",1),E("span",{class:wn(a.issueState==="completed"?"text-green-500":"text-red-500")},M(A($)(a.issueState,a.currentPhase)),3)])],64)):(R(),J(sn,{key:1},[P[5]||(P[5]=E("svg",{class:"animate-spin h-5 w-5 mx-auto mb-2 text-blue-400",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),E("div",null,M(N.$t("agentLog.waiting")),1),a.issueState?(R(),J("div",Mgn,M(N.$t("agentLog.currentState"))+" "+M(A($)(a.issueState,a.currentPhase)),1)):Ae("",!0)],64))])):(R(),J("div",{key:1,ref_key:"agentLogContainer",ref:j,class:"agent-log border border-gray-200 rounded-lg overflow-y-auto bg-white",style:{"max-height":"20rem"}},[(R(!0),J(sn,null,bi(a.logs,(U,V)=>(R(),J("div",{key:V,class:wn(["agent-log-item","log-"+U.type])},[E("span",Pgn,M(A(I)(U.type)),1),E("span",Dgn,M(A(Twt)(U.timestamp)),1),U.phase?(R(),J("span",Ogn,"["+M(U.phase)+"]",1)):Ae("",!0),E("span",Lgn,M(U.summary),1)],2))),128))],512)),a.logs.length>0?(R(),J("div",Ngn,M(N.$t("agentLog.count",{count:a.logs.length})),1)):Ae("",!0)]))}}),Rgn={class:"flex items-center justify-between mb-2"},Fgn={class:"text-base font-semibold text-gray-700"},Bgn={class:"flex items-center space-x-2"},Hgn=["disabled"],Ggn=["title"],Jgn={class:"flex space-x-1 mb-3 border-b border-gray-200"},Ugn=["onClick"],zgn={key:0,class:"py-8 text-center text-gray-400"},qgn={key:1,class:"py-8 text-center text-gray-400"},Vgn={key:2},Kgn=["placeholder"],Wgn=["innerHTML"],Xgn={key:4,class:"py-8 text-center text-gray-400"},Ygn={key:0,class:"fullscreen-doc-overlay"},Qgn={class:"fullscreen-doc-container"},Zgn={class:"flex items-center justify-between px-6 py-4 border-b border-gray-200 shrink-0"},ebn={class:"flex items-center space-x-3"},tbn={class:"text-lg font-bold text-gray-800"},nbn={class:"text-sm text-gray-400"},ibn={class:"flex items-center space-x-2"},rbn=["disabled"],sbn=["title"],obn={class:"flex space-x-1 px-6 pt-3 border-b border-gray-200 shrink-0"},cbn=["onClick"],ubn={class:"flex-1 overflow-y-auto min-h-0"},lbn={key:0,class:"flex items-center justify-center h-full text-gray-400"},abn={class:"text-base"},fbn={key:1,class:"flex items-center justify-center h-full text-gray-400"},dbn={class:"text-base"},hbn={key:2,class:"h-full p-4"},gbn=["placeholder"],bbn=["innerHTML"],pbn={key:4,class:"flex items-center justify-center h-full text-gray-400"},wbn={class:"text-base"},s2t=wr({__name:"PlanDocViewer",props:{issueIid:{},planDocs:{},isEditableDoc:{type:Function},detailVersion:{}},setup(a,{expose:d}){const b=a;Jr(()=>b.detailVersion,()=>{m.value&&ee(m.value)});const m=Ye(null),w=Ye(""),$=Ye(!1),p=Ye(""),j=Ye(!1),I=Ye(""),N=Ye(!1),P=Ye(!1),U=Ye(!1),{t:V}=Kg(),X={"review-feedback.md":()=>V("planDoc.noReviewFeedback"),"02-verify-report.md":()=>V("planDoc.verifyNotGenerated"),"04-verify-report.md":()=>V("planDoc.verifyNotGenerated")};async function ee(ye){m.value=ye,j.value=!1,I.value="",$.value=!0,w.value="",p.value="",P.value=!1;try{w.value=await Rgt(b.issueIid,ye,"html")}catch(pe){const be=pe.message;be.includes("not found")&&ye in X?(P.value=!0,p.value=X[ye]()):p.value=be}finally{$.value=!1}}async function K(){if(m.value)try{I.value=await Rgt(b.issueIid,m.value,"raw"),j.value=!0}catch(ye){alert(V("planDoc.fetchFailed")+" "+ye.message)}}function he(){j.value=!1,I.value="",m.value&&ee(m.value)}async function ke(){if(m.value){N.value=!0;try{await TKt(b.issueIid,m.value,I.value),j.value=!1,I.value="",await ee(m.value)}catch(ye){alert(V("planDoc.saveFailed")+" "+ye.message)}finally{N.value=!1}}}function ue(){U.value=!0,document.body.style.overflow="hidden",!m.value&&b.planDocs.length>0&&ee(b.planDocs[0].file)}function oe(){U.value=!1,document.body.style.overflow=""}function re(ye){ye.key==="Escape"&&U.value&&oe()}return gl(()=>{document.addEventListener("keydown",re),b.planDocs.length>0&&ee(b.planDocs[0].file)}),dp(()=>{document.removeEventListener("keydown",re),document.body.style.overflow=""}),d({activeDoc:m}),(ye,pe)=>(R(),J("div",null,[E("div",Rgn,[E("h3",Fgn,M(ye.$t("planDoc.title")),1),E("div",Bgn,[m.value&&a.isEditableDoc(m.value)&&!U.value?(R(),J(sn,{key:0},[j.value?(R(),J(sn,{key:1},[E("button",{class:"px-2 py-1 text-xs bg-green-500 text-white rounded hover:bg-green-600",disabled:N.value,onClick:pe[1]||(pe[1]=be=>ke())},M(N.value?ye.$t("planDoc.saving"):ye.$t("planDoc.save")),9,Hgn),E("button",{class:"px-2 py-1 text-xs bg-gray-200 text-gray-600 rounded hover:bg-gray-300",onClick:pe[2]||(pe[2]=be=>he())},M(ye.$t("planDoc.cancel")),1)],64)):(R(),J("button",{key:0,class:"px-2 py-1 text-xs bg-blue-100 text-blue-600 rounded hover:bg-blue-200",onClick:pe[0]||(pe[0]=be=>K())},M(ye.$t("planDoc.edit")),1))],64)):Ae("",!0),E("button",{class:"px-2 py-1 text-xs bg-gray-100 text-gray-600 rounded hover:bg-gray-200 inline-flex items-center space-x-1",title:ye.$t("planDoc.fullscreen"),onClick:pe[3]||(pe[3]=be=>ue())},[pe[10]||(pe[10]=E("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor","stroke-width":"2",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"})],-1)),E("span",null,M(ye.$t("planDoc.expand")),1)],8,Ggn)])]),E("div",Jgn,[(R(!0),J(sn,null,bi(a.planDocs,be=>(R(),J("button",{key:be.file,class:wn(["px-3 py-2 text-sm font-medium border-b-2 transition-colors",m.value===be.file?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se=>ee(be.file)},M(be.label),11,Ugn))),128))]),$.value?(R(),J("div",zgn,M(ye.$t("planDoc.loading")),1)):p.value?(R(),J("div",qgn,M(p.value),1)):j.value&&!U.value?(R(),J("div",Vgn,[Nn(E("textarea",{"onUpdate:modelValue":pe[4]||(pe[4]=be=>I.value=be),class:"w-full h-96 border border-gray-300 rounded-lg p-3 text-sm font-mono text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:ye.$t("planDoc.editPlaceholder")},null,8,Kgn),[[Ci,I.value]])])):w.value&&!U.value?(R(),J("div",{key:3,class:"plan-doc text-sm text-gray-700 max-h-96 overflow-y-auto border border-gray-100 rounded-lg p-4",innerHTML:w.value},null,8,Wgn)):U.value?Ae("",!0):(R(),J("div",Xgn,M(ye.$t("planDoc.selectTab")),1)),(R(),Ts(Lme,{to:"body"},[xr(wwt,{name:"fullscreen-fade"},{default:zg(()=>[U.value?(R(),J("div",Ygn,[E("div",Qgn,[E("div",Zgn,[E("div",ebn,[E("h2",tbn,M(ye.$t("planDoc.title")),1),E("span",nbn,"Issue #"+M(a.issueIid),1)]),E("div",ibn,[m.value&&a.isEditableDoc(m.value)?(R(),J(sn,{key:0},[j.value?(R(),J(sn,{key:1},[E("button",{class:"px-3 py-1.5 text-sm bg-green-500 text-white rounded-lg hover:bg-green-600 transition-colors",disabled:N.value,onClick:pe[6]||(pe[6]=be=>ke())},M(N.value?ye.$t("planDoc.saving"):ye.$t("planDoc.save")),9,rbn),E("button",{class:"px-3 py-1.5 text-sm bg-gray-200 text-gray-600 rounded-lg hover:bg-gray-300 transition-colors",onClick:pe[7]||(pe[7]=be=>he())},M(ye.$t("planDoc.cancel")),1)],64)):(R(),J("button",{key:0,class:"px-3 py-1.5 text-sm bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors",onClick:pe[5]||(pe[5]=be=>K())},M(ye.$t("planDoc.edit")),1))],64)):Ae("",!0),E("button",{class:"ml-2 p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-lg transition-colors",title:ye.$t("planDoc.closeFullscreen"),onClick:pe[8]||(pe[8]=be=>oe())},[...pe[11]||(pe[11]=[E("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor","stroke-width":"2",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,sbn)])]),E("div",obn,[(R(!0),J(sn,null,bi(a.planDocs,be=>(R(),J("button",{key:"fs-"+be.file,class:wn(["px-4 py-2.5 text-sm font-medium border-b-2 transition-colors",m.value===be.file?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se=>ee(be.file)},M(be.label),11,cbn))),128))]),E("div",ubn,[$.value?(R(),J("div",lbn,[E("span",abn,M(ye.$t("planDoc.loading")),1)])):p.value?(R(),J("div",fbn,[E("span",dbn,M(p.value),1)])):j.value?(R(),J("div",hbn,[Nn(E("textarea",{"onUpdate:modelValue":pe[9]||(pe[9]=be=>I.value=be),class:"w-full h-full border border-gray-300 rounded-lg p-4 text-sm font-mono text-gray-700 resize-none focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:ye.$t("planDoc.editPlaceholder")},null,8,gbn),[[Ci,I.value]])])):w.value?(R(),J("div",{key:3,class:"plan-doc text-sm text-gray-700 p-6",innerHTML:w.value},null,8,bbn)):(R(),J("div",pbn,[E("span",wbn,M(ye.$t("planDoc.selectTab")),1)]))])])])):Ae("",!0)]),_:1})]))]))}}),vbn={class:"bg-white rounded-xl shadow-2xl w-[90vw] max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},mbn={class:"flex items-center justify-between px-6 py-4 border-b border-gray-200 bg-gray-50"},ybn={class:"text-lg font-bold text-gray-800"},kbn={key:0,class:"text-sm text-gray-500 mt-0.5"},xbn={class:"text-xs text-gray-400 ml-2"},$bn={key:0,class:"flex-1 flex items-center justify-center py-12"},Ebn={class:"text-sm text-gray-400"},Cbn={key:1,class:"flex-1 flex items-center justify-center py-12"},Sbn={class:"text-sm text-red-500"},_bn={class:"flex border-b border-gray-200 px-6 bg-white"},jbn=["onClick"],Ibn={class:"flex-1 overflow-y-auto px-6 py-4"},Abn={key:0,class:"space-y-4"},Tbn={class:"grid grid-cols-4 gap-3"},Mbn={class:"bg-blue-50 rounded-lg p-4 text-center"},Pbn={class:"text-2xl font-bold text-blue-600"},Dbn={class:"text-xs text-blue-500 mt-1"},Obn={class:"bg-amber-50 rounded-lg p-4 text-center"},Lbn={class:"text-2xl font-bold text-amber-600"},Nbn={class:"text-xs text-amber-500 mt-1"},Rbn={class:"bg-purple-50 rounded-lg p-4 text-center"},Fbn={class:"text-2xl font-bold text-purple-600"},Bbn={class:"text-xs text-purple-500 mt-1"},Hbn={class:"bg-green-50 rounded-lg p-4 text-center"},Gbn={class:"text-2xl font-bold text-green-600"},Jbn={class:"text-xs text-green-500 mt-1"},Ubn={class:"bg-gray-50 rounded-lg p-4"},zbn={class:"flex items-center justify-between mb-2"},qbn={class:"text-sm font-medium text-gray-700"},Vbn={class:"text-sm text-gray-500"},Kbn={class:"w-full bg-gray-200 rounded-full h-2.5"},Wbn={class:"text-sm font-semibold text-gray-700 mb-2"},Xbn={class:"space-y-1.5"},Ybn=["onClick"],Qbn={class:"text-sm text-gray-700 flex-1 truncate"},Zbn={key:0,class:"text-xs text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},epn={class:"text-xs text-gray-400"},tpn={key:1,class:"space-y-3"},npn={key:0,class:"text-sm text-gray-400 text-center py-8"},ipn=["onClick"],rpn={class:"text-sm font-medium text-gray-800 flex-1"},spn={key:0,class:"text-xs text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},opn={class:"text-xs text-gray-400 font-mono"},cpn={key:0,class:"px-4 py-3 space-y-3 border-t border-gray-100"},upn={key:0},lpn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-1"},apn={class:"list-decimal list-inside text-sm text-gray-600 space-y-0.5 pl-1"},fpn={key:1},dpn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-1"},hpn={class:"list-decimal list-inside text-sm text-gray-600 space-y-0.5 pl-1"},gpn={key:2},bpn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-1"},ppn={class:"list-decimal list-inside text-sm text-gray-600 space-y-0.5 pl-1"},wpn={class:"text-xs text-gray-400 pt-1 border-t border-gray-100 font-mono"},vpn={key:2,class:"space-y-4"},mpn={class:"text-sm font-semibold text-gray-700 mb-2"},ypn={class:"text-xs font-normal text-gray-400 ml-1"},kpn={key:0,class:"grid grid-cols-2 gap-1.5"},xpn={class:"flex-shrink-0"},$pn={class:"font-mono text-xs flex-shrink-0"},Epn={class:"truncate"},Cpn={key:1,class:"text-sm text-gray-400 py-2"},Spn={class:"text-sm font-semibold text-gray-700 mb-2"},_pn={class:"text-xs font-normal text-gray-400 ml-1"},jpn={key:0,class:"grid grid-cols-2 gap-1.5"},Ipn={class:"flex-shrink-0"},Apn={class:"truncate"},Tpn={key:1,class:"text-sm text-gray-400 py-2"},Mpn=wr({__name:"ScenarioViewer",props:{url:{}},emits:["close"],setup(a,{emit:d}){const b=a,m=d,{t:w}=Kg(),$=Ye(null),p=Ye(!0),j=Ye(""),I=Ye("overview"),N=Ye(null),P=En(()=>{if(!$.value)return[];const ue=$.value.test_scenarios;return[...ue.main_path_scenarios.map(oe=>({...oe,_class:"main"})),...ue.verify_behavior_scenarios.map(oe=>({...oe,_class:"behavior"})),...ue.verify_rule_scenarios.map(oe=>({...oe,_class:"rule"}))]}),U=En(()=>{if(!$.value)return[];const ue=$.value.test_scenarios;switch(I.value){case"main":return ue.main_path_scenarios;case"behavior":return ue.verify_behavior_scenarios;case"rule":return ue.verify_rule_scenarios;default:return[]}}),V=En(()=>$.value?.result_report?Math.round($.value.result_report.rule_column_covered_ratio*100):0),X=En(()=>{if(!$.value?.coverage_report?.node_info_list)return{covered:0,total:0};const ue=$.value.coverage_report.node_info_list;return{covered:ue.filter(oe=>oe.isCovered).length,total:ue.length}}),ee=En(()=>{if(!$.value?.coverage_report?.rule_column_info_list)return{covered:0,total:0};const ue=$.value.coverage_report.rule_column_info_list;return{covered:ue.filter(oe=>oe.isCovered).length,total:ue.length}});function K(ue){N.value=N.value===ue?null:ue}function he(ue){return{main:"主路径",behavior:"验证行为",rule:"验证规则"}[ue]||ue}function ke(ue){return{main:"bg-blue-100 text-blue-700",behavior:"bg-amber-100 text-amber-700",rule:"bg-purple-100 text-purple-700"}[ue]||"bg-gray-100 text-gray-700"}return gl(async()=>{try{const ue=await fetch(b.url);if(!ue.ok)throw new Error(`HTTP ${ue.status}`);$.value=await ue.json()}catch(ue){j.value=ue.message}finally{p.value=!1}}),(ue,oe)=>(R(),Ts(Lme,{to:"body"},[E("div",{class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/60",onClick:oe[1]||(oe[1]=Ah(re=>m("close"),["self"]))},[E("div",vbn,[E("div",mbn,[E("div",null,[E("h2",ybn,M(A(w)("detail.scenarioViewer")),1),$.value?.result_report?.uc_fullname?(R(),J("p",kbn,[ci(M($.value.result_report.uc_fullname)+" ",1),E("span",xbn,"v"+M($.value.result_report.uc_version),1)])):Ae("",!0)]),E("button",{class:"text-gray-400 hover:text-gray-600 text-2xl leading-none",onClick:oe[0]||(oe[0]=re=>m("close"))},"×")]),p.value?(R(),J("div",$bn,[E("span",Ebn,M(A(w)("detail.loading")),1)])):j.value?(R(),J("div",Cbn,[E("span",Sbn,M(j.value),1)])):$.value?(R(),J(sn,{key:2},[E("div",_bn,[(R(!0),J(sn,null,bi([{key:"overview",label:A(w)("detail.scenarioOverview")},{key:"main",label:`${A(w)("detail.scenarioMainPath")} (${$.value.test_scenarios.main_path_scenarios.length})`},{key:"behavior",label:`${A(w)("detail.scenarioVerifyBehavior")} (${$.value.test_scenarios.verify_behavior_scenarios.length})`},{key:"rule",label:`${A(w)("detail.scenarioVerifyRule")} (${$.value.test_scenarios.verify_rule_scenarios.length})`},{key:"coverage",label:A(w)("detail.scenarioCoverage")}],re=>(R(),J("button",{key:re.key,class:wn(["px-4 py-2.5 text-sm font-medium border-b-2 transition-colors -mb-px",I.value===re.key?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"]),onClick:ye=>I.value=re.key},M(re.label),11,jbn))),128))]),E("div",Ibn,[I.value==="overview"?(R(),J("div",Abn,[E("div",Tbn,[E("div",Mbn,[E("div",Pbn,M($.value.test_scenarios.main_path_scenarios.length),1),E("div",Dbn,M(A(w)("detail.scenarioMainPath")),1)]),E("div",Obn,[E("div",Lbn,M($.value.test_scenarios.verify_behavior_scenarios.length),1),E("div",Nbn,M(A(w)("detail.scenarioVerifyBehavior")),1)]),E("div",Rbn,[E("div",Fbn,M($.value.test_scenarios.verify_rule_scenarios.length),1),E("div",Bbn,M(A(w)("detail.scenarioVerifyRule")),1)]),E("div",Hbn,[E("div",Gbn,M(V.value)+"%",1),E("div",Jbn,M(A(w)("detail.scenarioRuleCoverage")),1)])]),E("div",Ubn,[E("div",zbn,[E("span",qbn,M(A(w)("detail.scenarioRuleCoverage")),1),E("span",Vbn,M($.value.result_report.scenario_covered_rule_column_num)+" / "+M($.value.result_report.total_rule_column_num),1)]),E("div",Kbn,[E("div",{class:"bg-green-500 h-2.5 rounded-full transition-all",style:_c({width:V.value+"%"})},null,4)])]),E("div",null,[E("h3",Wbn,M(A(w)("detail.scenarioAllList"))+" ("+M(P.value.length)+")",1),E("div",Xbn,[(R(!0),J(sn,null,bi(P.value,(re,ye)=>(R(),J("div",{key:re.scenario_scene_id||ye,class:"flex items-center gap-2 px-3 py-2 bg-white border border-gray-200 rounded-lg hover:border-gray-300 cursor-pointer",onClick:pe=>{I.value=re._class,N.value=re.scenario_scene_id}},[E("span",{class:wn(["text-xs px-1.5 py-0.5 rounded font-medium",ke(re._class)])},M(he(re._class)),3),E("span",Qbn,M(re.scenario_name),1),re.is_inherit?(R(),J("span",Zbn,M(A(w)("detail.scenarioInherited")),1)):Ae("",!0),E("span",epn,M(re.key_node_num),1)],8,Ybn))),128))])])])):I.value==="main"||I.value==="behavior"||I.value==="rule"?(R(),J("div",tpn,[U.value.length===0?(R(),J("div",npn,M(A(w)("detail.scenarioEmpty")),1)):Ae("",!0),(R(!0),J(sn,null,bi(U.value,(re,ye)=>(R(),J("div",{key:re.scenario_scene_id||ye,class:"border border-gray-200 rounded-lg overflow-hidden"},[E("div",{class:"flex items-center gap-2 px-4 py-3 bg-gray-50 cursor-pointer hover:bg-gray-100 transition-colors",onClick:pe=>K(re.scenario_scene_id||String(ye))},[(R(),J("svg",{class:wn(["w-4 h-4 text-gray-400 transition-transform flex-shrink-0",{"rotate-90":N.value===(re.scenario_scene_id||String(ye))}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...oe[2]||(oe[2]=[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)),E("span",rpn,M(re.scenario_name),1),re.is_inherit?(R(),J("span",spn,M(A(w)("detail.scenarioInherited")),1)):Ae("",!0),E("span",opn,M(re.key_node_num),1)],8,ipn),N.value===(re.scenario_scene_id||String(ye))?(R(),J("div",cpn,[re.precondition_list?.length?(R(),J("div",upn,[E("h5",lpn,M(A(w)("detail.scenarioPreconditions")),1),E("ol",apn,[(R(!0),J(sn,null,bi(re.precondition_list,(pe,be)=>(R(),J("li",{key:be},M(pe),1))),128))])])):Ae("",!0),re.operating_procedure_list?.length?(R(),J("div",fpn,[E("h5",dpn,M(A(w)("detail.scenarioSteps")),1),E("ol",hpn,[(R(!0),J(sn,null,bi(re.operating_procedure_list,(pe,be)=>(R(),J("li",{key:be},M(pe),1))),128))])])):Ae("",!0),re.predicated_result_list?.length?(R(),J("div",gpn,[E("h5",bpn,M(A(w)("detail.scenarioExpectedResults")),1),E("ol",ppn,[(R(!0),J(sn,null,bi(re.predicated_result_list,(pe,be)=>(R(),J("li",{key:be},M(pe),1))),128))])])):Ae("",!0),E("div",wpn," ID: "+M(re.scenario_scene_id),1)])):Ae("",!0)]))),128))])):I.value==="coverage"?(R(),J("div",vpn,[E("div",null,[E("h3",mpn,[ci(M(A(w)("detail.scenarioNodeCoverage"))+" ",1),E("span",ypn,"("+M(X.value.covered)+"/"+M(X.value.total)+")",1)]),$.value.coverage_report?.node_info_list?.length?(R(),J("div",kpn,[(R(!0),J(sn,null,bi($.value.coverage_report.node_info_list,(re,ye)=>(R(),J("div",{key:ye,class:wn(["flex items-center gap-2 px-3 py-1.5 rounded text-sm",re.isCovered?"bg-green-50 text-green-700":"bg-red-50 text-red-600"])},[E("span",xpn,M(re.isCovered?"✓":"✗"),1),E("span",$pn,M(re.nodeNum),1),E("span",Epn,M(re.nodeDesc),1)],2))),128))])):(R(),J("div",Cpn,M(A(w)("detail.scenarioEmpty")),1))]),E("div",null,[E("h3",Spn,[ci(M(A(w)("detail.scenarioRuleColumnCoverage"))+" ",1),E("span",_pn,"("+M(ee.value.covered)+"/"+M(ee.value.total)+")",1)]),$.value.coverage_report?.rule_column_info_list?.length?(R(),J("div",jpn,[(R(!0),J(sn,null,bi($.value.coverage_report.rule_column_info_list,(re,ye)=>(R(),J("div",{key:ye,class:wn(["flex items-center gap-2 px-3 py-1.5 rounded text-sm",re.isCovered?"bg-green-50 text-green-700":"bg-red-50 text-red-600"])},[E("span",Ipn,M(re.isCovered?"✓":"✗"),1),E("span",Apn,M(re.ruleColumnName),1)],2))),128))])):(R(),J("div",Tpn,M(A(w)("detail.scenarioEmpty")),1))])])):Ae("",!0)])],64)):Ae("",!0)])])]))}}),Ppn={class:"text-base font-semibold text-gray-700 mb-3 flex items-center gap-2"},Dpn={key:0,class:"text-xs font-normal text-gray-400"},Opn={key:0,class:"text-sm text-gray-400 py-4 text-center"},Lpn={key:1,class:"bg-gray-50 border border-gray-200 rounded-lg px-4 py-6 text-center"},Npn={class:"text-sm text-gray-500"},Rpn={class:"text-xs text-gray-400 mt-1"},Fpn={key:2,class:"bg-gray-50 border border-gray-200 rounded-lg px-4 py-6 text-center"},Bpn={class:"text-sm text-gray-500"},Hpn={class:"text-xs text-gray-400 mt-1"},Gpn={key:0,class:"mb-4"},Jpn={class:"text-sm font-medium text-gray-600 mb-2"},Upn={class:"text-xs font-normal text-gray-400 ml-1"},zpn={class:"space-y-1"},qpn=["onClick"],Vpn={class:"text-base flex-shrink-0"},Kpn={class:"text-sm text-gray-700 truncate flex-1 group-hover:text-blue-600"},Wpn={key:0,class:"text-xs text-indigo-600 bg-indigo-100 px-1.5 py-0.5 rounded flex-shrink-0"},Xpn={class:"text-xs text-gray-400 flex-shrink-0"},Ypn={key:0,class:"mt-3 border border-gray-300 rounded-lg overflow-hidden bg-white shadow-sm"},Qpn={class:"flex items-center justify-between px-4 py-2 bg-gray-100 border-b border-gray-200"},Zpn={class:"flex items-center gap-2 min-w-0"},ewn={class:"text-base flex-shrink-0"},twn={class:"text-sm font-medium text-gray-700 truncate"},nwn={class:"text-xs text-gray-400 flex-shrink-0"},iwn={class:"flex items-center gap-1 flex-shrink-0"},rwn=["href"],swn={key:0,class:"px-4 py-8 text-center text-sm text-gray-400"},own={key:1,class:"relative"},cwn={class:"px-4 py-3 text-sm leading-relaxed overflow-auto max-h-[60vh] bg-gray-50 m-0"},uwn={key:1,class:"mb-4"},lwn={class:"text-sm font-medium text-gray-600 mb-2"},awn={class:"text-xs font-normal text-gray-400 ml-1"},fwn={class:"space-y-1"},dwn=["onClick"],hwn={class:"text-base flex-shrink-0"},gwn={class:"text-sm text-gray-700 truncate flex-1 group-hover:text-blue-600"},bwn={class:"text-xs text-gray-400 flex-shrink-0"},pwn={key:0,class:"mt-3 border border-gray-300 rounded-lg overflow-hidden bg-white shadow-sm"},wwn={class:"flex items-center justify-between px-4 py-2 bg-gray-100 border-b border-gray-200"},vwn={class:"flex items-center gap-2 min-w-0"},mwn={class:"text-base flex-shrink-0"},ywn={class:"text-sm font-medium text-gray-700 truncate"},kwn={class:"text-xs text-gray-400 flex-shrink-0"},xwn={class:"flex items-center gap-1 flex-shrink-0"},$wn=["href"],Ewn={key:0,class:"px-4 py-8 text-center text-sm text-gray-400"},Cwn={key:1,class:"relative"},Swn={class:"px-4 py-3 text-sm leading-relaxed overflow-auto max-h-[60vh] bg-gray-50 m-0"},_wn={class:"mb-3"},jwn=["value"],Iwn={key:0,class:"text-sm text-gray-400 py-4 text-center"},Awn={key:1,class:"mb-4"},Twn={class:"text-sm font-medium text-gray-600 mb-2"},Mwn={class:"grid grid-cols-3 gap-2"},Pwn=["onClick"],Dwn=["src","alt"],Own={class:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors flex items-end"},Lwn={class:"w-full px-2 py-1.5 bg-gradient-to-t from-black/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity"},Nwn={class:"text-xs text-white truncate"},Rwn={class:"text-[10px] text-white/70"},Fwn={key:2,class:"mb-4"},Bwn={class:"text-sm font-medium text-gray-600 mb-2"},Hwn={class:"space-y-3"},Gwn=["src"],Jwn={class:"px-3 py-2 bg-gray-50 flex items-center justify-between text-xs text-gray-500"},Uwn={key:3,class:"mb-4"},zwn={class:"text-sm font-medium text-gray-600 mb-2"},qwn={class:"space-y-1"},Vwn=["onClick"],Kwn={class:"text-base flex-shrink-0"},Wwn={class:"text-sm text-gray-700 truncate flex-1 group-hover:text-blue-600"},Xwn={class:"text-xs text-gray-400 flex-shrink-0"},Ywn={key:0,class:"mt-3 border border-gray-300 rounded-lg overflow-hidden bg-white shadow-sm"},Qwn={class:"flex items-center justify-between px-4 py-2 bg-gray-100 border-b border-gray-200"},Zwn={class:"flex items-center gap-2 min-w-0"},evn={class:"text-base flex-shrink-0"},tvn={class:"text-sm font-medium text-gray-700 truncate"},nvn={class:"text-xs text-gray-400 flex-shrink-0"},ivn={class:"flex items-center gap-1 flex-shrink-0"},rvn=["href"],svn={key:0,class:"px-4 py-8 text-center text-sm text-gray-400"},ovn={key:1,class:"relative"},cvn={class:"px-4 py-3 text-sm leading-relaxed overflow-auto max-h-[60vh] bg-gray-50 m-0"},uvn={key:4,class:"text-sm text-gray-400 text-center py-4"},lvn=["src"],avn=["src"],o2t=wr({__name:"E2eArtifactsViewer",props:{issueIid:{}},setup(a){const d=a,{t:b}=Kg(),m=Ye(!1),w=Ye([]),$=Ye([]),p=Ye(null),j=Ye([]),I=Ye(!1),N=Ye(!1),P=Ye(null),U=Ye("image"),V=En(()=>j.value.filter(xe=>xe.type==="image")),X=En(()=>j.value.filter(xe=>xe.type==="video")),ee=En(()=>j.value.filter(xe=>xe.type==="document")),K={".md":"📝",".py":"🐍",".json":"📋",".jsonl":"📋",".log":"📄",".html":"🌐",".har":"🔍",".txt":"📄"};function he(xe){const Pe=xe.slice(xe.lastIndexOf(".")).toLowerCase();return K[Pe]||"📄"}const ke=Ye(null),ue=Ye(null);function oe(xe){return xe.name.endsWith(".py")}const re=En(()=>$.value.filter(xe=>!oe(xe))),ye=En(()=>$.value.filter(xe=>oe(xe)));function pe(xe){const Pe=xe.slice(xe.lastIndexOf(".")).toLowerCase();return{".py":"python",".js":"javascript",".ts":"typescript",".json":"json",".jsonl":"json",".md":"markdown",".html":"html",".log":"log",".txt":"plaintext",".har":"json",".yaml":"yaml",".yml":"yaml"}[Pe]||"plaintext"}function be(xe){const Pe=Hgt(xe.relativePath,d.issueIid);xe.name==="result.json"?ke.value=Pe:le(xe,Pe)}function se(xe){const Pe=Hgt(xe.relativePath,d.issueIid);le(xe,Pe)}async function le(xe,Pe){ue.value={file:xe,url:Pe,content:"",loading:!0};try{const Je=await fetch(Pe);if(!Je.ok)throw new Error(`HTTP ${Je.status}`);ue.value={file:xe,url:Pe,content:await Je.text(),loading:!1}}catch(Je){ue.value={file:xe,url:Pe,content:`Failed to load: ${Je.message}`,loading:!1}}}function Ce(xe){const Pe=_W(p.value,xe.relativePath,d.issueIid);le(xe,Pe)}function Se(){ue.value=null}const te=En(()=>w.value.length>0||$.value.length>0);async function q(){I.value=!0;try{const xe=await oWt(d.issueIid);m.value=xe.configured,w.value=xe.runs,$.value=xe.scenarios??[],xe.runs.length>0&&!p.value&&(p.value=xe.runs[0].runId)}catch(xe){console.error("Failed to load E2E runs",xe)}finally{I.value=!1}}async function He(xe){N.value=!0,j.value=[];try{const Pe=await cWt(xe,d.issueIid);j.value=Pe.files}catch(Pe){console.error("Failed to load E2E run files",Pe)}finally{N.value=!1}}Jr(p,xe=>{xe&&He(xe)}),Jr(()=>d.issueIid,()=>{p.value=null,j.value=[],$.value=[],ue.value=null,q()});function gt(xe){P.value=_W(p.value,xe.relativePath,d.issueIid),U.value=xe.type}function ze(){P.value=null}function jt(xe){return xe<1024?`${xe} B`:xe<1024*1024?`${(xe/1024).toFixed(1)} KB`:`${(xe/(1024*1024)).toFixed(1)} MB`}function Jt(xe){const Pe=xe.match(/^(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})/);return Pe?`${Pe[1]}-${Pe[2]}-${Pe[3]} ${Pe[4]}:${Pe[5]}:${Pe[6]}`:xe}return gl(q),(xe,Pe)=>(R(),J("div",null,[E("h3",Ppn,[ci(M(A(b)("detail.e2eArtifacts"))+" ",1),w.value.length>0?(R(),J("span",Dpn,"("+M(w.value.length)+" "+M(A(b)("detail.e2eRuns"))+")",1)):Ae("",!0)]),I.value?(R(),J("div",Opn,M(A(b)("detail.loading")),1)):m.value?te.value?(R(),J(sn,{key:3},[re.value.length>0?(R(),J("div",Gpn,[E("h4",Jpn,[ci(M(A(b)("detail.e2eScenariosLabel"))+" ",1),E("span",Upn,"("+M(re.value.length)+")",1)]),E("div",zpn,[(R(!0),J(sn,null,bi(re.value,Je=>(R(),J("div",{key:"sc-"+Je.relativePath,class:wn(["flex items-center gap-2 px-3 py-2 border rounded-lg cursor-pointer transition-colors group",Je.name==="result.json"?"border-indigo-200 bg-indigo-50/50 hover:border-indigo-400 hover:bg-indigo-50":ue.value?.file===Je?"border-blue-400 bg-blue-50":"border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50"]),onClick:Bt=>be(Je)},[E("span",Vpn,M(he(Je.name)),1),E("span",Kpn,M(Je.name),1),Je.name==="result.json"?(R(),J("span",Wpn,M(A(b)("detail.scenarioViewer")),1)):Ae("",!0),E("span",Xpn,M(jt(Je.size)),1)],10,qpn))),128))]),ue.value&&re.value.some(Je=>Je===ue.value.file)?(R(),J("div",Ypn,[E("div",Qpn,[E("div",Zpn,[E("span",ewn,M(he(ue.value.file.name)),1),E("span",twn,M(ue.value.file.name),1),E("span",nwn,M(jt(ue.value.file.size)),1)]),E("div",iwn,[E("a",{href:ue.value.url,target:"_blank",class:"p-1 text-gray-400 hover:text-blue-500 rounded",title:"Open in new tab"},[...Pe[4]||(Pe[4]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],8,rwn),E("button",{class:"p-1 text-gray-400 hover:text-gray-600 rounded",onClick:Se},[...Pe[5]||(Pe[5]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),ue.value.loading?(R(),J("div",swn,M(A(b)("detail.loading")),1)):(R(),J("div",own,[E("pre",cwn,[E("code",{class:wn("language-"+pe(ue.value.file.name))},M(ue.value.content),3)])]))])):Ae("",!0)])):Ae("",!0),ye.value.length>0?(R(),J("div",uwn,[E("h4",lwn,[ci(M(A(b)("detail.e2eScriptsLabel"))+" ",1),E("span",awn,"("+M(ye.value.length)+")",1)]),E("div",fwn,[(R(!0),J(sn,null,bi(ye.value,Je=>(R(),J("div",{key:"ss-"+Je.relativePath,class:wn(["flex items-center gap-2 px-3 py-2 border rounded-lg cursor-pointer transition-colors group",ue.value?.file===Je?"border-blue-400 bg-blue-50":"border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50"]),onClick:Bt=>se(Je)},[E("span",hwn,M(he(Je.name)),1),E("span",gwn,M(Je.name),1),E("span",bwn,M(jt(Je.size)),1)],10,dwn))),128))]),ue.value&&ye.value.some(Je=>Je===ue.value.file)?(R(),J("div",pwn,[E("div",wwn,[E("div",vwn,[E("span",mwn,M(he(ue.value.file.name)),1),E("span",ywn,M(ue.value.file.name),1),E("span",kwn,M(jt(ue.value.file.size)),1)]),E("div",xwn,[E("a",{href:ue.value.url,target:"_blank",class:"p-1 text-gray-400 hover:text-blue-500 rounded",title:"Open in new tab"},[...Pe[6]||(Pe[6]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],8,$wn),E("button",{class:"p-1 text-gray-400 hover:text-gray-600 rounded",onClick:Se},[...Pe[7]||(Pe[7]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),ue.value.loading?(R(),J("div",Ewn,M(A(b)("detail.loading")),1)):(R(),J("div",Cwn,[E("pre",Swn,[E("code",{class:wn("language-"+pe(ue.value.file.name))},M(ue.value.content),3)])]))])):Ae("",!0)])):Ae("",!0),w.value.length>0?(R(),J(sn,{key:2},[E("div",_wn,[Nn(E("select",{"onUpdate:modelValue":Pe[0]||(Pe[0]=Je=>p.value=Je),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},[(R(!0),J(sn,null,bi(w.value,Je=>(R(),J("option",{key:Je.runId,value:Je.runId},[ci(M(Jt(Je.runId))+" — "+M(Je.imageCount)+" "+M(A(b)("detail.e2eImages"))+", "+M(Je.videoCount)+" "+M(A(b)("detail.e2eVideos")),1),Je.documentCount?(R(),J(sn,{key:0},[ci(", "+M(Je.documentCount)+" "+M(A(b)("detail.e2eDocuments")),1)],64)):Ae("",!0)],8,jwn))),128))],512),[[Rd,p.value]])]),N.value?(R(),J("div",Iwn,M(A(b)("detail.loading")),1)):Ae("",!0),!N.value&&V.value.length>0?(R(),J("div",Awn,[E("h4",Twn,M(A(b)("detail.e2eScreenshots")),1),E("div",Mwn,[(R(!0),J(sn,null,bi(V.value,Je=>(R(),J("div",{key:Je.relativePath,class:"relative group cursor-pointer rounded-lg overflow-hidden border border-gray-200 hover:border-blue-400 hover:shadow-md transition-all",onClick:Bt=>gt(Je)},[E("img",{src:_W(p.value,Je.relativePath,d.issueIid),alt:Je.name,class:"w-full h-32 object-cover bg-gray-100",loading:"lazy"},null,8,Dwn),E("div",Own,[E("div",Lwn,[E("p",Nwn,M(Je.name),1),E("p",Rwn,M(jt(Je.size)),1)])])],8,Pwn))),128))])])):Ae("",!0),!N.value&&X.value.length>0?(R(),J("div",Fwn,[E("h4",Bwn,M(A(b)("detail.e2eVideoRecordings")),1),E("div",Hwn,[(R(!0),J(sn,null,bi(X.value,Je=>(R(),J("div",{key:Je.relativePath,class:"border border-gray-200 rounded-lg overflow-hidden"},[E("video",{src:_W(p.value,Je.relativePath,d.issueIid),controls:"",preload:"metadata",class:"w-full max-h-80 bg-black"},null,8,Gwn),E("div",Jwn,[E("span",null,M(Je.name),1),E("span",null,M(jt(Je.size)),1)])]))),128))])])):Ae("",!0),!N.value&&ee.value.length>0?(R(),J("div",Uwn,[E("h4",zwn,M(A(b)("detail.e2eRunDocuments")),1),E("div",qwn,[(R(!0),J(sn,null,bi(ee.value,Je=>(R(),J("div",{key:Je.relativePath,class:wn(["flex items-center gap-2 px-3 py-2 border rounded-lg cursor-pointer transition-colors group",ue.value?.file.relativePath===Je.relativePath&&!ue.value?.url.includes("e2e-scenarios")?"border-blue-400 bg-blue-50":"border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50"]),onClick:Bt=>Ce(Je)},[E("span",Kwn,M(he(Je.name)),1),E("span",Wwn,M(Je.relativePath),1),E("span",Xwn,M(jt(Je.size)),1),Pe[8]||(Pe[8]=E("svg",{class:"w-4 h-4 text-gray-300 group-hover:text-blue-400 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})],-1))],10,Vwn))),128))]),ue.value&&!ue.value.url.includes("e2e-scenarios")?(R(),J("div",Ywn,[E("div",Qwn,[E("div",Zwn,[E("span",evn,M(he(ue.value.file.name)),1),E("span",tvn,M(ue.value.file.relativePath),1),E("span",nvn,M(jt(ue.value.file.size)),1)]),E("div",ivn,[E("a",{href:ue.value.url,target:"_blank",class:"p-1 text-gray-400 hover:text-blue-500 rounded",title:"Open in new tab"},[...Pe[9]||(Pe[9]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],8,rvn),E("button",{class:"p-1 text-gray-400 hover:text-gray-600 rounded",onClick:Se},[...Pe[10]||(Pe[10]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),ue.value.loading?(R(),J("div",svn,M(A(b)("detail.loading")),1)):(R(),J("div",ovn,[E("pre",cvn,[E("code",{class:wn("language-"+pe(ue.value.file.name))},M(ue.value.content),3)])]))])):Ae("",!0)])):Ae("",!0),!N.value&&V.value.length===0&&X.value.length===0&&ee.value.length===0&&p.value?(R(),J("div",uvn,M(A(b)("detail.e2eNoMedia")),1)):Ae("",!0)],64)):Ae("",!0)],64)):(R(),J("div",Fpn,[Pe[3]||(Pe[3]=E("svg",{class:"mx-auto h-10 w-10 text-gray-300 mb-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),E("p",Bpn,M(A(b)("detail.e2eNoRuns")),1),E("p",Hpn,M(A(b)("detail.e2eNoRunsHint")),1)])):(R(),J("div",Lpn,[Pe[2]||(Pe[2]=E("svg",{class:"mx-auto h-10 w-10 text-gray-300 mb-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),E("p",Npn,M(A(b)("detail.e2eNotConfigured")),1),E("p",Rpn,M(A(b)("detail.e2eNotConfiguredHint")),1)])),(R(),Ts(Lme,{to:"body"},[P.value?(R(),J("div",{key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/80",onClick:Ah(ze,["self"])},[E("button",{class:"absolute top-4 right-4 text-white/80 hover:text-white text-3xl leading-none z-10",onClick:ze},"×"),U.value==="image"?(R(),J("img",{key:0,src:P.value,class:"max-w-[90vw] max-h-[90vh] object-contain rounded-lg shadow-2xl"},null,8,lvn)):(R(),J("video",{key:1,src:P.value,controls:"",autoplay:"",class:"max-w-[90vw] max-h-[90vh] rounded-lg shadow-2xl"},null,8,avn))])):Ae("",!0)])),ke.value?(R(),Ts(Mpn,{key:4,url:ke.value,onClose:Pe[1]||(Pe[1]=Je=>ke.value=null)},null,8,["url"])):Ae("",!0)]))}}),fvn={class:"fixed inset-0 z-50 flex"},dvn={class:"relative ml-auto w-full max-w-2xl bg-white shadow-xl overflow-y-auto"},hvn={class:"sticky top-0 bg-white border-b border-gray-200 px-6 py-4 flex items-center justify-between z-10"},gvn={class:"flex items-center space-x-2"},bvn={class:"text-lg font-bold text-gray-800"},pvn=["href"],wvn={class:"px-6 py-4 space-y-6"},vvn={class:"text-base font-semibold text-gray-700 mb-2"},mvn={class:"grid grid-cols-2 gap-3 text-sm"},yvn={class:"text-gray-500"},kvn={class:"text-gray-800"},xvn={class:"text-gray-500"},$vn={class:"text-xs bg-gray-100 px-1 py-0.5 rounded"},Evn={class:"text-gray-500"},Cvn={class:"text-gray-500"},Svn={class:"text-gray-500"},_vn={class:"text-gray-500"},jvn={class:"flex items-center justify-between text-sm bg-gray-50 rounded-lg px-4 py-2.5 border border-gray-200"},Ivn={class:"text-gray-600"},Avn=["disabled"],Tvn={class:"flex items-center justify-between text-sm bg-gray-50 rounded-lg px-4 py-2.5 border border-gray-200"},Mvn={class:"text-gray-600"},Pvn=["disabled"],Dvn={key:0,class:"bg-green-50 border border-green-200 rounded-lg p-4 flex items-center space-x-2"},Ovn={class:"text-sm text-green-700 font-medium"},Lvn=["href"],Nvn={key:1,class:"bg-green-50 border border-green-200 rounded-lg p-4 space-y-2"},Rvn={class:"text-sm text-green-700 font-medium"},Fvn={class:"text-xs text-green-600 font-mono"},Bvn=["href"],Hvn={key:2,class:"bg-red-50 border border-red-200 rounded-lg p-4"},Gvn={class:"text-sm font-semibold text-red-700 mb-1"},Jvn={class:"text-sm text-red-600 whitespace-pre-wrap break-words"},Uvn={class:"flex flex-wrap gap-3 pt-2 border-t border-gray-200"},zvn=wr({__name:"DetailModal",props:{issue:{},progress:{},systemStatus:{},verifyFixLoop:{},agentLogs:{},agentAutoScroll:{type:Boolean},agentDebugMode:{type:Boolean},supplement:{},supplementForm:{},supplementLoading:{type:Boolean},supplementEditing:{type:Boolean},supplementSaving:{type:Boolean},hasSupplementData:{type:Boolean},detailVersion:{},reviewFeedback:{},reviewSubmitting:{type:Boolean},reviewHistory:{}},emits:["close","start","retry","restart","cancel","markDeployed","stopPreview","restartPreview","retryFromPhase","approve","reject","skip","update:reviewFeedback","supplementEdit","supplementSave","supplementCancel","update:supplementForm","update:agentAutoScroll","update:agentDebugMode","clearLogs"],setup(a,{emit:d}){const b=a,m=d,{stateLabel:w,stateClass:$,getPlanDocs:p,isEditableDoc:j}=r_();function I(){if(!b.systemStatus)return"#";const ue=b.systemStatus.config.gongfengBaseUrl,oe=b.systemStatus.config.projectPath;return`${ue}/${oe}/issues/${_r(b.issue)}`}const N=Ye(b.issue.issueNoteSyncEnabled),P=Ye(!1),U=En(()=>N.value===!0?"on":N.value===!1?"off":"system");async function V(){const ue=[void 0,!0,!1],oe=ue.indexOf(N.value),re=ue[(oe+1)%ue.length];N.value=re,P.value=!0;try{await xwt(_r(b.issue),re===void 0?null:re)}catch(ye){console.error("Failed to toggle note sync",ye)}finally{P.value=!1}}const X=Ye(b.issue.e2eEnabled),ee=Ye(!1),K=En(()=>X.value===!0?"on":X.value===!1?"off":"system");async function he(){const ue=[void 0,!0,!1],oe=ue.indexOf(X.value),re=ue[(oe+1)%ue.length];X.value=re,ee.value=!0;try{await $wt(_r(b.issue),re===void 0?null:re)}catch(ye){console.error("Failed to toggle e2e",ye)}finally{ee.value=!1}}function ke(){window.open(`/detail?issue=${_r(b.issue)}`,"_blank")}return(ue,oe)=>(R(),J("div",fvn,[E("div",{class:"absolute inset-0 bg-black/30",onClick:oe[0]||(oe[0]=re=>m("close"))}),E("div",dvn,[E("div",hvn,[E("div",gvn,[E("h2",bvn,"Issue #"+M(A(_r)(a.issue)),1),E("a",{href:I(),target:"_blank",rel:"noopener",class:"inline-flex items-center px-2 py-0.5 text-xs font-medium text-blue-600 bg-blue-50 rounded hover:bg-blue-100 hover:text-blue-800 transition-colors"},[ci(M(ue.$t("detail.viewInGongfeng"))+" ",1),oe[24]||(oe[24]=E("svg",{class:"w-3 h-3 ml-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1))],8,pvn),E("button",{class:"inline-flex items-center px-2 py-0.5 text-xs font-medium text-gray-600 bg-gray-100 rounded hover:bg-gray-200 hover:text-gray-800 transition-colors",onClick:oe[1]||(oe[1]=re=>ke())},[ci(M(ue.$t("detail.openFullPage"))+" ",1),oe[25]||(oe[25]=E("svg",{class:"w-3 h-3 ml-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 8V4m0 0h4M4 4l5 5m7-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m7 5v-4m0 4h-4m4 0l-5-5"})],-1))])]),E("button",{class:"text-gray-400 hover:text-gray-600 text-2xl leading-none",onClick:oe[2]||(oe[2]=re=>m("close"))},"×")]),E("div",wvn,[E("div",null,[E("h3",vvn,M(ue.$t("detail.basicInfo")),1),E("div",mvn,[E("div",null,[E("span",yvn,M(ue.$t("detail.title")),1),oe[26]||(oe[26]=ci()),E("span",kvn,M(A(ywt)(a.issue)),1)]),E("div",null,[E("span",xvn,M(ue.$t("detail.branch")),1),oe[27]||(oe[27]=ci()),E("code",$vn,M(a.issue.branchName),1)]),E("div",null,[E("span",Evn,M(ue.$t("detail.state")),1),E("span",{class:wn(["px-2 py-0.5 rounded-full text-xs font-medium",A($)(a.issue.state)])},M(A(w)(a.issue.state,a.issue.currentPhase)),3)]),E("div",null,[E("span",Cvn,M(ue.$t("detail.createdAt")),1),ci(" "+M(A(YS)(a.issue.createdAt)),1)]),E("div",null,[E("span",Svn,M(ue.$t("detail.retries")),1),ci(" "+M(a.issue.attempts),1)]),E("div",null,[E("span",_vn,M(ue.$t("detail.updatedAt")),1),ci(" "+M(A(YS)(a.issue.updatedAt)),1)])])]),E("div",jvn,[E("span",Ivn,M(ue.$t("detail.noteSync")),1),E("button",{class:wn(["px-3 py-1 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":U.value==="on","bg-red-100 text-red-600 hover:bg-red-200":U.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":U.value==="system"}]),disabled:P.value,onClick:oe[3]||(oe[3]=re=>V())},M(U.value==="on"?ue.$t("detail.enabled"):U.value==="off"?ue.$t("detail.disabled"):ue.$t("detail.followSystem")),11,Avn)]),E("div",Tvn,[E("span",Mvn,M(ue.$t("detail.e2eTitle")),1),E("button",{class:wn(["px-3 py-1 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":K.value==="on","bg-red-100 text-red-600 hover:bg-red-200":K.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":K.value==="system"}]),disabled:ee.value,onClick:oe[4]||(oe[4]=re=>he())},M(K.value==="on"?ue.$t("detail.enabled"):K.value==="off"?ue.$t("detail.disabled"):ue.$t("detail.followSystem")),11,Pvn)]),a.issue.mrUrl?(R(),J("div",Dvn,[E("span",Ovn,M(ue.$t("detail.mrLabel")),1),E("a",{href:a.issue.mrUrl,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(a.issue.mrUrl),9,Lvn)])):Ae("",!0),a.issue.linkedMrUrls&&Object.keys(a.issue.linkedMrUrls).length>0?(R(),J("div",Nvn,[E("span",Rvn,M(ue.$t("detail.linkedMrLabel")),1),(R(!0),J(sn,null,bi(a.issue.linkedMrUrls,(re,ye)=>(R(),J("div",{key:ye,class:"flex items-center space-x-2 ml-2"},[E("span",Fvn,M(ye)+":",1),E("a",{href:re,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(re),9,Bvn)]))),128))])):Ae("",!0),a.issue.lastError?(R(),J("div",Hvn,[E("h3",Gvn,M(ue.$t("detail.errorInfo")),1),E("p",Jvn,M(a.issue.lastError),1)])):Ae("",!0),xr(t2t,{issue:a.issue,progress:a.progress,"verify-fix-loop":a.verifyFixLoop,onRetryFromPhase:oe[5]||(oe[5]=re=>m("retryFromPhase",A(_r)(a.issue),re))},null,8,["issue","progress","verify-fix-loop"]),a.issue.state==="phase_waiting"?(R(),Ts(n2t,{key:3,"review-submitting":a.reviewSubmitting,"review-feedback":a.reviewFeedback,"review-history":a.reviewHistory,"onUpdate:reviewFeedback":oe[6]||(oe[6]=re=>m("update:reviewFeedback",re)),onApprove:oe[7]||(oe[7]=re=>m("approve",A(_r)(a.issue))),onReject:oe[8]||(oe[8]=re=>m("reject",A(_r)(a.issue))),onSkip:oe[9]||(oe[9]=re=>m("skip",A(_r)(a.issue)))},null,8,["review-submitting","review-feedback","review-history"])):Ae("",!0),xr(i2t,{supplement:a.supplement,"supplement-form":a.supplementForm,loading:a.supplementLoading,editing:a.supplementEditing,saving:a.supplementSaving,"has-data":a.hasSupplementData,onEdit:oe[10]||(oe[10]=re=>m("supplementEdit")),onSave:oe[11]||(oe[11]=re=>m("supplementSave")),onCancel:oe[12]||(oe[12]=re=>m("supplementCancel")),"onUpdate:supplementForm":oe[13]||(oe[13]=re=>m("update:supplementForm",re))},null,8,["supplement","supplement-form","loading","editing","saving","has-data"]),xr(s2t,{"issue-iid":A(_r)(a.issue),"plan-docs":A(p)(a.issue),"is-editable-doc":A(j),"detail-version":a.detailVersion},null,8,["issue-iid","plan-docs","is-editable-doc","detail-version"]),xr(o2t,{"issue-iid":A(_r)(a.issue)},null,8,["issue-iid"]),xr(r2t,{logs:a.agentLogs,"issue-state":a.issue.state,"current-phase":a.issue.currentPhase,"auto-scroll":a.agentAutoScroll,"debug-mode":a.agentDebugMode,"onUpdate:autoScroll":oe[14]||(oe[14]=re=>m("update:agentAutoScroll",re)),"onUpdate:debugMode":oe[15]||(oe[15]=re=>m("update:agentDebugMode",re)),onClear:oe[16]||(oe[16]=re=>m("clearLogs"))},null,8,["logs","issue-state","current-phase","auto-scroll","debug-mode"]),E("div",Uvn,[a.issue.state==="skipped"?(R(),J("button",{key:0,class:"px-4 py-2 bg-green-500 text-white text-sm rounded-lg hover:bg-green-600",onClick:oe[17]||(oe[17]=re=>m("start",A(_r)(a.issue)))},M(ue.$t("detail.start")),1)):Ae("",!0),a.issue.state==="failed"?(R(),J("button",{key:1,class:"px-4 py-2 bg-blue-500 text-white text-sm rounded-lg hover:bg-blue-600",onClick:oe[18]||(oe[18]=re=>m("retry",A(_r)(a.issue)))},M(ue.$t("detail.retry")),1)):Ae("",!0),a.issue.state==="completed"?(R(),J("button",{key:2,class:"px-4 py-2 bg-purple-500 text-white text-sm rounded-lg hover:bg-purple-600",onClick:oe[19]||(oe[19]=re=>m("markDeployed",A(_r)(a.issue)))},M(ue.$t("detail.markDeployed")),1)):Ae("",!0),a.issue.preview?.running?(R(),J("button",{key:3,class:"px-4 py-2 bg-orange-100 text-orange-700 text-sm rounded-lg hover:bg-orange-200",onClick:oe[20]||(oe[20]=re=>m("stopPreview",A(_r)(a.issue)))},M(ue.$t("detail.stopPreview")),1)):Ae("",!0),!["pending","skipped","deployed"].includes(a.issue.state)&&!a.issue.preview?.running?(R(),J("button",{key:4,class:"px-4 py-2 bg-indigo-100 text-indigo-700 text-sm rounded-lg hover:bg-indigo-200",onClick:oe[21]||(oe[21]=re=>m("restartPreview",A(_r)(a.issue)))},M(ue.$t("detail.restartPreview")),1)):Ae("",!0),a.issue.state!=="skipped"?(R(),J("button",{key:5,class:"px-4 py-2 bg-yellow-100 text-yellow-700 text-sm rounded-lg hover:bg-yellow-200",onClick:oe[22]||(oe[22]=re=>m("restart",A(_r)(a.issue)))},M(ue.$t("detail.restart")),1)):Ae("",!0),E("button",{class:"px-4 py-2 bg-red-100 text-red-600 text-sm rounded-lg hover:bg-red-200",onClick:oe[23]||(oe[23]=re=>m("cancel",A(_r)(a.issue)))},M(ue.$t("detail.cancelTrack")),1)])])])]))}}),qvn={key:0,class:"min-h-screen bg-gray-50 flex flex-col"},Vvn={class:"bg-white border-b border-gray-200 px-6 py-3 flex items-center justify-between sticky top-0 z-10"},Kvn={class:"flex items-center gap-3 min-w-0"},Wvn={href:"/",class:"text-sm text-blue-600 hover:text-blue-800 flex-shrink-0"},Xvn={class:"text-lg font-bold text-gray-800 truncate"},Yvn={class:"text-gray-500 truncate hidden sm:inline"},Qvn={class:"flex items-center gap-3 flex-shrink-0"},Zvn={key:0,class:"w-2 h-2 rounded-full bg-green-500",title:"SSE connected"},e2n={key:1,class:"w-2 h-2 rounded-full bg-red-400",title:"SSE disconnected"},t2n=["href"],n2n={class:"flex flex-1 overflow-hidden"},i2n={class:"w-80 flex-shrink-0 border-r border-gray-200 bg-white overflow-y-auto"},r2n={class:"p-4 border-b border-gray-100"},s2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},o2n={class:"p-4 border-b border-gray-100"},c2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},u2n={class:"space-y-2 text-sm"},l2n={class:"flex justify-between"},a2n={class:"text-gray-400"},f2n={class:"text-xs bg-gray-100 px-1.5 py-0.5 rounded truncate max-w-[180px]"},d2n={class:"flex justify-between"},h2n={class:"text-gray-400"},g2n={class:"flex justify-between"},b2n={class:"text-gray-400"},p2n={class:"flex justify-between"},w2n={class:"text-gray-400"},v2n={class:"p-4 border-b border-gray-100"},m2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},y2n={class:"space-y-2"},k2n={class:"flex items-center justify-between text-sm"},x2n={class:"text-gray-600"},$2n=["disabled"],E2n={class:"flex items-center justify-between text-sm"},C2n={class:"text-gray-600"},S2n=["disabled"],_2n={key:0,class:"p-4 border-b border-gray-100"},j2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},I2n=["href"],A2n={key:1,class:"space-y-1 mt-1"},T2n={class:"text-xs text-gray-500 font-mono flex-shrink-0"},M2n=["href"],P2n={key:1,class:"p-4 border-b border-gray-100"},D2n={class:"bg-red-50 border border-red-200 rounded-lg p-3"},O2n={class:"text-xs font-semibold text-red-700 mb-1"},L2n={class:"text-xs text-red-600 whitespace-pre-wrap break-words"},N2n={class:"p-4"},R2n={class:"flex flex-wrap gap-2"},F2n={class:"flex-1 flex flex-col min-w-0"},B2n={class:"flex gap-0 border-b border-gray-200 bg-white px-4"},H2n=["onClick"],G2n={class:"flex-1 overflow-y-auto p-5"},J2n={key:1,class:"min-h-screen bg-gray-50 flex items-center justify-center"},U2n={class:"text-center"},z2n={class:"text-gray-400 text-lg mb-2"},q2n={href:"/",class:"text-sm text-blue-600 hover:text-blue-800"},V2n=wr({__name:"IssueDetailPage",setup(a){const d=Ye(null),b=Ye("docs"),m=Ye(!1),w=Ye(!1),{pipelineMode:$,stateLabel:p,stateClass:j,getPlanDocs:I,isEditableDoc:N}=r_(),P=_wt(),U=JX(),V=En(()=>P.selectedIssue.value?_r(P.selectedIssue.value):void 0),X=En(()=>{const le=V.value;return le!=null?U.getVerifyFixLoop(le):void 0}),ee=En(()=>{if(!P.selectedIssue.value)return"system";const le=P.selectedIssue.value.issueNoteSyncEnabled;return le===!0?"on":le===!1?"off":"system"}),K=En(()=>{if(!P.selectedIssue.value)return"system";const le=P.selectedIssue.value.e2eEnabled;return le===!0?"on":le===!1?"off":"system"});function he(){if(!P.selectedIssue.value||!d.value)return"#";const le=d.value.config.gongfengBaseUrl,Ce=d.value.config.projectPath;return`${le}/${Ce}/issues/${_r(P.selectedIssue.value)}`}function ke(){const Ce=new URLSearchParams(window.location.search).get("issue");if(!Ce)return;const Se=Number(Ce);return Number.isFinite(Se)&&Se>0?Se:void 0}async function ue(le){try{const Ce=await dX(le);P.selectIssue(Ce,U.agentLogs)}catch{console.warn(`Issue #${le} not found`)}}async function oe(){}async function re(){if(!P.selectedIssue.value)return;const le=P.selectedIssue.value.issueNoteSyncEnabled,Ce=le===!0?!1:le===!1?void 0:!0;m.value=!0;try{await xwt(_r(P.selectedIssue.value),Ce===void 0?null:Ce),await P.refreshDetail()}catch(Se){console.error("Failed to toggle note sync",Se)}finally{m.value=!1}}async function ye(){if(!P.selectedIssue.value)return;const le=P.selectedIssue.value.e2eEnabled,Ce=le===!0?!1:le===!1?void 0:!0;w.value=!0;try{await $wt(_r(P.selectedIssue.value),Ce===void 0?null:Ce),await P.refreshDetail()}catch(Se){console.error("Failed to toggle e2e",Se)}finally{w.value=!1}}const{connected:pe}=Swt((le,Ce)=>{const Se=Ce;if(le.startsWith("issue:")||le.startsWith("review:")){const te=Se.data;te?.issueIid&&P.selectedIssue.value&&_r(P.selectedIssue.value)===te.issueIid&&P.refreshDetail()}if(le==="agent:output"){const te=Se.data;te?.event&&U.pushAgentStreamEvent(te.issueIid,V,te.phase,te.event)}if(le==="pipeline:progress"){const te=Se.data;te&&P.selectedIssue.value&&_r(P.selectedIssue.value)===te.issueIid&&U.pushSystemLog(te.issueIid,V,te.step,te.message??"",Se.timestamp)}if(le.startsWith("verify:")){const te=Se.data,q=te?.issueIid;if(q&&(U.updateVerifyFixLoop(q,le,te),P.selectedIssue.value&&_r(P.selectedIssue.value)===q)){let He="";le==="verify:loopStarted"?He=Cs("verify.loopStarted",{max:te.maxIterations}):le==="verify:iterationComplete"?He=te.passed?Cs("verify.iterationPassed",{n:te.iteration}):Cs("verify.iterationFailed",{n:te.iteration,reasons:(te.failures??[]).join("; ")}):le==="verify:loopExhausted"&&(He=Cs("verify.loopExhausted",{n:te.totalIterations})),He&&U.pushSystemLog(q,V,"verify",He,Se.timestamp)}}});async function be(){try{d.value=await kwt(),d.value?.config?.pipelineMode&&($.value=d.value.config.pipelineMode)}catch(le){console.error("Fetch status failed",le)}}let se=null;return gl(async()=>{Cwt(),be(),se=setInterval(be,1e4);const le=ke();le&&await ue(le)}),dp(()=>{se&&clearInterval(se)}),(le,Ce)=>A(P).selectedIssue.value?(R(),J("div",qvn,[E("div",Vvn,[E("div",Kvn,[E("a",Wvn,M(le.$t("detail.backToList")),1),Ce[21]||(Ce[21]=E("span",{class:"text-gray-300"},"|",-1)),E("h1",Xvn,"Issue #"+M(A(_r)(A(P).selectedIssue.value)),1),E("span",Yvn,M(A(ywt)(A(P).selectedIssue.value)),1),E("span",{class:wn(["px-2.5 py-0.5 rounded-full text-xs font-medium flex-shrink-0",A(j)(A(P).selectedIssue.value.state)])},M(A(p)(A(P).selectedIssue.value.state,A(P).selectedIssue.value.currentPhase)),3)]),E("div",Qvn,[A(pe)?(R(),J("span",Zvn)):(R(),J("span",e2n)),E("a",{href:he(),target:"_blank",rel:"noopener",class:"text-sm text-gray-500 hover:text-blue-600"},M(le.$t("detail.viewInGongfeng"))+" ↗",9,t2n)])]),E("div",n2n,[E("aside",i2n,[E("div",r2n,[E("div",s2n,M(le.$t("pipeline.title")),1),xr(t2t,{issue:A(P).selectedIssue.value,progress:A(P).detailProgress.value,"verify-fix-loop":X.value,vertical:"",onRetryFromPhase:Ce[0]||(Ce[0]=Se=>A(P).doRetryFromPhase(A(_r)(A(P).selectedIssue.value),Se,Se,oe))},null,8,["issue","progress","verify-fix-loop"])]),E("div",o2n,[E("div",c2n,M(le.$t("detail.basicInfo")),1),E("div",u2n,[E("div",l2n,[E("span",a2n,M(le.$t("detail.branch")),1),E("code",f2n,M(A(P).selectedIssue.value.branchName),1)]),E("div",d2n,[E("span",h2n,M(le.$t("detail.retries")),1),E("span",null,M(A(P).selectedIssue.value.attempts),1)]),E("div",g2n,[E("span",b2n,M(le.$t("detail.createdAt")),1),E("span",null,M(A(YS)(A(P).selectedIssue.value.createdAt)),1)]),E("div",p2n,[E("span",w2n,M(le.$t("detail.updatedAt")),1),E("span",null,M(A(YS)(A(P).selectedIssue.value.updatedAt)),1)])])]),E("div",v2n,[E("div",m2n,M(le.$t("detail.settings")),1),E("div",y2n,[E("div",k2n,[E("span",x2n,M(le.$t("detail.noteSync")),1),E("button",{class:wn(["px-2.5 py-0.5 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":ee.value==="on","bg-red-100 text-red-600 hover:bg-red-200":ee.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":ee.value==="system"}]),disabled:m.value,onClick:Ce[1]||(Ce[1]=Se=>re())},M(ee.value==="on"?le.$t("detail.enabled"):ee.value==="off"?le.$t("detail.disabled"):le.$t("detail.followSystem")),11,$2n)]),E("div",E2n,[E("span",C2n,M(le.$t("detail.e2eTitle")),1),E("button",{class:wn(["px-2.5 py-0.5 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":K.value==="on","bg-red-100 text-red-600 hover:bg-red-200":K.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":K.value==="system"}]),disabled:w.value,onClick:Ce[2]||(Ce[2]=Se=>ye())},M(K.value==="on"?le.$t("detail.enabled"):K.value==="off"?le.$t("detail.disabled"):le.$t("detail.followSystem")),11,S2n)])])]),A(P).selectedIssue.value.mrUrl||A(P).selectedIssue.value.linkedMrUrls&&Object.keys(A(P).selectedIssue.value.linkedMrUrls).length>0?(R(),J("div",_2n,[E("div",j2n,M(le.$t("detail.mergeRequest")),1),A(P).selectedIssue.value.mrUrl?(R(),J("a",{key:0,href:A(P).selectedIssue.value.mrUrl,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(A(P).selectedIssue.value.mrUrl),9,I2n)):Ae("",!0),A(P).selectedIssue.value.linkedMrUrls?(R(),J("div",A2n,[(R(!0),J(sn,null,bi(A(P).selectedIssue.value.linkedMrUrls,(Se,te)=>(R(),J("div",{key:te,class:"flex items-start gap-2"},[E("span",T2n,M(te)+":",1),E("a",{href:Se,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(Se),9,M2n)]))),128))])):Ae("",!0)])):Ae("",!0),A(P).selectedIssue.value.lastError?(R(),J("div",P2n,[E("div",D2n,[E("div",O2n,M(le.$t("detail.errorInfo")),1),E("p",L2n,M(A(P).selectedIssue.value.lastError),1)])])):Ae("",!0),E("div",N2n,[E("div",R2n,[A(P).selectedIssue.value.state==="skipped"?(R(),J("button",{key:0,class:"px-3 py-1.5 bg-green-500 text-white text-xs rounded-lg hover:bg-green-600",onClick:Ce[3]||(Ce[3]=Se=>A(P).doStartIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.start")),1)):Ae("",!0),A(P).selectedIssue.value.state==="failed"?(R(),J("button",{key:1,class:"px-3 py-1.5 bg-blue-500 text-white text-xs rounded-lg hover:bg-blue-600",onClick:Ce[4]||(Ce[4]=Se=>A(P).doRetryIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.retry")),1)):Ae("",!0),A(P).selectedIssue.value.state==="completed"?(R(),J("button",{key:2,class:"px-3 py-1.5 bg-purple-500 text-white text-xs rounded-lg hover:bg-purple-600",onClick:Ce[5]||(Ce[5]=Se=>A(P).doMarkDeployed(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.markDeployed")),1)):Ae("",!0),A(P).selectedIssue.value.preview?.running?(R(),J("button",{key:3,class:"px-3 py-1.5 bg-orange-100 text-orange-700 text-xs rounded-lg hover:bg-orange-200",onClick:Ce[6]||(Ce[6]=Se=>A(P).doStopPreview(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.stopPreview")),1)):Ae("",!0),!["pending","skipped","deployed"].includes(A(P).selectedIssue.value.state)&&!A(P).selectedIssue.value.preview?.running?(R(),J("button",{key:4,class:"px-3 py-1.5 bg-indigo-100 text-indigo-700 text-xs rounded-lg hover:bg-indigo-200",onClick:Ce[7]||(Ce[7]=Se=>A(P).doRestartPreview(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.restartPreview")),1)):Ae("",!0),A(P).selectedIssue.value.state!=="skipped"?(R(),J("button",{key:5,class:"px-3 py-1.5 bg-yellow-100 text-yellow-700 text-xs rounded-lg hover:bg-yellow-200",onClick:Ce[8]||(Ce[8]=Se=>A(P).doRestartIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.restart")),1)):Ae("",!0),E("button",{class:"px-3 py-1.5 bg-red-100 text-red-600 text-xs rounded-lg hover:bg-red-200",onClick:Ce[9]||(Ce[9]=Se=>A(P).doCancelIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.cancelTrack")),1)])])]),E("div",F2n,[E("div",B2n,[(R(),J(sn,null,bi(["docs","review","supplement","logs","e2e"],Se=>E("button",{key:Se,class:wn(["px-4 py-2.5 text-sm font-medium border-b-2 transition-colors",b.value===Se?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:te=>b.value=Se},M(le.$t(`detail.tab.${Se}`)),11,H2n)),64))]),E("div",G2n,[b.value==="docs"?(R(),Ts(s2t,{key:0,"issue-iid":A(_r)(A(P).selectedIssue.value),"plan-docs":A(I)(A(P).selectedIssue.value),"is-editable-doc":A(N),"detail-version":A(P).detailVersion.value},null,8,["issue-iid","plan-docs","is-editable-doc","detail-version"])):Ae("",!0),b.value==="review"?(R(),Ts(n2t,{key:1,"review-submitting":A(P).reviewSubmitting.value,"review-feedback":A(P).reviewFeedback.value,"review-history":A(P).reviewHistory.value,"onUpdate:reviewFeedback":Ce[10]||(Ce[10]=Se=>A(P).reviewFeedback.value=Se),onApprove:Ce[11]||(Ce[11]=Se=>A(P).doApprovePlan(A(_r)(A(P).selectedIssue.value),oe)),onReject:Ce[12]||(Ce[12]=Se=>A(P).doRejectPlan(A(_r)(A(P).selectedIssue.value),oe)),onSkip:Ce[13]||(Ce[13]=Se=>A(P).doSkipReview(A(_r)(A(P).selectedIssue.value),oe))},null,8,["review-submitting","review-feedback","review-history"])):Ae("",!0),b.value==="supplement"?(R(),Ts(i2t,{key:2,supplement:A(P).detailSupplement.value,"supplement-form":A(P).detailSupplementForm.value,loading:A(P).detailSupplementLoading.value,editing:A(P).detailSupplementEditing.value,saving:A(P).detailSupplementSaving.value,"has-data":A(P).hasSupplementData(A(P).detailSupplement.value),onEdit:Ce[14]||(Ce[14]=Se=>A(P).enterSupplementEdit()),onSave:Ce[15]||(Ce[15]=Se=>A(P).saveDetailSupplement(oe)),onCancel:Ce[16]||(Ce[16]=Se=>A(P).detailSupplementEditing.value=!1),"onUpdate:supplementForm":Ce[17]||(Ce[17]=Se=>A(P).detailSupplementForm.value=Se)},null,8,["supplement","supplement-form","loading","editing","saving","has-data"])):Ae("",!0),b.value==="logs"?(R(),Ts(r2t,{key:3,logs:A(U).filteredLogs.value,"issue-state":A(P).selectedIssue.value.state,"current-phase":A(P).selectedIssue.value.currentPhase,"auto-scroll":A(U).agentAutoScroll.value,"debug-mode":A(U).debugMode.value,"onUpdate:autoScroll":Ce[18]||(Ce[18]=Se=>A(U).agentAutoScroll.value=Se),"onUpdate:debugMode":Ce[19]||(Ce[19]=Se=>A(U).debugMode.value=Se),onClear:Ce[20]||(Ce[20]=Se=>A(U).clear())},null,8,["logs","issue-state","current-phase","auto-scroll","debug-mode"])):Ae("",!0),b.value==="e2e"?(R(),Ts(o2t,{key:4,"issue-iid":A(_r)(A(P).selectedIssue.value)},null,8,["issue-iid"])):Ae("",!0)])])])])):(R(),J("div",J2n,[E("div",U2n,[E("div",z2n,M(le.$t("detail.loading")),1),E("a",q2n,M(le.$t("detail.backToList")),1)])]))}});async function Vbt(a,d){const b=a.body?.getReader();if(!b)return{receivedAny:!1};const m=new TextDecoder;let w="",$=!1;for(;;){const{done:p,value:j}=await b.read();if(p)break;w+=m.decode(j,{stream:!0});const I=w.split(`
123
+ `).filter(Ce=>Ce.trim())})}function ue(Ce){j.value[Ce]=!j.value[Ce]}const oe=En(()=>b.selectedUseCaseId?b.model.relationships.filter(Ce=>Ce.sourceId===b.selectedUseCaseId||Ce.targetId===b.selectedUseCaseId):[]);function re(Ce){const Se=b.model.useCases.find(te=>te.id===Ce);return Se?.displayName||Se?.name||Ce}const ye=Ye(!1),pe=Ye({sourceId:"",targetId:"",type:"include",label:""});function be(){const Ce="ucrel-"+Date.now().toString(36);m("add-relationship",{id:Ce,type:pe.value.type,sourceId:pe.value.sourceId,targetId:pe.value.targetId,label:pe.value.label||void 0}),pe.value={sourceId:"",targetId:"",type:"include",label:""},ye.value=!1}const se=Object.entries(qO).map(([Ce,Se])=>({value:Ce,label:Se.label})),le=Object.entries(x3).map(([Ce,Se])=>({value:Ce,label:Se.label}));return(Ce,Se)=>(R(),J("div",jdn,[E("div",Idn,[E("button",{class:wn(["flex-1 px-3 py-2 text-xs font-medium",w.value==="list"?"text-blue-600 border-b-2 border-blue-600":"text-gray-500 hover:text-gray-700"]),onClick:Se[0]||(Se[0]=te=>w.value="list")},"用例列表",2),E("button",{class:wn(["flex-1 px-3 py-2 text-xs font-medium",w.value==="detail"?"text-blue-600 border-b-2 border-blue-600":"text-gray-500 hover:text-gray-700"]),disabled:!I.value,onClick:Se[1]||(Se[1]=te=>w.value="detail")},"详情",10,Adn)]),E("div",Tdn,[w.value==="list"?(R(),J(sn,{key:0},[E("div",Mdn,[Nn(E("input",{"onUpdate:modelValue":Se[2]||(Se[2]=te=>$.value=te),class:"w-full px-2 py-1 border rounded text-xs",placeholder:"搜索用例..."},null,512),[[Ci,$.value]]),E("div",Pdn,[(R(!0),J(sn,null,bi([{value:"all",label:"全部"},...A(le)],te=>(R(),J("button",{key:te.value,class:wn(["px-2 py-0.5 text-[10px] rounded-full border",p.value===te.value?"bg-blue-600 text-white border-blue-600":"text-gray-500 border-gray-300 hover:border-gray-400"]),onClick:q=>p.value=te.value},M(te.label),11,Ddn))),128))])]),E("div",Odn,M(N.value.length)+"/"+M(a.model.useCases.length)+" 用例 · "+M(a.model.relationships.length)+" 关系 ",1),(R(!0),J(sn,null,bi(N.value,te=>(R(),J("div",{key:te.id,class:wn(["flex items-center gap-2 px-2 py-1.5 rounded text-xs cursor-pointer hover:bg-gray-50 group",{"bg-blue-50":a.selectedUseCaseId===te.id}]),onClick:q=>m("select-usecase",te.id)},[E("span",{class:"w-2 h-2 rounded-full flex-shrink-0",style:_c({backgroundColor:A(x3)[te.importance]?.color})},null,4),E("span",Ndn,M(te.displayName||te.name),1),E("span",Rdn,M(te.mainPath.length)+"步",1),E("button",{class:"text-red-400 hover:text-red-600 opacity-0 group-hover:opacity-100",title:"删除",onClick:Ah(q=>m("remove-usecase",te.id),["stop"])},"×",8,Fdn)],10,Ldn))),128)),E("div",Bdn,[E("div",Hdn,[Se[27]||(Se[27]=E("span",{class:"text-xs font-semibold text-gray-600"},"关系",-1)),E("button",{class:"text-xs text-blue-600 hover:text-blue-800",onClick:Se[3]||(Se[3]=te=>ye.value=!0)},"+ 添加")]),(R(!0),J(sn,null,bi(a.model.relationships,te=>(R(),J("div",{key:te.id,class:"flex items-center gap-1 px-2 py-1 text-[10px] text-gray-500 hover:bg-gray-50 rounded"},[E("span",Gdn,M(re(te.sourceId))+" → "+M(re(te.targetId)),1),E("span",Jdn,M(A(qO)[te.type]?.label),1),E("button",{class:"text-red-400 hover:text-red-600",onClick:q=>m("remove-relationship",te.id)},"×",8,Udn)]))),128))])],64)):Ae("",!0),w.value==="detail"&&I.value?(R(),J("div",zdn,[E("div",qdn,[E("span",{class:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:_c({color:A(x3)[I.value.importance]?.color,backgroundColor:A(x3)[I.value.importance]?.bgColor,border:"1px solid "+A(x3)[I.value.importance]?.color})},M(A(x3)[I.value.importance]?.label),5),E("span",Vdn,M(I.value.status),1)]),E("div",Kdn,M(I.value.displayName||I.value.name),1),E("div",Wdn,M(I.value.description),1),E("div",null,[Se[28]||(Se[28]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"参与者",-1)),E("div",Xdn,[ci(" 主: "+M(I.value.primaryActor)+" ",1),I.value.auxiliaryActors.length?(R(),J("span",Ydn," · 辅: "+M(I.value.auxiliaryActors.join(", ")),1)):Ae("",!0)])]),I.value.preconditions.length?(R(),J("div",Qdn,[Se[29]||(Se[29]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"前置条件",-1)),E("ul",Zdn,[(R(!0),J(sn,null,bi(I.value.preconditions,(te,q)=>(R(),J("li",{key:q},M(te),1))),128))])])):Ae("",!0),E("div",null,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[4]||(Se[4]=te=>ue("mainPath"))},[E("span",null,"主路径 ("+M(I.value.mainPath.length)+"步)",1),E("span",null,M(j.value.mainPath?"▼":"▶"),1)]),j.value.mainPath?(R(),J("div",ehn,[(R(!0),J(sn,null,bi(I.value.mainPath,te=>(R(),J("div",{key:te.number,class:"flex gap-2 text-xs py-0.5"},[E("span",thn,M(te.number),1),E("span",{class:wn(["text-[10px] font-medium px-1 rounded flex-shrink-0",{"bg-blue-100 text-blue-700":te.type==="request","bg-yellow-100 text-yellow-700":te.type==="validate","bg-green-100 text-green-700":te.type==="change","bg-purple-100 text-purple-700":te.type==="feedback","bg-orange-100 text-orange-700":te.type==="request-auxiliary","bg-teal-100 text-teal-700":te.type==="validate-auxiliary"}])},M(A(ydn)[te.type]),3),E("span",nhn,M(te.description),1)]))),128))])):Ae("",!0)]),I.value.extensions.length?(R(),J("div",ihn,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[5]||(Se[5]=te=>ue("extensions"))},[E("span",null,"扩展路径 ("+M(I.value.extensions.length)+")",1),E("span",null,M(j.value.extensions?"▼":"▶"),1)]),j.value.extensions?(R(),J("div",rhn,[(R(!0),J(sn,null,bi(I.value.extensions,te=>(R(),J("div",{key:te.id,class:"border-l-2 border-orange-200 pl-2"},[E("div",shn,M(te.condition),1),(R(!0),J(sn,null,bi(te.steps,q=>(R(),J("div",{key:q.number,class:"flex gap-2 text-xs py-0.5"},[E("span",ohn,M(q.number),1),E("span",chn,M(q.description),1)]))),128))]))),128))])):Ae("",!0)])):Ae("",!0),I.value.constraints.length?(R(),J("div",uhn,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[6]||(Se[6]=te=>ue("constraints"))},[E("span",null,"补充约束 ("+M(I.value.constraints.length)+")",1),E("span",null,M(j.value.constraints?"▼":"▶"),1)]),j.value.constraints?(R(),J("div",lhn,[(R(!0),J(sn,null,bi(I.value.constraints,te=>(R(),J("div",{key:te.id,class:"text-xs"},[E("div",ahn,[E("span",{class:wn(["text-[10px] font-medium px-1 rounded",{"bg-blue-100 text-blue-700":te.type==="field-list","bg-yellow-100 text-yellow-700":te.type==="business-rule","bg-green-100 text-green-700":te.type==="quality","bg-purple-100 text-purple-700":te.type==="design"}])},M({"field-list":"字段","business-rule":"规则",quality:"质量",design:"设计"}[te.type]),3),E("span",fhn,M(te.name),1)]),E("div",dhn,M(te.content),1)]))),128))])):Ae("",!0)])):Ae("",!0),I.value.postconditions.length?(R(),J("div",hhn,[Se[30]||(Se[30]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"后置条件",-1)),E("ul",ghn,[(R(!0),J(sn,null,bi(I.value.postconditions,(te,q)=>(R(),J("li",{key:q},M(te),1))),128))])])):Ae("",!0),oe.value.length?(R(),J("div",bhn,[E("label",phn,"关系 ("+M(oe.value.length)+")",1),(R(!0),J(sn,null,bi(oe.value,te=>(R(),J("div",{key:te.id,class:"text-xs text-gray-600 pl-2 py-0.5"},[te.sourceId===a.selectedUseCaseId?(R(),J("span",whn,"→ "+M(re(te.targetId)),1)):(R(),J("span",vhn,"← "+M(re(te.sourceId)),1)),E("span",mhn,"("+M(A(qO)[te.type]?.label)+")",1)]))),128))])):Ae("",!0),E("div",yhn,[E("button",{class:"w-full flex items-center justify-between text-xs font-semibold text-gray-600 py-1",onClick:Se[7]||(Se[7]=te=>ue("edit"))},[Se[31]||(Se[31]=E("span",null,"编辑",-1)),E("span",null,M(j.value.edit?"▼":"▶"),1)]),j.value.edit?(R(),J("div",khn,[E("div",null,[Se[32]||(Se[32]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"名称",-1)),Nn(E("input",{"onUpdate:modelValue":Se[8]||(Se[8]=te=>P.value=te),class:"w-full px-2 py-1 border rounded text-xs",onBlur:Se[9]||(Se[9]=te=>ke())},null,544),[[Ci,P.value]])]),E("div",null,[Se[33]||(Se[33]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"中文名",-1)),Nn(E("input",{"onUpdate:modelValue":Se[10]||(Se[10]=te=>U.value=te),class:"w-full px-2 py-1 border rounded text-xs",onBlur:Se[11]||(Se[11]=te=>ke())},null,544),[[Ci,U.value]])]),E("div",null,[Se[34]||(Se[34]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"描述",-1)),Nn(E("textarea",{"onUpdate:modelValue":Se[12]||(Se[12]=te=>V.value=te),class:"w-full px-2 py-1 border rounded text-xs",rows:"2",onBlur:Se[13]||(Se[13]=te=>ke())},null,544),[[Ci,V.value]])]),E("div",null,[Se[35]||(Se[35]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"重要性",-1)),Nn(E("select",{"onUpdate:modelValue":Se[14]||(Se[14]=te=>X.value=te),class:"w-full px-2 py-1 border rounded text-xs",onChange:Se[15]||(Se[15]=te=>ke())},[(R(!0),J(sn,null,bi(A(le),te=>(R(),J("option",{key:te.value,value:te.value},M(te.label),9,xhn))),128))],544),[[Rd,X.value]])]),E("div",null,[Se[36]||(Se[36]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"前置条件(每行一条)",-1)),Nn(E("textarea",{"onUpdate:modelValue":Se[16]||(Se[16]=te=>ee.value=te),class:"w-full px-2 py-1 border rounded text-xs",rows:"2",onBlur:Se[17]||(Se[17]=te=>ke())},null,544),[[Ci,ee.value]])]),E("div",null,[Se[37]||(Se[37]=E("label",{class:"text-[10px] text-gray-500 uppercase"},"后置条件(每行一条)",-1)),Nn(E("textarea",{"onUpdate:modelValue":Se[18]||(Se[18]=te=>K.value=te),class:"w-full px-2 py-1 border rounded text-xs",rows:"2",onBlur:Se[19]||(Se[19]=te=>ke())},null,544),[[Ci,K.value]])]),E("button",{class:"w-full px-3 py-1.5 text-xs bg-red-50 text-red-600 rounded hover:bg-red-100",onClick:Se[20]||(Se[20]=te=>{m("remove-usecase",I.value.id),w.value="list"})},"删除此用例")])):Ae("",!0)])])):w.value==="detail"?(R(),J("div",$hn,"点击画布上的节点查看详情")):Ae("",!0)]),ye.value?(R(),J("div",{key:0,class:"fixed inset-0 bg-black/40 flex items-center justify-center z-50",onClick:Se[26]||(Se[26]=Ah(te=>ye.value=!1,["self"]))},[E("div",Ehn,[Se[41]||(Se[41]=E("h4",{class:"text-sm font-semibold"},"添加用例关系",-1)),E("div",null,[Se[38]||(Se[38]=E("label",{class:"text-[10px] text-gray-500"},"源用例",-1)),Nn(E("select",{"onUpdate:modelValue":Se[21]||(Se[21]=te=>pe.value.sourceId=te),class:"w-full px-2 py-1 border rounded text-xs"},[(R(!0),J(sn,null,bi(a.model.useCases,te=>(R(),J("option",{key:te.id,value:te.id},M(te.displayName||te.name),9,Chn))),128))],512),[[Rd,pe.value.sourceId]])]),E("div",null,[Se[39]||(Se[39]=E("label",{class:"text-[10px] text-gray-500"},"目标用例",-1)),Nn(E("select",{"onUpdate:modelValue":Se[22]||(Se[22]=te=>pe.value.targetId=te),class:"w-full px-2 py-1 border rounded text-xs"},[(R(!0),J(sn,null,bi(a.model.useCases,te=>(R(),J("option",{key:te.id,value:te.id},M(te.displayName||te.name),9,Shn))),128))],512),[[Rd,pe.value.targetId]])]),E("div",null,[Se[40]||(Se[40]=E("label",{class:"text-[10px] text-gray-500"},"关系类型",-1)),Nn(E("select",{"onUpdate:modelValue":Se[23]||(Se[23]=te=>pe.value.type=te),class:"w-full px-2 py-1 border rounded text-xs"},[(R(!0),J(sn,null,bi(A(se),te=>(R(),J("option",{key:te.value,value:te.value},M(te.label),9,_hn))),128))],512),[[Rd,pe.value.type]])]),E("div",jhn,[E("button",{class:"px-3 py-1 text-xs bg-gray-200 rounded hover:bg-gray-300",onClick:Se[24]||(Se[24]=te=>ye.value=!1)},"取消"),E("button",{class:"px-3 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50",disabled:!pe.value.sourceId||!pe.value.targetId,onClick:Se[25]||(Se[25]=te=>be())},"添加",8,Ihn)])])])):Ae("",!0)]))}}),Thn={class:"space-y-3"},Mhn={class:"flex items-center justify-between"},Phn={class:"text-[10px] text-gray-500 uppercase font-semibold"},Dhn={key:0,class:"space-y-1"},Ohn={class:"text-[10px] text-indigo-500 font-mono"},Lhn={class:"flex-1 truncate text-gray-700"},Nhn=["onClick"],Rhn={key:1,class:"text-[10px] text-gray-400"},Fhn={class:"max-h-32 overflow-y-auto space-y-0.5"},Bhn=["onClick"],Hhn={class:"text-[10px] text-gray-400 font-mono"},Ghn={class:"flex-1 truncate text-gray-600"},Jhn=wr({__name:"DomainLinkPanel",props:{useCase:{},availableElements:{}},emits:["update-links","suggest"],setup(a,{emit:d}){const b=a,m=d,w=Ye(""),$=En(()=>b.availableElements.filter(N=>b.useCase.domainElementIds.includes(N.id))),p=En(()=>{const N=w.value.toLowerCase();return b.availableElements.filter(P=>!b.useCase.domainElementIds.includes(P.id)).filter(P=>!N||P.name.toLowerCase().includes(N)||P.displayName.toLowerCase().includes(N))});function j(N){m("update-links",[...b.useCase.domainElementIds,N])}function I(N){m("update-links",b.useCase.domainElementIds.filter(P=>P!==N))}return(N,P)=>(R(),J("div",Thn,[E("div",Mhn,[E("label",Phn,"领域关联 ("+M($.value.length)+")",1),E("button",{class:"text-[10px] text-indigo-600 hover:text-indigo-800",onClick:P[0]||(P[0]=U=>m("suggest"))},"AI 推荐")]),$.value.length?(R(),J("div",Dhn,[(R(!0),J(sn,null,bi($.value,U=>(R(),J("div",{key:U.id,class:"flex items-center gap-2 px-2 py-1 bg-indigo-50 rounded text-xs"},[E("span",Ohn,M(U.type),1),E("span",Lhn,M(U.displayName||U.name),1),E("button",{class:"text-red-400 hover:text-red-600 text-xs",onClick:V=>I(U.id)},"×",8,Nhn)]))),128))])):(R(),J("div",Rhn,"暂无关联的领域元素")),E("div",null,[Nn(E("input",{"onUpdate:modelValue":P[1]||(P[1]=U=>w.value=U),class:"w-full px-2 py-1 border rounded text-xs mb-1",placeholder:"搜索领域元素..."},null,512),[[Ci,w.value]]),E("div",Fhn,[(R(!0),J(sn,null,bi(p.value,U=>(R(),J("div",{key:U.id,class:"flex items-center gap-2 px-2 py-1 hover:bg-gray-50 rounded text-xs cursor-pointer",onClick:V=>j(U.id)},[E("span",Hhn,M(U.type),1),E("span",Ghn,M(U.displayName||U.name),1),P[2]||(P[2]=E("span",{class:"text-blue-500 text-[10px]"},"+ 添加",-1))],8,Bhn))),128))])])]))}}),Uhn={class:"flex flex-col",style:{height:"calc(100vh - 220px)"}},zhn={class:"flex items-center gap-2 px-4 py-2 bg-white border-b border-gray-200"},qhn=["disabled"],Vhn=["disabled"],Khn=["disabled"],Whn=["disabled"],Xhn=["disabled"],Yhn={key:1,class:"text-xs text-gray-400"},Qhn={key:0},Zhn={key:0,class:"bg-red-50 border-b border-red-200 text-red-700 px-4 py-2 text-sm"},e1n={key:1,class:"bg-blue-50 border-b border-blue-200 px-4 py-2"},t1n={class:"flex items-center gap-2 text-sm"},n1n={class:"text-blue-700"},i1n={key:2,class:"border-b border-gray-200 bg-white"},r1n={class:"px-4 py-1.5 flex items-center justify-between bg-gray-50 border-b border-gray-100"},s1n={class:"text-xs font-medium text-gray-600"},o1n={class:"overflow-y-auto",style:{"max-height":"12rem"}},c1n={class:"text-gray-400 mr-2"},u1n={class:"flex-1 flex overflow-hidden"},l1n={key:0,class:"flex-1 relative"},a1n={key:1,class:"flex-1 flex items-center justify-center bg-gray-50"},f1n={class:"text-center"},d1n={class:"text-gray-500 mb-2"},h1n={key:2,class:"w-64 border-l border-gray-200 bg-white overflow-auto p-3"},g1n={key:3,class:"flex items-center gap-4 px-4 py-1.5 bg-gray-50 border-t border-gray-200 text-[10px] text-gray-500 overflow-x-auto"},b1n=wr({__name:"SystemUseCasePanel",setup(a){const{model:d,analyzing:b,analyzeProgress:m,loading:w,error:$,selectedUseCaseId:p,selectedUseCase:j,dirty:I,agentLogs:N,suggestingAssociations:P,loadModel:U,saveModel:V,runAnalysis:X,confirmAndPersist:ee,updateUseCase:K,removeUseCase:he,addRelationship:ke,removeRelationship:ue,suggestDomainAssociations:oe,updateDomainLinks:re}=mdn(),ye=Ye(!1),pe=Ye(!0),be=Ye(!1),se=Ye([]);async function le(){try{const gt=await Ewt();gt.model&&(se.value=gt.model.elements.map(ze=>({id:ze.id,name:ze.name,displayName:ze.displayName,type:ze.type})))}catch{}}const Ce={usecase:I3(Cdn),actor:I3(_dn)},Se=En(()=>{if(!d.value)return[];const gt=[],ze=new Set;for(const Jt of d.value.useCases){ze.add(Jt.primaryActor);for(const xe of Jt.auxiliaryActors)ze.add(xe)}for(const Jt of d.value.actors)ze.add(Jt);let jt=50;for(const Jt of ze)gt.push({id:`actor-${Jt}`,type:"actor",position:{x:50,y:jt},data:{name:Jt}}),jt+=120;for(const[Jt,xe]of d.value.useCases.entries())gt.push({id:xe.id,type:"usecase",position:xe.position??{x:300+Jt%3*250,y:50+Math.floor(Jt/3)*160},data:xe});return gt}),te=En(()=>{if(!d.value)return[];const gt=[];for(const ze of d.value.useCases){gt.push({id:`edge-actor-${ze.primaryActor}-${ze.id}`,source:`actor-${ze.primaryActor}`,target:ze.id,type:"default",style:{stroke:"#94A3B8"}});for(const jt of ze.auxiliaryActors)gt.push({id:`edge-actor-${jt}-${ze.id}`,source:`actor-${jt}`,target:ze.id,type:"default",style:{stroke:"#94A3B8",strokeDasharray:"4 3"}})}for(const ze of d.value.relationships){const jt=qO[ze.type];gt.push({id:ze.id,source:ze.sourceId,target:ze.targetId,label:ze.label||jt?.label||"",type:"default",style:{stroke:jt?.color||"#94A3B8",...jt?.style==="dashed"?{strokeDasharray:"6 3"}:{}},markerEnd:sL.ArrowClosed,data:ze})}return gt});function q(gt){gt.node.type==="usecase"&&(p.value=gt.node.id)}function He(){p.value=null}return gl(async()=>{await U(),await le()}),Jr(()=>b.value,async(gt,ze)=>{ze&&!gt&&await le()}),(gt,ze)=>(R(),J("div",Uhn,[E("div",zhn,[E("button",{class:"px-3 py-1.5 text-sm bg-blue-600 text-white rounded hover:bg-blue-700 disabled:opacity-50",disabled:A(b),onClick:ze[0]||(ze[0]=jt=>A(X)(!1))},M(A(b)?"分析中...":"分析系统用例"),9,qhn),E("button",{class:"px-3 py-1.5 text-sm bg-blue-500 text-white rounded hover:bg-blue-600 disabled:opacity-50",disabled:A(b),onClick:ze[1]||(ze[1]=jt=>A(X)(!0))},"精炼分析",8,Vhn),E("button",{class:"px-3 py-1.5 text-sm bg-green-600 text-white rounded hover:bg-green-700 disabled:opacity-50",disabled:!A(d)||A(w),onClick:ze[2]||(ze[2]=jt=>A(V)())}," 保存"+M(A(I)?" *":""),9,Khn),E("button",{class:"px-3 py-1.5 text-sm bg-purple-600 text-white rounded hover:bg-purple-700 disabled:opacity-50",disabled:!A(d)||A(w),onClick:ze[3]||(ze[3]=jt=>A(ee)())},"确认入库",8,Whn),E("button",{class:"px-3 py-1.5 text-sm bg-indigo-600 text-white rounded hover:bg-indigo-700 disabled:opacity-50",disabled:!A(d)||A(P),onClick:ze[4]||(ze[4]=jt=>A(oe)())},M(A(P)?"推荐中...":"推荐关联"),9,Xhn),ze[12]||(ze[12]=E("div",{class:"flex-1"},null,-1)),A(b)?(R(),J("button",{key:0,class:"px-2 py-1 text-xs text-gray-600 border rounded hover:bg-gray-50",onClick:ze[5]||(ze[5]=jt=>ye.value=!ye.value)},M(ye.value?"隐藏日志":"显示日志"),1)):Ae("",!0),E("button",{class:"px-2 py-1 text-xs text-gray-600 border rounded hover:bg-gray-50",onClick:ze[6]||(ze[6]=jt=>be.value=!be.value)},M(be.value?"隐藏关联":"领域关联"),1),E("button",{class:"px-2 py-1 text-xs text-gray-600 border rounded hover:bg-gray-50",onClick:ze[7]||(ze[7]=jt=>pe.value=!pe.value)},M(pe.value?"隐藏面板":"显示面板"),1),A(d)?(R(),J("div",Yhn,[ci(M(A(d).useCases.length)+" 用例 · "+M(A(d).relationships.length)+" 关系 ",1),A(d).analyzedAt?(R(),J("span",Qhn," · 分析于 "+M(new Date(A(d).analyzedAt).toLocaleString("zh-CN")),1)):Ae("",!0)])):Ae("",!0)]),A($)?(R(),J("div",Zhn,M(A($)),1)):Ae("",!0),A(b)&&A(m)?(R(),J("div",e1n,[E("div",t1n,[ze[13]||(ze[13]=E("svg",{class:"animate-spin h-4 w-4 text-blue-600",viewBox:"0 0 24 24",fill:"none"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),E("span",n1n,M(A(m).message),1)])])):Ae("",!0),A(b)&&ye.value&&A(N).length>0?(R(),J("div",i1n,[E("div",r1n,[E("span",s1n,"AI 实时日志 ("+M(A(N).length)+")",1)]),E("div",o1n,[(R(!0),J(sn,null,bi(A(N),(jt,Jt)=>(R(),J("div",{key:Jt,class:"px-4 py-1 text-xs text-gray-600 border-b border-gray-50"},[E("span",c1n,M(jt.type),1),E("span",null,M(jt.content),1)]))),128))])])):Ae("",!0),E("div",u1n,[A(d)&&A(d).useCases.length>0?(R(),J("div",l1n,[xr(A(Xvt),{nodes:Se.value,edges:te.value,"node-types":Ce,"default-viewport":{x:0,y:0,zoom:.8},"fit-view-on-init":"",onNodeClick:q,onPaneClick:He},{default:zg(()=>[xr(A(Zvt)),xr(A(e2t))]),_:1},8,["nodes","edges"])])):(R(),J("div",a1n,[E("div",f1n,[ze[14]||(ze[14]=E("div",{class:"text-6xl text-gray-300 mb-4"},"⚙",-1)),E("div",d1n,[A(w)?(R(),J(sn,{key:0},[ci("加载中...")],64)):A(b)?(R(),J(sn,{key:1},[ci("正在分析系统用例...")],64)):(R(),J(sn,{key:2},[ci("暂无系统用例数据")],64))]),!A(w)&&!A(b)?(R(),J("button",{key:0,class:"px-4 py-2 text-sm bg-blue-600 text-white rounded hover:bg-blue-700",onClick:ze[8]||(ze[8]=jt=>A(X)(!1))},"开始分析")):Ae("",!0)])])),be.value&&A(j)?(R(),J("div",h1n,[xr(Jhn,{"use-case":A(j),"available-elements":se.value,onUpdateLinks:ze[9]||(ze[9]=jt=>A(re)(A(p),jt)),onSuggest:ze[10]||(ze[10]=jt=>A(oe)())},null,8,["use-case","available-elements"])])):Ae("",!0),pe.value&&A(d)?(R(),Ts(Ahn,{key:3,model:A(d),"selected-use-case-id":A(p),onSelectUsecase:ze[11]||(ze[11]=jt=>p.value=jt),onUpdateUsecase:A(K),onRemoveUsecase:A(he),onAddRelationship:A(ke),onRemoveRelationship:A(ue)},null,8,["model","selected-use-case-id","onUpdateUsecase","onRemoveUsecase","onAddRelationship","onRemoveRelationship"])):Ae("",!0)]),A(d)?(R(),J("div",g1n,[ze[15]||(ze[15]=E("span",{class:"font-semibold text-gray-600"},"图例:",-1)),(R(!0),J(sn,null,bi(A(x3),(jt,Jt)=>(R(),J("span",{key:Jt,class:"flex items-center gap-1 whitespace-nowrap"},[E("span",{class:"inline-block w-3 h-3 rounded-full border",style:_c({backgroundColor:jt.bgColor,borderColor:jt.color})},null,4),ci(" "+M(jt.label),1)]))),128)),ze[16]||(ze[16]=E("span",{class:"text-gray-400"},"|",-1)),(R(!0),J(sn,null,bi(A(qO),(jt,Jt)=>(R(),J("span",{key:Jt,class:"whitespace-nowrap"},[E("span",{style:_c({color:jt.color})},M(jt.label),5)]))),128))])):Ae("",!0)]))}}),p1n={key:0,class:"fixed inset-0 z-50 flex items-center justify-center"},w1n={class:"relative bg-white rounded-xl shadow-2xl w-full max-w-xl max-h-[90vh] overflow-y-auto"},v1n={class:"sticky top-0 bg-white border-b border-gray-200 px-6 py-4 flex items-center justify-between z-10 rounded-t-xl"},m1n={class:"text-lg font-bold text-gray-800"},y1n={class:"px-6 py-4 space-y-4"},k1n={class:"text-sm text-gray-500 mb-1"},x1n={class:"text-sm font-medium text-gray-800"},$1n={key:0},E1n={class:"text-sm text-gray-500 mb-1"},C1n={class:"text-sm text-gray-600 bg-gray-50 rounded-lg p-3 max-h-32 overflow-y-auto whitespace-pre-wrap"},S1n={class:"border-t border-gray-200 pt-4"},_1n={class:"text-sm font-semibold text-gray-700 mb-3"},j1n={class:"space-y-3"},I1n={class:"block text-xs font-medium text-gray-600 mb-1"},A1n=["value","placeholder"],T1n={class:"block text-xs font-medium text-gray-600 mb-1"},M1n=["value","placeholder"],P1n={class:"block text-xs font-medium text-gray-600 mb-1"},D1n=["value","placeholder"],O1n={class:"block text-xs font-medium text-gray-600 mb-1"},L1n=["value","placeholder"],N1n={class:"block text-xs font-medium text-gray-600 mb-1"},R1n=["value","placeholder"],F1n={class:"block text-xs font-medium text-gray-600 mb-1"},B1n=["value","placeholder"],H1n={class:"block text-xs font-medium text-gray-600 mb-1"},G1n=["value","placeholder"],J1n={class:"sticky bottom-0 bg-white border-t border-gray-200 px-6 py-4 flex justify-end space-x-3 rounded-b-xl"},U1n=["disabled"],z1n=wr({__name:"StartDialog",props:{issue:{},supplement:{},processing:{type:Boolean}},emits:["close","start","update:supplement"],setup(a,{emit:d}){const b=a,m=d;function w($,p){m("update:supplement",{...b.supplement,[$]:p})}return($,p)=>(R(),Ts(wwt,{name:"fade"},{default:zg(()=>[a.issue?(R(),J("div",p1n,[E("div",{class:"absolute inset-0 bg-black/30",onClick:p[0]||(p[0]=j=>m("close"))}),E("div",w1n,[E("div",v1n,[E("h2",m1n,M($.$t("start.title",{iid:a.issue.iid})),1),E("button",{class:"text-gray-400 hover:text-gray-600 text-2xl leading-none",onClick:p[1]||(p[1]=j=>m("close"))},"×")]),E("div",y1n,[E("div",null,[E("div",k1n,M($.$t("start.issueTitle")),1),E("div",x1n,M(a.issue.title),1)]),a.issue.description?(R(),J("div",$1n,[E("div",E1n,M($.$t("start.descPreview")),1),E("div",C1n,M(a.issue.description?.slice(0,500))+M((a.issue.description?.length||0)>500?"...":""),1)])):Ae("",!0),E("div",S1n,[E("h3",_1n,M($.$t("start.supplement")),1),E("div",j1n,[E("div",null,[E("label",I1n,M($.$t("start.requirements")),1),E("textarea",{value:a.supplement.requirements,onInput:p[2]||(p[2]=j=>w("requirements",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.requirementsPlaceholder")},null,40,A1n)]),E("div",null,[E("label",T1n,M($.$t("start.acceptance")),1),E("textarea",{value:a.supplement.acceptanceCriteria,onInput:p[3]||(p[3]=j=>w("acceptanceCriteria",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.acceptancePlaceholder")},null,40,M1n)]),E("div",null,[E("label",P1n,M($.$t("start.scope")),1),E("input",{value:a.supplement.scope,onInput:p[4]||(p[4]=j=>w("scope",j.target.value)),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.scopePlaceholder")},null,40,D1n)]),E("div",null,[E("label",O1n,M($.$t("start.constraints")),1),E("textarea",{value:a.supplement.constraints,onInput:p[5]||(p[5]=j=>w("constraints",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.constraintsPlaceholder")},null,40,L1n)]),E("div",null,[E("label",N1n,M($.$t("start.references")),1),E("textarea",{value:a.supplement.references,onInput:p[6]||(p[6]=j=>w("references",j.target.value)),rows:"1",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.referencesPlaceholder")},null,40,R1n)]),E("div",null,[E("label",F1n,M($.$t("start.freeText")),1),E("textarea",{value:a.supplement.freeText,onInput:p[7]||(p[7]=j=>w("freeText",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.freeTextPlaceholder")},null,40,B1n)]),E("div",null,[E("label",H1n,M($.$t("start.tapdId")),1),E("input",{value:a.supplement.tapdId,onInput:p[8]||(p[8]=j=>w("tapdId",j.target.value)),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:$.$t("start.tapdIdPlaceholder")},null,40,G1n)])])])]),E("div",J1n,[E("button",{class:"px-4 py-2 text-sm text-gray-600 bg-gray-100 rounded-lg hover:bg-gray-200",onClick:p[9]||(p[9]=j=>m("close"))},M($.$t("start.cancel")),1),E("button",{class:"px-4 py-2 text-sm text-white bg-green-500 rounded-lg hover:bg-green-600 font-medium disabled:opacity-50",disabled:a.processing,onClick:p[10]||(p[10]=j=>m("start"))},M(a.processing?$.$t("start.processing"):$.$t("start.submit")),9,U1n)])])])):Ae("",!0)]),_:1}))}}),q1n={key:0,class:"text-base font-semibold text-gray-700 mb-3"},V1n={key:1,class:"flex flex-col gap-1"},K1n={class:"flex items-center gap-3"},W1n={key:0},X1n={key:1,class:"pulse-dot"},Y1n={key:2},Q1n={key:3},Z1n={class:"flex-1 min-w-0"},e0n={class:"flex items-center gap-2"},t0n={key:0,class:"text-xs text-gray-400"},n0n=["onClick"],i0n={key:0,class:"ml-3.5 relative"},r0n={key:2,class:"flex items-center justify-between"},s0n={class:"flex flex-col items-center space-y-1"},o0n={key:0},c0n={key:1,class:"pulse-dot"},u0n={key:2},l0n={key:3},a0n={class:"text-xs text-gray-600"},f0n={key:0,class:"text-xs text-gray-400"},d0n=["onClick"],h0n={key:0,class:"flex-1 relative mx-2"},g0n=["title"],t2t=wr({__name:"PipelineProgress",props:{issue:{},progress:{},verifyFixLoop:{},vertical:{type:Boolean}},emits:["retryFromPhase"],setup(a,{emit:d}){const b=a,m=d,{getPhaseNames:w,phaseLabel:$,phaseNodeClass:p,phaseStatus:j}=r_();function I(P){return b.progress?.phases?.[P]?b.progress.phases[P].status:j(b.issue,P)}function N(P){if(!b.progress?.phases)return"";const U=b.progress.phases[P];if(!U?.startedAt)return"";const V=new Date(U.startedAt),X=U.completedAt?new Date(U.completedAt):new Date;return Awt(X.getTime()-V.getTime())}return(P,U)=>(R(),J("div",null,[a.vertical?Ae("",!0):(R(),J("h3",q1n,M(P.$t("pipeline.title")),1)),a.vertical?(R(),J("div",V1n,[(R(!0),J(sn,null,bi(A(w)(a.issue),(V,X)=>(R(),J(sn,{key:V},[E("div",K1n,[E("div",{class:wn(["w-7 h-7 rounded-full flex items-center justify-center text-xs font-bold flex-shrink-0",A(p)(I(V))])},[I(V)==="completed"?(R(),J("span",W1n,"✓")):I(V)==="in_progress"?(R(),J("span",X1n,"●")):I(V)==="failed"?(R(),J("span",Y1n,"✗")):(R(),J("span",Q1n,M(X+1),1))],2),E("div",Z1n,[E("div",e0n,[E("span",{class:wn(["text-sm font-medium",I(V)==="in_progress"?"text-blue-600":"text-gray-700"])},M(A($)(V)),3),N(V)?(R(),J("span",t0n,M(N(V)),1)):Ae("",!0)])]),E("button",{class:"text-xs text-gray-400 hover:text-blue-600 hover:underline flex-shrink-0",onClick:ee=>m("retryFromPhase",V)},M(P.$t("pipeline.retryFrom")),9,n0n)]),X<A(w)(a.issue).length-1?(R(),J("div",i0n,[E("div",{class:wn(["w-px h-3",I(V)==="completed"?"bg-green-400":"bg-gray-200"])},null,2),a.verifyFixLoop&&a.verifyFixLoop.iteration>0&&V==="build"?(R(),J("span",{key:0,class:wn(["absolute -left-1 top-0 text-xs rounded-full px-1.5 py-0.5 font-medium whitespace-nowrap border",a.verifyFixLoop.active?"bg-amber-100 text-amber-700 border-amber-300":a.verifyFixLoop.lastPassed?"bg-green-100 text-green-700 border-green-300":"bg-red-100 text-red-700 border-red-300"]),style:{"margin-left":"24px"}},"⟲ "+M(a.verifyFixLoop.iteration)+"/"+M(a.verifyFixLoop.maxIterations),3)):Ae("",!0)])):Ae("",!0)],64))),128))])):(R(),J("div",r0n,[(R(!0),J(sn,null,bi(A(w)(a.issue),(V,X)=>(R(),J(sn,{key:V},[E("div",s0n,[E("div",{class:wn(["w-10 h-10 rounded-full flex items-center justify-center text-sm font-bold",A(p)(I(V))])},[I(V)==="completed"?(R(),J("span",o0n,"✓")):I(V)==="in_progress"?(R(),J("span",c0n,"●")):I(V)==="failed"?(R(),J("span",u0n,"✗")):(R(),J("span",l0n,M(X+1),1))],2),E("span",a0n,M(A($)(V)),1),N(V)?(R(),J("span",f0n,M(N(V)),1)):Ae("",!0),E("button",{class:"text-xs text-blue-500 hover:text-blue-700 hover:underline mt-0.5",onClick:ee=>m("retryFromPhase",V)},M(P.$t("pipeline.retryFrom")),9,d0n)]),X<A(w)(a.issue).length-1?(R(),J("div",h0n,[E("div",{class:wn(["h-0.5",I(A(w)(a.issue)[X])==="completed"?"bg-green-400":"bg-gray-200"])},null,2),a.verifyFixLoop&&a.verifyFixLoop.iteration>0&&V==="build"?(R(),J("span",{key:0,class:wn(["absolute -top-3.5 left-1/2 -translate-x-1/2 text-xs rounded-full px-1.5 py-0.5 font-medium whitespace-nowrap border",a.verifyFixLoop.active?"bg-amber-100 text-amber-700 border-amber-300":a.verifyFixLoop.lastPassed?"bg-green-100 text-green-700 border-green-300":"bg-red-100 text-red-700 border-red-300"]),title:P.$t("verify.loopBadgeTooltip",{n:a.verifyFixLoop.iteration,max:a.verifyFixLoop.maxIterations})},"⟲ "+M(a.verifyFixLoop.iteration)+"/"+M(a.verifyFixLoop.maxIterations),11,g0n)):Ae("",!0)])):Ae("",!0)],64))),128))]))]))}}),b0n={class:"bg-yellow-50 border-2 border-yellow-300 rounded-lg p-4"},p0n={class:"text-base font-semibold text-yellow-800 mb-3"},w0n={class:"text-sm text-yellow-700 mb-3"},v0n={key:0,class:"text-yellow-600 font-medium"},m0n={key:0,class:"mb-4"},y0n={class:"flex items-center mb-2"},k0n={class:"text-xs font-semibold text-yellow-700"},x0n={class:"ml-2 px-1.5 py-0.5 text-xs bg-yellow-200 text-yellow-800 rounded-full"},$0n={class:"space-y-2 max-h-48 overflow-y-auto border border-yellow-200 rounded-lg bg-white/60 p-3"},E0n={class:"flex items-baseline space-x-2 mb-0.5"},C0n={class:"text-xs font-semibold text-yellow-700"},S0n={class:"text-xs text-gray-400"},_0n={class:"text-sm text-gray-700 whitespace-pre-wrap break-words"},j0n={class:"flex items-center space-x-3 mb-3"},I0n=["disabled"],A0n=["disabled"],T0n={class:"space-y-2"},M0n={class:"block text-xs font-medium text-yellow-700"},P0n=["placeholder"],D0n=["disabled"],n2t=wr({__name:"ReviewGatePanel",props:cX({reviewSubmitting:{type:Boolean},reviewHistory:{}},{reviewFeedback:{required:!0},reviewFeedbackModifiers:{}}),emits:cX(["approve","reject","skip"],["update:reviewFeedback"]),setup(a,{emit:d}){const b=ime(a,"reviewFeedback"),m=d;function w($){try{return new Date($).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return $}}return($,p)=>(R(),J("div",b0n,[E("h3",p0n,M($.$t("review.title")),1),E("p",w0n,[ci(M($.$t("review.description"))+" ",1),a.reviewHistory.length>0?(R(),J("span",v0n,M($.$t("review.currentRound",{round:a.reviewHistory.length+1})),1)):Ae("",!0)]),a.reviewHistory.length>0?(R(),J("div",m0n,[E("div",y0n,[E("span",k0n,M($.$t("review.history")),1),E("span",x0n,M($.$t("review.roundLabel",{n:a.reviewHistory.length})),1)]),E("div",$0n,[(R(!0),J(sn,null,bi(a.reviewHistory,j=>(R(),J("div",{key:j.round,class:wn(["relative pl-5 pb-2 border-l-2",j.round===a.reviewHistory.length?"border-yellow-500":"border-yellow-200"])},[E("div",{class:wn(["absolute left-[-5px] top-1 w-2 h-2 rounded-full",j.round===a.reviewHistory.length?"bg-yellow-500":"bg-yellow-300"])},null,2),E("div",E0n,[E("span",C0n,M($.$t("review.roundPrefix",{round:j.round})),1),E("span",S0n,M(w(j.timestamp)),1)]),E("p",_0n,M(j.feedback),1)],2))),128))])])):Ae("",!0),E("div",j0n,[E("button",{class:"px-4 py-2 bg-green-500 text-white text-sm rounded-lg hover:bg-green-600 font-medium disabled:opacity-50",disabled:a.reviewSubmitting,onClick:p[0]||(p[0]=j=>m("approve"))},M(a.reviewSubmitting?$.$t("review.submitting"):$.$t("review.approve")),9,I0n),E("button",{class:"px-4 py-2 bg-gray-400 text-white text-sm rounded-lg hover:bg-gray-500 font-medium disabled:opacity-50",disabled:a.reviewSubmitting,onClick:p[1]||(p[1]=j=>m("skip"))},M($.$t("review.skip")),9,A0n)]),E("div",T0n,[E("label",M0n,M($.$t("review.feedbackLabel")),1),Nn(E("textarea",{"onUpdate:modelValue":p[2]||(p[2]=j=>b.value=j),rows:"3",class:"w-full border border-yellow-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-yellow-400",placeholder:$.$t("review.feedbackPlaceholder")},null,8,P0n),[[Ci,b.value]]),E("button",{class:"px-4 py-2 bg-red-500 text-white text-sm rounded-lg hover:bg-red-600 font-medium disabled:opacity-50",disabled:a.reviewSubmitting||!b.value.trim(),onClick:p[3]||(p[3]=j=>m("reject"))},M($.$t("review.reject")),9,D0n)])]))}}),O0n={class:"flex items-center justify-between mb-2"},L0n={class:"text-base font-semibold text-gray-700"},N0n={class:"flex items-center space-x-2"},R0n=["disabled"],F0n={key:0,class:"py-4 text-center text-gray-400 text-sm"},B0n={key:1},H0n={key:0,class:"space-y-2 text-sm"},G0n={key:0},J0n={class:"text-gray-500 font-medium"},U0n={class:"text-gray-700"},z0n={key:1},q0n={class:"text-gray-500 font-medium"},V0n={class:"text-gray-700"},K0n={key:2},W0n={class:"text-gray-500 font-medium"},X0n={class:"text-gray-700"},Y0n={key:3},Q0n={class:"text-gray-500 font-medium"},Z0n={class:"text-gray-700"},egn={key:4},tgn={class:"text-gray-500 font-medium"},ngn={class:"text-gray-700"},ign={key:5},rgn={class:"text-gray-500 font-medium"},sgn={class:"text-gray-700"},ogn={key:6},cgn={class:"text-gray-500 font-medium"},ugn={class:"text-gray-700"},lgn={key:1,class:"py-4 text-center text-gray-400 text-sm"},agn={key:2,class:"space-y-3"},fgn={class:"block text-xs font-medium text-gray-600 mb-1"},dgn=["value"],hgn={class:"block text-xs font-medium text-gray-600 mb-1"},ggn=["value"],bgn={class:"block text-xs font-medium text-gray-600 mb-1"},pgn=["value"],wgn={class:"block text-xs font-medium text-gray-600 mb-1"},vgn=["value"],mgn={class:"block text-xs font-medium text-gray-600 mb-1"},ygn=["value"],kgn={class:"block text-xs font-medium text-gray-600 mb-1"},xgn=["value"],$gn={class:"block text-xs font-medium text-gray-600 mb-1"},Egn=["value","placeholder"],i2t=wr({__name:"SupplementEditor",props:{supplement:{},supplementForm:{},loading:{type:Boolean},editing:{type:Boolean},saving:{type:Boolean},hasData:{type:Boolean}},emits:["edit","save","cancel","update:supplementForm"],setup(a,{emit:d}){const b=a,m=d;function w($,p){m("update:supplementForm",{...b.supplementForm,[$]:p})}return($,p)=>(R(),J("div",null,[E("div",O0n,[E("h3",L0n,M($.$t("supplement.title")),1),E("div",N0n,[a.editing?(R(),J(sn,{key:1},[E("button",{class:"px-2 py-1 text-xs bg-green-500 text-white rounded hover:bg-green-600",disabled:a.saving,onClick:p[1]||(p[1]=j=>m("save"))},M(a.saving?$.$t("supplement.saving"):$.$t("supplement.save")),9,R0n),E("button",{class:"px-2 py-1 text-xs bg-gray-200 text-gray-600 rounded hover:bg-gray-300",onClick:p[2]||(p[2]=j=>m("cancel"))},M($.$t("supplement.cancel")),1)],64)):(R(),J("button",{key:0,class:"px-2 py-1 text-xs bg-blue-100 text-blue-600 rounded hover:bg-blue-200",onClick:p[0]||(p[0]=j=>m("edit"))},M($.$t("supplement.edit")),1))])]),a.loading?(R(),J("div",F0n,M($.$t("supplement.loading")),1)):a.editing?(R(),J("div",agn,[E("div",null,[E("label",fgn,M($.$t("supplement.requirementsLabel")),1),E("textarea",{value:a.supplementForm.requirements,onInput:p[3]||(p[3]=j=>w("requirements",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,dgn)]),E("div",null,[E("label",hgn,M($.$t("supplement.acceptanceLabel")),1),E("textarea",{value:a.supplementForm.acceptanceCriteria,onInput:p[4]||(p[4]=j=>w("acceptanceCriteria",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,ggn)]),E("div",null,[E("label",bgn,M($.$t("supplement.scopeLabel")),1),E("input",{value:a.supplementForm.scope,onInput:p[5]||(p[5]=j=>w("scope",j.target.value)),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,pgn)]),E("div",null,[E("label",wgn,M($.$t("supplement.constraintsLabel")),1),E("textarea",{value:a.supplementForm.constraints,onInput:p[6]||(p[6]=j=>w("constraints",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,vgn)]),E("div",null,[E("label",mgn,M($.$t("supplement.referencesLabel")),1),E("textarea",{value:a.supplementForm.references,onInput:p[7]||(p[7]=j=>w("references",j.target.value)),rows:"1",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,ygn)]),E("div",null,[E("label",kgn,M($.$t("supplement.freeTextLabel")),1),E("textarea",{value:a.supplementForm.freeText,onInput:p[8]||(p[8]=j=>w("freeText",j.target.value)),rows:"2",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,xgn)]),E("div",null,[E("label",$gn,M($.$t("supplement.tapdIdLabel")),1),E("input",{value:a.supplementForm.tapdId,onInput:p[9]||(p[9]=j=>w("tapdId",j.target.value)),type:"text",placeholder:$.$t("supplement.tapdIdPlaceholder"),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-blue-400"},null,40,Egn)])])):(R(),J("div",B0n,[a.hasData?(R(),J("div",H0n,[a.supplement.requirements?(R(),J("div",G0n,[E("span",J0n,M($.$t("supplement.requirements")),1),p[10]||(p[10]=ci()),E("span",U0n,M(a.supplement.requirements),1)])):Ae("",!0),a.supplement.acceptanceCriteria?(R(),J("div",z0n,[E("span",q0n,M($.$t("supplement.acceptance")),1),p[11]||(p[11]=ci()),E("span",V0n,M(a.supplement.acceptanceCriteria),1)])):Ae("",!0),a.supplement.scope?(R(),J("div",K0n,[E("span",W0n,M($.$t("supplement.scope")),1),p[12]||(p[12]=ci()),E("span",X0n,M(a.supplement.scope),1)])):Ae("",!0),a.supplement.constraints?(R(),J("div",Y0n,[E("span",Q0n,M($.$t("supplement.constraints")),1),p[13]||(p[13]=ci()),E("span",Z0n,M(a.supplement.constraints),1)])):Ae("",!0),a.supplement.references?(R(),J("div",egn,[E("span",tgn,M($.$t("supplement.references")),1),p[14]||(p[14]=ci()),E("span",ngn,M(a.supplement.references),1)])):Ae("",!0),a.supplement.freeText?(R(),J("div",ign,[E("span",rgn,M($.$t("supplement.freeText")),1),p[15]||(p[15]=ci()),E("span",sgn,M(a.supplement.freeText),1)])):Ae("",!0),a.supplement.tapdId?(R(),J("div",ogn,[E("span",cgn,M($.$t("supplement.tapdId")),1),p[16]||(p[16]=ci()),E("span",ugn,M(a.supplement.tapdId),1)])):Ae("",!0)])):(R(),J("div",lgn,M($.$t("supplement.empty")),1))]))]))}}),Cgn={class:"flex items-center justify-between mb-2"},Sgn={class:"text-base font-semibold text-gray-700"},_gn={class:"flex items-center space-x-2"},jgn={class:"flex items-center space-x-1 text-xs text-gray-500 cursor-pointer"},Ign={class:"flex items-center space-x-1 text-xs text-gray-500 cursor-pointer"},Agn={key:0,class:"border border-gray-200 rounded-lg p-6 text-center text-gray-400 text-sm"},Tgn={class:"text-xs mt-1"},Mgn={key:0,class:"text-xs mt-1"},Pgn={class:"log-badge"},Dgn={class:"text-gray-400 text-xs mr-1"},Ogn={key:0,class:"text-gray-400 text-xs mr-1"},Lgn={class:"text-gray-700 break-all"},Ngn={key:2,class:"text-xs text-gray-400 mt-1 text-right"},r2t=wr({__name:"AgentLogViewer",props:cX({logs:{},issueState:{},currentPhase:{}},{autoScroll:{type:Boolean,default:!0},autoScrollModifiers:{},debugMode:{type:Boolean,default:!1},debugModeModifiers:{}}),emits:cX(["clear"],["update:autoScroll","update:debugMode"]),setup(a,{emit:d}){const b=d,m=ime(a,"autoScroll"),w=ime(a,"debugMode"),{stateLabel:$,isTerminalState:p}=r_(),{agentLogContainer:j,agentLogLabel:I}=JX();return(N,P)=>(R(),J("div",null,[E("div",Cgn,[E("h3",Sgn,M(N.$t("agentLog.title")),1),E("div",_gn,[E("label",jgn,[Nn(E("input",{type:"checkbox","onUpdate:modelValue":P[0]||(P[0]=U=>m.value=U),class:"rounded"},null,512),[[a9,m.value]]),E("span",null,M(N.$t("agentLog.autoScroll")),1)]),E("label",Ign,[Nn(E("input",{type:"checkbox","onUpdate:modelValue":P[1]||(P[1]=U=>w.value=U),class:"rounded"},null,512),[[a9,w.value]]),P[3]||(P[3]=E("span",null,"Debug",-1))]),E("button",{class:"px-2 py-0.5 text-xs bg-gray-200 text-gray-600 rounded hover:bg-gray-300",onClick:P[2]||(P[2]=U=>b("clear"))},M(N.$t("agentLog.clear")),1)])]),a.logs.length===0?(R(),J("div",Agn,[a.issueState&&A(p)(a.issueState)?(R(),J(sn,{key:0},[P[4]||(P[4]=E("svg",{class:"h-5 w-5 mx-auto mb-2 text-gray-300",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12h6m-3-3v6m-7 4h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),E("div",null,M(N.$t("agentLog.ended")),1),E("div",Tgn,[ci(M(N.$t("agentLog.finalState"))+" ",1),E("span",{class:wn(a.issueState==="completed"?"text-green-500":"text-red-500")},M(A($)(a.issueState,a.currentPhase)),3)])],64)):(R(),J(sn,{key:1},[P[5]||(P[5]=E("svg",{class:"animate-spin h-5 w-5 mx-auto mb-2 text-blue-400",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),E("div",null,M(N.$t("agentLog.waiting")),1),a.issueState?(R(),J("div",Mgn,M(N.$t("agentLog.currentState"))+" "+M(A($)(a.issueState,a.currentPhase)),1)):Ae("",!0)],64))])):(R(),J("div",{key:1,ref_key:"agentLogContainer",ref:j,class:"agent-log border border-gray-200 rounded-lg overflow-y-auto bg-white",style:{"max-height":"20rem"}},[(R(!0),J(sn,null,bi(a.logs,(U,V)=>(R(),J("div",{key:V,class:wn(["agent-log-item","log-"+U.type])},[E("span",Pgn,M(A(I)(U.type)),1),E("span",Dgn,M(A(Twt)(U.timestamp)),1),U.phase?(R(),J("span",Ogn,"["+M(U.phase)+"]",1)):Ae("",!0),E("span",Lgn,M(U.summary),1)],2))),128))],512)),a.logs.length>0?(R(),J("div",Ngn,M(N.$t("agentLog.count",{count:a.logs.length})),1)):Ae("",!0)]))}}),Rgn={class:"flex items-center justify-between mb-2"},Fgn={class:"text-base font-semibold text-gray-700"},Bgn={class:"flex items-center space-x-2"},Hgn=["disabled"],Ggn=["title"],Jgn={class:"flex space-x-1 mb-3 border-b border-gray-200"},Ugn=["onClick"],zgn={key:0,class:"py-8 text-center text-gray-400"},qgn={key:1,class:"py-8 text-center text-gray-400"},Vgn={key:2},Kgn=["placeholder"],Wgn=["innerHTML"],Xgn={key:4,class:"py-8 text-center text-gray-400"},Ygn={key:0,class:"fullscreen-doc-overlay"},Qgn={class:"fullscreen-doc-container"},Zgn={class:"flex items-center justify-between px-6 py-4 border-b border-gray-200 shrink-0"},ebn={class:"flex items-center space-x-3"},tbn={class:"text-lg font-bold text-gray-800"},nbn={class:"text-sm text-gray-400"},ibn={class:"flex items-center space-x-2"},rbn=["disabled"],sbn=["title"],obn={class:"flex space-x-1 px-6 pt-3 border-b border-gray-200 shrink-0"},cbn=["onClick"],ubn={class:"flex-1 overflow-y-auto min-h-0"},lbn={key:0,class:"flex items-center justify-center h-full text-gray-400"},abn={class:"text-base"},fbn={key:1,class:"flex items-center justify-center h-full text-gray-400"},dbn={class:"text-base"},hbn={key:2,class:"h-full p-4"},gbn=["placeholder"],bbn=["innerHTML"],pbn={key:4,class:"flex items-center justify-center h-full text-gray-400"},wbn={class:"text-base"},s2t=wr({__name:"PlanDocViewer",props:{issueIid:{},planDocs:{},isEditableDoc:{type:Function},detailVersion:{}},setup(a,{expose:d}){const b=a;Jr(()=>b.detailVersion,()=>{m.value&&ee(m.value)});const m=Ye(null),w=Ye(""),$=Ye(!1),p=Ye(""),j=Ye(!1),I=Ye(""),N=Ye(!1),P=Ye(!1),U=Ye(!1),{t:V}=Kg(),X={"review-feedback.md":()=>V("planDoc.noReviewFeedback"),"02-verify-report.md":()=>V("planDoc.verifyNotGenerated"),"04-verify-report.md":()=>V("planDoc.verifyNotGenerated")};async function ee(ye){m.value=ye,j.value=!1,I.value="",$.value=!0,w.value="",p.value="",P.value=!1;try{w.value=await Rgt(b.issueIid,ye,"html")}catch(pe){const be=pe.message;be.includes("not found")&&ye in X?(P.value=!0,p.value=X[ye]()):p.value=be}finally{$.value=!1}}async function K(){if(m.value)try{I.value=await Rgt(b.issueIid,m.value,"raw"),j.value=!0}catch(ye){alert(V("planDoc.fetchFailed")+" "+ye.message)}}function he(){j.value=!1,I.value="",m.value&&ee(m.value)}async function ke(){if(m.value){N.value=!0;try{await TKt(b.issueIid,m.value,I.value),j.value=!1,I.value="",await ee(m.value)}catch(ye){alert(V("planDoc.saveFailed")+" "+ye.message)}finally{N.value=!1}}}function ue(){U.value=!0,document.body.style.overflow="hidden",!m.value&&b.planDocs.length>0&&ee(b.planDocs[0].file)}function oe(){U.value=!1,document.body.style.overflow=""}function re(ye){ye.key==="Escape"&&U.value&&oe()}return gl(()=>{document.addEventListener("keydown",re),b.planDocs.length>0&&ee(b.planDocs[0].file)}),dp(()=>{document.removeEventListener("keydown",re),document.body.style.overflow=""}),d({activeDoc:m}),(ye,pe)=>(R(),J("div",null,[E("div",Rgn,[E("h3",Fgn,M(ye.$t("planDoc.title")),1),E("div",Bgn,[m.value&&a.isEditableDoc(m.value)&&!U.value?(R(),J(sn,{key:0},[j.value?(R(),J(sn,{key:1},[E("button",{class:"px-2 py-1 text-xs bg-green-500 text-white rounded hover:bg-green-600",disabled:N.value,onClick:pe[1]||(pe[1]=be=>ke())},M(N.value?ye.$t("planDoc.saving"):ye.$t("planDoc.save")),9,Hgn),E("button",{class:"px-2 py-1 text-xs bg-gray-200 text-gray-600 rounded hover:bg-gray-300",onClick:pe[2]||(pe[2]=be=>he())},M(ye.$t("planDoc.cancel")),1)],64)):(R(),J("button",{key:0,class:"px-2 py-1 text-xs bg-blue-100 text-blue-600 rounded hover:bg-blue-200",onClick:pe[0]||(pe[0]=be=>K())},M(ye.$t("planDoc.edit")),1))],64)):Ae("",!0),E("button",{class:"px-2 py-1 text-xs bg-gray-100 text-gray-600 rounded hover:bg-gray-200 inline-flex items-center space-x-1",title:ye.$t("planDoc.fullscreen"),onClick:pe[3]||(pe[3]=be=>ue())},[pe[10]||(pe[10]=E("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor","stroke-width":"2",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"})],-1)),E("span",null,M(ye.$t("planDoc.expand")),1)],8,Ggn)])]),E("div",Jgn,[(R(!0),J(sn,null,bi(a.planDocs,be=>(R(),J("button",{key:be.file,class:wn(["px-3 py-2 text-sm font-medium border-b-2 transition-colors",m.value===be.file?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se=>ee(be.file)},M(be.label),11,Ugn))),128))]),$.value?(R(),J("div",zgn,M(ye.$t("planDoc.loading")),1)):p.value?(R(),J("div",qgn,M(p.value),1)):j.value&&!U.value?(R(),J("div",Vgn,[Nn(E("textarea",{"onUpdate:modelValue":pe[4]||(pe[4]=be=>I.value=be),class:"w-full h-96 border border-gray-300 rounded-lg p-3 text-sm font-mono text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:ye.$t("planDoc.editPlaceholder")},null,8,Kgn),[[Ci,I.value]])])):w.value&&!U.value?(R(),J("div",{key:3,class:"plan-doc text-sm text-gray-700 max-h-96 overflow-y-auto border border-gray-100 rounded-lg p-4",innerHTML:w.value},null,8,Wgn)):U.value?Ae("",!0):(R(),J("div",Xgn,M(ye.$t("planDoc.selectTab")),1)),(R(),Ts(Lme,{to:"body"},[xr(wwt,{name:"fullscreen-fade"},{default:zg(()=>[U.value?(R(),J("div",Ygn,[E("div",Qgn,[E("div",Zgn,[E("div",ebn,[E("h2",tbn,M(ye.$t("planDoc.title")),1),E("span",nbn,"Issue #"+M(a.issueIid),1)]),E("div",ibn,[m.value&&a.isEditableDoc(m.value)?(R(),J(sn,{key:0},[j.value?(R(),J(sn,{key:1},[E("button",{class:"px-3 py-1.5 text-sm bg-green-500 text-white rounded-lg hover:bg-green-600 transition-colors",disabled:N.value,onClick:pe[6]||(pe[6]=be=>ke())},M(N.value?ye.$t("planDoc.saving"):ye.$t("planDoc.save")),9,rbn),E("button",{class:"px-3 py-1.5 text-sm bg-gray-200 text-gray-600 rounded-lg hover:bg-gray-300 transition-colors",onClick:pe[7]||(pe[7]=be=>he())},M(ye.$t("planDoc.cancel")),1)],64)):(R(),J("button",{key:0,class:"px-3 py-1.5 text-sm bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors",onClick:pe[5]||(pe[5]=be=>K())},M(ye.$t("planDoc.edit")),1))],64)):Ae("",!0),E("button",{class:"ml-2 p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-100 rounded-lg transition-colors",title:ye.$t("planDoc.closeFullscreen"),onClick:pe[8]||(pe[8]=be=>oe())},[...pe[11]||(pe[11]=[E("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor","stroke-width":"2",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],8,sbn)])]),E("div",obn,[(R(!0),J(sn,null,bi(a.planDocs,be=>(R(),J("button",{key:"fs-"+be.file,class:wn(["px-4 py-2.5 text-sm font-medium border-b-2 transition-colors",m.value===be.file?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se=>ee(be.file)},M(be.label),11,cbn))),128))]),E("div",ubn,[$.value?(R(),J("div",lbn,[E("span",abn,M(ye.$t("planDoc.loading")),1)])):p.value?(R(),J("div",fbn,[E("span",dbn,M(p.value),1)])):j.value?(R(),J("div",hbn,[Nn(E("textarea",{"onUpdate:modelValue":pe[9]||(pe[9]=be=>I.value=be),class:"w-full h-full border border-gray-300 rounded-lg p-4 text-sm font-mono text-gray-700 resize-none focus:outline-none focus:ring-2 focus:ring-blue-400",placeholder:ye.$t("planDoc.editPlaceholder")},null,8,gbn),[[Ci,I.value]])])):w.value?(R(),J("div",{key:3,class:"plan-doc text-sm text-gray-700 p-6",innerHTML:w.value},null,8,bbn)):(R(),J("div",pbn,[E("span",wbn,M(ye.$t("planDoc.selectTab")),1)]))])])])):Ae("",!0)]),_:1})]))]))}}),vbn={class:"bg-white rounded-xl shadow-2xl w-[90vw] max-w-5xl max-h-[90vh] flex flex-col overflow-hidden"},mbn={class:"flex items-center justify-between px-6 py-4 border-b border-gray-200 bg-gray-50"},ybn={class:"text-lg font-bold text-gray-800"},kbn={key:0,class:"text-sm text-gray-500 mt-0.5"},xbn={class:"text-xs text-gray-400 ml-2"},$bn={key:0,class:"flex-1 flex items-center justify-center py-12"},Ebn={class:"text-sm text-gray-400"},Cbn={key:1,class:"flex-1 flex items-center justify-center py-12"},Sbn={class:"text-sm text-red-500"},_bn={class:"flex border-b border-gray-200 px-6 bg-white"},jbn=["onClick"],Ibn={class:"flex-1 overflow-y-auto px-6 py-4"},Abn={key:0,class:"space-y-4"},Tbn={class:"grid grid-cols-4 gap-3"},Mbn={class:"bg-blue-50 rounded-lg p-4 text-center"},Pbn={class:"text-2xl font-bold text-blue-600"},Dbn={class:"text-xs text-blue-500 mt-1"},Obn={class:"bg-amber-50 rounded-lg p-4 text-center"},Lbn={class:"text-2xl font-bold text-amber-600"},Nbn={class:"text-xs text-amber-500 mt-1"},Rbn={class:"bg-purple-50 rounded-lg p-4 text-center"},Fbn={class:"text-2xl font-bold text-purple-600"},Bbn={class:"text-xs text-purple-500 mt-1"},Hbn={class:"bg-green-50 rounded-lg p-4 text-center"},Gbn={class:"text-2xl font-bold text-green-600"},Jbn={class:"text-xs text-green-500 mt-1"},Ubn={class:"bg-gray-50 rounded-lg p-4"},zbn={class:"flex items-center justify-between mb-2"},qbn={class:"text-sm font-medium text-gray-700"},Vbn={class:"text-sm text-gray-500"},Kbn={class:"w-full bg-gray-200 rounded-full h-2.5"},Wbn={class:"text-sm font-semibold text-gray-700 mb-2"},Xbn={class:"space-y-1.5"},Ybn=["onClick"],Qbn={class:"text-sm text-gray-700 flex-1 truncate"},Zbn={key:0,class:"text-xs text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},epn={class:"text-xs text-gray-400"},tpn={key:1,class:"space-y-3"},npn={key:0,class:"text-sm text-gray-400 text-center py-8"},ipn=["onClick"],rpn={class:"text-sm font-medium text-gray-800 flex-1"},spn={key:0,class:"text-xs text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},opn={class:"text-xs text-gray-400 font-mono"},cpn={key:0,class:"px-4 py-3 space-y-3 border-t border-gray-100"},upn={key:0},lpn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-1"},apn={class:"list-decimal list-inside text-sm text-gray-600 space-y-0.5 pl-1"},fpn={key:1},dpn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-1"},hpn={class:"list-decimal list-inside text-sm text-gray-600 space-y-0.5 pl-1"},gpn={key:2},bpn={class:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-1"},ppn={class:"list-decimal list-inside text-sm text-gray-600 space-y-0.5 pl-1"},wpn={class:"text-xs text-gray-400 pt-1 border-t border-gray-100 font-mono"},vpn={key:2,class:"space-y-4"},mpn={class:"text-sm font-semibold text-gray-700 mb-2"},ypn={class:"text-xs font-normal text-gray-400 ml-1"},kpn={key:0,class:"grid grid-cols-2 gap-1.5"},xpn={class:"flex-shrink-0"},$pn={class:"font-mono text-xs flex-shrink-0"},Epn={class:"truncate"},Cpn={key:1,class:"text-sm text-gray-400 py-2"},Spn={class:"text-sm font-semibold text-gray-700 mb-2"},_pn={class:"text-xs font-normal text-gray-400 ml-1"},jpn={key:0,class:"grid grid-cols-2 gap-1.5"},Ipn={class:"flex-shrink-0"},Apn={class:"truncate"},Tpn={key:1,class:"text-sm text-gray-400 py-2"},Mpn=wr({__name:"ScenarioViewer",props:{url:{}},emits:["close"],setup(a,{emit:d}){const b=a,m=d,{t:w}=Kg(),$=Ye(null),p=Ye(!0),j=Ye(""),I=Ye("overview"),N=Ye(null),P=En(()=>{if(!$.value)return[];const ue=$.value.test_scenarios;return[...ue.main_path_scenarios.map(oe=>({...oe,_class:"main"})),...ue.verify_behavior_scenarios.map(oe=>({...oe,_class:"behavior"})),...ue.verify_rule_scenarios.map(oe=>({...oe,_class:"rule"}))]}),U=En(()=>{if(!$.value)return[];const ue=$.value.test_scenarios;switch(I.value){case"main":return ue.main_path_scenarios;case"behavior":return ue.verify_behavior_scenarios;case"rule":return ue.verify_rule_scenarios;default:return[]}}),V=En(()=>$.value?.result_report?Math.round($.value.result_report.rule_column_covered_ratio*100):0),X=En(()=>{if(!$.value?.coverage_report?.node_info_list)return{covered:0,total:0};const ue=$.value.coverage_report.node_info_list;return{covered:ue.filter(oe=>oe.isCovered).length,total:ue.length}}),ee=En(()=>{if(!$.value?.coverage_report?.rule_column_info_list)return{covered:0,total:0};const ue=$.value.coverage_report.rule_column_info_list;return{covered:ue.filter(oe=>oe.isCovered).length,total:ue.length}});function K(ue){N.value=N.value===ue?null:ue}function he(ue){return{main:"主路径",behavior:"验证行为",rule:"验证规则"}[ue]||ue}function ke(ue){return{main:"bg-blue-100 text-blue-700",behavior:"bg-amber-100 text-amber-700",rule:"bg-purple-100 text-purple-700"}[ue]||"bg-gray-100 text-gray-700"}return gl(async()=>{try{const ue=await fetch(b.url);if(!ue.ok)throw new Error(`HTTP ${ue.status}`);$.value=await ue.json()}catch(ue){j.value=ue.message}finally{p.value=!1}}),(ue,oe)=>(R(),Ts(Lme,{to:"body"},[E("div",{class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/60",onClick:oe[1]||(oe[1]=Ah(re=>m("close"),["self"]))},[E("div",vbn,[E("div",mbn,[E("div",null,[E("h2",ybn,M(A(w)("detail.scenarioViewer")),1),$.value?.result_report?.uc_fullname?(R(),J("p",kbn,[ci(M($.value.result_report.uc_fullname)+" ",1),E("span",xbn,"v"+M($.value.result_report.uc_version),1)])):Ae("",!0)]),E("button",{class:"text-gray-400 hover:text-gray-600 text-2xl leading-none",onClick:oe[0]||(oe[0]=re=>m("close"))},"×")]),p.value?(R(),J("div",$bn,[E("span",Ebn,M(A(w)("detail.loading")),1)])):j.value?(R(),J("div",Cbn,[E("span",Sbn,M(j.value),1)])):$.value?(R(),J(sn,{key:2},[E("div",_bn,[(R(!0),J(sn,null,bi([{key:"overview",label:A(w)("detail.scenarioOverview")},{key:"main",label:`${A(w)("detail.scenarioMainPath")} (${$.value.test_scenarios.main_path_scenarios.length})`},{key:"behavior",label:`${A(w)("detail.scenarioVerifyBehavior")} (${$.value.test_scenarios.verify_behavior_scenarios.length})`},{key:"rule",label:`${A(w)("detail.scenarioVerifyRule")} (${$.value.test_scenarios.verify_rule_scenarios.length})`},{key:"coverage",label:A(w)("detail.scenarioCoverage")}],re=>(R(),J("button",{key:re.key,class:wn(["px-4 py-2.5 text-sm font-medium border-b-2 transition-colors -mb-px",I.value===re.key?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300"]),onClick:ye=>I.value=re.key},M(re.label),11,jbn))),128))]),E("div",Ibn,[I.value==="overview"?(R(),J("div",Abn,[E("div",Tbn,[E("div",Mbn,[E("div",Pbn,M($.value.test_scenarios.main_path_scenarios.length),1),E("div",Dbn,M(A(w)("detail.scenarioMainPath")),1)]),E("div",Obn,[E("div",Lbn,M($.value.test_scenarios.verify_behavior_scenarios.length),1),E("div",Nbn,M(A(w)("detail.scenarioVerifyBehavior")),1)]),E("div",Rbn,[E("div",Fbn,M($.value.test_scenarios.verify_rule_scenarios.length),1),E("div",Bbn,M(A(w)("detail.scenarioVerifyRule")),1)]),E("div",Hbn,[E("div",Gbn,M(V.value)+"%",1),E("div",Jbn,M(A(w)("detail.scenarioRuleCoverage")),1)])]),E("div",Ubn,[E("div",zbn,[E("span",qbn,M(A(w)("detail.scenarioRuleCoverage")),1),E("span",Vbn,M($.value.result_report.scenario_covered_rule_column_num)+" / "+M($.value.result_report.total_rule_column_num),1)]),E("div",Kbn,[E("div",{class:"bg-green-500 h-2.5 rounded-full transition-all",style:_c({width:V.value+"%"})},null,4)])]),E("div",null,[E("h3",Wbn,M(A(w)("detail.scenarioAllList"))+" ("+M(P.value.length)+")",1),E("div",Xbn,[(R(!0),J(sn,null,bi(P.value,(re,ye)=>(R(),J("div",{key:re.scenario_scene_id||ye,class:"flex items-center gap-2 px-3 py-2 bg-white border border-gray-200 rounded-lg hover:border-gray-300 cursor-pointer",onClick:pe=>{I.value=re._class,N.value=re.scenario_scene_id}},[E("span",{class:wn(["text-xs px-1.5 py-0.5 rounded font-medium",ke(re._class)])},M(he(re._class)),3),E("span",Qbn,M(re.scenario_name),1),re.is_inherit?(R(),J("span",Zbn,M(A(w)("detail.scenarioInherited")),1)):Ae("",!0),E("span",epn,M(re.key_node_num),1)],8,Ybn))),128))])])])):I.value==="main"||I.value==="behavior"||I.value==="rule"?(R(),J("div",tpn,[U.value.length===0?(R(),J("div",npn,M(A(w)("detail.scenarioEmpty")),1)):Ae("",!0),(R(!0),J(sn,null,bi(U.value,(re,ye)=>(R(),J("div",{key:re.scenario_scene_id||ye,class:"border border-gray-200 rounded-lg overflow-hidden"},[E("div",{class:"flex items-center gap-2 px-4 py-3 bg-gray-50 cursor-pointer hover:bg-gray-100 transition-colors",onClick:pe=>K(re.scenario_scene_id||String(ye))},[(R(),J("svg",{class:wn(["w-4 h-4 text-gray-400 transition-transform flex-shrink-0",{"rotate-90":N.value===(re.scenario_scene_id||String(ye))}]),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[...oe[2]||(oe[2]=[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)),E("span",rpn,M(re.scenario_name),1),re.is_inherit?(R(),J("span",spn,M(A(w)("detail.scenarioInherited")),1)):Ae("",!0),E("span",opn,M(re.key_node_num),1)],8,ipn),N.value===(re.scenario_scene_id||String(ye))?(R(),J("div",cpn,[re.precondition_list?.length?(R(),J("div",upn,[E("h5",lpn,M(A(w)("detail.scenarioPreconditions")),1),E("ol",apn,[(R(!0),J(sn,null,bi(re.precondition_list,(pe,be)=>(R(),J("li",{key:be},M(pe),1))),128))])])):Ae("",!0),re.operating_procedure_list?.length?(R(),J("div",fpn,[E("h5",dpn,M(A(w)("detail.scenarioSteps")),1),E("ol",hpn,[(R(!0),J(sn,null,bi(re.operating_procedure_list,(pe,be)=>(R(),J("li",{key:be},M(pe),1))),128))])])):Ae("",!0),re.predicated_result_list?.length?(R(),J("div",gpn,[E("h5",bpn,M(A(w)("detail.scenarioExpectedResults")),1),E("ol",ppn,[(R(!0),J(sn,null,bi(re.predicated_result_list,(pe,be)=>(R(),J("li",{key:be},M(pe),1))),128))])])):Ae("",!0),E("div",wpn," ID: "+M(re.scenario_scene_id),1)])):Ae("",!0)]))),128))])):I.value==="coverage"?(R(),J("div",vpn,[E("div",null,[E("h3",mpn,[ci(M(A(w)("detail.scenarioNodeCoverage"))+" ",1),E("span",ypn,"("+M(X.value.covered)+"/"+M(X.value.total)+")",1)]),$.value.coverage_report?.node_info_list?.length?(R(),J("div",kpn,[(R(!0),J(sn,null,bi($.value.coverage_report.node_info_list,(re,ye)=>(R(),J("div",{key:ye,class:wn(["flex items-center gap-2 px-3 py-1.5 rounded text-sm",re.isCovered?"bg-green-50 text-green-700":"bg-red-50 text-red-600"])},[E("span",xpn,M(re.isCovered?"✓":"✗"),1),E("span",$pn,M(re.nodeNum),1),E("span",Epn,M(re.nodeDesc),1)],2))),128))])):(R(),J("div",Cpn,M(A(w)("detail.scenarioEmpty")),1))]),E("div",null,[E("h3",Spn,[ci(M(A(w)("detail.scenarioRuleColumnCoverage"))+" ",1),E("span",_pn,"("+M(ee.value.covered)+"/"+M(ee.value.total)+")",1)]),$.value.coverage_report?.rule_column_info_list?.length?(R(),J("div",jpn,[(R(!0),J(sn,null,bi($.value.coverage_report.rule_column_info_list,(re,ye)=>(R(),J("div",{key:ye,class:wn(["flex items-center gap-2 px-3 py-1.5 rounded text-sm",re.isCovered?"bg-green-50 text-green-700":"bg-red-50 text-red-600"])},[E("span",Ipn,M(re.isCovered?"✓":"✗"),1),E("span",Apn,M(re.ruleColumnName),1)],2))),128))])):(R(),J("div",Tpn,M(A(w)("detail.scenarioEmpty")),1))])])):Ae("",!0)])],64)):Ae("",!0)])])]))}}),Ppn={class:"text-base font-semibold text-gray-700 mb-3 flex items-center gap-2"},Dpn={key:0,class:"text-xs font-normal text-gray-400"},Opn={key:0,class:"text-sm text-gray-400 py-4 text-center"},Lpn={key:1,class:"bg-gray-50 border border-gray-200 rounded-lg px-4 py-6 text-center"},Npn={class:"text-sm text-gray-500"},Rpn={class:"text-xs text-gray-400 mt-1"},Fpn={key:2,class:"bg-gray-50 border border-gray-200 rounded-lg px-4 py-6 text-center"},Bpn={class:"text-sm text-gray-500"},Hpn={class:"text-xs text-gray-400 mt-1"},Gpn={key:0,class:"mb-4"},Jpn={class:"text-sm font-medium text-gray-600 mb-2"},Upn={class:"text-xs font-normal text-gray-400 ml-1"},zpn={class:"space-y-1"},qpn=["onClick"],Vpn={class:"text-base flex-shrink-0"},Kpn={class:"text-sm text-gray-700 truncate flex-1 group-hover:text-blue-600"},Wpn={key:0,class:"text-xs text-indigo-600 bg-indigo-100 px-1.5 py-0.5 rounded flex-shrink-0"},Xpn={class:"text-xs text-gray-400 flex-shrink-0"},Ypn={key:0,class:"mt-3 border border-gray-300 rounded-lg overflow-hidden bg-white shadow-sm"},Qpn={class:"flex items-center justify-between px-4 py-2 bg-gray-100 border-b border-gray-200"},Zpn={class:"flex items-center gap-2 min-w-0"},ewn={class:"text-base flex-shrink-0"},twn={class:"text-sm font-medium text-gray-700 truncate"},nwn={class:"text-xs text-gray-400 flex-shrink-0"},iwn={class:"flex items-center gap-1 flex-shrink-0"},rwn=["href"],swn={key:0,class:"px-4 py-8 text-center text-sm text-gray-400"},own={key:1,class:"relative"},cwn={class:"px-4 py-3 text-sm leading-relaxed overflow-auto max-h-[60vh] bg-gray-50 m-0"},uwn={key:1,class:"mb-4"},lwn={class:"text-sm font-medium text-gray-600 mb-2"},awn={class:"text-xs font-normal text-gray-400 ml-1"},fwn={class:"space-y-1"},dwn=["onClick"],hwn={class:"text-base flex-shrink-0"},gwn={class:"text-sm text-gray-700 truncate flex-1 group-hover:text-blue-600"},bwn={class:"text-xs text-gray-400 flex-shrink-0"},pwn={key:0,class:"mt-3 border border-gray-300 rounded-lg overflow-hidden bg-white shadow-sm"},wwn={class:"flex items-center justify-between px-4 py-2 bg-gray-100 border-b border-gray-200"},vwn={class:"flex items-center gap-2 min-w-0"},mwn={class:"text-base flex-shrink-0"},ywn={class:"text-sm font-medium text-gray-700 truncate"},kwn={class:"text-xs text-gray-400 flex-shrink-0"},xwn={class:"flex items-center gap-1 flex-shrink-0"},$wn=["href"],Ewn={key:0,class:"px-4 py-8 text-center text-sm text-gray-400"},Cwn={key:1,class:"relative"},Swn={class:"px-4 py-3 text-sm leading-relaxed overflow-auto max-h-[60vh] bg-gray-50 m-0"},_wn={class:"mb-3"},jwn=["value"],Iwn={key:0,class:"text-sm text-gray-400 py-4 text-center"},Awn={key:1,class:"mb-4"},Twn={class:"text-sm font-medium text-gray-600 mb-2"},Mwn={class:"grid grid-cols-3 gap-2"},Pwn=["onClick"],Dwn=["src","alt"],Own={class:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors flex items-end"},Lwn={class:"w-full px-2 py-1.5 bg-gradient-to-t from-black/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity"},Nwn={class:"text-xs text-white truncate"},Rwn={class:"text-[10px] text-white/70"},Fwn={key:2,class:"mb-4"},Bwn={class:"text-sm font-medium text-gray-600 mb-2"},Hwn={class:"space-y-3"},Gwn=["src"],Jwn={class:"px-3 py-2 bg-gray-50 flex items-center justify-between text-xs text-gray-500"},Uwn={key:3,class:"mb-4"},zwn={class:"text-sm font-medium text-gray-600 mb-2"},qwn={class:"space-y-1"},Vwn=["onClick"],Kwn={class:"text-base flex-shrink-0"},Wwn={class:"text-sm text-gray-700 truncate flex-1 group-hover:text-blue-600"},Xwn={class:"text-xs text-gray-400 flex-shrink-0"},Ywn={key:0,class:"mt-3 border border-gray-300 rounded-lg overflow-hidden bg-white shadow-sm"},Qwn={class:"flex items-center justify-between px-4 py-2 bg-gray-100 border-b border-gray-200"},Zwn={class:"flex items-center gap-2 min-w-0"},evn={class:"text-base flex-shrink-0"},tvn={class:"text-sm font-medium text-gray-700 truncate"},nvn={class:"text-xs text-gray-400 flex-shrink-0"},ivn={class:"flex items-center gap-1 flex-shrink-0"},rvn=["href"],svn={key:0,class:"px-4 py-8 text-center text-sm text-gray-400"},ovn={key:1,class:"relative"},cvn={class:"px-4 py-3 text-sm leading-relaxed overflow-auto max-h-[60vh] bg-gray-50 m-0"},uvn={key:4,class:"text-sm text-gray-400 text-center py-4"},lvn=["src"],avn=["src"],o2t=wr({__name:"E2eArtifactsViewer",props:{issueIid:{}},setup(a){const d=a,{t:b}=Kg(),m=Ye(!1),w=Ye([]),$=Ye([]),p=Ye(null),j=Ye([]),I=Ye(!1),N=Ye(!1),P=Ye(null),U=Ye("image"),V=En(()=>j.value.filter(xe=>xe.type==="image")),X=En(()=>j.value.filter(xe=>xe.type==="video")),ee=En(()=>j.value.filter(xe=>xe.type==="document")),K={".md":"📝",".py":"🐍",".json":"📋",".jsonl":"📋",".log":"📄",".html":"🌐",".har":"🔍",".txt":"📄"};function he(xe){const Pe=xe.slice(xe.lastIndexOf(".")).toLowerCase();return K[Pe]||"📄"}const ke=Ye(null),ue=Ye(null);function oe(xe){return xe.name.endsWith(".py")}const re=En(()=>$.value.filter(xe=>!oe(xe))),ye=En(()=>$.value.filter(xe=>oe(xe)));function pe(xe){const Pe=xe.slice(xe.lastIndexOf(".")).toLowerCase();return{".py":"python",".js":"javascript",".ts":"typescript",".json":"json",".jsonl":"json",".md":"markdown",".html":"html",".log":"log",".txt":"plaintext",".har":"json",".yaml":"yaml",".yml":"yaml"}[Pe]||"plaintext"}function be(xe){const Pe=Hgt(xe.relativePath,d.issueIid);xe.name==="result.json"?ke.value=Pe:le(xe,Pe)}function se(xe){const Pe=Hgt(xe.relativePath,d.issueIid);le(xe,Pe)}async function le(xe,Pe){ue.value={file:xe,url:Pe,content:"",loading:!0};try{const Je=await fetch(Pe);if(!Je.ok)throw new Error(`HTTP ${Je.status}`);ue.value={file:xe,url:Pe,content:await Je.text(),loading:!1}}catch(Je){ue.value={file:xe,url:Pe,content:`Failed to load: ${Je.message}`,loading:!1}}}function Ce(xe){const Pe=_W(p.value,xe.relativePath,d.issueIid);le(xe,Pe)}function Se(){ue.value=null}const te=En(()=>w.value.length>0||$.value.length>0);async function q(){I.value=!0;try{const xe=await oWt(d.issueIid);m.value=xe.configured,w.value=xe.runs,$.value=xe.scenarios??[],xe.runs.length>0&&!p.value&&(p.value=xe.runs[0].runId)}catch(xe){console.error("Failed to load E2E runs",xe)}finally{I.value=!1}}async function He(xe){N.value=!0,j.value=[];try{const Pe=await cWt(xe,d.issueIid);j.value=Pe.files}catch(Pe){console.error("Failed to load E2E run files",Pe)}finally{N.value=!1}}Jr(p,xe=>{xe&&He(xe)}),Jr(()=>d.issueIid,()=>{p.value=null,j.value=[],$.value=[],ue.value=null,q()});function gt(xe){P.value=_W(p.value,xe.relativePath,d.issueIid),U.value=xe.type}function ze(){P.value=null}function jt(xe){return xe<1024?`${xe} B`:xe<1024*1024?`${(xe/1024).toFixed(1)} KB`:`${(xe/(1024*1024)).toFixed(1)} MB`}function Jt(xe){const Pe=xe.match(/^(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})(\d{2})/);return Pe?`${Pe[1]}-${Pe[2]}-${Pe[3]} ${Pe[4]}:${Pe[5]}:${Pe[6]}`:xe}return gl(q),(xe,Pe)=>(R(),J("div",null,[E("h3",Ppn,[ci(M(A(b)("detail.e2eArtifacts"))+" ",1),w.value.length>0?(R(),J("span",Dpn,"("+M(w.value.length)+" "+M(A(b)("detail.e2eRuns"))+")",1)):Ae("",!0)]),I.value?(R(),J("div",Opn,M(A(b)("detail.loading")),1)):m.value?te.value?(R(),J(sn,{key:3},[re.value.length>0?(R(),J("div",Gpn,[E("h4",Jpn,[ci(M(A(b)("detail.e2eScenariosLabel"))+" ",1),E("span",Upn,"("+M(re.value.length)+")",1)]),E("div",zpn,[(R(!0),J(sn,null,bi(re.value,Je=>(R(),J("div",{key:"sc-"+Je.relativePath,class:wn(["flex items-center gap-2 px-3 py-2 border rounded-lg cursor-pointer transition-colors group",Je.name==="result.json"?"border-indigo-200 bg-indigo-50/50 hover:border-indigo-400 hover:bg-indigo-50":ue.value?.file===Je?"border-blue-400 bg-blue-50":"border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50"]),onClick:Bt=>be(Je)},[E("span",Vpn,M(he(Je.name)),1),E("span",Kpn,M(Je.name),1),Je.name==="result.json"?(R(),J("span",Wpn,M(A(b)("detail.scenarioViewer")),1)):Ae("",!0),E("span",Xpn,M(jt(Je.size)),1)],10,qpn))),128))]),ue.value&&re.value.some(Je=>Je===ue.value.file)?(R(),J("div",Ypn,[E("div",Qpn,[E("div",Zpn,[E("span",ewn,M(he(ue.value.file.name)),1),E("span",twn,M(ue.value.file.name),1),E("span",nwn,M(jt(ue.value.file.size)),1)]),E("div",iwn,[E("a",{href:ue.value.url,target:"_blank",class:"p-1 text-gray-400 hover:text-blue-500 rounded",title:"Open in new tab"},[...Pe[4]||(Pe[4]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],8,rwn),E("button",{class:"p-1 text-gray-400 hover:text-gray-600 rounded",onClick:Se},[...Pe[5]||(Pe[5]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),ue.value.loading?(R(),J("div",swn,M(A(b)("detail.loading")),1)):(R(),J("div",own,[E("pre",cwn,[E("code",{class:wn("language-"+pe(ue.value.file.name))},M(ue.value.content),3)])]))])):Ae("",!0)])):Ae("",!0),ye.value.length>0?(R(),J("div",uwn,[E("h4",lwn,[ci(M(A(b)("detail.e2eScriptsLabel"))+" ",1),E("span",awn,"("+M(ye.value.length)+")",1)]),E("div",fwn,[(R(!0),J(sn,null,bi(ye.value,Je=>(R(),J("div",{key:"ss-"+Je.relativePath,class:wn(["flex items-center gap-2 px-3 py-2 border rounded-lg cursor-pointer transition-colors group",ue.value?.file===Je?"border-blue-400 bg-blue-50":"border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50"]),onClick:Bt=>se(Je)},[E("span",hwn,M(he(Je.name)),1),E("span",gwn,M(Je.name),1),E("span",bwn,M(jt(Je.size)),1)],10,dwn))),128))]),ue.value&&ye.value.some(Je=>Je===ue.value.file)?(R(),J("div",pwn,[E("div",wwn,[E("div",vwn,[E("span",mwn,M(he(ue.value.file.name)),1),E("span",ywn,M(ue.value.file.name),1),E("span",kwn,M(jt(ue.value.file.size)),1)]),E("div",xwn,[E("a",{href:ue.value.url,target:"_blank",class:"p-1 text-gray-400 hover:text-blue-500 rounded",title:"Open in new tab"},[...Pe[6]||(Pe[6]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],8,$wn),E("button",{class:"p-1 text-gray-400 hover:text-gray-600 rounded",onClick:Se},[...Pe[7]||(Pe[7]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),ue.value.loading?(R(),J("div",Ewn,M(A(b)("detail.loading")),1)):(R(),J("div",Cwn,[E("pre",Swn,[E("code",{class:wn("language-"+pe(ue.value.file.name))},M(ue.value.content),3)])]))])):Ae("",!0)])):Ae("",!0),w.value.length>0?(R(),J(sn,{key:2},[E("div",_wn,[Nn(E("select",{"onUpdate:modelValue":Pe[0]||(Pe[0]=Je=>p.value=Je),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},[(R(!0),J(sn,null,bi(w.value,Je=>(R(),J("option",{key:Je.runId,value:Je.runId},[ci(M(Jt(Je.runId))+" — "+M(Je.imageCount)+" "+M(A(b)("detail.e2eImages"))+", "+M(Je.videoCount)+" "+M(A(b)("detail.e2eVideos")),1),Je.documentCount?(R(),J(sn,{key:0},[ci(", "+M(Je.documentCount)+" "+M(A(b)("detail.e2eDocuments")),1)],64)):Ae("",!0)],8,jwn))),128))],512),[[Rd,p.value]])]),N.value?(R(),J("div",Iwn,M(A(b)("detail.loading")),1)):Ae("",!0),!N.value&&V.value.length>0?(R(),J("div",Awn,[E("h4",Twn,M(A(b)("detail.e2eScreenshots")),1),E("div",Mwn,[(R(!0),J(sn,null,bi(V.value,Je=>(R(),J("div",{key:Je.relativePath,class:"relative group cursor-pointer rounded-lg overflow-hidden border border-gray-200 hover:border-blue-400 hover:shadow-md transition-all",onClick:Bt=>gt(Je)},[E("img",{src:_W(p.value,Je.relativePath,d.issueIid),alt:Je.name,class:"w-full h-32 object-cover bg-gray-100",loading:"lazy"},null,8,Dwn),E("div",Own,[E("div",Lwn,[E("p",Nwn,M(Je.name),1),E("p",Rwn,M(jt(Je.size)),1)])])],8,Pwn))),128))])])):Ae("",!0),!N.value&&X.value.length>0?(R(),J("div",Fwn,[E("h4",Bwn,M(A(b)("detail.e2eVideoRecordings")),1),E("div",Hwn,[(R(!0),J(sn,null,bi(X.value,Je=>(R(),J("div",{key:Je.relativePath,class:"border border-gray-200 rounded-lg overflow-hidden"},[E("video",{src:_W(p.value,Je.relativePath,d.issueIid),controls:"",preload:"metadata",class:"w-full max-h-80 bg-black"},null,8,Gwn),E("div",Jwn,[E("span",null,M(Je.name),1),E("span",null,M(jt(Je.size)),1)])]))),128))])])):Ae("",!0),!N.value&&ee.value.length>0?(R(),J("div",Uwn,[E("h4",zwn,M(A(b)("detail.e2eRunDocuments")),1),E("div",qwn,[(R(!0),J(sn,null,bi(ee.value,Je=>(R(),J("div",{key:Je.relativePath,class:wn(["flex items-center gap-2 px-3 py-2 border rounded-lg cursor-pointer transition-colors group",ue.value?.file.relativePath===Je.relativePath&&!ue.value?.url.includes("e2e-scenarios")?"border-blue-400 bg-blue-50":"border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50"]),onClick:Bt=>Ce(Je)},[E("span",Kwn,M(he(Je.name)),1),E("span",Wwn,M(Je.relativePath),1),E("span",Xwn,M(jt(Je.size)),1),Pe[8]||(Pe[8]=E("svg",{class:"w-4 h-4 text-gray-300 group-hover:text-blue-400 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})],-1))],10,Vwn))),128))]),ue.value&&!ue.value.url.includes("e2e-scenarios")?(R(),J("div",Ywn,[E("div",Qwn,[E("div",Zwn,[E("span",evn,M(he(ue.value.file.name)),1),E("span",tvn,M(ue.value.file.relativePath),1),E("span",nvn,M(jt(ue.value.file.size)),1)]),E("div",ivn,[E("a",{href:ue.value.url,target:"_blank",class:"p-1 text-gray-400 hover:text-blue-500 rounded",title:"Open in new tab"},[...Pe[9]||(Pe[9]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],8,rvn),E("button",{class:"p-1 text-gray-400 hover:text-gray-600 rounded",onClick:Se},[...Pe[10]||(Pe[10]=[E("svg",{class:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])])]),ue.value.loading?(R(),J("div",svn,M(A(b)("detail.loading")),1)):(R(),J("div",ovn,[E("pre",cvn,[E("code",{class:wn("language-"+pe(ue.value.file.name))},M(ue.value.content),3)])]))])):Ae("",!0)])):Ae("",!0),!N.value&&V.value.length===0&&X.value.length===0&&ee.value.length===0&&p.value?(R(),J("div",uvn,M(A(b)("detail.e2eNoMedia")),1)):Ae("",!0)],64)):Ae("",!0)],64)):(R(),J("div",Fpn,[Pe[3]||(Pe[3]=E("svg",{class:"mx-auto h-10 w-10 text-gray-300 mb-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)),E("p",Bpn,M(A(b)("detail.e2eNoRuns")),1),E("p",Hpn,M(A(b)("detail.e2eNoRunsHint")),1)])):(R(),J("div",Lpn,[Pe[2]||(Pe[2]=E("svg",{class:"mx-auto h-10 w-10 text-gray-300 mb-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),E("p",Npn,M(A(b)("detail.e2eNotConfigured")),1),E("p",Rpn,M(A(b)("detail.e2eNotConfiguredHint")),1)])),(R(),Ts(Lme,{to:"body"},[P.value?(R(),J("div",{key:0,class:"fixed inset-0 z-[100] flex items-center justify-center bg-black/80",onClick:Ah(ze,["self"])},[E("button",{class:"absolute top-4 right-4 text-white/80 hover:text-white text-3xl leading-none z-10",onClick:ze},"×"),U.value==="image"?(R(),J("img",{key:0,src:P.value,class:"max-w-[90vw] max-h-[90vh] object-contain rounded-lg shadow-2xl"},null,8,lvn)):(R(),J("video",{key:1,src:P.value,controls:"",autoplay:"",class:"max-w-[90vw] max-h-[90vh] rounded-lg shadow-2xl"},null,8,avn))])):Ae("",!0)])),ke.value?(R(),Ts(Mpn,{key:4,url:ke.value,onClose:Pe[1]||(Pe[1]=Je=>ke.value=null)},null,8,["url"])):Ae("",!0)]))}}),fvn={class:"fixed inset-0 z-50 flex"},dvn={class:"relative ml-auto w-full max-w-2xl bg-white shadow-xl overflow-y-auto"},hvn={class:"sticky top-0 bg-white border-b border-gray-200 px-6 py-4 flex items-center justify-between z-10"},gvn={class:"flex items-center space-x-2"},bvn={class:"text-lg font-bold text-gray-800"},pvn=["href"],wvn={class:"px-6 py-4 space-y-6"},vvn={class:"text-base font-semibold text-gray-700 mb-2"},mvn={class:"grid grid-cols-2 gap-3 text-sm"},yvn={class:"text-gray-500"},kvn={class:"text-gray-800"},xvn={class:"text-gray-500"},$vn={class:"text-xs bg-gray-100 px-1 py-0.5 rounded"},Evn={class:"text-gray-500"},Cvn={class:"text-gray-500"},Svn={class:"text-gray-500"},_vn={class:"text-gray-500"},jvn={class:"flex items-center justify-between text-sm bg-gray-50 rounded-lg px-4 py-2.5 border border-gray-200"},Ivn={class:"text-gray-600"},Avn=["disabled"],Tvn={class:"flex items-center justify-between text-sm bg-gray-50 rounded-lg px-4 py-2.5 border border-gray-200"},Mvn={class:"text-gray-600"},Pvn=["disabled"],Dvn={key:0,class:"bg-green-50 border border-green-200 rounded-lg p-4 flex items-center space-x-2"},Ovn={class:"text-sm text-green-700 font-medium"},Lvn=["href"],Nvn={key:1,class:"bg-green-50 border border-green-200 rounded-lg p-4 space-y-2"},Rvn={class:"text-sm text-green-700 font-medium"},Fvn={class:"text-xs text-green-600 font-mono"},Bvn=["href"],Hvn={key:2,class:"bg-indigo-50 border border-indigo-200 rounded-lg p-4 flex items-center space-x-2"},Gvn={class:"text-sm text-indigo-700 font-medium"},Jvn=["href"],Uvn={key:3,class:"bg-red-50 border border-red-200 rounded-lg p-4"},zvn={class:"text-sm font-semibold text-red-700 mb-1"},qvn={class:"text-sm text-red-600 whitespace-pre-wrap break-words"},Vvn={class:"flex flex-wrap gap-3 pt-2 border-t border-gray-200"},Kvn=wr({__name:"DetailModal",props:{issue:{},progress:{},systemStatus:{},verifyFixLoop:{},agentLogs:{},agentAutoScroll:{type:Boolean},agentDebugMode:{type:Boolean},supplement:{},supplementForm:{},supplementLoading:{type:Boolean},supplementEditing:{type:Boolean},supplementSaving:{type:Boolean},hasSupplementData:{type:Boolean},detailVersion:{},reviewFeedback:{},reviewSubmitting:{type:Boolean},reviewHistory:{}},emits:["close","start","retry","restart","cancel","markDeployed","stopPreview","restartPreview","retryFromPhase","approve","reject","skip","update:reviewFeedback","supplementEdit","supplementSave","supplementCancel","update:supplementForm","update:agentAutoScroll","update:agentDebugMode","clearLogs"],setup(a,{emit:d}){const b=a,m=d,{stateLabel:w,stateClass:$,getPlanDocs:p,isEditableDoc:j}=r_();function I(){if(!b.systemStatus)return"#";const ue=b.systemStatus.config.gongfengBaseUrl,oe=b.systemStatus.config.projectPath;return`${ue}/${oe}/issues/${_r(b.issue)}`}const N=Ye(b.issue.issueNoteSyncEnabled),P=Ye(!1),U=En(()=>N.value===!0?"on":N.value===!1?"off":"system");async function V(){const ue=[void 0,!0,!1],oe=ue.indexOf(N.value),re=ue[(oe+1)%ue.length];N.value=re,P.value=!0;try{await xwt(_r(b.issue),re===void 0?null:re)}catch(ye){console.error("Failed to toggle note sync",ye)}finally{P.value=!1}}const X=Ye(b.issue.e2eEnabled),ee=Ye(!1),K=En(()=>X.value===!0?"on":X.value===!1?"off":"system");async function he(){const ue=[void 0,!0,!1],oe=ue.indexOf(X.value),re=ue[(oe+1)%ue.length];X.value=re,ee.value=!0;try{await $wt(_r(b.issue),re===void 0?null:re)}catch(ye){console.error("Failed to toggle e2e",ye)}finally{ee.value=!1}}function ke(){window.open(`/detail?issue=${_r(b.issue)}`,"_blank")}return(ue,oe)=>(R(),J("div",fvn,[E("div",{class:"absolute inset-0 bg-black/30",onClick:oe[0]||(oe[0]=re=>m("close"))}),E("div",dvn,[E("div",hvn,[E("div",gvn,[E("h2",bvn,"Issue #"+M(A(_r)(a.issue)),1),E("a",{href:I(),target:"_blank",rel:"noopener",class:"inline-flex items-center px-2 py-0.5 text-xs font-medium text-blue-600 bg-blue-50 rounded hover:bg-blue-100 hover:text-blue-800 transition-colors"},[ci(M(ue.$t("detail.viewInGongfeng"))+" ",1),oe[24]||(oe[24]=E("svg",{class:"w-3 h-3 ml-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1))],8,pvn),E("button",{class:"inline-flex items-center px-2 py-0.5 text-xs font-medium text-gray-600 bg-gray-100 rounded hover:bg-gray-200 hover:text-gray-800 transition-colors",onClick:oe[1]||(oe[1]=re=>ke())},[ci(M(ue.$t("detail.openFullPage"))+" ",1),oe[25]||(oe[25]=E("svg",{class:"w-3 h-3 ml-1",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[E("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 8V4m0 0h4M4 4l5 5m7-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m7 5v-4m0 4h-4m4 0l-5-5"})],-1))])]),E("button",{class:"text-gray-400 hover:text-gray-600 text-2xl leading-none",onClick:oe[2]||(oe[2]=re=>m("close"))},"×")]),E("div",wvn,[E("div",null,[E("h3",vvn,M(ue.$t("detail.basicInfo")),1),E("div",mvn,[E("div",null,[E("span",yvn,M(ue.$t("detail.title")),1),oe[26]||(oe[26]=ci()),E("span",kvn,M(A(ywt)(a.issue)),1)]),E("div",null,[E("span",xvn,M(ue.$t("detail.branch")),1),oe[27]||(oe[27]=ci()),E("code",$vn,M(a.issue.branchName),1)]),E("div",null,[E("span",Evn,M(ue.$t("detail.state")),1),E("span",{class:wn(["px-2 py-0.5 rounded-full text-xs font-medium",A($)(a.issue.state)])},M(A(w)(a.issue.state,a.issue.currentPhase)),3)]),E("div",null,[E("span",Cvn,M(ue.$t("detail.createdAt")),1),ci(" "+M(A(YS)(a.issue.createdAt)),1)]),E("div",null,[E("span",Svn,M(ue.$t("detail.retries")),1),ci(" "+M(a.issue.attempts),1)]),E("div",null,[E("span",_vn,M(ue.$t("detail.updatedAt")),1),ci(" "+M(A(YS)(a.issue.updatedAt)),1)])])]),E("div",jvn,[E("span",Ivn,M(ue.$t("detail.noteSync")),1),E("button",{class:wn(["px-3 py-1 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":U.value==="on","bg-red-100 text-red-600 hover:bg-red-200":U.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":U.value==="system"}]),disabled:P.value,onClick:oe[3]||(oe[3]=re=>V())},M(U.value==="on"?ue.$t("detail.enabled"):U.value==="off"?ue.$t("detail.disabled"):ue.$t("detail.followSystem")),11,Avn)]),E("div",Tvn,[E("span",Mvn,M(ue.$t("detail.e2eTitle")),1),E("button",{class:wn(["px-3 py-1 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":K.value==="on","bg-red-100 text-red-600 hover:bg-red-200":K.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":K.value==="system"}]),disabled:ee.value,onClick:oe[4]||(oe[4]=re=>he())},M(K.value==="on"?ue.$t("detail.enabled"):K.value==="off"?ue.$t("detail.disabled"):ue.$t("detail.followSystem")),11,Pvn)]),a.issue.mrUrl?(R(),J("div",Dvn,[E("span",Ovn,M(ue.$t("detail.mrLabel")),1),E("a",{href:a.issue.mrUrl,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(a.issue.mrUrl),9,Lvn)])):Ae("",!0),a.issue.linkedMrUrls&&Object.keys(a.issue.linkedMrUrls).length>0?(R(),J("div",Nvn,[E("span",Rvn,M(ue.$t("detail.linkedMrLabel")),1),(R(!0),J(sn,null,bi(a.issue.linkedMrUrls,(re,ye)=>(R(),J("div",{key:ye,class:"flex items-center space-x-2 ml-2"},[E("span",Fvn,M(ye)+":",1),E("a",{href:re,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(re),9,Bvn)]))),128))])):Ae("",!0),a.issue.preview?.running&&a.issue.preview?.previewUrl?(R(),J("div",Hvn,[E("span",Gvn,M(ue.$t("detail.previewLabel")),1),E("a",{href:a.issue.preview.previewUrl,target:"_blank",rel:"noopener",class:"text-sm text-indigo-600 hover:text-indigo-800 underline break-all"},M(a.issue.preview.previewUrl),9,Jvn)])):Ae("",!0),a.issue.lastError?(R(),J("div",Uvn,[E("h3",zvn,M(ue.$t("detail.errorInfo")),1),E("p",qvn,M(a.issue.lastError),1)])):Ae("",!0),xr(t2t,{issue:a.issue,progress:a.progress,"verify-fix-loop":a.verifyFixLoop,onRetryFromPhase:oe[5]||(oe[5]=re=>m("retryFromPhase",A(_r)(a.issue),re))},null,8,["issue","progress","verify-fix-loop"]),a.issue.state==="phase_waiting"?(R(),Ts(n2t,{key:4,"review-submitting":a.reviewSubmitting,"review-feedback":a.reviewFeedback,"review-history":a.reviewHistory,"onUpdate:reviewFeedback":oe[6]||(oe[6]=re=>m("update:reviewFeedback",re)),onApprove:oe[7]||(oe[7]=re=>m("approve",A(_r)(a.issue))),onReject:oe[8]||(oe[8]=re=>m("reject",A(_r)(a.issue))),onSkip:oe[9]||(oe[9]=re=>m("skip",A(_r)(a.issue)))},null,8,["review-submitting","review-feedback","review-history"])):Ae("",!0),xr(i2t,{supplement:a.supplement,"supplement-form":a.supplementForm,loading:a.supplementLoading,editing:a.supplementEditing,saving:a.supplementSaving,"has-data":a.hasSupplementData,onEdit:oe[10]||(oe[10]=re=>m("supplementEdit")),onSave:oe[11]||(oe[11]=re=>m("supplementSave")),onCancel:oe[12]||(oe[12]=re=>m("supplementCancel")),"onUpdate:supplementForm":oe[13]||(oe[13]=re=>m("update:supplementForm",re))},null,8,["supplement","supplement-form","loading","editing","saving","has-data"]),xr(s2t,{"issue-iid":A(_r)(a.issue),"plan-docs":A(p)(a.issue),"is-editable-doc":A(j),"detail-version":a.detailVersion},null,8,["issue-iid","plan-docs","is-editable-doc","detail-version"]),xr(o2t,{"issue-iid":A(_r)(a.issue)},null,8,["issue-iid"]),xr(r2t,{logs:a.agentLogs,"issue-state":a.issue.state,"current-phase":a.issue.currentPhase,"auto-scroll":a.agentAutoScroll,"debug-mode":a.agentDebugMode,"onUpdate:autoScroll":oe[14]||(oe[14]=re=>m("update:agentAutoScroll",re)),"onUpdate:debugMode":oe[15]||(oe[15]=re=>m("update:agentDebugMode",re)),onClear:oe[16]||(oe[16]=re=>m("clearLogs"))},null,8,["logs","issue-state","current-phase","auto-scroll","debug-mode"]),E("div",Vvn,[a.issue.state==="skipped"?(R(),J("button",{key:0,class:"px-4 py-2 bg-green-500 text-white text-sm rounded-lg hover:bg-green-600",onClick:oe[17]||(oe[17]=re=>m("start",A(_r)(a.issue)))},M(ue.$t("detail.start")),1)):Ae("",!0),a.issue.state==="failed"?(R(),J("button",{key:1,class:"px-4 py-2 bg-blue-500 text-white text-sm rounded-lg hover:bg-blue-600",onClick:oe[18]||(oe[18]=re=>m("retry",A(_r)(a.issue)))},M(ue.$t("detail.retry")),1)):Ae("",!0),a.issue.state==="completed"?(R(),J("button",{key:2,class:"px-4 py-2 bg-purple-500 text-white text-sm rounded-lg hover:bg-purple-600",onClick:oe[19]||(oe[19]=re=>m("markDeployed",A(_r)(a.issue)))},M(ue.$t("detail.markDeployed")),1)):Ae("",!0),a.issue.preview?.running?(R(),J("button",{key:3,class:"px-4 py-2 bg-orange-100 text-orange-700 text-sm rounded-lg hover:bg-orange-200",onClick:oe[20]||(oe[20]=re=>m("stopPreview",A(_r)(a.issue)))},M(ue.$t("detail.stopPreview")),1)):Ae("",!0),!["pending","skipped","deployed"].includes(a.issue.state)&&!a.issue.preview?.running?(R(),J("button",{key:4,class:"px-4 py-2 bg-indigo-100 text-indigo-700 text-sm rounded-lg hover:bg-indigo-200",onClick:oe[21]||(oe[21]=re=>m("restartPreview",A(_r)(a.issue)))},M(ue.$t("detail.restartPreview")),1)):Ae("",!0),a.issue.state!=="skipped"?(R(),J("button",{key:5,class:"px-4 py-2 bg-yellow-100 text-yellow-700 text-sm rounded-lg hover:bg-yellow-200",onClick:oe[22]||(oe[22]=re=>m("restart",A(_r)(a.issue)))},M(ue.$t("detail.restart")),1)):Ae("",!0),E("button",{class:"px-4 py-2 bg-red-100 text-red-600 text-sm rounded-lg hover:bg-red-200",onClick:oe[23]||(oe[23]=re=>m("cancel",A(_r)(a.issue)))},M(ue.$t("detail.cancelTrack")),1)])])])]))}}),Wvn={key:0,class:"min-h-screen bg-gray-50 flex flex-col"},Xvn={class:"bg-white border-b border-gray-200 px-6 py-3 flex items-center justify-between sticky top-0 z-10"},Yvn={class:"flex items-center gap-3 min-w-0"},Qvn={href:"/",class:"text-sm text-blue-600 hover:text-blue-800 flex-shrink-0"},Zvn={class:"text-lg font-bold text-gray-800 truncate"},e2n={class:"text-gray-500 truncate hidden sm:inline"},t2n={class:"flex items-center gap-3 flex-shrink-0"},n2n={key:0,class:"w-2 h-2 rounded-full bg-green-500",title:"SSE connected"},i2n={key:1,class:"w-2 h-2 rounded-full bg-red-400",title:"SSE disconnected"},r2n=["href"],s2n={class:"flex flex-1 overflow-hidden"},o2n={class:"w-80 flex-shrink-0 border-r border-gray-200 bg-white overflow-y-auto"},c2n={class:"p-4 border-b border-gray-100"},u2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},l2n={class:"p-4 border-b border-gray-100"},a2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},f2n={class:"space-y-2 text-sm"},d2n={class:"flex justify-between"},h2n={class:"text-gray-400"},g2n={class:"text-xs bg-gray-100 px-1.5 py-0.5 rounded truncate max-w-[180px]"},b2n={class:"flex justify-between"},p2n={class:"text-gray-400"},w2n={class:"flex justify-between"},v2n={class:"text-gray-400"},m2n={class:"flex justify-between"},y2n={class:"text-gray-400"},k2n={class:"p-4 border-b border-gray-100"},x2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},$2n={class:"space-y-2"},E2n={class:"flex items-center justify-between text-sm"},C2n={class:"text-gray-600"},S2n=["disabled"],_2n={class:"flex items-center justify-between text-sm"},j2n={class:"text-gray-600"},I2n=["disabled"],A2n={key:0,class:"p-4 border-b border-gray-100"},T2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},M2n=["href"],P2n={key:1,class:"space-y-1 mt-1"},D2n={class:"text-xs text-gray-500 font-mono flex-shrink-0"},O2n=["href"],L2n={key:1,class:"p-4 border-b border-gray-100"},N2n={class:"text-xs font-semibold text-gray-400 uppercase tracking-wide mb-3"},R2n=["href"],F2n={key:2,class:"p-4 border-b border-gray-100"},B2n={class:"bg-red-50 border border-red-200 rounded-lg p-3"},H2n={class:"text-xs font-semibold text-red-700 mb-1"},G2n={class:"text-xs text-red-600 whitespace-pre-wrap break-words"},J2n={class:"p-4"},U2n={class:"flex flex-wrap gap-2"},z2n={class:"flex-1 flex flex-col min-w-0"},q2n={class:"flex gap-0 border-b border-gray-200 bg-white px-4"},V2n=["onClick"],K2n={class:"flex-1 overflow-y-auto p-5"},W2n={key:1,class:"min-h-screen bg-gray-50 flex items-center justify-center"},X2n={class:"text-center"},Y2n={class:"text-gray-400 text-lg mb-2"},Q2n={href:"/",class:"text-sm text-blue-600 hover:text-blue-800"},Z2n=wr({__name:"IssueDetailPage",setup(a){const d=Ye(null),b=Ye("docs"),m=Ye(!1),w=Ye(!1),{pipelineMode:$,stateLabel:p,stateClass:j,getPlanDocs:I,isEditableDoc:N}=r_(),P=_wt(),U=JX(),V=En(()=>P.selectedIssue.value?_r(P.selectedIssue.value):void 0),X=En(()=>{const le=V.value;return le!=null?U.getVerifyFixLoop(le):void 0}),ee=En(()=>{if(!P.selectedIssue.value)return"system";const le=P.selectedIssue.value.issueNoteSyncEnabled;return le===!0?"on":le===!1?"off":"system"}),K=En(()=>{if(!P.selectedIssue.value)return"system";const le=P.selectedIssue.value.e2eEnabled;return le===!0?"on":le===!1?"off":"system"});function he(){if(!P.selectedIssue.value||!d.value)return"#";const le=d.value.config.gongfengBaseUrl,Ce=d.value.config.projectPath;return`${le}/${Ce}/issues/${_r(P.selectedIssue.value)}`}function ke(){const Ce=new URLSearchParams(window.location.search).get("issue");if(!Ce)return;const Se=Number(Ce);return Number.isFinite(Se)&&Se>0?Se:void 0}async function ue(le){try{const Ce=await dX(le);P.selectIssue(Ce,U.agentLogs)}catch{console.warn(`Issue #${le} not found`)}}async function oe(){}async function re(){if(!P.selectedIssue.value)return;const le=P.selectedIssue.value.issueNoteSyncEnabled,Ce=le===!0?!1:le===!1?void 0:!0;m.value=!0;try{await xwt(_r(P.selectedIssue.value),Ce===void 0?null:Ce),await P.refreshDetail()}catch(Se){console.error("Failed to toggle note sync",Se)}finally{m.value=!1}}async function ye(){if(!P.selectedIssue.value)return;const le=P.selectedIssue.value.e2eEnabled,Ce=le===!0?!1:le===!1?void 0:!0;w.value=!0;try{await $wt(_r(P.selectedIssue.value),Ce===void 0?null:Ce),await P.refreshDetail()}catch(Se){console.error("Failed to toggle e2e",Se)}finally{w.value=!1}}const{connected:pe}=Swt((le,Ce)=>{const Se=Ce;if(le.startsWith("issue:")||le.startsWith("review:")){const te=Se.data;te?.issueIid&&P.selectedIssue.value&&_r(P.selectedIssue.value)===te.issueIid&&P.refreshDetail()}if(le==="agent:output"){const te=Se.data;te?.event&&U.pushAgentStreamEvent(te.issueIid,V,te.phase,te.event)}if(le==="pipeline:progress"){const te=Se.data;te&&P.selectedIssue.value&&_r(P.selectedIssue.value)===te.issueIid&&U.pushSystemLog(te.issueIid,V,te.step,te.message??"",Se.timestamp)}if(le.startsWith("verify:")){const te=Se.data,q=te?.issueIid;if(q&&(U.updateVerifyFixLoop(q,le,te),P.selectedIssue.value&&_r(P.selectedIssue.value)===q)){let He="";le==="verify:loopStarted"?He=Cs("verify.loopStarted",{max:te.maxIterations}):le==="verify:iterationComplete"?He=te.passed?Cs("verify.iterationPassed",{n:te.iteration}):Cs("verify.iterationFailed",{n:te.iteration,reasons:(te.failures??[]).join("; ")}):le==="verify:loopExhausted"&&(He=Cs("verify.loopExhausted",{n:te.totalIterations})),He&&U.pushSystemLog(q,V,"verify",He,Se.timestamp)}}});async function be(){try{d.value=await kwt(),d.value?.config?.pipelineMode&&($.value=d.value.config.pipelineMode)}catch(le){console.error("Fetch status failed",le)}}let se=null;return gl(async()=>{Cwt(),be(),se=setInterval(be,1e4);const le=ke();le&&await ue(le)}),dp(()=>{se&&clearInterval(se)}),(le,Ce)=>A(P).selectedIssue.value?(R(),J("div",Wvn,[E("div",Xvn,[E("div",Yvn,[E("a",Qvn,M(le.$t("detail.backToList")),1),Ce[21]||(Ce[21]=E("span",{class:"text-gray-300"},"|",-1)),E("h1",Zvn,"Issue #"+M(A(_r)(A(P).selectedIssue.value)),1),E("span",e2n,M(A(ywt)(A(P).selectedIssue.value)),1),E("span",{class:wn(["px-2.5 py-0.5 rounded-full text-xs font-medium flex-shrink-0",A(j)(A(P).selectedIssue.value.state)])},M(A(p)(A(P).selectedIssue.value.state,A(P).selectedIssue.value.currentPhase)),3)]),E("div",t2n,[A(pe)?(R(),J("span",n2n)):(R(),J("span",i2n)),E("a",{href:he(),target:"_blank",rel:"noopener",class:"text-sm text-gray-500 hover:text-blue-600"},M(le.$t("detail.viewInGongfeng"))+" ↗",9,r2n)])]),E("div",s2n,[E("aside",o2n,[E("div",c2n,[E("div",u2n,M(le.$t("pipeline.title")),1),xr(t2t,{issue:A(P).selectedIssue.value,progress:A(P).detailProgress.value,"verify-fix-loop":X.value,vertical:"",onRetryFromPhase:Ce[0]||(Ce[0]=Se=>A(P).doRetryFromPhase(A(_r)(A(P).selectedIssue.value),Se,Se,oe))},null,8,["issue","progress","verify-fix-loop"])]),E("div",l2n,[E("div",a2n,M(le.$t("detail.basicInfo")),1),E("div",f2n,[E("div",d2n,[E("span",h2n,M(le.$t("detail.branch")),1),E("code",g2n,M(A(P).selectedIssue.value.branchName),1)]),E("div",b2n,[E("span",p2n,M(le.$t("detail.retries")),1),E("span",null,M(A(P).selectedIssue.value.attempts),1)]),E("div",w2n,[E("span",v2n,M(le.$t("detail.createdAt")),1),E("span",null,M(A(YS)(A(P).selectedIssue.value.createdAt)),1)]),E("div",m2n,[E("span",y2n,M(le.$t("detail.updatedAt")),1),E("span",null,M(A(YS)(A(P).selectedIssue.value.updatedAt)),1)])])]),E("div",k2n,[E("div",x2n,M(le.$t("detail.settings")),1),E("div",$2n,[E("div",E2n,[E("span",C2n,M(le.$t("detail.noteSync")),1),E("button",{class:wn(["px-2.5 py-0.5 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":ee.value==="on","bg-red-100 text-red-600 hover:bg-red-200":ee.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":ee.value==="system"}]),disabled:m.value,onClick:Ce[1]||(Ce[1]=Se=>re())},M(ee.value==="on"?le.$t("detail.enabled"):ee.value==="off"?le.$t("detail.disabled"):le.$t("detail.followSystem")),11,S2n)]),E("div",_2n,[E("span",j2n,M(le.$t("detail.e2eTitle")),1),E("button",{class:wn(["px-2.5 py-0.5 rounded text-xs font-medium transition-colors",{"bg-green-100 text-green-700 hover:bg-green-200":K.value==="on","bg-red-100 text-red-600 hover:bg-red-200":K.value==="off","bg-gray-200 text-gray-600 hover:bg-gray-300":K.value==="system"}]),disabled:w.value,onClick:Ce[2]||(Ce[2]=Se=>ye())},M(K.value==="on"?le.$t("detail.enabled"):K.value==="off"?le.$t("detail.disabled"):le.$t("detail.followSystem")),11,I2n)])])]),A(P).selectedIssue.value.mrUrl||A(P).selectedIssue.value.linkedMrUrls&&Object.keys(A(P).selectedIssue.value.linkedMrUrls).length>0?(R(),J("div",A2n,[E("div",T2n,M(le.$t("detail.mergeRequest")),1),A(P).selectedIssue.value.mrUrl?(R(),J("a",{key:0,href:A(P).selectedIssue.value.mrUrl,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(A(P).selectedIssue.value.mrUrl),9,M2n)):Ae("",!0),A(P).selectedIssue.value.linkedMrUrls?(R(),J("div",P2n,[(R(!0),J(sn,null,bi(A(P).selectedIssue.value.linkedMrUrls,(Se,te)=>(R(),J("div",{key:te,class:"flex items-start gap-2"},[E("span",D2n,M(te)+":",1),E("a",{href:Se,target:"_blank",rel:"noopener",class:"text-sm text-green-600 hover:text-green-800 underline break-all"},M(Se),9,O2n)]))),128))])):Ae("",!0)])):Ae("",!0),A(P).selectedIssue.value.preview?.running&&A(P).selectedIssue.value.preview?.previewUrl?(R(),J("div",L2n,[E("div",N2n,M(le.$t("detail.previewLabel")),1),E("a",{href:A(P).selectedIssue.value.preview.previewUrl,target:"_blank",rel:"noopener",class:"text-sm text-indigo-600 hover:text-indigo-800 underline break-all"},M(A(P).selectedIssue.value.preview.previewUrl),9,R2n)])):Ae("",!0),A(P).selectedIssue.value.lastError?(R(),J("div",F2n,[E("div",B2n,[E("div",H2n,M(le.$t("detail.errorInfo")),1),E("p",G2n,M(A(P).selectedIssue.value.lastError),1)])])):Ae("",!0),E("div",J2n,[E("div",U2n,[A(P).selectedIssue.value.state==="skipped"?(R(),J("button",{key:0,class:"px-3 py-1.5 bg-green-500 text-white text-xs rounded-lg hover:bg-green-600",onClick:Ce[3]||(Ce[3]=Se=>A(P).doStartIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.start")),1)):Ae("",!0),A(P).selectedIssue.value.state==="failed"?(R(),J("button",{key:1,class:"px-3 py-1.5 bg-blue-500 text-white text-xs rounded-lg hover:bg-blue-600",onClick:Ce[4]||(Ce[4]=Se=>A(P).doRetryIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.retry")),1)):Ae("",!0),A(P).selectedIssue.value.state==="completed"?(R(),J("button",{key:2,class:"px-3 py-1.5 bg-purple-500 text-white text-xs rounded-lg hover:bg-purple-600",onClick:Ce[5]||(Ce[5]=Se=>A(P).doMarkDeployed(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.markDeployed")),1)):Ae("",!0),A(P).selectedIssue.value.preview?.running?(R(),J("button",{key:3,class:"px-3 py-1.5 bg-orange-100 text-orange-700 text-xs rounded-lg hover:bg-orange-200",onClick:Ce[6]||(Ce[6]=Se=>A(P).doStopPreview(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.stopPreview")),1)):Ae("",!0),!["pending","skipped","deployed"].includes(A(P).selectedIssue.value.state)&&!A(P).selectedIssue.value.preview?.running?(R(),J("button",{key:4,class:"px-3 py-1.5 bg-indigo-100 text-indigo-700 text-xs rounded-lg hover:bg-indigo-200",onClick:Ce[7]||(Ce[7]=Se=>A(P).doRestartPreview(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.restartPreview")),1)):Ae("",!0),A(P).selectedIssue.value.state!=="skipped"?(R(),J("button",{key:5,class:"px-3 py-1.5 bg-yellow-100 text-yellow-700 text-xs rounded-lg hover:bg-yellow-200",onClick:Ce[8]||(Ce[8]=Se=>A(P).doRestartIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.restart")),1)):Ae("",!0),E("button",{class:"px-3 py-1.5 bg-red-100 text-red-600 text-xs rounded-lg hover:bg-red-200",onClick:Ce[9]||(Ce[9]=Se=>A(P).doCancelIssue(A(_r)(A(P).selectedIssue.value),oe))},M(le.$t("detail.cancelTrack")),1)])])]),E("div",z2n,[E("div",q2n,[(R(),J(sn,null,bi(["docs","review","supplement","logs","e2e"],Se=>E("button",{key:Se,class:wn(["px-4 py-2.5 text-sm font-medium border-b-2 transition-colors",b.value===Se?"border-blue-500 text-blue-600":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:te=>b.value=Se},M(le.$t(`detail.tab.${Se}`)),11,V2n)),64))]),E("div",K2n,[b.value==="docs"?(R(),Ts(s2t,{key:0,"issue-iid":A(_r)(A(P).selectedIssue.value),"plan-docs":A(I)(A(P).selectedIssue.value),"is-editable-doc":A(N),"detail-version":A(P).detailVersion.value},null,8,["issue-iid","plan-docs","is-editable-doc","detail-version"])):Ae("",!0),b.value==="review"?(R(),Ts(n2t,{key:1,"review-submitting":A(P).reviewSubmitting.value,"review-feedback":A(P).reviewFeedback.value,"review-history":A(P).reviewHistory.value,"onUpdate:reviewFeedback":Ce[10]||(Ce[10]=Se=>A(P).reviewFeedback.value=Se),onApprove:Ce[11]||(Ce[11]=Se=>A(P).doApprovePlan(A(_r)(A(P).selectedIssue.value),oe)),onReject:Ce[12]||(Ce[12]=Se=>A(P).doRejectPlan(A(_r)(A(P).selectedIssue.value),oe)),onSkip:Ce[13]||(Ce[13]=Se=>A(P).doSkipReview(A(_r)(A(P).selectedIssue.value),oe))},null,8,["review-submitting","review-feedback","review-history"])):Ae("",!0),b.value==="supplement"?(R(),Ts(i2t,{key:2,supplement:A(P).detailSupplement.value,"supplement-form":A(P).detailSupplementForm.value,loading:A(P).detailSupplementLoading.value,editing:A(P).detailSupplementEditing.value,saving:A(P).detailSupplementSaving.value,"has-data":A(P).hasSupplementData(A(P).detailSupplement.value),onEdit:Ce[14]||(Ce[14]=Se=>A(P).enterSupplementEdit()),onSave:Ce[15]||(Ce[15]=Se=>A(P).saveDetailSupplement(oe)),onCancel:Ce[16]||(Ce[16]=Se=>A(P).detailSupplementEditing.value=!1),"onUpdate:supplementForm":Ce[17]||(Ce[17]=Se=>A(P).detailSupplementForm.value=Se)},null,8,["supplement","supplement-form","loading","editing","saving","has-data"])):Ae("",!0),b.value==="logs"?(R(),Ts(r2t,{key:3,logs:A(U).filteredLogs.value,"issue-state":A(P).selectedIssue.value.state,"current-phase":A(P).selectedIssue.value.currentPhase,"auto-scroll":A(U).agentAutoScroll.value,"debug-mode":A(U).debugMode.value,"onUpdate:autoScroll":Ce[18]||(Ce[18]=Se=>A(U).agentAutoScroll.value=Se),"onUpdate:debugMode":Ce[19]||(Ce[19]=Se=>A(U).debugMode.value=Se),onClear:Ce[20]||(Ce[20]=Se=>A(U).clear())},null,8,["logs","issue-state","current-phase","auto-scroll","debug-mode"])):Ae("",!0),b.value==="e2e"?(R(),Ts(o2t,{key:4,"issue-iid":A(_r)(A(P).selectedIssue.value)},null,8,["issue-iid"])):Ae("",!0)])])])])):(R(),J("div",W2n,[E("div",X2n,[E("div",Y2n,M(le.$t("detail.loading")),1),E("a",Q2n,M(le.$t("detail.backToList")),1)])]))}});async function Vbt(a,d){const b=a.body?.getReader();if(!b)return{receivedAny:!1};const m=new TextDecoder;let w="",$=!1;for(;;){const{done:p,value:j}=await b.read();if(p)break;w+=m.decode(j,{stream:!0});const I=w.split(`
124
124
 
125
- `);w=I.pop()??"";for(const N of I)if(N.startsWith("data: "))try{const P=JSON.parse(N.slice(6));$=!0,await d(P)}catch{}}return{receivedAny:$}}function c2t(){const{t:a}=Kg(),d=Ye(0),b=6,m=Ye(!1),w=Ye(""),$=Ye([]),p=Ye(null),j=Ye(null),I=Ye(null),N=Ye(null),P=Ye(""),U=Ye([]),V=Ye(!1),X=Ye(""),ee=Ye(0);let K=null;const he=Ye(!1),ke=Ye(""),ue=Ye(!1),oe=Ye(new Map),re=Ye(""),ye=Ye(""),pe=i_({gongfeng:{apiUrl:"https://git.woa.com/",privateToken:"",projectPath:""},project:{workDir:"",gitRootDir:"",baseBranch:"master",branchPrefix:"feat/issue",worktreeBaseDir:"",projectSubDir:""},ai:{mode:"claude-internal",model:"Claude-4.6-Opus",phaseTimeoutMs:18e5},poll:{discoveryIntervalMs:6e4,driveIntervalMs:15e3,maxRetries:3,maxConcurrent:3},web:{port:3e3},pipeline:{mode:"auto"},review:{enabled:!0},e2e:{uatVendorDir:"",uatConfigFile:"",pythonBin:"python3"},release:{enabled:!1}}),be=En(()=>{switch(d.value){case 0:{const Pt=$.value.filter(Mt=>Mt.required);return Pt.length>0&&Pt.every(Mt=>Mt.installed)}case 1:return pe.project.workDir.trim()!=="";case 2:return pe.gongfeng.apiUrl.trim()!==""&&pe.gongfeng.privateToken.trim()!==""&&pe.gongfeng.projectPath.trim()!==""&&p.value===!0&&I.value===!0;case 3:return $.value.filter(Pt=>Pt.name===pe.ai.mode.replace("-","-")).every(Pt=>Pt.installed||!Pt.required);case 4:return!0;case 5:return P.value!=="";default:return!1}});async function se(Pt=!1){Pt||(m.value=!0,w.value="");try{const Mt=await fetch(`/api/setup/check-env?aiMode=${pe.ai.mode}`);if(!Mt.ok){Pt||(w.value=`Failed to check environment: HTTP ${Mt.status}`);return}const ln=await Mt.json();$.value=ln.dependencies??[]}catch(Mt){Pt||(w.value=Mt.message)}finally{Pt||(m.value=!1)}}async function le(){if(p.value=null,j.value=null,!(!pe.gongfeng.apiUrl||!pe.gongfeng.privateToken))try{const Mt=await(await fetch("/api/setup/validate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiUrl:pe.gongfeng.apiUrl,token:pe.gongfeng.privateToken})})).json();p.value=Mt.valid,j.value=Mt.user??null,Mt.valid||(w.value=Mt.error??"Token validation failed")}catch(Pt){p.value=!1,w.value=Pt.message}}async function Ce(){if(I.value=null,N.value=null,!(!pe.gongfeng.apiUrl||!pe.gongfeng.privateToken||!pe.gongfeng.projectPath))try{const Mt=await(await fetch("/api/setup/validate-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiUrl:pe.gongfeng.apiUrl,token:pe.gongfeng.privateToken,projectPath:pe.gongfeng.projectPath})})).json();I.value=Mt.valid,N.value=Mt.project??null,Mt.valid||(w.value=Mt.error??"Repository validation failed")}catch(Pt){I.value=!1,w.value=Pt.message}}function Se(){ee.value=0,K=setInterval(()=>{ee.value++},1e3)}function te(){K&&(clearInterval(K),K=null)}dp(()=>te());async function q(Pt){V.value=!0,X.value=Pt,U.value=[],re.value="",ue.value=!0,Se();let Mt=!1;try{const ln=await fetch("/api/setup/install-dep",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:Pt})});if(!ln.ok){const Ir=`Server error: ${ln.status} ${ln.statusText}`;U.value.push(Ir),re.value=Ir,oe.value.set(Pt,"failed");return}const{receivedAny:wi}=await Vbt(ln,async Ir=>{if(Ir.line&&U.value.push(Ir.line),Ir.error&&(re.value=Ir.error,U.value.push(`Error: ${Ir.error}`)),Ir.done){Mt=!0,await se(!0);const Ht=$.value.find(on=>on.name===Pt)?.installed;oe.value.set(Pt,Ht?"success":"failed")}});wi||U.value.push(a("setup.env.emptyResponse")),Mt||(oe.value.set(Pt,"failed"),await se(!0))}catch(ln){const wi=ln.message;U.value.push(`Error: ${wi}`),re.value=wi,oe.value.set(Pt,"failed")}finally{te(),V.value=!1,X.value=""}}async function He(){V.value=!0,X.value="",ye.value="",U.value=[],re.value="",ue.value=!0,Se();try{const Pt=await fetch("/api/setup/install-all",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiMode:pe.ai.mode})});if(!Pt.ok){let ln="";try{ln=await Pt.text()}catch{}const wi=`Server error: ${Pt.status} ${Pt.statusText}`;U.value.push(wi),ln&&U.value.push(ln),Pt.status===404&&U.value.push("Hint: The install-all API route may not be registered. Try upgrading the package or check /api/setup/health"),re.value=wi;return}const{receivedAny:Mt}=await Vbt(Pt,async ln=>{ln.phase&&ln.status==="start"&&(X.value=ln.dep??"",ye.value=ln.phase),ln.line&&U.value.push(ln.line),ln.phase&&ln.status==="done"&&(ln.installed?oe.value.set(ln.dep,"success"):ln.dep&&oe.value.set(ln.dep,"failed")),ln.error&&(re.value=ln.error,U.value.push(`Error: ${ln.error}`)),ln.done&&await se(!0)});Mt||(U.value.push(a("setup.env.emptyResponse")),await se(!0))}catch(Pt){const Mt=Pt.message;U.value.push(`Error: ${Mt}`),re.value=Mt}finally{te(),V.value=!1,X.value="",ye.value=""}}async function gt(){try{const Mt=await(await fetch("/api/setup/generate-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(pe)})).json();P.value=Mt.preview}catch(Pt){w.value=Pt.message}}async function ze(){m.value=!0,w.value="";try{const Mt=await(await fetch("/api/setup/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:pe})})).json();Mt.success?(he.value=!0,ke.value=Mt.configPath??""):w.value=Mt.error??"Setup failed"}catch(Pt){w.value=Pt.message}finally{m.value=!1}}async function jt(){m.value=!0,w.value="";try{const Pt=await fetch("/api/setup/current-config");if(!Pt.ok){w.value=`Failed to load config: HTTP ${Pt.status}`;return}const Mt=await Pt.json(),ln=Mt.config;pe.gongfeng.apiUrl=ln.gongfeng.apiUrl||pe.gongfeng.apiUrl,pe.gongfeng.privateToken=ln.gongfeng.privateToken||"",pe.gongfeng.projectPath=ln.gongfeng.projectPath||"",pe.project.workDir=ln.project.workDir||"",pe.project.gitRootDir=ln.project.gitRootDir??"",pe.project.baseBranch=ln.project.baseBranch??"master",pe.project.branchPrefix=ln.project.branchPrefix??"feat/issue",pe.project.worktreeBaseDir=ln.project.worktreeBaseDir??"",pe.project.projectSubDir=ln.project.projectSubDir??"",pe.ai.mode=ln.ai.mode||"claude-internal",pe.ai.model=ln.ai.model??"Claude-4.6-Opus",pe.ai.phaseTimeoutMs=ln.ai.phaseTimeoutMs??18e5,pe.poll.discoveryIntervalMs=ln.poll?.discoveryIntervalMs??6e4,pe.poll.driveIntervalMs=ln.poll?.driveIntervalMs??15e3,pe.poll.maxRetries=ln.poll?.maxRetries??3,pe.poll.maxConcurrent=ln.poll?.maxConcurrent??3,pe.web.port=ln.web?.port??3e3,pe.pipeline.mode=ln.pipeline?.mode??"auto",pe.review.enabled=ln.review?.enabled??!0,pe.e2e.uatVendorDir=ln.e2e?.uatVendorDir??"",pe.e2e.uatConfigFile=ln.e2e?.uatConfigFile??"",pe.e2e.pythonBin=ln.e2e?.pythonBin??"python3",pe.release.enabled=ln.release?.enabled??!1,ke.value=Mt.configPath}catch(Pt){w.value=Pt.message}finally{m.value=!1}}async function Jt(){m.value=!0,w.value="";try{const Mt=await(await fetch("/api/setup/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:pe})})).json();return Mt.success?(ke.value=Mt.configPath??"",!0):(w.value=Mt.error??"Save failed",!1)}catch(Pt){return w.value=Pt.message,!1}finally{m.value=!1}}function xe(){ue.value=!ue.value}function Pe(){ue.value=!1,V.value||(U.value=[])}function Je(){ue.value=!0}function Bt(){d.value<b-1&&(d.value++,w.value="",d.value===5&&gt())}function wt(){d.value>0&&(d.value--,w.value="")}return{currentStep:d,totalSteps:b,loading:m,error:w,form:pe,dependencies:$,tokenValid:p,tokenUser:j,repoValid:I,repoInfo:N,configPreview:P,installLogs:U,installing:V,installingDep:X,installElapsed:ee,setupComplete:he,savedConfigPath:ke,logPanelVisible:ue,installResult:oe,lastInstallError:re,installPhase:ye,canProceed:be,checkEnv:se,validateToken:le,validateRepo:Ce,installDep:q,installAll:He,generatePreview:gt,completeSetup:ze,loadCurrentConfig:jt,saveConfig:Jt,nextStep:Bt,prevStep:wt,toggleLogPanel:xe,closeLogPanel:Pe,openLogPanel:Je}}function GW(a=""){return{name:a,projectPath:"",localGitRoot:"",projectSubDir:"",baseBranch:"master",branchPrefix:"feat/issue",role:""}}function K2n(){const a=Ye(!1),d=Ye(!1),b=Ye(""),m=Ye(!1),w=Ye(null),$=Ye(void 0),p=Ye([]),j=i_({primary:GW("primary"),associates:[]}),I=En(()=>j.associates.length>0);async function N(){a.value=!0,b.value="";try{const X=await fetch("/api/setup/workspace-config");if(!X.ok){b.value=`Failed to load workspace config: HTTP ${X.status}`;return}const ee=await X.json();m.value=!!ee.configured,w.value=ee.configPath??null,ee.config&&(Object.assign(j.primary,ee.config.primary??GW("primary")),j.associates=(ee.config.associates??[]).map(K=>({...GW(),...K})))}catch(X){b.value=X.message}finally{a.value=!1}}async function P(){d.value=!0,b.value="";try{const X=await fetch("/api/setup/workspace-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:{primary:j.primary,associates:j.associates}})});if(!X.ok){const K=await X.json().catch(()=>({error:`HTTP ${X.status}`}));return b.value=K.error||`HTTP ${X.status}`,!1}const ee=await X.json();return w.value=ee.configPath??null,m.value=!0,!0}catch(X){return b.value=X.message,!1}finally{d.value=!1}}function U(){j.associates.push(GW(`associate-${j.associates.length+1}`))}function V(X){j.associates.splice(X,1)}return{loading:a,saving:d,error:b,configured:m,configPath:w,valid:$,validationErrors:p,workspace:j,hasAssociates:I,load:N,save:P,addAssociate:U,removeAssociate:V}}const Kbt=["clone","detect-python","install-playwright","install-chromium","configure","reload"];function W2n(){const a=Ye(!1),d=Ye([]),b=Ye(null),m=Ye(null),w=Ye(Kbt.map(P=>({name:P,status:"pending",message:""}))),$=En(()=>!a.value&&w.value.some(P=>P.status==="done"||P.status==="failed")),p=En(()=>$.value&&w.value.every(P=>P.status==="done"));function j(){a.value=!1,d.value=[],b.value=null,m.value=null,w.value=Kbt.map(P=>({name:P,status:"pending",message:""}))}async function I(){j(),a.value=!0;try{const P=await fetch("/api/setup/e2e-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!P.ok){b.value=`HTTP ${P.status}`,a.value=!1;return}const U=P.body?.getReader();if(!U){b.value="No response body",a.value=!1;return}const V=new TextDecoder;let X="";for(;;){const{done:ee,value:K}=await U.read();if(ee)break;X+=V.decode(K,{stream:!0});const he=X.split(`
125
+ `);w=I.pop()??"";for(const N of I)if(N.startsWith("data: "))try{const P=JSON.parse(N.slice(6));$=!0,await d(P)}catch{}}return{receivedAny:$}}function c2t(){const{t:a}=Kg(),d=Ye(0),b=6,m=Ye(!1),w=Ye(""),$=Ye([]),p=Ye(null),j=Ye(null),I=Ye(null),N=Ye(null),P=Ye(""),U=Ye([]),V=Ye(!1),X=Ye(""),ee=Ye(0);let K=null;const he=Ye(!1),ke=Ye(""),ue=Ye(!1),oe=Ye(new Map),re=Ye(""),ye=Ye(""),pe=i_({gongfeng:{apiUrl:"https://git.woa.com/",privateToken:"",projectPath:""},project:{workDir:"",gitRootDir:"",baseBranch:"master",branchPrefix:"feat/issue",worktreeBaseDir:"",projectSubDir:""},ai:{mode:"claude-internal",model:"Claude-4.6-Opus",phaseTimeoutMs:18e5},poll:{discoveryIntervalMs:6e4,driveIntervalMs:15e3,maxRetries:3,maxConcurrent:3},web:{port:3e3},pipeline:{mode:"auto"},review:{enabled:!0},e2e:{uatVendorDir:"",uatConfigFile:"",pythonBin:"python3"},release:{enabled:!1}}),be=En(()=>{switch(d.value){case 0:{const Pt=$.value.filter(Mt=>Mt.required);return Pt.length>0&&Pt.every(Mt=>Mt.installed)}case 1:return pe.project.workDir.trim()!=="";case 2:return pe.gongfeng.apiUrl.trim()!==""&&pe.gongfeng.privateToken.trim()!==""&&pe.gongfeng.projectPath.trim()!==""&&p.value===!0&&I.value===!0;case 3:return $.value.filter(Pt=>Pt.name===pe.ai.mode.replace("-","-")).every(Pt=>Pt.installed||!Pt.required);case 4:return!0;case 5:return P.value!=="";default:return!1}});async function se(Pt=!1){Pt||(m.value=!0,w.value="");try{const Mt=await fetch(`/api/setup/check-env?aiMode=${pe.ai.mode}`);if(!Mt.ok){Pt||(w.value=`Failed to check environment: HTTP ${Mt.status}`);return}const ln=await Mt.json();$.value=ln.dependencies??[]}catch(Mt){Pt||(w.value=Mt.message)}finally{Pt||(m.value=!1)}}async function le(){if(p.value=null,j.value=null,!(!pe.gongfeng.apiUrl||!pe.gongfeng.privateToken))try{const Mt=await(await fetch("/api/setup/validate-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiUrl:pe.gongfeng.apiUrl,token:pe.gongfeng.privateToken})})).json();p.value=Mt.valid,j.value=Mt.user??null,Mt.valid||(w.value=Mt.error??"Token validation failed")}catch(Pt){p.value=!1,w.value=Pt.message}}async function Ce(){if(I.value=null,N.value=null,!(!pe.gongfeng.apiUrl||!pe.gongfeng.privateToken||!pe.gongfeng.projectPath))try{const Mt=await(await fetch("/api/setup/validate-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiUrl:pe.gongfeng.apiUrl,token:pe.gongfeng.privateToken,projectPath:pe.gongfeng.projectPath})})).json();I.value=Mt.valid,N.value=Mt.project??null,Mt.valid||(w.value=Mt.error??"Repository validation failed")}catch(Pt){I.value=!1,w.value=Pt.message}}function Se(){ee.value=0,K=setInterval(()=>{ee.value++},1e3)}function te(){K&&(clearInterval(K),K=null)}dp(()=>te());async function q(Pt){V.value=!0,X.value=Pt,U.value=[],re.value="",ue.value=!0,Se();let Mt=!1;try{const ln=await fetch("/api/setup/install-dep",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:Pt})});if(!ln.ok){const Ir=`Server error: ${ln.status} ${ln.statusText}`;U.value.push(Ir),re.value=Ir,oe.value.set(Pt,"failed");return}const{receivedAny:wi}=await Vbt(ln,async Ir=>{if(Ir.line&&U.value.push(Ir.line),Ir.error&&(re.value=Ir.error,U.value.push(`Error: ${Ir.error}`)),Ir.done){Mt=!0,await se(!0);const Ht=$.value.find(on=>on.name===Pt)?.installed;oe.value.set(Pt,Ht?"success":"failed")}});wi||U.value.push(a("setup.env.emptyResponse")),Mt||(oe.value.set(Pt,"failed"),await se(!0))}catch(ln){const wi=ln.message;U.value.push(`Error: ${wi}`),re.value=wi,oe.value.set(Pt,"failed")}finally{te(),V.value=!1,X.value=""}}async function He(){V.value=!0,X.value="",ye.value="",U.value=[],re.value="",ue.value=!0,Se();try{const Pt=await fetch("/api/setup/install-all",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiMode:pe.ai.mode})});if(!Pt.ok){let ln="";try{ln=await Pt.text()}catch{}const wi=`Server error: ${Pt.status} ${Pt.statusText}`;U.value.push(wi),ln&&U.value.push(ln),Pt.status===404&&U.value.push("Hint: The install-all API route may not be registered. Try upgrading the package or check /api/setup/health"),re.value=wi;return}const{receivedAny:Mt}=await Vbt(Pt,async ln=>{ln.phase&&ln.status==="start"&&(X.value=ln.dep??"",ye.value=ln.phase),ln.line&&U.value.push(ln.line),ln.phase&&ln.status==="done"&&(ln.installed?oe.value.set(ln.dep,"success"):ln.dep&&oe.value.set(ln.dep,"failed")),ln.error&&(re.value=ln.error,U.value.push(`Error: ${ln.error}`)),ln.done&&await se(!0)});Mt||(U.value.push(a("setup.env.emptyResponse")),await se(!0))}catch(Pt){const Mt=Pt.message;U.value.push(`Error: ${Mt}`),re.value=Mt}finally{te(),V.value=!1,X.value="",ye.value=""}}async function gt(){try{const Mt=await(await fetch("/api/setup/generate-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(pe)})).json();P.value=Mt.preview}catch(Pt){w.value=Pt.message}}async function ze(){m.value=!0,w.value="";try{const Mt=await(await fetch("/api/setup/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:pe})})).json();Mt.success?(he.value=!0,ke.value=Mt.configPath??""):w.value=Mt.error??"Setup failed"}catch(Pt){w.value=Pt.message}finally{m.value=!1}}async function jt(){m.value=!0,w.value="";try{const Pt=await fetch("/api/setup/current-config");if(!Pt.ok){w.value=`Failed to load config: HTTP ${Pt.status}`;return}const Mt=await Pt.json(),ln=Mt.config;pe.gongfeng.apiUrl=ln.gongfeng.apiUrl||pe.gongfeng.apiUrl,pe.gongfeng.privateToken=ln.gongfeng.privateToken||"",pe.gongfeng.projectPath=ln.gongfeng.projectPath||"",pe.project.workDir=ln.project.workDir||"",pe.project.gitRootDir=ln.project.gitRootDir??"",pe.project.baseBranch=ln.project.baseBranch??"master",pe.project.branchPrefix=ln.project.branchPrefix??"feat/issue",pe.project.worktreeBaseDir=ln.project.worktreeBaseDir??"",pe.project.projectSubDir=ln.project.projectSubDir??"",pe.ai.mode=ln.ai.mode||"claude-internal",pe.ai.model=ln.ai.model??"Claude-4.6-Opus",pe.ai.phaseTimeoutMs=ln.ai.phaseTimeoutMs??18e5,pe.poll.discoveryIntervalMs=ln.poll?.discoveryIntervalMs??6e4,pe.poll.driveIntervalMs=ln.poll?.driveIntervalMs??15e3,pe.poll.maxRetries=ln.poll?.maxRetries??3,pe.poll.maxConcurrent=ln.poll?.maxConcurrent??3,pe.web.port=ln.web?.port??3e3,pe.pipeline.mode=ln.pipeline?.mode??"auto",pe.review.enabled=ln.review?.enabled??!0,pe.e2e.uatVendorDir=ln.e2e?.uatVendorDir??"",pe.e2e.uatConfigFile=ln.e2e?.uatConfigFile??"",pe.e2e.pythonBin=ln.e2e?.pythonBin??"python3",pe.release.enabled=ln.release?.enabled??!1,ke.value=Mt.configPath}catch(Pt){w.value=Pt.message}finally{m.value=!1}}async function Jt(){m.value=!0,w.value="";try{const Mt=await(await fetch("/api/setup/complete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:pe})})).json();return Mt.success?(ke.value=Mt.configPath??"",!0):(w.value=Mt.error??"Save failed",!1)}catch(Pt){return w.value=Pt.message,!1}finally{m.value=!1}}function xe(){ue.value=!ue.value}function Pe(){ue.value=!1,V.value||(U.value=[])}function Je(){ue.value=!0}function Bt(){d.value<b-1&&(d.value++,w.value="",d.value===5&&gt())}function wt(){d.value>0&&(d.value--,w.value="")}return{currentStep:d,totalSteps:b,loading:m,error:w,form:pe,dependencies:$,tokenValid:p,tokenUser:j,repoValid:I,repoInfo:N,configPreview:P,installLogs:U,installing:V,installingDep:X,installElapsed:ee,setupComplete:he,savedConfigPath:ke,logPanelVisible:ue,installResult:oe,lastInstallError:re,installPhase:ye,canProceed:be,checkEnv:se,validateToken:le,validateRepo:Ce,installDep:q,installAll:He,generatePreview:gt,completeSetup:ze,loadCurrentConfig:jt,saveConfig:Jt,nextStep:Bt,prevStep:wt,toggleLogPanel:xe,closeLogPanel:Pe,openLogPanel:Je}}function GW(a=""){return{name:a,projectPath:"",localGitRoot:"",projectSubDir:"",baseBranch:"master",branchPrefix:"feat/issue",role:""}}function emn(){const a=Ye(!1),d=Ye(!1),b=Ye(""),m=Ye(!1),w=Ye(null),$=Ye(void 0),p=Ye([]),j=i_({primary:GW("primary"),associates:[]}),I=En(()=>j.associates.length>0);async function N(){a.value=!0,b.value="";try{const X=await fetch("/api/setup/workspace-config");if(!X.ok){b.value=`Failed to load workspace config: HTTP ${X.status}`;return}const ee=await X.json();m.value=!!ee.configured,w.value=ee.configPath??null,ee.config&&(Object.assign(j.primary,ee.config.primary??GW("primary")),j.associates=(ee.config.associates??[]).map(K=>({...GW(),...K})))}catch(X){b.value=X.message}finally{a.value=!1}}async function P(){d.value=!0,b.value="";try{const X=await fetch("/api/setup/workspace-config",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:{primary:j.primary,associates:j.associates}})});if(!X.ok){const K=await X.json().catch(()=>({error:`HTTP ${X.status}`}));return b.value=K.error||`HTTP ${X.status}`,!1}const ee=await X.json();return w.value=ee.configPath??null,m.value=!0,!0}catch(X){return b.value=X.message,!1}finally{d.value=!1}}function U(){j.associates.push(GW(`associate-${j.associates.length+1}`))}function V(X){j.associates.splice(X,1)}return{loading:a,saving:d,error:b,configured:m,configPath:w,valid:$,validationErrors:p,workspace:j,hasAssociates:I,load:N,save:P,addAssociate:U,removeAssociate:V}}const Kbt=["clone","detect-python","install-playwright","install-chromium","configure","reload"];function tmn(){const a=Ye(!1),d=Ye([]),b=Ye(null),m=Ye(null),w=Ye(Kbt.map(P=>({name:P,status:"pending",message:""}))),$=En(()=>!a.value&&w.value.some(P=>P.status==="done"||P.status==="failed")),p=En(()=>$.value&&w.value.every(P=>P.status==="done"));function j(){a.value=!1,d.value=[],b.value=null,m.value=null,w.value=Kbt.map(P=>({name:P,status:"pending",message:""}))}async function I(){j(),a.value=!0;try{const P=await fetch("/api/setup/e2e-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(!P.ok){b.value=`HTTP ${P.status}`,a.value=!1;return}const U=P.body?.getReader();if(!U){b.value="No response body",a.value=!1;return}const V=new TextDecoder;let X="";for(;;){const{done:ee,value:K}=await U.read();if(ee)break;X+=V.decode(K,{stream:!0});const he=X.split(`
126
126
 
127
- `);X=he.pop()??"";for(const ke of he)if(ke.startsWith("data: "))try{const ue=JSON.parse(ke.slice(6));N(ue)}catch{}}}catch(P){b.value=P.message}finally{a.value=!1}}function N(P){if(P.done){a.value=!1;return}if(P.error){b.value=P.error;return}const U=P.step,V=w.value.findIndex(X=>X.name===U);V<0||(P.log&&d.value.push(`[${U}] ${P.log}`),P.status&&(w.value[V].status=P.status,P.message&&(w.value[V].message=P.message)),P.result&&(m.value=P.result))}return{running:a,logs:d,steps:w,error:b,result:m,finished:$,success:p,startSetup:I,reset:j}}const X2n={class:"space-y-4"},Y2n={class:"bg-gray-50 border border-gray-200 rounded-lg p-4"},Q2n={class:"flex items-center justify-between mb-2"},Z2n={class:"text-sm font-medium text-gray-800"},emn={class:"text-xs text-gray-500"},tmn=["disabled"],nmn={key:0,class:"mt-3 space-y-1"},imn={key:0,class:"text-gray-500 truncate"},rmn={key:1,class:"mt-2 text-xs text-red-600 bg-red-50 rounded px-3 py-2"},smn={key:2,class:"mt-2 text-xs text-green-700 bg-green-50 rounded px-3 py-2"},omn={key:3,class:"mt-2"},cmn={class:"text-xs text-gray-500"},umn={class:"block text-xs font-medium text-gray-700 mb-1"},lmn=["placeholder"],amn={class:"mt-1 text-xs text-gray-400"},fmn={class:"block text-xs font-medium text-gray-700 mb-1"},dmn=["placeholder"],hmn={class:"mt-1 text-xs text-gray-400"},gmn={class:"block text-xs font-medium text-gray-700 mb-1"},bmn=["placeholder"],pmn={class:"mt-1 text-xs text-gray-400"},wmn={key:0,class:"bg-blue-50 border border-blue-200 rounded-lg px-4 py-3 text-sm text-blue-700"},vmn={class:"font-medium"},mmn={class:"text-xs mt-1"},ymn=wr({__name:"E2eConfigSection",props:{form:{}},emits:["e2e-setup-done"],setup(a,{emit:d}){const b=a,m=d,{t:w}=Kg(),{running:$,logs:p,steps:j,error:I,result:N,finished:P,success:U,startSetup:V}=W2n(),X=En(()=>!!b.form.e2e.uatVendorDir.trim()),ee=Ye(!1),K=Ye(null),he={clone:"settings.e2e.step.clone","detect-python":"settings.e2e.step.detectPython","install-playwright":"settings.e2e.step.installPw","install-chromium":"settings.e2e.step.installBrowser",configure:"settings.e2e.step.configure",reload:"settings.e2e.step.reload"},ke=ue=>{switch(ue){case"done":return"✅";case"failed":return"❌";case"running":return"⏳";default:return"⭕"}};return Jr(U,ue=>{ue&&N.value&&m("e2e-setup-done",{vendorDir:N.value.vendorDir,pythonBin:N.value.pythonBin})}),Jr(()=>p.value.length,async()=>{await _1(),K.value&&(K.value.scrollTop=K.value.scrollHeight)}),(ue,oe)=>(R(),J("div",X2n,[E("div",Y2n,[E("div",Q2n,[E("div",null,[E("p",Z2n,M(A(w)("settings.e2e.oneClickSetup")),1),E("p",emn,M(A(w)("settings.e2e.oneClickSetupHint")),1)]),E("button",{disabled:A($),class:wn(["px-4 py-2 text-sm font-medium text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",A($)?"bg-gray-400":"bg-blue-600 hover:bg-blue-700"]),onClick:oe[0]||(oe[0]=(...re)=>A(V)&&A(V)(...re))},M(A($)?A(w)("settings.e2e.setupRunning"):A(w)("settings.e2e.oneClickSetup")),11,tmn)]),A($)||A(P)?(R(),J("div",nmn,[(R(!0),J(sn,null,bi(A(j),re=>(R(),J("div",{key:re.name,class:"flex items-center gap-2 text-xs"},[E("span",null,M(ke(re.status)),1),E("span",{class:wn(["font-medium",{"text-gray-400":re.status==="pending","text-blue-600":re.status==="running","text-green-600":re.status==="done","text-red-600":re.status==="failed"}])},M(A(w)(he[re.name]||re.name)),3),re.message?(R(),J("span",imn,"— "+M(re.message),1)):Ae("",!0)]))),128))])):Ae("",!0),A(I)?(R(),J("div",rmn,M(A(I)),1)):Ae("",!0),A(U)?(R(),J("div",smn,M(A(w)("settings.e2e.setupSuccess")),1)):Ae("",!0),A(p).length>0?(R(),J("div",omn,[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:oe[1]||(oe[1]=re=>ee.value=!ee.value)},M(ee.value?A(w)("settings.e2e.hideLogs"):A(w)("settings.e2e.showLogs"))+" ("+M(A(p).length)+") ",1),ee.value?(R(),J("div",{key:0,ref_key:"logContainer",ref:K,class:"mt-1 max-h-48 overflow-y-auto bg-gray-900 text-gray-200 text-xs font-mono rounded p-3"},[(R(!0),J(sn,null,bi(A(p),(re,ye)=>(R(),J("div",{key:ye,class:"whitespace-pre-wrap break-all"},M(re),1))),128))],512)):Ae("",!0)])):Ae("",!0)]),E("p",cmn,M(A(w)("settings.e2e.hint")),1),E("div",null,[E("label",umn,M(A(w)("settings.e2e.uatVendorDir")),1),Nn(E("input",{"onUpdate:modelValue":oe[2]||(oe[2]=re=>a.form.e2e.uatVendorDir=re),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:A(w)("settings.e2e.uatVendorDirPlaceholder")},null,8,lmn),[[Ci,a.form.e2e.uatVendorDir]]),E("p",amn,M(A(w)("settings.e2e.uatVendorDirHint")),1)]),E("div",null,[E("label",fmn,M(A(w)("settings.e2e.uatConfigFile")),1),Nn(E("input",{"onUpdate:modelValue":oe[3]||(oe[3]=re=>a.form.e2e.uatConfigFile=re),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:A(w)("settings.e2e.uatConfigFilePlaceholder")},null,8,dmn),[[Ci,a.form.e2e.uatConfigFile]]),E("p",hmn,M(A(w)("settings.e2e.uatConfigFileHint")),1)]),E("div",null,[E("label",gmn,M(A(w)("settings.e2e.pythonBin")),1),Nn(E("input",{"onUpdate:modelValue":oe[4]||(oe[4]=re=>a.form.e2e.pythonBin=re),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:A(w)("settings.e2e.pythonBinPlaceholder")},null,8,bmn),[[Ci,a.form.e2e.pythonBin]]),E("p",pmn,M(A(w)("settings.e2e.pythonBinHint")),1)]),X.value?(R(),J("div",wmn,[E("p",vmn,M(A(w)("settings.e2e.skillDetected")),1),E("p",mmn,M(A(w)("settings.e2e.skillDetectedHint")),1)])):Ae("",!0)]))}}),kmn={class:"space-y-4"},xmn={class:"flex items-center justify-between"},$mn={class:"text-lg font-bold text-gray-800"},Emn={key:0,class:"text-xs text-gray-400"},Cmn={class:"bg-gray-100 px-1.5 py-0.5 rounded"},Smn={key:0,class:"flex items-center gap-2 text-gray-500 py-8 justify-center"},_mn={key:0,class:"bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 text-sm"},jmn={key:1,class:"bg-green-50 border border-green-200 text-green-700 rounded-lg px-4 py-3 text-sm"},Imn={class:"font-medium"},Amn={class:"mt-1 text-xs"},Tmn={key:2,class:"bg-yellow-50 border border-yellow-200 text-yellow-700 rounded-lg px-4 py-3 text-sm"},Mmn={class:"font-medium"},Pmn={class:"mt-1 text-xs"},Dmn={class:"border border-gray-200 rounded-lg overflow-hidden"},Omn={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},Lmn={class:"block text-sm font-medium text-gray-700 mb-1"},Nmn=["placeholder"],Rmn={class:"mt-1 text-xs text-gray-500"},Fmn={class:"border border-gray-200 rounded-lg"},Bmn={key:0,class:"px-4 pb-4 space-y-4 border-t border-gray-200 pt-4"},Hmn={class:"text-xs text-gray-400"},Gmn={class:"block text-sm font-medium text-gray-700 mb-1"},Jmn=["placeholder"],Umn={class:"mt-1 text-xs text-gray-500"},zmn={class:"grid grid-cols-2 gap-4"},qmn={class:"block text-sm font-medium text-gray-700 mb-1"},Vmn={class:"mt-1 text-xs text-gray-500"},Kmn={class:"block text-sm font-medium text-gray-700 mb-1"},Wmn={class:"mt-1 text-xs text-gray-500"},Xmn={class:"block text-sm font-medium text-gray-700 mb-1"},Ymn=["placeholder"],Qmn={class:"mt-1 text-xs text-gray-500"},Zmn={class:"block text-sm font-medium text-gray-700 mb-1"},eyn=["placeholder"],tyn={class:"mt-1 text-xs text-gray-500"},nyn={class:"border border-gray-200 rounded-lg overflow-hidden"},iyn={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},ryn={class:"block text-sm font-medium text-gray-700 mb-1"},syn={class:"mt-1 text-xs text-gray-500"},oyn={class:"block text-sm font-medium text-gray-700 mb-1"},cyn={class:"flex gap-2"},uyn=["placeholder"],lyn=["disabled"],ayn={class:"mt-1 text-xs text-gray-500"},fyn={key:0,class:"mt-1 text-xs text-green-600"},dyn={key:1,class:"mt-1 text-xs text-red-600"},hyn={class:"block text-sm font-medium text-gray-700 mb-1"},gyn={class:"flex gap-2"},byn=["placeholder"],pyn=["disabled"],wyn={class:"mt-1 text-xs text-gray-500"},vyn={key:0,class:"mt-1 text-xs text-green-600"},myn={key:1,class:"mt-1 text-xs text-red-600"},yyn={class:"border border-gray-200 rounded-lg overflow-hidden"},kyn={class:"flex items-center gap-2"},xyn={key:0,class:"text-xs font-normal text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},$yn={key:1,class:"text-xs font-normal text-gray-400 bg-gray-100 px-1.5 py-0.5 rounded"},Eyn={key:0,class:"px-5 py-4 space-y-5 border-t border-gray-200"},Cyn={class:"text-xs text-gray-500 leading-relaxed"},Syn={key:0,class:"text-xs text-gray-400"},_yn={class:"bg-gray-100 px-1.5 py-0.5 rounded font-mono"},jyn={key:1,class:"bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 text-sm"},Iyn={class:"font-medium mb-1"},Ayn={class:"list-disc list-inside text-xs space-y-0.5"},Tyn={class:"border border-blue-200 rounded-lg overflow-hidden"},Myn={class:"px-4 py-2.5 bg-blue-50 border-b border-blue-200 flex items-center gap-2"},Pyn={class:"text-sm font-semibold text-blue-800"},Dyn={class:"px-4 py-4 space-y-3"},Oyn={class:"grid grid-cols-2 gap-3"},Lyn={class:"block text-xs font-medium text-gray-700 mb-1"},Nyn={class:"block text-xs font-medium text-gray-700 mb-1"},Ryn=["placeholder"],Fyn={class:"block text-xs font-medium text-gray-700 mb-1"},Byn=["placeholder"],Hyn={key:0,class:"grid grid-cols-3 gap-3 pt-1"},Gyn={class:"block text-xs font-medium text-gray-500 mb-1"},Jyn={class:"block text-xs font-medium text-gray-500 mb-1"},Uyn={class:"block text-xs font-medium text-gray-500 mb-1"},zyn=["placeholder"],qyn={class:"space-y-3"},Vyn={class:"flex items-center justify-between"},Kyn={class:"text-sm font-medium text-gray-700 flex items-center gap-2"},Wyn={key:0,class:"text-xs font-normal text-gray-400 tabular-nums"},Xyn={key:0,class:"border border-dashed border-gray-300 rounded-lg px-4 py-6 text-center"},Yyn={class:"text-xs text-gray-400"},Qyn=["onClick"],Zyn={class:"text-sm font-medium text-gray-700 truncate"},e3n={key:0,class:"text-xs text-gray-400 truncate hidden sm:inline font-mono"},t3n={key:1,class:"ml-auto text-xs text-gray-400 bg-gray-100 px-1.5 py-0.5 rounded flex-shrink-0"},n3n=["title","onClick"],i3n={key:0,class:"px-4 py-4 space-y-3 border-t border-gray-200"},r3n={class:"grid grid-cols-3 gap-3"},s3n={class:"block text-xs font-medium text-gray-700 mb-1"},o3n=["onUpdate:modelValue","placeholder"],c3n={class:"block text-xs font-medium text-gray-700 mb-1"},u3n=["onUpdate:modelValue","placeholder"],l3n={class:"block text-xs font-medium text-gray-700 mb-1"},a3n=["onUpdate:modelValue","placeholder"],f3n={class:"block text-xs font-medium text-gray-700 mb-1"},d3n=["onUpdate:modelValue","placeholder"],h3n=["onClick"],g3n={key:0,class:"grid grid-cols-3 gap-3 pt-1"},b3n={class:"block text-xs font-medium text-gray-500 mb-1"},p3n=["onUpdate:modelValue"],w3n={class:"block text-xs font-medium text-gray-500 mb-1"},v3n=["onUpdate:modelValue"],m3n={class:"block text-xs font-medium text-gray-500 mb-1"},y3n=["onUpdate:modelValue","placeholder"],k3n={class:"border border-gray-200 rounded-lg overflow-hidden"},x3n={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},$3n={class:"block text-sm font-medium text-gray-700 mb-3"},E3n={class:"grid grid-cols-3 gap-3"},C3n={class:"font-medium text-sm"},S3n={class:"text-xs text-gray-500 mt-1"},_3n={class:"font-medium text-sm"},j3n={class:"text-xs text-gray-500 mt-1"},I3n={class:"font-medium text-sm"},A3n={class:"text-xs text-gray-500 mt-1"},T3n={class:"block text-sm font-medium text-gray-700 mb-1"},M3n={class:"mt-1 text-xs text-gray-500"},P3n={class:"border-t border-gray-200 pt-4"},D3n={class:"flex items-center justify-between mb-2"},O3n={class:"text-sm font-medium text-gray-700"},L3n=["disabled"],N3n={key:0,class:"animate-spin h-3 w-3",viewBox:"0 0 24 24"},R3n={key:0,class:"space-y-3"},F3n={class:"flex items-center gap-2 text-sm"},B3n={key:0,class:"text-xs text-yellow-600 bg-yellow-100 px-2 py-0.5 rounded-full"},H3n={key:1,class:"inline-flex items-center gap-1 text-xs text-green-600 bg-green-100 px-2 py-0.5 rounded-full"},G3n={key:2,class:"inline-flex items-center gap-1 text-xs text-orange-600 bg-orange-100 px-2 py-0.5 rounded-full"},J3n={key:3,class:"inline-flex items-center gap-1 text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full"},U3n={key:0,class:"rounded-lg border border-orange-300 bg-orange-50 p-3"},z3n={class:"text-xs text-orange-700"},q3n={class:"border border-gray-200 rounded-lg overflow-hidden"},V3n={class:"flex items-center gap-2"},K3n={key:0,class:"text-xs font-normal text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},W3n={key:0,class:"px-5 py-4 border-t border-gray-200"},X3n={class:"border border-gray-200 rounded-lg overflow-hidden"},Y3n={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},Q3n={class:"grid grid-cols-2 gap-4"},Z3n={class:"block text-sm font-medium text-gray-700 mb-1"},e5n={class:"mt-1 text-xs text-gray-500"},t5n={class:"block text-sm font-medium text-gray-700 mb-1"},n5n={class:"mt-1 text-xs text-gray-500"},i5n={class:"grid grid-cols-2 gap-4"},r5n={class:"block text-sm font-medium text-gray-700 mb-1"},s5n={class:"mt-1 text-xs text-gray-500"},o5n={class:"block text-sm font-medium text-gray-700 mb-1"},c5n={class:"mt-1 text-xs text-gray-500"},u5n={class:"grid grid-cols-2 gap-4"},l5n={class:"block text-sm font-medium text-gray-700 mb-1"},a5n={class:"mt-1 text-xs text-gray-500"},f5n={class:"block text-sm font-medium text-gray-700 mb-1"},d5n={value:"auto"},h5n={value:"plan-mode"},g5n={class:"mt-1 text-xs text-gray-500"},b5n={class:"flex items-center gap-2"},p5n={for:"settings-review-enabled",class:"text-sm text-gray-700"},w5n={class:"mt-1 text-xs text-gray-500 ml-5"},v5n={class:"flex items-center gap-2"},m5n={for:"settings-release-enabled",class:"text-sm text-gray-700"},y5n={class:"mt-1 text-xs text-gray-500 ml-5"},k5n={class:"block text-sm font-medium text-gray-700 mb-1"},x5n={class:"mt-1 text-xs text-gray-500"},$5n={class:"border border-gray-200 rounded-lg overflow-hidden"},E5n={class:"flex items-center gap-2"},C5n={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},S5n={class:"text-xs text-gray-500"},_5n={class:"text-sm font-medium text-gray-700"},j5n=["disabled","aria-checked","onClick"],I5n={class:"flex items-center justify-between pt-2"},A5n={class:"text-xs text-gray-400"},T5n=["disabled"],M5n={key:0,class:"flex items-center gap-2"},P5n={key:1,class:"flex items-center gap-2"},D5n={key:2},O5n={key:3},L5n=wr({__name:"SettingsPanel",props:{systemStatus:{}},setup(a){const d=a,{loading:b,error:m,form:w,dependencies:$,tokenValid:p,tokenUser:j,repoValid:I,repoInfo:N,savedConfigPath:P,validateToken:U,validateRepo:V,loadCurrentConfig:X,saveConfig:ee,checkEnv:K}=c2t(),he=K2n(),ke=Ye(!1),ue=Ye({}),oe=Ye({});function re(xe){ue.value[xe]=!ue.value[xe]}function ye(xe){oe.value[xe]=!oe.value[xe]}function pe(){he.addAssociate();const xe=he.workspace.associates.length-1;ue.value[xe]=!0}function be(xe){he.removeAssociate(xe),delete ue.value[xe],delete oe.value[xe]}const se=Ye({project:!0,gongfeng:!0,ai:!1,workspace:!1,e2e:!1,advanced:!1,experimental:!1}),le=Ye("idle"),Ce=Ye(!1),Se=Ye(!1),te=Ye({brainstorm:!1,braindump:!1,chat:!1,knowledge:!1,distill:!1}),q=Ye({});Jr(()=>d.systemStatus,xe=>{xe?.config&&(te.value={brainstorm:xe.config.brainstormEnabled??!1,braindump:xe.config.braindumpEnabled??!1,chat:xe.config.chatEnabled??!1,knowledge:xe.config.knowledgeEnabled??!1,distill:xe.config.distillEnabled??!1})},{immediate:!0});async function He(xe,Pe){q.value[xe]=!0;try{await NKt(xe,Pe),te.value[xe]=Pe}catch(Je){te.value[xe]=!Pe,console.error("Toggle feature failed",Je)}finally{q.value[xe]=!1}}const gt=En(()=>$.value.find(xe=>xe.name===w.ai.mode));function ze(xe){se.value[xe]=!se.value[xe]}async function jt(){if(le.value="saving",await ee()){(he.configured.value||he.workspace.primary.projectPath)&&await he.save(),le.value="reloading";try{const Pe=await sWt();Pe.success?le.value="saved":Pe.reason==="active-issues-timeout"?le.value="saved-pending":le.value="saved"}catch{le.value="saved"}setTimeout(()=>{le.value="idle"},5e3)}else le.value="failed"}async function Jt(){Se.value=!0,await K(!0),Se.value=!1}return gl(()=>{X(),K(!0),he.load()}),(xe,Pe)=>(R(),J("div",kmn,[E("div",xmn,[E("h2",$mn,M(xe.$t("settings.title")),1),A(P)?(R(),J("div",Emn,[ci(M(xe.$t("settings.configPath"))+" ",1),E("code",Cmn,M(A(P)),1)])):Ae("",!0)]),A(b)&&le.value!=="saving"?(R(),J("div",Smn,[Pe[40]||(Pe[40]=E("svg",{class:"animate-spin h-5 w-5",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(xe.$t("settings.loading")),1)])):(R(),J(sn,{key:1},[A(m)?(R(),J("div",_mn,M(A(m)),1)):Ae("",!0),le.value==="saved"?(R(),J("div",jmn,[E("div",Imn,M(xe.$t("settings.saved")),1),E("p",Amn,M(xe.$t("settings.savedAndApplied")??xe.$t("settings.savedHint")),1)])):Ae("",!0),le.value==="saved-pending"?(R(),J("div",Tmn,[E("div",Mmn,M(xe.$t("settings.saved")),1),E("p",Pmn,M(xe.$t("settings.savedPendingHint")??xe.$t("settings.savedHint")),1)])):Ae("",!0),E("div",Dmn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[0]||(Pe[0]=Je=>ze("project"))},[E("span",null,M(xe.$t("settings.section.project")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.project?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[41]||(Pe[41]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.project?(R(),J("div",Omn,[E("div",null,[E("label",Lmn,M(xe.$t("setup.project.workDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[1]||(Pe[1]=Je=>A(w).project.workDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.workDirPlaceholder")},null,8,Nmn),[[Ci,A(w).project.workDir]]),E("p",Rmn,M(xe.$t("setup.project.workDirHint")),1)]),E("div",Fmn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-2.5 text-sm text-gray-600 hover:bg-gray-50 transition-colors rounded-lg",onClick:Pe[2]||(Pe[2]=Je=>Ce.value=!Ce.value)},[E("span",null,M(xe.$t("setup.project.advancedToggle")),1),(R(),J("svg",{class:wn(["h-4 w-4 transition-transform",Ce.value?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[42]||(Pe[42]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),Ce.value?(R(),J("div",Bmn,[E("p",Hmn,M(xe.$t("setup.project.advancedHint")),1),E("div",null,[E("label",Gmn,M(xe.$t("setup.project.gitRootDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[3]||(Pe[3]=Je=>A(w).project.gitRootDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.gitRootDirPlaceholder")},null,8,Jmn),[[Ci,A(w).project.gitRootDir]]),E("p",Umn,M(xe.$t("setup.project.gitRootDirHint")),1)]),E("div",zmn,[E("div",null,[E("label",qmn,M(xe.$t("setup.project.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":Pe[4]||(Pe[4]=Je=>A(w).project.baseBranch=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).project.baseBranch]]),E("p",Vmn,M(xe.$t("setup.project.baseBranchHint")),1)]),E("div",null,[E("label",Kmn,M(xe.$t("setup.project.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":Pe[5]||(Pe[5]=Je=>A(w).project.branchPrefix=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).project.branchPrefix]]),E("p",Wmn,M(xe.$t("setup.project.branchPrefixHint")),1)])]),E("div",null,[E("label",Xmn,M(xe.$t("setup.project.worktreeBaseDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[6]||(Pe[6]=Je=>A(w).project.worktreeBaseDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.worktreeBaseDirPlaceholder")},null,8,Ymn),[[Ci,A(w).project.worktreeBaseDir]]),E("p",Qmn,M(xe.$t("setup.project.worktreeBaseDirHint")),1)]),E("div",null,[E("label",Zmn,M(xe.$t("setup.project.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[7]||(Pe[7]=Je=>A(w).project.projectSubDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.projectSubDirPlaceholder")},null,8,eyn),[[Ci,A(w).project.projectSubDir]]),E("p",tyn,M(xe.$t("setup.project.projectSubDirHint")),1)])])):Ae("",!0)])])):Ae("",!0)]),E("div",nyn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[8]||(Pe[8]=Je=>ze("gongfeng"))},[E("span",null,M(xe.$t("settings.section.gongfeng")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.gongfeng?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[43]||(Pe[43]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.gongfeng?(R(),J("div",iyn,[E("div",null,[E("label",ryn,M(xe.$t("setup.gongfeng.apiUrl")),1),Nn(E("input",{"onUpdate:modelValue":Pe[9]||(Pe[9]=Je=>A(w).gongfeng.apiUrl=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:"https://git.woa.com/"},null,512),[[Ci,A(w).gongfeng.apiUrl]]),E("p",syn,M(xe.$t("setup.gongfeng.apiUrlHint")),1)]),E("div",null,[E("label",oyn,M(xe.$t("setup.gongfeng.privateToken")),1),E("div",cyn,[Nn(E("input",{"onUpdate:modelValue":Pe[10]||(Pe[10]=Je=>A(w).gongfeng.privateToken=Je),type:"password",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.gongfeng.tokenPlaceholder")},null,8,uyn),[[Ci,A(w).gongfeng.privateToken]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(w).gongfeng.apiUrl||!A(w).gongfeng.privateToken,onClick:Pe[11]||(Pe[11]=(...Je)=>A(U)&&A(U)(...Je))},M(xe.$t("setup.gongfeng.verify")),9,lyn)]),E("p",ayn,M(xe.$t("setup.gongfeng.tokenHint")),1),A(p)===!0?(R(),J("div",fyn,M(xe.$t("setup.gongfeng.tokenValid"))+M(A(j)?.name?` (${A(j).name})`:""),1)):A(p)===!1?(R(),J("div",dyn,M(xe.$t("setup.gongfeng.tokenInvalid")),1)):Ae("",!0)]),E("div",null,[E("label",hyn,M(xe.$t("setup.gongfeng.projectPath")),1),E("div",gyn,[Nn(E("input",{"onUpdate:modelValue":Pe[12]||(Pe[12]=Je=>A(w).gongfeng.projectPath=Je),type:"text",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.gongfeng.projectPathPlaceholder")},null,8,byn),[[Ci,A(w).gongfeng.projectPath]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(w).gongfeng.apiUrl||!A(w).gongfeng.privateToken||!A(w).gongfeng.projectPath,onClick:Pe[13]||(Pe[13]=(...Je)=>A(V)&&A(V)(...Je))},M(xe.$t("setup.gongfeng.verify")),9,pyn)]),E("p",wyn,M(xe.$t("setup.gongfeng.projectPathHint")),1),A(I)===!0?(R(),J("div",vyn,M(xe.$t("setup.gongfeng.repoFound"))+M(A(N)?.name?`: ${A(N).name}`:""),1)):A(I)===!1?(R(),J("div",myn,M(xe.$t("setup.gongfeng.repoNotFound")),1)):Ae("",!0)])])):Ae("",!0)]),E("div",yyn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[14]||(Pe[14]=Je=>ze("workspace"))},[E("span",kyn,[ci(M(xe.$t("settings.section.workspace"))+" ",1),A(he).configured.value&&A(he).valid.value?(R(),J("span",xyn,M(xe.$t("settings.workspace.active")),1)):A(he).configured.value?Ae("",!0):(R(),J("span",$yn,M(xe.$t("settings.workspace.notConfigured")),1))]),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.workspace?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[44]||(Pe[44]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.workspace?(R(),J("div",Eyn,[E("p",Cyn,M(xe.$t("settings.workspace.hint")),1),A(he).configPath.value?(R(),J("div",Syn,[ci(M(xe.$t("settings.workspace.configPath"))+" ",1),E("code",_yn,M(A(he).configPath.value),1)])):Ae("",!0),A(he).validationErrors.value.length>0?(R(),J("div",jyn,[E("div",Iyn,M(xe.$t("settings.workspace.validationFailed")),1),E("ul",Ayn,[(R(!0),J(sn,null,bi(A(he).validationErrors.value,(Je,Bt)=>(R(),J("li",{key:Bt},M(Je),1))),128))])])):Ae("",!0),E("div",Tyn,[E("div",Myn,[Pe[45]||(Pe[45]=E("svg",{class:"h-4 w-4 text-blue-600 flex-shrink-0",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{d:"M10.75 4.75a.75.75 0 00-1.5 0v4.5h-4.5a.75.75 0 000 1.5h4.5v4.5a.75.75 0 001.5 0v-4.5h4.5a.75.75 0 000-1.5h-4.5v-4.5z"})],-1)),E("h4",Pyn,M(xe.$t("settings.workspace.primaryRepo")),1)]),E("div",Dyn,[E("div",Oyn,[E("div",null,[E("label",Lyn,[ci(M(xe.$t("settings.workspace.repoName"))+" ",1),Pe[46]||(Pe[46]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":Pe[15]||(Pe[15]=Je=>A(he).workspace.primary.name=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:"primary"},null,512),[[Ci,A(he).workspace.primary.name]])]),E("div",null,[E("label",Nyn,[ci(M(xe.$t("settings.workspace.projectPath"))+" ",1),Pe[47]||(Pe[47]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":Pe[16]||(Pe[16]=Je=>A(he).workspace.primary.projectPath=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.projectPathPlaceholder")},null,8,Ryn),[[Ci,A(he).workspace.primary.projectPath]])])]),E("div",null,[E("label",Fyn,[ci(M(xe.$t("settings.workspace.localGitRoot"))+" ",1),Pe[48]||(Pe[48]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":Pe[17]||(Pe[17]=Je=>A(he).workspace.primary.localGitRoot=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.localGitRootPlaceholder")},null,8,Byn),[[Ci,A(he).workspace.primary.localGitRoot]])]),E("button",{type:"button",class:"inline-flex items-center gap-1 text-xs text-gray-500 hover:text-gray-700 transition-colors pt-1",onClick:Pe[18]||(Pe[18]=Je=>ke.value=!ke.value)},[(R(),J("svg",{class:wn(["h-3 w-3 transition-transform",ke.value?"rotate-90":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[49]||(Pe[49]=[E("path",{"fill-rule":"evenodd",d:"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z","clip-rule":"evenodd"},null,-1)])],2)),ci(" "+M(xe.$t("settings.workspace.advancedToggle")),1)]),ke.value?(R(),J("div",Hyn,[E("div",null,[E("label",Gyn,M(xe.$t("settings.workspace.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":Pe[19]||(Pe[19]=Je=>A(he).workspace.primary.baseBranch=Je),type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"master"},null,512),[[Ci,A(he).workspace.primary.baseBranch]])]),E("div",null,[E("label",Jyn,M(xe.$t("settings.workspace.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":Pe[20]||(Pe[20]=Je=>A(he).workspace.primary.branchPrefix=Je),type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"feat/issue"},null,512),[[Ci,A(he).workspace.primary.branchPrefix]])]),E("div",null,[E("label",Uyn,M(xe.$t("settings.workspace.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[21]||(Pe[21]=Je=>A(he).workspace.primary.projectSubDir=Je),type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:xe.$t("settings.workspace.projectSubDirPlaceholder")},null,8,zyn),[[Ci,A(he).workspace.primary.projectSubDir]])])])):Ae("",!0)])]),E("div",qyn,[E("div",Vyn,[E("h4",Kyn,[ci(M(xe.$t("settings.workspace.associateRepos"))+" ",1),A(he).hasAssociates.value?(R(),J("span",Wyn,M(A(he).workspace.associates.length),1)):Ae("",!0)]),E("button",{type:"button",class:"inline-flex items-center gap-1 px-3 py-1.5 text-xs font-medium text-blue-700 bg-blue-50 rounded-lg hover:bg-blue-100 transition-colors",onClick:pe},[Pe[50]||(Pe[50]=E("svg",{class:"h-3.5 w-3.5",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z"})],-1)),ci(" "+M(xe.$t("settings.workspace.addRepo")),1)])]),A(he).hasAssociates.value?Ae("",!0):(R(),J("div",Xyn,[E("p",Yyn,M(xe.$t("settings.workspace.noAssociates")),1)])),(R(!0),J(sn,null,bi(A(he).workspace.associates,(Je,Bt)=>(R(),J("div",{key:Bt,class:"border border-gray-200 rounded-lg overflow-hidden transition-shadow hover:shadow-sm"},[E("div",{class:"flex items-center gap-3 px-4 py-2.5 bg-gray-50 cursor-pointer select-none",onClick:wt=>re(Bt)},[(R(),J("svg",{class:wn(["h-3.5 w-3.5 text-gray-400 transition-transform flex-shrink-0",ue.value[Bt]?"rotate-90":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[51]||(Pe[51]=[E("path",{"fill-rule":"evenodd",d:"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z","clip-rule":"evenodd"},null,-1)])],2)),E("span",Zyn,M(Je.name||"associate-"+(Bt+1)),1),Je.projectPath?(R(),J("span",e3n,M(Je.projectPath),1)):Ae("",!0),Je.role?(R(),J("span",t3n,M(Je.role),1)):Ae("",!0),E("button",{type:"button",class:"ml-auto p-1 text-gray-400 hover:text-red-500 transition-colors flex-shrink-0",title:xe.$t("settings.workspace.removeRepo"),onClick:Ah(wt=>be(Bt),["stop"])},[...Pe[52]||(Pe[52]=[E("svg",{class:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{"fill-rule":"evenodd",d:"M8.75 1A2.75 2.75 0 006 3.75v.443c-.795.077-1.584.176-2.365.298a.75.75 0 10.23 1.482l.149-.022.841 10.518A2.75 2.75 0 007.596 19h4.807a2.75 2.75 0 002.742-2.53l.841-10.52.149.023a.75.75 0 00.23-1.482A41.03 41.03 0 0014 4.193V3.75A2.75 2.75 0 0011.25 1h-2.5zM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4zM8.58 7.72a.75.75 0 01.78.72l.5 6a.75.75 0 01-1.49.12l-.5-6a.75.75 0 01.71-.84zm2.84 0a.75.75 0 01.71.84l-.5 6a.75.75 0 11-1.49-.12l.5-6a.75.75 0 01.78-.72z","clip-rule":"evenodd"})],-1)])],8,n3n)],8,Qyn),ue.value[Bt]?(R(),J("div",i3n,[E("div",r3n,[E("div",null,[E("label",s3n,[ci(M(xe.$t("settings.workspace.repoName"))+" ",1),Pe[53]||(Pe[53]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":wt=>Je.name=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:"associate-"+(Bt+1)},null,8,o3n),[[Ci,Je.name]])]),E("div",null,[E("label",c3n,[ci(M(xe.$t("settings.workspace.projectPath"))+" ",1),Pe[54]||(Pe[54]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":wt=>Je.projectPath=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.projectPathPlaceholder")},null,8,u3n),[[Ci,Je.projectPath]])]),E("div",null,[E("label",l3n,M(xe.$t("settings.workspace.role")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.role=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.rolePlaceholder")},null,8,a3n),[[Ci,Je.role]])])]),E("div",null,[E("label",f3n,[ci(M(xe.$t("settings.workspace.localGitRoot"))+" ",1),Pe[55]||(Pe[55]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":wt=>Je.localGitRoot=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.localGitRootPlaceholder")},null,8,d3n),[[Ci,Je.localGitRoot]])]),E("button",{type:"button",class:"inline-flex items-center gap-1 text-xs text-gray-500 hover:text-gray-700 transition-colors pt-1",onClick:wt=>ye(Bt)},[(R(),J("svg",{class:wn(["h-3 w-3 transition-transform",oe.value[Bt]?"rotate-90":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[56]||(Pe[56]=[E("path",{"fill-rule":"evenodd",d:"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z","clip-rule":"evenodd"},null,-1)])],2)),ci(" "+M(xe.$t("settings.workspace.advancedToggle")),1)],8,h3n),oe.value[Bt]?(R(),J("div",g3n,[E("div",null,[E("label",b3n,M(xe.$t("settings.workspace.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.baseBranch=wt,type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"master"},null,8,p3n),[[Ci,Je.baseBranch]])]),E("div",null,[E("label",w3n,M(xe.$t("settings.workspace.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.branchPrefix=wt,type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"feat/issue"},null,8,v3n),[[Ci,Je.branchPrefix]])]),E("div",null,[E("label",m3n,M(xe.$t("settings.workspace.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.projectSubDir=wt,type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:xe.$t("settings.workspace.projectSubDirPlaceholder")},null,8,y3n),[[Ci,Je.projectSubDir]])])])):Ae("",!0)])):Ae("",!0)]))),128))])])):Ae("",!0)]),E("div",k3n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[22]||(Pe[22]=Je=>ze("ai"))},[E("span",null,M(xe.$t("settings.section.ai")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.ai?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[57]||(Pe[57]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.ai?(R(),J("div",x3n,[E("div",null,[E("label",$3n,M(xe.$t("setup.ai.modeLabel")),1),E("div",E3n,[E("button",{class:wn(["p-3 rounded-lg border-2 text-left transition-colors",A(w).ai.mode==="claude-internal"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:Pe[23]||(Pe[23]=Je=>A(w).ai.mode="claude-internal")},[E("div",C3n,M(xe.$t("setup.ai.claudeInternal")),1),E("div",S3n,M(xe.$t("setup.ai.claudeInternalDesc")),1)],2),E("button",{class:wn(["p-3 rounded-lg border-2 text-left transition-colors",A(w).ai.mode==="cursor-agent"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:Pe[24]||(Pe[24]=Je=>A(w).ai.mode="cursor-agent")},[E("div",_3n,M(xe.$t("setup.ai.cursorAgent")),1),E("div",j3n,M(xe.$t("setup.ai.cursorAgentDesc")),1)],2),E("button",{class:wn(["p-3 rounded-lg border-2 text-left transition-colors",A(w).ai.mode==="codebuddy"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:Pe[25]||(Pe[25]=Je=>A(w).ai.mode="codebuddy")},[E("div",I3n,M(xe.$t("setup.ai.codebuddy")),1),E("div",A3n,M(xe.$t("setup.ai.codebuddyDesc")),1)],2)])]),E("div",null,[E("label",T3n,M(xe.$t("setup.ai.model")),1),Nn(E("input",{"onUpdate:modelValue":Pe[26]||(Pe[26]=Je=>A(w).ai.model=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).ai.model]]),E("p",M3n,M(xe.$t("setup.ai.modelHint")),1)]),E("div",P3n,[E("div",D3n,[E("p",O3n,M(xe.$t("setup.ai.cliStatus")),1),E("button",{class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium text-gray-600 bg-gray-100 rounded-lg hover:bg-gray-200 disabled:opacity-50 transition-colors",disabled:Se.value,onClick:Jt},[Se.value?(R(),J("svg",N3n,[...Pe[58]||(Pe[58]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):Ae("",!0),ci(" "+M(xe.$t("setup.ai.authRefresh")),1)],8,L3n)]),gt.value?(R(),J("div",R3n,[E("div",F3n,[E("span",null,M(gt.value.displayName),1),gt.value.installed?gt.value.authStatus==="logged_in"?(R(),J("span",H3n,"✅ "+M(xe.$t("setup.ai.authLoggedIn")),1)):gt.value.authStatus==="not_logged_in"?(R(),J("span",G3n,"⚠️ "+M(xe.$t("setup.ai.authNotLoggedIn")),1)):gt.value.authStatus==="unknown"?(R(),J("span",J3n,"❓ "+M(xe.$t("setup.ai.authUnknown")),1)):Ae("",!0):(R(),J("span",B3n,M(xe.$t("setup.env.notInstalled")),1))]),gt.value.installed&&gt.value.authStatus==="not_logged_in"?(R(),J("div",U3n,[E("p",z3n,M(xe.$t("setup.ai.authLoginHint")),1)])):Ae("",!0)])):Ae("",!0)])])):Ae("",!0)]),E("div",q3n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[27]||(Pe[27]=Je=>ze("e2e"))},[E("span",V3n,[ci(M(xe.$t("settings.section.e2e"))+" ",1),A(w).e2e.uatVendorDir?(R(),J("span",K3n,M(xe.$t("settings.e2e.configured")),1)):Ae("",!0)]),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.e2e?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[59]||(Pe[59]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.e2e?(R(),J("div",W3n,[xr(ymn,{form:A(w),onE2eSetupDone:Pe[28]||(Pe[28]=Je=>{Je.vendorDir&&(A(w).e2e.uatVendorDir=Je.vendorDir),Je.pythonBin&&(A(w).e2e.pythonBin=Je.pythonBin)})},null,8,["form"])])):Ae("",!0)]),E("div",X3n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[29]||(Pe[29]=Je=>ze("advanced"))},[E("span",null,M(xe.$t("settings.section.advanced")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.advanced?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[60]||(Pe[60]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.advanced?(R(),J("div",Y3n,[E("div",Q3n,[E("div",null,[E("label",Z3n,M(xe.$t("setup.advanced.discoveryInterval")),1),Nn(E("input",{"onUpdate:modelValue":Pe[30]||(Pe[30]=Je=>A(w).poll.discoveryIntervalMs=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.discoveryIntervalMs,void 0,{number:!0}]]),E("p",e5n,M(xe.$t("setup.advanced.discoveryIntervalHint")),1)]),E("div",null,[E("label",t5n,M(xe.$t("setup.advanced.driveInterval")),1),Nn(E("input",{"onUpdate:modelValue":Pe[31]||(Pe[31]=Je=>A(w).poll.driveIntervalMs=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.driveIntervalMs,void 0,{number:!0}]]),E("p",n5n,M(xe.$t("setup.advanced.driveIntervalHint")),1)])]),E("div",i5n,[E("div",null,[E("label",r5n,M(xe.$t("setup.advanced.maxRetries")),1),Nn(E("input",{"onUpdate:modelValue":Pe[32]||(Pe[32]=Je=>A(w).poll.maxRetries=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.maxRetries,void 0,{number:!0}]]),E("p",s5n,M(xe.$t("setup.advanced.maxRetriesHint")),1)]),E("div",null,[E("label",o5n,M(xe.$t("setup.advanced.maxConcurrent")),1),Nn(E("input",{"onUpdate:modelValue":Pe[33]||(Pe[33]=Je=>A(w).poll.maxConcurrent=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.maxConcurrent,void 0,{number:!0}]]),E("p",c5n,M(xe.$t("setup.advanced.maxConcurrentHint")),1)])]),E("div",u5n,[E("div",null,[E("label",l5n,M(xe.$t("setup.advanced.webPort")),1),Nn(E("input",{"onUpdate:modelValue":Pe[34]||(Pe[34]=Je=>A(w).web.port=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).web.port,void 0,{number:!0}]]),E("p",a5n,M(xe.$t("setup.advanced.webPortHint")),1)]),E("div",null,[E("label",f5n,M(xe.$t("setup.advanced.pipelineMode")),1),Nn(E("select",{"onUpdate:modelValue":Pe[35]||(Pe[35]=Je=>A(w).pipeline.mode=Je),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},[E("option",d5n,M(xe.$t("setup.advanced.pipelineAuto")),1),E("option",h5n,M(xe.$t("setup.advanced.pipelinePlanMode")),1)],512),[[Rd,A(w).pipeline.mode]]),E("p",g5n,M(xe.$t("setup.advanced.pipelineModeHint")),1)])]),E("div",null,[E("div",b5n,[Nn(E("input",{id:"settings-review-enabled","onUpdate:modelValue":Pe[36]||(Pe[36]=Je=>A(w).review.enabled=Je),type:"checkbox",class:"rounded border-gray-300"},null,512),[[a9,A(w).review.enabled]]),E("label",p5n,M(xe.$t("setup.advanced.enableReview")),1)]),E("p",w5n,M(xe.$t("setup.advanced.enableReviewHint")),1)]),E("div",null,[E("div",v5n,[Nn(E("input",{id:"settings-release-enabled","onUpdate:modelValue":Pe[37]||(Pe[37]=Je=>A(w).release.enabled=Je),type:"checkbox",class:"rounded border-gray-300"},null,512),[[a9,A(w).release.enabled]]),E("label",m5n,M(xe.$t("setup.advanced.enableRelease")),1)]),E("p",y5n,M(xe.$t("setup.advanced.enableReleaseHint")),1)]),E("div",null,[E("label",k5n,M(xe.$t("setup.advanced.phaseTimeout")),1),Nn(E("input",{"onUpdate:modelValue":Pe[38]||(Pe[38]=Je=>A(w).ai.phaseTimeoutMs=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).ai.phaseTimeoutMs,void 0,{number:!0}]]),E("p",x5n,M(xe.$t("setup.advanced.phaseTimeoutHint")),1)])])):Ae("",!0)]),E("div",$5n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[39]||(Pe[39]=Je=>ze("experimental"))},[E("span",E5n,[ci(M(xe.$t("settings.section.experimental"))+" ",1),Pe[61]||(Pe[61]=E("span",{class:"text-xs font-normal text-amber-600 bg-amber-50 px-1.5 py-0.5 rounded"},"Beta",-1))]),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.experimental?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[62]||(Pe[62]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.experimental?(R(),J("div",C5n,[E("p",S5n,M(xe.$t("settings.experimental.hint")),1),(R(),J(sn,null,bi(["brainstorm","braindump","chat","knowledge","distill"],Je=>E("div",{key:Je,class:"flex items-center justify-between py-2"},[E("div",null,[E("span",_5n,M(xe.$t("settings.experimental."+Je)),1)]),E("button",{type:"button",class:wn(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50",te.value[Je]?"bg-blue-600":"bg-gray-200"]),disabled:!!q.value[Je],role:"switch","aria-checked":te.value[Je],onClick:Bt=>He(Je,!te.value[Je])},[E("span",{class:wn(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",te.value[Je]?"translate-x-5":"translate-x-0"])},null,2)],10,j5n)])),64))])):Ae("",!0)]),E("div",I5n,[E("p",A5n,M(xe.$t("settings.autoApplyHint")??xe.$t("settings.restartHint")),1),E("button",{class:wn(["px-6 py-2.5 text-sm font-medium text-white rounded-lg transition-colors disabled:opacity-50",le.value==="saved"||le.value==="saved-pending"?"bg-green-600 hover:bg-green-700":"bg-blue-600 hover:bg-blue-700"]),disabled:le.value==="saving"||le.value==="reloading",onClick:jt},[le.value==="saving"?(R(),J("span",M5n,[Pe[63]||(Pe[63]=E("svg",{class:"animate-spin h-4 w-4",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(xe.$t("settings.saving")),1)])):le.value==="reloading"?(R(),J("span",P5n,[Pe[64]||(Pe[64]=E("svg",{class:"animate-spin h-4 w-4",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(xe.$t("settings.applying")??xe.$t("settings.saving")),1)])):le.value==="saved"||le.value==="saved-pending"?(R(),J("span",D5n,M(xe.$t("settings.saved")),1)):(R(),J("span",O5n,M(xe.$t("settings.save")),1))],10,T5n)])],64))]))}}),N5n={key:1},R5n={class:"max-w-7xl mx-auto px-4 py-6"},F5n={class:"mb-4 flex items-center space-x-1 border-b border-gray-200"},B5n=wr({__name:"App",setup(a){const d=Ye(null),b=Ye(window.location.pathname==="/detail"),m=Ye("tracked"),{pipelineMode:w}=r_(),{tasks:$,filter:p,filteredTasks:j,activeCount:I,completedCount:N,failedCount:P,refresh:U}=$Wt("issue"),V=_wt(),X=JX(),ee=_Wt(U),K=En(()=>V.selectedIssue.value?_r(V.selectedIssue.value):void 0),he=En(()=>{const be=K.value;return be!=null?X.getVerifyFixLoop(be):void 0});async function ke(be){try{const se=await dX(be);V.selectIssue(se,X.agentLogs)}catch{console.warn(`Issue #${be} not found, ignoring URL param`)}}const{readIssueIidFromUrl:ue}=jWt({selectedIssueIid:K,onOpenIssue:ke}),{connected:oe}=Swt((be,se)=>{const le=se;if(be.startsWith("issue:")||be.startsWith("review:")){U();const Ce=le.data;Ce?.issueIid&&V.selectedIssue.value&&_r(V.selectedIssue.value)===Ce.issueIid&&V.refreshDetail()}if(be.startsWith("braindump:")&&U(),be.startsWith("distill:"),be==="agent:output"){const Ce=le.data;Ce?.event&&X.pushAgentStreamEvent(Ce.issueIid,K,Ce.phase,Ce.event)}if(be==="pipeline:progress"){const Ce=le.data;Ce&&V.selectedIssue.value&&_r(V.selectedIssue.value)===Ce.issueIid&&X.pushSystemLog(Ce.issueIid,K,Ce.step,Ce.message??"",le.timestamp)}if(be.startsWith("verify:")){const Ce=le.data,Se=Ce?.issueIid;if(Se&&(X.updateVerifyFixLoop(Se,be,Ce),V.selectedIssue.value&&_r(V.selectedIssue.value)===Se)){let te="";be==="verify:loopStarted"?te=Cs("verify.loopStarted",{max:Ce.maxIterations}):be==="verify:iterationComplete"?te=Ce.passed?Cs("verify.iterationPassed",{n:Ce.iteration}):Cs("verify.iterationFailed",{n:Ce.iteration,reasons:(Ce.failures??[]).join("; ")}):be==="verify:loopExhausted"&&(te=Cs("verify.loopExhausted",{n:Ce.totalIterations})),te&&X.pushSystemLog(Se,K,"verify",te,le.timestamp)}}});async function re(){try{d.value=await kwt(),d.value?.config?.pipelineMode&&(w.value=d.value.config.pipelineMode)}catch(be){console.error("Fetch status failed",be)}}function ye(){m.value="browse",ee.browseIssues.value.length===0&&ee.fetchGongfengIssues()}let pe=null;return gl(async()=>{Cwt(),await U(),re(),pe=setInterval(re,1e4);const be=ue();be&&ke(be)}),dp(()=>{pe&&clearInterval(pe)}),(be,se)=>b.value?(R(),Ts(V2n,{key:0})):(R(),J("div",N5n,[xr(FWt,{connected:A(oe),"system-status":d.value,onOpenSettings:se[0]||(se[0]=le=>m.value="settings")},null,8,["connected","system-status"]),E("main",R5n,[xr(ZWt,{total:A($).length,active:A(I),completed:A(N),failed:A(P)},null,8,["total","active","completed","failed"]),E("div",F5n,[E("button",{class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="tracked"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[1]||(se[1]=le=>m.value="tracked")},M(be.$t("app.trackedIssues")),3),E("button",{class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="browse"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[2]||(se[2]=le=>ye())},M(be.$t("app.browseIssues")),3),d.value?.config?.brainstormEnabled?(R(),J("button",{key:0,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="brainstorm"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[3]||(se[3]=le=>m.value="brainstorm")},M(be.$t("app.brainstorm")),3)):Ae("",!0),d.value?.config?.braindumpEnabled?(R(),J("button",{key:1,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="braindump"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[4]||(se[4]=le=>m.value="braindump")},"Braindump",2)):Ae("",!0),d.value?.config?.chatEnabled?(R(),J("button",{key:2,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="chat"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[5]||(se[5]=le=>m.value="chat")},M(be.$t("app.chat")),3)):Ae("",!0),d.value?.config?.knowledgeEnabled?(R(),J("button",{key:3,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="knowledge"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[6]||(se[6]=le=>m.value="knowledge")},M(be.$t("app.knowledge")),3)):Ae("",!0),d.value?.config?.distillEnabled?(R(),J("button",{key:4,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="distill"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[7]||(se[7]=le=>m.value="distill")},M(be.$t("app.distill")),3)):Ae("",!0),d.value?.config?.knowledgeEnabled?(R(),J("button",{key:5,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="usecase"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[8]||(se[8]=le=>m.value="usecase")},"系统用例",2)):Ae("",!0)]),m.value==="tracked"?(R(),Ts(OXt,{key:0,issues:A(j),filter:A(p),"system-status":d.value,"onUpdate:filter":se[9]||(se[9]=le=>p.value=le),onSelect:se[10]||(se[10]=le=>ke(le)),onStart:se[11]||(se[11]=le=>A(V).doStartIssue(le,A(U))),onRetry:se[12]||(se[12]=le=>A(V).doRetryIssue(le,A(U))),onRestart:se[13]||(se[13]=le=>A(V).doRestartIssue(le,A(U),A($))),onCancel:se[14]||(se[14]=le=>A(V).doCancelIssue(le,A(U)))},null,8,["issues","filter","system-status"])):Ae("",!0),m.value==="brainstorm"?(R(),Ts(pZt,{key:1})):Ae("",!0),m.value==="braindump"?(R(),Ts(GZt,{key:2})):Ae("",!0),m.value==="chat"?(R(),Ts(Een,{key:3})):Ae("",!0),m.value==="knowledge"?(R(),Ts($an,{key:4})):Ae("",!0),m.value==="distill"?(R(),Ts(vdn,{key:5})):Ae("",!0),m.value==="usecase"?(R(),Ts(b1n,{key:6})):Ae("",!0),m.value==="settings"?(R(),Ts(L5n,{key:7,"system-status":d.value},null,8,["system-status"])):Ae("",!0),m.value==="browse"?(R(),Ts(bYt,{key:8,issues:A(ee).browseIssues.value,"tracked-iids":A(ee).browseTrackedIids.value,total:A(ee).browseTotal.value,page:A(ee).browsePage.value,"per-page":A(ee).browsePerPage,loading:A(ee).browseLoading.value,error:A(ee).browseError.value,search:A(ee).browseSearch.value,"system-status":d.value,"onUpdate:search":se[15]||(se[15]=le=>A(ee).browseSearch.value=le),"onUpdate:page":se[16]||(se[16]=le=>A(ee).browsePage.value=le),onSearch:se[17]||(se[17]=le=>A(ee).fetchGongfengIssues()),onStart:se[18]||(se[18]=le=>A(ee).openStartDialog(le))},null,8,["issues","tracked-iids","total","page","per-page","loading","error","search","system-status"])):Ae("",!0)]),xr(z1n,{issue:A(ee).startDialogIssue.value,supplement:A(ee).startSupplement.value,processing:A(ee).startProcessing.value,onClose:se[19]||(se[19]=le=>A(ee).startDialogIssue.value=null),"onUpdate:supplement":se[20]||(se[20]=le=>A(ee).startSupplement.value=le),onStart:se[21]||(se[21]=le=>{A(ee).doStartProcessing(()=>{m.value="tracked"})})},null,8,["issue","supplement","processing"]),A(V).selectedIssue.value?(R(),Ts(zvn,{key:0,issue:A(V).selectedIssue.value,progress:A(V).detailProgress.value,"system-status":d.value,"verify-fix-loop":he.value,"agent-logs":A(X).filteredLogs.value,"agent-auto-scroll":A(X).agentAutoScroll.value,"agent-debug-mode":A(X).debugMode.value,supplement:A(V).detailSupplement.value,"supplement-form":A(V).detailSupplementForm.value,"supplement-loading":A(V).detailSupplementLoading.value,"supplement-editing":A(V).detailSupplementEditing.value,"supplement-saving":A(V).detailSupplementSaving.value,"has-supplement-data":A(V).hasSupplementData(A(V).detailSupplement.value),"detail-version":A(V).detailVersion.value,"review-feedback":A(V).reviewFeedback.value,"review-submitting":A(V).reviewSubmitting.value,"review-history":A(V).reviewHistory.value,onClose:se[22]||(se[22]=le=>A(V).selectedIssue.value=null),onStart:se[23]||(se[23]=le=>A(V).doStartIssue(le,A(U))),onRetry:se[24]||(se[24]=le=>A(V).doRetryIssue(le,A(U))),onRestart:se[25]||(se[25]=le=>A(V).doRestartIssue(le,A(U),A($))),onCancel:se[26]||(se[26]=le=>A(V).doCancelIssue(le,A(U))),onMarkDeployed:se[27]||(se[27]=le=>A(V).doMarkDeployed(le,A(U))),onStopPreview:se[28]||(se[28]=le=>A(V).doStopPreview(le,A(U))),onRestartPreview:se[29]||(se[29]=le=>A(V).doRestartPreview(le,A(U))),onRetryFromPhase:se[30]||(se[30]=(le,Ce)=>A(V).doRetryFromPhase(le,Ce,Ce,A(U))),onApprove:se[31]||(se[31]=le=>A(V).doApprovePlan(le,A(U))),onReject:se[32]||(se[32]=le=>A(V).doRejectPlan(le,A(U))),onSkip:se[33]||(se[33]=le=>A(V).doSkipReview(le,A(U))),"onUpdate:reviewFeedback":se[34]||(se[34]=le=>A(V).reviewFeedback.value=le),onSupplementEdit:se[35]||(se[35]=le=>A(V).enterSupplementEdit()),onSupplementSave:se[36]||(se[36]=le=>A(V).saveDetailSupplement(A(U))),onSupplementCancel:se[37]||(se[37]=le=>A(V).detailSupplementEditing.value=!1),"onUpdate:supplementForm":se[38]||(se[38]=le=>A(V).detailSupplementForm.value=le),"onUpdate:agentAutoScroll":se[39]||(se[39]=le=>A(X).agentAutoScroll.value=le),"onUpdate:agentDebugMode":se[40]||(se[40]=le=>A(X).debugMode.value=le),onClearLogs:se[41]||(se[41]=le=>A(X).clear())},null,8,["issue","progress","system-status","verify-fix-loop","agent-logs","agent-auto-scroll","agent-debug-mode","supplement","supplement-form","supplement-loading","supplement-editing","supplement-saving","has-supplement-data","detail-version","review-feedback","review-submitting","review-history"])):Ae("",!0)]))}}),H5n={class:"border-t border-gray-200"},G5n={class:"flex items-center gap-2"},J5n={class:"font-medium"},U5n={key:0,class:"text-blue-400 font-medium"},z5n={key:1,class:"text-gray-400"},q5n={key:2,class:"animate-spin h-3 w-3 text-blue-400",viewBox:"0 0 24 24"},V5n={class:"flex items-center gap-3"},K5n={key:0,class:"tabular-nums text-gray-400"},W5n=["title"],X5n={key:0,class:"text-gray-500"},Y5n=wr({__name:"InstallLogPanel",props:{visible:{type:Boolean},logs:{},depName:{},elapsed:{},installing:{type:Boolean},installPhase:{}},emits:["toggle","close"],setup(a,{emit:d}){const{t:b}=Kg(),m=a,w=d,$=Ye(null),p=En(()=>{switch(m.installPhase){case"ai-cli":return b("setup.env.phaseAiCli");case"toolchain":return b("setup.env.phaseToolchain");case"ai-fallback":return b("setup.env.phaseAiFallback");default:return""}});function j(I){return I.startsWith("$ ")?"text-green-400":I.includes("[stderr]")?"text-yellow-400":/Error:|失败|FAIL/i.test(I)?"text-red-400":"text-gray-300"}return Jr(()=>m.logs.length,async()=>{await _1(),$.value&&($.value.scrollTop=$.value.scrollHeight)}),(I,N)=>(R(),J("div",H5n,[E("div",{class:"flex items-center justify-between px-4 py-2 bg-gray-800 text-gray-300 text-xs cursor-pointer select-none",onClick:N[1]||(N[1]=P=>w("toggle"))},[E("div",G5n,[(R(),J("svg",{class:wn(["h-3 w-3 transition-transform",a.visible?"rotate-0":"-rotate-90"]),viewBox:"0 0 20 20",fill:"currentColor"},[...N[2]||(N[2]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2)),E("span",J5n,M(A(b)("setup.env.logPanel")),1),p.value?(R(),J("span",U5n,"["+M(p.value)+"]",1)):Ae("",!0),a.depName?(R(),J("span",z5n,"— "+M(a.depName),1)):Ae("",!0),a.installing?(R(),J("svg",q5n,[...N[3]||(N[3]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):Ae("",!0)]),E("div",V5n,[a.installing?(R(),J("span",K5n,M(a.elapsed)+"s",1)):Ae("",!0),E("button",{class:"text-gray-400 hover:text-gray-200 transition-colors",title:A(b)("setup.env.closePanel"),onClick:N[0]||(N[0]=Ah(P=>w("close"),["stop"]))},[...N[4]||(N[4]=[E("svg",{class:"h-3.5 w-3.5",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{d:"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"})],-1)])],8,W5n)])]),Nn(E("div",null,[E("div",{ref_key:"logContainer",ref:$,class:"bg-gray-900 px-4 py-3 text-xs font-mono max-h-48 overflow-y-auto"},[a.installing&&!a.logs.length?(R(),J("div",X5n,M(A(b)("setup.env.waitingOutput")),1)):Ae("",!0),(R(!0),J(sn,null,bi(a.logs,(P,U)=>(R(),J("div",{key:U,class:wn(["leading-5",j(P)])},M(P),3))),128))],512)],512),[[YVt,a.visible]])]))}}),Q5n={class:"min-h-screen bg-gray-50 flex items-center justify-center p-4"},Z5n={key:0,class:"bg-white rounded-2xl shadow-lg max-w-lg w-full p-10 text-center"},e4n={class:"text-2xl font-bold text-gray-900 mb-2"},t4n={class:"text-gray-600 mb-4"},n4n={class:"block bg-gray-100 rounded-lg p-3 text-sm mb-6 break-all"},i4n={class:"text-gray-600"},r4n={key:1,class:"bg-white rounded-2xl shadow-lg max-w-3xl w-full overflow-hidden"},s4n={class:"bg-gray-900 text-white px-8 py-6"},o4n={class:"flex items-center justify-between"},c4n={class:"flex items-center space-x-3"},u4n={class:"text-xl font-bold"},l4n={class:"text-gray-400 text-sm mt-1"},a4n={class:"mt-4 flex gap-1"},f4n={class:"p-8 min-h-[400px]"},d4n={key:0,class:"mb-4 bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 text-sm"},h4n={key:1},g4n={class:"text-gray-600 mb-4"},b4n={key:0,class:"flex items-center gap-2 text-gray-500"},p4n={key:1,class:"space-y-5"},w4n={key:0,class:"flex items-center gap-3"},v4n=["disabled"],m4n={key:0,class:"animate-spin h-4 w-4",viewBox:"0 0 24 24"},y4n={key:1},k4n={class:"flex items-center gap-2 mb-2"},x4n={class:"text-sm font-semibold text-gray-700"},$4n={class:"text-xs bg-blue-100 text-blue-700 px-1.5 py-0.5 rounded"},E4n={class:"space-y-2"},C4n={class:"flex items-center gap-3"},S4n={class:"text-lg"},_4n={key:0,class:"animate-spin h-5 w-5 text-blue-500",viewBox:"0 0 24 24"},j4n={class:"flex items-center gap-2"},I4n={class:"font-medium text-gray-900"},A4n={key:0,class:"text-xs bg-red-100 text-red-700 px-1.5 py-0.5 rounded"},T4n={key:1,class:"text-xs bg-gray-100 text-gray-500 px-1.5 py-0.5 rounded"},M4n={key:0,class:"text-xs text-gray-500"},P4n={key:1,class:"text-xs text-blue-600"},D4n={key:2,class:"text-xs text-green-600"},O4n={key:3,class:"text-xs text-red-600"},L4n={key:4,class:"text-xs text-gray-500 mt-1"},N4n={class:"flex items-center gap-2"},R4n=["disabled","onClick"],F4n=["disabled","onClick"],B4n={key:3,class:"flex flex-col gap-1"},H4n={class:"flex items-center gap-2"},G4n={class:"text-xs bg-gray-100 px-2 py-0.5 rounded font-mono"},J4n=["onClick"],U4n={class:"text-xs text-gray-400"},z4n={key:2},q4n={class:"text-sm font-semibold text-gray-700 mb-2"},V4n={class:"space-y-2"},K4n={class:"flex items-center gap-3"},W4n={class:"text-lg"},X4n={key:0,class:"animate-spin h-5 w-5 text-blue-500",viewBox:"0 0 24 24"},Y4n={class:"font-medium text-gray-900"},Q4n={key:0,class:"text-xs text-gray-500"},Z4n={key:1,class:"text-xs text-blue-600"},ekn={key:2,class:"text-xs text-green-600"},tkn={key:3,class:"text-xs text-red-600"},nkn={class:"flex items-center gap-2"},ikn=["disabled","onClick"],rkn=["disabled","onClick"],skn={key:3,class:"text-xs text-gray-500"},okn={key:3},ckn={class:"text-sm font-semibold text-gray-700 mb-2"},ukn={class:"space-y-2"},lkn={class:"flex items-center gap-3"},akn={class:"text-lg"},fkn={class:"font-medium text-gray-900"},dkn={key:0,class:"text-xs text-gray-500"},hkn={class:"flex items-center gap-2"},gkn=["disabled","onClick"],bkn={key:1,class:"text-xs text-gray-500"},pkn={class:"mt-4 pt-3 border-t border-gray-200"},wkn=["disabled"],vkn={key:2,class:"space-y-5"},mkn={class:"block text-sm font-medium text-gray-700 mb-1"},ykn=["placeholder"],kkn={class:"mt-1 text-xs text-gray-500"},xkn={class:"border border-gray-200 rounded-lg"},$kn={key:0,class:"px-4 pb-4 space-y-4 border-t border-gray-200 pt-4"},Ekn={class:"text-xs text-gray-400"},Ckn={class:"block text-sm font-medium text-gray-700 mb-1"},Skn=["placeholder"],_kn={class:"mt-1 text-xs text-gray-500"},jkn={class:"grid grid-cols-2 gap-4"},Ikn={class:"block text-sm font-medium text-gray-700 mb-1"},Akn={class:"mt-1 text-xs text-gray-500"},Tkn={class:"block text-sm font-medium text-gray-700 mb-1"},Mkn={class:"mt-1 text-xs text-gray-500"},Pkn={class:"block text-sm font-medium text-gray-700 mb-1"},Dkn=["placeholder"],Okn={class:"mt-1 text-xs text-gray-500"},Lkn={class:"block text-sm font-medium text-gray-700 mb-1"},Nkn=["placeholder"],Rkn={class:"mt-1 text-xs text-gray-500"},Fkn={key:3,class:"space-y-5"},Bkn={class:"block text-sm font-medium text-gray-700 mb-1"},Hkn=["placeholder"],Gkn={class:"mt-1 text-xs text-gray-500"},Jkn={class:"block text-sm font-medium text-gray-700 mb-1"},Ukn={class:"flex gap-2"},zkn=["placeholder"],qkn=["disabled"],Vkn={class:"mt-1 text-xs text-gray-500"},Kkn={key:0,class:"mt-1 text-xs text-green-600"},Wkn={key:1,class:"mt-1 text-xs text-red-600"},Xkn={class:"block text-sm font-medium text-gray-700 mb-1"},Ykn={class:"flex gap-2"},Qkn=["placeholder"],Zkn=["disabled"],e6n={class:"mt-1 text-xs text-gray-500"},t6n={key:0,class:"mt-1 text-xs text-green-600"},n6n={key:1,class:"mt-1 text-xs text-red-600"},i6n={key:4,class:"space-y-5"},r6n={class:"block text-sm font-medium text-gray-700 mb-3"},s6n={class:"grid grid-cols-3 gap-3"},o6n={class:"font-medium"},c6n={class:"text-xs text-gray-500 mt-1"},u6n={class:"font-medium"},l6n={class:"text-xs text-gray-500 mt-1"},a6n={class:"font-medium"},f6n={class:"text-xs text-gray-500 mt-1"},d6n={class:"block text-sm font-medium text-gray-700 mb-1"},h6n={class:"mt-1 text-xs text-gray-500"},g6n={class:"space-y-2"},b6n={class:"text-sm font-medium text-gray-700"},p6n={class:"flex items-center gap-2"},w6n={key:0},v6n={key:1},m6n={key:2},y6n={key:3},k6n={class:"text-sm"},x6n={key:4,class:"text-xs text-gray-500"},$6n={key:5,class:"text-xs text-blue-600"},E6n={key:6,class:"text-xs text-green-600"},C6n={key:7,class:"text-xs text-red-600"},S6n={class:"flex items-center gap-2"},_6n=["disabled","onClick"],j6n=["disabled","onClick"],I6n={key:3,class:"flex items-center gap-2"},A6n={class:"text-xs bg-gray-100 px-2 py-0.5 rounded font-mono"},T6n=["onClick"],M6n={key:5,class:"space-y-5"},P6n={class:"bg-blue-50 border border-blue-200 rounded-lg px-4 py-3"},D6n={class:"text-sm text-blue-700"},O6n={class:"border border-gray-200 rounded-lg"},L6n={key:0,class:"px-4 pb-4 space-y-5 border-t border-gray-200 pt-4"},N6n={class:"grid grid-cols-2 gap-4"},R6n={class:"block text-sm font-medium text-gray-700 mb-1"},F6n={class:"mt-1 text-xs text-gray-500"},B6n={class:"block text-sm font-medium text-gray-700 mb-1"},H6n={class:"mt-1 text-xs text-gray-500"},G6n={class:"grid grid-cols-2 gap-4"},J6n={class:"block text-sm font-medium text-gray-700 mb-1"},U6n={class:"mt-1 text-xs text-gray-500"},z6n={class:"block text-sm font-medium text-gray-700 mb-1"},q6n={class:"mt-1 text-xs text-gray-500"},V6n={class:"grid grid-cols-2 gap-4"},K6n={class:"block text-sm font-medium text-gray-700 mb-1"},W6n={class:"mt-1 text-xs text-gray-500"},X6n={class:"block text-sm font-medium text-gray-700 mb-1"},Y6n={value:"auto"},Q6n={value:"plan-mode"},Z6n={class:"mt-1 text-xs text-gray-500"},exn={class:"flex items-center gap-2"},txn={for:"review-enabled",class:"text-sm text-gray-700"},nxn={class:"mt-1 text-xs text-gray-500 ml-5"},ixn={class:"block text-sm font-medium text-gray-700 mb-1"},rxn={class:"mt-1 text-xs text-gray-500"},sxn={key:6,class:"space-y-5"},oxn={class:"text-sm text-gray-600"},cxn={class:"bg-gray-900 text-gray-300 rounded-lg p-4 text-xs font-mono max-h-80 overflow-y-auto whitespace-pre-wrap"},uxn={class:"px-8 py-4 bg-gray-50 border-t flex items-center justify-between"},lxn={key:1},axn=["disabled"],fxn=["disabled"],dxn=wr({__name:"SetupWizard",setup(a){const{t:d,locale:b,setLocale:m}=Kg(),{currentStep:w,totalSteps:$,loading:p,error:j,form:I,dependencies:N,tokenValid:P,tokenUser:U,repoValid:V,repoInfo:X,configPreview:ee,installLogs:K,installing:he,installingDep:ke,installElapsed:ue,setupComplete:oe,savedConfigPath:re,logPanelVisible:ye,installResult:pe,installPhase:be,canProceed:se,checkEnv:le,validateToken:Ce,validateRepo:Se,installDep:te,installAll:q,completeSetup:He,nextStep:gt,prevStep:ze,toggleLogPanel:jt,closeLogPanel:Jt,openLogPanel:xe}=c2t(),Pe=Ye(!1),Je=Ye(!1),Bt=Ye("");function wt(Ht){return N.value.find(mt=>mt.name===Ht)?.displayName??Ht}const Pt=En(()=>N.value.filter(Ht=>Ht.category==="ai-cli")),Mt=En(()=>N.value.filter(Ht=>Ht.category==="toolchain")),ln=En(()=>N.value.some(Ht=>!Ht.installed&&(Ht.installCommand||Ht.aiInstallable)));function wi(Ht){navigator.clipboard.writeText(Ht),Bt.value=Ht,setTimeout(()=>{Bt.value=""},2e3)}const Ir=En(()=>[d("setup.step.envCheck"),d("setup.step.projectConfig"),d("setup.step.gongfengConfig"),d("setup.step.aiRunner"),d("setup.step.advancedOptions"),d("setup.step.reviewConfirm")]);return gl(()=>{le()}),Jr(()=>I.ai.mode,()=>{le()}),(Ht,on)=>(R(),J("div",Q5n,[A(oe)?(R(),J("div",Z5n,[on[37]||(on[37]=E("div",{class:"text-5xl mb-4"},"✅",-1)),E("h2",e4n,M(Ht.$t("setup.complete.title")),1),E("p",t4n,M(Ht.$t("setup.complete.savedTo")),1),E("code",n4n,M(A(re)),1),E("p",i4n,M(Ht.$t("setup.complete.startHint")),1),on[38]||(on[38]=E("code",{class:"block bg-gray-900 text-green-400 rounded-lg p-3 text-sm mt-2"}," issue-auto-finish start ",-1))])):(R(),J("div",r4n,[E("div",s4n,[E("div",o4n,[E("div",c4n,[on[39]||(on[39]=E("img",{src:Iwt,alt:"Logo",class:"h-8 w-8 rounded-lg"},null,-1)),E("h1",u4n,M(Ht.$t("setup.title")),1)]),E("button",{class:wn(["px-3 py-1 text-sm rounded-lg transition-colors",(A(b)==="zh-CN","bg-gray-700 text-gray-200 hover:bg-gray-600")]),onClick:on[0]||(on[0]=mt=>A(m)(A(b)==="zh-CN"?"en":"zh-CN"))},M(A(b)==="zh-CN"?"EN":"中文"),3)]),E("p",l4n,M(Ir.value[A(w)])+" ("+M(A(w)+1)+"/"+M(A($))+")",1),E("div",a4n,[(R(!0),J(sn,null,bi(A($),mt=>(R(),J("div",{key:mt,class:wn(["h-1 flex-1 rounded-full transition-colors",mt-1<=A(w)?"bg-blue-400":"bg-gray-700"])},null,2))),128))])]),E("div",f4n,[A(j)?(R(),J("div",d4n,M(A(j)),1)):Ae("",!0),A(w)===0?(R(),J("div",h4n,[E("p",g4n,M(Ht.$t("setup.env.checking")),1),A(p)?(R(),J("div",b4n,[on[40]||(on[40]=E("svg",{class:"animate-spin h-5 w-5",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(Ht.$t("setup.env.checkingShort")),1)])):(R(),J("div",p4n,[ln.value?(R(),J("div",w4n,[E("button",{class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:on[1]||(on[1]=(...mt)=>A(q)&&A(q)(...mt))},[A(he)?(R(),J("svg",m4n,[...on[41]||(on[41]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):Ae("",!0),ci(" "+M(Ht.$t("setup.env.installAll")),1)],8,v4n)])):Ae("",!0),Pt.value.length>0?(R(),J("div",y4n,[E("div",k4n,[E("h3",x4n,M(Ht.$t("setup.env.aiCliGroup")),1),E("span",$4n,M(Ht.$t("setup.env.installFirst")),1)]),E("div",E4n,[(R(!0),J(sn,null,bi(Pt.value,mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border transition-all",[mt.installed?"border-green-200 bg-green-50":A(pe).get(mt.name)==="failed"||mt.required?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50",A(ke)===mt.name?"ring-2 ring-blue-400":""]])},[E("div",C4n,[E("span",S4n,[A(ke)===mt.name?(R(),J("svg",_4n,[...on[42]||(on[42]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):mt.installed?(R(),J(sn,{key:1},[ci("✅")],64)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:2},[ci("❌")],64)):mt.required?(R(),J(sn,{key:3},[ci("❌")],64)):(R(),J(sn,{key:4},[ci("⚠️")],64))]),E("div",null,[E("div",j4n,[E("span",I4n,M(mt.displayName),1),mt.required?(R(),J("span",A4n,M(Ht.$t("setup.env.required")),1)):(R(),J("span",T4n,M(Ht.$t("setup.env.optional")),1))]),mt.version?(R(),J("div",M4n,"v"+M(mt.version),1)):Ae("",!0),A(ke)===mt.name?(R(),J("div",P4n,M(Ht.$t("setup.env.installing")),1)):A(pe).get(mt.name)==="success"&&mt.installed?(R(),J("div",D4n,M(Ht.$t("setup.env.installSuccess")),1)):A(pe).get(mt.name)==="failed"?(R(),J("div",O4n,M(Ht.$t("setup.env.installFailed")),1)):Ae("",!0),mt.category==="ai-cli"&&mt.installed?(R(),J("div",L4n,M(Ht.$t("setup.env.loginAfterInstall")),1)):Ae("",!0)])]),E("div",N4n,[A(ke)===mt.name?(R(),J("button",{key:0,class:"text-xs text-blue-600 hover:underline",onClick:on[2]||(on[2]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:1},[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:on[3]||(on[3]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1),mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.retry")),9,R4n)):Ae("",!0)],64)):!mt.installed&&mt.installCommand?(R(),J("button",{key:2,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,F4n)):!mt.installed&&!mt.installCommand&&!A(pe).has(mt.name)?(R(),J("div",B4n,[E("div",H4n,[E("code",G4n,M(mt.installHint),1),E("button",{class:wn(["text-xs px-2 py-0.5 rounded transition-colors",Bt.value===mt.installHint?"bg-green-100 text-green-700":"bg-gray-200 text-gray-600 hover:bg-gray-300"]),onClick:Ne=>wi(mt.installHint)},M(Bt.value===mt.installHint?Ht.$t("setup.env.copied"):"📋"),11,J4n)]),E("p",U4n,M(Ht.$t("setup.env.manualInstallRefreshHint")),1)])):Ae("",!0)])],2))),128))])])):Ae("",!0),Mt.value.length>0&&Mt.value.some(mt=>!mt.installed)?(R(),J("div",z4n,[E("h3",q4n,M(Ht.$t("setup.env.toolchainGroup")),1),E("div",V4n,[(R(!0),J(sn,null,bi(Mt.value,mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border transition-all",[mt.installed?"border-green-200 bg-green-50":A(pe).get(mt.name)==="failed"||mt.required?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50",A(ke)===mt.name?"ring-2 ring-blue-400":""]])},[E("div",K4n,[E("span",W4n,[A(ke)===mt.name?(R(),J("svg",X4n,[...on[43]||(on[43]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):mt.installed?(R(),J(sn,{key:1},[ci("✅")],64)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:2},[ci("❌")],64)):mt.required?(R(),J(sn,{key:3},[ci("❌")],64)):(R(),J(sn,{key:4},[ci("⚠️")],64))]),E("div",null,[E("div",Y4n,M(mt.displayName),1),mt.version?(R(),J("div",Q4n,"v"+M(mt.version),1)):Ae("",!0),A(ke)===mt.name?(R(),J("div",Z4n,M(Ht.$t("setup.env.installing")),1)):A(pe).get(mt.name)==="success"&&mt.installed?(R(),J("div",ekn,M(Ht.$t("setup.env.installSuccess")),1)):A(pe).get(mt.name)==="failed"?(R(),J("div",tkn,M(Ht.$t("setup.env.installFailed")),1)):Ae("",!0)])]),E("div",nkn,[A(ke)===mt.name?(R(),J("button",{key:0,class:"text-xs text-blue-600 hover:underline",onClick:on[4]||(on[4]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:1},[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:on[5]||(on[5]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1),mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.retry")),9,ikn)):Ae("",!0)],64)):!mt.installed&&mt.installCommand?(R(),J("button",{key:2,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,rkn)):!mt.installed&&!A(pe).has(mt.name)?(R(),J("span",skn,M(mt.installHint),1)):Ae("",!0)])],2))),128))])])):Ae("",!0),Pt.value.length===0&&Mt.value.length===0&&A(N).length>0?(R(),J("div",okn,[E("h3",ckn,M(Ht.$t("setup.env.toolchainGroup")),1),E("div",ukn,[(R(!0),J(sn,null,bi(A(N),mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border transition-all",[mt.installed?"border-green-200 bg-green-50":mt.required?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50",A(ke)===mt.name?"ring-2 ring-blue-400":""]])},[E("div",lkn,[E("span",akn,[mt.installed?(R(),J(sn,{key:0},[ci("✅")],64)):mt.required?(R(),J(sn,{key:1},[ci("❌")],64)):(R(),J(sn,{key:2},[ci("⚠️")],64))]),E("div",null,[E("div",fkn,M(mt.displayName),1),mt.version?(R(),J("div",dkn,"v"+M(mt.version),1)):Ae("",!0)])]),E("div",hkn,[!mt.installed&&mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,gkn)):mt.installed?Ae("",!0):(R(),J("span",bkn,M(mt.installHint),1))])],2))),128))])])):Ae("",!0),E("div",pkn,[E("button",{class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-blue-700 bg-blue-50 border border-blue-200 rounded-lg hover:bg-blue-100 hover:border-blue-300 disabled:opacity-50 transition-all",disabled:A(p),onClick:on[6]||(on[6]=mt=>A(le)())},[(R(),J("svg",{class:wn(["h-4 w-4",A(p)?"animate-spin":""]),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[...on[44]||(on[44]=[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])],2)),ci(" "+M(Ht.$t("setup.env.refreshStatus")),1)],8,wkn)])]))])):Ae("",!0),A(w)===1?(R(),J("div",vkn,[E("div",null,[E("label",mkn,M(Ht.$t("setup.project.workDir")),1),Nn(E("input",{"onUpdate:modelValue":on[7]||(on[7]=mt=>A(I).project.workDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.workDirPlaceholder")},null,8,ykn),[[Ci,A(I).project.workDir]]),E("p",kkn,M(Ht.$t("setup.project.workDirHint")),1)]),E("div",xkn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-gray-600 hover:bg-gray-50 transition-colors rounded-lg",onClick:on[8]||(on[8]=mt=>Pe.value=!Pe.value)},[E("span",null,M(Ht.$t("setup.project.advancedToggle")),1),(R(),J("svg",{class:wn(["h-4 w-4 transition-transform",Pe.value?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...on[45]||(on[45]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),Pe.value?(R(),J("div",$kn,[E("p",Ekn,M(Ht.$t("setup.project.advancedHint")),1),E("div",null,[E("label",Ckn,M(Ht.$t("setup.project.gitRootDir")),1),Nn(E("input",{"onUpdate:modelValue":on[9]||(on[9]=mt=>A(I).project.gitRootDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.gitRootDirPlaceholder")},null,8,Skn),[[Ci,A(I).project.gitRootDir]]),E("p",_kn,M(Ht.$t("setup.project.gitRootDirHint")),1)]),E("div",jkn,[E("div",null,[E("label",Ikn,M(Ht.$t("setup.project.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":on[10]||(on[10]=mt=>A(I).project.baseBranch=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).project.baseBranch]]),E("p",Akn,M(Ht.$t("setup.project.baseBranchHint")),1)]),E("div",null,[E("label",Tkn,M(Ht.$t("setup.project.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":on[11]||(on[11]=mt=>A(I).project.branchPrefix=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).project.branchPrefix]]),E("p",Mkn,M(Ht.$t("setup.project.branchPrefixHint")),1)])]),E("div",null,[E("label",Pkn,M(Ht.$t("setup.project.worktreeBaseDir")),1),Nn(E("input",{"onUpdate:modelValue":on[12]||(on[12]=mt=>A(I).project.worktreeBaseDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.worktreeBaseDirPlaceholder")},null,8,Dkn),[[Ci,A(I).project.worktreeBaseDir]]),E("p",Okn,M(Ht.$t("setup.project.worktreeBaseDirHint")),1)]),E("div",null,[E("label",Lkn,M(Ht.$t("setup.project.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":on[13]||(on[13]=mt=>A(I).project.projectSubDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.projectSubDirPlaceholder")},null,8,Nkn),[[Ci,A(I).project.projectSubDir]]),E("p",Rkn,M(Ht.$t("setup.project.projectSubDirHint")),1)])])):Ae("",!0)])])):Ae("",!0),A(w)===2?(R(),J("div",Fkn,[E("div",null,[E("label",Bkn,M(Ht.$t("setup.gongfeng.apiUrl")),1),Nn(E("input",{"onUpdate:modelValue":on[14]||(on[14]=mt=>A(I).gongfeng.apiUrl=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.gongfeng.apiUrlPlaceholder")},null,8,Hkn),[[Ci,A(I).gongfeng.apiUrl]]),E("p",Gkn,M(Ht.$t("setup.gongfeng.apiUrlHint")),1)]),E("div",null,[E("label",Jkn,M(Ht.$t("setup.gongfeng.privateToken")),1),E("div",Ukn,[Nn(E("input",{"onUpdate:modelValue":on[15]||(on[15]=mt=>A(I).gongfeng.privateToken=mt),type:"password",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.gongfeng.tokenPlaceholder")},null,8,zkn),[[Ci,A(I).gongfeng.privateToken]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(I).gongfeng.apiUrl||!A(I).gongfeng.privateToken,onClick:on[16]||(on[16]=(...mt)=>A(Ce)&&A(Ce)(...mt))},M(Ht.$t("setup.gongfeng.verify")),9,qkn)]),E("p",Vkn,M(Ht.$t("setup.gongfeng.tokenHint")),1),A(P)===!0?(R(),J("div",Kkn," ✅ "+M(Ht.$t("setup.gongfeng.tokenValid"))+M(A(U)?.name?` (${A(U).name})`:""),1)):A(P)===!1?(R(),J("div",Wkn," ❌ "+M(Ht.$t("setup.gongfeng.tokenInvalid")),1)):Ae("",!0)]),E("div",null,[E("label",Xkn,M(Ht.$t("setup.gongfeng.projectPath")),1),E("div",Ykn,[Nn(E("input",{"onUpdate:modelValue":on[17]||(on[17]=mt=>A(I).gongfeng.projectPath=mt),type:"text",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.gongfeng.projectPathPlaceholder")},null,8,Qkn),[[Ci,A(I).gongfeng.projectPath]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(I).gongfeng.apiUrl||!A(I).gongfeng.privateToken||!A(I).gongfeng.projectPath,onClick:on[18]||(on[18]=(...mt)=>A(Se)&&A(Se)(...mt))},M(Ht.$t("setup.gongfeng.verify")),9,Zkn)]),E("p",e6n,M(Ht.$t("setup.gongfeng.projectPathHint")),1),A(V)===!0?(R(),J("div",t6n," ✅ "+M(Ht.$t("setup.gongfeng.repoFound"))+M(A(X)?.name?`: ${A(X).name}`:""),1)):A(V)===!1?(R(),J("div",n6n," ❌ "+M(Ht.$t("setup.gongfeng.repoNotFound")),1)):Ae("",!0)])])):Ae("",!0),A(w)===3?(R(),J("div",i6n,[E("div",null,[E("label",r6n,M(Ht.$t("setup.ai.modeLabel")),1),E("div",s6n,[E("button",{class:wn(["p-4 rounded-lg border-2 text-left transition-colors",A(I).ai.mode==="claude-internal"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:on[19]||(on[19]=mt=>A(I).ai.mode="claude-internal")},[E("div",o6n,M(Ht.$t("setup.ai.claudeInternal")),1),E("div",c6n,M(Ht.$t("setup.ai.claudeInternalDesc")),1)],2),E("button",{class:wn(["p-4 rounded-lg border-2 text-left transition-colors",A(I).ai.mode==="cursor-agent"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:on[20]||(on[20]=mt=>A(I).ai.mode="cursor-agent")},[E("div",u6n,M(Ht.$t("setup.ai.cursorAgent")),1),E("div",l6n,M(Ht.$t("setup.ai.cursorAgentDesc")),1)],2),E("button",{class:wn(["p-4 rounded-lg border-2 text-left transition-colors",A(I).ai.mode==="codebuddy"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:on[21]||(on[21]=mt=>A(I).ai.mode="codebuddy")},[E("div",a6n,M(Ht.$t("setup.ai.codebuddy")),1),E("div",f6n,M(Ht.$t("setup.ai.codebuddyDesc")),1)],2)])]),E("div",null,[E("label",d6n,M(Ht.$t("setup.ai.model")),1),Nn(E("input",{"onUpdate:modelValue":on[22]||(on[22]=mt=>A(I).ai.model=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).ai.model]]),E("p",h6n,M(Ht.$t("setup.ai.modelHint")),1)]),E("div",g6n,[E("p",b6n,M(Ht.$t("setup.ai.cliStatus")),1),(R(!0),J(sn,null,bi(A(N).filter(mt=>mt.name==="claude-internal"||mt.name==="cursor-agent"||mt.name==="codebuddy"),mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border",mt.installed?"border-green-200 bg-green-50":A(pe).get(mt.name)==="failed"?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50"])},[E("div",p6n,[A(ke)===mt.name?(R(),J("span",w6n,[...on[46]||(on[46]=[E("svg",{class:"animate-spin h-4 w-4 text-blue-500",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)])])):mt.installed?(R(),J("span",v6n,"✅")):A(pe).get(mt.name)==="failed"?(R(),J("span",m6n,"❌")):(R(),J("span",y6n,"⚠️")),E("span",k6n,M(mt.displayName),1),mt.version?(R(),J("span",x6n,"v"+M(mt.version),1)):Ae("",!0),A(ke)===mt.name?(R(),J("span",$6n,M(Ht.$t("setup.env.installing")),1)):A(pe).get(mt.name)==="success"&&mt.installed?(R(),J("span",E6n,M(Ht.$t("setup.env.installSuccess")),1)):A(pe).get(mt.name)==="failed"?(R(),J("span",C6n,M(Ht.$t("setup.env.installFailed")),1)):Ae("",!0)]),E("div",S6n,[A(ke)===mt.name?(R(),J("button",{key:0,class:"text-xs text-blue-600 hover:underline",onClick:on[23]||(on[23]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:1},[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:on[24]||(on[24]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1),mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.retry")),9,_6n)):Ae("",!0)],64)):!mt.installed&&mt.installCommand?(R(),J("button",{key:2,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,j6n)):!mt.installed&&!mt.installCommand&&mt.installHint&&!A(pe).has(mt.name)?(R(),J("div",I6n,[E("code",A6n,M(mt.installHint),1),E("button",{class:wn(["text-xs px-2 py-0.5 rounded transition-colors",Bt.value===mt.installHint?"bg-green-100 text-green-700":"bg-gray-200 text-gray-600 hover:bg-gray-300"]),onClick:Ne=>wi(mt.installHint)},M(Bt.value===mt.installHint?Ht.$t("setup.env.copied"):"📋"),11,T6n)])):Ae("",!0)])],2))),128))])])):Ae("",!0),A(w)===4?(R(),J("div",M6n,[E("div",P6n,[E("p",D6n,M(Ht.$t("setup.advanced.defaultHint")),1)]),E("div",O6n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-gray-600 hover:bg-gray-50 transition-colors rounded-lg",onClick:on[25]||(on[25]=mt=>Je.value=!Je.value)},[E("span",null,M(Ht.$t("setup.advanced.toggleLabel")),1),(R(),J("svg",{class:wn(["h-4 w-4 transition-transform",Je.value?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...on[47]||(on[47]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),Je.value?(R(),J("div",L6n,[E("div",N6n,[E("div",null,[E("label",R6n,M(Ht.$t("setup.advanced.discoveryInterval")),1),Nn(E("input",{"onUpdate:modelValue":on[26]||(on[26]=mt=>A(I).poll.discoveryIntervalMs=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.discoveryIntervalMs,void 0,{number:!0}]]),E("p",F6n,M(Ht.$t("setup.advanced.discoveryIntervalHint")),1)]),E("div",null,[E("label",B6n,M(Ht.$t("setup.advanced.driveInterval")),1),Nn(E("input",{"onUpdate:modelValue":on[27]||(on[27]=mt=>A(I).poll.driveIntervalMs=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.driveIntervalMs,void 0,{number:!0}]]),E("p",H6n,M(Ht.$t("setup.advanced.driveIntervalHint")),1)])]),E("div",G6n,[E("div",null,[E("label",J6n,M(Ht.$t("setup.advanced.maxRetries")),1),Nn(E("input",{"onUpdate:modelValue":on[28]||(on[28]=mt=>A(I).poll.maxRetries=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.maxRetries,void 0,{number:!0}]]),E("p",U6n,M(Ht.$t("setup.advanced.maxRetriesHint")),1)]),E("div",null,[E("label",z6n,M(Ht.$t("setup.advanced.maxConcurrent")),1),Nn(E("input",{"onUpdate:modelValue":on[29]||(on[29]=mt=>A(I).poll.maxConcurrent=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.maxConcurrent,void 0,{number:!0}]]),E("p",q6n,M(Ht.$t("setup.advanced.maxConcurrentHint")),1)])]),E("div",V6n,[E("div",null,[E("label",K6n,M(Ht.$t("setup.advanced.webPort")),1),Nn(E("input",{"onUpdate:modelValue":on[30]||(on[30]=mt=>A(I).web.port=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).web.port,void 0,{number:!0}]]),E("p",W6n,M(Ht.$t("setup.advanced.webPortHint")),1)]),E("div",null,[E("label",X6n,M(Ht.$t("setup.advanced.pipelineMode")),1),Nn(E("select",{"onUpdate:modelValue":on[31]||(on[31]=mt=>A(I).pipeline.mode=mt),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},[E("option",Y6n,M(Ht.$t("setup.advanced.pipelineAuto")),1),E("option",Q6n,M(Ht.$t("setup.advanced.pipelinePlanMode")),1)],512),[[Rd,A(I).pipeline.mode]]),E("p",Z6n,M(Ht.$t("setup.advanced.pipelineModeHint")),1)])]),E("div",null,[E("div",exn,[Nn(E("input",{id:"review-enabled","onUpdate:modelValue":on[32]||(on[32]=mt=>A(I).review.enabled=mt),type:"checkbox",class:"rounded border-gray-300"},null,512),[[a9,A(I).review.enabled]]),E("label",txn,M(Ht.$t("setup.advanced.enableReview")),1)]),E("p",nxn,M(Ht.$t("setup.advanced.enableReviewHint")),1)]),E("div",null,[E("label",ixn,M(Ht.$t("setup.advanced.phaseTimeout")),1),Nn(E("input",{"onUpdate:modelValue":on[33]||(on[33]=mt=>A(I).ai.phaseTimeoutMs=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).ai.phaseTimeoutMs,void 0,{number:!0}]]),E("p",rxn,M(Ht.$t("setup.advanced.phaseTimeoutHint")),1)])])):Ae("",!0)])])):Ae("",!0),A(w)===5?(R(),J("div",sxn,[E("p",oxn,M(Ht.$t("setup.confirm.reviewHint")),1),E("pre",cxn,M(A(ee)),1)])):Ae("",!0)]),A(ye)||A(he)?(R(),Ts(Y5n,{key:0,visible:A(ye),logs:A(K),"dep-name":A(ke)?wt(A(ke)):"",elapsed:A(ue),installing:A(he),"install-phase":A(be),onToggle:A(jt),onClose:A(Jt)},null,8,["visible","logs","dep-name","elapsed","installing","install-phase","onToggle","onClose"])):Ae("",!0),E("div",uxn,[A(w)>0?(R(),J("button",{key:0,class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50",onClick:on[34]||(on[34]=(...mt)=>A(ze)&&A(ze)(...mt))},M(Ht.$t("setup.nav.back")),1)):(R(),J("div",lxn)),A(w)<A($)-1?(R(),J("button",{key:2,class:"px-6 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 disabled:opacity-50",disabled:!A(se),onClick:on[35]||(on[35]=(...mt)=>A(gt)&&A(gt)(...mt))},M(Ht.$t("setup.nav.next")),9,axn)):(R(),J("button",{key:3,class:"px-6 py-2 text-sm font-medium text-white bg-green-600 rounded-lg hover:bg-green-700 disabled:opacity-50",disabled:A(p),onClick:on[36]||(on[36]=(...mt)=>A(He)&&A(He)(...mt))},M(A(p)?Ht.$t("setup.nav.saving"):Ht.$t("setup.nav.complete")),9,fxn))])]))]))}});async function hxn(){try{const a=await fetch("/api/setup/status");if(a.ok&&!(await a.json()).initialized){Lgt(dxn).use(Jgt).mount("#app");return}}catch{}Lgt(B5n).use(Jgt).mount("#app")}hxn();
127
+ `);X=he.pop()??"";for(const ke of he)if(ke.startsWith("data: "))try{const ue=JSON.parse(ke.slice(6));N(ue)}catch{}}}catch(P){b.value=P.message}finally{a.value=!1}}function N(P){if(P.done){a.value=!1;return}if(P.error){b.value=P.error;return}const U=P.step,V=w.value.findIndex(X=>X.name===U);V<0||(P.log&&d.value.push(`[${U}] ${P.log}`),P.status&&(w.value[V].status=P.status,P.message&&(w.value[V].message=P.message)),P.result&&(m.value=P.result))}return{running:a,logs:d,steps:w,error:b,result:m,finished:$,success:p,startSetup:I,reset:j}}const nmn={class:"space-y-4"},imn={class:"bg-gray-50 border border-gray-200 rounded-lg p-4"},rmn={class:"flex items-center justify-between mb-2"},smn={class:"text-sm font-medium text-gray-800"},omn={class:"text-xs text-gray-500"},cmn=["disabled"],umn={key:0,class:"mt-3 space-y-1"},lmn={key:0,class:"text-gray-500 truncate"},amn={key:1,class:"mt-2 text-xs text-red-600 bg-red-50 rounded px-3 py-2"},fmn={key:2,class:"mt-2 text-xs text-green-700 bg-green-50 rounded px-3 py-2"},dmn={key:3,class:"mt-2"},hmn={class:"text-xs text-gray-500"},gmn={class:"block text-xs font-medium text-gray-700 mb-1"},bmn=["placeholder"],pmn={class:"mt-1 text-xs text-gray-400"},wmn={class:"block text-xs font-medium text-gray-700 mb-1"},vmn=["placeholder"],mmn={class:"mt-1 text-xs text-gray-400"},ymn={class:"block text-xs font-medium text-gray-700 mb-1"},kmn=["placeholder"],xmn={class:"mt-1 text-xs text-gray-400"},$mn={key:0,class:"bg-blue-50 border border-blue-200 rounded-lg px-4 py-3 text-sm text-blue-700"},Emn={class:"font-medium"},Cmn={class:"text-xs mt-1"},Smn=wr({__name:"E2eConfigSection",props:{form:{}},emits:["e2e-setup-done"],setup(a,{emit:d}){const b=a,m=d,{t:w}=Kg(),{running:$,logs:p,steps:j,error:I,result:N,finished:P,success:U,startSetup:V}=tmn(),X=En(()=>!!b.form.e2e.uatVendorDir.trim()),ee=Ye(!1),K=Ye(null),he={clone:"settings.e2e.step.clone","detect-python":"settings.e2e.step.detectPython","install-playwright":"settings.e2e.step.installPw","install-chromium":"settings.e2e.step.installBrowser",configure:"settings.e2e.step.configure",reload:"settings.e2e.step.reload"},ke=ue=>{switch(ue){case"done":return"✅";case"failed":return"❌";case"running":return"⏳";default:return"⭕"}};return Jr(U,ue=>{ue&&N.value&&m("e2e-setup-done",{vendorDir:N.value.vendorDir,pythonBin:N.value.pythonBin})}),Jr(()=>p.value.length,async()=>{await _1(),K.value&&(K.value.scrollTop=K.value.scrollHeight)}),(ue,oe)=>(R(),J("div",nmn,[E("div",imn,[E("div",rmn,[E("div",null,[E("p",smn,M(A(w)("settings.e2e.oneClickSetup")),1),E("p",omn,M(A(w)("settings.e2e.oneClickSetupHint")),1)]),E("button",{disabled:A($),class:wn(["px-4 py-2 text-sm font-medium text-white rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",A($)?"bg-gray-400":"bg-blue-600 hover:bg-blue-700"]),onClick:oe[0]||(oe[0]=(...re)=>A(V)&&A(V)(...re))},M(A($)?A(w)("settings.e2e.setupRunning"):A(w)("settings.e2e.oneClickSetup")),11,cmn)]),A($)||A(P)?(R(),J("div",umn,[(R(!0),J(sn,null,bi(A(j),re=>(R(),J("div",{key:re.name,class:"flex items-center gap-2 text-xs"},[E("span",null,M(ke(re.status)),1),E("span",{class:wn(["font-medium",{"text-gray-400":re.status==="pending","text-blue-600":re.status==="running","text-green-600":re.status==="done","text-red-600":re.status==="failed"}])},M(A(w)(he[re.name]||re.name)),3),re.message?(R(),J("span",lmn,"— "+M(re.message),1)):Ae("",!0)]))),128))])):Ae("",!0),A(I)?(R(),J("div",amn,M(A(I)),1)):Ae("",!0),A(U)?(R(),J("div",fmn,M(A(w)("settings.e2e.setupSuccess")),1)):Ae("",!0),A(p).length>0?(R(),J("div",dmn,[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:oe[1]||(oe[1]=re=>ee.value=!ee.value)},M(ee.value?A(w)("settings.e2e.hideLogs"):A(w)("settings.e2e.showLogs"))+" ("+M(A(p).length)+") ",1),ee.value?(R(),J("div",{key:0,ref_key:"logContainer",ref:K,class:"mt-1 max-h-48 overflow-y-auto bg-gray-900 text-gray-200 text-xs font-mono rounded p-3"},[(R(!0),J(sn,null,bi(A(p),(re,ye)=>(R(),J("div",{key:ye,class:"whitespace-pre-wrap break-all"},M(re),1))),128))],512)):Ae("",!0)])):Ae("",!0)]),E("p",hmn,M(A(w)("settings.e2e.hint")),1),E("div",null,[E("label",gmn,M(A(w)("settings.e2e.uatVendorDir")),1),Nn(E("input",{"onUpdate:modelValue":oe[2]||(oe[2]=re=>a.form.e2e.uatVendorDir=re),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:A(w)("settings.e2e.uatVendorDirPlaceholder")},null,8,bmn),[[Ci,a.form.e2e.uatVendorDir]]),E("p",pmn,M(A(w)("settings.e2e.uatVendorDirHint")),1)]),E("div",null,[E("label",wmn,M(A(w)("settings.e2e.uatConfigFile")),1),Nn(E("input",{"onUpdate:modelValue":oe[3]||(oe[3]=re=>a.form.e2e.uatConfigFile=re),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:A(w)("settings.e2e.uatConfigFilePlaceholder")},null,8,vmn),[[Ci,a.form.e2e.uatConfigFile]]),E("p",mmn,M(A(w)("settings.e2e.uatConfigFileHint")),1)]),E("div",null,[E("label",ymn,M(A(w)("settings.e2e.pythonBin")),1),Nn(E("input",{"onUpdate:modelValue":oe[4]||(oe[4]=re=>a.form.e2e.pythonBin=re),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:A(w)("settings.e2e.pythonBinPlaceholder")},null,8,kmn),[[Ci,a.form.e2e.pythonBin]]),E("p",xmn,M(A(w)("settings.e2e.pythonBinHint")),1)]),X.value?(R(),J("div",$mn,[E("p",Emn,M(A(w)("settings.e2e.skillDetected")),1),E("p",Cmn,M(A(w)("settings.e2e.skillDetectedHint")),1)])):Ae("",!0)]))}}),_mn={class:"space-y-4"},jmn={class:"flex items-center justify-between"},Imn={class:"text-lg font-bold text-gray-800"},Amn={key:0,class:"text-xs text-gray-400"},Tmn={class:"bg-gray-100 px-1.5 py-0.5 rounded"},Mmn={key:0,class:"flex items-center gap-2 text-gray-500 py-8 justify-center"},Pmn={key:0,class:"bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 text-sm"},Dmn={key:1,class:"bg-green-50 border border-green-200 text-green-700 rounded-lg px-4 py-3 text-sm"},Omn={class:"font-medium"},Lmn={class:"mt-1 text-xs"},Nmn={key:2,class:"bg-yellow-50 border border-yellow-200 text-yellow-700 rounded-lg px-4 py-3 text-sm"},Rmn={class:"font-medium"},Fmn={class:"mt-1 text-xs"},Bmn={class:"border border-gray-200 rounded-lg overflow-hidden"},Hmn={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},Gmn={class:"block text-sm font-medium text-gray-700 mb-1"},Jmn=["placeholder"],Umn={class:"mt-1 text-xs text-gray-500"},zmn={class:"border border-gray-200 rounded-lg"},qmn={key:0,class:"px-4 pb-4 space-y-4 border-t border-gray-200 pt-4"},Vmn={class:"text-xs text-gray-400"},Kmn={class:"block text-sm font-medium text-gray-700 mb-1"},Wmn=["placeholder"],Xmn={class:"mt-1 text-xs text-gray-500"},Ymn={class:"grid grid-cols-2 gap-4"},Qmn={class:"block text-sm font-medium text-gray-700 mb-1"},Zmn={class:"mt-1 text-xs text-gray-500"},eyn={class:"block text-sm font-medium text-gray-700 mb-1"},tyn={class:"mt-1 text-xs text-gray-500"},nyn={class:"block text-sm font-medium text-gray-700 mb-1"},iyn=["placeholder"],ryn={class:"mt-1 text-xs text-gray-500"},syn={class:"block text-sm font-medium text-gray-700 mb-1"},oyn=["placeholder"],cyn={class:"mt-1 text-xs text-gray-500"},uyn={class:"border border-gray-200 rounded-lg overflow-hidden"},lyn={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},ayn={class:"block text-sm font-medium text-gray-700 mb-1"},fyn={class:"mt-1 text-xs text-gray-500"},dyn={class:"block text-sm font-medium text-gray-700 mb-1"},hyn={class:"flex gap-2"},gyn=["placeholder"],byn=["disabled"],pyn={class:"mt-1 text-xs text-gray-500"},wyn={key:0,class:"mt-1 text-xs text-green-600"},vyn={key:1,class:"mt-1 text-xs text-red-600"},myn={class:"block text-sm font-medium text-gray-700 mb-1"},yyn={class:"flex gap-2"},kyn=["placeholder"],xyn=["disabled"],$yn={class:"mt-1 text-xs text-gray-500"},Eyn={key:0,class:"mt-1 text-xs text-green-600"},Cyn={key:1,class:"mt-1 text-xs text-red-600"},Syn={class:"border border-gray-200 rounded-lg overflow-hidden"},_yn={class:"flex items-center gap-2"},jyn={key:0,class:"text-xs font-normal text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},Iyn={key:1,class:"text-xs font-normal text-gray-400 bg-gray-100 px-1.5 py-0.5 rounded"},Ayn={key:0,class:"px-5 py-4 space-y-5 border-t border-gray-200"},Tyn={class:"text-xs text-gray-500 leading-relaxed"},Myn={key:0,class:"text-xs text-gray-400"},Pyn={class:"bg-gray-100 px-1.5 py-0.5 rounded font-mono"},Dyn={key:1,class:"bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 text-sm"},Oyn={class:"font-medium mb-1"},Lyn={class:"list-disc list-inside text-xs space-y-0.5"},Nyn={class:"border border-blue-200 rounded-lg overflow-hidden"},Ryn={class:"px-4 py-2.5 bg-blue-50 border-b border-blue-200 flex items-center gap-2"},Fyn={class:"text-sm font-semibold text-blue-800"},Byn={class:"px-4 py-4 space-y-3"},Hyn={class:"grid grid-cols-2 gap-3"},Gyn={class:"block text-xs font-medium text-gray-700 mb-1"},Jyn={class:"block text-xs font-medium text-gray-700 mb-1"},Uyn=["placeholder"],zyn={class:"block text-xs font-medium text-gray-700 mb-1"},qyn=["placeholder"],Vyn={key:0,class:"grid grid-cols-3 gap-3 pt-1"},Kyn={class:"block text-xs font-medium text-gray-500 mb-1"},Wyn={class:"block text-xs font-medium text-gray-500 mb-1"},Xyn={class:"block text-xs font-medium text-gray-500 mb-1"},Yyn=["placeholder"],Qyn={class:"space-y-3"},Zyn={class:"flex items-center justify-between"},e3n={class:"text-sm font-medium text-gray-700 flex items-center gap-2"},t3n={key:0,class:"text-xs font-normal text-gray-400 tabular-nums"},n3n={key:0,class:"border border-dashed border-gray-300 rounded-lg px-4 py-6 text-center"},i3n={class:"text-xs text-gray-400"},r3n=["onClick"],s3n={class:"text-sm font-medium text-gray-700 truncate"},o3n={key:0,class:"text-xs text-gray-400 truncate hidden sm:inline font-mono"},c3n={key:1,class:"ml-auto text-xs text-gray-400 bg-gray-100 px-1.5 py-0.5 rounded flex-shrink-0"},u3n=["title","onClick"],l3n={key:0,class:"px-4 py-4 space-y-3 border-t border-gray-200"},a3n={class:"grid grid-cols-3 gap-3"},f3n={class:"block text-xs font-medium text-gray-700 mb-1"},d3n=["onUpdate:modelValue","placeholder"],h3n={class:"block text-xs font-medium text-gray-700 mb-1"},g3n=["onUpdate:modelValue","placeholder"],b3n={class:"block text-xs font-medium text-gray-700 mb-1"},p3n=["onUpdate:modelValue","placeholder"],w3n={class:"block text-xs font-medium text-gray-700 mb-1"},v3n=["onUpdate:modelValue","placeholder"],m3n=["onClick"],y3n={key:0,class:"grid grid-cols-3 gap-3 pt-1"},k3n={class:"block text-xs font-medium text-gray-500 mb-1"},x3n=["onUpdate:modelValue"],$3n={class:"block text-xs font-medium text-gray-500 mb-1"},E3n=["onUpdate:modelValue"],C3n={class:"block text-xs font-medium text-gray-500 mb-1"},S3n=["onUpdate:modelValue","placeholder"],_3n={class:"border border-gray-200 rounded-lg overflow-hidden"},j3n={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},I3n={class:"block text-sm font-medium text-gray-700 mb-3"},A3n={class:"grid grid-cols-3 gap-3"},T3n={class:"font-medium text-sm"},M3n={class:"text-xs text-gray-500 mt-1"},P3n={class:"font-medium text-sm"},D3n={class:"text-xs text-gray-500 mt-1"},O3n={class:"font-medium text-sm"},L3n={class:"text-xs text-gray-500 mt-1"},N3n={class:"block text-sm font-medium text-gray-700 mb-1"},R3n={class:"mt-1 text-xs text-gray-500"},F3n={class:"border-t border-gray-200 pt-4"},B3n={class:"flex items-center justify-between mb-2"},H3n={class:"text-sm font-medium text-gray-700"},G3n=["disabled"],J3n={key:0,class:"animate-spin h-3 w-3",viewBox:"0 0 24 24"},U3n={key:0,class:"space-y-3"},z3n={class:"flex items-center gap-2 text-sm"},q3n={key:0,class:"text-xs text-yellow-600 bg-yellow-100 px-2 py-0.5 rounded-full"},V3n={key:1,class:"inline-flex items-center gap-1 text-xs text-green-600 bg-green-100 px-2 py-0.5 rounded-full"},K3n={key:2,class:"inline-flex items-center gap-1 text-xs text-orange-600 bg-orange-100 px-2 py-0.5 rounded-full"},W3n={key:3,class:"inline-flex items-center gap-1 text-xs text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full"},X3n={key:0,class:"rounded-lg border border-orange-300 bg-orange-50 p-3"},Y3n={class:"text-xs text-orange-700"},Q3n={class:"border border-gray-200 rounded-lg overflow-hidden"},Z3n={class:"flex items-center gap-2"},e5n={key:0,class:"text-xs font-normal text-green-600 bg-green-50 px-1.5 py-0.5 rounded"},t5n={key:0,class:"px-5 py-4 border-t border-gray-200"},n5n={class:"border border-gray-200 rounded-lg overflow-hidden"},i5n={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},r5n={class:"grid grid-cols-2 gap-4"},s5n={class:"block text-sm font-medium text-gray-700 mb-1"},o5n={class:"mt-1 text-xs text-gray-500"},c5n={class:"block text-sm font-medium text-gray-700 mb-1"},u5n={class:"mt-1 text-xs text-gray-500"},l5n={class:"grid grid-cols-2 gap-4"},a5n={class:"block text-sm font-medium text-gray-700 mb-1"},f5n={class:"mt-1 text-xs text-gray-500"},d5n={class:"block text-sm font-medium text-gray-700 mb-1"},h5n={class:"mt-1 text-xs text-gray-500"},g5n={class:"grid grid-cols-2 gap-4"},b5n={class:"block text-sm font-medium text-gray-700 mb-1"},p5n={class:"mt-1 text-xs text-gray-500"},w5n={class:"block text-sm font-medium text-gray-700 mb-1"},v5n={value:"auto"},m5n={value:"plan-mode"},y5n={class:"mt-1 text-xs text-gray-500"},k5n={class:"flex items-center gap-2"},x5n={for:"settings-review-enabled",class:"text-sm text-gray-700"},$5n={class:"mt-1 text-xs text-gray-500 ml-5"},E5n={class:"flex items-center gap-2"},C5n={for:"settings-release-enabled",class:"text-sm text-gray-700"},S5n={class:"mt-1 text-xs text-gray-500 ml-5"},_5n={class:"block text-sm font-medium text-gray-700 mb-1"},j5n={class:"mt-1 text-xs text-gray-500"},I5n={class:"border border-gray-200 rounded-lg overflow-hidden"},A5n={class:"flex items-center gap-2"},T5n={key:0,class:"px-5 py-4 space-y-4 border-t border-gray-200"},M5n={class:"text-xs text-gray-500"},P5n={class:"text-sm font-medium text-gray-700"},D5n=["disabled","aria-checked","onClick"],O5n={class:"flex items-center justify-between pt-2"},L5n={class:"text-xs text-gray-400"},N5n=["disabled"],R5n={key:0,class:"flex items-center gap-2"},F5n={key:1,class:"flex items-center gap-2"},B5n={key:2},H5n={key:3},G5n=wr({__name:"SettingsPanel",props:{systemStatus:{}},setup(a){const d=a,{loading:b,error:m,form:w,dependencies:$,tokenValid:p,tokenUser:j,repoValid:I,repoInfo:N,savedConfigPath:P,validateToken:U,validateRepo:V,loadCurrentConfig:X,saveConfig:ee,checkEnv:K}=c2t(),he=emn(),ke=Ye(!1),ue=Ye({}),oe=Ye({});function re(xe){ue.value[xe]=!ue.value[xe]}function ye(xe){oe.value[xe]=!oe.value[xe]}function pe(){he.addAssociate();const xe=he.workspace.associates.length-1;ue.value[xe]=!0}function be(xe){he.removeAssociate(xe),delete ue.value[xe],delete oe.value[xe]}const se=Ye({project:!0,gongfeng:!0,ai:!1,workspace:!1,e2e:!1,advanced:!1,experimental:!1}),le=Ye("idle"),Ce=Ye(!1),Se=Ye(!1),te=Ye({brainstorm:!1,braindump:!1,chat:!1,knowledge:!1,distill:!1}),q=Ye({});Jr(()=>d.systemStatus,xe=>{xe?.config&&(te.value={brainstorm:xe.config.brainstormEnabled??!1,braindump:xe.config.braindumpEnabled??!1,chat:xe.config.chatEnabled??!1,knowledge:xe.config.knowledgeEnabled??!1,distill:xe.config.distillEnabled??!1})},{immediate:!0});async function He(xe,Pe){q.value[xe]=!0;try{await NKt(xe,Pe),te.value[xe]=Pe}catch(Je){te.value[xe]=!Pe,console.error("Toggle feature failed",Je)}finally{q.value[xe]=!1}}const gt=En(()=>$.value.find(xe=>xe.name===w.ai.mode));function ze(xe){se.value[xe]=!se.value[xe]}async function jt(){if(le.value="saving",await ee()){(he.configured.value||he.workspace.primary.projectPath)&&await he.save(),le.value="reloading";try{const Pe=await sWt();Pe.success?le.value="saved":Pe.reason==="active-issues-timeout"?le.value="saved-pending":le.value="saved"}catch{le.value="saved"}setTimeout(()=>{le.value="idle"},5e3)}else le.value="failed"}async function Jt(){Se.value=!0,await K(!0),Se.value=!1}return gl(()=>{X(),K(!0),he.load()}),(xe,Pe)=>(R(),J("div",_mn,[E("div",jmn,[E("h2",Imn,M(xe.$t("settings.title")),1),A(P)?(R(),J("div",Amn,[ci(M(xe.$t("settings.configPath"))+" ",1),E("code",Tmn,M(A(P)),1)])):Ae("",!0)]),A(b)&&le.value!=="saving"?(R(),J("div",Mmn,[Pe[40]||(Pe[40]=E("svg",{class:"animate-spin h-5 w-5",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(xe.$t("settings.loading")),1)])):(R(),J(sn,{key:1},[A(m)?(R(),J("div",Pmn,M(A(m)),1)):Ae("",!0),le.value==="saved"?(R(),J("div",Dmn,[E("div",Omn,M(xe.$t("settings.saved")),1),E("p",Lmn,M(xe.$t("settings.savedAndApplied")??xe.$t("settings.savedHint")),1)])):Ae("",!0),le.value==="saved-pending"?(R(),J("div",Nmn,[E("div",Rmn,M(xe.$t("settings.saved")),1),E("p",Fmn,M(xe.$t("settings.savedPendingHint")??xe.$t("settings.savedHint")),1)])):Ae("",!0),E("div",Bmn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[0]||(Pe[0]=Je=>ze("project"))},[E("span",null,M(xe.$t("settings.section.project")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.project?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[41]||(Pe[41]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.project?(R(),J("div",Hmn,[E("div",null,[E("label",Gmn,M(xe.$t("setup.project.workDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[1]||(Pe[1]=Je=>A(w).project.workDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.workDirPlaceholder")},null,8,Jmn),[[Ci,A(w).project.workDir]]),E("p",Umn,M(xe.$t("setup.project.workDirHint")),1)]),E("div",zmn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-2.5 text-sm text-gray-600 hover:bg-gray-50 transition-colors rounded-lg",onClick:Pe[2]||(Pe[2]=Je=>Ce.value=!Ce.value)},[E("span",null,M(xe.$t("setup.project.advancedToggle")),1),(R(),J("svg",{class:wn(["h-4 w-4 transition-transform",Ce.value?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[42]||(Pe[42]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),Ce.value?(R(),J("div",qmn,[E("p",Vmn,M(xe.$t("setup.project.advancedHint")),1),E("div",null,[E("label",Kmn,M(xe.$t("setup.project.gitRootDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[3]||(Pe[3]=Je=>A(w).project.gitRootDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.gitRootDirPlaceholder")},null,8,Wmn),[[Ci,A(w).project.gitRootDir]]),E("p",Xmn,M(xe.$t("setup.project.gitRootDirHint")),1)]),E("div",Ymn,[E("div",null,[E("label",Qmn,M(xe.$t("setup.project.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":Pe[4]||(Pe[4]=Je=>A(w).project.baseBranch=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).project.baseBranch]]),E("p",Zmn,M(xe.$t("setup.project.baseBranchHint")),1)]),E("div",null,[E("label",eyn,M(xe.$t("setup.project.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":Pe[5]||(Pe[5]=Je=>A(w).project.branchPrefix=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).project.branchPrefix]]),E("p",tyn,M(xe.$t("setup.project.branchPrefixHint")),1)])]),E("div",null,[E("label",nyn,M(xe.$t("setup.project.worktreeBaseDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[6]||(Pe[6]=Je=>A(w).project.worktreeBaseDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.worktreeBaseDirPlaceholder")},null,8,iyn),[[Ci,A(w).project.worktreeBaseDir]]),E("p",ryn,M(xe.$t("setup.project.worktreeBaseDirHint")),1)]),E("div",null,[E("label",syn,M(xe.$t("setup.project.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[7]||(Pe[7]=Je=>A(w).project.projectSubDir=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.project.projectSubDirPlaceholder")},null,8,oyn),[[Ci,A(w).project.projectSubDir]]),E("p",cyn,M(xe.$t("setup.project.projectSubDirHint")),1)])])):Ae("",!0)])])):Ae("",!0)]),E("div",uyn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[8]||(Pe[8]=Je=>ze("gongfeng"))},[E("span",null,M(xe.$t("settings.section.gongfeng")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.gongfeng?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[43]||(Pe[43]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.gongfeng?(R(),J("div",lyn,[E("div",null,[E("label",ayn,M(xe.$t("setup.gongfeng.apiUrl")),1),Nn(E("input",{"onUpdate:modelValue":Pe[9]||(Pe[9]=Je=>A(w).gongfeng.apiUrl=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:"https://git.woa.com/"},null,512),[[Ci,A(w).gongfeng.apiUrl]]),E("p",fyn,M(xe.$t("setup.gongfeng.apiUrlHint")),1)]),E("div",null,[E("label",dyn,M(xe.$t("setup.gongfeng.privateToken")),1),E("div",hyn,[Nn(E("input",{"onUpdate:modelValue":Pe[10]||(Pe[10]=Je=>A(w).gongfeng.privateToken=Je),type:"password",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.gongfeng.tokenPlaceholder")},null,8,gyn),[[Ci,A(w).gongfeng.privateToken]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(w).gongfeng.apiUrl||!A(w).gongfeng.privateToken,onClick:Pe[11]||(Pe[11]=(...Je)=>A(U)&&A(U)(...Je))},M(xe.$t("setup.gongfeng.verify")),9,byn)]),E("p",pyn,M(xe.$t("setup.gongfeng.tokenHint")),1),A(p)===!0?(R(),J("div",wyn,M(xe.$t("setup.gongfeng.tokenValid"))+M(A(j)?.name?` (${A(j).name})`:""),1)):A(p)===!1?(R(),J("div",vyn,M(xe.$t("setup.gongfeng.tokenInvalid")),1)):Ae("",!0)]),E("div",null,[E("label",myn,M(xe.$t("setup.gongfeng.projectPath")),1),E("div",yyn,[Nn(E("input",{"onUpdate:modelValue":Pe[12]||(Pe[12]=Je=>A(w).gongfeng.projectPath=Je),type:"text",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("setup.gongfeng.projectPathPlaceholder")},null,8,kyn),[[Ci,A(w).gongfeng.projectPath]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(w).gongfeng.apiUrl||!A(w).gongfeng.privateToken||!A(w).gongfeng.projectPath,onClick:Pe[13]||(Pe[13]=(...Je)=>A(V)&&A(V)(...Je))},M(xe.$t("setup.gongfeng.verify")),9,xyn)]),E("p",$yn,M(xe.$t("setup.gongfeng.projectPathHint")),1),A(I)===!0?(R(),J("div",Eyn,M(xe.$t("setup.gongfeng.repoFound"))+M(A(N)?.name?`: ${A(N).name}`:""),1)):A(I)===!1?(R(),J("div",Cyn,M(xe.$t("setup.gongfeng.repoNotFound")),1)):Ae("",!0)])])):Ae("",!0)]),E("div",Syn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[14]||(Pe[14]=Je=>ze("workspace"))},[E("span",_yn,[ci(M(xe.$t("settings.section.workspace"))+" ",1),A(he).configured.value&&A(he).valid.value?(R(),J("span",jyn,M(xe.$t("settings.workspace.active")),1)):A(he).configured.value?Ae("",!0):(R(),J("span",Iyn,M(xe.$t("settings.workspace.notConfigured")),1))]),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.workspace?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[44]||(Pe[44]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.workspace?(R(),J("div",Ayn,[E("p",Tyn,M(xe.$t("settings.workspace.hint")),1),A(he).configPath.value?(R(),J("div",Myn,[ci(M(xe.$t("settings.workspace.configPath"))+" ",1),E("code",Pyn,M(A(he).configPath.value),1)])):Ae("",!0),A(he).validationErrors.value.length>0?(R(),J("div",Dyn,[E("div",Oyn,M(xe.$t("settings.workspace.validationFailed")),1),E("ul",Lyn,[(R(!0),J(sn,null,bi(A(he).validationErrors.value,(Je,Bt)=>(R(),J("li",{key:Bt},M(Je),1))),128))])])):Ae("",!0),E("div",Nyn,[E("div",Ryn,[Pe[45]||(Pe[45]=E("svg",{class:"h-4 w-4 text-blue-600 flex-shrink-0",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{d:"M10.75 4.75a.75.75 0 00-1.5 0v4.5h-4.5a.75.75 0 000 1.5h4.5v4.5a.75.75 0 001.5 0v-4.5h4.5a.75.75 0 000-1.5h-4.5v-4.5z"})],-1)),E("h4",Fyn,M(xe.$t("settings.workspace.primaryRepo")),1)]),E("div",Byn,[E("div",Hyn,[E("div",null,[E("label",Gyn,[ci(M(xe.$t("settings.workspace.repoName"))+" ",1),Pe[46]||(Pe[46]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":Pe[15]||(Pe[15]=Je=>A(he).workspace.primary.name=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:"primary"},null,512),[[Ci,A(he).workspace.primary.name]])]),E("div",null,[E("label",Jyn,[ci(M(xe.$t("settings.workspace.projectPath"))+" ",1),Pe[47]||(Pe[47]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":Pe[16]||(Pe[16]=Je=>A(he).workspace.primary.projectPath=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.projectPathPlaceholder")},null,8,Uyn),[[Ci,A(he).workspace.primary.projectPath]])])]),E("div",null,[E("label",zyn,[ci(M(xe.$t("settings.workspace.localGitRoot"))+" ",1),Pe[48]||(Pe[48]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":Pe[17]||(Pe[17]=Je=>A(he).workspace.primary.localGitRoot=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.localGitRootPlaceholder")},null,8,qyn),[[Ci,A(he).workspace.primary.localGitRoot]])]),E("button",{type:"button",class:"inline-flex items-center gap-1 text-xs text-gray-500 hover:text-gray-700 transition-colors pt-1",onClick:Pe[18]||(Pe[18]=Je=>ke.value=!ke.value)},[(R(),J("svg",{class:wn(["h-3 w-3 transition-transform",ke.value?"rotate-90":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[49]||(Pe[49]=[E("path",{"fill-rule":"evenodd",d:"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z","clip-rule":"evenodd"},null,-1)])],2)),ci(" "+M(xe.$t("settings.workspace.advancedToggle")),1)]),ke.value?(R(),J("div",Vyn,[E("div",null,[E("label",Kyn,M(xe.$t("settings.workspace.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":Pe[19]||(Pe[19]=Je=>A(he).workspace.primary.baseBranch=Je),type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"master"},null,512),[[Ci,A(he).workspace.primary.baseBranch]])]),E("div",null,[E("label",Wyn,M(xe.$t("settings.workspace.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":Pe[20]||(Pe[20]=Je=>A(he).workspace.primary.branchPrefix=Je),type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"feat/issue"},null,512),[[Ci,A(he).workspace.primary.branchPrefix]])]),E("div",null,[E("label",Xyn,M(xe.$t("settings.workspace.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":Pe[21]||(Pe[21]=Je=>A(he).workspace.primary.projectSubDir=Je),type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:xe.$t("settings.workspace.projectSubDirPlaceholder")},null,8,Yyn),[[Ci,A(he).workspace.primary.projectSubDir]])])])):Ae("",!0)])]),E("div",Qyn,[E("div",Zyn,[E("h4",e3n,[ci(M(xe.$t("settings.workspace.associateRepos"))+" ",1),A(he).hasAssociates.value?(R(),J("span",t3n,M(A(he).workspace.associates.length),1)):Ae("",!0)]),E("button",{type:"button",class:"inline-flex items-center gap-1 px-3 py-1.5 text-xs font-medium text-blue-700 bg-blue-50 rounded-lg hover:bg-blue-100 transition-colors",onClick:pe},[Pe[50]||(Pe[50]=E("svg",{class:"h-3.5 w-3.5",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{d:"M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z"})],-1)),ci(" "+M(xe.$t("settings.workspace.addRepo")),1)])]),A(he).hasAssociates.value?Ae("",!0):(R(),J("div",n3n,[E("p",i3n,M(xe.$t("settings.workspace.noAssociates")),1)])),(R(!0),J(sn,null,bi(A(he).workspace.associates,(Je,Bt)=>(R(),J("div",{key:Bt,class:"border border-gray-200 rounded-lg overflow-hidden transition-shadow hover:shadow-sm"},[E("div",{class:"flex items-center gap-3 px-4 py-2.5 bg-gray-50 cursor-pointer select-none",onClick:wt=>re(Bt)},[(R(),J("svg",{class:wn(["h-3.5 w-3.5 text-gray-400 transition-transform flex-shrink-0",ue.value[Bt]?"rotate-90":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[51]||(Pe[51]=[E("path",{"fill-rule":"evenodd",d:"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z","clip-rule":"evenodd"},null,-1)])],2)),E("span",s3n,M(Je.name||"associate-"+(Bt+1)),1),Je.projectPath?(R(),J("span",o3n,M(Je.projectPath),1)):Ae("",!0),Je.role?(R(),J("span",c3n,M(Je.role),1)):Ae("",!0),E("button",{type:"button",class:"ml-auto p-1 text-gray-400 hover:text-red-500 transition-colors flex-shrink-0",title:xe.$t("settings.workspace.removeRepo"),onClick:Ah(wt=>be(Bt),["stop"])},[...Pe[52]||(Pe[52]=[E("svg",{class:"h-4 w-4",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{"fill-rule":"evenodd",d:"M8.75 1A2.75 2.75 0 006 3.75v.443c-.795.077-1.584.176-2.365.298a.75.75 0 10.23 1.482l.149-.022.841 10.518A2.75 2.75 0 007.596 19h4.807a2.75 2.75 0 002.742-2.53l.841-10.52.149.023a.75.75 0 00.23-1.482A41.03 41.03 0 0014 4.193V3.75A2.75 2.75 0 0011.25 1h-2.5zM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4zM8.58 7.72a.75.75 0 01.78.72l.5 6a.75.75 0 01-1.49.12l-.5-6a.75.75 0 01.71-.84zm2.84 0a.75.75 0 01.71.84l-.5 6a.75.75 0 11-1.49-.12l.5-6a.75.75 0 01.78-.72z","clip-rule":"evenodd"})],-1)])],8,u3n)],8,r3n),ue.value[Bt]?(R(),J("div",l3n,[E("div",a3n,[E("div",null,[E("label",f3n,[ci(M(xe.$t("settings.workspace.repoName"))+" ",1),Pe[53]||(Pe[53]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":wt=>Je.name=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:"associate-"+(Bt+1)},null,8,d3n),[[Ci,Je.name]])]),E("div",null,[E("label",h3n,[ci(M(xe.$t("settings.workspace.projectPath"))+" ",1),Pe[54]||(Pe[54]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":wt=>Je.projectPath=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.projectPathPlaceholder")},null,8,g3n),[[Ci,Je.projectPath]])]),E("div",null,[E("label",b3n,M(xe.$t("settings.workspace.role")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.role=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.rolePlaceholder")},null,8,p3n),[[Ci,Je.role]])])]),E("div",null,[E("label",w3n,[ci(M(xe.$t("settings.workspace.localGitRoot"))+" ",1),Pe[55]||(Pe[55]=E("span",{class:"text-red-400 ml-0.5"},"*",-1))]),Nn(E("input",{"onUpdate:modelValue":wt=>Je.localGitRoot=wt,type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:xe.$t("settings.workspace.localGitRootPlaceholder")},null,8,v3n),[[Ci,Je.localGitRoot]])]),E("button",{type:"button",class:"inline-flex items-center gap-1 text-xs text-gray-500 hover:text-gray-700 transition-colors pt-1",onClick:wt=>ye(Bt)},[(R(),J("svg",{class:wn(["h-3 w-3 transition-transform",oe.value[Bt]?"rotate-90":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[56]||(Pe[56]=[E("path",{"fill-rule":"evenodd",d:"M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z","clip-rule":"evenodd"},null,-1)])],2)),ci(" "+M(xe.$t("settings.workspace.advancedToggle")),1)],8,m3n),oe.value[Bt]?(R(),J("div",y3n,[E("div",null,[E("label",k3n,M(xe.$t("settings.workspace.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.baseBranch=wt,type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"master"},null,8,x3n),[[Ci,Je.baseBranch]])]),E("div",null,[E("label",$3n,M(xe.$t("settings.workspace.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.branchPrefix=wt,type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:"feat/issue"},null,8,E3n),[[Ci,Je.branchPrefix]])]),E("div",null,[E("label",C3n,M(xe.$t("settings.workspace.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":wt=>Je.projectSubDir=wt,type:"text",class:"w-full border border-gray-200 rounded-lg px-3 py-1.5 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 bg-gray-50",placeholder:xe.$t("settings.workspace.projectSubDirPlaceholder")},null,8,S3n),[[Ci,Je.projectSubDir]])])])):Ae("",!0)])):Ae("",!0)]))),128))])])):Ae("",!0)]),E("div",_3n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[22]||(Pe[22]=Je=>ze("ai"))},[E("span",null,M(xe.$t("settings.section.ai")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.ai?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[57]||(Pe[57]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.ai?(R(),J("div",j3n,[E("div",null,[E("label",I3n,M(xe.$t("setup.ai.modeLabel")),1),E("div",A3n,[E("button",{class:wn(["p-3 rounded-lg border-2 text-left transition-colors",A(w).ai.mode==="claude-internal"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:Pe[23]||(Pe[23]=Je=>A(w).ai.mode="claude-internal")},[E("div",T3n,M(xe.$t("setup.ai.claudeInternal")),1),E("div",M3n,M(xe.$t("setup.ai.claudeInternalDesc")),1)],2),E("button",{class:wn(["p-3 rounded-lg border-2 text-left transition-colors",A(w).ai.mode==="cursor-agent"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:Pe[24]||(Pe[24]=Je=>A(w).ai.mode="cursor-agent")},[E("div",P3n,M(xe.$t("setup.ai.cursorAgent")),1),E("div",D3n,M(xe.$t("setup.ai.cursorAgentDesc")),1)],2),E("button",{class:wn(["p-3 rounded-lg border-2 text-left transition-colors",A(w).ai.mode==="codebuddy"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:Pe[25]||(Pe[25]=Je=>A(w).ai.mode="codebuddy")},[E("div",O3n,M(xe.$t("setup.ai.codebuddy")),1),E("div",L3n,M(xe.$t("setup.ai.codebuddyDesc")),1)],2)])]),E("div",null,[E("label",N3n,M(xe.$t("setup.ai.model")),1),Nn(E("input",{"onUpdate:modelValue":Pe[26]||(Pe[26]=Je=>A(w).ai.model=Je),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).ai.model]]),E("p",R3n,M(xe.$t("setup.ai.modelHint")),1)]),E("div",F3n,[E("div",B3n,[E("p",H3n,M(xe.$t("setup.ai.cliStatus")),1),E("button",{class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium text-gray-600 bg-gray-100 rounded-lg hover:bg-gray-200 disabled:opacity-50 transition-colors",disabled:Se.value,onClick:Jt},[Se.value?(R(),J("svg",J3n,[...Pe[58]||(Pe[58]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):Ae("",!0),ci(" "+M(xe.$t("setup.ai.authRefresh")),1)],8,G3n)]),gt.value?(R(),J("div",U3n,[E("div",z3n,[E("span",null,M(gt.value.displayName),1),gt.value.installed?gt.value.authStatus==="logged_in"?(R(),J("span",V3n,"✅ "+M(xe.$t("setup.ai.authLoggedIn")),1)):gt.value.authStatus==="not_logged_in"?(R(),J("span",K3n,"⚠️ "+M(xe.$t("setup.ai.authNotLoggedIn")),1)):gt.value.authStatus==="unknown"?(R(),J("span",W3n,"❓ "+M(xe.$t("setup.ai.authUnknown")),1)):Ae("",!0):(R(),J("span",q3n,M(xe.$t("setup.env.notInstalled")),1))]),gt.value.installed&&gt.value.authStatus==="not_logged_in"?(R(),J("div",X3n,[E("p",Y3n,M(xe.$t("setup.ai.authLoginHint")),1)])):Ae("",!0)])):Ae("",!0)])])):Ae("",!0)]),E("div",Q3n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[27]||(Pe[27]=Je=>ze("e2e"))},[E("span",Z3n,[ci(M(xe.$t("settings.section.e2e"))+" ",1),A(w).e2e.uatVendorDir?(R(),J("span",e5n,M(xe.$t("settings.e2e.configured")),1)):Ae("",!0)]),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.e2e?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[59]||(Pe[59]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.e2e?(R(),J("div",t5n,[xr(Smn,{form:A(w),onE2eSetupDone:Pe[28]||(Pe[28]=Je=>{Je.vendorDir&&(A(w).e2e.uatVendorDir=Je.vendorDir),Je.pythonBin&&(A(w).e2e.pythonBin=Je.pythonBin)})},null,8,["form"])])):Ae("",!0)]),E("div",n5n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[29]||(Pe[29]=Je=>ze("advanced"))},[E("span",null,M(xe.$t("settings.section.advanced")),1),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.advanced?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[60]||(Pe[60]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.advanced?(R(),J("div",i5n,[E("div",r5n,[E("div",null,[E("label",s5n,M(xe.$t("setup.advanced.discoveryInterval")),1),Nn(E("input",{"onUpdate:modelValue":Pe[30]||(Pe[30]=Je=>A(w).poll.discoveryIntervalMs=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.discoveryIntervalMs,void 0,{number:!0}]]),E("p",o5n,M(xe.$t("setup.advanced.discoveryIntervalHint")),1)]),E("div",null,[E("label",c5n,M(xe.$t("setup.advanced.driveInterval")),1),Nn(E("input",{"onUpdate:modelValue":Pe[31]||(Pe[31]=Je=>A(w).poll.driveIntervalMs=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.driveIntervalMs,void 0,{number:!0}]]),E("p",u5n,M(xe.$t("setup.advanced.driveIntervalHint")),1)])]),E("div",l5n,[E("div",null,[E("label",a5n,M(xe.$t("setup.advanced.maxRetries")),1),Nn(E("input",{"onUpdate:modelValue":Pe[32]||(Pe[32]=Je=>A(w).poll.maxRetries=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.maxRetries,void 0,{number:!0}]]),E("p",f5n,M(xe.$t("setup.advanced.maxRetriesHint")),1)]),E("div",null,[E("label",d5n,M(xe.$t("setup.advanced.maxConcurrent")),1),Nn(E("input",{"onUpdate:modelValue":Pe[33]||(Pe[33]=Je=>A(w).poll.maxConcurrent=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).poll.maxConcurrent,void 0,{number:!0}]]),E("p",h5n,M(xe.$t("setup.advanced.maxConcurrentHint")),1)])]),E("div",g5n,[E("div",null,[E("label",b5n,M(xe.$t("setup.advanced.webPort")),1),Nn(E("input",{"onUpdate:modelValue":Pe[34]||(Pe[34]=Je=>A(w).web.port=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).web.port,void 0,{number:!0}]]),E("p",p5n,M(xe.$t("setup.advanced.webPortHint")),1)]),E("div",null,[E("label",w5n,M(xe.$t("setup.advanced.pipelineMode")),1),Nn(E("select",{"onUpdate:modelValue":Pe[35]||(Pe[35]=Je=>A(w).pipeline.mode=Je),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},[E("option",v5n,M(xe.$t("setup.advanced.pipelineAuto")),1),E("option",m5n,M(xe.$t("setup.advanced.pipelinePlanMode")),1)],512),[[Rd,A(w).pipeline.mode]]),E("p",y5n,M(xe.$t("setup.advanced.pipelineModeHint")),1)])]),E("div",null,[E("div",k5n,[Nn(E("input",{id:"settings-review-enabled","onUpdate:modelValue":Pe[36]||(Pe[36]=Je=>A(w).review.enabled=Je),type:"checkbox",class:"rounded border-gray-300"},null,512),[[a9,A(w).review.enabled]]),E("label",x5n,M(xe.$t("setup.advanced.enableReview")),1)]),E("p",$5n,M(xe.$t("setup.advanced.enableReviewHint")),1)]),E("div",null,[E("div",E5n,[Nn(E("input",{id:"settings-release-enabled","onUpdate:modelValue":Pe[37]||(Pe[37]=Je=>A(w).release.enabled=Je),type:"checkbox",class:"rounded border-gray-300"},null,512),[[a9,A(w).release.enabled]]),E("label",C5n,M(xe.$t("setup.advanced.enableRelease")),1)]),E("p",S5n,M(xe.$t("setup.advanced.enableReleaseHint")),1)]),E("div",null,[E("label",_5n,M(xe.$t("setup.advanced.phaseTimeout")),1),Nn(E("input",{"onUpdate:modelValue":Pe[38]||(Pe[38]=Je=>A(w).ai.phaseTimeoutMs=Je),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(w).ai.phaseTimeoutMs,void 0,{number:!0}]]),E("p",j5n,M(xe.$t("setup.advanced.phaseTimeoutHint")),1)])])):Ae("",!0)]),E("div",I5n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-5 py-3.5 text-sm font-semibold text-gray-700 bg-gray-50 hover:bg-gray-100 transition-colors",onClick:Pe[39]||(Pe[39]=Je=>ze("experimental"))},[E("span",A5n,[ci(M(xe.$t("settings.section.experimental"))+" ",1),Pe[61]||(Pe[61]=E("span",{class:"text-xs font-normal text-amber-600 bg-amber-50 px-1.5 py-0.5 rounded"},"Beta",-1))]),(R(),J("svg",{class:wn(["h-4 w-4 text-gray-400 transition-transform",se.value.experimental?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...Pe[62]||(Pe[62]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),se.value.experimental?(R(),J("div",T5n,[E("p",M5n,M(xe.$t("settings.experimental.hint")),1),(R(),J(sn,null,bi(["brainstorm","braindump","chat","knowledge","distill"],Je=>E("div",{key:Je,class:"flex items-center justify-between py-2"},[E("div",null,[E("span",P5n,M(xe.$t("settings.experimental."+Je)),1)]),E("button",{type:"button",class:wn(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50",te.value[Je]?"bg-blue-600":"bg-gray-200"]),disabled:!!q.value[Je],role:"switch","aria-checked":te.value[Je],onClick:Bt=>He(Je,!te.value[Je])},[E("span",{class:wn(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",te.value[Je]?"translate-x-5":"translate-x-0"])},null,2)],10,D5n)])),64))])):Ae("",!0)]),E("div",O5n,[E("p",L5n,M(xe.$t("settings.autoApplyHint")??xe.$t("settings.restartHint")),1),E("button",{class:wn(["px-6 py-2.5 text-sm font-medium text-white rounded-lg transition-colors disabled:opacity-50",le.value==="saved"||le.value==="saved-pending"?"bg-green-600 hover:bg-green-700":"bg-blue-600 hover:bg-blue-700"]),disabled:le.value==="saving"||le.value==="reloading",onClick:jt},[le.value==="saving"?(R(),J("span",R5n,[Pe[63]||(Pe[63]=E("svg",{class:"animate-spin h-4 w-4",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(xe.$t("settings.saving")),1)])):le.value==="reloading"?(R(),J("span",F5n,[Pe[64]||(Pe[64]=E("svg",{class:"animate-spin h-4 w-4",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(xe.$t("settings.applying")??xe.$t("settings.saving")),1)])):le.value==="saved"||le.value==="saved-pending"?(R(),J("span",B5n,M(xe.$t("settings.saved")),1)):(R(),J("span",H5n,M(xe.$t("settings.save")),1))],10,N5n)])],64))]))}}),J5n={key:1},U5n={class:"max-w-7xl mx-auto px-4 py-6"},z5n={class:"mb-4 flex items-center space-x-1 border-b border-gray-200"},q5n=wr({__name:"App",setup(a){const d=Ye(null),b=Ye(window.location.pathname==="/detail"),m=Ye("tracked"),{pipelineMode:w}=r_(),{tasks:$,filter:p,filteredTasks:j,activeCount:I,completedCount:N,failedCount:P,refresh:U}=$Wt("issue"),V=_wt(),X=JX(),ee=_Wt(U),K=En(()=>V.selectedIssue.value?_r(V.selectedIssue.value):void 0),he=En(()=>{const be=K.value;return be!=null?X.getVerifyFixLoop(be):void 0});async function ke(be){try{const se=await dX(be);V.selectIssue(se,X.agentLogs)}catch{console.warn(`Issue #${be} not found, ignoring URL param`)}}const{readIssueIidFromUrl:ue}=jWt({selectedIssueIid:K,onOpenIssue:ke}),{connected:oe}=Swt((be,se)=>{const le=se;if(be.startsWith("issue:")||be.startsWith("review:")){U();const Ce=le.data;Ce?.issueIid&&V.selectedIssue.value&&_r(V.selectedIssue.value)===Ce.issueIid&&V.refreshDetail()}if(be.startsWith("braindump:")&&U(),be.startsWith("distill:"),be==="agent:output"){const Ce=le.data;Ce?.event&&X.pushAgentStreamEvent(Ce.issueIid,K,Ce.phase,Ce.event)}if(be==="pipeline:progress"){const Ce=le.data;Ce&&V.selectedIssue.value&&_r(V.selectedIssue.value)===Ce.issueIid&&X.pushSystemLog(Ce.issueIid,K,Ce.step,Ce.message??"",le.timestamp)}if(be.startsWith("verify:")){const Ce=le.data,Se=Ce?.issueIid;if(Se&&(X.updateVerifyFixLoop(Se,be,Ce),V.selectedIssue.value&&_r(V.selectedIssue.value)===Se)){let te="";be==="verify:loopStarted"?te=Cs("verify.loopStarted",{max:Ce.maxIterations}):be==="verify:iterationComplete"?te=Ce.passed?Cs("verify.iterationPassed",{n:Ce.iteration}):Cs("verify.iterationFailed",{n:Ce.iteration,reasons:(Ce.failures??[]).join("; ")}):be==="verify:loopExhausted"&&(te=Cs("verify.loopExhausted",{n:Ce.totalIterations})),te&&X.pushSystemLog(Se,K,"verify",te,le.timestamp)}}});async function re(){try{d.value=await kwt(),d.value?.config?.pipelineMode&&(w.value=d.value.config.pipelineMode)}catch(be){console.error("Fetch status failed",be)}}function ye(){m.value="browse",ee.browseIssues.value.length===0&&ee.fetchGongfengIssues()}let pe=null;return gl(async()=>{Cwt(),await U(),re(),pe=setInterval(re,1e4);const be=ue();be&&ke(be)}),dp(()=>{pe&&clearInterval(pe)}),(be,se)=>b.value?(R(),Ts(Z2n,{key:0})):(R(),J("div",J5n,[xr(FWt,{connected:A(oe),"system-status":d.value,onOpenSettings:se[0]||(se[0]=le=>m.value="settings")},null,8,["connected","system-status"]),E("main",U5n,[xr(ZWt,{total:A($).length,active:A(I),completed:A(N),failed:A(P)},null,8,["total","active","completed","failed"]),E("div",z5n,[E("button",{class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="tracked"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[1]||(se[1]=le=>m.value="tracked")},M(be.$t("app.trackedIssues")),3),E("button",{class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="browse"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[2]||(se[2]=le=>ye())},M(be.$t("app.browseIssues")),3),d.value?.config?.brainstormEnabled?(R(),J("button",{key:0,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="brainstorm"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[3]||(se[3]=le=>m.value="brainstorm")},M(be.$t("app.brainstorm")),3)):Ae("",!0),d.value?.config?.braindumpEnabled?(R(),J("button",{key:1,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="braindump"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[4]||(se[4]=le=>m.value="braindump")},"Braindump",2)):Ae("",!0),d.value?.config?.chatEnabled?(R(),J("button",{key:2,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="chat"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[5]||(se[5]=le=>m.value="chat")},M(be.$t("app.chat")),3)):Ae("",!0),d.value?.config?.knowledgeEnabled?(R(),J("button",{key:3,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="knowledge"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[6]||(se[6]=le=>m.value="knowledge")},M(be.$t("app.knowledge")),3)):Ae("",!0),d.value?.config?.distillEnabled?(R(),J("button",{key:4,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="distill"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[7]||(se[7]=le=>m.value="distill")},M(be.$t("app.distill")),3)):Ae("",!0),d.value?.config?.knowledgeEnabled?(R(),J("button",{key:5,class:wn(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",m.value==="usecase"?"border-gray-800 text-gray-800":"border-transparent text-gray-500 hover:text-gray-700"]),onClick:se[8]||(se[8]=le=>m.value="usecase")},"系统用例",2)):Ae("",!0)]),m.value==="tracked"?(R(),Ts(OXt,{key:0,issues:A(j),filter:A(p),"system-status":d.value,"onUpdate:filter":se[9]||(se[9]=le=>p.value=le),onSelect:se[10]||(se[10]=le=>ke(le)),onStart:se[11]||(se[11]=le=>A(V).doStartIssue(le,A(U))),onRetry:se[12]||(se[12]=le=>A(V).doRetryIssue(le,A(U))),onRestart:se[13]||(se[13]=le=>A(V).doRestartIssue(le,A(U),A($))),onCancel:se[14]||(se[14]=le=>A(V).doCancelIssue(le,A(U)))},null,8,["issues","filter","system-status"])):Ae("",!0),m.value==="brainstorm"?(R(),Ts(pZt,{key:1})):Ae("",!0),m.value==="braindump"?(R(),Ts(GZt,{key:2})):Ae("",!0),m.value==="chat"?(R(),Ts(Een,{key:3})):Ae("",!0),m.value==="knowledge"?(R(),Ts($an,{key:4})):Ae("",!0),m.value==="distill"?(R(),Ts(vdn,{key:5})):Ae("",!0),m.value==="usecase"?(R(),Ts(b1n,{key:6})):Ae("",!0),m.value==="settings"?(R(),Ts(G5n,{key:7,"system-status":d.value},null,8,["system-status"])):Ae("",!0),m.value==="browse"?(R(),Ts(bYt,{key:8,issues:A(ee).browseIssues.value,"tracked-iids":A(ee).browseTrackedIids.value,total:A(ee).browseTotal.value,page:A(ee).browsePage.value,"per-page":A(ee).browsePerPage,loading:A(ee).browseLoading.value,error:A(ee).browseError.value,search:A(ee).browseSearch.value,"system-status":d.value,"onUpdate:search":se[15]||(se[15]=le=>A(ee).browseSearch.value=le),"onUpdate:page":se[16]||(se[16]=le=>A(ee).browsePage.value=le),onSearch:se[17]||(se[17]=le=>A(ee).fetchGongfengIssues()),onStart:se[18]||(se[18]=le=>A(ee).openStartDialog(le))},null,8,["issues","tracked-iids","total","page","per-page","loading","error","search","system-status"])):Ae("",!0)]),xr(z1n,{issue:A(ee).startDialogIssue.value,supplement:A(ee).startSupplement.value,processing:A(ee).startProcessing.value,onClose:se[19]||(se[19]=le=>A(ee).startDialogIssue.value=null),"onUpdate:supplement":se[20]||(se[20]=le=>A(ee).startSupplement.value=le),onStart:se[21]||(se[21]=le=>{A(ee).doStartProcessing(()=>{m.value="tracked"})})},null,8,["issue","supplement","processing"]),A(V).selectedIssue.value?(R(),Ts(Kvn,{key:0,issue:A(V).selectedIssue.value,progress:A(V).detailProgress.value,"system-status":d.value,"verify-fix-loop":he.value,"agent-logs":A(X).filteredLogs.value,"agent-auto-scroll":A(X).agentAutoScroll.value,"agent-debug-mode":A(X).debugMode.value,supplement:A(V).detailSupplement.value,"supplement-form":A(V).detailSupplementForm.value,"supplement-loading":A(V).detailSupplementLoading.value,"supplement-editing":A(V).detailSupplementEditing.value,"supplement-saving":A(V).detailSupplementSaving.value,"has-supplement-data":A(V).hasSupplementData(A(V).detailSupplement.value),"detail-version":A(V).detailVersion.value,"review-feedback":A(V).reviewFeedback.value,"review-submitting":A(V).reviewSubmitting.value,"review-history":A(V).reviewHistory.value,onClose:se[22]||(se[22]=le=>A(V).selectedIssue.value=null),onStart:se[23]||(se[23]=le=>A(V).doStartIssue(le,A(U))),onRetry:se[24]||(se[24]=le=>A(V).doRetryIssue(le,A(U))),onRestart:se[25]||(se[25]=le=>A(V).doRestartIssue(le,A(U),A($))),onCancel:se[26]||(se[26]=le=>A(V).doCancelIssue(le,A(U))),onMarkDeployed:se[27]||(se[27]=le=>A(V).doMarkDeployed(le,A(U))),onStopPreview:se[28]||(se[28]=le=>A(V).doStopPreview(le,A(U))),onRestartPreview:se[29]||(se[29]=le=>A(V).doRestartPreview(le,A(U))),onRetryFromPhase:se[30]||(se[30]=(le,Ce)=>A(V).doRetryFromPhase(le,Ce,Ce,A(U))),onApprove:se[31]||(se[31]=le=>A(V).doApprovePlan(le,A(U))),onReject:se[32]||(se[32]=le=>A(V).doRejectPlan(le,A(U))),onSkip:se[33]||(se[33]=le=>A(V).doSkipReview(le,A(U))),"onUpdate:reviewFeedback":se[34]||(se[34]=le=>A(V).reviewFeedback.value=le),onSupplementEdit:se[35]||(se[35]=le=>A(V).enterSupplementEdit()),onSupplementSave:se[36]||(se[36]=le=>A(V).saveDetailSupplement(A(U))),onSupplementCancel:se[37]||(se[37]=le=>A(V).detailSupplementEditing.value=!1),"onUpdate:supplementForm":se[38]||(se[38]=le=>A(V).detailSupplementForm.value=le),"onUpdate:agentAutoScroll":se[39]||(se[39]=le=>A(X).agentAutoScroll.value=le),"onUpdate:agentDebugMode":se[40]||(se[40]=le=>A(X).debugMode.value=le),onClearLogs:se[41]||(se[41]=le=>A(X).clear())},null,8,["issue","progress","system-status","verify-fix-loop","agent-logs","agent-auto-scroll","agent-debug-mode","supplement","supplement-form","supplement-loading","supplement-editing","supplement-saving","has-supplement-data","detail-version","review-feedback","review-submitting","review-history"])):Ae("",!0)]))}}),V5n={class:"border-t border-gray-200"},K5n={class:"flex items-center gap-2"},W5n={class:"font-medium"},X5n={key:0,class:"text-blue-400 font-medium"},Y5n={key:1,class:"text-gray-400"},Q5n={key:2,class:"animate-spin h-3 w-3 text-blue-400",viewBox:"0 0 24 24"},Z5n={class:"flex items-center gap-3"},e4n={key:0,class:"tabular-nums text-gray-400"},t4n=["title"],n4n={key:0,class:"text-gray-500"},i4n=wr({__name:"InstallLogPanel",props:{visible:{type:Boolean},logs:{},depName:{},elapsed:{},installing:{type:Boolean},installPhase:{}},emits:["toggle","close"],setup(a,{emit:d}){const{t:b}=Kg(),m=a,w=d,$=Ye(null),p=En(()=>{switch(m.installPhase){case"ai-cli":return b("setup.env.phaseAiCli");case"toolchain":return b("setup.env.phaseToolchain");case"ai-fallback":return b("setup.env.phaseAiFallback");default:return""}});function j(I){return I.startsWith("$ ")?"text-green-400":I.includes("[stderr]")?"text-yellow-400":/Error:|失败|FAIL/i.test(I)?"text-red-400":"text-gray-300"}return Jr(()=>m.logs.length,async()=>{await _1(),$.value&&($.value.scrollTop=$.value.scrollHeight)}),(I,N)=>(R(),J("div",V5n,[E("div",{class:"flex items-center justify-between px-4 py-2 bg-gray-800 text-gray-300 text-xs cursor-pointer select-none",onClick:N[1]||(N[1]=P=>w("toggle"))},[E("div",K5n,[(R(),J("svg",{class:wn(["h-3 w-3 transition-transform",a.visible?"rotate-0":"-rotate-90"]),viewBox:"0 0 20 20",fill:"currentColor"},[...N[2]||(N[2]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2)),E("span",W5n,M(A(b)("setup.env.logPanel")),1),p.value?(R(),J("span",X5n,"["+M(p.value)+"]",1)):Ae("",!0),a.depName?(R(),J("span",Y5n,"— "+M(a.depName),1)):Ae("",!0),a.installing?(R(),J("svg",Q5n,[...N[3]||(N[3]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):Ae("",!0)]),E("div",Z5n,[a.installing?(R(),J("span",e4n,M(a.elapsed)+"s",1)):Ae("",!0),E("button",{class:"text-gray-400 hover:text-gray-200 transition-colors",title:A(b)("setup.env.closePanel"),onClick:N[0]||(N[0]=Ah(P=>w("close"),["stop"]))},[...N[4]||(N[4]=[E("svg",{class:"h-3.5 w-3.5",viewBox:"0 0 20 20",fill:"currentColor"},[E("path",{d:"M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"})],-1)])],8,t4n)])]),Nn(E("div",null,[E("div",{ref_key:"logContainer",ref:$,class:"bg-gray-900 px-4 py-3 text-xs font-mono max-h-48 overflow-y-auto"},[a.installing&&!a.logs.length?(R(),J("div",n4n,M(A(b)("setup.env.waitingOutput")),1)):Ae("",!0),(R(!0),J(sn,null,bi(a.logs,(P,U)=>(R(),J("div",{key:U,class:wn(["leading-5",j(P)])},M(P),3))),128))],512)],512),[[YVt,a.visible]])]))}}),r4n={class:"min-h-screen bg-gray-50 flex items-center justify-center p-4"},s4n={key:0,class:"bg-white rounded-2xl shadow-lg max-w-lg w-full p-10 text-center"},o4n={class:"text-2xl font-bold text-gray-900 mb-2"},c4n={class:"text-gray-600 mb-4"},u4n={class:"block bg-gray-100 rounded-lg p-3 text-sm mb-6 break-all"},l4n={class:"text-gray-600"},a4n={key:1,class:"bg-white rounded-2xl shadow-lg max-w-3xl w-full overflow-hidden"},f4n={class:"bg-gray-900 text-white px-8 py-6"},d4n={class:"flex items-center justify-between"},h4n={class:"flex items-center space-x-3"},g4n={class:"text-xl font-bold"},b4n={class:"text-gray-400 text-sm mt-1"},p4n={class:"mt-4 flex gap-1"},w4n={class:"p-8 min-h-[400px]"},v4n={key:0,class:"mb-4 bg-red-50 border border-red-200 text-red-700 rounded-lg px-4 py-3 text-sm"},m4n={key:1},y4n={class:"text-gray-600 mb-4"},k4n={key:0,class:"flex items-center gap-2 text-gray-500"},x4n={key:1,class:"space-y-5"},$4n={key:0,class:"flex items-center gap-3"},E4n=["disabled"],C4n={key:0,class:"animate-spin h-4 w-4",viewBox:"0 0 24 24"},S4n={key:1},_4n={class:"flex items-center gap-2 mb-2"},j4n={class:"text-sm font-semibold text-gray-700"},I4n={class:"text-xs bg-blue-100 text-blue-700 px-1.5 py-0.5 rounded"},A4n={class:"space-y-2"},T4n={class:"flex items-center gap-3"},M4n={class:"text-lg"},P4n={key:0,class:"animate-spin h-5 w-5 text-blue-500",viewBox:"0 0 24 24"},D4n={class:"flex items-center gap-2"},O4n={class:"font-medium text-gray-900"},L4n={key:0,class:"text-xs bg-red-100 text-red-700 px-1.5 py-0.5 rounded"},N4n={key:1,class:"text-xs bg-gray-100 text-gray-500 px-1.5 py-0.5 rounded"},R4n={key:0,class:"text-xs text-gray-500"},F4n={key:1,class:"text-xs text-blue-600"},B4n={key:2,class:"text-xs text-green-600"},H4n={key:3,class:"text-xs text-red-600"},G4n={key:4,class:"text-xs text-gray-500 mt-1"},J4n={class:"flex items-center gap-2"},U4n=["disabled","onClick"],z4n=["disabled","onClick"],q4n={key:3,class:"flex flex-col gap-1"},V4n={class:"flex items-center gap-2"},K4n={class:"text-xs bg-gray-100 px-2 py-0.5 rounded font-mono"},W4n=["onClick"],X4n={class:"text-xs text-gray-400"},Y4n={key:2},Q4n={class:"text-sm font-semibold text-gray-700 mb-2"},Z4n={class:"space-y-2"},ekn={class:"flex items-center gap-3"},tkn={class:"text-lg"},nkn={key:0,class:"animate-spin h-5 w-5 text-blue-500",viewBox:"0 0 24 24"},ikn={class:"font-medium text-gray-900"},rkn={key:0,class:"text-xs text-gray-500"},skn={key:1,class:"text-xs text-blue-600"},okn={key:2,class:"text-xs text-green-600"},ckn={key:3,class:"text-xs text-red-600"},ukn={class:"flex items-center gap-2"},lkn=["disabled","onClick"],akn=["disabled","onClick"],fkn={key:3,class:"text-xs text-gray-500"},dkn={key:3},hkn={class:"text-sm font-semibold text-gray-700 mb-2"},gkn={class:"space-y-2"},bkn={class:"flex items-center gap-3"},pkn={class:"text-lg"},wkn={class:"font-medium text-gray-900"},vkn={key:0,class:"text-xs text-gray-500"},mkn={class:"flex items-center gap-2"},ykn=["disabled","onClick"],kkn={key:1,class:"text-xs text-gray-500"},xkn={class:"mt-4 pt-3 border-t border-gray-200"},$kn=["disabled"],Ekn={key:2,class:"space-y-5"},Ckn={class:"block text-sm font-medium text-gray-700 mb-1"},Skn=["placeholder"],_kn={class:"mt-1 text-xs text-gray-500"},jkn={class:"border border-gray-200 rounded-lg"},Ikn={key:0,class:"px-4 pb-4 space-y-4 border-t border-gray-200 pt-4"},Akn={class:"text-xs text-gray-400"},Tkn={class:"block text-sm font-medium text-gray-700 mb-1"},Mkn=["placeholder"],Pkn={class:"mt-1 text-xs text-gray-500"},Dkn={class:"grid grid-cols-2 gap-4"},Okn={class:"block text-sm font-medium text-gray-700 mb-1"},Lkn={class:"mt-1 text-xs text-gray-500"},Nkn={class:"block text-sm font-medium text-gray-700 mb-1"},Rkn={class:"mt-1 text-xs text-gray-500"},Fkn={class:"block text-sm font-medium text-gray-700 mb-1"},Bkn=["placeholder"],Hkn={class:"mt-1 text-xs text-gray-500"},Gkn={class:"block text-sm font-medium text-gray-700 mb-1"},Jkn=["placeholder"],Ukn={class:"mt-1 text-xs text-gray-500"},zkn={key:3,class:"space-y-5"},qkn={class:"block text-sm font-medium text-gray-700 mb-1"},Vkn=["placeholder"],Kkn={class:"mt-1 text-xs text-gray-500"},Wkn={class:"block text-sm font-medium text-gray-700 mb-1"},Xkn={class:"flex gap-2"},Ykn=["placeholder"],Qkn=["disabled"],Zkn={class:"mt-1 text-xs text-gray-500"},e6n={key:0,class:"mt-1 text-xs text-green-600"},t6n={key:1,class:"mt-1 text-xs text-red-600"},n6n={class:"block text-sm font-medium text-gray-700 mb-1"},i6n={class:"flex gap-2"},r6n=["placeholder"],s6n=["disabled"],o6n={class:"mt-1 text-xs text-gray-500"},c6n={key:0,class:"mt-1 text-xs text-green-600"},u6n={key:1,class:"mt-1 text-xs text-red-600"},l6n={key:4,class:"space-y-5"},a6n={class:"block text-sm font-medium text-gray-700 mb-3"},f6n={class:"grid grid-cols-3 gap-3"},d6n={class:"font-medium"},h6n={class:"text-xs text-gray-500 mt-1"},g6n={class:"font-medium"},b6n={class:"text-xs text-gray-500 mt-1"},p6n={class:"font-medium"},w6n={class:"text-xs text-gray-500 mt-1"},v6n={class:"block text-sm font-medium text-gray-700 mb-1"},m6n={class:"mt-1 text-xs text-gray-500"},y6n={class:"space-y-2"},k6n={class:"text-sm font-medium text-gray-700"},x6n={class:"flex items-center gap-2"},$6n={key:0},E6n={key:1},C6n={key:2},S6n={key:3},_6n={class:"text-sm"},j6n={key:4,class:"text-xs text-gray-500"},I6n={key:5,class:"text-xs text-blue-600"},A6n={key:6,class:"text-xs text-green-600"},T6n={key:7,class:"text-xs text-red-600"},M6n={class:"flex items-center gap-2"},P6n=["disabled","onClick"],D6n=["disabled","onClick"],O6n={key:3,class:"flex items-center gap-2"},L6n={class:"text-xs bg-gray-100 px-2 py-0.5 rounded font-mono"},N6n=["onClick"],R6n={key:5,class:"space-y-5"},F6n={class:"bg-blue-50 border border-blue-200 rounded-lg px-4 py-3"},B6n={class:"text-sm text-blue-700"},H6n={class:"border border-gray-200 rounded-lg"},G6n={key:0,class:"px-4 pb-4 space-y-5 border-t border-gray-200 pt-4"},J6n={class:"grid grid-cols-2 gap-4"},U6n={class:"block text-sm font-medium text-gray-700 mb-1"},z6n={class:"mt-1 text-xs text-gray-500"},q6n={class:"block text-sm font-medium text-gray-700 mb-1"},V6n={class:"mt-1 text-xs text-gray-500"},K6n={class:"grid grid-cols-2 gap-4"},W6n={class:"block text-sm font-medium text-gray-700 mb-1"},X6n={class:"mt-1 text-xs text-gray-500"},Y6n={class:"block text-sm font-medium text-gray-700 mb-1"},Q6n={class:"mt-1 text-xs text-gray-500"},Z6n={class:"grid grid-cols-2 gap-4"},exn={class:"block text-sm font-medium text-gray-700 mb-1"},txn={class:"mt-1 text-xs text-gray-500"},nxn={class:"block text-sm font-medium text-gray-700 mb-1"},ixn={value:"auto"},rxn={value:"plan-mode"},sxn={class:"mt-1 text-xs text-gray-500"},oxn={class:"flex items-center gap-2"},cxn={for:"review-enabled",class:"text-sm text-gray-700"},uxn={class:"mt-1 text-xs text-gray-500 ml-5"},lxn={class:"block text-sm font-medium text-gray-700 mb-1"},axn={class:"mt-1 text-xs text-gray-500"},fxn={key:6,class:"space-y-5"},dxn={class:"text-sm text-gray-600"},hxn={class:"bg-gray-900 text-gray-300 rounded-lg p-4 text-xs font-mono max-h-80 overflow-y-auto whitespace-pre-wrap"},gxn={class:"px-8 py-4 bg-gray-50 border-t flex items-center justify-between"},bxn={key:1},pxn=["disabled"],wxn=["disabled"],vxn=wr({__name:"SetupWizard",setup(a){const{t:d,locale:b,setLocale:m}=Kg(),{currentStep:w,totalSteps:$,loading:p,error:j,form:I,dependencies:N,tokenValid:P,tokenUser:U,repoValid:V,repoInfo:X,configPreview:ee,installLogs:K,installing:he,installingDep:ke,installElapsed:ue,setupComplete:oe,savedConfigPath:re,logPanelVisible:ye,installResult:pe,installPhase:be,canProceed:se,checkEnv:le,validateToken:Ce,validateRepo:Se,installDep:te,installAll:q,completeSetup:He,nextStep:gt,prevStep:ze,toggleLogPanel:jt,closeLogPanel:Jt,openLogPanel:xe}=c2t(),Pe=Ye(!1),Je=Ye(!1),Bt=Ye("");function wt(Ht){return N.value.find(mt=>mt.name===Ht)?.displayName??Ht}const Pt=En(()=>N.value.filter(Ht=>Ht.category==="ai-cli")),Mt=En(()=>N.value.filter(Ht=>Ht.category==="toolchain")),ln=En(()=>N.value.some(Ht=>!Ht.installed&&(Ht.installCommand||Ht.aiInstallable)));function wi(Ht){navigator.clipboard.writeText(Ht),Bt.value=Ht,setTimeout(()=>{Bt.value=""},2e3)}const Ir=En(()=>[d("setup.step.envCheck"),d("setup.step.projectConfig"),d("setup.step.gongfengConfig"),d("setup.step.aiRunner"),d("setup.step.advancedOptions"),d("setup.step.reviewConfirm")]);return gl(()=>{le()}),Jr(()=>I.ai.mode,()=>{le()}),(Ht,on)=>(R(),J("div",r4n,[A(oe)?(R(),J("div",s4n,[on[37]||(on[37]=E("div",{class:"text-5xl mb-4"},"✅",-1)),E("h2",o4n,M(Ht.$t("setup.complete.title")),1),E("p",c4n,M(Ht.$t("setup.complete.savedTo")),1),E("code",u4n,M(A(re)),1),E("p",l4n,M(Ht.$t("setup.complete.startHint")),1),on[38]||(on[38]=E("code",{class:"block bg-gray-900 text-green-400 rounded-lg p-3 text-sm mt-2"}," issue-auto-finish start ",-1))])):(R(),J("div",a4n,[E("div",f4n,[E("div",d4n,[E("div",h4n,[on[39]||(on[39]=E("img",{src:Iwt,alt:"Logo",class:"h-8 w-8 rounded-lg"},null,-1)),E("h1",g4n,M(Ht.$t("setup.title")),1)]),E("button",{class:wn(["px-3 py-1 text-sm rounded-lg transition-colors",(A(b)==="zh-CN","bg-gray-700 text-gray-200 hover:bg-gray-600")]),onClick:on[0]||(on[0]=mt=>A(m)(A(b)==="zh-CN"?"en":"zh-CN"))},M(A(b)==="zh-CN"?"EN":"中文"),3)]),E("p",b4n,M(Ir.value[A(w)])+" ("+M(A(w)+1)+"/"+M(A($))+")",1),E("div",p4n,[(R(!0),J(sn,null,bi(A($),mt=>(R(),J("div",{key:mt,class:wn(["h-1 flex-1 rounded-full transition-colors",mt-1<=A(w)?"bg-blue-400":"bg-gray-700"])},null,2))),128))])]),E("div",w4n,[A(j)?(R(),J("div",v4n,M(A(j)),1)):Ae("",!0),A(w)===0?(R(),J("div",m4n,[E("p",y4n,M(Ht.$t("setup.env.checking")),1),A(p)?(R(),J("div",k4n,[on[40]||(on[40]=E("svg",{class:"animate-spin h-5 w-5",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)),ci(" "+M(Ht.$t("setup.env.checkingShort")),1)])):(R(),J("div",x4n,[ln.value?(R(),J("div",$4n,[E("button",{class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:on[1]||(on[1]=(...mt)=>A(q)&&A(q)(...mt))},[A(he)?(R(),J("svg",C4n,[...on[41]||(on[41]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):Ae("",!0),ci(" "+M(Ht.$t("setup.env.installAll")),1)],8,E4n)])):Ae("",!0),Pt.value.length>0?(R(),J("div",S4n,[E("div",_4n,[E("h3",j4n,M(Ht.$t("setup.env.aiCliGroup")),1),E("span",I4n,M(Ht.$t("setup.env.installFirst")),1)]),E("div",A4n,[(R(!0),J(sn,null,bi(Pt.value,mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border transition-all",[mt.installed?"border-green-200 bg-green-50":A(pe).get(mt.name)==="failed"||mt.required?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50",A(ke)===mt.name?"ring-2 ring-blue-400":""]])},[E("div",T4n,[E("span",M4n,[A(ke)===mt.name?(R(),J("svg",P4n,[...on[42]||(on[42]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):mt.installed?(R(),J(sn,{key:1},[ci("✅")],64)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:2},[ci("❌")],64)):mt.required?(R(),J(sn,{key:3},[ci("❌")],64)):(R(),J(sn,{key:4},[ci("⚠️")],64))]),E("div",null,[E("div",D4n,[E("span",O4n,M(mt.displayName),1),mt.required?(R(),J("span",L4n,M(Ht.$t("setup.env.required")),1)):(R(),J("span",N4n,M(Ht.$t("setup.env.optional")),1))]),mt.version?(R(),J("div",R4n,"v"+M(mt.version),1)):Ae("",!0),A(ke)===mt.name?(R(),J("div",F4n,M(Ht.$t("setup.env.installing")),1)):A(pe).get(mt.name)==="success"&&mt.installed?(R(),J("div",B4n,M(Ht.$t("setup.env.installSuccess")),1)):A(pe).get(mt.name)==="failed"?(R(),J("div",H4n,M(Ht.$t("setup.env.installFailed")),1)):Ae("",!0),mt.category==="ai-cli"&&mt.installed?(R(),J("div",G4n,M(Ht.$t("setup.env.loginAfterInstall")),1)):Ae("",!0)])]),E("div",J4n,[A(ke)===mt.name?(R(),J("button",{key:0,class:"text-xs text-blue-600 hover:underline",onClick:on[2]||(on[2]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:1},[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:on[3]||(on[3]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1),mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.retry")),9,U4n)):Ae("",!0)],64)):!mt.installed&&mt.installCommand?(R(),J("button",{key:2,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,z4n)):!mt.installed&&!mt.installCommand&&!A(pe).has(mt.name)?(R(),J("div",q4n,[E("div",V4n,[E("code",K4n,M(mt.installHint),1),E("button",{class:wn(["text-xs px-2 py-0.5 rounded transition-colors",Bt.value===mt.installHint?"bg-green-100 text-green-700":"bg-gray-200 text-gray-600 hover:bg-gray-300"]),onClick:Ne=>wi(mt.installHint)},M(Bt.value===mt.installHint?Ht.$t("setup.env.copied"):"📋"),11,W4n)]),E("p",X4n,M(Ht.$t("setup.env.manualInstallRefreshHint")),1)])):Ae("",!0)])],2))),128))])])):Ae("",!0),Mt.value.length>0&&Mt.value.some(mt=>!mt.installed)?(R(),J("div",Y4n,[E("h3",Q4n,M(Ht.$t("setup.env.toolchainGroup")),1),E("div",Z4n,[(R(!0),J(sn,null,bi(Mt.value,mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border transition-all",[mt.installed?"border-green-200 bg-green-50":A(pe).get(mt.name)==="failed"||mt.required?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50",A(ke)===mt.name?"ring-2 ring-blue-400":""]])},[E("div",ekn,[E("span",tkn,[A(ke)===mt.name?(R(),J("svg",nkn,[...on[43]||(on[43]=[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"},null,-1),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"},null,-1)])])):mt.installed?(R(),J(sn,{key:1},[ci("✅")],64)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:2},[ci("❌")],64)):mt.required?(R(),J(sn,{key:3},[ci("❌")],64)):(R(),J(sn,{key:4},[ci("⚠️")],64))]),E("div",null,[E("div",ikn,M(mt.displayName),1),mt.version?(R(),J("div",rkn,"v"+M(mt.version),1)):Ae("",!0),A(ke)===mt.name?(R(),J("div",skn,M(Ht.$t("setup.env.installing")),1)):A(pe).get(mt.name)==="success"&&mt.installed?(R(),J("div",okn,M(Ht.$t("setup.env.installSuccess")),1)):A(pe).get(mt.name)==="failed"?(R(),J("div",ckn,M(Ht.$t("setup.env.installFailed")),1)):Ae("",!0)])]),E("div",ukn,[A(ke)===mt.name?(R(),J("button",{key:0,class:"text-xs text-blue-600 hover:underline",onClick:on[4]||(on[4]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:1},[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:on[5]||(on[5]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1),mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.retry")),9,lkn)):Ae("",!0)],64)):!mt.installed&&mt.installCommand?(R(),J("button",{key:2,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,akn)):!mt.installed&&!A(pe).has(mt.name)?(R(),J("span",fkn,M(mt.installHint),1)):Ae("",!0)])],2))),128))])])):Ae("",!0),Pt.value.length===0&&Mt.value.length===0&&A(N).length>0?(R(),J("div",dkn,[E("h3",hkn,M(Ht.$t("setup.env.toolchainGroup")),1),E("div",gkn,[(R(!0),J(sn,null,bi(A(N),mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border transition-all",[mt.installed?"border-green-200 bg-green-50":mt.required?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50",A(ke)===mt.name?"ring-2 ring-blue-400":""]])},[E("div",bkn,[E("span",pkn,[mt.installed?(R(),J(sn,{key:0},[ci("✅")],64)):mt.required?(R(),J(sn,{key:1},[ci("❌")],64)):(R(),J(sn,{key:2},[ci("⚠️")],64))]),E("div",null,[E("div",wkn,M(mt.displayName),1),mt.version?(R(),J("div",vkn,"v"+M(mt.version),1)):Ae("",!0)])]),E("div",mkn,[!mt.installed&&mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,ykn)):mt.installed?Ae("",!0):(R(),J("span",kkn,M(mt.installHint),1))])],2))),128))])])):Ae("",!0),E("div",xkn,[E("button",{class:"inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-blue-700 bg-blue-50 border border-blue-200 rounded-lg hover:bg-blue-100 hover:border-blue-300 disabled:opacity-50 transition-all",disabled:A(p),onClick:on[6]||(on[6]=mt=>A(le)())},[(R(),J("svg",{class:wn(["h-4 w-4",A(p)?"animate-spin":""]),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[...on[44]||(on[44]=[E("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"},null,-1)])],2)),ci(" "+M(Ht.$t("setup.env.refreshStatus")),1)],8,$kn)])]))])):Ae("",!0),A(w)===1?(R(),J("div",Ekn,[E("div",null,[E("label",Ckn,M(Ht.$t("setup.project.workDir")),1),Nn(E("input",{"onUpdate:modelValue":on[7]||(on[7]=mt=>A(I).project.workDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.workDirPlaceholder")},null,8,Skn),[[Ci,A(I).project.workDir]]),E("p",_kn,M(Ht.$t("setup.project.workDirHint")),1)]),E("div",jkn,[E("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-gray-600 hover:bg-gray-50 transition-colors rounded-lg",onClick:on[8]||(on[8]=mt=>Pe.value=!Pe.value)},[E("span",null,M(Ht.$t("setup.project.advancedToggle")),1),(R(),J("svg",{class:wn(["h-4 w-4 transition-transform",Pe.value?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...on[45]||(on[45]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),Pe.value?(R(),J("div",Ikn,[E("p",Akn,M(Ht.$t("setup.project.advancedHint")),1),E("div",null,[E("label",Tkn,M(Ht.$t("setup.project.gitRootDir")),1),Nn(E("input",{"onUpdate:modelValue":on[9]||(on[9]=mt=>A(I).project.gitRootDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.gitRootDirPlaceholder")},null,8,Mkn),[[Ci,A(I).project.gitRootDir]]),E("p",Pkn,M(Ht.$t("setup.project.gitRootDirHint")),1)]),E("div",Dkn,[E("div",null,[E("label",Okn,M(Ht.$t("setup.project.baseBranch")),1),Nn(E("input",{"onUpdate:modelValue":on[10]||(on[10]=mt=>A(I).project.baseBranch=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).project.baseBranch]]),E("p",Lkn,M(Ht.$t("setup.project.baseBranchHint")),1)]),E("div",null,[E("label",Nkn,M(Ht.$t("setup.project.branchPrefix")),1),Nn(E("input",{"onUpdate:modelValue":on[11]||(on[11]=mt=>A(I).project.branchPrefix=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).project.branchPrefix]]),E("p",Rkn,M(Ht.$t("setup.project.branchPrefixHint")),1)])]),E("div",null,[E("label",Fkn,M(Ht.$t("setup.project.worktreeBaseDir")),1),Nn(E("input",{"onUpdate:modelValue":on[12]||(on[12]=mt=>A(I).project.worktreeBaseDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.worktreeBaseDirPlaceholder")},null,8,Bkn),[[Ci,A(I).project.worktreeBaseDir]]),E("p",Hkn,M(Ht.$t("setup.project.worktreeBaseDirHint")),1)]),E("div",null,[E("label",Gkn,M(Ht.$t("setup.project.projectSubDir")),1),Nn(E("input",{"onUpdate:modelValue":on[13]||(on[13]=mt=>A(I).project.projectSubDir=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.project.projectSubDirPlaceholder")},null,8,Jkn),[[Ci,A(I).project.projectSubDir]]),E("p",Ukn,M(Ht.$t("setup.project.projectSubDirHint")),1)])])):Ae("",!0)])])):Ae("",!0),A(w)===2?(R(),J("div",zkn,[E("div",null,[E("label",qkn,M(Ht.$t("setup.gongfeng.apiUrl")),1),Nn(E("input",{"onUpdate:modelValue":on[14]||(on[14]=mt=>A(I).gongfeng.apiUrl=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.gongfeng.apiUrlPlaceholder")},null,8,Vkn),[[Ci,A(I).gongfeng.apiUrl]]),E("p",Kkn,M(Ht.$t("setup.gongfeng.apiUrlHint")),1)]),E("div",null,[E("label",Wkn,M(Ht.$t("setup.gongfeng.privateToken")),1),E("div",Xkn,[Nn(E("input",{"onUpdate:modelValue":on[15]||(on[15]=mt=>A(I).gongfeng.privateToken=mt),type:"password",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.gongfeng.tokenPlaceholder")},null,8,Ykn),[[Ci,A(I).gongfeng.privateToken]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(I).gongfeng.apiUrl||!A(I).gongfeng.privateToken,onClick:on[16]||(on[16]=(...mt)=>A(Ce)&&A(Ce)(...mt))},M(Ht.$t("setup.gongfeng.verify")),9,Qkn)]),E("p",Zkn,M(Ht.$t("setup.gongfeng.tokenHint")),1),A(P)===!0?(R(),J("div",e6n," ✅ "+M(Ht.$t("setup.gongfeng.tokenValid"))+M(A(U)?.name?` (${A(U).name})`:""),1)):A(P)===!1?(R(),J("div",t6n," ❌ "+M(Ht.$t("setup.gongfeng.tokenInvalid")),1)):Ae("",!0)]),E("div",null,[E("label",n6n,M(Ht.$t("setup.gongfeng.projectPath")),1),E("div",i6n,[Nn(E("input",{"onUpdate:modelValue":on[17]||(on[17]=mt=>A(I).gongfeng.projectPath=mt),type:"text",class:"flex-1 border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500",placeholder:Ht.$t("setup.gongfeng.projectPathPlaceholder")},null,8,r6n),[[Ci,A(I).gongfeng.projectPath]]),E("button",{class:"px-4 py-2 text-sm font-medium bg-gray-800 text-white rounded-lg hover:bg-gray-700 disabled:opacity-50",disabled:!A(I).gongfeng.apiUrl||!A(I).gongfeng.privateToken||!A(I).gongfeng.projectPath,onClick:on[18]||(on[18]=(...mt)=>A(Se)&&A(Se)(...mt))},M(Ht.$t("setup.gongfeng.verify")),9,s6n)]),E("p",o6n,M(Ht.$t("setup.gongfeng.projectPathHint")),1),A(V)===!0?(R(),J("div",c6n," ✅ "+M(Ht.$t("setup.gongfeng.repoFound"))+M(A(X)?.name?`: ${A(X).name}`:""),1)):A(V)===!1?(R(),J("div",u6n," ❌ "+M(Ht.$t("setup.gongfeng.repoNotFound")),1)):Ae("",!0)])])):Ae("",!0),A(w)===3?(R(),J("div",l6n,[E("div",null,[E("label",a6n,M(Ht.$t("setup.ai.modeLabel")),1),E("div",f6n,[E("button",{class:wn(["p-4 rounded-lg border-2 text-left transition-colors",A(I).ai.mode==="claude-internal"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:on[19]||(on[19]=mt=>A(I).ai.mode="claude-internal")},[E("div",d6n,M(Ht.$t("setup.ai.claudeInternal")),1),E("div",h6n,M(Ht.$t("setup.ai.claudeInternalDesc")),1)],2),E("button",{class:wn(["p-4 rounded-lg border-2 text-left transition-colors",A(I).ai.mode==="cursor-agent"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:on[20]||(on[20]=mt=>A(I).ai.mode="cursor-agent")},[E("div",g6n,M(Ht.$t("setup.ai.cursorAgent")),1),E("div",b6n,M(Ht.$t("setup.ai.cursorAgentDesc")),1)],2),E("button",{class:wn(["p-4 rounded-lg border-2 text-left transition-colors",A(I).ai.mode==="codebuddy"?"border-blue-500 bg-blue-50":"border-gray-200 hover:border-gray-300"]),onClick:on[21]||(on[21]=mt=>A(I).ai.mode="codebuddy")},[E("div",p6n,M(Ht.$t("setup.ai.codebuddy")),1),E("div",w6n,M(Ht.$t("setup.ai.codebuddyDesc")),1)],2)])]),E("div",null,[E("label",v6n,M(Ht.$t("setup.ai.model")),1),Nn(E("input",{"onUpdate:modelValue":on[22]||(on[22]=mt=>A(I).ai.model=mt),type:"text",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).ai.model]]),E("p",m6n,M(Ht.$t("setup.ai.modelHint")),1)]),E("div",y6n,[E("p",k6n,M(Ht.$t("setup.ai.cliStatus")),1),(R(!0),J(sn,null,bi(A(N).filter(mt=>mt.name==="claude-internal"||mt.name==="cursor-agent"||mt.name==="codebuddy"),mt=>(R(),J("div",{key:mt.name,class:wn(["flex items-center justify-between p-3 rounded-lg border",mt.installed?"border-green-200 bg-green-50":A(pe).get(mt.name)==="failed"?"border-red-200 bg-red-50":"border-yellow-200 bg-yellow-50"])},[E("div",x6n,[A(ke)===mt.name?(R(),J("span",$6n,[...on[46]||(on[46]=[E("svg",{class:"animate-spin h-4 w-4 text-blue-500",viewBox:"0 0 24 24"},[E("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4",fill:"none"}),E("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1)])])):mt.installed?(R(),J("span",E6n,"✅")):A(pe).get(mt.name)==="failed"?(R(),J("span",C6n,"❌")):(R(),J("span",S6n,"⚠️")),E("span",_6n,M(mt.displayName),1),mt.version?(R(),J("span",j6n,"v"+M(mt.version),1)):Ae("",!0),A(ke)===mt.name?(R(),J("span",I6n,M(Ht.$t("setup.env.installing")),1)):A(pe).get(mt.name)==="success"&&mt.installed?(R(),J("span",A6n,M(Ht.$t("setup.env.installSuccess")),1)):A(pe).get(mt.name)==="failed"?(R(),J("span",T6n,M(Ht.$t("setup.env.installFailed")),1)):Ae("",!0)]),E("div",M6n,[A(ke)===mt.name?(R(),J("button",{key:0,class:"text-xs text-blue-600 hover:underline",onClick:on[23]||(on[23]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1)):A(pe).get(mt.name)==="failed"?(R(),J(sn,{key:1},[E("button",{class:"text-xs text-blue-600 hover:underline",onClick:on[24]||(on[24]=(...Ne)=>A(xe)&&A(xe)(...Ne))},M(Ht.$t("setup.env.viewLogs")),1),mt.installCommand?(R(),J("button",{key:0,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.retry")),9,P6n)):Ae("",!0)],64)):!mt.installed&&mt.installCommand?(R(),J("button",{key:2,class:"inline-flex items-center gap-1.5 px-3 py-1 text-xs font-medium bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50 transition-all",disabled:A(he),onClick:Ne=>A(te)(mt.name)},M(Ht.$t("setup.env.install")),9,D6n)):!mt.installed&&!mt.installCommand&&mt.installHint&&!A(pe).has(mt.name)?(R(),J("div",O6n,[E("code",L6n,M(mt.installHint),1),E("button",{class:wn(["text-xs px-2 py-0.5 rounded transition-colors",Bt.value===mt.installHint?"bg-green-100 text-green-700":"bg-gray-200 text-gray-600 hover:bg-gray-300"]),onClick:Ne=>wi(mt.installHint)},M(Bt.value===mt.installHint?Ht.$t("setup.env.copied"):"📋"),11,N6n)])):Ae("",!0)])],2))),128))])])):Ae("",!0),A(w)===4?(R(),J("div",R6n,[E("div",F6n,[E("p",B6n,M(Ht.$t("setup.advanced.defaultHint")),1)]),E("div",H6n,[E("button",{type:"button",class:"w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-gray-600 hover:bg-gray-50 transition-colors rounded-lg",onClick:on[25]||(on[25]=mt=>Je.value=!Je.value)},[E("span",null,M(Ht.$t("setup.advanced.toggleLabel")),1),(R(),J("svg",{class:wn(["h-4 w-4 transition-transform",Je.value?"rotate-180":""]),viewBox:"0 0 20 20",fill:"currentColor"},[...on[47]||(on[47]=[E("path",{"fill-rule":"evenodd",d:"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z","clip-rule":"evenodd"},null,-1)])],2))]),Je.value?(R(),J("div",G6n,[E("div",J6n,[E("div",null,[E("label",U6n,M(Ht.$t("setup.advanced.discoveryInterval")),1),Nn(E("input",{"onUpdate:modelValue":on[26]||(on[26]=mt=>A(I).poll.discoveryIntervalMs=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.discoveryIntervalMs,void 0,{number:!0}]]),E("p",z6n,M(Ht.$t("setup.advanced.discoveryIntervalHint")),1)]),E("div",null,[E("label",q6n,M(Ht.$t("setup.advanced.driveInterval")),1),Nn(E("input",{"onUpdate:modelValue":on[27]||(on[27]=mt=>A(I).poll.driveIntervalMs=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.driveIntervalMs,void 0,{number:!0}]]),E("p",V6n,M(Ht.$t("setup.advanced.driveIntervalHint")),1)])]),E("div",K6n,[E("div",null,[E("label",W6n,M(Ht.$t("setup.advanced.maxRetries")),1),Nn(E("input",{"onUpdate:modelValue":on[28]||(on[28]=mt=>A(I).poll.maxRetries=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.maxRetries,void 0,{number:!0}]]),E("p",X6n,M(Ht.$t("setup.advanced.maxRetriesHint")),1)]),E("div",null,[E("label",Y6n,M(Ht.$t("setup.advanced.maxConcurrent")),1),Nn(E("input",{"onUpdate:modelValue":on[29]||(on[29]=mt=>A(I).poll.maxConcurrent=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).poll.maxConcurrent,void 0,{number:!0}]]),E("p",Q6n,M(Ht.$t("setup.advanced.maxConcurrentHint")),1)])]),E("div",Z6n,[E("div",null,[E("label",exn,M(Ht.$t("setup.advanced.webPort")),1),Nn(E("input",{"onUpdate:modelValue":on[30]||(on[30]=mt=>A(I).web.port=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).web.port,void 0,{number:!0}]]),E("p",txn,M(Ht.$t("setup.advanced.webPortHint")),1)]),E("div",null,[E("label",nxn,M(Ht.$t("setup.advanced.pipelineMode")),1),Nn(E("select",{"onUpdate:modelValue":on[31]||(on[31]=mt=>A(I).pipeline.mode=mt),class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},[E("option",ixn,M(Ht.$t("setup.advanced.pipelineAuto")),1),E("option",rxn,M(Ht.$t("setup.advanced.pipelinePlanMode")),1)],512),[[Rd,A(I).pipeline.mode]]),E("p",sxn,M(Ht.$t("setup.advanced.pipelineModeHint")),1)])]),E("div",null,[E("div",oxn,[Nn(E("input",{id:"review-enabled","onUpdate:modelValue":on[32]||(on[32]=mt=>A(I).review.enabled=mt),type:"checkbox",class:"rounded border-gray-300"},null,512),[[a9,A(I).review.enabled]]),E("label",cxn,M(Ht.$t("setup.advanced.enableReview")),1)]),E("p",uxn,M(Ht.$t("setup.advanced.enableReviewHint")),1)]),E("div",null,[E("label",lxn,M(Ht.$t("setup.advanced.phaseTimeout")),1),Nn(E("input",{"onUpdate:modelValue":on[33]||(on[33]=mt=>A(I).ai.phaseTimeoutMs=mt),type:"number",class:"w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500"},null,512),[[Ci,A(I).ai.phaseTimeoutMs,void 0,{number:!0}]]),E("p",axn,M(Ht.$t("setup.advanced.phaseTimeoutHint")),1)])])):Ae("",!0)])])):Ae("",!0),A(w)===5?(R(),J("div",fxn,[E("p",dxn,M(Ht.$t("setup.confirm.reviewHint")),1),E("pre",hxn,M(A(ee)),1)])):Ae("",!0)]),A(ye)||A(he)?(R(),Ts(i4n,{key:0,visible:A(ye),logs:A(K),"dep-name":A(ke)?wt(A(ke)):"",elapsed:A(ue),installing:A(he),"install-phase":A(be),onToggle:A(jt),onClose:A(Jt)},null,8,["visible","logs","dep-name","elapsed","installing","install-phase","onToggle","onClose"])):Ae("",!0),E("div",gxn,[A(w)>0?(R(),J("button",{key:0,class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50",onClick:on[34]||(on[34]=(...mt)=>A(ze)&&A(ze)(...mt))},M(Ht.$t("setup.nav.back")),1)):(R(),J("div",bxn)),A(w)<A($)-1?(R(),J("button",{key:2,class:"px-6 py-2 text-sm font-medium text-white bg-blue-600 rounded-lg hover:bg-blue-700 disabled:opacity-50",disabled:!A(se),onClick:on[35]||(on[35]=(...mt)=>A(gt)&&A(gt)(...mt))},M(Ht.$t("setup.nav.next")),9,pxn)):(R(),J("button",{key:3,class:"px-6 py-2 text-sm font-medium text-white bg-green-600 rounded-lg hover:bg-green-700 disabled:opacity-50",disabled:A(p),onClick:on[36]||(on[36]=(...mt)=>A(He)&&A(He)(...mt))},M(A(p)?Ht.$t("setup.nav.saving"):Ht.$t("setup.nav.complete")),9,wxn))])]))]))}});async function mxn(){try{const a=await fetch("/api/setup/status");if(a.ok&&!(await a.json()).initialized){Lgt(vxn).use(Jgt).mount("#app");return}}catch{}Lgt(q5n).use(Jgt).mount("#app")}mxn();