@bkm016/basalt 0.1.11 → 0.1.12
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/{chunk-755sy11p.js → chunk-01nve4qy.js} +1 -1
- package/{chunk-jtsve11b.js → chunk-0fc9apfn.js} +9 -9
- package/{chunk-d5j74pcp.js → chunk-1h34mzh7.js} +4 -4
- package/{chunk-fgwda4m0.js → chunk-1xfv4bd7.js} +1 -1
- package/{chunk-mbpb5c7w.js → chunk-2fyjph3f.js} +1 -1
- package/{chunk-13gvs0ax.js → chunk-2kxnw7vs.js} +1 -1
- package/{chunk-95964592.js → chunk-37zystxb.js} +11 -11
- package/{chunk-h1kb8b49.js → chunk-3pf1d62g.js} +2 -2
- package/{chunk-29qrxygd.js → chunk-5wnmbc1b.js} +2 -2
- package/{chunk-c71173py.js → chunk-6mges89p.js} +4 -4
- package/{chunk-d0a1jxk5.js → chunk-6sz5q3df.js} +2 -2
- package/chunk-7er5pz7s.js +479 -0
- package/{chunk-gbjn6d81.js → chunk-7g5smgjj.js} +1 -1
- package/chunk-7m3jagqn.js +2 -0
- package/{chunk-wnzvnskb.js → chunk-85v69h91.js} +2 -2
- package/{chunk-38g3gctw.js → chunk-9c4gdg1q.js} +2 -2
- package/{chunk-en218k4y.js → chunk-cbgpymt4.js} +1 -1
- package/{chunk-a1rb1a48.js → chunk-cdw03j4t.js} +2 -2
- package/chunk-ch1r3ted.js +2 -0
- package/{chunk-dfh9m9n7.js → chunk-db7ws33a.js} +2 -2
- package/{chunk-1n7dat03.js → chunk-ejjem0tc.js} +3 -3
- package/{chunk-c4qr1f41.js → chunk-eq4wqxzt.js} +2 -2
- package/{chunk-zc9ar0r4.js → chunk-eyrtbbdd.js} +1 -1
- package/{chunk-r4ttdkrz.js → chunk-fhxy6y34.js} +2 -2
- package/{chunk-zyyzk5ha.js → chunk-fy82qxa1.js} +1 -1
- package/{chunk-xtq1xpq0.js → chunk-hc300148.js} +1 -1
- package/{chunk-vtqr7dm8.js → chunk-j64dc767.js} +2 -2
- package/{chunk-msm9hmk9.js → chunk-jpnf71q7.js} +2 -2
- package/{chunk-q9f4xb0w.js → chunk-kpe7pnhy.js} +4 -4
- package/{chunk-a98wma9j.js → chunk-ksk49hv0.js} +1 -1
- package/{chunk-bdjr0kfr.js → chunk-m4bg1apa.js} +5 -5
- package/{chunk-dq01v5eq.js → chunk-nhm9z3d8.js} +1 -1
- package/{chunk-30rjf7my.js → chunk-ntks40jd.js} +2 -2
- package/{chunk-a1352w87.js → chunk-nw1xpt3s.js} +1 -1
- package/{chunk-xh444pfn.js → chunk-p2pmdbt2.js} +8 -8
- package/{chunk-hb4f2v34.js → chunk-qfcr5g35.js} +2 -2
- package/{chunk-n2jcx65v.js → chunk-qs8zzg50.js} +2 -2
- package/{chunk-qaeyhe65.js → chunk-r4gm8ngh.js} +1 -1
- package/{chunk-pz2afna8.js → chunk-rks90mh1.js} +1 -1
- package/{chunk-asyr3gnq.js → chunk-rwks9zaw.js} +2 -2
- package/{chunk-v3ee9z3f.js → chunk-t7te60m7.js} +1 -1
- package/{chunk-4dw43syb.js → chunk-tv52xajf.js} +1 -1
- package/{chunk-c0zfefq8.js → chunk-v7wcchy2.js} +1 -1
- package/{chunk-tevejprz.js → chunk-vjne04dp.js} +3 -3
- package/{chunk-ax04trym.js → chunk-w0rr66z7.js} +1 -1
- package/{chunk-gkf5jwvj.js → chunk-w6f2r052.js} +1 -1
- package/{chunk-jymx3a77.js → chunk-wqqjzsjt.js} +310 -278
- package/{chunk-c6q04xrd.js → chunk-xef4642x.js} +1 -1
- package/compiled.js +7 -7
- package/package.json +1 -1
- package/ui-test-worker.js +2 -2
- package/web/{chunk-jhpg2kcf.js → chunk-04drx71p.js} +1 -1
- package/web/chunk-0rdgt4jb.css +1 -0
- package/web/{chunk-cbwvfedy.js → chunk-19zd0tye.js} +3 -3
- package/web/chunk-1m0kp0g3.js +8 -0
- package/web/{chunk-j4gvtszc.js → chunk-1zwc09e8.js} +2 -2
- package/web/{chunk-a3pye9ag.js → chunk-2cyzaqjy.js} +3 -3
- package/web/{chunk-8csw0mvf.js → chunk-2jfesv7m.js} +2 -2
- package/web/chunk-3j2tcphs.js +1 -0
- package/web/chunk-3k9h7a73.js +1142 -0
- package/web/chunk-3m1bb2fw.js +1 -0
- package/web/{chunk-4rwwtfnd.js → chunk-3n9ypydh.js} +2 -2
- package/web/{chunk-90fkdzx3.js → chunk-3psgr0q8.js} +13 -13
- package/web/{chunk-nafe18y9.js → chunk-3qxxrwsp.js} +6 -6
- package/web/{chunk-hjyev38w.js → chunk-3rkkp6ed.js} +4 -4
- package/web/{chunk-v3dn9bfw.js → chunk-4f6a8dsk.js} +1 -1
- package/web/chunk-55nvm2mj.js +1 -0
- package/web/chunk-5dkqfnh7.js +2 -0
- package/web/{chunk-96xhmmqz.js → chunk-5g8md2wg.js} +4 -4
- package/web/{chunk-mpdeqzc9.js → chunk-5np514v5.js} +8 -8
- package/web/{chunk-1zfxaafq.js → chunk-60mym60n.js} +1 -1
- package/web/{chunk-nhx8pw7p.js → chunk-6f2sz84q.js} +2 -2
- package/web/{chunk-q8v5j963.js → chunk-7adsmqv6.js} +2 -2
- package/web/{chunk-27812gqr.js → chunk-7ksg3ccg.js} +3 -3
- package/web/chunk-7ky5nrrr.js +1 -0
- package/web/{chunk-pq56b3mq.js → chunk-7tkgbbf9.js} +2 -2
- package/web/{chunk-tpdcrrf1.js → chunk-7v85yvb2.js} +1 -1
- package/web/{chunk-dk0fnj87.js → chunk-7vgh17es.js} +1 -1
- package/web/{chunk-rqympya7.js → chunk-80z8s8zb.js} +1 -1
- package/web/{chunk-36dc7tcg.js → chunk-81s15c2e.js} +2 -2
- package/web/{chunk-mykbcvqz.js → chunk-8539865x.js} +1 -1
- package/web/{chunk-wbwets5x.js → chunk-8cnjd0f2.js} +17 -17
- package/web/{chunk-48479gnx.js → chunk-8sdjgv3k.js} +1 -1
- package/web/chunk-9bxtzwtc.js +1 -0
- package/web/{chunk-drchr3yn.js → chunk-aa46mrgh.js} +1 -1
- package/web/{chunk-8151c970.js → chunk-act3rr85.js} +1 -1
- package/web/{chunk-94denx9h.js → chunk-aebrw6cv.js} +3 -3
- package/web/{chunk-3a57m7xm.js → chunk-aeymdtm1.js} +2 -2
- package/web/{chunk-3020mmp1.js → chunk-ar6jnhm5.js} +1 -1
- package/web/{chunk-e763h2px.js → chunk-b5zf1hs3.js} +66 -66
- package/web/{chunk-5ahx98zj.js → chunk-b99k8q22.js} +8 -8
- package/web/chunk-bcjgzwef.js +1 -0
- package/web/{chunk-f79ajymt.js → chunk-bra33pt0.js} +2 -2
- package/web/{chunk-57pyz29y.js → chunk-bygwbpvq.js} +2 -2
- package/web/{chunk-3ftb27f3.js → chunk-c3fty2c2.js} +5 -5
- package/web/{chunk-d3f763n7.js → chunk-cxpnj495.js} +1 -1
- package/web/{chunk-8z7texmv.js → chunk-d1btrqmw.js} +1 -1
- package/web/{chunk-jqqbkdtw.js → chunk-d57fm7k0.js} +2 -2
- package/web/{chunk-1t38sgrk.js → chunk-d73zkc4q.js} +4 -4
- package/web/chunk-d94t9z70.js +1 -0
- package/web/{chunk-2ds0a2z1.js → chunk-dndd757x.js} +3 -3
- package/web/{chunk-d4519smc.js → chunk-e94pd9rr.js} +10 -10
- package/web/{chunk-qykt7avq.js → chunk-enwfd8d5.js} +2 -2
- package/web/chunk-fr4fft89.js +1 -0
- package/web/{chunk-g0rtcedn.js → chunk-g488hxx0.js} +3 -3
- package/web/{chunk-b6sqwmq7.js → chunk-g4zm0crw.js} +1 -1
- package/web/{chunk-086dshck.js → chunk-gckmcef6.js} +1 -1
- package/web/{chunk-0hvxb5d5.js → chunk-gkmaryr4.js} +1 -1
- package/web/chunk-gnb09wmx.js +1 -0
- package/web/chunk-gx340asc.js +1 -0
- package/web/chunk-h0c42zy3.js +1 -0
- package/web/chunk-h24ybwp6.js +1 -0
- package/web/{chunk-m24yb8md.js → chunk-h754ntg7.js} +1 -1
- package/web/{chunk-3b4wqmnh.js → chunk-hn8m1vsg.js} +7 -7
- package/web/{chunk-2f2agfpj.js → chunk-hqxc9m07.js} +7 -7
- package/web/chunk-hrgqc1vr.js +1 -0
- package/web/{chunk-793m5jjh.js → chunk-hva7xyne.js} +2 -2
- package/web/{chunk-yrh86m0n.js → chunk-hxbfkdjd.js} +1 -1
- package/web/chunk-j9c8fa82.js +1 -0
- package/web/{chunk-4gc663j0.js → chunk-jeafmjsm.js} +1 -1
- package/web/chunk-jyf7a7yp.js +2 -0
- package/web/chunk-jz5mmp64.js +1 -0
- package/web/{chunk-s0xy00v5.js → chunk-k0cg4n2k.js} +2 -2
- package/web/{chunk-g31dbnzm.js → chunk-k4dnjf8n.js} +4 -4
- package/web/{chunk-59nk506k.js → chunk-kerfb21g.js} +1 -1
- package/web/chunk-m0136xav.js +1 -0
- package/web/chunk-m6vyvgm5.js +1 -0
- package/web/{chunk-0y971zgq.js → chunk-mxkbmgcv.js} +2 -2
- package/web/{chunk-0fy590s0.js → chunk-my0ec787.js} +1 -1
- package/web/chunk-mzzaet63.js +1 -0
- package/web/{chunk-xjc5fmcr.js → chunk-n9v14vyd.js} +18 -18
- package/web/{chunk-cpshsp24.js → chunk-ncfzmf2g.js} +1 -1
- package/web/chunk-ny436sqg.js +1 -0
- package/web/chunk-ph75hddv.js +1 -0
- package/web/chunk-phdfyqaa.js +1 -0
- package/web/chunk-phxa5krt.js +1 -0
- package/web/{chunk-b3j07x0n.js → chunk-pjpre6de.js} +2 -2
- package/web/chunk-q1zxvjhs.js +2 -0
- package/web/{chunk-n33753da.js → chunk-qdd3bx8q.js} +1 -1
- package/web/{chunk-ydtrc1ay.js → chunk-qh62nkem.js} +2 -2
- package/web/{chunk-05mvzx00.js → chunk-qp3tjhaq.js} +1 -1
- package/web/chunk-r4zbw4zj.js +2 -0
- package/web/{chunk-g4as4zzd.js → chunk-r6kk4vp1.js} +4 -4
- package/web/{chunk-ppjw1mps.js → chunk-rdr6wt22.js} +4 -4
- package/web/chunk-ry4ycah9.js +1 -0
- package/web/{chunk-47mbbmst.js → chunk-sdr5wa4z.js} +3 -3
- package/web/chunk-sqm16fat.js +1 -0
- package/web/{chunk-zv73g4qq.js → chunk-td83xf12.js} +2 -2
- package/web/chunk-tj1fn8v2.js +1 -0
- package/web/{chunk-q65zxczs.js → chunk-v0wtk059.js} +4 -4
- package/web/{chunk-enryqmj7.js → chunk-v1hfbjz9.js} +4 -4
- package/web/chunk-v1qt3gq4.js +1 -0
- package/web/{chunk-2tsxj613.js → chunk-v34mr9ky.js} +9 -9
- package/web/{chunk-tgkdyxbn.js → chunk-v854w9yn.js} +1 -1
- package/web/{chunk-dtrh40vr.js → chunk-ve56gxq0.js} +1 -1
- package/web/chunk-w573ym17.js +1 -0
- package/web/{chunk-9kkzmss7.js → chunk-w9gnqkez.js} +3 -3
- package/web/{chunk-kfbgvh0c.js → chunk-wqzbxzk3.js} +1 -1
- package/web/{chunk-hm8thq7c.js → chunk-wvrs986a.js} +2 -2
- package/web/chunk-x0mjydtp.js +1 -0
- package/web/{chunk-7dycbjxn.js → chunk-xpecre7w.js} +4 -4
- package/web/{chunk-zdhyq3ch.js → chunk-xvfeq8v2.js} +7 -7
- package/web/{chunk-2weaa3gn.js → chunk-y2rzeb4v.js} +2 -2
- package/web/{chunk-tggja45g.js → chunk-yf8ykk4v.js} +4 -4
- package/web/{chunk-gyhr27dm.js → chunk-yjs6jmdb.js} +1 -1
- package/web/{chunk-dsbyfvwz.js → chunk-ym7kv2hs.js} +1 -1
- package/web/chunk-zhybh04p.js +1 -0
- package/web/index.html +1 -1
- package/worker.js +1 -1
- package/chunk-7zkswxvk.js +0 -2
- package/chunk-m1eam0s5.js +0 -2
- package/chunk-zq32mwxj.js +0 -479
- package/web/chunk-32zmk3f5.js +0 -1
- package/web/chunk-3d3wnh8a.js +0 -2
- package/web/chunk-6cjm2yr7.js +0 -1
- package/web/chunk-7ycxz39p.js +0 -1
- package/web/chunk-9wr33d0t.js +0 -1
- package/web/chunk-a4tdrxdh.js +0 -1
- package/web/chunk-a9fvsyc1.js +0 -1
- package/web/chunk-apvbvg4d.js +0 -1
- package/web/chunk-bkxcc7v5.js +0 -1
- package/web/chunk-bve354k7.js +0 -1
- package/web/chunk-cwpxakby.js +0 -1
- package/web/chunk-jd7npyv9.js +0 -8
- package/web/chunk-jzz5htxp.js +0 -1
- package/web/chunk-ka3q31t1.js +0 -1
- package/web/chunk-kahab58k.js +0 -1139
- package/web/chunk-krgvx75q.js +0 -1
- package/web/chunk-m7k4wr3k.js +0 -1
- package/web/chunk-mdj3r75b.js +0 -1
- package/web/chunk-nbcpbqq4.js +0 -1
- package/web/chunk-p1yc8hwn.js +0 -2
- package/web/chunk-p29brxyt.js +0 -1
- package/web/chunk-p8fbes0t.js +0 -1
- package/web/chunk-r6q1301x.js +0 -1
- package/web/chunk-r8kghrkb.js +0 -1
- package/web/chunk-rhxn7mxg.js +0 -1
- package/web/chunk-svqshmpg.js +0 -1
- package/web/chunk-swzxq7r3.css +0 -1
- package/web/chunk-t18tn37m.js +0 -2
- package/web/chunk-tbsaseer.js +0 -1
- package/web/chunk-v0zfnvc1.js +0 -1
- package/web/chunk-vj31fs16.js +0 -1
- package/web/chunk-vr79r8vh.js +0 -1
- package/web/chunk-wb9tax0m.js +0 -1
- package/web/chunk-x9eghjjd.js +0 -1
- package/web/chunk-z3ky5ews.js +0 -2
package/web/chunk-32zmk3f5.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ro}from"./chunk-kahab58k.js";export{Ro as QuestionDock};
|
package/web/chunk-3d3wnh8a.js
DELETED
package/web/chunk-6cjm2yr7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ti}from"./chunk-xjc5fmcr.js";export{Ti as createGitGraphServices};
|
package/web/chunk-7ycxz39p.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{wi}from"./chunk-xjc5fmcr.js";export{wi as createRadarServices};
|
package/web/chunk-9wr33d0t.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g,o,i,r,f,e,n,y,s,te,ot,ve,ce,ne,je,ut,ee,X}from"./chunk-kahab58k.js";import{Nr,Pr,Or}from"./chunk-f79ajymt.js";var $e=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],xe=s("rotate-cw",$e);function Ce(t){let m=[],h="",v,j=!1;for(let l=0;l<t.length;l++){let p=t.charAt(l);if(v)if(p===v)v=void 0;else if(p==="\\"&&v==='"'&&l+1<t.length)h+=t[++l];else h+=p;else if(p==='"'||p==="'")v=p,j=!0;else if(p==="\\"&&l+1<t.length)h+=t[++l],j=!0;else if(/\s/.test(p)){if(j||h)m.push(h);h="",j=!1}else h+=p,j=!0}if(j||h)m.push(h);return m}function fe(t){return t.map((m)=>m===""||/[\s"'\\]/.test(m)?`"${m.replace(/(["\\])/g,"\\$1")}"`:m).join(" ")}var Ne="size-4 cursor-pointer rounded border-line text-accent accent-accent focus-visible:outline-2 focus-visible:outline-accent",Pe={connected:{label:"已连接",dot:"bg-success"},idle:{label:"待连接",dot:"bg-faint"},disabled:{label:"已停用",dot:"bg-faint"},failed:{label:"连接失败",dot:"bg-danger"},needs_auth:{label:"需要认证",dot:"bg-warning"}};function ge(t){if(t==="project")return"项目";if(t==="file")return".mcp.json";return"全局"}function de(t){return t.type==="local"?fe(t.command):t.url}function he({info:t,tools:m=!1}){let h=Pe[t.status.status];return n("span",{className:"inline-flex shrink-0 items-center gap-1.5 text-xs text-dim",children:[e("span",{"aria-hidden":!0,className:`size-1.5 shrink-0 rounded-full ${h.dot}`}),e("span",{className:m?void 0:"hidden @md/panel:inline",children:h.label}),m&&t.status.status==="connected"&&n("span",{className:"text-faint",children:[t.toolCount," 个工具"]})]})}function we(t){let{Button:m,CopyButton:h,DetailChip:v,DetailList:j,DetailRow:l,DetailTitle:p,Dialog:I,Switch:E,Tooltip:ie,cn:c,confirm:x,useTheme:re}=y();re();let{info:d,connection:R}=t,C=t.projectID?`?projectID=${encodeURIComponent(t.projectID)}`:"",[J,le]=r(),[K,_]=r(),[M,P]=r(!1),W=d.status.status==="connected",S=d.status.status==="needs_auth",z=d.status.status==="failed",L=d.config.type==="remote"&&Boolean(d.config.oauth),H=d.scope==="file";o(()=>{function u(w){if(w&&w!==d.name)return;R.request(`/api/mcp/${encodeURIComponent(d.name)}/connect${C}`,{method:"POST"}).then((se)=>t.onChanged(se)).catch(()=>{})}function oe(w){if(w.data?.type==="mcp-oauth-success")u(w.data.name)}function ue(w){if(w.key==="basalt-mcp-oauth-event"&&w.newValue)try{let se=JSON.parse(w.newValue);u(se.name)}catch(se){}}window.addEventListener("message",oe),window.addEventListener("storage",ue);let U;if("BroadcastChannel"in window)U=new BroadcastChannel("basalt-mcp-oauth"),U.onmessage=(w)=>{if(w.data?.type==="mcp-oauth-success")u(w.data.name)};return()=>{window.removeEventListener("message",oe),window.removeEventListener("storage",ue),U?.close()}},[R,d.name,C,t]),o(()=>{if(d.status.status!=="connected")return;R.request(`/api/mcp/${encodeURIComponent(d.name)}/tools${C}`).then((u)=>{if(Array.isArray(u))le(u),_(void 0)}).catch((u)=>{_(u instanceof Error?u.message:"获取工具失败")})},[R,d.name,C,d.status.status]);async function ae(u){P(!0);try{let oe=await R.request(`/api/mcp/${encodeURIComponent(d.name)}/${u}${C}`,{method:"POST"});t.onChanged(oe)}catch{}finally{P(!1)}}async function B(){P(!0);try{let u=d.status.status==="needs_auth"?d.status.authorizationUrl:void 0;if(!u)u=(await R.request(`/api/mcp/${encodeURIComponent(d.name)}/oauth/authorize${C}`,{method:"POST"})).authorizationUrl;if(u)window.open(u,"_blank","width=600,height=700")}catch(u){_(u instanceof Error?u.message:"获取授权链接失败")}finally{P(!1)}}async function a(){P(!0);try{let u=await R.request(`/api/mcp/${encodeURIComponent(d.name)}/oauth/clear${C}`,{method:"POST"});t.onChanged(u)}finally{P(!1)}}async function T(){if(!await x({title:`删除 ${d.name}?`,description:"删除后将断开连接并不再向会话提供其工具。",action:"删除",danger:!0}))return;P(!0);try{await R.request(`/api/mcp/${encodeURIComponent(d.name)}${C}`,{method:"DELETE"}),t.onChanged(),t.onClose()}finally{P(!1)}}let N=d.config,D=de(N),G="error"in d.status?d.status.error:void 0,Q=N.enabled===!1,Z=!Q&&!S;return e(I,{open:!0,onOpenChange:(u)=>{if(!u&&!M)t.onClose()},title:e(p,{icon:N.type==="local"?e(ut,{}):e(ve,{}),name:d.name,meta:[N.type==="local"?"本地命令":"远程服务",ge(d.scope),L&&"OAuth 2.0"]}),size:"lg",footer:n("div",{className:"flex w-full items-center justify-between gap-2 max-sm:[&>*]:flex-none",children:[n("div",{className:"inline-flex items-center gap-2.5 text-[13px] text-dim",children:[!H&&e(E,{label:`启用 ${d.name}`,checked:!Q,disabled:M||t.toggling,onCheckedChange:t.onToggle}),e(he,{info:d,tools:!0})]}),n("div",{className:"flex items-center gap-1.5",children:[L&&e(m,{type:"button",variant:"ghost",size:"sm",onClick:a,disabled:M,children:"清除凭据"}),!H&&e(ie,{label:"删除服务器",children:e(m,{type:"button",variant:"danger-ghost",size:"icon","aria-label":"删除服务器",onClick:T,disabled:M,children:e(ee,{className:"size-4"})})}),Z&&e(ie,{label:"终止服务进程并重新启动,让更新后的代码生效",children:e(m,{type:"button",variant:"ghost",size:"icon","aria-label":"重启",onClick:()=>ae("restart"),disabled:M,children:e(xe,{className:c("size-4",M&&"animate-spin")})})}),Z&&e(m,{type:"button",size:"sm",onClick:()=>ae(W?"disconnect":"connect"),disabled:M,children:W?"断开连接":"连接"}),!H&&n(m,{type:"button",size:"sm",onClick:t.onEdit,disabled:M,children:[e(je,{className:"size-3.5"}),e("span",{children:"编辑配置"})]})]})]}),children:n(j,{children:[n(l,{label:N.type==="local"?"命令":"地址",children:[e("span",{className:"min-w-0 font-mono text-[12px] text-dim leading-5.5 [overflow-wrap:anywhere]",children:D}),e(h,{text:D,label:"复制",size:"icon-xs",className:"shrink-0 text-faint hover:text-ink"})]}),S&&n(l,{label:"授权",children:[e("span",{className:"text-dim leading-7",children:"需要完成 OAuth 授权后才能使用,令牌会自动保存。"}),e(m,{type:"button",variant:"primary",size:"sm",onClick:B,disabled:M,children:"前往授权"})]}),z&&e(l,{label:"错误",children:e("p",{className:"min-w-0 font-mono text-[11.5px] text-danger leading-5 [overflow-wrap:anywhere]",children:G})}),e(l,{label:"工具",children:K?e("span",{className:"text-danger",children:K}):!W?e("span",{className:"text-faint",children:"连接后列出工具"}):!J?e("span",{role:"status",className:"text-faint",children:"正在获取"}):J.length===0?e("span",{className:"text-faint",children:"服务器没有声明任何工具"}):J.map((u)=>e(v,{mono:!0,title:u.description,children:u.name},u.name))})]})})}var De=/^[A-Za-z0-9_-]{1,64}$/;function V(t){return e("span",{className:"truncate text-xs text-faint",children:t.children})}function ke(t){let{pairs:m,onChange:h,InputComponent:v}=t,j=(l,p)=>h(m.map((I,E)=>E===l?{...I,...p}:I));return n("div",{className:"space-y-2",children:[n("div",{className:"flex min-h-7 items-center gap-2",children:[e("span",{className:"shrink-0 text-[13px] font-medium text-dim",children:t.label}),e(V,{children:t.tip}),n("button",{type:"button",className:"ml-auto inline-flex h-7 shrink-0 cursor-pointer items-center gap-1 rounded-lg px-2 text-xs font-medium text-dim transition-colors hover:bg-raised hover:text-ink",onClick:()=>h([...m,{key:"",value:"",saved:!1}]),children:[e(ce,{className:"size-3.5"}),"添加"]})]}),m.map((l,p)=>n("div",{className:"flex min-w-0 items-center gap-1.5",children:[e(v,{"aria-label":`${t.keyLabel} ${p+1}`,placeholder:t.keyLabel,value:l.key,readOnly:l.saved,onChange:(I)=>j(p,{key:I.target.value}),className:"min-w-0 flex-[2] font-mono text-xs"}),e(v,{"aria-label":`${t.keyLabel} ${l.key||p+1} 的值`,type:"password",autoComplete:"off",placeholder:l.saved?"已保存,留空保持不变":"值",value:l.value,onChange:(I)=>j(p,{value:I.target.value}),className:"min-w-0 flex-[3] font-mono text-xs"}),e("button",{type:"button","aria-label":`删除 ${l.key||"该项"}`,className:"flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-lg text-faint transition-colors hover:bg-danger/10 hover:text-danger",onClick:()=>h(m.filter((I,E)=>E!==p)),children:e(X,{className:"size-4"})})]},p))]})}function Ie(t){return Object.keys(t??{}).map((m)=>({key:m,value:"",saved:!0}))}function Se(t){let{Button:m,Segmented:h,Dialog:v,Form:j,Field:l,Input:p,Switch:I,style:E,useTheme:ie}=y();ie();let{existing:c}=t,[x,re]=r(c?.config.type??"local"),[d,R]=r(c?.name??""),[C,J]=r(c?.config.type==="local"?fe(c.config.command):""),[le,K]=r(c?.config.type==="remote"?c.config.url:""),[_,M]=r(Ie(c?.config.type==="local"?c.config.environment:void 0)),[P,W]=r(Ie(c?.config.type==="remote"?c.config.headers:void 0)),S=c?.config.type==="remote"?c.config.oauth:void 0,[z,L]=r(Boolean(S)),[H,ae]=r(typeof S==="object"&&S.clientId?S.clientId:""),[B,a]=r(""),[T,N]=r(typeof S==="object"&&S.scope?S.scope:""),[D,G]=r(c?.config.defer??"default"),[Q,Z]=r(c?.config.timeout!==void 0?String(c.config.timeout):""),[u,oe]=r(c?.config.defer!==void 0||c?.config.timeout!==void 0),[ue,U]=r(),[w,se]=r(!1);async function Te(b){b.preventDefault(),U(void 0);let k=d.trim();if(!c&&!De.test(k)){U("名称只能包含英文字母、数字、下划线与中划线,长度 1-64");return}if(!c&&t.taken.includes(k)){U("同名服务器已存在");return}let me=Q.trim()?Number.parseInt(Q.trim(),10):void 0;if(me!==void 0&&(!Number.isFinite(me)||me<=0)){U("超时时间须为大于 0 的毫秒数");return}let be;if(x==="local"){let A=Ce(C.trim());if(!A.length){U("请输入启动命令");return}let F={};for(let q of _){let O=q.key.trim();if(!O)continue;if(!q.saved||q.value)F[O]=q.value}be={type:"local",command:A,environment:Object.keys(F).length?F:void 0,enabled:c?c.config.enabled:!0,defer:D==="default"?void 0:D,timeout:me}}else{let A=le.trim();try{let O=new URL(A);if(O.protocol!=="http:"&&O.protocol!=="https:")throw Error("bad protocol")}catch{U("请输入合法的 HTTP 或 HTTPS 地址");return}let F={};for(let O of P){let pe=O.key.trim();if(!pe)continue;if(!O.saved||O.value)F[pe]=O.value}let q;if(z){let O=H.trim(),pe=B.trim(),ye=T.trim();if(O||pe||ye)q={clientId:O||void 0,clientSecret:pe||void 0,scope:ye||void 0};else q=!0}else q=!1;be={type:"remote",url:A,headers:Object.keys(F).length?F:void 0,oauth:q,enabled:c?c.config.enabled:!0,defer:D==="default"?void 0:D,timeout:me}}se(!0);try{let A=c?.name??k,F=c?c.projectID:t.projectID,q=F?`?projectID=${encodeURIComponent(F)}`:"";await t.connection.request(`/api/mcp/${encodeURIComponent(A)}${q}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify(be)}),t.onSaved()}catch(A){U(A instanceof Error?A.message:"保存失败")}finally{se(!1)}}return e(v,{open:!0,onOpenChange:(b)=>{if(!b&&!w)t.onClose()},title:c?`编辑 ${c.name}`:"添加 MCP 服务器",size:"lg",footer:n("div",{className:"flex w-full justify-end gap-2.5",children:[e(m,{type:"button",variant:"ghost",onClick:t.onClose,disabled:w,className:"min-w-20",children:"取消"}),e(m,{type:"submit",form:"mcp-server-form",variant:"primary",disabled:w,className:"min-w-24",children:w?"保存中...":"保存"})]}),children:n(j,{id:"mcp-server-form",onSubmit:Te,children:[e(h,{value:x,onChange:(b)=>re(b),className:"w-full [&>button]:flex-1",options:[{value:"local",label:"本地(标准输入输出)"},{value:"remote",label:"远程(HTTP / SSE)"}]}),!c&&e(l,{label:"名称",aside:e(V,{children:"唯一标识,如 postgres"}),children:(b)=>e(p,{id:b,value:d,onChange:(k)=>R(k.target.value),placeholder:"postgres",className:"font-mono text-xs"})}),x==="local"?n(f,{children:[e(l,{label:"启动命令",aside:e(V,{children:"完整命令及参数"}),children:(b)=>e(p,{id:b,value:C,onChange:(k)=>J(k.target.value),placeholder:"npx -y @modelcontextprotocol/server-postgres ...",className:"font-mono text-xs"})}),e(ke,{label:"环境变量",tip:"启动进程时注入",keyLabel:"变量名",pairs:_,onChange:M,InputComponent:p})]}):n(f,{children:[e(l,{label:"服务地址",aside:e(V,{children:"HTTP / HTTPS 端点"}),children:(b)=>e(p,{id:b,value:le,onChange:(k)=>K(k.target.value),placeholder:"https://example.com/mcp",className:"font-mono text-xs"})}),e(ke,{label:"请求头",tip:"随每次请求发送",keyLabel:"头字段",pairs:P,onChange:W,InputComponent:p}),n("div",{className:"flex items-center justify-between gap-4",children:[n("div",{className:"min-w-0",children:[e("span",{className:"block text-[13px] font-medium text-dim",children:"OAuth 2.0 认证"}),e("span",{className:"block truncate text-xs text-faint",children:"自动发现授权端点,使用 PKCE 并刷新令牌"})]}),e(I,{checked:z,onCheckedChange:L,label:"启用 OAuth 2.0"})]}),z&&n(f,{children:[e(l,{label:"Client ID",aside:e(V,{children:"留空自动动态注册(DCR)"}),children:(b)=>e(p,{id:b,value:H,onChange:(k)=>ae(k.target.value),placeholder:"留空自动动态注册",className:"font-mono text-xs"})}),e(l,{label:"Client Secret",aside:e(V,{children:"留空保持不变"}),children:(b)=>e(p,{id:b,type:"password",autoComplete:"off",value:B,onChange:(k)=>a(k.target.value),placeholder:"••••••••",className:"font-mono text-xs"})}),e(l,{label:"Scope",aside:e(V,{children:"选填授权范围"}),children:(b)=>e(p,{id:b,value:T,onChange:(k)=>N(k.target.value),placeholder:"repo read:org",className:"font-mono text-xs"})})]})]}),n("div",{className:"space-y-3 border-t border-line/60 pt-3",children:[n("button",{type:"button","aria-expanded":u,className:"flex w-full cursor-pointer items-center gap-1.5 text-[13px] font-medium text-dim transition-colors hover:text-ink",onClick:()=>oe(!u),children:[e(ot,{className:`size-3.5 transition-transform ${u?"rotate-90":""}`}),"高级设置",e("span",{className:"truncate text-xs font-normal text-faint",children:"加载时机、超时"})]}),u&&n("div",{className:"grid grid-cols-2 gap-3 max-sm:grid-cols-1",children:[e(l,{label:"加载时机",aside:e(V,{children:"延迟 = 按需加载"}),children:()=>e(h,{value:D,onChange:(b)=>G(b),className:"w-full [&>button]:flex-1",options:[{value:"default",label:"默认"},{value:"defer",label:"延迟"},{value:"always",label:"常驻"}]})}),e(l,{label:"超时(毫秒)",aside:e(V,{children:"留空用默认"}),children:(b)=>e(p,{id:b,value:Q,onChange:(k)=>Z(k.target.value),placeholder:"默认",className:"font-mono text-xs"})})]})]}),ue&&n("div",{role:"alert",className:E("callout.base",E("callout.danger"),"px-3 py-2.5 text-xs"),children:[e(te,{className:"mt-0.5 size-3.5 shrink-0"}),e("span",{className:"min-w-0 break-words",children:ue})]})]})})}var Y="global";function at({connection:t}){let{Button:m,Select:h,style:v,useTheme:j}=y();j();let[l,p]=r(""),[I,E]=r(),[ie,c]=r([]),[x,re]=r(Y),[d,R]=r(),[C,J]=r(!1),[le,K]=r(),[_,M]=r(!1),P=i(!1),[W,S]=r(),z=i(0),L=g(async()=>{let a=++z.current;J(!0);try{let T=x===Y?"":`?projectID=${encodeURIComponent(x)}`,[N,D]=await Promise.all([t.request(`/api/mcp${T}`),t.request("/api/mcp/projects")]);if(a!==z.current)return;if(E(N),c(D),x!==Y&&!D.some((G)=>G.id===x))re(Y);R(void 0)}catch(T){if(a===z.current)R(T instanceof Error?T.message:"读取失败")}finally{if(a===z.current)J(!1)}},[t,x]);o(()=>(L(),()=>{z.current++}),[L]);async function H(a,T){if(P.current)return;P.current=!0,M(!0);let N=z.current;try{let D=a.projectID?`?projectID=${encodeURIComponent(a.projectID)}`:"",G=await t.request(`/api/mcp/${encodeURIComponent(a.name)}${D}`,{method:"PUT",headers:{"content-type":"application/json"},body:JSON.stringify({...a.config,enabled:T})});if(N===z.current)E((Q)=>Q?.map((Z)=>Z.name===G.name&&Z.projectID===G.projectID?G:Z))}finally{P.current=!1,M(!1)}}let ae=I?.filter((a)=>`${a.name} ${de(a.config)}`.toLowerCase().includes(l.trim().toLowerCase())),B=I?.find((a)=>a.name===le);return n("div",{className:"min-w-0 space-y-6",children:[n("section",{className:"min-w-0",children:[n("div",{className:"mb-2.5 flex flex-wrap items-end justify-between gap-3 px-0.5",children:[n("div",{className:"min-w-0 flex-1 basis-48",children:[e("h2",{className:v("settings.groupTitle"),children:"MCP 服务器"}),e("p",{className:v("settings.groupDesc"),children:"外部工具与数据源管理"})]}),n("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[e(h,{value:x,disabled:C,onValueChange:(a)=>{K(void 0),S(void 0),E(void 0),re(a)},groups:[{options:[{value:Y,label:"全局"}]},...Nr(ie)],className:"w-44"}),e(m,{variant:"ghost",disabled:C,onClick:L,className:"h-9 px-2.5 text-xs",children:e(ne,{className:`size-3.5 ${C?"animate-spin":""}`})}),n(m,{variant:"secondary",onClick:()=>S({}),className:"h-9 px-2.5 text-xs",children:[e(ce,{className:"size-3.5 mr-1"}),"添加服务器"]})]})]}),d&&n("div",{role:"alert",className:v("callout.base",v("callout.danger"),"mb-3 flex-wrap items-center justify-between"),children:[n("p",{className:"min-w-0 flex-1 break-words text-sm text-danger",children:["无法读取 MCP 服务器:",d]}),e(m,{disabled:C,onClick:L,children:"重试"})]}),e(Pr,{label:"搜索 MCP 服务器",placeholder:"搜索服务器",value:l,onChange:p}),e("div",{className:v("settings.groupBox"),children:!I?e(Or,{}):ae?.length===0?e("p",{className:"p-4 text-sm text-dim",children:"没有匹配的 MCP 服务器"}):e("ul",{className:"divide-y divide-line",children:ae?.map((a)=>{let T=a.config.enabled===!1,N=a.scope==="file";return n("li",{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5 transition-colors hover:bg-raised/40 ${T?"opacity-55":""}`,children:[n("button",{type:"button",className:"group flex min-h-12 min-w-0 flex-1 cursor-pointer items-center gap-3 py-1 text-left focus-visible:outline-2 focus-visible:outline-accent","aria-label":`查看 ${a.name}`,title:N?"来自项目的 .mcp.json,配置只读,可查看工具与重启":void 0,onClick:()=>K(a.name),children:[e("span",{"aria-hidden":!0,className:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-raised text-dim",children:a.config.type==="local"?e(ut,{className:"size-4"}):e(ve,{className:"size-4"})}),n("span",{className:"min-w-0 flex-1",children:[e("span",{className:"block truncate text-sm font-medium text-ink",title:a.name,children:a.name}),e("span",{className:"mt-0.5 block truncate font-mono text-xs text-dim",title:de(a.config),children:de(a.config)})]}),e("span",{className:v("control.badge","shrink-0 text-[11px] text-dim"),children:ge(a.scope)}),e(he,{info:a})]}),!N&&e("span",{className:"relative flex size-10 shrink-0 items-center justify-center",children:e("input",{type:"checkbox","aria-label":`启用服务器 ${a.name}`,className:Ne,disabled:_||C,checked:!T,onChange:(D)=>H(a,D.target.checked)})})]},a.name)})})})]}),B&&!W&&e(we,{connection:t,info:B,toggling:_,onToggle:(a)=>H(B,a),projectID:x===Y?void 0:x,onClose:()=>K(void 0),onEdit:()=>S({info:B}),onChanged:(a)=>a?E((T)=>T?.map((N)=>N.name===a.name?a:N)):L()},`${B.projectID}:${B.name}`),W&&e(Se,{connection:t,projectID:x===Y?void 0:x,existing:W.info,taken:(I??[]).filter((a)=>a.scope===(x===Y?"global":"project")).map((a)=>a.name),onClose:()=>S(void 0),onSaved:()=>{S(void 0),L()}})]})}export{at as McpSection};
|
package/web/chunk-a4tdrxdh.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ii}from"./chunk-xjc5fmcr.js";export{Ii as createArchitectureServices};
|
package/web/chunk-a9fvsyc1.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-e763h2px.js";import"./chunk-4rwwtfnd.js";import"./chunk-36dc7tcg.js";import{ao}from"./chunk-jqqbkdtw.js";export{ao as render};
|
package/web/chunk-apvbvg4d.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Di}from"./chunk-xjc5fmcr.js";export{Di as createEventModelingServices};
|
package/web/chunk-bkxcc7v5.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{tr}from"./chunk-xjc5fmcr.js";export{tr as createRailroadServices};
|
package/web/chunk-bve354k7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g,o,i,r,f,e,n,y,tn,ne}from"./chunk-kahab58k.js";import{Nr,Pr,Or}from"./chunk-f79ajymt.js";var Z={global:"全局",project:"项目",custom:"自定义",builtin:"内置"};function F({skill:s,issue:N,connection:S}){let{Button:E,CopyButton:d,style:v,useTheme:w}=y();w();let[p,L]=r(),[P,x]=r(),[D,z]=r(0);return o(()=>{let c=!0;x(void 0),L(void 0);let m=new URLSearchParams;if(s.projectID)m.set("projectID",s.projectID);if(s.location)m.set("location",s.location);let I=m.toString()?`?${m.toString()}`:"";return Promise.all([S.request(`/api/skills/${encodeURIComponent(s.name)}/content${I}`),S.request(`/api/skills/${encodeURIComponent(s.name)}/files${I}`)]).then(([b,O])=>{if(c)L({text:b.text,files:O.files})}).catch((b)=>{if(c)x(b instanceof Error?b.message:"读取失败")}),()=>{c=!1}},[S,s.name,s.projectID,s.location,D]),n("div",{className:"min-w-0 space-y-5 text-sm text-ink",children:[e("p",{className:"whitespace-pre-wrap break-words [overflow-wrap:anywhere] text-dim",children:s.description||"暂无描述"}),n("div",{children:[n("p",{className:"break-all text-xs text-dim",children:[Z[s.scope],s.projectName?` · ${s.projectName}`:""]}),n("div",{className:"mt-1 flex min-w-0 items-center gap-2",children:[e("code",{className:v("markdown.inlineCode","min-w-0 flex-1 break-all text-xs"),children:s.location}),e(d,{text:s.location,label:"复制完整路径",className:"size-10"})]})]}),n("ul",{className:"space-y-1 break-words text-xs text-dim",children:[e("li",{children:"启用状态按名称生效,影响所有同名技能的新会话可用性。"}),s.disableModelInvocation&&e("li",{children:"仅手动:可由用户调用,不向模型自动提供。"}),s.platforms&&n("li",{children:["平台限制:",s.platforms.join("、")]}),s.disabled&&e("li",{children:"已禁用:不会提供给新会话。"}),N?.overriddenBy&&n("li",{className:"break-all",children:["被覆盖:同名技能优先使用 ",N.overriddenBy]})]}),s.commands?.length?n("div",{children:[e("h3",{className:"font-medium",children:"bin 命令"}),e("p",{className:"mt-1 text-xs text-dim",children:"技能目录中的可执行命令。"}),e("ul",{className:"mt-2 space-y-1 font-mono text-xs",children:s.commands.map((c)=>e("li",{className:"break-all",children:c},c))})]}):null,P?n("div",{role:"alert",className:"space-y-2",children:[n("p",{className:"break-words text-danger",children:["读取失败:",P]}),e(E,{className:"h-10",onClick:()=>z(D+1),children:"重试"})]}):!p?e("p",{role:"status",className:"text-dim",children:"正在读取文件…"}):n(f,{children:[n("section",{children:[n("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e("h3",{className:"font-medium",children:"SKILL.md 原文"}),e(d,{text:p.text,label:"复制 SKILL.md 原文",className:"size-10"})]}),n("p",{className:"mb-2 text-xs text-faint",children:[p.text.length.toLocaleString()," 字符 · 约 ",Math.ceil(p.text.length/4).toLocaleString()," ","tokens(估算)"]}),e("pre",{className:v("surface.subtle",v("chat.toolOutput"),"rounded-lg bg-raised p-3 text-xs leading-5 break-all"),children:p.text})]}),n("section",{children:[n("h3",{className:"font-medium",children:["目录文件 · ",p.files.length,p.files.length===200?"(最多显示 200 个)":""]}),e("ul",{className:"mt-2 space-y-1 font-mono text-xs text-dim",children:p.files.map((c)=>e("li",{className:"break-all",children:c},c))})]})]})]})}var A="all",G="non-project",ee="size-4 cursor-pointer rounded border-line text-accent accent-accent focus-visible:outline-2 focus-visible:outline-accent";function me({connection:s}){let{Button:N,Select:S,Dialog:E,style:d,useTheme:v}=y();v();let[w,p]=r([]),[L,P]=r([]),[x,D]=r(A),[z,c]=r([]),[m,I]=r(),[b,O]=r(""),[k,B]=r(),[h,T]=r(!0),[K,R]=r(),[W,H]=r(),u=i(0),j=i(!1),C=g(async(t=!1)=>{let l=++u.current;j.current=!0,T(!0);try{if(t)await s.request("/api/skills/rescan",{method:"POST"});let[a,U,q]=await Promise.all([s.request("/api/skills?all=true"),s.request("/api/skills/settings"),s.request("/api/projects")]);if(l!==u.current)return;p(a.skills),P(q),c(a.issues),I(U),H(new Date),R(void 0)}catch(a){if(l===u.current)R(a instanceof Error?a.message:"读取失败")}finally{if(l===u.current)j.current=!1,T(!1)}},[s]);o(()=>(C(),()=>{u.current++}),[C]);async function Q(t){if(j.current)return;j.current=!0;let l=++u.current;T(!0);try{let a=await s.request("/api/skills/settings",{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)});if(l!==u.current)return;I(a),await C()}catch(a){if(l!==u.current)return;R(a instanceof Error?a.message:"保存设置失败"),j.current=!1,T(!1)}}let V=b.trim().toLocaleLowerCase(),J=x===A?w:w.filter((t)=>{if(t.scope!=="project")return!0;return x!==G&&t.projectID===x}),M=J.filter((t)=>`${t.name} ${t.description??""}`.toLocaleLowerCase().includes(V)),_=(t)=>z.find((l)=>l.kind==="overridden"&&(l.path==="<built-in>"?t.scope==="builtin":l.path.replace(/\\/g,"/")===`${t.location.replace(/\\/g,"/")}/SKILL.md`));return n("div",{className:"min-w-0 space-y-6",children:[n("section",{className:"min-w-0",children:[n("div",{className:"mb-2.5 flex flex-wrap items-end justify-between gap-3 px-0.5",children:[n("div",{className:"min-w-0 flex-1 basis-48",children:[e("h2",{className:d("settings.groupTitle"),children:"技能"}),e("p",{"aria-live":"polite",className:d("settings.groupDesc"),children:W&&`找到 ${J.length} 个 · ${W.toLocaleTimeString("zh-CN",{hour12:!1})}`})]}),n("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[e(S,{value:x,disabled:h,onValueChange:(t)=>{B(void 0),D(t)},groups:[{options:[{value:A,label:"全部来源"},{value:G,label:"非项目技能"}]},...Nr(L)],className:"w-44"}),n(N,{variant:"ghost",disabled:h,onClick:()=>C(!0),className:"h-9 px-2.5 text-xs",children:[e(ne,{className:`size-3.5 ${h?"animate-spin":""}`}),e("span",{className:"ml-1",children:"重新扫描"})]})]})]}),K&&n("div",{role:"alert",className:"mb-3 flex flex-wrap items-center gap-2 rounded-xl border border-line p-3",children:[n("p",{className:"min-w-0 flex-1 break-words text-sm text-danger",children:["无法更新技能:",K]}),e(N,{disabled:h,onClick:()=>C(),children:"重试"})]}),e(Pr,{label:"搜索技能",placeholder:"搜索技能",value:b,onChange:O}),e("div",{className:d("settings.groupBox"),children:h&&!w.length?e(Or,{}):M.length===0?e("p",{className:"p-4 text-sm text-dim",children:"没有找到匹配的技能"}):e("ul",{className:"divide-y divide-line",children:M.map((t)=>{let l=_(t),a=t.disabled;return n("li",{className:`flex min-w-0 items-center justify-between gap-3 px-4 py-2.5 transition-colors hover:bg-raised/40 ${a?"opacity-55":""}`,children:[n("button",{type:"button",className:"group flex min-h-12 min-w-0 flex-1 cursor-pointer items-center gap-3 py-1 text-left focus-visible:outline-2 focus-visible:outline-accent","aria-label":`查看技能 ${t.name}`,onClick:()=>B(t),children:[n("span",{className:"min-w-0 flex-1",children:[n("span",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[e("span",{className:"truncate text-sm font-medium text-ink",title:t.name,children:t.name}),l&&n("span",{className:"flex shrink-0 items-center gap-1 text-xs text-warning",children:[e(tn,{className:"size-3.5"}),"被覆盖"]})]}),t.description&&e("span",{className:"mt-0.5 block truncate text-xs text-dim",title:t.description,children:t.description})]}),e("span",{className:d("control.badge","shrink-0 text-[11px] text-dim"),children:t.scope==="project"?"项目":t.scope==="builtin"?"built-in":"全局"})]}),e("span",{className:"relative flex size-10 shrink-0 items-center justify-center",children:e("input",{type:"checkbox","aria-label":`启用技能 ${t.name}`,className:ee,disabled:h,checked:!a,onChange:(U)=>{if(!m)return;let q=m.disabled??[],X=U.target.checked?q.filter((Y)=>Y!==t.name):[...q,t.name];Q({...m,disabled:X})}})})]},`${t.scope}:${t.projectID??""}:${t.name}`)})})})]}),e(E,{open:Boolean(k),onOpenChange:(t)=>{if(!t)B(void 0)},title:k?.name??"",size:"lg",footer:e("div",{className:"flex w-full justify-end",children:e(N,{variant:"primary",onClick:()=>B(void 0),children:"关闭"})}),children:k&&e(F,{skill:k,issue:_(k),connection:s})})]})}export{me as SkillsSection};
|
package/web/chunk-cwpxakby.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{li}from"./chunk-drchr3yn.js";export{li as default};
|
package/web/chunk-jd7npyv9.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{t}from"./chunk-e763h2px.js";import"./chunk-8csw0mvf.js";import{Mi,Ni}from"./chunk-2f2agfpj.js";import"./chunk-m24yb8md.js";import"./chunk-3d3wnh8a.js";import"./chunk-tpdcrrf1.js";import"./chunk-n33753da.js";var o=t((r)=>`${Mi(r)}
|
|
2
|
-
.swimlane.cluster:not([data-color-id]) rect {
|
|
3
|
-
stroke: ${r.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,"getStyles"),m=o,D=Ni({styles:m});export{D as diagram};
|
package/web/chunk-jzz5htxp.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ei}from"./chunk-xjc5fmcr.js";export{Ei as createInfoServices};
|
package/web/chunk-ka3q31t1.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{cn}from"./chunk-ydtrc1ay.js";export{cn as default};
|