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 +1 @@
|
|
|
1
|
-
import{l as E,m as L,h as x,r as X,K as O,q as P,f as I,M as _,ac as G,P as T}from"./index-
|
|
1
|
+
import{l as E,m as L,h as x,r as X,K as O,q as P,f as I,M as _,ac as G,P as T}from"./index-JP5LGd1K.js";import{i as A}from"./initDefaultProps-Co0jgVso.js";import{d as B,s as H,w as j,e as R,c as r,k as M,a6 as N}from"./vendor-DhFY8mDK.js";import"./icons-AILO5ZcK.js";function V(n,e,c){var t=c||{},i=t.noTrailing,m=i===void 0?!1:i,b=t.noLeading,$=b===void 0?!1:b,y=t.debounceMode,a=y===void 0?void 0:y,o,g=!1,f=0;function D(){o&&clearTimeout(o)}function z(d){var v=d||{},p=v.upcomingOnly,h=p===void 0?!1:p;D(),g=!h}function S(){for(var d=arguments.length,v=new Array(d),p=0;p<d;p++)v[p]=arguments[p];var h=this,l=Date.now()-f;if(g)return;function u(){f=Date.now(),e.apply(h,v)}function s(){o=void 0}!$&&a&&!o&&u(),D(),a===void 0&&l>n?$?(f=Date.now(),m||(o=setTimeout(a?s:u,n))):u():m!==!0&&(o=setTimeout(a?s:u,a===void 0?n-l:n))}return S.cancel=z,S}function F(n,e,c){var t={},i=t.atBegin,m=i===void 0?!1:i;return V(n,e,{debounceMode:m!==!1})}const K=new O("antSpinMove",{to:{opacity:1}}),q=new O("antRotate",{to:{transform:"rotate(405deg)"}}),U=n=>({[`${n.componentCls}`]:x(x({},X(n)),{position:"absolute",display:"none",color:n.colorPrimary,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${n.motionDurationSlow} ${n.motionEaseInOutCirc}`,"&-spinning":{position:"static",display:"inline-block",opacity:1},"&-nested-loading":{position:"relative",[`> div > ${n.componentCls}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:n.contentHeight,[`${n.componentCls}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:-n.spinDotSize/2},[`${n.componentCls}-text`]:{position:"absolute",top:"50%",width:"100%",paddingTop:(n.spinDotSize-n.fontSize)/2+2,textShadow:`0 1px 2px ${n.colorBgContainer}`},[`&${n.componentCls}-show-text ${n.componentCls}-dot`]:{marginTop:-(n.spinDotSize/2)-10},"&-sm":{[`${n.componentCls}-dot`]:{margin:-n.spinDotSizeSM/2},[`${n.componentCls}-text`]:{paddingTop:(n.spinDotSizeSM-n.fontSize)/2+2},[`&${n.componentCls}-show-text ${n.componentCls}-dot`]:{marginTop:-(n.spinDotSizeSM/2)-10}},"&-lg":{[`${n.componentCls}-dot`]:{margin:-(n.spinDotSizeLG/2)},[`${n.componentCls}-text`]:{paddingTop:(n.spinDotSizeLG-n.fontSize)/2+2},[`&${n.componentCls}-show-text ${n.componentCls}-dot`]:{marginTop:-(n.spinDotSizeLG/2)-10}}},[`${n.componentCls}-container`]:{position:"relative",transition:`opacity ${n.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:n.colorBgContainer,opacity:0,transition:`all ${n.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${n.componentCls}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:n.spinDotDefault},[`${n.componentCls}-dot`]:{position:"relative",display:"inline-block",fontSize:n.spinDotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:(n.spinDotSize-n.marginXXS/2)/2,height:(n.spinDotSize-n.marginXXS/2)/2,backgroundColor:n.colorPrimary,borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:K,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:q,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&-sm ${n.componentCls}-dot`]:{fontSize:n.spinDotSizeSM,i:{width:(n.spinDotSizeSM-n.marginXXS/2)/2,height:(n.spinDotSizeSM-n.marginXXS/2)/2}},[`&-lg ${n.componentCls}-dot`]:{fontSize:n.spinDotSizeLG,i:{width:(n.spinDotSizeLG-n.marginXXS)/2,height:(n.spinDotSizeLG-n.marginXXS)/2}},[`&${n.componentCls}-show-text ${n.componentCls}-text`]:{display:"block"}})}),J=E("Spin",n=>{const e=L(n,{spinDotDefault:n.colorTextDescription,spinDotSize:n.controlHeightLG/2,spinDotSizeSM:n.controlHeightLG*.35,spinDotSizeLG:n.controlHeight});return[U(e)]},{contentHeight:400});var Q=function(n,e){var c={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&e.indexOf(t)<0&&(c[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,t=Object.getOwnPropertySymbols(n);i<t.length;i++)e.indexOf(t[i])<0&&Object.prototype.propertyIsEnumerable.call(n,t[i])&&(c[t[i]]=n[t[i]]);return c};const W=()=>({prefixCls:String,spinning:{type:Boolean,default:void 0},size:String,wrapperClassName:String,tip:T.any,delay:Number,indicator:T.any});let C=null;function Y(n,e){return!!n&&!!e&&!isNaN(Number(e))}function Z(n){const e=n.indicator;C=typeof e=="function"?e:()=>r(e,null,null)}const w=B({compatConfig:{MODE:3},name:"ASpin",inheritAttrs:!1,props:A(W(),{size:"default",spinning:!0,wrapperClassName:""}),setup(n,e){let{attrs:c,slots:t}=e;const{prefixCls:i,size:m,direction:b}=P("spin",n),[$,y]=J(i),a=H(n.spinning&&!Y(n.spinning,n.delay));let o;return j([()=>n.spinning,()=>n.delay],()=>{o?.cancel(),o=F(n.delay,()=>{a.value=n.spinning}),o?.()},{immediate:!0,flush:"post"}),R(()=>{o?.cancel()}),()=>{var g,f;const{class:D}=c,z=Q(c,["class"]),{tip:S=(g=t.tip)===null||g===void 0?void 0:g.call(t)}=n,d=(f=t.default)===null||f===void 0?void 0:f.call(t),v={[y.value]:!0,[i.value]:!0,[`${i.value}-sm`]:m.value==="small",[`${i.value}-lg`]:m.value==="large",[`${i.value}-spinning`]:a.value,[`${i.value}-show-text`]:!!S,[`${i.value}-rtl`]:b.value==="rtl",[D]:!!D};function p(l){const u=`${l}-dot`;let s=G(t,n,"indicator");return s===null?null:(Array.isArray(s)&&(s=s.length===1?s[0]:s),M(s)?N(s,{class:u}):C&&M(C())?N(C(),{class:u}):r("span",{class:`${u} ${l}-dot-spin`},[r("i",{class:`${l}-dot-item`},null),r("i",{class:`${l}-dot-item`},null),r("i",{class:`${l}-dot-item`},null),r("i",{class:`${l}-dot-item`},null)]))}const h=r("div",I(I({},z),{},{class:v,"aria-live":"polite","aria-busy":a.value}),[p(i.value),S?r("div",{class:`${i.value}-text`},[S]):null]);if(d&&_(d).length){const l={[`${i.value}-container`]:!0,[`${i.value}-blur`]:a.value};return $(r("div",{class:[`${i.value}-nested-loading`,n.wrapperClassName,y.value]},[a.value&&r("div",{key:"loading"},[h]),r("div",{class:l,key:"container"},[d])]))}return $(h)}}});w.setDefaultIndicator=Z;w.install=function(n){return n.component(w.name,w),n};export{w as default,W as spinProps};
|
package/src/assets/web-panel/assets/{initDefaultProps-BoLcNBz9.js → initDefaultProps-Co0jgVso.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as s}from"./index-
|
|
1
|
+
import{h as s}from"./index-JP5LGd1K.js";const n=(p,o)=>{const r=s({},p);return Object.keys(o).forEach(t=>{const e=r[t];if(e)e.type||e.default?e.default=o[t]:e.def?e.def(o[t]):r[t]={type:e,default:o[t]};else throw new Error(`not have ${t} prop`)}),r};export{n as i};
|
|
@@ -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-JP5LGd1K.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-JP5LGd1K.js";import{i as s}from"./motion-Zw-nUuCZ.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-JP5LGd1K.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};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
function p(o){const e=o.split(`
|
|
2
|
+
`),s=[];let t="built-in";for(const r of e){const a=r.trim();if(!a||a.startsWith("─")||a.startsWith("="))continue;const i=a.match(/^([a-z][a-z0-9-]+)\s+\(\d+\)$/);if(i){t=i[1];continue}const n=a.match(/^[●•]\s+([a-z][a-z0-9-]+)\s+(.+)$/);if(n){let c=n[2].trim();const m=c.match(/\s+\[(bundled|project|managed|workspace|marketplace)\]$/);m&&(c=c.slice(0,-m[0].length).trim());const u=t.includes("agent")?"agent":t.includes("llm")?"llm-query":t==="cli-direct"||t.includes("cli")?"cli-direct":"built-in";s.push({name:n[1],description:c,category:t,executionMode:u});continue}const l=a.match(/^([a-z][a-z0-9-]+)\s+[-–]\s+(.+)/)||a.match(/^([a-z][a-z0-9-]+)\s{2,}(.+)/);l&&s.push({name:l[1],description:l[2],category:t,executionMode:t.includes("agent")?"agent":t.includes("llm")?"llm-query":t.includes("cli")?"cli-direct":"built-in"})}return s}const f=[{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 d(o){const e=[];for(const s of f)e.push({...s,configured:o.toLowerCase().includes(s.name),active:o.match(new RegExp(`\\*\\s*${s.name}`,"i"))!==null,status:"unknown"});if(!e.find(s=>s.active)){const s=o.match(/active[:\s]+(\w+)/i);if(s){const t=e.find(r=>r.name===s[1].toLowerCase());t&&(t.active=!0)}}return e}function h(o){return o.split(`
|
|
3
|
+
`).map(e=>e.trim()).filter(e=>e&&!e.startsWith("#")&&!e.startsWith("─")&&e.includes(":")).map(e=>({name:e,size:""})).slice(0,20)}function b(o){const e={};if(!o)return e;try{const a=JSON.parse(o.trim()),i=a.llm||a;return i.provider&&(e.provider=i.provider),i.model&&(e.model=i.model),i.apiKey&&(e.apiKey=i.apiKey),i.baseUrl&&(e.baseUrl=i.baseUrl),i.temperature!==void 0&&(e.temperature=Number(i.temperature)),i.maxTokens!==void 0&&(e.maxTokens=Number(i.maxTokens)),e}catch{}const s=(a,i)=>{const n=i.trim(),l=a.toLowerCase();if(l==="provider"&&n)e.provider=n;else if(l==="model"&&n)e.model=n;else if(l==="apikey"&&n)n.includes("***")||(e.apiKey=n);else if(l==="baseurl")e.baseUrl=n;else if(l==="temperature"){const c=parseFloat(n);isNaN(c)||(e.temperature=c)}else if(l==="maxtokens"){const c=parseInt(n,10);isNaN(c)||(e.maxTokens=c)}};let t=null;const r=o.split(`
|
|
4
|
+
`);for(const a of r){if(!a.trim())continue;const i=a.trim(),n=i.match(/^llm\.(\w+)\s*[=:]\s*(.+)$/i);if(n){s(n[1],n[2]);continue}const l=i.match(/^([a-zA-Z][\w-]*)\s*:\s*$/);if(l){t=l[1].toLowerCase();continue}if(t!=="llm")continue;const c=i.match(/^(\w+)\s*[=:]\s*(.+)$/);c&&s(c[1],c[2])}return e}export{d as a,h as b,b as c,p};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-JP5LGd1K.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-CrNWpNSF.js → placementArrow-DoUJMHry.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-JP5LGd1K.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-aHLPN464.js → responsiveObserve-QHPYy6hK.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as o,h}from"./index-
|
|
1
|
+
import{I as o,h}from"./index-JP5LGd1K.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-JP5LGd1K.js";import{i as e}from"./motion-Zw-nUuCZ.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-JP5LGd1K.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-JP5LGd1K.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-BgdPlW7E.js → useFlexGapSupport-CJmU3crw.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as o}from"./styleChecker-
|
|
1
|
+
import{d as o}from"./styleChecker-DuWlOmft.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-JP5LGd1K.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as _}from"./index-
|
|
1
|
+
import{u as _}from"./index-JP5LGd1K.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}function p(r,t,a,e,n){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:t,...a},n).then(d):new Promise((u,s)=>{const c=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${t}.event`,m=`${t}.end`;let l=!1,y=()=>{};const o=(i,b)=>{if(!l){l=!0,clearTimeout(g);try{y()}catch{}i(b)}},g=setTimeout(()=>{o(s,new Error(`stream timeout (${n}ms): ${t}`))},n),h=r.onMessage(i=>{if(!(l||!i)&&!(i.id!==c&&i.requestId!==c)){if(i.type===w){if(typeof e=="function")try{e(i.event||i)}catch{}return}if(i.type===m){o(u,d(i));return}i.type==="error"&&o(s,new Error(i.message||"stream error"))}});y=typeof h=="function"?h:()=>{},Promise.resolve(r.sendRaw({id:c,type:t,...a},n)).catch(()=>{})})}function D(){const r=_(),t=(a,e={},n=3e4)=>r.sendRaw({type:a,...e},n).then(d);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 p(r,"personal-data-hub.sync-adapter-stream",{name:a,options:e},n,6e5)},async syncAllStream(a={},e){return await p(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:s}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:n,fridaOpts:u,keyProviderOverride:s},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)},async bilibiliAdbSync(a={}){return await t("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await t("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await t("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await t("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await t("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await t("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await t("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await t("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{D 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-JP5LGd1K.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-JP5LGd1K.js";import{i as f}from"./motion-Zw-nUuCZ.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,7 +8,7 @@
|
|
|
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-JP5LGd1K.js"></script>
|
|
12
12
|
<link rel="modulepreload" crossorigin href="./assets/vendor-DhFY8mDK.js">
|
|
13
13
|
<link rel="modulepreload" crossorigin href="./assets/icons-AILO5ZcK.js">
|
|
14
14
|
<link rel="stylesheet" crossorigin href="./assets/index-CfX1DEtk.css">
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
|
|
17
17
|
import { _internal } from "../hub.js";
|
|
18
18
|
|
|
19
|
-
const { cmdAsk, parsePositiveInt } = _internal;
|
|
19
|
+
const { cmdAsk, cmdRetrieveContext, parsePositiveInt } = _internal;
|
|
20
20
|
|
|
21
21
|
let exitSpy, logSpy;
|
|
22
22
|
|
|
@@ -134,3 +134,106 @@ describe("cc hub ask --max-facts / --max-query-limit", () => {
|
|
|
134
134
|
}
|
|
135
135
|
});
|
|
136
136
|
});
|
|
137
|
+
|
|
138
|
+
// ─── retrieve-context (LLM-free RAG preflight, cloud-LLM bridge) ────────
|
|
139
|
+
//
|
|
140
|
+
// Bridges Android CLOUD_ANDROID route to RAG. Caller spawns this command
|
|
141
|
+
// to get { messages, factIds, ... } then POSTs `messages` to the cloud
|
|
142
|
+
// provider (Doubao / DeepSeek / Kimi / etc.) directly. NO LLM here.
|
|
143
|
+
|
|
144
|
+
function makeStubHubWithRetrieve() {
|
|
145
|
+
const retrieveSpy = vi.fn(async (q, opts) => ({
|
|
146
|
+
question: q,
|
|
147
|
+
parsed: {
|
|
148
|
+
raw: q,
|
|
149
|
+
intent: "list",
|
|
150
|
+
entityFocus: null,
|
|
151
|
+
timeWindow: null,
|
|
152
|
+
filters: {},
|
|
153
|
+
},
|
|
154
|
+
facts: [],
|
|
155
|
+
factIds: [],
|
|
156
|
+
factCount: 0,
|
|
157
|
+
truncated: 0,
|
|
158
|
+
ragContextIds: [],
|
|
159
|
+
messages: [
|
|
160
|
+
{ role: "system", content: "system prompt" },
|
|
161
|
+
{ role: "user", content: `USER QUESTION: ${q}` },
|
|
162
|
+
],
|
|
163
|
+
systemPrompt: "system prompt",
|
|
164
|
+
retrievedAt: 0,
|
|
165
|
+
durationMs: 1,
|
|
166
|
+
_maxFactsSeen: opts?.maxFacts,
|
|
167
|
+
_maxQueryLimitSeen: opts?.maxQueryLimit,
|
|
168
|
+
}));
|
|
169
|
+
return {
|
|
170
|
+
retrieveSpy,
|
|
171
|
+
_getHub: async () => ({ engine: { retrieveContext: retrieveSpy } }),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
describe("cc hub retrieve-context", () => {
|
|
176
|
+
it("forwards parsed budget to engine.retrieveContext()", async () => {
|
|
177
|
+
const { retrieveSpy, _getHub } = makeStubHubWithRetrieve();
|
|
178
|
+
await cmdRetrieveContext("我有哪些联系人", {
|
|
179
|
+
maxFacts: "20",
|
|
180
|
+
maxQueryLimit: "50",
|
|
181
|
+
_getHub,
|
|
182
|
+
});
|
|
183
|
+
expect(retrieveSpy).toHaveBeenCalledTimes(1);
|
|
184
|
+
const [q, opts] = retrieveSpy.mock.calls[0];
|
|
185
|
+
expect(q).toBe("我有哪些联系人");
|
|
186
|
+
expect(opts.maxFacts).toBe(20);
|
|
187
|
+
expect(opts.maxQueryLimit).toBe(50);
|
|
188
|
+
// skipAudit=false by default — retrieve writes its own audit row distinct
|
|
189
|
+
// from ask's, so the desktop / Android side can tell apart "LLM-free
|
|
190
|
+
// preflight" vs "full ask" in audit_log filter views.
|
|
191
|
+
expect(opts.skipAudit).toBe(false);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
it("outputs JSON unconditionally (machine-only command)", async () => {
|
|
195
|
+
const { _getHub } = makeStubHubWithRetrieve();
|
|
196
|
+
await cmdRetrieveContext("hello", { _getHub });
|
|
197
|
+
expect(logSpy).toHaveBeenCalled();
|
|
198
|
+
const printed = logSpy.mock.calls[0][0];
|
|
199
|
+
// printJson stringifies the result; basic shape check.
|
|
200
|
+
const parsed = JSON.parse(printed);
|
|
201
|
+
expect(parsed).toHaveProperty("messages");
|
|
202
|
+
expect(parsed).toHaveProperty("factIds");
|
|
203
|
+
expect(Array.isArray(parsed.messages)).toBe(true);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it("omits maxFacts/maxQueryLimit when flags absent (engine uses defaults)", async () => {
|
|
207
|
+
const { retrieveSpy, _getHub } = makeStubHubWithRetrieve();
|
|
208
|
+
await cmdRetrieveContext("hello", { _getHub });
|
|
209
|
+
const [, opts] = retrieveSpy.mock.calls[0];
|
|
210
|
+
expect(opts).not.toHaveProperty("maxFacts");
|
|
211
|
+
expect(opts).not.toHaveProperty("maxQueryLimit");
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it("does NOT touch acceptNonLocal (no LLM call → no privacy gate here)", async () => {
|
|
215
|
+
const { retrieveSpy, _getHub } = makeStubHubWithRetrieve();
|
|
216
|
+
// Even if env demanding non-local, retrieve-context still runs — the
|
|
217
|
+
// caller's own LLM provider is the gate. Verify retrieveContext was
|
|
218
|
+
// called without acceptNonLocal being forwarded.
|
|
219
|
+
process.env.CC_HUB_ALLOW_NON_LOCAL = "1";
|
|
220
|
+
await cmdRetrieveContext("hello", { _getHub });
|
|
221
|
+
const [, opts] = retrieveSpy.mock.calls[0];
|
|
222
|
+
expect(opts).not.toHaveProperty("acceptNonLocal");
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
it("exits 1 with JSON error envelope when engine throws", async () => {
|
|
226
|
+
const errGetHub = async () => ({
|
|
227
|
+
engine: {
|
|
228
|
+
retrieveContext: async () => {
|
|
229
|
+
throw new Error("vault not open");
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
await cmdRetrieveContext("hello", { _getHub: errGetHub });
|
|
234
|
+
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
235
|
+
const errPrinted = logSpy.mock.calls[0][0];
|
|
236
|
+
const parsed = JSON.parse(errPrinted);
|
|
237
|
+
expect(parsed.error).toMatch(/vault not open/);
|
|
238
|
+
});
|
|
239
|
+
});
|
package/src/commands/hub.js
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
import chalk from "chalk";
|
|
19
19
|
import ora from "ora";
|
|
20
20
|
import { logger } from "../lib/logger.js";
|
|
21
|
-
import { getHub } from "../lib/personal-data-hub-wiring.js";
|
|
21
|
+
import { getHub, getHubMinimal } from "../lib/personal-data-hub-wiring.js";
|
|
22
22
|
import { getAIChatWizard } from "../lib/personal-data-hub-aichat-wizard.js";
|
|
23
23
|
|
|
24
24
|
function printJson(obj) {
|
|
@@ -121,6 +121,55 @@ async function cmdAsk(question, options) {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
// ─── retrieve-context (LLM-free RAG preflight) ─────────────────────────
|
|
125
|
+
//
|
|
126
|
+
// 2026-05-27 — Bridges Android CLOUD_ANDROID route to RAG. AnalysisEngine
|
|
127
|
+
// already exposes `retrieveContext()` which runs parseQuery → _gatherFacts
|
|
128
|
+
// → buildPrompt and returns the LLM-ready messages WITHOUT calling any
|
|
129
|
+
// LLM. This subcommand surfaces that JSON to stdout so a non-Ollama
|
|
130
|
+
// caller (Android cloud LLM provider — Doubao / DeepSeek / Kimi) can:
|
|
131
|
+
// 1. Spawn `cc hub retrieve-context "<q>" --max-facts 20 --json`
|
|
132
|
+
// 2. Parse JSON → get { messages, factIds, factCount, parsed, ... }
|
|
133
|
+
// 3. POST messages to the cloud LLM provider directly
|
|
134
|
+
// 4. Validate citations from the answer against factIds locally
|
|
135
|
+
//
|
|
136
|
+
// Privacy invariant: retrieveContext does NOT invoke any LLM, so it never
|
|
137
|
+
// touches `acceptNonLocal` — the caller's own gate is the gate. The
|
|
138
|
+
// returned messages contain raw user data (events / persons / items)
|
|
139
|
+
// formatted as the prompt's FACTS block; the caller is responsible for
|
|
140
|
+
// where they POST it.
|
|
141
|
+
|
|
142
|
+
async function cmdRetrieveContext(question, options) {
|
|
143
|
+
try {
|
|
144
|
+
// §S4.1 cold-start optimization — when --minimal (or default to true
|
|
145
|
+
// since this command never needs adapters), use getHubMinimal which
|
|
146
|
+
// skips the 50+ adapter registry + KG/RAG sinks + email account auto-
|
|
147
|
+
// load + ADB extension imports. retrieveContext only touches vault
|
|
148
|
+
// queries + AnalysisEngine, so the full hub init is wasted work.
|
|
149
|
+
// In-APK Android cold-start drops from ~90s to <5s. Tests can still
|
|
150
|
+
// pass _getHub override for stubbing.
|
|
151
|
+
const useMinimal = options.minimal !== false; // default true
|
|
152
|
+
const hub = options._getHub
|
|
153
|
+
? await options._getHub()
|
|
154
|
+
: useMinimal
|
|
155
|
+
? await getHubMinimal()
|
|
156
|
+
: await getHub();
|
|
157
|
+
if (!hub.engine) throw new Error("Analysis engine unavailable");
|
|
158
|
+
const maxFacts = parsePositiveInt(options.maxFacts);
|
|
159
|
+
const maxQueryLimit = parsePositiveInt(options.maxQueryLimit);
|
|
160
|
+
const retrieveOptions = { skipAudit: false };
|
|
161
|
+
if (maxFacts !== null) retrieveOptions.maxFacts = maxFacts;
|
|
162
|
+
if (maxQueryLimit !== null) retrieveOptions.maxQueryLimit = maxQueryLimit;
|
|
163
|
+
const result = await hub.engine.retrieveContext(question, retrieveOptions);
|
|
164
|
+
// Always JSON output — this command is machine-only by design. The
|
|
165
|
+
// shape mirrors AnalysisEngine.retrieveContext return + the system
|
|
166
|
+
// prompt baked in (so the caller doesn't need to re-fetch it).
|
|
167
|
+
printJson(result);
|
|
168
|
+
} catch (err) {
|
|
169
|
+
fail(null, err, true /* json */);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
124
173
|
// ─── stats ────────────────────────────────────────────────────────────
|
|
125
174
|
|
|
126
175
|
async function cmdStats(options) {
|
|
@@ -1960,6 +2009,25 @@ export function registerHubCommand(program) {
|
|
|
1960
2009
|
.option("--json", "Output JSON")
|
|
1961
2010
|
.action(cmdAsk);
|
|
1962
2011
|
|
|
2012
|
+
hub
|
|
2013
|
+
.command("retrieve-context <question>")
|
|
2014
|
+
.description(
|
|
2015
|
+
"RAG preflight — gather facts + build LLM prompt WITHOUT calling LLM (for cloud-LLM callers that need RAG context)",
|
|
2016
|
+
)
|
|
2017
|
+
.option(
|
|
2018
|
+
"--max-facts <n>",
|
|
2019
|
+
"Cap facts in prompt (default 80; on-device small models e.g. Qwen2.5-1.5B should pass 20)",
|
|
2020
|
+
)
|
|
2021
|
+
.option(
|
|
2022
|
+
"--max-query-limit <n>",
|
|
2023
|
+
"Cap vault queryEvents limit (default 200; small-model callers should pass 50)",
|
|
2024
|
+
)
|
|
2025
|
+
.option(
|
|
2026
|
+
"--no-minimal",
|
|
2027
|
+
"Use full hub init (with adapters / KG / RAG sinks). Default uses minimal init (vault + engine only) which is ~10-20x faster on cold-start.",
|
|
2028
|
+
)
|
|
2029
|
+
.action(cmdRetrieveContext);
|
|
2030
|
+
|
|
1963
2031
|
hub
|
|
1964
2032
|
.command("stats")
|
|
1965
2033
|
.description("Vault row counts + registered adapter list + hub paths")
|
|
@@ -2379,6 +2447,7 @@ export function registerHubCommand(program) {
|
|
|
2379
2447
|
// real `getHub()` call. The commander wiring above is the runtime path.
|
|
2380
2448
|
export const _internal = {
|
|
2381
2449
|
cmdAsk,
|
|
2450
|
+
cmdRetrieveContext,
|
|
2382
2451
|
parsePositiveInt,
|
|
2383
2452
|
cmdAIChatList,
|
|
2384
2453
|
cmdAIChatLogin,
|
|
@@ -1273,6 +1273,95 @@ export async function getHub() {
|
|
|
1273
1273
|
return _initPromise;
|
|
1274
1274
|
}
|
|
1275
1275
|
|
|
1276
|
+
// ─── Minimal hub bootstrap for read-only / LLM-free commands ────────────
|
|
1277
|
+
//
|
|
1278
|
+
// 2026-05-27 — `cc hub retrieve-context` cold-start was 90s+ on Android
|
|
1279
|
+
// because initHub() wires 50+ adapters + KG sink + RAG sink + EntityResolver
|
|
1280
|
+
// + email accounts auto-load + 6 ADB extension imports — none of which
|
|
1281
|
+
// retrieveContext actually needs. AnalysisEngine.retrieveContext only
|
|
1282
|
+
// touches: vault.queryEvents / queryPersons / queryItems / stats / audit /
|
|
1283
|
+
// searchEvents / searchPersons. No adapters. No LLM call. Skipping the
|
|
1284
|
+
// heavy wiring should cut cold-start from ~90s to <5s in-APK.
|
|
1285
|
+
//
|
|
1286
|
+
// Singleton-cached separately from full hub — if the user later runs a
|
|
1287
|
+
// `cc hub sync-adapter` in the same process, getHub() lazy-builds the
|
|
1288
|
+
// full hub on demand. The minimal hub's vault is closed when full hub
|
|
1289
|
+
// boots to avoid double-open contention (SQLCipher allows single writer).
|
|
1290
|
+
//
|
|
1291
|
+
// Returns the same shape as getHub() for the keys retrieveContext needs:
|
|
1292
|
+
// { hubDir, vault, engine, llm, kgSink:null, ragSink:null, registry:null }.
|
|
1293
|
+
|
|
1294
|
+
let _hubMinimal = null;
|
|
1295
|
+
let _hubMinimalInitPromise = null;
|
|
1296
|
+
|
|
1297
|
+
async function initHubMinimal() {
|
|
1298
|
+
const hubDir = resolveHubDir();
|
|
1299
|
+
mkdirSync(hubDir, { recursive: true });
|
|
1300
|
+
mkdirSync(join(hubDir, "keys"), { recursive: true });
|
|
1301
|
+
|
|
1302
|
+
const keyProvider = new FileKeyProvider(join(hubDir, "keys"));
|
|
1303
|
+
const KEY_NAME = "vault:default";
|
|
1304
|
+
let key = await keyProvider.get(KEY_NAME);
|
|
1305
|
+
if (!key) {
|
|
1306
|
+
key = generateKeyHex();
|
|
1307
|
+
await keyProvider.set(KEY_NAME, key);
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
const vault = new LocalVault({ path: join(hubDir, "vault.db"), key });
|
|
1311
|
+
vault.open();
|
|
1312
|
+
|
|
1313
|
+
// No LLM: retrieveContext is LLM-free. AnalysisEngine constructor still
|
|
1314
|
+
// requires a `llm` arg with chat() + isLocal — pass a sentinel that
|
|
1315
|
+
// throws if anyone actually calls it (defense against future code
|
|
1316
|
+
// accidentally invoking ask() via this minimal hub).
|
|
1317
|
+
const sentinelLlm = {
|
|
1318
|
+
isLocal: true,
|
|
1319
|
+
name: "minimal-hub-sentinel",
|
|
1320
|
+
chat: () => {
|
|
1321
|
+
throw new Error(
|
|
1322
|
+
"minimal hub: LLM unavailable — use getHub() for ask() / chat paths",
|
|
1323
|
+
);
|
|
1324
|
+
},
|
|
1325
|
+
};
|
|
1326
|
+
|
|
1327
|
+
const engine = new AnalysisEngine({
|
|
1328
|
+
vault,
|
|
1329
|
+
llm: sentinelLlm,
|
|
1330
|
+
// No ragRetriever — BM25 sink is part of full hub init, skip here.
|
|
1331
|
+
});
|
|
1332
|
+
|
|
1333
|
+
return {
|
|
1334
|
+
hubDir,
|
|
1335
|
+
vault,
|
|
1336
|
+
engine,
|
|
1337
|
+
llm: null,
|
|
1338
|
+
kgSink: null,
|
|
1339
|
+
ragSink: null,
|
|
1340
|
+
registry: null,
|
|
1341
|
+
minimal: true,
|
|
1342
|
+
};
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
export async function getHubMinimal() {
|
|
1346
|
+
if (_hubMinimal) return _hubMinimal;
|
|
1347
|
+
// If full hub is already initialized, reuse its vault + engine — opening
|
|
1348
|
+
// a second LocalVault against the same SQLCipher DB would fight for the
|
|
1349
|
+
// file lock.
|
|
1350
|
+
if (_hub) return _hub;
|
|
1351
|
+
if (!_hubMinimalInitPromise) {
|
|
1352
|
+
_hubMinimalInitPromise = initHubMinimal()
|
|
1353
|
+
.then((h) => {
|
|
1354
|
+
_hubMinimal = h;
|
|
1355
|
+
return h;
|
|
1356
|
+
})
|
|
1357
|
+
.catch((err) => {
|
|
1358
|
+
_hubMinimalInitPromise = null;
|
|
1359
|
+
throw err;
|
|
1360
|
+
});
|
|
1361
|
+
}
|
|
1362
|
+
return _hubMinimalInitPromise;
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1276
1365
|
export function close() {
|
|
1277
1366
|
if (_hub && _hub.aichatHealthChecker) {
|
|
1278
1367
|
try {
|
|
@@ -1284,8 +1373,15 @@ export function close() {
|
|
|
1284
1373
|
_hub.vault.close();
|
|
1285
1374
|
} catch (_e) {}
|
|
1286
1375
|
}
|
|
1376
|
+
if (_hubMinimal && _hubMinimal.vault && _hubMinimal !== _hub) {
|
|
1377
|
+
try {
|
|
1378
|
+
_hubMinimal.vault.close();
|
|
1379
|
+
} catch (_e) {}
|
|
1380
|
+
}
|
|
1287
1381
|
_hub = null;
|
|
1288
1382
|
_initPromise = null;
|
|
1383
|
+
_hubMinimal = null;
|
|
1384
|
+
_hubMinimalInitPromise = null;
|
|
1289
1385
|
_bm25 = null;
|
|
1290
1386
|
_kgMod = null;
|
|
1291
1387
|
_bm25Mod = null;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.providers-grid[data-v-38d68389]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.provider-card[data-v-38d68389]{border:1px solid var(--border-color)!important;transition:border-color .2s}.provider-card[data-v-38d68389]:hover{border-color:var(--text-muted)!important}.provider-card.active[data-v-38d68389]{border-color:#52c41a!important;background:#29a27014!important}.section-title[data-v-38d68389]{color:var(--text-primary, #ccc);font-size:16px;font-weight:500;margin:0}.config-card[data-v-38d68389]{border-radius:8px}.config-card[data-v-38d68389] .ant-card-body{padding:24px}.config-form[data-v-38d68389] .ant-form-item-label>label{color:var(--text-secondary, #aaa);font-size:13px}.config-form[data-v-38d68389] .ant-input,.config-form[data-v-38d68389] .ant-input-password input,.config-form[data-v-38d68389] .ant-input-number,.config-form[data-v-38d68389] .ant-select-selector{background:var(--bg-card-hover, #1a1a1a)!important;border-color:var(--border-color, #333)!important;color:var(--text-primary, #e0e0e0)!important}.config-form[data-v-38d68389] .ant-input::placeholder,.config-form[data-v-38d68389] .ant-input-password input::placeholder{color:var(--text-muted, #555)!important}.config-form[data-v-38d68389] .ant-input-number-input,.config-form[data-v-38d68389] .ant-select-selection-item{color:var(--text-primary, #e0e0e0)!important}.config-form[data-v-38d68389] .ant-select-arrow{color:var(--text-muted, #555)}.config-form[data-v-38d68389] .ant-slider-rail{background:var(--border-color, #333)}.config-form[data-v-38d68389] .ant-slider-track{background:#1890ff}.config-form[data-v-38d68389] .ant-slider-handle{border-color:#1890ff}.config-form[data-v-38d68389] .ant-input-password-icon{color:var(--text-muted, #555)}.config-grid[data-v-38d68389]{display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px}@media(max-width:640px){.config-grid[data-v-38d68389]{grid-template-columns:1fr}}
|