chainlesschain 0.162.26 → 0.162.27
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 +2 -2
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-DEhhAYYj.js → AIOps-D67bnWOm.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DEyfUz5F.js → ActionButton-z7o1N942.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-D1rjS61W.js → Analytics-ygwetD7a.js} +1 -1
- package/src/assets/web-panel/assets/{AppLayout-CptFJPy6.js → AppLayout-DKIKC0vr.js} +2 -2
- package/src/assets/web-panel/assets/{Audit-BG6KQUHY.js → Audit-RfvwANd0.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-D2ikQT54.js → Backup-CLC0Npju.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BG_d8yMt.js → BaseInput-Cy955ldQ.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-CcHmGkLY.js → Chat-Di1G3WpZ.js} +1 -1
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-DIXrOHbn.js → ChatBubbleRenderer-D2CwVV3N.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-Bx2h6vT3.js → Checkbox-mM6T49x7.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-o14zzfuK.js → Codegen-CFRknQ28.js} +1 -1
- package/src/assets/web-panel/assets/{Col-HlZjxy7V.js → Col-Md7VPq32.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DXxMflr2.js → Community-B75271cm.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DbswbBjd.js → Compact-BOrAa1JM.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-C7Q4Da2p.js → Compliance-CqgTFpLC.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BLImywOe.js → Cowork-Bvdzx2lF.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-DpXu1G4m.js → Cron-BP3ZLMIx.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-C4qokeJu.js → Crosschain-Dy8IWecD.js} +1 -1
- package/src/assets/web-panel/assets/{DID-C0BjPiij.js → DID-DxnpBszy.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-CsfDXwPl.js → Dashboard-h8TY-9dT.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CiwMUKrx.js → Dropdown-CfIh_9pn.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DX7xfm5a.js → EmailListRenderer-egkHFDB9.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CA4Ibsg0.js → Federation-iXsC9ljf.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DvM0lU-7.js → FormItemContext-D16LYrK1.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-REjsnTHA.js → GenericCardRenderer-B2l7qvIp.js} +1 -1
- package/src/assets/web-panel/assets/{Git-ZhnSDQGH.js → Git-DshuXpeI.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-BL8iUV_g.js → Governance-BzgoQvxX.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BONrgLk-.js → Inference-CMikYc6i.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-q9SAz7h7.js → KnowledgeGraph-DAP_uKkx.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-eHfEFnEZ.js → Logs-Zax7aDPt.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-DzwuVedm.js → Marketplace-DC8_c3hX.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BRoLIeq5.js → McpTools-CvpCNH6E.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-DjvAa1Ce.js → Memory-BVgvCyNB.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-CGTanjsT.js → MobileBridge-BvffJp-I.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-cTccXHwN.js → MobileProjects-BBEmZ56X.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-CNUe29wS.js → Mtc-D4Lg-E10.js} +1 -1
- package/src/assets/web-panel/assets/{MtcAudit-COk24mdH.js → MtcAudit-BpuX4w67.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-CFq2j0BU.js → Multisig-CclH6FTt.js} +1 -1
- package/src/assets/web-panel/assets/{NLProgramming-dfRr-FGW.js → NLProgramming-DPBSg0ot.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-iM4aoXiw.js → Notes-CapzFL8Y.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-CeVJ-942.js → NotificationSettings-Fxts3vW8.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-zQ5jvUZI.js → OrderTableRenderer-DexmnSf8.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-CTSWyMGT.js → Organization-Cx9wnh2C.js} +1 -1
- package/src/assets/web-panel/assets/{Overflow---n60sAp.js → Overflow-uNU3Jy_O.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-BCQurpAB.js → P2P-DZqGX3zP.js} +1 -1
- package/src/assets/web-panel/assets/{PdhVaultBrowser-C5L1qAc0.js → PdhVaultBrowser-BbXlJUmU.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-I8sgLLE5.js → Permissions-tSlqIXRk.js} +1 -1
- package/src/assets/web-panel/assets/{PersonalDataHub-CEUfFRCj.js → PersonalDataHub-DdPngiX0.js} +1 -1
- package/src/assets/web-panel/assets/{Pipeline-BTBjJaRd.js → Pipeline-G-YXvU25.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-aCs44rpW.js → Privacy-BIDsJhkC.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DZ2iIlbN.js → ProjectInit-DTGzvgQ9.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-oYUtNgHP.js → ProjectSettings-8QjihLTL.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-FonFg0ie.js → Projects-D7S7x7R1.js} +1 -1
- package/src/assets/web-panel/assets/Providers-BNI-WkmA.css +1 -0
- package/src/assets/web-panel/assets/Providers-DpTXneeZ.js +1 -0
- package/src/assets/web-panel/assets/{QuickAsk-BHd6UZ1A.js → QuickAsk-C83JwW8d.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BkzGGuq-.js → Recommend-PO0TXid1.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-Do7cPr9u.js → Reputation-pwXhN9Lv.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D_sR3MmD.js → Row-829tJQ3D.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-pWSbZ06l.js → RssFeed-Btnw67Mk.js} +1 -1
- package/src/assets/web-panel/assets/{Search-BTL71JSs.js → Search-olQ94qFA.js} +1 -1
- package/src/assets/web-panel/assets/{Security-8lbNoqY6.js → Security-C_Vfuu0K.js} +1 -1
- package/src/assets/web-panel/assets/{Services-yr3QVduo.js → Services-ByfhJMDp.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-DdnY1ZTz.js → Skeleton-CWxck8Jk.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-fk24WY3D.js → Skills-yady6VUJ.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-bOXRT7wR.js → Sla-Dc_HEsj7.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DjonFUbP.js → SpeechSettings--vhH3ORV.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-C-7HTl6d.js → SyncSettings-GUPyaG2O.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-DDohfzFT.js → Tasks-Sj1OYuDS.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-C8PI_WTt.js → Templates-rdiV_eFo.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-CIvbeRkn.js → Tenant-N76bdElE.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-BuIPGugj.js → Terminal-KZ1H0ObH.js} +1 -1
- package/src/assets/web-panel/assets/{TimelineRenderer-BefCbTxN.js → TimelineRenderer-D7nI-o49.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-gGAeez46.js → Tokens-c2LL4v7q.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-C_86E2v7.js → Trigger-B57LuN-B.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Beg23C1W.js → Trust-BMmdOSoP.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign--sGSaISg.js → UkeySign-CtGUfuxi.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DIsnY6D_.js → VideoEditing-CzrCzzLF.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-a7ECYY0i.js → Wallet-Ciiwlppn.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-CsVpkUE8.js → WebAuthn-BPFoLjnF.js} +1 -1
- package/src/assets/web-panel/assets/{WorkflowEditor-BOJ4WTgl.js → WorkflowEditor-Bf8UZPRx.js} +1 -1
- package/src/assets/web-panel/assets/{chat-ezCR5ZZX.js → chat-aoVkknKT.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DSUEQ7GR.js → colors-CKv2MZMK.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-D4w3DGj_.js → compact-item-1FPS5mTP.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-B_hvu-NR.js → createContext-o2GXZ1sO.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-FY775Vpc.js → hasIn-CMm7HgH-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxMArAIk.js → index-866hrngI.js} +1 -1
- package/src/assets/web-panel/assets/{index-B9LXVosT.js → index-8AzFTShP.js} +1 -1
- package/src/assets/web-panel/assets/index-BHtt98Qo.js +1 -0
- package/src/assets/web-panel/assets/{index-CSbCIyga.js → index-BQcTgRAZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CcvzscCg.js → index-BSqFVnSI.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMnGj-Ui.js → index-BUWd4FFK.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cug_yoee.js → index-Bb7YRgoc.js} +1 -1
- package/src/assets/web-panel/assets/{index-DfU6zsU8.js → index-BbJDxap_.js} +1 -1
- package/src/assets/web-panel/assets/{index-wWVM6ENX.js → index-BwA5hOgO.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAa3LSKI.js → index-CFgWbJuM.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dz8-7APi.js → index-CXDN0kh7.js} +1 -1
- package/src/assets/web-panel/assets/{index-mlTTTHla.js → index-CXHs9New.js} +1 -1
- package/src/assets/web-panel/assets/{index-gAtp_KkQ.js → index-CalorQK0.js} +1 -1
- package/src/assets/web-panel/assets/{index-d0HXotWE.js → index-CcfXX0ID.js} +1 -1
- package/src/assets/web-panel/assets/{index-Enin7rzK.js → index-CdDX6sEY.js} +1 -1
- package/src/assets/web-panel/assets/{index-CV-F9a_X.js → index-Ch-sPaT4.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUNYcWEF.js → index-Chh-oVTw.js} +1 -1
- package/src/assets/web-panel/assets/{index-DqxLCUYa.js → index-Cr1ZwF59.js} +1 -1
- package/src/assets/web-panel/assets/{index-DM77-xyl.js → index-Cr2EOK21.js} +1 -1
- package/src/assets/web-panel/assets/{index-BaZmrJ6j.js → index-Crp4UcP-.js} +1 -1
- package/src/assets/web-panel/assets/index-Cul_OH-A.js +1 -0
- package/src/assets/web-panel/assets/{index-CNUQnJsg.js → index-D1QEfzq_.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdzLJsac.js → index-D3aMAQEQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtztktoP.js → index-D3bKIme7.js} +1 -1
- package/src/assets/web-panel/assets/{index-BSp1hSN8.js → index-DCxs8O-B.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZGJo2fz1.js → index-DDP25Jlo.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGdchdRx.js → index-DT76REiB.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGrm33US.js → index-DZ747YY7.js} +1 -1
- package/src/assets/web-panel/assets/{index-DqsQUPY7.js → index-De4hAcPZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-B3lbDu2b.js → index-DoVMBKvC.js} +1 -1
- package/src/assets/web-panel/assets/{index-C0wDzrUK.js → index-JP5LGd1K.js} +3 -3
- package/src/assets/web-panel/assets/{index-BzME19Nh.js → index-OiF8vib7.js} +1 -1
- package/src/assets/web-panel/assets/{index-S6A76pR1.js → index-Y_UOzu30.js} +1 -1
- package/src/assets/web-panel/assets/{index-BHPD-_s2.js → index-bJ5UBvQQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CLp4V3Tb.js → index-dXE5uCaT.js} +1 -1
- package/src/assets/web-panel/assets/{index-1ki6aTIz.js → index-fyC4Vx7E.js} +1 -1
- package/src/assets/web-panel/assets/{index-CE3vDzJj.js → index-g4LWpdR7.js} +1 -1
- package/src/assets/web-panel/assets/{index-BnvLdkR8.js → index-u3FjYN52.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6yJ0RMr.js → index-yhq2Pttf.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-BoLcNBz9.js → initDefaultProps-Co0jgVso.js} +1 -1
- package/src/assets/web-panel/assets/{motion-ouRvP3eO.js → motion-Zw-nUuCZ.js} +1 -1
- package/src/assets/web-panel/assets/{move-BBITvaOV.js → move-O_Pya0SD.js} +1 -1
- package/src/assets/web-panel/assets/{omit-D8Yxdvbb.js → omit-bqQYnuYR.js} +1 -1
- package/src/assets/web-panel/assets/parsers-UEvh_ShA.js +4 -0
- package/src/assets/web-panel/assets/{pickAttrs-BIUy7mER.js → pickAttrs-PeesUh3N.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CrNWpNSF.js → placementArrow-DoUJMHry.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-aHLPN464.js → responsiveObserve-QHPYy6hK.js} +1 -1
- package/src/assets/web-panel/assets/{slide-2qNtePjk.js → slide-H_RDRwbZ.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-FAF3iR3R.js → statusUtils-RuUT_noY.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BNFTkrbl.js → styleChecker-DuWlOmft.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BgdPlW7E.js → useFlexGapSupport-CJmU3crw.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-q1QvAh3f.js → useFs-CBYaEAuH.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DEZ6cY8C.js → usePersonalDataHub-B0x06BwX.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-vp6H-NL_.js → vnode-B2BMGDRL.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-UatfJMw4.js → zoom-D_OEfpnp.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/__tests__/hub-ask.test.js +104 -1
- package/src/commands/hub.js +70 -1
- package/src/lib/personal-data-hub-wiring.js +96 -0
- package/src/assets/web-panel/assets/Providers-BEakqcO5.css +0 -1
- package/src/assets/web-panel/assets/Providers-CRmOuabY.js +0 -2
- package/src/assets/web-panel/assets/index-CzkEIn_T.js +0 -1
- package/src/assets/web-panel/assets/index-D2PcvXPP.js +0 -1
- package/src/assets/web-panel/assets/parsers-DftYMnlk.js +0 -3
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{E as Z,r as P,o as H,M as N,R as n,c as s,N as l,u as g,Q as K,S as B,F as X,Y as ee,K as u,a as te,L as y,O as x,P as M,Z as oe}from"./vendor-DhFY8mDK.js";import{u as A,_ as ae,d as _}from"./index-C0wDzrUK.js";import{a as se,b as le}from"./parsers-DftYMnlk.js";import{R as q}from"./icons-AILO5ZcK.js";const re=Z("providers",()=>{const O=P(!1),i=P(null),m=P([]),T=P([]),c=P(null);async function t(){const v=A();O.value=!0;try{const{output:k}=await v.execute("llm providers",15e3);m.value=se(k);const b=m.value.find(C=>C.active);b&&(c.value=b.name);const{output:w}=await v.execute("llm models",15e3);T.value=le(w)}catch(k){console.error("Failed to load providers:",k)}finally{O.value=!1}}async function d(v){await A().execute(`llm switch ${v}`,1e4),m.value.forEach(b=>b.active=b.name===v),c.value=v}async function F(v){const k=A();i.value=v;try{const{output:b,exitCode:w}=await k.execute("llm test",3e4),C=m.value.find(S=>S.name===v);return C&&(C.status=w===0?"ok":"error"),w===0}catch{const b=m.value.find(w=>w.name===v);return b&&(b.status="error"),!1}finally{i.value=null}}return{loading:O,testing:i,providers:m,localModels:T,activeProvider:c,loadProviders:t,switchProvider:d,testProvider:F}}),ne={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ie={key:1,style:{"text-align":"center",padding:"60px"}},de={key:2},ue={class:"providers-grid"},ce={style:{display:"flex","align-items":"center",gap:"12px","margin-bottom":"12px"}},pe={style:{"font-size":"24px"}},me={style:{flex:"1"}},ve={style:{color:"#e0e0e0","font-weight":"500"}},fe={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},ge={style:{display:"flex",gap:"8px","justify-content":"flex-end"}},ye={key:0,style:{"margin-top":"24px"}},be={style:{color:"#ccc","font-family":"monospace","font-size":"13px"}},xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"16px"}},_e={class:"config-grid"},ke={style:{display:"flex","align-items":"center",gap:"12px"}},we={style:{display:"flex",gap:"12px","justify-content":"flex-end","margin-top":"16px"}},he={__name:"Providers",setup(O){const i=re(),m=A(),T=P(!1),c=P(!1),t=te({provider:void 0,model:"",apiKey:"",baseUrl:"",temperature:.7,maxTokens:4096});let d={};const F=["ollama","openai","anthropic","volcengine","deepseek","gemini","groq","mistral","custom","zhipu"],v={ollama:"Ollama(本地)",openai:"OpenAI",anthropic:"Anthropic",volcengine:"火山引擎(豆包)",deepseek:"DeepSeek",gemini:"Google Gemini",groq:"Groq",mistral:"Mistral",custom:"Custom(自定义)",zhipu:"智谱 AI"},k=F.map(a=>({value:a,label:v[a]||a}));async function b(a){try{await i.switchProvider(a),_.success(`已切换到 ${a}`)}catch(e){_.error(`切换失败: ${e.message}`)}}async function w(a){await i.testProvider(a)?_.success(`${a} 连接正常`):_.warning(`${a} 连接失败,请检查配置`)}function C(a){const e={};if(!a)return e;try{const U=JSON.parse(a.trim()),p=U.llm||U;return p.provider&&(e.provider=p.provider),p.model&&(e.model=p.model),p.apiKey&&(e.apiKey=p.apiKey),p.baseUrl&&(e.baseUrl=p.baseUrl),p.temperature!==void 0&&(e.temperature=Number(p.temperature)),p.maxTokens!==void 0&&(e.maxTokens=Number(p.maxTokens)),e}catch{}const r=a.split(`
|
|
2
|
-
`);for(const U of r){const z=U.trim().match(/^(?:llm\.)?(\w+)\s*[=:]\s*(.+)$/i);if(!z)continue;const[,I,j]=z,f=j.trim(),h=I.toLowerCase();if(h==="provider"&&f)e.provider=f;else if(h==="model"&&f)e.model=f;else if(h==="apikey"&&f)f.includes("***")||(e.apiKey=f);else if(h==="baseurl")e.baseUrl=f;else if(h==="temperature"){const $=parseFloat(f);isNaN($)||(e.temperature=$)}else if(h==="maxtokens"){const $=parseInt(f,10);isNaN($)||(e.maxTokens=$)}}return e}async function S(){T.value=!0;try{const{output:a}=await m.execute("config list",15e3),e=C(a);e.provider&&(t.provider=e.provider),e.model&&(t.model=e.model),e.apiKey&&(t.apiKey=e.apiKey),e.baseUrl&&(t.baseUrl=e.baseUrl),e.temperature!==void 0&&(t.temperature=e.temperature),e.maxTokens!==void 0&&(t.maxTokens=e.maxTokens),d={...t},_.success("配置已加载")}catch(a){_.error(`加载配置失败: ${a.message}`)}finally{T.value=!1}}async function E(){c.value=!0;const a=[],e=[];try{if(t.provider&&t.provider!==d.provider)try{await m.execute(`config set llm.provider ${t.provider}`,1e4),e.push("provider")}catch(r){a.push(`provider: ${r.message}`)}if(t.model&&t.model!==d.model)try{await m.execute(`config set llm.model ${t.model}`,1e4),e.push("model")}catch(r){a.push(`model: ${r.message}`)}if(t.apiKey&&t.apiKey!==d.apiKey)try{await m.execute(`config set llm.apiKey ${t.apiKey}`,1e4),e.push("apiKey")}catch(r){a.push(`apiKey: ${r.message}`)}if(t.baseUrl!==void 0&&t.baseUrl!==d.baseUrl)try{await m.execute(`config set llm.baseUrl ${t.baseUrl}`,1e4),e.push("baseUrl")}catch(r){a.push(`baseUrl: ${r.message}`)}if(t.temperature!==d.temperature)try{await m.execute(`config set llm.temperature ${t.temperature}`,1e4),e.push("temperature")}catch(r){a.push(`temperature: ${r.message}`)}if(t.maxTokens!==d.maxTokens)try{await m.execute(`config set llm.maxTokens ${t.maxTokens}`,1e4),e.push("maxTokens")}catch(r){a.push(`maxTokens: ${r.message}`)}a.length>0?_.warning(`部分配置保存失败: ${a.join("; ")}`):e.length>0?(_.success(`已保存 ${e.length} 项配置`),d={...t},e.includes("provider")&&i.loadProviders()):_.info("没有检测到配置变更")}catch(r){_.error(`保存配置失败: ${r.message}`)}finally{c.value=!1}}function G(){t.provider=d.provider||void 0,t.model=d.model||"",t.apiKey=d.apiKey||"",t.baseUrl=d.baseUrl||"",t.temperature=d.temperature??.7,t.maxTokens=d.maxTokens??4096}return H(()=>{i.loadProviders(),S()}),(a,e)=>{const r=u("a-button"),U=u("a-alert"),p=u("a-spin"),z=u("a-tag"),I=u("a-badge"),j=u("a-card"),f=u("a-list-item"),h=u("a-list"),$=u("a-divider"),D=u("a-select"),L=u("a-form-item"),R=u("a-input"),J=u("a-input-password"),Q=u("a-slider"),V=u("a-input-number"),W=u("a-form");return y(),N("div",null,[n("div",ne,[e[9]||(e[9]=n("div",null,[n("h2",{class:"page-title"},"LLM 配置"),n("p",{class:"page-sub"},"管理 AI 服务提供商")],-1)),s(r,{type:"primary",ghost:"",loading:g(i).loading,onClick:e[0]||(e[0]=o=>g(i).loadProviders())},{icon:l(()=>[s(g(q))]),default:l(()=>[e[8]||(e[8]=x(" 刷新 ",-1))]),_:1},8,["loading"])]),g(i).activeProvider?(y(),K(U,{key:0,type:"success",style:{"margin-bottom":"20px",background:"rgba(41,162,112,.08)","border-color":"rgba(41,162,112,.3)"},"show-icon":""},{message:l(()=>[n("span",null,[e[10]||(e[10]=x("当前激活:",-1)),n("strong",null,M(g(i).activeProvider),1)])]),_:1})):B("",!0),g(i).loading?(y(),N("div",ie,[s(p,{size:"large"}),e[11]||(e[11]=n("div",{style:{color:"var(--text-muted)","margin-top":"12px"}},"加载 LLM 信息中...",-1))])):(y(),N("div",de,[n("div",ue,[(y(!0),N(X,null,ee(g(i).providers,o=>(y(),K(j,{key:o.name,class:oe(["provider-card",{active:o.active}]),style:{background:"var(--bg-card)"},size:"small"},{default:l(()=>[n("div",ce,[n("span",pe,M(o.icon),1),n("div",me,[n("div",ve,M(o.label),1),n("div",fe,M(o.name),1)]),n("div",null,[o.active?(y(),K(z,{key:0,color:"green"},{default:l(()=>[...e[12]||(e[12]=[x("活跃",-1)])]),_:1})):o.status==="ok"?(y(),K(I,{key:1,status:"success",text:""})):o.status==="error"?(y(),K(I,{key:2,status:"error",text:""})):B("",!0)])]),n("div",ge,[s(r,{size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"},loading:g(i).testing===o.name,onClick:Y=>w(o.name)},{default:l(()=>[...e[13]||(e[13]=[x(" 测试 ",-1)])]),_:1},8,["loading","onClick"]),o.active?(y(),K(z,{key:1,color:"green",style:{margin:"0","line-height":"24px"}},{default:l(()=>[...e[15]||(e[15]=[x("当前",-1)])]),_:1})):(y(),K(r,{key:0,size:"small",type:"primary",ghost:"",onClick:Y=>b(o.name)},{default:l(()=>[...e[14]||(e[14]=[x(" 切换 ",-1)])]),_:1},8,["onClick"]))])]),_:2},1032,["class"]))),128))]),g(i).localModels.length?(y(),N("div",ye,[e[16]||(e[16]=n("h3",{style:{color:"#ccc","font-size":"15px","margin-bottom":"12px"}}," 本地模型(Ollama) ",-1)),s(h,{"data-source":g(i).localModels,size:"small",style:{background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)"}},{renderItem:l(({item:o})=>[s(f,{style:{padding:"10px 16px","border-color":"#252525"}},{actions:l(()=>[s(z,{color:"cyan",style:{"font-size":"10px"}},{default:l(()=>[x(M(o.size||"local"),1)]),_:2},1024)]),default:l(()=>[n("span",be,M(o.name),1)]),_:2},1024)]),_:1},8,["data-source"])])):B("",!0),s($,{style:{"border-color":"var(--border-color)",margin:"32px 0 24px"}}),n("div",xe,[e[18]||(e[18]=n("h3",{class:"section-title"},"LLM 参数设置",-1)),s(r,{size:"small",loading:T.value,onClick:S,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:l(()=>[s(g(q))]),default:l(()=>[e[17]||(e[17]=x(" 加载配置 ",-1))]),_:1},8,["loading"])]),s(j,{class:"config-card",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[s(W,{model:t,layout:"vertical",class:"config-form"},{default:l(()=>[n("div",_e,[s(L,{label:"Provider(提供商)"},{default:l(()=>[s(D,{value:t.provider,"onUpdate:value":e[1]||(e[1]=o=>t.provider=o),placeholder:"选择 LLM 提供商",options:g(k),style:{width:"100%"},disabled:c.value},null,8,["value","options","disabled"])]),_:1}),s(L,{label:"Model(模型名称)"},{default:l(()=>[s(R,{value:t.model,"onUpdate:value":e[2]||(e[2]=o=>t.model=o),placeholder:"例如 doubao-seed-1-6-251015","allow-clear":"",disabled:c.value},null,8,["value","disabled"])]),_:1}),s(L,{label:"API Key"},{default:l(()=>[s(J,{value:t.apiKey,"onUpdate:value":e[3]||(e[3]=o=>t.apiKey=o),placeholder:"输入 API Key",disabled:c.value},null,8,["value","disabled"])]),_:1}),s(L,{label:"Base URL"},{default:l(()=>[s(R,{value:t.baseUrl,"onUpdate:value":e[4]||(e[4]=o=>t.baseUrl=o),placeholder:"例如 https://ark.cn-beijing.volces.com/api/v3","allow-clear":"",disabled:c.value},null,8,["value","disabled"])]),_:1}),s(L,{label:"Temperature(温度)"},{default:l(()=>[n("div",ke,[s(Q,{value:t.temperature,"onUpdate:value":e[5]||(e[5]=o=>t.temperature=o),min:0,max:2,step:.1,style:{flex:"1"},disabled:c.value},null,8,["value","disabled"]),s(V,{value:t.temperature,"onUpdate:value":e[6]||(e[6]=o=>t.temperature=o),min:0,max:2,step:.1,precision:1,style:{width:"80px"},disabled:c.value},null,8,["value","disabled"])])]),_:1}),s(L,{label:"Max Tokens(最大输出长度)"},{default:l(()=>[s(V,{value:t.maxTokens,"onUpdate:value":e[7]||(e[7]=o=>t.maxTokens=o),min:256,max:128e3,step:256,style:{width:"100%"},placeholder:"4096",disabled:c.value},null,8,["value","disabled"])]),_:1})]),n("div",we,[s(r,{onClick:G,disabled:c.value,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{default:l(()=>[...e[19]||(e[19]=[x(" 重置 ",-1)])]),_:1},8,["disabled"]),s(r,{type:"primary",loading:c.value,onClick:E},{default:l(()=>[...e[20]||(e[20]=[x(" 保存配置 ",-1)])]),_:1},8,["loading"])])]),_:1},8,["model"])]),_:1})]))])}}},Te=ae(he,[["__scopeId","data-v-38d68389"]]);export{Te as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-HlZjxy7V.js";import{S as t}from"./index-C0wDzrUK.js";import"./index-BHPD-_s2.js";import"./vendor-DhFY8mDK.js";import"./icons-AILO5ZcK.js";const s=t(o);export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-D_sR3MmD.js";import{S as t}from"./index-C0wDzrUK.js";import"./responsiveObserve-aHLPN464.js";import"./vendor-DhFY8mDK.js";import"./useFlexGapSupport-BgdPlW7E.js";import"./styleChecker-BNFTkrbl.js";import"./index-BHPD-_s2.js";import"./icons-AILO5ZcK.js";const l=t(o);export{l as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
function p(a){const e=a.split(`
|
|
2
|
-
`),n=[];let i="built-in";for(const l of e){const t=l.trim();if(!t||t.startsWith("─")||t.startsWith("="))continue;const r=t.match(/^([a-z][a-z0-9-]+)\s+\(\d+\)$/);if(r){i=r[1];continue}const s=t.match(/^[●•]\s+([a-z][a-z0-9-]+)\s+(.+)$/);if(s){let c=s[2].trim();const m=c.match(/\s+\[(bundled|project|managed|workspace|marketplace)\]$/);m&&(c=c.slice(0,-m[0].length).trim());const u=i.includes("agent")?"agent":i.includes("llm")?"llm-query":i==="cli-direct"||i.includes("cli")?"cli-direct":"built-in";n.push({name:s[1],description:c,category:i,executionMode:u});continue}const o=t.match(/^([a-z][a-z0-9-]+)\s+[-–]\s+(.+)/)||t.match(/^([a-z][a-z0-9-]+)\s{2,}(.+)/);o&&n.push({name:o[1],description:o[2],category:i,executionMode:i.includes("agent")?"agent":i.includes("llm")?"llm-query":i.includes("cli")?"cli-direct":"built-in"})}return n}const d=[{name:"anthropic",label:"Anthropic (Claude)",icon:"🤖"},{name:"openai",label:"OpenAI (GPT)",icon:"🧠"},{name:"ollama",label:"Ollama (本地)",icon:"🦙"},{name:"deepseek",label:"DeepSeek",icon:"🔍"},{name:"gemini",label:"Google Gemini",icon:"✨"},{name:"volcengine",label:"火山引擎 (豆包)",icon:"🌋"},{name:"dashscope",label:"通义千问 (DashScope)",icon:"🌊"},{name:"kimi",label:"Kimi (月之暗面)",icon:"🌙"},{name:"minimax",label:"MiniMax (海螺AI)",icon:"🐚"},{name:"mistral",label:"Mistral AI",icon:"💨"}];function h(a){const e=[];for(const n of d)e.push({...n,configured:a.toLowerCase().includes(n.name),active:a.match(new RegExp(`\\*\\s*${n.name}`,"i"))!==null,status:"unknown"});if(!e.find(n=>n.active)){const n=a.match(/active[:\s]+(\w+)/i);if(n){const i=e.find(l=>l.name===n[1].toLowerCase());i&&(i.active=!0)}}return e}function f(a){return a.split(`
|
|
3
|
-
`).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")&&!e.startsWith("─")&&e.includes(":")).map(e=>({name:e,size:""})).slice(0,20)}export{h as a,f as b,p};
|