zen-gitsync 2.17.40 → 2.17.41

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 (85) hide show
  1. package/README.md +6 -6
  2. package/package.json +7 -2
  3. package/src/config.js +69 -44
  4. package/src/ui/public/assets/{AgentEngineSelector-BXRU9N3n.js → AgentEngineSelector-CSHgQmBZ.js} +1 -1
  5. package/src/ui/public/assets/AgentEngineSelector-D7DmG6PU.css +1 -0
  6. package/src/ui/public/assets/{AgentView-YQuKBxoC.js → AgentView-I_fQFLKK.js} +1 -1
  7. package/src/ui/public/assets/AgentView-h2YnbB7J.css +1 -0
  8. package/src/ui/public/assets/{AppVersionBadge-CSOyKuxL.js → AppVersionBadge-CBSMyORM.js} +2 -2
  9. package/src/ui/public/assets/AppVersionBadge-XszX3cSC.css +1 -0
  10. package/src/ui/public/assets/{BranchSelector-mcQyh4sc.js → BranchSelector-Dus0Co03.js} +1 -1
  11. package/src/ui/public/assets/CommitForm-C7ydqzWG.css +1 -0
  12. package/src/ui/public/assets/{CommitForm-DcVysfJZ.js → CommitForm-DZfqHlWx.js} +3 -3
  13. package/src/ui/public/assets/{CommonDialog-CFLZuomi.js → CommonDialog-BaaWQMm0.js} +1 -1
  14. package/src/ui/public/assets/EditorView-4yWirn4A.js +1 -0
  15. package/src/ui/public/assets/EditorView-CzrwLEbB.css +1 -0
  16. package/src/ui/public/assets/FileDiffViewer-CtP7u1L7.css +1 -0
  17. package/src/ui/public/assets/{FileDiffViewer-BrrqMLh8.js → FileDiffViewer-qC3HjA4L.js} +4 -4
  18. package/src/ui/public/assets/{FlowExecutionViewer-BucjKlcc.js → FlowExecutionViewer-Baabatxd.js} +1 -1
  19. package/src/ui/public/assets/FlowOrchestrationWorkspace-DLt_i4gs.css +1 -0
  20. package/src/ui/public/assets/{FlowOrchestrationWorkspace-yUPhhUL9.js → FlowOrchestrationWorkspace-teHyeO3I.js} +2 -2
  21. package/src/ui/public/assets/{IconButton-BSJ5FhS5.js → IconButton-8QwNIEIr.js} +1 -1
  22. package/src/ui/public/assets/IconButton-DmetnIEM.css +1 -0
  23. package/src/ui/public/assets/{LogList-6iOkdR0p.js → LogList-BMm64HIx.js} +2 -2
  24. package/src/ui/public/assets/LogList-DViWAYe9.css +1 -0
  25. package/src/ui/public/assets/{MindmapView-Dc7VRSLk.js → MindmapView-CemLoVSh.js} +1 -1
  26. package/src/ui/public/assets/MindmapView-D_tEBhMg.css +1 -0
  27. package/src/ui/public/assets/{MonitorView-B8tcPtiX.js → MonitorView-DolfvhpN.js} +1 -1
  28. package/src/ui/public/assets/MonitorView-nh6LB-oh.css +1 -0
  29. package/src/ui/public/assets/ProjectStartupButton-BWGIWiPF.css +1 -0
  30. package/src/ui/public/assets/{ProjectStartupButton-CPGw8eiW.js → ProjectStartupButton-DzzIon_u.js} +1 -1
  31. package/src/ui/public/assets/RecentDirectoriesChat-BxbpKrXc.css +1 -0
  32. package/src/ui/public/assets/{RecentDirectoriesChat-C0lQ_zmQ.js → RecentDirectoriesChat-ciDAbG1B.js} +1 -1
  33. package/src/ui/public/assets/RemoteManagerDialog-DecRuME6.css +1 -0
  34. package/src/ui/public/assets/{RemoteManagerDialog-CGuGZSse.js → RemoteManagerDialog-DydRnKaP.js} +1 -1
  35. package/src/ui/public/assets/RemoteRepoCard-DJkEGjRM.css +1 -0
  36. package/src/ui/public/assets/RemoteRepoCard-i-0LnQMD.js +1 -0
  37. package/src/ui/public/assets/{SourceMapView-OwBvsqME.js → SourceMapView-BV5r3wZE.js} +3 -3
  38. package/src/ui/public/assets/SourceMapView-W3kEDGi8.css +1 -0
  39. package/src/ui/public/assets/{SvgIcon-CevyX7lX.js → SvgIcon-7IDEgoQx.js} +1 -1
  40. package/src/ui/public/assets/{TemplateManager-BtpsyfbK.js → TemplateManager-6FX2EdMq.js} +1 -1
  41. package/src/ui/public/assets/TemplateManager-6liTCBpW.css +1 -0
  42. package/src/ui/public/assets/{UserInputNode-BPTWXh5G.js → UserInputNode-Dajnb5r1.js} +1 -1
  43. package/src/ui/public/assets/UserInputNode-wfqZIucW.css +1 -0
  44. package/src/ui/public/assets/WorkbenchView-DfHNBWS0.css +1 -0
  45. package/src/ui/public/assets/WorkbenchView-trn3xPiX.js +20 -0
  46. package/src/ui/public/assets/{_plugin-vue_export-helper-DF39dMex.js → _plugin-vue_export-helper-Dp1lG95_.js} +4 -4
  47. package/src/ui/public/assets/agentConversations-FiD_iarB.js +6 -0
  48. package/src/ui/public/assets/configStore-wR8LDvKB.js +1 -0
  49. package/src/ui/public/assets/{gitStore-1o5Sp0mh.js → gitStore-D4L9bpMp.js} +1 -1
  50. package/src/ui/public/assets/index-Bu08kcaz.js +29 -0
  51. package/src/ui/public/assets/index-DdSWvL8M.css +1 -0
  52. package/src/ui/public/assets/{previewSandbox-BioBqkiI.js → previewSandbox-BHijazEq.js} +1 -1
  53. package/src/ui/public/assets/previewSandbox-BeiZ2CBl.css +1 -0
  54. package/src/ui/public/assets/{toolsStore-DozQNwtU.js → toolsStore-BGwhTEUD.js} +1 -1
  55. package/src/ui/public/index.html +16 -16
  56. package/src/ui/server/routes/config.js +13 -16
  57. package/src/ui/server/routes/workbench/projectRegistry.js +39 -0
  58. package/src/ui/server/routes/workbench/projectRegistry.test.js +48 -0
  59. package/src/ui/public/assets/AgentEngineSelector-DR3r5eQE.css +0 -1
  60. package/src/ui/public/assets/AgentView-D87GB-H9.css +0 -1
  61. package/src/ui/public/assets/AppVersionBadge--5If494j.css +0 -1
  62. package/src/ui/public/assets/CommitForm-94maYxfo.css +0 -1
  63. package/src/ui/public/assets/EditorView-BS4GfwaQ.js +0 -1
  64. package/src/ui/public/assets/EditorView-BsuQfcO4.css +0 -1
  65. package/src/ui/public/assets/FileDiffViewer-B6zy6NiA.css +0 -1
  66. package/src/ui/public/assets/FlowOrchestrationWorkspace-CM2_9TW3.css +0 -1
  67. package/src/ui/public/assets/IconButton-W2X09OKH.css +0 -1
  68. package/src/ui/public/assets/LogList-DLxxk9NX.css +0 -1
  69. package/src/ui/public/assets/MindmapView-C4xg3TwX.css +0 -1
  70. package/src/ui/public/assets/MonitorView-BWOQfPtI.css +0 -1
  71. package/src/ui/public/assets/ProjectStartupButton-VoQqFee4.css +0 -1
  72. package/src/ui/public/assets/RecentDirectoriesChat-o4xK1Koc.css +0 -1
  73. package/src/ui/public/assets/RemoteManagerDialog-BSOph2h2.css +0 -1
  74. package/src/ui/public/assets/RemoteRepoCard-CG9WPcA_.css +0 -1
  75. package/src/ui/public/assets/RemoteRepoCard-DbflPz65.js +0 -1
  76. package/src/ui/public/assets/SourceMapView-CO_BZJKu.css +0 -1
  77. package/src/ui/public/assets/TemplateManager-DiM3vrbf.css +0 -1
  78. package/src/ui/public/assets/UserInputNode-d-oRXM_J.css +0 -1
  79. package/src/ui/public/assets/WorkbenchView-CSRMrK-l.js +0 -20
  80. package/src/ui/public/assets/WorkbenchView-fCu0K8e3.css +0 -1
  81. package/src/ui/public/assets/agentConversations-CPWL3WOC.js +0 -6
  82. package/src/ui/public/assets/configStore-CZhbJNkw.js +0 -1
  83. package/src/ui/public/assets/index-CM4UxQfy.css +0 -1
  84. package/src/ui/public/assets/index-Cw-KBQo_.js +0 -29
  85. package/src/ui/public/assets/previewSandbox-SqNQvuHv.css +0 -1
