sillyspec 3.7.27 → 3.7.29

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.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: sillyspec:doctor
3
+ description: 项目自检 — 检查 CLI、配置、构建环境和外部依赖
4
+ ---
5
+
6
+ ## 前置检查
7
+
8
+ **在执行任何检查之前,先确认 SillySpec CLI 是否可用:**
9
+
10
+ 1. 运行 `sillyspec --version`
11
+ 2. 如果失败,运行 `npx sillyspec --version`
12
+ 3. 如果都失败:
13
+ - 输出:❌ SillySpec CLI 未安装,后续检查无法执行
14
+ - 给出安装命令:`npm install -g sillyspec`(生产环境)或 `npx sillyspec`(临时使用)
15
+ - 停止,不要继续后续步骤
16
+
17
+ ## 执行
18
+
19
+ CLI 可用后,运行 `sillyspec run doctor`,按提示逐步执行。
20
+ 每步完成后运行 `sillyspec run doctor --done --output "摘要"`。
21
+
22
+ ## 用户指令
23
+ $ARGUMENTS
@@ -0,0 +1,7 @@
1
+ # SillySpec 工作区配置
2
+ # 修改此文件后运行 /sillyspec:workspace 更新
3
+
4
+ projects:
5
+ # 运行 /sillyspec:workspace add 添加子项目
6
+
7
+ shared: []
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sillyspec",
3
- "version": "3.7.27",
3
+ "version": "3.7.29",
4
4
  "description": "SillySpec CLI — 流程状态机,让 AI 严格按步骤来",
5
5
  "icon": "logo.jpg",
6
6
  "homepage": "https://sillyspec.ppdmq.top/",
@@ -7385,7 +7385,7 @@ ${t}
7385
7385
  height: max(284vh, 284vw);
7386
7386
  width: max(284vh, 284vw);
7387
7387
  `)])]);function wU(e){if(!e)return 1;const t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t}const Y2=Object.assign(Object.assign({},Ce.props),{debug:Boolean,cross:Boolean,fullscreen:Boolean,width:{type:Number,default:32},height:{type:Number,default:32},zIndex:{type:Number,default:10},xGap:{type:Number,default:0},yGap:{type:Number,default:0},yOffset:{type:Number,default:0},xOffset:{type:Number,default:0},rotate:{type:Number,default:0},textAlign:{type:String,default:"left"},image:String,imageOpacity:{type:Number,default:1},imageHeight:Number,imageWidth:Number,content:String,selectable:{type:Boolean,default:!0},fontSize:{type:Number,default:14},fontFamily:String,fontStyle:{type:String,default:"normal"},fontVariant:{type:String,default:""},fontWeight:{type:Number,default:400},fontColor:{type:String,default:"rgba(128, 128, 128, .3)"},fontStretch:{type:String,default:""},lineHeight:{type:Number,default:14},globalRotate:{type:Number,default:0}}),CU=Q({name:"Watermark",props:Y2,setup(e,{slots:t}){const{mergedClsPrefixRef:n}=Ue(e),r=Ce("Watermark","-watermark",yU,P9,e,n),o=D(""),i=Rr?document.createElement("canvas"):null,a=i?i.getContext("2d"):null,l=D(!1);return Uc(()=>l.value=!0),Vt(()=>{if(!i)return;l.value;const s=wU(a),{xGap:d,yGap:u,width:f,height:v,yOffset:p,xOffset:h,rotate:g,image:b,content:m,fontColor:x,fontStyle:k,fontVariant:C,fontStretch:y,fontWeight:R,fontFamily:$,fontSize:P,lineHeight:z,debug:F}=e,T=(d+f)*s,O=(u+v)*s,A=h*s,B=p*s;if(i.width=T,i.height=O,a){a.translate(0,0);const E=f*s,H=v*s;if(F&&(a.strokeStyle="grey",a.strokeRect(0,0,E,H)),a.rotate(g*(Math.PI/180)),b){const L=new Image;L.crossOrigin="anonymous",L.referrerPolicy="no-referrer",L.src=b,L.onload=()=>{a.globalAlpha=e.imageOpacity;const{imageWidth:Y,imageHeight:ae}=e;a.drawImage(L,A,B,(e.imageWidth||(ae?L.width*ae/L.height:L.width))*s,(e.imageHeight||(Y?L.height*Y/L.width:L.height))*s),o.value=i.toDataURL()}}else if(m){F&&(a.strokeStyle="green",a.strokeRect(0,0,E,H)),a.font=`${k} ${C} ${R} ${y} ${P*s}px/${z*s}px ${$||r.value.self.fontFamily}`,a.fillStyle=x;let L=0;const{textAlign:Y}=e;m.split(`
