mdk-skills 2.4.4 → 2.4.6

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdk-skills",
3
- "version": "2.4.4",
3
+ "version": "2.4.6",
4
4
  "description": "mdk-engineer - 沉稳靠谱的前端开发助手 Claude Skills 配置包,一键注入 .claude/ 技能目录和 CLAUDE.md 人设配置",
5
5
  "author": "XiaoMa",
6
6
  "license": "MIT",
@@ -0,0 +1 @@
1
+ *{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:#f5f7fa;height:100%}body{overflow-y:auto}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}.app-layout{flex-direction:column;min-height:100vh;padding-top:56px;display:flex}.app-header{z-index:100;background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;height:56px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.header-inner{justify-content:space-between;align-items:center;width:100%;display:flex}.header-left{align-items:center;gap:32px;display:flex}.logo{color:#1a1a1a;white-space:nowrap;font-size:18px;font-weight:700}.app-content{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px}.markdown-content{color:#333;word-wrap:break-word;font-size:14px;line-height:1.7;overflow:auto}.markdown-content h1{border-bottom:1px solid #eee;margin:20px 0 12px;padding-bottom:8px;font-size:22px;font-weight:700}.markdown-content h2{border-bottom:1px solid #eee;margin:18px 0 10px;padding-bottom:6px;font-size:18px;font-weight:700}.markdown-content h3{margin:16px 0 8px;font-size:16px;font-weight:600}.markdown-content h4{margin:14px 0 6px;font-size:14px;font-weight:600}.markdown-content h5,.markdown-content h6{margin:12px 0 6px;font-size:13px;font-weight:600}.markdown-content p{margin:8px 0}.markdown-content ul,.markdown-content ol{margin:8px 0;padding-left:24px}.markdown-content li{margin:4px 0}.markdown-content blockquote{color:#555;background:#f0f7ff;border-left:4px solid #2080f0;margin:10px 0;padding:8px 16px}.markdown-content blockquote p{margin:4px 0}.markdown-content a{color:#2080f0;text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content hr{border:none;border-top:1px solid #e0e0e0;margin:16px 0}.markdown-content table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}.markdown-content th,.markdown-content td{text-align:left;border:1px solid #e0e0e0;padding:8px 12px}.markdown-content th{background:#f5f7fa;font-weight:600}.markdown-content tr:nth-child(2n) td{background:#fafafa}.markdown-content img{border-radius:4px;max-width:100%;margin:8px 0}.markdown-content code{color:#d63384;background:#f0f0f0;border-radius:3px;padding:2px 6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px}.markdown-content pre{border:1px solid #e8e8e8;border-radius:6px;margin:12px 0;padding:0;position:relative;overflow:hidden}.markdown-content pre code{color:#333;tab-size:2;background:#f8f9fa;padding:14px 16px;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.markdown-content pre .copy-btn{color:#999;cursor:pointer;opacity:0;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:3px 8px;font-size:11px;transition:opacity .2s;position:absolute;top:6px;right:6px}.readme-fold{border:1px solid #e5e7eb;border-radius:6px;margin-bottom:20px;overflow:hidden}.fold-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafafa;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.fold-header:hover{background:#f0f0f0}.fold-arrow{color:#999;font-size:11px;transition:transform .2s}.fold-arrow.open{transform:rotate(90deg)}.fold-body{padding:0 16px 16px}.markdown-content pre:hover .copy-btn{opacity:1}.markdown-content pre .copy-btn:hover{color:#2080f0;border-color:#2080f0}.header-right{align-items:center;gap:8px;display:flex}html,body,#app,.app-header,.app-content,.logo,.readme-fold,.fold-header,.fold-body,.markdown-content,[class*=n-]{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}[data-theme=dark] html,[data-theme=dark] body,[data-theme=dark] #app{background:#1e1e2e!important}[data-theme=dark] .app-header{background:#1e1e2e!important;border-bottom-color:#363650!important}[data-theme=dark] .app-content{background:0 0!important}[data-theme=dark] .logo{color:#e4e4ef!important}[data-theme=dark] .header-status-item{color:#a6adc8!important}[data-theme=dark] .header-status-item.clickable:hover{color:#6a8cff!important}[data-theme=dark] .header-status-divider{background:#363650!important}[data-theme=dark] .readme-fold{border-color:#363650!important}[data-theme=dark] .fold-header{color:#e4e4ef!important;background:#282840!important}[data-theme=dark] .fold-header:hover{background:#323250!important}[data-theme=dark] .fold-body{background:#282840!important}[data-theme=dark] .markdown-content{color:#cdd6f4!important}[data-theme=dark] .markdown-content h1,[data-theme=dark] .markdown-content h2{color:#e4e4ef!important;border-bottom-color:#363650!important}[data-theme=dark] .markdown-content h3,[data-theme=dark] .markdown-content h4{color:#e4e4ef!important}[data-theme=dark] .markdown-content code{color:#e06c75!important;background:#2a2a42!important}[data-theme=dark] .markdown-content pre{border-color:#363650!important}[data-theme=dark] .markdown-content pre code{color:#cdd6f4!important;background:#1a1a2a!important}[data-theme=dark] .markdown-content blockquote{color:#a6adc8!important;background:#282840!important;border-left-color:#6a8cff!important}[data-theme=dark] .markdown-content a{color:#6a8cff!important}[data-theme=dark] .markdown-content th{background:#282840!important}[data-theme=dark] .markdown-content td{border-color:#363650!important}[data-theme=dark] .markdown-content tr:nth-child(2n) td{background:#24243a!important}[data-theme=dark] .markdown-content hr{border-top-color:#363650!important}[data-theme=dark] .markdown-content img{filter:brightness(.8)!important}[data-theme=dark] .markdown-content pre .copy-btn{color:#6c7086!important;background:#2a2a42!important;border-color:#363650!important}[data-theme=dark] .markdown-content pre .copy-btn:hover{color:#6a8cff!important;border-color:#6a8cff!important}[data-theme=dark] .hljs-keyword,[data-theme=dark] .hljs-selector-tag,[data-theme=dark] .hljs-built_in{color:#c678dd!important}[data-theme=dark] .hljs-string,[data-theme=dark] .hljs-addition{color:#98c379!important}[data-theme=dark] .hljs-number,[data-theme=dark] .hljs-literal{color:#d19a66!important}[data-theme=dark] .hljs-comment{color:#5c6370!important}[data-theme=dark] .hljs-title,[data-theme=dark] .hljs-section{color:#61afef!important}[data-theme=dark] .hljs-attr,[data-theme=dark] .hljs-attribute,[data-theme=dark] .hljs-selector-class,[data-theme=dark] .hljs-variable{color:#e06c75!important}[data-theme=dark] .hljs-type,[data-theme=dark] .hljs-meta{color:#e5c07b!important}[data-theme=dark] .hljs-deletion{color:#e06c75!important}[data-theme=dark] .hljs-bullet,[data-theme=dark] .hljs-link{color:#6a8cff!important}[data-theme=dark] .hljs-emphasis{font-style:italic!important}[data-theme=dark] .hljs-strong{font-weight:700!important}[data-theme=dark] .page-header h2{color:#e4e4ef!important}[data-theme=dark] .scene-desc{color:#a6adc8!important}[data-theme=dark] .diff-hint,[data-theme=dark] .diff-label{color:#cdd6f4!important}[data-theme=dark] .skill-preview-item{color:#b0b6cc!important}.fade-enter-active,.fade-leave-active{transition:opacity .2s,transform .2s}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}.header-status{align-items:center;gap:8px;margin-right:8px;display:flex}.header-status-item{color:#666;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.header-status-item.clickable{cursor:pointer}.header-status-item.clickable:hover{color:#2080f0}.header-status-divider{background:#e0e0e0;width:1px;height:14px}.skill-card[data-v-ef4accd3]{cursor:pointer;transition:box-shadow .2s}.skill-card[data-v-ef4accd3]:hover{box-shadow:0 2px 8px #00000014}.skill-meta[data-v-ef4accd3]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.skill-version[data-v-ef4accd3]{color:#888;font-family:monospace;font-size:12px}.skill-desc[data-v-ef4accd3]{color:#666;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}[data-theme=dark] .skill-version{color:#9399b2!important}[data-theme=dark] .skill-desc{color:#a6adc8!important}.modal-overlay[data-v-36195a18]{z-index:2000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-36195a18]{background:#fff;border-radius:8px;flex-direction:column;width:90%;max-height:85vh;display:flex;box-shadow:0 8px 32px #0000001f}.modal-header[data-v-36195a18]{justify-content:space-between;align-items:center;padding:14px 20px 0;display:flex}.modal-title[data-v-36195a18]{color:#333;font-size:16px;font-weight:600}.modal-close[data-v-36195a18]{color:#999;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:20px;line-height:1;transition:background .15s,color .15s;display:flex}.modal-close[data-v-36195a18]:hover{color:#333;background:#f0f0f0}.modal-body[data-v-36195a18]{padding:16px 20px;overflow-y:auto}.modal-footer[data-v-36195a18]{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.modal-fade-enter-active[data-v-36195a18]{transition:opacity .2s}.modal-fade-leave-active[data-v-36195a18]{transition:opacity .15s}.modal-fade-enter-from[data-v-36195a18],.modal-fade-leave-to[data-v-36195a18]{opacity:0}[data-theme=dark] .modal-card{background:#2a2a42!important;box-shadow:0 8px 32px #00000080!important}[data-theme=dark] .modal-title{color:#e4e4ef!important}[data-theme=dark] .modal-close{color:#6c7086!important}[data-theme=dark] .modal-close:hover{color:#cdd6f4!important;background:#323250!important}[data-theme=dark] .modal-footer{border-top-color:#363650!important}[data-theme=dark] .modal-overlay{background:#000000a6!important}.dashboard[data-v-4c899b15]{overflow-anchor:auto}.page-header[data-v-4c899b15]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.page-header h2[data-v-4c899b15]{font-size:20px;font-weight:600}.header-actions[data-v-4c899b15]{align-items:center;gap:8px;display:flex}.tag-filter[data-v-4c899b15]{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;display:flex}.search-bar[data-v-4c899b15]{margin-bottom:12px}.detail-status[data-v-4c899b15]{justify-content:center;padding:40px 0;display:flex}.detail-body[data-v-4c899b15]{max-height:65vh;overflow-y:auto}.edit-panel[data-v-4c899b15]{margin-bottom:4px}.edit-row[data-v-4c899b15]{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.edit-label[data-v-4c899b15]{color:#888;flex-shrink:0;width:50px;font-size:13px;line-height:30px}.update-count-hint[data-v-4c899b15]{color:#e68a00;margin-left:8px;font-family:monospace;font-size:12px}.pull-modal-body[data-v-4c899b15]{min-height:100px}.pull-status[data-v-4c899b15]{color:#666;justify-content:center;align-items:center;gap:10px;padding:24px 0;font-size:13px;display:flex}.preview-result[data-v-4c899b15]{margin-top:8px}.pull-search-input[data-v-4c899b15]{margin-bottom:8px}.preview-info[data-v-4c899b15]{color:#555;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.preview-list[data-v-4c899b15]{background:#00000005;border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;max-height:300px;margin-bottom:14px;padding:10px;display:grid;overflow-y:auto}.preview-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.pull-section[data-v-4c899b15]{margin-top:12px}.pull-input-row[data-v-4c899b15]{gap:8px;margin-bottom:8px;display:flex}.pull-input-row .n-input[data-v-4c899b15]{flex:1}.pull-error[data-v-4c899b15]{margin-bottom:8px}.pull-result[data-v-4c899b15]{margin-top:8px}.pull-result-line[data-v-4c899b15]{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;font-size:13px;display:flex}.pull-result-label[data-v-4c899b15]{color:#888;flex-shrink:0}.pull-result-hint[data-v-4c899b15]{color:#999;font-size:12px}.install-panel[data-v-4c899b15]{background:#00000005;border-radius:6px;margin-top:12px;padding:12px}.install-panel-label[data-v-4c899b15]{color:#666;margin-bottom:8px;font-size:13px}.install-check-list[data-v-4c899b15]{margin-bottom:10px}.install-btn[data-v-4c899b15]{float:right}.edit-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.alias-edit-trigger[data-v-4c899b15]{cursor:pointer;opacity:0;vertical-align:middle;align-items:center;transition:opacity .15s;display:inline-flex}.group-header:hover .alias-edit-trigger[data-v-4c899b15]{opacity:1}.alias-edit-icon[data-v-4c899b15]{color:#999}.alias-edit-inline[data-v-4c899b15]{align-items:center;display:inline-flex}.group-menu-btn[data-v-4c899b15]{flex-shrink:0}.source-manager[data-v-4c899b15]{background:#00000005;border-radius:6px;margin-top:8px;padding:10px}.source-manager-header[data-v-4c899b15]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.source-manager-title[data-v-4c899b15]{font-size:13px;font-weight:600}.source-manager-list[data-v-4c899b15]{flex-direction:column;gap:6px;max-height:240px;display:flex;overflow-y:auto}.source-manager-row[data-v-4c899b15]{align-items:center;gap:8px;display:flex}.source-manager-url[data-v-4c899b15]{color:#888;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.source-manager-empty[data-v-4c899b15]{color:#999;text-align:center;padding:12px 0;font-size:12px}.source-manager-actions[data-v-4c899b15]{justify-content:flex-end;margin-top:8px;display:flex}.installed-tag[data-v-4c899b15]{margin-left:4px}.skill-group[data-v-4c899b15]{margin-bottom:4px}.group-header[data-v-4c899b15]{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;padding:8px 4px;display:flex}.group-header[data-v-4c899b15]:hover{background:#00000008}.fold-arrow[data-v-4c899b15]{color:#999;flex-shrink:0;font-size:10px;transition:transform .2s}.fold-arrow.open[data-v-4c899b15]{transform:rotate(90deg)}.group-label[data-v-4c899b15]{color:inherit;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.group-count[data-v-4c899b15]{color:#999;flex-shrink:0;font-size:12px}.group-update-btn[data-v-4c899b15]{flex-shrink:0}.group-body[data-v-4c899b15]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;display:grid}.readme-fold[data-v-4c899b15]{border-top:1px solid #80808026;margin-top:24px;padding-top:12px}.setup-card[data-v-4c899b15]{margin-bottom:20px}.setup-card-content[data-v-4c899b15]{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.setup-icon[data-v-4c899b15]{margin-bottom:4px}.setup-title[data-v-4c899b15]{margin:0;font-size:18px;font-weight:600}.setup-desc[data-v-4c899b15]{color:#666;max-width:420px;margin:0;font-size:13px;line-height:1.6}.setup-desc code[data-v-4c899b15]{background:#0000000f;border-radius:3px;padding:1px 6px;font-size:12px}.skill-group.group-remote[data-v-4c899b15]{border-left:3px solid #2080f0;margin-bottom:12px;padding-left:8px}.skill-group.group-local[data-v-4c899b15]{border-left:3px solid #18a058;margin-bottom:12px;padding-left:8px}.group-indicator[data-v-4c899b15]{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.indicator-remote[data-v-4c899b15]{background:#2080f0}.indicator-local[data-v-4c899b15]{background:#18a058}.source-info[data-v-4c899b15]{margin-bottom:4px}.source-row[data-v-4c899b15]{align-items:center;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.source-label[data-v-4c899b15]{color:#888;flex-shrink:0;width:70px}.source-value[data-v-4c899b15]{word-break:break-all}.local-tag[data-v-4c899b15]{color:#2e7d32;background:#e8f5e9;border-radius:3px;padding:1px 8px;font-size:12px;display:inline-block}.path-text[data-v-4c899b15]{color:#666;font-family:monospace;font-size:12px}.source-actions[data-v-4c899b15]{gap:8px;margin-top:8px;display:flex}.local-hint[data-v-4c899b15]{color:#999;background:#00000005;border-radius:4px;margin-top:8px;padding:8px;font-size:12px;line-height:1.5}.siblings-body[data-v-4c899b15]{min-height:60px}.siblings-desc[data-v-4c899b15]{margin-bottom:12px;font-size:13px;line-height:1.6}.siblings-list[data-v-4c899b15]{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.siblings-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.batch-modal-body[data-v-4c899b15]{min-height:60px}.batch-desc[data-v-4c899b15]{margin-bottom:16px;font-size:13px;line-height:1.6}.batch-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.batch-executing[data-v-4c899b15]{color:#666;justify-content:center;align-items:center;gap:12px;padding:24px 0;font-size:13px;display:flex}.batch-result[data-v-4c899b15]{margin-bottom:16px}.batch-result-line[data-v-4c899b15]{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.batch-result-label[data-v-4c899b15]{color:#888;flex-shrink:0}[data-theme=dark] .edit-label,[data-theme=dark] .source-label,[data-theme=dark] .pull-result-label,[data-theme=dark] .batch-result-label{color:#9399b2!important}[data-theme=dark] .update-count-hint{color:#fbbf24!important}[data-theme=dark] .pull-status,[data-theme=dark] .batch-executing,[data-theme=dark] .install-panel-label,[data-theme=dark] .preview-info{color:#a6adc8!important}[data-theme=dark] .pull-result-hint,[data-theme=dark] .group-count,[data-theme=dark] .local-hint{color:#6c7086!important}[data-theme=dark] .path-text{color:#a6adc8!important}[data-theme=dark] .preview-list,[data-theme=dark] .install-panel,[data-theme=dark] .local-hint{background:#ffffff08!important}[data-theme=dark] .group-header:hover{background:#ffffff0a!important}[data-theme=dark] .local-tag{color:#4ade80!important;background:#4ade8026!important}[data-theme=dark] .skill-group.group-remote{border-left-color:#6a8cff!important}[data-theme=dark] .skill-group.group-local{border-left-color:#4ade80!important}[data-theme=dark] .indicator-remote{background:#6a8cff!important}[data-theme=dark] .indicator-local{background:#4ade80!important}[data-theme=dark] .setup-desc{color:#a6adc8!important}[data-theme=dark] .setup-desc code{background:#ffffff14!important}[data-theme=dark] .readme-fold{border-top-color:#ffffff14!important}[data-theme=dark] .source-manager{background:#ffffff08!important}[data-theme=dark] .source-manager-url,[data-theme=dark] .alias-edit-icon{color:#6c7086!important}[data-theme=dark] .source-value,[data-theme=dark] .siblings-desc,[data-theme=dark] .batch-desc{color:#cdd6f4!important}[data-theme=dark] .source-manager-title{color:#e4e4ef!important}.page-header[data-v-0795d234]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2[data-v-0795d234]{font-size:20px;font-weight:600}.scene-grid[data-v-0795d234]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:2px;display:grid}.scene-card[data-v-0795d234]{transition:box-shadow .2s}.scene-card.active[data-v-0795d234]{box-shadow:0 0 0 2px #2080f0}.scene-desc[data-v-0795d234]{color:#666;margin:0;font-size:13px}.scene-footer[data-v-0795d234]{justify-content:space-between;align-items:center;display:flex}.hint-text[data-v-0795d234]{color:#999;font-size:12px}.diff-preview[data-v-0795d234]{flex-direction:column;gap:14px;display:flex}.diff-hint[data-v-0795d234]{margin:0 0 4px;font-size:14px}.diff-section[data-v-0795d234]{flex-direction:column;gap:6px;display:flex}.diff-label[data-v-0795d234]{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.diff-tags[data-v-0795d234]{flex-wrap:wrap;gap:4px;display:flex}.skill-preview-list[data-v-0795d234]{flex-direction:column;gap:2px;max-height:240px;display:flex;overflow-y:auto}.skill-preview-item[data-v-0795d234]{padding:2px 0;font-size:13px}.modal-skill-groups[data-v-0795d234]{max-height:50vh;overflow-y:auto}.skill-group[data-v-0795d234]{border:1px solid #eee;border-radius:6px;margin-bottom:4px;overflow:hidden}.skill-group-header[data-v-0795d234]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8f9fa;border-bottom:1px solid #eee;align-items:center;gap:6px;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.skill-group-header[data-v-0795d234]:hover{background:#eef0f4}.fold-arrow[data-v-0795d234]{color:#999;flex-shrink:0;font-size:10px;transition:transform .2s}.fold-arrow.open[data-v-0795d234]{transform:rotate(90deg)}.skill-group-label[data-v-0795d234]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.skill-group-count[data-v-0795d234]{color:#999;flex-shrink:0;font-size:12px}.skill-group-body[data-v-0795d234]{grid-template-columns:repeat(2,1fr);gap:6px;padding:8px 10px;display:grid}.always-apply-grid[data-v-0795d234]{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.batch-actions[data-v-0795d234]{margin-bottom:10px}.search-highlight[data-v-0795d234]{background:#ffd666;border-radius:2px;padding:0 2px}.search-input[data-v-0795d234]{margin-bottom:8px}.executing-state[data-v-0795d234]{flex-direction:column;align-items:center;gap:12px;padding:32px 0;display:flex}.executing-text[data-v-0795d234]{margin:0;font-size:15px;font-weight:600}.executing-hint[data-v-0795d234]{color:#999;margin:0;font-size:13px}.failure-section[data-v-0795d234]{flex-direction:column;gap:6px;margin-top:4px;display:flex}.failure-title[data-v-0795d234]{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.failure-list[data-v-0795d234]{flex-direction:column;gap:4px;display:flex}.failure-item[data-v-0795d234]{background:#fff1f0;border-radius:4px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:13px;display:flex}.failure-name[data-v-0795d234]{font-weight:500}.failure-tip[data-v-0795d234]{color:#999;margin:4px 0 0;font-size:12px}.fail-marker[data-v-0795d234]{margin-left:2px;font-size:12px}.popover-fail-detail[data-v-0795d234]{font-size:13px}.popover-fail-section[data-v-0795d234]{margin-bottom:6px}.popover-fail-section[data-v-0795d234]:last-child{margin-bottom:0}.popover-fail-title[data-v-0795d234]{margin-bottom:3px;font-size:12px;font-weight:600}.popover-fail-item[data-v-0795d234]{color:#555;padding:1px 0 1px 8px;font-size:12px}.pending-confirm-body[data-v-0795d234]{flex-direction:column;gap:6px;display:flex}.pending-confirm-body p[data-v-0795d234]{margin:0;font-size:14px}.pending-confirm-section[data-v-0795d234]{flex-direction:column;gap:2px;display:flex}.pending-confirm-title[data-v-0795d234]{font-size:12px;font-weight:600}.pending-confirm-item[data-v-0795d234]{color:#555;padding:2px 0 2px 12px;font-size:13px}.pending-confirm-hint[data-v-0795d234]{color:#999;margin-top:4px;font-size:13px}[data-theme=dark] .scene-card.active{box-shadow:0 0 0 2px #2080f0!important}[data-theme=dark] .hint-text,[data-theme=dark] .skill-group-count{color:#6c7086!important}[data-theme=dark] .fold-arrow{color:#6c7086!important}[data-theme=dark] .skill-group-label{color:#cdd6f4!important}[data-theme=dark] .skill-group{border-color:#363b4a!important}[data-theme=dark] .skill-group-header{background:#1e2129!important;border-color:#363b4a!important}[data-theme=dark] .skill-group-header:hover{background:#2a2e3a!important}[data-theme=dark] .search-highlight{color:#fff!important;background:#8a6d00!important}[data-theme=dark] .failure-item{background:#d0305026!important}[data-theme=dark] .executing-hint,[data-theme=dark] .failure-tip{color:#6c7086!important}[data-theme=dark] .popover-fail-item,[data-theme=dark] .pending-confirm-item{color:#b0b6cc!important}[data-theme=dark] .pending-confirm-hint{color:#6c7086!important}.page-header[data-v-0c97d90d]{margin-bottom:20px}.page-header h2[data-v-0c97d90d]{font-size:20px;font-weight:600}.section[data-v-0c97d90d]{margin-bottom:20px}.init-alert[data-v-0c97d90d]{margin-bottom:12px}.missing-list[data-v-0c97d90d]{flex-direction:column;gap:4px;display:flex}.missing-item[data-v-0c97d90d]{font-size:13px;line-height:1.6}.missing-item code[data-v-0c97d90d]{background:#0000000f;border-radius:3px;padding:1px 6px;font-size:12px}.skill-tag[data-v-0c97d90d]{margin:1px 2px;display:inline-block}.missing-hint[data-v-0c97d90d]{opacity:.7;margin-top:4px;font-size:12px}.source-status[data-v-0c97d90d]{margin-bottom:16px}.source-actions[data-v-0c97d90d]{flex-direction:column;gap:12px;display:flex}.action-buttons[data-v-0c97d90d]{gap:8px;display:flex}.healthy-text[data-v-0c97d90d]{color:#18a058;font-size:13px}.issue-text[data-v-0c97d90d]{color:#d03050;font-size:13px}.readme-dialog-desc[data-v-0c97d90d]{color:#555;margin-bottom:16px;font-size:14px}.readme-checkbox[data-v-0c97d90d]{align-items:flex-start;margin-bottom:12px;display:flex}.readme-checkbox-content[data-v-0c97d90d]{flex-direction:column;gap:2px;display:flex}.readme-checkbox-title[data-v-0c97d90d]{font-size:14px;font-weight:500}.readme-checkbox-desc[data-v-0c97d90d]{color:#999;font-size:12px}.diag-group[data-v-0c97d90d]{margin-bottom:16px}.diag-group[data-v-0c97d90d]:last-child{margin-bottom:0}.diag-group-header[data-v-0c97d90d]{align-items:center;gap:6px;padding:6px 0;font-size:13px;font-weight:600;display:flex}.diag-group-error[data-v-0c97d90d]{color:#d03050}.diag-group-ok[data-v-0c97d90d]{color:#18a058}[data-theme=dark] .missing-item code{background:#ffffff14!important}[data-theme=dark] .healthy-text{color:#4ade80!important}[data-theme=dark] .issue-text{color:#f87171!important}[data-theme=dark] .readme-dialog-desc{color:#a6adc8!important}[data-theme=dark] .readme-checkbox-desc{color:#6c7086!important}.page-header[data-v-97d38fe1]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2[data-v-97d38fe1]{font-size:20px;font-weight:600}.fade-enter-active[data-v-97d38fe1],.fade-leave-active[data-v-97d38fe1]{transition:opacity .2s}.fade-enter-from[data-v-97d38fe1],.fade-leave-to[data-v-97d38fe1]{opacity:0}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
@@ -7437,4 +7437,4 @@ https://github.com/highlightjs/highlight.js/issues/2277`),i=e,r=t),n===void 0&&(
7437
7437
  "]*"`}]},{className:`built_in`,variants:[{begin:`\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()`}]},e.COMMENT(`^[ ]*\\*.*$`,!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}t.exports=n})),k8=o(((e,t)=>{function n(e){return{name:`STEP Part 21`,aliases:[`p21`,`step`,`stp`],case_insensitive:!0,keywords:{$pattern:`[A-Z_][A-Z0-9_.]*`,keyword:[`HEADER`,`ENDSEC`,`DATA`]},contains:[{className:`meta`,begin:`ISO-10303-21;`,relevance:10},{className:`meta`,begin:`END-ISO-10303-21;`,relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(`/\\*\\*!`,`\\*/`),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:`string`,begin:`'`,end:`'`},{className:`symbol`,variants:[{begin:`#`,end:`\\d+`,illegal:`\\W`}]}]}}t.exports=n})),A8=o(((e,t)=>{var n=e=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:e.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),r=`a.abbr.address.article.aside.audio.b.blockquote.body.button.canvas.caption.cite.code.dd.del.details.dfn.div.dl.dt.em.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.html.i.iframe.img.input.ins.kbd.label.legend.li.main.mark.menu.nav.object.ol.optgroup.option.p.picture.q.quote.samp.section.select.source.span.strong.summary.sup.table.tbody.td.textarea.tfoot.th.thead.time.tr.ul.var.video`.split(`.`),i=`defs.g.marker.mask.pattern.svg.switch.symbol.feBlend.feColorMatrix.feComponentTransfer.feComposite.feConvolveMatrix.feDiffuseLighting.feDisplacementMap.feFlood.feGaussianBlur.feImage.feMerge.feMorphology.feOffset.feSpecularLighting.feTile.feTurbulence.linearGradient.radialGradient.stop.circle.ellipse.image.line.path.polygon.polyline.rect.text.use.textPath.tspan.foreignObject.clipPath`.split(`.`),a=[...r,...i],o=`any-hover.any-pointer.aspect-ratio.color.color-gamut.color-index.device-aspect-ratio.device-height.device-width.display-mode.forced-colors.grid.height.hover.inverted-colors.monochrome.orientation.overflow-block.overflow-inline.pointer.prefers-color-scheme.prefers-contrast.prefers-reduced-motion.prefers-reduced-transparency.resolution.scan.scripting.update.width.min-width.max-width.min-height.max-height`.split(`.`).sort().reverse(),s=`active.any-link.blank.checked.current.default.defined.dir.disabled.drop.empty.enabled.first.first-child.first-of-type.fullscreen.future.focus.focus-visible.focus-within.has.host.host-context.hover.indeterminate.in-range.invalid.is.lang.last-child.last-of-type.left.link.local-link.not.nth-child.nth-col.nth-last-child.nth-last-col.nth-last-of-type.nth-of-type.only-child.only-of-type.optional.out-of-range.past.placeholder-shown.read-only.read-write.required.right.root.scope.target.target-within.user-invalid.valid.visited.where`.split(`.`).sort().reverse(),c=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse(),l=`accent-color.align-content.align-items.align-self.alignment-baseline.all.anchor-name.animation.animation-composition.animation-delay.animation-direction.animation-duration.animation-fill-mode.animation-iteration-count.animation-name.animation-play-state.animation-range.animation-range-end.animation-range-start.animation-timeline.animation-timing-function.appearance.aspect-ratio.backdrop-filter.backface-visibility.background.background-attachment.background-blend-mode.background-clip.background-color.background-image.background-origin.background-position.background-position-x.background-position-y.background-repeat.background-size.baseline-shift.block-size.border.border-block.border-block-color.border-block-end.border-block-end-color.border-block-end-style.border-block-end-width.border-block-start.border-block-start-color.border-block-start-style.border-block-start-width.border-block-style.border-block-width.border-bottom.border-bottom-color.border-bottom-left-radius.border-bottom-right-radius.border-bottom-style.border-bottom-width.border-collapse.border-color.border-end-end-radius.border-end-start-radius.border-image.border-image-outset.border-image-repeat.border-image-slice.border-image-source.border-image-width.border-inline.border-inline-color.border-inline-end.border-inline-end-color.border-inline-end-style.border-inline-end-width.border-inline-start.border-inline-start-color.border-inline-start-style.border-inline-start-width.border-inline-style.border-inline-width.border-left.border-left-color.border-left-style.border-left-width.border-radius.border-right.border-right-color.border-right-style.border-right-width.border-spacing.border-start-end-radius.border-start-start-radius.border-style.border-top.border-top-color.border-top-left-radius.border-top-right-radius.border-top-style.border-top-width.border-width.bottom.box-align.box-decoration-break.box-direction.box-flex.box-flex-group.box-lines.box-ordinal-group.box-orient.box-pack.box-shadow.box-sizing.break-after.break-before.break-inside.caption-side.caret-color.clear.clip.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.color-scheme.column-count.column-fill.column-gap.column-rule.column-rule-color.column-rule-style.column-rule-width.column-span.column-width.columns.contain.contain-intrinsic-block-size.contain-intrinsic-height.contain-intrinsic-inline-size.contain-intrinsic-size.contain-intrinsic-width.container.container-name.container-type.content.content-visibility.counter-increment.counter-reset.counter-set.cue.cue-after.cue-before.cursor.cx.cy.direction.display.dominant-baseline.empty-cells.enable-background.field-sizing.fill.fill-opacity.fill-rule.filter.flex.flex-basis.flex-direction.flex-flow.flex-grow.flex-shrink.flex-wrap.float.flood-color.flood-opacity.flow.font.font-display.font-family.font-feature-settings.font-kerning.font-language-override.font-optical-sizing.font-palette.font-size.font-size-adjust.font-smooth.font-smoothing.font-stretch.font-style.font-synthesis.font-synthesis-position.font-synthesis-small-caps.font-synthesis-style.font-synthesis-weight.font-variant.font-variant-alternates.font-variant-caps.font-variant-east-asian.font-variant-emoji.font-variant-ligatures.font-variant-numeric.font-variant-position.font-variation-settings.font-weight.forced-color-adjust.gap.glyph-orientation-horizontal.glyph-orientation-vertical.grid.grid-area.grid-auto-columns.grid-auto-flow.grid-auto-rows.grid-column.grid-column-end.grid-column-start.grid-gap.grid-row.grid-row-end.grid-row-start.grid-template.grid-template-areas.grid-template-columns.grid-template-rows.hanging-punctuation.height.hyphenate-character.hyphenate-limit-chars.hyphens.icon.image-orientation.image-rendering.image-resolution.ime-mode.initial-letter.initial-letter-align.inline-size.inset.inset-area.inset-block.inset-block-end.inset-block-start.inset-inline.inset-inline-end.inset-inline-start.isolation.justify-content.justify-items.justify-self.kerning.left.letter-spacing.lighting-color.line-break.line-height.line-height-step.list-style.list-style-image.list-style-position.list-style-type.margin.margin-block.margin-block-end.margin-block-start.margin-bottom.margin-inline.margin-inline-end.margin-inline-start.margin-left.margin-right.margin-top.margin-trim.marker.marker-end.marker-mid.marker-start.marks.mask.mask-border.mask-border-mode.mask-border-outset.mask-border-repeat.mask-border-slice.mask-border-source.mask-border-width.mask-clip.mask-composite.mask-image.mask-mode.mask-origin.mask-position.mask-repeat.mask-size.mask-type.masonry-auto-flow.math-depth.math-shift.math-style.max-block-size.max-height.max-inline-size.max-width.min-block-size.min-height.min-inline-size.min-width.mix-blend-mode.nav-down.nav-index.nav-left.nav-right.nav-up.none.normal.object-fit.object-position.offset.offset-anchor.offset-distance.offset-path.offset-position.offset-rotate.opacity.order.orphans.outline.outline-color.outline-offset.outline-style.outline-width.overflow.overflow-anchor.overflow-block.overflow-clip-margin.overflow-inline.overflow-wrap.overflow-x.overflow-y.overlay.overscroll-behavior.overscroll-behavior-block.overscroll-behavior-inline.overscroll-behavior-x.overscroll-behavior-y.padding.padding-block.padding-block-end.padding-block-start.padding-bottom.padding-inline.padding-inline-end.padding-inline-start.padding-left.padding-right.padding-top.page.page-break-after.page-break-before.page-break-inside.paint-order.pause.pause-after.pause-before.perspective.perspective-origin.place-content.place-items.place-self.pointer-events.position.position-anchor.position-visibility.print-color-adjust.quotes.r.resize.rest.rest-after.rest-before.right.rotate.row-gap.ruby-align.ruby-position.scale.scroll-behavior.scroll-margin.scroll-margin-block.scroll-margin-block-end.scroll-margin-block-start.scroll-margin-bottom.scroll-margin-inline.scroll-margin-inline-end.scroll-margin-inline-start.scroll-margin-left.scroll-margin-right.scroll-margin-top.scroll-padding.scroll-padding-block.scroll-padding-block-end.scroll-padding-block-start.scroll-padding-bottom.scroll-padding-inline.scroll-padding-inline-end.scroll-padding-inline-start.scroll-padding-left.scroll-padding-right.scroll-padding-top.scroll-snap-align.scroll-snap-stop.scroll-snap-type.scroll-timeline.scroll-timeline-axis.scroll-timeline-name.scrollbar-color.scrollbar-gutter.scrollbar-width.shape-image-threshold.shape-margin.shape-outside.shape-rendering.speak.speak-as.src.stop-color.stop-opacity.stroke.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke-width.tab-size.table-layout.text-align.text-align-all.text-align-last.text-anchor.text-combine-upright.text-decoration.text-decoration-color.text-decoration-line.text-decoration-skip.text-decoration-skip-ink.text-decoration-style.text-decoration-thickness.text-emphasis.text-emphasis-color.text-emphasis-position.text-emphasis-style.text-indent.text-justify.text-orientation.text-overflow.text-rendering.text-shadow.text-size-adjust.text-transform.text-underline-offset.text-underline-position.text-wrap.text-wrap-mode.text-wrap-style.timeline-scope.top.touch-action.transform.transform-box.transform-origin.transform-style.transition.transition-behavior.transition-delay.transition-duration.transition-property.transition-timing-function.translate.unicode-bidi.user-modify.user-select.vector-effect.vertical-align.view-timeline.view-timeline-axis.view-timeline-inset.view-timeline-name.view-transition-name.visibility.voice-balance.voice-duration.voice-family.voice-pitch.voice-range.voice-rate.voice-stress.voice-volume.white-space.white-space-collapse.widows.width.will-change.word-break.word-spacing.word-wrap.writing-mode.x.y.z-index.zoom`.split(`.`).sort().reverse();function u(e){let t=n(e),r={className:`variable`,begin:`\\$`+e.IDENT_RE},i=[`charset`,`css`,`debug`,`extend`,`font-face`,`for`,`import`,`include`,`keyframes`,`media`,`mixin`,`page`,`warn`,`while`],u=`(?=[.\\s\\n[:,(])`;return{name:`Stylus`,aliases:[`styl`],case_insensitive:!1,keywords:`if else for in`,illegal:`(`+[`\\?`,`(\\bReturn\\b)`,`(\\bEnd\\b)`,`(\\bend\\b)`,`(\\bdef\\b)`,`;`,`#\\s`,`\\*\\s`,`===\\s`,`\\|`,`%`].join(`|`)+`)`,contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.HEXCOLOR,{begin:`\\.[a-zA-Z][a-zA-Z0-9_-]*`+u,className:`selector-class`},{begin:`#[a-zA-Z][a-zA-Z0-9_-]*`+u,className:`selector-id`},{begin:`\\b(`+a.join(`|`)+`)(?=[.\\s\\n[:,(])`,className:`selector-tag`},{className:`selector-pseudo`,begin:`&?:(`+s.join(`|`)+`)(?=[.\\s\\n[:,(])`},{className:`selector-pseudo`,begin:`&?:(:)?(`+c.join(`|`)+`)(?=[.\\s\\n[:,(])`},t.ATTRIBUTE_SELECTOR_MODE,{className:`keyword`,begin:/@media/,starts:{end:/[{;}]/,keywords:{$pattern:/[a-z-]+/,keyword:`and or not only`,attribute:o.join(` `)},contains:[t.CSS_NUMBER_MODE]}},{className:`keyword`,begin:`@((-(o|moz|ms|webkit)-)?(`+i.join(`|`)+`))\\b`},r,t.CSS_NUMBER_MODE,{className:`function`,begin:`^[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)`,illegal:`[\\n]`,returnBegin:!0,contains:[{className:`title`,begin:`\\b[a-zA-Z][a-zA-Z0-9_-]*`},{className:`params`,begin:/\(/,end:/\)/,contains:[t.HEXCOLOR,r,e.APOS_STRING_MODE,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE]}]},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+l.join(`|`)+`)\\b`,starts:{end:/;|$/,contains:[t.HEXCOLOR,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,t.CSS_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH],illegal:/\./,relevance:0}},t.FUNCTION_DISPATCH]}}t.exports=u})),j8=o(((e,t)=>{function n(e){return{name:`SubUnit`,case_insensitive:!0,contains:[{className:`string`,begin:`\\[
7438
7438
  (multipart)?`,end:`\\]
