chainlesschain 0.45.6 → 0.45.8
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 +4 -2
- package/src/assets/web-panel/assets/AppLayout-CZDQcPAA.css +1 -0
- package/src/assets/web-panel/assets/AppLayout-D-KJRC1s.js +1 -0
- package/src/assets/web-panel/assets/Chat-BsgVc34I.js +1 -0
- package/src/assets/web-panel/assets/Chat-V-g0UHcr.css +1 -0
- package/src/assets/web-panel/assets/Dashboard-Bmgu7fEn.js +2 -0
- package/src/assets/web-panel/assets/Providers-DlC9S5Nf.js +2 -0
- package/src/assets/web-panel/assets/Providers-YRgg8NIn.css +1 -0
- package/src/assets/web-panel/assets/Skills--YIq8avF.js +2 -0
- package/src/assets/web-panel/assets/Skills-BC4Yu_4f.css +1 -0
- package/src/assets/web-panel/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/src/assets/web-panel/assets/antd-BhDHu4KM.js +474 -0
- package/src/assets/web-panel/assets/chat-_a36nOu_.js +1 -0
- package/src/assets/web-panel/assets/index-B6snAd4S.css +1 -0
- package/src/assets/web-panel/assets/index-Ze9tR-zc.js +2 -0
- package/src/assets/web-panel/assets/markdown-CNQE8HeM.js +55 -0
- package/src/assets/web-panel/assets/vendor-Ks18OpWK.js +1 -0
- package/src/assets/web-panel/assets/ws-Bve9vKht.js +1 -0
- package/src/assets/web-panel/index.html +19 -0
- package/src/lib/web-ui-server.js +20 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chainlesschain",
|
|
3
|
-
"version": "0.45.
|
|
3
|
+
"version": "0.45.8",
|
|
4
4
|
"description": "CLI for ChainlessChain - install, configure, and manage your personal AI management system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
"lint": "eslint src/ bin/ --ext .js",
|
|
20
20
|
"format": "prettier --write \"src/**/*.js\" \"bin/**/*.js\" \"__tests__/**/*.js\"",
|
|
21
21
|
"sync-skill-packs": "node --input-type=module -e \"import { generateCliPacks } from './src/lib/skill-packs/generator.js'; const r = await generateCliPacks({ force: false }); console.log('Skill packs synced:', r.generated.length, 'generated,', r.skipped.length, 'skipped');\"",
|
|
22
|
-
"postinstall": "node --input-type=module -e \"import { generateCliPacks } from './src/lib/skill-packs/generator.js'; generateCliPacks({ force: false }).catch(() => {});\" 2>/dev/null || true"
|
|
22
|
+
"postinstall": "node --input-type=module -e \"import { generateCliPacks } from './src/lib/skill-packs/generator.js'; generateCliPacks({ force: false }).catch(() => {});\" 2>/dev/null || true",
|
|
23
|
+
"build:web-panel": "cd ../web-panel && npm install --legacy-peer-deps && npm run build && node --input-type=module -e \"import fs from 'fs'; import path from 'path'; const src=path.resolve(process.cwd(),'dist'),dst=path.resolve(process.cwd(),'../cli/src/assets/web-panel'); fs.rmSync(dst,{recursive:true,force:true}); fs.cpSync(src,dst,{recursive:true}); console.log('Web panel bundled to',dst);\"",
|
|
24
|
+
"prepublishOnly": "npm run build:web-panel"
|
|
23
25
|
},
|
|
24
26
|
"engines": {
|
|
25
27
|
"node": ">=22.12.0"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.logo[data-v-4627205d]{height:52px;display:flex;align-items:center;padding:0 20px;gap:10px;border-bottom:1px solid #262626;overflow:hidden;white-space:nowrap}.logo.collapsed[data-v-4627205d]{padding:0;justify-content:center}.logo-icon[data-v-4627205d]{font-size:22px;flex-shrink:0}.logo-text[data-v-4627205d]{color:#fff;font-weight:600;font-size:15px}.project-banner[data-v-4627205d]{display:flex;align-items:center;gap:8px;padding:8px 16px;margin:6px 8px;background:#0d1b2e;border:1px solid #1677ff30;border-radius:6px;overflow:hidden}.project-info[data-v-4627205d]{flex:1;min-width:0}.project-name[data-v-4627205d]{color:#91caff;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-scope[data-v-4627205d]{color:#1677ff;font-size:10px;margin-top:1px}.global-banner[data-v-4627205d]{display:flex;align-items:center;gap:8px;padding:7px 16px;margin:6px 8px;background:#1a0d2e;border:1px solid #722ed130;border-radius:6px}.global-label[data-v-4627205d]{color:#c084fc;font-size:12px}.mode-icon-collapsed[data-v-4627205d]{display:flex;justify-content:center;padding:8px 0;font-size:14px}.sidebar-footer[data-v-4627205d]{position:absolute;bottom:48px;left:0;right:0;padding:10px 20px;display:flex;align-items:center;gap:8px;border-top:1px solid #222}.sidebar-footer.collapsed[data-v-4627205d]{justify-content:center;padding:10px 0}.status-text[data-v-4627205d]{color:#666;font-size:11px}.app-header[data-v-4627205d]{background:#1c1c1c;padding:0 20px;border-bottom:1px solid #262626;height:52px;line-height:52px;display:flex;align-items:center;justify-content:space-between}.header-left[data-v-4627205d]{display:flex;align-items:center}.header-right[data-v-4627205d]{display:flex;align-items:center;gap:12px}.scope-tag[data-v-4627205d]{display:flex;align-items:center;gap:6px;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:500}.scope-tag.project[data-v-4627205d]{background:#0d1b2e;color:#91caff;border:1px solid #1677ff25}.scope-tag.global[data-v-4627205d]{background:#1a0d2e;color:#c084fc;border:1px solid #722ed125}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as D,V as v,Y as t,W as c,_ as F,$ as S,X as n,k as o,a0 as s,a1 as j,a2 as d,a3 as y,u as a,a4 as f,G as T,f as U,c as i}from"./vendor-Ks18OpWK.js";import{u as W}from"./ws-Bve9vKht.js";import{_ as $}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{F as b,G as x,D as E,M as P,a as X,b as Y,I as q}from"./antd-BhDHu4KM.js";const H={key:0,class:"logo-text"},J={key:0,class:"project-banner"},Q={class:"project-info"},Z={class:"project-name"},ee={key:1,class:"global-banner"},oe=["title"],te={key:0,class:"status-text"},se={class:"header-left"},ae={key:0,class:"scope-tag project"},ne={key:1,class:"scope-tag global"},le={class:"header-right"},ce={__name:"AppLayout",setup(de){const w=F(),N=S(),p=W(),l=U(!1),r=window.__CC_CONFIG__||{},u=i(()=>r.mode==="project"),C=i(()=>[N.name?.toLowerCase()||"dashboard"]),_=i(()=>p.status),O=i(()=>({connected:"success",connecting:"processing",error:"error",disconnected:"default"})[p.status]||"default"),A=i(()=>({connected:"已连接",connecting:"连接中...",error:"连接错误",disconnected:"未连接"})[p.status]||"未知");function B({key:g}){w.push(`/${g}`)}return D(()=>{p.connect()}),(g,e)=>{const m=c("a-menu-item"),I=c("a-menu"),L=c("a-badge"),M=c("a-layout-sider"),V=c("a-tooltip"),z=c("a-tag"),G=c("a-layout-header"),K=c("router-view"),R=c("a-layout-content"),h=c("a-layout");return n(),v(h,{style:{"min-height":"100vh",background:"#141414"}},{default:t(()=>[o(M,{collapsed:l.value,"onUpdate:collapsed":e[1]||(e[1]=k=>l.value=k),collapsible:"","collapsed-width":64,width:220,style:{background:"#1c1c1c","border-right":"1px solid #303030"}},{default:t(()=>[s("div",{class:j(["logo",{collapsed:l.value}])},[e[2]||(e[2]=s("span",{class:"logo-icon"},"⛓",-1)),l.value?y("",!0):(n(),d("span",H,"ChainlessChain"))],2),u.value&&!l.value?(n(),d("div",J,[o(a(b),{style:{color:"#1677ff","font-size":"12px"}}),s("div",Q,[s("div",Z,f(a(r).projectName||"项目"),1),e[3]||(e[3]=s("div",{class:"project-scope"},"项目级面板",-1))])])):!u.value&&!l.value?(n(),d("div",ee,[o(a(x),{style:{color:"#722ed1","font-size":"12px"}}),e[4]||(e[4]=s("span",{class:"global-label"},"全局模式",-1))])):l.value?(n(),d("div",{key:2,class:"mode-icon-collapsed",title:u.value?a(r).projectName:"全局模式"},[u.value?(n(),v(a(b),{key:0,style:{color:"#1677ff"}})):(n(),v(a(x),{key:1,style:{color:"#722ed1"}}))],8,oe)):y("",!0),o(I,{selectedKeys:C.value,"onUpdate:selectedKeys":e[0]||(e[0]=k=>C.value=k),theme:"dark",mode:"inline","inline-collapsed":l.value,style:{background:"#1c1c1c",border:"none","margin-top":"4px"},onClick:B},{default:t(()=>[o(m,{key:"dashboard"},{icon:t(()=>[o(a(E))]),default:t(()=>[e[5]||(e[5]=s("span",null,"仪表板",-1))]),_:1}),o(m,{key:"chat"},{icon:t(()=>[o(a(P))]),default:t(()=>[e[6]||(e[6]=s("span",null,"AI 对话",-1))]),_:1}),o(m,{key:"skills"},{icon:t(()=>[o(a(X))]),default:t(()=>[e[7]||(e[7]=s("span",null,"技能管理",-1))]),_:1}),o(m,{key:"providers"},{icon:t(()=>[o(a(Y))]),default:t(()=>[e[8]||(e[8]=s("span",null,"LLM 配置",-1))]),_:1})]),_:1},8,["selectedKeys","inline-collapsed"]),s("div",{class:j(["sidebar-footer",{collapsed:l.value}])},[o(L,{status:O.value},null,8,["status"]),l.value?y("",!0):(n(),d("span",te,f(A.value),1))],2)]),_:1},8,["collapsed"]),o(h,{style:{background:"#141414"}},{default:t(()=>[o(G,{class:"app-header"},{default:t(()=>[s("div",se,[u.value?(n(),d("div",ae,[o(a(b)),s("span",null,f(a(r).projectName||"项目"),1),a(r).projectRoot?(n(),v(V,{key:0,title:a(r).projectRoot},{default:t(()=>[o(a(q),{style:{opacity:"0.5",cursor:"help"}})]),_:1},8,["title"])):y("",!0)])):(n(),d("div",ne,[o(a(x)),e[9]||(e[9]=s("span",null,"全局模式",-1))]))]),s("div",le,[e[10]||(e[10]=s("span",{style:{color:"#444","font-size":"11px"}},"v5.0.2.5",-1)),o(z,{color:_.value==="connected"?"green":_.value==="connecting"?"orange":"red",style:{margin:"0"}},{default:t(()=>[T(f(_.value==="connected"?"已连接":_.value==="connecting"?"连接中":"断开"),1)]),_:1},8,["color"])])]),_:1}),o(R,{style:{padding:"24px",overflow:"auto"}},{default:t(()=>[o(K)]),_:1})]),_:1})]),_:1})}}},_e=$(ce,[["__scopeId","data-v-4627205d"]]);export{_e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as G,o as Q,a2 as n,a0 as s,k as l,u as r,a4 as u,Y as d,F as S,a6 as z,G as c,a3 as g,V as T,a7 as R,A as q,c as x,W as y,f as $,X as o,a1 as A,n as J}from"./vendor-Ks18OpWK.js";import{m as H,H as M}from"./markdown-CNQE8HeM.js";import{u as K}from"./chat-_a36nOu_.js";import{_ as D}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{F as P,G as U,M as W,c as X,S as Y}from"./antd-BhDHu4KM.js";import"./ws-Bve9vKht.js";const Z={style:{display:"flex",height:"calc(100vh - 56px - 48px)",gap:"16px"}},ee={style:{width:"240px","flex-shrink":"0",background:"#1c1c1c","border-radius":"8px",border:"1px solid #303030",display:"flex","flex-direction":"column",overflow:"hidden"}},te={key:0,style:{padding:"6px 12px 4px","font-size":"11px",color:"#4a7eb5",background:"#0d1b2e","border-bottom":"1px solid #1677ff20",display:"flex","align-items":"center",gap:"4px"}},se=["title"],oe={key:1,style:{padding:"6px 12px 4px","font-size":"11px",color:"#7c4fa5",background:"#1a0d2e","border-bottom":"1px solid #722ed120",display:"flex","align-items":"center",gap:"4px"}},ne={style:{padding:"10px 12px","border-bottom":"1px solid #252525",display:"flex",gap:"8px"}},ae={style:{flex:"1","overflow-y":"auto",padding:"8px"}},ie=["onClick"],le={class:"session-icon"},re={class:"session-info"},de={class:"session-title"},pe={class:"session-meta"},ue={key:0,style:{"text-align":"center",color:"#555",padding:"24px 0","font-size":"13px"}},ce={style:{flex:"1",background:"#1c1c1c","border-radius":"8px",border:"1px solid #303030",display:"flex","flex-direction":"column",overflow:"hidden"}},ve={key:0,style:{flex:"1",display:"flex","flex-direction":"column","align-items":"center","justify-content":"center",color:"#555"}},xe={style:{"margin-top":"24px",display:"flex",gap:"12px"}},fe={key:0,class:"tool-msg"},ge={style:{margin:"0","font-size":"11px",color:"#aaa","white-space":"pre-wrap"}},ye={key:0,style:{"margin-top":"8px","padding-top":"8px","border-top":"1px solid #252525"}},_e={style:{margin:"0","font-size":"11px",color:"#52c41a","white-space":"pre-wrap"}},me={key:1,class:"user-msg"},he={class:"bubble user"},be={key:2,class:"assistant-msg"},ke=["innerHTML"],we={key:0,class:"assistant-msg"},Ce=["innerHTML"],Se={key:1,class:"question-card"},ze={class:"question-text"},Me={key:0,style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"10px"}},Oe={key:2,style:{padding:"16px","border-top":"1px solid #252525"}},Ie={style:{display:"flex",gap:"8px","align-items":"flex-end"}},Le={__name:"Chat",setup(Ne){const k=window.__CC_CONFIG__||{},j=x(()=>k.mode==="project");H.setOptions({highlight:(a,e)=>e&&M.getLanguage(e)?M.highlight(a,{language:e}).value:M.highlightAuto(a).value,breaks:!0});const i=K(),_=$(null),f=$(""),p=x(()=>i.currentSessionId),O=x(()=>p.value?i.getMessages(p.value):[]),w=x(()=>{const a=i.streaming[p.value];return a?.active?a.content:null}),m=x(()=>i.pendingQuestion[p.value]),h=x(()=>i.isLoading);function I(a){try{return H(a||"")}catch{return a||""}}async function b(a){await i.createSession(a)}async function L(){if(!f.value.trim()||h.value||!p.value)return;const a=f.value;f.value="",await i.sendMessage(p.value,a)}function N(a){i.answerQuestion(p.value,a)}return G([O,w],()=>{J(()=>{_.value&&(_.value.scrollTop=_.value.scrollHeight)})},{deep:!0}),Q(()=>{i.loadSessions()}),(a,e)=>{const v=y("a-button"),E=y("a-collapse-panel"),F=y("a-collapse"),V=y("a-input-search"),B=y("a-textarea");return o(),n("div",Z,[s("div",ee,[j.value?(o(),n("div",te,[l(r(P)),s("span",{style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},title:r(k).projectRoot},u(r(k).projectName||"项目"),9,se)])):(o(),n("div",oe,[l(r(U)),e[5]||(e[5]=s("span",null,"全局会话",-1))])),s("div",ne,[l(v,{type:"primary",size:"small",style:{flex:"1"},onClick:e[0]||(e[0]=t=>b("chat"))},{icon:d(()=>[l(r(W))]),default:d(()=>[e[6]||(e[6]=c(" Chat ",-1))]),_:1}),l(v,{size:"small",style:{flex:"1",background:"#2a2a2a","border-color":"#444"},onClick:e[1]||(e[1]=t=>b("agent"))},{icon:d(()=>[l(r(X))]),default:d(()=>[e[7]||(e[7]=c(" Agent ",-1))]),_:1})]),s("div",ae,[(o(!0),n(S,null,z(r(i).sessions,t=>(o(),n("div",{key:t.id,class:A(["session-item",{active:t.id===r(i).currentSessionId}]),onClick:C=>r(i).switchSession(t.id)},[s("span",le,u(t.type==="agent"?"🤖":"💬"),1),s("div",re,[s("div",de,u(t.title||"新对话"),1),s("div",pe,u(t.messageCount||0)+" 条消息",1)])],10,ie))),128)),r(i).sessions.length?g("",!0):(o(),n("div",ue,[...e[8]||(e[8]=[c(" 点击上方按钮",-1),s("br",null,null,-1),c("开始新对话 ",-1)])]))])]),s("div",ce,[p.value?(o(),n("div",{key:1,style:{flex:"1","overflow-y":"auto",padding:"20px"},ref_key:"messagesEl",ref:_},[(o(!0),n(S,null,z(O.value,(t,C)=>(o(),n("div",{key:C,class:A(["message-row",t.role])},[t.role==="tool"?(o(),n("div",fe,[l(F,{ghost:"",size:"small"},{default:d(()=>[l(E,{header:`🔧 ${t.tool} ${t.status==="running"?"(执行中...)":"✓"}`,style:{border:"1px solid #2d2d2d","border-radius":"6px",background:"#1a1a1a"}},{default:d(()=>[s("pre",ge,u(JSON.stringify(t.input,null,2)),1),t.result?(o(),n("div",ye,[s("pre",_e,u(typeof t.result=="string"?t.result:JSON.stringify(t.result,null,2)),1)])):g("",!0)]),_:2},1032,["header"])]),_:2},1024)])):t.role==="user"?(o(),n("div",me,[s("div",he,u(t.content),1)])):(o(),n("div",be,[e[14]||(e[14]=s("div",{class:"avatar"},"AI",-1)),s("div",{class:"bubble assistant",innerHTML:I(t.content)},null,8,ke)]))],2))),128)),w.value?(o(),n("div",we,[e[15]||(e[15]=s("div",{class:"avatar"},"AI",-1)),s("div",{class:"bubble assistant streaming",innerHTML:I(w.value)},null,8,Ce)])):g("",!0),m.value?(o(),n("div",Se,[s("div",ze,u(m.value.question),1),m.value.choices?.length?(o(),n("div",Me,[(o(!0),n(S,null,z(m.value.choices,t=>(o(),T(v,{key:t,size:"small",onClick:C=>N(t)},{default:d(()=>[c(u(t),1)]),_:2},1032,["onClick"]))),128))])):(o(),T(V,{key:1,placeholder:"输入回答...","enter-button":"��送",style:{"margin-top":"10px"},onSearch:N}))])):g("",!0)],512)):(o(),n("div",ve,[e[11]||(e[11]=s("div",{style:{"font-size":"48px","margin-bottom":"16px"}},"💬",-1)),e[12]||(e[12]=s("div",{style:{"font-size":"16px","margin-bottom":"8px",color:"#777"}},"开始 AI 对话",-1)),e[13]||(e[13]=s("div",{style:{"font-size":"13px",color:"#444"}},"选择左侧会话或创建新对话",-1)),s("div",xe,[l(v,{type:"primary",onClick:e[2]||(e[2]=t=>b("chat"))},{default:d(()=>[...e[9]||(e[9]=[c("新建 Chat",-1)])]),_:1}),l(v,{style:{background:"#2a2a2a","border-color":"#444"},onClick:e[3]||(e[3]=t=>b("agent"))},{default:d(()=>[...e[10]||(e[10]=[c("新建 Agent",-1)])]),_:1})])])),p.value?(o(),n("div",Oe,[s("div",Ie,[l(B,{value:f.value,"onUpdate:value":e[4]||(e[4]=t=>f.value=t),placeholder:h.value?"等待响应中...":"输入消息,Shift+Enter 换行,Enter 发送","auto-size":{minRows:1,maxRows:6},disabled:h.value,style:{background:"#252525","border-color":"#3d3d3d",color:"#ddd",resize:"none",flex:"1"},onKeydown:R(q(L,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),l(v,{type:"primary",loading:h.value,onClick:L,style:{height:"40px"}},{icon:d(()=>[l(r(Y))]),_:1},8,["loading"])])])):g("",!0)])])}}},Fe=D(Le,[["__scopeId","data-v-06fff6c1"]]);export{Fe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.session-item[data-v-06fff6c1]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:4px}.session-item[data-v-06fff6c1]:hover{background:#252525}.session-item.active[data-v-06fff6c1]{background:#1677ff20;border:1px solid #1677ff40}.session-icon[data-v-06fff6c1]{font-size:16px}.session-info[data-v-06fff6c1]{flex:1;min-width:0}.session-title[data-v-06fff6c1]{color:#ccc;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta[data-v-06fff6c1]{color:#555;font-size:11px;margin-top:2px}.message-row[data-v-06fff6c1]{margin-bottom:16px}.user-msg[data-v-06fff6c1]{display:flex;justify-content:flex-end}.assistant-msg[data-v-06fff6c1]{display:flex;gap:10px;align-items:flex-start}.avatar[data-v-06fff6c1]{width:32px;height:32px;border-radius:50%;background:#1677ff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}.bubble[data-v-06fff6c1]{padding:10px 14px;border-radius:12px;max-width:80%;line-height:1.6;font-size:14px}.bubble.user[data-v-06fff6c1]{background:#1677ff;color:#fff;border-bottom-right-radius:4px}.bubble.assistant[data-v-06fff6c1]{background:#252525;color:#ddd;border-bottom-left-radius:4px}.bubble.streaming[data-v-06fff6c1]:after{content:"▋";animation:blink-06fff6c1 .7s step-start infinite;color:#1677ff}@keyframes blink-06fff6c1{50%{opacity:0}}.tool-msg[data-v-06fff6c1]{margin:8px 0}.question-card[data-v-06fff6c1]{background:#1a1f35;border:1px solid #1677ff40;border-radius:10px;padding:14px 16px;margin-top:8px}.question-text[data-v-06fff6c1]{color:#aaa;font-size:13px}[data-v-06fff6c1] .bubble.assistant pre{background:#1a1a1a;border-radius:6px;padding:12px;overflow-x:auto;font-size:12px}[data-v-06fff6c1] .bubble.assistant code:not(pre code){background:#2a2a2a;padding:1px 5px;border-radius:3px;font-size:12px;color:#f0a500}[data-v-06fff6c1] .bubble.assistant p{margin:0 0 8px}[data-v-06fff6c1] .bubble.assistant p:last-child{margin:0}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a5 as E,f as L,o as H,a2 as X,a0 as a,a4 as n,u as o,k as t,Y as e,V as C,c as M,W as i,_ as Y,X as y,G as c,a3 as N}from"./vendor-Ks18OpWK.js";import{u as T}from"./ws-Bve9vKht.js";import{u as q}from"./chat-_a36nOu_.js";import{R as J,F as K,I as Q,b as A,c as $,a as I,M as R}from"./antd-BhDHu4KM.js";const U=E("dashboard",()=>{const g=L(!1),u=L({wsStatus:"disconnected",activeLlm:null,activeModel:null,skillCount:0,sessionCount:0,providerCount:0});async function S(){const f=T();g.value=!0,u.value.wsStatus=f.status;try{const{output:b}=await f.execute("llm providers"),x=b.match(/active[:\s]+(\S+)/i);x&&(u.value.activeLlm=x[1]);const{output:d}=await f.execute("skill sources"),_=d.match(/(\d+)\s*(?:skills|技能)/i);if(_)u.value.skillCount=parseInt(_[1]);else{const r=d.split(`
|
|
2
|
+
`).filter(k=>k.trim()&&!k.startsWith("─"));u.value.skillCount=Math.max(r.length-3,0)*10}const l=await f.listSessions();u.value.sessionCount=l.length}catch{}finally{g.value=!1}}return{loading:g,stats:u,refresh:S}}),Z={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},tt={style:{margin:"4px 0 0",color:"#666","font-size":"13px"}},et={style:{display:"flex","align-items":"center",gap:"16px","flex-wrap":"wrap"}},ot={style:{color:"#91caff","font-weight":"600","font-size":"15px"}},st={style:{color:"#4a6fa5","font-size":"11px","font-family":"monospace","margin-top":"2px"}},at={style:{"margin-left":"auto"}},lt={style:{"margin-top":"24px"}},nt={style:{"margin-top":"24px"}},rt={style:{color:"#91caff"}},it={style:{color:"#555","font-family":"monospace","font-size":"11px"}},ct={style:{color:"#888","font-family":"monospace","font-size":"12px"}},mt={__name:"Dashboard",setup(g){const u=T(),S=U(),f=q(),b=Y(),{loading:x,stats:d,refresh:_}=S,l=window.__CC_CONFIG__||{},r=M(()=>l.mode==="project"),k=M(()=>({connected:"已连接",connecting:"连接中",error:"错误",disconnected:"未连接"})[u.status]||"未知"),V=M(()=>({connected:"#52c41a",connecting:"#faad14",error:"#ff4d4f",disconnected:"#888"})[u.status]||"#888");async function W(){await f.createSession("agent"),b.push("/chat")}return H(()=>{setTimeout(_,500)}),(z,s)=>{const v=i("a-button"),O=i("a-tag"),B=i("a-tooltip"),p=i("a-card"),D=i("a-alert"),w=i("a-statistic"),h=i("a-col"),F=i("a-row"),G=i("a-space"),m=i("a-descriptions-item"),P=i("a-descriptions");return y(),X("div",null,[a("div",Z,[a("div",null,[s[3]||(s[3]=a("h2",{style:{margin:"0",color:"#fff","font-size":"20px"}},"仪表板",-1)),a("p",tt,n(r.value?`项目「${o(l).projectName||"未命名"}」的系统概览`:"全局系统概览"),1)]),t(v,{type:"primary",ghost:"",loading:o(x),onClick:o(_)},{icon:e(()=>[t(o(J))]),default:e(()=>[s[4]||(s[4]=c(" 刷新 ",-1))]),_:1},8,["loading","onClick"])]),r.value?(y(),C(p,{key:0,style:{background:"#0d1b2e","border-color":"#1677ff30","margin-bottom":"20px"},size:"small"},{default:e(()=>[a("div",et,[t(o(K),{style:{color:"#1677ff","font-size":"20px"}}),a("div",null,[a("div",ot,n(o(l).projectName||"项目"),1),a("div",st,n(o(l).projectRoot),1)]),a("div",at,[t(O,{color:"blue"},{default:e(()=>[...s[5]||(s[5]=[c("项目级面板",-1)])]),_:1}),t(B,{title:"此面板的 AI 对话、技能运行均在此项目目录范围内"},{default:e(()=>[t(o(Q),{style:{color:"#555",cursor:"help","margin-left":"6px"}})]),_:1})])])]),_:1})):(y(),C(D,{key:1,type:"info",style:{"margin-bottom":"20px",background:"#1a0d2e","border-color":"#722ed130"},"show-icon":""},{message:e(()=>[...s[6]||(s[6]=[a("span",{style:{color:"#c084fc"}},"全局模式",-1),a("span",{style:{color:"#888","margin-left":"8px","font-size":"12px"}},[c(" — 在项目目录下运行 "),a("code",{style:{background:"#2a2a2a",padding:"1px 5px","border-radius":"3px"}},"chainlesschain ui"),c(" 可切换到项目级面板 ")],-1)])]),_:1})),t(F,{gutter:[16,16]},{default:e(()=>[t(h,{xs:24,sm:12,lg:6},{default:e(()=>[t(p,{style:{background:"#1f1f1f","border-color":"#303030"}},{default:e(()=>[t(w,{title:"WebSocket",value:k.value,"value-style":{color:V.value,fontSize:"18px"}},{prefix:e(()=>[t(o(A))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),t(h,{xs:24,sm:12,lg:6},{default:e(()=>[t(p,{style:{background:"#1f1f1f","border-color":"#303030"}},{default:e(()=>[t(w,{title:"活跃 LLM",value:o(d).activeLlm||"未配置","value-style":{color:o(d).activeLlm?"#52c41a":"#888",fontSize:"18px"}},{prefix:e(()=>[t(o($))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),t(h,{xs:24,sm:12,lg:6},{default:e(()=>[t(p,{style:{background:"#1f1f1f","border-color":"#303030"}},{default:e(()=>[t(w,{title:"可用技能",value:o(d).skillCount||"—","value-style":"color: #1677ff; font-size: 18px;"},{prefix:e(()=>[t(o(I))]),_:1},8,["value"])]),_:1})]),_:1}),t(h,{xs:24,sm:12,lg:6},{default:e(()=>[t(p,{style:{background:"#1f1f1f","border-color":"#303030"}},{default:e(()=>[t(w,{title:"AI 会话",value:o(d).sessionCount,"value-style":"color: #722ed1; font-size: 18px;"},{prefix:e(()=>[t(o(R))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),a("div",lt,[s[8]||(s[8]=a("h3",{style:{color:"#ccc","font-size":"15px","margin-bottom":"12px"}},"快速操作",-1)),t(G,{wrap:""},{default:e(()=>[t(v,{type:"primary",onClick:s[0]||(s[0]=j=>z.$router.push("/chat"))},{icon:e(()=>[t(o(R))]),default:e(()=>[c(" "+n(r.value?"项目 Chat":"新建对话"),1)]),_:1}),t(v,{onClick:W,style:{background:"#2a2a2a","border-color":"#444"}},{icon:e(()=>[t(o($))]),default:e(()=>[c(" "+n(r.value?"项目 Agent":"Agent 模式"),1)]),_:1}),t(v,{onClick:s[1]||(s[1]=j=>z.$router.push("/skills")),style:{background:"#2a2a2a","border-color":"#444"}},{icon:e(()=>[t(o(I))]),default:e(()=>[c(" "+n(r.value?"项目技能":"浏览技能"),1)]),_:1}),t(v,{onClick:s[2]||(s[2]=j=>z.$router.push("/providers")),style:{background:"#2a2a2a","border-color":"#444"}},{icon:e(()=>[t(o(A))]),default:e(()=>[s[7]||(s[7]=c(" LLM 配置 ",-1))]),_:1})]),_:1})]),a("div",nt,[s[10]||(s[10]=a("h3",{style:{color:"#ccc","font-size":"15px","margin-bottom":"12px"}},"运行信息",-1)),t(p,{style:{background:"#1f1f1f","border-color":"#303030"}},{default:e(()=>[t(P,{column:{xs:1,sm:2},size:"small"},{default:e(()=>[t(m,{label:"面板模式"},{default:e(()=>[t(O,{color:r.value?"blue":"purple"},{default:e(()=>[c(n(r.value?"项目级":"全局"),1)]),_:1},8,["color"])]),_:1}),r.value?(y(),C(m,{key:0,label:"项目名称"},{default:e(()=>[a("span",rt,n(o(l).projectName||"—"),1)]),_:1})):N("",!0),r.value?(y(),C(m,{key:1,label:"项目路径"},{default:e(()=>[a("span",it,n(o(l).projectRoot),1)]),_:1})):N("",!0),t(m,{label:"WebSocket"},{default:e(()=>[a("span",ct," ws://"+n(o(l).wsHost||"127.0.0.1")+":"+n(o(l).wsPort||18800),1)]),_:1}),t(m,{label:"认证"},{default:e(()=>[t(O,{color:o(l).wsToken?"green":"default",style:{"font-size":"11px"}},{default:e(()=>[c(n(o(l).wsToken?"已启用":"未启用"),1)]),_:1},8,["color"])]),_:1}),t(m,{label:"版本"},{default:e(()=>[...s[9]||(s[9]=[a("span",{style:{color:"#555"}},"v5.0.2.5",-1)])]),_:1})]),_:1})]),_:1})])])}}};export{mt as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a5 as O,f as b,o as G,a2 as w,a0 as i,k as p,Y as r,u as m,V as v,a3 as M,F as S,a6 as V,W as f,X as c,G as g,a4 as y,a1 as B}from"./vendor-Ks18OpWK.js";import{u as $}from"./ws-Bve9vKht.js";import{_ as E}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{R as I,d as z}from"./antd-BhDHu4KM.js";const N=O("providers",()=>{const h=b(!1),l=b(null),u=b([]),P=b([]),d=b(null);async function t(){const o=$();h.value=!0;try{const{output:n}=await o.execute("llm providers",15e3);u.value=_(n);const a=u.value.find(e=>e.active);a&&(d.value=a.name);const{output:s}=await o.execute("llm models",15e3);P.value=C(s)}catch(n){console.error("Failed to load providers:",n)}finally{h.value=!1}}function _(o){const n=[{name:"anthropic",label:"Anthropic (Claude)",icon:"🤖"},{name:"openai",label:"OpenAI (GPT)",icon:"🧠"},{name:"ollama",label:"Ollama (本地)",icon:"🦙"},{name:"gemini",label:"Google Gemini",icon:"✨"},{name:"deepseek",label:"DeepSeek",icon:"���"},{name:"qianwen",label:"通义千问",icon:"🌊"},{name:"zhipu",label:"智谱 GLM",icon:"📐"},{name:"moonshot",label:"Moonshot Kimi",icon:"🌙"},{name:"baidu",label:"百度文心",icon:"🌸"},{name:"groq",label:"Groq",icon:"⚡"}],a=[];for(const s of n){const e=o.toLowerCase().includes(s.name);o.match(new RegExp(`\\*?\\s*${s.name}`,"i"))&&o.includes("*")&&o.indexOf("*")<o.toLowerCase().indexOf(s.name)+20,a.push({...s,configured:e||o.includes("active")&&o.toLowerCase().includes(s.name),active:o.match(new RegExp(`\\*\\s*${s.name}`,"i"))!==null,status:"unknown"})}if(!a.find(s=>s.active)&&a.length>0){const s=o.match(/active[:\s]+(\w+)/i);if(s){const e=a.find(k=>k.name===s[1].toLowerCase());e&&(e.active=!0)}}return a}function C(o){return o.split(`
|
|
2
|
+
`).map(n=>n.trim()).filter(n=>n&&!n.startsWith("#")&&!n.startsWith("─")&&n.includes(":")).map(n=>({name:n,size:""})).slice(0,20)}async function L(o){await $().execute(`llm switch ${o}`,1e4),u.value.forEach(a=>a.active=a.name===o),d.value=o}async function x(o){const n=$();l.value=o;try{const{output:a,exitCode:s}=await n.execute("llm test",3e4),e=u.value.find(k=>k.name===o);return e&&(e.status=s===0?"ok":"error"),s===0}catch{const a=u.value.find(s=>s.name===o);return a&&(a.status="error"),!1}finally{l.value=null}}return{loading:h,testing:l,providers:u,localModels:P,activeProvider:d,loadProviders:t,switchProvider:L,testProvider:x}}),R={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},W={key:1,style:{"text-align":"center",padding:"60px"}},q={key:2},A={class:"providers-grid"},F={style:{display:"flex","align-items":"center",gap:"12px","margin-bottom":"12px"}},j={style:{"font-size":"24px"}},D={style:{flex:"1"}},T={style:{color:"#e0e0e0","font-weight":"500"}},K={style:{color:"#888","font-size":"11px","font-family":"monospace"}},X={style:{display:"flex",gap:"8px","justify-content":"flex-end"}},Y={key:0,style:{"margin-top":"24px"}},H={style:{color:"#ccc","font-family":"monospace","font-size":"13px"}},J={__name:"Providers",setup(h){const l=N();async function u(d){try{await l.switchProvider(d),z.success(`已切换到 ${d}`)}catch(t){z.error(`切换失败: ${t.message}`)}}async function P(d){await l.testProvider(d)?z.success(`${d} 连接正常`):z.warning(`${d} 连接失败,请检查配置`)}return G(()=>{l.loadProviders()}),(d,t)=>{const _=f("a-button"),C=f("a-alert"),L=f("a-spin"),x=f("a-tag"),o=f("a-badge"),n=f("a-card"),a=f("a-list-item"),s=f("a-list");return c(),w("div",null,[i("div",R,[t[2]||(t[2]=i("div",null,[i("h2",{style:{margin:"0",color:"#fff","font-size":"20px"}},"LLM 配置"),i("p",{style:{margin:"4px 0 0",color:"#666","font-size":"13px"}},"管理 AI 服务提供商")],-1)),p(_,{type:"primary",ghost:"",loading:m(l).loading,onClick:t[0]||(t[0]=e=>m(l).loadProviders())},{icon:r(()=>[p(m(I))]),default:r(()=>[t[1]||(t[1]=g(" 刷新 ",-1))]),_:1},8,["loading"])]),m(l).activeProvider?(c(),v(C,{key:0,type:"success",style:{"margin-bottom":"20px",background:"#162312","border-color":"#274916"},"show-icon":""},{message:r(()=>[i("span",null,[t[3]||(t[3]=g("当前激活:",-1)),i("strong",null,y(m(l).activeProvider),1)])]),_:1})):M("",!0),m(l).loading?(c(),w("div",W,[p(L,{size:"large"}),t[4]||(t[4]=i("div",{style:{color:"#555","margin-top":"12px"}},"加载 LLM 信息中...",-1))])):(c(),w("div",q,[i("div",A,[(c(!0),w(S,null,V(m(l).providers,e=>(c(),v(n,{key:e.name,class:B(["provider-card",{active:e.active}]),style:{background:"#1f1f1f"},size:"small"},{default:r(()=>[i("div",F,[i("span",j,y(e.icon),1),i("div",D,[i("div",T,y(e.label),1),i("div",K,y(e.name),1)]),i("div",null,[e.active?(c(),v(x,{key:0,color:"green"},{default:r(()=>[...t[5]||(t[5]=[g("活跃",-1)])]),_:1})):e.status==="ok"?(c(),v(o,{key:1,status:"success",text:""})):e.status==="error"?(c(),v(o,{key:2,status:"error",text:""})):M("",!0)])]),i("div",X,[p(_,{size:"small",style:{background:"#252525","border-color":"#3d3d3d"},loading:m(l).testing===e.name,onClick:k=>P(e.name)},{default:r(()=>[...t[6]||(t[6]=[g(" 测试 ",-1)])]),_:1},8,["loading","onClick"]),e.active?(c(),v(x,{key:1,color:"green",style:{margin:"0","line-height":"24px"}},{default:r(()=>[...t[8]||(t[8]=[g("当前",-1)])]),_:1})):(c(),v(_,{key:0,size:"small",type:"primary",ghost:"",onClick:k=>u(e.name)},{default:r(()=>[...t[7]||(t[7]=[g(" 切换 ",-1)])]),_:1},8,["onClick"]))])]),_:2},1032,["class"]))),128))]),m(l).localModels.length?(c(),w("div",Y,[t[9]||(t[9]=i("h3",{style:{color:"#ccc","font-size":"15px","margin-bottom":"12px"}}," 🦙 本地模型(Ollama) ",-1)),p(s,{"data-source":m(l).localModels,size:"small",style:{background:"#1f1f1f","border-radius":"8px",border:"1px solid #303030"}},{renderItem:r(({item:e})=>[p(a,{style:{padding:"10px 16px","border-color":"#252525"}},{actions:r(()=>[p(x,{color:"cyan",style:{"font-size":"10px"}},{default:r(()=>[g(y(e.size||"local"),1)]),_:2},1024)]),default:r(()=>[i("span",H,y(e.name),1)]),_:2},1024)]),_:1},8,["data-source"])])):M("",!0)]))])}}},te=E(J,[["__scopeId","data-v-2589c425"]]);export{te as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.providers-grid[data-v-2589c425]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.provider-card[data-v-2589c425]{border:1px solid #303030!important;transition:border-color .2s}.provider-card[data-v-2589c425]:hover{border-color:#444!important}.provider-card.active[data-v-2589c425]{border-color:#52c41a!important;background:#162312!important}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a5 as V,f as k,c as z,o as W,a2 as y,a0 as a,a4 as g,u as n,k as r,Y as u,F as L,a6 as M,W as f,_ as $,X as p,G as x,V as q}from"./vendor-Ks18OpWK.js";import{u as j}from"./ws-Bve9vKht.js";import{u as A}from"./chat-_a36nOu_.js";import{_ as F}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as N,R as Q,P as R}from"./antd-BhDHu4KM.js";const E=V("skills",()=>{const v=k(!1),o=k([]),d=k(""),m=k("all"),h=z(()=>{const l=new Set(["all"]);return o.value.forEach(e=>{e.category&&l.add(e.category),e.executionMode&&l.add(e.executionMode)}),[...l]}),b=z(()=>{let l=o.value;if(m.value!=="all"&&(l=l.filter(e=>e.category===m.value||e.executionMode===m.value)),d.value){const e=d.value.toLowerCase();l=l.filter(t=>t.name?.toLowerCase().includes(e)||t.description?.toLowerCase().includes(e)||t.title?.toLowerCase().includes(e))}return l});async function S(){const l=j();v.value=!0;try{const{output:e}=await l.execute("skill list",2e4),t=C(e);o.value=t}catch(e){console.error("Failed to load skills:",e)}finally{v.value=!1}}function C(l){const e=l.split(`
|
|
2
|
+
`),t=[];let c="built-in";for(const w of e){const i=w.trim();if(!i||i.startsWith("─")||i.startsWith("="))continue;if(i.match(/^[📦🔧⚡💡🌐🔒🏢🔗]+\s/)){c=i.replace(/^[^\s]+\s/,"").toLowerCase().replace(/[()]/g,"").trim();continue}const _=i.match(/^([a-z][a-z0-9-]+)\s+[-–]\s+(.+)/)||i.match(/^([a-z][a-z0-9-]+)\s{2,}(.+)/);_?t.push({name:_[1],description:_[2],category:c,executionMode:c.includes("agent")?"agent":c.includes("llm")?"llm-query":c.includes("cli")?"cli-direct":"built-in"}):i.match(/^[a-z][a-z0-9-]+$/)&&t.push({name:i,description:"",category:c,executionMode:"built-in"})}return t}return{loading:v,allSkills:o,searchQuery:d,selectedCategory:m,categories:h,filteredSkills:b,loadSkills:S}}),P={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},T={style:{margin:"4px 0 0",color:"#666","font-size":"13px"}},U={style:{display:"flex",gap:"12px","margin-bottom":"20px","flex-wrap":"wrap"}},D={key:0,style:{"text-align":"center",padding:"60px"}},G={key:1,class:"skills-grid"},X={style:{display:"flex","justify-content":"space-between","align-items":"flex-start"}},Y={style:{flex:"1","min-width":"0"}},H={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px","font-family":"monospace"}},J={style:{color:"#888","font-size":"12px","line-height":"1.5"}},K={style:{"margin-left":"12px","flex-shrink":"0"}},Z={style:{"margin-top":"10px",display:"flex","justify-content":"flex-end"}},ee={key:2,style:{"text-align":"center",padding:"60px",color:"#555"}},te={__name:"Skills",setup(v){const o=E(),d=A(),m=$(),h=z(()=>o.categories.filter(e=>e!=="all").slice(0,6));function b(e){return{"built-in":"内置","cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合",workspace:"工作区",marketplace:"市场"}[e]||e}function S(e){return{"cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合","built-in":"内置"}[e]||e||"未知"}function C(e){return{"cli-direct":"cyan",agent:"purple","llm-query":"blue",hybrid:"orange","built-in":"green"}[e]||"default"}async function l(e){await d.createSession("agent"),m.push("/chat"),setTimeout(()=>{d.currentSessionId&&d.sendMessage(d.currentSessionId,`/skill run ${e}`)},300)}return W(()=>{o.allSkills.length||o.loadSkills()}),(e,t)=>{const c=f("a-button"),w=f("a-input-search"),i=f("a-radio-button"),_=f("a-radio-group"),I=f("a-spin"),B=f("a-tag"),O=f("a-card");return p(),y("div",null,[a("div",P,[a("div",null,[t[3]||(t[3]=a("h2",{style:{margin:"0",color:"#fff","font-size":"20px"}},"技能管理",-1)),a("p",T,g(n(o).allSkills.length)+" 个可用技能",1)]),r(c,{type:"primary",ghost:"",loading:n(o).loading,onClick:t[0]||(t[0]=s=>n(o).loadSkills())},{icon:u(()=>[r(n(Q))]),default:u(()=>[t[4]||(t[4]=x(" 刷新 ",-1))]),_:1},8,["loading"])]),a("div",U,[r(w,{value:n(o).searchQuery,"onUpdate:value":t[1]||(t[1]=s=>n(o).searchQuery=s),placeholder:"搜索技能名称或描述...",style:{width:"300px"},"allow-clear":""},null,8,["value"]),r(_,{value:n(o).selectedCategory,"onUpdate:value":t[2]||(t[2]=s=>n(o).selectedCategory=s),"button-style":"solid"},{default:u(()=>[r(i,{value:"all"},{default:u(()=>[...t[5]||(t[5]=[x("全部",-1)])]),_:1}),(p(!0),y(L,null,M(h.value,s=>(p(),q(i,{key:s,value:s},{default:u(()=>[x(g(b(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),n(o).loading?(p(),y("div",D,[r(I,{size:"large"}),t[6]||(t[6]=a("div",{style:{color:"#555","margin-top":"12px"}},"加载技能中...",-1))])):n(o).filteredSkills.length?(p(),y("div",G,[(p(!0),y(L,null,M(n(o).filteredSkills,s=>(p(),q(O,{key:s.name,class:"skill-card",size:"small",hoverable:"",style:{background:"#1f1f1f","border-color":"#303030",cursor:"default"}},{default:u(()=>[a("div",X,[a("div",Y,[a("div",H,g(s.name),1),a("div",J,g(s.description||"暂无描述"),1)]),a("div",K,[r(B,{color:C(s.executionMode),style:{"font-size":"10px"}},{default:u(()=>[x(g(S(s.executionMode)),1)]),_:2},1032,["color"])])]),a("div",Z,[r(c,{size:"small",type:"primary",ghost:"",onClick:oe=>l(s.name)},{icon:u(()=>[r(n(R))]),default:u(()=>[t[7]||(t[7]=x(" 运行 ",-1))]),_:1},8,["onClick"])])]),_:2},1024))),128))])):(p(),y("div",ee,[r(n(N),{style:{"font-size":"48px","margin-bottom":"16px",display:"block"}}),a("div",null,g(n(o).allSkills.length?"没有匹配的技能":"点击刷新加载技能列表"),1)]))])}}},re=F(te,[["__scopeId","data-v-330f2378"]]);export{re as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.skills-grid[data-v-330f2378]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.skill-card[data-v-330f2378]{transition:border-color .2s,transform .2s}.skill-card[data-v-330f2378]:hover{border-color:#1677ff!important;transform:translateY(-1px)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _};
|