chainlesschain 0.162.17 → 0.162.19
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 +3 -3
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-BnOiVQsQ.js → AIOps-VbMLpnCu.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-Tw6tLfY1.js → ActionButton-BR6BrZ2w.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-Des59eT3.js → Analytics-DWN2iHDA.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-CyBXOO_H.js +3 -0
- package/src/assets/web-panel/assets/{AppLayout-BLCe1k8m.css → AppLayout-DleZFgpe.css} +1 -1
- package/src/assets/web-panel/assets/{Audit-JX1upUxG.js → Audit-Cu5a4b5S.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-ByvQLRhY.js → Backup-D0vrJYkS.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DC-h8Hd-.js → BaseInput-DnFk3wDi.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D9dJ3NKb.js → Chat-DFMa9lEz.js} +3 -3
- package/src/assets/web-panel/assets/ChatBubbleRenderer-CO908iBt.css +1 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-CpVazmEP.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-n3tD-95B.js → Checkbox-J23wKgNR.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BV9t0CmU.js → Codegen-Ca6Z4r1p.js} +1 -1
- package/src/assets/web-panel/assets/{Col-4KhPnXFB.js → Col-BZ3XsxN2.js} +1 -1
- package/src/assets/web-panel/assets/{Community-R1hZqHEr.js → Community-DhK5H5dD.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-Bo4r1Z3L.js → Compact-DjJMyddV.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-Dwywk8U2.js → Compliance-Bup3Rk9z.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DTBwVdcR.js → Cowork-BqsPMIpo.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-BrveD2Al.js → Cron-Ca69LFf-.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-C63oZCeg.js → Crosschain-mTB21YwK.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Cyfo7zh4.js → DID-C1_Eree4.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-_EOI1Ax4.js → Dashboard-L2OWv5io.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BWYHGHO3.js → Dropdown-CpqNwurh.js} +1 -1
- package/src/assets/web-panel/assets/EmailListRenderer-CVJ1j3Ll.css +1 -0
- package/src/assets/web-panel/assets/EmailListRenderer-Mo7D9ADF.js +1 -0
- package/src/assets/web-panel/assets/{Federation-CU03AB2d.js → Federation-COTeKl2R.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DECACp9C.js → FormItemContext-0oTTQ9MI.js} +1 -1
- package/src/assets/web-panel/assets/GenericCardRenderer-DrMs3upM.js +1 -0
- package/src/assets/web-panel/assets/GenericCardRenderer-DtJFcJYl.css +1 -0
- package/src/assets/web-panel/assets/{Git-BhpPR-ck.js → Git-C6eFUBhz.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-BtpmvOHi.js → Governance-5ivL10kw.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DfPuEW02.js → Inference-DcERJUS_.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CeA_2NFe.js → KnowledgeGraph-Dm1eQ_Hv.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-C_ozF-bn.js → Logs-Cjt-JTuL.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-WgBvu6Ma.js → Marketplace-fNDRN8YJ.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-CNIz8liM.js → McpTools-kKgzl9Bb.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-DEN8NgRg.js → Memory-BdJujXCH.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-CP0rj-Fx.js → MobileBridge-lmvJfnpK.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-x3zDbPDI.js → MobileProjects-ZM-DVPhi.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-CC4PEFJV.js → Mtc-CeoaWgzU.js} +1 -1
- package/src/assets/web-panel/assets/{MtcAudit-BHB0GvyW.js → MtcAudit-CRvKTLqr.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-BUPfLbde.js → Multisig-DnzFw69O.js} +2 -2
- package/src/assets/web-panel/assets/{NLProgramming-DNOkByM8.js → NLProgramming-0xP2rtGN.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-U-RIv-kE.js → Notes-tJpp3z8e.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-B-q6tsxf.js → NotificationSettings-CRdpEoHX.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-BEH9lAIb.js +1 -0
- package/src/assets/web-panel/assets/OrderTableRenderer-BnOISpKI.css +1 -0
- package/src/assets/web-panel/assets/{Organization-DJLNuZ2_.js → Organization-Dhwy6dXT.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BxTl0aeE.js → Overflow-COwwTMb-.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-Czzalu_0.js → P2P-79YWb-cn.js} +1 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-B9ZGFpn4.css +1 -0
- package/src/assets/web-panel/assets/PdhVaultBrowser-Dhn5S3Vs.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-BBw06EGK.js → Permissions-ELRvDOlY.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-Dvaa8niQ.css → PersonalDataHub-D0ncF92t.css} +1 -1
- package/src/assets/web-panel/assets/PersonalDataHub-DIWbfS5k.js +1 -0
- package/src/assets/web-panel/assets/{Pipeline-qLLWNe2i.js → Pipeline-Dzi1zmAr.js} +1 -1
- package/src/assets/web-panel/assets/Privacy-BYzWkaRt.js +1 -0
- package/src/assets/web-panel/assets/{ProjectInit-CmJ0VPGy.js → ProjectInit-D_5DqLSS.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-D1Xm2EwO.js → ProjectSettings-DrAAYJgR.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-DLN-awqS.js → Projects-BOrF4_X8.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-D164DGWo.js → Providers-DYLWZVe4.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BRCH7WgH.js → QuickAsk-k76cZTaF.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BWZhT_-2.js → Recommend-CXM4p6RB.js} +1 -1
- package/src/assets/web-panel/assets/Reputation-DLnLpz8L.js +1 -0
- package/src/assets/web-panel/assets/{Row-BbuTB-ny.js → Row-BavvTUrL.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CLegyrrb.js → RssFeed-CtCarC8_.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Bz41pkvW.js → Search-CJcDGc1x.js} +1 -1
- package/src/assets/web-panel/assets/{Security-D4NWRpgV.js → Security-DB3GmnY9.js} +3 -3
- package/src/assets/web-panel/assets/{Services-CP_6SXST.js → Services-BWEvVHhz.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CdRO3MnV.js → Skeleton-BHbixeGV.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BmghgIL3.js → Skills-DWwIjvjl.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DjAIXxkm.js → Sla-C1Qu9o0j.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DYk-En4R.js → SpeechSettings-BiEysZg1.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-CglX98G4.js → SyncSettings-XlOLFUv2.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-BcLMTSP3.js → Tasks-BKjOcYxW.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BCs5bP8P.js → Templates-BVKjc9j-.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-B5jLtdWR.js → Tenant-C33WmSiJ.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CZKKYYaA.js → Terminal-Dl8RJZHg.js} +1 -1
- package/src/assets/web-panel/assets/TimelineRenderer-CFN36N3H.js +1 -0
- package/src/assets/web-panel/assets/TimelineRenderer-DmztdsbF.css +1 -0
- package/src/assets/web-panel/assets/{Tokens-B8aHonMu.js → Tokens-Dy2kxiCA.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-D6jDjaX1.js → Trigger-C7bt0leJ.js} +1 -1
- package/src/assets/web-panel/assets/Trust-CVKbWEMH.js +1 -0
- package/src/assets/web-panel/assets/{UkeySign-B1IDXsz6.js → UkeySign-B91QGwbs.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DHvglMzO.js → VideoEditing-C8xBqRiE.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DAUh8j_b.js → Wallet-RW2IBbpH.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-D0Y8wGZt.js → WebAuthn-CZPv5ayn.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-BqZgQo4U.js → WorkflowEditor-CFCwic4a.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CtfIYzWq.js → chat-PVfHUaHj.js} +1 -1
- package/src/assets/web-panel/assets/{colors-B6ZfKKgZ.js → colors-C4WA0-Iq.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item--HQOl9D1.js → compact-item-DQfLwjbC.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-Bf-YNOPI.js → createContext-31PSlu0j.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-D5G7UiYx.js → hasIn-Csltfg47.js} +1 -1
- package/src/assets/web-panel/assets/icons-AILO5ZcK.js +57 -0
- package/src/assets/web-panel/assets/index-3NsH3wNq.js +1 -0
- package/src/assets/web-panel/assets/{index-_ZD6hPvh.js → index-41v9Hflm.js} +1 -1
- package/src/assets/web-panel/assets/{index-B23hk7ZY.js → index-45Iyof95.js} +1 -1
- package/src/assets/web-panel/assets/{index-CcbuseEC.js → index-8IVdEMKr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVTgMzbI.js → index-B-aRUTIJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-OSlN9c4x.js → index-BCxhSOsr.js} +1 -1
- package/src/assets/web-panel/assets/{index-BrJfwd9_.js → index-BCyTEqF7.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAPj11l4.js → index-BD-K1g5z.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJlTZ7oK.js → index-BLwrQAlK.js} +1 -1
- package/src/assets/web-panel/assets/{index-ByjAzHrC.js → index-Ba6cQs-y.js} +4 -4
- package/src/assets/web-panel/assets/{index-__qol0SM.js → index-BiFRGYGH.js} +1 -1
- package/src/assets/web-panel/assets/{index-DZyNnZb9.js → index-BqOmboiA.js} +1 -1
- package/src/assets/web-panel/assets/{index-UppuQXbk.js → index-C4gzD6Ra.js} +2 -2
- package/src/assets/web-panel/assets/{index-2QuOKVo1.js → index-CArRkfYM.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWOeC8v6.js → index-CE8i90GF.js} +1 -1
- package/src/assets/web-panel/assets/{index-B75QpKcS.js → index-CEbbRpw2.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKsNidiT.js → index-CEtPU50W.js} +1 -1
- package/src/assets/web-panel/assets/{index-g_d5tOWL.js → index-CIeFJLHG.js} +1 -1
- package/src/assets/web-panel/assets/{index-ofgv0VHh.js → index-CQWE2WKS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRPGyig2.js → index-C_k_btzK.js} +1 -1
- package/src/assets/web-panel/assets/{index-xOVop383.js → index-CbpUjcEf.js} +1 -1
- package/src/assets/web-panel/assets/{index-DIYydwQc.js → index-CdQUx-5Z.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQIzU6GO.js → index-CfWk9Yzf.js} +1 -1
- package/src/assets/web-panel/assets/{index-CihsW323.js → index-Cgt2_bmM.js} +1 -1
- package/src/assets/web-panel/assets/{index-CkoQfJv0.js → index-CmzuBE2G.js} +1 -1
- package/src/assets/web-panel/assets/{index-BPvA_8ed.js → index-CpXm8DBk.js} +1 -1
- package/src/assets/web-panel/assets/{index-BtjPgDzA.js → index-DSO9eU_G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmVrKala.js → index-DUFwsCsD.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dfm65OiJ.js → index-DVHR_To_.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGG5O6Zh.js → index-DW-7sqm0.js} +1 -1
- package/src/assets/web-panel/assets/index-DWtc_qRj.js +1 -0
- package/src/assets/web-panel/assets/{index-BBSGKZ-l.js → index-DdrYhK__.js} +3 -3
- package/src/assets/web-panel/assets/{index-XwovMqXr.js → index-DfbOwhkA.js} +1 -1
- package/src/assets/web-panel/assets/{index-OY_eegoA.js → index-DpEj71nk.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ca_5Za9D.js → index-DtUcq8Nn.js} +1 -1
- package/src/assets/web-panel/assets/{index--KnB-1F0.js → index-DuZKKJDi.js} +1 -1
- package/src/assets/web-panel/assets/{index-BOzNKGtD.js → index-Dymm64KM.js} +1 -1
- package/src/assets/web-panel/assets/{index-DzvrUpDp.js → index-P9rJg2C1.js} +1 -1
- package/src/assets/web-panel/assets/{index-DqJoAOhC.js → index-nAhW-NN4.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DjUNw-1y.js → initDefaultProps-DPk1oFCk.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Cd6xXLlf.js → motion-CzQ1k8MU.js} +1 -1
- package/src/assets/web-panel/assets/{move-B_W-Y6JL.js → move-BCExaQ0x.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BCZBLb_-.js → omit-D71nF5o_.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CjDhGYLm.js → pickAttrs-pvCq8tx4.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CSC2rU9-.js → placementArrow-D8lSLg_0.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DnyswFkD.js → responsiveObserve-ZN6pVHvM.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DujNhbuH.js → slide-VHxyZhFr.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-U2lNCQiL.js → statusUtils-B0jFTTFP.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-Ch2rQftE.js → styleChecker-Bc6FRYW9.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-5XxNwjTL.js → useFlexGapSupport-D4YDiqxr.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-pv2YfF-X.js → useFs-CQgQ7iah.js} +1 -1
- package/src/assets/web-panel/assets/usePersonalDataHub-LDh_Sq7B.js +1 -0
- package/src/assets/web-panel/assets/{vnode-CU0J2mVX.js → vnode-BwPvBDfI.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-ZII_iqXl.js → zoom-r6u1_Sq8.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/commands/__tests__/hub-ask.test.js +136 -0
- package/src/commands/ask.js +110 -43
- package/src/commands/hub.js +260 -26
- package/src/constants.js +7 -0
- package/src/gateways/ws/personal-data-hub-protocol.js +151 -9
- package/src/lib/host-adb-bridge.js +430 -0
- package/src/lib/personal-data-hub-wiring.js +85 -0
- package/src/assets/web-panel/assets/AppLayout-hku5aFqc.js +0 -3
- package/src/assets/web-panel/assets/PersonalDataHub-CmTx090l.js +0 -1
- package/src/assets/web-panel/assets/Privacy-CStpViYX.js +0 -1
- package/src/assets/web-panel/assets/Reputation-DSTNi8ge.js +0 -1
- package/src/assets/web-panel/assets/Trust-DX_BvTA9.js +0 -1
- package/src/assets/web-panel/assets/icons-BOPtEWK4.js +0 -57
- package/src/assets/web-panel/assets/index-B-xjGh0B.js +0 -1
- package/src/assets/web-panel/assets/index-B9RskCJ5.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as p,B as k,D as C,P as F,F as _,G as I,h as f}from"./index-
|
|
1
|
+
import{A as p,B as k,D as C,P as F,F as _,G as I,h as f}from"./index-Ba6cQs-y.js";import{w as L}from"./raf-Deuc0E8-.js";import{b as O,f as D,d as R,q as z,o as H,w as A,n as j,e as q,c as G,s as v}from"./vendor-DhFY8mDK.js";let M=!1;try{const e=Object.defineProperty({},"passive",{get(){M=!0}});window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e)}catch{}function te(e,n,o,t){if(e&&e.addEventListener){let r=t;r===void 0&&M&&(n==="touchstart"||n==="touchmove"||n==="wheel")&&(r={passive:!1}),e.addEventListener(n,o,r)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(n,o)}}}let g;function W(e){if(typeof document>"u")return 0;if(g===void 0){const n=document.createElement("div");n.style.width="100%",n.style.height="200px";const o=document.createElement("div"),t=o.style;t.position="absolute",t.top="0",t.left="0",t.pointerEvents="none",t.visibility="hidden",t.width="200px",t.height="150px",t.overflow="hidden",o.appendChild(n),document.body.appendChild(o);const r=n.offsetWidth;o.style.overflow="scroll";let a=n.offsetWidth;r===a&&(a=o.clientWidth),document.body.removeChild(o),g=r-a}return g}function N(e){const n=e.match(/^(.*)px$/),o=Number(n?.[1]);return Number.isNaN(o)?W():o}function ne(e){if(typeof document>"u"||!e||!(e instanceof Element))return{width:0,height:0};const{width:n,height:o}=getComputedStyle(e,"::-webkit-scrollbar");return{width:N(n),height:N(o)}}const T=`vc-util-locker-${Date.now()}`;let x=0;function V(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function Q(e){const n=D(()=>!!e&&!!e.value);x+=1;const o=`${T}_${x}`;O(t=>{if(p()){if(n.value){const r=W(),a=V();k(`
|
|
2
2
|
html body {
|
|
3
3
|
overflow-y: hidden;
|
|
4
4
|
${a?`width: calc(100% - ${r}px);`:""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as t}from"./index-
|
|
1
|
+
import{K as t}from"./index-Ba6cQs-y.js";import{i as s}from"./motion-CzQ1k8MU.js";const m=new t("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),f=new t("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),c=new t("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),y=new t("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),p=new t("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),O=new t("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),g=new t("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),v=new t("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),l={"move-up":{inKeyframes:g,outKeyframes:v},"move-down":{inKeyframes:m,outKeyframes:f},"move-left":{inKeyframes:c,outKeyframes:y},"move-right":{inKeyframes:p,outKeyframes:O}},w=(n,a)=>{const{antCls:o}=n,r=`${o}-${a}`,{inKeyframes:i,outKeyframes:e}=l[a];return[s(r,i,e,n.motionDurationMid),{[`
|
|
2
2
|
${r}-enter,
|
|
3
3
|
${r}-appear
|
|
4
4
|
`]:{opacity:0,animationTimingFunction:n.motionEaseOutCirc},[`${r}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]};export{w as i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as s}from"./index-
|
|
1
|
+
import{h as s}from"./index-Ba6cQs-y.js";function a(n,t){const e=s({},n);for(let o=0;o<t.length;o+=1){const r=t[o];delete e[r]}return e}export{a as o};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-Ba6cQs-y.js";const l=`accept acceptcharset accesskey action allowfullscreen allowtransparency
|
|
2
2
|
alt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge
|
|
3
3
|
charset checked classid classname colspan cols content contenteditable contextmenu
|
|
4
4
|
controls coords crossorigin data datetime default defer dir disabled download draggable
|
package/src/assets/web-panel/assets/{placementArrow-CSC2rU9-.js → placementArrow-D8lSLg_0.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-Ba6cQs-y.js";const L=(e,o,t,n,p)=>{const r=e/2,a=0,s=r,m=t*1/Math.sqrt(2),h=r-t*(1-1/Math.sqrt(2)),b=r-o*(1/Math.sqrt(2)),u=t*(Math.sqrt(2)-1)+o*(1/Math.sqrt(2)),g=2*r-b,w=u,d=2*r-m,c=h,A=2*r-a,x=s,v=r*Math.sqrt(2)+t*(Math.sqrt(2)-2),$=t*(Math.sqrt(2)-1);return{pointerEvents:"none",width:e,height:e,overflow:"hidden","&::after":{content:'""',position:"absolute",width:v,height:v,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${o}px 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:p,zIndex:0,background:"transparent"},"&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:e,height:e/2,background:n,clipPath:{_multi_value_:!0,value:[`polygon(${$}px 100%, 50% ${$}px, ${2*r-$}px 100%, ${$}px 100%)`,`path('M ${a} ${s} A ${t} ${t} 0 0 0 ${m} ${h} L ${b} ${u} A ${o} ${o} 0 0 1 ${g} ${w} L ${d} ${c} A ${t} ${t} 0 0 0 ${A} ${x} Z')`]},content:'""'}}},f={adjustX:1,adjustY:1},l=[0,0],j={left:{points:["cr","cl"],overflow:f,offset:[-4,0],targetOffset:l},right:{points:["cl","cr"],overflow:f,offset:[4,0],targetOffset:l},top:{points:["bc","tc"],overflow:f,offset:[0,-4],targetOffset:l},bottom:{points:["tc","bc"],overflow:f,offset:[0,4],targetOffset:l},topLeft:{points:["bl","tl"],overflow:f,offset:[0,-4],targetOffset:l},leftTop:{points:["tr","tl"],overflow:f,offset:[-4,0],targetOffset:l},topRight:{points:["br","tr"],overflow:f,offset:[0,-4],targetOffset:l},rightTop:{points:["tl","tr"],overflow:f,offset:[4,0],targetOffset:l},bottomRight:{points:["tr","br"],overflow:f,offset:[0,4],targetOffset:l},rightBottom:{points:["bl","br"],overflow:f,offset:[4,0],targetOffset:l},bottomLeft:{points:["tl","bl"],overflow:f,offset:[0,4],targetOffset:l},leftBottom:{points:["br","bl"],overflow:f,offset:[-4,0],targetOffset:l}},M={adjustX:1,adjustY:1},O={adjustX:0,adjustY:0},T=[0,0];function k(e){return typeof e=="boolean"?e?M:O:i(i({},O),e)}function Y(e){const{arrowWidth:o=4,horizontalArrowShift:t=16,verticalArrowShift:n=8,autoAdjustOverflow:p,arrowPointAtCenter:r}=e,a={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(t+o),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(n+o)]},topRight:{points:["br","tc"],offset:[t+o,-4]},rightTop:{points:["tl","cr"],offset:[4,-(n+o)]},bottomRight:{points:["tr","bc"],offset:[t+o,4]},rightBottom:{points:["bl","cr"],offset:[4,n+o]},bottomLeft:{points:["tl","bc"],offset:[-(t+o),4]},leftBottom:{points:["br","cl"],offset:[-4,n+o]}};return Object.keys(a).forEach(s=>{a[s]=r?i(i({},a[s]),{overflow:k(p),targetOffset:T}):i(i({},j[s]),{overflow:k(p)}),a[s].ignoreShake=!0}),a}function _(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return e.map(t=>`${o}${t}`).join(",")}const X=8;function B(e){const o=X,{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:p,limitVerticalRadius:r}=e,a=t/2-Math.ceil(p*(Math.sqrt(2)-1)),s=(n>12?n+2:12)-a,m=r?o-a:s;return{dropdownArrowOffset:s,dropdownArrowOffsetVertical:m}}function q(e,o){const{componentCls:t,sizePopupArrow:n,marginXXS:p,borderRadiusXS:r,borderRadiusOuter:a,boxShadowPopoverArrow:s}=e,{colorBg:m,showArrowCls:h,contentRadius:b=e.borderRadiusLG,limitVerticalRadius:u}=o,{dropdownArrowOffsetVertical:g,dropdownArrowOffset:w}=B({sizePopupArrow:n,contentRadius:b,borderRadiusOuter:a,limitVerticalRadius:u}),d=n/2+p;return{[t]:{[`${t}-arrow`]:[i(i({position:"absolute",zIndex:1,display:"block"},L(n,r,a,m,s)),{"&:before":{background:m}})],[[`&-placement-top ${t}-arrow`,`&-placement-topLeft ${t}-arrow`,`&-placement-topRight ${t}-arrow`].join(",")]:{bottom:0,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-topRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-bottom ${t}-arrow`,`&-placement-bottomLeft ${t}-arrow`,`&-placement-bottomRight ${t}-arrow`].join(",")]:{top:0,transform:"translateY(-100%)"},[`&-placement-bottom ${t}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft ${t}-arrow`]:{left:{_skip_check_:!0,value:w}},[`&-placement-bottomRight ${t}-arrow`]:{right:{_skip_check_:!0,value:w}},[[`&-placement-left ${t}-arrow`,`&-placement-leftTop ${t}-arrow`,`&-placement-leftBottom ${t}-arrow`].join(",")]:{right:{_skip_check_:!0,value:0},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop ${t}-arrow`]:{top:g},[`&-placement-leftBottom ${t}-arrow`]:{bottom:g},[[`&-placement-right ${t}-arrow`,`&-placement-rightTop ${t}-arrow`,`&-placement-rightBottom ${t}-arrow`].join(",")]:{left:{_skip_check_:!0,value:0},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right ${t}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop ${t}-arrow`]:{top:g},[`&-placement-rightBottom ${t}-arrow`]:{bottom:g},[_(["&-placement-topLeft","&-placement-top","&-placement-topRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingBottom:d},[_(["&-placement-bottomLeft","&-placement-bottom","&-placement-bottomRight"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingTop:d},[_(["&-placement-leftTop","&-placement-left","&-placement-leftBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingRight:{_skip_check_:!0,value:d}},[_(["&-placement-rightTop","&-placement-right","&-placement-rightBottom"].map(c=>c+=":not(&-arrow-hidden)"),h)]:{paddingLeft:{_skip_check_:!0,value:d}}}}}export{X as M,Y as a,B as b,q as g,j as p,L as r};
|
package/src/assets/web-panel/assets/{responsiveObserve-DnyswFkD.js → responsiveObserve-ZN6pVHvM.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as o,h}from"./index-
|
|
1
|
+
import{I as o,h}from"./index-Ba6cQs-y.js";import{f as x}from"./vendor-DhFY8mDK.js";const b=["xxxl","xxl","xl","lg","md","sm","xs"],p=r=>({xs:`(max-width: ${r.screenXSMax}px)`,sm:`(min-width: ${r.screenSM}px)`,md:`(min-width: ${r.screenMD}px)`,lg:`(min-width: ${r.screenLG}px)`,xl:`(min-width: ${r.screenXL}px)`,xxl:`(min-width: ${r.screenXXL}px)`,xxxl:`{min-width: ${r.screenXXXL}px}`});function w(){const[,r]=o();return x(()=>{const n=p(r.value),i=new Map;let a=-1,c={};return{matchHandlers:{},dispatch(e){return c=e,i.forEach(t=>t(c)),i.size>=1},subscribe(e){return i.size||this.register(),a+=1,i.set(a,e),e(c),a},unsubscribe(e){i.delete(e),i.size||this.unregister()},unregister(){Object.keys(n).forEach(e=>{const t=n[e],s=this.matchHandlers[t];s?.mql.removeListener(s?.listener)}),i.clear()},register(){Object.keys(n).forEach(e=>{const t=n[e],s=l=>{let{matches:m}=l;this.dispatch(h(h({},c),{[e]:m}))},d=window.matchMedia(t);d.addListener(s),this.matchHandlers[t]={mql:d,listener:s},s(d)})},responsiveMap:n}})}export{b as r,w as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as n}from"./index-
|
|
1
|
+
import{K as n}from"./index-Ba6cQs-y.js";import{i as e}from"./motion-CzQ1k8MU.js";const m=new n("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),f=new n("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),c=new n("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),l=new n("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),y=new n("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),p=new n("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),O=new n("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),d=new n("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),g={"slide-up":{inKeyframes:m,outKeyframes:f},"slide-down":{inKeyframes:c,outKeyframes:l},"slide-left":{inKeyframes:y,outKeyframes:p},"slide-right":{inKeyframes:O,outKeyframes:d}},K=(t,r)=>{const{antCls:a}=t,i=`${a}-${r}`,{inKeyframes:s,outKeyframes:o}=g[r];return[e(i,s,o,t.motionDurationMid),{[`
|
|
2
2
|
${i}-enter,
|
|
3
3
|
${i}-appear
|
|
4
4
|
`]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:t.motionEaseOutQuint},[`${i}-leave`]:{animationTimingFunction:t.motionEaseInQuint}}]};export{f as a,c as b,m as c,K as i,l as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./index-
|
|
1
|
+
import{i as e}from"./index-Ba6cQs-y.js";function r(a,s,t){return e({[`${a}-status-success`]:s==="success",[`${a}-status-warning`]:s==="warning",[`${a}-status-error`]:s==="error",[`${a}-status-validating`]:s==="validating",[`${a}-has-feedback`]:t})}const c=(a,s)=>s||a;export{c as a,r as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as d}from"./index-
|
|
1
|
+
import{A as d}from"./index-Ba6cQs-y.js";const i=()=>d()&&window.document.documentElement,c=e=>{if(d()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(r=>r in n.style)}return!1},u=(e,t)=>{if(!c(e))return!1;const n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function s(e,t){return!Array.isArray(e)&&t!==void 0?u(e,t):c(e)}let o;const p=()=>{if(!i())return!1;if(o!==void 0)return o;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=e.scrollHeight===1,document.body.removeChild(e),o};export{i as c,p as d,s as i};
|
package/src/assets/web-panel/assets/{useFlexGapSupport-5XxNwjTL.js → useFlexGapSupport-D4YDiqxr.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as o}from"./styleChecker-
|
|
1
|
+
import{d as o}from"./styleChecker-Bc6FRYW9.js";import{o as t,s}from"./vendor-DhFY8mDK.js";const r=(()=>{const e=s(!1);return t(()=>{e.value=o()}),e});export{r as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as d}from"./index-
|
|
1
|
+
import{u as d}from"./index-Ba6cQs-y.js";import{u as c}from"./useShellMode-CgR0wCYM.js";function u({accept:l=""}={}){return new Promise(a=>{if(typeof document>"u"){a({canceled:!0,path:null,content:null});return}const n=document.createElement("input");n.type="file",l&&(n.accept=l),n.style.display="none",document.body.appendChild(n);let o=!1;const i=()=>{n.parentNode&&n.parentNode.removeChild(n)},r=()=>{if(o)return;o=!0;const e=n.files&&n.files[0];if(!e){i(),a({canceled:!0,path:null,content:null});return}const t=new FileReader;t.onload=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:typeof t.result=="string"?t.result:""})},t.onerror=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:null,reason:"read_failed"})},t.readAsText(e)};n.addEventListener("change",r),n.click()})}function f(l,{defaultPath:a="download.txt"}={}){if(typeof document>"u")return{canceled:!0,path:null};const n=new Blob([l],{type:"text/plain"}),o=URL.createObjectURL(n),i=document.createElement("a");return i.href=o,i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o),{canceled:!1,path:a}}function p(l){if(!Array.isArray(l))return"";const a=[];for(const n of l)if(Array.isArray(n.extensions))for(const o of n.extensions)a.push(`.${o.replace(/^\./,"")}`);return a.join(",")}function m(){const l=d();async function a(r={}){if(c().isEmbedded){const e=await l.sendRaw({type:"fs.openDialog",title:r.title,filters:r.filters},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDialog failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,content:t.content??null,size:t.size,reason:t.reason}}return u({accept:p(r.filters)})}async function n(r,e={}){if(typeof r!="string")throw new Error("content must be a string");if(c().isEmbedded){const t=await l.sendRaw({type:"fs.saveDialog",title:e.title,defaultPath:e.defaultPath,filters:e.filters,content:r},6e4);if(t&&t.ok===!1)throw new Error(t.error||"fs.saveDialog failed");const s=t?.result??t;return{canceled:!!s.canceled,path:s.path??null}}return f(r,{defaultPath:e.defaultPath})}async function o(r,e={}){const t=JSON.stringify(r,null,2),s={...e,defaultPath:e.defaultPath||"data.json",filters:e.filters||[{name:"JSON",extensions:["json"]}]};return n(t,s)}async function i(r={}){if(!c().isEmbedded)return{canceled:!0,path:null,initialized:!1,unsupported:!0};const e=await l.sendRaw({type:"fs.openDirectory",title:r.title},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDirectory failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,initialized:!!t.initialized}}return{pickFileText:a,saveText:n,saveJson:o,pickDirectory:i}}export{m as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as _}from"./index-Ba6cQs-y.js";function h(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}function w(r,t,a,e,n){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:t,...a},n).then(h):new Promise((u,i)=>{const c=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,b=`${t}.event`,f=`${t}.end`;let o=!1,d=()=>{};const l=(s,y)=>{if(!o){o=!0,clearTimeout(m);try{d()}catch{}s(y)}},m=setTimeout(()=>{l(i,new Error(`stream timeout (${n}ms): ${t}`))},n),p=r.onMessage(s=>{if(!(o||!s)&&!(s.id!==c&&s.requestId!==c)){if(s.type===b){if(typeof e=="function")try{e(s.event||s)}catch{}return}if(s.type===f){l(u,h(s));return}s.type==="error"&&l(i,new Error(s.message||"stream error"))}});d=typeof p=="function"?p:()=>{},Promise.resolve(r.sendRaw({id:c,type:t,...a},n)).catch(()=>{})})}function v(){const r=_(),t=(a,e={},n=3e4)=>r.sendRaw({type:a,...e},n).then(h);return{async health(){return await t("personal-data-hub.health",{},8e3)},async stats(){return await t("personal-data-hub.stats",{},8e3)},async listAdapters(){return await t("personal-data-hub.list-adapters",{},5e3)},async syncAdapter(a,e={}){return await t("personal-data-hub.sync-adapter",{name:a,options:e},12e4)},async syncAll(a={}){return await t("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:e=20,seed:n=1}={}){return await t("personal-data-hub.register-mock",{name:a,count:e,seed:n})},async unregister(a){return await t("personal-data-hub.unregister",{name:a})},async ask(a,e={}){return await t("personal-data-hub.ask",{question:a,options:e},18e4)},async queryEvents(a={}){return await t("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await t("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await t("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await t("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await t("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,e={}){return await t("personal-data-hub.register-email",{account:a,opts:e},15e3)},async unregisterEmail(a){return await t("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await t("personal-data-hub.list-email-accounts",{},5e3)},async eventDetail(a){return await t("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,e={},n){return await w(r,"personal-data-hub.sync-adapter-stream",{name:a,options:e},n,6e5)},async syncAllStream(a={},e){return await w(r,"personal-data-hub.sync-all-stream",{options:a},e,9e5)},async registerAlipay(a,e={}){return await t("personal-data-hub.register-alipay",{account:a,opts:e},15e3)},async unregisterAlipay(a){return await t("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await t("personal-data-hub.list-alipay-accounts",{},5e3)},async importAlipayBill({zipPath:a,csvPath:e,zipPassword:n}={}){return await t("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:e,zipPassword:n},3e5)},async reviewQueueList(a=50){return await t("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,e){return await t("personal-data-hub.review-decision",{reviewId:a,decision:e},5e3)},async manualMerge(a,e){return await t("personal-data-hub.manual-merge",{aId:a,bId:e},5e3)},async manualUnmerge(a){return await t("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await t("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await t("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await t("personal-data-hub.skills-list",{},5e3)},async runSkill(a,e={}){return await t("personal-data-hub.run-skill",{name:a,options:e},12e4)},async openAichatLogin(a,e={}){return await t("personal-data-hub.aichat-open-login",{vendor:a,opts:e},1e4)},async probeAichatCookies(a,e){return await t("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:e},1e4)},async registerAichatVendor(a,e,n={}){return await t("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:e,opts:n},3e4)},async rotateAichatLogin(a){return await t("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await t("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await t("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await t("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await t("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:e,wechatDataPath:n,fridaOpts:u,keyProviderOverride:i}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:n,fridaOpts:u,keyProviderOverride:i},45e3)},async listWechatAccounts(){return await t("personal-data-hub.list-wechat-accounts",{},5e3)},async unregisterWechat(a){return await t("personal-data-hub.unregister-wechat",{uin:a},5e3)}}}export{v as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as i,h as a,w as l}from"./index-
|
|
1
|
+
import{M as i,h as a,w as l}from"./index-Ba6cQs-y.js";import{a6 as o,k as d,C as g,F as f,A as p}from"./vendor-DhFY8mDK.js";function c(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,u=e;if(Array.isArray(e)&&(u=i(e)[0]),!u)return null;const n=o(u,r,s);return n.props=t?a(a({},n.props),r):n.props,l(typeof n.props.class!="object"),n}function v(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(s=>c(s,r,t))}function N(e,r,t){p(o(e,a({},r)),t)}const m=e=>(e||[]).some(r=>d(r)?!(r.type===g||r.type===f&&!m(r.children)):!0)?e:null;function h(e,r,t,s){var u;const n=(u=e[r])===null||u===void 0?void 0:u.call(e,t);return m(n)?n:s?.()}export{h as a,v as b,c,N as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as o}from"./index-
|
|
1
|
+
import{K as o}from"./index-Ba6cQs-y.js";import{i as f}from"./motion-CzQ1k8MU.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
|
|
2
2
|
${t}-enter,
|
|
3
3
|
${t}-appear
|
|
4
4
|
`]:{transform:"scale(0)",opacity:0,animationTimingFunction:n.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${t}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]};export{h as i,c as z};
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
// Injected by web-ui-server.js at serve time
|
|
9
9
|
window.__CC_CONFIG__ = __CC_CONFIG_PLACEHOLDER__;
|
|
10
10
|
</script>
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-Ba6cQs-y.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="./assets/vendor-DhFY8mDK.js">
|
|
13
|
-
<link rel="modulepreload" crossorigin href="./assets/icons-
|
|
13
|
+
<link rel="modulepreload" crossorigin href="./assets/icons-AILO5ZcK.js">
|
|
14
14
|
<link rel="stylesheet" crossorigin href="./assets/index-CfX1DEtk.css">
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cc hub ask` CLI command — focused unit tests for --max-facts /
|
|
3
|
+
* --max-query-limit flag wiring.
|
|
4
|
+
*
|
|
5
|
+
* Why this test exists: Android-side `LocalCcRunner.askQuestion` defaults to
|
|
6
|
+
* `--max-facts 20 --max-query-limit 50` to keep prompt budget within
|
|
7
|
+
* Qwen2.5-1.5B's effective ~2-4K instruction-following window. If those
|
|
8
|
+
* flags ever silently stop forwarding to `AnalysisEngine.ask()`, on-device
|
|
9
|
+
* answers will start hallucinating because prompts overflow the model. This
|
|
10
|
+
* suite is the canary.
|
|
11
|
+
*
|
|
12
|
+
* Uses the `_getHub` injection seam — no real vault / no spinner side
|
|
13
|
+
* effects.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
|
|
17
|
+
import { _internal } from "../hub.js";
|
|
18
|
+
|
|
19
|
+
const { cmdAsk, parsePositiveInt } = _internal;
|
|
20
|
+
|
|
21
|
+
let exitSpy, logSpy;
|
|
22
|
+
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
exitSpy = vi.spyOn(process, "exit").mockImplementation(() => {});
|
|
25
|
+
logSpy = vi.spyOn(console, "log").mockImplementation(() => {});
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
exitSpy.mockRestore();
|
|
30
|
+
logSpy.mockRestore();
|
|
31
|
+
delete process.env.CC_HUB_ALLOW_NON_LOCAL;
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function makeStubHub() {
|
|
35
|
+
const askSpy = vi.fn(async () => ({
|
|
36
|
+
answer: "ok",
|
|
37
|
+
citations: [],
|
|
38
|
+
llmName: "qwen",
|
|
39
|
+
isLocal: true,
|
|
40
|
+
}));
|
|
41
|
+
return {
|
|
42
|
+
askSpy,
|
|
43
|
+
_getHub: async () => ({ engine: { ask: askSpy } }),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
describe("parsePositiveInt", () => {
|
|
48
|
+
it("returns null for undefined / blank / non-numeric / non-positive", () => {
|
|
49
|
+
expect(parsePositiveInt(undefined)).toBeNull();
|
|
50
|
+
expect(parsePositiveInt(null)).toBeNull();
|
|
51
|
+
expect(parsePositiveInt("")).toBeNull();
|
|
52
|
+
expect(parsePositiveInt("abc")).toBeNull();
|
|
53
|
+
expect(parsePositiveInt("0")).toBeNull();
|
|
54
|
+
expect(parsePositiveInt("-5")).toBeNull();
|
|
55
|
+
});
|
|
56
|
+
it("coerces positive integer strings to numbers", () => {
|
|
57
|
+
expect(parsePositiveInt("20")).toBe(20);
|
|
58
|
+
expect(parsePositiveInt("50")).toBe(50);
|
|
59
|
+
expect(parsePositiveInt("1")).toBe(1);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
describe("cc hub ask --max-facts / --max-query-limit", () => {
|
|
64
|
+
it("forwards parsed budget to engine.ask()", async () => {
|
|
65
|
+
const { askSpy, _getHub } = makeStubHub();
|
|
66
|
+
await cmdAsk("hello?", {
|
|
67
|
+
json: true,
|
|
68
|
+
maxFacts: "20",
|
|
69
|
+
maxQueryLimit: "50",
|
|
70
|
+
_getHub,
|
|
71
|
+
});
|
|
72
|
+
expect(askSpy).toHaveBeenCalledTimes(1);
|
|
73
|
+
const [q, opts] = askSpy.mock.calls[0];
|
|
74
|
+
expect(q).toBe("hello?");
|
|
75
|
+
expect(opts.maxFacts).toBe(20);
|
|
76
|
+
expect(opts.maxQueryLimit).toBe(50);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("omits maxFacts/maxQueryLimit from options when flags absent", async () => {
|
|
80
|
+
const { askSpy, _getHub } = makeStubHub();
|
|
81
|
+
await cmdAsk("hello?", { json: true, _getHub });
|
|
82
|
+
expect(askSpy).toHaveBeenCalledTimes(1);
|
|
83
|
+
const [, opts] = askSpy.mock.calls[0];
|
|
84
|
+
// Caller didn't pass — let engine fall back to constructor defaults.
|
|
85
|
+
expect(opts).not.toHaveProperty("maxFacts");
|
|
86
|
+
expect(opts).not.toHaveProperty("maxQueryLimit");
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("ignores invalid flag values (typo on cmdline → fallback to defaults)", async () => {
|
|
90
|
+
const { askSpy, _getHub } = makeStubHub();
|
|
91
|
+
await cmdAsk("hello?", {
|
|
92
|
+
json: true,
|
|
93
|
+
maxFacts: "abc",
|
|
94
|
+
maxQueryLimit: "-1",
|
|
95
|
+
_getHub,
|
|
96
|
+
});
|
|
97
|
+
const [, opts] = askSpy.mock.calls[0];
|
|
98
|
+
expect(opts).not.toHaveProperty("maxFacts");
|
|
99
|
+
expect(opts).not.toHaveProperty("maxQueryLimit");
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it("still forwards acceptNonLocal when budget flags present", async () => {
|
|
103
|
+
const { askSpy, _getHub } = makeStubHub();
|
|
104
|
+
await cmdAsk("hello?", {
|
|
105
|
+
json: true,
|
|
106
|
+
maxFacts: "20",
|
|
107
|
+
acceptNonLocal: true,
|
|
108
|
+
_getHub,
|
|
109
|
+
});
|
|
110
|
+
const [, opts] = askSpy.mock.calls[0];
|
|
111
|
+
expect(opts.acceptNonLocal).toBe(true);
|
|
112
|
+
expect(opts.maxFacts).toBe(20);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Question text must pass through verbatim — AnalysisEngine.ask is the
|
|
116
|
+
// single place that runs parseQuery + intent routing (latest narrow / list
|
|
117
|
+
// FTS / sum-amount narrow / count TOTALS). If the CLI ever pre-normalizes
|
|
118
|
+
// the question (lowercase / strip punctuation / truncate), routing would
|
|
119
|
+
// misclassify or miss entity extraction. This case is the canary.
|
|
120
|
+
it("passes question text to engine.ask verbatim (no CLI-side preprocessing)", async () => {
|
|
121
|
+
const { askSpy, _getHub } = makeStubHub();
|
|
122
|
+
const cases = [
|
|
123
|
+
"最近的订单", // intent=latest (narrow path)
|
|
124
|
+
"最近 30 天的消费", // intent=latest + timeWindow (fallthrough)
|
|
125
|
+
"提到王老板的微信消息", // intent=list + entity (FTS augment)
|
|
126
|
+
"上个月在淘宝总共花了多少?", // intent=sum-amount (4-subtype narrow)
|
|
127
|
+
"我有几个联系人", // intent=count (TOTALS bypass)
|
|
128
|
+
];
|
|
129
|
+
for (const q of cases) {
|
|
130
|
+
askSpy.mockClear();
|
|
131
|
+
await cmdAsk(q, { json: true, _getHub });
|
|
132
|
+
expect(askSpy).toHaveBeenCalledTimes(1);
|
|
133
|
+
expect(askSpy.mock.calls[0][0]).toBe(q);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
});
|
package/src/commands/ask.js
CHANGED
|
@@ -1,16 +1,56 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Single-shot AI question command
|
|
3
3
|
* chainlesschain ask "What is..." [--model] [--provider] [--json]
|
|
4
|
+
*
|
|
5
|
+
* Android local-model integration:
|
|
6
|
+
* The Android in-APK LocalLlmServer (pdh/llm/LocalLlmServer.kt) exposes
|
|
7
|
+
* an Ollama-compat HTTP server on 127.0.0.1:18484 with /api/chat + /api/tags.
|
|
8
|
+
* `cc ask` honors three opt-in mechanisms (priority order) so users can
|
|
9
|
+
* choose whether the Android local model is the default:
|
|
10
|
+
* 1. `--base-url` flag (one-shot, explicit)
|
|
11
|
+
* 2. `CC_HUB_OLLAMA_URL` env var (Android LocalCcRunner injects this)
|
|
12
|
+
* 3. `--prefer-android-local` flag (one-shot toggle to 127.0.0.1:18484)
|
|
13
|
+
* 4. `config.llm.preferAndroidLocal=true` (persistent user toggle:
|
|
14
|
+
* `cc config set llm.preferAndroidLocal true`)
|
|
15
|
+
* 5. `config.llm.baseUrl`
|
|
16
|
+
* 6. Hardcoded http://localhost:11434
|
|
17
|
+
*
|
|
18
|
+
* Endpoint:
|
|
19
|
+
* For provider=ollama we now use POST /api/chat (works on standard Ollama
|
|
20
|
+
* AND Android LocalLlmServer, which only implements chat). Pre-v5.0.3.85
|
|
21
|
+
* used /api/generate, which broke against the Android server.
|
|
4
22
|
*/
|
|
5
23
|
|
|
6
24
|
import ora from "ora";
|
|
7
|
-
import chalk from "chalk";
|
|
8
25
|
import { logger } from "../lib/logger.js";
|
|
9
26
|
import { BUILT_IN_PROVIDERS } from "../lib/llm-providers.js";
|
|
10
27
|
import { loadConfig } from "../lib/config-manager.js";
|
|
11
28
|
|
|
29
|
+
const ANDROID_LOCAL_OLLAMA_URL = "http://127.0.0.1:18484";
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Resolve effective Ollama base URL given CLI options, env, and config.
|
|
33
|
+
* Exported for unit testing.
|
|
34
|
+
*/
|
|
35
|
+
export function resolveOllamaBaseUrl({
|
|
36
|
+
options = {},
|
|
37
|
+
env = process.env,
|
|
38
|
+
config = {},
|
|
39
|
+
} = {}) {
|
|
40
|
+
if (options.baseUrl) return options.baseUrl;
|
|
41
|
+
if (env.CC_HUB_OLLAMA_URL && env.CC_HUB_OLLAMA_URL.trim()) {
|
|
42
|
+
return env.CC_HUB_OLLAMA_URL.trim();
|
|
43
|
+
}
|
|
44
|
+
if (options.preferAndroidLocal === true) return ANDROID_LOCAL_OLLAMA_URL;
|
|
45
|
+
if (config.llm && config.llm.preferAndroidLocal === true) {
|
|
46
|
+
return ANDROID_LOCAL_OLLAMA_URL;
|
|
47
|
+
}
|
|
48
|
+
if (config.llm && config.llm.baseUrl) return config.llm.baseUrl;
|
|
49
|
+
return "http://localhost:11434";
|
|
50
|
+
}
|
|
51
|
+
|
|
12
52
|
/**
|
|
13
|
-
* Send a single question to an LLM provider
|
|
53
|
+
* Send a single question to an LLM provider.
|
|
14
54
|
* @param {string} question
|
|
15
55
|
* @param {object} options
|
|
16
56
|
* @returns {Promise<string>}
|
|
@@ -18,15 +58,17 @@ import { loadConfig } from "../lib/config-manager.js";
|
|
|
18
58
|
async function queryLLM(question, options = {}) {
|
|
19
59
|
const provider = options.provider || "ollama";
|
|
20
60
|
const model = options.model || "qwen2:7b";
|
|
21
|
-
const baseUrl = options.baseUrl || "http://localhost:11434";
|
|
22
61
|
|
|
23
62
|
if (provider === "ollama") {
|
|
24
|
-
const
|
|
63
|
+
const baseUrl = options.baseUrl || "http://localhost:11434";
|
|
64
|
+
// Use /api/chat (modern Ollama API + only endpoint Android LocalLlmServer
|
|
65
|
+
// implements). Non-streaming mode keeps the response shape simple.
|
|
66
|
+
const response = await fetch(`${baseUrl}/api/chat`, {
|
|
25
67
|
method: "POST",
|
|
26
68
|
headers: { "Content-Type": "application/json" },
|
|
27
69
|
body: JSON.stringify({
|
|
28
70
|
model,
|
|
29
|
-
|
|
71
|
+
messages: [{ role: "user", content: question }],
|
|
30
72
|
stream: false,
|
|
31
73
|
}),
|
|
32
74
|
});
|
|
@@ -38,46 +80,52 @@ async function queryLLM(question, options = {}) {
|
|
|
38
80
|
}
|
|
39
81
|
|
|
40
82
|
const data = await response.json();
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
if (!providerDef) {
|
|
46
|
-
throw new Error(
|
|
47
|
-
`Unsupported provider: ${provider}. Supported: ollama, openai, volcengine, deepseek, dashscope, gemini, mistral, anthropic`,
|
|
48
|
-
);
|
|
83
|
+
// Android LocalLlmServer returns {error} on inference failure with HTTP 200
|
|
84
|
+
// (mirroring Ollama convention). Surface it explicitly.
|
|
85
|
+
if (data.error) {
|
|
86
|
+
throw new Error(`Ollama backend error: ${data.error}`);
|
|
49
87
|
}
|
|
88
|
+
return data.message?.content ?? "";
|
|
89
|
+
}
|
|
50
90
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
91
|
+
// OpenAI-compatible providers (openai, volcengine, deepseek, dashscope, mistral, gemini)
|
|
92
|
+
const providerDef = BUILT_IN_PROVIDERS[provider];
|
|
93
|
+
if (!providerDef) {
|
|
94
|
+
throw new Error(
|
|
95
|
+
`Unsupported provider: ${provider}. Supported: ollama, openai, volcengine, deepseek, dashscope, gemini, mistral, anthropic`,
|
|
96
|
+
);
|
|
97
|
+
}
|
|
58
98
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
model: model || providerDef.models[0],
|
|
68
|
-
messages: [{ role: "user", content: question }],
|
|
69
|
-
}),
|
|
70
|
-
});
|
|
99
|
+
const apiKey =
|
|
100
|
+
options.apiKey ||
|
|
101
|
+
(providerDef.apiKeyEnv ? process.env[providerDef.apiKeyEnv] : null);
|
|
102
|
+
if (!apiKey) {
|
|
103
|
+
throw new Error(
|
|
104
|
+
`API key required for ${provider} (--api-key or ${providerDef.apiKeyEnv})`,
|
|
105
|
+
);
|
|
106
|
+
}
|
|
71
107
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
108
|
+
const apiBase = options.baseUrl || providerDef.baseUrl;
|
|
109
|
+
const response = await fetch(`${apiBase}/chat/completions`, {
|
|
110
|
+
method: "POST",
|
|
111
|
+
headers: {
|
|
112
|
+
"Content-Type": "application/json",
|
|
113
|
+
Authorization: `Bearer ${apiKey}`,
|
|
114
|
+
},
|
|
115
|
+
body: JSON.stringify({
|
|
116
|
+
model: model || providerDef.models[0],
|
|
117
|
+
messages: [{ role: "user", content: question }],
|
|
118
|
+
}),
|
|
119
|
+
});
|
|
77
120
|
|
|
78
|
-
|
|
79
|
-
|
|
121
|
+
if (!response.ok) {
|
|
122
|
+
throw new Error(
|
|
123
|
+
`${provider} error: ${response.status} ${response.statusText}`,
|
|
124
|
+
);
|
|
80
125
|
}
|
|
126
|
+
|
|
127
|
+
const data = await response.json();
|
|
128
|
+
return data.choices[0].message.content;
|
|
81
129
|
}
|
|
82
130
|
|
|
83
131
|
export function registerAskCommand(program) {
|
|
@@ -92,15 +140,33 @@ export function registerAskCommand(program) {
|
|
|
92
140
|
)
|
|
93
141
|
.option("--base-url <url>", "API base URL")
|
|
94
142
|
.option("--api-key <key>", "API key")
|
|
143
|
+
.option(
|
|
144
|
+
"--prefer-android-local",
|
|
145
|
+
"Route ollama provider at the Android in-APK LocalLlmServer (127.0.0.1:18484). One-shot equivalent of `cc config set llm.preferAndroidLocal true`.",
|
|
146
|
+
)
|
|
95
147
|
.option("--json", "Output as JSON")
|
|
96
148
|
.action(async (question, options) => {
|
|
97
149
|
const config = loadConfig();
|
|
150
|
+
const provider = options.provider || config.llm?.provider || "ollama";
|
|
98
151
|
const resolvedOptions = {
|
|
99
152
|
model: options.model || config.llm?.model || "qwen2:7b",
|
|
100
|
-
provider
|
|
101
|
-
baseUrl: options.baseUrl || config.llm?.baseUrl,
|
|
153
|
+
provider,
|
|
102
154
|
apiKey: options.apiKey || config.llm?.apiKey,
|
|
103
155
|
};
|
|
156
|
+
// baseUrl resolution only applies the Android-local override path for
|
|
157
|
+
// provider=ollama (LocalLlmServer is Ollama-compat). For other providers
|
|
158
|
+
// we use the existing precedence: --base-url > config.llm.baseUrl >
|
|
159
|
+
// provider default.
|
|
160
|
+
if (provider === "ollama") {
|
|
161
|
+
resolvedOptions.baseUrl = resolveOllamaBaseUrl({
|
|
162
|
+
options,
|
|
163
|
+
env: process.env,
|
|
164
|
+
config,
|
|
165
|
+
});
|
|
166
|
+
} else {
|
|
167
|
+
resolvedOptions.baseUrl = options.baseUrl || config.llm?.baseUrl;
|
|
168
|
+
}
|
|
169
|
+
|
|
104
170
|
const spinner = ora("Thinking...").start();
|
|
105
171
|
try {
|
|
106
172
|
const answer = await queryLLM(question, resolvedOptions);
|
|
@@ -113,8 +179,9 @@ export function registerAskCommand(program) {
|
|
|
113
179
|
{
|
|
114
180
|
question,
|
|
115
181
|
answer,
|
|
116
|
-
model:
|
|
117
|
-
provider:
|
|
182
|
+
model: resolvedOptions.model,
|
|
183
|
+
provider: resolvedOptions.provider,
|
|
184
|
+
baseUrl: resolvedOptions.baseUrl,
|
|
118
185
|
},
|
|
119
186
|
null,
|
|
120
187
|
2,
|