7439
7439
  `},{className:`string`,begin:`\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z`},{className:`string`,begin:`(\\+|-)\\d+`},{className:`keyword`,relevance:10,variants:[{begin:`^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?`},{begin:`^progress(:?)(\\s+)?(pop|push)?`},{begin:`^tags:`},{begin:`^time:`}]}]}}t.exports=n})),M8=o(((e,t)=>{function n(e){return e?typeof e==`string`?e:e.source:null}function r(e){return i(`(?=`,e,`)`)}function i(...e){return e.map(e=>n(e)).join(``)}function a(e){let t=e[e.length-1];return typeof t==`object`&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function o(...e){return`(`+(a(e).capture?``:`?:`)+e.map(e=>n(e)).join(`|`)+`)`}var s=e=>i(/\b/,e,/\w$/.test(e)?/\b/:/\B/),c=[`Protocol`,`Type`].map(s),l=[`init`,`self`].map(s),u=[`Any`,`Self`],d=[`actor`,`any`,`associatedtype`,`async`,`await`,/as\?/,/as!/,`as`,`borrowing`,`break`,`case`,`catch`,`class`,`consume`,`consuming`,`continue`,`convenience`,`copy`,`default`,`defer`,`deinit`,`didSet`,`distributed`,`do`,`dynamic`,`each`,`else`,`enum`,`extension`,`fallthrough`,/fileprivate\(set\)/,`fileprivate`,`final`,`for`,`func`,`get`,`guard`,`if`,`import`,`indirect`,`infix`,/init\?/,/init!/,`inout`,/internal\(set\)/,`internal`,`in`,`is`,`isolated`,`nonisolated`,`lazy`,`let`,`macro`,`mutating`,`nonmutating`,/open\(set\)/,`open`,`operator`,`optional`,`override`,`package`,`postfix`,`precedencegroup`,`prefix`,/private\(set\)/,`private`,`protocol`,/public\(set\)/,`public`,`repeat`,`required`,`rethrows`,`return`,`set`,`some`,`static`,`struct`,`subscript`,`super`,`switch`,`throws`,`throw`,/try\?/,/try!/,`try`,`typealias`,/unowned\(safe\)/,/unowned\(unsafe\)/,`unowned`,`var`,`weak`,`where`,`while`,`willSet`],f=[`false`,`nil`,`true`],p=[`assignment`,`associativity`,`higherThan`,`left`,`lowerThan`,`none`,`right`],m=[`#colorLiteral`,`#column`,`#dsohandle`,`#else`,`#elseif`,`#endif`,`#error`,`#file`,`#fileID`,`#fileLiteral`,`#filePath`,`#function`,`#if`,`#imageLiteral`,`#keyPath`,`#line`,`#selector`,`#sourceLocation`,`#warning`],h=`abs.all.any.assert.assertionFailure.debugPrint.dump.fatalError.getVaList.isKnownUniquelyReferenced.max.min.numericCast.pointwiseMax.pointwiseMin.precondition.preconditionFailure.print.readLine.repeatElement.sequence.stride.swap.swift_unboxFromSwiftValueWithType.transcode.type.unsafeBitCast.unsafeDowncast.withExtendedLifetime.withUnsafeMutablePointer.withUnsafePointer.withVaList.withoutActuallyEscaping.zip`.split(`.`),g=o(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),_=o(g,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),v=i(g,_,`*`),y=o(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),b=o(y,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),x=i(y,b,`*`),S=i(/[A-Z]/,b,`*`),C=[`attached`,`autoclosure`,i(/convention\(/,o(`swift`,`block`,`c`),/\)/),`discardableResult`,`dynamicCallable`,`dynamicMemberLookup`,`escaping`,`freestanding`,`frozen`,`GKInspectable`,`IBAction`,`IBDesignable`,`IBInspectable`,`IBOutlet`,`IBSegueAction`,`inlinable`,`main`,`nonobjc`,`NSApplicationMain`,`NSCopying`,`NSManaged`,i(/objc\(/,x,/\)/),`objc`,`objcMembers`,`propertyWrapper`,`requires_stored_property_inits`,`resultBuilder`,`Sendable`,`testable`,`UIApplicationMain`,`unchecked`,`unknown`,`usableFromInline`,`warn_unqualified_access`],w=[`iOS`,`iOSApplicationExtension`,`macOS`,`macOSApplicationExtension`,`macCatalyst`,`macCatalystApplicationExtension`,`watchOS`,`watchOSApplicationExtension`,`tvOS`,`tvOSApplicationExtension`,`swift`];function T(e){let t={match:/\s+/,relevance:0},n=e.COMMENT(`/\\*`,`\\*/`,{contains:[`self`]}),a=[e.C_LINE_COMMENT_MODE,n],g={match:[/\./,o(...c,...l)],className:{2:`keyword`}},y={match:i(/\./,o(...d)),relevance:0},T=d.filter(e=>typeof e==`string`).concat([`_|0`]),E={variants:[{className:`keyword`,match:o(...d.filter(e=>typeof e!=`string`).concat(u).map(s),...l)}]},D={$pattern:o(/\b\w+/,/#\w+/),keyword:T.concat(m),literal:f},O=[g,y,E],k=[{match:i(/\./,o(...h)),relevance:0},{className:`built_in`,match:i(/\b/,o(...h),/(?=\()/)}],A={match:/->/,relevance:0},j=[A,{className:`operator`,relevance:0,variants:[{match:v},{match:`\\.(\\.|${_})+`}]}],M=`([0-9]_*)+`,N=`([0-9a-fA-F]_*)+`,ee={className:`number`,relevance:0,variants:[{match:`\\b(${M})(\\.(${M}))?([eE][+-]?(${M}))?\\b`},{match:`\\b0x(${N})(\\.(${N}))?([pP][+-]?(${M}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},te=(e=``)=>({className:`subst`,variants:[{match:i(/\\/,e,/[0\\tnr"']/)},{match:i(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ne=(e=``)=>({className:`subst`,match:i(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),re=(e=``)=>({className:`subst`,label:`interpol`,begin:i(/\\/,e,/\(/),end:/\)/}),P=(e=``)=>({begin:i(e,/"""/),end:i(/"""/,e),contains:[te(e),ne(e),re(e)]}),ie=(e=``)=>({begin:i(e,/"/),end:i(/"/,e),contains:[te(e),re(e)]}),ae={className:`string`,variants:[P(),P(`#`),P(`##`),P(`###`),ie(),ie(`#`),ie(`##`),ie(`###`)]},oe=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],se={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:oe},ce=e=>{let t=i(e,/\//),n=i(/\//,e);return{begin:t,end:n,contains:[...oe,{scope:`comment`,begin:`#(?!.*${n})`,end:/$/}]}},le={scope:`regexp`,variants:[ce(`###`),ce(`##`),ce(`#`),se]},ue={match:i(/`/,x,/`/)},de=[ue,{className:`variable`,match:/\$\d+/},{className:`variable`,match:`\\$${b}+`}],fe=[{match:/(@|#(un)?)available/,scope:`keyword`,starts:{contains:[{begin:/\(/,end:/\)/,keywords:w,contains:[...j,ee,ae]}]}},{scope:`keyword`,match:i(/@/,o(...C),r(o(/\(/,/\s+/)))},{scope:`meta`,match:i(/@/,x)}],pe={match:r(/\b[A-Z]/),relevance:0,contains:[{className:`type`,match:i(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,b,`+`)},{className:`type`,match:S,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:i(/\s+&\s+/,r(S)),relevance:0}]},me={begin:/</,end:/>/,keywords:D,contains:[...a,...O,...fe,A,pe]};pe.contains.push(me);let he={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:[`self`,{match:i(x,/\s*:/),keywords:`_|0`,relevance:0},...a,le,...O,...k,...j,ee,ae,...de,...fe,pe]},ge={begin:/</,end:/>/,keywords:`repeat each`,contains:[...a,pe]},_e={begin:/\(/,end:/\)/,keywords:D,contains:[{begin:o(r(i(x,/\s*:/)),r(i(x,/\s+/,x,/\s*:/))),end:/:/,relevance:0,contains:[{className:`keyword`,match:/\b_\b/},{className:`params`,match:x}]},...a,...O,...j,ee,ae,...fe,pe,he],endsParent:!0,illegal:/["']/},ve={match:[/(func|macro)/,/\s+/,o(ue.match,x,v)],className:{1:`keyword`,3:`title.function`},contains:[ge,_e,t],illegal:[/\[/,/%/]},ye={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:`keyword`},contains:[ge,_e,t],illegal:/\[|%/},be={match:[/operator/,/\s+/,v],className:{1:`keyword`,3:`title`}},xe={begin:[/precedencegroup/,/\s+/,S],className:{1:`keyword`,3:`title`},contains:[pe],keywords:[...p,...f],end:/}/},Se={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:`keyword`,3:`keyword`,5:`title.function`}},Ce={match:[/class\b/,/\s+/,/var\b/],scope:{1:`keyword`,3:`keyword`}},we={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,x,/\s*/],beginScope:{1:`keyword`,3:`title.class`},keywords:D,contains:[ge,...O,{begin:/:/,end:/\{/,keywords:D,contains:[{scope:`title.class.inherited`,match:S},...O],relevance:0}]};for(let e of ae.variants){let t=e.contains.find(e=>e.label===`interpol`);t.keywords=D;let n=[...O,...k,...j,ee,ae,...de];t.contains=[...n,{begin:/\(/,end:/\)/,contains:[`self`,...n]}]}return{name:`Swift`,keywords:D,contains:[...a,ve,ye,Se,Ce,we,be,xe,{beginKeywords:`import`,end:/$/,contains:[...a],relevance:0},le,...O,...k,...j,ee,ae,...de,...fe,pe,he]}}t.exports=T})),N8=o(((e,t)=>{function n(e){return{name:`Tagger Script`,contains:[{className:`comment`,begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},`self`]}],relevance:10},{className:`keyword`,begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:`variable`,begin:/%[_a-zA-Z0-9:]+%/},{className:`symbol`,begin:/\\[\\nt$%,()]/},{className:`symbol`,begin:/\\u[a-fA-F0-9]{4}/}]}}t.exports=n})),P8=o(((e,t)=>{function n(e){let t=`true false yes no null`,n=`[\\w#;/?:@&=+$,.~*'()[\\]]+`,r={className:`attr`,variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},i={className:`template-variable`,variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:`string`,relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:`char.escape`,relevance:0}]},o={className:`string`,relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},s=e.inherit(o,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),c={className:`number`,begin:`\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b`},l={end:`,`,endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},u={begin:/\{/,end:/\}/,contains:[l],illegal:`\\n`,relevance:0},d={begin:`\\[`,end:`\\]`,contains:[l],illegal:`\\n`,relevance:0},f=[r,{className:`meta`,begin:`^---\\s*$`,relevance:10},{className:`string`,begin:`[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*`},{begin:`<%[%=-]?`,end:`[%-]?%>`,subLanguage:`ruby`,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:`!\\w+!`+n},{className:`type`,begin:`!<`+n+`>`},{className:`type`,begin:`!`+n},{className:`type`,begin:`!!`+n},{className:`meta`,begin:`&`+e.UNDERSCORE_IDENT_RE+`$`},{className:`meta`,begin:`\\*`+e.UNDERSCORE_IDENT_RE+`$`},{className:`bullet`,begin:`-(?=[ ]|$)`,relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},c,{className:`number`,begin:e.C_NUMBER_RE+`\\b`,relevance:0},u,d,a,o],p=[...f];return p.pop(),p.push(s),l.contains=p,{name:`YAML`,case_insensitive:!0,aliases:[`yml`],contains:f}}t.exports=n})),F8=o(((e,t)=>{function n(e){return{name:`Test Anything Protocol`,case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:`meta`,variants:[{begin:`^TAP version (\\d+)$`},{begin:`^1\\.\\.(\\d+)$`}]},{begin:/---$/,end:`\\.\\.\\.$`,subLanguage:`yaml`,relevance:0},{className:`number`,begin:` (\\d+) `},{className:`symbol`,variants:[{begin:`^ok`},{begin:`^not ok`}]}]}}t.exports=n})),I8=o(((e,t)=>{function n(e){let t=e.regex,n=/[a-zA-Z_][a-zA-Z0-9_]*/,r={className:`number`,variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:`Tcl`,aliases:[`tk`],keywords:`after.append.apply.array.auto_execok.auto_import.auto_load.auto_mkindex.auto_mkindex_old.auto_qualify.auto_reset.bgerror.binary.break.catch.cd.chan.clock.close.concat.continue.dde.dict.encoding.eof.error.eval.exec.exit.expr.fblocked.fconfigure.fcopy.file.fileevent.filename.flush.for.foreach.format.gets.glob.global.history.http.if.incr.info.interp.join.lappend|10.lassign|10.lindex|10.linsert|10.list.llength|10.load.lrange|10.lrepeat|10.lreplace|10.lreverse|10.lsearch|10.lset|10.lsort|10.mathfunc.mathop.memory.msgcat.namespace.open.package.parray.pid.pkg::create.pkg_mkIndex.platform.platform::shell.proc.puts.pwd.read.refchan.regexp.registry.regsub|10.rename.return.safe.scan.seek.set.socket.source.split.string.subst.switch.tcl_endOfWord.tcl_findLibrary.tcl_startOfNextWord.tcl_startOfPreviousWord.tcl_wordBreakAfter.tcl_wordBreakBefore.tcltest.tclvars.tell.time.tm.trace.unknown.unload.unset.update.uplevel.upvar.variable.vwait.while`.split(`.`),contains:[e.COMMENT(`;[ \\t]*#`,`$`),e.COMMENT(`^[ \\t]*#`,`$`),{beginKeywords:`proc`,end:`[\\{]`,excludeEnd:!0,contains:[{className:`title`,begin:`[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*`,end:`[ \\t\\n\\r]`,endsWithParent:!0,excludeEnd:!0}]},{className:`variable`,variants:[{begin:t.concat(/\$/,t.optional(/::/),n,`(::`,n,`)*`)},{begin:`\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*`,end:`\\}`,contains:[r]}]},{className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r]}}t.exports=n})),L8=o(((e,t)=>{function n(e){let t=[`bool`,`byte`,`i16`,`i32`,`i64`,`double`,`string`,`binary`];return{name:`Thrift`,keywords:{keyword:[`namespace`,`const`,`typedef`,`struct`,`enum`,`service`,`exception`,`void`,`oneway`,`set`,`list`,`map`,`required`,`optional`],type:t,literal:`true false`},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`class`,beginKeywords:`struct enum service exception`,end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:`\\b(set|list|map)\\s*<`,keywords:{type:[...t,`set`,`list`,`map`]},end:`>`,contains:[`self`]}]}}t.exports=n})),R8=o(((e,t)=>{function n(e){let t={className:`number`,begin:`[1-9][0-9]*`,relevance:0},n={className:`symbol`,begin:`:[^\\]]+`};return{name:`TP`,keywords:{keyword:`ABORT.ACC.ADJUST.AND.AP_LD.BREAK.CALL.CNT.COL.CONDITION.CONFIG.DA.DB.DIV.DETECT.ELSE.END.ENDFOR.ERR_NUM.ERROR_PROG.FINE.FOR.GP.GUARD.INC.IF.JMP.LINEAR_MAX_SPEED.LOCK.MOD.MONITOR.OFFSET.Offset.OR.OVERRIDE.PAUSE.PREG.PTH.RT_LD.RUN.SELECT.SKIP.Skip.TA.TB.TO.TOOL_OFFSET.Tool_Offset.UF.UT.UFRAME_NUM.UTOOL_NUM.UNLOCK.WAIT.X.Y.Z.W.P.R.STRLEN.SUBSTR.FINDSTR.VOFFSET.PROG.ATTR.MN.POS`.split(`.`),literal:[`ON`,`OFF`,`max_speed`,`LPOS`,`JPOS`,`ENABLE`,`DISABLE`,`START`,`STOP`,`RESET`]},contains:[{className:`built_in`,begin:`(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[`,end:`\\]`,contains:[`self`,t,n]},{className:`built_in`,begin:`(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[`,end:`\\]`,contains:[`self`,t,e.QUOTE_STRING_MODE,n]},{className:`keyword`,begin:`/(PROG|ATTR|MN|POS|END)\\b`},{className:`keyword`,begin:`(CALL|RUN|POINT_LOGIC|LBL)\\b`},{className:`keyword`,begin:`\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)`},{className:`number`,begin:`\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b`,relevance:0},e.COMMENT(`//`,`[;$]`),e.COMMENT(`!`,`[;$]`),e.COMMENT(`--eg:`,`$`),e.QUOTE_STRING_MODE,{className:`string`,begin:`'`,end:`'`},e.C_NUMBER_MODE,{className:`variable`,begin:`\\$[A-Za-z0-9_]+`}]}}t.exports=n})),z8=o(((e,t)=>{function n(e){let t=e.regex,n=`absolute_url.asset|0.asset_version.attribute.block.constant.controller|0.country_timezones.csrf_token.cycle.date.dump.expression.form|0.form_end.form_errors.form_help.form_label.form_rest.form_row.form_start.form_widget.html_classes.include.is_granted.logout_path.logout_url.max.min.parent.path|0.random.range.relative_path.render.render_esi.source.template_from_string.url|0`.split(`.`),r=`abs.abbr_class.abbr_method.batch.capitalize.column.convert_encoding.country_name.currency_name.currency_symbol.data_uri.date.date_modify.default.escape.file_excerpt.file_link.file_relative.filter.first.format.format_args.format_args_as_text.format_currency.format_date.format_datetime.format_file.format_file_from_text.format_number.format_time.html_to_markdown.humanize.inky_to_html.inline_css.join.json_encode.keys.language_name.last.length.locale_name.lower.map.markdown.markdown_to_html.merge.nl2br.number_format.raw.reduce.replace.reverse.round.slice.slug.sort.spaceless.split.striptags.timezone_name.title.trans.transchoice.trim.u|0.upper.url_encode.yaml_dump.yaml_encode`.split(`.`),i=`apply.autoescape.block.cache.deprecated.do.embed.extends.filter.flush.for.form_theme.from.if.import.include.macro.sandbox.set.stopwatch.trans.trans_default_domain.transchoice.use.verbatim.with`.split(`.`);i=i.concat(i.map(e=>`end${e}`));let a={scope:`string`,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},o={scope:`number`,match:/\d+/},s={begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[a,o]},c={beginKeywords:n.join(` `),keywords:{name:n},relevance:0,contains:[s]},l={match:/\|(?=[A-Za-z_]+:?)/,beginScope:`punctuation`,relevance:0,contains:[{match:/[A-Za-z_]+:?/,keywords:r}]},u=(e,{relevance:n})=>({beginScope:{1:`template-tag`,3:`name`},relevance:n||2,endScope:`template-tag`,begin:[/\{%/,/\s*/,t.either(...e)],end:/%\}/,keywords:`in`,contains:[l,c,a,o]}),d=/[a-z_]+/,f=u(i,{relevance:2}),p=u([d],{relevance:1});return{name:`Twig`,aliases:[`craftcms`],case_insensitive:!0,subLanguage:`xml`,contains:[e.COMMENT(/\{#/,/#\}/),f,p,{className:`template-variable`,begin:/\{\{/,end:/\}\}/,contains:[`self`,l,c,a,o]}]}}t.exports=n})),B8=o(((e,t)=>{var n=`[A-Za-z$_][0-9A-Za-z$_]*`,r=`as.in.of.if.for.while.finally.var.new.function.do.return.void.else.break.catch.instanceof.with.throw.case.default.try.switch.continue.typeof.delete.let.yield.const.class.debugger.async.await.static.import.from.export.extends.using`.split(`.`),i=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`],a=`Object.Function.Boolean.Symbol.Math.Date.Number.BigInt.String.RegExp.Array.Float32Array.Float64Array.Int8Array.Uint8Array.Uint8ClampedArray.Int16Array.Int32Array.Uint16Array.Uint32Array.BigInt64Array.BigUint64Array.Set.Map.WeakSet.WeakMap.ArrayBuffer.SharedArrayBuffer.Atomics.DataView.JSON.Promise.Generator.GeneratorFunction.AsyncFunction.Reflect.Proxy.Intl.WebAssembly`.split(`.`),o=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`],s=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`],c=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`global`],l=[].concat(s,a,o);function u(e){let t=e.regex,u=(e,{after:t})=>{let n=`</`+e[0].slice(1);return e.input.indexOf(n,t)!==-1},d=n,f={begin:`<>`,end:`</>`},p=/<[A-Za-z0-9\\._:-]+\s*\/>/,m={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,t)=>{let n=e[0].length+e.index,r=e.input[n];if(r===`<`||r===`,`){t.ignoreMatch();return}r===`>`&&(u(e,{after:n})||t.ignoreMatch());let i,a=e.input.substring(n);if(i=a.match(/^\s*=/)){t.ignoreMatch();return}if((i=a.match(/^\s+extends\s+/))&&i.index===0){t.ignoreMatch();return}}},h={$pattern:n,keyword:r,literal:i,built_in:l,"variable.language":c},g=`[0-9](_?[0-9])*`,_=`\\.(${g})`,v=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,y={className:`number`,variants:[{begin:`(\\b(${v})((${_})|\\.)?|(${_}))[eE][+-]?(${g})\\b`},{begin:`\\b(${v})\\b((${_})\\b|\\.)?|(${_})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},b={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:h,contains:[]},x={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`xml`}},S={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`css`}},C={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,b],subLanguage:`graphql`}},w={className:`string`,begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,b]},T={className:`comment`,variants:[e.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:d+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},E=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,{match:/\$\d+/},y];b.contains=E.concat({begin:/\{/,end:/\}/,keywords:h,contains:[`self`].concat(E)});let D=[].concat(T,b.contains),O=D.concat([{begin:/(\s*)\(/,end:/\)/,keywords:h,contains:[`self`].concat(D)}]),k={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:O},A={variants:[{match:[/class/,/\s+/,d,/\s+/,/extends/,/\s+/,t.concat(d,`(`,t.concat(/\./,d),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,d],scope:{1:`keyword`,3:`title.class`}}]},j={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...a,...o]}},M={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},N={variants:[{match:[/function/,/\s+/,d,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[k],illegal:/%/},ee={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function te(e){return t.concat(`(?!`,e.join(`|`),`)`)}let ne={match:t.concat(/\b/,te([...s,`super`,`import`].map(e=>`${e}\\s*\\(`)),d,t.lookahead(/\s*\(/)),className:`title.function`,relevance:0},re={begin:t.concat(/\./,t.lookahead(t.concat(d,/(?![0-9A-Za-z$_(])/))),end:d,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},P={match:[/get|set/,/\s+/,d,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},k]},ie=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+e.UNDERSCORE_IDENT_RE+`)\\s*=>`,ae={match:[/const|var|let/,/\s+/,d,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(ie)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[k]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:h,exports:{PARAMS_CONTAINS:O,CLASS_REFERENCE:j},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),M,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,x,S,C,w,T,{match:/\$\d+/},y,j,{scope:`attr`,match:d+t.lookahead(`:`),relevance:0},ae,{begin:`(`+e.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[T,e.REGEXP_MODE,{className:`function`,begin:ie,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:h,contains:O}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:f.begin,end:f.end},{match:p},{begin:m.begin,"on:begin":m.isTrulyOpeningTag,end:m.end}],subLanguage:`xml`,contains:[{begin:m.begin,end:m.end,skip:!0,contains:[`self`]}]}]},N,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+e.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[k,e.inherit(e.TITLE_MODE,{begin:d,className:`title.function`})]},{match:/\.\.\./,relevance:0},re,{match:`\\$`+d,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[k]},ne,ee,A,P,{match:/\$[(.]/}]}}function d(e){let t=e.regex,a=u(e),o=n,s=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],d={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},f={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:s},contains:[a.exports.CLASS_REFERENCE]},p={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},m={$pattern:n,keyword:r.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:i,built_in:l.concat(s),"variable.language":c},h={className:`meta`,begin:`@`+o},g=(e,t,n)=>{let r=e.contains.findIndex(e=>e.label===t);if(r===-1)throw Error(`can not find mode to replace`);e.contains.splice(r,1,n)};Object.assign(a.keywords,m),a.exports.PARAMS_CONTAINS.push(h);let _=a.contains.find(e=>e.scope===`attr`),v=Object.assign({},_,{match:t.concat(o,t.lookahead(/\s*\?:/))});a.exports.PARAMS_CONTAINS.push([a.exports.CLASS_REFERENCE,_,v]),a.contains=a.contains.concat([h,d,f,v]),g(a,`shebang`,e.SHEBANG()),g(a,`use_strict`,p);let y=a.contains.find(e=>e.label===`func.def`);return y.relevance=0,Object.assign(a,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),a}t.exports=d})),V8=o(((e,t)=>{function n(e){return{name:`Vala`,keywords:{keyword:`char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var`,built_in:`DBus GLib CCode Gee Object Gtk Posix`,literal:`false true null`},contains:[{className:`class`,beginKeywords:`class interface namespace`,end:/\{/,excludeEnd:!0,illegal:`[^,:\\n\\s\\.]`,contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:`string`,begin:`"""`,end:`"""`,relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:`meta`,begin:`^#`,end:`$`}]}}t.exports=n})),H8=o(((e,t)=>{function n(e){let t=e.regex,n={className:`string`,begin:/"(""|[^/n])"C\b/},r={className:`string`,begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,s=/\d{1,2}(:\d{1,2}){1,2}/,c={className:`literal`,variants:[{begin:t.concat(/# */,t.either(a,i),/ *#/)},{begin:t.concat(/# */,s,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,i),/ +/,t.either(o,s),/ *#/)}]},l={className:`number`,relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},u={className:`label`,begin:/^\w+:/},d=e.COMMENT(/'''/,/$/,{contains:[{className:`doctag`,begin:/<\/?/,end:/>/}]}),f=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:`Visual Basic .NET`,aliases:[`vb`],case_insensitive:!0,classNameAliases:{label:`symbol`},keywords:{keyword:`addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield`,built_in:`addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort`,type:`boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort`,literal:`true false nothing`},illegal:`//|\\{|\\}|endif|gosub|variant|wend|^\\$ `,contains:[n,r,c,l,u,d,f,{className:`meta`,begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:`const disable else elseif enable end externalsource if region then`},contains:[f]}]}}t.exports=n})),U8=o(((e,t)=>{function n(e){let t=e.regex,n=`lcase.month.vartype.instrrev.ubound.setlocale.getobject.rgb.getref.string.weekdayname.rnd.dateadd.monthname.now.day.minute.isarray.cbool.round.formatcurrency.conversions.csng.timevalue.second.year.space.abs.clng.timeserial.fixs.len.asc.isempty.maths.dateserial.atn.timer.isobject.filter.weekday.datevalue.ccur.isdate.instr.datediff.formatdatetime.replace.isnull.right.sgn.array.snumeric.log.cdbl.hex.chr.lbound.msgbox.ucase.getlocale.cos.cdate.cbyte.rtrim.join.hour.oct.typename.trim.strcomp.int.createobject.loadpicture.tan.formatnumber.mid.split.cint.sin.datepart.ltrim.sqr.time.derived.eval.date.formatpercent.exp.inputbox.left.ascw.chrw.regexp.cstr.err`.split(`.`),r=[`server`,`response`,`request`,`scriptengine`,`scriptenginebuildversion`,`scriptengineminorversion`,`scriptenginemajorversion`],i={begin:t.concat(t.either(...n),`\\s*\\(`),relevance:0,keywords:{built_in:n}};return{name:`VBScript`,aliases:[`vbs`],case_insensitive:!0,keywords:{keyword:`call.class.const.dim.do.loop.erase.execute.executeglobal.exit.for.each.next.function.if.then.else.on.error.option.explicit.new.private.property.let.get.public.randomize.redim.rem.select.case.set.stop.sub.while.wend.with.end.to.elseif.is.or.xor.and.not.class_initialize.class_terminate.default.preserve.in.me.byval.byref.step.resume.goto`.split(`.`),built_in:r,literal:[`true`,`false`,`null`,`nothing`,`empty`]},illegal:`//`,contains:[i,e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:`""`}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}t.exports=n})),W8=o(((e,t)=>{function n(e){return{name:`VBScript in HTML`,subLanguage:`xml`,contains:[{begin:`<%`,end:`%>`,subLanguage:`vbscript`}]}}t.exports=n})),G8=o(((e,t)=>{function n(e){let t=e.regex,n={$pattern:/\$?[\w]+(\$[\w]+)*/,keyword:`accept_on.alias.always.always_comb.always_ff.always_latch.and.assert.assign.assume.automatic.before.begin.bind.bins.binsof.bit.break.buf|0.bufif0.bufif1.byte.case.casex.casez.cell.chandle.checker.class.clocking.cmos.config.const.constraint.context.continue.cover.covergroup.coverpoint.cross.deassign.default.defparam.design.disable.dist.do.edge.else.end.endcase.endchecker.endclass.endclocking.endconfig.endfunction.endgenerate.endgroup.endinterface.endmodule.endpackage.endprimitive.endprogram.endproperty.endspecify.endsequence.endtable.endtask.enum.event.eventually.expect.export.extends.extern.final.first_match.for.force.foreach.forever.fork.forkjoin.function.generate|5.genvar.global.highz0.highz1.if.iff.ifnone.ignore_bins.illegal_bins.implements.implies.import.incdir.include.initial.inout.input.inside.instance.int.integer.interconnect.interface.intersect.join.join_any.join_none.large.let.liblist.library.local.localparam.logic.longint.macromodule.matches.medium.modport.module.nand.negedge.nettype.new.nexttime.nmos.nor.noshowcancelled.not.notif0.notif1.or.output.package.packed.parameter.pmos.posedge.primitive.priority.program.property.protected.pull0.pull1.pulldown.pullup.pulsestyle_ondetect.pulsestyle_onevent.pure.rand.randc.randcase.randsequence.rcmos.real.realtime.ref.reg.reject_on.release.repeat.restrict.return.rnmos.rpmos.rtran.rtranif0.rtranif1.s_always.s_eventually.s_nexttime.s_until.s_until_with.scalared.sequence.shortint.shortreal.showcancelled.signed.small.soft.solve.specify.specparam.static.string.strong.strong0.strong1.struct.super.supply0.supply1.sync_accept_on.sync_reject_on.table.tagged.task.this.throughout.time.timeprecision.timeunit.tran.tranif0.tranif1.tri.tri0.tri1.triand.trior.trireg.type.typedef.union.unique.unique0.unsigned.until.until_with.untyped.use.uwire.var.vectored.virtual.void.wait.wait_order.wand.weak.weak0.weak1.while.wildcard.wire.with.within.wor.xnor.xor`.split(`.`),literal:[`null`],built_in:`$finish.$stop.$exit.$fatal.$error.$warning.$info.$realtime.$time.$printtimescale.$bitstoreal.$bitstoshortreal.$itor.$signed.$cast.$bits.$stime.$timeformat.$realtobits.$shortrealtobits.$rtoi.$unsigned.$asserton.$assertkill.$assertpasson.$assertfailon.$assertnonvacuouson.$assertoff.$assertcontrol.$assertpassoff.$assertfailoff.$assertvacuousoff.$isunbounded.$sampled.$fell.$changed.$past_gclk.$fell_gclk.$changed_gclk.$rising_gclk.$steady_gclk.$coverage_control.$coverage_get.$coverage_save.$set_coverage_db_name.$rose.$stable.$past.$rose_gclk.$stable_gclk.$future_gclk.$falling_gclk.$changing_gclk.$display.$coverage_get_max.$coverage_merge.$get_coverage.$load_coverage_db.$typename.$unpacked_dimensions.$left.$low.$increment.$clog2.$ln.$log10.$exp.$sqrt.$pow.$floor.$ceil.$sin.$cos.$tan.$countbits.$onehot.$isunknown.$fatal.$warning.$dimensions.$right.$high.$size.$asin.$acos.$atan.$atan2.$hypot.$sinh.$cosh.$tanh.$asinh.$acosh.$atanh.$countones.$onehot0.$error.$info.$random.$dist_chi_square.$dist_erlang.$dist_exponential.$dist_normal.$dist_poisson.$dist_t.$dist_uniform.$q_initialize.$q_remove.$q_exam.$async$and$array.$async$nand$array.$async$or$array.$async$nor$array.$sync$and$array.$sync$nand$array.$sync$or$array.$sync$nor$array.$q_add.$q_full.$psprintf.$async$and$plane.$async$nand$plane.$async$or$plane.$async$nor$plane.$sync$and$plane.$sync$nand$plane.$sync$or$plane.$sync$nor$plane.$system.$display.$displayb.$displayh.$displayo.$strobe.$strobeb.$strobeh.$strobeo.$write.$readmemb.$readmemh.$writememh.$value$plusargs.$dumpvars.$dumpon.$dumplimit.$dumpports.$dumpportson.$dumpportslimit.$writeb.$writeh.$writeo.$monitor.$monitorb.$monitorh.$monitoro.$writememb.$dumpfile.$dumpoff.$dumpall.$dumpflush.$dumpportsoff.$dumpportsall.$dumpportsflush.$fclose.$fdisplay.$fdisplayb.$fdisplayh.$fdisplayo.$fstrobe.$fstrobeb.$fstrobeh.$fstrobeo.$swrite.$swriteb.$swriteh.$swriteo.$fscanf.$fread.$fseek.$fflush.$feof.$fopen.$fwrite.$fwriteb.$fwriteh.$fwriteo.$fmonitor.$fmonitorb.$fmonitorh.$fmonitoro.$sformat.$sformatf.$fgetc.$ungetc.$fgets.$sscanf.$rewind.$ftell.$ferror`.split(`.`)},r=[`__FILE__`,`__LINE__`],i=`begin_keywords.celldefine.default_nettype.default_decay_time.default_trireg_strength.define.delay_mode_distributed.delay_mode_path.delay_mode_unit.delay_mode_zero.else.elsif.end_keywords.endcelldefine.endif.ifdef.ifndef.include.line.nounconnected_drive.pragma.resetall.timescale.unconnected_drive.undef.undefineall`.split(`.`);return{name:`Verilog`,aliases:[`v`,`sv`,`svh`],case_insensitive:!1,keywords:n,contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{scope:`number`,contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/\b((\d+'([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\B(('([bhodBHOD]))[0-9xzXZa-fA-F_]+)/},{begin:/\b[0-9][0-9_]*/,relevance:0}]},{scope:`variable`,variants:[{begin:`#\\((?!parameter).+\\)`},{begin:`\\.\\w+`,relevance:0}]},{scope:`variable.constant`,match:t.concat(/`/,t.either(...r))},{scope:`meta`,begin:t.concat(/`/,t.either(...i)),end:/$|\/\/|\/\*/,returnEnd:!0,keywords:i}]}}t.exports=n})),K8=o(((e,t)=>{function n(e){let t=`\\d(_|\\d)*`;return``+t,t+``,t+``,{name:`VHDL`,case_insensitive:!0,keywords:{keyword:`abs.access.after.alias.all.and.architecture.array.assert.assume.assume_guarantee.attribute.begin.block.body.buffer.bus.case.component.configuration.constant.context.cover.disconnect.downto.default.else.elsif.end.entity.exit.fairness.file.for.force.function.generate.generic.group.guarded.if.impure.in.inertial.inout.is.label.library.linkage.literal.loop.map.mod.nand.new.next.nor.not.null.of.on.open.or.others.out.package.parameter.port.postponed.procedure.process.property.protected.pure.range.record.register.reject.release.rem.report.restrict.restrict_guarantee.return.rol.ror.select.sequence.severity.shared.signal.sla.sll.sra.srl.strong.subtype.then.to.transport.type.unaffected.units.until.use.variable.view.vmode.vprop.vunit.wait.when.while.with.xnor.xor`.split(`.`),built_in:`boolean.bit.character.integer.time.delay_length.natural.positive.string.bit_vector.file_open_kind.file_open_status.std_logic.std_logic_vector.unsigned.signed.boolean_vector.integer_vector.std_ulogic.std_ulogic_vector.unresolved_unsigned.u_unsigned.unresolved_signed.u_signed.real_vector.time_vector`.split(`.`),literal:[`false`,`true`,`note`,`warning`,`error`,`failure`,`line`,`text`,`side`,`width`]},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(`--`,`$`),e.QUOTE_STRING_MODE,{className:`number`,begin:`\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)`,relevance:0},{className:`string`,begin:`'(U|X|0|1|Z|W|L|H|-)'`,contains:[e.BACKSLASH_ESCAPE]},{className:`symbol`,begin:`'[A-Za-z](_?[A-Za-z0-9])*`,contains:[e.BACKSLASH_ESCAPE]}]}}t.exports=n})),q8=o(((e,t)=>{function n(e){return{name:`Vim Script`,keywords:{$pattern:/[!#@\w]+/,keyword:`N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank`,built_in:`synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp`},illegal:/;/,contains:[e.NUMBER_MODE,{className:`string`,begin:`'`,end:`'`,illegal:`\\n`},{className:`string`,begin:/"(\\"|\n\\|[^"\n])*"/},e.COMMENT(`"`,`$`),{className:`variable`,begin:/[bwtglsav]:[\w\d_]+/},{begin:[/\b(?:function|function!)/,/\s+/,e.IDENT_RE],className:{1:`keyword`,3:`title`},end:`$`,relevance:0,contains:[{className:`params`,begin:`\\(`,end:`\\)`}]},{className:`symbol`,begin:/<[\w-]+>/}]}}t.exports=n})),J8=o(((e,t)=>{function n(e){e.regex;let t=e.COMMENT(/\(;/,/;\)/);return t.contains.push(`self`),{name:`WebAssembly`,keywords:{$pattern:/[\w.]+/,keyword:`anyfunc,block,br,br_if,br_table,call,call_indirect,data,drop,elem,else,end,export,func,global.get,global.set,local.get,local.set,local.tee,get_global,get_local,global,if,import,local,loop,memory,memory.grow,memory.size,module,mut,nop,offset,param,result,return,select,set_global,set_local,start,table,tee_local,then,type,unreachable`.split(`,`)},contains:[e.COMMENT(/;;/,/$/),t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:`keyword`,3:`operator`}},{className:`variable`,begin:/\$[\w_]+/},{match:/(\((?!;)|\))+/,className:`punctuation`,relevance:0},{begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:`keyword`,3:`title.function`}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/,className:`type`},{className:`keyword`,match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/},{className:`number`,relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/}]}}t.exports=n})),Y8=o(((e,t)=>{function n(e){let t=e.regex,n=/[a-zA-Z]\w*/,r=[`as`,`break`,`class`,`construct`,`continue`,`else`,`for`,`foreign`,`if`,`import`,`in`,`is`,`return`,`static`,`var`,`while`],i=[`true`,`false`,`null`],a=[`this`,`super`],o=[`Bool`,`Class`,`Fiber`,`Fn`,`List`,`Map`,`Null`,`Num`,`Object`,`Range`,`Sequence`,`String`,`System`],s=[`-`,`~`,/\*/,`%`,/\.\.\./,/\.\./,/\+/,`<<`,`>>`,`>=`,`<=`,`<`,`>`,/\^/,/!=/,/!/,/\bis\b/,`==`,`&&`,`&`,/\|\|/,/\|/,/\?:/,`=`],c={relevance:0,match:t.concat(/\b(?!(if|while|for|else|super)\b)/,n,/(?=\s*[({])/),className:`title.function`},l={match:t.concat(t.either(t.concat(/\b(?!(if|while|for|else|super)\b)/,n),t.either(...s)),/(?=\s*\([^)]+\)\s*\{)/),className:`title.function`,starts:{contains:[{begin:/\(/,end:/\)/,contains:[{relevance:0,scope:`params`,match:n}]}]}},u={variants:[{match:[/class\s+/,n,/\s+is\s+/,n]},{match:[/class\s+/,n]}],scope:{2:`title.class`,4:`title.class.inherited`},keywords:r},d={relevance:0,match:t.either(...s),className:`operator`},f={className:`string`,begin:/"""/,end:/"""/},p={className:`property`,begin:t.concat(/\./,t.lookahead(n)),end:n,excludeBegin:!0,relevance:0},m={relevance:0,match:t.concat(/\b_/,n),scope:`variable`},h={relevance:0,match:/\b[A-Z]+[a-z]+([A-Z]+[a-z]+)*/,scope:`title.class`,keywords:{_:o}},g=e.C_NUMBER_MODE,_={match:[n,/\s*/,/=/,/\s*/,/\(/,n,/\)\s*\{/],scope:{1:`title.function`,3:`operator`,6:`params`}},v=e.COMMENT(/\/\*\*/,/\*\//,{contains:[{match:/@[a-z]+/,scope:`doctag`},`self`]}),y={scope:`subst`,begin:/%\(/,end:/\)/,contains:[g,h,c,m,d]},b={scope:`string`,begin:/"/,end:/"/,contains:[y,{scope:`char.escape`,variants:[{match:/\\\\|\\["0%abefnrtv]/},{match:/\\x[0-9A-F]{2}/},{match:/\\u[0-9A-F]{4}/},{match:/\\U[0-9A-F]{8}/}]}]};y.contains.push(b);let x=[...r,...a,...i],S={relevance:0,match:t.concat(`\\b(?!`,x.join(`|`),`\\b)`,/[a-zA-Z_]\w*(?:[?!]|\b)/),className:`variable`};return{name:`Wren`,keywords:{keyword:r,"variable.language":a,literal:i},contains:[{scope:`comment`,variants:[{begin:[/#!?/,/[A-Za-z_]+(?=\()/],beginScope:{},keywords:{literal:i},contains:[],end:/\)/},{begin:[/#!?/,/[A-Za-z_]+/],beginScope:{},end:/$/}]},g,b,f,v,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,u,_,l,c,d,m,p,S]}}t.exports=n})),X8=o(((e,t)=>{function n(e){return{name:`Intel x86 Assembly`,case_insensitive:!0,keywords:{$pattern:`[.%]?`+e.IDENT_RE,keyword:`lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63`,built_in:`ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr`,meta:`%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__`},contains:[e.COMMENT(`;`,`$`,{relevance:0}),{className:`number`,variants:[{begin:`\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*(\\.[0-9_]*)?(?:[pP](?:[+-]?[0-9_]+)?)?)\\b`,relevance:0},{begin:`\\$[0-9][0-9A-Fa-f]*`,relevance:0},{begin:`\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b`},{begin:`\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b`}]},e.QUOTE_STRING_MODE,{className:`string`,variants:[{begin:`'`,end:`[^\\\\]'`},{begin:"`",end:"[^\\\\]`"}],relevance:0},{className:`symbol`,variants:[{begin:`^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)`},{begin:`^\\s*%%[A-Za-z0-9_$#@~.?]*:`}],relevance:0},{className:`subst`,begin:`%[0-9]+`,relevance:0},{className:`subst`,begin:`%!S+`,relevance:0},{className:`meta`,begin:/^\s*\.[\w_-]+/}]}}t.exports=n})),Z8=o(((e,t)=>{function n(e){let t={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:`if.then.else.do.while.until.for.loop.import.with.is.as.where.when.by.data.constant.integer.real.text.name.boolean.symbol.infix.prefix.postfix.block.tree`.split(`.`),literal:[`true`,`false`,`nil`],built_in:`in.mod.rem.and.or.xor.not.abs.sign.floor.ceil.sqrt.sin.cos.tan.asin.acos.atan.exp.expm1.log.log2.log10.log1p.pi.at.text_length.text_range.text_find.text_replace.contains.page.slide.basic_slide.title_slide.title.subtitle.fade_in.fade_out.fade_at.clear_color.color.line_color.line_width.texture_wrap.texture_transform.texture.scale_?x.scale_?y.scale_?z?.translate_?x.translate_?y.translate_?z?.rotate_?x.rotate_?y.rotate_?z?.rectangle.circle.ellipse.sphere.path.line_to.move_to.quad_to.curve_to.theme.background.contents.locally.time.mouse_?x.mouse_?y.mouse_buttons`.split(`.`).concat([`ObjectLoader`,`Animate`,`MovieCredits`,`Slides`,`Filters`,`Shading`,`Materials`,`LensFlare`,`Mapping`,`VLCAudioVideo`,`StereoDecoder`,`PointCloud`,`NetworkAccess`,`RemoteControl`,`RegExp`,`ChromaKey`,`Snowfall`,`NodeJS`,`Speech`,`Charts`])},n={className:`string`,begin:`"`,end:`"`,illegal:`\\n`},r={className:`string`,begin:`'`,end:`'`,illegal:`\\n`},i={className:`string`,begin:`<<`,end:`>>`},a={className:`number`,begin:`[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?`},o={beginKeywords:`import`,end:`$`,keywords:t,contains:[n]},s={className:`function`,begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:t}})]};return{name:`XL`,aliases:[`tao`],keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,r,i,s,o,a,e.NUMBER_MODE]}}t.exports=n})),Q8=o(((e,t)=>{function n(e){return{name:`XQuery`,aliases:[`xpath`,`xq`,`xqm`],case_insensitive:!1,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{$pattern:/[a-zA-Z$][a-zA-Z0-9_:-]*/,keyword:`module.schema.namespace.boundary-space.preserve.no-preserve.strip.default.collation.base-uri.ordering.context.decimal-format.decimal-separator.copy-namespaces.empty-sequence.except.exponent-separator.external.grouping-separator.inherit.no-inherit.lax.minus-sign.per-mille.percent.schema-attribute.schema-element.strict.unordered.zero-digit.declare.import.option.function.validate.variable.for.at.in.let.where.order.group.by.return.if.then.else.tumbling.sliding.window.start.when.only.end.previous.next.stable.ascending.descending.allowing.empty.greatest.least.some.every.satisfies.switch.case.typeswitch.try.catch.and.or.to.union.intersect.instance.of.treat.as.castable.cast.map.array.delete.insert.into.replace.value.rename.copy.modify.update`.split(`.`),type:`item.document-node.node.attribute.document.element.comment.namespace.namespace-node.processing-instruction.text.construction.xs:anyAtomicType.xs:untypedAtomic.xs:duration.xs:time.xs:decimal.xs:float.xs:double.xs:gYearMonth.xs:gYear.xs:gMonthDay.xs:gMonth.xs:gDay.xs:boolean.xs:base64Binary.xs:hexBinary.xs:anyURI.xs:QName.xs:NOTATION.xs:dateTime.xs:dateTimeStamp.xs:date.xs:string.xs:normalizedString.xs:token.xs:language.xs:NMTOKEN.xs:Name.xs:NCName.xs:ID.xs:IDREF.xs:ENTITY.xs:integer.xs:nonPositiveInteger.xs:negativeInteger.xs:long.xs:int.xs:short.xs:byte.xs:nonNegativeInteger.xs:unisignedLong.xs:unsignedInt.xs:unsignedShort.xs:unsignedByte.xs:positiveInteger.xs:yearMonthDuration.xs:dayTimeDuration`.split(`.`),literal:[`eq`,`ne`,`lt`,`le`,`gt`,`ge`,`is`,`self::`,`child::`,`descendant::`,`descendant-or-self::`,`attribute::`,`following::`,`following-sibling::`,`parent::`,`ancestor::`,`ancestor-or-self::`,`preceding::`,`preceding-sibling::`,`NaN`]},contains:[{className:`variable`,begin:/[$][\w\-:]+/},{className:`built_in`,variants:[{begin:/\barray:/,end:/(?:append|filter|flatten|fold-(?:left|right)|for-each(?:-pair)?|get|head|insert-before|join|put|remove|reverse|size|sort|subarray|tail)\b/},{begin:/\bmap:/,end:/(?:contains|entry|find|for-each|get|keys|merge|put|remove|size)\b/},{begin:/\bmath:/,end:/(?:a(?:cos|sin|tan[2]?)|cos|exp(?:10)?|log(?:10)?|pi|pow|sin|sqrt|tan)\b/},{begin:/\bop:/,end:/\(/,excludeEnd:!0},{begin:/\bfn:/,end:/\(/,excludeEnd:!0},{begin:/[^</$:'"-]\b(?:abs|accumulator-(?:after|before)|adjust-(?:date(?:Time)?|time)-to-timezone|analyze-string|apply|available-(?:environment-variables|system-properties)|avg|base-uri|boolean|ceiling|codepoints?-(?:equal|to-string)|collation-key|collection|compare|concat|contains(?:-token)?|copy-of|count|current(?:-)?(?:date(?:Time)?|time|group(?:ing-key)?|output-uri|merge-(?:group|key))?data|dateTime|days?-from-(?:date(?:Time)?|duration)|deep-equal|default-(?:collation|language)|distinct-values|document(?:-uri)?|doc(?:-available)?|element-(?:available|with-id)|empty|encode-for-uri|ends-with|environment-variable|error|escape-html-uri|exactly-one|exists|false|filter|floor|fold-(?:left|right)|for-each(?:-pair)?|format-(?:date(?:Time)?|time|integer|number)|function-(?:arity|available|lookup|name)|generate-id|has-children|head|hours-from-(?:dateTime|duration|time)|id(?:ref)?|implicit-timezone|in-scope-prefixes|index-of|innermost|insert-before|iri-to-uri|json-(?:doc|to-xml)|key|lang|last|load-xquery-module|local-name(?:-from-QName)?|(?:lower|upper)-case|matches|max|minutes-from-(?:dateTime|duration|time)|min|months?-from-(?:date(?:Time)?|duration)|name(?:space-uri-?(?:for-prefix|from-QName)?)?|nilled|node-name|normalize-(?:space|unicode)|not|number|one-or-more|outermost|parse-(?:ietf-date|json)|path|position|(?:prefix-from-)?QName|random-number-generator|regex-group|remove|replace|resolve-(?:QName|uri)|reverse|root|round(?:-half-to-even)?|seconds-from-(?:dateTime|duration|time)|snapshot|sort|starts-with|static-base-uri|stream-available|string-?(?:join|length|to-codepoints)?|subsequence|substring-?(?:after|before)?|sum|system-property|tail|timezone-from-(?:date(?:Time)?|time)|tokenize|trace|trans(?:form|late)|true|type-available|unordered|unparsed-(?:entity|text)?-?(?:public-id|uri|available|lines)?|uri-collection|xml-to-json|years?-from-(?:date(?:Time)?|duration)|zero-or-one)\b/},{begin:/\blocal:/,end:/\(/,excludeEnd:!0},{begin:/\bzip:/,end:/(?:zip-file|(?:xml|html|text|binary)-entry| (?:update-)?entries)\b/},{begin:/\b(?:util|db|functx|app|xdmp|xmldb):/,end:/\(/,excludeEnd:!0}]},{className:`string`,variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},{className:`number`,begin:/(\b0[0-7_]+)|(\b0x[0-9a-fA-F_]+)|(\b[1-9][0-9_]*(\.[0-9_]+)?)|[0_]\b/,relevance:0},{className:`comment`,begin:/\(:/,end:/:\)/,relevance:10,contains:[{className:`doctag`,begin:/@\w+/}]},{className:`meta`,begin:/%[\w\-:]+/},{className:`title`,begin:/\bxquery version "[13]\.[01]"\s?(?:encoding ".+")?/,end:/;/},{beginKeywords:`element attribute comment document processing-instruction`,end:/\{/,excludeEnd:!0},{begin:/<([\w._:-]+)(\s+\S*=('|").*('|"))?>/,end:/(\/[\w._:-]+>)/,subLanguage:`xml`,contains:[{begin:/\{/,end:/\}/,subLanguage:`xquery`},`self`]}]}}t.exports=n})),$8=o(((e,t)=>{function n(e){let t={className:`string`,contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n=e.UNDERSCORE_TITLE_MODE,r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i=`namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined`;return{name:`Zephir`,aliases:[`zep`],keywords:i,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:`doctag`,begin:/@[A-Za-z]+/}]}),{className:`string`,begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:`function`,beginKeywords:`function fn`,end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[n,{className:`params`,begin:/\(/,end:/\)/,keywords:i,contains:[`self`,e.C_BLOCK_COMMENT_MODE,t,r]}]},{className:`class`,beginKeywords:`class interface`,end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:`extends implements`},n]},{beginKeywords:`namespace`,end:/;/,illegal:/[.']/,contains:[n]},{beginKeywords:`use`,end:/;/,contains:[n]},{begin:/=>/},t,r]}}t.exports=n})),e5=l(o(((e,t)=>{var n=C4();n.registerLanguage(`1c`,w4()),n.registerLanguage(`abnf`,T4()),n.registerLanguage(`accesslog`,E4()),n.registerLanguage(`actionscript`,D4()),n.registerLanguage(`ada`,O4()),n.registerLanguage(`angelscript`,k4()),n.registerLanguage(`apache`,A4()),n.registerLanguage(`applescript`,j4()),n.registerLanguage(`arcade`,M4()),n.registerLanguage(`arduino`,N4()),n.registerLanguage(`armasm`,P4()),n.registerLanguage(`xml`,F4()),n.registerLanguage(`asciidoc`,I4()),n.registerLanguage(`aspectj`,L4()),n.registerLanguage(`autohotkey`,R4()),n.registerLanguage(`autoit`,z4()),n.registerLanguage(`avrasm`,B4()),n.registerLanguage(`awk`,V4()),n.registerLanguage(`axapta`,H4()),n.registerLanguage(`bash`,U4()),n.registerLanguage(`basic`,W4()),n.registerLanguage(`bnf`,G4()),n.registerLanguage(`brainfuck`,K4()),n.registerLanguage(`c`,q4()),n.registerLanguage(`cal`,J4()),n.registerLanguage(`capnproto`,Y4()),n.registerLanguage(`ceylon`,X4()),n.registerLanguage(`clean`,Z4()),n.registerLanguage(`clojure`,Q4()),n.registerLanguage(`clojure-repl`,$4()),n.registerLanguage(`cmake`,e3()),n.registerLanguage(`coffeescript`,t3()),n.registerLanguage(`coq`,n3()),n.registerLanguage(`cos`,r3()),n.registerLanguage(`cpp`,i3()),n.registerLanguage(`crmsh`,a3()),n.registerLanguage(`crystal`,o3()),n.registerLanguage(`csharp`,s3()),n.registerLanguage(`csp`,c3()),n.registerLanguage(`css`,l3()),n.registerLanguage(`d`,u3()),n.registerLanguage(`markdown`,d3()),n.registerLanguage(`dart`,f3()),n.registerLanguage(`delphi`,p3()),n.registerLanguage(`diff`,m3()),n.registerLanguage(`django`,h3()),n.registerLanguage(`dns`,g3()),n.registerLanguage(`dockerfile`,_3()),n.registerLanguage(`dos`,v3()),n.registerLanguage(`dsconfig`,y3()),n.registerLanguage(`dts`,b3()),n.registerLanguage(`dust`,x3()),n.registerLanguage(`ebnf`,S3()),n.registerLanguage(`elixir`,C3()),n.registerLanguage(`elm`,w3()),n.registerLanguage(`ruby`,T3()),n.registerLanguage(`erb`,E3()),n.registerLanguage(`erlang-repl`,D3()),n.registerLanguage(`erlang`,O3()),n.registerLanguage(`excel`,k3()),n.registerLanguage(`fix`,A3()),n.registerLanguage(`flix`,j3()),n.registerLanguage(`fortran`,M3()),n.registerLanguage(`fsharp`,N3()),n.registerLanguage(`gams`,P3()),n.registerLanguage(`gauss`,F3()),n.registerLanguage(`gcode`,I3()),n.registerLanguage(`gherkin`,L3()),n.registerLanguage(`glsl`,R3()),n.registerLanguage(`gml`,z3()),n.registerLanguage(`go`,B3()),n.registerLanguage(`golo`,V3()),n.registerLanguage(`gradle`,H3()),n.registerLanguage(`graphql`,U3()),n.registerLanguage(`groovy`,W3()),n.registerLanguage(`haml`,G3()),n.registerLanguage(`handlebars`,K3()),n.registerLanguage(`haskell`,q3()),n.registerLanguage(`haxe`,J3()),n.registerLanguage(`hsp`,Y3()),n.registerLanguage(`http`,X3()),n.registerLanguage(`hy`,Z3()),n.registerLanguage(`inform7`,Q3()),n.registerLanguage(`ini`,$3()),n.registerLanguage(`irpf90`,e6()),n.registerLanguage(`isbl`,t6()),n.registerLanguage(`java`,n6()),n.registerLanguage(`javascript`,r6()),n.registerLanguage(`jboss-cli`,i6()),n.registerLanguage(`json`,a6()),n.registerLanguage(`julia`,o6()),n.registerLanguage(`julia-repl`,s6()),n.registerLanguage(`kotlin`,c6()),n.registerLanguage(`lasso`,l6()),n.registerLanguage(`latex`,u6()),n.registerLanguage(`ldif`,d6()),n.registerLanguage(`leaf`,f6()),n.registerLanguage(`less`,p6()),n.registerLanguage(`lisp`,m6()),n.registerLanguage(`livecodeserver`,h6()),n.registerLanguage(`livescript`,g6()),n.registerLanguage(`llvm`,_6()),n.registerLanguage(`lsl`,v6()),n.registerLanguage(`lua`,y6()),n.registerLanguage(`makefile`,b6()),n.registerLanguage(`mathematica`,x6()),n.registerLanguage(`matlab`,S6()),n.registerLanguage(`maxima`,C6()),n.registerLanguage(`mel`,w6()),n.registerLanguage(`mercury`,T6()),n.registerLanguage(`mipsasm`,E6()),n.registerLanguage(`mizar`,D6()),n.registerLanguage(`perl`,O6()),n.registerLanguage(`mojolicious`,k6()),n.registerLanguage(`monkey`,A6()),n.registerLanguage(`moonscript`,j6()),n.registerLanguage(`n1ql`,M6()),n.registerLanguage(`nestedtext`,N6()),n.registerLanguage(`nginx`,P6()),n.registerLanguage(`nim`,F6()),n.registerLanguage(`nix`,I6()),n.registerLanguage(`node-repl`,L6()),n.registerLanguage(`nsis`,R6()),n.registerLanguage(`objectivec`,z6()),n.registerLanguage(`ocaml`,B6()),n.registerLanguage(`openscad`,V6()),n.registerLanguage(`oxygene`,H6()),n.registerLanguage(`parser3`,U6()),n.registerLanguage(`pf`,W6()),n.registerLanguage(`pgsql`,G6()),n.registerLanguage(`php`,K6()),n.registerLanguage(`php-template`,q6()),n.registerLanguage(`plaintext`,J6()),n.registerLanguage(`pony`,Y6()),n.registerLanguage(`powershell`,X6()),n.registerLanguage(`processing`,Z6()),n.registerLanguage(`profile`,Q6()),n.registerLanguage(`prolog`,$6()),n.registerLanguage(`properties`,e8()),n.registerLanguage(`protobuf`,t8()),n.registerLanguage(`puppet`,n8()),n.registerLanguage(`purebasic`,r8()),n.registerLanguage(`python`,i8()),n.registerLanguage(`python-repl`,a8()),n.registerLanguage(`q`,o8()),n.registerLanguage(`qml`,s8()),n.registerLanguage(`r`,c8()),n.registerLanguage(`reasonml`,l8()),n.registerLanguage(`rib`,u8()),n.registerLanguage(`roboconf`,d8()),n.registerLanguage(`routeros`,f8()),n.registerLanguage(`rsl`,p8()),n.registerLanguage(`ruleslanguage`,m8()),n.registerLanguage(`rust`,h8()),n.registerLanguage(`sas`,g8()),n.registerLanguage(`scala`,_8()),n.registerLanguage(`scheme`,v8()),n.registerLanguage(`scilab`,y8()),n.registerLanguage(`scss`,b8()),n.registerLanguage(`shell`,x8()),n.registerLanguage(`smali`,S8()),n.registerLanguage(`smalltalk`,C8()),n.registerLanguage(`sml`,w8()),n.registerLanguage(`sqf`,T8()),n.registerLanguage(`sql`,E8()),n.registerLanguage(`stan`,D8()),n.registerLanguage(`stata`,O8()),n.registerLanguage(`step21`,k8()),n.registerLanguage(`stylus`,A8()),n.registerLanguage(`subunit`,j8()),n.registerLanguage(`swift`,M8()),n.registerLanguage(`taggerscript`,N8()),n.registerLanguage(`yaml`,P8()),n.registerLanguage(`tap`,F8()),n.registerLanguage(`tcl`,I8()),n.registerLanguage(`thrift`,L8()),n.registerLanguage(`tp`,R8()),n.registerLanguage(`twig`,z8()),n.registerLanguage(`typescript`,B8()),n.registerLanguage(`vala`,V8()),n.registerLanguage(`vbnet`,H8()),n.registerLanguage(`vbscript`,U8()),n.registerLanguage(`vbscript-html`,W8()),n.registerLanguage(`verilog`,G8()),n.registerLanguage(`vhdl`,K8()),n.registerLanguage(`vim`,q8()),n.registerLanguage(`wasm`,J8()),n.registerLanguage(`wren`,Y8()),n.registerLanguage(`x86asm`,X8()),n.registerLanguage(`xl`,Z8()),n.registerLanguage(`xquery`,Q8()),n.registerLanguage(`zephir`,$8()),n.HighlightJS=n,n.default=n,t.exports=n}))()).default,t5=`mdk-usage`;function n5(){try{return JSON.parse(localStorage.getItem(t5)||`{}`)}catch{return{}}}function r5(e){localStorage.setItem(t5,JSON.stringify(e))}function i5(e){let t=n5(),n=t[e]||{count:0};n.count+=1,n.lastUsed=Date.now(),t[e]=n,r5(t)}function a5(){return n5()}function o5(e,t){let n=n5(),r=[...e];return t===`frequency`?r.sort((e,t)=>(n[t.name]?.count||0)-(n[e.name]?.count||0)):t===`recent`?r.sort((e,t)=>(n[t.name]?.lastUsed||0)-(n[e.name]?.lastUsed||0)):r.sort((e,t)=>e.name.localeCompare(t.name)),r}var s5=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},c5={class:`skill-meta`},l5={class:`skill-version`},u5={class:`skill-desc`},d5=s5({__name:`SkillCard`,props:{skill:{type:Object,required:!0},usages:{type:Number,default:0}},emits:[`refresh`,`click`],setup(e,{emit:t}){let n=e,r=t,i=Qz(),a=F(!1);async function o(e){a.value=!0;try{let t=await a0(n.skill.name,e);t.ok?(e&&i5(n.skill.name),i.success(`技能 "${n.skill.name}" 已${e?`启用`:`停用`}`),r(`refresh`)):t.locked&&i.warning(`技能 "${n.skill.name}" 被其他程序占用,无法${e?`启用`:`停用`}`)}catch{i.error(`操作失败`)}finally{a.value=!1}}return(t,n)=>{let i=ei(`n-switch`),s=ei(`n-tag`),c=ei(`n-card`);return B(),Aa(c,{class:`skill-card`,title:e.skill.name,size:`small`,onClick:n[1]||=e=>r(`click`)},{"header-extra":L(()=>[H(`span`,{onClick:n[0]||=Ps(()=>{},[`stop`])},[U(i,{value:e.skill.enabled,loading:a.value,"onUpdate:value":o},null,8,[`value`,`loading`])])]),default:L(()=>[H(`div`,c5,[H(`span`,l5,De(e.skill._updateCount>0?`r`+e.skill._updateCount:`v`+e.skill.version),1),(B(!0),V(ba,null,ii(e.skill.tags,e=>(B(),Aa(s,{key:e,size:`tiny`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128)),e.usages>0?(B(),Aa(s,{key:0,size:`tiny`,type:`warning`,bordered:!1},{default:L(()=>[Ra(` 使用 `+De(e.usages)+` 次 `,1)]),_:1})):Ba(``,!0)]),H(`p`,u5,De(e.skill.description||`暂无描述`),1)]),_:1},8,[`title`])}}},[[`__scopeId`,`data-v-ef4accd3`]]),f5={class:`modal-header`},p5={class:`modal-title`},m5={class:`modal-body`},h5={key:0,class:`modal-footer`},g5=s5({__name:`ModalComp`,props:{show:Boolean,title:{type:String,default:``},width:{type:String,default:`480px`},maskClosable:{type:Boolean,default:!0}},emits:[`update:show`],setup(e,{emit:t}){let n=e,r=t;function i(){r(`update:show`,!1)}function a(){n.maskClosable&&i()}let o=null,s=null;return Zn(()=>n.show,e=>{o&&=(document.removeEventListener(`keydown`,o),null),e?(s=document.body.style.overflow,document.body.style.overflow=`hidden`,o=e=>{e.key===`Escape`&&i()},document.addEventListener(`keydown`,o)):(document.body.style.overflow=s||``,s=null)},{immediate:!0}),Jr(()=>{o&&document.removeEventListener(`keydown`,o),s!==null&&(document.body.style.overflow=s||``)}),(t,n)=>(B(),Aa(fr,{to:`body`},[U(ko,{name:`modal-fade`},{default:L(()=>[e.show?(B(),V(`div`,{key:0,class:`modal-overlay`,onClick:Ps(a,[`self`])},[H(`div`,{class:`modal-card`,style:he({maxWidth:e.width})},[H(`div`,f5,[H(`span`,p5,De(e.title),1),H(`button`,{class:`modal-close`,onClick:i},`×`)]),H(`div`,m5,[ai(t.$slots,`default`,{},void 0,!0)]),t.$slots.footer?(B(),V(`div`,h5,[ai(t.$slots,`footer`,{},void 0,!0)])):Ba(``,!0)],4)])):Ba(``,!0)]),_:3})]))}},[[`__scopeId`,`data-v-36195a18`]]),_5={class:`dashboard`},v5={class:`page-header`},y5={class:`header-actions`},b5={key:0,class:`tag-filter`},x5={key:1,class:`search-bar`},S5={class:`setup-card-content`},C5={class:`setup-icon`},w5=[`onClick`],T5={class:`group-label`},E5={key:1},D5=[`onClick`],O5={class:`group-count`},k5={class:`group-body`},A5={key:4,class:`readme-fold`},j5={class:`fold-body`},M5=[`innerHTML`],N5={class:`detail-body`},P5={key:0,class:`edit-panel`},F5={class:`edit-row`},I5={key:0,class:`update-count-hint`},L5={class:`edit-row`},R5={class:`edit-row`},z5={class:`edit-actions`},B5={key:0,class:`source-info`},V5={class:`source-row`},H5={class:`source-value`},U5={class:`source-row`},W5={class:`source-value`},G5={class:`source-actions`},K5={key:0,class:`source-row`},q5={class:`source-value path-text`},J5={class:`source-actions`},Y5={key:1,class:`detail-status`},X5=[`innerHTML`],Z5={class:`pull-modal-body`},Q5={class:`pull-input-row`},$5={key:0,class:`source-manager`},e7={class:`source-manager-header`},t7={class:`source-manager-list`},n7=[`title`],r7={key:0,class:`source-manager-empty`},i7={class:`source-manager-actions`},a7={key:1,class:`pull-error`},o7={key:2,class:`pull-status`},s7={key:3,class:`preview-result`},c7={class:`preview-info`},l7={class:`preview-list`},u7={class:`preview-actions`},d7={key:4,class:`pull-status`},f7={key:5,class:`pull-result`},p7={class:`pull-result-line`},m7={key:0,class:`pull-result-line`},h7={class:`preview-actions`,style:{"margin-top":`12px`}},g7={key:0,class:`siblings-body`},_7={class:`siblings-desc`},v7={class:`siblings-list`},y7={class:`siblings-actions`},b7={class:`batch-modal-body`},x7={class:`batch-desc`},S7={class:`batch-actions`},C7={key:1,class:`batch-executing`},w7={key:0,class:`batch-result`},T7={key:0,class:`batch-result-line`},E7={key:1,class:`batch-result-line`},D7={key:2,class:`batch-result-line`},O7={class:`batch-actions`},k7={class:`batch-actions`,style:{"margin-top":`12px`}},A7=s5({__name:`Dashboard`,emits:[`refresh`],setup(e,{emit:t}){S4.use({renderer:{code({text:e,lang:t}){let n=t&&e5.getLanguage(t)?t:`plaintext`,r;try{r=e5.highlight(e,{language:n}).value}catch{r=e5.highlightAuto(e).value}return`<pre><button class="copy-btn" onclick="navigator.clipboard.writeText(this.parentNode.querySelector('code').textContent);this.textContent='已复制';setTimeout(()=>this.textContent='复制',1500)">复制</button><code class="hljs language-${n}">${r}</code></pre>`},link({href:e,text:t}){return`<a href="${e}"${e&&(e.startsWith(`http://`)||e.startsWith(`https://`))?` target="_blank" rel="noopener noreferrer"`:``}>${t}</a>`}}});let n=t,r=Qz();function i(){return CB([`dialog`],{configProviderProps:{theme:document.documentElement.getAttribute(`data-theme`)===`dark`?_Q:void 0}}).dialog}let a=F([]),o=F(!1),s=F(!1),c=F({}),l=F(null),u=F(``),d=F(!1),f=F(!1),p=F(null),m=F(!1),h=F(null),g=F(``),_=F(``),v=F(``),y=F([]),b=F(!1),x=F(null),S=W(()=>x.value?_.value!==x.value.version||v.value!==x.value.description||JSON.stringify([...y.value].sort())!==JSON.stringify([...x.value.tags].sort()):!1),C=F({}),w=e=>{C.value[e]=!C.value[e]},T=F(null),E=F(!1),D=F(null),O=F({}),k=F(!1),A=F(!1),j=F(`confirm`),M=F(null),N=F(null),ee=F(``);async function te(){let e=Object.keys(O.value).filter(e=>O.value[e]);if(e.length===0){r.info(`未选择任何技能`),D.value=null;return}k.value=!0;try{let t=await O0(e,D.value.url);t.ok&&(r.success(`${t.updated.length} 个技能已更新`),await Le())}catch{r.error(`更新失败`)}finally{k.value=!1,D.value=null}}let ne=F(null),re=F(``),P=F(!1),ie=F([]),ae=F({}),oe=F(!1),se=F(``),ce=F([]),le=F(`name`),ue=[{label:`按名称`,value:`name`},{label:`按频率`,value:`frequency`},{label:`最近使用`,value:`recent`}],de=F(``),fe=F(!1),pe=F(!1),me=F([]),he=F({}),ge=F(!1),_e=F(null),ve=F(``),ye=F(!1),xe=F(``),Se=W(()=>Object.keys(he.value).filter(e=>he.value[e]).length),Ce=W(()=>{if(!xe.value)return me.value;let e=xe.value.toLowerCase();return me.value.filter(t=>t.toLowerCase().includes(e))});function we(){let e=window.scrollY;ye.value=!0,de.value=``,pe.value=!1,fe.value=!1,me.value=[],he.value={},_e.value=null,ve.value=``,P.value=!1,Je(),Nn(()=>window.scrollTo(0,e))}function Te(){let e=Object.values(he.value).some(e=>!e);for(let t of Object.keys(he.value))he.value[t]=e}async function Ee(){if(!de.value.trim()){ve.value=`请输入仓库地址`;return}fe.value=!0,pe.value=!1,_e.value=null,ve.value=``;try{let e=await C0(de.value.trim());if(!ye.value)return;if(e.ok){me.value=e.skills||[];let t={};(e.skills||[]).forEach(e=>{t[e]=!0}),he.value=t,pe.value=!0}else ve.value=e.error||`预览失败`}catch{if(!ye.value)return;ve.value=`预览失败,请检查地址或网络`}finally{fe.value=!1}}async function Oe(){let e=Object.keys(he.value).filter(e=>he.value[e]);if(e.length===0){ve.value=`请至少选择一个技能`;return}ge.value=!0,ve.value=``;try{let t=await C0(de.value.trim(),e);if(!ye.value)return;t.ok?(_e.value={imported:t.imported,skipped:t.skipped||[]},await o0(e),r.success(`已拉取并安装 ${e.length} 个技能`),e.forEach(i5),await Le()):ve.value=t.error||`拉取失败`}catch{if(!ye.value)return;ve.value=`拉取失败,请检查地址或网络`}finally{ge.value=!1}}let ke=W(()=>new Set(a.value.map(e=>e.name))),Ae=W(()=>{let e=new Set;return a.value.forEach(t=>(t.tags||[]).forEach(t=>e.add(t))),[...e].sort()}),je=W(()=>{let e=a.value;if(ce.value.length>0&&(e=a.value.filter(e=>ce.value.every(t=>(e.tags||[]).includes(t)))),se.value){let t=se.value.toLowerCase();e=e.filter(e=>e.name.toLowerCase().includes(t)||(e.description||``).toLowerCase().includes(t))}return o5(e,le.value)}),Me=W(()=>{let e={};for(let t of je.value){let n=t.source?.type===`remote`,r=n?t.source.url:`__local__`;e[r]||(e[r]={key:r,type:n?`remote`:`local`,url:t.source?.url||``,skills:[]}),e[r].skills.push(t)}for(let t of Object.keys(e))C.value[t]===void 0&&(C.value[t]=!0);return Object.values(e).sort((e,t)=>e.type===`remote`&&t.type===`local`?-1:+(e.type===`local`&&t.type===`remote`))});function Ne(e){let t=ce.value.indexOf(e);t===-1?ce.value.push(e):ce.value.splice(t,1)}function Pe(e){return a5()[e]?.count||0}function Fe(e){return e&&e.replace(/^---[\s\S]*?---\s*/,``)}function Ie(e){if(!e)return``;let t=Fe(e);if(!t.trim())return``;try{return S4.parse(t)}catch{return t}}async function Le(){o.value=!0,s.value=!1;try{let e=await i0();Array.isArray(e)?(a.value=e,n(`refresh`)):e.error&&(s.value=!0,a.value=[])}catch{a.value=[]}finally{o.value=!1}}async function Re(){try{let e=await v0();e.content&&(u.value=Ie(e.content),l.value=e.content)}catch{}}async function ze(e){let t=window.scrollY;p.value=e,f.value=!0,m.value=!0,h.value=null,g.value=``,T.value=null,_.value=e.version||`1.0.0`,v.value=e.description||``,y.value=[...e.tags||[]],x.value={version:_.value,description:v.value,tags:[...y.value]},Nn(()=>window.scrollTo(0,t));try{T.value=await E0(e.name)}catch{}try{let t=await x0(e.name);t.content&&(h.value=t.content,await Nn(),g.value=Ie(t.content))}catch{h.value=null}finally{m.value=!1}}function Be(e){if(!e){if(S.value){i().warning({title:`未保存的修改`,content:`编辑面板中有未保存的修改,确定关闭吗?`,positiveText:`确定关闭`,negativeText:`取消`,onPositiveClick:()=>{Ve()}});return}Ve()}}function Ve(){f.value=!1,E.value=!1,m.value=!1,P0()}async function He(){if(p.value){E.value=!0;try{let e=await D0(p.value.name);if(!f.value)return;if(e.ok){if(e.updated===!1)r.info(`已是最新版本,无需更新`);else{if(r.success(`技能已更新到最新版本`),e.siblings&&e.siblings.length>0){D.value={name:p.value.name,url:T.value?.url||``,siblings:e.siblings};let t={};e.siblings.forEach(e=>{t[e]=!0}),O.value=t}e.updatedAt&&(T.value={type:`remote`,url:e.url,pulledAt:e.updatedAt})}await Le()}else r.error(e.error||`更新失败`)}catch{if(!f.value)return;r.error(`更新失败`)}finally{E.value=!1}}}async function Ue(e){let t=window.scrollY;M.value=e,N.value=null,ee.value=``,j.value=`confirm`,A.value=!0,Nn(()=>window.scrollTo(0,t))}async function We(){j.value=`executing`;try{let e=await O0(M.value.skills.map(e=>e.name),M.value.url);e.ok?(N.value={updated:e.updated,unchanged:e.unchanged,notFound:e.notFound},j.value=`done`,await Le()):(ee.value=e.error||`批量更新失败`,j.value=`error`)}catch{ee.value=`批量更新失败`,j.value=`error`}}function Ge(){p.value&&(k0(p.value.name),r.info(`已打开技能目录`))}async function Ke(){if(p.value){b.value=!0;try{(await S0(p.value.name,{version:_.value,description:v.value,tags:y.value})).ok&&(r.success(`技能信息已更新`),p.value.version=_.value,p.value.description=v.value,p.value.tags=[...y.value],x.value={version:_.value,description:v.value,tags:[...y.value]},await Le())}catch{r.error(`保存失败`)}finally{b.value=!1}}}async function qe(){if(p.value&&window.confirm(`确定要删除技能 "${p.value.name}" 吗?