7388
- `).map(ae=>{const ge=a.measureText(ae).width;return L=Math.max(L,ge),{width:ge,line:ae}}).forEach(({line:ae,width:ge},X)=>{const ne=Y==="left"?0:Y==="center"?(L-ge)/2:L-ge;a.fillText(ae,A+ne,B+z*s*(X+1))}),o.value=i.toDataURL()}else m||(a.clearRect(0,0,i.width,i.height),o.value=i.toDataURL())}else W3("watermark","Canvas is not supported in the browser.")}),()=>{var s;const{globalRotate:d,fullscreen:u,zIndex:f}=e,v=n.value,p=d!==0&&u,h="max(142vh, 142vw)",g=c("div",{class:[`${v}-watermark`,d!==0&&`${v}-watermark--global-rotate`,u&&`${v}-watermark--fullscreen`],style:{transform:d?`translateX(-50%) translateY(-50%) rotate(${d}deg)`:void 0,zIndex:p?void 0:f,backgroundSize:`${e.xGap+e.width}px`,backgroundPosition:d===0?e.cross?`${e.width/2}px ${e.height/2}px, 0 0`:"":e.cross?`calc(${h} + ${e.width/2}px) calc(${h} + ${e.height/2}px), ${h} ${h}`:h,backgroundImage:e.cross?`url(${o.value}), url(${o.value})`:`url(${o.value})`}});return e.fullscreen&&!d?g:c("div",{class:[`${v}-watermark-container`,d!==0&&`${v}-watermark-container--global-rotate`,u&&`${v}-watermark-container--fullscreen`,e.selectable&&`${v}-watermark-container--selectable`],style:{zIndex:p?f:void 0}},(s=t.default)===null||s===void 0?void 0:s.call(t),g)}}}),m0=Object.freeze(Object.defineProperty({__proto__:null,NA:DW,NAffix:F1,NAlert:XM,NAnchor:iI,NAnchorLink:eI,NAutoComplete:CI,NAvatar:dh,NAvatarGroup:TI,NBackTop:AI,NBadge:NI,NBlockquote:EW,NBreadcrumb:WI,NBreadcrumbItem:KI,NButton:jt,NButtonGroup:Av,NCalendar:QD,NCard:Qw,NCarousel:yB,NCarouselItem:tC,NCascader:IB,NCheckbox:vi,NCheckboxGroup:iC,NCode:cC,NCol:uk,NCollapse:LB,NCollapseItem:jB,NCollapseTransition:KB,NColorPicker:yE,NConfigProvider:bC,NCountdown:wE,NDataTable:L8,NDatePicker:IN,NDescriptions:LN,NDescriptionsItem:HN,NDialog:og,NDialogProvider:kS,NDivider:M7,NDrawer:X7,NDrawerContent:Z7,NDropdown:Jv,NDynamicInput:oL,NDynamicTags:cL,NEl:Tb,NElement:Tb,NEllipsis:ou,NEmpty:ri,NEquation:fL,NFlex:pL,NFloatButton:A9,NFloatButtonGroup:O9,NForm:E9,NFormItem:cg,NFormItemCol:fk,NFormItemGi:Nb,NFormItemGridItem:Nb,NFormItemRow:TH,NGi:Ph,NGlobalStyle:_H,NGradientText:FH,NGrid:IH,NGridItem:Ph,NH1:LW,NH2:HW,NH3:jW,NH4:VW,NH5:WW,NH6:UW,NHeatmap:UH,NHighlight:YH,NHr:qW,NIcon:KC,NIconWrapper:JH,NImage:Tk,NImageGroup:Pk,NImagePreview:hg,NInfiniteScroll:lj,NInput:Kn,NInputGroup:cw,NInputGroupLabel:gI,NInputNumber:uj,NInputOtp:vj,NLayout:pj,NLayoutContent:mj,NLayoutFooter:xj,NLayoutHeader:wj,NLayoutSider:Rj,NLegacyTransfer:Fj,NLi:YW,NList:Ij,NListItem:Aj,NLoadingBarProvider:zS,NLog:Lj,NMarquee:Uj,NMention:Yj,NMenu:rV,NMessageProvider:IS,NModal:lg,NModalProvider:BS,NNotificationProvider:LS,NNumberAnimation:aV,NOl:GW,NP:ZW,NPageHeader:sV,NPagination:TC,NPerformantEllipsis:VC,NPopconfirm:uV,NPopover:Aa,NPopselect:CC,NProgress:r2,NQrCode:CV,NRadio:Gv,NRadioButton:ZE,NRadioGroup:LC,NRate:RV,NResult:FV,NRow:ck,NScrollbar:MV,NSelect:RC,NSkeleton:BV,NSlider:LV,NSpace:YS,NSpin:VV,NSplit:qV,NStatistic:GV,NStep:eW,NSteps:QV,NSwitch:nW,NTab:Rc,NTabPane:cW,NTable:oW,NTabs:fW,NTag:gs,NTbody:iW,NTd:aW,NText:QW,NTh:lW,NThead:sW,NThing:vW,NTime:gW,NTimePicker:kc,NTimeline:mW,NTimelineItem:bW,NTooltip:Gs,NTr:dW,NTransfer:wW,NTree:O2,NTreeSelect:IW,NUl:eU,NUpload:bU,NUploadDragger:H2,NUploadFileList:W2,NUploadTrigger:wg,NVirtualList:xU,NWatermark:CU,NxButton:uo,aProps:M2,affixProps:eu,alertProps:rw,anchorLinkProps:ow,anchorProps:iw,autoCompleteProps:vw,avatarGroupProps:yw,avatarProps:xw,backTopProps:ww,badgeProps:Cw,blockquoteProps:I2,breadcrumbItemProps:Rw,breadcrumbProps:kw,buttonGroupProps:Tw,buttonProps:Pw,calendarProps:Xw,cardProps:Jw,carouselProps:nC,cascaderProps:lC,checkboxGroupProps:oC,checkboxProps:aC,codeProps:dC,colProps:cu,collapseItemProps:hC,collapseProps:uC,collapseTransitionProps:vC,colorPickerProps:pC,configProviderProps:mC,countdownProps:xC,createDiscreteApi:T7,dataTableProps:OC,datePickerProps:cS,descriptionsItemProps:hS,descriptionsProps:fS,dialogProps:Xs,dialogProviderProps:SS,dividerProps:jS,drawerContentProps:WS,drawerProps:VS,dropdownProps:XC,dynamicInputProps:US,dynamicTagsProps:GS,elementProps:XS,ellipsisProps:Xv,emptyProps:K1,equationProps:ZS,flexProps:JS,floatButtonGroupProps:nk,floatButtonProps:ok,formItemGiProps:zh,formItemGridItemProps:zh,formItemProps:Js,formProps:ak,giProps:Fs,gradientTextProps:gk,gridItemProps:Fs,gridProps:mk,h1Props:oa,h2Props:oa,h3Props:oa,h4Props:oa,h5Props:oa,h6Props:oa,heatmapDark:KH,heatmapLight:xk,heatmapMockData:WH,heatmapProps:yk,highlightProps:wk,iconProps:UC,iconWrapperProps:Ck,imageGroupProps:$k,imagePreviewProps:kk,imageProps:zk,infiniteScrollProps:_k,inputGroupLabelProps:uw,inputGroupProps:dw,inputNumberProps:Ok,inputOtpProps:Fk,inputProps:sw,layoutContentProps:Th,layoutFooterProps:Dk,layoutHeaderProps:Bk,layoutProps:Th,layoutSiderProps:Ek,legacyTransferProps:Nk,listProps:Lk,loadingBarProviderProps:PS,logProps:Vk,mentionProps:Wk,menuProps:Xk,messageProviderProps:MS,modalProps:ag,modalProviderProps:DS,notificationProviderProps:NS,numberAnimationProps:Zk,olProps:D2,pProps:B2,pageHeaderProps:Jk,paginationProps:zC,popconfirmProps:t2,popoverProps:G1,popselectProps:wC,progressProps:n2,qrCodeProps:o2,radioButtonProps:XE,radioGroupProps:NC,radioProps:EC,rateProps:i2,resultProps:a2,rowProps:du,scrollbarProps:l2,selectProps:kC,skeletonProps:s2,sliderProps:d2,spaceProps:qS,spinProps:c2,splitProps:u2,statisticProps:f2,stepProps:g2,stepsProps:h2,switchProps:p2,tabPaneProps:xg,tabProps:b2,tableProps:m2,tabsProps:x2,tagProps:J1,textProps:E2,thingProps:y2,timePickerProps:dS,timeProps:w2,timelineItemProps:k2,timelineProps:C2,tooltipProps:HC,transferProps:R2,treeGetClickTarget:TW,treeProps:_2,treeSelectProps:F2,ulProps:N2,uploadDownload:L3,uploadProps:K2,useDialog:mS,useDialogReactiveList:jN,useLoadingBar:TS,useMessage:AS,useModal:CS,useModalReactiveList:XN,useNotification:HS,virtualListProps:q2,watermarkProps:Y2},Symbol.toStringTag,{value:"Module"})),SU="2.44.1";function kU({componentPrefix:e="N",components:t=[]}={}){const n=[];function r(i,a,l){i.component(e+a)||i.component(e+a,l)}function o(i){n.includes(i)||(n.push(i),t.forEach(a=>{const{name:l,alias:s}=a;r(i,l,a),s&&s.forEach(d=>{r(i,d,a)})}))}return{version:SU,componentPrefix:e,install:o}}const G2=kU({components:Object.keys(m0).map(e=>m0[e])});G2.install;function RU(){const e=D(null),t=D(!1),n=D(null),r=new Map;function o(){const d=`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}`;e.value=new WebSocket(d),e.value.onopen=()=>{t.value=!0,console.log("WebSocket connected")},e.value.onclose=()=>{t.value=!1,console.log("WebSocket disconnected, reconnecting in 3s..."),n.value=setTimeout(()=>{o()},3e3)},e.value.onerror=u=>{console.error("WebSocket error:",u)},e.value.onmessage=u=>{try{const f=JSON.parse(u.data),{type:v,data:p}=f;(r.get(v)||[]).forEach(b=>b(p)),(r.get("*")||[]).forEach(b=>b(f))}catch(f){console.error("Error parsing WebSocket message:",f)}}}function i(s,d){return r.has(s)||r.set(s,[]),r.get(s).push(d),()=>{const u=r.get(s);if(u){const f=u.indexOf(d);f>-1&&u.splice(f,1)}}}function a(s){e.value&&t.value?e.value.send(JSON.stringify(s)):console.warn("Cannot send message: WebSocket not connected")}function l(){n.value&&(clearTimeout(n.value),n.value=null),e.value&&(e.value.close(),e.value=null),t.value=!1}return Lt(()=>{o()}),Li(()=>{l()}),{connected:t,on:i,send:a,disconnect:l,reconnect:o}}function $U(){const e=ii({projects:[],activeProject:null,activeStep:null,logs:[],isPanelOpen:!0,executingProject:null,isLoading:!0,activeTab:"pipeline",docs:{groups:[]},selectedDocFile:null,docContent:"",docLoading:!1});function t(m){return e.projects.find(x=>x.path===m)||null}function n(m){var k,C;const x=typeof m=="string"?t(m):m;x&&(e.activeProject=x,e.activeStep=null,e.logs=[],e.selectedDocFile=null,e.docContent="",(C=(k=x.state)==null?void 0:k.progress)!=null&&C.currentLogs&&o(x.state.progress.currentLogs))}function r(m){e.activeStep=m}function o(m){const x=Array.isArray(m)?m:[m];for(const k of x){const C=new Date().toISOString();e.logs.push({id:`${C}-${Math.random().toString(36).substr(2,9)}`,timestamp:C,content:k,type:"info"})}e.logs.length>500&&(e.logs=e.logs.slice(-500))}function i(){e.logs=[]}function a(){e.isPanelOpen=!e.isPanelOpen}function l(){e.isPanelOpen=!0}function s(){e.isPanelOpen=!1}function d(m){if(e.isLoading=!1,e.projects=m,e.activeProject){const x=t(e.activeProject.path);x&&(e.activeProject=x)}}function u(m){e.executingProject=m}function f(m){return e.executingProject===m}const v=S(()=>{var m;return((m=e.activeProject)==null?void 0:m.name)||null}),p=S(()=>{var m;return((m=e.activeProject)==null?void 0:m.path)||null}),h=S(()=>{var m,x;return((x=(m=e.activeProject)==null?void 0:m.state)==null?void 0:x.currentStage)||null}),g=S(()=>e.projects.length>0),b=S(()=>{var k,C,y;if(!((y=(C=(k=e.activeProject)==null?void 0:k.state)==null?void 0:C.progress)!=null&&y.stages))return[];const m=e.activeProject.state.currentStage,x=e.activeProject.state.progress.stages[m];return(x==null?void 0:x.steps)||[]});return{state:e,getProject:t,selectProject:n,selectStep:r,appendLog:o,clearLogs:i,togglePanel:a,openPanel:l,closePanel:s,updateProjects:d,setExecuting:u,isExecuting:f,activeProjectName:v,activeProjectPath:p,activeProjectStage:h,hasProjects:g,activeProjectSteps:b,setActiveTab(m){e.activeTab=m},updateDocs(m){e.docs=m},selectDocFile(m){e.selectedDocFile=m},setDocContent(m){e.docContent=m},setDocLoading(m){e.docLoading=m}}}function PU(e={}){const{onCmdK:t=null,onJ:n=null,onK:r=null,onEscape:o=null,onEnter:i=null,onArrowUp:a=null,onArrowDown:l=null,disabled:s=!1}=e;function d(u){if(s)return;const f=u.target;if(f.tagName==="INPUT"||f.tagName==="TEXTAREA"||f.contentEditable==="true")return;const p=navigator.platform.toUpperCase().indexOf("MAC")>=0?u.metaKey:u.ctrlKey;p&&u.key==="k"&&(u.preventDefault(),t&&t()),u.key==="j"&&!p&&(u.preventDefault(),n&&n()),u.key==="k"&&!p&&(u.preventDefault(),r&&r()),u.key==="Escape"&&(u.preventDefault(),o&&o()),u.key==="Enter"&&!p&&(u.preventDefault(),i&&i()),u.key==="ArrowUp"&&!p&&(u.preventDefault(),a&&a()),u.key==="ArrowDown"&&!p&&(u.preventDefault(),l&&l())}return Lt(()=>{window.addEventListener("keydown",d)}),Li(()=>{window.removeEventListener("keydown",d)}),{disable:()=>{s=!0},enable:()=>{s=!1}}}function zU(e={}){const{onOpenCommandPalette:t,onNavigateDown:n,onNavigateUp:r,onClose:o,onSelect:i,onPanelToggle:a}=e;return PU({onCmdK:t,onJ:n,onK:r,onEscape:o,onEnter:i})}const TU="/logo.jpg",fu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},_U={class:"h-full flex flex-col noise-bg"},OU={class:"relative z-10 px-5 pt-5 pb-4"},FU={class:"flex items-center gap-3"},MU={key:0,class:"mt-3 rounded-md p-3",style:{background:"#FFFFFF",border:"1px solid #F0F0F3"}},IU={key:0,class:"text-[10px] py-1",style:{color:"#D1D1D6"}},AU={key:1,class:"space-y-1 mb-2"},DU={class:"flex-1 truncate font-mono-log",style:{color:"#636366"}},BU={key:2,class:"flex items-center gap-2"},EU={class:"flex-1 overflow-y-auto py-3 relative z-10"},NU={key:0,class:"px-4 space-y-2"},LU={key:2,class:"px-3 space-y-0.5"},HU=["onMouseenter","onMouseleave","onClick"],jU={class:"px-3 py-2.5"},VU={class:"flex items-center justify-between gap-2"},WU={class:"flex-1 min-w-0"},UU={class:"text-[10px] mt-0.5 truncate font-mono-log",style:{color:"#6B7280"}},KU={key:0,class:"mt-2 h-[2px] rounded-full overflow-hidden",style:{background:"#FFFFFF"}},qU={class:"relative z-10 px-4 py-2.5",style:{"border-top":"1px solid #F0F0F3"}},YU={class:"flex items-center justify-between"},GU={class:"text-[10px] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},XU={__name:"ProjectList",props:{projects:{type:Array,default:()=>[]},activeProject:{type:Object,default:null},isLoading:{type:Boolean,default:!1},scanPaths:{type:Array,default:()=>[]}},emits:["select","scan:add-path","scan:remove-path"],setup(e,{emit:t}){const n=e,r=t,o=D(!1),i=D(!1),a=D(""),l=D(null);dt(i,g=>{g&&It(()=>{var b;(b=l.value)==null||b.focus()})});function s(g){var b;return((b=n.activeProject)==null?void 0:b.path)===g.path}function d(g){return{"in-progress":"warning",completed:"success",failed:"error",blocked:"warning"}[g]||"default"}function u(g){var k,C,y,R;const b=(k=g.state)==null?void 0:k.currentStage;if(!b)return"pending";const m=(R=(y=(C=g.state)==null?void 0:C.progress)==null?void 0:y.stages)==null?void 0:R[b];if(!m)return"pending";const x=m.steps||[];return x.length===0?"pending":x.some($=>$.status==="failed")?"failed":x.some($=>$.status==="blocked")?"blocked":x.some($=>$.status==="in-progress")?"in-progress":x.every($=>$.status==="completed")?"completed":"pending"}function f(g){var x;const b=(x=g.state)==null?void 0:x.currentStage;return{brainstorm:"头脑风暴",plan:"规划",execute:"执行",verify:"验证"}[b]||b||"未知"}function v(g){var y;const b=(y=g.state)==null?void 0:y.progress;if(!b)return 0;const m=b.stages||{},x=["brainstorm","plan","execute","verify"];let k=0,C=0;for(const R of x){const $=m[R];$!=null&&$.steps&&(k+=$.steps.length,C+=$.steps.filter(P=>P.status==="completed").length)}return k===0?0:Math.round(C/k*100)}function p(){const g=a.value.trim();g&&(r("scan:add-path",g),a.value="",i.value=!1)}function h(g){r("scan:remove-path",g)}return(g,b)=>{const m=pn("n-button"),x=pn("n-input"),k=pn("n-skeleton"),C=pn("n-card"),y=pn("n-empty"),R=pn("n-tag");return We(),Xe("div",_U,[Ae("div",OU,[Ae("div",FU,[b[5]||(b[5]=uP('<div class="w-8 h-8 rounded-md flex items-center justify-center" style="background:linear-gradient(135deg, #D97706 0%, #F59E0B 100%);clip-path:polygon(0 0, 100% 0, 85% 100%, 15% 100%);" data-v-b5f771a9><span class="text-[10px] font-bold text-black font-[JetBrains_Mono,monospace]" data-v-b5f771a9>S</span></div><img src="'+TU+'" style="width:28px;height:28px;border-radius:6px;margin-right:8px;" data-v-b5f771a9><div class="flex-1" data-v-b5f771a9><h1 class="text-[13px] font-semibold tracking-tight font-[JetBrains_Mono,monospace]" style="color:#1C1C1E;" data-v-b5f771a9> SillySpec </h1><p class="text-[10px] tracking-widest uppercase" style="color:#6B7280;" data-v-b5f771a9>控制台</p></div>',3)),Dt(m,{quaternary:"",size:"tiny",onClick:b[0]||(b[0]=$=>o.value=!o.value),type:o.value?"primary":"default"},{icon:Rn(()=>[...b[4]||(b[4]=[Ae("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])]),_:1},8,["type"])]),Dt(Kt,{name:"slide"},{default:Rn(()=>[o.value?(We(),Xe("div",MU,[b[9]||(b[9]=Ae("div",{class:"text-[10px] font-semibold uppercase tracking-[0.15em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"扫描路径",-1)),e.scanPaths.length===0?(We(),Xe("div",IU,"暂无自定义路径")):(We(),Xe("div",AU,[(We(!0),Xe(kt,null,or(e.scanPaths,($,P)=>(We(),Xe("div",{key:P,class:"flex items-center gap-2 text-[10px] group"},[Ae("span",DU,Ct($),1),Dt(m,{quaternary:"",size:"tiny",type:"error",onClick:z=>h($)},{default:Rn(()=>[...b[6]||(b[6]=[On("✕",-1)])]),_:1},8,["onClick"])]))),128))])),i.value?(We(),Xe("div",BU,[Dt(x,{value:a.value,"onUpdate:value":b[1]||(b[1]=$=>a.value=$),size:"tiny",placeholder:"输入目录路径...",onKeydown:[vp(p,["enter"]),b[2]||(b[2]=vp($=>i.value=!1,["escape"]))],ref_key:"pathInput",ref:l},null,8,["value"]),Dt(m,{size:"tiny",type:"primary",onClick:p},{default:Rn(()=>[...b[7]||(b[7]=[On("添加",-1)])]),_:1})])):(We(),mn(m,{key:3,size:"tiny",dashed:"",onClick:b[3]||(b[3]=$=>i.value=!0)},{default:Rn(()=>[...b[8]||(b[8]=[On("+ 添加目录",-1)])]),_:1}))])):Ft("",!0)]),_:1})]),b[12]||(b[12]=Ae("div",{class:"mx-4 h-px",style:{background:"linear-gradient(90deg, transparent, #E5E5EA, transparent)"}},null,-1)),Ae("div",EU,[e.isLoading?(We(),Xe("div",NU,[(We(),Xe(kt,null,or(4,$=>Dt(C,{key:$,size:"small",bordered:!1},{default:Rn(()=>[Dt(k,{text:"",width:80,size:"small"}),Dt(k,{text:"",width:140,size:"small",style:{"margin-top":"6px"}})]),_:1})),64)),b[10]||(b[10]=Ae("p",{class:"text-center text-[10px] mt-4 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}}," 正在扫描项目... ",-1))])):e.projects.length===0?(We(),mn(y,{key:1,description:"未发现 SillySpec 项目",style:{padding:"48px 0"}})):(We(),Xe("div",LU,[(We(!0),Xe(kt,null,or(e.projects,$=>{var P,z;return We(),Xe("div",{key:$.path,class:yr(["relative rounded-md cursor-pointer transition-all duration-150 overflow-hidden group"]),style:$n({background:s($)?"rgba(217,119,6,0.06)":"transparent",borderLeft:s($)?"2px solid #D97706":"2px solid transparent"}),onMouseenter:F=>F.currentTarget.style.background=s($)?"rgba(217,119,6,0.08)":"rgba(255,255,255,0.02)",onMouseleave:F=>F.currentTarget.style.background=s($)?"rgba(217,119,6,0.06)":"transparent",onClick:F=>g.$emit("select",$)},[Ae("div",jU,[Ae("div",VU,[Ae("div",WU,[Ae("h3",{class:"text-[12px] font-medium truncate transition-colors duration-150 font-[JetBrains_Mono,monospace]",style:$n({color:s($)?"#D97706":"#1C1C1E"})},Ct($.name),5),Ae("p",UU,Ct($.path),1)]),(P=$.state)!=null&&P.currentStage?(We(),mn(R,{key:0,type:d(u($)),size:"small",bordered:!1,round:""},{default:Rn(()=>[On(Ct(f($)),1)]),_:2},1032,["type"])):Ft("",!0)]),(z=$.state)!=null&&z.progress?(We(),Xe("div",KU,[Ae("div",{class:"h-full rounded-full transition-all duration-500 progress-gradient",style:$n({width:v($)+"%"})},null,4)])):Ft("",!0)])],44,HU)}),128))]))]),Ae("div",qU,[Ae("div",YU,[Ae("span",GU,Ct(e.projects.length)+" 个项目",1),b[11]||(b[11]=Ae("kbd",{class:"text-[9px] px-1.5 py-0.5 rounded font-mono-log",style:{color:"#6B7280",background:"#FFFFFF",border:"1px solid #E5E5EA"}},"⌘K",-1))])])])}}},ZU=fu(XU,[["__scopeId","data-v-b5f771a9"]]),rd={__name:"StageBadge",props:{status:{type:String,default:"pending"},label:{type:String,default:""},size:{type:String,default:"md"}},setup(e){const t=e,n=S(()=>t.label?t.label:{completed:"done","in-progress":"running",blocked:"blocked",failed:"error"}[t.status]||""),r=S(()=>t.size==="sm"?"px-1.5 py-0.5":"px-2 py-1"),o=S(()=>{const l={completed:{background:"rgba(22,163,74,0.1)",color:"#16A34A"},"in-progress":{background:"rgba(251,191,36,0.1)",color:"#D97706"},blocked:{background:"rgba(251,146,60,0.1)",color:"#EA580C"},failed:{background:"rgba(239,68,68,0.1)",color:"#DC2626"},pending:{background:"rgba(82,82,82,0.15)",color:"#6B7280"}};return l[t.status]||l.pending}),i=S(()=>t.status==="in-progress"?"animate-pulse-dot":""),a=S(()=>({background:{completed:"#16A34A","in-progress":"#D97706",blocked:"#EA580C",failed:"#DC2626",pending:"#6B7280"}[t.status]||"#6B7280"}));return(l,s)=>(We(),Xe("span",{class:yr(["inline-flex items-center gap-1.5 rounded-sm text-[10px] font-medium font-[JetBrains_Mono,monospace] uppercase tracking-wider transition-colors duration-150",r.value]),style:$n(o.value)},[Ae("span",{class:yr(["w-1 h-1 rounded-full",i.value]),style:$n(a.value)},null,6),Ae("span",null,Ct(n.value),1)],6))}},JU={class:"pl-3.5 pr-3 py-2.5"},QU={class:"flex items-center gap-2"},eK={class:"mt-1.5 text-[11px] line-clamp-2",style:{color:"#636366"}},tK={key:1,class:"mt-2 space-y-1"},nK={key:0,class:"text-[11px]",style:{color:"#1C1C1E"}},rK={key:1,class:"text-[11px]",style:{color:"#1C1C1E"}},oK={key:2,class:"text-[11px] italic",style:{color:"#636366"}},iK={key:2,class:"mt-1 text-[10px] font-mono-log",style:{color:"#6B7280"}},aK={__name:"StepCard",props:{step:{type:Object,required:!0},isActive:{type:Boolean,default:!1},isClickable:{type:Boolean,default:!0}},emits:["select"],setup(e,{emit:t}){const n=e,r=t,o=D(!1),i=S(()=>{const d={completed:"#16A34A","in-progress":"#D97706",blocked:"#EA580C",failed:"#DC2626",pending:"#E5E5EA"};return d[n.step.status]||d.pending}),a=S(()=>({background:n.isActive?"rgba(217,119,6,0.08)":o.value?"rgba(0,0,0,0.02)":"#FFFFFF",border:`1px solid ${n.isActive?"rgba(251,191,36,0.2)":"#F0F0F3"}`})),l=S(()=>({completed:"完成","in-progress":"进行中",blocked:"阻塞",failed:"失败",pending:"待办"})[n.step.status]||"待办");function s(){n.isClickable&&r("select",n.step)}return(d,u)=>(We(),Xe("div",{class:yr(["group relative rounded-md cursor-pointer overflow-hidden transition-all duration-200"]),style:$n(a.value),onMouseenter:u[0]||(u[0]=f=>o.value=!0),onMouseleave:u[1]||(u[1]=f=>o.value=!1),onClick:s},[Ae("div",{class:"absolute left-0 top-0 bottom-0 w-[2px]",style:$n({background:i.value})},null,4),Ae("div",JU,[Ae("div",QU,[Ae("h3",{class:"text-[12px] font-medium transition-colors duration-150",style:$n({color:e.isActive?"#D97706":"#1C1C1E",fontFamily:"'JetBrains Mono', monospace"})},Ct(e.step.title||e.step.name),5),e.step.status?(We(),mn(rd,{key:0,status:e.step.status,label:l.value},null,8,["status","label"])):Ft("",!0)]),e.step.summary||e.step.description?(We(),Xe("div",{key:0,class:"overflow-hidden transition-all duration-200",style:$n({maxHeight:o.value?"60px":"0",opacity:o.value?1:0})},[Ae("p",eK,Ct(e.step.summary||e.step.description),1)],4)):Ft("",!0),e.isActive?(We(),Xe("div",tK,[e.step.conclusion?(We(),Xe("p",nK,[u[2]||(u[2]=Ae("span",{style:{color:"#D97706","font-weight":"600"}},"结论:",-1)),On(" "+Ct(e.step.conclusion),1)])):Ft("",!0),e.step.decision?(We(),Xe("p",rK,[u[3]||(u[3]=Ae("span",{style:{color:"#D97706","font-weight":"600"}},"决策:",-1)),On(" "+Ct(e.step.decision),1)])):Ft("",!0),e.step.userQuery?(We(),Xe("p",oK,' "'+Ct(e.step.userQuery)+'" ',1)):Ft("",!0)])):Ft("",!0),e.step.duration?(We(),Xe("div",iK,Ct(e.step.duration),1)):Ft("",!0)])],36))}},lK=fu(aK,[["__scopeId","data-v-0511fd83"]]),sK={class:"relative"},dK={class:"flex items-start gap-3"},cK={class:"flex flex-col items-center flex-shrink-0 pt-1.5"},uK={class:"flex-1 min-w-0 -mt-0.5"},fK={class:"flex items-center gap-2.5 mb-3"},hK={class:"space-y-1"},vK={key:0,class:"text-[11px] italic py-1",style:{color:"#6B7280"}},Ed={__name:"PipelineStage",props:{name:{type:String,required:!0},title:{type:String,required:!0},steps:{type:Array,default:()=>[]},status:{type:String,default:"pending"},isActive:{type:Boolean,default:!1},activeStep:{type:Object,default:null}},emits:["select-step"],setup(e,{emit:t}){const n=e,r=S(()=>{if(n.isActive)return{background:"#D97706",boxShadow:"0 0 8px rgba(251,191,36,0.4)"};const i={completed:"#16A34A","in-progress":"#D97706",blocked:"#EA580C",failed:"#DC2626",pending:"#E5E5EA"};return{background:i[n.status]||i.pending}});function o(i){var a,l;return((a=n.activeStep)==null?void 0:a.id)===i.id||((l=n.activeStep)==null?void 0:l.name)===i.name}return(i,a)=>(We(),Xe("div",sK,[Ae("div",dK,[Ae("div",cK,[Ae("div",{class:yr(["w-2 h-2 transition-colors duration-200",{"animate-pulse-dot":e.isActive||e.status==="in-progress"}]),style:$n(r.value)},null,6)]),Ae("div",uK,[Ae("div",fK,[Ae("span",{class:"text-[12px] font-semibold font-[JetBrains_Mono,monospace] tracking-tight",style:$n({color:e.isActive?"#D97706":"#1C1C1E"})},Ct(e.title),5),Dt(rd,{status:e.status},null,8,["status"])]),Ae("div",hK,[e.steps.length===0?(We(),Xe("div",vK," No steps yet ")):Ft("",!0),(We(!0),Xe(kt,null,or(e.steps,l=>(We(),mn(lK,{key:l.id||l.name,step:l,"is-active":o(l),onSelect:a[0]||(a[0]=s=>i.$emit("select-step",s))},null,8,["step","is-active"]))),128))])])])]))}},gK={class:"flex flex-col h-full"},pK={__name:"DocTree",props:{groups:{type:Array,default:()=>[]},selectedFile:{type:Object,default:null}},emits:["select-file"],setup(e,{emit:t}){const n=e,r=t,o=S(()=>{var s;return(s=n.selectedFile)!=null&&s.path?[n.selectedFile.path]:[]}),i={设计文档:"📋",实现计划:"📐",归档:"📦"," proposals":"📝"},a=S(()=>n.groups.map(s=>({key:`group-${s.key}`,label:s.label,prefix:()=>i[s.label]||"📄",children:s.files.map(d=>({key:d.path,label:d.title,prefix:()=>"📄",data:d}))})));function l(s,d){var u;(u=d==null?void 0:d[0])!=null&&u.data&&r("select-file",d[0].data)}return(s,d)=>{const u=pn("n-empty"),f=pn("n-tree");return We(),Xe("div",gK,[e.groups.length===0?(We(),mn(u,{key:0,description:"暂无文档",style:{margin:"auto"}})):(We(),mn(f,{key:1,data:a.value,"selected-keys":o.value,"default-expand-all":!0,selectable:"","block-line":"","onUpdate:selectedKeys":l,style:{padding:"8px 12px"}},null,8,["data","selected-keys"]))])}}};function Cg(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Da=Cg();function X2(e){Da=e}var la={exec:()=>null};function tn(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(o,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(br.caret,"$1"),n=n.replace(o,a),r},getRegex:()=>new RegExp(n,t)};return r}var mK=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),br={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},bK=/^(?:[ \t]*(?:\n|$))+/,xK=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,yK=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,od=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,wK=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Sg=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Z2=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,J2=tn(Z2).replace(/bull/g,Sg).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(),CK=tn(Z2).replace(/bull/g,Sg).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(),kg=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,SK=/^[^\n]+/,Rg=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,kK=tn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Rg).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),RK=tn(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Sg).getRegex(),hu="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",$g=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,$K=tn("^ {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",$g).replace("tag",hu).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Q2=tn(kg).replace("hr",od).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",hu).getRegex(),PK=tn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Q2).getRegex(),Pg={blockquote:PK,code:xK,def:kK,fences:yK,heading:wK,hr:od,html:$K,lheading:J2,list:RK,newline:bK,paragraph:Q2,table:la,text:SK},b0=tn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",od).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",hu).getRegex(),zK={...Pg,lheading:CK,table:b0,paragraph:tn(kg).replace("hr",od).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",b0).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",hu).getRegex()},TK={...Pg,html:tn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",$g).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:la,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:tn(kg).replace("hr",od).replace("heading",` *#{1,6} *[^
7388
+ `).map(ae=>{const ge=a.measureText(ae).width;return L=Math.max(L,ge),{width:ge,line:ae}}).forEach(({line:ae,width:ge},X)=>{const ne=Y==="left"?0:Y==="center"?(L-ge)/2:L-ge;a.fillText(ae,A+ne,B+z*s*(X+1))}),o.value=i.toDataURL()}else m||(a.clearRect(0,0,i.width,i.height),o.value=i.toDataURL())}else W3("watermark","Canvas is not supported in the browser.")}),()=>{var s;const{globalRotate:d,fullscreen:u,zIndex:f}=e,v=n.value,p=d!==0&&u,h="max(142vh, 142vw)",g=c("div",{class:[`${v}-watermark`,d!==0&&`${v}-watermark--global-rotate`,u&&`${v}-watermark--fullscreen`],style:{transform:d?`translateX(-50%) translateY(-50%) rotate(${d}deg)`:void 0,zIndex:p?void 0:f,backgroundSize:`${e.xGap+e.width}px`,backgroundPosition:d===0?e.cross?`${e.width/2}px ${e.height/2}px, 0 0`:"":e.cross?`calc(${h} + ${e.width/2}px) calc(${h} + ${e.height/2}px), ${h} ${h}`:h,backgroundImage:e.cross?`url(${o.value}), url(${o.value})`:`url(${o.value})`}});return e.fullscreen&&!d?g:c("div",{class:[`${v}-watermark-container`,d!==0&&`${v}-watermark-container--global-rotate`,u&&`${v}-watermark-container--fullscreen`,e.selectable&&`${v}-watermark-container--selectable`],style:{zIndex:p?f:void 0}},(s=t.default)===null||s===void 0?void 0:s.call(t),g)}}}),m0=Object.freeze(Object.defineProperty({__proto__:null,NA:DW,NAffix:F1,NAlert:XM,NAnchor:iI,NAnchorLink:eI,NAutoComplete:CI,NAvatar:dh,NAvatarGroup:TI,NBackTop:AI,NBadge:NI,NBlockquote:EW,NBreadcrumb:WI,NBreadcrumbItem:KI,NButton:jt,NButtonGroup:Av,NCalendar:QD,NCard:Qw,NCarousel:yB,NCarouselItem:tC,NCascader:IB,NCheckbox:vi,NCheckboxGroup:iC,NCode:cC,NCol:uk,NCollapse:LB,NCollapseItem:jB,NCollapseTransition:KB,NColorPicker:yE,NConfigProvider:bC,NCountdown:wE,NDataTable:L8,NDatePicker:IN,NDescriptions:LN,NDescriptionsItem:HN,NDialog:og,NDialogProvider:kS,NDivider:M7,NDrawer:X7,NDrawerContent:Z7,NDropdown:Jv,NDynamicInput:oL,NDynamicTags:cL,NEl:Tb,NElement:Tb,NEllipsis:ou,NEmpty:ri,NEquation:fL,NFlex:pL,NFloatButton:A9,NFloatButtonGroup:O9,NForm:E9,NFormItem:cg,NFormItemCol:fk,NFormItemGi:Nb,NFormItemGridItem:Nb,NFormItemRow:TH,NGi:Ph,NGlobalStyle:_H,NGradientText:FH,NGrid:IH,NGridItem:Ph,NH1:LW,NH2:HW,NH3:jW,NH4:VW,NH5:WW,NH6:UW,NHeatmap:UH,NHighlight:YH,NHr:qW,NIcon:KC,NIconWrapper:JH,NImage:Tk,NImageGroup:Pk,NImagePreview:hg,NInfiniteScroll:lj,NInput:Kn,NInputGroup:cw,NInputGroupLabel:gI,NInputNumber:uj,NInputOtp:vj,NLayout:pj,NLayoutContent:mj,NLayoutFooter:xj,NLayoutHeader:wj,NLayoutSider:Rj,NLegacyTransfer:Fj,NLi:YW,NList:Ij,NListItem:Aj,NLoadingBarProvider:zS,NLog:Lj,NMarquee:Uj,NMention:Yj,NMenu:rV,NMessageProvider:IS,NModal:lg,NModalProvider:BS,NNotificationProvider:LS,NNumberAnimation:aV,NOl:GW,NP:ZW,NPageHeader:sV,NPagination:TC,NPerformantEllipsis:VC,NPopconfirm:uV,NPopover:Aa,NPopselect:CC,NProgress:r2,NQrCode:CV,NRadio:Gv,NRadioButton:ZE,NRadioGroup:LC,NRate:RV,NResult:FV,NRow:ck,NScrollbar:MV,NSelect:RC,NSkeleton:BV,NSlider:LV,NSpace:YS,NSpin:VV,NSplit:qV,NStatistic:GV,NStep:eW,NSteps:QV,NSwitch:nW,NTab:Rc,NTabPane:cW,NTable:oW,NTabs:fW,NTag:gs,NTbody:iW,NTd:aW,NText:QW,NTh:lW,NThead:sW,NThing:vW,NTime:gW,NTimePicker:kc,NTimeline:mW,NTimelineItem:bW,NTooltip:Gs,NTr:dW,NTransfer:wW,NTree:O2,NTreeSelect:IW,NUl:eU,NUpload:bU,NUploadDragger:H2,NUploadFileList:W2,NUploadTrigger:wg,NVirtualList:xU,NWatermark:CU,NxButton:uo,aProps:M2,affixProps:eu,alertProps:rw,anchorLinkProps:ow,anchorProps:iw,autoCompleteProps:vw,avatarGroupProps:yw,avatarProps:xw,backTopProps:ww,badgeProps:Cw,blockquoteProps:I2,breadcrumbItemProps:Rw,breadcrumbProps:kw,buttonGroupProps:Tw,buttonProps:Pw,calendarProps:Xw,cardProps:Jw,carouselProps:nC,cascaderProps:lC,checkboxGroupProps:oC,checkboxProps:aC,codeProps:dC,colProps:cu,collapseItemProps:hC,collapseProps:uC,collapseTransitionProps:vC,colorPickerProps:pC,configProviderProps:mC,countdownProps:xC,createDiscreteApi:T7,dataTableProps:OC,datePickerProps:cS,descriptionsItemProps:hS,descriptionsProps:fS,dialogProps:Xs,dialogProviderProps:SS,dividerProps:jS,drawerContentProps:WS,drawerProps:VS,dropdownProps:XC,dynamicInputProps:US,dynamicTagsProps:GS,elementProps:XS,ellipsisProps:Xv,emptyProps:K1,equationProps:ZS,flexProps:JS,floatButtonGroupProps:nk,floatButtonProps:ok,formItemGiProps:zh,formItemGridItemProps:zh,formItemProps:Js,formProps:ak,giProps:Fs,gradientTextProps:gk,gridItemProps:Fs,gridProps:mk,h1Props:oa,h2Props:oa,h3Props:oa,h4Props:oa,h5Props:oa,h6Props:oa,heatmapDark:KH,heatmapLight:xk,heatmapMockData:WH,heatmapProps:yk,highlightProps:wk,iconProps:UC,iconWrapperProps:Ck,imageGroupProps:$k,imagePreviewProps:kk,imageProps:zk,infiniteScrollProps:_k,inputGroupLabelProps:uw,inputGroupProps:dw,inputNumberProps:Ok,inputOtpProps:Fk,inputProps:sw,layoutContentProps:Th,layoutFooterProps:Dk,layoutHeaderProps:Bk,layoutProps:Th,layoutSiderProps:Ek,legacyTransferProps:Nk,listProps:Lk,loadingBarProviderProps:PS,logProps:Vk,mentionProps:Wk,menuProps:Xk,messageProviderProps:MS,modalProps:ag,modalProviderProps:DS,notificationProviderProps:NS,numberAnimationProps:Zk,olProps:D2,pProps:B2,pageHeaderProps:Jk,paginationProps:zC,popconfirmProps:t2,popoverProps:G1,popselectProps:wC,progressProps:n2,qrCodeProps:o2,radioButtonProps:XE,radioGroupProps:NC,radioProps:EC,rateProps:i2,resultProps:a2,rowProps:du,scrollbarProps:l2,selectProps:kC,skeletonProps:s2,sliderProps:d2,spaceProps:qS,spinProps:c2,splitProps:u2,statisticProps:f2,stepProps:g2,stepsProps:h2,switchProps:p2,tabPaneProps:xg,tabProps:b2,tableProps:m2,tabsProps:x2,tagProps:J1,textProps:E2,thingProps:y2,timePickerProps:dS,timeProps:w2,timelineItemProps:k2,timelineProps:C2,tooltipProps:HC,transferProps:R2,treeGetClickTarget:TW,treeProps:_2,treeSelectProps:F2,ulProps:N2,uploadDownload:L3,uploadProps:K2,useDialog:mS,useDialogReactiveList:jN,useLoadingBar:TS,useMessage:AS,useModal:CS,useModalReactiveList:XN,useNotification:HS,virtualListProps:q2,watermarkProps:Y2},Symbol.toStringTag,{value:"Module"})),SU="2.44.1";function kU({componentPrefix:e="N",components:t=[]}={}){const n=[];function r(i,a,l){i.component(e+a)||i.component(e+a,l)}function o(i){n.includes(i)||(n.push(i),t.forEach(a=>{const{name:l,alias:s}=a;r(i,l,a),s&&s.forEach(d=>{r(i,d,a)})}))}return{version:SU,componentPrefix:e,install:o}}const G2=kU({components:Object.keys(m0).map(e=>m0[e])});G2.install;function RU(){const e=D(null),t=D(!1),n=D(null),r=new Map;function o(){const d=`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}`;e.value=new WebSocket(d),e.value.onopen=()=>{t.value=!0,console.log("WebSocket connected")},e.value.onclose=()=>{t.value=!1,console.log("WebSocket disconnected, reconnecting in 3s..."),n.value=setTimeout(()=>{o()},3e3)},e.value.onerror=u=>{console.error("WebSocket error:",u)},e.value.onmessage=u=>{try{const f=JSON.parse(u.data),{type:v,data:p}=f;(r.get(v)||[]).forEach(b=>b(p)),(r.get("*")||[]).forEach(b=>b(f))}catch(f){console.error("Error parsing WebSocket message:",f)}}}function i(s,d){return r.has(s)||r.set(s,[]),r.get(s).push(d),()=>{const u=r.get(s);if(u){const f=u.indexOf(d);f>-1&&u.splice(f,1)}}}function a(s){e.value&&t.value?e.value.send(JSON.stringify(s)):console.warn("Cannot send message: WebSocket not connected")}function l(){n.value&&(clearTimeout(n.value),n.value=null),e.value&&(e.value.close(),e.value=null),t.value=!1}return Lt(()=>{o()}),Li(()=>{l()}),{connected:t,on:i,send:a,disconnect:l,reconnect:o}}function $U(){const e=ii({projects:[],activeProject:null,activeStep:null,logs:[],isPanelOpen:!0,executingProject:null,isLoading:!0,activeTab:"pipeline",docs:{groups:[]},selectedDocFile:null,docContent:"",docLoading:!1});function t(m){return e.projects.find(x=>x.path===m)||null}function n(m){var k,C;const x=typeof m=="string"?t(m):m;x&&(e.activeProject=x,e.activeStep=null,e.logs=[],e.selectedDocFile=null,e.docContent="",(C=(k=x.state)==null?void 0:k.progress)!=null&&C.currentLogs&&o(x.state.progress.currentLogs))}function r(m){e.activeStep=m}function o(m){const x=Array.isArray(m)?m:[m];for(const k of x){const C=new Date().toISOString();e.logs.push({id:`${C}-${Math.random().toString(36).substr(2,9)}`,timestamp:C,content:k,type:"info"})}e.logs.length>500&&(e.logs=e.logs.slice(-500))}function i(){e.logs=[]}function a(){e.isPanelOpen=!e.isPanelOpen}function l(){e.isPanelOpen=!0}function s(){e.isPanelOpen=!1}function d(m){if(e.isLoading=!1,e.projects=m,e.activeProject){const x=t(e.activeProject.path);x&&(e.activeProject=x)}}function u(m){e.executingProject=m}function f(m){return e.executingProject===m}const v=S(()=>{var m;return((m=e.activeProject)==null?void 0:m.name)||null}),p=S(()=>{var m;return((m=e.activeProject)==null?void 0:m.path)||null}),h=S(()=>{var m,x;return((x=(m=e.activeProject)==null?void 0:m.state)==null?void 0:x.currentStage)||null}),g=S(()=>e.projects.length>0),b=S(()=>{var k,C,y;if(!((y=(C=(k=e.activeProject)==null?void 0:k.state)==null?void 0:C.progress)!=null&&y.stages))return[];const m=e.activeProject.state.currentStage,x=e.activeProject.state.progress.stages[m];return(x==null?void 0:x.steps)||[]});return{state:e,getProject:t,selectProject:n,selectStep:r,appendLog:o,clearLogs:i,togglePanel:a,openPanel:l,closePanel:s,updateProjects:d,setExecuting:u,isExecuting:f,activeProjectName:v,activeProjectPath:p,activeProjectStage:h,hasProjects:g,activeProjectSteps:b,setActiveTab(m){e.activeTab=m},updateDocs(m){e.docs=m},selectDocFile(m){e.selectedDocFile=m},setDocContent(m){e.docContent=m},setDocLoading(m){e.docLoading=m}}}function PU(e={}){const{onCmdK:t=null,onJ:n=null,onK:r=null,onEscape:o=null,onEnter:i=null,onArrowUp:a=null,onArrowDown:l=null,disabled:s=!1}=e;let d=s;function u(f){if(d)return;const v=f.target;if(v.tagName==="INPUT"||v.tagName==="TEXTAREA"||v.contentEditable==="true")return;const h=navigator.platform.toUpperCase().indexOf("MAC")>=0?f.metaKey:f.ctrlKey;h&&f.key==="k"&&(f.preventDefault(),t&&t()),f.key==="j"&&!h&&(f.preventDefault(),n&&n()),f.key==="k"&&!h&&(f.preventDefault(),r&&r()),f.key==="Escape"&&(f.preventDefault(),o&&o()),f.key==="Enter"&&!h&&(f.preventDefault(),i&&i()),f.key==="ArrowUp"&&!h&&(f.preventDefault(),a&&a()),f.key==="ArrowDown"&&!h&&(f.preventDefault(),l&&l())}return Lt(()=>{window.addEventListener("keydown",u)}),Li(()=>{window.removeEventListener("keydown",u)}),{disable:()=>{d=!0},enable:()=>{d=!1}}}function zU(e={}){const{onOpenCommandPalette:t,onNavigateDown:n,onNavigateUp:r,onClose:o,onSelect:i,onPanelToggle:a}=e;return PU({onCmdK:t,onJ:n,onK:r,onEscape:o,onEnter:i})}const TU="/logo.jpg",fu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},_U={class:"h-full flex flex-col noise-bg"},OU={class:"relative z-10 px-5 pt-5 pb-4"},FU={class:"flex items-center gap-3"},MU={key:0,class:"mt-3 rounded-md p-3",style:{background:"#FFFFFF",border:"1px solid #F0F0F3"}},IU={key:0,class:"text-[10px] py-1",style:{color:"#D1D1D6"}},AU={key:1,class:"space-y-1 mb-2"},DU={class:"flex-1 truncate font-mono-log",style:{color:"#636366"}},BU={key:2,class:"flex items-center gap-2"},EU={class:"flex-1 overflow-y-auto py-3 relative z-10"},NU={key:0,class:"px-4 space-y-2"},LU={key:2,class:"px-3 space-y-0.5"},HU=["onMouseenter","onMouseleave","onClick"],jU={class:"px-3 py-2.5"},VU={class:"flex items-center justify-between gap-2"},WU={class:"flex-1 min-w-0"},UU={class:"text-[10px] mt-0.5 truncate font-mono-log",style:{color:"#6B7280"}},KU={key:0,class:"mt-2 h-[2px] rounded-full overflow-hidden",style:{background:"#FFFFFF"}},qU={class:"relative z-10 px-4 py-2.5",style:{"border-top":"1px solid #F0F0F3"}},YU={class:"flex items-center justify-between"},GU={class:"text-[10px] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},XU={__name:"ProjectList",props:{projects:{type:Array,default:()=>[]},activeProject:{type:Object,default:null},isLoading:{type:Boolean,default:!1},scanPaths:{type:Array,default:()=>[]}},emits:["select","scan:add-path","scan:remove-path"],setup(e,{emit:t}){const n=e,r=t,o=D(!1),i=D(!1),a=D(""),l=D(null);dt(i,g=>{g&&It(()=>{var b;(b=l.value)==null||b.focus()})});function s(g){var b;return((b=n.activeProject)==null?void 0:b.path)===g.path}function d(g){return{"in-progress":"warning",completed:"success",failed:"error",blocked:"warning"}[g]||"default"}function u(g){var k,C,y,R;const b=(k=g.state)==null?void 0:k.currentStage;if(!b)return"pending";const m=(R=(y=(C=g.state)==null?void 0:C.progress)==null?void 0:y.stages)==null?void 0:R[b];if(!m)return"pending";const x=m.steps||[];return x.length===0?"pending":x.some($=>$.status==="failed")?"failed":x.some($=>$.status==="blocked")?"blocked":x.some($=>$.status==="in-progress")?"in-progress":x.every($=>$.status==="completed")?"completed":"pending"}function f(g){var x;const b=(x=g.state)==null?void 0:x.currentStage;return{brainstorm:"头脑风暴",plan:"规划",execute:"执行",verify:"验证"}[b]||b||"未知"}function v(g){var y;const b=(y=g.state)==null?void 0:y.progress;if(!b)return 0;const m=b.stages||{},x=["brainstorm","plan","execute","verify"];let k=0,C=0;for(const R of x){const $=m[R];$!=null&&$.steps&&(k+=$.steps.length,C+=$.steps.filter(P=>P.status==="completed").length)}return k===0?0:Math.round(C/k*100)}function p(){const g=a.value.trim();g&&(r("scan:add-path",g),a.value="",i.value=!1)}function h(g){r("scan:remove-path",g)}return(g,b)=>{const m=pn("n-button"),x=pn("n-input"),k=pn("n-skeleton"),C=pn("n-card"),y=pn("n-empty"),R=pn("n-tag");return We(),Xe("div",_U,[Ae("div",OU,[Ae("div",FU,[b[5]||(b[5]=uP('<div class="w-8 h-8 rounded-md flex items-center justify-center" style="background:linear-gradient(135deg, #D97706 0%, #F59E0B 100%);clip-path:polygon(0 0, 100% 0, 85% 100%, 15% 100%);" data-v-b5f771a9><span class="text-[10px] font-bold text-black font-[JetBrains_Mono,monospace]" data-v-b5f771a9>S</span></div><img src="'+TU+'" style="width:28px;height:28px;border-radius:6px;margin-right:8px;" data-v-b5f771a9><div class="flex-1" data-v-b5f771a9><h1 class="text-[13px] font-semibold tracking-tight font-[JetBrains_Mono,monospace]" style="color:#1C1C1E;" data-v-b5f771a9> SillySpec </h1><p class="text-[10px] tracking-widest uppercase" style="color:#6B7280;" data-v-b5f771a9>控制台</p></div>',3)),Dt(m,{quaternary:"",size:"tiny",onClick:b[0]||(b[0]=$=>o.value=!o.value),type:o.value?"primary":"default"},{icon:Rn(()=>[...b[4]||(b[4]=[Ae("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})],-1)])]),_:1},8,["type"])]),Dt(Kt,{name:"slide"},{default:Rn(()=>[o.value?(We(),Xe("div",MU,[b[9]||(b[9]=Ae("div",{class:"text-[10px] font-semibold uppercase tracking-[0.15em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"扫描路径",-1)),e.scanPaths.length===0?(We(),Xe("div",IU,"暂无自定义路径")):(We(),Xe("div",AU,[(We(!0),Xe(kt,null,or(e.scanPaths,($,P)=>(We(),Xe("div",{key:P,class:"flex items-center gap-2 text-[10px] group"},[Ae("span",DU,Ct($),1),Dt(m,{quaternary:"",size:"tiny",type:"error",onClick:z=>h($)},{default:Rn(()=>[...b[6]||(b[6]=[On("✕",-1)])]),_:1},8,["onClick"])]))),128))])),i.value?(We(),Xe("div",BU,[Dt(x,{value:a.value,"onUpdate:value":b[1]||(b[1]=$=>a.value=$),size:"tiny",placeholder:"输入目录路径...",onKeydown:[vp(p,["enter"]),b[2]||(b[2]=vp($=>i.value=!1,["escape"]))],ref_key:"pathInput",ref:l},null,8,["value"]),Dt(m,{size:"tiny",type:"primary",onClick:p},{default:Rn(()=>[...b[7]||(b[7]=[On("添加",-1)])]),_:1})])):(We(),mn(m,{key:3,size:"tiny",dashed:"",onClick:b[3]||(b[3]=$=>i.value=!0)},{default:Rn(()=>[...b[8]||(b[8]=[On("+ 添加目录",-1)])]),_:1}))])):Ft("",!0)]),_:1})]),b[12]||(b[12]=Ae("div",{class:"mx-4 h-px",style:{background:"linear-gradient(90deg, transparent, #E5E5EA, transparent)"}},null,-1)),Ae("div",EU,[e.isLoading?(We(),Xe("div",NU,[(We(),Xe(kt,null,or(4,$=>Dt(C,{key:$,size:"small",bordered:!1},{default:Rn(()=>[Dt(k,{text:"",width:80,size:"small"}),Dt(k,{text:"",width:140,size:"small",style:{"margin-top":"6px"}})]),_:1})),64)),b[10]||(b[10]=Ae("p",{class:"text-center text-[10px] mt-4 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}}," 正在扫描项目... ",-1))])):e.projects.length===0?(We(),mn(y,{key:1,description:"未发现 SillySpec 项目",style:{padding:"48px 0"}})):(We(),Xe("div",LU,[(We(!0),Xe(kt,null,or(e.projects,$=>{var P,z;return We(),Xe("div",{key:$.path,class:yr(["relative rounded-md cursor-pointer transition-all duration-150 overflow-hidden group"]),style:$n({background:s($)?"rgba(217,119,6,0.06)":"transparent",borderLeft:s($)?"2px solid #D97706":"2px solid transparent"}),onMouseenter:F=>F.currentTarget.style.background=s($)?"rgba(217,119,6,0.08)":"rgba(255,255,255,0.02)",onMouseleave:F=>F.currentTarget.style.background=s($)?"rgba(217,119,6,0.06)":"transparent",onClick:F=>g.$emit("select",$)},[Ae("div",jU,[Ae("div",VU,[Ae("div",WU,[Ae("h3",{class:"text-[12px] font-medium truncate transition-colors duration-150 font-[JetBrains_Mono,monospace]",style:$n({color:s($)?"#D97706":"#1C1C1E"})},Ct($.name),5),Ae("p",UU,Ct($.path),1)]),(P=$.state)!=null&&P.currentStage?(We(),mn(R,{key:0,type:d(u($)),size:"small",bordered:!1,round:""},{default:Rn(()=>[On(Ct(f($)),1)]),_:2},1032,["type"])):Ft("",!0)]),(z=$.state)!=null&&z.progress?(We(),Xe("div",KU,[Ae("div",{class:"h-full rounded-full transition-all duration-500 progress-gradient",style:$n({width:v($)+"%"})},null,4)])):Ft("",!0)])],44,HU)}),128))]))]),Ae("div",qU,[Ae("div",YU,[Ae("span",GU,Ct(e.projects.length)+" 个项目",1),b[11]||(b[11]=Ae("kbd",{class:"text-[9px] px-1.5 py-0.5 rounded font-mono-log",style:{color:"#6B7280",background:"#FFFFFF",border:"1px solid #E5E5EA"}},"⌘K",-1))])])])}}},ZU=fu(XU,[["__scopeId","data-v-b5f771a9"]]),rd={__name:"StageBadge",props:{status:{type:String,default:"pending"},label:{type:String,default:""},size:{type:String,default:"md"}},setup(e){const t=e,n=S(()=>t.label?t.label:{completed:"done","in-progress":"running",blocked:"blocked",failed:"error"}[t.status]||""),r=S(()=>t.size==="sm"?"px-1.5 py-0.5":"px-2 py-1"),o=S(()=>{const l={completed:{background:"rgba(22,163,74,0.1)",color:"#16A34A"},"in-progress":{background:"rgba(251,191,36,0.1)",color:"#D97706"},blocked:{background:"rgba(251,146,60,0.1)",color:"#EA580C"},failed:{background:"rgba(239,68,68,0.1)",color:"#DC2626"},pending:{background:"rgba(82,82,82,0.15)",color:"#6B7280"}};return l[t.status]||l.pending}),i=S(()=>t.status==="in-progress"?"animate-pulse-dot":""),a=S(()=>({background:{completed:"#16A34A","in-progress":"#D97706",blocked:"#EA580C",failed:"#DC2626",pending:"#6B7280"}[t.status]||"#6B7280"}));return(l,s)=>(We(),Xe("span",{class:yr(["inline-flex items-center gap-1.5 rounded-sm text-[10px] font-medium font-[JetBrains_Mono,monospace] uppercase tracking-wider transition-colors duration-150",r.value]),style:$n(o.value)},[Ae("span",{class:yr(["w-1 h-1 rounded-full",i.value]),style:$n(a.value)},null,6),Ae("span",null,Ct(n.value),1)],6))}},JU={class:"pl-4 pr-4 py-3"},QU={class:"flex items-center gap-2"},eK={class:"mt-1.5 text-[11px] line-clamp-2",style:{color:"#636366"}},tK={key:1,class:"mt-2 space-y-1"},nK={key:0,class:"text-[11px]",style:{color:"#1C1C1E"}},rK={key:1,class:"text-[11px]",style:{color:"#1C1C1E"}},oK={key:2,class:"text-[11px] italic",style:{color:"#636366"}},iK={key:2,class:"mt-1 text-[10px] font-mono-log",style:{color:"#6B7280"}},aK={__name:"StepCard",props:{step:{type:Object,required:!0},isActive:{type:Boolean,default:!1},isClickable:{type:Boolean,default:!0}},emits:["select"],setup(e,{emit:t}){const n=e,r=t,o=D(!1),i=S(()=>{const d={completed:"#16A34A","in-progress":"#D97706",blocked:"#EA580C",failed:"#DC2626",pending:"#E5E5EA"};return d[n.step.status]||d.pending}),a=S(()=>({background:n.isActive?"rgba(217,119,6,0.08)":o.value?"rgba(0,0,0,0.02)":"#FFFFFF",border:`1px solid ${n.isActive?"rgba(251,191,36,0.2)":"#F0F0F3"}`})),l=S(()=>({completed:"完成","in-progress":"进行中",blocked:"阻塞",failed:"失败",pending:"待办"})[n.step.status]||"待办");function s(){n.isClickable&&r("select",n.step)}return(d,u)=>(We(),Xe("div",{class:yr(["group relative rounded-md cursor-pointer transition-all duration-200"]),style:$n(a.value),onMouseenter:u[0]||(u[0]=f=>o.value=!0),onMouseleave:u[1]||(u[1]=f=>o.value=!1),onClick:s},[Ae("div",{class:"absolute left-0 top-0 bottom-0 w-[2px]",style:$n({background:i.value})},null,4),Ae("div",JU,[Ae("div",QU,[Ae("h3",{class:"text-[12px] font-medium transition-colors duration-150",style:$n({color:e.isActive?"#D97706":"#1C1C1E",fontFamily:"'JetBrains Mono', monospace"})},Ct(e.step.title||e.step.name),5),e.step.status?(We(),mn(rd,{key:0,status:e.step.status,label:l.value},null,8,["status","label"])):Ft("",!0)]),e.step.summary||e.step.description?(We(),Xe("div",{key:0,class:"transition-all duration-200",style:$n({maxHeight:o.value?"80px":"0",opacity:o.value?1:0,overflow:"hidden"})},[Ae("p",eK,Ct(e.step.summary||e.step.description),1)],4)):Ft("",!0),e.isActive?(We(),Xe("div",tK,[e.step.conclusion?(We(),Xe("p",nK,[u[2]||(u[2]=Ae("span",{style:{color:"#D97706","font-weight":"600"}},"结论:",-1)),On(" "+Ct(e.step.conclusion),1)])):Ft("",!0),e.step.decision?(We(),Xe("p",rK,[u[3]||(u[3]=Ae("span",{style:{color:"#D97706","font-weight":"600"}},"决策:",-1)),On(" "+Ct(e.step.decision),1)])):Ft("",!0),e.step.userQuery?(We(),Xe("p",oK,' "'+Ct(e.step.userQuery)+'" ',1)):Ft("",!0)])):Ft("",!0),e.step.duration?(We(),Xe("div",iK,Ct(e.step.duration),1)):Ft("",!0)])],36))}},lK=fu(aK,[["__scopeId","data-v-fac2f74c"]]),sK={class:"relative"},dK={class:"flex items-start gap-3"},cK={class:"flex flex-col items-center flex-shrink-0 pt-1.5"},uK={class:"flex-1 min-w-0 -mt-0.5"},fK={class:"flex items-center gap-2.5 mb-3"},hK={class:"space-y-1"},vK={key:0,class:"text-[11px] italic py-1",style:{color:"#6B7280"}},Ed={__name:"PipelineStage",props:{name:{type:String,required:!0},title:{type:String,required:!0},steps:{type:Array,default:()=>[]},status:{type:String,default:"pending"},isActive:{type:Boolean,default:!1},activeStep:{type:Object,default:null}},emits:["select-step"],setup(e,{emit:t}){const n=e,r=S(()=>{if(n.isActive)return{background:"#D97706",boxShadow:"0 0 8px rgba(251,191,36,0.4)"};const i={completed:"#16A34A","in-progress":"#D97706",blocked:"#EA580C",failed:"#DC2626",pending:"#E5E5EA"};return{background:i[n.status]||i.pending}});function o(i){var a,l;return((a=n.activeStep)==null?void 0:a.id)===i.id||((l=n.activeStep)==null?void 0:l.name)===i.name}return(i,a)=>(We(),Xe("div",sK,[Ae("div",dK,[Ae("div",cK,[Ae("div",{class:yr(["w-2 h-2 transition-colors duration-200",{"animate-pulse-dot":e.isActive||e.status==="in-progress"}]),style:$n(r.value)},null,6)]),Ae("div",uK,[Ae("div",fK,[Ae("span",{class:"text-[12px] font-semibold font-[JetBrains_Mono,monospace] tracking-tight",style:$n({color:e.isActive?"#D97706":"#1C1C1E"})},Ct(e.title),5),Dt(rd,{status:e.status},null,8,["status"])]),Ae("div",hK,[e.steps.length===0?(We(),Xe("div",vK," No steps yet ")):Ft("",!0),(We(!0),Xe(kt,null,or(e.steps,l=>(We(),mn(lK,{key:l.id||l.name,step:l,"is-active":o(l),onSelect:a[0]||(a[0]=s=>i.$emit("select-step",s))},null,8,["step","is-active"]))),128))])])])]))}},gK={class:"flex flex-col h-full"},pK={__name:"DocTree",props:{groups:{type:Array,default:()=>[]},selectedFile:{type:Object,default:null}},emits:["select-file"],setup(e,{emit:t}){const n=e,r=t,o=S(()=>{var s;return(s=n.selectedFile)!=null&&s.path?[n.selectedFile.path]:[]}),i={设计文档:"📋",实现计划:"📐",归档:"📦"," proposals":"📝"},a=S(()=>n.groups.map(s=>({key:`group-${s.key}`,label:s.project?`${s.label} (${s.project})`:s.label,prefix:()=>i[s.label]||"📄",children:s.files.map(d=>({key:d.path,label:d.title,prefix:()=>"📄",data:d}))})));function l(s,d){var u;(u=d==null?void 0:d[0])!=null&&u.data&&r("select-file",d[0].data)}return(s,d)=>{const u=pn("n-empty"),f=pn("n-tree");return We(),Xe("div",gK,[e.groups.length===0?(We(),mn(u,{key:0,description:"暂无文档",style:{margin:"auto"}})):(We(),mn(f,{key:1,data:a.value,"selected-keys":o.value,"default-expand-all":!0,selectable:"","block-line":"","onUpdate:selectedKeys":l,style:{padding:"8px 12px"}},null,8,["data","selected-keys"]))])}}};function Cg(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Da=Cg();function X2(e){Da=e}var la={exec:()=>null};function tn(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(o,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(br.caret,"$1"),n=n.replace(o,a),r},getRegex:()=>new RegExp(n,t)};return r}var mK=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),br={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}>`)},bK=/^(?:[ \t]*(?:\n|$))+/,xK=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,yK=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,od=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,wK=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Sg=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Z2=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,J2=tn(Z2).replace(/bull/g,Sg).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(),CK=tn(Z2).replace(/bull/g,Sg).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(),kg=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,SK=/^[^\n]+/,Rg=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,kK=tn(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Rg).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),RK=tn(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Sg).getRegex(),hu="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",$g=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,$K=tn("^ {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",$g).replace("tag",hu).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Q2=tn(kg).replace("hr",od).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",hu).getRegex(),PK=tn(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Q2).getRegex(),Pg={blockquote:PK,code:xK,def:kK,fences:yK,heading:wK,hr:od,html:$K,lheading:J2,list:RK,newline:bK,paragraph:Q2,table:la,text:SK},b0=tn("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",od).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",hu).getRegex(),zK={...Pg,lheading:CK,table:b0,paragraph:tn(kg).replace("hr",od).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",b0).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",hu).getRegex()},TK={...Pg,html:tn(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",$g).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:la,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:tn(kg).replace("hr",od).replace("heading",` *#{1,6} *[^
7389
7389
  ]`).replace("lheading",J2).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},_K=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,OK=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,eR=/^( {2,}|\\)\n(?!\s*$)/,FK=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Tl=/[\p{P}\p{S}]/u,vu=/[\s\p{P}\p{S}]/u,zg=/[^\s\p{P}\p{S}]/u,MK=tn(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,vu).getRegex(),tR=/(?!~)[\p{P}\p{S}]/u,IK=/(?!~)[\s\p{P}\p{S}]/u,AK=/(?:[^\s\p{P}\p{S}]|~)/u,DK=tn(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",mK?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),nR=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,BK=tn(nR,"u").replace(/punct/g,Tl).getRegex(),EK=tn(nR,"u").replace(/punct/g,tR).getRegex(),rR="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",NK=tn(rR,"gu").replace(/notPunctSpace/g,zg).replace(/punctSpace/g,vu).replace(/punct/g,Tl).getRegex(),LK=tn(rR,"gu").replace(/notPunctSpace/g,AK).replace(/punctSpace/g,IK).replace(/punct/g,tR).getRegex(),HK=tn("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,zg).replace(/punctSpace/g,vu).replace(/punct/g,Tl).getRegex(),jK=tn(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Tl).getRegex(),VK="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",WK=tn(VK,"gu").replace(/notPunctSpace/g,zg).replace(/punctSpace/g,vu).replace(/punct/g,Tl).getRegex(),UK=tn(/\\(punct)/,"gu").replace(/punct/g,Tl).getRegex(),KK=tn(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),qK=tn($g).replace("(?:-->|$)","-->").getRegex(),YK=tn("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",qK).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),$c=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,GK=tn(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",$c).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),oR=tn(/^!?\[(label)\]\[(ref)\]/).replace("label",$c).replace("ref",Rg).getRegex(),iR=tn(/^!?\[(ref)\](?:\[\])?/).replace("ref",Rg).getRegex(),XK=tn("reflink|nolink(?!\\()","g").replace("reflink",oR).replace("nolink",iR).getRegex(),x0=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Tg={_backpedal:la,anyPunctuation:UK,autolink:KK,blockSkip:DK,br:eR,code:OK,del:la,delLDelim:la,delRDelim:la,emStrongLDelim:BK,emStrongRDelimAst:NK,emStrongRDelimUnd:HK,escape:_K,link:GK,nolink:iR,punctuation:MK,reflink:oR,reflinkSearch:XK,tag:YK,text:FK,url:la},ZK={...Tg,link:tn(/^!?\[(label)\]\((.*?)\)/).replace("label",$c).getRegex(),reflink:tn(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",$c).getRegex()},Ih={...Tg,emStrongRDelimAst:LK,emStrongLDelim:EK,delLDelim:jK,delRDelim:WK,url:tn(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",x0).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:tn(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",x0).getRegex()},JK={...Ih,br:tn(eR).replace("{2,}","*").getRegex(),text:tn(Ih.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},Nd={normal:Pg,gfm:zK,pedantic:TK},Yl={normal:Tg,gfm:Ih,breaks:JK,pedantic:ZK},QK={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},y0=e=>QK[e];function Co(e,t){if(t){if(br.escapeTest.test(e))return e.replace(br.escapeReplace,y0)}else if(br.escapeTestNoEncode.test(e))return e.replace(br.escapeReplaceNoEncode,y0);return e}function w0(e){try{e=encodeURI(e).replace(br.percentDecode,"%")}catch{return null}return e}function C0(e,t){var i;let n=e.replace(br.findPipe,(a,l,s)=>{let d=!1,u=l;for(;--u>=0&&s[u]==="\\";)d=!d;return d?"|":" |"}),r=n.split(br.splitPipe),o=0;if(r[0].trim()||r.shift(),r.length>0&&!((i=r.at(-1))!=null&&i.trim())&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;o<r.length;o++)r[o]=r[o].trim().replace(br.slashPipe,"|");return r}function Gl(e,t,n){let r=e.length;if(r===0)return"";let o=0;for(;o<r&&e.charAt(r-o-1)===t;)o++;return e.slice(0,r-o)}function eq(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function tq(e,t=0){let n=t,r="";for(let o of e)if(o===" "){let i=4-n%4;r+=" ".repeat(i),n+=i}else r+=o,n++;return r}function S0(e,t,n,r,o){let i=t.href,a=t.title||null,l=e[1].replace(o.other.outputLinkReplace,"$1");r.state.inLink=!0;let s={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:i,title:a,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,s}function nq(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let o=r[1];return t.split(`
7390
7390
  `).map(i=>{let a=i.match(n.other.beginningSpace);if(a===null)return i;let[l]=a;return l.length>=o.length?i.slice(o.length):i}).join(`
7391
7391
  `)}var Pc=class{constructor(e){Je(this,"options");Je(this,"rules");Je(this,"lexer");this.options=e||Da}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:Gl(n,`
@@ -7443,4 +7443,4 @@ ${this.parser.parse(e)}</blockquote>
7443
7443
  ${e}</tr>
7444
7444
  `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
7445
7445
  `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Co(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),o=w0(e);if(o===null)return r;e=o;let i='<a href="'+e+'"';return t&&(i+=' title="'+Co(t)+'"'),i+=">"+r+"</a>",i}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let o=w0(e);if(o===null)return Co(n);e=o;let i=`<img src="${e}" alt="${Co(n)}"`;return t&&(i+=` title="${Co(t)}"`),i+=">",i}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:Co(e.text)}},_g=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},lo=class Dh{constructor(t){Je(this,"options");Je(this,"renderer");Je(this,"textRenderer");this.options=t||Da,this.options.renderer=this.options.renderer||new zc,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _g}static parse(t,n){return new Dh(n).parse(t)}static parseInline(t,n){return new Dh(n).parseInline(t)}parse(t){var r,o;this.renderer.parser=this;let n="";for(let i=0;i<t.length;i++){let a=t[i];if((o=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&o[a.type]){let s=a,d=this.options.extensions.renderers[s.type].call({parser:this},s);if(d!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(s.type)){n+=d||"";continue}}let l=a;switch(l.type){case"space":{n+=this.renderer.space(l);break}case"hr":{n+=this.renderer.hr(l);break}case"heading":{n+=this.renderer.heading(l);break}case"code":{n+=this.renderer.code(l);break}case"table":{n+=this.renderer.table(l);break}case"blockquote":{n+=this.renderer.blockquote(l);break}case"list":{n+=this.renderer.list(l);break}case"checkbox":{n+=this.renderer.checkbox(l);break}case"html":{n+=this.renderer.html(l);break}case"def":{n+=this.renderer.def(l);break}case"paragraph":{n+=this.renderer.paragraph(l);break}case"text":{n+=this.renderer.text(l);break}default:{let s='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return n}parseInline(t,n=this.renderer){var o,i;this.renderer.parser=this;let r="";for(let a=0;a<t.length;a++){let l=t[a];if((i=(o=this.options.extensions)==null?void 0:o.renderers)!=null&&i[l.type]){let d=this.options.extensions.renderers[l.type].call({parser:this},l);if(d!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(l.type)){r+=d||"";continue}}let s=l;switch(s.type){case"escape":{r+=n.text(s);break}case"html":{r+=n.html(s);break}case"link":{r+=n.link(s);break}case"image":{r+=n.image(s);break}case"checkbox":{r+=n.checkbox(s);break}case"strong":{r+=n.strong(s);break}case"em":{r+=n.em(s);break}case"codespan":{r+=n.codespan(s);break}case"br":{r+=n.br(s);break}case"del":{r+=n.del(s);break}case"text":{r+=n.text(s);break}default:{let d='Token with "'+s.type+'" type was not found.';if(this.options.silent)return console.error(d),"";throw new Error(d)}}}return r}},Ld,ns=(Ld=class{constructor(e){Je(this,"options");Je(this,"block");this.options=e||Da}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?ao.lex:ao.lexInline}provideParser(e=this.block){return e?lo.parse:lo.parseInline}},Je(Ld,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),Je(Ld,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),Ld),rq=class{constructor(...e){Je(this,"defaults",Cg());Je(this,"options",this.setOptions);Je(this,"parse",this.parseMarkdown(!0));Je(this,"parseInline",this.parseMarkdown(!1));Je(this,"Parser",lo);Je(this,"Renderer",zc);Je(this,"TextRenderer",_g);Je(this,"Lexer",ao);Je(this,"Tokenizer",Pc);Je(this,"Hooks",ns);this.use(...e)}walkTokens(e,t){var r,o;let n=[];for(let i of e)switch(n=n.concat(t.call(this,i)),i.type){case"table":{let a=i;for(let l of a.header)n=n.concat(this.walkTokens(l.tokens,t));for(let l of a.rows)for(let s of l)n=n.concat(this.walkTokens(s.tokens,t));break}case"list":{let a=i;n=n.concat(this.walkTokens(a.items,t));break}default:{let a=i;(o=(r=this.defaults.extensions)==null?void 0:r.childTokens)!=null&&o[a.type]?this.defaults.extensions.childTokens[a.type].forEach(l=>{let s=a[l].flat(1/0);n=n.concat(this.walkTokens(s,t))}):a.tokens&&(n=n.concat(this.walkTokens(a.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(o=>{if(!o.name)throw new Error("extension name required");if("renderer"in o){let i=t.renderers[o.name];i?t.renderers[o.name]=function(...a){let l=o.renderer.apply(this,a);return l===!1&&(l=i.apply(this,a)),l}:t.renderers[o.name]=o.renderer}if("tokenizer"in o){if(!o.level||o.level!=="block"&&o.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=t[o.level];i?i.unshift(o.tokenizer):t[o.level]=[o.tokenizer],o.start&&(o.level==="block"?t.startBlock?t.startBlock.push(o.start):t.startBlock=[o.start]:o.level==="inline"&&(t.startInline?t.startInline.push(o.start):t.startInline=[o.start]))}"childTokens"in o&&o.childTokens&&(t.childTokens[o.name]=o.childTokens)}),r.extensions=t),n.renderer){let o=this.defaults.renderer||new zc(this.defaults);for(let i in n.renderer){if(!(i in o))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let a=i,l=n.renderer[a],s=o[a];o[a]=(...d)=>{let u=l.apply(o,d);return u===!1&&(u=s.apply(o,d)),u||""}}r.renderer=o}if(n.tokenizer){let o=this.defaults.tokenizer||new Pc(this.defaults);for(let i in n.tokenizer){if(!(i in o))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let a=i,l=n.tokenizer[a],s=o[a];o[a]=(...d)=>{let u=l.apply(o,d);return u===!1&&(u=s.apply(o,d)),u}}r.tokenizer=o}if(n.hooks){let o=this.defaults.hooks||new ns;for(let i in n.hooks){if(!(i in o))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let a=i,l=n.hooks[a],s=o[a];ns.passThroughHooks.has(i)?o[a]=d=>{if(this.defaults.async&&ns.passThroughHooksRespectAsync.has(i))return(async()=>{let f=await l.call(o,d);return s.call(o,f)})();let u=l.call(o,d);return s.call(o,u)}:o[a]=(...d)=>{if(this.defaults.async)return(async()=>{let f=await l.apply(o,d);return f===!1&&(f=await s.apply(o,d)),f})();let u=l.apply(o,d);return u===!1&&(u=s.apply(o,d)),u}}r.hooks=o}if(n.walkTokens){let o=this.defaults.walkTokens,i=n.walkTokens;r.walkTokens=function(a){let l=[];return l.push(i.call(this,a)),o&&(l=l.concat(o.call(this,a))),l}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return ao.lex(e,t??this.defaults)}parser(e,t){return lo.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},o={...this.defaults,...r},i=this.onError(!!o.silent,!!o.async);if(this.defaults.async===!0&&r.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(o.hooks&&(o.hooks.options=o,o.hooks.block=e),o.async)return(async()=>{let a=o.hooks?await o.hooks.preprocess(t):t,l=await(o.hooks?await o.hooks.provideLexer(e):e?ao.lex:ao.lexInline)(a,o),s=o.hooks?await o.hooks.processAllTokens(l):l;o.walkTokens&&await Promise.all(this.walkTokens(s,o.walkTokens));let d=await(o.hooks?await o.hooks.provideParser(e):e?lo.parse:lo.parseInline)(s,o);return o.hooks?await o.hooks.postprocess(d):d})().catch(i);try{o.hooks&&(t=o.hooks.preprocess(t));let a=(o.hooks?o.hooks.provideLexer(e):e?ao.lex:ao.lexInline)(t,o);o.hooks&&(a=o.hooks.processAllTokens(a)),o.walkTokens&&this.walkTokens(a,o.walkTokens);let l=(o.hooks?o.hooks.provideParser(e):e?lo.parse:lo.parseInline)(a,o);return o.hooks&&(l=o.hooks.postprocess(l)),l}catch(a){return i(a)}}}onError(e,t){return n=>{if(n.message+=`
7446
- Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+Co(n.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Pa=new rq;function cn(e,t){return Pa.parse(e,t)}cn.options=cn.setOptions=function(e){return Pa.setOptions(e),cn.defaults=Pa.defaults,X2(cn.defaults),cn};cn.getDefaults=Cg;cn.defaults=Da;cn.use=function(...e){return Pa.use(...e),cn.defaults=Pa.defaults,X2(cn.defaults),cn};cn.walkTokens=function(e,t){return Pa.walkTokens(e,t)};cn.parseInline=Pa.parseInline;cn.Parser=lo;cn.parser=lo.parse;cn.Renderer=zc;cn.TextRenderer=_g;cn.Lexer=ao;cn.lexer=ao.lex;cn.Tokenizer=Pc;cn.Hooks=ns;cn.parse=cn;cn.options;cn.setOptions;cn.use;cn.walkTokens;cn.parseInline;lo.parse;ao.lex;const oq={class:"h-full overflow-y-auto px-6 py-4"},iq={key:0,class:"flex items-center justify-center h-full"},aq={key:1,class:"flex items-center justify-center h-full"},lq=["innerHTML"],sq={__name:"DocPreview",props:{content:{type:String,default:""},loading:{type:Boolean,default:!1}},setup(e){const t=e;cn.setOptions({breaks:!0,gfm:!0});const n=S(()=>t.content?cn.parse(t.content):"");return(r,o)=>(We(),Xe("div",oq,[!e.content&&!e.loading?(We(),Xe("div",iq,[...o[0]||(o[0]=[Ae("p",{class:"text-[12px] font-[JetBrains_Mono,monospace]",style:{color:"#636366"}},"选择一个文档查看内容",-1)])])):e.loading?(We(),Xe("div",aq,[...o[1]||(o[1]=[Ae("p",{class:"text-[12px] font-[JetBrains_Mono,monospace]",style:{color:"#636366"}},"加载中...",-1)])])):(We(),Xe("div",{key:2,class:"doc-preview",innerHTML:n.value},null,8,lq))]))}},dq=fu(sq,[["__scopeId","data-v-fc57afbe"]]),cq={class:"flex flex-col h-full",style:{background:"#F5F5F7"}},uq={class:"px-6 pt-4 pb-0",style:{"border-bottom":"1px solid #F0F0F3"}},fq={class:"flex items-center gap-6"},hq={class:"text-[11px] font-semibold uppercase tracking-[0.2em] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},vq={key:0,class:"flex flex-col flex-1 overflow-hidden"},gq={key:0,class:"px-6 pt-4 pb-2"},pq={class:"text-[12px] font-[JetBrains_Mono,monospace]",style:{color:"#636366"}},mq={style:{color:"#D97706"}},bq={key:2,class:"flex-1 overflow-y-auto px-6 pb-5 space-y-5"},xq={key:0,class:"flex items-center pl-[3px]"},yq={key:1,class:"flex items-center pl-[3px]"},wq={key:2,class:"flex items-center pl-[3px]"},Cq={key:3,style:{"border-top":"1px solid #F0F0F3",background:"rgba(0,0,0,0.03)"}},Sq={class:"px-6 py-2.5 flex items-center justify-between"},kq={class:"text-[10px] font-mono-log",style:{color:"#D1D1D6"}},Rq={class:"px-6 pb-3 max-h-32 overflow-y-auto"},$q={class:"text-[11px]",style:{color:"#636366"}},Pq={class:"text-[10px] font-mono-log",style:{color:"#D1D1D6"}},zq={key:0,class:"text-[10px] py-1",style:{color:"#D1D1D6"}},Tq={key:1,class:"flex-1 flex overflow-hidden"},_q={class:"w-[200px] flex-shrink-0 overflow-hidden",style:{"border-right":"1px solid #F0F0F3"}},Oq={class:"flex-1 overflow-hidden"},Fq={__name:"PipelineView",props:{project:{type:Object,default:null},activeStep:{type:Object,default:null},activeTab:{type:String,default:"pipeline"},docs:{type:Object,default:()=>({groups:[]})},selectedDocFile:{type:Object,default:null},docContent:{type:String,default:""},docLoading:{type:Boolean,default:!1}},emits:["select-step","switch-tab","select-doc-file"],setup(e,{emit:t}){const n=e,r=t,o=S(()=>{var h,g;return((g=(h=n.project)==null?void 0:h.state)==null?void 0:g.currentStage)||""}),i=S(()=>{var h,g;return((g=(h=n.project)==null?void 0:h.state)==null?void 0:g.progress)||{}}),a=S(()=>i.value.stages||{}),l={brainstorm:"头脑风暴",plan:"规划",execute:"执行",verify:"验证"},s=S(()=>{var g;if(!((g=n.project)!=null&&g.state))return[];const h=[];for(const[b,m]of Object.entries(i.value.stages||{})){const x=l[b]||b;m.status==="completed"?h.push({time:m.completedAt?d(m.completedAt):"--:--",status:"completed",description:`${x} 已完成`}):m.status==="in-progress"&&h.push({time:"--:--",status:"in-progress",description:`${x} 运行中`})}return h.reverse()});function d(h){try{const g=new Date(h);return`${String(g.getHours()).padStart(2,"0")}:${String(g.getMinutes()).padStart(2,"0")}`}catch{return"--:--"}}function u(h){return!!a.value[h]}function f(h){var g;return((g=a.value[h])==null?void 0:g.steps)||[]}function v(h){const g=a.value[h];if(!g)return"pending";const b=g.steps||[];return b.some(m=>m.status==="failed")?"failed":b.some(m=>m.status==="blocked")?"blocked":b.some(m=>m.status==="in-progress")?"in-progress":b.every(m=>m.status==="completed")?"completed":"pending"}function p(h){r("select-step",h)}return(h,g)=>{var y,R,$;const b=pn("n-tab"),m=pn("n-tabs"),x=pn("n-empty"),k=pn("n-timeline-item"),C=pn("n-timeline");return We(),Xe("div",cq,[Ae("div",uq,[Ae("div",fq,[Ae("h2",hq,Ct(((y=e.project)==null?void 0:y.name)||"项目"),1),Dt(m,{value:e.activeTab,type:"segment",size:"small","onUpdate:value":g[0]||(g[0]=P=>h.$emit("switch-tab",P)),style:{"max-width":"200px"}},{default:Rn(()=>[Dt(b,{name:"pipeline"},{default:Rn(()=>[...g[2]||(g[2]=[On("流水线",-1)])]),_:1}),Dt(b,{name:"docs"},{default:Rn(()=>[...g[3]||(g[3]=[On("文档",-1)])]),_:1})]),_:1},8,["value"])])]),e.activeTab==="pipeline"?(We(),Xe("div",vq,[e.project&&o.value?(We(),Xe("div",gq,[Ae("p",pq,[Ae("span",mq,Ct(o.value),1)])])):Ft("",!0),!e.project||!e.project.state?(We(),mn(x,{key:1,description:"选择一个项目查看流水线",style:{margin:"auto"}})):(We(),Xe("div",bq,[Dt(Ed,{name:"brainstorm",title:"头脑风暴",steps:f("brainstorm"),status:v("brainstorm"),"is-active":o.value==="brainstorm","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"]),u("plan")?(We(),Xe("div",xq,[...g[4]||(g[4]=[Ae("div",{class:"w-px h-4",style:{background:"#F0F0F3"}},null,-1)])])):Ft("",!0),Dt(Ed,{name:"plan",title:"规划",steps:f("plan"),status:v("plan"),"is-active":o.value==="plan","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"]),u("execute")?(We(),Xe("div",yq,[...g[5]||(g[5]=[Ae("div",{class:"w-px h-4",style:{background:"#F0F0F3"}},null,-1)])])):Ft("",!0),Dt(Ed,{name:"execute",title:"执行",steps:f("execute"),status:v("execute"),"is-active":o.value==="execute","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"]),u("verify")?(We(),Xe("div",wq,[...g[6]||(g[6]=[Ae("div",{class:"w-px h-4",style:{background:"#F0F0F3"}},null,-1)])])):Ft("",!0),Dt(Ed,{name:"verify",title:"验证",steps:f("verify"),status:v("verify"),"is-active":o.value==="verify","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"])])),($=(R=e.project)==null?void 0:R.state)!=null&&$.progress?(We(),Xe("div",Cq,[Ae("div",Sq,[g[7]||(g[7]=Ae("div",{class:"text-[9px] font-semibold uppercase tracking-[0.25em] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"活动日志",-1)),Ae("div",kq,Ct(s.value.length),1)]),Ae("div",Rq,[Dt(C,{size:"small"},{default:Rn(()=>[(We(!0),Xe(kt,null,or(s.value,(P,z)=>(We(),mn(k,{key:z,type:P.status==="completed"?"success":"warning"},{default:Rn(()=>[Ae("span",$q,Ct(P.description),1)]),time:Rn(()=>[Ae("span",Pq,Ct(P.time),1)]),_:2},1032,["type"]))),128))]),_:1}),s.value.length===0?(We(),Xe("div",zq,"暂无活动记录")):Ft("",!0)])])):Ft("",!0)])):Ft("",!0),e.activeTab==="docs"?(We(),Xe("div",Tq,[Ae("div",_q,[Dt(pK,{groups:e.docs.groups,"selected-file":e.selectedDocFile,onSelectFile:g[1]||(g[1]=P=>h.$emit("select-doc-file",P))},null,8,["groups","selected-file"])]),Ae("div",Oq,[Dt(dq,{content:e.docContent,loading:e.docLoading},null,8,["content","loading"])])])):Ft("",!0)])}}},Mq={class:"flex flex-col h-full",style:{background:"#F5F5F7"}},Iq={class:"px-3 py-2 flex items-center gap-2",style:{"border-bottom":"1px solid #F0F0F3"}},Aq={key:0,class:"flex items-center justify-center h-full"},Dq={class:"font-mono-log",style:{color:"#E5E5EA"}},Bq={key:1,class:"space-y-px"},Eq={style:{color:"#D1D1D6"},class:"select-none"},Nq={class:"px-3 py-1 flex items-center justify-between text-[9px] font-mono-log",style:{"border-top":"1px solid #F0F0F3",background:"#F5F5F7",color:"#D1D1D6"}},Lq={key:0,style:{color:"#EA580C"}},Hq={__name:"LogStream",props:{logs:{type:Array,default:()=>[]}},emits:["clear"],setup(e,{emit:t}){const n=e,r=t,o=D(""),i=D(!0),a=D(null),l=S(()=>{if(!o.value)return n.logs;const b=o.value.toLowerCase();return n.logs.filter(m=>m.content.toLowerCase().includes(b))});function s(b){return b?new Date(b).toLocaleTimeString("zh-CN",{hour12:!1}):""}function d(b){return b?b.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):""}function u(b){return b==="error"?"rgba(239,68,68,0.05)":b==="warn"?"rgba(251,146,60,0.05)":"transparent"}function f(b){return b==="error"?"#DC2626":b==="warn"?"#EA580C":b==="debug"?"#6B7280":"#636366"}function v(){r("clear")}function p(){i.value=!i.value,i.value&&g()}function h(){if(!a.value)return;const{scrollTop:b,scrollHeight:m,clientHeight:x}=a.value,k=m-b-x<50;!k&&i.value?i.value=!1:k&&!i.value&&(i.value=!0)}function g(){It(()=>{a.value&&i.value&&(a.value.scrollTop=a.value.scrollHeight)})}return dt(()=>n.logs.length,()=>{g()},{flush:"post"}),dt(a,()=>{g()},{once:!0}),(b,m)=>{const x=pn("n-input"),k=pn("n-button");return We(),Xe("div",Mq,[Ae("div",Iq,[Dt(x,{value:o.value,"onUpdate:value":m[0]||(m[0]=C=>o.value=C),size:"tiny",placeholder:"过滤日志...",clearable:"",style:{flex:"1"}},null,8,["value"]),Dt(k,{size:"tiny",onClick:v},{default:Rn(()=>[...m[1]||(m[1]=[On("清空",-1)])]),_:1}),Dt(k,{size:"tiny",type:i.value?"primary":"default",onClick:p},{default:Rn(()=>[On(Ct(i.value?"自动":"暂停"),1)]),_:1},8,["type"])]),Ae("div",{ref_key:"logContainer",ref:a,class:"flex-1 overflow-y-auto px-2 py-1.5 font-mono-log text-[10px]",style:{background:"#F0F0F3"},onScroll:h},[l.value.length===0?(We(),Xe("div",Aq,[Ae("span",Dq,Ct(e.logs.length===0?"暂无日志":"无匹配"),1)])):(We(),Xe("div",Bq,[(We(!0),Xe(kt,null,or(l.value,C=>(We(),Xe("div",{key:C.id,class:"px-1.5 py-px rounded-sm",style:$n({background:u(C.type)})},[Ae("span",Eq,"["+Ct(s(C.timestamp))+"]",1),Ae("span",{style:$n({color:f(C.type)})},Ct(d(C.content)),5)],4))),128))]))],544),Ae("div",Nq,[Ae("span",null,Ct(l.value.length)+"/"+Ct(e.logs.length),1),i.value?Ft("",!0):(We(),Xe("span",Lq,"已暂停"))])])}}},jq={key:0,class:"px-4 py-3"},Vq={class:"mb-4"},Wq={class:"text-[18px] font-bold font-[JetBrains_Mono,monospace]",style:{color:"#D97706"}},Uq={key:0,class:"mb-4"},Kq={class:"space-y-2"},qq={class:"flex items-center gap-2"},Yq={class:"text-[11px] font-mono font-semibold",style:{color:"#D97706"}},Gq={class:"text-[11px] flex-1 truncate",style:{color:"#1C1C1E"}},Xq={class:"flex items-center gap-2 mt-1 text-[10px]",style:{color:"#6B7280"}},Zq={key:1},Jq={class:"space-y-1"},Qq={class:"truncate",style:{color:"#1C1C1E"}},eY={__name:"GitDetail",props:{data:{type:Object,default:null}},setup(e){function t(r){return r.includes("M")?"#F59E0B":r.includes("A")||r==="?"?"#10B981":r.includes("D")?"#EF4444":"#9CA3AF"}function n(r){if(!r)return"";const o=new Date(r),i=Date.now()-o.getTime();return i<6e4?"刚刚":i<36e5?`${Math.floor(i/6e4)} 分钟前`:i<864e5?`${Math.floor(i/36e5)} 小时前`:i<6048e5?`${Math.floor(i/864e5)} 天前`:`${o.getMonth()+1}/${o.getDate()}`}return(r,o)=>{var a,l;const i=pn("n-empty");return e.data?(We(),Xe("div",jq,[Ae("div",Vq,[o[0]||(o[0]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"当前分支",-1)),Ae("div",Wq,Ct(e.data.branch||"—"),1)]),(a=e.data.commits)!=null&&a.length?(We(),Xe("div",Uq,[o[2]||(o[2]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"最近提交",-1)),Ae("div",Kq,[(We(!0),Xe(kt,null,or(e.data.commits,s=>(We(),Xe("div",{key:s.hash,class:"px-3 py-2 rounded-md",style:{background:"#F5F5F7"}},[Ae("div",qq,[Ae("span",Yq,Ct(s.hash),1),Ae("span",Gq,Ct(s.message),1)]),Ae("div",Xq,[Ae("span",null,Ct(s.author),1),o[1]||(o[1]=Ae("span",null,"·",-1)),Ae("span",null,Ct(n(s.date)),1)])]))),128))])])):Ft("",!0),(l=e.data.untracked)!=null&&l.length?(We(),Xe("div",Zq,[o[3]||(o[3]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"未提交文件",-1)),Ae("div",Jq,[(We(!0),Xe(kt,null,or(e.data.untracked,s=>(We(),Xe("div",{key:s.file,class:"flex items-center gap-2 px-2 py-1 rounded text-[11px] font-[JetBrains_Mono,monospace]"},[Ae("span",{class:"font-semibold w-5 text-center",style:$n({color:t(s.status)})},Ct(s.status),5),Ae("span",Qq,Ct(s.file),1)]))),128))])])):Ft("",!0)])):(We(),mn(i,{key:1,description:"无 Git 信息",style:{padding:"48px 0"}}))}}},tY={key:0,class:"px-4 py-3"},nY={key:0,class:"mb-4"},rY={class:"flex flex-wrap gap-2"},oY={key:1,class:"mb-4"},iY={class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},aY={class:"space-y-1"},lY={class:"font-mono font-medium truncate",style:{color:"#1C1C1E"}},sY={class:"font-mono ml-auto flex-shrink-0",style:{color:"#9CA3AF"}},dY={key:2},cY={class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},uY={class:"space-y-1"},fY={class:"font-mono font-medium truncate",style:{color:"#1C1C1E"}},hY={class:"font-mono ml-auto flex-shrink-0",style:{color:"#9CA3AF"}},vY={__name:"TechDetail",props:{data:{type:Object,default:null}},setup(e){const t=e,n=S(()=>t.data?Object.entries(t.data.dependencies||{}):[]),r=S(()=>t.data?Object.entries(t.data.devDependencies||{}):[]);return(o,i)=>{var s;const a=pn("n-tag"),l=pn("n-empty");return e.data?(We(),Xe("div",tY,[(s=e.data.frameworks)!=null&&s.length?(We(),Xe("div",nY,[i[0]||(i[0]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"识别框架",-1)),Ae("div",rY,[(We(!0),Xe(kt,null,or(e.data.frameworks,d=>(We(),mn(a,{key:d,type:"warning",size:"small",round:""},{default:Rn(()=>[On(Ct(d),1)]),_:2},1024))),128))])])):Ft("",!0),n.value.length?(We(),Xe("div",oY,[Ae("h4",iY,"dependencies ("+Ct(n.value.length)+")",1),Ae("div",aY,[(We(!0),Xe(kt,null,or(n.value,([d,u])=>(We(),Xe("div",{key:d,class:"flex items-center gap-2 px-2 py-1 rounded text-[11px]",style:{background:"#F5F5F7"}},[Ae("span",lY,Ct(d),1),Ae("span",sY,Ct(u),1)]))),128))])])):Ft("",!0),r.value.length?(We(),Xe("div",dY,[Ae("h4",cY,"devDependencies ("+Ct(r.value.length)+")",1),Ae("div",uY,[(We(!0),Xe(kt,null,or(r.value,([d,u])=>(We(),Xe("div",{key:d,class:"flex items-center gap-2 px-2 py-1 rounded text-[11px]",style:{background:"#F5F5F7"}},[Ae("span",fY,Ct(d),1),Ae("span",hY,Ct(u),1)]))),128))])])):Ft("",!0)])):(We(),mn(l,{key:1,description:"无依赖信息",style:{padding:"48px 0"}}))}}},gY={key:0,class:"px-4 py-3"},pY={class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},mY={class:"space-y-1"},bY=["onClick"],xY={class:"truncate",style:{color:"#1C1C1E"}},yY={class:"ml-auto flex-shrink-0 font-mono text-[10px]",style:{color:"#9CA3AF"}},wY={class:"flex-shrink-0 text-[10px]",style:{color:"#9CA3AF"}},CY={__name:"DocsDetail",props:{data:{type:Array,default:()=>[]}},emits:["open-file"],setup(e){function t(r){return r?r<1024?r+" B":r<1048576?(r/1024).toFixed(1)+" KB":(r/1048576).toFixed(1)+" MB":"—"}function n(r){if(!r)return"";const o=new Date(r),i=Date.now()-o.getTime();return i<6e4?"刚刚":i<36e5?`${Math.floor(i/6e4)} 分钟前`:i<864e5?`${Math.floor(i/36e5)} 小时前`:i<6048e5?`${Math.floor(i/864e5)} 天前`:`${o.getMonth()+1}/${o.getDate()}`}return(r,o)=>{var a;const i=pn("n-empty");return(a=e.data)!=null&&a.length?(We(),Xe("div",gY,[(We(!0),Xe(kt,null,or(e.data,l=>(We(),Xe("div",{key:l.key,class:"mb-4"},[Ae("h4",pY,Ct(l.icon)+" "+Ct(l.label)+" ("+Ct(l.files.length)+") ",1),Ae("div",mY,[(We(!0),Xe(kt,null,or(l.files,s=>(We(),Xe("div",{key:s.path,class:"flex items-center gap-2 px-2 py-1.5 rounded text-[11px] cursor-pointer hover:bg-[#FEF3C7] transition-colors",onClick:d=>r.$emit("open-file",s)},[o[0]||(o[0]=Ae("svg",{class:"w-3 h-3 flex-shrink-0",fill:"none",stroke:"#9CA3AF",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1)),Ae("span",xY,Ct(s.name),1),Ae("span",yY,Ct(t(s.size)),1),Ae("span",wY,Ct(n(s.mtime)),1)],8,bY))),128))])]))),128))])):(We(),mn(i,{key:1,description:"无文档",style:{padding:"48px 0"}}))}}},SY={class:"px-4 py-3 flex items-center justify-between flex-shrink-0",style:{"border-bottom":"1px solid #F0F0F3"}},kY={class:"text-[11px] font-semibold uppercase tracking-[0.2em] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},RY={class:"flex-1 overflow-y-auto"},$Y={key:4},PY={class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},zY={class:"text-[13px] font-semibold font-[JetBrains_Mono,monospace]",style:{color:"#D97706"}},TY={key:0,class:"mt-2"},_Y={key:0,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},OY={class:"text-[11px] leading-relaxed",style:{color:"#636366"}},FY={key:1,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},MY={class:"text-[11px] leading-relaxed",style:{color:"#1C1C1E"}},IY={key:2,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},AY={class:"text-[11px] leading-relaxed",style:{color:"#1C1C1E"}},DY={key:3,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},BY={class:"px-3 py-2 rounded-md",style:{background:"#F5F5F7",border:"1px solid #F0F0F3"}},EY={class:"text-[11px] italic",style:{color:"#636366"}},NY={key:4,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},LY={class:"space-y-1 text-[11px]",style:{color:"#6B7280"}},HY={key:0},jY={key:1},VY={key:5,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},WY={key:1,class:"mt-2 space-y-1"},UY={class:"truncate"},KY={class:"flex-shrink-0",style:{height:"200px","border-top":"1px solid #F0F0F3"}},qY={__name:"DetailPanel",props:{isOpen:{type:Boolean,default:!0},activeStep:{type:Object,default:null},logs:{type:Array,default:()=>[]},detailType:{type:String,default:null},detailData:{type:[Object,Array],default:null}},emits:["close","clear-logs","open-doc-file"],setup(e,{emit:t}){const n=e,r=t,o=S(()=>n.detailType==="git"?"Git 详情":n.detailType==="tech"?"技术栈详情":n.detailType==="docs"?"文档列表":"详情");function i(){r("close")}function a(l){return l?new Date(l).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}return(l,s)=>{const d=pn("n-button"),u=pn("n-empty"),f=pn("n-code");return We(),Xe("div",{class:yr(["flex flex-col transition-all duration-300",e.isOpen?"w-[340px]":"w-0 opacity-0 overflow-hidden"]),style:{background:"#F5F5F7"}},[Ae("div",SY,[Ae("h2",kY,Ct(e.detailType?o.value:"详情"),1),Dt(d,{quaternary:"",size:"tiny",onClick:i},{icon:Rn(()=>[...s[2]||(s[2]=[Ae("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]),_:1})]),Ae("div",RY,[!e.activeStep&&!e.detailType?(We(),mn(u,{key:0,description:"选择一个步骤",style:{margin:"auto",padding:"48px 0"}})):Ft("",!0),e.detailType==="git"?(We(),mn(eY,{key:1,data:e.detailData},null,8,["data"])):e.detailType==="tech"?(We(),mn(vY,{key:2,data:e.detailData},null,8,["data"])):e.detailType==="docs"?(We(),mn(CY,{key:3,data:e.detailData,onOpenFile:s[0]||(s[0]=v=>l.$emit("open-doc-file",v))},null,8,["data"])):e.activeStep?(We(),Xe("div",$Y,[Ae("div",PY,[Ae("h3",zY,Ct(e.activeStep.title||e.activeStep.name),1),e.activeStep.status?(We(),Xe("div",TY,[Dt(rd,{status:e.activeStep.status},null,8,["status"])])):Ft("",!0)]),e.activeStep.description||e.activeStep.summary?(We(),Xe("div",_Y,[s[3]||(s[3]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"描述",-1)),Ae("p",OY,Ct(e.activeStep.description||e.activeStep.summary),1)])):Ft("",!0),e.activeStep.conclusion?(We(),Xe("div",FY,[s[4]||(s[4]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"结论",-1)),Ae("p",MY,Ct(e.activeStep.conclusion),1)])):Ft("",!0),e.activeStep.decision?(We(),Xe("div",IY,[s[5]||(s[5]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"决策",-1)),Ae("p",AY,Ct(e.activeStep.decision),1)])):Ft("",!0),e.activeStep.userQuery?(We(),Xe("div",DY,[s[6]||(s[6]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"用户提问",-1)),Ae("div",BY,[Ae("p",EY,'"'+Ct(e.activeStep.userQuery)+'"',1)])])):Ft("",!0),e.activeStep.duration||e.activeStep.timestamp?(We(),Xe("div",NY,[s[9]||(s[9]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"元信息",-1)),Ae("div",LY,[e.activeStep.duration?(We(),Xe("div",HY,[s[7]||(s[7]=Ae("span",{style:{color:"#636366"}},"耗时:",-1)),On(" "+Ct(e.activeStep.duration),1)])):Ft("",!0),e.activeStep.timestamp?(We(),Xe("div",jY,[s[8]||(s[8]=Ae("span",{style:{color:"#636366"}},"时间:",-1)),On(" "+Ct(a(e.activeStep.timestamp)),1)])):Ft("",!0)])])):Ft("",!0),e.activeStep.output||e.activeStep.files?(We(),Xe("div",VY,[s[11]||(s[11]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"输出",-1)),e.activeStep.output?(We(),mn(f,{key:0,code:e.activeStep.output,language:"text","word-wrap":"",style:{"max-height":"160px","overflow-y":"auto"}},null,8,["code"])):Ft("",!0),e.activeStep.files?(We(),Xe("div",WY,[(We(!0),Xe(kt,null,or(e.activeStep.files,(v,p)=>(We(),Xe("div",{key:p,class:"flex items-center gap-2 text-[10px]",style:{color:"#6B7280"}},[s[10]||(s[10]=Ae("svg",{class:"w-3 h-3 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1)),Ae("span",UY,Ct(v),1)]))),128))])):Ft("",!0)])):Ft("",!0)])):Ft("",!0)]),Ae("div",KY,[Dt(Hq,{logs:e.logs,onClear:s[1]||(s[1]=v=>l.$emit("clear-logs"))},null,8,["logs"])])],2)}}},YY={class:"h-12 flex items-center justify-between px-5 relative",style:{background:"rgba(17,17,19,0.9)","backdrop-filter":"blur(20px)","border-top":"1px solid #F0F0F3"}},GY={class:"flex items-center gap-3"},XY={key:0,class:"flex items-center gap-2"},ZY={class:"text-[11px] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},JY={key:1,class:"text-[10px] font-[JetBrains_Mono,monospace]",style:{color:"#D1D1D6"}},QY={class:"flex items-center gap-2"},eG={key:0,class:"flex items-center gap-2"},tG={key:1,class:"flex items-center gap-1.5"},nG={class:"flex items-center gap-1"},rG={__name:"ActionBar",props:{project:{type:Object,default:null},isExecuting:{type:Boolean,default:!1},executionResult:{type:Object,default:null},isPanelOpen:{type:Boolean,default:!0}},emits:["execute","kill","toggle-panel","open-palette"],setup(e,{emit:t}){const n=e;function r(){var l,s,d,u;if(!((l=n.project)!=null&&l.state))return"pending";const i=n.project.state.currentStage,a=((u=(d=(s=n.project.state.progress)==null?void 0:s.stages)==null?void 0:d[i])==null?void 0:u.steps)||[];return a.some(f=>f.status==="failed")?"failed":a.some(f=>f.status==="blocked")?"blocked":a.some(f=>f.status==="in-progress")?"in-progress":a.every(f=>f.status==="completed")?"completed":"pending"}function o(){var l,s;const i=(s=(l=n.project)==null?void 0:l.state)==null?void 0:s.currentStage;return{brainstorm:"头脑风暴",plan:"规划",execute:"执行",verify:"验证"}[i]||i||"未知"}return(i,a)=>{var s;const l=pn("n-button");return We(),Xe("div",YY,[a[8]||(a[8]=Ae("div",{class:"absolute inset-x-0 top-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(251,191,36,0.1), transparent)"}},null,-1)),Ae("div",GY,[e.project?(We(),Xe("div",XY,[Ae("span",ZY,Ct(e.project.name),1),a[3]||(a[3]=Ae("span",{style:{color:"#F0F0F3"}},"|",-1)),(s=e.project.state)!=null&&s.currentStage?(We(),mn(rd,{key:0,status:r(),label:o()},null,8,["status","label"])):Ft("",!0)])):(We(),Xe("div",JY," 未选择项目 "))]),Ae("div",QY,[e.isExecuting?(We(),Xe("div",eG,[...a[4]||(a[4]=[Ae("div",{class:"w-1 h-1 rounded-full animate-pulse-dot",style:{background:"#D97706"}},null,-1),Ae("span",{class:"text-[10px] font-[JetBrains_Mono,monospace]",style:{color:"#D97706"}},"执行中...",-1)])])):e.executionResult?(We(),Xe("div",tG,[Ae("span",{class:"text-[10px] font-[JetBrains_Mono,monospace]",style:$n({color:e.executionResult.exitCode===0?"#16A34A":"#DC2626"})},Ct(e.executionResult.exitCode===0?"● 完成":`● 失败 (${e.executionResult.exitCode})`),5)])):Ft("",!0)]),Ae("div",nG,[Dt(l,{quaternary:"",size:"tiny",onClick:a[0]||(a[0]=d=>i.$emit("toggle-panel")),title:"切换详情面板"},{icon:Rn(()=>[(We(),Xe("svg",{class:yr(["w-3.5 h-3.5 transition-transform duration-200",{"rotate-180":!e.isPanelOpen}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[5]||(a[5]=[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2))]),_:1}),e.isExecuting?(We(),mn(l,{key:0,size:"tiny",type:"error",onClick:a[1]||(a[1]=d=>i.$emit("kill"))},{default:Rn(()=>[...a[6]||(a[6]=[On(" 停止 ",-1)])]),_:1})):Ft("",!0),Dt(l,{quaternary:"",size:"tiny",onClick:a[2]||(a[2]=d=>i.$emit("open-palette")),title:"命令面板 (⌘K)"},{icon:Rn(()=>[...a[7]||(a[7]=[Ae("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("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)])]),_:1})])])}}},oG={key:0,class:"project-overview"},iG={class:"ov-section"},aG={class:"ov-name"},lG={class:"ov-path"},sG={key:0,class:"ov-section"},dG={class:"ov-value"},cG={key:1,class:"ov-section"},uG={key:2,class:"ov-divider"},fG={key:3,class:"ov-section"},hG={class:"ov-value"},vG={key:4,class:"ov-divider"},gG={class:"ov-value"},pG={key:6,class:"ov-divider"},mG={key:0,class:"ov-branch"},bG=["title"],xG={key:2,class:"ov-dirty"},yG={__name:"ProjectOverview",props:{project:{type:Object,default:null}},emits:["show-detail"],setup(e){const t=e,n=S(()=>{var l;return((l=t.project)==null?void 0:l.overview)||{techStack:[],lastActive:null,docStats:{design:0,plan:0,archive:0,changes:0,scan:0,quicklog:0,total:0},git:{branch:"",lastCommit:"",dirtyCount:0}}}),r=S(()=>{var s;return(((s=t.project)==null?void 0:s.path)||"").replace(/^\/Users\/[^/]+/,"~")}),o=S(()=>{const l=n.value.docStats,s=[];return l.design&&s.push(`设计 ${l.design}`),l.plan&&s.push(`计划 ${l.plan}`),l.archive&&s.push(`归档 ${l.archive}`),l.changes&&s.push(`变更 ${l.changes}`),s.join(" / ")||`${l.total} 篇`});function i(l){if(!l)return"";const s=new Date(l),u=new Date-s;return u<6e4?"刚刚":u<36e5?`${Math.floor(u/6e4)} 分钟前`:u<864e5?`${Math.floor(u/36e5)} 小时前`:u<6048e5?`${Math.floor(u/864e5)} 天前`:`${s.getMonth()+1}/${s.getDate()}`}function a(l,s){return l.length>s?l.slice(0,s)+"…":l}return(l,s)=>{var d,u;return e.project?(We(),Xe("div",oG,[Ae("div",iG,[Ae("span",aG,Ct(e.project.name),1),Ae("span",lG,Ct(r.value),1)]),s[8]||(s[8]=Ae("div",{class:"ov-divider"},null,-1)),Ae("div",{class:"ov-section ov-clickable",onClick:s[0]||(s[0]=f=>l.$emit("show-detail","tech"))},[s[3]||(s[3]=Ae("span",{class:"ov-label"},"技术栈",-1)),(We(!0),Xe(kt,null,or(n.value.techStack,f=>(We(),Xe("span",{key:f,class:"ov-tag"},Ct(f),1))),128))]),s[9]||(s[9]=Ae("div",{class:"ov-divider"},null,-1)),(d=e.project.state)!=null&&d.currentStage?(We(),Xe("div",sG,[s[4]||(s[4]=Ae("span",{class:"ov-label"},"阶段",-1)),Ae("span",dG,Ct(e.project.state.currentStage),1)])):e.project.state?(We(),Xe("div",cG,[...s[5]||(s[5]=[Ae("span",{class:"ov-label"},"阶段",-1),Ae("span",{class:"ov-value",style:{color:"#9CA3AF"}},"未执行",-1)])])):Ft("",!0),(u=e.project.state)!=null&&u.currentStage?(We(),Xe("div",uG)):Ft("",!0),n.value.lastActive?(We(),Xe("div",fG,[s[6]||(s[6]=Ae("span",{class:"ov-label"},"最近活跃",-1)),Ae("span",hG,Ct(i(n.value.lastActive)),1)])):Ft("",!0),n.value.lastActive?(We(),Xe("div",vG)):Ft("",!0),n.value.docStats.total>0?(We(),Xe("div",{key:5,class:"ov-section ov-clickable",onClick:s[1]||(s[1]=f=>l.$emit("show-detail","docs"))},[s[7]||(s[7]=Ae("span",{class:"ov-label"},"文档",-1)),Ae("span",gG,Ct(o.value),1)])):Ft("",!0),n.value.docStats.total>0?(We(),Xe("div",pG)):Ft("",!0),Ae("div",{class:"ov-section ov-git ov-clickable",onClick:s[2]||(s[2]=f=>l.$emit("show-detail","git"))},[n.value.git.branch?(We(),Xe("span",mG,Ct(n.value.git.branch),1)):Ft("",!0),n.value.git.lastCommit?(We(),Xe("span",{key:1,class:"ov-commit",title:n.value.git.lastCommit},Ct(a(n.value.git.lastCommit,40)),9,bG)):Ft("",!0),n.value.git.dirtyCount>0?(We(),Xe("span",xG,Ct(n.value.git.dirtyCount)+" 未提交",1)):Ft("",!0)])])):Ft("",!0)}}},wG=fu(yG,[["__scopeId","data-v-543019d4"]]),CG={class:"overflow-hidden rounded-md",style:{background:"#FFFFFF",border:"1px solid #E5E5EA","box-shadow":"0 25px 60px rgba(0,0,0,0.1)"}},SG={class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},kG={class:"w-3.5 h-3.5",style:{color:"#6B7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},RG={class:"max-h-72 overflow-y-auto"},$G={key:1,class:"py-0.5"},PG=["onClick","onMouseenter"],zG={class:"w-6 h-6 rounded-sm flex items-center justify-center text-[10px] font-[JetBrains_Mono,monospace] flex-shrink-0",style:{background:"#F0F0F3",border:"1px solid #F0F0F3",color:"#6B7280"}},TG={class:"flex-1 min-w-0"},_G={class:"text-[12px] font-medium truncate font-[JetBrains_Mono,monospace]",style:{color:"#1C1C1E"}},OG={class:"text-[10px] truncate",style:{color:"#6B7280"}},FG={__name:"CommandPalette",props:{isOpen:{type:Boolean,default:!1},projects:{type:Array,default:()=>[]}},emits:["close","select-project","select-stage"],setup(e,{emit:t}){const n=e,r=t,o=D(""),i=D(null),a=D(0),l=[{id:"brainstorm",name:"头脑风暴"},{id:"plan",name:"规划"},{id:"execute",name:"执行"},{id:"verify",name:"验证"}],s=S(()=>{const h=[];for(const g of n.projects){const b=!o.value||g.name.toLowerCase().includes(o.value.toLowerCase())||g.path.toLowerCase().includes(o.value.toLowerCase());b&&h.push({id:`project-${g.name}`,type:"project",title:g.name,subtitle:g.path,data:g,status:d(g)});for(const m of l)(!o.value||m.name.toLowerCase().includes(o.value.toLowerCase())||m.id.toLowerCase().includes(o.value.toLowerCase())||b)&&h.push({id:`stage-${g.name}-${m.id}`,type:"stage",title:`${g.name} / ${m.name}`,subtitle:`Jump to ${m.name}`,data:{project:g,stage:m.id},status:u(g,m.id)})}return h});function d(h){var b,m,x,k,C;const g=((C=(k=(m=(b=h.state)==null?void 0:b.progress)==null?void 0:m.stages)==null?void 0:k[(x=h.state)==null?void 0:x.currentStage])==null?void 0:C.steps)||[];return g.some(y=>y.status==="failed")?"failed":g.some(y=>y.status==="in-progress")?"in-progress":g.every(y=>y.status==="completed")?"completed":"pending"}function u(h,g){var m,x,k,C;const b=((C=(k=(x=(m=h.state)==null?void 0:m.progress)==null?void 0:x.stages)==null?void 0:k[g])==null?void 0:C.steps)||[];return b.length?b.some(y=>y.status==="failed")?"failed":b.some(y=>y.status==="in-progress")?"in-progress":b.every(y=>y.status==="completed")?"completed":"pending":"pending"}function f(){o.value="",a.value=0,r("close")}function v(h){h.type==="project"?r("select-project",h.data):r("select-stage",h.data),f()}function p(h){h.key==="ArrowDown"?(h.preventDefault(),a.value=Math.min(a.value+1,s.value.length-1)):h.key==="ArrowUp"?(h.preventDefault(),a.value=Math.max(a.value-1,0)):h.key==="Enter"?(h.preventDefault(),s.value[a.value]&&v(s.value[a.value])):h.key==="Escape"&&(h.preventDefault(),f())}return dt(s,()=>{a.value=0}),dt(()=>n.isOpen,h=>{h&&It(()=>{var g;(g=i.value)==null||g.focus()})}),(h,g)=>{const b=pn("n-input"),m=pn("n-empty"),x=pn("n-modal");return We(),mn(x,{show:e.isOpen,"onUpdate:show":g[1]||(g[1]=k=>h.$emit("close")),"mask-closable":!0,"transform-origin":"center",style:{"max-width":"480px"}},{default:Rn(()=>[Ae("div",CG,[Ae("div",SG,[Dt(b,{value:o.value,"onUpdate:value":g[0]||(g[0]=k=>o.value=k),placeholder:"搜索项目或命令...",ref_key:"searchInput",ref:i,onKeydown:p,size:"small"},{prefix:Rn(()=>[(We(),Xe("svg",kG,[...g[2]||(g[2]=[Ae("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"},null,-1)])]))]),_:1},8,["value"])]),Ae("div",RG,[s.value.length===0?(We(),mn(m,{key:0,description:"无结果",style:{padding:"40px 0"}})):(We(),Xe("div",$G,[(We(!0),Xe(kt,null,or(s.value,(k,C)=>(We(),Xe("div",{key:k.id,class:yr(["px-4 py-2.5 cursor-pointer transition-colors duration-100 flex items-center gap-3"]),style:$n({background:a.value===C?"rgba(217,119,6,0.06)":"transparent"}),onClick:y=>v(k),onMouseenter:y=>a.value=C},[Ae("div",zG,Ct(k.type==="project"?"□":"◇"),1),Ae("div",TG,[Ae("div",_G,Ct(k.title),1),Ae("div",OG,Ct(k.subtitle),1)]),k.status?(We(),mn(rd,{key:0,status:k.status,size:"sm"},null,8,["status"])):Ft("",!0)],44,PG))),128))]))]),g[3]||(g[3]=Ae("div",{class:"px-4 py-2 flex items-center gap-4 text-[9px] font-mono-log",style:{"border-top":"1px solid #F0F0F3",color:"#D1D1D6"}},[Ae("span",null,[Ae("kbd",{class:"px-1 rounded-sm",style:{background:"#F0F0F3",border:"1px solid #F0F0F3"}},"↑↓"),On(" 导航")]),Ae("span",null,[Ae("kbd",{class:"px-1 rounded-sm",style:{background:"#F0F0F3",border:"1px solid #F0F0F3"}},"↵"),On(" 打开")]),Ae("span",null,[Ae("kbd",{class:"px-1 rounded-sm",style:{background:"#F0F0F3",border:"1px solid #F0F0F3"}},"esc"),On(" 关闭")])],-1))])]),_:1},8,["show"])}}},MG={class:"h-screen w-screen flex flex-col overflow-hidden font-[DM_Sans,sans-serif] relative",style:{"background-color":"#F5F5F7"}},IG={class:"flex-1 overflow-hidden accent-stripe flex flex-col",style:{"min-width":"300px"}},k0="dashboard-panel-widths",R0=180,$0=260,AG=240,DG=340,BG={__name:"App",setup(e){const t=RU(),n=$U(),r=D(!1),o=D(null),i=D([]),a=D(null),l=D(null),s=D(AG),d=D(DG),u=D(!1);try{const T=JSON.parse(localStorage.getItem(k0));(T==null?void 0:T.left)>=R0&&(s.value=T.left),(T==null?void 0:T.right)>=$0&&(d.value=T.right)}catch{}function f(){localStorage.setItem(k0,JSON.stringify({left:s.value,right:d.value}))}function v(T){T.preventDefault(),u.value=!0;const O=T.clientX,A=s.value,B=H=>{const L=H.clientX-O;s.value=Math.max(R0,A+L)},E=()=>{window.removeEventListener("mousemove",B),window.removeEventListener("mouseup",E),u.value=!1,f()};window.addEventListener("mousemove",B),window.addEventListener("mouseup",E)}function p(T){T.preventDefault(),u.value=!0;const O=T.clientX,A=d.value,B=H=>{const L=O-H.clientX;d.value=Math.max($0,A+L)},E=()=>{window.removeEventListener("mousemove",B),window.removeEventListener("mouseup",E),u.value=!1,f()};window.addEventListener("mousemove",B),window.addEventListener("mouseup",E)}zU({onOpenCommandPalette:()=>{r.value=!0},onClose:()=>{r.value?r.value=!1:n.state.activeStep?n.state.activeStep=null:n.closePanel()}}),Lt(()=>{t.on("projects:init",T=>{n.updateProjects(T)}),t.on("projects:updated",T=>{n.updateProjects(T)}),t.on("cli:output",T=>{T.projectName===n.activeProjectName.value&&n.appendLog(T.output)}),t.on("cli:complete",T=>{T.projectName===n.activeProjectName.value&&(n.setExecuting(null),o.value={exitCode:T.exitCode,signal:T.signal})}),t.on("cli:started",T=>{T.projectName===n.activeProjectName.value&&(n.setExecuting(T.projectName),o.value=null)}),t.on("cli:killed",T=>{T.projectName===n.activeProjectName.value&&(n.setExecuting(null),o.value={exitCode:-1,signal:"SIGTERM"})}),t.on("scan:paths",T=>{i.value=T}),t.on("docs:tree",T=>{n.updateDocs(T)})});function h(T){n.selectProject(T),n.selectDocFile(null),n.setDocContent(""),T!=null&&T.path&&t.send({type:"docs:get",data:{projectPath:T.path}})}function g({project:T,stage:O}){n.selectProject(T)}function b(T){n.selectStep(T)}function m(T){n.setActiveTab(T)}function x(T){n.selectDocFile(T),n.setDocLoading(!0),fetch(`/api/docs/content?path=${encodeURIComponent(T.path)}`).then(O=>O.ok?O.text():"").then(O=>{n.setDocContent(O),n.setDocLoading(!1)}).catch(()=>{n.setDocContent(""),n.setDocLoading(!1)})}function k(){const T=n.activeProjectName.value;T&&(n.clearLogs(),t.send({type:"cli:execute",data:{projectName:T,command:"next"}}))}function C(){const T=n.activeProjectName.value;T&&t.send({type:"cli:kill",data:{projectName:T}})}function y(T){t.send({type:"scan:add-path",data:{path:T}})}function R(T){t.send({type:"scan:remove-path",data:{path:T}})}async function $(T){const O=n.state.activeProject;if(O!=null&&O.path){a.value=T,l.value=null,n.openPanel();try{const A=`/api/projects/${encodeURIComponent(O.path)}/detail?type=${T}`,B=await fetch(A);B.ok&&(l.value=await B.json())}catch{}}}function P(){a.value=null,l.value=null,n.closePanel()}function z(T){a.value=null,l.value=null,n.setActiveTab("docs"),x(T)}const F={common:{primaryColor:"#D97706",primaryColorHover:"#F59E0B",primaryColorPressed:"#B45309",borderRadius:"6px",fontFamily:"DM Sans, sans-serif",fontFamilyMono:"JetBrains Mono, monospace"}};return(T,O)=>{const A=pn("n-config-provider");return We(),mn(A,{"theme-overrides":F},{default:Rn(()=>[Ae("div",MG,[O[2]||(O[2]=Ae("div",{class:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(ellipse 60% 40% at 10% 20%, rgba(251,191,36,0.04) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 90% 80%, rgba(251,191,36,0.02) 0%, transparent 70%)"}},null,-1)),Ae("div",{class:"flex-1 flex overflow-hidden relative z-10",style:$n(u.value?"user-select: none":"")},[Ae("aside",{class:"flex-shrink-0 relative overflow-hidden",style:$n(`width: ${s.value}px; background: #FFFFFF; border-right: none;`)},[Dt(ZU,{projects:vn(n).state.projects,"active-project":vn(n).state.activeProject,"is-loading":vn(n).state.isLoading,"scan-paths":i.value,onSelect:h,"onScan:addPath":y,"onScan:removePath":R},null,8,["projects","active-project","is-loading","scan-paths"])],4),Ae("div",{class:"w-[2px] flex-shrink-0 cursor-col-resize hover:bg-[#D97706] active:bg-[#D97706] relative z-20",style:{background:"#2A3040"},onMousedown:v},null,32),Ae("main",IG,[Dt(wG,{project:vn(n).state.activeProject,onShowDetail:$},null,8,["project"]),Dt(Fq,{project:vn(n).state.activeProject,"active-step":vn(n).state.activeStep,"active-tab":vn(n).state.activeTab,docs:vn(n).state.docs,"selected-doc-file":vn(n).state.selectedDocFile,"doc-content":vn(n).state.docContent,"doc-loading":vn(n).state.docLoading,onSelectStep:b,onSwitchTab:m,onSelectDocFile:x},null,8,["project","active-step","active-tab","docs","selected-doc-file","doc-content","doc-loading"])]),vn(n).state.isPanelOpen?(We(),Xe("div",{key:0,class:"w-[2px] flex-shrink-0 cursor-col-resize hover:bg-[#D97706] active:bg-[#D97706] relative z-20",style:{background:"#2A3040"},onMousedown:p},null,32)):Ft("",!0),Ae("aside",{class:yr(["flex-shrink-0 relative overflow-hidden",vn(n).state.isPanelOpen?"":"w-0"]),style:$n(vn(n).state.isPanelOpen?`width: ${d.value}px; background: #FFFFFF; transition: none;`:"background: #FFFFFF;")},[Dt(qY,{"is-open":vn(n).state.isPanelOpen,"active-step":vn(n).state.activeStep,logs:vn(n).state.logs,"detail-type":a.value,"detail-data":l.value,onClose:P,onClearLogs:vn(n).clearLogs,onOpenDocFile:z},null,8,["is-open","active-step","logs","detail-type","detail-data","onClearLogs"])],6)],4),Dt(rG,{project:vn(n).state.activeProject,"is-executing":vn(n).state.executingProject!==null,"execution-result":o.value,"is-panel-open":vn(n).state.isPanelOpen,onExecute:k,onKill:C,onTogglePanel:vn(n).togglePanel,onOpenPalette:O[0]||(O[0]=B=>r.value=!0)},null,8,["project","is-executing","execution-result","is-panel-open","onTogglePanel"]),Dt(FG,{"is-open":r.value,projects:vn(n).state.projects,onClose:O[1]||(O[1]=B=>r.value=!1),onSelectProject:h,onSelectStage:g},null,8,["is-open","projects"])])]),_:1})}}},aR=Kx(BG);aR.use(G2);aR.mount("#app")});export default EG();
7446
+ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+Co(n.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Pa=new rq;function cn(e,t){return Pa.parse(e,t)}cn.options=cn.setOptions=function(e){return Pa.setOptions(e),cn.defaults=Pa.defaults,X2(cn.defaults),cn};cn.getDefaults=Cg;cn.defaults=Da;cn.use=function(...e){return Pa.use(...e),cn.defaults=Pa.defaults,X2(cn.defaults),cn};cn.walkTokens=function(e,t){return Pa.walkTokens(e,t)};cn.parseInline=Pa.parseInline;cn.Parser=lo;cn.parser=lo.parse;cn.Renderer=zc;cn.TextRenderer=_g;cn.Lexer=ao;cn.lexer=ao.lex;cn.Tokenizer=Pc;cn.Hooks=ns;cn.parse=cn;cn.options;cn.setOptions;cn.use;cn.walkTokens;cn.parseInline;lo.parse;ao.lex;const oq={class:"h-full overflow-y-auto px-6 py-4"},iq={key:0,class:"flex items-center justify-center h-full"},aq={key:1,class:"flex items-center justify-center h-full"},lq=["innerHTML"],sq={__name:"DocPreview",props:{content:{type:String,default:""},loading:{type:Boolean,default:!1}},setup(e){const t=e;cn.setOptions({breaks:!0,gfm:!0});const n=S(()=>t.content?cn.parse(t.content):"");return(r,o)=>(We(),Xe("div",oq,[!e.content&&!e.loading?(We(),Xe("div",iq,[...o[0]||(o[0]=[Ae("p",{class:"text-[12px] font-[JetBrains_Mono,monospace]",style:{color:"#636366"}},"选择一个文档查看内容",-1)])])):e.loading?(We(),Xe("div",aq,[...o[1]||(o[1]=[Ae("p",{class:"text-[12px] font-[JetBrains_Mono,monospace]",style:{color:"#636366"}},"加载中...",-1)])])):(We(),Xe("div",{key:2,class:"doc-preview",innerHTML:n.value},null,8,lq))]))}},dq=fu(sq,[["__scopeId","data-v-fc57afbe"]]),cq={class:"flex flex-col h-full",style:{background:"#F5F5F7"}},uq={class:"px-6 pt-4 pb-0",style:{"border-bottom":"1px solid #F0F0F3"}},fq={class:"flex items-center gap-6"},hq={class:"text-[11px] font-semibold uppercase tracking-[0.2em] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},vq={key:0,class:"flex flex-col flex-1 overflow-hidden"},gq={key:0,class:"px-6 pt-4 pb-2"},pq={class:"text-[12px] font-[JetBrains_Mono,monospace]",style:{color:"#636366"}},mq={style:{color:"#D97706"}},bq={key:2,class:"flex-1 overflow-y-auto px-6 pb-5 space-y-5"},xq={key:0,class:"flex items-center pl-[3px]"},yq={key:1,class:"flex items-center pl-[3px]"},wq={key:2,class:"flex items-center pl-[3px]"},Cq={key:3,style:{"border-top":"1px solid #F0F0F3",background:"rgba(0,0,0,0.03)"}},Sq={class:"px-6 py-2.5 flex items-center justify-between"},kq={class:"text-[10px] font-mono-log",style:{color:"#D1D1D6"}},Rq={class:"px-6 pb-3 max-h-32 overflow-y-auto"},$q={class:"text-[11px]",style:{color:"#636366"}},Pq={class:"text-[10px] font-mono-log",style:{color:"#D1D1D6"}},zq={key:0,class:"text-[10px] py-1",style:{color:"#D1D1D6"}},Tq={key:1,class:"flex-1 flex overflow-hidden"},_q={class:"w-[200px] flex-shrink-0 overflow-hidden",style:{"border-right":"1px solid #F0F0F3"}},Oq={class:"flex-1 overflow-hidden"},Fq={__name:"PipelineView",props:{project:{type:Object,default:null},activeStep:{type:Object,default:null},activeTab:{type:String,default:"pipeline"},docs:{type:Object,default:()=>({groups:[]})},selectedDocFile:{type:Object,default:null},docContent:{type:String,default:""},docLoading:{type:Boolean,default:!1}},emits:["select-step","switch-tab","select-doc-file"],setup(e,{emit:t}){const n=e,r=t,o=S(()=>{var h,g;return((g=(h=n.project)==null?void 0:h.state)==null?void 0:g.currentStage)||""}),i=S(()=>{var h,g;return((g=(h=n.project)==null?void 0:h.state)==null?void 0:g.progress)||{}}),a=S(()=>i.value.stages||{}),l={brainstorm:"头脑风暴",plan:"规划",execute:"执行",verify:"验证"},s=S(()=>{var g;if(!((g=n.project)!=null&&g.state))return[];const h=[];for(const[b,m]of Object.entries(i.value.stages||{})){const x=l[b]||b;m.status==="completed"?h.push({time:m.completedAt?d(m.completedAt):"--:--",status:"completed",description:`${x} 已完成`}):m.status==="in-progress"&&h.push({time:"--:--",status:"in-progress",description:`${x} 运行中`})}return h.reverse()});function d(h){try{const g=new Date(h);return`${String(g.getHours()).padStart(2,"0")}:${String(g.getMinutes()).padStart(2,"0")}`}catch{return"--:--"}}function u(h){return!!a.value[h]}function f(h){var g;return((g=a.value[h])==null?void 0:g.steps)||[]}function v(h){const g=a.value[h];if(!g)return"pending";const b=g.steps||[];return b.some(m=>m.status==="failed")?"failed":b.some(m=>m.status==="blocked")?"blocked":b.some(m=>m.status==="in-progress")?"in-progress":b.every(m=>m.status==="completed")?"completed":"pending"}function p(h){r("select-step",h)}return(h,g)=>{var y,R,$;const b=pn("n-tab"),m=pn("n-tabs"),x=pn("n-empty"),k=pn("n-timeline-item"),C=pn("n-timeline");return We(),Xe("div",cq,[Ae("div",uq,[Ae("div",fq,[Ae("h2",hq,Ct(((y=e.project)==null?void 0:y.name)||"项目"),1),Dt(m,{value:e.activeTab,type:"segment",size:"small","onUpdate:value":g[0]||(g[0]=P=>h.$emit("switch-tab",P)),style:{"max-width":"200px"}},{default:Rn(()=>[Dt(b,{name:"pipeline"},{default:Rn(()=>[...g[2]||(g[2]=[On("流水线",-1)])]),_:1}),Dt(b,{name:"docs"},{default:Rn(()=>[...g[3]||(g[3]=[On("文档",-1)])]),_:1})]),_:1},8,["value"])])]),e.activeTab==="pipeline"?(We(),Xe("div",vq,[e.project&&o.value?(We(),Xe("div",gq,[Ae("p",pq,[Ae("span",mq,Ct(o.value),1)])])):Ft("",!0),!e.project||!e.project.state?(We(),mn(x,{key:1,description:"选择一个项目查看流水线",style:{margin:"auto"}})):(We(),Xe("div",bq,[Dt(Ed,{name:"brainstorm",title:"头脑风暴",steps:f("brainstorm"),status:v("brainstorm"),"is-active":o.value==="brainstorm","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"]),u("plan")?(We(),Xe("div",xq,[...g[4]||(g[4]=[Ae("div",{class:"w-px h-4",style:{background:"#F0F0F3"}},null,-1)])])):Ft("",!0),Dt(Ed,{name:"plan",title:"规划",steps:f("plan"),status:v("plan"),"is-active":o.value==="plan","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"]),u("execute")?(We(),Xe("div",yq,[...g[5]||(g[5]=[Ae("div",{class:"w-px h-4",style:{background:"#F0F0F3"}},null,-1)])])):Ft("",!0),Dt(Ed,{name:"execute",title:"执行",steps:f("execute"),status:v("execute"),"is-active":o.value==="execute","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"]),u("verify")?(We(),Xe("div",wq,[...g[6]||(g[6]=[Ae("div",{class:"w-px h-4",style:{background:"#F0F0F3"}},null,-1)])])):Ft("",!0),Dt(Ed,{name:"verify",title:"验证",steps:f("verify"),status:v("verify"),"is-active":o.value==="verify","active-step":e.activeStep,onSelectStep:p},null,8,["steps","status","is-active","active-step"])])),($=(R=e.project)==null?void 0:R.state)!=null&&$.progress?(We(),Xe("div",Cq,[Ae("div",Sq,[g[7]||(g[7]=Ae("div",{class:"text-[9px] font-semibold uppercase tracking-[0.25em] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"活动日志",-1)),Ae("div",kq,Ct(s.value.length),1)]),Ae("div",Rq,[Dt(C,{size:"small"},{default:Rn(()=>[(We(!0),Xe(kt,null,or(s.value,(P,z)=>(We(),mn(k,{key:z,type:P.status==="completed"?"success":"warning"},{default:Rn(()=>[Ae("span",$q,Ct(P.description),1)]),time:Rn(()=>[Ae("span",Pq,Ct(P.time),1)]),_:2},1032,["type"]))),128))]),_:1}),s.value.length===0?(We(),Xe("div",zq,"暂无活动记录")):Ft("",!0)])])):Ft("",!0)])):Ft("",!0),e.activeTab==="docs"?(We(),Xe("div",Tq,[Ae("div",_q,[Dt(pK,{groups:e.docs.groups,"selected-file":e.selectedDocFile,onSelectFile:g[1]||(g[1]=P=>h.$emit("select-doc-file",P))},null,8,["groups","selected-file"])]),Ae("div",Oq,[Dt(dq,{content:e.docContent,loading:e.docLoading},null,8,["content","loading"])])])):Ft("",!0)])}}},Mq={class:"flex flex-col h-full",style:{background:"#F5F5F7"}},Iq={class:"px-3 py-2 flex items-center gap-2",style:{"border-bottom":"1px solid #F0F0F3"}},Aq={key:0,class:"flex items-center justify-center h-full"},Dq={class:"font-mono-log",style:{color:"#E5E5EA"}},Bq={key:1,class:"space-y-px"},Eq={style:{color:"#D1D1D6"},class:"select-none"},Nq={class:"px-3 py-1 flex items-center justify-between text-[9px] font-mono-log",style:{"border-top":"1px solid #F0F0F3",background:"#F5F5F7",color:"#D1D1D6"}},Lq={key:0,style:{color:"#EA580C"}},Hq={__name:"LogStream",props:{logs:{type:Array,default:()=>[]}},emits:["clear"],setup(e,{emit:t}){const n=e,r=t,o=D(""),i=D(!0),a=D(null),l=S(()=>{if(!o.value)return n.logs;const b=o.value.toLowerCase();return n.logs.filter(m=>m.content.toLowerCase().includes(b))});function s(b){return b?new Date(b).toLocaleTimeString("zh-CN",{hour12:!1}):""}function d(b){return b?b.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"):""}function u(b){return b==="error"?"rgba(239,68,68,0.05)":b==="warn"?"rgba(251,146,60,0.05)":"transparent"}function f(b){return b==="error"?"#DC2626":b==="warn"?"#EA580C":b==="debug"?"#6B7280":"#636366"}function v(){r("clear")}function p(){i.value=!i.value,i.value&&g()}function h(){if(!a.value)return;const{scrollTop:b,scrollHeight:m,clientHeight:x}=a.value,k=m-b-x<50;!k&&i.value?i.value=!1:k&&!i.value&&(i.value=!0)}function g(){It(()=>{a.value&&i.value&&(a.value.scrollTop=a.value.scrollHeight)})}return dt(()=>n.logs.length,()=>{g()},{flush:"post"}),dt(a,()=>{g()},{once:!0}),(b,m)=>{const x=pn("n-input"),k=pn("n-button");return We(),Xe("div",Mq,[Ae("div",Iq,[Dt(x,{value:o.value,"onUpdate:value":m[0]||(m[0]=C=>o.value=C),size:"tiny",placeholder:"过滤日志...",clearable:"",style:{flex:"1"}},null,8,["value"]),Dt(k,{size:"tiny",onClick:v},{default:Rn(()=>[...m[1]||(m[1]=[On("清空",-1)])]),_:1}),Dt(k,{size:"tiny",type:i.value?"primary":"default",onClick:p},{default:Rn(()=>[On(Ct(i.value?"自动":"暂停"),1)]),_:1},8,["type"])]),Ae("div",{ref_key:"logContainer",ref:a,class:"flex-1 overflow-y-auto px-2 py-1.5 font-mono-log text-[10px]",style:{background:"#F0F0F3"},onScroll:h},[l.value.length===0?(We(),Xe("div",Aq,[Ae("span",Dq,Ct(e.logs.length===0?"暂无日志":"无匹配"),1)])):(We(),Xe("div",Bq,[(We(!0),Xe(kt,null,or(l.value,C=>(We(),Xe("div",{key:C.id,class:"px-1.5 py-px rounded-sm",style:$n({background:u(C.type)})},[Ae("span",Eq,"["+Ct(s(C.timestamp))+"]",1),Ae("span",{style:$n({color:f(C.type)})},Ct(d(C.content)),5)],4))),128))]))],544),Ae("div",Nq,[Ae("span",null,Ct(l.value.length)+"/"+Ct(e.logs.length),1),i.value?Ft("",!0):(We(),Xe("span",Lq,"已暂停"))])])}}},jq={key:0,class:"px-4 py-3"},Vq={class:"mb-4"},Wq={class:"text-[18px] font-bold font-[JetBrains_Mono,monospace]",style:{color:"#D97706"}},Uq={key:0,class:"mb-4"},Kq={class:"space-y-2"},qq={class:"flex items-center gap-2"},Yq={class:"text-[11px] font-mono font-semibold",style:{color:"#D97706"}},Gq={class:"text-[11px] flex-1 truncate",style:{color:"#1C1C1E"}},Xq={class:"flex items-center gap-2 mt-1 text-[10px]",style:{color:"#6B7280"}},Zq={key:1},Jq={class:"space-y-1"},Qq={class:"truncate",style:{color:"#1C1C1E"}},eY={__name:"GitDetail",props:{data:{type:Object,default:null}},setup(e){function t(r){return r.includes("M")?"#F59E0B":r.includes("A")||r==="?"?"#10B981":r.includes("D")?"#EF4444":"#9CA3AF"}function n(r){if(!r)return"";const o=new Date(r),i=Date.now()-o.getTime();return i<6e4?"刚刚":i<36e5?`${Math.floor(i/6e4)} 分钟前`:i<864e5?`${Math.floor(i/36e5)} 小时前`:i<6048e5?`${Math.floor(i/864e5)} 天前`:`${o.getMonth()+1}/${o.getDate()}`}return(r,o)=>{var a,l;const i=pn("n-empty");return e.data?(We(),Xe("div",jq,[Ae("div",Vq,[o[0]||(o[0]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"当前分支",-1)),Ae("div",Wq,Ct(e.data.branch||"—"),1)]),(a=e.data.commits)!=null&&a.length?(We(),Xe("div",Uq,[o[2]||(o[2]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"最近提交",-1)),Ae("div",Kq,[(We(!0),Xe(kt,null,or(e.data.commits,s=>(We(),Xe("div",{key:s.hash,class:"px-3 py-2 rounded-md",style:{background:"#F5F5F7"}},[Ae("div",qq,[Ae("span",Yq,Ct(s.hash),1),Ae("span",Gq,Ct(s.message),1)]),Ae("div",Xq,[Ae("span",null,Ct(s.author),1),o[1]||(o[1]=Ae("span",null,"·",-1)),Ae("span",null,Ct(n(s.date)),1)])]))),128))])])):Ft("",!0),(l=e.data.untracked)!=null&&l.length?(We(),Xe("div",Zq,[o[3]||(o[3]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"未提交文件",-1)),Ae("div",Jq,[(We(!0),Xe(kt,null,or(e.data.untracked,s=>(We(),Xe("div",{key:s.file,class:"flex items-center gap-2 px-2 py-1 rounded text-[11px] font-[JetBrains_Mono,monospace]"},[Ae("span",{class:"font-semibold w-5 text-center",style:$n({color:t(s.status)})},Ct(s.status),5),Ae("span",Qq,Ct(s.file),1)]))),128))])])):Ft("",!0)])):(We(),mn(i,{key:1,description:"无 Git 信息",style:{padding:"48px 0"}}))}}},tY={key:0,class:"px-4 py-3"},nY={key:0,class:"mb-4"},rY={class:"flex flex-wrap gap-2"},oY={key:1,class:"mb-4"},iY={class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},aY={class:"space-y-1"},lY={class:"font-mono font-medium truncate",style:{color:"#1C1C1E"}},sY={class:"font-mono ml-auto flex-shrink-0",style:{color:"#9CA3AF"}},dY={key:2},cY={class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},uY={class:"space-y-1"},fY={class:"font-mono font-medium truncate",style:{color:"#1C1C1E"}},hY={class:"font-mono ml-auto flex-shrink-0",style:{color:"#9CA3AF"}},vY={__name:"TechDetail",props:{data:{type:Object,default:null}},setup(e){const t=e,n=S(()=>t.data?Object.entries(t.data.dependencies||{}):[]),r=S(()=>t.data?Object.entries(t.data.devDependencies||{}):[]);return(o,i)=>{var s;const a=pn("n-tag"),l=pn("n-empty");return e.data?(We(),Xe("div",tY,[(s=e.data.frameworks)!=null&&s.length?(We(),Xe("div",nY,[i[0]||(i[0]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"识别框架",-1)),Ae("div",rY,[(We(!0),Xe(kt,null,or(e.data.frameworks,d=>(We(),mn(a,{key:d,type:"warning",size:"small",round:""},{default:Rn(()=>[On(Ct(d),1)]),_:2},1024))),128))])])):Ft("",!0),n.value.length?(We(),Xe("div",oY,[Ae("h4",iY,"dependencies ("+Ct(n.value.length)+")",1),Ae("div",aY,[(We(!0),Xe(kt,null,or(n.value,([d,u])=>(We(),Xe("div",{key:d,class:"flex items-center gap-2 px-2 py-1 rounded text-[11px]",style:{background:"#F5F5F7"}},[Ae("span",lY,Ct(d),1),Ae("span",sY,Ct(u),1)]))),128))])])):Ft("",!0),r.value.length?(We(),Xe("div",dY,[Ae("h4",cY,"devDependencies ("+Ct(r.value.length)+")",1),Ae("div",uY,[(We(!0),Xe(kt,null,or(r.value,([d,u])=>(We(),Xe("div",{key:d,class:"flex items-center gap-2 px-2 py-1 rounded text-[11px]",style:{background:"#F5F5F7"}},[Ae("span",fY,Ct(d),1),Ae("span",hY,Ct(u),1)]))),128))])])):Ft("",!0)])):(We(),mn(l,{key:1,description:"无依赖信息",style:{padding:"48px 0"}}))}}},gY={key:0,class:"px-4 py-3"},pY={class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-2 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},mY={class:"space-y-1"},bY=["onClick"],xY={class:"truncate",style:{color:"#1C1C1E"}},yY={class:"ml-auto flex-shrink-0 font-mono text-[10px]",style:{color:"#9CA3AF"}},wY={class:"flex-shrink-0 text-[10px]",style:{color:"#9CA3AF"}},CY={__name:"DocsDetail",props:{data:{type:Array,default:()=>[]}},emits:["open-file"],setup(e){function t(r){return r?r<1024?r+" B":r<1048576?(r/1024).toFixed(1)+" KB":(r/1048576).toFixed(1)+" MB":"—"}function n(r){if(!r)return"";const o=new Date(r),i=Date.now()-o.getTime();return i<6e4?"刚刚":i<36e5?`${Math.floor(i/6e4)} 分钟前`:i<864e5?`${Math.floor(i/36e5)} 小时前`:i<6048e5?`${Math.floor(i/864e5)} 天前`:`${o.getMonth()+1}/${o.getDate()}`}return(r,o)=>{var a;const i=pn("n-empty");return(a=e.data)!=null&&a.length?(We(),Xe("div",gY,[(We(!0),Xe(kt,null,or(e.data,l=>(We(),Xe("div",{key:l.key,class:"mb-4"},[Ae("h4",pY,Ct(l.icon)+" "+Ct(l.label)+" ("+Ct(l.files.length)+") ",1),Ae("div",mY,[(We(!0),Xe(kt,null,or(l.files,s=>(We(),Xe("div",{key:s.path,class:"flex items-center gap-2 px-2 py-1.5 rounded text-[11px] cursor-pointer hover:bg-[#FEF3C7] transition-colors",onClick:d=>r.$emit("open-file",s)},[o[0]||(o[0]=Ae("svg",{class:"w-3 h-3 flex-shrink-0",fill:"none",stroke:"#9CA3AF",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1)),Ae("span",xY,Ct(s.name),1),Ae("span",yY,Ct(t(s.size)),1),Ae("span",wY,Ct(n(s.mtime)),1)],8,bY))),128))])]))),128))])):(We(),mn(i,{key:1,description:"无文档",style:{padding:"48px 0"}}))}}},SY={class:"px-4 py-3 flex items-center justify-between flex-shrink-0",style:{"border-bottom":"1px solid #F0F0F3"}},kY={class:"text-[11px] font-semibold uppercase tracking-[0.2em] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},RY={class:"flex-1 overflow-y-auto"},$Y={key:4},PY={class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},zY={class:"text-[13px] font-semibold font-[JetBrains_Mono,monospace]",style:{color:"#D97706"}},TY={key:0,class:"mt-2"},_Y={key:0,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},OY={class:"text-[11px] leading-relaxed",style:{color:"#636366"}},FY={key:1,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},MY={class:"text-[11px] leading-relaxed",style:{color:"#1C1C1E"}},IY={key:2,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},AY={class:"text-[11px] leading-relaxed",style:{color:"#1C1C1E"}},DY={key:3,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},BY={class:"px-3 py-2 rounded-md",style:{background:"#F5F5F7",border:"1px solid #F0F0F3"}},EY={class:"text-[11px] italic",style:{color:"#636366"}},NY={key:4,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},LY={class:"space-y-1 text-[11px]",style:{color:"#6B7280"}},HY={key:0},jY={key:1},VY={key:5,class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},WY={key:1,class:"mt-2 space-y-1"},UY={class:"truncate"},KY={class:"flex-shrink-0",style:{height:"200px","border-top":"1px solid #F0F0F3"}},qY={__name:"DetailPanel",props:{isOpen:{type:Boolean,default:!0},activeStep:{type:Object,default:null},logs:{type:Array,default:()=>[]},detailType:{type:String,default:null},detailData:{type:[Object,Array],default:null}},emits:["close","clear-logs","open-doc-file"],setup(e,{emit:t}){const n=e,r=t,o=S(()=>n.detailType==="git"?"Git 详情":n.detailType==="tech"?"技术栈详情":n.detailType==="docs"?"文档列表":"详情");function i(){r("close")}function a(l){return l?new Date(l).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):""}return(l,s)=>{const d=pn("n-button"),u=pn("n-empty"),f=pn("n-code");return We(),Xe("div",{class:yr(["flex flex-col transition-all duration-300",e.isOpen?"w-[340px]":"w-0 opacity-0 overflow-hidden"]),style:{background:"#F5F5F7"}},[Ae("div",SY,[Ae("h2",kY,Ct(e.detailType?o.value:"详情"),1),Dt(d,{quaternary:"",size:"tiny",onClick:i},{icon:Rn(()=>[...s[2]||(s[2]=[Ae("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])]),_:1})]),Ae("div",RY,[!e.activeStep&&!e.detailType?(We(),mn(u,{key:0,description:"选择一个步骤",style:{margin:"auto",padding:"48px 0"}})):Ft("",!0),e.detailType==="git"?(We(),mn(eY,{key:1,data:e.detailData},null,8,["data"])):e.detailType==="tech"?(We(),mn(vY,{key:2,data:e.detailData},null,8,["data"])):e.detailType==="docs"?(We(),mn(CY,{key:3,data:e.detailData,onOpenFile:s[0]||(s[0]=v=>l.$emit("open-doc-file",v))},null,8,["data"])):e.activeStep?(We(),Xe("div",$Y,[Ae("div",PY,[Ae("h3",zY,Ct(e.activeStep.title||e.activeStep.name),1),e.activeStep.status?(We(),Xe("div",TY,[Dt(rd,{status:e.activeStep.status},null,8,["status"])])):Ft("",!0)]),e.activeStep.description||e.activeStep.summary?(We(),Xe("div",_Y,[s[3]||(s[3]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"描述",-1)),Ae("p",OY,Ct(e.activeStep.description||e.activeStep.summary),1)])):Ft("",!0),e.activeStep.conclusion?(We(),Xe("div",FY,[s[4]||(s[4]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"结论",-1)),Ae("p",MY,Ct(e.activeStep.conclusion),1)])):Ft("",!0),e.activeStep.decision?(We(),Xe("div",IY,[s[5]||(s[5]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"决策",-1)),Ae("p",AY,Ct(e.activeStep.decision),1)])):Ft("",!0),e.activeStep.userQuery?(We(),Xe("div",DY,[s[6]||(s[6]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"用户提问",-1)),Ae("div",BY,[Ae("p",EY,'"'+Ct(e.activeStep.userQuery)+'"',1)])])):Ft("",!0),e.activeStep.duration||e.activeStep.timestamp?(We(),Xe("div",NY,[s[9]||(s[9]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"元信息",-1)),Ae("div",LY,[e.activeStep.duration?(We(),Xe("div",HY,[s[7]||(s[7]=Ae("span",{style:{color:"#636366"}},"耗时:",-1)),On(" "+Ct(e.activeStep.duration),1)])):Ft("",!0),e.activeStep.timestamp?(We(),Xe("div",jY,[s[8]||(s[8]=Ae("span",{style:{color:"#636366"}},"时间:",-1)),On(" "+Ct(a(e.activeStep.timestamp)),1)])):Ft("",!0)])])):Ft("",!0),e.activeStep.output||e.activeStep.files?(We(),Xe("div",VY,[s[11]||(s[11]=Ae("h4",{class:"text-[9px] font-semibold uppercase tracking-[0.2em] mb-1.5 font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},"输出",-1)),e.activeStep.output?(We(),mn(f,{key:0,code:e.activeStep.output,language:"text","word-wrap":"",style:{"max-height":"300px","overflow-y":"auto",padding:"8px","border-radius":"4px",background:"#F5F5F7"}},null,8,["code"])):Ft("",!0),e.activeStep.files?(We(),Xe("div",WY,[(We(!0),Xe(kt,null,or(e.activeStep.files,(v,p)=>(We(),Xe("div",{key:p,class:"flex items-center gap-2 text-[10px]",style:{color:"#6B7280"}},[s[10]||(s[10]=Ae("svg",{class:"w-3 h-3 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})],-1)),Ae("span",UY,Ct(v),1)]))),128))])):Ft("",!0)])):Ft("",!0)])):Ft("",!0)]),Ae("div",KY,[Dt(Hq,{logs:e.logs,onClear:s[1]||(s[1]=v=>l.$emit("clear-logs"))},null,8,["logs"])])],2)}}},YY={class:"h-12 flex items-center justify-between px-5 relative",style:{background:"rgba(17,17,19,0.9)","backdrop-filter":"blur(20px)","border-top":"1px solid #F0F0F3"}},GY={class:"flex items-center gap-3"},XY={key:0,class:"flex items-center gap-2"},ZY={class:"text-[11px] font-[JetBrains_Mono,monospace]",style:{color:"#6B7280"}},JY={key:1,class:"text-[10px] font-[JetBrains_Mono,monospace]",style:{color:"#D1D1D6"}},QY={class:"flex items-center gap-2"},eG={key:0,class:"flex items-center gap-2"},tG={key:1,class:"flex items-center gap-1.5"},nG={class:"flex items-center gap-1"},rG={__name:"ActionBar",props:{project:{type:Object,default:null},isExecuting:{type:Boolean,default:!1},executionResult:{type:Object,default:null},isPanelOpen:{type:Boolean,default:!0}},emits:["execute","kill","toggle-panel","open-palette"],setup(e,{emit:t}){const n=e;function r(){var l,s,d,u;if(!((l=n.project)!=null&&l.state))return"pending";const i=n.project.state.currentStage,a=((u=(d=(s=n.project.state.progress)==null?void 0:s.stages)==null?void 0:d[i])==null?void 0:u.steps)||[];return a.some(f=>f.status==="failed")?"failed":a.some(f=>f.status==="blocked")?"blocked":a.some(f=>f.status==="in-progress")?"in-progress":a.every(f=>f.status==="completed")?"completed":"pending"}function o(){var l,s;const i=(s=(l=n.project)==null?void 0:l.state)==null?void 0:s.currentStage;return{brainstorm:"头脑风暴",plan:"规划",execute:"执行",verify:"验证"}[i]||i||"未知"}return(i,a)=>{var s;const l=pn("n-button");return We(),Xe("div",YY,[a[8]||(a[8]=Ae("div",{class:"absolute inset-x-0 top-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(251,191,36,0.1), transparent)"}},null,-1)),Ae("div",GY,[e.project?(We(),Xe("div",XY,[Ae("span",ZY,Ct(e.project.name),1),a[3]||(a[3]=Ae("span",{style:{color:"#F0F0F3"}},"|",-1)),(s=e.project.state)!=null&&s.currentStage?(We(),mn(rd,{key:0,status:r(),label:o()},null,8,["status","label"])):Ft("",!0)])):(We(),Xe("div",JY," 未选择项目 "))]),Ae("div",QY,[e.isExecuting?(We(),Xe("div",eG,[...a[4]||(a[4]=[Ae("div",{class:"w-1 h-1 rounded-full animate-pulse-dot",style:{background:"#D97706"}},null,-1),Ae("span",{class:"text-[10px] font-[JetBrains_Mono,monospace]",style:{color:"#D97706"}},"执行中...",-1)])])):e.executionResult?(We(),Xe("div",tG,[Ae("span",{class:"text-[10px] font-[JetBrains_Mono,monospace]",style:$n({color:e.executionResult.exitCode===0?"#16A34A":"#DC2626"})},Ct(e.executionResult.exitCode===0?"● 完成":`● 失败 (${e.executionResult.exitCode})`),5)])):Ft("",!0)]),Ae("div",nG,[Dt(l,{quaternary:"",size:"tiny",onClick:a[0]||(a[0]=d=>i.$emit("toggle-panel")),title:"切换详情面板"},{icon:Rn(()=>[(We(),Xe("svg",{class:yr(["w-3.5 h-3.5 transition-transform duration-200",{"rotate-180":!e.isPanelOpen}]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...a[5]||(a[5]=[Ae("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2))]),_:1}),e.isExecuting?(We(),mn(l,{key:0,size:"tiny",type:"error",onClick:a[1]||(a[1]=d=>i.$emit("kill"))},{default:Rn(()=>[...a[6]||(a[6]=[On(" 停止 ",-1)])]),_:1})):Ft("",!0),Dt(l,{quaternary:"",size:"tiny",onClick:a[2]||(a[2]=d=>i.$emit("open-palette")),title:"命令面板 (⌘K)"},{icon:Rn(()=>[...a[7]||(a[7]=[Ae("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ae("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)])]),_:1})])])}}},oG={key:0,class:"project-overview"},iG={class:"ov-section"},aG={class:"ov-name"},lG={class:"ov-path"},sG={key:0,class:"ov-section"},dG={class:"ov-value"},cG={key:1,class:"ov-section"},uG={key:2,class:"ov-divider"},fG={key:3,class:"ov-section"},hG={class:"ov-value"},vG={key:4,class:"ov-divider"},gG={class:"ov-value"},pG={key:6,class:"ov-divider"},mG={key:0,class:"ov-branch"},bG=["title"],xG={key:2,class:"ov-dirty"},yG={__name:"ProjectOverview",props:{project:{type:Object,default:null}},emits:["show-detail"],setup(e){const t=e,n=S(()=>{var l;return((l=t.project)==null?void 0:l.overview)||{techStack:[],lastActive:null,docStats:{design:0,plan:0,archive:0,changes:0,scan:0,quicklog:0,total:0},git:{branch:"",lastCommit:"",dirtyCount:0}}}),r=S(()=>{var s;return(((s=t.project)==null?void 0:s.path)||"").replace(/^\/Users\/[^/]+/,"~")}),o=S(()=>{const l=n.value.docStats,s=[];return l.design&&s.push(`设计 ${l.design}`),l.plan&&s.push(`计划 ${l.plan}`),l.archive&&s.push(`归档 ${l.archive}`),l.changes&&s.push(`变更 ${l.changes}`),s.join(" / ")||`${l.total} 篇`});function i(l){if(!l)return"";const s=new Date(l),u=new Date-s;return u<6e4?"刚刚":u<36e5?`${Math.floor(u/6e4)} 分钟前`:u<864e5?`${Math.floor(u/36e5)} 小时前`:u<6048e5?`${Math.floor(u/864e5)} 天前`:`${s.getMonth()+1}/${s.getDate()}`}function a(l,s){return l.length>s?l.slice(0,s)+"…":l}return(l,s)=>{var d,u;return e.project?(We(),Xe("div",oG,[Ae("div",iG,[Ae("span",aG,Ct(e.project.name),1),Ae("span",lG,Ct(r.value),1)]),s[8]||(s[8]=Ae("div",{class:"ov-divider"},null,-1)),Ae("div",{class:"ov-section ov-clickable",onClick:s[0]||(s[0]=f=>l.$emit("show-detail","tech"))},[s[3]||(s[3]=Ae("span",{class:"ov-label"},"技术栈",-1)),(We(!0),Xe(kt,null,or(n.value.techStack,f=>(We(),Xe("span",{key:f,class:"ov-tag"},Ct(f),1))),128))]),s[9]||(s[9]=Ae("div",{class:"ov-divider"},null,-1)),(d=e.project.state)!=null&&d.currentStage?(We(),Xe("div",sG,[s[4]||(s[4]=Ae("span",{class:"ov-label"},"阶段",-1)),Ae("span",dG,Ct(e.project.state.currentStage),1)])):e.project.state?(We(),Xe("div",cG,[...s[5]||(s[5]=[Ae("span",{class:"ov-label"},"阶段",-1),Ae("span",{class:"ov-value",style:{color:"#9CA3AF"}},"未执行",-1)])])):Ft("",!0),(u=e.project.state)!=null&&u.currentStage?(We(),Xe("div",uG)):Ft("",!0),n.value.lastActive?(We(),Xe("div",fG,[s[6]||(s[6]=Ae("span",{class:"ov-label"},"最近活跃",-1)),Ae("span",hG,Ct(i(n.value.lastActive)),1)])):Ft("",!0),n.value.lastActive?(We(),Xe("div",vG)):Ft("",!0),n.value.docStats.total>0?(We(),Xe("div",{key:5,class:"ov-section ov-clickable",onClick:s[1]||(s[1]=f=>l.$emit("show-detail","docs"))},[s[7]||(s[7]=Ae("span",{class:"ov-label"},"文档",-1)),Ae("span",gG,Ct(o.value),1)])):Ft("",!0),n.value.docStats.total>0?(We(),Xe("div",pG)):Ft("",!0),Ae("div",{class:"ov-section ov-git ov-clickable",onClick:s[2]||(s[2]=f=>l.$emit("show-detail","git"))},[n.value.git.branch?(We(),Xe("span",mG,Ct(n.value.git.branch),1)):Ft("",!0),n.value.git.lastCommit?(We(),Xe("span",{key:1,class:"ov-commit",title:n.value.git.lastCommit},Ct(a(n.value.git.lastCommit,40)),9,bG)):Ft("",!0),n.value.git.dirtyCount>0?(We(),Xe("span",xG,Ct(n.value.git.dirtyCount)+" 未提交",1)):Ft("",!0)])])):Ft("",!0)}}},wG=fu(yG,[["__scopeId","data-v-543019d4"]]),CG={class:"overflow-hidden rounded-md",style:{background:"#FFFFFF",border:"1px solid #E5E5EA","box-shadow":"0 25px 60px rgba(0,0,0,0.1)"}},SG={class:"px-4 py-3",style:{"border-bottom":"1px solid #F0F0F3"}},kG={class:"w-3.5 h-3.5",style:{color:"#6B7280"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},RG={class:"max-h-72 overflow-y-auto"},$G={key:1,class:"py-0.5"},PG=["onClick","onMouseenter"],zG={class:"w-6 h-6 rounded-sm flex items-center justify-center text-[10px] font-[JetBrains_Mono,monospace] flex-shrink-0",style:{background:"#F0F0F3",border:"1px solid #F0F0F3",color:"#6B7280"}},TG={class:"flex-1 min-w-0"},_G={class:"text-[12px] font-medium truncate font-[JetBrains_Mono,monospace]",style:{color:"#1C1C1E"}},OG={class:"text-[10px] truncate",style:{color:"#6B7280"}},FG={__name:"CommandPalette",props:{isOpen:{type:Boolean,default:!1},projects:{type:Array,default:()=>[]}},emits:["close","select-project","select-stage"],setup(e,{emit:t}){const n=e,r=t,o=D(""),i=D(null),a=D(0),l=[{id:"brainstorm",name:"头脑风暴"},{id:"plan",name:"规划"},{id:"execute",name:"执行"},{id:"verify",name:"验证"}],s=S(()=>{const h=[];for(const g of n.projects){const b=!o.value||g.name.toLowerCase().includes(o.value.toLowerCase())||g.path.toLowerCase().includes(o.value.toLowerCase());b&&h.push({id:`project-${g.name}`,type:"project",title:g.name,subtitle:g.path,data:g,status:d(g)});for(const m of l)(!o.value||m.name.toLowerCase().includes(o.value.toLowerCase())||m.id.toLowerCase().includes(o.value.toLowerCase())||b)&&h.push({id:`stage-${g.name}-${m.id}`,type:"stage",title:`${g.name} / ${m.name}`,subtitle:`Jump to ${m.name}`,data:{project:g,stage:m.id},status:u(g,m.id)})}return h});function d(h){var b,m,x,k,C;const g=((C=(k=(m=(b=h.state)==null?void 0:b.progress)==null?void 0:m.stages)==null?void 0:k[(x=h.state)==null?void 0:x.currentStage])==null?void 0:C.steps)||[];return g.some(y=>y.status==="failed")?"failed":g.some(y=>y.status==="in-progress")?"in-progress":g.every(y=>y.status==="completed")?"completed":"pending"}function u(h,g){var m,x,k,C;const b=((C=(k=(x=(m=h.state)==null?void 0:m.progress)==null?void 0:x.stages)==null?void 0:k[g])==null?void 0:C.steps)||[];return b.length?b.some(y=>y.status==="failed")?"failed":b.some(y=>y.status==="in-progress")?"in-progress":b.every(y=>y.status==="completed")?"completed":"pending":"pending"}function f(){o.value="",a.value=0,r("close")}function v(h){h.type==="project"?r("select-project",h.data):r("select-stage",h.data),f()}function p(h){h.key==="ArrowDown"?(h.preventDefault(),a.value=Math.min(a.value+1,s.value.length-1)):h.key==="ArrowUp"?(h.preventDefault(),a.value=Math.max(a.value-1,0)):h.key==="Enter"?(h.preventDefault(),s.value[a.value]&&v(s.value[a.value])):h.key==="Escape"&&(h.preventDefault(),f())}return dt(s,()=>{a.value=0}),dt(()=>n.isOpen,h=>{h&&It(()=>{var g;(g=i.value)==null||g.focus()})}),(h,g)=>{const b=pn("n-input"),m=pn("n-empty"),x=pn("n-modal");return We(),mn(x,{show:e.isOpen,"onUpdate:show":g[1]||(g[1]=k=>h.$emit("close")),"mask-closable":!0,"transform-origin":"center",style:{"max-width":"480px"}},{default:Rn(()=>[Ae("div",CG,[Ae("div",SG,[Dt(b,{value:o.value,"onUpdate:value":g[0]||(g[0]=k=>o.value=k),placeholder:"搜索项目或命令...",ref_key:"searchInput",ref:i,onKeydown:p,size:"small"},{prefix:Rn(()=>[(We(),Xe("svg",kG,[...g[2]||(g[2]=[Ae("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"},null,-1)])]))]),_:1},8,["value"])]),Ae("div",RG,[s.value.length===0?(We(),mn(m,{key:0,description:"无结果",style:{padding:"40px 0"}})):(We(),Xe("div",$G,[(We(!0),Xe(kt,null,or(s.value,(k,C)=>(We(),Xe("div",{key:k.id,class:yr(["px-4 py-2.5 cursor-pointer transition-colors duration-100 flex items-center gap-3"]),style:$n({background:a.value===C?"rgba(217,119,6,0.06)":"transparent"}),onClick:y=>v(k),onMouseenter:y=>a.value=C},[Ae("div",zG,Ct(k.type==="project"?"□":"◇"),1),Ae("div",TG,[Ae("div",_G,Ct(k.title),1),Ae("div",OG,Ct(k.subtitle),1)]),k.status?(We(),mn(rd,{key:0,status:k.status,size:"sm"},null,8,["status"])):Ft("",!0)],44,PG))),128))]))]),g[3]||(g[3]=Ae("div",{class:"px-4 py-2 flex items-center gap-4 text-[9px] font-mono-log",style:{"border-top":"1px solid #F0F0F3",color:"#D1D1D6"}},[Ae("span",null,[Ae("kbd",{class:"px-1 rounded-sm",style:{background:"#F0F0F3",border:"1px solid #F0F0F3"}},"↑↓"),On(" 导航")]),Ae("span",null,[Ae("kbd",{class:"px-1 rounded-sm",style:{background:"#F0F0F3",border:"1px solid #F0F0F3"}},"↵"),On(" 打开")]),Ae("span",null,[Ae("kbd",{class:"px-1 rounded-sm",style:{background:"#F0F0F3",border:"1px solid #F0F0F3"}},"esc"),On(" 关闭")])],-1))])]),_:1},8,["show"])}}},MG={class:"h-screen w-screen flex flex-col overflow-hidden font-[DM_Sans,sans-serif] relative",style:{"background-color":"#F5F5F7"}},IG={class:"flex-1 overflow-hidden accent-stripe flex flex-col",style:{"min-width":"300px"}},k0="dashboard-panel-widths",R0=180,$0=260,AG=240,DG=340,BG={__name:"App",setup(e){const t=RU(),n=$U(),r=D(!1),o=D(null),i=D([]),a=D(null),l=D(null),s=D(AG),d=D(DG),u=D(!1);try{const T=JSON.parse(localStorage.getItem(k0));(T==null?void 0:T.left)>=R0&&(s.value=T.left),(T==null?void 0:T.right)>=$0&&(d.value=T.right)}catch{}function f(){localStorage.setItem(k0,JSON.stringify({left:s.value,right:d.value}))}function v(T){T.preventDefault(),u.value=!0;const O=T.clientX,A=s.value,B=H=>{const L=H.clientX-O;s.value=Math.max(R0,A+L)},E=()=>{window.removeEventListener("mousemove",B),window.removeEventListener("mouseup",E),u.value=!1,f()};window.addEventListener("mousemove",B),window.addEventListener("mouseup",E)}function p(T){T.preventDefault(),u.value=!0;const O=T.clientX,A=d.value,B=H=>{const L=O-H.clientX;d.value=Math.max($0,A+L)},E=()=>{window.removeEventListener("mousemove",B),window.removeEventListener("mouseup",E),u.value=!1,f()};window.addEventListener("mousemove",B),window.addEventListener("mouseup",E)}zU({onOpenCommandPalette:()=>{r.value=!0},onClose:()=>{r.value?r.value=!1:n.state.activeStep?n.state.activeStep=null:n.closePanel()}}),Lt(()=>{t.on("projects:init",T=>{n.updateProjects(T)}),t.on("projects:updated",T=>{n.updateProjects(T)}),t.on("cli:output",T=>{T.projectName===n.activeProjectName.value&&n.appendLog(T.output)}),t.on("cli:complete",T=>{T.projectName===n.activeProjectName.value&&(n.setExecuting(null),o.value={exitCode:T.exitCode,signal:T.signal})}),t.on("cli:started",T=>{T.projectName===n.activeProjectName.value&&(n.setExecuting(T.projectName),o.value=null)}),t.on("cli:killed",T=>{T.projectName===n.activeProjectName.value&&(n.setExecuting(null),o.value={exitCode:-1,signal:"SIGTERM"})}),t.on("scan:paths",T=>{i.value=T}),t.on("docs:tree",T=>{n.updateDocs(T)})});function h(T){n.selectProject(T),n.selectDocFile(null),n.setDocContent(""),T!=null&&T.path&&t.send({type:"docs:get",data:{projectPath:T.path}})}function g({project:T,stage:O}){n.selectProject(T)}function b(T){n.selectStep(T)}function m(T){n.setActiveTab(T)}function x(T){n.selectDocFile(T),n.setDocLoading(!0),fetch(`/api/docs/content?path=${encodeURIComponent(T.path)}`).then(O=>O.ok?O.text():"").then(O=>{n.setDocContent(O),n.setDocLoading(!1)}).catch(()=>{n.setDocContent(""),n.setDocLoading(!1)})}function k(){const T=n.activeProjectName.value;T&&(n.clearLogs(),t.send({type:"cli:execute",data:{projectName:T,command:"next"}}))}function C(){const T=n.activeProjectName.value;T&&t.send({type:"cli:kill",data:{projectName:T}})}function y(T){t.send({type:"scan:add-path",data:{path:T}})}function R(T){t.send({type:"scan:remove-path",data:{path:T}})}async function $(T){const O=n.state.activeProject;if(O!=null&&O.path){a.value=T,l.value=null,n.openPanel();try{const A=`/api/projects/${encodeURIComponent(O.path)}/detail?type=${T}`,B=await fetch(A);B.ok&&(l.value=await B.json())}catch{}}}function P(){a.value=null,l.value=null,n.closePanel()}function z(T){a.value=null,l.value=null,n.setActiveTab("docs"),x(T)}const F={common:{primaryColor:"#D97706",primaryColorHover:"#F59E0B",primaryColorPressed:"#B45309",borderRadius:"6px",fontFamily:"DM Sans, sans-serif",fontFamilyMono:"JetBrains Mono, monospace"}};return(T,O)=>{const A=pn("n-config-provider");return We(),mn(A,{"theme-overrides":F},{default:Rn(()=>[Ae("div",MG,[O[2]||(O[2]=Ae("div",{class:"absolute inset-0 pointer-events-none",style:{background:"radial-gradient(ellipse 60% 40% at 10% 20%, rgba(251,191,36,0.04) 0%, transparent 70%), radial-gradient(ellipse 50% 50% at 90% 80%, rgba(251,191,36,0.02) 0%, transparent 70%)"}},null,-1)),Ae("div",{class:"flex-1 flex overflow-hidden relative z-10",style:$n(u.value?"user-select: none":"")},[Ae("aside",{class:"flex-shrink-0 relative overflow-hidden",style:$n(`width: ${s.value}px; background: #FFFFFF; border-right: none;`)},[Dt(ZU,{projects:vn(n).state.projects,"active-project":vn(n).state.activeProject,"is-loading":vn(n).state.isLoading,"scan-paths":i.value,onSelect:h,"onScan:addPath":y,"onScan:removePath":R},null,8,["projects","active-project","is-loading","scan-paths"])],4),Ae("div",{class:"w-[2px] flex-shrink-0 cursor-col-resize hover:bg-[#D97706] active:bg-[#D97706] relative z-20",style:{background:"#2A3040"},onMousedown:v},null,32),Ae("main",IG,[Dt(wG,{project:vn(n).state.activeProject,onShowDetail:$},null,8,["project"]),Dt(Fq,{project:vn(n).state.activeProject,"active-step":vn(n).state.activeStep,"active-tab":vn(n).state.activeTab,docs:vn(n).state.docs,"selected-doc-file":vn(n).state.selectedDocFile,"doc-content":vn(n).state.docContent,"doc-loading":vn(n).state.docLoading,onSelectStep:b,onSwitchTab:m,onSelectDocFile:x},null,8,["project","active-step","active-tab","docs","selected-doc-file","doc-content","doc-loading"])]),vn(n).state.isPanelOpen?(We(),Xe("div",{key:0,class:"w-[2px] flex-shrink-0 cursor-col-resize hover:bg-[#D97706] active:bg-[#D97706] relative z-20",style:{background:"#2A3040"},onMousedown:p},null,32)):Ft("",!0),Ae("aside",{class:yr(["flex-shrink-0 relative overflow-hidden",vn(n).state.isPanelOpen?"":"w-0"]),style:$n(vn(n).state.isPanelOpen?`width: ${d.value}px; background: #FFFFFF; transition: none;`:"background: #FFFFFF;")},[Dt(qY,{"is-open":vn(n).state.isPanelOpen,"active-step":vn(n).state.activeStep,logs:vn(n).state.logs,"detail-type":a.value,"detail-data":l.value,onClose:P,onClearLogs:vn(n).clearLogs,onOpenDocFile:z},null,8,["is-open","active-step","logs","detail-type","detail-data","onClearLogs"])],6)],4),Dt(rG,{project:vn(n).state.activeProject,"is-executing":vn(n).state.executingProject!==null,"execution-result":o.value,"is-panel-open":vn(n).state.isPanelOpen,onExecute:k,onKill:C,onTogglePanel:vn(n).togglePanel,onOpenPalette:O[0]||(O[0]=B=>r.value=!0)},null,8,["project","is-executing","execution-result","is-panel-open","onTogglePanel"]),Dt(FG,{"is-open":r.value,projects:vn(n).state.projects,onClose:O[1]||(O[1]=B=>r.value=!1),onSelectProject:h,onSelectStage:g},null,8,["is-open","projects"])])]),_:1})}}},aR=Kx(BG);aR.use(G2);aR.mount("#app")});export default EG();
@@ -0,0 +1 @@
1
+ .slide-enter-active[data-v-b5f771a9],.slide-leave-active[data-v-b5f771a9]{transition:all .2s ease}.slide-enter-from[data-v-b5f771a9],.slide-leave-to[data-v-b5f771a9]{opacity:0;max-height:0;overflow:hidden}.slide-enter-to[data-v-b5f771a9],.slide-leave-from[data-v-b5f771a9]{max-height:300px}.line-clamp-2[data-v-fac2f74c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.doc-preview[data-v-fc57afbe]{font-size:13px;line-height:1.7;color:#374151}.doc-preview[data-v-fc57afbe] h1{color:#d97706;font-size:18px;font-weight:700;margin:0 0 16px;border-bottom:1px solid #E5E5EA;padding-bottom:8px}.doc-preview[data-v-fc57afbe] h2{color:#1c1c1e;font-size:15px;font-weight:600;margin:20px 0 10px}.doc-preview[data-v-fc57afbe] h3{color:#d97706;font-size:14px;font-weight:600;margin:16px 0 8px}.doc-preview[data-v-fc57afbe] p{margin:8px 0}.doc-preview[data-v-fc57afbe] strong{color:#1c1c1e;font-weight:600}.doc-preview[data-v-fc57afbe] a{color:#d97706;text-decoration:none}.doc-preview[data-v-fc57afbe] a:hover{text-decoration:underline}.doc-preview[data-v-fc57afbe] code{background:#e5e5ea;color:#1c1c1e;padding:1px 5px;border-radius:3px;font-size:12px;font-family:JetBrains Mono,monospace}.doc-preview[data-v-fc57afbe] pre{background:#1c1c1e;color:#e5e5e7;border:1px solid #E5E5EA;border-radius:6px;padding:12px 16px;overflow-x:auto;font-size:12px;margin:8px 0;line-height:1.5}.doc-preview[data-v-fc57afbe] pre code{background:none;color:inherit;padding:0;border-radius:0;font-size:inherit}.doc-preview[data-v-fc57afbe] ul,.doc-preview[data-v-fc57afbe] ol{padding-left:20px;margin:8px 0;color:#374151}.doc-preview[data-v-fc57afbe] li{margin:4px 0}.doc-preview[data-v-fc57afbe] blockquote{border-left:3px solid #D97706;padding-left:12px;margin:12px 0;color:#636366;font-style:italic}.doc-preview[data-v-fc57afbe] table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}.doc-preview[data-v-fc57afbe] thead th{background:#f0f0f3;color:#1c1c1e;font-weight:600;text-align:left;padding:8px 12px;border:1px solid #E5E5EA}.doc-preview[data-v-fc57afbe] tbody td{padding:6px 12px;border:1px solid #E5E5EA;color:#374151}.doc-preview[data-v-fc57afbe] tbody tr:hover{background:#f9fafb}.doc-preview[data-v-fc57afbe] hr{border:none;border-top:1px solid #E5E5EA;margin:16px 0}.project-overview[data-v-543019d4]{display:flex;align-items:center;background:#fff;border-bottom:1px solid #E5E5EA;padding:8px 16px;min-height:48px;gap:8px;flex-shrink:0;overflow-x:auto}.ov-section[data-v-543019d4]{display:flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0}.ov-clickable[data-v-543019d4]{cursor:pointer;border-radius:4px;padding:2px 6px;margin:-2px -6px;transition:background .15s}.ov-clickable[data-v-543019d4]:hover{background:#d977060f}.ov-name[data-v-543019d4]{font-weight:600;font-size:13px;color:#1c1c1e}.ov-path[data-v-543019d4],.ov-label[data-v-543019d4]{font-size:11px;color:#636366}.ov-value[data-v-543019d4]{font-size:12px;color:#1c1c1e;font-weight:500}.ov-tag[data-v-543019d4]{font-size:10px;padding:1px 8px;border-radius:10px;background:#d9770614;color:#d97706;font-weight:500}.ov-divider[data-v-543019d4]{width:1px;height:20px;background:#e5e5ea;flex-shrink:0}.ov-git[data-v-543019d4]{margin-left:auto;gap:10px}.ov-branch[data-v-543019d4]{font-size:11px;color:#636366;background:#f5f5f7;padding:1px 8px;border-radius:4px}.ov-commit[data-v-543019d4]{font-size:11px;color:#636366;max-width:200px;overflow:hidden;text-overflow:ellipsis}.ov-dirty[data-v-543019d4]{font-size:11px;color:#d97706;font-weight:500}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100vw;height:100vh;overflow:hidden}/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--animate-pulse-dot:pulse-dot 1.5s ease-in-out infinite}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-20{z-index:20}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing) * 4)}.-mt-0\.5{margin-top:calc(var(--spacing) * -.5)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.h-1{height:calc(var(--spacing) * 1)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.h-\[2px\]{height:2px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-72{max-height:calc(var(--spacing) * 72)}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-\[2px\]{width:2px}.w-\[200px\]{width:200px}.w-\[340px\]{width:340px}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse-dot{animation:var(--animate-pulse-dot)}.cursor-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-px>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(1px * var(--tw-space-y-reverse));margin-block-end:calc(1px * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.p-3{padding:calc(var(--spacing) * 3)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-px{padding-block:1px}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-\[3px\]{padding-left:3px}.text-center{text-align:center}.font-\[DM_Sans\,sans-serif\]{font-family:DM Sans,sans-serif}.font-\[JetBrains_Mono\,monospace\]{font-family:JetBrains Mono,monospace}.font-mono{font-family:var(--font-mono)}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[18px\]{font-size:18px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\[0\.25em\]{--tw-tracking:.25em;letter-spacing:.25em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-black{color:var(--color-black)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:bg-\[\#D97706\]:hover{background-color:#d97706}.hover\:bg-\[\#FEF3C7\]:hover{background-color:#fef3c7}}.active\:bg-\[\#D97706\]:active{background-color:#d97706}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 12px 2px #fbbf2426}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}@keyframes breathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slide-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-border{0%,to{border-color:#fbbf2426}50%{border-color:#fbbf2480}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.font-mono-log{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.noise-bg{position:relative}.noise-bg:before{content:"";pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");position:absolute;top:0;right:0;bottom:0;left:0}.accent-stripe{background:repeating-linear-gradient(-45deg,#0000,#0000 8px,#fbbf2408 8px,#fbbf2408 9px)}.progress-gradient{background:linear-gradient(90deg,#fbbf24,#f59e0b,#fb923c)}.skeleton-shimmer{background:linear-gradient(90deg,#1a1e28 25%,#2a3040,#1a1e28 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#2a3040;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#3a4555}*{scrollbar-width:thin;scrollbar-color:#2a2a2d transparent}::selection{color:#fbbf24;background:#fbbf2433}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
@@ -7,8 +7,8 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com">
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
9
  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
10
- <script type="module" crossorigin src="/assets/index-Bx0cgoK_.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-DbkUSsNO.css">
10
+ <script type="module" crossorigin src="/assets/index-D1EVTLmc.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-DGe8CqeP.css">
12
12
  </head>
13
13
  <body style="background-color: #0A0A0B; margin: 0;">
14
14
  <div id="app"></div>