zero-workspace 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/dist/services/TutorialService.d.ts.map +1 -1
  3. package/dist/services/TutorialService.js +16 -4
  4. package/dist/services/TutorialService.js.map +1 -1
  5. package/package.json +5 -5
  6. package/web/dist/assets/{DocsView-CQswvKCH.js → DocsView-DfmXo6_m.js} +1 -1
  7. package/web/dist/assets/{HomeView-BgyZ7_HN.js → HomeView-DLpZ1veY.js} +2 -2
  8. package/web/dist/assets/{MarkdownContent-CJ47tJKg.js → MarkdownContent-Bui6aG36.js} +4 -4
  9. package/web/dist/assets/{NotFoundView-CRYu5sE7.js → NotFoundView-l1Kufoa7.js} +1 -1
  10. package/web/dist/assets/{WorkspaceView-cT0Ha52p.js → WorkspaceView-Dt7RLJq6.js} +1 -1
  11. package/web/dist/assets/{WsConfirmDialog-CSIOLUym.js → WsConfirmDialog-C_ycN7Jx.js} +1 -1
  12. package/web/dist/assets/{arc-BhdPZFok.js → arc-BBmrR2I5.js} +1 -1
  13. package/web/dist/assets/{architectureDiagram-VXUJARFQ-qT7x6ZyJ.js → architectureDiagram-VXUJARFQ-7QxzA3uE.js} +1 -1
  14. package/web/dist/assets/{blockDiagram-VD42YOAC-FntJPxlH.js → blockDiagram-VD42YOAC-B2hhviEi.js} +1 -1
  15. package/web/dist/assets/{c4Diagram-YG6GDRKO-DvcT8MyD.js → c4Diagram-YG6GDRKO-B9XeYWP5.js} +1 -1
  16. package/web/dist/assets/channel-fwcoiS4i.js +1 -0
  17. package/web/dist/assets/{chunk-4BX2VUAB-fszQf7Eo.js → chunk-4BX2VUAB-lg6Mp61u.js} +1 -1
  18. package/web/dist/assets/{chunk-55IACEB6-Bp27oGW8.js → chunk-55IACEB6-CtZhLjLW.js} +1 -1
  19. package/web/dist/assets/{chunk-B4BG7PRW-COhYiTSR.js → chunk-B4BG7PRW-BWhzqp_d.js} +1 -1
  20. package/web/dist/assets/{chunk-DI55MBZ5-Bxw8nfiU.js → chunk-DI55MBZ5-D49qqwe_.js} +1 -1
  21. package/web/dist/assets/{chunk-FMBD7UC4-DAibdxYL.js → chunk-FMBD7UC4-CyUmuJEq.js} +1 -1
  22. package/web/dist/assets/{chunk-QN33PNHL-9tOT3KBp.js → chunk-QN33PNHL--qaN5Oqj.js} +1 -1
  23. package/web/dist/assets/{chunk-QZHKN3VN-COgzRb-m.js → chunk-QZHKN3VN-CBTwzWuu.js} +1 -1
  24. package/web/dist/assets/{chunk-TZMSLE5B-LtOYxekI.js → chunk-TZMSLE5B-DAzpqhfJ.js} +1 -1
  25. package/web/dist/assets/classDiagram-2ON5EDUG-Bs2GjxWn.js +1 -0
  26. package/web/dist/assets/classDiagram-v2-WZHVMYZB-Bs2GjxWn.js +1 -0
  27. package/web/dist/assets/{cose-bilkent-S5V4N54A-WAwIvAk6.js → cose-bilkent-S5V4N54A-SXRgr_47.js} +1 -1
  28. package/web/dist/assets/{dagre-6UL2VRFP-D9BKfXHZ.js → dagre-6UL2VRFP-CBPCWYA4.js} +1 -1
  29. package/web/dist/assets/{diagram-PSM6KHXK-B2nWnBPB.js → diagram-PSM6KHXK-_d6ZGoZG.js} +1 -1
  30. package/web/dist/assets/{diagram-QEK2KX5R-D8r_n0Uq.js → diagram-QEK2KX5R-Chmx8IqJ.js} +1 -1
  31. package/web/dist/assets/{diagram-S2PKOQOG-DA1BoPoO.js → diagram-S2PKOQOG-CGUXsaVc.js} +1 -1
  32. package/web/dist/assets/{erDiagram-Q2GNP2WA-CRgIOH2t.js → erDiagram-Q2GNP2WA-Co1B9FQN.js} +1 -1
  33. package/web/dist/assets/{flowDiagram-NV44I4VS-kTfrwbY0.js → flowDiagram-NV44I4VS-DUItmTH1.js} +1 -1
  34. package/web/dist/assets/{ganttDiagram-JELNMOA3-E5jVX7wn.js → ganttDiagram-JELNMOA3-BidyAEtb.js} +1 -1
  35. package/web/dist/assets/{gitGraphDiagram-NY62KEGX-DUlumhPv.js → gitGraphDiagram-NY62KEGX-uEEbLu2T.js} +1 -1
  36. package/web/dist/assets/{graph-CMQa_SOD.js → graph-BN6ojRZR.js} +1 -1
  37. package/web/dist/assets/{index-BIrlitjL.js → index-niFbQLQj.js} +2 -2
  38. package/web/dist/assets/{infoDiagram-WHAUD3N6-B8H8Z83I.js → infoDiagram-WHAUD3N6-hcXt8G4H.js} +1 -1
  39. package/web/dist/assets/{journeyDiagram-XKPGCS4Q-CIgTTzYt.js → journeyDiagram-XKPGCS4Q-DiSF_KtB.js} +1 -1
  40. package/web/dist/assets/{kanban-definition-3W4ZIXB7-la89kDpH.js → kanban-definition-3W4ZIXB7-ka8qLbDU.js} +1 -1
  41. package/web/dist/assets/{layout-BJzmMPFp.js → layout-DTmf-Ivv.js} +1 -1
  42. package/web/dist/assets/{linear-Doax3Tpd.js → linear-9iMSNV55.js} +1 -1
  43. package/web/dist/assets/{min-BmSRl5Ci.js → min-B98zcCgP.js} +1 -1
  44. package/web/dist/assets/{mindmap-definition-VGOIOE7T-Ciwq1Lex.js → mindmap-definition-VGOIOE7T-IW2zmP05.js} +1 -1
  45. package/web/dist/assets/{pieDiagram-ADFJNKIX-DH5jBhNk.js → pieDiagram-ADFJNKIX-DKbe86y4.js} +1 -1
  46. package/web/dist/assets/{quadrantDiagram-AYHSOK5B-BtOtsGoi.js → quadrantDiagram-AYHSOK5B-CEQwgq6q.js} +1 -1
  47. package/web/dist/assets/{reduce-DEC47oEW.js → reduce-D2CQ7vuQ.js} +1 -1
  48. package/web/dist/assets/{requirementDiagram-UZGBJVZJ-CtHndIik.js → requirementDiagram-UZGBJVZJ-CssRZpu5.js} +1 -1
  49. package/web/dist/assets/{sankeyDiagram-TZEHDZUN-DLgILZkk.js → sankeyDiagram-TZEHDZUN-C9XC8_CF.js} +1 -1
  50. package/web/dist/assets/{sequenceDiagram-WL72ISMW-DDFwaXEl.js → sequenceDiagram-WL72ISMW-Bucdov3N.js} +1 -1
  51. package/web/dist/assets/{stateDiagram-FKZM4ZOC-COXv7Jt7.js → stateDiagram-FKZM4ZOC-DSEsGI-B.js} +1 -1
  52. package/web/dist/assets/stateDiagram-v2-4FDKWEC3-BX0oUqA7.js +1 -0
  53. package/web/dist/assets/{timeline-definition-IT6M3QCI-LVP3dide.js → timeline-definition-IT6M3QCI-cWgLquVe.js} +1 -1
  54. package/web/dist/assets/{treemap-KMMF4GRG-BX_PQBHz.js → treemap-KMMF4GRG-CYPCJAK_.js} +1 -1
  55. package/web/dist/assets/{xychartDiagram-PRI3JC2R-DeBzZb_r.js → xychartDiagram-PRI3JC2R-C9kM6ke8.js} +1 -1
  56. package/web/dist/index.html +1 -1
  57. package/web/dist/assets/channel-Co3du3F-.js +0 -1
  58. package/web/dist/assets/classDiagram-2ON5EDUG-BKdgYPyl.js +0 -1
  59. package/web/dist/assets/classDiagram-v2-WZHVMYZB-BKdgYPyl.js +0 -1
  60. package/web/dist/assets/stateDiagram-v2-4FDKWEC3-C5xOA2n-.js +0 -1
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="https://gitee.com/zengzr/ZeroWorkspace/raw/master/assets/login.svg" alt="ZeroWorkspace" height="48">
2
+ <img src="assets/login.svg" alt="ZeroWorkspace" height="48">
3
3
  </p>