7440
- 将同时删除源目录和项目目录中的文件。`))try{let e=await T0(p.value.name);e.ok?(r.success(`技能 "${p.value.name}" 已删除`),f.value=!1,await Le()):e.locked&&r.warning(e.error||`技能 "${p.value.name}" 被其他程序占用,无法删除`)}catch{r.error(`删除失败`)}}async function Je(){try{let e=await F0();c.value=e.names||{},ie.value=e.knownUrls||[]}catch{}}function Ye(){P.value=!P.value,P.value&&(ae.value={...c.value},Je())}async function Xe(){oe.value=!0;try{let e={};for(let[t,n]of Object.entries(ae.value))n&&n.trim()&&(e[t]=n.trim());(await I0(e)).ok&&(c.value=e,r.success(`别名已保存`),P.value=!1)}catch{r.error(`保存失败`)}finally{oe.value=!1}}function Ze(e){ne.value=e.key,re.value=c.value[e.url]||``}async function Qe(e){if(!ne.value)return;let t=e.url,n=re.value.trim(),r={...c.value};n?r[t]=n:delete r[t],ne.value=null;try{(await I0(r)).ok&&(c.value=r)}catch{}}function $e(e){return[{label:`全部启用`,key:`enable`},{label:`全部禁用`,key:`disable`},{label:`全部更新`,key:`update`},{type:`divider`},{label:`删除该源所有技能`,key:`delete`}]}async function et(e,t){let n=t.skills.map(e=>e.name);switch(e){case`enable`:try{let e=await L0(n,!0);e.locked?.length?r.warning(`已启用 ${n.length-e.locked.length} 个技能,${e.locked.length} 个被占用`):r.success(`${n.length} 个技能已启用`),await Le()}catch{r.error(`操作失败`)}break;case`disable`:try{let e=await L0(n,!1);e.locked?.length?r.warning(`已停用 ${n.length-e.locked.length} 个技能,${e.locked.length} 个被占用`):r.success(`${n.length} 个技能已停用`),await Le()}catch{r.error(`操作失败`)}break;case`update`:await Ue(t);break;case`delete`:i().warning({title:`删除确认`,content:`确定要删除该源下的 ${n.length} 个技能吗?将同时删除源目录和项目目录中的文件。`,positiveText:`确定删除`,negativeText:`取消`,onPositiveClick:async()=>{try{let e=await R0(n);e.locked?.length?r.warning(`已删除 ${e.deleted?.length||0} 个技能,${e.locked.length} 个被占用`):r.success(`${n.length} 个技能已删除`),await Le()}catch{r.error(`删除失败`)}}});break}}Wr(()=>{Le(),Re(),Je()}),Lr(Le);function tt(){document.visibilityState===`visible`&&(Le(),Re())}return Wr(()=>document.addEventListener(`visibilitychange`,tt)),Jr(()=>document.removeEventListener(`visibilitychange`,tt)),(e,t)=>{let n=ei(`n-select`),r=ei(`n-button`),i=ei(`n-tag`),x=ei(`n-input`),S=ei(`n-card`),Fe=ei(`n-dropdown`),Ie=ei(`n-spin`),Re=ei(`n-empty`),Ve=ei(`n-dynamic-tags`),Ue=ei(`n-divider`),Je=ei(`n-alert`),tt=ei(`n-checkbox`);return B(),V(`div`,_5,[H(`div`,v5,[t[28]||=H(`h2`,null,`技能列表`,-1),H(`div`,y5,[U(n,{value:le.value,"onUpdate:value":t[0]||=e=>le.value=e,options:ue,size:`small`,style:{width:`120px`}},null,8,[`value`]),U(r,{size:`small`,onClick:Le},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(q1))]),_:1})]),default:L(()=>[t[26]||=Ra(` 刷新 `,-1)]),_:1}),s.value?Ba(``,!0):(B(),Aa(r,{key:0,size:`small`,onClick:we},{default:L(()=>[...t[27]||=[Ra(` 拉取 `,-1)]]),_:1}))])]),Ae.value.length>0?(B(),V(`div`,b5,[U(i,{size:`small`,bordered:!1,type:ce.value.length===0?`primary`:`default`,style:{cursor:`pointer`},onClick:t[1]||=e=>ce.value=[]},{default:L(()=>[...t[29]||=[Ra(` 全部 `,-1)]]),_:1},8,[`type`]),(B(!0),V(ba,null,ii(Ae.value,e=>(B(),Aa(i,{key:e,size:`small`,bordered:!1,type:ce.value.includes(e)?`primary`:`default`,style:{cursor:`pointer`},onClick:t=>Ne(e)},{default:L(()=>[Ra(De(e),1)]),_:2},1032,[`type`,`onClick`]))),128))])):Ba(``,!0),!s.value&&a.value.length>0?(B(),V(`div`,x5,[U(x,{value:se.value,"onUpdate:value":t[2]||=e=>se.value=e,placeholder:`搜索技能名称或描述...`,size:`small`,clearable:``},{prefix:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(Y1))]),_:1})]),_:1},8,[`value`])])):Ba(``,!0),U(Ie,{show:o.value},{default:L(()=>[s.value?(B(),Aa(S,{key:0,class:`setup-card`,size:`small`},{default:L(()=>[H(`div`,S5,[H(`div`,C5,[U(sn(lI),{size:`48`,color:`#2080f0`},{default:L(()=>[U(sn(V1))]),_:1})]),t[31]||=H(`h3`,{class:`setup-title`},`欢迎使用 mdk-skills`,-1),t[32]||=H(`p`,{class:`setup-desc`},[Ra(` 请先设置技能目录,指向包含 `),H(`code`,null,`.claude/skills`),Ra(` 的仓库路径。 设置后即可浏览和安装技能。 `)],-1),U(r,{type:`primary`,size:`small`,onClick:t[3]||=t=>e.$router.push({name:`Settings`})},{default:L(()=>[...t[30]||=[Ra(` 前往设置 `,-1)]]),_:1})])]),_:1})):Ba(``,!0),(B(!0),V(ba,null,ii(Me.value,e=>(B(),V(`div`,{key:e.key,class:be([`skill-group`,`group-`+e.type])},[H(`div`,{class:`group-header`,onClick:t=>w(e.key)},[H(`span`,{class:be([`fold-arrow`,{open:C.value[e.key]}])},`▶`,2),H(`span`,{class:be([`group-indicator`,`indicator-`+e.type])},null,2),H(`span`,T5,[e.type===`remote`?(B(),V(ba,{key:0},[ne.value===e.key?(B(),V(`span`,{key:0,class:`alias-edit-inline`,onClick:t[6]||=Ps(()=>{},[`stop`])},[U(x,{value:re.value,"onUpdate:value":t[4]||=e=>re.value=e,size:`tiny`,style:{width:`200px`},autofocus:``,onBlur:t=>Qe(e),onKeyup:[Is(t=>Qe(e),[`enter`]),t[5]||=Is(e=>ne.value=null,[`escape`])]},null,8,[`value`,`onBlur`,`onKeyup`])])):(B(),V(`span`,E5,De(c.value[e.url]||e.url),1)),H(`span`,{class:`alias-edit-trigger`,onClick:Ps(t=>Ze(e),[`stop`])},[U(sn(lI),{size:`13`,class:`alias-edit-icon`},{default:L(()=>[U(sn(G1))]),_:1})],8,D5)],64)):(B(),V(ba,{key:1},[Ra(`本地技能`)],64))]),H(`span`,O5,De(e.skills.length)+` 个`,1),e.type===`remote`?(B(),V(`span`,{key:0,onClick:t[7]||=Ps(()=>{},[`stop`])},[U(Fe,{trigger:`click`,options:$e(e),onSelect:t=>et(t,e)},{default:L(()=>[U(r,{size:`tiny`,class:`group-menu-btn`},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(z1))]),_:1})]),_:1})]),_:1},8,[`options`,`onSelect`])])):Ba(``,!0)],8,w5),Gn(H(`div`,k5,[(B(!0),V(ba,null,ii(e.skills,e=>(B(),Aa(d5,{key:e.name,skill:e,usages:Pe(e.name),onRefresh:Le,onClick:t=>ze(e)},null,8,[`skill`,`usages`,`onClick`]))),128))],512),[[qo,C.value[e.key]]])],2))),128))]),_:1},8,[`show`]),!o.value&&a.value.length===0&&!s.value?(B(),Aa(Re,{key:2,description:`暂无技能数据`},{extra:L(()=>[U(r,{size:`small`,onClick:we},{default:L(()=>[...t[33]||=[Ra(`去拉取技能`,-1)]]),_:1})]),_:1})):Ba(``,!0),!o.value&&a.value.length>0&&je.value.length===0?(B(),Aa(Re,{key:3,description:`没有匹配的技能`},{extra:L(()=>[U(r,{size:`small`,onClick:t[8]||=e=>{ce.value=[],se.value=``}},{default:L(()=>[...t[34]||=[Ra(`清除筛选`,-1)]]),_:1})]),_:1})):Ba(``,!0),l.value?(B(),V(`div`,A5,[H(`div`,{class:`fold-header`,onClick:t[9]||=e=>d.value=!d.value},[H(`span`,{class:be([`fold-arrow`,{open:d.value}])},`▶`,2),t[35]||=Ra(` 仓库说明 `,-1)]),Gn(H(`div`,j5,[H(`div`,{class:`markdown-content`,innerHTML:u.value},null,8,M5)],512),[[qo,d.value]])])):Ba(``,!0),U(g5,{show:f.value,title:p.value?.name||`技能详情`,width:`720px`,"mask-closable":!0,"onUpdate:show":Be},{default:L(()=>[H(`div`,N5,[p.value?(B(),V(`div`,P5,[H(`div`,F5,[t[36]||=H(`span`,{class:`edit-label`},`版本`,-1),U(x,{value:_.value,"onUpdate:value":t[10]||=e=>_.value=e,size:`small`,style:{width:`120px`}},null,8,[`value`]),p.value?._updateCount>0?(B(),V(`span`,I5,`r`+De(p.value._updateCount),1)):Ba(``,!0)]),H(`div`,L5,[t[37]||=H(`span`,{class:`edit-label`},`描述`,-1),U(x,{value:v.value,"onUpdate:value":t[11]||=e=>v.value=e,type:`textarea`,size:`small`,rows:2},null,8,[`value`])]),H(`div`,R5,[t[38]||=H(`span`,{class:`edit-label`},`标签`,-1),U(Ve,{value:y.value,"onUpdate:value":t[12]||=e=>y.value=e,size:`small`},null,8,[`value`])]),H(`div`,z5,[U(r,{size:`small`,type:`primary`,onClick:Ke,loading:b.value},{default:L(()=>[...t[39]||=[Ra(`保存`,-1)]]),_:1},8,[`loading`]),U(r,{size:`small`,type:`error`,onClick:qe},{default:L(()=>[...t[40]||=[Ra(`删除技能`,-1)]]),_:1})]),T.value?(B(),V(`div`,B5,[T.value.type===`remote`?(B(),V(ba,{key:0},[H(`div`,V5,[t[41]||=H(`span`,{class:`source-label`},`来源`,-1),H(`span`,H5,De(c.value[T.value.url]||T.value.url),1)]),H(`div`,U5,[t[42]||=H(`span`,{class:`source-label`},`拉取时间`,-1),H(`span`,W5,De(new Date(T.value.pulledAt).toLocaleString()),1)]),H(`div`,G5,[U(r,{size:`small`,onClick:He,loading:E.value},{default:L(()=>[...t[43]||=[Ra(`检查更新`,-1)]]),_:1},8,[`loading`])])],64)):(B(),V(ba,{key:1},[t[46]||=H(`div`,{class:`source-row`},[H(`span`,{class:`source-label`},`类型`),H(`span`,{class:`source-value local-tag`},`本地技能`)],-1),T.value.path?(B(),V(`div`,K5,[t[44]||=H(`span`,{class:`source-label`},`路径`,-1),H(`span`,q5,De(T.value.path),1)])):Ba(``,!0),H(`div`,J5,[U(r,{size:`small`,onClick:Ge},{default:L(()=>[...t[45]||=[Ra(`打开目录`,-1)]]),_:1})]),t[47]||=H(`div`,{class:`local-hint`},` 本地技能暂不支持远程更新。推送到 Git 仓库后可使用"拉取"功能分享给团队。 `,-1)],64))])):Ba(``,!0),U(Ue,{style:{margin:`12px 0`}})])):Ba(``,!0),m.value?(B(),V(`div`,Y5,[U(Ie)])):h.value?(B(),V(`div`,{key:2,class:`markdown-content`,innerHTML:g.value},null,8,X5)):(B(),Aa(Re,{key:3,description:`该技能没有 SKILL.md 文档`}))])]),_:1},8,[`show`,`title`]),U(g5,{show:ye.value,title:`从远程仓库拉取`,width:`600px`,"mask-closable":!0,"onUpdate:show":t[19]||=e=>{e||(ye.value=!1,ge.value=!1,fe.value=!1,sn(P0)(),sn(w0)(de.value).catch(()=>{}))}},{default:L(()=>[H(`div`,Z5,[H(`div`,Q5,[U(x,{value:de.value,"onUpdate:value":t[13]||=e=>de.value=e,placeholder:`输入 GitHub 仓库地址...`,size:`small`,onKeyup:Is(Ee,[`enter`])},null,8,[`value`]),U(r,{size:`small`,type:`primary`,onClick:Ee,loading:fe.value},{default:L(()=>[...t[48]||=[Ra(`预览`,-1)]]),_:1},8,[`loading`]),U(r,{size:`small`,onClick:Ye},{default:L(()=>[...t[49]||=[Ra(`管理源`,-1)]]),_:1})]),P.value?(B(),V(`div`,$5,[H(`div`,e7,[t[51]||=H(`span`,{class:`source-manager-title`},`远程源别名`,-1),U(r,{size:`tiny`,text:``,onClick:t[14]||=e=>P.value=!1},{default:L(()=>[...t[50]||=[Ra(`关闭`,-1)]]),_:1})]),H(`div`,t7,[(B(!0),V(ba,null,ii(ie.value,e=>(B(),V(`div`,{key:e,class:`source-manager-row`},[H(`span`,{class:`source-manager-url`,title:e},De(e),9,n7),U(x,{value:ae.value[e],"onUpdate:value":t=>ae.value[e]=t,placeholder:`输入别名...`,size:`tiny`,style:{width:`180px`},clearable:``},null,8,[`value`,`onUpdate:value`])]))),128)),ie.value.length===0?(B(),V(`div`,r7,`暂无已拉取的远程源`)):Ba(``,!0)]),H(`div`,i7,[U(r,{size:`small`,type:`primary`,onClick:Xe,loading:oe.value},{default:L(()=>[...t[52]||=[Ra(`保存`,-1)]]),_:1},8,[`loading`])])])):Ba(``,!0),ve.value?(B(),V(`div`,a7,[U(Je,{type:`error`,bordered:!1,closable:``,onClose:t[15]||=e=>ve.value=``},{default:L(()=>[Ra(De(ve.value),1)]),_:1})])):Ba(``,!0),fe.value?(B(),V(`div`,o7,[U(Ie,{size:`small`}),t[53]||=H(`span`,null,`正在获取远程技能列表...`,-1)])):Ba(``,!0),pe.value&&!ge.value&&!_e.value?(B(),V(`div`,s7,[H(`div`,c7,[t[55]||=Ra(` 发现 `,-1),H(`strong`,null,De(me.value.length),1),t[56]||=Ra(` 个技能: `,-1),U(r,{size:`tiny`,text:``,onClick:Te},{default:L(()=>[...t[54]||=[Ra(`全选/取消`,-1)]]),_:1})]),U(x,{value:xe.value,"onUpdate:value":t[16]||=e=>xe.value=e,placeholder:`搜索技能...`,size:`small`,clearable:``,class:`pull-search-input`},null,8,[`value`]),H(`div`,l7,[(B(!0),V(ba,null,ii(Ce.value,e=>(B(),Aa(tt,{key:e,checked:he.value[e],"onUpdate:checked":t=>he.value[e]=t},{default:L(()=>[Ra(De(e)+` `,1),ke.value.has(e)?(B(),Aa(i,{key:0,size:`tiny`,type:`success`,bordered:!1,class:`installed-tag`},{default:L(()=>[...t[57]||=[Ra(`已安装`,-1)]]),_:1})):Ba(``,!0)]),_:2},1032,[`checked`,`onUpdate:checked`]))),128))]),H(`div`,u7,[U(r,{size:`small`,onClick:t[17]||=e=>ye.value=!1},{default:L(()=>[...t[58]||=[Ra(`取消`,-1)]]),_:1}),U(r,{size:`small`,type:`primary`,onClick:Oe,loading:ge.value,disabled:Se.value===0},{default:L(()=>[Ra(` 拉取选中 (`+De(Se.value)+`) `,1)]),_:1},8,[`loading`,`disabled`])])])):Ba(``,!0),ge.value?(B(),V(`div`,d7,[U(Ie,{size:`small`}),t[59]||=H(`span`,null,`正在拉取选中技能...`,-1)])):Ba(``,!0),_e.value?(B(),V(`div`,f7,[H(`div`,p7,[t[60]||=H(`span`,{class:`pull-result-label`},`已导入:`,-1),(B(!0),V(ba,null,ii(_e.value.imported,e=>(B(),Aa(i,{key:e,size:`small`,type:`success`,style:{margin:`2px`}},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))]),_e.value.skipped?.length?(B(),V(`div`,m7,[t[61]||=H(`span`,{class:`pull-result-label`},`跳过:`,-1),(B(!0),V(ba,null,ii(_e.value.skipped,e=>(B(),Aa(i,{key:e,size:`small`,style:{margin:`2px`}},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128)),t[62]||=H(`span`,{class:`pull-result-hint`},`(无 SKILL.md)`,-1)])):Ba(``,!0),H(`div`,h7,[U(r,{size:`small`,type:`primary`,onClick:t[18]||=e=>ye.value=!1},{default:L(()=>[...t[63]||=[Ra(`完成`,-1)]]),_:1})])])):Ba(``,!0)])]),_:1},8,[`show`]),U(g5,{show:!!D.value,title:`同源技能更新`,width:`480px`,"mask-closable":!0,"onUpdate:show":t[21]||=e=>{e||(D.value=null)}},{default:L(()=>[D.value?(B(),V(`div`,g7,[H(`p`,_7,[H(`strong`,null,De(D.value.name),1),t[64]||=Ra(` 已更新。同仓库还有以下技能,是否一起更新? `,-1)]),H(`div`,v7,[(B(!0),V(ba,null,ii(D.value.siblings,e=>(B(),Aa(tt,{key:e,checked:O.value[e],"onUpdate:checked":t=>O.value[e]=t},{default:L(()=>[Ra(De(e),1)]),_:2},1032,[`checked`,`onUpdate:checked`]))),128))]),H(`div`,y7,[U(r,{size:`small`,onClick:t[20]||=e=>D.value=null},{default:L(()=>[...t[65]||=[Ra(`跳过`,-1)]]),_:1}),U(r,{size:`small`,type:`primary`,onClick:te,loading:k.value},{default:L(()=>[...t[66]||=[Ra(` 更新选中 `,-1)]]),_:1},8,[`loading`])])])):Ba(``,!0)]),_:1},8,[`show`]),U(g5,{show:A.value,title:j.value===`confirm`?`批量更新确认`:j.value===`executing`?`正在更新...`:j.value===`done`?`更新完成`:`更新失败`,width:`480px`,"mask-closable":j.value!==`executing`,"onUpdate:show":t[25]||=e=>{e||(A.value=!1,j.value===`executing`&&sn(P0)())}},{default:L(()=>[H(`div`,b7,[j.value===`confirm`?(B(),V(ba,{key:0},[H(`p`,x7,`确定更新 "`+De(M.value?.url)+`" 下的 `+De(M.value?.skills?.length)+` 个技能吗?`,1),H(`div`,S7,[U(r,{size:`small`,onClick:t[22]||=e=>A.value=!1},{default:L(()=>[...t[67]||=[Ra(`取消`,-1)]]),_:1}),U(r,{size:`small`,type:`primary`,onClick:We},{default:L(()=>[...t[68]||=[Ra(`开始更新`,-1)]]),_:1})])],64)):Ba(``,!0),j.value===`executing`?(B(),V(`div`,C7,[U(Ie,{size:`small`}),t[69]||=H(`span`,null,`正在更新,请稍候...`,-1)])):Ba(``,!0),j.value===`done`?(B(),V(ba,{key:2},[N.value?(B(),V(`div`,w7,[N.value.updated?.length>0?(B(),V(`div`,T7,[t[70]||=H(`span`,{class:`batch-result-label`},`已更新:`,-1),(B(!0),V(ba,null,ii(N.value.updated,e=>(B(),Aa(i,{key:e,size:`small`,type:`success`},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])):Ba(``,!0),N.value.unchanged?.length>0?(B(),V(`div`,E7,[t[71]||=H(`span`,{class:`batch-result-label`},`已是最新:`,-1),(B(!0),V(ba,null,ii(N.value.unchanged,e=>(B(),Aa(i,{key:e,size:`small`},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])):Ba(``,!0),N.value.notFound?.length>0?(B(),V(`div`,D7,[t[72]||=H(`span`,{class:`batch-result-label`},`未找到:`,-1),(B(!0),V(ba,null,ii(N.value.notFound,e=>(B(),Aa(i,{key:e,size:`small`,type:`warning`},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])):Ba(``,!0)])):Ba(``,!0),H(`div`,O7,[U(r,{size:`small`,type:`primary`,onClick:t[23]||=e=>A.value=!1},{default:L(()=>[...t[73]||=[Ra(`完成`,-1)]]),_:1})])],64)):Ba(``,!0),j.value===`error`?(B(),V(ba,{key:3},[U(Je,{type:`error`,bordered:!1},{default:L(()=>[Ra(De(ee.value),1)]),_:1}),H(`div`,k7,[U(r,{size:`small`,type:`primary`,onClick:t[24]||=e=>A.value=!1},{default:L(()=>[...t[74]||=[Ra(`关闭`,-1)]]),_:1})])],64)):Ba(``,!0)])]),_:1},8,[`show`,`title`,`mask-closable`])])}}},[[`__scopeId`,`data-v-4c899b15`]]),j7={class:`scene-switch`},M7={key:0,class:`readme-fold`},N7={class:`fold-body`},P7=[`innerHTML`],F7={class:`page-header`},I7={class:`scene-grid`},L7={class:`scene-desc`},R7={class:`scene-footer`},z7={class:`popover-fail-detail`},B7={key:0,class:`popover-fail-section`},V7={key:1,class:`popover-fail-section`},H7={style:{"margin-top":`8px`,"border-top":`1px solid #eee`,"padding-top":`6px`,"text-align":`center`}},U7={class:`skill-preview-list`},W7={key:0,class:`diff-preview`},G7={class:`diff-hint`},K7={key:0,class:`diff-section`},q7={class:`diff-label added-label`},J7={class:`diff-tags`},Y7={key:1,class:`diff-section`},X7={class:`diff-label removed-label`},Z7={class:`diff-tags`},Q7={key:2,class:`diff-section`},$7={class:`diff-label kept-label`},e9={class:`diff-tags`},t9={key:1,class:`executing-state`},n9={class:`executing-spinner`},r9={class:`executing-text`},i9={key:2,class:`diff-preview`},a9={class:`diff-hint`},o9={key:0,class:`diff-section`},s9={class:`diff-label added-label`},c9={class:`diff-tags`},l9={key:1,class:`diff-section`},u9={class:`diff-label removed-label`},d9={class:`diff-tags`},f9={key:0,class:`fail-marker`,title:`删除失败(被占用)`},p9={key:2,class:`diff-section`},m9={class:`diff-label kept-label`},h9={class:`diff-tags`},g9={key:3,class:`failure-section`},_9={class:`failure-title removal-failure`},v9={class:`failure-list`},y9={class:`failure-name`},b9={key:4,class:`failure-section`},x9={class:`failure-title install-failure`},S9={class:`failure-list`},C9={class:`failure-name`},w9={class:`pending-confirm-body`},T9={key:0},E9={key:1,class:`pending-confirm-section`},D9={key:2,class:`pending-confirm-section`},O9={class:`modal-skill-groups`},k9=[`onClick`],A9={class:`skill-group-label`},j9={class:`skill-group-count`},M9={class:`skill-group-body`},N9=[`innerHTML`],P9={class:`modal-skill-groups`},F9=[`onClick`],I9={class:`skill-group-label`},L9={class:`skill-group-count`},R9={class:`skill-group-body`},z9=[`innerHTML`],B9={key:0,class:`hint-text`},V9={class:`always-apply-grid`},H9=s5({__name:`SceneSwitch`,emits:[`refresh`],setup(e,{emit:t}){S4.use({renderer:{code({text:e,lang:t}){let n=t&&e5.getLanguage(t)?t:`plaintext`,r;try{r=e5.highlight(e,{language:n}).value}catch{r=e5.highlightAuto(e).value}return`<pre><button class="copy-btn" onclick="navigator.clipboard.writeText(this.parentNode.querySelector('code').textContent);this.textContent='已复制';setTimeout(()=>this.textContent='复制',1500)">复制</button><code class="hljs language-${n}">${r}</code></pre>`},link({href:e,text:t}){return`<a href="${e}"${e&&(e.startsWith(`http://`)||e.startsWith(`https://`))?` target="_blank" rel="noopener noreferrer"`:``}>${t}</a>`}}});let n=t,r=Qz(),i=F(null),a=F(!0),o=F(``),s=F([]),c=F(null),l=F([]),u=F(!1),d=F(null),f=F(!1),p=F(!1),m=F(null),h=F({added:[],removed:[],kept:[]}),g=F(`preview`),_=F([]),v=F([]),y=F(null),b=F(!1),x=F(null),S=W(()=>{if(!c.value)return`无`;let e=s.value.find(e=>e.id===c.value);return e?e.name:`无`}),C=F(!1),w=F([]),T=F(!1),E=F(``),D=F(!1),O=F(null),k=F(!1),A=F(``),j=F({name:``,description:``,skills:[],always_apply:[]}),M=F({});function N(e){M.value[e]=!M.value[e]}let ee=W(()=>s.value),te=W(()=>{let e={};for(let t of l.value){let n=t.source?.type===`remote`,r=n?t.source.url:`__local__`;e[r]||(e[r]={key:r,type:n?`remote`:`local`,url:t.source?.url||``,skills:[]}),e[r].skills.push(t)}for(let t of Object.keys(e))M.value[t]===void 0&&(M.value[t]=!0);return Object.values(e).sort((e,t)=>e.type===`remote`&&t.type===`local`?-1:+(e.type===`local`&&t.type===`remote`))});function ne(e,t){if(!t)return e.skills;let n=t.toLowerCase();return e.skills.filter(e=>e.name.toLowerCase().includes(n))}function re(e){let t=[];for(let n of te.value)t.push(...ne(n,e).map(e=>e.name));return t}function P(e,t){let n=re(e);return[...new Set([...t,...n])]}function ie(e,t){let n=re(e),r=new Set(n),i=t.filter(e=>!r.has(e)),a=n.filter(e=>!t.includes(e));return[...i,...a]}function ae(){return[]}function oe(e,t){if(!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`(${n})`,`gi`),`<mark class="search-highlight">$1</mark>`)}function se(e){return e&&e.replace(/^---[\s\S]*?---\s*/,``)}function ce(e){if(!e)return``;let t=se(e);if(!t.trim())return``;try{return S4.parse(t)}catch{return t}}async function le(){try{let e=await y0();e.content&&(o.value=ce(e.content),i.value=e.content)}catch{}}async function ue(){u.value=!0;try{let e=await s0();s.value=e.profiles||[],c.value=e.activeProfile,l.value=await i0()}finally{u.value=!1}}function de(){O.value=null,j.value={name:``,description:``,skills:[],always_apply:[]},D.value=!0}function fe(e){O.value=e,j.value={name:e.name,description:e.description||``,skills:[...e.skills||[]],always_apply:[...e.always_apply||[]]},D.value=!0}function pe(){w.value=l.value.filter(e=>e.enabled).map(e=>e.name),C.value=!0}async function me(){T.value=!0;try{let e=await o0(w.value);e.ok&&(e.locked?.length?r.warning(`已安装 ${w.value.length-e.locked.length} 个技能,${e.locked.length} 个被占用`):r.success(`已安装 ${w.value.length} 个技能`),c.value=`custom`,C.value=!1,w.value.forEach(i5),n(`refresh`))}catch{r.error(`安装失败`)}finally{T.value=!1}}async function he(){if(!j.value.name.trim()){r.warning(`请填写场景名称`);return}k.value=!0;try{let e=await l0({id:O.value?.id,name:j.value.name.trim(),description:j.value.description.trim(),skills:j.value.skills,always_apply:j.value.always_apply});e.ok?(s.value=e.profiles,r.success(O.value?`场景已更新`:`场景已创建`),D.value=!1,n(`refresh`)):e.error&&r.error(e.error)}catch{r.error(`保存失败`)}finally{k.value=!1}}async function ge(e){try{let t=await u0(e.id);t.ok?(s.value=s.value.filter(t=>t.id!==e.id),r.success(`场景「${e.name}」已删除`),n(`refresh`)):t.error&&r.error(t.error)}catch{r.error(`删除失败`)}}function _e(e){let t=l.value.filter(e=>e.enabled).map(e=>e.name),n=e.skills||[];return{added:n.filter(e=>!t.includes(e)),removed:t.filter(e=>!n.includes(e)),kept:t.filter(e=>n.includes(e))}}function ve(e){if(y.value){x.value=e,b.value=!0;return}m.value=e,h.value=_e(e),_.value=[],v.value=[],g.value=`preview`,f.value=!0}function ye(){y.value=null,b.value=!1;let e=x.value;x.value=null,e&&ve(e)}function xe(){b.value=!1,y.value&&(_.value=[...y.value.failedDelete||[]],v.value=[...y.value.failedInstall||[]],g.value=`failed`,m.value=s.value.find(e=>e.id===c.value)||null,f.value=!0)}async function Se(){if(m.value){g.value=`executing`,p.value=!0,d.value=m.value.id;try{let e=await c0(m.value.id);e.ok&&(c.value=m.value.id,_.value=e.failedDelete||[],v.value=e.failedInstall||[],_.value.length>0||v.value.length>0?(g.value=`failed`,y.value={failedDelete:[..._.value],failedInstall:[...v.value]}):(y.value=null,r.success(`已切换到「${m.value.name}」`),f.value=!1),(m.value.skills||[]).forEach(i5),n(`refresh`),l.value=await i0())}catch{r.error(`切换失败`),g.value=`preview`}finally{p.value=!1,d.value=null}}}async function Ce(e,t){let n=e===`delete`?A0:j0,i=e===`delete`?`删除`:`安装`;try{let a=await n(t);a.ok?(r.success(`技能 "${t}" ${i}成功`),e===`delete`?_.value=_.value.filter(e=>e!==t):v.value=v.value.filter(e=>e!==t),_.value.length===0&&v.value.length===0?y.value=null:y.value&&={failedDelete:[..._.value],failedInstall:[...v.value]},_.value.length===0&&v.value.length===0&&await Oe()):a.locked?r.warning(`技能 "${t}" 仍被占用,请关闭相关程序后重试`):r.error(a.error||`${i}失败`)}catch{r.error(`${i}失败`)}}async function we(){for(let e of[...v.value])if(await Ce(`install`,e),f.value===!1)return;for(let e of[..._.value])if(await Ce(`delete`,e),f.value===!1)return}function Te(){if(f.value=!1,y.value){let e=[];y.value.failedDelete?.length&&e.push(`删除失败 ${y.value.failedDelete.length} 个`),y.value.failedInstall?.length&&e.push(`安装失败 ${y.value.failedInstall.length} 个`),r.warning(`部分技能未就绪:${e.join(`、`)}`)}}function Ee(){M0().catch(()=>r.error(`打开目录失败`))}async function Oe(){m.value&&(await c0(m.value.id)).ok&&(r.success(`已切换到「${m.value.name}」`),f.value=!1,n(`refresh`),l.value=await i0())}function ke(){y.value&&(_.value=[...y.value.failedDelete||[]],v.value=[...y.value.failedInstall||[]],g.value=`failed`,m.value=s.value.find(e=>e.id===c.value)||null,f.value=!0)}return Wr(()=>{ue(),le()}),(e,t)=>{let n=ei(`n-button`),r=ei(`n-popconfirm`),s=ei(`n-space`),l=ei(`n-tag`),x=ei(`n-popover`),re=ei(`n-card`),se=ei(`n-spin`),ce=ei(`n-input`),le=ei(`n-checkbox`),ue=ei(`n-checkbox-group`),_e=ei(`n-form-item`),Oe=ei(`n-divider`),Ae=ei(`n-form`);return B(),V(`div`,j7,[i.value?(B(),V(`div`,M7,[H(`div`,{class:`fold-header`,onClick:t[0]||=e=>a.value=!a.value},[H(`span`,{class:be([`fold-arrow`,{open:a.value}])},`▶`,2),t[21]||=Ra(` 技能说明 `,-1)]),Gn(H(`div`,N7,[H(`div`,{class:`markdown-content`,innerHTML:o.value},null,8,P7)],512),[[qo,a.value]])])):Ba(``,!0),H(`div`,F7,[t[23]||=H(`h2`,null,`场景切换`,-1),U(n,{size:`small`,type:`primary`,onClick:de},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(T1))]),_:1})]),default:L(()=>[t[22]||=Ra(` 新建场景 `,-1)]),_:1})]),U(se,{show:u.value},{default:L(()=>[H(`div`,I7,[(B(!0),V(ba,null,ii(ee.value,e=>(B(),Aa(re,{key:e.id,class:be([`scene-card`,{active:e.id===c.value}]),title:e.name,size:`small`},{"header-extra":L(()=>[e.id!==`custom`&&e.skills!==null?(B(),Aa(s,{key:0,size:4},{default:L(()=>[U(n,{size:`tiny`,quaternary:``,onClick:t=>fe(e)},{icon:L(()=>[U(sn(lI),{size:`16`},{default:L(()=>[U(sn(G1))]),_:1})]),_:1},8,[`onClick`]),U(r,{"negative-text":`取消`,"positive-text":`确认删除`,onPositiveClick:t=>ge(e)},{trigger:L(()=>[U(n,{size:`tiny`,quaternary:``},{icon:L(()=>[U(sn(lI),{size:`16`},{default:L(()=>[U(sn(t0))]),_:1})]),_:1})]),default:L(()=>[Ra(` 确定删除场景「`+De(e.name)+`」? `,1)]),_:2},1032,[`onPositiveClick`])]),_:2},1024)):Ba(``,!0)]),footer:L(()=>[H(`div`,R7,[U(s,{size:6},{default:L(()=>[e.id===c.value?(B(),Aa(l,{key:0,type:`success`,size:`small`},{default:L(()=>[...t[24]||=[Ra(` 当前场景 `,-1)]]),_:1})):Ba(``,!0),e.id===c.value&&y.value?(B(),Aa(x,{key:1,trigger:`hover`,placement:`top`,width:`280`},{trigger:L(()=>[U(l,{type:`warning`,size:`small`,style:{cursor:`pointer`}},{default:L(()=>[...t[25]||=[Ra(` ⚠ 未就绪 `,-1)]]),_:1})]),default:L(()=>[H(`div`,z7,[y.value.failedDelete?.length?(B(),V(`div`,B7,[t[26]||=H(`div`,{class:`popover-fail-title`},`🔒 删除失败(被占用)`,-1),(B(!0),V(ba,null,ii(y.value.failedDelete,e=>(B(),V(`div`,{key:`fd-`+e,class:`popover-fail-item`},De(e),1))),128))])):Ba(``,!0),y.value.failedInstall?.length?(B(),V(`div`,V7,[t[27]||=H(`div`,{class:`popover-fail-title`},`⚠️ 安装失败`,-1),(B(!0),V(ba,null,ii(y.value.failedInstall,e=>(B(),V(`div`,{key:`fi-`+e,class:`popover-fail-item`},De(e),1))),128))])):Ba(``,!0),H(`div`,H7,[U(n,{size:`tiny`,type:`warning`,secondary:``,onClick:ke},{default:L(()=>[...t[28]||=[Ra(` 🔄 重新尝试处理 `,-1)]]),_:1})])])]),_:1})):Ba(``,!0),e.skills===null?e.skills===null?(B(),Aa(l,{key:3,size:`small`},{default:L(()=>[...t[29]||=[Ra(` 自定义 `,-1)]]),_:1})):Ba(``,!0):(B(),Aa(x,{key:2,trigger:`hover`,placement:`top`,width:`240`},{trigger:L(()=>[U(l,{size:`small`,style:{cursor:`pointer`}},{default:L(()=>[Ra(De(e.skills.length)+` 个技能 `,1)]),_:2},1024)]),default:L(()=>[H(`div`,U7,[(B(!0),V(ba,null,ii(e.skills,e=>(B(),V(`div`,{key:e,class:`skill-preview-item`},De(e),1))),128))])]),_:2},1024))]),_:2},1024),e.id!==c.value&&e.skills!==null?(B(),Aa(n,{key:0,size:`small`,type:`primary`,loading:d.value===e.id,onClick:t=>ve(e)},{default:L(()=>[...t[30]||=[Ra(` 应用 `,-1)]]),_:1},8,[`loading`,`onClick`])):Ba(``,!0),e.id!==c.value&&e.skills===null?(B(),Aa(n,{key:1,size:`small`,onClick:pe},{default:L(()=>[...t[31]||=[Ra(` 自定义勾选 `,-1)]]),_:1})):Ba(``,!0)])]),default:L(()=>[H(`p`,L7,De(e.description),1)]),_:2},1032,[`class`,`title`]))),128))])]),_:1},8,[`show`]),U(g5,{show:f.value,title:g.value===`executing`?`正在切换场景`:g.value===`failed`?`切换未完成`:`确认切换场景`,width:`540px`,"mask-closable":!1,"onUpdate:show":t[2]||=e=>{!e&&g.value!==`executing`&&(f.value=!1)}},{footer:L(()=>[g.value===`preview`?(B(),V(ba,{key:0},[U(n,{onClick:t[1]||=e=>f.value=!1},{default:L(()=>[...t[42]||=[Ra(`取消`,-1)]]),_:1}),U(n,{type:`primary`,loading:p.value,onClick:Se},{default:L(()=>[...t[43]||=[Ra(` 确认切换 `,-1)]]),_:1},8,[`loading`])],64)):Ba(``,!0),g.value===`failed`?(B(),V(ba,{key:1},[U(n,{size:`small`,onClick:Ee},{default:L(()=>[...t[44]||=[Ra(`📂 打开技能目录`,-1)]]),_:1}),U(n,{size:`small`,onClick:Te},{default:L(()=>[...t[45]||=[Ra(`放弃`,-1)]]),_:1}),U(n,{size:`small`,type:`primary`,loading:p.value,onClick:we},{default:L(()=>[...t[46]||=[Ra(` 重试所有失败项 `,-1)]]),_:1},8,[`loading`])],64)):Ba(``,!0)]),default:L(()=>[g.value===`preview`&&m.value?(B(),V(`div`,W7,[H(`p`,G7,[t[32]||=Ra(` 从 `,-1),H(`strong`,null,De(S.value),1),t[33]||=Ra(` 切换到 `,-1),H(`strong`,null,De(m.value.name),1)]),h.value.added.length>0?(B(),V(`div`,K7,[H(`div`,q7,[U(sn(lI),{size:`16`,color:`#18a058`},{default:L(()=>[U(sn(T1))]),_:1}),H(`span`,null,`新增(`+De(h.value.added.length)+`)`,1)]),H(`div`,J7,[(B(!0),V(ba,null,ii(h.value.added,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`success`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),h.value.removed.length>0?(B(),V(`div`,Y7,[H(`div`,X7,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(t0))]),_:1}),H(`span`,null,`移除(`+De(h.value.removed.length)+`)`,1)]),H(`div`,Z7,[(B(!0),V(ba,null,ii(h.value.removed,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`error`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),h.value.kept.length>0?(B(),V(`div`,Q7,[H(`div`,$7,[U(sn(lI),{size:`16`,color:`#999`},{default:L(()=>[U(sn(j1))]),_:1}),H(`span`,null,`不变(`+De(h.value.kept.length)+`)`,1)]),H(`div`,e9,[(B(!0),V(ba,null,ii(h.value.kept,e=>(B(),Aa(l,{key:e,size:`tiny`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0)])):Ba(``,!0),g.value===`executing`?(B(),V(`div`,t9,[H(`div`,n9,[U(se,{size:`large`})]),H(`p`,r9,`正在切换到「`+De(m.value?.name)+`」...`,1),t[34]||=H(`p`,{class:`executing-hint`},`处理中,请稍候`,-1)])):Ba(``,!0),g.value===`failed`?(B(),V(`div`,i9,[H(`p`,a9,[t[35]||=Ra(` 切换到 `,-1),H(`strong`,null,De(m.value?.name),1),t[36]||=Ra(` 时部分技能未能处理 `,-1)]),h.value.added.length>0?(B(),V(`div`,o9,[H(`div`,s9,[U(sn(lI),{size:`16`,color:`#18a058`},{default:L(()=>[U(sn(T1))]),_:1}),H(`span`,null,`新增(`+De(h.value.added.length)+`)`,1)]),H(`div`,c9,[(B(!0),V(ba,null,ii(h.value.added,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`success`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),h.value.removed.length>0?(B(),V(`div`,l9,[H(`div`,u9,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(t0))]),_:1}),H(`span`,null,`移除(`+De(h.value.removed.length)+`)`,1)]),H(`div`,d9,[(B(!0),V(ba,null,ii(h.value.removed,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`error`,bordered:!1},{default:L(()=>[Ra(De(e),1),_.value.includes(e)?(B(),V(`span`,f9,`🔒`)):Ba(``,!0)]),_:2},1024))),128))])])):Ba(``,!0),h.value.kept.length>0?(B(),V(`div`,p9,[H(`div`,m9,[U(sn(lI),{size:`16`,color:`#999`},{default:L(()=>[U(sn(j1))]),_:1}),H(`span`,null,`不变(`+De(h.value.kept.length)+`)`,1)]),H(`div`,h9,[(B(!0),V(ba,null,ii(h.value.kept,e=>(B(),Aa(l,{key:e,size:`tiny`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),_.value.length>0?(B(),V(`div`,g9,[H(`div`,_9,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(t0))]),_:1}),t[37]||=H(`span`,null,`删除失败(被程序占用)`,-1)]),H(`div`,v9,[(B(!0),V(ba,null,ii(_.value,e=>(B(),V(`div`,{key:`del-`+e,class:`failure-item`},[H(`span`,y9,`🔒 `+De(e),1),U(n,{size:`tiny`,secondary:``,type:`warning`,onClick:t=>Ce(`delete`,e)},{default:L(()=>[...t[38]||=[Ra(` 重试 `,-1)]]),_:1},8,[`onClick`])]))),128))])])):Ba(``,!0),v.value.length>0?(B(),V(`div`,b9,[H(`div`,x9,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(T1))]),_:1}),t[39]||=H(`span`,null,`安装失败`,-1)]),H(`div`,S9,[(B(!0),V(ba,null,ii(v.value,e=>(B(),V(`div`,{key:`inst-`+e,class:`failure-item`},[H(`span`,C9,`⚠️ `+De(e),1),U(n,{size:`tiny`,secondary:``,type:`warning`,onClick:t=>Ce(`install`,e)},{default:L(()=>[...t[40]||=[Ra(` 重试 `,-1)]]),_:1},8,[`onClick`])]))),128))])])):Ba(``,!0),t[41]||=H(`p`,{class:`failure-tip`},`请关闭相关程序后重试,或打开技能目录手动处理`,-1)])):Ba(``,!0)]),_:1},8,[`show`,`title`]),U(g5,{show:b.value,title:`当前场景未就绪`,width:`420px`,"onUpdate:show":t[4]||=e=>{e||(b.value=!1)}},{footer:L(()=>[U(n,{size:`small`,onClick:t[3]||=e=>b.value=!1},{default:L(()=>[...t[52]||=[Ra(`取消`,-1)]]),_:1}),U(n,{size:`small`,onClick:ye},{default:L(()=>[...t[53]||=[Ra(`忽略并切换`,-1)]]),_:1}),U(n,{size:`small`,type:`primary`,onClick:xe},{default:L(()=>[...t[54]||=[Ra(`处理未就绪`,-1)]]),_:1})]),default:L(()=>[H(`div`,w9,[y.value?(B(),V(`p`,T9,[t[47]||=Ra(` 当前场景 `,-1),H(`strong`,null,De(S.value),1),t[48]||=Ra(` 还有未就绪的技能 `,-1)])):Ba(``,!0),y.value?.failedDelete?.length?(B(),V(`div`,E9,[t[49]||=H(`div`,{class:`pending-confirm-title`},`🔒 删除失败(被占用)`,-1),(B(!0),V(ba,null,ii(y.value.failedDelete,e=>(B(),V(`div`,{key:`pd-`+e,class:`pending-confirm-item`},De(e),1))),128))])):Ba(``,!0),y.value?.failedInstall?.length?(B(),V(`div`,D9,[t[50]||=H(`div`,{class:`pending-confirm-title`},`⚠️ 安装失败`,-1),(B(!0),V(ba,null,ii(y.value.failedInstall,e=>(B(),V(`div`,{key:`pi-`+e,class:`pending-confirm-item`},De(e),1))),128))])):Ba(``,!0),t[51]||=H(`p`,{class:`pending-confirm-hint`},`确定要切换到其他场景吗?`,-1)])]),_:1},8,[`show`]),U(g5,{show:C.value,title:`自定义技能组合`,width:`560px`,"onUpdate:show":t[10]||=e=>{e||(C.value=!1)}},{footer:L(()=>[U(n,{type:`primary`,loading:T.value,onClick:me},{default:L(()=>[...t[58]||=[Ra(` 确认安装 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[U(ce,{value:E.value,"onUpdate:value":t[5]||=e=>E.value=e,placeholder:`搜索技能...`,size:`small`,clearable:``,class:`search-input`},null,8,[`value`]),U(s,{class:`batch-actions`,size:6},{default:L(()=>[U(n,{size:`tiny`,onClick:t[6]||=e=>w.value=P(E.value,w.value)},{default:L(()=>[...t[55]||=[Ra(` 全选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[7]||=e=>w.value=ie(E.value,w.value)},{default:L(()=>[...t[56]||=[Ra(` 反选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[8]||=e=>w.value=ae()},{default:L(()=>[...t[57]||=[Ra(` 清空 `,-1)]]),_:1})]),_:1}),U(ue,{value:w.value,"onUpdate:value":t[9]||=e=>w.value=e},{default:L(()=>[H(`div`,O9,[(B(!0),V(ba,null,ii(te.value,e=>(B(),V(`div`,{key:e.key,class:`skill-group`},[H(`div`,{class:`skill-group-header`,onClick:t=>N(e.key)},[H(`span`,{class:be([`fold-arrow`,{open:M.value[e.key]}])},`▶`,2),H(`span`,A9,De(e.type===`remote`?e.url:`本地技能`),1),H(`span`,j9,De(ne(e,E.value).length),1)],8,k9),Gn(H(`div`,M9,[(B(!0),V(ba,null,ii(ne(e,E.value),e=>(B(),Aa(le,{key:e.name,value:e.name},{default:L(()=>[H(`span`,{innerHTML:oe(e.name,E.value)},null,8,N9)]),_:2},1032,[`value`]))),128))],512),[[qo,M.value[e.key]]])]))),128))])]),_:1},8,[`value`])]),_:1},8,[`show`]),U(g5,{show:D.value,title:O.value?`编辑场景`:`新建场景`,width:`560px`,"mask-closable":!1,"onUpdate:show":t[20]||=e=>{e||(D.value=!1)}},{footer:L(()=>[U(n,{onClick:t[19]||=e=>D.value=!1},{default:L(()=>[...t[62]||=[Ra(`取消`,-1)]]),_:1}),U(n,{type:`primary`,loading:k.value,onClick:he},{default:L(()=>[...t[63]||=[Ra(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[U(Ae,{model:j.value,"label-placement":`top`},{default:L(()=>[U(_e,{label:`场景名称`,required:``},{default:L(()=>[U(ce,{value:j.value.name,"onUpdate:value":t[11]||=e=>j.value.name=e,placeholder:`给场景起个名字`,maxlength:30},null,8,[`value`])]),_:1}),U(_e,{label:`场景描述`},{default:L(()=>[U(ce,{value:j.value.description,"onUpdate:value":t[12]||=e=>j.value.description=e,type:`textarea`,rows:2,placeholder:`简短描述这个场景的用途`},null,8,[`value`])]),_:1}),U(Oe),U(_e,{label:`包含的技能`},{default:L(()=>[U(ce,{value:A.value,"onUpdate:value":t[13]||=e=>A.value=e,placeholder:`搜索技能...`,size:`small`,clearable:``,class:`search-input`},null,8,[`value`]),U(s,{class:`batch-actions`,size:6},{default:L(()=>[U(n,{size:`tiny`,onClick:t[14]||=e=>j.value.skills=P(A.value,j.value.skills)},{default:L(()=>[...t[59]||=[Ra(` 全选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[15]||=e=>j.value.skills=ie(A.value,j.value.skills)},{default:L(()=>[...t[60]||=[Ra(` 反选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[16]||=e=>j.value.skills=ae()},{default:L(()=>[...t[61]||=[Ra(` 清空 `,-1)]]),_:1})]),_:1}),U(ue,{value:j.value.skills,"onUpdate:value":t[17]||=e=>j.value.skills=e},{default:L(()=>[H(`div`,P9,[(B(!0),V(ba,null,ii(te.value,e=>(B(),V(`div`,{key:e.key,class:`skill-group`},[H(`div`,{class:`skill-group-header`,onClick:t=>N(e.key)},[H(`span`,{class:be([`fold-arrow`,{open:M.value[e.key]}])},`▶`,2),H(`span`,I9,De(e.type===`remote`?e.url:`本地技能`),1),H(`span`,L9,De(ne(e,A.value).length),1)],8,F9),Gn(H(`div`,R9,[(B(!0),V(ba,null,ii(ne(e,A.value),e=>(B(),Aa(le,{key:e.name,value:e.name},{default:L(()=>[H(`span`,{innerHTML:oe(e.name,A.value)},null,8,z9)]),_:2},1032,[`value`]))),128))],512),[[qo,M.value[e.key]]])]))),128))])]),_:1},8,[`value`])]),_:1}),U(Oe),U(_e,{label:`始终加载(always_apply)`},{default:L(()=>[j.value.skills.length===0?(B(),V(`span`,B9,`请先勾选包含的技能`)):(B(),Aa(ue,{key:1,value:j.value.always_apply,"onUpdate:value":t[18]||=e=>j.value.always_apply=e},{default:L(()=>[H(`div`,V9,[(B(!0),V(ba,null,ii(j.value.skills,e=>(B(),Aa(le,{key:e,value:e,label:e},null,8,[`value`,`label`]))),128))])]),_:1},8,[`value`]))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`show`,`title`])])}}},[[`__scopeId`,`data-v-29aa5f17`]]),U9={class:`settings`},W9={class:`source-status`},G9={class:`missing-list`},K9={key:1,class:`missing-item`},q9={class:`source-actions`},J9={class:`action-buttons`},Y9={key:0,class:`diag-group`},X9={class:`diag-group-header diag-group-error`},Z9={key:1,class:`diag-group`},Q9={class:`diag-group-header diag-group-ok`},ree=s5({__name:`Settings`,emits:[`refresh`],setup(e,{emit:t}){let n=t,r=Qz(),i=F({connected:!1,path:null,needsInit:!1}),a=F(``),o=F(!1),s=F(!1),c=F(!1),l=F(!1),u=F(!1),d=F([]),f=W(()=>{let e=[],t=[];for(let n of d.value)n.healthy?e.push(n):t.push(n);return{healthy:e,unhealthy:t}}),p=F(!1),m=F(!1),h=F({root:!0,skills:!0,projectName:``,teamName:``}),g=W(()=>i.value.readmeStatus?!i.value.readmeStatus.root||!i.value.readmeStatus.skills:!1);async function _(){i.value=await f0()}async function v(){o.value=!0;try{let e=await p0(a.value);e.ok?(r.success(`技能目录已设置`),await _(),n(`refresh`)):r.error(e.error||`设置失败`)}catch{r.error(`设置失败`)}finally{o.value=!1}}async function y(){c.value=!0;try{let e=await h0();e.ok?r.success(`已同步到仓库`):r.error(e.error||`同步失败`)}catch{r.error(`同步失败`)}finally{c.value=!1}}async function b(){s.value=!0;try{let e=await g0();if(e.ok){let t=[];e.profiles&&t.push(`profiles.json`),e.settings&&t.push(`settings.json`),e.metaFiles>0&&t.push(`${e.metaFiles} 个 .meta.json`),r.success(`初始化完成:${t.join(`、`)||`无缺失文件`}`),e.readmeStatus&&(!e.readmeStatus.root||!e.readmeStatus.skills)&&(h.value.root=!e.readmeStatus.root,h.value.skills=!e.readmeStatus.skills,p.value=!0),await _(),n(`refresh`)}else r.error(e.error||`初始化失败`)}catch{r.error(`初始化失败`)}finally{s.value=!1}}async function x(){m.value=!0;try{let e=await N0({root:h.value.root,skills:h.value.skills,projectName:h.value.projectName.trim(),teamName:h.value.teamName.trim()});if(e.ok){let t=e.created||[];r.success(`已创建:${t.join(`、`)||`无`}`),p.value=!1}else r.error(e.error||`创建失败`)}catch{r.error(`创建失败`)}finally{m.value=!1}}function S(){h.value.root=!i.value.readmeStatus?.root,h.value.skills=!i.value.readmeStatus?.skills,p.value=!0}async function C(){l.value=!0;try{(await m0()).ok&&(r.success(`技能目录已清除`),await _(),n(`refresh`))}catch{r.error(`清除失败`)}finally{l.value=!1}}async function w(){u.value=!0;try{d.value=await _0()}catch{r.error(`诊断失败`)}finally{u.value=!1}}return Wr(_),(e,t)=>{let n=ei(`n-alert`),r=ei(`n-input`),_=ei(`n-button`),T=ei(`n-card`),E=ei(`n-checkbox`),D=ei(`n-divider`),O=ei(`n-form-item`),k=ei(`n-form`),A=ei(`n-empty`),j=ei(`n-icon`),M=ei(`n-text`),N=ei(`n-list-item`),ee=ei(`n-list`),te=ei(`n-spin`);return B(),V(`div`,U9,[t[28]||=H(`div`,{class:`page-header`},[H(`h2`,null,`设置`)],-1),U(T,{title:`技能目录`,size:`small`,class:`section`},{default:L(()=>[H(`div`,W9,[i.value.connected?(B(),Aa(n,{key:0,type:`success`,bordered:!1},{header:L(()=>[...t[7]||=[Ra(`已设置`,-1)]]),default:L(()=>[Ra(` `+De(i.value.path),1)]),_:1})):(B(),Aa(n,{key:1,type:`warning`,bordered:!1},{default:L(()=>[...t[8]||=[Ra(` 尚未设置技能目录,请指定包含 .claude/skills 的仓库路径 `,-1)]]),_:1}))]),i.value.connected&&i.value.needsInit?(B(),Aa(n,{key:0,type:`warning`,bordered:!1,class:`init-alert`},{header:L(()=>[...t[9]||=[Ra(`技能目录缺少必要文件`,-1)]]),default:L(()=>[H(`div`,G9,[i.value.missingConfig?.length?(B(!0),V(ba,{key:0},ii(i.value.missingConfig,e=>(B(),V(`div`,{class:`missing-item`,key:e},[t[10]||=Ra(` 缺少配置文件:`,-1),H(`code`,null,De(e),1)]))),128)):Ba(``,!0),i.value.missingSkillDocs?.length?(B(),V(`div`,K9,[t[11]||=Ra(` 以下技能缺少 SKILL.md 文档: `,-1),(B(!0),V(ba,null,ii(i.value.missingSkillDocs,e=>(B(),V(`code`,{key:e,class:`skill-tag`},De(e),1))),128))])):Ba(``,!0),t[12]||=H(`div`,{class:`missing-hint`},`可手动检测该文件夹是否为skill,若该目录不是 skill,可手动删除`,-1)])]),_:1})):Ba(``,!0),H(`div`,q9,[i.value.connected?Ba(``,!0):(B(),Aa(r,{key:0,value:a.value,"onUpdate:value":t[0]||=e=>a.value=e,placeholder:`输入本地仓库路径...`,clearable:``},{prefix:L(()=>[...t[13]||=[Ra(`📁`,-1)]]),_:1},8,[`value`])),i.value.connected&&i.value.needsInit===!1&&g.value?(B(),Aa(n,{key:1,type:`info`,bordered:!1,class:`init-alert`},{header:L(()=>[...t[14]||=[Ra(`缺少 README.md 文档`,-1)]]),default:L(()=>[t[15]||=Ra(` 创建后将生成模板文件,可在对应目录中自行编辑 `,-1)]),_:1})):Ba(``,!0),H(`div`,J9,[i.value.connected?Ba(``,!0):(B(),Aa(_,{key:0,type:`primary`,disabled:!a.value,loading:o.value,onClick:v},{default:L(()=>[...t[16]||=[Ra(` 设置 `,-1)]]),_:1},8,[`disabled`,`loading`])),i.value.connected&&i.value.needsInit?(B(),Aa(_,{key:1,type:`warning`,loading:s.value,onClick:b},{default:L(()=>[...t[17]||=[Ra(` 初始化 `,-1)]]),_:1},8,[`loading`])):Ba(``,!0),i.value.connected?(B(),Aa(_,{key:2,loading:c.value,onClick:y},{default:L(()=>[...t[18]||=[Ra(` 同步到仓库 `,-1)]]),_:1},8,[`loading`])):Ba(``,!0),i.value.connected&&i.value.needsInit===!1&&g.value?(B(),Aa(_,{key:3,ghost:``,onClick:S},{default:L(()=>[...t[19]||=[Ra(` 创建文档 `,-1)]]),_:1})):Ba(``,!0),i.value.connected?(B(),Aa(_,{key:4,type:`error`,ghost:``,loading:l.value,onClick:C},{default:L(()=>[...t[20]||=[Ra(` 清除 `,-1)]]),_:1},8,[`loading`])):Ba(``,!0)])])]),_:1}),U(g5,{show:p.value,title:`创建文档`,width:`520px`,"mask-closable":!1,"onUpdate:show":t[6]||=e=>{e||(p.value=!1)}},{footer:L(()=>[U(_,{onClick:t[5]||=e=>p.value=!1},{default:L(()=>[...t[23]||=[Ra(`跳过`,-1)]]),_:1}),U(_,{type:`primary`,loading:m.value,onClick:x},{default:L(()=>[...t[24]||=[Ra(` 创建 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[t[25]||=H(`div`,{class:`readme-dialog-desc`},`检测到缺少以下文档,是否创建?`,-1),U(E,{checked:h.value.root,"onUpdate:checked":t[1]||=e=>h.value.root=e,class:`readme-checkbox`},{default:L(()=>[...t[21]||=[H(`div`,{class:`readme-checkbox-content`},[H(`span`,{class:`readme-checkbox-title`},`根目录 README.md`),H(`span`,{class:`readme-checkbox-desc`},`仪表盘 → "仓库说明"折叠面板,适合写项目简介、维护团队、许可证`)],-1)]]),_:1},8,[`checked`]),U(E,{checked:h.value.skills,"onUpdate:checked":t[2]||=e=>h.value.skills=e,class:`readme-checkbox`},{default:L(()=>[...t[22]||=[H(`div`,{class:`readme-checkbox-content`},[H(`span`,{class:`readme-checkbox-title`},`.claude/skills/README.md`),H(`span`,{class:`readme-checkbox-desc`},`场景切换 → "技能说明"折叠面板,适合写使用指南、场景搭配建议`)],-1)]]),_:1},8,[`checked`]),U(D),U(k,{"label-placement":`top`},{default:L(()=>[U(O,{label:`项目名称(选填)`},{default:L(()=>[U(r,{value:h.value.projectName,"onUpdate:value":t[3]||=e=>h.value.projectName=e,placeholder:`我的技能仓库`},null,8,[`value`])]),_:1}),U(O,{label:`维护团队(选填)`},{default:L(()=>[U(r,{value:h.value.teamName,"onUpdate:value":t[4]||=e=>h.value.teamName=e,placeholder:`未设定`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),U(T,{title:`健康检查`,size:`small`,class:`section`},{"header-extra":L(()=>[U(_,{size:`tiny`,loading:u.value,onClick:w},{default:L(()=>[...t[26]||=[Ra(` 运行检查 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[U(te,{show:u.value},{default:L(()=>[!d.value.length&&!u.value?(B(),Aa(A,{key:0,description:`点击按钮运行健康检查`})):(B(),V(ba,{key:1},[f.value.unhealthy.length>0?(B(),V(`div`,Y9,[H(`div`,X9,[U(sn(N1),{size:`24`}),Ra(` 异常(`+De(f.value.unhealthy.length)+`) `,1)]),U(ee,null,{default:L(()=>[(B(!0),V(ba,null,ii(f.value.unhealthy,e=>(B(),Aa(N,{key:e.name},{prefix:L(()=>[U(j,{size:`20`,color:`#d03050`},{default:L(()=>[U(sn(N1))]),_:1})]),suffix:L(()=>[U(M,{depth:`3`,class:`issue-text`},{default:L(()=>[Ra(De(e.issues.join(`; `)),1)]),_:2},1024)]),default:L(()=>[U(M,null,{default:L(()=>[Ra(De(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):Ba(``,!0),f.value.healthy.length>0?(B(),V(`div`,Z9,[H(`div`,Q9,[U(sn(k1)),Ra(` 正常(`+De(f.value.healthy.length)+`) `,1)]),U(ee,null,{default:L(()=>[(B(!0),V(ba,null,ii(f.value.healthy,e=>(B(),Aa(N,{key:e.name},{prefix:L(()=>[U(j,{size:`20`,color:`#18a058`},{default:L(()=>[U(sn(k1))]),_:1})]),suffix:L(()=>[U(M,{depth:`3`,class:`healthy-text`},{default:L(()=>[...t[27]||=[Ra(`正常`,-1)]]),_:1})]),default:L(()=>[U(M,null,{default:L(()=>[Ra(De(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):Ba(``,!0)],64))]),_:1},8,[`show`])]),_:1})])}}},[[`__scopeId`,`data-v-0c97d90d`]]),iee={class:`readme-view`},aee={class:`page-header`},oee=[`innerHTML`],see=[{path:`/`,name:`Dashboard`,component:A7,meta:{title:`仪表盘`}},{path:`/scenes`,name:`Scenes`,component:H9,meta:{title:`场景切换`}},{path:`/settings`,name:`Settings`,component:ree,meta:{title:`设置`}},{path:`/readme`,name:`ClaudeMd`,component:s5({__name:`ReadmeView`,setup(e){S4.use({renderer:{code({text:e,lang:t}){let n=t&&e5.getLanguage(t)?t:`plaintext`,r;try{r=e5.highlight(e,{language:n}).value}catch{r=e5.highlightAuto(e).value}return`<pre><button class="copy-btn" onclick="navigator.clipboard.writeText(this.parentNode.querySelector('code').textContent);this.textContent='已复制';setTimeout(()=>this.textContent='复制',1500)">复制</button><code class="hljs language-${n}">${r}</code></pre>`},link({href:e,text:t}){return`<a href="${e}"${e&&(e.startsWith(`http://`)||e.startsWith(`https://`))?` target="_blank" rel="noopener noreferrer"`:``}>${t}</a>`}}});let t=F(!1),n=F(!1),r=F(null),i=F(``);function a(e){return e&&e.replace(/^---[\s\S]*?---\s*/,``)}function o(e){if(!e)return``;let t=a(e);if(!t.trim())return``;try{return S4.parse(t)}catch{return t}}async function s(){t.value=!0,n.value=!1;try{let e=await b0();e.content?(r.value=e.content,await Nn(),i.value=o(e.content)):r.value=null}catch{r.value=null}finally{t.value=!1,n.value=!0}}return Wr(s),(e,a)=>{let o=ei(`n-button`),c=ei(`n-empty`),l=ei(`n-spin`);return B(),V(`div`,iee,[H(`div`,aee,[a[1]||=H(`h2`,null,`CLAUDE.md 文档`,-1),U(o,{size:`small`,onClick:s},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(q1))]),_:1})]),default:L(()=>[a[0]||=Ra(` 刷新 `,-1)]),_:1})]),U(l,{show:t.value},{default:L(()=>[U(ko,{name:`fade`},{default:L(()=>[r.value?(B(),V(`div`,{key:0,class:`markdown-content`,innerHTML:i.value},null,8,oee)):n.value?(B(),Aa(c,{key:1,description:`暂无 CLAUDE.md 文档`})):Ba(``,!0)]),_:1})]),_:1},8,[`show`])])}}},[[`__scopeId`,`data-v-97d38fe1`]]),meta:{title:`CLAUDE.md`}}],cee=C1({history:H$(),routes:see}),$9=Bs(G0);$9.use(gQ),$9.use(cee),$9.mount(`#app`);
7440
+ 将同时删除源目录和项目目录中的文件。`))try{let e=await T0(p.value.name);e.ok?(r.success(`技能 "${p.value.name}" 已删除`),f.value=!1,await Le()):e.locked&&r.warning(e.error||`技能 "${p.value.name}" 被其他程序占用,无法删除`)}catch{r.error(`删除失败`)}}async function Je(){try{let e=await F0();c.value=e.names||{},ie.value=e.knownUrls||[]}catch{}}function Ye(){P.value=!P.value,P.value&&(ae.value={...c.value},Je())}async function Xe(){oe.value=!0;try{let e={};for(let[t,n]of Object.entries(ae.value))n&&n.trim()&&(e[t]=n.trim());(await I0(e)).ok&&(c.value=e,r.success(`别名已保存`),P.value=!1)}catch{r.error(`保存失败`)}finally{oe.value=!1}}function Ze(e){ne.value=e.key,re.value=c.value[e.url]||``}async function Qe(e){if(!ne.value)return;let t=e.url,n=re.value.trim(),r={...c.value};n?r[t]=n:delete r[t],ne.value=null;try{(await I0(r)).ok&&(c.value=r)}catch{}}function $e(e){return[{label:`全部启用`,key:`enable`},{label:`全部禁用`,key:`disable`},{label:`全部更新`,key:`update`},{type:`divider`},{label:`删除该源所有技能`,key:`delete`}]}async function et(e,t){let n=t.skills.map(e=>e.name);switch(e){case`enable`:try{let e=await L0(n,!0);e.locked?.length?r.warning(`已启用 ${n.length-e.locked.length} 个技能,${e.locked.length} 个被占用`):r.success(`${n.length} 个技能已启用`),await Le()}catch{r.error(`操作失败`)}break;case`disable`:try{let e=await L0(n,!1);e.locked?.length?r.warning(`已停用 ${n.length-e.locked.length} 个技能,${e.locked.length} 个被占用`):r.success(`${n.length} 个技能已停用`),await Le()}catch{r.error(`操作失败`)}break;case`update`:await Ue(t);break;case`delete`:i().warning({title:`删除确认`,content:`确定要删除该源下的 ${n.length} 个技能吗?将同时删除源目录和项目目录中的文件。`,positiveText:`确定删除`,negativeText:`取消`,onPositiveClick:async()=>{try{let e=await R0(n);e.locked?.length?r.warning(`已删除 ${e.deleted?.length||0} 个技能,${e.locked.length} 个被占用`):r.success(`${n.length} 个技能已删除`),await Le()}catch{r.error(`删除失败`)}}});break}}Wr(()=>{Le(),Re(),Je()}),Lr(Le);function tt(){document.visibilityState===`visible`&&(Le(),Re())}return Wr(()=>document.addEventListener(`visibilitychange`,tt)),Jr(()=>document.removeEventListener(`visibilitychange`,tt)),(e,t)=>{let n=ei(`n-select`),r=ei(`n-button`),i=ei(`n-tag`),x=ei(`n-input`),S=ei(`n-card`),Fe=ei(`n-dropdown`),Ie=ei(`n-spin`),Re=ei(`n-empty`),Ve=ei(`n-dynamic-tags`),Ue=ei(`n-divider`),Je=ei(`n-alert`),tt=ei(`n-checkbox`);return B(),V(`div`,_5,[H(`div`,v5,[t[28]||=H(`h2`,null,`技能列表`,-1),H(`div`,y5,[U(n,{value:le.value,"onUpdate:value":t[0]||=e=>le.value=e,options:ue,size:`small`,style:{width:`120px`}},null,8,[`value`]),U(r,{size:`small`,onClick:Le},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(q1))]),_:1})]),default:L(()=>[t[26]||=Ra(` 刷新 `,-1)]),_:1}),s.value?Ba(``,!0):(B(),Aa(r,{key:0,size:`small`,onClick:we},{default:L(()=>[...t[27]||=[Ra(` 拉取 `,-1)]]),_:1}))])]),Ae.value.length>0?(B(),V(`div`,b5,[U(i,{size:`small`,bordered:!1,type:ce.value.length===0?`primary`:`default`,style:{cursor:`pointer`},onClick:t[1]||=e=>ce.value=[]},{default:L(()=>[...t[29]||=[Ra(` 全部 `,-1)]]),_:1},8,[`type`]),(B(!0),V(ba,null,ii(Ae.value,e=>(B(),Aa(i,{key:e,size:`small`,bordered:!1,type:ce.value.includes(e)?`primary`:`default`,style:{cursor:`pointer`},onClick:t=>Ne(e)},{default:L(()=>[Ra(De(e),1)]),_:2},1032,[`type`,`onClick`]))),128))])):Ba(``,!0),!s.value&&a.value.length>0?(B(),V(`div`,x5,[U(x,{value:se.value,"onUpdate:value":t[2]||=e=>se.value=e,placeholder:`搜索技能名称或描述...`,size:`small`,clearable:``},{prefix:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(Y1))]),_:1})]),_:1},8,[`value`])])):Ba(``,!0),U(Ie,{show:o.value},{default:L(()=>[s.value?(B(),Aa(S,{key:0,class:`setup-card`,size:`small`},{default:L(()=>[H(`div`,S5,[H(`div`,C5,[U(sn(lI),{size:`48`,color:`#2080f0`},{default:L(()=>[U(sn(V1))]),_:1})]),t[31]||=H(`h3`,{class:`setup-title`},`欢迎使用 mdk-skills`,-1),t[32]||=H(`p`,{class:`setup-desc`},[Ra(` 请先设置技能目录,指向包含 `),H(`code`,null,`.claude/skills`),Ra(` 的仓库路径。 设置后即可浏览和安装技能。 `)],-1),U(r,{type:`primary`,size:`small`,onClick:t[3]||=t=>e.$router.push({name:`Settings`})},{default:L(()=>[...t[30]||=[Ra(` 前往设置 `,-1)]]),_:1})])]),_:1})):Ba(``,!0),(B(!0),V(ba,null,ii(Me.value,e=>(B(),V(`div`,{key:e.key,class:be([`skill-group`,`group-`+e.type])},[H(`div`,{class:`group-header`,onClick:t=>w(e.key)},[H(`span`,{class:be([`fold-arrow`,{open:C.value[e.key]}])},`▶`,2),H(`span`,{class:be([`group-indicator`,`indicator-`+e.type])},null,2),H(`span`,T5,[e.type===`remote`?(B(),V(ba,{key:0},[ne.value===e.key?(B(),V(`span`,{key:0,class:`alias-edit-inline`,onClick:t[6]||=Ps(()=>{},[`stop`])},[U(x,{value:re.value,"onUpdate:value":t[4]||=e=>re.value=e,size:`tiny`,style:{width:`200px`},autofocus:``,onBlur:t=>Qe(e),onKeyup:[Is(t=>Qe(e),[`enter`]),t[5]||=Is(e=>ne.value=null,[`escape`])]},null,8,[`value`,`onBlur`,`onKeyup`])])):(B(),V(`span`,E5,De(c.value[e.url]||e.url),1)),H(`span`,{class:`alias-edit-trigger`,onClick:Ps(t=>Ze(e),[`stop`])},[U(sn(lI),{size:`13`,class:`alias-edit-icon`},{default:L(()=>[U(sn(G1))]),_:1})],8,D5)],64)):(B(),V(ba,{key:1},[Ra(`本地技能`)],64))]),H(`span`,O5,De(e.skills.length)+` 个`,1),e.type===`remote`?(B(),V(`span`,{key:0,onClick:t[7]||=Ps(()=>{},[`stop`])},[U(Fe,{trigger:`click`,options:$e(e),onSelect:t=>et(t,e)},{default:L(()=>[U(r,{size:`tiny`,class:`group-menu-btn`},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(z1))]),_:1})]),_:1})]),_:1},8,[`options`,`onSelect`])])):Ba(``,!0)],8,w5),Gn(H(`div`,k5,[(B(!0),V(ba,null,ii(e.skills,e=>(B(),Aa(d5,{key:e.name,skill:e,usages:Pe(e.name),onRefresh:Le,onClick:t=>ze(e)},null,8,[`skill`,`usages`,`onClick`]))),128))],512),[[qo,C.value[e.key]]])],2))),128))]),_:1},8,[`show`]),!o.value&&a.value.length===0&&!s.value?(B(),Aa(Re,{key:2,description:`暂无技能数据`},{extra:L(()=>[U(r,{size:`small`,onClick:we},{default:L(()=>[...t[33]||=[Ra(`去拉取技能`,-1)]]),_:1})]),_:1})):Ba(``,!0),!o.value&&a.value.length>0&&je.value.length===0?(B(),Aa(Re,{key:3,description:`没有匹配的技能`},{extra:L(()=>[U(r,{size:`small`,onClick:t[8]||=e=>{ce.value=[],se.value=``}},{default:L(()=>[...t[34]||=[Ra(`清除筛选`,-1)]]),_:1})]),_:1})):Ba(``,!0),l.value?(B(),V(`div`,A5,[H(`div`,{class:`fold-header`,onClick:t[9]||=e=>d.value=!d.value},[H(`span`,{class:be([`fold-arrow`,{open:d.value}])},`▶`,2),t[35]||=Ra(` 仓库说明 `,-1)]),Gn(H(`div`,j5,[H(`div`,{class:`markdown-content`,innerHTML:u.value},null,8,M5)],512),[[qo,d.value]])])):Ba(``,!0),U(g5,{show:f.value,title:p.value?.name||`技能详情`,width:`720px`,"mask-closable":!0,"onUpdate:show":Be},{default:L(()=>[H(`div`,N5,[p.value?(B(),V(`div`,P5,[H(`div`,F5,[t[36]||=H(`span`,{class:`edit-label`},`版本`,-1),U(x,{value:_.value,"onUpdate:value":t[10]||=e=>_.value=e,size:`small`,style:{width:`120px`}},null,8,[`value`]),p.value?._updateCount>0?(B(),V(`span`,I5,`r`+De(p.value._updateCount),1)):Ba(``,!0)]),H(`div`,L5,[t[37]||=H(`span`,{class:`edit-label`},`描述`,-1),U(x,{value:v.value,"onUpdate:value":t[11]||=e=>v.value=e,type:`textarea`,size:`small`,rows:2},null,8,[`value`])]),H(`div`,R5,[t[38]||=H(`span`,{class:`edit-label`},`标签`,-1),U(Ve,{value:y.value,"onUpdate:value":t[12]||=e=>y.value=e,size:`small`},null,8,[`value`])]),H(`div`,z5,[U(r,{size:`small`,type:`primary`,onClick:Ke,loading:b.value},{default:L(()=>[...t[39]||=[Ra(`保存`,-1)]]),_:1},8,[`loading`]),U(r,{size:`small`,type:`error`,onClick:qe},{default:L(()=>[...t[40]||=[Ra(`删除技能`,-1)]]),_:1})]),T.value?(B(),V(`div`,B5,[T.value.type===`remote`?(B(),V(ba,{key:0},[H(`div`,V5,[t[41]||=H(`span`,{class:`source-label`},`来源`,-1),H(`span`,H5,De(c.value[T.value.url]||T.value.url),1)]),H(`div`,U5,[t[42]||=H(`span`,{class:`source-label`},`拉取时间`,-1),H(`span`,W5,De(new Date(T.value.pulledAt).toLocaleString()),1)]),H(`div`,G5,[U(r,{size:`small`,onClick:He,loading:E.value},{default:L(()=>[...t[43]||=[Ra(`检查更新`,-1)]]),_:1},8,[`loading`])])],64)):(B(),V(ba,{key:1},[t[46]||=H(`div`,{class:`source-row`},[H(`span`,{class:`source-label`},`类型`),H(`span`,{class:`source-value local-tag`},`本地技能`)],-1),T.value.path?(B(),V(`div`,K5,[t[44]||=H(`span`,{class:`source-label`},`路径`,-1),H(`span`,q5,De(T.value.path),1)])):Ba(``,!0),H(`div`,J5,[U(r,{size:`small`,onClick:Ge},{default:L(()=>[...t[45]||=[Ra(`打开目录`,-1)]]),_:1})]),t[47]||=H(`div`,{class:`local-hint`},` 本地技能暂不支持远程更新。推送到 Git 仓库后可使用"拉取"功能分享给团队。 `,-1)],64))])):Ba(``,!0),U(Ue,{style:{margin:`12px 0`}})])):Ba(``,!0),m.value?(B(),V(`div`,Y5,[U(Ie)])):h.value?(B(),V(`div`,{key:2,class:`markdown-content`,innerHTML:g.value},null,8,X5)):(B(),Aa(Re,{key:3,description:`该技能没有 SKILL.md 文档`}))])]),_:1},8,[`show`,`title`]),U(g5,{show:ye.value,title:`从远程仓库拉取`,width:`600px`,"mask-closable":!0,"onUpdate:show":t[19]||=e=>{e||(ye.value=!1,ge.value=!1,fe.value=!1,sn(P0)(),sn(w0)(de.value).catch(()=>{}))}},{default:L(()=>[H(`div`,Z5,[H(`div`,Q5,[U(x,{value:de.value,"onUpdate:value":t[13]||=e=>de.value=e,placeholder:`输入 GitHub 仓库地址...`,size:`small`,onKeyup:Is(Ee,[`enter`])},null,8,[`value`]),U(r,{size:`small`,type:`primary`,onClick:Ee,loading:fe.value},{default:L(()=>[...t[48]||=[Ra(`预览`,-1)]]),_:1},8,[`loading`]),U(r,{size:`small`,onClick:Ye},{default:L(()=>[...t[49]||=[Ra(`管理源`,-1)]]),_:1})]),P.value?(B(),V(`div`,$5,[H(`div`,e7,[t[51]||=H(`span`,{class:`source-manager-title`},`远程源别名`,-1),U(r,{size:`tiny`,text:``,onClick:t[14]||=e=>P.value=!1},{default:L(()=>[...t[50]||=[Ra(`关闭`,-1)]]),_:1})]),H(`div`,t7,[(B(!0),V(ba,null,ii(ie.value,e=>(B(),V(`div`,{key:e,class:`source-manager-row`},[H(`span`,{class:`source-manager-url`,title:e},De(e),9,n7),U(x,{value:ae.value[e],"onUpdate:value":t=>ae.value[e]=t,placeholder:`输入别名...`,size:`tiny`,style:{width:`180px`},clearable:``},null,8,[`value`,`onUpdate:value`])]))),128)),ie.value.length===0?(B(),V(`div`,r7,`暂无已拉取的远程源`)):Ba(``,!0)]),H(`div`,i7,[U(r,{size:`small`,type:`primary`,onClick:Xe,loading:oe.value},{default:L(()=>[...t[52]||=[Ra(`保存`,-1)]]),_:1},8,[`loading`])])])):Ba(``,!0),ve.value?(B(),V(`div`,a7,[U(Je,{type:`error`,bordered:!1,closable:``,onClose:t[15]||=e=>ve.value=``},{default:L(()=>[Ra(De(ve.value),1)]),_:1})])):Ba(``,!0),fe.value?(B(),V(`div`,o7,[U(Ie,{size:`small`}),t[53]||=H(`span`,null,`正在获取远程技能列表...`,-1)])):Ba(``,!0),pe.value&&!ge.value&&!_e.value?(B(),V(`div`,s7,[H(`div`,c7,[t[55]||=Ra(` 发现 `,-1),H(`strong`,null,De(me.value.length),1),t[56]||=Ra(` 个技能: `,-1),U(r,{size:`tiny`,text:``,onClick:Te},{default:L(()=>[...t[54]||=[Ra(`全选/取消`,-1)]]),_:1})]),U(x,{value:xe.value,"onUpdate:value":t[16]||=e=>xe.value=e,placeholder:`搜索技能...`,size:`small`,clearable:``,class:`pull-search-input`},null,8,[`value`]),H(`div`,l7,[(B(!0),V(ba,null,ii(Ce.value,e=>(B(),Aa(tt,{key:e,checked:he.value[e],"onUpdate:checked":t=>he.value[e]=t},{default:L(()=>[Ra(De(e)+` `,1),ke.value.has(e)?(B(),Aa(i,{key:0,size:`tiny`,type:`success`,bordered:!1,class:`installed-tag`},{default:L(()=>[...t[57]||=[Ra(`已安装`,-1)]]),_:1})):Ba(``,!0)]),_:2},1032,[`checked`,`onUpdate:checked`]))),128))]),H(`div`,u7,[U(r,{size:`small`,onClick:t[17]||=e=>ye.value=!1},{default:L(()=>[...t[58]||=[Ra(`取消`,-1)]]),_:1}),U(r,{size:`small`,type:`primary`,onClick:Oe,loading:ge.value,disabled:Se.value===0},{default:L(()=>[Ra(` 拉取选中 (`+De(Se.value)+`) `,1)]),_:1},8,[`loading`,`disabled`])])])):Ba(``,!0),ge.value?(B(),V(`div`,d7,[U(Ie,{size:`small`}),t[59]||=H(`span`,null,`正在拉取选中技能...`,-1)])):Ba(``,!0),_e.value?(B(),V(`div`,f7,[H(`div`,p7,[t[60]||=H(`span`,{class:`pull-result-label`},`已导入:`,-1),(B(!0),V(ba,null,ii(_e.value.imported,e=>(B(),Aa(i,{key:e,size:`small`,type:`success`,style:{margin:`2px`}},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))]),_e.value.skipped?.length?(B(),V(`div`,m7,[t[61]||=H(`span`,{class:`pull-result-label`},`跳过:`,-1),(B(!0),V(ba,null,ii(_e.value.skipped,e=>(B(),Aa(i,{key:e,size:`small`,style:{margin:`2px`}},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128)),t[62]||=H(`span`,{class:`pull-result-hint`},`(无 SKILL.md)`,-1)])):Ba(``,!0),H(`div`,h7,[U(r,{size:`small`,type:`primary`,onClick:t[18]||=e=>ye.value=!1},{default:L(()=>[...t[63]||=[Ra(`完成`,-1)]]),_:1})])])):Ba(``,!0)])]),_:1},8,[`show`]),U(g5,{show:!!D.value,title:`同源技能更新`,width:`480px`,"mask-closable":!0,"onUpdate:show":t[21]||=e=>{e||(D.value=null)}},{default:L(()=>[D.value?(B(),V(`div`,g7,[H(`p`,_7,[H(`strong`,null,De(D.value.name),1),t[64]||=Ra(` 已更新。同仓库还有以下技能,是否一起更新? `,-1)]),H(`div`,v7,[(B(!0),V(ba,null,ii(D.value.siblings,e=>(B(),Aa(tt,{key:e,checked:O.value[e],"onUpdate:checked":t=>O.value[e]=t},{default:L(()=>[Ra(De(e),1)]),_:2},1032,[`checked`,`onUpdate:checked`]))),128))]),H(`div`,y7,[U(r,{size:`small`,onClick:t[20]||=e=>D.value=null},{default:L(()=>[...t[65]||=[Ra(`跳过`,-1)]]),_:1}),U(r,{size:`small`,type:`primary`,onClick:te,loading:k.value},{default:L(()=>[...t[66]||=[Ra(` 更新选中 `,-1)]]),_:1},8,[`loading`])])])):Ba(``,!0)]),_:1},8,[`show`]),U(g5,{show:A.value,title:j.value===`confirm`?`批量更新确认`:j.value===`executing`?`正在更新...`:j.value===`done`?`更新完成`:`更新失败`,width:`480px`,"mask-closable":j.value!==`executing`,"onUpdate:show":t[25]||=e=>{e||(A.value=!1,j.value===`executing`&&sn(P0)())}},{default:L(()=>[H(`div`,b7,[j.value===`confirm`?(B(),V(ba,{key:0},[H(`p`,x7,`确定更新 "`+De(M.value?.url)+`" 下的 `+De(M.value?.skills?.length)+` 个技能吗?`,1),H(`div`,S7,[U(r,{size:`small`,onClick:t[22]||=e=>A.value=!1},{default:L(()=>[...t[67]||=[Ra(`取消`,-1)]]),_:1}),U(r,{size:`small`,type:`primary`,onClick:We},{default:L(()=>[...t[68]||=[Ra(`开始更新`,-1)]]),_:1})])],64)):Ba(``,!0),j.value===`executing`?(B(),V(`div`,C7,[U(Ie,{size:`small`}),t[69]||=H(`span`,null,`正在更新,请稍候...`,-1)])):Ba(``,!0),j.value===`done`?(B(),V(ba,{key:2},[N.value?(B(),V(`div`,w7,[N.value.updated?.length>0?(B(),V(`div`,T7,[t[70]||=H(`span`,{class:`batch-result-label`},`已更新:`,-1),(B(!0),V(ba,null,ii(N.value.updated,e=>(B(),Aa(i,{key:e,size:`small`,type:`success`},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])):Ba(``,!0),N.value.unchanged?.length>0?(B(),V(`div`,E7,[t[71]||=H(`span`,{class:`batch-result-label`},`已是最新:`,-1),(B(!0),V(ba,null,ii(N.value.unchanged,e=>(B(),Aa(i,{key:e,size:`small`},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])):Ba(``,!0),N.value.notFound?.length>0?(B(),V(`div`,D7,[t[72]||=H(`span`,{class:`batch-result-label`},`未找到:`,-1),(B(!0),V(ba,null,ii(N.value.notFound,e=>(B(),Aa(i,{key:e,size:`small`,type:`warning`},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])):Ba(``,!0)])):Ba(``,!0),H(`div`,O7,[U(r,{size:`small`,type:`primary`,onClick:t[23]||=e=>A.value=!1},{default:L(()=>[...t[73]||=[Ra(`完成`,-1)]]),_:1})])],64)):Ba(``,!0),j.value===`error`?(B(),V(ba,{key:3},[U(Je,{type:`error`,bordered:!1},{default:L(()=>[Ra(De(ee.value),1)]),_:1}),H(`div`,k7,[U(r,{size:`small`,type:`primary`,onClick:t[24]||=e=>A.value=!1},{default:L(()=>[...t[74]||=[Ra(`关闭`,-1)]]),_:1})])],64)):Ba(``,!0)])]),_:1},8,[`show`,`title`,`mask-closable`])])}}},[[`__scopeId`,`data-v-4c899b15`]]),j7={class:`scene-switch`},M7={key:0,class:`readme-fold`},N7={class:`fold-body`},P7=[`innerHTML`],F7={class:`page-header`},I7={class:`scene-grid`},L7={class:`scene-desc`},R7={class:`scene-footer`},z7={class:`popover-fail-detail`},B7={key:0,class:`popover-fail-section`},V7={key:1,class:`popover-fail-section`},H7={style:{"margin-top":`8px`,"border-top":`1px solid #eee`,"padding-top":`6px`,"text-align":`center`}},U7={class:`skill-preview-list`},W7={key:0,class:`diff-preview`},G7={class:`diff-hint`},K7={key:0,class:`diff-section`},q7={class:`diff-label added-label`},J7={class:`diff-tags`},Y7={key:1,class:`diff-section`},X7={class:`diff-label removed-label`},Z7={class:`diff-tags`},Q7={key:2,class:`diff-section`},$7={class:`diff-label kept-label`},e9={class:`diff-tags`},t9={key:1,class:`executing-state`},n9={class:`executing-spinner`},r9={class:`executing-text`},i9={key:2,class:`diff-preview`},a9={class:`diff-hint`},o9={key:0,class:`diff-section`},s9={class:`diff-label added-label`},c9={class:`diff-tags`},l9={key:1,class:`diff-section`},u9={class:`diff-label removed-label`},d9={class:`diff-tags`},f9={key:0,class:`fail-marker`,title:`删除失败(被占用)`},p9={key:2,class:`diff-section`},m9={class:`diff-label kept-label`},h9={class:`diff-tags`},g9={key:3,class:`failure-section`},_9={class:`failure-title removal-failure`},v9={class:`failure-list`},y9={class:`failure-name`},b9={key:4,class:`failure-section`},x9={class:`failure-title install-failure`},S9={class:`failure-list`},C9={class:`failure-name`},w9={class:`pending-confirm-body`},T9={key:0},E9={key:1,class:`pending-confirm-section`},D9={key:2,class:`pending-confirm-section`},O9={class:`modal-skill-groups`},k9=[`onClick`],A9={class:`skill-group-label`},j9={class:`skill-group-count`},M9={class:`skill-group-body`},N9=[`innerHTML`],P9={class:`modal-skill-groups`},F9=[`onClick`],I9={class:`skill-group-label`},L9={class:`skill-group-count`},R9={class:`skill-group-body`},z9=[`innerHTML`],B9={key:0,class:`hint-text`},V9={class:`always-apply-grid`},H9=s5({__name:`SceneSwitch`,emits:[`refresh`],setup(e,{emit:t}){S4.use({renderer:{code({text:e,lang:t}){let n=t&&e5.getLanguage(t)?t:`plaintext`,r;try{r=e5.highlight(e,{language:n}).value}catch{r=e5.highlightAuto(e).value}return`<pre><button class="copy-btn" onclick="navigator.clipboard.writeText(this.parentNode.querySelector('code').textContent);this.textContent='已复制';setTimeout(()=>this.textContent='复制',1500)">复制</button><code class="hljs language-${n}">${r}</code></pre>`},link({href:e,text:t}){return`<a href="${e}"${e&&(e.startsWith(`http://`)||e.startsWith(`https://`))?` target="_blank" rel="noopener noreferrer"`:``}>${t}</a>`}}});let n=t,r=Qz(),i=F(null),a=F(!0),o=F(``),s=F([]),c=F(null),l=F([]),u=F(!1),d=F(null),f=F(!1),p=F(!1),m=F(null),h=F({added:[],removed:[],kept:[]}),g=F(`preview`),_=F([]),v=F([]),y=F(null),b=F(!1),x=F(null),S=W(()=>{if(!c.value)return`无`;let e=s.value.find(e=>e.id===c.value);return e?e.name:`无`}),C=F(!1),w=F([]),T=F(!1),E=F(``),D=F(!1),O=F(null),k=F(!1),A=F(``),j=F({name:``,description:``,skills:[],always_apply:[]}),M=F({});function N(e){M.value[e]=!M.value[e]}let ee=W(()=>s.value),te=W(()=>{let e={};for(let t of l.value){let n=t.source?.type===`remote`,r=n?t.source.url:`__local__`;e[r]||(e[r]={key:r,type:n?`remote`:`local`,url:t.source?.url||``,skills:[]}),e[r].skills.push(t)}for(let t of Object.keys(e))M.value[t]===void 0&&(M.value[t]=!0);return Object.values(e).sort((e,t)=>e.type===`remote`&&t.type===`local`?-1:+(e.type===`local`&&t.type===`remote`))});function ne(e,t){if(!t)return e.skills;let n=t.toLowerCase();return e.skills.filter(e=>e.name.toLowerCase().includes(n))}function re(e){let t=[];for(let n of te.value)t.push(...ne(n,e).map(e=>e.name));return t}function P(e,t){let n=re(e);return[...new Set([...t,...n])]}function ie(e,t){let n=re(e),r=new Set(n),i=t.filter(e=>!r.has(e)),a=n.filter(e=>!t.includes(e));return[...i,...a]}function ae(){return[]}function oe(e,t){if(!t)return e;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return e.replace(RegExp(`(${n})`,`gi`),`<mark class="search-highlight">$1</mark>`)}function se(e){return e&&e.replace(/^---[\s\S]*?---\s*/,``)}function ce(e){if(!e)return``;let t=se(e);if(!t.trim())return``;try{return S4.parse(t)}catch{return t}}async function le(){try{let e=await y0();e.content&&(o.value=ce(e.content),i.value=e.content)}catch{}}async function ue(){u.value=!0;try{let e=await s0();s.value=e.profiles||[],c.value=e.activeProfile,l.value=await i0()}finally{u.value=!1}}function de(){O.value=null,j.value={name:``,description:``,skills:[],always_apply:[]},D.value=!0}function fe(e){O.value=e,j.value={name:e.name,description:e.description||``,skills:[...e.skills||[]],always_apply:[...e.always_apply||[]]},D.value=!0}function pe(){w.value=l.value.filter(e=>e.enabled).map(e=>e.name),C.value=!0}async function me(){T.value=!0;try{let e=await o0(w.value);e.ok&&(e.locked?.length?r.warning(`已安装 ${w.value.length-e.locked.length} 个技能,${e.locked.length} 个被占用`):r.success(`已安装 ${w.value.length} 个技能`),c.value=`custom`,C.value=!1,w.value.forEach(i5),n(`refresh`))}catch{r.error(`安装失败`)}finally{T.value=!1}}async function he(){if(!j.value.name.trim()){r.warning(`请填写场景名称`);return}k.value=!0;try{let e=await l0({id:O.value?.id,name:j.value.name.trim(),description:j.value.description.trim(),skills:j.value.skills,always_apply:j.value.always_apply});e.ok?(s.value=e.profiles,r.success(O.value?`场景已更新`:`场景已创建`),D.value=!1,n(`refresh`)):e.error&&r.error(e.error)}catch{r.error(`保存失败`)}finally{k.value=!1}}async function ge(e){try{let t=await u0(e.id);t.ok?(s.value=s.value.filter(t=>t.id!==e.id),r.success(`场景「${e.name}」已删除`),n(`refresh`)):t.error&&r.error(t.error)}catch{r.error(`删除失败`)}}function _e(e){let t=l.value.filter(e=>e.enabled).map(e=>e.name),n=e.skills||[];return{added:n.filter(e=>!t.includes(e)),removed:t.filter(e=>!n.includes(e)),kept:t.filter(e=>n.includes(e))}}function ve(e){if(y.value){x.value=e,b.value=!0;return}m.value=e,h.value=_e(e),_.value=[],v.value=[],g.value=`preview`,f.value=!0}function ye(){y.value=null,b.value=!1;let e=x.value;x.value=null,e&&ve(e)}function xe(){b.value=!1,y.value&&(_.value=[...y.value.failedDelete||[]],v.value=[...y.value.failedInstall||[]],g.value=`failed`,m.value=s.value.find(e=>e.id===c.value)||null,f.value=!0)}async function Se(){if(m.value){g.value=`executing`,p.value=!0,d.value=m.value.id;try{let e=await c0(m.value.id);e.ok&&(c.value=m.value.id,_.value=e.failedDelete||[],v.value=e.failedInstall||[],_.value.length>0||v.value.length>0?(g.value=`failed`,y.value={failedDelete:[..._.value],failedInstall:[...v.value]}):(y.value=null,r.success(`已切换到「${m.value.name}」`),f.value=!1),(m.value.skills||[]).forEach(i5),n(`refresh`),l.value=await i0())}catch{r.error(`切换失败`),g.value=`preview`}finally{p.value=!1,d.value=null}}}async function Ce(e,t){let n=e===`delete`?A0:j0,i=e===`delete`?`删除`:`安装`;try{let a=await n(t);a.ok?(r.success(`技能 "${t}" ${i}成功`),e===`delete`?_.value=_.value.filter(e=>e!==t):v.value=v.value.filter(e=>e!==t),_.value.length===0&&v.value.length===0?y.value=null:y.value&&={failedDelete:[..._.value],failedInstall:[...v.value]},_.value.length===0&&v.value.length===0&&await Oe()):a.locked?r.warning(`技能 "${t}" 仍被占用,请关闭相关程序后重试`):r.error(a.error||`${i}失败`)}catch{r.error(`${i}失败`)}}async function we(){for(let e of[...v.value])if(await Ce(`install`,e),f.value===!1)return;for(let e of[..._.value])if(await Ce(`delete`,e),f.value===!1)return}function Te(){if(f.value=!1,y.value){let e=[];y.value.failedDelete?.length&&e.push(`删除失败 ${y.value.failedDelete.length} 个`),y.value.failedInstall?.length&&e.push(`安装失败 ${y.value.failedInstall.length} 个`),r.warning(`部分技能未就绪:${e.join(`、`)}`)}}function Ee(){M0().catch(()=>r.error(`打开目录失败`))}async function Oe(){m.value&&(await c0(m.value.id)).ok&&(r.success(`已切换到「${m.value.name}」`),f.value=!1,n(`refresh`),l.value=await i0())}function ke(){y.value&&(_.value=[...y.value.failedDelete||[]],v.value=[...y.value.failedInstall||[]],g.value=`failed`,m.value=s.value.find(e=>e.id===c.value)||null,f.value=!0)}return Wr(()=>{ue(),le()}),(e,t)=>{let n=ei(`n-button`),r=ei(`n-popconfirm`),s=ei(`n-space`),l=ei(`n-tag`),x=ei(`n-popover`),re=ei(`n-card`),se=ei(`n-spin`),ce=ei(`n-input`),le=ei(`n-checkbox`),ue=ei(`n-checkbox-group`),_e=ei(`n-form-item`),Oe=ei(`n-divider`),Ae=ei(`n-form`);return B(),V(`div`,j7,[i.value?(B(),V(`div`,M7,[H(`div`,{class:`fold-header`,onClick:t[0]||=e=>a.value=!a.value},[H(`span`,{class:be([`fold-arrow`,{open:a.value}])},`▶`,2),t[21]||=Ra(` 技能说明 `,-1)]),Gn(H(`div`,N7,[H(`div`,{class:`markdown-content`,innerHTML:o.value},null,8,P7)],512),[[qo,a.value]])])):Ba(``,!0),H(`div`,F7,[t[23]||=H(`h2`,null,`场景切换`,-1),U(n,{size:`small`,type:`primary`,onClick:de},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(T1))]),_:1})]),default:L(()=>[t[22]||=Ra(` 新建场景 `,-1)]),_:1})]),U(se,{show:u.value},{default:L(()=>[H(`div`,I7,[(B(!0),V(ba,null,ii(ee.value,e=>(B(),Aa(re,{key:e.id,class:be([`scene-card`,{active:e.id===c.value}]),title:e.name,size:`small`},{"header-extra":L(()=>[e.id!==`custom`&&e.skills!==null?(B(),Aa(s,{key:0,size:4},{default:L(()=>[U(n,{size:`tiny`,quaternary:``,onClick:t=>fe(e)},{icon:L(()=>[U(sn(lI),{size:`16`},{default:L(()=>[U(sn(G1))]),_:1})]),_:1},8,[`onClick`]),U(r,{"negative-text":`取消`,"positive-text":`确认删除`,onPositiveClick:t=>ge(e)},{trigger:L(()=>[U(n,{size:`tiny`,quaternary:``},{icon:L(()=>[U(sn(lI),{size:`16`},{default:L(()=>[U(sn(t0))]),_:1})]),_:1})]),default:L(()=>[Ra(` 确定删除场景「`+De(e.name)+`」? `,1)]),_:2},1032,[`onPositiveClick`])]),_:2},1024)):Ba(``,!0)]),footer:L(()=>[H(`div`,R7,[U(s,{size:6},{default:L(()=>[e.id===c.value?(B(),Aa(l,{key:0,type:`success`,size:`small`},{default:L(()=>[...t[24]||=[Ra(` 当前场景 `,-1)]]),_:1})):Ba(``,!0),e.id===c.value&&y.value?(B(),Aa(x,{key:1,trigger:`hover`,placement:`top`,width:`280`},{trigger:L(()=>[U(l,{type:`warning`,size:`small`,style:{cursor:`pointer`}},{default:L(()=>[...t[25]||=[Ra(` ⚠ 未就绪 `,-1)]]),_:1})]),default:L(()=>[H(`div`,z7,[y.value.failedDelete?.length?(B(),V(`div`,B7,[t[26]||=H(`div`,{class:`popover-fail-title`},`🔒 删除失败(被占用)`,-1),(B(!0),V(ba,null,ii(y.value.failedDelete,e=>(B(),V(`div`,{key:`fd-`+e,class:`popover-fail-item`},De(e),1))),128))])):Ba(``,!0),y.value.failedInstall?.length?(B(),V(`div`,V7,[t[27]||=H(`div`,{class:`popover-fail-title`},`⚠️ 安装失败`,-1),(B(!0),V(ba,null,ii(y.value.failedInstall,e=>(B(),V(`div`,{key:`fi-`+e,class:`popover-fail-item`},De(e),1))),128))])):Ba(``,!0),H(`div`,H7,[U(n,{size:`tiny`,type:`warning`,secondary:``,onClick:ke},{default:L(()=>[...t[28]||=[Ra(` 🔄 重新尝试处理 `,-1)]]),_:1})])])]),_:1})):Ba(``,!0),e.skills===null?e.skills===null?(B(),Aa(l,{key:3,size:`small`},{default:L(()=>[...t[29]||=[Ra(` 自定义 `,-1)]]),_:1})):Ba(``,!0):(B(),Aa(x,{key:2,trigger:`hover`,placement:`top`,width:`240`},{trigger:L(()=>[U(l,{size:`small`,style:{cursor:`pointer`}},{default:L(()=>[Ra(De(e.skills.length)+` 个技能 `,1)]),_:2},1024)]),default:L(()=>[H(`div`,U7,[(B(!0),V(ba,null,ii(e.skills,e=>(B(),V(`div`,{key:e,class:`skill-preview-item`},De(e),1))),128))])]),_:2},1024))]),_:2},1024),e.id!==c.value&&e.skills!==null?(B(),Aa(n,{key:0,size:`small`,type:`primary`,loading:d.value===e.id,onClick:t=>ve(e)},{default:L(()=>[...t[30]||=[Ra(` 应用 `,-1)]]),_:1},8,[`loading`,`onClick`])):Ba(``,!0),e.id!==c.value&&e.skills===null?(B(),Aa(n,{key:1,size:`small`,onClick:pe},{default:L(()=>[...t[31]||=[Ra(` 自定义勾选 `,-1)]]),_:1})):Ba(``,!0)])]),default:L(()=>[H(`p`,L7,De(e.description),1)]),_:2},1032,[`class`,`title`]))),128))])]),_:1},8,[`show`]),U(g5,{show:f.value,title:g.value===`executing`?`正在切换场景`:g.value===`failed`?`切换未完成`:`确认切换场景`,width:`540px`,"mask-closable":!1,"onUpdate:show":t[2]||=e=>{!e&&g.value!==`executing`&&(f.value=!1)}},{footer:L(()=>[g.value===`preview`?(B(),V(ba,{key:0},[U(n,{onClick:t[1]||=e=>f.value=!1},{default:L(()=>[...t[42]||=[Ra(`取消`,-1)]]),_:1}),U(n,{type:`primary`,loading:p.value,onClick:Se},{default:L(()=>[...t[43]||=[Ra(` 确认切换 `,-1)]]),_:1},8,[`loading`])],64)):Ba(``,!0),g.value===`failed`?(B(),V(ba,{key:1},[U(n,{size:`small`,onClick:Ee},{default:L(()=>[...t[44]||=[Ra(`📂 打开技能目录`,-1)]]),_:1}),U(n,{size:`small`,onClick:Te},{default:L(()=>[...t[45]||=[Ra(`放弃`,-1)]]),_:1}),U(n,{size:`small`,type:`primary`,loading:p.value,onClick:we},{default:L(()=>[...t[46]||=[Ra(` 重试所有失败项 `,-1)]]),_:1},8,[`loading`])],64)):Ba(``,!0)]),default:L(()=>[g.value===`preview`&&m.value?(B(),V(`div`,W7,[H(`p`,G7,[t[32]||=Ra(` 从 `,-1),H(`strong`,null,De(S.value),1),t[33]||=Ra(` 切换到 `,-1),H(`strong`,null,De(m.value.name),1)]),h.value.added.length>0?(B(),V(`div`,K7,[H(`div`,q7,[U(sn(lI),{size:`16`,color:`#18a058`},{default:L(()=>[U(sn(T1))]),_:1}),H(`span`,null,`新增(`+De(h.value.added.length)+`)`,1)]),H(`div`,J7,[(B(!0),V(ba,null,ii(h.value.added,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`success`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),h.value.removed.length>0?(B(),V(`div`,Y7,[H(`div`,X7,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(t0))]),_:1}),H(`span`,null,`移除(`+De(h.value.removed.length)+`)`,1)]),H(`div`,Z7,[(B(!0),V(ba,null,ii(h.value.removed,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`error`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),h.value.kept.length>0?(B(),V(`div`,Q7,[H(`div`,$7,[U(sn(lI),{size:`16`,color:`#999`},{default:L(()=>[U(sn(j1))]),_:1}),H(`span`,null,`不变(`+De(h.value.kept.length)+`)`,1)]),H(`div`,e9,[(B(!0),V(ba,null,ii(h.value.kept,e=>(B(),Aa(l,{key:e,size:`tiny`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0)])):Ba(``,!0),g.value===`executing`?(B(),V(`div`,t9,[H(`div`,n9,[U(se,{size:`large`})]),H(`p`,r9,`正在切换到「`+De(m.value?.name)+`」...`,1),t[34]||=H(`p`,{class:`executing-hint`},`处理中,请稍候`,-1)])):Ba(``,!0),g.value===`failed`?(B(),V(`div`,i9,[H(`p`,a9,[t[35]||=Ra(` 切换到 `,-1),H(`strong`,null,De(m.value?.name),1),t[36]||=Ra(` 时部分技能未能处理 `,-1)]),h.value.added.length>0?(B(),V(`div`,o9,[H(`div`,s9,[U(sn(lI),{size:`16`,color:`#18a058`},{default:L(()=>[U(sn(T1))]),_:1}),H(`span`,null,`新增(`+De(h.value.added.length)+`)`,1)]),H(`div`,c9,[(B(!0),V(ba,null,ii(h.value.added,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`success`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),h.value.removed.length>0?(B(),V(`div`,l9,[H(`div`,u9,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(t0))]),_:1}),H(`span`,null,`移除(`+De(h.value.removed.length)+`)`,1)]),H(`div`,d9,[(B(!0),V(ba,null,ii(h.value.removed,e=>(B(),Aa(l,{key:e,size:`tiny`,type:`error`,bordered:!1},{default:L(()=>[Ra(De(e),1),_.value.includes(e)?(B(),V(`span`,f9,`🔒`)):Ba(``,!0)]),_:2},1024))),128))])])):Ba(``,!0),h.value.kept.length>0?(B(),V(`div`,p9,[H(`div`,m9,[U(sn(lI),{size:`16`,color:`#999`},{default:L(()=>[U(sn(j1))]),_:1}),H(`span`,null,`不变(`+De(h.value.kept.length)+`)`,1)]),H(`div`,h9,[(B(!0),V(ba,null,ii(h.value.kept,e=>(B(),Aa(l,{key:e,size:`tiny`,bordered:!1},{default:L(()=>[Ra(De(e),1)]),_:2},1024))),128))])])):Ba(``,!0),_.value.length>0?(B(),V(`div`,g9,[H(`div`,_9,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(t0))]),_:1}),t[37]||=H(`span`,null,`删除失败(被程序占用)`,-1)]),H(`div`,v9,[(B(!0),V(ba,null,ii(_.value,e=>(B(),V(`div`,{key:`del-`+e,class:`failure-item`},[H(`span`,y9,`🔒 `+De(e),1),U(n,{size:`tiny`,secondary:``,type:`warning`,onClick:t=>Ce(`delete`,e)},{default:L(()=>[...t[38]||=[Ra(` 重试 `,-1)]]),_:1},8,[`onClick`])]))),128))])])):Ba(``,!0),v.value.length>0?(B(),V(`div`,b9,[H(`div`,x9,[U(sn(lI),{size:`16`,color:`#d03050`},{default:L(()=>[U(sn(T1))]),_:1}),t[39]||=H(`span`,null,`安装失败`,-1)]),H(`div`,S9,[(B(!0),V(ba,null,ii(v.value,e=>(B(),V(`div`,{key:`inst-`+e,class:`failure-item`},[H(`span`,C9,`⚠️ `+De(e),1),U(n,{size:`tiny`,secondary:``,type:`warning`,onClick:t=>Ce(`install`,e)},{default:L(()=>[...t[40]||=[Ra(` 重试 `,-1)]]),_:1},8,[`onClick`])]))),128))])])):Ba(``,!0),t[41]||=H(`p`,{class:`failure-tip`},`请关闭相关程序后重试,或打开技能目录手动处理`,-1)])):Ba(``,!0)]),_:1},8,[`show`,`title`]),U(g5,{show:b.value,title:`当前场景未就绪`,width:`420px`,"onUpdate:show":t[4]||=e=>{e||(b.value=!1)}},{footer:L(()=>[U(n,{size:`small`,onClick:t[3]||=e=>b.value=!1},{default:L(()=>[...t[52]||=[Ra(`取消`,-1)]]),_:1}),U(n,{size:`small`,onClick:ye},{default:L(()=>[...t[53]||=[Ra(`忽略并切换`,-1)]]),_:1}),U(n,{size:`small`,type:`primary`,onClick:xe},{default:L(()=>[...t[54]||=[Ra(`处理未就绪`,-1)]]),_:1})]),default:L(()=>[H(`div`,w9,[y.value?(B(),V(`p`,T9,[t[47]||=Ra(` 当前场景 `,-1),H(`strong`,null,De(S.value),1),t[48]||=Ra(` 还有未就绪的技能 `,-1)])):Ba(``,!0),y.value?.failedDelete?.length?(B(),V(`div`,E9,[t[49]||=H(`div`,{class:`pending-confirm-title`},`🔒 删除失败(被占用)`,-1),(B(!0),V(ba,null,ii(y.value.failedDelete,e=>(B(),V(`div`,{key:`pd-`+e,class:`pending-confirm-item`},De(e),1))),128))])):Ba(``,!0),y.value?.failedInstall?.length?(B(),V(`div`,D9,[t[50]||=H(`div`,{class:`pending-confirm-title`},`⚠️ 安装失败`,-1),(B(!0),V(ba,null,ii(y.value.failedInstall,e=>(B(),V(`div`,{key:`pi-`+e,class:`pending-confirm-item`},De(e),1))),128))])):Ba(``,!0),t[51]||=H(`p`,{class:`pending-confirm-hint`},`确定要切换到其他场景吗?`,-1)])]),_:1},8,[`show`]),U(g5,{show:C.value,title:`自定义技能组合`,width:`560px`,"onUpdate:show":t[10]||=e=>{e||(C.value=!1)}},{footer:L(()=>[U(n,{type:`primary`,loading:T.value,onClick:me},{default:L(()=>[...t[58]||=[Ra(` 确认安装 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[U(ce,{value:E.value,"onUpdate:value":t[5]||=e=>E.value=e,placeholder:`搜索技能...`,size:`small`,clearable:``,class:`search-input`},null,8,[`value`]),U(s,{class:`batch-actions`,size:6},{default:L(()=>[U(n,{size:`tiny`,onClick:t[6]||=e=>w.value=P(E.value,w.value)},{default:L(()=>[...t[55]||=[Ra(` 全选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[7]||=e=>w.value=ie(E.value,w.value)},{default:L(()=>[...t[56]||=[Ra(` 反选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[8]||=e=>w.value=ae()},{default:L(()=>[...t[57]||=[Ra(` 清空 `,-1)]]),_:1})]),_:1}),U(ue,{value:w.value,"onUpdate:value":t[9]||=e=>w.value=e},{default:L(()=>[H(`div`,O9,[(B(!0),V(ba,null,ii(te.value,e=>(B(),V(`div`,{key:e.key,class:`skill-group`},[H(`div`,{class:`skill-group-header`,onClick:t=>N(e.key)},[H(`span`,{class:be([`fold-arrow`,{open:M.value[e.key]}])},`▶`,2),H(`span`,A9,De(e.type===`remote`?e.url:`本地技能`),1),H(`span`,j9,De(ne(e,E.value).length),1)],8,k9),Gn(H(`div`,M9,[(B(!0),V(ba,null,ii(ne(e,E.value),e=>(B(),Aa(le,{key:e.name,value:e.name},{default:L(()=>[H(`span`,{innerHTML:oe(e.name,E.value)},null,8,N9)]),_:2},1032,[`value`]))),128))],512),[[qo,M.value[e.key]]])]))),128))])]),_:1},8,[`value`])]),_:1},8,[`show`]),U(g5,{show:D.value,title:O.value?`编辑场景`:`新建场景`,width:`560px`,"mask-closable":!1,"onUpdate:show":t[20]||=e=>{e||(D.value=!1)}},{footer:L(()=>[U(n,{onClick:t[19]||=e=>D.value=!1},{default:L(()=>[...t[62]||=[Ra(`取消`,-1)]]),_:1}),U(n,{type:`primary`,loading:k.value,onClick:he},{default:L(()=>[...t[63]||=[Ra(` 保存 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[U(Ae,{model:j.value,"label-placement":`top`},{default:L(()=>[U(_e,{label:`场景名称`,required:``},{default:L(()=>[U(ce,{value:j.value.name,"onUpdate:value":t[11]||=e=>j.value.name=e,placeholder:`给场景起个名字`,maxlength:30},null,8,[`value`])]),_:1}),U(_e,{label:`场景描述`},{default:L(()=>[U(ce,{value:j.value.description,"onUpdate:value":t[12]||=e=>j.value.description=e,type:`textarea`,rows:2,placeholder:`简短描述这个场景的用途`},null,8,[`value`])]),_:1}),U(Oe),U(_e,{label:`包含的技能`},{default:L(()=>[U(ce,{value:A.value,"onUpdate:value":t[13]||=e=>A.value=e,placeholder:`搜索技能...`,size:`small`,clearable:``,class:`search-input`},null,8,[`value`]),U(s,{class:`batch-actions`,size:6},{default:L(()=>[U(n,{size:`tiny`,onClick:t[14]||=e=>j.value.skills=P(A.value,j.value.skills)},{default:L(()=>[...t[59]||=[Ra(` 全选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[15]||=e=>j.value.skills=ie(A.value,j.value.skills)},{default:L(()=>[...t[60]||=[Ra(` 反选 `,-1)]]),_:1}),U(n,{size:`tiny`,onClick:t[16]||=e=>j.value.skills=ae()},{default:L(()=>[...t[61]||=[Ra(` 清空 `,-1)]]),_:1})]),_:1}),U(ue,{value:j.value.skills,"onUpdate:value":t[17]||=e=>j.value.skills=e},{default:L(()=>[H(`div`,P9,[(B(!0),V(ba,null,ii(te.value,e=>(B(),V(`div`,{key:e.key,class:`skill-group`},[H(`div`,{class:`skill-group-header`,onClick:t=>N(e.key)},[H(`span`,{class:be([`fold-arrow`,{open:M.value[e.key]}])},`▶`,2),H(`span`,I9,De(e.type===`remote`?e.url:`本地技能`),1),H(`span`,L9,De(ne(e,A.value).length),1)],8,F9),Gn(H(`div`,R9,[(B(!0),V(ba,null,ii(ne(e,A.value),e=>(B(),Aa(le,{key:e.name,value:e.name},{default:L(()=>[H(`span`,{innerHTML:oe(e.name,A.value)},null,8,z9)]),_:2},1032,[`value`]))),128))],512),[[qo,M.value[e.key]]])]))),128))])]),_:1},8,[`value`])]),_:1}),U(Oe),U(_e,{label:`始终加载(always_apply)`},{default:L(()=>[j.value.skills.length===0?(B(),V(`span`,B9,`请先勾选包含的技能`)):(B(),Aa(ue,{key:1,value:j.value.always_apply,"onUpdate:value":t[18]||=e=>j.value.always_apply=e},{default:L(()=>[H(`div`,V9,[(B(!0),V(ba,null,ii(j.value.skills,e=>(B(),Aa(le,{key:e,value:e,label:e},null,8,[`value`,`label`]))),128))])]),_:1},8,[`value`]))]),_:1})]),_:1},8,[`model`])]),_:1},8,[`show`,`title`])])}}},[[`__scopeId`,`data-v-0795d234`]]),U9={class:`settings`},W9={class:`source-status`},G9={class:`missing-list`},K9={key:1,class:`missing-item`},q9={class:`source-actions`},J9={class:`action-buttons`},Y9={key:0,class:`diag-group`},X9={class:`diag-group-header diag-group-error`},Z9={key:1,class:`diag-group`},Q9={class:`diag-group-header diag-group-ok`},ree=s5({__name:`Settings`,emits:[`refresh`],setup(e,{emit:t}){let n=t,r=Qz(),i=F({connected:!1,path:null,needsInit:!1}),a=F(``),o=F(!1),s=F(!1),c=F(!1),l=F(!1),u=F(!1),d=F([]),f=W(()=>{let e=[],t=[];for(let n of d.value)n.healthy?e.push(n):t.push(n);return{healthy:e,unhealthy:t}}),p=F(!1),m=F(!1),h=F({root:!0,skills:!0,projectName:``,teamName:``}),g=W(()=>i.value.readmeStatus?!i.value.readmeStatus.root||!i.value.readmeStatus.skills:!1);async function _(){i.value=await f0()}async function v(){o.value=!0;try{let e=await p0(a.value);e.ok?(r.success(`技能目录已设置`),await _(),n(`refresh`)):r.error(e.error||`设置失败`)}catch{r.error(`设置失败`)}finally{o.value=!1}}async function y(){c.value=!0;try{let e=await h0();e.ok?r.success(`已同步到仓库`):r.error(e.error||`同步失败`)}catch{r.error(`同步失败`)}finally{c.value=!1}}async function b(){s.value=!0;try{let e=await g0();if(e.ok){let t=[];e.profiles&&t.push(`profiles.json`),e.settings&&t.push(`settings.json`),e.metaFiles>0&&t.push(`${e.metaFiles} 个 .meta.json`),r.success(`初始化完成:${t.join(`、`)||`无缺失文件`}`),e.readmeStatus&&(!e.readmeStatus.root||!e.readmeStatus.skills)&&(h.value.root=!e.readmeStatus.root,h.value.skills=!e.readmeStatus.skills,p.value=!0),await _(),n(`refresh`)}else r.error(e.error||`初始化失败`)}catch{r.error(`初始化失败`)}finally{s.value=!1}}async function x(){m.value=!0;try{let e=await N0({root:h.value.root,skills:h.value.skills,projectName:h.value.projectName.trim(),teamName:h.value.teamName.trim()});if(e.ok){let t=e.created||[];r.success(`已创建:${t.join(`、`)||`无`}`),p.value=!1}else r.error(e.error||`创建失败`)}catch{r.error(`创建失败`)}finally{m.value=!1}}function S(){h.value.root=!i.value.readmeStatus?.root,h.value.skills=!i.value.readmeStatus?.skills,p.value=!0}async function C(){l.value=!0;try{(await m0()).ok&&(r.success(`技能目录已清除`),await _(),n(`refresh`))}catch{r.error(`清除失败`)}finally{l.value=!1}}async function w(){u.value=!0;try{d.value=await _0()}catch{r.error(`诊断失败`)}finally{u.value=!1}}return Wr(_),(e,t)=>{let n=ei(`n-alert`),r=ei(`n-input`),_=ei(`n-button`),T=ei(`n-card`),E=ei(`n-checkbox`),D=ei(`n-divider`),O=ei(`n-form-item`),k=ei(`n-form`),A=ei(`n-empty`),j=ei(`n-icon`),M=ei(`n-text`),N=ei(`n-list-item`),ee=ei(`n-list`),te=ei(`n-spin`);return B(),V(`div`,U9,[t[28]||=H(`div`,{class:`page-header`},[H(`h2`,null,`设置`)],-1),U(T,{title:`技能目录`,size:`small`,class:`section`},{default:L(()=>[H(`div`,W9,[i.value.connected?(B(),Aa(n,{key:0,type:`success`,bordered:!1},{header:L(()=>[...t[7]||=[Ra(`已设置`,-1)]]),default:L(()=>[Ra(` `+De(i.value.path),1)]),_:1})):(B(),Aa(n,{key:1,type:`warning`,bordered:!1},{default:L(()=>[...t[8]||=[Ra(` 尚未设置技能目录,请指定包含 .claude/skills 的仓库路径 `,-1)]]),_:1}))]),i.value.connected&&i.value.needsInit?(B(),Aa(n,{key:0,type:`warning`,bordered:!1,class:`init-alert`},{header:L(()=>[...t[9]||=[Ra(`技能目录缺少必要文件`,-1)]]),default:L(()=>[H(`div`,G9,[i.value.missingConfig?.length?(B(!0),V(ba,{key:0},ii(i.value.missingConfig,e=>(B(),V(`div`,{class:`missing-item`,key:e},[t[10]||=Ra(` 缺少配置文件:`,-1),H(`code`,null,De(e),1)]))),128)):Ba(``,!0),i.value.missingSkillDocs?.length?(B(),V(`div`,K9,[t[11]||=Ra(` 以下技能缺少 SKILL.md 文档: `,-1),(B(!0),V(ba,null,ii(i.value.missingSkillDocs,e=>(B(),V(`code`,{key:e,class:`skill-tag`},De(e),1))),128))])):Ba(``,!0),t[12]||=H(`div`,{class:`missing-hint`},`可手动检测该文件夹是否为skill,若该目录不是 skill,可手动删除`,-1)])]),_:1})):Ba(``,!0),H(`div`,q9,[i.value.connected?Ba(``,!0):(B(),Aa(r,{key:0,value:a.value,"onUpdate:value":t[0]||=e=>a.value=e,placeholder:`输入本地仓库路径...`,clearable:``},{prefix:L(()=>[...t[13]||=[Ra(`📁`,-1)]]),_:1},8,[`value`])),i.value.connected&&i.value.needsInit===!1&&g.value?(B(),Aa(n,{key:1,type:`info`,bordered:!1,class:`init-alert`},{header:L(()=>[...t[14]||=[Ra(`缺少 README.md 文档`,-1)]]),default:L(()=>[t[15]||=Ra(` 创建后将生成模板文件,可在对应目录中自行编辑 `,-1)]),_:1})):Ba(``,!0),H(`div`,J9,[i.value.connected?Ba(``,!0):(B(),Aa(_,{key:0,type:`primary`,disabled:!a.value,loading:o.value,onClick:v},{default:L(()=>[...t[16]||=[Ra(` 设置 `,-1)]]),_:1},8,[`disabled`,`loading`])),i.value.connected&&i.value.needsInit?(B(),Aa(_,{key:1,type:`warning`,loading:s.value,onClick:b},{default:L(()=>[...t[17]||=[Ra(` 初始化 `,-1)]]),_:1},8,[`loading`])):Ba(``,!0),i.value.connected?(B(),Aa(_,{key:2,loading:c.value,onClick:y},{default:L(()=>[...t[18]||=[Ra(` 同步到仓库 `,-1)]]),_:1},8,[`loading`])):Ba(``,!0),i.value.connected&&i.value.needsInit===!1&&g.value?(B(),Aa(_,{key:3,ghost:``,onClick:S},{default:L(()=>[...t[19]||=[Ra(` 创建文档 `,-1)]]),_:1})):Ba(``,!0),i.value.connected?(B(),Aa(_,{key:4,type:`error`,ghost:``,loading:l.value,onClick:C},{default:L(()=>[...t[20]||=[Ra(` 清除 `,-1)]]),_:1},8,[`loading`])):Ba(``,!0)])])]),_:1}),U(g5,{show:p.value,title:`创建文档`,width:`520px`,"mask-closable":!1,"onUpdate:show":t[6]||=e=>{e||(p.value=!1)}},{footer:L(()=>[U(_,{onClick:t[5]||=e=>p.value=!1},{default:L(()=>[...t[23]||=[Ra(`跳过`,-1)]]),_:1}),U(_,{type:`primary`,loading:m.value,onClick:x},{default:L(()=>[...t[24]||=[Ra(` 创建 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[t[25]||=H(`div`,{class:`readme-dialog-desc`},`检测到缺少以下文档,是否创建?`,-1),U(E,{checked:h.value.root,"onUpdate:checked":t[1]||=e=>h.value.root=e,class:`readme-checkbox`},{default:L(()=>[...t[21]||=[H(`div`,{class:`readme-checkbox-content`},[H(`span`,{class:`readme-checkbox-title`},`根目录 README.md`),H(`span`,{class:`readme-checkbox-desc`},`仪表盘 → "仓库说明"折叠面板,适合写项目简介、维护团队、许可证`)],-1)]]),_:1},8,[`checked`]),U(E,{checked:h.value.skills,"onUpdate:checked":t[2]||=e=>h.value.skills=e,class:`readme-checkbox`},{default:L(()=>[...t[22]||=[H(`div`,{class:`readme-checkbox-content`},[H(`span`,{class:`readme-checkbox-title`},`.claude/skills/README.md`),H(`span`,{class:`readme-checkbox-desc`},`场景切换 → "技能说明"折叠面板,适合写使用指南、场景搭配建议`)],-1)]]),_:1},8,[`checked`]),U(D),U(k,{"label-placement":`top`},{default:L(()=>[U(O,{label:`项目名称(选填)`},{default:L(()=>[U(r,{value:h.value.projectName,"onUpdate:value":t[3]||=e=>h.value.projectName=e,placeholder:`我的技能仓库`},null,8,[`value`])]),_:1}),U(O,{label:`维护团队(选填)`},{default:L(()=>[U(r,{value:h.value.teamName,"onUpdate:value":t[4]||=e=>h.value.teamName=e,placeholder:`未设定`},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`show`]),U(T,{title:`健康检查`,size:`small`,class:`section`},{"header-extra":L(()=>[U(_,{size:`tiny`,loading:u.value,onClick:w},{default:L(()=>[...t[26]||=[Ra(` 运行检查 `,-1)]]),_:1},8,[`loading`])]),default:L(()=>[U(te,{show:u.value},{default:L(()=>[!d.value.length&&!u.value?(B(),Aa(A,{key:0,description:`点击按钮运行健康检查`})):(B(),V(ba,{key:1},[f.value.unhealthy.length>0?(B(),V(`div`,Y9,[H(`div`,X9,[U(sn(N1),{size:`24`}),Ra(` 异常(`+De(f.value.unhealthy.length)+`) `,1)]),U(ee,null,{default:L(()=>[(B(!0),V(ba,null,ii(f.value.unhealthy,e=>(B(),Aa(N,{key:e.name},{prefix:L(()=>[U(j,{size:`20`,color:`#d03050`},{default:L(()=>[U(sn(N1))]),_:1})]),suffix:L(()=>[U(M,{depth:`3`,class:`issue-text`},{default:L(()=>[Ra(De(e.issues.join(`; `)),1)]),_:2},1024)]),default:L(()=>[U(M,null,{default:L(()=>[Ra(De(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):Ba(``,!0),f.value.healthy.length>0?(B(),V(`div`,Z9,[H(`div`,Q9,[U(sn(k1)),Ra(` 正常(`+De(f.value.healthy.length)+`) `,1)]),U(ee,null,{default:L(()=>[(B(!0),V(ba,null,ii(f.value.healthy,e=>(B(),Aa(N,{key:e.name},{prefix:L(()=>[U(j,{size:`20`,color:`#18a058`},{default:L(()=>[U(sn(k1))]),_:1})]),suffix:L(()=>[U(M,{depth:`3`,class:`healthy-text`},{default:L(()=>[...t[27]||=[Ra(`正常`,-1)]]),_:1})]),default:L(()=>[U(M,null,{default:L(()=>[Ra(De(e.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):Ba(``,!0)],64))]),_:1},8,[`show`])]),_:1})])}}},[[`__scopeId`,`data-v-0c97d90d`]]),iee={class:`readme-view`},aee={class:`page-header`},oee=[`innerHTML`],see=[{path:`/`,name:`Dashboard`,component:A7,meta:{title:`仪表盘`}},{path:`/scenes`,name:`Scenes`,component:H9,meta:{title:`场景切换`}},{path:`/settings`,name:`Settings`,component:ree,meta:{title:`设置`}},{path:`/readme`,name:`ClaudeMd`,component:s5({__name:`ReadmeView`,setup(e){S4.use({renderer:{code({text:e,lang:t}){let n=t&&e5.getLanguage(t)?t:`plaintext`,r;try{r=e5.highlight(e,{language:n}).value}catch{r=e5.highlightAuto(e).value}return`<pre><button class="copy-btn" onclick="navigator.clipboard.writeText(this.parentNode.querySelector('code').textContent);this.textContent='已复制';setTimeout(()=>this.textContent='复制',1500)">复制</button><code class="hljs language-${n}">${r}</code></pre>`},link({href:e,text:t}){return`<a href="${e}"${e&&(e.startsWith(`http://`)||e.startsWith(`https://`))?` target="_blank" rel="noopener noreferrer"`:``}>${t}</a>`}}});let t=F(!1),n=F(!1),r=F(null),i=F(``);function a(e){return e&&e.replace(/^---[\s\S]*?---\s*/,``)}function o(e){if(!e)return``;let t=a(e);if(!t.trim())return``;try{return S4.parse(t)}catch{return t}}async function s(){t.value=!0,n.value=!1;try{let e=await b0();e.content?(r.value=e.content,await Nn(),i.value=o(e.content)):r.value=null}catch{r.value=null}finally{t.value=!1,n.value=!0}}return Wr(s),(e,a)=>{let o=ei(`n-button`),c=ei(`n-empty`),l=ei(`n-spin`);return B(),V(`div`,iee,[H(`div`,aee,[a[1]||=H(`h2`,null,`CLAUDE.md 文档`,-1),U(o,{size:`small`,onClick:s},{icon:L(()=>[U(sn(lI),null,{default:L(()=>[U(sn(q1))]),_:1})]),default:L(()=>[a[0]||=Ra(` 刷新 `,-1)]),_:1})]),U(l,{show:t.value},{default:L(()=>[U(ko,{name:`fade`},{default:L(()=>[r.value?(B(),V(`div`,{key:0,class:`markdown-content`,innerHTML:i.value},null,8,oee)):n.value?(B(),Aa(c,{key:1,description:`暂无 CLAUDE.md 文档`})):Ba(``,!0)]),_:1})]),_:1},8,[`show`])])}}},[[`__scopeId`,`data-v-97d38fe1`]]),meta:{title:`CLAUDE.md`}}],cee=C1({history:H$(),routes:see}),$9=Bs(G0);$9.use(gQ),$9.use(cee),$9.mount(`#app`);
@@ -7,8 +7,8 @@
7
7
  <script>