@@ -1 +0,0 @@
1
- .wb-ctx-menu[data-v-cbc0a709]{z-index:9999;background:var(--bg-container);border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:140px;box-shadow:var(--shadow-md);-webkit-user-select:none;user-select:none;font-size:var(--font-size-mid);margin:0;padding:4px;list-style:none;position:fixed}.wb-ctx-menu__item[data-v-cbc0a709]{border-radius:var(--radius-base);cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:6px 10px;display:flex}.wb-ctx-menu__item[data-v-cbc0a709]:hover{background:var(--tint-primary-12);color:var(--color-primary)}.wb-ctx-menu__item.is-disabled[data-v-cbc0a709]{cursor:progress;opacity:.6}.wb-ctx-menu__icon[data-v-cbc0a709]{justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.wb-log-details[data-v-bcd29640]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-code);flex-direction:column;flex:1;height:100%;min-height:0;margin-top:6px;display:flex;overflow:auto}.wb-log-details__body[data-v-bcd29640]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.wb-job-chat[data-v-bcd29640]{flex-direction:column;flex:1;min-height:0;display:flex}.wb-job-chat[data-v-bcd29640] .acu-chat-footer{display:none}.wb-job-chat[data-v-bcd29640] .acu-chat{background:0 0}.wb-job-chat[data-v-bcd29640] .acu-message-list-inner{gap:10px;padding:10px 12px 14px}.wb-job-chat[data-v-bcd29640] .acu-bubble{font-size:var(--font-size-sm)}.wb-job-chat[data-v-bcd29640] .acu-bubble-name{font-size:var(--font-size-xs)}.wb-log-summary[data-v-bcd29640]{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;display:flex}.wb-log-summary[data-v-bcd29640]:hover{background:var(--tint-primary-06)}.wb-log-summary__left[data-v-bcd29640]{flex:1;align-items:center;gap:6px;min-width:0;display:inline-flex}.wb-log-summary__right[data-v-bcd29640]{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.wb-log-summary__meta[data-v-bcd29640]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.wb-log-copy[data-v-bcd29640]{font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-container);border:1px solid var(--border-color-medium);border-radius:var(--radius-base);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex-shrink:0;align-items:center;gap:3px;padding:2px 7px;font-weight:500;display:inline-flex}.wb-log-copy[data-v-bcd29640]:hover{background:color-mix(in srgb, var(--color-primary) 10%, transparent);border-color:color-mix(in srgb, var(--color-primary) 35%, transparent);color:var(--color-primary)}.wb-log-copy[data-v-bcd29640]:active{background:color-mix(in srgb, var(--color-primary) 18%, transparent)}.wb-log-copy[data-v-bcd29640]:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 50%, transparent);outline-offset:1px}.wb-chat__foot[data-v-bcd29640]{border-top:1px solid color-mix(in srgb, var(--border-color) 60%, transparent);background:color-mix(in srgb, var(--text-tertiary) 3%, transparent);flex-shrink:0;justify-content:flex-end;gap:6px;padding:4px 10px 6px;display:flex}.wb-chat__action[data-v-bcd29640]{font-size:var(--font-size-xs);color:#6d28d9;background:color-mix(in srgb, var(--color-think) 10%, var(--bg-container));border:1px solid color-mix(in srgb, var(--color-think) 30%, transparent);border-radius:var(--radius-base);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);align-items:center;gap:3px;padding:2px 8px;font-weight:500;display:inline-flex}.wb-chat__action[data-v-bcd29640]:hover{background:color-mix(in srgb, var(--color-think) 18%, var(--bg-container));border-color:color-mix(in srgb, var(--color-think) 50%, transparent);color:#5b21b6}.wb-chat__action[data-v-bcd29640]:active{background:color-mix(in srgb, var(--color-think) 26%, var(--bg-container))}.wb-chat__action[data-v-bcd29640]:focus-visible{outline:2px solid color-mix(in srgb, var(--color-think) 50%, transparent);outline-offset:1px}.wb-log-fullscreen-dialog .el-dialog__body[data-v-bcd29640]{flex-direction:column;height:calc(100vh - 54px);padding:0 16px 16px;display:flex;overflow:hidden}.wb-log-fullscreen[data-v-bcd29640]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-code);flex:1;min-height:0;display:flex;overflow:hidden}.wb-log-fullscreen__render[data-v-bcd29640]{min-height:0;font-size:var(--font-size-mid);color:var(--text-primary);flex:1;padding:14px 18px;line-height:1.65;overflow:auto}.wb-log-fullscreen__render[data-v-bcd29640] pre{margin:8px 0}.wb-log-fullscreen__empty[data-v-bcd29640]{color:var(--text-tertiary);padding:14px 18px;font-style:italic}.wb-log-summary__status[data-v-bcd29640]{font-weight:600;font-size:var(--font-size-sm);align-items:center;gap:6px;display:inline-flex}.wb-log-summary__status--running[data-v-bcd29640]{color:var(--color-warning-dark,var(--color-warning-dark))}.wb-log-summary__status--pending[data-v-bcd29640]{color:var(--color-primary)}.wb-log-summary__status--done[data-v-bcd29640]{color:var(--color-success-dark,#15803d)}.wb-log-summary__status--cancelled[data-v-bcd29640]{color:var(--color-gray-400)}.wb-log-summary__status--error[data-v-bcd29640]{color:var(--color-danger,var(--color-danger-light))}.wb-log-summary__icon[data-v-bcd29640]{font-size:var(--font-size-mid);line-height:1}.wb-log-summary__elapsed[data-v-bcd29640]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:2px;font-weight:400}.wb-log-dots[data-v-bcd29640]{align-items:center;gap:3px;margin-left:-2px;display:inline-flex}.wb-log-dots__dot[data-v-bcd29640]{opacity:.35;background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.4s ease-in-out infinite wb-log-dot-bounce-bcd29640}.wb-log-dots__dot[data-v-bcd29640]:nth-child(2){animation-delay:var(--transition-base)}.wb-log-dots__dot[data-v-bcd29640]:nth-child(3){animation-delay:.4s}.wb-log-details.is-running .wb-log-summary[data-v-bcd29640]{background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 8%, transparent)}.wb-log-details.is-pending .wb-log-summary[data-v-bcd29640]{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.wb-log-details.is-finished .wb-log-summary[data-v-bcd29640]{background:color-mix(in srgb, var(--color-success,var(--action-green)) 6%, transparent)}.wb-log-details.is-finished[data-v-bcd29640]{animation:1.5s ease-out wb-log-finished-flash-bcd29640}@keyframes wb-log-dot-bounce-bcd29640{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes wb-log-finished-flash-bcd29640{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-success,var(--action-green)) 50%, transparent)}60%{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-success,var(--action-green)) 0%, transparent)}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.wb-log-dots__dot[data-v-bcd29640],.wb-log-details.is-finished[data-v-bcd29640]{animation:none}}.exec-logs[data-v-7079b876]{flex-direction:column;gap:12px;height:100%;padding:16px 20px;display:flex;overflow:auto}.exec-logs__head[data-v-7079b876]{align-items:center;gap:12px;display:flex}.exec-logs__title-block[data-v-7079b876]{flex:1;align-items:baseline;gap:10px;min-width:0;display:flex}.exec-logs__stats[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.exec-logs__head-actions[data-v-7079b876]{flex-shrink:0;gap:8px;display:inline-flex}.exec-logs__config[data-v-7079b876]{background:var(--bg-subtle,var(--bg-container));border:1px solid var(--border-color);border-radius:var(--radius-md,6px);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 14px;display:flex}.exec-logs__config-label[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:600}.exec-logs__config-field[data-v-7079b876]{align-items:center;gap:8px;display:inline-flex}.exec-logs__config-name[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-tertiary)}.exec-logs__filter[data-v-7079b876]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exec-logs__filter-spacer[data-v-7079b876]{flex:1}.exec-logs__batch-meta[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums}.exec-logs__batch[data-v-7079b876]{background:color-mix(in srgb, var(--color-primary) 6%, transparent);border:1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);border-radius:var(--radius-md,6px);align-items:center;gap:12px;padding:8px 14px;display:flex}.exec-logs__list[data-v-7079b876]{flex-direction:column;flex:1;gap:10px;min-height:200px;display:flex}.exec-logs__empty[data-v-7079b876]{border:1px dashed var(--border-color);border-radius:var(--radius-md,6px);color:var(--text-tertiary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.exec-logs__empty-art[data-v-7079b876]{opacity:.5;margin-bottom:8px;font-size:36px}.exec-logs__empty-title[data-v-7079b876]{font-size:var(--font-size-base);color:var(--text-secondary);margin-bottom:4px;font-weight:600}.exec-logs__empty-hint[data-v-7079b876]{font-size:var(--font-size-sm);max-width:400px}.exec-logs__pager[data-v-7079b876]{justify-content:center;padding-top:8px;display:flex}.exec-card[data-v-7079b876]{background:var(--bg-container);border:1px solid var(--border-color);border-radius:var(--radius-md,6px);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.exec-card[data-v-7079b876]:hover{border-color:var(--color-primary)}.exec-card.is-selected[data-v-7079b876]{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.exec-card__head[data-v-7079b876]{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.exec-card__status[data-v-7079b876]{font-size:var(--font-size-xs);border:1px solid;border-radius:999px;flex-shrink:0;padding:1px 8px;font-weight:600;display:inline-block}.exec-card__title[data-v-7079b876]{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:360px;font-weight:600;overflow:hidden}.exec-card__spacer[data-v-7079b876]{flex:1}.exec-card__meta[data-v-7079b876]{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.exec-card__task[data-v-7079b876]{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.exec-card__time[data-v-7079b876]{font-variant-numeric:tabular-nums}.exec-card__exit[data-v-7079b876]{font-family:var(--font-mono,ui-monospace, monospace)}.exec-card__del[data-v-7079b876]{width:22px;height:22px;font-size:var(--font-size-md);color:var(--text-tertiary);border-radius:var(--radius-base);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.exec-card__del[data-v-7079b876]:hover{background:var(--tint-danger-14);color:var(--color-danger-bright,var(--color-danger-light))}.exec-card__error[data-v-7079b876]{font-size:var(--font-size-sm);color:var(--color-danger-dark,#b91c1c);background:var(--tint-danger-06);border-left:2px solid var(--color-danger-bright,var(--color-danger-light));border-radius:var(--radius-base);font-family:var(--font-mono,ui-monospace, monospace);white-space:pre-wrap;word-break:break-word;margin:0;padding:6px 10px}.wb-sidebar[data-v-bc41d37f]{background:var(--bg-panel);flex-direction:column;flex-shrink:0;gap:18px;width:268px;padding:14px 12px 18px;display:flex;overflow-y:auto}.wb-section[data-v-bc41d37f]{flex-direction:column;flex-shrink:0;gap:8px;min-height:0;display:flex}.wb-section+.wb-section[data-v-bc41d37f]{padding-top:16px}.wb-section__head[data-v-bc41d37f]{align-items:center;gap:6px;padding:0 4px;display:flex}.wb-section__tag[data-v-bc41d37f]{height:18px;font-size:var(--font-size-xs);letter-spacing:.4px;color:var(--text-meta);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-base);text-transform:uppercase;font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.wb-section__tag--accent[data-v-bc41d37f]{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 9%, transparent);border-color:var(--tint-primary-22)}.wb-section__title[data-v-bc41d37f]{font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:.2px;flex:1;min-width:0;margin:0;font-weight:600}.wb-section__action[data-v-bc41d37f]{color:var(--text-meta);border-radius:var(--radius-base);cursor:pointer;width:28px;height:28px;font-size:var(--font-size-mid);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-section__action[data-v-bc41d37f]:hover{background:var(--tint-primary-12);color:var(--color-primary)}.wb-new-btn[data-v-bc41d37f]{border:1px dashed var(--tint-primary-35,color-mix(in srgb, var(--color-primary) 35%, transparent));border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 0%, color-mix(in srgb, var(--color-primary) 2%, transparent) 100%);width:100%;height:32px;color:var(--color-primary);font-size:var(--font-size-mid);letter-spacing:.05px;cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;padding:0 12px;font-weight:600;display:flex}.wb-new-btn__icon[data-v-bc41d37f]{font-size:var(--font-size-mid);transition:transform var(--transition-fast) var(--ease-custom);flex-shrink:0}.wb-new-btn__shortcut[data-v-bc41d37f]{display:none}.wb-new-btn[data-v-bc41d37f]:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 10%, transparent) 0%, color-mix(in srgb, var(--color-primary) 6%, transparent) 100%);color:var(--color-primary);border-style:solid;border-color:var(--tint-primary-50)}.wb-new-btn:hover .wb-new-btn__icon[data-v-bc41d37f]{transform:rotate(90deg)}.wb-new-btn[data-v-bc41d37f]:active{transform:scale(.99)}.wb-new-btn[data-v-bc41d37f]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-task-list[data-v-bc41d37f]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wb-task-list.is-grouped .wb-task-item[data-v-bc41d37f]{margin-left:14px}.wb-task-item[data-v-bc41d37f]{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;display:flex;position:relative}.wb-task-item.is-running[data-v-bc41d37f]{background:color-mix(in srgb, var(--color-warning) 8%, transparent)}.wb-task-item.is-running[data-v-bc41d37f]:hover{background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.wb-task-item[data-v-bc41d37f]:hover{background:var(--bg-container-hover);border-color:#0000;transform:translateY(-.5px)}.wb-task-item.active[data-v-bc41d37f]{background:color-mix(in srgb, var(--color-primary) 10%, var(--bg-container));box-shadow:0 1px 3px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent);border-color:#0000}.wb-task-item.active[data-v-bc41d37f]:after{content:"";border-radius:var(--radius-base);background:linear-gradient(180deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 70%, #fff) 100%);width:3px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 50%, transparent), 0 1px 3px color-mix(in srgb, var(--color-primary) 25%, transparent);position:absolute;top:5px;bottom:5px;left:-1px}.wb-task-item.active .wb-task-item__title[data-v-bc41d37f],.wb-task-item.active .wb-task-item__del[data-v-bc41d37f]{color:var(--color-primary)}.wb-task-item__running-dot[data-v-bc41d37f]{background:var(--color-warning);width:6px;height:6px;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);border-radius:50%;flex:none;margin-left:auto;animation:1.4s ease-in-out infinite wb-running-pulse-bc41d37f}@keyframes wb-running-pulse-bc41d37f{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-warning) 0%, transparent);opacity:.75;transform:scale(1.35)}}.wb-task-item__body[data-v-bc41d37f]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-task-item__title[data-v-bc41d37f]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.05px;font-weight:500;line-height:1.3;overflow:hidden}.wb-task-item.is-other-project[data-v-bc41d37f]{opacity:.78}.wb-task-item.is-other-project[data-v-bc41d37f]:hover{opacity:1}.wb-task-item[data-v-bc41d37f]{cursor:grab}.wb-task-item.is-dragging[data-v-bc41d37f]{opacity:.5;cursor:grabbing;pointer-events:none}.wb-task-item.is-drop-before[data-v-bc41d37f]:before,.wb-task-item.is-drop-after[data-v-bc41d37f]:after{content:"";background:var(--color-primary);border-radius:var(--radius-xs);height:2px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 50%, transparent);pointer-events:none;position:absolute;left:8px;right:8px}.wb-task-item.is-drop-before[data-v-bc41d37f]:before{top:-2px}.wb-task-item.is-drop-after[data-v-bc41d37f]:after{bottom:-2px}.wb-task-group__head.is-no-drop[data-v-bc41d37f]{cursor:not-allowed;opacity:.55}.wb-task-item__action-group[data-v-bc41d37f]{border-radius:var(--radius-lg);background:linear-gradient(to right, transparent 0%, var(--bg-container-hover) 40%);opacity:0;pointer-events:none;transition:opacity var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);align-items:center;gap:2px;padding:1px 1px 1px 14px;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)translate(-2px)}.wb-task-item:hover .wb-task-item__action-group[data-v-bc41d37f],.wb-task-item.active .wb-task-item__action-group[data-v-bc41d37f]{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)}.wb-task-item.active .wb-task-item__action-group[data-v-bc41d37f]{background:linear-gradient(to right, transparent 0%, color-mix(in srgb, var(--color-primary) 10%, var(--bg-container)) 40%)}.wb-task-item.is-running .wb-task-item__action-group[data-v-bc41d37f]{background:linear-gradient(to right, transparent 0%, color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 8%, var(--bg-panel)) 40%)}.wb-task-item__copy[data-v-bc41d37f]{color:var(--text-meta);border-radius:var(--radius-md);cursor:pointer;width:22px;height:22px;font-size:var(--font-size-sm);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-task-item__copy[data-v-bc41d37f]:hover{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.wb-task-item__copy[data-v-bc41d37f]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.wb-task-item__copy[data-v-bc41d37f]:active{transform:scale(.9)}.wb-task-item__del[data-v-bc41d37f]{color:var(--text-meta);border-radius:var(--radius-md);cursor:pointer;width:22px;height:22px;font-size:var(--font-size-sm);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-task-item__del[data-v-bc41d37f]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-task-item__del[data-v-bc41d37f]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-task-item__del[data-v-bc41d37f],.wb-sub-item__del[data-v-bc41d37f]{font-size:var(--font-size-mid)}.wb-empty[data-v-bc41d37f]{text-align:center;color:var(--text-meta);border-radius:var(--radius-md);background:linear-gradient(135deg, var(--bg-subtle) 0%, color-mix(in srgb, var(--tint-primary-06) 50%, transparent) 100%);border:1px dashed var(--border-color-light);flex-direction:column;align-items:center;gap:8px;padding:24px 14px 20px;display:flex;position:relative;overflow:hidden}.wb-empty[data-v-bc41d37f]:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--color-primary) 5%, transparent) 0%, transparent 70%);pointer-events:none;border-radius:50%;width:100px;height:100px;position:absolute;top:-25px;right:-25px}.wb-empty--compact[data-v-bc41d37f]{background:var(--bg-subtle);border-style:solid;flex-direction:row;justify-content:center;gap:0;padding:10px 12px}.wb-empty--compact[data-v-bc41d37f]:before{display:none}.wb-empty__art[data-v-bc41d37f]{border-radius:var(--radius-xl);background:linear-gradient(135deg, var(--tint-primary-12) 0%, var(--tint-primary-08) 100%);width:52px;height:52px;color:var(--color-primary);font-size:var(--font-size-2xl);box-shadow:0 4px 12px color-mix(in srgb, var(--color-primary) 10%, transparent);z-index:1;justify-content:center;align-items:center;margin-bottom:4px;display:flex;position:relative}.wb-empty__title[data-v-bc41d37f]{font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-heading,-.25px);color:var(--text-secondary);z-index:1;font-weight:600;line-height:1.45;position:relative}.wb-empty--rich .wb-empty__hint[data-v-bc41d37f]{font-size:var(--font-size-sm);color:var(--text-meta);z-index:1;max-width:280px;line-height:1.6;position:relative}.wb-empty__cta[data-v-bc41d37f]{z-index:1;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:8px;display:flex;position:relative}.wb-pill[data-v-bc41d37f]{border-radius:var(--radius-lg);min-width:16px;height:16px;font-size:var(--font-size-xs);color:var(--text-meta);background:var(--bg-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;padding:0 5px;font-weight:600;display:inline-flex}.wb-section__count[data-v-bc41d37f]{background:var(--tint-primary-12);color:var(--color-primary)}.wb-task-group__head[data-v-bc41d37f]{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--font-size-mid);color:var(--text-secondary);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;margin-bottom:2px;padding:5px 6px;font-weight:600;display:flex}.wb-task-group__head[data-v-bc41d37f]:hover{background:var(--bg-container-hover);color:var(--text-primary)}.wb-task-group__head.is-current[data-v-bc41d37f]{color:var(--color-primary);font-weight:600}.wb-task-group__caret[data-v-bc41d37f]{font-size:var(--font-size-sm);transition:transform var(--transition-fast);flex-shrink:0}.wb-task-group__icon[data-v-bc41d37f]{font-size:var(--font-size-base);opacity:.7;flex-shrink:0}.wb-task-group__name[data-v-bc41d37f]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.wb-task-group__count[data-v-bc41d37f]{min-width:14px;height:14px;font-size:var(--font-size-xs);background:var(--bg-subtle);padding:0 4px}.proj[data-v-a6ac6776]{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.proj__head[data-v-a6ac6776]{flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.proj__title[data-v-a6ac6776]{font-size:var(--font-size-sm);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.proj__count[data-v-a6ac6776]{font-size:var(--font-size-xs);color:var(--text-meta);font-variant-numeric:tabular-nums;text-align:right}.proj__tools[data-v-a6ac6776]{flex-direction:column;flex-shrink:0;gap:8px;padding:0 12px 8px;display:flex}.proj__search[data-v-a6ac6776]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-subtle);height:24px;transition:border-color var(--transition-fast) var(--ease-custom);align-items:center;gap:4px;padding:0 8px;display:flex}.proj__search[data-v-a6ac6776]:focus-within{border-color:var(--color-primary);box-shadow:var(--focus-ring-soft)}.proj__search-icon[data-v-a6ac6776]{font-size:var(--font-size-sm);color:var(--text-meta);flex-shrink:0}.proj__search-input[data-v-a6ac6776]{min-width:0;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1}.proj__search-input[data-v-a6ac6776]::placeholder{color:var(--text-meta)}.proj__toggles[data-v-a6ac6776]{align-items:center;gap:8px;display:flex}.proj__toggle[data-v-a6ac6776]{border:1px solid var(--border-color);border-radius:var(--radius-md);min-width:0;height:22px;color:var(--text-meta);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;flex:1 1 0;padding:0 8px;line-height:1}.proj__toggle>span[data-v-a6ac6776]{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.proj__toggle[data-v-a6ac6776]:hover{color:var(--text-secondary);border-color:var(--text-tertiary)}.proj__toggle.is-on[data-v-a6ac6776]{color:var(--color-primary);border-color:var(--color-primary);background:var(--tint-primary-12)}.proj__toggle[data-v-a6ac6776]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.proj__list[data-v-a6ac6776]{flex:auto;min-height:0;margin:0;padding:0 8px 8px;list-style:none;overflow-y:auto}.proj-item[data-v-a6ac6776]{border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom);outline:none;padding:8px;position:relative}.proj-item[data-v-a6ac6776]:hover{background:var(--bg-container-hover)}.proj-item.is-active[data-v-a6ac6776]{background:linear-gradient(90deg, var(--tint-primary-10), var(--tint-primary-04));box-shadow:inset 0 0 0 1px var(--tint-primary-14)}.proj-item[data-v-a6ac6776]:focus-visible{outline:var(--focus-outline);outline-offset:-1px}.proj-item.is-running[data-v-a6ac6776]{background:color-mix(in srgb, var(--color-warning) 7%, transparent)}.proj-item--all[data-v-a6ac6776]{border-bottom:1px solid var(--border-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin-bottom:4px}.proj-item__num[data-v-a6ac6776]{font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--text-secondary);background:var(--bg-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 5px;line-height:15px}.proj-item__running-text[data-v-a6ac6776]{color:var(--color-warning);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.proj-item__row1[data-v-a6ac6776]{align-items:center;gap:6px;min-width:0;display:flex}.proj-item__icon[data-v-a6ac6776]{font-size:var(--font-size-mid);color:var(--text-meta);flex-shrink:0}.proj-item.is-active .proj-item__icon[data-v-a6ac6776]{color:var(--color-primary)}.proj-item__name[data-v-a6ac6776]{font-size:var(--font-size-mid);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;padding-right:44px;font-weight:500;line-height:1.4;overflow:hidden}.proj-item__signals[data-v-a6ac6776]{transition:opacity var(--transition-fast) var(--ease-custom);flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.proj-item:hover .proj-item__signals[data-v-a6ac6776]{opacity:0}.proj-item:has(.proj-item__action:focus-visible) .proj-item__signals[data-v-a6ac6776]{opacity:0}.proj-item__running[data-v-a6ac6776]{background:var(--color-warning);width:6px;height:6px;box-shadow:var(--dot-glow-warning);border-radius:50%;flex-shrink:0;animation:1.4s ease-in-out infinite proj-pulse-a6ac6776}@keyframes proj-pulse-a6ac6776{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.3)}}.proj-item__badge[data-v-a6ac6776]{font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--color-primary);background:var(--tint-primary-12);flex-shrink:0;padding:0 5px;line-height:15px}.proj-item__actions[data-v-a6ac6776]{opacity:0;pointer-events:none;transition:opacity var(--transition-fast) var(--ease-custom);align-items:center;gap:2px;display:inline-flex;position:absolute;top:6px;right:8px}.proj-item:hover .proj-item__actions[data-v-a6ac6776]{opacity:1;pointer-events:auto}.proj-item:has(.proj-item__action:focus-visible) .proj-item__actions[data-v-a6ac6776]{opacity:1;pointer-events:auto}.proj-item:has(.proj-item__action.is-open) .proj-item__actions[data-v-a6ac6776]{opacity:1;pointer-events:auto}.proj-item__action[data-v-a6ac6776]{border-radius:var(--radius-base);width:20px;height:20px;color:var(--text-meta);font-size:var(--font-size-mid);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.proj-item__action[data-v-a6ac6776]:hover{color:var(--color-primary);background:var(--tint-primary-12)}.proj-item__action[data-v-a6ac6776]:active{color:var(--color-primary)}.proj-item__action[data-v-a6ac6776]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.proj-item__action.is-open[data-v-a6ac6776]{color:var(--color-primary);background:var(--tint-primary-12)}.proj-item__action--danger[data-v-a6ac6776]{color:var(--color-danger)}.proj-item__action--danger[data-v-a6ac6776]:hover{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 14%, transparent)}.proj-item__action--danger[data-v-a6ac6776]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.proj-menu[data-v-a6ac6776]{font-size:var(--font-size-mid);color:var(--text-primary);margin:0;padding:2px 0;list-style:none}.proj-menu__item[data-v-a6ac6776]{border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);align-items:center;gap:9px;padding:7px 10px;display:flex}.proj-menu__item[data-v-a6ac6776]:hover,.proj-menu__item[data-v-a6ac6776]:focus-visible{background:var(--tint-primary-12);outline:none}.proj-menu__icon[data-v-a6ac6776]{width:16px;height:16px;font-size:var(--font-size-base);color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.proj-menu__icon[data-v-a6ac6776] svg{width:16px;height:16px}.proj-menu__img[data-v-a6ac6776]{object-fit:contain;-webkit-user-drag:none;width:16px;height:16px}.proj-menu__label[data-v-a6ac6776]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.proj-menu__hint[data-v-a6ac6776]{font-size:var(--font-size-xs);color:var(--text-meta);transition:color var(--transition-fast) var(--ease-custom);flex-shrink:0}.proj-menu__item:hover .proj-menu__hint[data-v-a6ac6776]{color:var(--color-primary)}.proj-menu__sep[data-v-a6ac6776]{background:var(--border-color);height:1px;margin:4px 6px}.proj-menu__title[data-v-a6ac6776]{font-size:var(--font-size-xs);letter-spacing:.3px;color:var(--text-meta);padding:4px 10px 3px;font-weight:600}.proj-menu__item--danger .proj-menu__label[data-v-a6ac6776]{color:var(--color-warning)}.proj-menu__item.is-missing .proj-menu__icon[data-v-a6ac6776]{opacity:.5;filter:grayscale(.65)}.proj-menu__item.is-missing:hover .proj-menu__icon[data-v-a6ac6776]{opacity:.85;filter:grayscale(.2)}.proj-item__row2[data-v-a6ac6776]{min-width:0;font-size:var(--font-size-xs);color:var(--text-meta);align-items:center;gap:4px;margin-top:2px;display:flex}.proj-item__branch[data-v-a6ac6776]{min-width:0;max-width:130px;font-family:var(--font-mono,ui-monospace, monospace);align-items:center;gap:4px;display:inline-flex}.proj-item__branch-name[data-v-a6ac6776]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.proj-item__branch[data-v-a6ac6776] .proj-item__branch-icon{color:currentColor;flex-shrink:0;width:11px;height:11px}.proj-item__time[data-v-a6ac6776]{font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.proj-chip[data-v-a6ac6776]{font-size:var(--font-size-xs);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 6px;line-height:14px}.proj-chip--ahead[data-v-a6ac6776]{color:var(--color-primary);background:var(--tint-primary-12)}.proj-chip--behind[data-v-a6ac6776]{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.proj-chip--dirty[data-v-a6ac6776]{color:var(--text-secondary);background:var(--bg-subtle)}.proj-chip--missing[data-v-a6ac6776]{color:var(--color-danger-light);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.proj-item__row3[data-v-a6ac6776]{align-items:center;gap:6px;margin-top:5px;display:flex}.proj-item__bar[data-v-a6ac6776]{border-radius:var(--radius-pill);background:var(--bg-subtle);flex:1;min-width:0;height:4px;overflow:hidden}.proj-item__bar-fill[data-v-a6ac6776]{border-radius:var(--radius-pill);background:var(--gradient-progress);height:100%;transition:width var(--transition-base) var(--ease-custom);display:block}.proj-item__progress-text[data-v-a6ac6776]{font-size:var(--font-size-xs);color:var(--text-meta);font-variant-numeric:tabular-nums;flex-shrink:0}.proj-empty[data-v-a6ac6776]{text-align:center;border-radius:var(--radius-lg);background:var(--bg-subtle);margin:0 6px;padding:20px 12px;list-style:none}.proj-empty__title[data-v-a6ac6776]{font-size:var(--font-size-mid);color:var(--text-secondary);margin:0 0 4px}.proj-empty__hint[data-v-a6ac6776]{font-size:var(--font-size-xs);color:var(--text-meta);margin:0;line-height:1.6}.proj-empty__clear[data-v-a6ac6776]{color:var(--color-primary);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;background:0 0;border:none;margin-top:8px;padding:2px 4px}.proj-empty__clear[data-v-a6ac6776]:hover{text-decoration:underline}.proj-empty__clear[data-v-a6ac6776]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.kb[data-v-f4de5092]{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.kb__toolbar[data-v-f4de5092]{border-bottom:1px solid var(--border-color);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.kb__views[data-v-f4de5092]{border-radius:var(--radius-lg);background:var(--bg-subtle);flex-shrink:0;align-items:center;gap:2px;padding:3px;display:inline-flex}.kb__view-btn[data-v-f4de5092]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-base);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 10px;line-height:20px}.kb__view-btn[data-v-f4de5092]:hover{color:var(--text-primary)}.kb__view-btn.is-active[data-v-f4de5092]{background:var(--surface-elevated);box-shadow:var(--shadow-card-rest);color:var(--color-primary);font-weight:500}.kb__filters[data-v-f4de5092]{flex-wrap:wrap;align-items:center;gap:10px;margin-left:auto;display:flex}.kb__search[data-v-f4de5092]{align-items:center;display:inline-flex;position:relative}.kb__search-icon[data-v-f4de5092]{font-size:var(--font-size-sm);color:var(--text-meta);pointer-events:none;position:absolute;left:7px}.kb__search-input[data-v-f4de5092]{width:168px;height:24px;font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-custom), width var(--transition-base) var(--ease-custom);outline:none;padding:0 8px 0 24px}.kb__search-input[data-v-f4de5092]:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring-soft);width:216px}.kb__search-input[data-v-f4de5092]::placeholder{color:var(--text-meta)}.kb__columns[data-v-f4de5092]{flex:auto;min-height:0;display:grid;overflow:hidden}.kb-col[data-v-f4de5092]{border-left:1px solid var(--border-color);flex-direction:column;min-width:0;min-height:0;display:flex}.kb-col[data-v-f4de5092]:first-child{border-left:none}.kb-col__head[data-v-f4de5092]{border-bottom:1px solid var(--border-color-light);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.kb-col__dot[data-v-f4de5092]{background:var(--text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px}.kb-col--doing .kb-col__dot[data-v-f4de5092]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:1.4s ease-in-out infinite kb-pulse-f4de5092}.kb-col--done .kb-col__dot[data-v-f4de5092]{background:var(--color-success);box-shadow:var(--dot-glow-success)}@keyframes kb-pulse-f4de5092{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}.kb-col__title[data-v-f4de5092]{font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-wide);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.kb-col__count[data-v-f4de5092]{font-size:var(--font-size-sm);color:var(--text-meta);font-variant-numeric:tabular-nums}.kb-col__list[data-v-f4de5092]{flex:auto;min-height:0;margin:0;padding:0 12px 12px;list-style:none;overflow-y:auto}.kb-card[data-v-f4de5092]{--kb-mask-outside-band:linear-gradient(to bottom, #000 calc(100% - 19px), transparent calc(100% - 14px));border:1px solid var(--border-color-light);border-radius:var(--radius-lg);background:var(--surface-elevated);box-shadow:var(--shadow-card-rest);cursor:pointer;transition:border-color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);margin-bottom:8px;padding:12px;position:relative}.kb-card[data-v-f4de5092]:hover{border-color:var(--border-card-hover);background:var(--surface-elevated);box-shadow:var(--shadow-card-lift);transform:translateY(-1px)}.kb-card.is-running[data-v-f4de5092]{border-color:color-mix(in srgb, var(--color-warning) 45%, var(--border-color));background:color-mix(in srgb, var(--color-warning) 4%, var(--surface-elevated))}.kb-card.has-error[data-v-f4de5092]{border-color:color-mix(in srgb, var(--color-danger) 40%, var(--border-color));background:color-mix(in srgb, var(--color-danger) 4%, var(--surface-elevated))}.kb-card.is-opened[data-v-f4de5092],.kb-card.is-opened[data-v-f4de5092]:hover{border-color:color-mix(in srgb, var(--color-primary) 42%, var(--border-color))}.kb-card.is-opened[data-v-f4de5092]:hover{box-shadow:var(--shadow-card-rest);transform:none}.kb-card__row1[data-v-f4de5092]{min-width:0;font-size:var(--font-size-xs);color:var(--text-meta);align-items:baseline;gap:6px;margin-bottom:8px;display:flex}.kb-card__time[data-v-f4de5092]{font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:auto}.kb-card__spent[data-v-f4de5092]{font-size:var(--font-size-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin:-2px 0 8px;overflow:hidden}.kb-card__auto-done[data-v-f4de5092]{border:1px solid color-mix(in srgb, var(--color-success) 24%, var(--surface-elevated));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-success) 9%, var(--surface-elevated));color:color-mix(in srgb, var(--color-success) 62%, var(--text-primary));font-size:var(--font-size-xs);margin:-4px 0 8px;padding:0 5px;line-height:1.6;display:inline-block}.kb-table__auto-done[data-v-f4de5092]{color:color-mix(in srgb, var(--color-success) 62%, var(--text-primary))}.kb-card__title[data-v-f4de5092]{min-width:0;font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;margin:0;font-weight:500;line-height:1.5;overflow:hidden}.kb-card__project-chip[data-v-f4de5092],.kb-table__project[data-v-f4de5092]{--tag-ink:hsl(var(--tag-hue,200) 62% 44%);border:1px solid color-mix(in srgb, var(--tag-ink) 24%, var(--surface-elevated));border-radius:var(--radius-pill);background:color-mix(in srgb, var(--tag-ink) 9%, var(--surface-elevated));max-width:100%;color:color-mix(in srgb, var(--tag-ink) 62%, var(--text-primary));font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;padding:0 6px;line-height:16px;display:inline-block;overflow:hidden}.kb-card__row1 .kb-card__project-chip[data-v-f4de5092]{flex:0 auto;min-width:0}.kb-table__project[data-v-f4de5092]{vertical-align:1px;margin-left:6px}.kb-card__live[data-v-f4de5092]{border-top:1px dashed var(--border-color-light);min-width:0;margin-top:8px;padding-top:8px}.kb-card__live-meta[data-v-f4de5092]{font-size:var(--font-size-xs);color:var(--text-meta);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:8px;margin:0;display:flex}.kb-card__live-agent[data-v-f4de5092],.kb-card__quote-agent[data-v-f4de5092],.kb-table__agent[data-v-f4de5092]{color:var(--text-meta);flex:none;align-items:center;font-size:12px;display:inline-flex}.kb-card__live-agent[data-v-f4de5092],.kb-table__agent[data-v-f4de5092]{margin-right:4px}.kb-card__reply-text[data-v-f4de5092]{flex:auto;min-width:0;margin-left:4px}.kb-card__live-silent[data-v-f4de5092]{color:var(--color-warning)}.kb-card__live-line[data-v-f4de5092]{font-size:var(--font-size-xs);color:var(--text-meta);-webkit-line-clamp:2;line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin:4px 0 0;line-height:1.5;display:-webkit-box;overflow:hidden}.kb-card__live-line.is-tool[data-v-f4de5092]{-webkit-line-clamp:1;line-clamp:1}.kb-card__live-line.is-thought[data-v-f4de5092]{color:var(--text-secondary);border-left:2px solid var(--border-color-light);padding-left:6px}.kb-card__live-tag[data-v-f4de5092]{color:var(--text-meta);margin-right:4px}.kb-card__reply[data-v-f4de5092]{border-top:1px dashed var(--border-color-light);border-left:2px solid var(--border-color-light);font-size:var(--font-size-xs);color:var(--text-secondary);word-break:break-word;align-items:flex-start;margin:6px 0 0;padding:6px 0 0;line-height:1.5;display:flex}.kb-card__reply-text[data-v-f4de5092]{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.kb-card__actions[data-v-f4de5092]{opacity:0;pointer-events:none;transition:opacity var(--transition-fast) var(--ease-custom);align-items:center;gap:2px;padding-left:12px;display:inline-flex;position:absolute;bottom:6px;right:8px}.kb-card:not(.is-opened):hover .kb-card__actions[data-v-f4de5092],.kb-card:focus-within .kb-card__actions[data-v-f4de5092]{opacity:1;pointer-events:auto}.kb-card:not(.is-opened):hover .kb-card__live[data-v-f4de5092]>:last-child,.kb-card:focus-within .kb-card__live[data-v-f4de5092]>:last-child,.kb-card:not(.is-opened):hover .kb-card__reply[data-v-f4de5092],.kb-card:focus-within .kb-card__reply[data-v-f4de5092]{-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 118px), transparent calc(100% - 102px)), var(--kb-mask-outside-band);-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 118px), transparent calc(100% - 102px)), var(--kb-mask-outside-band);mask-image:linear-gradient(to right, #000 calc(100% - 118px), transparent calc(100% - 102px)), var(--kb-mask-outside-band);-webkit-mask-composite:source-over;-webkit-mask-composite:source-over;mask-composite:add}.kb-card:not(.is-opened):hover .kb-card__row1:not(:has(~:not(.kb-card__actions))) .kb-card__title[data-v-f4de5092]{-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 68px), transparent calc(100% - 52px)), var(--kb-mask-outside-band);-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 68px), transparent calc(100% - 52px)), var(--kb-mask-outside-band);mask-image:linear-gradient(to right, #000 calc(100% - 68px), transparent calc(100% - 52px)), var(--kb-mask-outside-band);-webkit-mask-composite:source-over;-webkit-mask-composite:source-over;mask-composite:add}.kb-card:focus-within .kb-card__row1:not(:has(~:not(.kb-card__actions))) .kb-card__title[data-v-f4de5092]{-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 68px), transparent calc(100% - 52px)), var(--kb-mask-outside-band);-webkit-mask-image:linear-gradient(to right, #000 calc(100% - 68px), transparent calc(100% - 52px)), var(--kb-mask-outside-band);mask-image:linear-gradient(to right, #000 calc(100% - 68px), transparent calc(100% - 52px)), var(--kb-mask-outside-band);-webkit-mask-composite:source-over;-webkit-mask-composite:source-over;mask-composite:add}.kb-card__btn[data-v-f4de5092]{color:var(--text-meta);font-size:var(--font-size-xs);border-radius:var(--radius-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 5px;line-height:18px}.kb-card__btn[data-v-f4de5092]:hover{color:var(--color-primary);background:var(--bg-subtle-hover)}.kb-card__btn--danger[data-v-f4de5092]{font-size:var(--font-size-base);padding:0 4px}.kb-card__btn--danger[data-v-f4de5092]:hover{color:var(--color-danger-light)}.kb-card__btn--stop[data-v-f4de5092]:hover{color:var(--color-warning);background:var(--bg-subtle-hover)}.kb-card__btn--done[data-v-f4de5092]:hover{color:var(--color-success);background:var(--bg-subtle-hover)}.kb-card__btn[data-v-f4de5092]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.kb-col__empty[data-v-f4de5092]{text-align:center;font-size:var(--font-size-xs);color:var(--text-meta);border:1px dashed var(--border-color-light);border-radius:var(--radius-lg);background:var(--bg-subtle);margin:0 2px;padding:18px 8px;list-style:none}.kb-col__add[data-v-f4de5092]{margin:0;padding:0;list-style:none}.kb-col__add-btn[data-v-f4de5092]{width:100%;font-size:var(--font-size-xs);color:var(--text-meta);border:1px dashed var(--border-color-medium);border-radius:var(--radius-lg);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;justify-content:center;align-items:center;gap:5px;padding:5px 10px;line-height:20px;display:flex}.kb-col__add-btn[data-v-f4de5092]:hover{color:var(--color-primary);border-color:var(--color-primary);background:var(--bg-subtle)}.kb-col__add-btn[data-v-f4de5092]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.kb-col__add-plus[data-v-f4de5092]{font-size:var(--font-size-base);line-height:1}.kb-col__add-btn--solo[data-v-f4de5092]{padding:18px 8px}.kb__table-wrap[data-v-f4de5092]{flex:auto;min-height:0;overflow:auto}.kb-table[data-v-f4de5092]{table-layout:fixed;border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.kb-table__th[data-v-f4de5092]{z-index:1;text-align:left;font-size:var(--font-size-xs);color:var(--text-meta);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-filter);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:7px 10px;font-weight:500;position:sticky;top:0}.kb-table__th--narrow[data-v-f4de5092]{width:96px}.kb-table__th--time[data-v-f4de5092]{width:148px}.kb-table__row[data-v-f4de5092]{cursor:pointer;transition:background var(--transition-fast) var(--ease-custom)}.kb-table__row[data-v-f4de5092]:hover{background:var(--bg-container-hover)}.kb-table__td[data-v-f4de5092]{border-bottom:1px solid var(--border-color);color:var(--text-secondary);vertical-align:middle;padding:8px 10px}.kb-table__td--num[data-v-f4de5092]{font-variant-numeric:tabular-nums}.kb-table__time[data-v-f4de5092]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kb-table__dur[data-v-f4de5092]{color:var(--text-primary)}.kb-table__time-sep[data-v-f4de5092]{opacity:.55;margin:0 3px}.kb-table__name[data-v-f4de5092]{color:var(--text-primary)}.kb-table__live[data-v-f4de5092]{font-size:var(--font-size-xs);color:var(--text-meta);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;display:block;overflow:hidden}.kb-table__live-silent[data-v-f4de5092]{color:var(--color-warning);margin-left:6px}.kb-table__live--reply[data-v-f4de5092]{border-left:2px solid var(--border-color-light);color:var(--text-secondary)}.kb-table__status[data-v-f4de5092]{font-size:var(--font-size-xs);border-radius:var(--radius-base);background:var(--bg-subtle);color:var(--text-secondary);padding:1px 6px}.kb-table__status.is-doing[data-v-f4de5092]{color:var(--color-warning)}.kb-table__status.is-done[data-v-f4de5092]{color:var(--color-success)}.kb-table__empty[data-v-f4de5092]{text-align:center;color:var(--text-meta);padding:28px 10px}@media (width<=860px){.kb__columns[data-v-f4de5092]{display:block;overflow-y:auto}.kb-col[data-v-f4de5092]{border-left:none;border-top:1px solid var(--border-color)}.kb-col[data-v-f4de5092]:first-child{border-top:none}.kb-col__list[data-v-f4de5092]{overflow:visible}}.tep[data-v-eb389f8b]{vertical-align:middle}.tep__btn[data-v-eb389f8b]{border:1px solid var(--border-color);border-radius:var(--radius-pill);background:var(--bg-panel);height:22px;color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom);align-items:center;gap:5px;padding:0 8px;display:inline-flex}.tep__btn[data-v-eb389f8b]:hover,.tep__btn[data-v-eb389f8b]:focus-visible{color:var(--color-primary);border-color:var(--color-primary)}.tep__btn[data-v-eb389f8b]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.tep__btn-icon[data-v-eb389f8b]{font-size:var(--font-size-mid)}.tep__btn-caret[data-v-eb389f8b]{font-size:var(--font-size-xs);opacity:.7}.tep__item[data-v-eb389f8b]{align-items:center;gap:8px;min-width:132px;display:inline-flex}.tep__item-icon[data-v-eb389f8b]{font-size:var(--font-size-base);flex:none}.tep__item-name[data-v-eb389f8b]{flex:1}.tep__item-model[data-v-eb389f8b]{white-space:nowrap;text-overflow:ellipsis;max-width:15em;font-size:var(--font-size-xs);color:var(--text-meta);flex:none;overflow:hidden}.tep__item-check[data-v-eb389f8b]{color:var(--color-primary);font-size:var(--font-size-sm)}.tep__item-missing[data-v-eb389f8b]{font-size:var(--font-size-xs);color:var(--text-tertiary,var(--text-secondary))}.acs[data-v-ec9c660f]{flex-direction:column;flex:1;min-height:0;display:flex}.acs__head[data-v-ec9c660f]{border-bottom:1px solid var(--border-color-light);flex:none;align-items:center;gap:6px;height:32px;padding:0 8px;display:flex}.acs__title[data-v-ec9c660f]{font-size:var(--font-size-xs);letter-spacing:.06em;color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:700;overflow:hidden}.acs__spacer[data-v-ec9c660f]{flex:1}.acs__engine[data-v-ec9c660f]{flex:none}.acs__icon-btn[data-v-ec9c660f]{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.acs__icon-btn[data-v-ec9c660f]:hover{background:var(--bg-hover);color:var(--text-secondary)}.acs__body[data-v-ec9c660f]{flex:1;grid-template:"stage"minmax(0,1fr)"composer"/minmax(0,1fr);min-height:0;display:grid}.acs__body.is-wide[data-v-ec9c660f]{grid-template-columns:240px minmax(0,1fr);grid-template-areas:"list chat""list composer"}.acs__convs[data-v-ec9c660f]{grid-area:stage;min-height:0;padding:8px;overflow-y:auto}.acs__chat[data-v-ec9c660f]{grid-area:stage;min-height:0;display:flex}.acs__body.is-wide .acs__convs[data-v-ec9c660f]{grid-area:list}.acs__body.is-wide .acs__chat[data-v-ec9c660f]{grid-area:chat}.acs__composer[data-v-ec9c660f]{padding:var(--acu-space-3) var(--acu-space-4) var(--acu-space-4);background:linear-gradient(to top, var(--acu-bg) 70%, transparent);grid-area:composer}.acs__chat[data-v-ec9c660f]>.acu-chat{flex:1;min-width:0}.acs__chat[data-v-ec9c660f] .acu-avatar--left{background:0 0}.acs__foot[data-v-ec9c660f]{border-top:1px solid var(--border-color-light);flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.acs__foot-label[data-v-ec9c660f]{font-size:var(--font-size-xs);color:var(--text-tertiary)}.acs__foot-hint[data-v-ec9c660f]{font-size:var(--font-size-xs);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.acs__notice[data-v-ec9c660f]{font-size:var(--font-size-xs);color:var(--color-warning);margin:0;line-height:1.5}.oc[data-v-c645e7ae]{width:var(--wb-right-w,300px);border-left:1px solid var(--border-color-light);background:var(--bg-panel);min-height:0;transition:width var(--transition-base) var(--ease-custom);flex-direction:column;flex-shrink:0;display:flex}.board__cols.is-resizing .oc[data-v-c645e7ae]{transition:none}.oc.is-collapsed[data-v-c645e7ae]{width:32px}.oc__rail[data-v-c645e7ae]{width:100%;min-height:0;color:var(--text-meta);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-direction:column;flex:auto;align-items:center;gap:8px;padding:10px 0;display:flex}.oc__rail[data-v-c645e7ae]:hover{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.oc__rail[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.oc__rail-icon[data-v-c645e7ae]{font-size:var(--font-size-base);flex-shrink:0}.oc__rail-live[data-v-c645e7ae]{background:var(--color-success);width:6px;height:6px;box-shadow:var(--dot-glow-success);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite oc-pulse-c645e7ae}.oc__rail-live.is-off[data-v-c645e7ae]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:none}.oc__rail-text[data-v-c645e7ae]{writing-mode:vertical-rl;letter-spacing:1px;font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none}.oc__head[data-v-c645e7ae]{border-bottom:1px solid var(--border-color-light);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.oc__live[data-v-c645e7ae]{background:var(--color-success);width:6px;height:6px;box-shadow:var(--dot-glow-success);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite oc-pulse-c645e7ae}.oc__live.is-off[data-v-c645e7ae]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:none}@keyframes oc-pulse-c645e7ae{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}}.oc__title[data-v-c645e7ae]{font-size:var(--font-size-sm);color:var(--text-secondary);flex:1;min-width:0;margin:0;font-weight:500}.oc__toggle[data-v-c645e7ae]{color:var(--text-meta);font-size:var(--font-size-xs);border-radius:var(--radius-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:2px 6px}.oc__toggle[data-v-c645e7ae]:hover:not(:disabled){color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 10%, transparent)}.oc__toggle[data-v-c645e7ae]:disabled{opacity:.5;cursor:default}.oc__toggle[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__collapse[data-v-c645e7ae]{width:22px;height:22px;color:var(--text-meta);border-radius:var(--radius-base);font-size:var(--font-size-mid);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.oc__collapse[data-v-c645e7ae]:hover{color:var(--color-primary)}.oc__collapse[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__state[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-subtle);background-image:var(--gradient-accent-soft);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.oc__state.is-paused[data-v-c645e7ae]{color:var(--color-warning)}.oc__state-label[data-v-c645e7ae]{color:var(--text-meta)}.oc__state-value[data-v-c645e7ae]{font-weight:500}.oc__state-meta[data-v-c645e7ae]{color:var(--text-meta);font-variant-numeric:tabular-nums;margin-left:auto}.oc__mode[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--bg-subtle);border:1px solid var(--border-color-light);flex-shrink:0;gap:2px;margin:8px 12px 0;padding:2px;display:flex}.oc__mode-btn[data-v-c645e7ae]{border-radius:var(--radius-pill);height:22px;color:var(--text-meta);font-size:var(--font-size-xs);cursor:pointer;transition:var(--transition-ui-fast);background:0 0;border:none;flex:1}.oc__mode-btn[data-v-c645e7ae]:hover{color:var(--text-secondary)}.oc__mode-btn.is-active[data-v-c645e7ae]{background:var(--bg-panel);color:var(--color-primary);box-shadow:var(--shadow-xs,0 1px 2px #0000000f);font-weight:500}.oc__mode-btn[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__chat[data-v-c645e7ae]{min-height:0}.oc__report[data-v-c645e7ae]{flex-direction:column;flex:auto;min-height:0;padding:8px 0 0;display:flex}.oc__panel-title[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-meta);flex-shrink:0;align-items:center;gap:6px;margin:0 12px 6px;display:flex}.oc__report-head[data-v-c645e7ae]{flex-shrink:0;align-items:center;gap:6px;margin:0 12px 6px;display:flex}.oc__report-head .oc__panel-title[data-v-c645e7ae]{flex:1;min-width:0;margin:0}.oc__interval[data-v-c645e7ae]{max-width:116px;height:22px;font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--bg-subtle);border:1px solid var(--border-color-light);border-radius:var(--radius-pill);cursor:pointer;transition:border-color var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);outline:none;flex-shrink:0;padding:0 2px 0 6px;font-family:inherit}.oc__interval[data-v-c645e7ae]:hover{color:var(--text-primary);border-color:var(--border-color)}.oc__interval[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__report-run[data-v-c645e7ae]{border:1px solid var(--border-color-light);border-radius:var(--radius-pill);background:var(--bg-panel);height:22px;color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom);flex-shrink:0;align-items:center;gap:3px;padding:0 8px;font-family:inherit;display:inline-flex}.oc__report-run[data-v-c645e7ae]:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary)}.oc__report-run[data-v-c645e7ae]:disabled{opacity:.55;cursor:default}.oc__report-run[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__report-run-icon[data-v-c645e7ae]{font-size:var(--font-size-xs)}.oc__report-run-icon.is-spin[data-v-c645e7ae]{animation:1s linear infinite oc-spin-c645e7ae}@keyframes oc-spin-c645e7ae{to{transform:rotate(360deg)}}.oc__report-list[data-v-c645e7ae]{flex:auto;min-height:0;margin:0;padding:0 10px 10px;list-style:none;overflow-y:auto}.rp[data-v-c645e7ae]{border-radius:var(--radius-lg);background:var(--bg-subtle);border:1px solid var(--border-color);padding:8px 9px}.rp__head[data-v-c645e7ae]{font-size:var(--font-size-xs);align-items:center;gap:6px;margin-bottom:4px;display:flex}.rp__trigger[data-v-c645e7ae]{color:var(--color-primary);font-weight:500}.rp__trigger.is-auto[data-v-c645e7ae]{color:var(--text-meta);font-weight:400}.rp__stale[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--bg-active);color:var(--text-meta);padding:0 5px}.rp__count[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--tint-primary-08);color:var(--color-primary);font-variant-numeric:tabular-nums;padding:0 5px}.rp__time[data-v-c645e7ae]{color:var(--text-meta);font-variant-numeric:tabular-nums;margin-left:auto}.rp__progress[data-v-c645e7ae]{align-items:center;gap:6px;margin:0 0 6px;display:flex}.rp__bar[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--bg-active);flex:1;min-width:0;height:4px;overflow:hidden}.rp__bar-fill[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--gradient-progress);height:100%;transition:width var(--transition-base) var(--ease-custom);display:block}.rp__percent[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0}.rp__percent-tag[data-v-c645e7ae]{color:var(--text-meta);margin-right:4px}.rp__body[data-v-c645e7ae]{border-left:2px solid var(--tint-primary-30);padding-left:8px}.rp__text[data-v-c645e7ae]{font-size:var(--font-size-sm);color:var(--text-primary);word-break:break-word;white-space:pre-wrap;max-height:9.6em;margin:0;line-height:1.6;overflow:hidden}.rp__text.is-expanded[data-v-c645e7ae]{max-height:none}.rp__text.is-clamped[data-v-c645e7ae]{-webkit-mask-image:linear-gradient(#000 calc(100% - 1.8em),#0000);mask-image:linear-gradient(#000 calc(100% - 1.8em),#0000)}.rp__more[data-v-c645e7ae]{color:var(--color-primary);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:2px;margin:3px 0 0;padding:0;font-family:inherit;display:inline-flex}.rp__more[data-v-c645e7ae]:hover{color:var(--color-primary-dark)}.rp__more[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:2px}.rp__notice[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-meta);margin:0;line-height:1.55}.rp__facts[data-v-c645e7ae]{border-top:1px solid var(--border-color);margin:9px 0 0;padding-top:7px}.rp__facts-cap[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-meta);letter-spacing:.04em;cursor:help;margin:0 0 5px;font-weight:500}.rp__tasks[data-v-c645e7ae]{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.rpt[data-v-c645e7ae]{border-radius:var(--radius-base);background:var(--bg-active);border:1px solid var(--border-color-light);border-left:2px solid var(--border-color);min-width:0;padding:5px 7px}.rpt.is-silent[data-v-c645e7ae]{border-left-color:var(--color-warning);background:var(--tint-warning-06)}.rpt__title[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:500;overflow:hidden}.rpt__meta[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-meta);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 6px;margin:1px 0 0;display:flex}.rpt__meta>span+span[data-v-c645e7ae]:before{content:"·";color:var(--text-tertiary);margin-right:6px}.rpt__project[data-v-c645e7ae]{color:var(--text-secondary)}.rpt__progress[data-v-c645e7ae]{align-items:center;gap:6px;margin:3px 0 0;display:flex}.rpt__bar[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--bg-active);flex:1;min-width:0;height:3px;overflow:hidden}.rpt__bar-fill[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--gradient-progress);height:100%;transition:width var(--transition-base) var(--ease-custom);display:block}.rpt__percent[data-v-c645e7ae]{text-align:right;min-width:30px;font-size:var(--font-size-xs);color:var(--text-meta);font-variant-numeric:tabular-nums;flex-shrink:0}.rpt__silent[data-v-c645e7ae]{border-radius:var(--radius-pill);background:var(--tint-warning-14);color:var(--color-warning);padding:0 4px}.rpt__line[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-meta);-webkit-line-clamp:2;line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;margin:3px 0 0;line-height:1.5;display:-webkit-box;overflow:hidden}.rpt__line.is-tool[data-v-c645e7ae]{-webkit-line-clamp:1;line-clamp:1}.rpt__line.is-thought[data-v-c645e7ae]{color:var(--text-secondary)}.rpt__tag[data-v-c645e7ae]{min-width:20px;color:var(--text-meta);margin-right:5px;display:inline-block}.rpt__line.is-thought .rpt__tag[data-v-c645e7ae]{font-weight:500}.oc__sect[data-v-c645e7ae]{border-radius:var(--radius-base);width:100%;color:var(--text-meta);font-size:var(--font-size-xs);text-align:left;cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:4px;margin:0 0 4px;padding:2px;font-family:inherit;display:flex}.oc__sect[data-v-c645e7ae]:hover{color:var(--text-secondary);background:var(--bg-subtle)}.oc__sect[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.oc__sect-caret[data-v-c645e7ae]{font-size:var(--font-size-xs);flex-shrink:0}.oc__sect-title[data-v-c645e7ae]{flex-shrink:0}.oc__sect-meta[data-v-c645e7ae]{align-items:center;gap:6px;min-width:0;margin-left:auto;display:flex}.oc__sect-meta .oc__git-name[data-v-c645e7ae]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.oc__sect-brief[data-v-c645e7ae]{color:var(--text-meta);font-variant-numeric:tabular-nums;flex-shrink:0}.oc__history[data-v-c645e7ae]{border-top:1px solid var(--border-color-light);flex-shrink:0;max-height:132px;padding:6px 10px 8px;overflow-y:auto}.oc__history-list[data-v-c645e7ae]{margin:0;padding:0;list-style:none}.oc__history-item[data-v-c645e7ae]{border-radius:var(--radius-base);width:100%;color:var(--text-meta);font-size:var(--font-size-xs);text-align:left;cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:6px;padding:3px 6px;font-family:inherit;display:flex}.oc__history-item[data-v-c645e7ae]:hover{background:var(--bg-subtle);color:var(--text-secondary)}.oc__history-item.is-active[data-v-c645e7ae]{background:color-mix(in srgb, var(--color-primary) 10%, transparent);color:var(--text-primary)}.oc__history-item[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.oc__history-time[data-v-c645e7ae]{font-variant-numeric:tabular-nums;flex-shrink:0}.oc__history-pct[data-v-c645e7ae]{text-align:right;min-width:30px;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0}.oc__history-sum[data-v-c645e7ae]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.oc-empty[data-v-c645e7ae]{text-align:center;font-size:var(--font-size-xs);color:var(--text-meta);padding:20px 10px;list-style:none}.oc__git[data-v-c645e7ae]{border-top:1px solid var(--border-color-light);flex-shrink:0;padding:8px 12px 10px}.oc__git-name[data-v-c645e7ae]{color:var(--text-secondary);font-weight:500}.oc__git-list[data-v-c645e7ae]{font-size:var(--font-size-xs);grid-template-columns:auto 1fr;gap:4px 10px;margin:0;display:grid}.oc__git-label[data-v-c645e7ae]{color:var(--text-meta)}.oc__git-value[data-v-c645e7ae]{text-align:right;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.oc__git-value.is-warn[data-v-c645e7ae]{color:var(--color-warning)}.oc__git-value.is-danger[data-v-c645e7ae]{color:var(--color-danger-light)}.oc__git.is-collapsed[data-v-c645e7ae],.oc__history.is-collapsed[data-v-c645e7ae]{padding-top:4px;padding-bottom:4px}.oc__history.is-collapsed[data-v-c645e7ae]{max-height:none;overflow:visible}.oc__git.is-collapsed .oc__sect[data-v-c645e7ae],.oc__history.is-collapsed .oc__sect[data-v-c645e7ae]{margin-bottom:0}.oc__compose[data-v-c645e7ae]{border-top:1px solid var(--border-color-light);flex-shrink:0;padding:8px 12px 10px}.oc__input[data-v-c645e7ae]{resize:vertical;width:100%;min-height:76px;max-height:min(380px,45vh);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--input-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:border-color var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom);outline:none;padding:7px 8px;font-family:inherit;line-height:1.5}.oc__input[data-v-c645e7ae]:focus{border-color:var(--input-border-focus);box-shadow:var(--input-shadow-focus)}.oc__input[data-v-c645e7ae]::placeholder{color:var(--text-meta)}.oc__input.is-over[data-v-c645e7ae]{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}.oc__count[data-v-c645e7ae]{text-align:right;font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;color:var(--text-meta);margin:5px 2px 0}.oc__count.is-warn[data-v-c645e7ae]{color:var(--color-warning)}.oc__count.is-over[data-v-c645e7ae]{color:var(--color-danger)}.oc__compose-foot[data-v-c645e7ae]{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px;display:flex}.oc__attach[data-v-c645e7ae]{width:26px;height:26px;color:var(--text-meta);font-size:var(--font-size-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.oc__attach[data-v-c645e7ae]:hover:not(:disabled),.oc__attach.is-on[data-v-c645e7ae]{color:var(--color-primary)}.oc__attach[data-v-c645e7ae]:disabled{opacity:.4;cursor:default}.oc__attach[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__autorn[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;display:inline-flex}.oc__autorn input[data-v-c645e7ae]{cursor:pointer}.oc__send[data-v-c645e7ae]{border-radius:var(--radius-md);background:var(--gradient-accent);box-shadow:var(--btn-shadow);color:#fff;font-size:var(--font-size-sm);cursor:pointer;transition:box-shadow var(--transition-fast) var(--ease-custom), opacity var(--transition-fast) var(--ease-custom);border:none;align-items:center;gap:4px;margin-left:auto;padding:0 12px;line-height:24px;display:inline-flex}.oc__send[data-v-c645e7ae]:hover:not(:disabled){background:var(--gradient-accent-hover);box-shadow:var(--btn-shadow-hover)}.oc__send[data-v-c645e7ae]:disabled{opacity:.45;cursor:default}.oc__send[data-v-c645e7ae]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.oc__send-icon[data-v-c645e7ae]{font-size:var(--font-size-sm)}.oc__hint[data-v-c645e7ae]{font-size:var(--font-size-xs);color:var(--text-meta);margin:6px 0 0;line-height:1.5}@media (width<=860px){.oc[data-v-c645e7ae]{border-left:none;border-top:1px solid var(--border-color);order:-1;min-height:72vh}.oc__collapse[data-v-c645e7ae]{display:none}.rp__text[data-v-c645e7ae]{max-height:none}.oc__report-list[data-v-c645e7ae]{overflow:visible}}.pd[data-v-58180cce]{flex-direction:column;gap:14px;line-height:1.5;display:flex}.pd__intro[data-v-58180cce]{font-size:var(--font-size-sm);color:var(--text-tertiary);margin:0;line-height:1.6}.pd__field[data-v-58180cce]{flex-direction:column;gap:5px;display:flex}.pd__head[data-v-58180cce]{align-items:baseline;gap:8px;display:flex}.pd__label[data-v-58180cce]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.pd__count[data-v-58180cce]{font-size:var(--font-size-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.pd__area[data-v-58180cce]{box-sizing:border-box;resize:vertical;width:100%;min-height:92px;max-height:280px;font-size:var(--font-size-mid);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-custom);outline:none;padding:7px 9px;font-family:inherit;line-height:1.5}.pd__area[data-v-58180cce]:focus{border-color:var(--color-primary)}.pd__area[data-v-58180cce]::placeholder{color:var(--text-tertiary)}.pd__area[data-v-58180cce]:disabled{opacity:.55;cursor:not-allowed}.pd__hint[data-v-58180cce]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:0;line-height:1.6}.pd__foot[data-v-58180cce]{align-items:center;gap:8px;width:100%;display:flex}.pd__foot-spacer[data-v-58180cce]{flex:1}.pd__btn[data-v-58180cce]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 12px;line-height:28px}.pd__btn[data-v-58180cce]:hover:not(:disabled){color:var(--color-primary);background:var(--bg-container-hover)}.pd__btn[data-v-58180cce]:disabled{opacity:.45;cursor:default}.pd__btn[data-v-58180cce]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.pd__btn--primary[data-v-58180cce]{background:var(--color-primary);color:#fff}.pd__btn--primary[data-v-58180cce]:hover:not(:disabled){background:var(--color-primary);color:#fff;opacity:.88}.nc[data-v-997e5c96]{flex-direction:column;gap:14px;line-height:1.5;display:flex}.nc__field[data-v-997e5c96]{flex-direction:column;gap:5px;display:flex}.nc__label[data-v-997e5c96]{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:500}.nc__input[data-v-997e5c96],.nc__select[data-v-997e5c96]{width:100%;font-size:var(--font-size-mid);color:var(--text-primary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-fast) var(--ease-custom);box-sizing:border-box;outline:none;padding:7px 9px;font-family:inherit;line-height:1.5}.nc__input[data-v-997e5c96]:focus,.nc__select[data-v-997e5c96]:focus{border-color:var(--color-primary)}.nc__input[data-v-997e5c96]::placeholder{color:var(--text-tertiary)}.nc__select[data-v-997e5c96]{cursor:pointer}.nc__input--area[data-v-997e5c96]{resize:vertical;min-height:92px;max-height:260px}.nc__hint[data-v-997e5c96]{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.nc__error[data-v-997e5c96]{font-size:var(--font-size-sm);border-radius:var(--radius-md);color:var(--color-danger-light);background:color-mix(in srgb, var(--color-danger) 10%, transparent);margin:0;padding:6px 8px}.nc__foot[data-v-997e5c96]{align-items:center;gap:8px;width:100%;display:flex}.nc__foot-spacer[data-v-997e5c96]{flex:1}.nc__btn[data-v-997e5c96]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;padding:0 12px;line-height:28px}.nc__btn[data-v-997e5c96]:hover:not(:disabled){color:var(--color-primary);background:var(--bg-container-hover)}.nc__btn[data-v-997e5c96]:disabled{opacity:.45;cursor:default}.nc__btn[data-v-997e5c96]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.nc__btn--primary[data-v-997e5c96]{background:var(--color-primary);color:#fff}.nc__btn--primary[data-v-997e5c96]:hover:not(:disabled){background:var(--color-primary);color:#fff;opacity:.88}.board[data-v-3c1d6db9]{background:var(--bg-container);height:100%;min-height:0;color:var(--text-primary);--wb-left-w:264px;--wb-right-w:360px;flex-direction:column;display:flex}.board__top[data-v-3c1d6db9]{border-bottom:1px solid var(--border-color-light);background:var(--bg-panel);background-image:var(--gradient-accent-soft);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 12px;display:flex}.board__brand[data-v-3c1d6db9]{align-items:center;gap:8px;min-width:0;display:flex}.board__live[data-v-3c1d6db9]{background:var(--color-success);width:8px;height:8px;box-shadow:var(--dot-glow-success);border-radius:50%;flex-shrink:0;animation:1.6s ease-in-out infinite board-pulse-3c1d6db9}.board__live.is-off[data-v-3c1d6db9]{background:var(--color-warning);box-shadow:var(--dot-glow-warning);animation:none}@keyframes board-pulse-3c1d6db9{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.4)}}.board__brand-text[data-v-3c1d6db9]{min-width:0}.board__title[data-v-3c1d6db9]{font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-heading);color:var(--text-primary);margin:0;font-weight:600;line-height:1.3}.board__subtitle[data-v-3c1d6db9]{font-size:var(--font-size-sm);color:var(--text-meta);margin:0;line-height:1.3}.board__stats[data-v-3c1d6db9]{flex-wrap:wrap;align-items:center;gap:12px;min-width:0;margin-left:4px;display:flex}.board__stat[data-v-3c1d6db9]{font-size:var(--font-size-xs);color:var(--text-meta);align-items:baseline;gap:4px;display:inline-flex}.board__stat-value[data-v-3c1d6db9]{font-size:var(--font-size-mid);color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:500}.board__stat-value.is-live[data-v-3c1d6db9]{color:var(--color-warning)}.board__icon-btn[data-v-3c1d6db9]{color:var(--text-meta);border-radius:var(--radius-md);cursor:pointer;width:26px;height:26px;font-size:var(--font-size-base);transition:color var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.board__icon-btn[data-v-3c1d6db9]:hover{color:var(--color-primary);background:var(--bg-subtle-hover)}.board__icon-btn[data-v-3c1d6db9]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.board__scrim[data-v-3c1d6db9]{display:none}.board__cols[data-v-3c1d6db9]{flex:auto;min-height:0;display:flex;position:relative}.board__left[data-v-3c1d6db9]{width:var(--wb-left-w);background:var(--bg-panel);flex-direction:column;flex-shrink:0;min-height:0;display:flex}.board__splitter[data-v-3c1d6db9]{z-index:5;cursor:col-resize;touch-action:none;flex:0 0 5px;position:relative}.board__splitter[data-v-3c1d6db9]:after{content:"";width:1px;transition:background var(--transition-fast) var(--ease-custom);background:0 0;position:absolute;top:0;bottom:0;left:2px}.board__splitter[data-v-3c1d6db9]:hover:after,.board__splitter[data-v-3c1d6db9]:active:after,.board__cols.is-resizing .board__splitter[data-v-3c1d6db9]:after{background:var(--color-primary)}.board__main[data-v-3c1d6db9]{background:var(--surface-canvas);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.board__main-head[data-v-3c1d6db9]{flex-shrink:0;align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex}.board__main-title[data-v-3c1d6db9]{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.board__project-name[data-v-3c1d6db9]{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;flex-shrink:0;margin:0;font-weight:500}.board__project-path[data-v-3c1d6db9]{font-size:var(--font-size-xs);color:var(--text-meta);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.board__project-meta[data-v-3c1d6db9]{font-size:var(--font-size-xs);color:var(--text-meta);font-variant-numeric:tabular-nums;flex-shrink:0}@media (width<=1440px){.board[data-v-3c1d6db9]{--wb-left-w:224px;--wb-right-w:320px}}@media (width<=1180px){.board[data-v-3c1d6db9]{--wb-left-w:200px;--wb-right-w:280px}}@media (width>=1025px){.board__left[data-v-3c1d6db9]{transition:width var(--transition-base) var(--ease-custom)}.board__left.is-collapsed[data-v-3c1d6db9]{width:0;overflow:hidden}.board__cols.is-resizing .board__left[data-v-3c1d6db9]{transition:none}}@media (width<=1024px){.board__splitter--left[data-v-3c1d6db9]{display:none}.board__left[data-v-3c1d6db9]{z-index:20;width:min(var(--wb-left-w), 86vw);background:var(--bg-container);border-right:1px solid var(--border-color);box-shadow:var(--dialog-shadow);transition:transform var(--transition-base) var(--ease-custom);position:absolute;top:0;bottom:0;left:0}.board__left.is-collapsed[data-v-3c1d6db9]{pointer-events:none;transform:translate(-100%)}.board__scrim.is-on[data-v-3c1d6db9]{z-index:15;display:block;position:absolute;inset:0}}@media (width<=860px){.board[data-v-3c1d6db9]{--wb-right-w:100%}.board__splitter--right[data-v-3c1d6db9]{display:none}.board__cols[data-v-3c1d6db9]{flex-direction:column;overflow-y:auto}.board__main[data-v-3c1d6db9]{flex:none;min-height:72vh}.board__top[data-v-3c1d6db9]{flex-wrap:wrap;gap:6px 12px;height:auto;padding:8px 12px}.board__stats[data-v-3c1d6db9]{flex-basis:100%;order:3;gap:12px;margin-left:0}}.workbench[data-v-cacb66cc]{background:var(--bg-container);height:100%;color:var(--text-primary);flex-direction:column;display:flex}.wb-editor[data-v-cacb66cc]{flex-direction:column;flex:auto;min-height:0;line-height:1.5;display:flex}.wb-editor-bar[data-v-cacb66cc]{border-bottom:1px solid var(--border-color-light);background:var(--bg-panel);background-image:var(--gradient-accent-soft);flex-shrink:0;align-items:center;gap:8px;height:34px;padding:0 12px;display:flex}.wb-back-btn[data-v-cacb66cc]{color:var(--text-secondary);font-size:var(--font-size-sm);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:4px;padding:0 6px;line-height:22px;display:inline-flex}.wb-back-btn[data-v-cacb66cc]:hover{color:var(--color-primary)}.wb-back-btn[data-v-cacb66cc]:focus-visible{outline:var(--focus-outline);outline-offset:1px}.wb-back-btn__icon[data-v-cacb66cc]{font-size:var(--font-size-mid)}.wb-editor-bar__project[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.wb-editor-bar__hint[data-v-cacb66cc]{font-size:var(--font-size-xs);color:var(--text-tertiary);flex-shrink:0;margin-left:auto}.wb-editor-bar__repo[data-v-cacb66cc]{text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-size:var(--font-size-xs);border-radius:var(--radius-base);color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 12%, transparent);font-variant-numeric:tabular-nums;flex-shrink:0;padding:0 6px;line-height:16px;overflow:hidden}.wb-task-desc[data-v-cacb66cc]{border-radius:var(--radius-md);background:var(--bg-subtle);flex-shrink:0;min-width:0;margin:0;padding:0;overflow:hidden}.wb-task-options[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-secondary);align-items:center;gap:12px;padding:8px 12px 0;display:flex}.wb-task-desc[open][data-v-cacb66cc]{background:var(--bg-container)}.wb-task-desc__summary[data-v-cacb66cc]{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 0;list-style:none;display:flex}.wb-task-desc__summary[data-v-cacb66cc]::-webkit-details-marker{display:none}.wb-task-desc__summary[data-v-cacb66cc]:hover{background:var(--bg-container-hover)}.wb-task-desc__caret[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-tertiary);transition:transform var(--transition-fast)}.wb-task-desc__label[data-v-cacb66cc]{letter-spacing:.1px;font-weight:500}.wb-task-desc__tag[data-v-cacb66cc]{font-size:var(--font-size-xs);color:var(--color-primary);align-items:center;gap:5px;margin-left:auto;font-weight:600;display:inline-flex}.wb-task-desc__tag-attachment[data-v-cacb66cc]{border-radius:var(--radius-lg);background:var(--tint-primary-14);min-width:18px;height:16px;color:var(--color-primary);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.wb-task-desc[open] .wb-task-desc__summary[data-v-cacb66cc]{margin-bottom:0}.wb-task-desc>.wb-textarea[data-v-cacb66cc],.wb-task-desc[data-v-cacb66cc]>.attachment-zone{margin:0 14px 0 0}.wb-task-desc>.wb-textarea[data-v-cacb66cc]{max-width:100%;margin-bottom:0}.wb-task-desc[data-v-cacb66cc]>.attachment-zone{margin-top:8px}.workbench__editor-row[data-v-cacb66cc]{flex:1;min-height:0;display:flex}.wb-splitter[data-v-cacb66cc]{cursor:col-resize;z-index:5;flex:0 0 5px;margin-right:-5px;position:relative}.wb-splitter[data-v-cacb66cc]:after{content:"";width:1px;transition:background var(--transition-fast) var(--ease-custom);background:0 0;position:absolute;top:0;bottom:0;left:2px}.wb-splitter[data-v-cacb66cc]:hover:after,.wb-splitter[data-v-cacb66cc]:active:after{background:var(--color-primary)}.wb-sidebar[data-v-cacb66cc]{background:var(--bg-panel);flex-direction:column;flex-shrink:0;gap:18px;width:268px;padding:14px 12px 18px;display:flex;overflow-y:auto}.wb-section[data-v-cacb66cc]{flex-direction:column;flex-shrink:0;gap:8px;min-height:0;display:flex}.wb-section+.wb-section[data-v-cacb66cc]{padding-top:16px}.wb-section__head[data-v-cacb66cc]{align-items:center;gap:6px;padding:0 4px;display:flex}.wb-section__tag[data-v-cacb66cc]{height:18px;font-size:var(--font-size-xs);letter-spacing:.4px;color:var(--text-tertiary);background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-base);text-transform:uppercase;font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.wb-section__tag--accent[data-v-cacb66cc]{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 9%, transparent);border-color:var(--tint-primary-22)}.wb-section__title[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:.2px;flex:1;min-width:0;margin:0;font-weight:600}.wb-section__action[data-v-cacb66cc]{color:var(--text-tertiary);border-radius:var(--radius-base);cursor:pointer;width:28px;height:28px;font-size:var(--font-size-mid);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-section__action[data-v-cacb66cc]:hover{background:var(--tint-primary-12);color:var(--color-primary)}.wb-new-btn[data-v-cacb66cc]{border:1px dashed var(--tint-primary-35,color-mix(in srgb, var(--color-primary) 35%, transparent));border-radius:var(--radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 4%, transparent) 0%, color-mix(in srgb, var(--color-primary) 2%, transparent) 100%);width:100%;height:32px;color:var(--color-primary);font-size:var(--font-size-mid);letter-spacing:.05px;cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;padding:0 12px;font-weight:600;display:flex}.wb-new-btn__icon[data-v-cacb66cc]{font-size:var(--font-size-mid);transition:transform var(--transition-fast) var(--ease-custom);flex-shrink:0}.wb-new-btn__shortcut[data-v-cacb66cc]{display:none}.wb-new-btn[data-v-cacb66cc]:hover{background:linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 10%, transparent) 0%, color-mix(in srgb, var(--color-primary) 6%, transparent) 100%);color:var(--color-primary);border-style:solid;border-color:var(--tint-primary-50)}.wb-new-btn:hover .wb-new-btn__icon[data-v-cacb66cc]{transform:rotate(90deg)}.wb-new-btn[data-v-cacb66cc]:active{transform:scale(.99)}.wb-new-btn[data-v-cacb66cc]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-task-list[data-v-cacb66cc],.wb-prompt-list[data-v-cacb66cc]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wb-task-item[data-v-cacb66cc]{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom);background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;display:flex;position:relative}.wb-task-item[data-v-cacb66cc]:hover{background:var(--bg-container-hover);border-color:#0000;transform:translateY(-.5px)}.wb-task-item:hover .wb-task-item__del[data-v-cacb66cc]{opacity:1;transform:translate(0)}.wb-task-item.is-running[data-v-cacb66cc]{background:color-mix(in srgb, var(--color-warning) 8%, transparent)}.wb-task-item.is-running[data-v-cacb66cc]:hover{background:color-mix(in srgb, var(--color-warning) 14%, transparent);transform:none}.wb-task-item.active[data-v-cacb66cc]{background:color-mix(in srgb, var(--color-primary) 10%, var(--bg-container));box-shadow:0 1px 3px color-mix(in srgb, var(--color-primary) 12%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-primary) 18%, transparent);border-color:#0000}.wb-task-item.active[data-v-cacb66cc]:after{content:"";border-radius:var(--radius-base);background:linear-gradient(180deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 70%, #fff) 100%);width:3px;box-shadow:0 0 8px color-mix(in srgb, var(--color-primary) 50%, transparent), 0 1px 3px color-mix(in srgb, var(--color-primary) 25%, transparent);position:absolute;top:5px;bottom:5px;left:-1px}.wb-task-item.active .wb-task-item__title[data-v-cacb66cc]{color:var(--color-primary)}.wb-task-item.active .wb-task-item__del[data-v-cacb66cc]{opacity:1;color:var(--color-primary)}.wb-task-item__running-dot[data-v-cacb66cc]{background:var(--color-warning);width:6px;height:6px;box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);border-radius:50%;flex:none;margin-left:auto;animation:1.4s ease-in-out infinite wb-running-pulse-cacb66cc}@keyframes wb-running-pulse-cacb66cc{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--color-warning) 60%, transparent);opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-warning) 0%, transparent);opacity:.75;transform:scale(1.35)}}.wb-task-item__body[data-v-cacb66cc]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.wb-task-item__title[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.05px;font-weight:500;line-height:1.3;overflow:hidden}.wb-task-item__meta[data-v-cacb66cc]{font-size:var(--font-size-xs);color:var(--text-tertiary);align-items:center;gap:5px;line-height:1;display:flex}.wb-task-item__meta-item[data-v-cacb66cc]{font-variant-numeric:tabular-nums;align-items:center;gap:3px;font-weight:500;display:inline-flex}.wb-task-item__meta-item--accent[data-v-cacb66cc]{color:var(--color-primary)}.wb-task-item__meta-item--project[data-v-cacb66cc]{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 14%, transparent);height:15px;color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 80%, var(--text-primary));font-size:var(--font-size-xs);letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;align-items:center;max-width:110px;padding:0 5px;font-weight:600;display:inline-flex;overflow:hidden}.wb-task-item.is-other-project[data-v-cacb66cc]{opacity:.78}.wb-task-item.is-other-project[data-v-cacb66cc]:hover{opacity:1}.wb-task-item__meta-icon[data-v-cacb66cc]{font-size:var(--font-size-xs);opacity:.85}.wb-task-item__num[data-v-cacb66cc]{min-width:14px;color:var(--text-secondary);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);padding:0 4px}.wb-task-item.active .wb-task-item__num[data-v-cacb66cc]{color:var(--color-primary);background:var(--tint-primary-14)}.wb-task-item__meta-item--running .wb-task-item__num[data-v-cacb66cc]{color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 85%, var(--text-primary));background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 18%, transparent);font-weight:600}.wb-task-item.is-running .wb-task-item__meta-icon[data-v-cacb66cc]{color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 80%, var(--text-primary));animation:1.4s ease-in-out infinite wb-task-running-icon-cacb66cc}@keyframes wb-task-running-icon-cacb66cc{0%,to{opacity:.55}50%{opacity:1}}.wb-task-item__del[data-v-cacb66cc]{color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;width:22px;height:22px;font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;transform:translate(-2px)}.wb-task-item__del[data-v-cacb66cc]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-task-item__del[data-v-cacb66cc]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-task-item__del[data-v-cacb66cc],.wb-prompt-item__del[data-v-cacb66cc]{font-size:var(--font-size-mid)}.wb-prompt-item[data-v-cacb66cc]{border-radius:var(--radius-md);font-size:var(--font-size-mid);color:var(--text-primary);transition:background var(--transition-fast) var(--ease-custom);align-items:center;gap:8px;padding:7px 8px;display:flex;position:relative}.wb-prompt-item[data-v-cacb66cc]:hover{background:var(--bg-container-hover)}.wb-prompt-item:hover .wb-prompt-item__del[data-v-cacb66cc]{opacity:1}.wb-prompt-item__icon[data-v-cacb66cc]{border-radius:var(--radius-base);background:var(--tint-primary-08);width:22px;height:22px;color:var(--color-primary);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-prompt-item__name[data-v-cacb66cc]{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-primary);letter-spacing:-.05px;flex:1;font-weight:500;overflow:hidden}.wb-prompt-item__tag[data-v-cacb66cc]{border-radius:var(--radius-xs);max-width:96px;font-size:var(--font-size-xs);letter-spacing:.1px;background:var(--tint-primary-08);color:var(--color-primary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;padding:1px 6px;line-height:16px;overflow:hidden}.wb-prompt-item__tag--project[data-v-cacb66cc]{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color-light)}.wb-prompt-item__del[data-v-cacb66cc]{color:var(--text-tertiary);border-radius:var(--radius-xs);cursor:pointer;width:20px;height:20px;font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wb-prompt-item__del[data-v-cacb66cc]:hover{background:color-mix(in srgb, var(--color-danger) 14%, transparent);color:var(--color-danger)}.wb-prompt-item__del[data-v-cacb66cc]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset);opacity:1}.wb-split[data-v-cacb66cc]{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 24px 14px;display:flex;overflow:hidden}.wb-placeholder[data-v-cacb66cc]{color:var(--text-tertiary);font-size:var(--font-size-mid);flex:1;justify-content:center;align-items:center;display:flex}.wb-execution-body[data-v-cacb66cc]{border:none;border-radius:0;flex:1;grid-template-columns:1fr;gap:16px;min-height:0;display:grid;overflow:hidden}.wb-exec-detail[data-v-cacb66cc]{background:0 0;flex-direction:column;gap:14px;min-width:0;min-height:0;padding:4px 4px 8px;display:flex;overflow:auto}.wb-split__header[data-v-cacb66cc]{flex-shrink:0;align-items:center;gap:10px;padding-bottom:4px;padding-right:8px;display:flex}.wb-split__title-wrap[data-v-cacb66cc]{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.wb-split__title-wrap .wb-input--title[data-v-cacb66cc]{flex:1;min-width:0}.wb-copy-btn[data-v-cacb66cc]{appearance:none;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-container);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom), transform var(--transition-fast) var(--ease-custom);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.wb-copy-btn[data-v-cacb66cc]:hover:not(:disabled){background:var(--tint-primary-12);border-color:var(--tint-primary-35);color:var(--color-primary)}.wb-copy-btn[data-v-cacb66cc]:active:not(:disabled){transform:scale(.94)}.wb-copy-btn[data-v-cacb66cc]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-copy-btn.is-flash[data-v-cacb66cc]{background:var(--tint-success-14,color-mix(in srgb, var(--color-success) 14%, transparent));border-color:var(--tint-success-35,color-mix(in srgb, var(--color-success) 35%, transparent));color:var(--color-success-dark,var(--color-success-dark))}.wb-copy-btn__icon[data-v-cacb66cc]{font-size:var(--font-size-mid);line-height:1}.wb-copy-btn__icon--check[data-v-cacb66cc]{font-size:var(--font-size-base);font-weight:800}.wb-copy-btn--inline[data-v-cacb66cc]{border-radius:var(--radius-md);width:22px;height:22px;margin-left:2px}.wb-copy-btn--inline .wb-copy-btn__icon[data-v-cacb66cc]{font-size:var(--font-size-xs)}@keyframes wb-ai-sparkle-pulse-cacb66cc{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}.wb-no-claude-hint[data-v-cacb66cc]{border:1px solid color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 32%, transparent);background:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 8%, transparent);height:32px;color:color-mix(in srgb, var(--color-warning,var(--color-warning-light)) 75%, var(--text-primary));border-radius:var(--radius-md);font-size:var(--font-size-sm);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.wb-executor-split[data-v-cacb66cc]{flex-shrink:0}.wb-executor-split__hint[data-v-cacb66cc]{font-size:var(--font-size-xs);opacity:.85;border-left:1px solid #ffffff59;align-items:center;gap:4px;margin-left:6px;padding-left:8px;font-weight:400;display:inline-flex}.wb-executor-split__hint-icon[data-v-cacb66cc]{font-size:var(--font-size-sm)}.wb-executor-item[data-v-cacb66cc]{align-items:center;gap:8px;min-width:132px;display:inline-flex}.wb-executor-item__icon[data-v-cacb66cc]{font-size:var(--font-size-base);flex:none}.wb-executor-item__name[data-v-cacb66cc]{flex:1}.wb-executor-item__check[data-v-cacb66cc]{color:var(--el-color-primary)}.wb-executor-item__missing[data-v-cacb66cc]{font-size:var(--font-size-xs);color:var(--text-secondary,var(--el-text-color-secondary))}.wb-executor-item__model[data-v-cacb66cc]{white-space:nowrap;text-overflow:ellipsis;max-width:15em;font-size:var(--font-size-xs);color:var(--text-meta);flex:none;overflow:hidden}.wb-no-claude-hint__icon[data-v-cacb66cc]{font-size:var(--font-size-base);opacity:.9}.wb-no-claude-hint__text[data-v-cacb66cc]{letter-spacing:-.05px}.wb-no-claude-hint__link[data-v-cacb66cc]{color:var(--color-primary);border-bottom:1px dashed color-mix(in srgb, var(--color-primary) 45%, transparent);margin-left:2px;font-weight:600;text-decoration:none}.wb-no-claude-hint__link[data-v-cacb66cc]:hover{border-bottom-style:solid}.wb-logs-inline-btn[data-v-cacb66cc]{appearance:none;border:1px solid var(--border-color);background:var(--bg-container);height:32px;color:var(--text-secondary);border-radius:var(--radius-md);font-size:var(--font-size-mid);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;align-items:center;gap:5px;padding:0 12px;font-weight:500;display:inline-flex}.wb-logs-inline-btn[data-v-cacb66cc]:hover{background:var(--tint-primary-12);color:var(--color-primary);border-color:var(--tint-primary-35)}.wb-logs-inline-btn--danger[data-v-cacb66cc]{color:var(--text-secondary);border-color:var(--border-color);background:var(--bg-container)}.wb-logs-inline-btn--danger[data-v-cacb66cc]:hover{color:var(--color-danger,var(--color-danger-light));border-color:var(--tint-danger-50);background:var(--tint-danger-06)}.wb-logs-inline-btn--copy.is-flash[data-v-cacb66cc]{color:var(--color-success-dark,var(--color-success));border-color:var(--tint-success-35,color-mix(in srgb, var(--color-success) 35%, transparent));background:var(--tint-success-14,color-mix(in srgb, var(--color-success) 14%, transparent))}.wb-logs-inline-btn[data-v-cacb66cc]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.wb-logs-inline-btn__icon[data-v-cacb66cc]{font-size:var(--font-size-base)}.wb-input[data-v-cacb66cc],.wb-textarea[data-v-cacb66cc]{color:var(--text-primary);background:var(--bg-container);border:1px solid var(--border-color-medium);border-radius:var(--radius-md);box-shadow:var(--wb-card-inset-shadow);transition:border-color var(--transition-fast) var(--ease-custom), box-shadow var(--transition-fast) var(--ease-custom), background var(--transition-fast) var(--ease-custom);appearance:none;outline:none;font-family:inherit}.wb-input[data-v-cacb66cc]::placeholder,.wb-textarea[data-v-cacb66cc]::placeholder{color:var(--text-placeholder);font-weight:400}.wb-input[data-v-cacb66cc]{height:36px;font-size:var(--font-size-base);letter-spacing:-.05px;padding:0 12px;line-height:1.2}.wb-input[data-v-cacb66cc]:hover:not(:focus){border-color:var(--border-input-hover,#cbd5e1);background:var(--bg-container-hover)}.wb-input[data-v-cacb66cc]:focus{border-color:var(--color-primary);background:var(--bg-container);box-shadow:0 0 0 3px var(--tint-primary-18), var(--wb-card-inset-shadow)}.wb-input--title[data-v-cacb66cc]{height:36px;font-size:var(--font-size-base);letter-spacing:-.4px;border-color:var(--border-color);box-shadow:none;background:0 0;flex:1;padding:0 12px;font-weight:600}.wb-input--title[data-v-cacb66cc]:hover:not(:focus){border-color:var(--border-color-medium);background:var(--bg-container)}.wb-input--title[data-v-cacb66cc]:focus{border-color:var(--color-primary);background:var(--bg-container);box-shadow:0 0 0 3px var(--tint-primary-14)}.wb-input--title[data-v-cacb66cc]::placeholder{color:var(--text-placeholder);font-weight:500}.wb-textarea[data-v-cacb66cc]{font-size:var(--font-size-mid);letter-spacing:-.05px;resize:vertical;box-sizing:border-box;background:var(--bg-container);width:100%;min-height:52px;box-shadow:none;border-color:var(--border-color);flex-shrink:0;padding:10px 14px;line-height:1.55;display:block}.wb-textarea[data-v-cacb66cc]::placeholder{color:var(--text-placeholder);line-height:1.55}.wb-textarea[data-v-cacb66cc]:hover:not(:focus){border-color:var(--border-color-medium);background:var(--bg-container-hover)}.wb-textarea[data-v-cacb66cc]:focus{border-color:var(--color-primary);background:var(--bg-container-hover);box-shadow:0 0 0 3px var(--tint-primary-14)}.wb-textarea--focus-expand[data-v-cacb66cc]:focus{max-height:500px;transition:max-height var(--transition-base) var(--ease-custom)}.wb-textarea--autogrow[data-v-cacb66cc]{resize:none;min-height:52px;max-height:320px;transition:height var(--transition-fast) var(--ease-custom);overflow-y:hidden}.wb-split__sub-header[data-v-cacb66cc]{flex-shrink:0;justify-content:space-between;align-items:center;margin-top:8px;display:flex}.wb-split__sub-header h4[data-v-cacb66cc]{font-size:var(--font-size-mid);color:var(--text-secondary);margin:0;font-weight:600}.wb-simple__header[data-v-cacb66cc]{border-left:2px solid var(--color-primary);flex-shrink:0;align-items:baseline;gap:10px;margin-top:8px;padding-left:8px;display:flex}.wb-simple__header h4[data-v-cacb66cc]{font-size:var(--font-size-mid);color:var(--text-primary);letter-spacing:-.05px;margin:0;font-weight:600}.wb-simple__hint[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-tertiary)}.wb-simple__status-row[data-v-cacb66cc]{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;margin-top:2px;display:flex}.wb-simple__status[data-v-cacb66cc]{width:8px;height:8px;transition:background var(--transition-fast) var(--ease-custom);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;gap:5px;padding:0;display:inline-flex}.wb-simple__status--dot[data-v-cacb66cc]{border-radius:50%}.wb-simple__status-text[data-v-cacb66cc]{display:none}.wb-simple__meta[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-tertiary);letter-spacing:-.05px;text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.wb-simple__meta--error[data-v-cacb66cc]{color:var(--color-danger)}.wb-simple__status[style*=--text-tertiary] .wb-simple__status-dot[data-v-cacb66cc]{background:var(--text-tertiary)}.wb-simple__stop[data-v-cacb66cc]{border-radius:var(--radius-base);border:1px solid var(--color-danger-bright);color:var(--color-danger-bright);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);background:0 0;margin-left:auto;padding:2px 10px;font-weight:600}.wb-simple__stop[data-v-cacb66cc]:hover:not(:disabled){background:var(--color-danger-bright);color:#fff}.wb-simple__stop[data-v-cacb66cc]:disabled{opacity:.45;cursor:not-allowed}.wb-task-prompt[data-v-cacb66cc]{border-radius:var(--radius-md)}.wb-task-prompt__summary[data-v-cacb66cc]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;list-style:none;display:flex}.wb-task-prompt__summary[data-v-cacb66cc]::-webkit-details-marker{display:none}.wb-task-prompt__caret[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-tertiary);transition:transform var(--transition-fast) var(--ease-custom)}.wb-task-prompt[open]>.wb-task-prompt__summary .wb-task-prompt__caret[data-v-cacb66cc]{color:var(--color-primary);transform:rotate(90deg)}.wb-task-prompt.has-content>.wb-task-prompt__summary[data-v-cacb66cc]{color:var(--text-primary)}.wb-task-prompt__tag[data-v-cacb66cc]{font-size:var(--font-size-xs);border-radius:var(--radius-lg);background:var(--tint-primary-12,color-mix(in srgb, var(--color-primary) 12%, transparent));color:var(--color-primary);letter-spacing:.2px;padding:1px 6px;font-weight:600}.wb-task-prompt__parts[data-v-cacb66cc]{flex-direction:column;gap:8px;margin-top:8px;display:flex}.wb-task-prompt__part[data-v-cacb66cc]{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-subtle);padding:6px 9px}.wb-task-prompt__label[data-v-cacb66cc]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:4px}.wb-task-prompt__text[data-v-cacb66cc]{max-height:220px;font-family:inherit;font-size:var(--font-size-mid);color:var(--text-primary);white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.5;overflow:auto}.wb-task-prompt__empty[data-v-cacb66cc]{font-size:var(--font-size-xs);color:var(--text-tertiary);margin:8px 0 0}.wb-simple-chat-wrap[data-v-cacb66cc]{border:1px solid var(--border-color);border-radius:var(--radius-base);background:var(--bg-code);--acu-bg:var(--bg-code);flex-direction:column;flex:1;min-height:0;margin-top:6px;display:flex;overflow:hidden}.wb-simple-chat[data-v-cacb66cc]{flex-direction:column;flex:1;min-height:0;display:flex}.wb-simple-chat[data-v-cacb66cc] .acu-chat-footer{display:none}.wb-simple-chat[data-v-cacb66cc] .acu-chat,.wb-simple-chat[data-v-cacb66cc] .acu-message-list,.wb-simple-chat[data-v-cacb66cc] .acu-message-list-inner>*{background:0 0}.wb-simple-chat[data-v-cacb66cc] .acu-chat,.wb-simple-chat[data-v-cacb66cc] .acu-message-list{background:var(--bg-code)}.wb-simple-chat[data-v-cacb66cc] .acu-message-list-inner{gap:10px;max-width:100%;margin:0;padding:10px 8px 14px}.wb-simple-chat[data-v-cacb66cc] .acu-bubble-main{max-width:100%}.wb-simple-chat[data-v-cacb66cc] .acu-bubble{font-size:var(--font-size-sm);border-radius:var(--radius-lg)}.wb-simple-chat[data-v-cacb66cc] .acu-bubble-name{font-size:var(--font-size-xs)}.wb-simple-chat__footer[data-v-cacb66cc]{background:var(--bg-code);flex-shrink:0;padding:0 4px 4px}.wb-simple-chat__input[data-v-cacb66cc]{width:100%}.wb-form-item[data-v-cacb66cc]{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.wb-form-item__label[data-v-cacb66cc]{font-size:var(--font-size-sm);color:var(--text-secondary);letter-spacing:-.05px;font-weight:500}.wb-sub-list[data-v-cacb66cc]{flex-direction:column;flex:1;gap:8px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}@keyframes wb-progress-slide-cacb66cc{0%{background-position:-50% 0}to{background-position:150% 0}}@keyframes wb-card-glow-cacb66cc{0%,to{box-shadow:0 0 0 1px var(--tint-primary-30), 0 4px 18px -4px color-mix(in srgb, var(--color-primary) 25%, transparent)}50%{box-shadow:0 0 0 1px var(--tint-primary-50), 0 6px 24px -2px color-mix(in srgb, var(--color-primary) 38%, transparent)}}@keyframes wb-card-sweep-cacb66cc{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes wb-border-shimmer-cacb66cc{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes wb-status-dot-pulse-cacb66cc{0%,to{transform:scale(1);box-shadow:0 0 4px #ffffff73}50%{transform:scale(1.35);box-shadow:0 0 8px #ffffffd9}}@keyframes wb-status-dot-cacb66cc{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.wb-sub-expand-enter-active[data-v-cacb66cc],.wb-sub-expand-leave-active[data-v-cacb66cc]{transition:none}}.wb-sub-expand-enter-active[data-v-cacb66cc],.wb-sub-expand-leave-active[data-v-cacb66cc]{transition:grid-template-rows var(--transition-base,var(--transition-base)) var(--ease-custom), opacity var(--transition-fast) var(--ease-custom);overflow:hidden}.wb-sub-expand-enter-from[data-v-cacb66cc],.wb-sub-expand-leave-to[data-v-cacb66cc]{opacity:0;grid-template-rows:0fr}.wb-sub-expand-enter-to[data-v-cacb66cc],.wb-sub-expand-leave-from[data-v-cacb66cc]{opacity:1;grid-template-rows:1fr}.wb-sub-expand-inner[data-v-cacb66cc]{min-height:0;overflow:hidden}.wb-task-group__head[data-v-cacb66cc]{font-size:var(--font-size-mid);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-base);transition:background var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);align-items:center;gap:6px;margin-top:4px;padding:8px 6px 4px;font-weight:600;display:flex}.wb-task-group__head[data-v-cacb66cc]:first-child{border-top:none;margin-top:0;padding-top:4px}.wb-task-group__head[data-v-cacb66cc]:hover{background:var(--tint-primary-08);color:var(--text-secondary)}.wb-task-group__head[data-v-cacb66cc]:focus-visible{outline:var(--focus-outline);outline-offset:var(--focus-outline-offset)}.wb-task-group__head.is-current[data-v-cacb66cc]{color:var(--color-primary);border-top-color:var(--tint-primary-30)}.wb-task-group__head.is-collapsed[data-v-cacb66cc]{background:var(--bg-subtle);border-top-style:solid;margin-top:6px;padding-top:6px;padding-bottom:6px}.wb-task-group__head.is-collapsed.is-current[data-v-cacb66cc]{background:color-mix(in srgb, var(--color-primary) 8%, var(--bg-subtle))}.wb-task-group__caret[data-v-cacb66cc]{font-size:var(--font-size-sm);opacity:.75;transition:transform var(--transition-fast) var(--ease-custom);flex-shrink:0}.wb-task-group__icon[data-v-cacb66cc]{font-size:var(--font-size-base);opacity:.8;flex-shrink:0}.wb-task-group__name[data-v-cacb66cc]{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.wb-task-group__count[data-v-cacb66cc]{min-width:18px}.wb-task-group__head.is-current .wb-task-group__count[data-v-cacb66cc]{background:var(--tint-primary-16,color-mix(in srgb, var(--color-primary) 16%, transparent));color:var(--color-primary)}.wb-meta-save[data-v-cacb66cc]{height:24px;font-size:var(--font-size-xs);letter-spacing:.1px;border-radius:var(--radius-xl);border:1px solid var(--border-color-medium);background:var(--bg-container);color:var(--text-tertiary);-webkit-user-select:none;user-select:none;transition:background var(--transition-fast) var(--ease-custom), border-color var(--transition-fast) var(--ease-custom), color var(--transition-fast) var(--ease-custom);flex-shrink:0;align-items:center;gap:5px;padding:0 10px;font-weight:600;display:inline-flex}.wb-meta-save__dot[data-v-cacb66cc]{opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.wb-meta-save__check[data-v-cacb66cc]{font-size:var(--font-size-sm);line-height:1}.wb-meta-save__bang[data-v-cacb66cc]{width:12px;height:12px;font-size:var(--font-size-xs);color:#fff;background:currentColor;border-radius:50%;justify-content:center;align-items:center;font-weight:800;line-height:1;display:inline-flex}.wb-meta-save.is-saving[data-v-cacb66cc]{color:var(--color-primary);border-color:var(--tint-primary-35);background:color-mix(in srgb, var(--color-primary) 8%, var(--bg-container))}.wb-meta-save.is-saving .wb-meta-save__dot[data-v-cacb66cc]{animation:1.2s ease-in-out infinite wb-meta-pulse-cacb66cc}.wb-meta-save.is-saved[data-v-cacb66cc]{color:var(--color-success-dark,var(--color-success-dark));border-color:var(--tint-success-35);background:var(--tint-success-08)}.wb-meta-save.is-dirty[data-v-cacb66cc]{color:var(--color-warning-dark,var(--color-warning-dark));border-color:var(--tint-warning-45);background:var(--tint-warning-06)}.wb-meta-save.is-error[data-v-cacb66cc]{color:var(--color-danger-dark,#b91c1c);border-color:var(--tint-danger-45);background:var(--tint-danger-06)}@keyframes wb-meta-pulse-cacb66cc{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.wb-meta-save.is-saving .wb-meta-save__dot[data-v-cacb66cc]{animation:none}}.wb-logs-dialog{flex-direction:column;max-height:88vh;display:flex}.wb-logs-dialog .el-dialog__body{flex:auto;min-height:0;max-height:calc(88vh - 60px);padding:12px 20px 16px;overflow:auto}
@@ -1,6 +0,0 @@
1
- import"./rolldown-runtime-C0FnF6B9.js";import{Bn as e,Tn as t,a as n,br as r,i,pr as a,vr as o}from"./element-plus-CgEuJBlB.js";import{c as s,l as c,o as l,s as u}from"./vendor-CDZ64WVU.js";import{n as d}from"./_plugin-vue_export-helper-DF39dMex.js";import{a as f,i as p,t as m}from"./configStore-CZhbJNkw.js";import{a as h,c as g,l as _,t as v}from"./index-Cw-KBQo_.js";function y(e,t=200){let n=typeof e==`string`?e:``;if(!n.trim())return``;let r=n.split(`
2
- `).map(e=>e.trim()).filter(Boolean),i=(r.length?r[r.length-1]:``).replace(/\s+/g,` `);return i.length>t?`${i.slice(0,t-1)}…`:i}function b(e){return d(e===`done`?`@AGENT:对话已完成`:`@AGENT:对话出错`)}function x(e){let t=!1,r=!1;try{let e=m();t=!!e.notifyOnTaskDone,r=!!e.notifySoundOnTaskDone}catch{t=!1,r=!1}if(!t)return!1;let i=String(e.title||``).trim()||d(`@AGENT:无标题`),a=y(e.detail),o=e.tag||`zen-gitsync-agent`,s=a?`${i}\n${a}`:i;return r&&v(e.kind),_()&&g({title:b(e.kind),body:s,tag:o})||e.alreadyToast||(e.kind===`done`?n.success(d(`@AGENT:对话完成:{name}`,{name:i})):n.error(d(`@AGENT:对话出错:{name}`,{name:i}))),!0}var S=`g ai`,C=`g-ai`,w=[{id:`gai`,name:S},...p.map(e=>({id:e.id,name:e.name}))],T=`zen-gitsync-agent-engine`;function E(e){return e===`gai`||f(e)}function D(e){return w.find(t=>t.id===e)?.name||`g ai`}function O(e){return f(e)}function k(){try{let e=localStorage.getItem(T);if(E(e))return e}catch{}return`gai`}function A(e){try{localStorage.setItem(T,e)}catch{}}e(),a();var j=[`image/*`,`.pdf`,`.txt`,`.md`,`.json`,`.csv`,`.log`,`.yml`,`.yaml`,`.xml`,`.toml`,`.ini`,`.html`,`.css`,`.js`,`.ts`,`.tsx`,`.vue`,`.py`,`.java`,`.go`,`.rs`,`.sql`,`.sh`].join(`,`),M=65536,N=`local-`,P=0;function F(e){if(!e||!Array.isArray(e.messages))return[];let t=[],n=e.messages.length;for(let r=0;r<n;r++){let i=e.messages[r];if(i.role!==`system`){if(i.role===`user`){let e=``,n;if(typeof i.content==`string`)e=i.content;else if(Array.isArray(i.content)){e=i.content.filter(e=>e?.type===`text`).map(e=>e.text||``).join(` `);let t=i.content.filter(e=>e?.type===`image_url`&&typeof e.image_url?.url==`string`).map((e,t)=>({id:`att-${r}-${t}`,name:`image`,size:0,type:R(e.image_url?.url||``)||`image/*`,preview:e.image_url?.url}));t.length>0&&(n=t)}(e||n)&&t.push({id:`msg-${r}`,role:`user`,content:e,attachments:n,status:`done`,createdAt:Date.now()})}else if(i.role===`assistant`){let i=`msg-${r}`,a=``,o=[],c=r;for(;c<n;){let t=e.messages[c];if(t.role!==`assistant`&&t.role!==`tool`)break;if(t.role===`assistant`){if(typeof t.content==`string`&&(a+=t.content),t.tool_calls&&t.tool_calls.length>0)for(let e of t.tool_calls)o.push({id:e.id||e.function?.name||s(),name:e.function?.name||``,arguments:e.function?.arguments||``,argsPreview:I(e.function?.name||``,e.function?.arguments||``),status:`done`,result:``})}else{let e=t.tool_call_id||t.name||``,n=o.find(t=>t.id===e);if(n){let e=t.content;typeof e!=`string`&&(e=`(non-text result)`),e.length>M&&(e=`…(前文已截断)\n${e.slice(-65536)}`),n.result=e}}c++}r=c-1,a.length>M&&(a=`…(前文已截断)\n${a.slice(-65536)}`);let l=!!a,u=o.length>0;(l||u)&&t.push({id:i,role:`assistant`,content:a,toolCalls:u?o:void 0,status:`done`,createdAt:Date.now()})}}}return t}function I(e,t){try{let n=JSON.parse(t);switch(e){case`run_command`:return String(n.command||``).slice(0,200);case`read_file`:case`write_file`:case`edit_file`:return String(n.path||``);case`list_files`:return String(n.path||`.`);case`search_text`:return String(n.pattern||``);case`update_plan`:{let e=l(t,`update_plan`);if(!e)return``;let{total:r,done:i}=c(e),a=String(n.explanation||``).replace(/\s+/g,` `).trim();return[`${i}/${r}`,a].filter(Boolean).join(` — `).slice(0,200)}default:return JSON.stringify(n).slice(0,200)}}catch{return t.slice(0,200)}}function L(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||``)),r.onerror=()=>n(r.error||Error(`FileReader failed`)),r.readAsDataURL(e)})}function R(e){let t=/^data:([^;,]+)/.exec(e);return t?t[1]:``}function z(){let e=m(),a=h(),c=++P,l=r([]),f=r(!1),p=r(k());function g(e){E(e)&&(p.value=e,A(e))}let _=o(new Map),v=r(null),y=r(!1),b=0,S=0,C=new Set;function w(e){return{key:e,sessionId:e.startsWith(N)?null:e,title:``,messages:[],isStreaming:!1,abortController:null,nonce:0,pendingQuestion:null,answeringQuestion:!1}}function T(e){let t=_.get(e);return t||=(_.set(e,w(e)),_.get(e)),t}let D=t(()=>v.value?_.get(v.value)??null:null),O=t(()=>D.value?.messages??[]),j=t(()=>D.value?.isStreaming??!1),I=t(()=>{let e=l.value.find(e=>e.sessionId===v.value);return E(e?.engine)?e.engine:p.value}),R=t(()=>l.value.some(e=>e.sessionId===v.value)),z=t(()=>D.value?.pendingQuestion??null),B=t(()=>D.value?.answeringQuestion??!1);function V(e){return!!_.get(e)?.isStreaming}function H(t){let n=[...t];for(let t of _.values()){if(!t.sessionId)continue;let r=n.findIndex(e=>e.sessionId===t.sessionId);if(r!==-1){C.delete(t.sessionId),t.isStreaming&&(n[r]={...n[r],isGenerating:!0});continue}if(!t.isStreaming&&!C.has(t.sessionId))continue;let i=new Date().toISOString();n.unshift({sessionId:t.sessionId,title:t.title||d(`@AGENT:无标题`),source:`web`,cwd:e.currentDirectory||``,model:``,engine:p.value,createdAt:i,updatedAt:i,messageCount:t.messages.filter(e=>e.role===`user`).length||1,size:0,isGenerating:t.isStreaming})}return n}async function U(){let t=++b,r=e.currentDirectory||``;if(!r){l.value=[],f.value=!1;return}f.value=!0;try{let e=`/api/agent/sessions?cwd=${encodeURIComponent(r)}`,i=await fetch(e).then(e=>e.json());if(t!==b)return;if(!i.success){n.error(i.error||d(`@AGENT:加载会话列表失败`));return}let a=Array.isArray(i.sessions)?i.sessions:[];l.value=H(a)}catch(e){if(t!==b)return;n.error(d(`@AGENT:加载会话列表失败`)+`: `+(e?.message||e))}finally{t===b&&(f.value=!1)}}function W(t,n){let r=new Date().toISOString(),i=l.value.find(e=>e.sessionId===t);if(i){i.isGenerating=!0,i.updatedAt=r;return}l.value=[{sessionId:t,title:n||d(`@AGENT:无标题`),source:`web`,cwd:e.currentDirectory||``,model:``,engine:p.value,createdAt:r,updatedAt:r,messageCount:1,size:0,isGenerating:!0},...l.value]}function G(e){let t=l.value.find(t=>t.sessionId===e);t&&(t.isGenerating=!1)}async function K(e){if(_.get(e)?.isStreaming){v.value=e;return}y.value=!0,v.value=e;try{let t=await fetch(`/api/agent/sessions/${encodeURIComponent(e)}`).then(e=>e.json());if(!t.success){n.error(t.error||d(`@AGENT:加载会话失败`));return}let r=T(e);r.sessionId=e,r.messages=F(t.session),t.session?.title&&(r.title=t.session.title)}catch(e){n.error(d(`@AGENT:加载会话失败`)+`: `+(e?.message||e))}finally{y.value=!1}}async function q(e){try{await i.confirm(d(`@AGENT:确认删除该会话`),d(`@AGENT:删除后无法恢复`),{type:`warning`})}catch{return}let t=_.get(e);if(t?.abortController)try{t.abortController.abort()}catch{}_.delete(e);try{let t=await fetch(`/api/agent/sessions/${encodeURIComponent(e)}`,{method:`DELETE`}).then(e=>e.json());if(!t.success){n.error(t.error||d(`@AGENT:删除失败`));return}l.value=l.value.filter(t=>t.sessionId!==e),v.value===e&&(v.value=null),n.success(d(`@AGENT:已删除`))}catch(e){n.error(d(`@AGENT:删除失败`)+`: `+(e?.message||e))}}async function J(e,t){try{let r=await fetch(`/api/agent/sessions/${encodeURIComponent(e)}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:t})}).then(e=>e.json());if(!r.success){n.error(r.error||d(`@AGENT:重命名失败`));return}let i=l.value.find(t=>t.sessionId===e);i&&(i.title=t);let a=_.get(e);a&&(a.title=t),n.success(d(`@AGENT:已重命名`))}catch(e){n.error(d(`@AGENT:重命名失败`)+`: `+(e?.message||e))}}function Y(){v.value=null}async function X(t,r=[],i={}){let l=r.filter(e=>e?.file?.type?.startsWith(`image/`)),f=r.filter(e=>!e?.file?.type?.startsWith(`image/`)),p=[],m=0;for(let e of f){let t=e.file.size||0;if(!(t>10485760)){if(p.length>=10||m+t>20971520)break;m+=t,p.push(e)}}let h=f.filter(e=>!p.includes(e));h.length>0&&n.warning(`${d(`@AGENT:以下附件超过大小或数量上限,已忽略:`)}${h.map(e=>e.file.name).join(`、`)}`);let g=v.value||`${N}${Date.now()}-${++S}`,y=T(g);if(!t.trim()&&l.length===0&&p.length===0||y.isStreaming)return;let b=(await Promise.allSettled(l.map(e=>L(e.file)))).map(e=>e.status===`fulfilled`?e.value:``).filter(e=>e.startsWith(`data:image/`)),w=(await Promise.allSettled(p.map(async e=>({name:e.file.name||`file`,dataUrl:await L(e.file)})))).map(e=>e.status===`fulfilled`?e.value:null).filter(e=>!!e&&typeof e.dataUrl==`string`&&e.dataUrl.startsWith(`data:`));v.value=y.key,y.nonce+=1;let E=y.nonce;y.abortController=new AbortController;let D=y.abortController;y.pendingQuestion=null,y.answeringQuestion=!1;let O={id:s(),role:`user`,content:t,status:`done`,createdAt:Date.now()},k=[...l,...p];k.length>0&&(O.attachments=k.map(e=>({id:e.id,name:e.file.name||`image`,size:e.file.size||0,type:e.file.type||``,preview:e.preview}))),y.messages.push(O);let A=o({id:s(),role:`assistant`,content:``,status:`pending`,createdAt:Date.now()});y.messages.push(A),y.isStreaming=!0;let j=`${c}:${g}:${E}`;a.begin(j);let P=[],F=y.sessionId,R=!1;try{let n=await fetch(`/api/agent/chat`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`},body:JSON.stringify({sessionId:y.sessionId||``,userMessage:t,cwd:e.currentDirectory||``,engine:i.engine??I.value,...b.length>0?{images:b}:{},...w.length>0?{attachments:w}:{},...i.openFilePath?{openFilePath:i.openFilePath}:{},...i.dirStatus?.length?{dirStatus:i.dirStatus}:{},...i.dirSummary?{dirSummary:i.dirSummary}:{},...i.allowDispatch?{allowDispatch:!0,dispatchExecutor:i.dispatchExecutor||``,dispatchUseDefaultPrompt:i.dispatchUseDefaultPrompt!==!1}:{}}),signal:D.signal});if(E!==y.nonce)return;if(!n.ok||!n.body){let e=await n.text().catch(()=>``);throw Error(e||`HTTP ${n.status}`)}let r=n.body.getReader(),a=new TextDecoder(`utf-8`),c=``;for(;;){let{value:e,done:n}=await r.read();if(E!==y.nonce)return;if(n)break;c+=a.decode(e,{stream:!0});let i=c.split(`
3
- `);c=i.pop()??``;for(let e of i){let n=e.trim();if(!n.startsWith(`data:`))continue;let r=n.slice(5).trim();if(!r)continue;let i;try{i=JSON.parse(r)}catch{continue}switch(i.type){case`meta`:if(i.sessionId){let e=String(i.sessionId);if(F=e,y.sessionId!==e){let t=y.key;y.sessionId=e,y.key=e,t!==e&&(_.delete(t),_.set(e,y),v.value===t&&(v.value=e))}let n=String(i.title||``).trim()||t.trim().split(`
4
- `)[0].trim().slice(0,40)||d(`@AGENT:无标题`);y.title||=n,W(e,n)}break;case`thinking`:A.reasoning||(A.reasoning=``,A.reasoningStatus=`streaming`),A.reasoning+=String(i.delta||``),A.status=`streaming`;break;case`content`:A.status===`pending`&&(A.status=`streaming`);{let e=String(i.delta||``);A.content+=e;let t=u(A.content);t.reasoning&&(A.reasoning||(A.reasoning=``,A.reasoningStatus=`streaming`),A.reasoning=t.reasoning,A.content=t.content)}break;case`tool_call_start`:{let e=o({id:i.toolCallId||s(),name:i.name||``,argsPreview:i.argsPreview||``,arguments:i.arguments||i.argsPreview||``,status:`running`,result:``});P.push(e),A.toolCalls||=[],A.toolCalls.push(e),A.status===`pending`&&(A.status=`streaming`);break}case`tool_output`:{let e=P.find(e=>e.id===i.toolCallId);if(e){let t=`${e.result||``}${String(i.chunk||``)}`;e.result=t.length>M?`…(前文已截断)\n${t.slice(-65536)}`:t}break}case`tool_result`:{let e=P.find(e=>e.id===i.toolCallId);e&&(e.result=String(i.result||``),e.status=`done`,e.name===`ask_user`&&(y.pendingQuestion=null));break}case`ask_user`:y.pendingQuestion={interactionId:String(i.interactionId||``),question:String(i.question||``),options:Array.isArray(i.options)?i.options.map(e=>String(e)):[],allowFreeText:i.allowFreeText!==!1,multiple:i.multiple===!0};break;case`done`:{let e=i.content||A.content,t=u(e);t.reasoning&&!A.reasoning&&(A.reasoning=t.reasoning),A.content=t.content,A.status=`done`,A.reasoningStatus===`streaming`&&(A.reasoningStatus=`done`);break}case`error`:A.status=`error`,A.error=String(i.error||d(`@AGENT:未知错误`)),A.reasoningStatus===`streaming`&&(A.reasoningStatus=`done`)}}}if(E!==y.nonce)return;A.status===`pending`&&(A.status=`done`)}catch(e){if(E!==y.nonce)return;e?.name===`AbortError`||D.signal.aborted?(R=!0,A.content=(A.content||``)+`
5
-
6
- [`+d(`@AGENT:已停止`)+`]`,A.status=`done`,A.reasoningStatus===`streaming`&&(A.reasoningStatus=`done`)):(A.status=`error`,A.error=e?.message||String(e),n.error(A.error||d(`@AGENT:对话失败`)))}finally{let e=!!y.pendingQuestion,t=A.status===`error`?`error`:`done`;a.end(j),E===y.nonce&&(y.isStreaming=!1,y.pendingQuestion=null,y.answeringQuestion=!1,y.abortController=null,!R&&!e&&x({kind:t,title:y.title,detail:t===`error`&&A.error||A.content,tag:`zen-gitsync-agent-${F||y.key}`,alreadyToast:t===`error`})),F&&(R&&C.add(F),G(F)),U().catch(()=>{})}}async function Z(e){let t=D.value,r=t?.pendingQuestion,i=t?.sessionId,a=(Array.isArray(e)?e:[e]).map(e=>String(e??``).trim()).filter(Boolean);if(!t||!r||!i||!a.length||t.answeringQuestion)return!1;t.answeringQuestion=!0;try{let e=await fetch(`/api/agent/respond`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({sessionId:i,interactionId:r.interactionId,answer:r.multiple?a:a[0]})}).then(e=>e.json());if(!e.success)throw Error(e.error||d(`@AGENT:回答提交失败`));return t.pendingQuestion=null,!0}catch(e){return n.error(e?.message||d(`@AGENT:回答提交失败`)),!1}finally{t.answeringQuestion=!1}}function Q(){let e=D.value;e?.abortController&&(e.abortController.abort(),e.abortController=null)}return{sessions:l,sessionsLoading:f,currentSessionId:v,messages:O,isStreaming:j,sessionLoading:y,pendingQuestion:z,answeringQuestion:B,isSessionGenerating:V,currentEngine:I,pendingEngine:p,isEngineLocked:R,pickEngine:g,loadSessions:U,loadSession:K,deleteSession:q,renameSession:J,newSession:Y,sendMessage:X,answerQuestion:Z,stop:Q}}var B=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%20fill='none'%3e%3crect%20x='2'%20y='6'%20width='27'%20height='23'%20rx='6'%20fill='%235364E8'/%3e%3cpath%20d='M9.419%2012.581a1.3%201.3%200%200%200-1.838%201.838L11.162%2018l-3.581%203.581a1.3%201.3%200%200%200%201.838%201.838l4.5-4.5a1.3%201.3%200%200%200%200-1.838Z'%20fill='%23FFFFFF'/%3e%3crect%20x='15.7'%20y='21.2'%20width='7.6'%20height='2.6'%20rx='1.3'%20fill='%23FFFFFF'/%3e%3cpath%20d='M25%20.4%2027.115%204.885%2031.6%207l-4.485%202.115L25%2013.6l-2.115-4.485L18.4%207l4.485-2.115Z'%20fill='%23FFFFFF'/%3e%3cpath%20d='M25%202.5%2026.22%205.78%2029.5%207l-3.28%201.22L25%2011.5l-1.22-3.28L20.5%207l3.28-1.22Z'%20fill='%2339D7B5'/%3e%3c/svg%3e`;function V(e){if(!e)return``;try{let t=new Date(e);if(Number.isNaN(t.getTime()))return e;let n=new Date,r=n.getTime()-t.getTime(),i=e=>String(e).padStart(2,`0`);if(t.toDateString()===n.toDateString())return`${i(t.getHours())}:${i(t.getMinutes())}`;if(r<6048e5){let e=Math.floor(r/864e5);return e===0?d(`@AGENT:今天`):`${e}${d(`@AGENT:天前`)}`}return`${t.getFullYear()}-${i(t.getMonth()+1)}-${i(t.getDate())}`}catch{return e}}function H(e,t){return e.map(e=>({id:e.sessionId,title:e.title||d(`@AGENT:无标题`),meta:`${V(e.updatedAt)} · ${e.messageCount??0} ${d(`@AGENT:条`)}`,generatingText:e.isGenerating||t(e.sessionId)?d(`@AGENT:正在生成中...`):``,badge:e.source===`cli`?`CLI`:``,searchText:e.model}))}function U(){return{newConversation:d(`@AGENT:新建会话`),searchPlaceholder:d(`@AGENT:搜索会话...`),empty:d(`@AGENT:暂无会话`),emptyHint:d(`@AGENT:点击上方按钮开始对话`),noResult:d(`@AGENT:未找到匹配的会话`),loading:d(`@AGENT:加载会话中...`),rename:d(`@AGENT:重命名`),delete:d(`@AGENT:删除`),untitled:d(`@AGENT:无标题`)}}var W=`g ai`,G=B;function K(){return{title:d(`@AGENT:等待你的回答`),placeholder:d(`@AGENT:输入回答`),submit:d(`@AGENT:提交回答`)}}export{H as a,w as c,O as d,K as i,C as l,W as n,j as o,U as r,z as s,G as t,D as u};
@@ -1 +0,0 @@
1
- import"./rolldown-runtime-C0FnF6B9.js";import{Bn as e,Tn as t,a as n,br as r,n as i,or as a,pr as o,t as s}from"./element-plus-CgEuJBlB.js";import{S as c,h as l,v as u}from"./vendor-CDZ64WVU.js";import{a as d,n as f,r as p}from"./_plugin-vue_export-helper-DF39dMex.js";var m=[{id:`claude`,name:`Claude Code`},{id:`opencode`,name:`OpenCode`},{id:`codex`,name:`Codex`}];function h(e){return m.some(t=>t.id===e)}function g(e){return m.find(t=>t.id===e)?.name||m[0].name}var _={"zh-CN":i,"en-US":s};function v(e){return _[e]||i}o(),e();var y=c(`locale`,()=>{let e=r(p()),n=t(()=>v(e.value));async function i(t){d(t),e.value=t;let n=D();n.locale!==t&&await n.saveGeneralSettings({locale:t})}return{currentLocale:e,elementPlusLocale:n,changeLocale:i}}),b=`flowdash-md-preview-theme`,x=`data-md-theme`,S=`github`,C=Object.keys(l);function w(e,t){let n=RegExp(`(?:^|[;{\\n])\\s*${t}\\s*:\\s*([^;]+);`).exec(e);return n?n[1].trim():void 0}var T=C.map(e=>{let t=u(e)||``;return{value:e,bg:w(t,`background`),fg:w(t,`color`)}});function E(e){if(typeof document>`u`)return;let t=typeof e==`string`&&e.trim()?e.trim():S,n=u(t)??u(`github`),r=document.getElementById(b);if(!n){r?.remove();return}r||(r=document.createElement(`style`),r.id=b,document.head.appendChild(r)),r.setAttribute(x,t),r.textContent!==n&&(r.textContent=n)}o(),e();var D=c(`config`,()=>{let e=r(``),i=r([]),o=r([]),s=r([]),c=r([]),l=r([]),u=r([]),p=r([]),m=r([]),g=r(!1),_=r({enabled:!1,type:`command`,refId:``}),v=r(!1),b=r(!1),x=r(``),w=r(``),T=r(``),D=r(!0),O=r(!1),k=r(!0),A=r(!1),j=r(!1),M=r(!0),N=r(`light`),P=r(`zh-CN`),F=r([]),I=r(1e3),L=r(`claude`),R=r(!0),z=r(!0),B={layout:{leftRatio:.25,midRatio:.375,rightRatio:.375,topRatio:.5},layoutsByProject:{},aiDiffSummaryByProject:{},fileListViewMode:`list`,fileDiffSplitPercent:35,diffPreviewSplitPercent:55,commandConsole:{expanded:!0,useTerminal:!0,showTerminalSessions:!0,splitPercent:25},editorAutoSave:!0,fileTreeAutoRefresh:!0,editorSidebarWidth:220,mindmapDirs:[],mindmapDir:``,headerToolsHidden:[],lastTaskExecutor:null,pickerGlobalSearch:!1,markdownTheme:S,editorWorkspaceByProject:{}},V=r(JSON.parse(JSON.stringify(B))),H=r(!1);function ee(e){T.value=e||``}let te=t(()=>{let e=T.value;return e?V.value.aiDiffSummaryByProject[e]!==!1:!1});function ne(){let e=T.value;if(e&&V.value.layoutsByProject?.[e]){V.value.layout={...V.value.layoutsByProject[e]};return}}function U(e){let t=document.documentElement;e===`dark`?t.setAttribute(`data-theme`,`dark`):e===`light`?t.removeAttribute(`data-theme`):window.matchMedia(`(prefers-color-scheme: dark)`).matches?t.setAttribute(`data-theme`,`dark`):t.removeAttribute(`data-theme`)}function re(){let e=document.documentElement.getAttribute(`data-theme`)===`dark`?`light`:`dark`;return N.value=e,U(e),$({theme:e}).catch(e=>{console.error(`保存主题切换结果失败:`,e)}),e}U(N.value);let W=t(()=>({defaultCommitMessage:e.value,descriptionTemplates:i.value,scopeTemplates:o.value,messageTemplates:s.value,commandTemplates:c.value,lockedFiles:l.value,customCommands:u.value,orchestrations:p.value,startupItems:m.value,startupAutoRun:g.value,afterQuickPushAction:_.value,currentDirectory:T.value})),ie=t(()=>!!(x.value&&x.value.trim()));async function ae(){try{let e=await fetch(`/api/config/open-file`,{method:`POST`,headers:{"Content-Type":`application/json`}}),t=await e.json().catch(()=>({}));return e.ok&&t?.success?(n.success(f(`@D50BB:已打开系统配置文件`)),!0):(n.error(`${f(`@D50BB:打开系统配置文件失败: `)}${t?.error||``}`),!1)}catch(e){return n.error(`${f(`@D50BB:打开系统配置文件失败: `)}${e.message}`),!1}}async function G(t=!1){if(!t&&b.value&&!v.value)return console.log(f(`@D50BB:使用缓存的配置信息`)),W.value;v.value=!0;try{v.value=!0,console.log(f(`@D50BB:加载配置信息...`));let t=await fetch(`/api/config/getConfig`),r=await t.json().catch(()=>({}));if(!t.ok||r&&r.success===!1){let e=String(r?.error||f(`@D50BB:加载配置失败`)),t=String(r?.configPath||``),i=t?`\n${f(`@D50BB:配置文件`)}: ${t}`:``;return n.error(`${f(`@D50BB:加载配置失败: `)}${e}${i}`),x.value=e,w.value=t,null}if(x.value=``,w.value=``,e.value=r.defaultCommitMessage||``,i.value=r.descriptionTemplates||[],o.value=r.scopeTemplates||[],s.value=r.messageTemplates||[],c.value=r.commandTemplates||[],l.value=r.lockedFiles||[],u.value=r.customCommands||[],p.value=r.orchestrations||[],m.value=(r.startupItems||[]).map(e=>({id:String(e?.id??``),type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId??e?.commandId??``),createdAt:Number(e?.createdAt??Date.now()),enabled:typeof e?.enabled!=`boolean`||e.enabled})).filter(e=>e.id&&e.refId),g.value=r.startupAutoRun||!1,_.value={enabled:!!r?.afterQuickPushAction?.enabled,type:r?.afterQuickPushAction?.type===`workflow`?`workflow`:`command`,refId:String(r?.afterQuickPushAction?.refId||``).trim()},r.isStandardCommit!==void 0&&(k.value=!!r.isStandardCommit),r.skipHooks!==void 0&&(A.value=!!r.skipHooks),r.autoQuickPushOnEnter!==void 0&&(j.value=!!r.autoQuickPushOnEnter),r.autoSetDefaultMessage!==void 0&&(O.value=!!r.autoSetDefaultMessage),r.autoClosePushModal!==void 0&&(D.value=!!r.autoClosePushModal),r.pullBeforePush!==void 0&&(M.value=!!r.pullBeforePush),Array.isArray(r.models)&&(F.value=r.models),Number.isFinite(Number(r.aiMaxToolIterations))&&Number(r.aiMaxToolIterations)>0&&(I.value=Math.floor(Number(r.aiMaxToolIterations))),h(r.taskExecutor)&&(L.value=r.taskExecutor),typeof r.notifyOnTaskDone==`boolean`&&(R.value=r.notifyOnTaskDone),typeof r.notifySoundOnTaskDone==`boolean`&&(z.value=r.notifySoundOnTaskDone),r.theme&&[`light`,`dark`,`auto`].includes(r.theme)&&(N.value=r.theme,U(r.theme)),r.locale&&[`zh-CN`,`en-US`].includes(r.locale)){P.value=r.locale,d(r.locale);let e=y();e.currentLocale=r.locale}if(r.currentDirectory&&(T.value=r.currentDirectory),r.ui==null){let e=e=>{try{return localStorage.getItem(e)}catch{return null}},t={},n=e(`zen-gitsync-layout-left-ratio`),r=e(`zen-gitsync-layout-mid-ratio`),i=e(`zen-gitsync-layout-right-ratio`),a=e(`zen-gitsync-layout-top-ratio`);if(n||r||i||a){let e=(e,t)=>{let n=e==null?NaN:parseFloat(e);return Number.isFinite(n)?n:t};t.layout={leftRatio:e(n,B.layout.leftRatio),midRatio:e(r,B.layout.midRatio),rightRatio:e(i,B.layout.rightRatio),topRatio:e(a,B.layout.topRatio)}}let o=e(`zen-gitsync-file-list-view-mode`);(o===`list`||o===`tree`)&&(t.fileListViewMode=o);let s=e(`zen-gitsync-filediff-ratio`)??e(`fileDiff.splitPercent`);if(s!=null){let e=parseFloat(s);Number.isFinite(e)&&(t.fileDiffSplitPercent=Math.min(85,Math.max(15,e)))}let c=e(`useTerminal`),l=e(`isConsoleExpanded`),u=e(`showTerminalSessions`),d=e(`zen-gitsync-commandconsole-ratio`);if(c!==null||l!==null||u!==null||d!=null){let e=d==null?NaN:parseFloat(d);t.commandConsole={useTerminal:c!==`false`,expanded:l!==`false`,showTerminalSessions:u==null||u===`true`,splitPercent:Number.isFinite(e)?Math.min(85,Math.max(15,e)):B.commandConsole.splitPercent}}let f=e(`zen-gitsync-editor-auto-save`);f!=null&&(t.editorAutoSave=f===`true`),Object.keys(t).length>0&&(V.value={...V.value,...t}),Object.keys(t).length>0&&X(t,{immediate:!0}).catch(e=>{console.error(`迁移 UI 设置到文件失败:`,e)});try{[`zen-gitsync-theme`,`zen-gitsync-locale`,`zen-gitsync-editor-auto-save`,`zen-gitsync-file-list-view-mode`,`zen-gitsync-filediff-ratio`,`fileDiff.splitPercent`,`isConsoleExpanded`,`useTerminal`,`showTerminalSessions`,`zen-gitsync-commandconsole-ratio`,`zen-gitsync-layout-left-ratio`,`zen-gitsync-layout-mid-ratio`,`zen-gitsync-layout-right-ratio`,`zen-gitsync-layout-top-ratio`,`locale`].forEach(e=>localStorage.removeItem(e))}catch{}}else{let e=r.ui.layoutsByProject&&typeof r.ui.layoutsByProject==`object`&&!Array.isArray(r.ui.layoutsByProject)?r.ui.layoutsByProject:{},t={};for(let[n,r]of Object.entries(e))if(r&&typeof r==`object`&&!Array.isArray(r)){let e=r;t[n]={leftRatio:Number.isFinite(Number(e.leftRatio))?Number(e.leftRatio):B.layout.leftRatio,midRatio:Number.isFinite(Number(e.midRatio))?Number(e.midRatio):B.layout.midRatio,rightRatio:Number.isFinite(Number(e.rightRatio))?Number(e.rightRatio):B.layout.rightRatio,topRatio:Number.isFinite(Number(e.topRatio))?Number(e.topRatio):B.layout.topRatio}}let n=r.ui.aiDiffSummaryByProject&&typeof r.ui.aiDiffSummaryByProject==`object`&&!Array.isArray(r.ui.aiDiffSummaryByProject)?r.ui.aiDiffSummaryByProject:{},i={};for(let[e,t]of Object.entries(n))typeof t==`boolean`&&(i[e]=t);let a=r.ui.editorWorkspaceByProject&&typeof r.ui.editorWorkspaceByProject==`object`&&!Array.isArray(r.ui.editorWorkspaceByProject)?r.ui.editorWorkspaceByProject:{},o={},s=e=>Array.isArray(e)?e.filter(e=>typeof e==`string`&&e.length>0):[];for(let[e,t]of Object.entries(a)){if(!t||typeof t!=`object`||Array.isArray(t))continue;let n=t,r=s(n.tabs).slice(0,40);o[e]={expandedDirs:s(n.expandedDirs).slice(0,200),tabs:r,activeTab:typeof n.activeTab==`string`&&r.includes(n.activeTab)?n.activeTab:null}}let c=typeof r.ui.mindmapDir==`string`?r.ui.mindmapDir.trim():``,l=[],u=new Set,d=Array.isArray(r.ui.mindmapDirs)?r.ui.mindmapDirs:[];for(let e of d){if(typeof e!=`string`)continue;let t=e.trim();if(!t)continue;let n=t.toLowerCase();u.has(n)||(u.add(n),l.push(t))}l.length===0&&c&&l.push(c);let f={...B.layout,...r.ui.layout||{}};V.value={layout:f,layoutsByProject:t,aiDiffSummaryByProject:i,fileListViewMode:r.ui.fileListViewMode===`tree`?`tree`:`list`,fileDiffSplitPercent:Number.isFinite(Number(r.ui.fileDiffSplitPercent))?Math.min(85,Math.max(15,Number(r.ui.fileDiffSplitPercent))):B.fileDiffSplitPercent,diffPreviewSplitPercent:Number.isFinite(Number(r.ui.diffPreviewSplitPercent))?Math.min(85,Math.max(25,Number(r.ui.diffPreviewSplitPercent))):B.diffPreviewSplitPercent,commandConsole:{expanded:typeof r.ui.commandConsole?.expanded==`boolean`?r.ui.commandConsole.expanded:B.commandConsole.expanded,useTerminal:typeof r.ui.commandConsole?.useTerminal==`boolean`?r.ui.commandConsole.useTerminal:B.commandConsole.useTerminal,showTerminalSessions:typeof r.ui.commandConsole?.showTerminalSessions==`boolean`?r.ui.commandConsole.showTerminalSessions:B.commandConsole.showTerminalSessions,splitPercent:Number.isFinite(Number(r.ui.commandConsole?.splitPercent))?Math.min(85,Math.max(15,Number(r.ui.commandConsole.splitPercent))):B.commandConsole.splitPercent},editorAutoSave:typeof r.ui.editorAutoSave==`boolean`?r.ui.editorAutoSave:B.editorAutoSave,fileTreeAutoRefresh:typeof r.ui.fileTreeAutoRefresh==`boolean`?r.ui.fileTreeAutoRefresh:B.fileTreeAutoRefresh,editorSidebarWidth:Number.isFinite(Number(r.ui.editorSidebarWidth))?Math.min(400,Math.max(140,Number(r.ui.editorSidebarWidth))):B.editorSidebarWidth,mindmapDirs:l,mindmapDir:c,headerToolsHidden:Array.isArray(r.ui.headerToolsHidden)?r.ui.headerToolsHidden.filter(e=>typeof e==`string`):[],lastTaskExecutor:h(r.ui.lastTaskExecutor)?r.ui.lastTaskExecutor:B.lastTaskExecutor,pickerGlobalSearch:typeof r.ui.pickerGlobalSearch==`boolean`?r.ui.pickerGlobalSearch:B.pickerGlobalSearch,markdownTheme:typeof r.ui.markdownTheme==`string`&&C.includes(r.ui.markdownTheme)?r.ui.markdownTheme:B.markdownTheme,editorWorkspaceByProject:o}}return ne(),E(V.value.markdownTheme),H.value=!0,b.value=!0,console.log(f(`@D50BB:配置信息加载完成`)),W.value}catch(e){return console.error(`加载配置失败:`,e),n.error(`${f(`@D50BB:加载配置失败: `)}${e.message}`),x.value=e.message,null}finally{v.value=!1}}async function K(){try{await fetch(`/api/config/save-commit-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({isStandardCommit:k.value,skipHooks:A.value,autoQuickPushOnEnter:j.value,autoSetDefaultMessage:O.value,autoClosePushModal:D.value,pullBeforePush:M.value})})}catch(e){console.error(`保存提交设置失败:`,e)}}a([k,A,j,O,D,M],()=>{b.value&&K()});let q=null,J={};async function Y(){if(q&&=(clearTimeout(q),null),Object.keys(J).length===0)return;let e=J;J={};try{await fetch(`/api/config/save-ui-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})}catch(e){console.error(`保存 UI 设置失败:`,e)}}async function X(e,t={}){if(H.value){if(t.immediate){Object.assign(J,e),await Y();return}Object.assign(J,e),q&&clearTimeout(q),q=setTimeout(()=>{Y()},300)}}async function oe(e){h(e)&&V.value.lastTaskExecutor!==e&&(V.value.lastTaskExecutor=e,await X({lastTaskExecutor:e},{immediate:!0}))}let se=t(()=>h(V.value.lastTaskExecutor)?V.value.lastTaskExecutor:L.value);async function ce(){V.value.layout={...B.layout};let e=T.value;return e&&(V.value.layoutsByProject={...V.value.layoutsByProject,[e]:{...V.value.layout}}),await X({layoutsByProject:V.value.layoutsByProject},{immediate:!0}),V.value.layout}async function le(e){let t=T.value;t&&(V.value.aiDiffSummaryByProject={...V.value.aiDiffSummaryByProject,[t]:e},await X({aiDiffSummaryByProject:{[t]:e}},{immediate:!0}))}async function ue(e){if(!Number.isFinite(e))return;let t=Math.min(400,Math.max(140,e));V.value.editorSidebarWidth=t,await X({editorSidebarWidth:t})}function de(e){let t=T.value;if(!t)return;let n=e.tabs.slice(0,40);V.value.editorWorkspaceByProject={...V.value.editorWorkspaceByProject,[t]:{expandedDirs:e.expandedDirs.slice(0,200),tabs:n,activeTab:e.activeTab&&n.includes(e.activeTab)?e.activeTab:null}},X({editorWorkspaceByProject:V.value.editorWorkspaceByProject})}function fe(e){let t=e??T.value;return t?V.value.editorWorkspaceByProject[t]??null:null}a(()=>V.value.fileListViewMode,e=>{H.value&&X({fileListViewMode:e})}),a(()=>V.value.fileDiffSplitPercent,e=>{H.value&&X({fileDiffSplitPercent:e})}),a(()=>V.value.diffPreviewSplitPercent,e=>{H.value&&e!=null&&X({diffPreviewSplitPercent:e})}),a(()=>V.value.editorAutoSave,e=>{H.value&&X({editorAutoSave:e})}),a(()=>V.value.fileTreeAutoRefresh,e=>{H.value&&X({fileTreeAutoRefresh:e})}),a(()=>V.value.headerToolsHidden,e=>{H.value&&Array.isArray(e)&&X({headerToolsHidden:e})}),a(()=>V.value.mindmapDirs,e=>{H.value&&Array.isArray(e)&&X({mindmapDirs:e})}),a(()=>V.value.pickerGlobalSearch,e=>{H.value&&X({pickerGlobalSearch:e})});let pe=t(()=>V.value.markdownTheme);async function me(e){let t=C.includes(e)?e:B.markdownTheme;return V.value.markdownTheme=t,E(t),await X({markdownTheme:t},{immediate:!0}),t}a(()=>V.value.markdownTheme,e=>{H.value&&typeof e==`string`&&e&&(E(e),X({markdownTheme:e}))}),a(()=>V.value.layout,e=>{if(!H.value)return;let t=T.value;t&&(V.value.layoutsByProject={...V.value.layoutsByProject,[t]:e},X({layoutsByProject:V.value.layoutsByProject}))},{deep:!0}),a(()=>V.value.commandConsole,e=>{H.value&&X({commandConsole:e})},{deep:!0}),typeof window<`u`&&window.addEventListener(`beforeunload`,()=>{Y()});async function he(t){try{let r=await(await fetch(`/api/config/saveDefaultMessage`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({defaultCommitMessage:t})})).json();return r.success?(e.value=t,n.success(f(`@D50BB:默认提交信息已保存`)),!0):(n.error(`${f(`@D50BB:保存失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存失败: `)}${e.message}`),!1}}async function ge(e){try{let t=await(await fetch(`/api/config/save-after-quick-push-action`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({afterQuickPushAction:{enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()}})})).json();return t.success?(_.value={enabled:!!e?.enabled,type:e?.type===`workflow`?`workflow`:`command`,refId:String(e?.refId||``).trim()},!0):(n.error(`保存提交后启动项失败: ${t.error}`),!1)}catch(e){return n.error(`保存提交后启动项失败: ${e.message}`),!1}}async function _e(e,t){try{let r=await(await fetch(`/api/config/save-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return r.success?(t===`description`?i.value.includes(e)||i.value.push(e):t===`scope`?o.value.includes(e)||o.value.push(e):t===`message`?s.value.includes(e)||s.value.push(e):t===`command`&&(c.value.includes(e)||c.value.push(e)),n.success(f(`@D50BB:模板已保存`)),!0):(n.error(`${f(`@D50BB:保存模板失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存模板失败: `)}${e.message}`),!1}}async function ve(e,t){try{let r=await(await fetch(`/api/config/delete-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return r.success?(t===`description`?i.value=i.value.filter(t=>t!==e):t===`scope`?o.value=o.value.filter(t=>t!==e):t===`message`?s.value=s.value.filter(t=>t!==e):t===`command`&&(c.value=c.value.filter(t=>t!==e)),n.success(f(`@D50BB:模板已删除`)),!0):(n.error(`${f(`@D50BB:删除模板失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:删除模板失败: `)}${e.message}`),!1}}async function ye(e,t,r){try{let a=await(await fetch(`/api/config/update-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({oldTemplate:e,newTemplate:t,type:r})})).json();if(a.success){if(r===`description`){let n=i.value.indexOf(e);n!==-1&&(i.value[n]=t)}else if(r===`scope`){let n=o.value.indexOf(e);n!==-1&&(o.value[n]=t)}else if(r===`message`){let n=s.value.indexOf(e);n!==-1&&(s.value[n]=t)}else if(r===`command`){let n=c.value.indexOf(e);n!==-1&&(c.value[n]=t)}return n.success(f(`@D50BB:模板已更新`)),!0}return n.error(`${f(`@D50BB:更新模板失败: `)}${a.error}`),!1}catch(e){return n.error(`${f(`@D50BB:更新模板失败: `)}${e.message}`),!1}}async function be(e,t){try{let r=await(await fetch(`/api/config/pin-template`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({template:e,type:t})})).json();return r.success?(t===`description`?(i.value=i.value.filter(t=>t!==e),i.value.unshift(e)):t===`scope`?(o.value=o.value.filter(t=>t!==e),o.value.unshift(e)):t===`message`?(s.value=s.value.filter(t=>t!==e),s.value.unshift(e)):t===`command`&&(c.value=c.value.filter(t=>t!==e),c.value.unshift(e)),n.success(f(`@D50BB:模板已置顶`)),!0):(n.error(`${f(`@D50BB:置顶模板失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:置顶模板失败: `)}${e.message}`),!1}}async function Z(){try{let e=await(await fetch(`/api/locked-files`)).json();return e.success?(l.value=e.lockedFiles||[],e.lockedFiles):(n.error(`${f(`@D50BB:加载锁定文件列表失败: `)}${e.error}`),[])}catch(e){return console.error(`加载锁定文件列表失败:`,e),n.error(`${f(`@D50BB:加载锁定文件列表失败: `)}${e.message}`),[]}}async function xe(e){try{let t=await(await fetch(`/api/lock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?(await Z(),n.success(`${f(`@D50BB:文件已锁定: `)}${e}`),!0):(n.error(`${f(`@D50BB:锁定文件失败: `)}${t.error}`),!1)}catch(e){return console.error(`锁定文件失败:`,e),n.error(`${f(`@D50BB:锁定文件失败: `)}${e.message}`),!1}}async function Q(e){try{let t=await(await fetch(`/api/unlock-file`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?(await Z(),n.success(`${f(`@D50BB:文件已解锁: `)}${e}`),!0):(n.error(`${f(`@D50BB:解锁文件失败: `)}${t.error}`),!1)}catch(e){return console.error(`解锁文件失败:`,e),n.error(`${f(`@D50BB:解锁文件失败: `)}${e.message}`),!1}}async function Se(e){try{let t=await(await fetch(`/api/check-file-lock`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e})})).json();return t.success?t.isLocked:(console.error(`检查文件锁定状态失败:`,t.error),!1)}catch(e){return console.error(`检查文件锁定状态失败:`,e),!1}}async function Ce(e){try{let t=await(await fetch(`/api/config/save-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({command:e})})).json();return t.success?(await G(!0),n.success(f(`@CMD01:命令已保存`)),!0):(n.error(`${f(`@CMD01:保存命令失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@CMD01:保存命令失败: `)}${e.message}`),!1}}async function we(e){try{let t=await(await fetch(`/api/config/delete-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return t.success?(await G(!0),n.success(f(`@CMD01:命令已删除`)),!0):(n.error(`${f(`@CMD01:删除命令失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@CMD01:删除命令失败: `)}${e.message}`),!1}}async function Te(e,t){try{let r=await(await fetch(`/api/config/update-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,command:t})})).json();return r.success?(await G(!0),n.success(f(`@CMD01:命令已更新`)),!0):(n.error(`${f(`@CMD01:更新命令失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@CMD01:更新命令失败: `)}${e.message}`),!1}}async function Ee(e){try{let t=await(await fetch(`/api/config/pin-custom-command`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return t.success?(await G(!0),!0):(n.error(t.error),!1)}catch(e){return n.error(e.message),!1}}async function De(e){try{let t=await(await fetch(`/api/config/save-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({orchestration:e})})).json();return t.success?(await G(!0),n.success(f(`@ORCH:编排已保存`)),t.orchestration||null):(n.error(`${f(`@ORCH:保存编排失败: `)}${t.error}`),null)}catch(e){return n.error(`${f(`@ORCH:保存编排失败: `)}${e.message}`),null}}async function Oe(e){try{let t=await(await fetch(`/api/config/delete-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e})})).json();return t.success?(await G(!0),n.success(f(`@ORCH:编排已删除`)),!0):(n.error(`${f(`@ORCH:删除编排失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@ORCH:删除编排失败: `)}${e.message}`),!1}}async function ke(e,t){try{let r=await(await fetch(`/api/config/update-orchestration`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:e,orchestration:t})})).json();return r.success?(await G(!0),n.success(f(`@ORCH:编排已更新`)),!0):(n.error(`${f(`@ORCH:更新编排失败: `)}${r.error}`),!1)}catch(e){return n.error(`${f(`@ORCH:更新编排失败: `)}${e.message}`),!1}}async function Ae(e,t){try{let r=await(await fetch(`/api/config/save-startup-items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({startupItems:e,startupAutoRun:t===void 0?g.value:t})})).json();return r.success?(m.value=e,t!==void 0&&(g.value=t),!0):(n.error(`保存启动项失败: ${r.error}`),!1)}catch(e){return n.error(`保存启动项失败: ${e.message}`),!1}}async function je(e){try{let t=await(await fetch(`/api/config/save-ai-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({aiMaxToolIterations:e.aiMaxToolIterations})})).json();return t.success?(I.value=Number(t.aiMaxToolIterations)||e.aiMaxToolIterations,!0):(n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存 AI 设置失败: `)}${e.message}`),!1}}async function Me(e){try{let t=await(await fetch(`/api/config/save-models`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:e})})).json();return t.success?(F.value=e,!0):(n.error(`${f(`@D50BB:保存模型失败: `)}${t.error}`),!1)}catch(e){return n.error(`${f(`@D50BB:保存模型失败: `)}${e.message}`),!1}}async function $(e){try{let t=await(await fetch(`/api/config/save-general-settings`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)})).json();if(t.success){if(e.theme&&(N.value=e.theme,U(e.theme)),e.locale){P.value=e.locale,d(e.locale);let t=y();t.currentLocale=e.locale}return h(e.taskExecutor)&&(L.value=e.taskExecutor),typeof e.notifyOnTaskDone==`boolean`&&(R.value=e.notifyOnTaskDone),typeof e.notifySoundOnTaskDone==`boolean`&&(z.value=e.notifySoundOnTaskDone),!0}return n.error(`保存通用设置失败: ${t.error}`),!1}catch(e){return n.error(`保存通用设置失败: ${e.message}`),!1}}return{models:F,aiMaxToolIterations:I,taskExecutor:L,resolvedTaskExecutor:se,setLastTaskExecutor:oe,notifyOnTaskDone:R,notifySoundOnTaskDone:z,defaultCommitMessage:e,descriptionTemplates:i,scopeTemplates:o,messageTemplates:s,commandTemplates:c,lockedFiles:l,customCommands:u,orchestrations:p,startupItems:m,startupAutoRun:g,afterQuickPushAction:_,isLoading:v,isLoaded:b,configLoadError:x,configFilePath:w,hasConfigLoadError:ie,currentDirectory:T,config:W,autoClosePushModal:D,autoSetDefaultMessage:O,isStandardCommit:k,skipHooks:A,autoQuickPushOnEnter:j,pullBeforePush:M,theme:N,locale:P,ui:V,isUiLoaded:H,aiDiffSummaryEnabled:te,markdownTheme:pe,loadConfig:G,setCurrentDirectory:ee,openSystemConfigFile:ae,saveTemplate:_e,saveModels:Me,saveAiSettings:je,saveGeneralSettings:$,saveUiSettings:X,setAiDiffSummaryEnabled:le,setEditorSidebarWidth:ue,saveEditorWorkspace:de,getEditorWorkspace:fe,setMarkdownTheme:me,resetUiLayout:ce,applyTheme:U,toggleTheme:re,saveDefaultMessage:he,deleteTemplate:ve,updateTemplate:ye,pinTemplate:be,loadLockedFiles:Z,lockFile:xe,unlockFile:Q,isFileLocked:Se,saveCustomCommand:Ce,deleteCustomCommand:we,updateCustomCommand:Te,pinCustomCommand:Ee,saveOrchestration:De,deleteOrchestration:Oe,updateOrchestration:ke,saveStartupItems:Ae,saveAfterQuickPushAction:ge,saveCommitSettings:K}});export{h as a,m as i,T as n,g as o,y as r,D as t};