4
4
  <h3 align="center">AI 编程任务的结构化管理方案</h3>
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"TutorialService.d.ts","sourceRoot":"","sources":["../../src/services/TutorialService.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAugBpD;;;GAGG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;gBARJ,SAAS,EAAE,gBAAgB,EAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW;IAG3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAyCxC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmC7E;;;;;OAKG;YACW,4BAA4B;IAmB1C;;;OAGG;YACW,gBAAgB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA2DrB;;;;OAIG;YACW,4BAA4B;IAoB1C;;;OAGG;YACW,sBAAsB;IAoBpC;;;;;OAKG;YACW,eAAe;IAqS7B;;OAEG;YACW,uBAAuB;IA6FrC;;OAEG;YACW,WAAW;IAiGzB;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,kBAAkB;IAmBhC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CA4B1B"}
1
+ {"version":3,"file":"TutorialService.d.ts","sourceRoot":"","sources":["../../src/services/TutorialService.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAugBpD;;;GAGG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;gBARJ,SAAS,EAAE,gBAAgB,EAC3B,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,WAAW;IAG3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAuDxC;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAmC7E;;;;;OAKG;YACW,4BAA4B;IAmB1C;;;OAGG;YACW,gBAAgB;IAmB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA2DrB;;;;OAIG;YACW,4BAA4B;IAoB1C;;;OAGG;YACW,sBAAsB;IAoBpC;;;;;OAKG;YACW,eAAe;IAqS7B;;OAEG;YACW,uBAAuB;IA6FrC;;OAEG;YACW,WAAW;IAiGzB;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,kBAAkB;IAmBhC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CA4B1B"}
@@ -521,10 +521,22 @@ export class TutorialService {
521
521
  // 1. 检查是否需要创建教程工作区(只创建一次)
522
522
  if (!currentConfig.tutorialCreated) {
523
523
  try {
524
- await this.createTutorialWorkspace();
525
- configUpdates.tutorialCreated = true;
526
- configUpdates.tutorialVersion = TUTORIAL_VERSION;
527
- needsConfigUpdate = true;
524
+ // 先检查工作区是否已存在(配置标记可能丢失)
525
+ const tutorialDir = this.getTutorialDir();
526
+ const existingWorkspaces = await this.workspace.list({});
527
+ const introWs = existingWorkspaces.workspaces.find(ws => ws.name === TUTORIAL_CONTENT.name && ws.projectRoot === tutorialDir);
528
+ if (introWs) {
529
+ // 工作区已存在,只需更新配置标记
530
+ configUpdates.tutorialCreated = true;
531
+ needsConfigUpdate = true;
532
+ }
533
+ else {
534
+ // 工作区不存在,创建新工作区
535
+ await this.createTutorialWorkspace();
536
+ configUpdates.tutorialCreated = true;
537
+ configUpdates.tutorialVersion = TUTORIAL_VERSION;
538
+ needsConfigUpdate = true;
539
+ }
528
540
  }
529
541
  catch (err) {
530
542
  console.error("[Tutorial] Failed to create tutorial workspace:", err);
@@ -1 +1 @@
1
- {"version":3,"file":"TutorialService.js","sourceRoot":"","sources":["../../src/services/TutorialService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TutorialService.js","sourceRoot":"","sources":["../../src/services/TutorialService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zero-workspace",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "ZeroWorkspace MCP Server - 面向 AI 编程助手的分形任务跟踪系统",
5
5
  "type": "module",
6
6
  "main": "dist/cli/check-node-version.js",
@@ -25,13 +25,13 @@
25
25
  ],
26
26
  "repository": {
27
27
  "type": "git",
28
- "url": "git+https://github.com/zeroka/ZeroWorkspace.git"
28
+ "url": "git+https://gitee.com/zengzr/ZeroWorkspace.git"
29
29
  },
30
- "homepage": "https://github.com/zeroka/ZeroWorkspace#readme",
30
+ "homepage": "https://gitee.com/zengzr/ZeroWorkspace.git#readme",
31
31
  "bugs": {
32
- "url": "https://github.com/zeroka/ZeroWorkspace/issues"
32
+ "url": "https://gitee.com/zengzr/ZeroWorkspace.git/issues"
33
33
  },
34
- "author": "Zero <zeroka0106@gmail.com>",
34
+ "author": "Zero",
35
35
  "scripts": {
36
36
  "build": "tsc",
37
37
  "build:all": "tsc && cd web && npm run build",
@@ -1,4 +1,4 @@
1
- import{d as x,r as d,j as v,l as S,n as W,p as E,e as l,f as e,g as _,F as C,q as T,s as y,t as P,h as U,o as I,v as M,w as O,_ as z}from"./index-BIrlitjL.js";import{aC as R}from"./MarkdownContent-CJ47tJKg.js";const h=`# ZeroWorkspace 用户手册\r
1
+ import{d as x,r as d,j as v,l as S,n as W,p as E,e as l,f as e,g as _,F as C,q as T,s as y,t as P,h as U,o as I,v as M,w as O,_ as z}from"./index-niFbQLQj.js";import{aC as R}from"./MarkdownContent-Bui6aG36.js";const h=`# ZeroWorkspace 用户手册\r
2
2
  \r
3
3
  > AI 编程任务的结构化管理方案\r
4
4
  \r
@@ -1,9 +1,9 @@
1
- import{d as _e,r as i,e as n,o as l,v as E,f as e,w as c,J as Ye,_ as De,K as Ee,L as Fe,s as k,T as qe,M as $,N as Qe,I as b,F as z,q as re,$ as be,a0 as xe,O as x,P as je,a1 as Ve,j as ye,a2 as $e,a3 as Xe,a4 as et,a5 as Pe,t as Ce,l as Le,g as Re,a6 as tt,h as st}from"./index-BIrlitjL.js";import{W as F,a as ie,b as Se,w as Ie,u as at,g as lt}from"./WsConfirmDialog-CSIOLUym.js";import{aC as nt}from"./MarkdownContent-CJ47tJKg.js";const ot="/logo.svg",it={class:"collapse-title"},rt={class:"collapse-content-wrapper"},dt={class:"collapse-content"},ut=_e({__name:"WsCollapse",props:{title:{},defaultOpen:{type:Boolean,default:!1}},setup(Q,{expose:de}){const h=i(Q.defaultOpen);function f(){h.value=!h.value}return de({toggle:f,isOpen:h}),(B,T)=>(l(),n("div",{class:E(["ws-collapse",{"is-open":h.value}])},[e("div",{class:"collapse-header",onClick:f},[T[0]||(T[0]=e("span",{class:"collapse-arrow"},[e("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e("path",{d:"M4.5 2.5L8 6L4.5 9.5",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),e("span",it,c(Q.title),1)]),e("div",rt,[e("div",dt,[Ye(B.$slots,"default",{},void 0,!0)])])],2))}}),Ue=De(ut,[["__scopeId","data-v-28a9ec4c"]]),ct={class:"dialog-body"},vt={class:"workspace-preview"},pt={class:"workspace-list"},ft={class:"workspace-name"},mt={key:0,class:"workspace-existing"},gt={class:"target-dir-section"},yt={class:"target-input-row"},kt={class:"dialog-footer"},ht=_e({__name:"ImportConfirmModal",props:{modelValue:{type:Boolean},workspaces:{},defaultTargetDir:{default:""}},emits:["update:modelValue","confirm","cancel"],setup(Q,{emit:de}){const C=Q,h=de,f=i(C.modelValue),B=i(C.defaultTargetDir);Ee(()=>C.modelValue,R=>{f.value=R,R&&(B.value=C.defaultTargetDir)});function T(){h("update:modelValue",!1),h("confirm",B.value)}function A(){h("update:modelValue",!1),h("cancel")}function _(){A()}async function P(){try{const R=await ie.pickDirectory();R.path&&(B.value=R.path)}catch(R){console.error("无法打开目录选择器:",R)}}return(R,y)=>(l(),Fe(Qe,{to:"body"},[k(qe,{name:"modal-fade"},{default:$(()=>[f.value?(l(),n("div",{key:0,class:"dialog-overlay",onClick:_},[e("div",{class:"dialog",onClick:y[1]||(y[1]=je(()=>{},["stop"]))},[e("div",{class:"dialog-header"},[y[3]||(y[3]=e("span",{class:"dialog-title"},"确认导入",-1)),e("button",{class:"dialog-close",onClick:A},[...y[2]||(y[2]=[e("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[e("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])]),e("div",ct,[e("div",vt,[y[4]||(y[4]=e("div",{class:"preview-label"},"将导入以下工作区:",-1)),e("div",pt,[(l(!0),n(z,null,re(Q.workspaces,O=>(l(),n("div",{key:O.id,class:"workspace-item"},[e("span",ft,c(O.name),1),O.isNew?b("",!0):(l(),n("span",mt,"(已存在)"))]))),128))])]),e("div",gt,[y[6]||(y[6]=e("div",{class:"target-label"},"目标目录:",-1)),e("div",yt,[be(e("input",{type:"text",class:"target-input","onUpdate:modelValue":y[0]||(y[0]=O=>B.value=O),placeholder:"选择目标目录..."},null,512),[[xe,B.value]]),k(F,{size:"sm",variant:"secondary",onClick:P},{default:$(()=>[...y[5]||(y[5]=[x("浏览",-1)])]),_:1})]),y[7]||(y[7]=e("div",{class:"target-hint"},"工作区将被复制到此目录的 .zero-workspace 子目录下",-1))])]),e("div",kt,[k(F,{variant:"secondary",size:"sm",onClick:A},{default:$(()=>[...y[8]||(y[8]=[x(" 取消 ",-1)])]),_:1}),k(F,{variant:"primary",size:"sm",onClick:T},{default:$(()=>[...y[9]||(y[9]=[x(" 确认导入 ",-1)])]),_:1})])])])):b("",!0)]),_:1})]))}}),wt=De(ht,[["__scopeId","data-v-ea968292"]]),bt={class:"index-management"},Ct={class:"stats-bar"},$t={class:"stats-item"},xt={class:"stats-number"},_t={class:"stats-item"},Dt={class:"stats-number success"},Tt={class:"stats-item"},It={class:"function-block"},St={key:1,class:"selected-item"},Et={class:"selected-info"},Mt={class:"selected-name"},Vt={class:"selected-meta"},Bt={key:2,class:"selected-item"},At={class:"selected-info"},Rt={class:"selected-name"},Pt={class:"selected-meta"},Nt={key:3,class:"import-action-bar"},zt={class:"target-dir-group"},Lt={key:4,class:"action-row"},Ut={key:6,class:"manual-input-area"},Ot={class:"drop-zone-text"},Wt={class:"alt-input-row"},Ft={key:0,class:"warning-list"},jt={class:"function-block"},Gt={class:"function-header"},Ht={key:0,class:"result-area"},Kt={key:0,class:"change-section"},Zt={class:"change-header add"},Jt={class:"ws-list"},Yt={class:"ws-name"},qt={key:0,class:"ws-more"},Qt={key:1,class:"change-section"},Xt={class:"change-header remove"},es={class:"ws-list"},ts={class:"ws-name"},ss={class:"ws-reason"},as={key:0,class:"ws-more"},ls={class:"action-row"},ns={key:1,class:"no-changes"},os={key:1,class:"result-area done"},is={class:"result-header"},rs={class:"result-stats"},ds={key:0,class:"stat"},us={class:"stat-num success"},cs={key:1,class:"stat"},vs={class:"stat-num danger"},ps={key:0,class:"ws-list"},fs={class:"ws-name"},ms={class:"ws-name"},gs={key:2,class:"result-area error"},ys={class:"error-content"},ks={class:"error-message"},hs=_e({__name:"IndexManagementModalNew",props:{visible:{type:Boolean}},emits:["update:visible","workspaceImported"],setup(Q,{emit:de}){const C=Ve(),h=Q,f=de,B=i(!1),T=i(null),A=i(!1),_=i(),P=i("none"),R=i(null),y=i(""),O=i(""),H=i(""),W=i("~/.zero-workspace/import/"),D=i(!1),K=i(""),I=i(!1),Y=i(!1),te=i(null),se=i(""),w=i("none"),M=i(""),ue=i([]),N=i("idle"),S=i(null),L=i(null),j=i(null),oe=ye(()=>S.value?S.value.hasChanges:!1),U=ye(()=>P.value!=="none");async function X(){try{T.value=await ie.getIndexStats()}catch(o){console.error("加载索引统计失败:",o)}}Ee(()=>h.visible,async o=>{o&&(B.value=!0,ee(),await X(),B.value=!1)});function ee(){P.value="none",R.value=null,y.value="",O.value="",H.value="",w.value="none",M.value="",ue.value=[],D.value=!1,K.value="",N.value="idle",S.value=null,L.value=null,j.value=null}function ae(){f("update:visible",!1)}function q(){P.value="none",R.value=null,y.value="",O.value="",H.value="",w.value="none",M.value="",ue.value=[]}function ce(o){o.preventDefault(),o.stopPropagation(),A.value=!0}function r(o){o.preventDefault(),o.stopPropagation()}function u(o){o.preventDefault(),o.stopPropagation();const a=_.value;if(a){const g=o.relatedTarget;(!g||!a.contains(g))&&(A.value=!1)}}function p(o){o.preventDefault(),o.stopPropagation(),A.value=!1;const a=o.dataTransfer?.files;if(!a||a.length===0)return;const g=a.item(0);g&&ve(g)}function Z(){const o=document.createElement("input");o.type="file",o.accept=".twsp",o.onchange=a=>{const ge=a.target.files?.[0];ge&&ve(ge)},o.click()}function ve(o){q(),o.name.endsWith(".twsp")?(P.value="file",R.value=o,O.value=o.name,H.value=ke(o.size)):C.warning("拖拽仅支持 .twsp 文件,目录请点击「选择目录」按钮")}function ke(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function Te(){D.value=!D.value}async function V(){try{const o=await ie.pickDirectory();o.path&&(W.value=o.path)}catch{C.error("无法打开目录选择器")}}async function t(){try{const o=await ie.pickDirectory();o.path&&await m(o.path)}catch{C.error("无法打开目录选择器")}}async function m(o){I.value=!0,w.value="none";try{const a=await ie.importPreview(o);if(!a.success){w.value="error",M.value=a.error||"无法识别的工作区",I.value=!1;return}a.needsTargetDir?(te.value=a,se.value=o,Y.value=!0,I.value=!1):await le(o)}catch(a){w.value="error",M.value=a instanceof Error?a.message:"预检查失败",I.value=!1}}async function pe(o){Y.value=!1,I.value=!0;try{await le(se.value,o)}catch(a){w.value="error",M.value=a instanceof Error?a.message:"导入失败"}finally{I.value=!1,te.value=null,se.value=""}}function he(){Y.value=!1,te.value=null,se.value=""}async function le(o,a){try{const g=await ie.import(o,a);g.success?(g.added>0?(w.value="success",M.value=`成功导入 ${g.added} 个工作区`,g.existing>0&&(M.value+=`,${g.existing} 个已存在`),f("workspaceImported")):g.existing>0?(w.value="warning",M.value=`${g.existing} 个工作区已存在于索引中`):(w.value="warning",M.value="未找到可导入的工作区"),q(),D.value=!1,K.value="",await X()):(w.value="error",M.value=g.error||"导入失败")}catch(g){w.value="error",M.value=g instanceof Error?g.message:"导入失败"}finally{I.value=!1}}async function fe(){P.value==="file"&&R.value?await G():(P.value==="directory"||K.value.trim())&&await we()}async function G(){if(R.value){I.value=!0,w.value="none";try{const o=new FormData;o.append("file",R.value),o.append("targetDir",W.value);const a=await ie.importTwsp(o);a.success?(a.warnings&&a.warnings.length>0?(w.value="warning",M.value=`工作区「${a.name||"未知"}」导入成功(有警告)`,ue.value=a.warnings):(w.value="success",M.value=`工作区「${a.name||"未知"}」导入成功`),P.value="none",R.value=null,O.value="",H.value="",await X(),f("workspaceImported")):(w.value="error",M.value=a.error||"导入失败")}catch(o){w.value="error",M.value=o instanceof Error?o.message:"导入失败"}finally{I.value=!1}}}async function we(){const o=y.value||K.value.trim();if(!o){C.warning("请输入目录路径");return}I.value=!0,w.value="none";try{const a=await ie.import(o);a.success?a.added>0?(w.value="success",M.value=`发现并导入了 ${a.added} 个工作区`,P.value="none",y.value="",O.value="",H.value="",D.value=!1,K.value="",await X(),f("workspaceImported")):a.existing>0?(w.value="warning",M.value=`发现 ${a.existing} 个工作区已存在`):(w.value="warning",M.value="未找到有效的工作区"):(w.value="error",M.value=a.error||"导入失败")}catch(a){w.value="error",M.value=a instanceof Error?a.message:"导入失败"}finally{I.value=!1}}async function me(){if(!K.value.trim()){C.warning("请输入路径");return}if(K.value.endsWith(".twsp")){C.warning(".twsp 文件请使用拖拽或点击选择");return}await m(K.value.trim())}async function Me(){N.value="previewing",S.value=null,L.value=null,j.value=null;try{const o=await ie.syncCleanPreview();S.value=o,N.value="previewed",o.hasChanges||C.info("索引已是最新状态")}catch(o){console.error("同步清理预览失败:",o);const a=o instanceof Error?o.message:"预览失败";j.value=a,N.value="error",C.error(a)}}async function Be(){N.value="executing",j.value=null;try{const o=await ie.syncCleanExecute();L.value=o,N.value="done",await X(),(o.added>0||o.removed>0)&&(C.success(`同步完成:新增 ${o.added} 个,清理 ${o.removed} 个`),o.added>0&&f("workspaceImported"))}catch(o){console.error("同步清理执行失败:",o);const a=o instanceof Error?o.message:"执行失败";j.value=a,N.value="error",C.error(a)}}function Ae(){N.value="idle",S.value=null,L.value=null,j.value=null}return(o,a)=>(l(),n(z,null,[k($e,{"model-value":Q.visible,title:"索引管理",width:"500px","onUpdate:modelValue":a[2]||(a[2]=g=>!g&&ae()),onClose:ae},{default:$(()=>[e("div",bt,[e("div",Ct,[e("div",$t,[e("span",xt,c(T.value?.total??"-"),1),a[4]||(a[4]=e("span",{class:"stats-label"},"已索引",-1))]),e("div",_t,[e("span",Dt,c(T.value?.valid??"-"),1),a[5]||(a[5]=e("span",{class:"stats-label"},"有效",-1))]),e("div",Tt,[e("span",{class:E(["stats-number",{danger:(T.value?.invalid??0)>0}])},c(T.value?.invalid??"-"),3),a[6]||(a[6]=e("span",{class:"stats-label"},"无效",-1))])]),e("div",It,[a[17]||(a[17]=e("div",{class:"function-header"},[e("div",{class:"function-title"},"导入工作区")],-1)),!U.value&&!D.value?(l(),n("div",{key:0,ref_key:"dropZoneRef",ref:_,class:E(["drop-zone",{dragging:A.value}]),onDragenter:ce,onDragover:r,onDragleave:u,onDrop:p,onClick:t},[a[7]||(a[7]=e("div",{class:"drop-zone-icon"},[e("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e("polyline",{points:"17 8 12 3 7 8"}),e("line",{x1:"12",y1:"3",x2:"12",y2:"15"})])],-1)),e("div",{class:E(["drop-zone-text",{highlight:A.value}])},c(A.value?"释放以导入":"拖入 .twsp 或点击选择目录"),3),a[8]||(a[8]=e("div",{class:"drop-zone-hint"},"支持工作区目录、项目目录、.twsp 文件",-1))],34)):b("",!0),P.value==="file"?(l(),n("div",St,[a[9]||(a[9]=e("div",{class:"selected-icon file"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e("polyline",{points:"14 2 14 8 20 8"})])],-1)),e("div",Et,[e("div",Mt,c(O.value),1),e("div",Vt,c(H.value),1)]),e("div",{class:"selected-clear",onClick:q},"×")])):b("",!0),P.value==="directory"?(l(),n("div",Bt,[a[10]||(a[10]=e("div",{class:"selected-icon directory"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])],-1)),e("div",At,[e("div",Rt,c(O.value),1),e("div",Pt,c(y.value),1)]),e("div",{class:"selected-clear",onClick:q},"×")])):b("",!0),P.value==="file"?(l(),n("div",Nt,[e("div",zt,[a[12]||(a[12]=e("span",{class:"target-dir-label"},"导入到",-1)),be(e("input",{type:"text",class:"target-dir-input","onUpdate:modelValue":a[0]||(a[0]=g=>W.value=g),readonly:""},null,512),[[xe,W.value]]),k(F,{size:"sm",variant:"ghost",onClick:V},{default:$(()=>[...a[11]||(a[11]=[x("修改",-1)])]),_:1})]),k(F,{variant:"primary",loading:I.value,onClick:fe},{default:$(()=>[...a[13]||(a[13]=[x("确认导入",-1)])]),_:1},8,["loading"])])):b("",!0),P.value==="directory"?(l(),n("div",Lt,[k(F,{variant:"primary",loading:I.value,onClick:fe},{default:$(()=>[...a[14]||(a[14]=[x("导入",-1)])]),_:1},8,["loading"])])):b("",!0),!U.value&&!D.value?(l(),n("div",{key:5,class:"alt-input-toggle",onClick:Te}," 或手动输入路径 ")):b("",!0),D.value&&!U.value?(l(),n("div",Ut,[e("div",{ref_key:"dropZoneRef",ref:_,class:E(["drop-zone mini",{dragging:A.value}]),onDragenter:ce,onDragover:r,onDragleave:u,onDrop:p,onClick:Z},[a[15]||(a[15]=e("div",{class:"drop-zone-icon mini"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e("polyline",{points:"17 8 12 3 7 8"}),e("line",{x1:"12",y1:"3",x2:"12",y2:"15"})])],-1)),e("div",Ot,c(A.value?"释放以导入":"拖入 .twsp 文件"),1)],34),e("div",Wt,[be(e("input",{type:"text",class:"path-input",placeholder:"输入目录路径...","onUpdate:modelValue":a[1]||(a[1]=g=>K.value=g),onKeyup:Xe(me,["enter"])},null,544),[[xe,K.value]]),k(F,{size:"sm",variant:"primary",loading:I.value,onClick:me},{default:$(()=>[...a[16]||(a[16]=[x("导入",-1)])]),_:1},8,["loading"])])])):b("",!0),w.value!=="none"?(l(),n("div",{key:7,class:E(["result-box",w.value])},[w.value==="success"?(l(),n(z,{key:0},[x(c(M.value),1)],64)):w.value==="warning"?(l(),n(z,{key:1},[e("div",null,c(M.value),1),ue.value.length>0?(l(),n("div",Ft,[(l(!0),n(z,null,re(ue.value,(g,ge)=>(l(),n("div",{key:ge,class:"warning-item"}," • "+c(g),1))),128))])):b("",!0)],64)):w.value==="error"?(l(),n(z,{key:2},[x(c(M.value),1)],64)):b("",!0)],2)):b("",!0),a[18]||(a[18]=e("div",{class:"function-desc"},"支持:.twsp 导出文件、项目目录、工作区目录",-1))]),e("div",jt,[e("div",Gt,[a[19]||(a[19]=e("div",{class:"function-title"},"同步清理",-1)),N.value==="idle"||N.value==="done"||N.value==="previewing"||N.value==="error"?(l(),Fe(F,{key:0,variant:"secondary",size:"sm",loading:N.value==="previewing",disabled:N.value==="previewing",onClick:Me},{default:$(()=>[x(c(N.value==="error"?"重试":"扫描并预览"),1)]),_:1},8,["loading","disabled"])):b("",!0)]),a[32]||(a[32]=e("div",{class:"function-desc"},"扫描已索引路径发现新工作区,清理无效条目",-1)),(N.value==="previewed"||N.value==="executing")&&S.value?(l(),n("div",Ht,[oe.value?(l(),n(z,{key:0},[a[24]||(a[24]=e("div",{class:"result-header"},[e("span",{class:"result-title"},"发现以下变更")],-1)),S.value.toAdd.length>0?(l(),n("div",Kt,[e("div",Zt,[a[20]||(a[20]=e("span",{class:"change-icon"},"+",-1)),e("span",null,c(S.value.toAdd.length)+" 个新工作区",1)]),e("div",Jt,[(l(!0),n(z,null,re(S.value.toAdd.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item"},[e("span",Yt,c(g.name),1)]))),128)),S.value.toAdd.length>3?(l(),n("div",qt," 还有 "+c(S.value.toAdd.length-3)+" 个... ",1)):b("",!0)])])):b("",!0),S.value.toRemove.length>0?(l(),n("div",Qt,[e("div",Xt,[a[21]||(a[21]=e("span",{class:"change-icon"},"-",-1)),e("span",null,c(S.value.toRemove.length)+" 个无效条目",1)]),e("div",es,[(l(!0),n(z,null,re(S.value.toRemove.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item invalid"},[e("span",ts,c(g.name),1),e("span",ss,c(g.reason),1)]))),128)),S.value.toRemove.length>3?(l(),n("div",as," 还有 "+c(S.value.toRemove.length-3)+" 个... ",1)):b("",!0)])])):b("",!0),e("div",ls,[k(F,{variant:"secondary",size:"sm",onClick:Ae},{default:$(()=>[...a[22]||(a[22]=[x("取消",-1)])]),_:1}),k(F,{variant:"primary",size:"sm",loading:N.value==="executing",onClick:Be},{default:$(()=>[...a[23]||(a[23]=[x(" 确认执行 ",-1)])]),_:1},8,["loading"])])],64)):(l(),n("div",ns,[...a[25]||(a[25]=[e("span",{class:"no-changes-icon"},"✓",-1),e("span",null,"索引已是最新状态,无需更新",-1)])]))])):b("",!0),N.value==="done"&&L.value?(l(),n("div",os,[e("div",is,[a[28]||(a[28]=e("span",{class:"result-title"},"同步完成",-1)),e("div",rs,[L.value.added>0?(l(),n("span",ds,[e("span",us,c(L.value.added),1),a[26]||(a[26]=x(" 新增",-1))])):b("",!0),L.value.removed>0?(l(),n("span",cs,[e("span",vs,c(L.value.removed),1),a[27]||(a[27]=x(" 清理",-1))])):b("",!0)])]),L.value.addedList.length>0||L.value.removedList.length>0?(l(),n("div",ps,[(l(!0),n(z,null,re(L.value.addedList.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item"},[a[29]||(a[29]=e("span",{class:"ws-badge is-new"},"新增",-1)),e("span",fs,c(g.name),1)]))),128)),(l(!0),n(z,null,re(L.value.removedList.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item invalid"},[a[30]||(a[30]=e("span",{class:"ws-badge is-removed"},"清理",-1)),e("span",ms,c(g.name),1)]))),128))])):b("",!0)])):b("",!0),N.value==="error"&&j.value?(l(),n("div",gs,[e("div",ys,[a[31]||(a[31]=e("span",{class:"error-icon"},"✕",-1)),e("span",ks,c(j.value),1)])])):b("",!0)])])]),_:1},8,["model-value"]),k(wt,{modelValue:Y.value,"onUpdate:modelValue":a[3]||(a[3]=g=>Y.value=g),workspaces:te.value?.workspaces??[],"default-target-dir":te.value?.suggestedTargetDir??"",onConfirm:pe,onCancel:he},null,8,["modelValue","workspaces","default-target-dir"])],64))}}),ws=De(hs,[["__scopeId","data-v-90a2f9d8"]]),bs={class:"backup-manager"},Cs={class:"action-bar"},$s={key:0,class:"loading-state"},xs={key:1,class:"backup-list"},_s={class:"backup-info"},Ds={class:"backup-name"},Ts={class:"backup-meta"},Is={class:"meta-item"},Ss={class:"meta-item"},Es={class:"meta-item"},Ms={class:"backup-actions"},Vs={key:2,class:"empty-state"},Bs=_e({__name:"BackupManager",props:{visible:{type:Boolean}},emits:["update:visible","change"],setup(Q,{emit:de}){const C=Ve(),h=Q,f=de,B=i(!1),T=i([]),A=i(!1),_=i(!1),P=i(!1),R=i(!1),y=i(!1),O=i(),H=i(!1),W=i(!1),D=i(null),K=ye(()=>T.value.length>0),I=ye(()=>A.value||_.value||P.value||R.value);async function Y(){B.value=!0;try{const r=await fetch("/api/backup/global");if(!r.ok)throw new Error("加载备份列表失败");const u=await r.json();T.value=u.backups||[]}catch(r){console.error("[BackupManager] loadBackups failed:",r),C.error("加载备份列表失败")}finally{B.value=!1}}Ee(()=>h.visible,async r=>{r&&await Y()});function te(){f("update:visible",!1)}async function se(){A.value=!0;try{const r=await fetch("/api/backup/global",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({trigger:"manual"})});if(!r.ok){const u=await r.json();throw new Error(u.error||"创建备份失败")}C.success("备份创建成功"),await Y(),f("change")}catch(r){console.error("[BackupManager] create failed:",r),C.error(r instanceof Error?r.message:"创建备份失败")}finally{A.value=!1}}function w(r){D.value=r,H.value=!0}async function M(){if(D.value){_.value=!0;try{const r=await fetch(`/api/backup/global/${encodeURIComponent(D.value.name)}/restore`,{method:"POST"});if(!r.ok){const u=await r.json();throw new Error(u.error||"恢复失败")}C.success("备份恢复成功"),await Y()}catch(r){console.error("[BackupManager] restore failed:",r),C.error(r instanceof Error?r.message:"恢复失败")}finally{_.value=!1,D.value=null}}}function ue(r){window.open(`/api/backup/global/${encodeURIComponent(r.name)}/download`,"_blank")}function N(r){D.value=r,W.value=!0}async function S(){if(D.value){P.value=!0;try{const r=await fetch(`/api/backup/global/${encodeURIComponent(D.value.name)}`,{method:"DELETE"});if(!r.ok){const u=await r.json();throw new Error(u.error||"删除失败")}C.success("备份已删除"),await Y(),f("change")}catch(r){console.error("[BackupManager] delete failed:",r),C.error(r instanceof Error?r.message:"删除失败")}finally{P.value=!1,D.value=null}}}function L(){const r=document.createElement("input");r.type="file",r.accept=".twbak",r.onchange=async u=>{const p=u.target.files?.[0];p&&await j(p)},r.click()}async function j(r){if(!r.name.endsWith(".twbak")){C.warning("仅支持 .twbak 格式的备份文件");return}R.value=!0;try{const u=new FormData;u.append("file",r);const p=await fetch("/api/backup/global/import",{method:"POST",body:u});if(!p.ok){const Z=await p.json();throw new Error(Z.error||"导入失败")}C.success("备份导入成功"),await Y(),f("change")}catch(u){console.error("[BackupManager] import failed:",u),C.error(u instanceof Error?u.message:"导入失败")}finally{R.value=!1}}function oe(r){r.preventDefault(),r.stopPropagation(),y.value=!0}function U(r){r.preventDefault(),r.stopPropagation()}function X(r){r.preventDefault(),r.stopPropagation();const u=O.value;if(u){const p=r.relatedTarget;(!p||!u.contains(p))&&(y.value=!1)}}async function ee(r){r.preventDefault(),r.stopPropagation(),y.value=!1;const u=r.dataTransfer?.files;if(!u||u.length===0)return;const p=u.item(0);p&&await j(p)}function ae(r){return new Date(r).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function q(r){return r<1024?`${r} B`:r<1024*1024?`${(r/1024).toFixed(1)} KB`:`${(r/(1024*1024)).toFixed(1)} MB`}function ce(r){return{manual:"手动",beta_update:"Beta更新前",pre_restore:"恢复前"}[r]||r}return(r,u)=>(l(),n(z,null,[k($e,{"model-value":Q.visible,title:"BACKUP MANAGER",width:"560px","onUpdate:modelValue":u[5]||(u[5]=p=>!p&&te()),onClose:te},{default:$(()=>[e("div",bs,[e("div",Cs,[k(F,{variant:"primary",loading:A.value,disabled:I.value&&!A.value,onClick:se},{default:$(()=>[...u[8]||(u[8]=[x(" + 创建备份 ",-1)])]),_:1},8,["loading","disabled"]),u[9]||(u[9]=e("span",{class:"action-hint"},"工作台备份仅包含全局索引配置,不包含具体工作区内容",-1))]),B.value?(l(),n("div",$s," 加载中... ")):K.value?(l(),n("div",xs,[(l(!0),n(z,null,re(T.value,p=>(l(),n("div",{key:p.name,class:"backup-item"},[u[16]||(u[16]=e("div",{class:"backup-icon"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 8v13H3V8"}),e("path",{d:"M1 3h22v5H1z"}),e("path",{d:"M10 12h4"})])],-1)),e("div",_s,[e("div",Ds,c(p.name),1),e("div",Ts,[e("span",Is,c(ae(p.createdAt)),1),u[10]||(u[10]=e("span",{class:"meta-sep"},"|",-1)),e("span",Ss,"v"+c(p.codeVersion),1),u[11]||(u[11]=e("span",{class:"meta-sep"},"|",-1)),e("span",Es,c(q(p.size)),1),u[12]||(u[12]=e("span",{class:"meta-sep"},"|",-1)),e("span",{class:E(["meta-item trigger-tag",p.trigger])},c(ce(p.trigger)),3)])]),e("div",Ms,[k(F,{variant:"ghost",size:"sm",disabled:I.value,onClick:Z=>w(p)},{default:$(()=>[...u[13]||(u[13]=[x("恢复",-1)])]),_:1},8,["disabled","onClick"]),k(F,{variant:"ghost",size:"sm",disabled:I.value,onClick:Z=>ue(p)},{default:$(()=>[...u[14]||(u[14]=[x("下载",-1)])]),_:1},8,["disabled","onClick"]),k(F,{variant:"danger",size:"sm",disabled:I.value,onClick:Z=>N(p)},{default:$(()=>[...u[15]||(u[15]=[x("删除",-1)])]),_:1},8,["disabled","onClick"])])]))),128))])):(l(),n("div",Vs,[...u[17]||(u[17]=[e("div",{class:"empty-icon"},[e("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1"},[e("path",{d:"M21 8v13H3V8"}),e("path",{d:"M1 3h22v5H1z"}),e("path",{d:"M10 12h4"})])],-1),e("div",{class:"empty-text"},"暂无备份",-1),e("div",{class:"empty-hint"},"点击「创建备份」开始保护您的数据",-1)])])),e("div",{ref_key:"dropZoneRef",ref:O,class:E(["drop-zone",{dragging:y.value,disabled:I.value}]),onDragenter:u[0]||(u[0]=p=>!I.value&&oe(p)),onDragover:u[1]||(u[1]=p=>!I.value&&U(p)),onDragleave:u[2]||(u[2]=p=>!I.value&&X(p)),onDrop:u[3]||(u[3]=p=>!I.value&&ee(p)),onClick:u[4]||(u[4]=p=>!I.value&&L())},[u[18]||(u[18]=e("div",{class:"drop-zone-icon"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e("polyline",{points:"17 8 12 3 7 8"}),e("line",{x1:"12",y1:"3",x2:"12",y2:"15"})])],-1)),e("div",{class:E(["drop-zone-text",{highlight:y.value}])},c(I.value?"操作进行中...":y.value?"释放以导入":"拖拽 .twbak 文件到此处,或点击选择"),3)],34)])]),_:1},8,["model-value"]),k(Se,{modelValue:H.value,"onUpdate:modelValue":u[6]||(u[6]=p=>H.value=p),title:"确认恢复",message:"恢复将覆盖当前配置,系统会先自动备份当前状态。确定继续?",type:"warning","confirm-text":"确认恢复","cancel-text":"取消",onConfirm:M},null,8,["modelValue"]),k(Se,{modelValue:W.value,"onUpdate:modelValue":u[7]||(u[7]=p=>W.value=p),title:"确认删除",message:"删除后将无法恢复此备份。确定继续?",type:"danger","confirm-text":"确认删除","cancel-text":"取消",onConfirm:S},null,8,["modelValue"])],64))}}),Ge=De(Bs,[["__scopeId","data-v-1e59df37"]]),As=`在对话中提及「**工作区**」或「**工作台**」即可触发。
1
+ import{d as _e,r as i,e as n,o as l,v as E,f as e,w as c,J as Ye,_ as De,K as Ee,L as Fe,s as k,T as qe,M as $,N as Qe,I as b,F as z,q as re,$ as be,a0 as xe,O as x,P as je,a1 as Ve,j as ye,a2 as $e,a3 as Xe,a4 as et,a5 as Pe,t as Ce,l as Le,g as Re,a6 as tt,h as st}from"./index-niFbQLQj.js";import{W as F,a as ie,b as Se,w as Ie,u as at,g as lt}from"./WsConfirmDialog-C_ycN7Jx.js";import{aC as nt}from"./MarkdownContent-Bui6aG36.js";const ot="/logo.svg",it={class:"collapse-title"},rt={class:"collapse-content-wrapper"},dt={class:"collapse-content"},ut=_e({__name:"WsCollapse",props:{title:{},defaultOpen:{type:Boolean,default:!1}},setup(Q,{expose:de}){const h=i(Q.defaultOpen);function f(){h.value=!h.value}return de({toggle:f,isOpen:h}),(B,T)=>(l(),n("div",{class:E(["ws-collapse",{"is-open":h.value}])},[e("div",{class:"collapse-header",onClick:f},[T[0]||(T[0]=e("span",{class:"collapse-arrow"},[e("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e("path",{d:"M4.5 2.5L8 6L4.5 9.5",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),e("span",it,c(Q.title),1)]),e("div",rt,[e("div",dt,[Ye(B.$slots,"default",{},void 0,!0)])])],2))}}),Ue=De(ut,[["__scopeId","data-v-28a9ec4c"]]),ct={class:"dialog-body"},vt={class:"workspace-preview"},pt={class:"workspace-list"},ft={class:"workspace-name"},mt={key:0,class:"workspace-existing"},gt={class:"target-dir-section"},yt={class:"target-input-row"},kt={class:"dialog-footer"},ht=_e({__name:"ImportConfirmModal",props:{modelValue:{type:Boolean},workspaces:{},defaultTargetDir:{default:""}},emits:["update:modelValue","confirm","cancel"],setup(Q,{emit:de}){const C=Q,h=de,f=i(C.modelValue),B=i(C.defaultTargetDir);Ee(()=>C.modelValue,R=>{f.value=R,R&&(B.value=C.defaultTargetDir)});function T(){h("update:modelValue",!1),h("confirm",B.value)}function A(){h("update:modelValue",!1),h("cancel")}function _(){A()}async function P(){try{const R=await ie.pickDirectory();R.path&&(B.value=R.path)}catch(R){console.error("无法打开目录选择器:",R)}}return(R,y)=>(l(),Fe(Qe,{to:"body"},[k(qe,{name:"modal-fade"},{default:$(()=>[f.value?(l(),n("div",{key:0,class:"dialog-overlay",onClick:_},[e("div",{class:"dialog",onClick:y[1]||(y[1]=je(()=>{},["stop"]))},[e("div",{class:"dialog-header"},[y[3]||(y[3]=e("span",{class:"dialog-title"},"确认导入",-1)),e("button",{class:"dialog-close",onClick:A},[...y[2]||(y[2]=[e("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[e("path",{d:"M12 4L4 12M4 4L12 12",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)])])]),e("div",ct,[e("div",vt,[y[4]||(y[4]=e("div",{class:"preview-label"},"将导入以下工作区:",-1)),e("div",pt,[(l(!0),n(z,null,re(Q.workspaces,O=>(l(),n("div",{key:O.id,class:"workspace-item"},[e("span",ft,c(O.name),1),O.isNew?b("",!0):(l(),n("span",mt,"(已存在)"))]))),128))])]),e("div",gt,[y[6]||(y[6]=e("div",{class:"target-label"},"目标目录:",-1)),e("div",yt,[be(e("input",{type:"text",class:"target-input","onUpdate:modelValue":y[0]||(y[0]=O=>B.value=O),placeholder:"选择目标目录..."},null,512),[[xe,B.value]]),k(F,{size:"sm",variant:"secondary",onClick:P},{default:$(()=>[...y[5]||(y[5]=[x("浏览",-1)])]),_:1})]),y[7]||(y[7]=e("div",{class:"target-hint"},"工作区将被复制到此目录的 .zero-workspace 子目录下",-1))])]),e("div",kt,[k(F,{variant:"secondary",size:"sm",onClick:A},{default:$(()=>[...y[8]||(y[8]=[x(" 取消 ",-1)])]),_:1}),k(F,{variant:"primary",size:"sm",onClick:T},{default:$(()=>[...y[9]||(y[9]=[x(" 确认导入 ",-1)])]),_:1})])])])):b("",!0)]),_:1})]))}}),wt=De(ht,[["__scopeId","data-v-ea968292"]]),bt={class:"index-management"},Ct={class:"stats-bar"},$t={class:"stats-item"},xt={class:"stats-number"},_t={class:"stats-item"},Dt={class:"stats-number success"},Tt={class:"stats-item"},It={class:"function-block"},St={key:1,class:"selected-item"},Et={class:"selected-info"},Mt={class:"selected-name"},Vt={class:"selected-meta"},Bt={key:2,class:"selected-item"},At={class:"selected-info"},Rt={class:"selected-name"},Pt={class:"selected-meta"},Nt={key:3,class:"import-action-bar"},zt={class:"target-dir-group"},Lt={key:4,class:"action-row"},Ut={key:6,class:"manual-input-area"},Ot={class:"drop-zone-text"},Wt={class:"alt-input-row"},Ft={key:0,class:"warning-list"},jt={class:"function-block"},Gt={class:"function-header"},Ht={key:0,class:"result-area"},Kt={key:0,class:"change-section"},Zt={class:"change-header add"},Jt={class:"ws-list"},Yt={class:"ws-name"},qt={key:0,class:"ws-more"},Qt={key:1,class:"change-section"},Xt={class:"change-header remove"},es={class:"ws-list"},ts={class:"ws-name"},ss={class:"ws-reason"},as={key:0,class:"ws-more"},ls={class:"action-row"},ns={key:1,class:"no-changes"},os={key:1,class:"result-area done"},is={class:"result-header"},rs={class:"result-stats"},ds={key:0,class:"stat"},us={class:"stat-num success"},cs={key:1,class:"stat"},vs={class:"stat-num danger"},ps={key:0,class:"ws-list"},fs={class:"ws-name"},ms={class:"ws-name"},gs={key:2,class:"result-area error"},ys={class:"error-content"},ks={class:"error-message"},hs=_e({__name:"IndexManagementModalNew",props:{visible:{type:Boolean}},emits:["update:visible","workspaceImported"],setup(Q,{emit:de}){const C=Ve(),h=Q,f=de,B=i(!1),T=i(null),A=i(!1),_=i(),P=i("none"),R=i(null),y=i(""),O=i(""),H=i(""),W=i("~/.zero-workspace/import/"),D=i(!1),K=i(""),I=i(!1),Y=i(!1),te=i(null),se=i(""),w=i("none"),M=i(""),ue=i([]),N=i("idle"),S=i(null),L=i(null),j=i(null),oe=ye(()=>S.value?S.value.hasChanges:!1),U=ye(()=>P.value!=="none");async function X(){try{T.value=await ie.getIndexStats()}catch(o){console.error("加载索引统计失败:",o)}}Ee(()=>h.visible,async o=>{o&&(B.value=!0,ee(),await X(),B.value=!1)});function ee(){P.value="none",R.value=null,y.value="",O.value="",H.value="",w.value="none",M.value="",ue.value=[],D.value=!1,K.value="",N.value="idle",S.value=null,L.value=null,j.value=null}function ae(){f("update:visible",!1)}function q(){P.value="none",R.value=null,y.value="",O.value="",H.value="",w.value="none",M.value="",ue.value=[]}function ce(o){o.preventDefault(),o.stopPropagation(),A.value=!0}function r(o){o.preventDefault(),o.stopPropagation()}function u(o){o.preventDefault(),o.stopPropagation();const a=_.value;if(a){const g=o.relatedTarget;(!g||!a.contains(g))&&(A.value=!1)}}function p(o){o.preventDefault(),o.stopPropagation(),A.value=!1;const a=o.dataTransfer?.files;if(!a||a.length===0)return;const g=a.item(0);g&&ve(g)}function Z(){const o=document.createElement("input");o.type="file",o.accept=".twsp",o.onchange=a=>{const ge=a.target.files?.[0];ge&&ve(ge)},o.click()}function ve(o){q(),o.name.endsWith(".twsp")?(P.value="file",R.value=o,O.value=o.name,H.value=ke(o.size)):C.warning("拖拽仅支持 .twsp 文件,目录请点击「选择目录」按钮")}function ke(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function Te(){D.value=!D.value}async function V(){try{const o=await ie.pickDirectory();o.path&&(W.value=o.path)}catch{C.error("无法打开目录选择器")}}async function t(){try{const o=await ie.pickDirectory();o.path&&await m(o.path)}catch{C.error("无法打开目录选择器")}}async function m(o){I.value=!0,w.value="none";try{const a=await ie.importPreview(o);if(!a.success){w.value="error",M.value=a.error||"无法识别的工作区",I.value=!1;return}a.needsTargetDir?(te.value=a,se.value=o,Y.value=!0,I.value=!1):await le(o)}catch(a){w.value="error",M.value=a instanceof Error?a.message:"预检查失败",I.value=!1}}async function pe(o){Y.value=!1,I.value=!0;try{await le(se.value,o)}catch(a){w.value="error",M.value=a instanceof Error?a.message:"导入失败"}finally{I.value=!1,te.value=null,se.value=""}}function he(){Y.value=!1,te.value=null,se.value=""}async function le(o,a){try{const g=await ie.import(o,a);g.success?(g.added>0?(w.value="success",M.value=`成功导入 ${g.added} 个工作区`,g.existing>0&&(M.value+=`,${g.existing} 个已存在`),f("workspaceImported")):g.existing>0?(w.value="warning",M.value=`${g.existing} 个工作区已存在于索引中`):(w.value="warning",M.value="未找到可导入的工作区"),q(),D.value=!1,K.value="",await X()):(w.value="error",M.value=g.error||"导入失败")}catch(g){w.value="error",M.value=g instanceof Error?g.message:"导入失败"}finally{I.value=!1}}async function fe(){P.value==="file"&&R.value?await G():(P.value==="directory"||K.value.trim())&&await we()}async function G(){if(R.value){I.value=!0,w.value="none";try{const o=new FormData;o.append("file",R.value),o.append("targetDir",W.value);const a=await ie.importTwsp(o);a.success?(a.warnings&&a.warnings.length>0?(w.value="warning",M.value=`工作区「${a.name||"未知"}」导入成功(有警告)`,ue.value=a.warnings):(w.value="success",M.value=`工作区「${a.name||"未知"}」导入成功`),P.value="none",R.value=null,O.value="",H.value="",await X(),f("workspaceImported")):(w.value="error",M.value=a.error||"导入失败")}catch(o){w.value="error",M.value=o instanceof Error?o.message:"导入失败"}finally{I.value=!1}}}async function we(){const o=y.value||K.value.trim();if(!o){C.warning("请输入目录路径");return}I.value=!0,w.value="none";try{const a=await ie.import(o);a.success?a.added>0?(w.value="success",M.value=`发现并导入了 ${a.added} 个工作区`,P.value="none",y.value="",O.value="",H.value="",D.value=!1,K.value="",await X(),f("workspaceImported")):a.existing>0?(w.value="warning",M.value=`发现 ${a.existing} 个工作区已存在`):(w.value="warning",M.value="未找到有效的工作区"):(w.value="error",M.value=a.error||"导入失败")}catch(a){w.value="error",M.value=a instanceof Error?a.message:"导入失败"}finally{I.value=!1}}async function me(){if(!K.value.trim()){C.warning("请输入路径");return}if(K.value.endsWith(".twsp")){C.warning(".twsp 文件请使用拖拽或点击选择");return}await m(K.value.trim())}async function Me(){N.value="previewing",S.value=null,L.value=null,j.value=null;try{const o=await ie.syncCleanPreview();S.value=o,N.value="previewed",o.hasChanges||C.info("索引已是最新状态")}catch(o){console.error("同步清理预览失败:",o);const a=o instanceof Error?o.message:"预览失败";j.value=a,N.value="error",C.error(a)}}async function Be(){N.value="executing",j.value=null;try{const o=await ie.syncCleanExecute();L.value=o,N.value="done",await X(),(o.added>0||o.removed>0)&&(C.success(`同步完成:新增 ${o.added} 个,清理 ${o.removed} 个`),o.added>0&&f("workspaceImported"))}catch(o){console.error("同步清理执行失败:",o);const a=o instanceof Error?o.message:"执行失败";j.value=a,N.value="error",C.error(a)}}function Ae(){N.value="idle",S.value=null,L.value=null,j.value=null}return(o,a)=>(l(),n(z,null,[k($e,{"model-value":Q.visible,title:"索引管理",width:"500px","onUpdate:modelValue":a[2]||(a[2]=g=>!g&&ae()),onClose:ae},{default:$(()=>[e("div",bt,[e("div",Ct,[e("div",$t,[e("span",xt,c(T.value?.total??"-"),1),a[4]||(a[4]=e("span",{class:"stats-label"},"已索引",-1))]),e("div",_t,[e("span",Dt,c(T.value?.valid??"-"),1),a[5]||(a[5]=e("span",{class:"stats-label"},"有效",-1))]),e("div",Tt,[e("span",{class:E(["stats-number",{danger:(T.value?.invalid??0)>0}])},c(T.value?.invalid??"-"),3),a[6]||(a[6]=e("span",{class:"stats-label"},"无效",-1))])]),e("div",It,[a[17]||(a[17]=e("div",{class:"function-header"},[e("div",{class:"function-title"},"导入工作区")],-1)),!U.value&&!D.value?(l(),n("div",{key:0,ref_key:"dropZoneRef",ref:_,class:E(["drop-zone",{dragging:A.value}]),onDragenter:ce,onDragover:r,onDragleave:u,onDrop:p,onClick:t},[a[7]||(a[7]=e("div",{class:"drop-zone-icon"},[e("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e("polyline",{points:"17 8 12 3 7 8"}),e("line",{x1:"12",y1:"3",x2:"12",y2:"15"})])],-1)),e("div",{class:E(["drop-zone-text",{highlight:A.value}])},c(A.value?"释放以导入":"拖入 .twsp 或点击选择目录"),3),a[8]||(a[8]=e("div",{class:"drop-zone-hint"},"支持工作区目录、项目目录、.twsp 文件",-1))],34)):b("",!0),P.value==="file"?(l(),n("div",St,[a[9]||(a[9]=e("div",{class:"selected-icon file"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e("polyline",{points:"14 2 14 8 20 8"})])],-1)),e("div",Et,[e("div",Mt,c(O.value),1),e("div",Vt,c(H.value),1)]),e("div",{class:"selected-clear",onClick:q},"×")])):b("",!0),P.value==="directory"?(l(),n("div",Bt,[a[10]||(a[10]=e("div",{class:"selected-icon directory"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])],-1)),e("div",At,[e("div",Rt,c(O.value),1),e("div",Pt,c(y.value),1)]),e("div",{class:"selected-clear",onClick:q},"×")])):b("",!0),P.value==="file"?(l(),n("div",Nt,[e("div",zt,[a[12]||(a[12]=e("span",{class:"target-dir-label"},"导入到",-1)),be(e("input",{type:"text",class:"target-dir-input","onUpdate:modelValue":a[0]||(a[0]=g=>W.value=g),readonly:""},null,512),[[xe,W.value]]),k(F,{size:"sm",variant:"ghost",onClick:V},{default:$(()=>[...a[11]||(a[11]=[x("修改",-1)])]),_:1})]),k(F,{variant:"primary",loading:I.value,onClick:fe},{default:$(()=>[...a[13]||(a[13]=[x("确认导入",-1)])]),_:1},8,["loading"])])):b("",!0),P.value==="directory"?(l(),n("div",Lt,[k(F,{variant:"primary",loading:I.value,onClick:fe},{default:$(()=>[...a[14]||(a[14]=[x("导入",-1)])]),_:1},8,["loading"])])):b("",!0),!U.value&&!D.value?(l(),n("div",{key:5,class:"alt-input-toggle",onClick:Te}," 或手动输入路径 ")):b("",!0),D.value&&!U.value?(l(),n("div",Ut,[e("div",{ref_key:"dropZoneRef",ref:_,class:E(["drop-zone mini",{dragging:A.value}]),onDragenter:ce,onDragover:r,onDragleave:u,onDrop:p,onClick:Z},[a[15]||(a[15]=e("div",{class:"drop-zone-icon mini"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e("polyline",{points:"17 8 12 3 7 8"}),e("line",{x1:"12",y1:"3",x2:"12",y2:"15"})])],-1)),e("div",Ot,c(A.value?"释放以导入":"拖入 .twsp 文件"),1)],34),e("div",Wt,[be(e("input",{type:"text",class:"path-input",placeholder:"输入目录路径...","onUpdate:modelValue":a[1]||(a[1]=g=>K.value=g),onKeyup:Xe(me,["enter"])},null,544),[[xe,K.value]]),k(F,{size:"sm",variant:"primary",loading:I.value,onClick:me},{default:$(()=>[...a[16]||(a[16]=[x("导入",-1)])]),_:1},8,["loading"])])])):b("",!0),w.value!=="none"?(l(),n("div",{key:7,class:E(["result-box",w.value])},[w.value==="success"?(l(),n(z,{key:0},[x(c(M.value),1)],64)):w.value==="warning"?(l(),n(z,{key:1},[e("div",null,c(M.value),1),ue.value.length>0?(l(),n("div",Ft,[(l(!0),n(z,null,re(ue.value,(g,ge)=>(l(),n("div",{key:ge,class:"warning-item"}," • "+c(g),1))),128))])):b("",!0)],64)):w.value==="error"?(l(),n(z,{key:2},[x(c(M.value),1)],64)):b("",!0)],2)):b("",!0),a[18]||(a[18]=e("div",{class:"function-desc"},"支持:.twsp 导出文件、项目目录、工作区目录",-1))]),e("div",jt,[e("div",Gt,[a[19]||(a[19]=e("div",{class:"function-title"},"同步清理",-1)),N.value==="idle"||N.value==="done"||N.value==="previewing"||N.value==="error"?(l(),Fe(F,{key:0,variant:"secondary",size:"sm",loading:N.value==="previewing",disabled:N.value==="previewing",onClick:Me},{default:$(()=>[x(c(N.value==="error"?"重试":"扫描并预览"),1)]),_:1},8,["loading","disabled"])):b("",!0)]),a[32]||(a[32]=e("div",{class:"function-desc"},"扫描已索引路径发现新工作区,清理无效条目",-1)),(N.value==="previewed"||N.value==="executing")&&S.value?(l(),n("div",Ht,[oe.value?(l(),n(z,{key:0},[a[24]||(a[24]=e("div",{class:"result-header"},[e("span",{class:"result-title"},"发现以下变更")],-1)),S.value.toAdd.length>0?(l(),n("div",Kt,[e("div",Zt,[a[20]||(a[20]=e("span",{class:"change-icon"},"+",-1)),e("span",null,c(S.value.toAdd.length)+" 个新工作区",1)]),e("div",Jt,[(l(!0),n(z,null,re(S.value.toAdd.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item"},[e("span",Yt,c(g.name),1)]))),128)),S.value.toAdd.length>3?(l(),n("div",qt," 还有 "+c(S.value.toAdd.length-3)+" 个... ",1)):b("",!0)])])):b("",!0),S.value.toRemove.length>0?(l(),n("div",Qt,[e("div",Xt,[a[21]||(a[21]=e("span",{class:"change-icon"},"-",-1)),e("span",null,c(S.value.toRemove.length)+" 个无效条目",1)]),e("div",es,[(l(!0),n(z,null,re(S.value.toRemove.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item invalid"},[e("span",ts,c(g.name),1),e("span",ss,c(g.reason),1)]))),128)),S.value.toRemove.length>3?(l(),n("div",as," 还有 "+c(S.value.toRemove.length-3)+" 个... ",1)):b("",!0)])])):b("",!0),e("div",ls,[k(F,{variant:"secondary",size:"sm",onClick:Ae},{default:$(()=>[...a[22]||(a[22]=[x("取消",-1)])]),_:1}),k(F,{variant:"primary",size:"sm",loading:N.value==="executing",onClick:Be},{default:$(()=>[...a[23]||(a[23]=[x(" 确认执行 ",-1)])]),_:1},8,["loading"])])],64)):(l(),n("div",ns,[...a[25]||(a[25]=[e("span",{class:"no-changes-icon"},"✓",-1),e("span",null,"索引已是最新状态,无需更新",-1)])]))])):b("",!0),N.value==="done"&&L.value?(l(),n("div",os,[e("div",is,[a[28]||(a[28]=e("span",{class:"result-title"},"同步完成",-1)),e("div",rs,[L.value.added>0?(l(),n("span",ds,[e("span",us,c(L.value.added),1),a[26]||(a[26]=x(" 新增",-1))])):b("",!0),L.value.removed>0?(l(),n("span",cs,[e("span",vs,c(L.value.removed),1),a[27]||(a[27]=x(" 清理",-1))])):b("",!0)])]),L.value.addedList.length>0||L.value.removedList.length>0?(l(),n("div",ps,[(l(!0),n(z,null,re(L.value.addedList.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item"},[a[29]||(a[29]=e("span",{class:"ws-badge is-new"},"新增",-1)),e("span",fs,c(g.name),1)]))),128)),(l(!0),n(z,null,re(L.value.removedList.slice(0,3),g=>(l(),n("div",{key:g.id,class:"ws-item invalid"},[a[30]||(a[30]=e("span",{class:"ws-badge is-removed"},"清理",-1)),e("span",ms,c(g.name),1)]))),128))])):b("",!0)])):b("",!0),N.value==="error"&&j.value?(l(),n("div",gs,[e("div",ys,[a[31]||(a[31]=e("span",{class:"error-icon"},"✕",-1)),e("span",ks,c(j.value),1)])])):b("",!0)])])]),_:1},8,["model-value"]),k(wt,{modelValue:Y.value,"onUpdate:modelValue":a[3]||(a[3]=g=>Y.value=g),workspaces:te.value?.workspaces??[],"default-target-dir":te.value?.suggestedTargetDir??"",onConfirm:pe,onCancel:he},null,8,["modelValue","workspaces","default-target-dir"])],64))}}),ws=De(hs,[["__scopeId","data-v-90a2f9d8"]]),bs={class:"backup-manager"},Cs={class:"action-bar"},$s={key:0,class:"loading-state"},xs={key:1,class:"backup-list"},_s={class:"backup-info"},Ds={class:"backup-name"},Ts={class:"backup-meta"},Is={class:"meta-item"},Ss={class:"meta-item"},Es={class:"meta-item"},Ms={class:"backup-actions"},Vs={key:2,class:"empty-state"},Bs=_e({__name:"BackupManager",props:{visible:{type:Boolean}},emits:["update:visible","change"],setup(Q,{emit:de}){const C=Ve(),h=Q,f=de,B=i(!1),T=i([]),A=i(!1),_=i(!1),P=i(!1),R=i(!1),y=i(!1),O=i(),H=i(!1),W=i(!1),D=i(null),K=ye(()=>T.value.length>0),I=ye(()=>A.value||_.value||P.value||R.value);async function Y(){B.value=!0;try{const r=await fetch("/api/backup/global");if(!r.ok)throw new Error("加载备份列表失败");const u=await r.json();T.value=u.backups||[]}catch(r){console.error("[BackupManager] loadBackups failed:",r),C.error("加载备份列表失败")}finally{B.value=!1}}Ee(()=>h.visible,async r=>{r&&await Y()});function te(){f("update:visible",!1)}async function se(){A.value=!0;try{const r=await fetch("/api/backup/global",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({trigger:"manual"})});if(!r.ok){const u=await r.json();throw new Error(u.error||"创建备份失败")}C.success("备份创建成功"),await Y(),f("change")}catch(r){console.error("[BackupManager] create failed:",r),C.error(r instanceof Error?r.message:"创建备份失败")}finally{A.value=!1}}function w(r){D.value=r,H.value=!0}async function M(){if(D.value){_.value=!0;try{const r=await fetch(`/api/backup/global/${encodeURIComponent(D.value.name)}/restore`,{method:"POST"});if(!r.ok){const u=await r.json();throw new Error(u.error||"恢复失败")}C.success("备份恢复成功"),await Y()}catch(r){console.error("[BackupManager] restore failed:",r),C.error(r instanceof Error?r.message:"恢复失败")}finally{_.value=!1,D.value=null}}}function ue(r){window.open(`/api/backup/global/${encodeURIComponent(r.name)}/download`,"_blank")}function N(r){D.value=r,W.value=!0}async function S(){if(D.value){P.value=!0;try{const r=await fetch(`/api/backup/global/${encodeURIComponent(D.value.name)}`,{method:"DELETE"});if(!r.ok){const u=await r.json();throw new Error(u.error||"删除失败")}C.success("备份已删除"),await Y(),f("change")}catch(r){console.error("[BackupManager] delete failed:",r),C.error(r instanceof Error?r.message:"删除失败")}finally{P.value=!1,D.value=null}}}function L(){const r=document.createElement("input");r.type="file",r.accept=".twbak",r.onchange=async u=>{const p=u.target.files?.[0];p&&await j(p)},r.click()}async function j(r){if(!r.name.endsWith(".twbak")){C.warning("仅支持 .twbak 格式的备份文件");return}R.value=!0;try{const u=new FormData;u.append("file",r);const p=await fetch("/api/backup/global/import",{method:"POST",body:u});if(!p.ok){const Z=await p.json();throw new Error(Z.error||"导入失败")}C.success("备份导入成功"),await Y(),f("change")}catch(u){console.error("[BackupManager] import failed:",u),C.error(u instanceof Error?u.message:"导入失败")}finally{R.value=!1}}function oe(r){r.preventDefault(),r.stopPropagation(),y.value=!0}function U(r){r.preventDefault(),r.stopPropagation()}function X(r){r.preventDefault(),r.stopPropagation();const u=O.value;if(u){const p=r.relatedTarget;(!p||!u.contains(p))&&(y.value=!1)}}async function ee(r){r.preventDefault(),r.stopPropagation(),y.value=!1;const u=r.dataTransfer?.files;if(!u||u.length===0)return;const p=u.item(0);p&&await j(p)}function ae(r){return new Date(r).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}function q(r){return r<1024?`${r} B`:r<1024*1024?`${(r/1024).toFixed(1)} KB`:`${(r/(1024*1024)).toFixed(1)} MB`}function ce(r){return{manual:"手动",beta_update:"Beta更新前",pre_restore:"恢复前"}[r]||r}return(r,u)=>(l(),n(z,null,[k($e,{"model-value":Q.visible,title:"BACKUP MANAGER",width:"560px","onUpdate:modelValue":u[5]||(u[5]=p=>!p&&te()),onClose:te},{default:$(()=>[e("div",bs,[e("div",Cs,[k(F,{variant:"primary",loading:A.value,disabled:I.value&&!A.value,onClick:se},{default:$(()=>[...u[8]||(u[8]=[x(" + 创建备份 ",-1)])]),_:1},8,["loading","disabled"]),u[9]||(u[9]=e("span",{class:"action-hint"},"工作台备份仅包含全局索引配置,不包含具体工作区内容",-1))]),B.value?(l(),n("div",$s," 加载中... ")):K.value?(l(),n("div",xs,[(l(!0),n(z,null,re(T.value,p=>(l(),n("div",{key:p.name,class:"backup-item"},[u[16]||(u[16]=e("div",{class:"backup-icon"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 8v13H3V8"}),e("path",{d:"M1 3h22v5H1z"}),e("path",{d:"M10 12h4"})])],-1)),e("div",_s,[e("div",Ds,c(p.name),1),e("div",Ts,[e("span",Is,c(ae(p.createdAt)),1),u[10]||(u[10]=e("span",{class:"meta-sep"},"|",-1)),e("span",Ss,"v"+c(p.codeVersion),1),u[11]||(u[11]=e("span",{class:"meta-sep"},"|",-1)),e("span",Es,c(q(p.size)),1),u[12]||(u[12]=e("span",{class:"meta-sep"},"|",-1)),e("span",{class:E(["meta-item trigger-tag",p.trigger])},c(ce(p.trigger)),3)])]),e("div",Ms,[k(F,{variant:"ghost",size:"sm",disabled:I.value,onClick:Z=>w(p)},{default:$(()=>[...u[13]||(u[13]=[x("恢复",-1)])]),_:1},8,["disabled","onClick"]),k(F,{variant:"ghost",size:"sm",disabled:I.value,onClick:Z=>ue(p)},{default:$(()=>[...u[14]||(u[14]=[x("下载",-1)])]),_:1},8,["disabled","onClick"]),k(F,{variant:"danger",size:"sm",disabled:I.value,onClick:Z=>N(p)},{default:$(()=>[...u[15]||(u[15]=[x("删除",-1)])]),_:1},8,["disabled","onClick"])])]))),128))])):(l(),n("div",Vs,[...u[17]||(u[17]=[e("div",{class:"empty-icon"},[e("svg",{width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1"},[e("path",{d:"M21 8v13H3V8"}),e("path",{d:"M1 3h22v5H1z"}),e("path",{d:"M10 12h4"})])],-1),e("div",{class:"empty-text"},"暂无备份",-1),e("div",{class:"empty-hint"},"点击「创建备份」开始保护您的数据",-1)])])),e("div",{ref_key:"dropZoneRef",ref:O,class:E(["drop-zone",{dragging:y.value,disabled:I.value}]),onDragenter:u[0]||(u[0]=p=>!I.value&&oe(p)),onDragover:u[1]||(u[1]=p=>!I.value&&U(p)),onDragleave:u[2]||(u[2]=p=>!I.value&&X(p)),onDrop:u[3]||(u[3]=p=>!I.value&&ee(p)),onClick:u[4]||(u[4]=p=>!I.value&&L())},[u[18]||(u[18]=e("div",{class:"drop-zone-icon"},[e("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[e("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e("polyline",{points:"17 8 12 3 7 8"}),e("line",{x1:"12",y1:"3",x2:"12",y2:"15"})])],-1)),e("div",{class:E(["drop-zone-text",{highlight:y.value}])},c(I.value?"操作进行中...":y.value?"释放以导入":"拖拽 .twbak 文件到此处,或点击选择"),3)],34)])]),_:1},8,["model-value"]),k(Se,{modelValue:H.value,"onUpdate:modelValue":u[6]||(u[6]=p=>H.value=p),title:"确认恢复",message:"恢复将覆盖当前配置,系统会先自动备份当前状态。确定继续?",type:"warning","confirm-text":"确认恢复","cancel-text":"取消",onConfirm:M},null,8,["modelValue"]),k(Se,{modelValue:W.value,"onUpdate:modelValue":u[7]||(u[7]=p=>W.value=p),title:"确认删除",message:"删除后将无法恢复此备份。确定继续?",type:"danger","confirm-text":"确认删除","cancel-text":"取消",onConfirm:S},null,8,["modelValue"])],64))}}),Ge=De(Bs,[["__scopeId","data-v-1e59df37"]]),As=`在对话中提及「**工作区**」或「**工作台**」即可触发。
2
2
 
3
3
  **示例**:
4
4
  - 「用工作台帮我实现 xxx」
5
5
  - 「创建一个工作区,帮我做 xxx」
6
6
 
7
- 创建后会显示 WebUI 地址,可在浏览器中查看任务进度。`,Rs=[{intent:"创建工作区",phrases:["用工作台帮我...","创建一个工作区"]},{intent:"恢复任务",phrases:["看看工作区状态"]},{intent:"查看进度",phrases:["进度","做到哪了"]},{intent:"确认计划",phrases:["好","可以","继续"]},{intent:"调整计划",phrases:["不对","调整一下","先不做"]},{intent:"重新执行",phrases:["重新做","再试一次"]},{intent:"放弃任务",phrases:["先不做了","取消"]}],Ps={class:"settings-content"},Ns={class:"setting-section"},zs={class:"tech-spec"},Ls={class:"spec-item"},Us={class:"spec-value-row"},Os={class:"spec-value-text"},Ws={class:"spec-item"},Fs={class:"spec-value"},js={class:"spec-item"},Gs={class:"spec-value"},Hs={class:"spec-item"},Ks={class:"spec-value"},Zs={class:"spec-item"},Js={class:"spec-value"},Ys={key:0,class:"spec-warning"},qs={class:"setting-section dispatch-section"},Qs={class:"config-entry"},Xs={class:"config-entry-value"},ea={class:"setting-section plugin-section"},ta={key:0,class:"platform-grid"},sa={class:"platform-card"},aa={class:"platform-label"},la={class:"component-box"},na={class:"platform-card"},oa={class:"platform-label"},ia={class:"component-box"},ra={key:1,class:"plugin-loading"},da={class:"setting-section index-section"},ua={class:"index-entry"},ca={class:"index-entry-stats"},va={class:"stat-box"},pa={class:"stat-number"},fa={class:"index-entry"},ma={class:"index-entry-stats"},ga={class:"stat-box"},ya={class:"stat-number"},ka={class:"setting-section help-section"},ha={class:"help-collapse-group"},wa={class:"trigger-table-wrapper"},ba={class:"trigger-table"},Ca={class:"doc-links"},$a={class:"version-modal-content"},xa={class:"version-change"},_a={class:"version-number current"},Da={class:"version-number new"},Ta={key:0,class:"latest-info"},Ia={class:"latest-text"},Sa={class:"dispatch-config-content"},Ea={class:"radio-group"},Ma=["checked"],Va=["checked"],Ba=["checked"],Aa={key:0,class:"warning-block"},Ra={key:1,class:"info-block"},Pa=_e({__name:"SettingsModal",props:{visible:{type:Boolean}},emits:["update:visible","tutorialCreated","workspaceImported"],setup(Q,{emit:de}){const C=et(),h=Ve(),f=i(null),B="2026-04-03T03:36:17.050Z",T=i(null),A=i(!1),_=i(null),P=i(null),R=i(!1),y=i(!1),O=i(null);async function H(){try{const V=await fetch("/api/backup/global");if(V.ok){const t=await V.json();O.value=t.backups?.length??0}}catch{}}const W=i(!1),D=i("none"),K=ye(()=>{switch(se.value){case"none":return"每次询问";case"git":return"Git 模式";case"no-git":return"无 Git 模式";default:return"-"}}),I=ye(()=>{if(!f.value?.codeBuildTime||!B)return!1;const V=new Date(f.value.codeBuildTime).getTime(),t=new Date(B).getTime();return Math.abs(V-t)/1e3>100}),Y=Q,te=de,se=i("none"),w=i(!1);Ee(()=>Y.visible,async V=>{if(V){await C.loadSettings(),se.value=C.settings.defaultDispatchMode;const[t,m,pe]=await Promise.allSettled([Ie.getDevInfo(),Pe.getInstallationStatus(),fetch("/api/version").then(he=>he.ok?he.json():null)]);t.status==="fulfilled"&&(f.value=t.value),m.status==="fulfilled"&&(_.value=m.value),pe.status==="fulfilled"&&pe.value&&(T.value=pe.value);try{P.value=await ie.getIndexStats()}catch{}H()}});async function M(){try{P.value=await ie.getIndexStats()}catch{}}function ue(){R.value=!0}function N(){M(),te("workspaceImported")}function S(V){return V?new Date(V).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"-"}function L(V){const t=V.components;return t.mcp.outdated||t.hooks.outdated||t.agents.outdated||t.skills.outdated}function j(V){return V.supported?V.installed?V.outdated?"outdated":"installed":"not-installed":"unsupported"}function oe(){te("update:visible",!1)}function U(V){D.value=V}function X(){D.value=se.value,W.value=!0}function ee(){W.value=!1}async function ae(){if(C.settings.defaultDispatchMode!=="git"&&D.value==="git"){w.value=!0;return}await q()}async function q(){try{await C.updateSettings({defaultDispatchMode:D.value}),se.value=D.value,h.success("配置已保存"),W.value=!1}catch{h.error("保存失败")}}function ce(){window.open("/docs","_blank")}function r(){A.value=!0}async function u(){const V="zero-workspace update";try{await navigator.clipboard.writeText(V),h.success("已复制到剪贴板")}catch{h.error("复制失败")}}function p(){window.open("https://www.npmjs.com/package/zero-workspace","_blank")}const Z=i(!1),ve=i(!1);function ke(){ve.value=!0}async function Te(){if(!Z.value){Z.value=!0;try{const V=await Pe.triggerTutorial();h.success(V.message||"已生成功能介绍与版本更新记录"),te("tutorialCreated")}catch(V){console.error("[Tutorial] generate failed:",V),h.error("生成失败")}finally{Z.value=!1}}}return(V,t)=>(l(),n(z,null,[k($e,{"model-value":Q.visible,title:"SETTINGS",width:"600px","onUpdate:modelValue":t[1]||(t[1]=m=>!m&&oe()),onClose:oe},{footer:$(()=>[k(F,{variant:"primary",onClick:oe},{default:$(()=>[...t[41]||(t[41]=[x("关闭",-1)])]),_:1})]),default:$(()=>[e("div",Ps,[e("div",Ns,[t[18]||(t[18]=e("div",{class:"setting-section-title"},"版本信息",-1)),e("div",zs,[e("div",Ls,[t[12]||(t[12]=e("label",null,"BACKEND VERSION",-1)),e("div",Us,[e("span",Os,"v"+c(f.value?.packageVersion||"-"),1),T.value?(l(),n("span",{key:0,class:E(["version-status-tag",{update:T.value.updateAvailable,latest:!T.value.updateAvailable}]),onClick:r},c(T.value.updateAvailable?"UPDATE":"LATEST"),3)):b("",!0)])]),e("div",Ws,[t[13]||(t[13]=e("label",null,"NODE VERSION",-1)),e("div",Fs,c(f.value?.nodeVersion||"-"),1)]),f.value?.isDev?(l(),n(z,{key:0},[e("div",js,[t[14]||(t[14]=e("label",null,"后端编译",-1)),e("div",Gs,c(S(f.value?.codeBuildTime)),1)]),e("div",Hs,[t[15]||(t[15]=e("label",null,"前端编译",-1)),e("div",Ks,c(S(Ce(B))),1)]),e("div",Zs,[t[16]||(t[16]=e("label",null,"服务启动",-1)),e("div",Js,c(S(f.value?.serverStartTime)),1)])],64)):b("",!0)]),I.value&&f.value?.isDev?(l(),n("div",Ys," [WARN] 前后端编译时间不一致,若为版本更新后需要指示 AI 重新编译前后端 ")):b("",!0),e("div",{class:"version-links"},[e("a",{class:"version-link",href:"javascript:void(0)",onClick:r},[...t[17]||(t[17]=[x(" 检查版本更新 ",-1),e("span",{class:"version-link-arrow"},"→",-1)])])])]),e("div",qs,[t[21]||(t[21]=e("div",{class:"setting-section-title"},"派发行为配置",-1)),t[22]||(t[22]=e("div",{class:"setting-section-desc"}," 设置在工作区启用派发时的默认行为 ",-1)),e("div",Qs,[t[20]||(t[20]=e("div",{class:"config-entry-info"},[e("div",{class:"config-entry-title"},"默认派发模式"),e("div",{class:"config-entry-desc"},"已启用派发的工作区不受影响")],-1)),e("div",Xs,c(K.value),1),k(F,{variant:"primary",onClick:X},{default:$(()=>[...t[19]||(t[19]=[x("配置",-1)])]),_:1})])]),e("div",ea,[t[25]||(t[25]=e("div",{class:"setting-section-title"},"插件详情",-1)),t[26]||(t[26]=e("div",{class:"setting-section-desc"}," 各平台的组件安装状态 ",-1)),_.value?(l(),n("div",ta,[e("div",sa,[e("div",aa,[t[23]||(t[23]=e("span",{class:"platform-name"},"CLAUDE CODE",-1)),e("span",{class:E(["platform-status",{installed:_.value.platforms.claudeCode.enabled&&!L(_.value.platforms.claudeCode),outdated:_.value.platforms.claudeCode.enabled&&L(_.value.platforms.claudeCode),disabled:!_.value.platforms.claudeCode.enabled}])},c(_.value.platforms.claudeCode.enabled?L(_.value.platforms.claudeCode)?"UPDATE":"INSTALLED":"NOT INSTALLED"),3)]),e("div",la,[(l(),n(z,null,re(["mcp","hooks","agents","skills"],m=>e("div",{key:m,class:"component-cell"},[e("span",{class:E(["status-block",j(_.value.platforms.claudeCode.components[m])])},null,2),e("span",{class:E(["component-name",j(_.value.platforms.claudeCode.components[m])])},c(m.charAt(0).toUpperCase()+m.slice(1)),3)])),64))])]),e("div",na,[e("div",oa,[t[24]||(t[24]=e("span",{class:"platform-name"},"CURSOR",-1)),e("span",{class:E(["platform-status",{installed:_.value.platforms.cursor.enabled&&!L(_.value.platforms.cursor),outdated:_.value.platforms.cursor.enabled&&L(_.value.platforms.cursor),disabled:!_.value.platforms.cursor.enabled}])},c(_.value.platforms.cursor.enabled?L(_.value.platforms.cursor)?"UPDATE":"INSTALLED":"NOT INSTALLED"),3)]),e("div",ia,[(l(),n(z,null,re(["mcp","hooks","agents","skills"],m=>e("div",{key:m,class:"component-cell"},[e("span",{class:E(["status-block",j(_.value.platforms.cursor.components[m])])},null,2),e("span",{class:E(["component-name",j(_.value.platforms.cursor.components[m])])},c(m.charAt(0).toUpperCase()+m.slice(1)),3)])),64))])])])):(l(),n("div",ra," 加载中... ")),t[27]||(t[27]=e("div",{class:"command-bar"},[e("span",{class:"command-label"},"插件安装方式"),e("span",{class:"command-text"},"zero-workspace setup")],-1))]),e("div",da,[t[34]||(t[34]=e("div",{class:"setting-section-title"},"数据管理",-1)),t[35]||(t[35]=e("div",{class:"setting-section-desc"}," 管理工作区索引和全局备份 ",-1)),e("div",ua,[t[30]||(t[30]=e("div",{class:"index-entry-info"},[e("div",{class:"index-entry-title"},"工作区索引"),e("div",{class:"index-entry-desc"},"导入外部工作区或管理本地索引")],-1)),e("div",ca,[e("div",va,[e("div",pa,c(P.value?.total??"-"),1),t[28]||(t[28]=e("div",{class:"stat-label"},"已索引",-1))])]),k(F,{variant:"primary",onClick:ue},{default:$(()=>[...t[29]||(t[29]=[x("管理",-1)])]),_:1})]),e("div",fa,[t[33]||(t[33]=e("div",{class:"index-entry-info"},[e("div",{class:"index-entry-title"},"全局备份"),e("div",{class:"index-entry-desc"},"创建、恢复或导入工作台备份文件")],-1)),e("div",ma,[e("div",ga,[e("div",ya,c(O.value??"-"),1),t[31]||(t[31]=e("div",{class:"stat-label"},"备份",-1))])]),k(F,{variant:"primary",onClick:t[0]||(t[0]=m=>y.value=!0)},{default:$(()=>[...t[32]||(t[32]=[x("管理",-1)])]),_:1})])]),e("div",ka,[t[39]||(t[39]=e("div",{class:"setting-section-title"},"用户帮助",-1)),t[40]||(t[40]=e("div",{class:"setting-section-desc"}," 在对话中使用 ZeroWorkspace 的指南 ",-1)),e("div",ha,[k(Ue,{title:"快速入门"},{default:$(()=>[k(nt,{content:Ce(As)},null,8,["content"])]),_:1}),k(Ue,{title:"触发词速查"},{default:$(()=>[e("div",wa,[e("table",ba,[t[36]||(t[36]=e("thead",null,[e("tr",null,[e("th",null,"意图"),e("th",null,"说法")])],-1)),e("tbody",null,[(l(!0),n(z,null,re(Ce(Rs),m=>(l(),n("tr",{key:m.intent},[e("td",null,c(m.intent),1),e("td",null,c(m.phrases.join(" / ")),1)]))),128))])])])]),_:1})]),e("div",Ca,[e("a",{class:"doc-link",href:"javascript:void(0)",onClick:ce},[...t[37]||(t[37]=[x(" 查看完整手册 ",-1),e("span",{class:"doc-link-arrow"},"→",-1)])]),e("a",{class:E(["doc-link",{disabled:Z.value}]),href:"javascript:void(0)",onClick:ke},[x(c(Z.value?"生成中...":"生成功能介绍与版本更新记录")+" ",1),t[38]||(t[38]=e("span",{class:"doc-link-arrow"},"→",-1))],2)])])])]),_:1},8,["model-value"]),k(Se,{modelValue:w.value,"onUpdate:modelValue":t[2]||(t[2]=m=>w.value=m),title:"Git 模式警告",message:"选择此选项后,启用派发时将自动使用 Git 模式(自动创建分支、提交、回滚)。此功能为实验性功能,可能会影响 Git 历史。确定要设置吗?",type:"warning","confirm-text":"确定设置","cancel-text":"取消",onConfirm:q},null,8,["modelValue"]),k(ws,{visible:R.value,"onUpdate:visible":t[3]||(t[3]=m=>R.value=m),onWorkspaceImported:N},null,8,["visible"]),k(Ge,{visible:y.value,"onUpdate:visible":t[4]||(t[4]=m=>y.value=m),onChange:H},null,8,["visible"]),k(Se,{modelValue:ve.value,"onUpdate:modelValue":t[5]||(t[5]=m=>ve.value=m),title:"生成功能介绍",message:"将重新生成「功能简介」和「版本更新」工作区。如果已存在,将被覆盖。确定继续吗?",type:"info","confirm-text":"确定生成","cancel-text":"取消",onConfirm:Te},null,8,["modelValue"]),k($e,{modelValue:A.value,"onUpdate:modelValue":t[7]||(t[7]=m=>A.value=m),title:"VERSION INFO",width:"480px"},{footer:$(()=>[e("button",{class:"btn-secondary",onClick:p},"查看 NPM"),e("button",{class:"btn-primary",onClick:t[6]||(t[6]=m=>A.value=!1)},"关闭")]),default:$(()=>[e("div",$a,[e("div",xa,[e("span",_a,c(T.value?.currentVersion),1),T.value?.updateAvailable?(l(),n(z,{key:0},[t[42]||(t[42]=e("span",{class:"version-arrow"},"→",-1)),e("span",Da,c(T.value?.latestVersion),1)],64)):b("",!0)]),T.value?.updateAvailable?(l(),n(z,{key:1},[e("div",{class:"update-section"},[t[46]||(t[46]=e("h3",{class:"section-title"},"更新方式",-1)),t[47]||(t[47]=e("p",{class:"section-desc"},"在终端中运行以下命令:",-1)),e("div",{class:"command-box-clickable",onClick:u,title:"点击复制"},[...t[45]||(t[45]=[e("code",{class:"command-code"},"zero-workspace update",-1),e("span",{class:"copy-hint"},"COPY",-1)])])]),t[48]||(t[48]=e("div",{class:"tip-box"},[e("span",{class:"tip-label"},"TIP"),e("span",{class:"tip-text"},"更新后需重启 AI 工具使新版本生效")],-1))],64)):(l(),n("div",Ta,[t[43]||(t[43]=e("div",{class:"latest-graphic"},[e("div",{class:"sync-block-back"}),e("div",{class:"sync-block-front"}),e("div",{class:"sync-dot"})],-1)),t[44]||(t[44]=e("div",{class:"latest-title"},"已是最新版本",-1)),e("div",Ia,"v"+c(T.value?.currentVersion),1)]))])]),_:1},8,["modelValue"]),k($e,{modelValue:W.value,"onUpdate:modelValue":t[11]||(t[11]=m=>W.value=m),title:"DISPATCH CONFIG",width:"520px"},{footer:$(()=>[k(F,{variant:"cancel",onClick:ee},{default:$(()=>[...t[54]||(t[54]=[x("取消",-1)])]),_:1}),k(F,{variant:"primary",onClick:ae,loading:Ce(C).loading},{default:$(()=>[...t[55]||(t[55]=[x(" 保存 ",-1)])]),_:1},8,["loading"])]),default:$(()=>[e("div",Sa,[e("div",Ea,[e("label",{class:E(["radio-card",{selected:D.value==="none"}]),onClick:t[8]||(t[8]=m=>U("none"))},[e("input",{type:"radio",name:"dispatch-mode",checked:D.value==="none"},null,8,Ma),t[49]||(t[49]=e("div",null,[e("span",{class:"radio-card-title"},"每次询问 (Recommended)"),e("span",{class:"radio-card-desc"},"启用派发时弹窗让用户选择模式。")],-1))],2),e("label",{class:E(["radio-card",{selected:D.value==="no-git"}]),onClick:t[9]||(t[9]=m=>U("no-git"))},[e("input",{type:"radio",name:"dispatch-mode",checked:D.value==="no-git"},null,8,Va),t[50]||(t[50]=e("div",null,[e("span",{class:"radio-card-title"},"自动使用无 Git 模式"),e("span",{class:"radio-card-desc"},"直接启用派发,仅更新元数据,不影响代码仓库。")],-1))],2),e("label",{class:E(["radio-card",{selected:D.value==="git"}]),onClick:t[10]||(t[10]=m=>U("git"))},[e("input",{type:"radio",name:"dispatch-mode",checked:D.value==="git"},null,8,Ba),t[51]||(t[51]=e("div",null,[e("span",{class:"radio-card-title"},"自动使用 Git 模式 (Experimental)"),e("span",{class:"radio-card-desc"},"直接启用派发,自动创建分支、提交、回滚。")],-1))],2)]),D.value==="git"?(l(),n("div",Aa,[...t[52]||(t[52]=[e("div",{class:"warning-title"},"GIT MODE RISKS",-1),e("ul",{class:"warning-list"},[e("li",null,[x("自动创建 "),e("span",{class:"code-tag"},"zero_workspace/process/*"),x(" 分支")]),e("li",null,"任务完成时自动提交代码"),e("li",null,[x("测试失败时执行 "),e("span",{class:"code-tag"},"git reset --hard"),x("(可能丢失未提交代码)")]),e("li",null,"合并时可能产生冲突")],-1)])])):b("",!0),D.value==="no-git"?(l(),n("div",Ra,[...t[53]||(t[53]=[e("div",{class:"info-title"},"NO-GIT MODE LIMITS",-1),e("ul",{class:"info-list"},[e("li",null,"测试失败时无法自动回滚"),e("li",null,"建议在执行前手动备份重要文件")],-1)])])):b("",!0)])]),_:1},8,["modelValue"])],64))}}),Na=De(Pa,[["__scopeId","data-v-799a9b16"]]),za={class:"home-view"},La={class:"header"},Ua={class:"header-actions"},Oa=["title"],Wa={key:0,class:"icon-sun",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},Fa={key:1,class:"icon-moon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},ja=["disabled"],Ga={key:0,class:"plugin-update-banner"},Ha={class:"filter-bar"},Ka={class:"filter-left"},Za={class:"tabs"},Ja={class:"filter-right"},Ya={class:"custom-select-dropdown"},qa={class:"main-content"},Qa={key:0,class:"empty-state"},Xa={class:"empty-state-title"},el={key:1,class:"card-grid"},tl={class:"card-header"},sl=["onClick"],al=["onClick"],ll=["onClick"],nl={class:"card-body"},ol=["title"],il={class:"meta-info"},rl={class:"card-footer"},dl=["onClick"],ul=["onClick"],cl=["onClick"],vl=["onClick"],pl=["onClick"],fl=["onClick"],ml={class:"form-group"},gl={class:"form-group"},yl=["disabled"],kl={key:1,class:"dev-badge",title:"开发模式 - 点击设置查看详细版本信息"},hl={class:"error-message-box"},wl={key:0,class:"diagnose-result"},bl={class:"diagnose-header"},Cl={class:"diagnose-summary"},$l={class:"issue-list"},xl={class:"issue-icon"},_l={class:"issue-message"},Dl={key:0,class:"issue-tag tag-auto"},Tl={key:1,class:"issue-tag tag-cli"},Il={key:2,class:"issue-tag tag-manual"},Sl={key:0,class:"no-issues"},El={key:1,class:"cli-hint-box"},Ml={class:"cli-hint-command"},Vl={class:"cli-command"},Bl=["disabled"],Al=["disabled"],Rl=["disabled"],Oe="zero-plugin-banner-dismissed-date",We="zero-workspace-home-preferences",Pl=_e({__name:"HomeView",setup(Q,{expose:de}){const C=st(),h=at(),f=Ve(),B=i("light"),T=i(!1),A=i(!1),_=i(!1),P=i(!1),R=i(""),y=i(""),O=i("info"),H=i(null),W=i(!1),D=i(""),K=i(""),I=i(null);function Y(){return new Date().toISOString().split("T")[0]??""}function te(){return localStorage.getItem(Oe)===Y()}const se=i(te());function w(d){const s=d.components;return s.mcp.outdated||s.hooks.outdated||s.agents.outdated||s.skills.outdated}const M=ye(()=>{if(se.value||!I.value)return!1;const{claudeCode:d,cursor:s}=I.value.platforms;return d.enabled&&w(d)||s.enabled&&w(s)});function ue(){se.value=!0,localStorage.setItem(Oe,Y())}function N(){A.value=!0}const S=i({name:"",goal:"",rules:[],docs:[]});function L(){try{const d=localStorage.getItem(We);if(d)return JSON.parse(d)}catch{}return{statusFilter:"all",sortBy:"updatedAt",sortOrder:"desc",theme:"light"}}function j(){const d={statusFilter:U.value,sortBy:ee.value,sortOrder:ae.value,theme:B.value};localStorage.setItem(We,JSON.stringify(d))}const oe=L(),U=i(oe.statusFilter),X=i(""),ee=i(oe.sortBy),ae=i(oe.sortOrder),q=i(!1);B.value=oe.theme;function ce(){q.value=!1}Le(()=>{document.addEventListener("click",ce)});const r=i(null);function u(){B.value=B.value==="light"?"dark":"light",document.documentElement.setAttribute("data-theme",B.value),j()}const p=i(!1);async function Z(){if(!p.value){p.value=!0;try{await h.fetchWorkspaces("all"),f.success("刷新成功")}catch{f.error("刷新失败")}finally{p.value=!1}}}de({handleRefresh:Z}),Le(async()=>{document.documentElement.setAttribute("data-theme",B.value);try{await h.fetchWorkspaces("all")}catch{f.error("加载失败","无法加载工作区列表")}try{r.value=await Ie.getDevInfo()}catch{}try{I.value=await Pe.getInstallationStatus()}catch{}const d=lt();d.connect(),d.on("workspace_updated",()=>{console.log("[SSE] 收到工作区更新,刷新列表"),h.fetchWorkspaces("all")})}),Ee([U,ee,ae,B],()=>{j()});async function ve(){if(!S.value.name||!S.value.goal){f.warning("请填写名称和目标");return}try{await h.createWorkspace(S.value),f.success("创建成功"),T.value=!1,S.value={name:"",goal:"",rules:[],docs:[]}}catch{f.error("创建失败")}}function ke(d,s,J,v){R.value=d,y.value=s,O.value=J,H.value=v,P.value=!0}async function Te(){H.value&&(await H.value(),H.value=null)}function V(d,s){ke("删除确认",`确定要删除工作区「${s}」吗?此操作不可撤销。`,"danger",async()=>{await h.deleteWorkspace(d,!0),f.success("删除成功")})}function t(d,s){ke("归档确认",`确定要归档工作区「${s}」吗?`,"info",async()=>{await h.archiveWorkspace(d),f.success("归档成功")})}function m(d,s){ke("恢复确认",`确定要恢复工作区「${s}」吗?`,"info",async()=>{await h.restoreWorkspace(d),f.success("恢复成功")})}function pe(d){if(d.status==="error"){he(d);return}C.push(`/workspace/${d.id}`)}function he(d){const s=d.errorInfo,J=s?`错误类型:${s.type||"未知"}
7
+ 创建后会显示 WebUI 地址,可在浏览器中查看任务进度。`,Rs=[{intent:"创建工作区",phrases:["用工作台帮我...","创建一个工作区"]},{intent:"恢复任务",phrases:["看看工作区状态"]},{intent:"查看进度",phrases:["进度","做到哪了"]},{intent:"确认计划",phrases:["好","可以","继续"]},{intent:"调整计划",phrases:["不对","调整一下","先不做"]},{intent:"重新执行",phrases:["重新做","再试一次"]},{intent:"放弃任务",phrases:["先不做了","取消"]}],Ps={class:"settings-content"},Ns={class:"setting-section"},zs={class:"tech-spec"},Ls={class:"spec-item"},Us={class:"spec-value-row"},Os={class:"spec-value-text"},Ws={class:"spec-item"},Fs={class:"spec-value"},js={class:"spec-item"},Gs={class:"spec-value"},Hs={class:"spec-item"},Ks={class:"spec-value"},Zs={class:"spec-item"},Js={class:"spec-value"},Ys={key:0,class:"spec-warning"},qs={class:"setting-section dispatch-section"},Qs={class:"config-entry"},Xs={class:"config-entry-value"},ea={class:"setting-section plugin-section"},ta={key:0,class:"platform-grid"},sa={class:"platform-card"},aa={class:"platform-label"},la={class:"component-box"},na={class:"platform-card"},oa={class:"platform-label"},ia={class:"component-box"},ra={key:1,class:"plugin-loading"},da={class:"setting-section index-section"},ua={class:"index-entry"},ca={class:"index-entry-stats"},va={class:"stat-box"},pa={class:"stat-number"},fa={class:"index-entry"},ma={class:"index-entry-stats"},ga={class:"stat-box"},ya={class:"stat-number"},ka={class:"setting-section help-section"},ha={class:"help-collapse-group"},wa={class:"trigger-table-wrapper"},ba={class:"trigger-table"},Ca={class:"doc-links"},$a={class:"version-modal-content"},xa={class:"version-change"},_a={class:"version-number current"},Da={class:"version-number new"},Ta={key:0,class:"latest-info"},Ia={class:"latest-text"},Sa={class:"dispatch-config-content"},Ea={class:"radio-group"},Ma=["checked"],Va=["checked"],Ba=["checked"],Aa={key:0,class:"warning-block"},Ra={key:1,class:"info-block"},Pa=_e({__name:"SettingsModal",props:{visible:{type:Boolean}},emits:["update:visible","tutorialCreated","workspaceImported"],setup(Q,{emit:de}){const C=et(),h=Ve(),f=i(null),B="2026-04-03T04:40:48.278Z",T=i(null),A=i(!1),_=i(null),P=i(null),R=i(!1),y=i(!1),O=i(null);async function H(){try{const V=await fetch("/api/backup/global");if(V.ok){const t=await V.json();O.value=t.backups?.length??0}}catch{}}const W=i(!1),D=i("none"),K=ye(()=>{switch(se.value){case"none":return"每次询问";case"git":return"Git 模式";case"no-git":return"无 Git 模式";default:return"-"}}),I=ye(()=>{if(!f.value?.codeBuildTime||!B)return!1;const V=new Date(f.value.codeBuildTime).getTime(),t=new Date(B).getTime();return Math.abs(V-t)/1e3>100}),Y=Q,te=de,se=i("none"),w=i(!1);Ee(()=>Y.visible,async V=>{if(V){await C.loadSettings(),se.value=C.settings.defaultDispatchMode;const[t,m,pe]=await Promise.allSettled([Ie.getDevInfo(),Pe.getInstallationStatus(),fetch("/api/version").then(he=>he.ok?he.json():null)]);t.status==="fulfilled"&&(f.value=t.value),m.status==="fulfilled"&&(_.value=m.value),pe.status==="fulfilled"&&pe.value&&(T.value=pe.value);try{P.value=await ie.getIndexStats()}catch{}H()}});async function M(){try{P.value=await ie.getIndexStats()}catch{}}function ue(){R.value=!0}function N(){M(),te("workspaceImported")}function S(V){return V?new Date(V).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"-"}function L(V){const t=V.components;return t.mcp.outdated||t.hooks.outdated||t.agents.outdated||t.skills.outdated}function j(V){return V.supported?V.installed?V.outdated?"outdated":"installed":"not-installed":"unsupported"}function oe(){te("update:visible",!1)}function U(V){D.value=V}function X(){D.value=se.value,W.value=!0}function ee(){W.value=!1}async function ae(){if(C.settings.defaultDispatchMode!=="git"&&D.value==="git"){w.value=!0;return}await q()}async function q(){try{await C.updateSettings({defaultDispatchMode:D.value}),se.value=D.value,h.success("配置已保存"),W.value=!1}catch{h.error("保存失败")}}function ce(){window.open("/docs","_blank")}function r(){A.value=!0}async function u(){const V="zero-workspace update";try{await navigator.clipboard.writeText(V),h.success("已复制到剪贴板")}catch{h.error("复制失败")}}function p(){window.open("https://www.npmjs.com/package/zero-workspace","_blank")}const Z=i(!1),ve=i(!1);function ke(){ve.value=!0}async function Te(){if(!Z.value){Z.value=!0;try{const V=await Pe.triggerTutorial();h.success(V.message||"已生成功能介绍与版本更新记录"),te("tutorialCreated")}catch(V){console.error("[Tutorial] generate failed:",V),h.error("生成失败")}finally{Z.value=!1}}}return(V,t)=>(l(),n(z,null,[k($e,{"model-value":Q.visible,title:"SETTINGS",width:"600px","onUpdate:modelValue":t[1]||(t[1]=m=>!m&&oe()),onClose:oe},{footer:$(()=>[k(F,{variant:"primary",onClick:oe},{default:$(()=>[...t[41]||(t[41]=[x("关闭",-1)])]),_:1})]),default:$(()=>[e("div",Ps,[e("div",Ns,[t[18]||(t[18]=e("div",{class:"setting-section-title"},"版本信息",-1)),e("div",zs,[e("div",Ls,[t[12]||(t[12]=e("label",null,"BACKEND VERSION",-1)),e("div",Us,[e("span",Os,"v"+c(f.value?.packageVersion||"-"),1),T.value?(l(),n("span",{key:0,class:E(["version-status-tag",{update:T.value.updateAvailable,latest:!T.value.updateAvailable}]),onClick:r},c(T.value.updateAvailable?"UPDATE":"LATEST"),3)):b("",!0)])]),e("div",Ws,[t[13]||(t[13]=e("label",null,"NODE VERSION",-1)),e("div",Fs,c(f.value?.nodeVersion||"-"),1)]),f.value?.isDev?(l(),n(z,{key:0},[e("div",js,[t[14]||(t[14]=e("label",null,"后端编译",-1)),e("div",Gs,c(S(f.value?.codeBuildTime)),1)]),e("div",Hs,[t[15]||(t[15]=e("label",null,"前端编译",-1)),e("div",Ks,c(S(Ce(B))),1)]),e("div",Zs,[t[16]||(t[16]=e("label",null,"服务启动",-1)),e("div",Js,c(S(f.value?.serverStartTime)),1)])],64)):b("",!0)]),I.value&&f.value?.isDev?(l(),n("div",Ys," [WARN] 前后端编译时间不一致,若为版本更新后需要指示 AI 重新编译前后端 ")):b("",!0),e("div",{class:"version-links"},[e("a",{class:"version-link",href:"javascript:void(0)",onClick:r},[...t[17]||(t[17]=[x(" 检查版本更新 ",-1),e("span",{class:"version-link-arrow"},"→",-1)])])])]),e("div",qs,[t[21]||(t[21]=e("div",{class:"setting-section-title"},"派发行为配置",-1)),t[22]||(t[22]=e("div",{class:"setting-section-desc"}," 设置在工作区启用派发时的默认行为 ",-1)),e("div",Qs,[t[20]||(t[20]=e("div",{class:"config-entry-info"},[e("div",{class:"config-entry-title"},"默认派发模式"),e("div",{class:"config-entry-desc"},"已启用派发的工作区不受影响")],-1)),e("div",Xs,c(K.value),1),k(F,{variant:"primary",onClick:X},{default:$(()=>[...t[19]||(t[19]=[x("配置",-1)])]),_:1})])]),e("div",ea,[t[25]||(t[25]=e("div",{class:"setting-section-title"},"插件详情",-1)),t[26]||(t[26]=e("div",{class:"setting-section-desc"}," 各平台的组件安装状态 ",-1)),_.value?(l(),n("div",ta,[e("div",sa,[e("div",aa,[t[23]||(t[23]=e("span",{class:"platform-name"},"CLAUDE CODE",-1)),e("span",{class:E(["platform-status",{installed:_.value.platforms.claudeCode.enabled&&!L(_.value.platforms.claudeCode),outdated:_.value.platforms.claudeCode.enabled&&L(_.value.platforms.claudeCode),disabled:!_.value.platforms.claudeCode.enabled}])},c(_.value.platforms.claudeCode.enabled?L(_.value.platforms.claudeCode)?"UPDATE":"INSTALLED":"NOT INSTALLED"),3)]),e("div",la,[(l(),n(z,null,re(["mcp","hooks","agents","skills"],m=>e("div",{key:m,class:"component-cell"},[e("span",{class:E(["status-block",j(_.value.platforms.claudeCode.components[m])])},null,2),e("span",{class:E(["component-name",j(_.value.platforms.claudeCode.components[m])])},c(m.charAt(0).toUpperCase()+m.slice(1)),3)])),64))])]),e("div",na,[e("div",oa,[t[24]||(t[24]=e("span",{class:"platform-name"},"CURSOR",-1)),e("span",{class:E(["platform-status",{installed:_.value.platforms.cursor.enabled&&!L(_.value.platforms.cursor),outdated:_.value.platforms.cursor.enabled&&L(_.value.platforms.cursor),disabled:!_.value.platforms.cursor.enabled}])},c(_.value.platforms.cursor.enabled?L(_.value.platforms.cursor)?"UPDATE":"INSTALLED":"NOT INSTALLED"),3)]),e("div",ia,[(l(),n(z,null,re(["mcp","hooks","agents","skills"],m=>e("div",{key:m,class:"component-cell"},[e("span",{class:E(["status-block",j(_.value.platforms.cursor.components[m])])},null,2),e("span",{class:E(["component-name",j(_.value.platforms.cursor.components[m])])},c(m.charAt(0).toUpperCase()+m.slice(1)),3)])),64))])])])):(l(),n("div",ra," 加载中... ")),t[27]||(t[27]=e("div",{class:"command-bar"},[e("span",{class:"command-label"},"插件安装方式"),e("span",{class:"command-text"},"zero-workspace setup")],-1))]),e("div",da,[t[34]||(t[34]=e("div",{class:"setting-section-title"},"数据管理",-1)),t[35]||(t[35]=e("div",{class:"setting-section-desc"}," 管理工作区索引和全局备份 ",-1)),e("div",ua,[t[30]||(t[30]=e("div",{class:"index-entry-info"},[e("div",{class:"index-entry-title"},"工作区索引"),e("div",{class:"index-entry-desc"},"导入外部工作区或管理本地索引")],-1)),e("div",ca,[e("div",va,[e("div",pa,c(P.value?.total??"-"),1),t[28]||(t[28]=e("div",{class:"stat-label"},"已索引",-1))])]),k(F,{variant:"primary",onClick:ue},{default:$(()=>[...t[29]||(t[29]=[x("管理",-1)])]),_:1})]),e("div",fa,[t[33]||(t[33]=e("div",{class:"index-entry-info"},[e("div",{class:"index-entry-title"},"全局备份"),e("div",{class:"index-entry-desc"},"创建、恢复或导入工作台备份文件")],-1)),e("div",ma,[e("div",ga,[e("div",ya,c(O.value??"-"),1),t[31]||(t[31]=e("div",{class:"stat-label"},"备份",-1))])]),k(F,{variant:"primary",onClick:t[0]||(t[0]=m=>y.value=!0)},{default:$(()=>[...t[32]||(t[32]=[x("管理",-1)])]),_:1})])]),e("div",ka,[t[39]||(t[39]=e("div",{class:"setting-section-title"},"用户帮助",-1)),t[40]||(t[40]=e("div",{class:"setting-section-desc"}," 在对话中使用 ZeroWorkspace 的指南 ",-1)),e("div",ha,[k(Ue,{title:"快速入门"},{default:$(()=>[k(nt,{content:Ce(As)},null,8,["content"])]),_:1}),k(Ue,{title:"触发词速查"},{default:$(()=>[e("div",wa,[e("table",ba,[t[36]||(t[36]=e("thead",null,[e("tr",null,[e("th",null,"意图"),e("th",null,"说法")])],-1)),e("tbody",null,[(l(!0),n(z,null,re(Ce(Rs),m=>(l(),n("tr",{key:m.intent},[e("td",null,c(m.intent),1),e("td",null,c(m.phrases.join(" / ")),1)]))),128))])])])]),_:1})]),e("div",Ca,[e("a",{class:"doc-link",href:"javascript:void(0)",onClick:ce},[...t[37]||(t[37]=[x(" 查看完整手册 ",-1),e("span",{class:"doc-link-arrow"},"→",-1)])]),e("a",{class:E(["doc-link",{disabled:Z.value}]),href:"javascript:void(0)",onClick:ke},[x(c(Z.value?"生成中...":"生成功能介绍与版本更新记录")+" ",1),t[38]||(t[38]=e("span",{class:"doc-link-arrow"},"→",-1))],2)])])])]),_:1},8,["model-value"]),k(Se,{modelValue:w.value,"onUpdate:modelValue":t[2]||(t[2]=m=>w.value=m),title:"Git 模式警告",message:"选择此选项后,启用派发时将自动使用 Git 模式(自动创建分支、提交、回滚)。此功能为实验性功能,可能会影响 Git 历史。确定要设置吗?",type:"warning","confirm-text":"确定设置","cancel-text":"取消",onConfirm:q},null,8,["modelValue"]),k(ws,{visible:R.value,"onUpdate:visible":t[3]||(t[3]=m=>R.value=m),onWorkspaceImported:N},null,8,["visible"]),k(Ge,{visible:y.value,"onUpdate:visible":t[4]||(t[4]=m=>y.value=m),onChange:H},null,8,["visible"]),k(Se,{modelValue:ve.value,"onUpdate:modelValue":t[5]||(t[5]=m=>ve.value=m),title:"生成功能介绍",message:"将重新生成「功能简介」和「版本更新」工作区。如果已存在,将被覆盖。确定继续吗?",type:"info","confirm-text":"确定生成","cancel-text":"取消",onConfirm:Te},null,8,["modelValue"]),k($e,{modelValue:A.value,"onUpdate:modelValue":t[7]||(t[7]=m=>A.value=m),title:"VERSION INFO",width:"480px"},{footer:$(()=>[e("button",{class:"btn-secondary",onClick:p},"查看 NPM"),e("button",{class:"btn-primary",onClick:t[6]||(t[6]=m=>A.value=!1)},"关闭")]),default:$(()=>[e("div",$a,[e("div",xa,[e("span",_a,c(T.value?.currentVersion),1),T.value?.updateAvailable?(l(),n(z,{key:0},[t[42]||(t[42]=e("span",{class:"version-arrow"},"→",-1)),e("span",Da,c(T.value?.latestVersion),1)],64)):b("",!0)]),T.value?.updateAvailable?(l(),n(z,{key:1},[e("div",{class:"update-section"},[t[46]||(t[46]=e("h3",{class:"section-title"},"更新方式",-1)),t[47]||(t[47]=e("p",{class:"section-desc"},"在终端中运行以下命令:",-1)),e("div",{class:"command-box-clickable",onClick:u,title:"点击复制"},[...t[45]||(t[45]=[e("code",{class:"command-code"},"zero-workspace update",-1),e("span",{class:"copy-hint"},"COPY",-1)])])]),t[48]||(t[48]=e("div",{class:"tip-box"},[e("span",{class:"tip-label"},"TIP"),e("span",{class:"tip-text"},"更新后需重启 AI 工具使新版本生效")],-1))],64)):(l(),n("div",Ta,[t[43]||(t[43]=e("div",{class:"latest-graphic"},[e("div",{class:"sync-block-back"}),e("div",{class:"sync-block-front"}),e("div",{class:"sync-dot"})],-1)),t[44]||(t[44]=e("div",{class:"latest-title"},"已是最新版本",-1)),e("div",Ia,"v"+c(T.value?.currentVersion),1)]))])]),_:1},8,["modelValue"]),k($e,{modelValue:W.value,"onUpdate:modelValue":t[11]||(t[11]=m=>W.value=m),title:"DISPATCH CONFIG",width:"520px"},{footer:$(()=>[k(F,{variant:"cancel",onClick:ee},{default:$(()=>[...t[54]||(t[54]=[x("取消",-1)])]),_:1}),k(F,{variant:"primary",onClick:ae,loading:Ce(C).loading},{default:$(()=>[...t[55]||(t[55]=[x(" 保存 ",-1)])]),_:1},8,["loading"])]),default:$(()=>[e("div",Sa,[e("div",Ea,[e("label",{class:E(["radio-card",{selected:D.value==="none"}]),onClick:t[8]||(t[8]=m=>U("none"))},[e("input",{type:"radio",name:"dispatch-mode",checked:D.value==="none"},null,8,Ma),t[49]||(t[49]=e("div",null,[e("span",{class:"radio-card-title"},"每次询问 (Recommended)"),e("span",{class:"radio-card-desc"},"启用派发时弹窗让用户选择模式。")],-1))],2),e("label",{class:E(["radio-card",{selected:D.value==="no-git"}]),onClick:t[9]||(t[9]=m=>U("no-git"))},[e("input",{type:"radio",name:"dispatch-mode",checked:D.value==="no-git"},null,8,Va),t[50]||(t[50]=e("div",null,[e("span",{class:"radio-card-title"},"自动使用无 Git 模式"),e("span",{class:"radio-card-desc"},"直接启用派发,仅更新元数据,不影响代码仓库。")],-1))],2),e("label",{class:E(["radio-card",{selected:D.value==="git"}]),onClick:t[10]||(t[10]=m=>U("git"))},[e("input",{type:"radio",name:"dispatch-mode",checked:D.value==="git"},null,8,Ba),t[51]||(t[51]=e("div",null,[e("span",{class:"radio-card-title"},"自动使用 Git 模式 (Experimental)"),e("span",{class:"radio-card-desc"},"直接启用派发,自动创建分支、提交、回滚。")],-1))],2)]),D.value==="git"?(l(),n("div",Aa,[...t[52]||(t[52]=[e("div",{class:"warning-title"},"GIT MODE RISKS",-1),e("ul",{class:"warning-list"},[e("li",null,[x("自动创建 "),e("span",{class:"code-tag"},"zero_workspace/process/*"),x(" 分支")]),e("li",null,"任务完成时自动提交代码"),e("li",null,[x("测试失败时执行 "),e("span",{class:"code-tag"},"git reset --hard"),x("(可能丢失未提交代码)")]),e("li",null,"合并时可能产生冲突")],-1)])])):b("",!0),D.value==="no-git"?(l(),n("div",Ra,[...t[53]||(t[53]=[e("div",{class:"info-title"},"NO-GIT MODE LIMITS",-1),e("ul",{class:"info-list"},[e("li",null,"测试失败时无法自动回滚"),e("li",null,"建议在执行前手动备份重要文件")],-1)])])):b("",!0)])]),_:1},8,["modelValue"])],64))}}),Na=De(Pa,[["__scopeId","data-v-799a9b16"]]),za={class:"home-view"},La={class:"header"},Ua={class:"header-actions"},Oa=["title"],Wa={key:0,class:"icon-sun",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},Fa={key:1,class:"icon-moon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},ja=["disabled"],Ga={key:0,class:"plugin-update-banner"},Ha={class:"filter-bar"},Ka={class:"filter-left"},Za={class:"tabs"},Ja={class:"filter-right"},Ya={class:"custom-select-dropdown"},qa={class:"main-content"},Qa={key:0,class:"empty-state"},Xa={class:"empty-state-title"},el={key:1,class:"card-grid"},tl={class:"card-header"},sl=["onClick"],al=["onClick"],ll=["onClick"],nl={class:"card-body"},ol=["title"],il={class:"meta-info"},rl={class:"card-footer"},dl=["onClick"],ul=["onClick"],cl=["onClick"],vl=["onClick"],pl=["onClick"],fl=["onClick"],ml={class:"form-group"},gl={class:"form-group"},yl=["disabled"],kl={key:1,class:"dev-badge",title:"开发模式 - 点击设置查看详细版本信息"},hl={class:"error-message-box"},wl={key:0,class:"diagnose-result"},bl={class:"diagnose-header"},Cl={class:"diagnose-summary"},$l={class:"issue-list"},xl={class:"issue-icon"},_l={class:"issue-message"},Dl={key:0,class:"issue-tag tag-auto"},Tl={key:1,class:"issue-tag tag-cli"},Il={key:2,class:"issue-tag tag-manual"},Sl={key:0,class:"no-issues"},El={key:1,class:"cli-hint-box"},Ml={class:"cli-hint-command"},Vl={class:"cli-command"},Bl=["disabled"],Al=["disabled"],Rl=["disabled"],Oe="zero-plugin-banner-dismissed-date",We="zero-workspace-home-preferences",Pl=_e({__name:"HomeView",setup(Q,{expose:de}){const C=st(),h=at(),f=Ve(),B=i("light"),T=i(!1),A=i(!1),_=i(!1),P=i(!1),R=i(""),y=i(""),O=i("info"),H=i(null),W=i(!1),D=i(""),K=i(""),I=i(null);function Y(){return new Date().toISOString().split("T")[0]??""}function te(){return localStorage.getItem(Oe)===Y()}const se=i(te());function w(d){const s=d.components;return s.mcp.outdated||s.hooks.outdated||s.agents.outdated||s.skills.outdated}const M=ye(()=>{if(se.value||!I.value)return!1;const{claudeCode:d,cursor:s}=I.value.platforms;return d.enabled&&w(d)||s.enabled&&w(s)});function ue(){se.value=!0,localStorage.setItem(Oe,Y())}function N(){A.value=!0}const S=i({name:"",goal:"",rules:[],docs:[]});function L(){try{const d=localStorage.getItem(We);if(d)return JSON.parse(d)}catch{}return{statusFilter:"all",sortBy:"updatedAt",sortOrder:"desc",theme:"light"}}function j(){const d={statusFilter:U.value,sortBy:ee.value,sortOrder:ae.value,theme:B.value};localStorage.setItem(We,JSON.stringify(d))}const oe=L(),U=i(oe.statusFilter),X=i(""),ee=i(oe.sortBy),ae=i(oe.sortOrder),q=i(!1);B.value=oe.theme;function ce(){q.value=!1}Le(()=>{document.addEventListener("click",ce)});const r=i(null);function u(){B.value=B.value==="light"?"dark":"light",document.documentElement.setAttribute("data-theme",B.value),j()}const p=i(!1);async function Z(){if(!p.value){p.value=!0;try{await h.fetchWorkspaces("all"),f.success("刷新成功")}catch{f.error("刷新失败")}finally{p.value=!1}}}de({handleRefresh:Z}),Le(async()=>{document.documentElement.setAttribute("data-theme",B.value);try{await h.fetchWorkspaces("all")}catch{f.error("加载失败","无法加载工作区列表")}try{r.value=await Ie.getDevInfo()}catch{}try{I.value=await Pe.getInstallationStatus()}catch{}const d=lt();d.connect(),d.on("workspace_updated",()=>{console.log("[SSE] 收到工作区更新,刷新列表"),h.fetchWorkspaces("all")})}),Ee([U,ee,ae,B],()=>{j()});async function ve(){if(!S.value.name||!S.value.goal){f.warning("请填写名称和目标");return}try{await h.createWorkspace(S.value),f.success("创建成功"),T.value=!1,S.value={name:"",goal:"",rules:[],docs:[]}}catch{f.error("创建失败")}}function ke(d,s,J,v){R.value=d,y.value=s,O.value=J,H.value=v,P.value=!0}async function Te(){H.value&&(await H.value(),H.value=null)}function V(d,s){ke("删除确认",`确定要删除工作区「${s}」吗?此操作不可撤销。`,"danger",async()=>{await h.deleteWorkspace(d,!0),f.success("删除成功")})}function t(d,s){ke("归档确认",`确定要归档工作区「${s}」吗?`,"info",async()=>{await h.archiveWorkspace(d),f.success("归档成功")})}function m(d,s){ke("恢复确认",`确定要恢复工作区「${s}」吗?`,"info",async()=>{await h.restoreWorkspace(d),f.success("恢复成功")})}function pe(d){if(d.status==="error"){he(d);return}C.push(`/workspace/${d.id}`)}function he(d){const s=d.errorInfo,J=s?`错误类型:${s.type||"未知"}
8
8
  错误信息:${s.message}
9
9
  检测时间:${ge(s.detectedAt)}`:"未知错误";D.value=`工作区「${d.name}」出错`,K.value=J,le.value=d,W.value=!0}const le=i(null),fe=i(!1),G=i(null),we=i(!1),me=i(!1);async function Me(){if(!(!le.value||we.value)){we.value=!0,G.value=null;try{G.value=await Ie.diagnose(le.value.id)}catch(d){const s=d instanceof Error?d.message:"诊断失败";f.error("诊断失败",s)}finally{we.value=!1}}}async function Be(){if(!le.value||me.value||!G.value)return;const d=G.value.issues.filter(s=>s.fixType==="auto").map(s=>s.id);if(d.length===0){f.warning("没有可自动修复的问题");return}me.value=!0;try{const s=await Ie.repair(le.value.id,d);s.fixed>0&&(f.success("修复完成",`成功修复 ${s.fixed} 个问题`),await Me(),await h.fetchWorkspaces("all")),s.failed>0&&f.warning("部分修复失败",`${s.failed} 个问题修复失败`)}catch(s){const J=s instanceof Error?s.message:"修复失败";f.error("修复失败",J)}finally{me.value=!1}}function Ae(){if(!le.value)return;const d=`tw repair ${le.value.id}`;navigator.clipboard.writeText(d).then(()=>{f.success("已复制",d)}).catch(()=>{f.error("复制失败","请手动复制命令")})}async function o(){if(!(!le.value||fe.value)){fe.value=!0;try{const d=await Ie.reload(le.value.id);d.success?(f.success("重新加载成功",d.message),W.value=!1,G.value=null,await h.fetchWorkspaces("all")):f.error("重新加载失败",d.message)}catch(d){const s=d instanceof Error?d.message:"重新加载失败";f.error("重新加载失败",s)}finally{fe.value=!1}}}function a(d){return d.fixType==="auto"?"✓":d.fixType==="interactive"?"⚠":"✗"}function g(d){return d.fixType==="auto"?"issue-auto":d.fixType==="interactive"?"issue-interactive":"issue-manual"}function ge(d){return new Date(d).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}const Ne=ye(()=>{let d=[];if(U.value==="active"?d=[...h.activeWorkspaces]:U.value==="archived"?d=[...h.archivedWorkspaces]:U.value==="error"?d=h.workspaces.filter(s=>s.status==="error"):d=[...h.workspaces],X.value.trim()){const s=X.value.toLowerCase().trim();d=d.filter(J=>J.name.toLowerCase().includes(s)||J.projectRoot.toLowerCase().includes(s))}return d.sort((s,J)=>{if(s.pinned&&!J.pinned)return-1;if(!s.pinned&&J.pinned)return 1;const v=new Date(s[ee.value]).getTime(),ne=new Date(J[ee.value]).getTime();return ae.value==="desc"?ne-v:v-ne}),d});function He(d){if(!d)return"";const s=d.split("/");return s.length<=2?d:".../"+s.slice(-2).join("/")}function Ke(){ae.value=ae.value==="desc"?"asc":"desc"}function Ze(d){return d==="active"?"badge-active":d==="error"?"badge-error":"badge-archived"}function Je(d){return d==="active"?"Active":d==="error"?"Error":"Archived"}async function ze(d,s){s.stopPropagation();try{await h.togglePin(d)}catch(J){f.error(J instanceof Error?J.message:"置顶操作失败")}}return(d,s)=>{const J=tt("loading");return l(),n("div",za,[e("header",La,[s[26]||(s[26]=e("div",{class:"logo"},[e("img",{src:ot,alt:"ZeroWorkspace",class:"logo-img"})],-1)),e("div",Ua,[e("button",{class:"theme-toggle",onClick:u,title:B.value==="light"?"切换到深色模式":"切换到浅色模式"},[B.value==="light"?(l(),n("svg",Wa,[...s[21]||(s[21]=[Re('<circle cx="12" cy="12" r="5" data-v-1e83d67d></circle><line x1="12" y1="1" x2="12" y2="3" data-v-1e83d67d></line><line x1="12" y1="21" x2="12" y2="23" data-v-1e83d67d></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-1e83d67d></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-1e83d67d></line><line x1="1" y1="12" x2="3" y2="12" data-v-1e83d67d></line><line x1="21" y1="12" x2="23" y2="12" data-v-1e83d67d></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-1e83d67d></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-1e83d67d></line>',9)])])):(l(),n("svg",Fa,[...s[22]||(s[22]=[e("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"},null,-1)])]))],8,Oa),e("button",{class:"btn btn-secondary",onClick:Z,disabled:p.value,title:"刷新数据"},[e("span",{class:E({spin:p.value})},"⇄",2),s[23]||(s[23]=x(" SYNC ",-1))],8,ja),e("button",{class:"btn btn-secondary",onClick:s[0]||(s[0]=v=>_.value=!0),title:"备份管理"},[...s[24]||(s[24]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",ry:"2"}),e("polyline",{points:"9 13 12 16 15 13"}),e("line",{x1:"12",y1:"16",x2:"12",y2:"8"})],-1),x(" BACKUP ",-1)])]),e("button",{class:"btn btn-secondary",onClick:s[1]||(s[1]=v=>A.value=!0),title:"设置"},[...s[25]||(s[25]=[Re('<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" data-v-1e83d67d><line x1="1" y1="3" x2="15" y2="3" data-v-1e83d67d></line><rect x="10" y="1" width="3" height="4" fill="currentColor" stroke="none" data-v-1e83d67d></rect><line x1="1" y1="8" x2="15" y2="8" data-v-1e83d67d></line><rect x="4" y="6" width="3" height="4" fill="currentColor" stroke="none" data-v-1e83d67d></rect><line x1="1" y1="13" x2="15" y2="13" data-v-1e83d67d></line><rect x="8" y="11" width="3" height="4" fill="currentColor" stroke="none" data-v-1e83d67d></rect></svg> SETTINGS ',2)])]),e("button",{class:"btn btn-primary",onClick:s[2]||(s[2]=v=>T.value=!0)},"+ NEW")])]),M.value?(l(),n("div",Ga,[e("div",{class:"banner-content"},[s[27]||(s[27]=e("span",{class:"banner-tag"},"UPDATE",-1)),s[28]||(s[28]=e("span",{class:"banner-text"},"部分插件需要更新以获取最新功能",-1)),e("button",{class:"banner-action",onClick:N},"查看")]),e("button",{class:"banner-close",onClick:ue,title:"关闭提示"},"✕")])):b("",!0),e("div",Ha,[e("div",Ka,[e("div",Za,[e("div",{class:E(["tab",{active:U.value==="all"}]),onClick:s[3]||(s[3]=v=>U.value="all")},"全部",2),e("div",{class:E(["tab",{active:U.value==="active"}]),onClick:s[4]||(s[4]=v=>U.value="active")},"活跃",2),e("div",{class:E(["tab",{active:U.value==="archived"}]),onClick:s[5]||(s[5]=v=>U.value="archived")},"已归档",2),e("div",{class:E(["tab",{active:U.value==="error"}]),onClick:s[6]||(s[6]=v=>U.value="error")},"错误",2)]),be(e("input",{type:"text",class:"search-input","onUpdate:modelValue":s[7]||(s[7]=v=>X.value=v),placeholder:"搜索名称或路径..."},null,512),[[xe,X.value]])]),e("div",Ja,[e("div",{class:E(["custom-select",{open:q.value}])},[e("div",{class:"custom-select-trigger",onClick:s[8]||(s[8]=je(v=>q.value=!q.value,["stop"]))},c(ee.value==="updatedAt"?"更新时间":"创建时间"),1),e("div",Ya,[e("div",{class:E(["custom-select-option",{selected:ee.value==="createdAt"}]),onClick:s[9]||(s[9]=v=>{ee.value="createdAt",q.value=!1})},"创建时间",2),e("div",{class:E(["custom-select-option",{selected:ee.value==="updatedAt"}]),onClick:s[10]||(s[10]=v=>{ee.value="updatedAt",q.value=!1})},"更新时间",2)])],2),e("button",{class:E(["btn btn-icon",{desc:ae.value==="desc"}]),onClick:Ke,title:"切换排序方向"},[...s[29]||(s[29]=[e("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("path",{d:"M7 10l5 5 5-5"})],-1)])],2)])]),e("main",qa,[Ne.value.length===0&&!Ce(h).loading?(l(),n("div",Qa,[s[30]||(s[30]=Re('<div class="empty-state-icon" data-v-1e83d67d><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" data-v-1e83d67d><rect x="3" y="3" width="18" height="18" rx="2" data-v-1e83d67d></rect><line x1="12" y1="8" x2="12" y2="16" data-v-1e83d67d></line><line x1="8" y1="12" x2="16" y2="12" data-v-1e83d67d></line></svg></div>',1)),e("div",Xa,c(X.value?"没有匹配的工作区":"暂无工作区"),1),s[31]||(s[31]=e("div",{class:"empty-state-desc"},"创建一个新的工作区来开始管理你的任务",-1)),e("button",{class:"btn btn-primary",onClick:s[11]||(s[11]=v=>T.value=!0)},"+ 新建工作区")])):be((l(),n("div",el,[(l(!0),n(z,null,re(Ne.value,v=>(l(),n("div",{key:v.id,class:E(["card",{archived:v.status==="archived",pinned:v.pinned}])},[e("div",tl,[e("h3",{class:"card-title",onClick:ne=>v.status!=="error"&&pe(v)},c(v.name),9,sl),v.pinned?(l(),n("span",{key:0,class:"pin-badge pin-badge-active",onClick:ne=>ze(v.id,ne)},"PIN",8,al)):(l(),n("span",{key:1,class:"pin-badge pin-badge-hint",onClick:ne=>ze(v.id,ne)},"PIN",8,ll)),e("span",{class:E(["badge",Ze(v.status)])},c(Je(v.status)),3)]),e("div",nl,[e("div",{class:"path-box",title:v.projectRoot},c(He(v.projectRoot)),9,ol),e("div",il,[e("span",null,"Created: "+c(ge(v.createdAt)),1),e("span",null,"Updated: "+c(ge(v.updatedAt)),1)])]),e("div",rl,[v.status==="error"?(l(),n(z,{key:0},[e("button",{class:"btn btn-accent",onClick:ne=>he(v)},"查看错误",8,dl),e("button",{class:"btn btn-danger",onClick:ne=>V(v.id,v.name)},"删除",8,ul)],64)):(l(),n(z,{key:1},[e("button",{class:"btn btn-accent",onClick:ne=>pe(v)},"进入 >",8,cl),v.status==="active"?(l(),n("button",{key:0,class:"btn btn-ghost",onClick:ne=>t(v.id,v.name)},"归档",8,vl)):(l(),n("button",{key:1,class:"btn btn-ghost",onClick:ne=>m(v.id,v.name)},"恢复",8,pl)),e("button",{class:"btn btn-danger",onClick:ne=>V(v.id,v.name)},"删除",8,fl)],64))])],2))),128))])),[[J,Ce(h).loading]])]),k($e,{modelValue:T.value,"onUpdate:modelValue":s[15]||(s[15]=v=>T.value=v),title:"NEW WORKSPACE"},{footer:$(()=>[e("button",{class:"btn btn-cancel",onClick:s[14]||(s[14]=v=>T.value=!1)},"取消"),e("button",{class:"btn btn-primary",onClick:ve,disabled:Ce(h).loading},"创建",8,yl)]),default:$(()=>[e("div",ml,[s[32]||(s[32]=e("label",{class:"form-label"},"工作区名称",-1)),be(e("input",{type:"text",class:"form-input","onUpdate:modelValue":s[12]||(s[12]=v=>S.value.name=v),placeholder:"输入工作区名称..."},null,512),[[xe,S.value.name]])]),e("div",gl,[s[33]||(s[33]=e("label",{class:"form-label"},"目标描述",-1)),be(e("textarea",{class:"form-input form-textarea","onUpdate:modelValue":s[13]||(s[13]=v=>S.value.goal=v),placeholder:"描述工作区的目标...",rows:"3"},null,512),[[xe,S.value.goal]])])]),_:1},8,["modelValue"]),k(Na,{visible:A.value,"onUpdate:visible":s[16]||(s[16]=v=>A.value=v),onTutorialCreated:Z,onWorkspaceImported:Z},null,8,["visible"]),k(Ge,{visible:_.value,"onUpdate:visible":s[17]||(s[17]=v=>_.value=v)},null,8,["visible"]),r.value?.isDev?(l(),n("div",kl," DEV ")):b("",!0),k(Se,{modelValue:P.value,"onUpdate:modelValue":s[18]||(s[18]=v=>P.value=v),title:R.value,message:y.value,type:O.value,onConfirm:Te},null,8,["modelValue","title","message","type"]),k($e,{modelValue:W.value,"onUpdate:modelValue":s[20]||(s[20]=v=>W.value=v),title:D.value,width:"520px"},{footer:$(()=>[e("button",{class:"btn btn-secondary",onClick:Me,disabled:we.value},c(we.value?"诊断中...":"诊断"),9,Bl),G.value&&G.value.summary.autoFixable>0?(l(),n("button",{key:0,class:"btn btn-accent",onClick:Be,disabled:me.value},c(me.value?"修复中...":`自动修复 (${G.value.summary.autoFixable})`),9,Al)):b("",!0),e("button",{class:"btn btn-secondary",onClick:o,disabled:fe.value},c(fe.value?"加载中...":"重新加载"),9,Rl),e("button",{class:"btn btn-primary",onClick:s[19]||(s[19]=v=>{W.value=!1,G.value=null})},"关闭")]),default:$(()=>[e("div",hl,c(K.value),1),G.value?(l(),n("div",wl,[e("div",bl,[s[34]||(s[34]=e("span",{class:"diagnose-title"},"诊断结果",-1)),e("span",Cl,[x(c(G.value.summary.total)+" 个问题 ",1),G.value.summary.autoFixable>0?(l(),n(z,{key:0},[x(" ("+c(G.value.summary.autoFixable)+" 个可自动修复) ",1)],64)):b("",!0)])]),e("div",$l,[(l(!0),n(z,null,re(G.value.issues,v=>(l(),n("div",{key:v.id,class:E(["issue-item",g(v)])},[e("span",xl,c(a(v)),1),e("span",_l,c(v.message),1),v.fixType==="auto"?(l(),n("span",Dl,"可自动修复")):v.fixType==="interactive"?(l(),n("span",Tl,"需 CLI 修复")):(l(),n("span",Il,"需手动修复"))],2))),128))]),G.value.issues.length===0?(l(),n("div",Sl," 未发现问题,可尝试重新加载 ")):b("",!0),G.value.summary.interactiveFixable>0||G.value.summary.manualFixable>0?(l(),n("div",El,[s[36]||(s[36]=e("div",{class:"cli-hint-header"},[e("span",{class:"cli-hint-tag"},"CLI"),e("span",{class:"cli-hint-text"},"部分问题需要在命令行修复")],-1)),e("div",Ml,[e("code",Vl,"tw repair "+c(le.value?.id),1),e("button",{class:"cli-copy-btn",onClick:Ae,title:"复制命令"},[...s[35]||(s[35]=[e("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[e("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),e("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1)])])])])):b("",!0)])):b("",!0)]),_:1},8,["modelValue","title"])])}}}),Ul=De(Pl,[["__scopeId","data-v-1e83d67d"]]);export{Ul as default};