8
8
  (function(){var t=localStorage.getItem("mdk-theme");if(t==="dark")document.documentElement.setAttribute("data-theme","dark")})();
9
9
  </script>
10
- <script type="module" crossorigin src="/assets/index-c2voeFwQ.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-B5lUvD80.css">
10
+ <script type="module" crossorigin src="/assets/index-C29dd_Of.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-BOMmZh4l.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="app"></div>
@@ -1 +0,0 @@
1
- *{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:#f5f7fa;height:100%}body{overflow-y:auto}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{display:none}.app-layout{flex-direction:column;min-height:100vh;padding-top:56px;display:flex}.app-header{z-index:100;background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;height:56px;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.header-inner{justify-content:space-between;align-items:center;width:100%;display:flex}.header-left{align-items:center;gap:32px;display:flex}.logo{color:#1a1a1a;white-space:nowrap;font-size:18px;font-weight:700}.app-content{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px}.markdown-content{color:#333;word-wrap:break-word;font-size:14px;line-height:1.7;overflow:auto}.markdown-content h1{border-bottom:1px solid #eee;margin:20px 0 12px;padding-bottom:8px;font-size:22px;font-weight:700}.markdown-content h2{border-bottom:1px solid #eee;margin:18px 0 10px;padding-bottom:6px;font-size:18px;font-weight:700}.markdown-content h3{margin:16px 0 8px;font-size:16px;font-weight:600}.markdown-content h4{margin:14px 0 6px;font-size:14px;font-weight:600}.markdown-content h5,.markdown-content h6{margin:12px 0 6px;font-size:13px;font-weight:600}.markdown-content p{margin:8px 0}.markdown-content ul,.markdown-content ol{margin:8px 0;padding-left:24px}.markdown-content li{margin:4px 0}.markdown-content blockquote{color:#555;background:#f0f7ff;border-left:4px solid #2080f0;margin:10px 0;padding:8px 16px}.markdown-content blockquote p{margin:4px 0}.markdown-content a{color:#2080f0;text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content hr{border:none;border-top:1px solid #e0e0e0;margin:16px 0}.markdown-content table{border-collapse:collapse;width:100%;margin:12px 0;font-size:13px}.markdown-content th,.markdown-content td{text-align:left;border:1px solid #e0e0e0;padding:8px 12px}.markdown-content th{background:#f5f7fa;font-weight:600}.markdown-content tr:nth-child(2n) td{background:#fafafa}.markdown-content img{border-radius:4px;max-width:100%;margin:8px 0}.markdown-content code{color:#d63384;background:#f0f0f0;border-radius:3px;padding:2px 6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px}.markdown-content pre{border:1px solid #e8e8e8;border-radius:6px;margin:12px 0;padding:0;position:relative;overflow:hidden}.markdown-content pre code{color:#333;tab-size:2;background:#f8f9fa;padding:14px 16px;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.markdown-content pre .copy-btn{color:#999;cursor:pointer;opacity:0;background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:3px 8px;font-size:11px;transition:opacity .2s;position:absolute;top:6px;right:6px}.readme-fold{border:1px solid #e5e7eb;border-radius:6px;margin-bottom:20px;overflow:hidden}.fold-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fafafa;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.fold-header:hover{background:#f0f0f0}.fold-arrow{color:#999;font-size:11px;transition:transform .2s}.fold-arrow.open{transform:rotate(90deg)}.fold-body{padding:0 16px 16px}.markdown-content pre:hover .copy-btn{opacity:1}.markdown-content pre .copy-btn:hover{color:#2080f0;border-color:#2080f0}.header-right{align-items:center;gap:8px;display:flex}html,body,#app,.app-header,.app-content,.logo,.readme-fold,.fold-header,.fold-body,.markdown-content,[class*=n-]{transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}[data-theme=dark] html,[data-theme=dark] body,[data-theme=dark] #app{background:#1e1e2e!important}[data-theme=dark] .app-header{background:#1e1e2e!important;border-bottom-color:#363650!important}[data-theme=dark] .app-content{background:0 0!important}[data-theme=dark] .logo{color:#e4e4ef!important}[data-theme=dark] .header-status-item{color:#a6adc8!important}[data-theme=dark] .header-status-item.clickable:hover{color:#6a8cff!important}[data-theme=dark] .header-status-divider{background:#363650!important}[data-theme=dark] .readme-fold{border-color:#363650!important}[data-theme=dark] .fold-header{color:#e4e4ef!important;background:#282840!important}[data-theme=dark] .fold-header:hover{background:#323250!important}[data-theme=dark] .fold-body{background:#282840!important}[data-theme=dark] .markdown-content{color:#cdd6f4!important}[data-theme=dark] .markdown-content h1,[data-theme=dark] .markdown-content h2{color:#e4e4ef!important;border-bottom-color:#363650!important}[data-theme=dark] .markdown-content h3,[data-theme=dark] .markdown-content h4{color:#e4e4ef!important}[data-theme=dark] .markdown-content code{color:#e06c75!important;background:#2a2a42!important}[data-theme=dark] .markdown-content pre{border-color:#363650!important}[data-theme=dark] .markdown-content pre code{color:#cdd6f4!important;background:#1a1a2a!important}[data-theme=dark] .markdown-content blockquote{color:#a6adc8!important;background:#282840!important;border-left-color:#6a8cff!important}[data-theme=dark] .markdown-content a{color:#6a8cff!important}[data-theme=dark] .markdown-content th{background:#282840!important}[data-theme=dark] .markdown-content td{border-color:#363650!important}[data-theme=dark] .markdown-content tr:nth-child(2n) td{background:#24243a!important}[data-theme=dark] .markdown-content hr{border-top-color:#363650!important}[data-theme=dark] .markdown-content img{filter:brightness(.8)!important}[data-theme=dark] .markdown-content pre .copy-btn{color:#6c7086!important;background:#2a2a42!important;border-color:#363650!important}[data-theme=dark] .markdown-content pre .copy-btn:hover{color:#6a8cff!important;border-color:#6a8cff!important}[data-theme=dark] .hljs-keyword,[data-theme=dark] .hljs-selector-tag,[data-theme=dark] .hljs-built_in{color:#c678dd!important}[data-theme=dark] .hljs-string,[data-theme=dark] .hljs-addition{color:#98c379!important}[data-theme=dark] .hljs-number,[data-theme=dark] .hljs-literal{color:#d19a66!important}[data-theme=dark] .hljs-comment{color:#5c6370!important}[data-theme=dark] .hljs-title,[data-theme=dark] .hljs-section{color:#61afef!important}[data-theme=dark] .hljs-attr,[data-theme=dark] .hljs-attribute,[data-theme=dark] .hljs-selector-class,[data-theme=dark] .hljs-variable{color:#e06c75!important}[data-theme=dark] .hljs-type,[data-theme=dark] .hljs-meta{color:#e5c07b!important}[data-theme=dark] .hljs-deletion{color:#e06c75!important}[data-theme=dark] .hljs-bullet,[data-theme=dark] .hljs-link{color:#6a8cff!important}[data-theme=dark] .hljs-emphasis{font-style:italic!important}[data-theme=dark] .hljs-strong{font-weight:700!important}[data-theme=dark] .page-header h2{color:#e4e4ef!important}[data-theme=dark] .scene-desc{color:#a6adc8!important}.fade-enter-active,.fade-leave-active{transition:opacity .2s,transform .2s}.fade-enter-from{opacity:0;transform:translateY(6px)}.fade-leave-to{opacity:0}.header-status{align-items:center;gap:8px;margin-right:8px;display:flex}.header-status-item{color:#666;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.header-status-item.clickable{cursor:pointer}.header-status-item.clickable:hover{color:#2080f0}.header-status-divider{background:#e0e0e0;width:1px;height:14px}.skill-card[data-v-ef4accd3]{cursor:pointer;transition:box-shadow .2s}.skill-card[data-v-ef4accd3]:hover{box-shadow:0 2px 8px #00000014}.skill-meta[data-v-ef4accd3]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.skill-version[data-v-ef4accd3]{color:#888;font-family:monospace;font-size:12px}.skill-desc[data-v-ef4accd3]{color:#666;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:13px;overflow:hidden}[data-theme=dark] .skill-version{color:#9399b2!important}[data-theme=dark] .skill-desc{color:#a6adc8!important}.modal-overlay[data-v-36195a18]{z-index:2000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card[data-v-36195a18]{background:#fff;border-radius:8px;flex-direction:column;width:90%;max-height:85vh;display:flex;box-shadow:0 8px 32px #0000001f}.modal-header[data-v-36195a18]{justify-content:space-between;align-items:center;padding:14px 20px 0;display:flex}.modal-title[data-v-36195a18]{color:#333;font-size:16px;font-weight:600}.modal-close[data-v-36195a18]{color:#999;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:20px;line-height:1;transition:background .15s,color .15s;display:flex}.modal-close[data-v-36195a18]:hover{color:#333;background:#f0f0f0}.modal-body[data-v-36195a18]{padding:16px 20px;overflow-y:auto}.modal-footer[data-v-36195a18]{border-top:1px solid #f0f0f0;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.modal-fade-enter-active[data-v-36195a18]{transition:opacity .2s}.modal-fade-leave-active[data-v-36195a18]{transition:opacity .15s}.modal-fade-enter-from[data-v-36195a18],.modal-fade-leave-to[data-v-36195a18]{opacity:0}[data-theme=dark] .modal-card{background:#2a2a42!important;box-shadow:0 8px 32px #00000080!important}[data-theme=dark] .modal-title{color:#e4e4ef!important}[data-theme=dark] .modal-close{color:#6c7086!important}[data-theme=dark] .modal-close:hover{color:#cdd6f4!important;background:#323250!important}[data-theme=dark] .modal-footer{border-top-color:#363650!important}[data-theme=dark] .modal-overlay{background:#000000a6!important}.dashboard[data-v-4c899b15]{overflow-anchor:auto}.page-header[data-v-4c899b15]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.page-header h2[data-v-4c899b15]{font-size:20px;font-weight:600}.header-actions[data-v-4c899b15]{align-items:center;gap:8px;display:flex}.tag-filter[data-v-4c899b15]{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;display:flex}.search-bar[data-v-4c899b15]{margin-bottom:12px}.detail-status[data-v-4c899b15]{justify-content:center;padding:40px 0;display:flex}.detail-body[data-v-4c899b15]{max-height:65vh;overflow-y:auto}.edit-panel[data-v-4c899b15]{margin-bottom:4px}.edit-row[data-v-4c899b15]{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.edit-label[data-v-4c899b15]{color:#888;flex-shrink:0;width:50px;font-size:13px;line-height:30px}.update-count-hint[data-v-4c899b15]{color:#e68a00;margin-left:8px;font-family:monospace;font-size:12px}.pull-modal-body[data-v-4c899b15]{min-height:100px}.pull-status[data-v-4c899b15]{color:#666;justify-content:center;align-items:center;gap:10px;padding:24px 0;font-size:13px;display:flex}.preview-result[data-v-4c899b15]{margin-top:8px}.pull-search-input[data-v-4c899b15]{margin-bottom:8px}.preview-info[data-v-4c899b15]{color:#555;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;display:flex}.preview-list[data-v-4c899b15]{background:#00000005;border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;max-height:300px;margin-bottom:14px;padding:10px;display:grid;overflow-y:auto}.preview-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.pull-section[data-v-4c899b15]{margin-top:12px}.pull-input-row[data-v-4c899b15]{gap:8px;margin-bottom:8px;display:flex}.pull-input-row .n-input[data-v-4c899b15]{flex:1}.pull-error[data-v-4c899b15]{margin-bottom:8px}.pull-result[data-v-4c899b15]{margin-top:8px}.pull-result-line[data-v-4c899b15]{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:8px;font-size:13px;display:flex}.pull-result-label[data-v-4c899b15]{color:#888;flex-shrink:0}.pull-result-hint[data-v-4c899b15]{color:#999;font-size:12px}.install-panel[data-v-4c899b15]{background:#00000005;border-radius:6px;margin-top:12px;padding:12px}.install-panel-label[data-v-4c899b15]{color:#666;margin-bottom:8px;font-size:13px}.install-check-list[data-v-4c899b15]{margin-bottom:10px}.install-btn[data-v-4c899b15]{float:right}.edit-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.alias-edit-trigger[data-v-4c899b15]{cursor:pointer;opacity:0;vertical-align:middle;align-items:center;transition:opacity .15s;display:inline-flex}.group-header:hover .alias-edit-trigger[data-v-4c899b15]{opacity:1}.alias-edit-icon[data-v-4c899b15]{color:#999}.alias-edit-inline[data-v-4c899b15]{align-items:center;display:inline-flex}.group-menu-btn[data-v-4c899b15]{flex-shrink:0}.source-manager[data-v-4c899b15]{background:#00000005;border-radius:6px;margin-top:8px;padding:10px}.source-manager-header[data-v-4c899b15]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.source-manager-title[data-v-4c899b15]{font-size:13px;font-weight:600}.source-manager-list[data-v-4c899b15]{flex-direction:column;gap:6px;max-height:240px;display:flex;overflow-y:auto}.source-manager-row[data-v-4c899b15]{align-items:center;gap:8px;display:flex}.source-manager-url[data-v-4c899b15]{color:#888;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:monospace;font-size:11px;overflow:hidden}.source-manager-empty[data-v-4c899b15]{color:#999;text-align:center;padding:12px 0;font-size:12px}.source-manager-actions[data-v-4c899b15]{justify-content:flex-end;margin-top:8px;display:flex}.installed-tag[data-v-4c899b15]{margin-left:4px}.skill-group[data-v-4c899b15]{margin-bottom:4px}.group-header[data-v-4c899b15]{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;padding:8px 4px;display:flex}.group-header[data-v-4c899b15]:hover{background:#00000008}.fold-arrow[data-v-4c899b15]{color:#999;flex-shrink:0;font-size:10px;transition:transform .2s}.fold-arrow.open[data-v-4c899b15]{transform:rotate(90deg)}.group-label[data-v-4c899b15]{color:inherit;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.group-count[data-v-4c899b15]{color:#999;flex-shrink:0;font-size:12px}.group-update-btn[data-v-4c899b15]{flex-shrink:0}.group-body[data-v-4c899b15]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;display:grid}.readme-fold[data-v-4c899b15]{border-top:1px solid #80808026;margin-top:24px;padding-top:12px}.setup-card[data-v-4c899b15]{margin-bottom:20px}.setup-card-content[data-v-4c899b15]{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.setup-icon[data-v-4c899b15]{margin-bottom:4px}.setup-title[data-v-4c899b15]{margin:0;font-size:18px;font-weight:600}.setup-desc[data-v-4c899b15]{color:#666;max-width:420px;margin:0;font-size:13px;line-height:1.6}.setup-desc code[data-v-4c899b15]{background:#0000000f;border-radius:3px;padding:1px 6px;font-size:12px}.skill-group.group-remote[data-v-4c899b15]{border-left:3px solid #2080f0;margin-bottom:12px;padding-left:8px}.skill-group.group-local[data-v-4c899b15]{border-left:3px solid #18a058;margin-bottom:12px;padding-left:8px}.group-indicator[data-v-4c899b15]{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.indicator-remote[data-v-4c899b15]{background:#2080f0}.indicator-local[data-v-4c899b15]{background:#18a058}.source-info[data-v-4c899b15]{margin-bottom:4px}.source-row[data-v-4c899b15]{align-items:center;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.source-label[data-v-4c899b15]{color:#888;flex-shrink:0;width:70px}.source-value[data-v-4c899b15]{word-break:break-all}.local-tag[data-v-4c899b15]{color:#2e7d32;background:#e8f5e9;border-radius:3px;padding:1px 8px;font-size:12px;display:inline-block}.path-text[data-v-4c899b15]{color:#666;font-family:monospace;font-size:12px}.source-actions[data-v-4c899b15]{gap:8px;margin-top:8px;display:flex}.local-hint[data-v-4c899b15]{color:#999;background:#00000005;border-radius:4px;margin-top:8px;padding:8px;font-size:12px;line-height:1.5}.siblings-body[data-v-4c899b15]{min-height:60px}.siblings-desc[data-v-4c899b15]{margin-bottom:12px;font-size:13px;line-height:1.6}.siblings-list[data-v-4c899b15]{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.siblings-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.batch-modal-body[data-v-4c899b15]{min-height:60px}.batch-desc[data-v-4c899b15]{margin-bottom:16px;font-size:13px;line-height:1.6}.batch-actions[data-v-4c899b15]{justify-content:flex-end;gap:8px;display:flex}.batch-executing[data-v-4c899b15]{color:#666;justify-content:center;align-items:center;gap:12px;padding:24px 0;font-size:13px;display:flex}.batch-result[data-v-4c899b15]{margin-bottom:16px}.batch-result-line[data-v-4c899b15]{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.batch-result-label[data-v-4c899b15]{color:#888;flex-shrink:0}[data-theme=dark] .edit-label,[data-theme=dark] .source-label,[data-theme=dark] .pull-result-label,[data-theme=dark] .batch-result-label{color:#9399b2!important}[data-theme=dark] .update-count-hint{color:#fbbf24!important}[data-theme=dark] .pull-status,[data-theme=dark] .batch-executing,[data-theme=dark] .install-panel-label,[data-theme=dark] .preview-info{color:#a6adc8!important}[data-theme=dark] .pull-result-hint,[data-theme=dark] .group-count,[data-theme=dark] .local-hint{color:#6c7086!important}[data-theme=dark] .path-text{color:#a6adc8!important}[data-theme=dark] .preview-list,[data-theme=dark] .install-panel,[data-theme=dark] .local-hint{background:#ffffff08!important}[data-theme=dark] .group-header:hover{background:#ffffff0a!important}[data-theme=dark] .local-tag{color:#4ade80!important;background:#4ade8026!important}[data-theme=dark] .skill-group.group-remote{border-left-color:#6a8cff!important}[data-theme=dark] .skill-group.group-local{border-left-color:#4ade80!important}[data-theme=dark] .indicator-remote{background:#6a8cff!important}[data-theme=dark] .indicator-local{background:#4ade80!important}[data-theme=dark] .setup-desc{color:#a6adc8!important}[data-theme=dark] .setup-desc code{background:#ffffff14!important}[data-theme=dark] .readme-fold{border-top-color:#ffffff14!important}[data-theme=dark] .source-manager{background:#ffffff08!important}[data-theme=dark] .source-manager-url,[data-theme=dark] .alias-edit-icon{color:#6c7086!important}[data-theme=dark] .source-value,[data-theme=dark] .siblings-desc,[data-theme=dark] .batch-desc{color:#cdd6f4!important}[data-theme=dark] .source-manager-title{color:#e4e4ef!important}.page-header[data-v-29aa5f17]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2[data-v-29aa5f17]{font-size:20px;font-weight:600}.scene-grid[data-v-29aa5f17]{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin:2px;display:grid}.scene-card[data-v-29aa5f17]{transition:box-shadow .2s}.scene-card.active[data-v-29aa5f17]{box-shadow:0 0 0 2px #2080f0}.scene-desc[data-v-29aa5f17]{color:#666;margin:0;font-size:13px}.scene-footer[data-v-29aa5f17]{justify-content:space-between;align-items:center;display:flex}.hint-text[data-v-29aa5f17]{color:#999;font-size:12px}.diff-preview[data-v-29aa5f17]{flex-direction:column;gap:14px;display:flex}.diff-hint[data-v-29aa5f17]{margin:0 0 4px;font-size:14px}.diff-section[data-v-29aa5f17]{flex-direction:column;gap:6px;display:flex}.diff-label[data-v-29aa5f17]{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.diff-tags[data-v-29aa5f17]{flex-wrap:wrap;gap:4px;display:flex}.skill-preview-list[data-v-29aa5f17]{flex-direction:column;gap:2px;max-height:240px;display:flex;overflow-y:auto}.skill-preview-item[data-v-29aa5f17]{padding:2px 0;font-size:13px}.modal-skill-groups[data-v-29aa5f17]{max-height:50vh;overflow-y:auto}.skill-group[data-v-29aa5f17]{border:1px solid #eee;border-radius:6px;margin-bottom:4px;overflow:hidden}.skill-group-header[data-v-29aa5f17]{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8f9fa;border-bottom:1px solid #eee;align-items:center;gap:6px;padding:8px 10px;font-size:13px;transition:background .15s;display:flex}.skill-group-header[data-v-29aa5f17]:hover{background:#eef0f4}.fold-arrow[data-v-29aa5f17]{color:#999;flex-shrink:0;font-size:10px;transition:transform .2s}.fold-arrow.open[data-v-29aa5f17]{transform:rotate(90deg)}.skill-group-label[data-v-29aa5f17]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.skill-group-count[data-v-29aa5f17]{color:#999;flex-shrink:0;font-size:12px}.skill-group-body[data-v-29aa5f17]{grid-template-columns:repeat(2,1fr);gap:6px;padding:8px 10px;display:grid}.always-apply-grid[data-v-29aa5f17]{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.batch-actions[data-v-29aa5f17]{margin-bottom:10px}.search-highlight[data-v-29aa5f17]{background:#ffd666;border-radius:2px;padding:0 2px}.search-input[data-v-29aa5f17]{margin-bottom:8px}.executing-state[data-v-29aa5f17]{flex-direction:column;align-items:center;gap:12px;padding:32px 0;display:flex}.executing-text[data-v-29aa5f17]{margin:0;font-size:15px;font-weight:600}.executing-hint[data-v-29aa5f17]{color:#999;margin:0;font-size:13px}.failure-section[data-v-29aa5f17]{flex-direction:column;gap:6px;margin-top:4px;display:flex}.failure-title[data-v-29aa5f17]{align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.failure-list[data-v-29aa5f17]{flex-direction:column;gap:4px;display:flex}.failure-item[data-v-29aa5f17]{background:#fff1f0;border-radius:4px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:13px;display:flex}.failure-name[data-v-29aa5f17]{font-weight:500}.failure-tip[data-v-29aa5f17]{color:#999;margin:4px 0 0;font-size:12px}.fail-marker[data-v-29aa5f17]{margin-left:2px;font-size:12px}.popover-fail-detail[data-v-29aa5f17]{font-size:13px}.popover-fail-section[data-v-29aa5f17]{margin-bottom:6px}.popover-fail-section[data-v-29aa5f17]:last-child{margin-bottom:0}.popover-fail-title[data-v-29aa5f17]{margin-bottom:3px;font-size:12px;font-weight:600}.popover-fail-item[data-v-29aa5f17]{color:#555;padding:1px 0 1px 8px;font-size:12px}.pending-confirm-body[data-v-29aa5f17]{flex-direction:column;gap:6px;display:flex}.pending-confirm-body p[data-v-29aa5f17]{margin:0;font-size:14px}.pending-confirm-section[data-v-29aa5f17]{flex-direction:column;gap:2px;display:flex}.pending-confirm-title[data-v-29aa5f17]{font-size:12px;font-weight:600}.pending-confirm-item[data-v-29aa5f17]{color:#555;padding:2px 0 2px 12px;font-size:13px}.pending-confirm-hint[data-v-29aa5f17]{color:#999;margin-top:4px;font-size:13px}[data-theme=dark] .scene-card.active{box-shadow:0 0 0 2px #2080f0!important}[data-theme=dark] .hint-text,[data-theme=dark] .skill-group-count{color:#6c7086!important}[data-theme=dark] .fold-arrow{color:#6c7086!important}[data-theme=dark] .skill-group-label{color:#cdd6f4!important}[data-theme=dark] .skill-group{border-color:#363b4a!important}[data-theme=dark] .skill-group-header{background:#1e2129!important;border-color:#363b4a!important}[data-theme=dark] .skill-group-header:hover{background:#2a2e3a!important}[data-theme=dark] .search-highlight{color:#fff!important;background:#8a6d00!important}[data-theme=dark] .failure-item{background:#d0305026!important}[data-theme=dark] .executing-hint,[data-theme=dark] .failure-tip{color:#6c7086!important}[data-theme=dark] .popover-fail-item,[data-theme=dark] .pending-confirm-item{color:#b0b6cc!important}[data-theme=dark] .pending-confirm-hint{color:#6c7086!important}.page-header[data-v-0c97d90d]{margin-bottom:20px}.page-header h2[data-v-0c97d90d]{font-size:20px;font-weight:600}.section[data-v-0c97d90d]{margin-bottom:20px}.init-alert[data-v-0c97d90d]{margin-bottom:12px}.missing-list[data-v-0c97d90d]{flex-direction:column;gap:4px;display:flex}.missing-item[data-v-0c97d90d]{font-size:13px;line-height:1.6}.missing-item code[data-v-0c97d90d]{background:#0000000f;border-radius:3px;padding:1px 6px;font-size:12px}.skill-tag[data-v-0c97d90d]{margin:1px 2px;display:inline-block}.missing-hint[data-v-0c97d90d]{opacity:.7;margin-top:4px;font-size:12px}.source-status[data-v-0c97d90d]{margin-bottom:16px}.source-actions[data-v-0c97d90d]{flex-direction:column;gap:12px;display:flex}.action-buttons[data-v-0c97d90d]{gap:8px;display:flex}.healthy-text[data-v-0c97d90d]{color:#18a058;font-size:13px}.issue-text[data-v-0c97d90d]{color:#d03050;font-size:13px}.readme-dialog-desc[data-v-0c97d90d]{color:#555;margin-bottom:16px;font-size:14px}.readme-checkbox[data-v-0c97d90d]{align-items:flex-start;margin-bottom:12px;display:flex}.readme-checkbox-content[data-v-0c97d90d]{flex-direction:column;gap:2px;display:flex}.readme-checkbox-title[data-v-0c97d90d]{font-size:14px;font-weight:500}.readme-checkbox-desc[data-v-0c97d90d]{color:#999;font-size:12px}.diag-group[data-v-0c97d90d]{margin-bottom:16px}.diag-group[data-v-0c97d90d]:last-child{margin-bottom:0}.diag-group-header[data-v-0c97d90d]{align-items:center;gap:6px;padding:6px 0;font-size:13px;font-weight:600;display:flex}.diag-group-error[data-v-0c97d90d]{color:#d03050}.diag-group-ok[data-v-0c97d90d]{color:#18a058}[data-theme=dark] .missing-item code{background:#ffffff14!important}[data-theme=dark] .healthy-text{color:#4ade80!important}[data-theme=dark] .issue-text{color:#f87171!important}[data-theme=dark] .readme-dialog-desc{color:#a6adc8!important}[data-theme=dark] .readme-checkbox-desc{color:#6c7086!important}.page-header[data-v-97d38fe1]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h2[data-v-97d38fe1]{font-size:20px;font-weight:600}.fade-enter-active[data-v-97d38fe1],.fade-leave-active[data-v-97d38fe1]{transition:opacity .2s}.fade-enter-from[data-v-97d38fe1],.fade-leave-to[data-v-97d38fe1]{opacity:0}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}