chainlesschain 0.162.114 → 0.162.115

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.
Files changed (150) hide show
  1. package/package.json +1 -1
  2. package/src/assets/web-panel/assets/{AIOps-0-uMzHS0.js → AIOps-Co3Wa2si.js} +1 -1
  3. package/src/assets/web-panel/assets/{ActionButton-DIZPfP0j.js → ActionButton-CLu_iLWH.js} +1 -1
  4. package/src/assets/web-panel/assets/{Analytics-D0XaT-HY.js → Analytics-BZM53XMx.js} +3 -3
  5. package/src/assets/web-panel/assets/{AppLayout-BTRaqYvd.js → AppLayout-BvWMuVj5.js} +3 -3
  6. package/src/assets/web-panel/assets/{Audit-CNf5Kaoi.js → Audit-LnZR0-SB.js} +1 -1
  7. package/src/assets/web-panel/assets/{Backup-BAo4Hi0L.js → Backup-m1_KWvdD.js} +1 -1
  8. package/src/assets/web-panel/assets/{BaseInput-Cvl0T59f.js → BaseInput-DCOyDzK5.js} +1 -1
  9. package/src/assets/web-panel/assets/{Chat-Cun14ni3.js → Chat-BxctrF91.js} +6 -6
  10. package/src/assets/web-panel/assets/{ChatBubbleRenderer-CVSvw44R.js → ChatBubbleRenderer-Cr-ifTsG.js} +1 -1
  11. package/src/assets/web-panel/assets/{Checkbox-DJdTjyls.js → Checkbox-CiI-q7XC.js} +1 -1
  12. package/src/assets/web-panel/assets/{Codegen-Bz_l_yn_.js → Codegen-Bs5RpmWs.js} +1 -1
  13. package/src/assets/web-panel/assets/{Col-Bht2QpqM.js → Col-By1dCa5E.js} +1 -1
  14. package/src/assets/web-panel/assets/{Community-7KcO0kT1.js → Community-WuZZQrIQ.js} +1 -1
  15. package/src/assets/web-panel/assets/{Compact-B7rBvHIs.js → Compact-Bgjv17zY.js} +1 -1
  16. package/src/assets/web-panel/assets/{Compliance-BuxUJTnd.js → Compliance-CANmPNTe.js} +1 -1
  17. package/src/assets/web-panel/assets/{Cowork-CJdjs2tJ.js → Cowork-B5vtDpAA.js} +2 -2
  18. package/src/assets/web-panel/assets/{Cron-BZFJ7-YN.js → Cron-CD1EDrV4.js} +2 -2
  19. package/src/assets/web-panel/assets/{Crosschain-BKsLLmuh.js → Crosschain-C8VDvGgO.js} +1 -1
  20. package/src/assets/web-panel/assets/{DID-BxRlZh9g.js → DID-DpZV0N2H.js} +2 -2
  21. package/src/assets/web-panel/assets/{Dashboard-B6RppX5d.js → Dashboard-NhU8jHSF.js} +2 -2
  22. package/src/assets/web-panel/assets/{Dropdown-DKtl6tbR.js → Dropdown-D-r8yZE9.js} +1 -1
  23. package/src/assets/web-panel/assets/{EmailListRenderer-BRyFvNHM.js → EmailListRenderer-DG89eV-l.js} +1 -1
  24. package/src/assets/web-panel/assets/{FamilyGuardDashboard-C99TnWli.js → FamilyGuardDashboard-G-b864Cs.js} +1 -1
  25. package/src/assets/web-panel/assets/{Federation-lC9Io-Wx.js → Federation-yBmOj1ob.js} +1 -1
  26. package/src/assets/web-panel/assets/{FormItemContext-kTzkIiAH.js → FormItemContext-Cb7_kwNJ.js} +1 -1
  27. package/src/assets/web-panel/assets/{GenericCardRenderer-ffjSPeHn.js → GenericCardRenderer-DH-hOAyY.js} +1 -1
  28. package/src/assets/web-panel/assets/{Git-Ch-eo0ft.js → Git-DsxDUo_n.js} +2 -2
  29. package/src/assets/web-panel/assets/{Governance-CSlXyDt9.js → Governance-9tswXx9m.js} +1 -1
  30. package/src/assets/web-panel/assets/{Inference-innJ4CHB.js → Inference-BBp_JKRI.js} +1 -1
  31. package/src/assets/web-panel/assets/{KnowledgeGraph-BoKWXlKH.js → KnowledgeGraph-Dh1Hy3KR.js} +1 -1
  32. package/src/assets/web-panel/assets/{Logs-Bvu1ZVlJ.js → Logs-B4dKW6iL.js} +2 -2
  33. package/src/assets/web-panel/assets/{Marketplace-Bz5plU9l.js → Marketplace-BwG7IJMb.js} +1 -1
  34. package/src/assets/web-panel/assets/{McpTools-Ce2O172z.js → McpTools-Bkem_Aad.js} +5 -5
  35. package/src/assets/web-panel/assets/{Memory-CVTPzpDT.js → Memory--XBiW9hE.js} +2 -2
  36. package/src/assets/web-panel/assets/{MobileBridge-DroRONe3.js → MobileBridge-Cw3bfWS4.js} +2 -2
  37. package/src/assets/web-panel/assets/MobileProjects-DxtImZQU.js +1 -0
  38. package/src/assets/web-panel/assets/{Mtc-BLe-_MDX.js → Mtc-BGF20OtO.js} +4 -4
  39. package/src/assets/web-panel/assets/{MtcAudit-Cx6CIX_g.js → MtcAudit-D7z4gsQ5.js} +6 -6
  40. package/src/assets/web-panel/assets/{Multisig-OEeP6h30.js → Multisig-yXwos6j_.js} +3 -3
  41. package/src/assets/web-panel/assets/{NLProgramming-B79aNNrY.js → NLProgramming-CDHJQX6y.js} +1 -1
  42. package/src/assets/web-panel/assets/{Notes-BzKbClTh.js → Notes-D39k9gda.js} +4 -4
  43. package/src/assets/web-panel/assets/{NotificationSettings-6BcdjMJk.js → NotificationSettings-DRPq8tRI.js} +1 -1
  44. package/src/assets/web-panel/assets/{OrderTableRenderer-BdA4JzRg.js → OrderTableRenderer-D2hEsaLV.js} +1 -1
  45. package/src/assets/web-panel/assets/{Organization-B_g6tN2h.js → Organization--o8Lvsg2.js} +4 -4
  46. package/src/assets/web-panel/assets/{Overflow-BPeDct0h.js → Overflow-D2ohI9Qx.js} +1 -1
  47. package/src/assets/web-panel/assets/{P2P-AbEH8Ad6.js → P2P-2c8cEXWp.js} +2 -2
  48. package/src/assets/web-panel/assets/{PdhVaultBrowser-DTYIEFuT.js → PdhVaultBrowser-D7NaNkzj.js} +5 -5
  49. package/src/assets/web-panel/assets/{Permissions-Mtl6DRWC.js → Permissions-ypORwVpA.js} +4 -4
  50. package/src/assets/web-panel/assets/{PersonalDataHub-CrfCdPgN.js → PersonalDataHub-CwGL8rYc.js} +3 -3
  51. package/src/assets/web-panel/assets/{Pipeline-Znd89-so.js → Pipeline-sOxtzc6E.js} +1 -1
  52. package/src/assets/web-panel/assets/{Privacy-1QK70XJJ.js → Privacy-DQn-uEJl.js} +1 -1
  53. package/src/assets/web-panel/assets/{ProjectInit-Dbh6fHo4.js → ProjectInit-8C5fy5dR.js} +2 -2
  54. package/src/assets/web-panel/assets/{ProjectSettings-CtqWEUUX.js → ProjectSettings-CX_i2PB9.js} +2 -2
  55. package/src/assets/web-panel/assets/{Projects-C1vdepHb.js → Projects-CHTItBCE.js} +1 -1
  56. package/src/assets/web-panel/assets/{Providers-VRTSkt2N.js → Providers-hTVigloe.js} +1 -1
  57. package/src/assets/web-panel/assets/{QuickAsk-CP2dz_95.js → QuickAsk-BqHj37NO.js} +1 -1
  58. package/src/assets/web-panel/assets/{Recommend-Bc81SmNo.js → Recommend-W6Fz6lz7.js} +1 -1
  59. package/src/assets/web-panel/assets/{Reputation-cRunHZiV.js → Reputation-BgEa2pxb.js} +1 -1
  60. package/src/assets/web-panel/assets/{Row-BwL7ApAT.js → Row-DyIFWI6T.js} +1 -1
  61. package/src/assets/web-panel/assets/{RssFeed-BVbyxvzm.js → RssFeed-CEYCVpMw.js} +3 -3
  62. package/src/assets/web-panel/assets/{Search-D5PgTvOP.js → Search-zVLBmQ7o.js} +1 -1
  63. package/src/assets/web-panel/assets/{Security-Ddt1DCcC.js → Security-CqsG8Ps9.js} +3 -3
  64. package/src/assets/web-panel/assets/{Services-6UaJxmZU.js → Services-BfBS_Jgz.js} +2 -2
  65. package/src/assets/web-panel/assets/{Skeleton-DFRbEQwp.js → Skeleton-Soo_Vk86.js} +1 -1
  66. package/src/assets/web-panel/assets/{Skills-5yq43K-X.js → Skills-PuZUk7l4.js} +1 -1
  67. package/src/assets/web-panel/assets/{Sla-yMroQlH9.js → Sla-CyXFxluF.js} +1 -1
  68. package/src/assets/web-panel/assets/{SpeechSettings-B2S3Iamq.js → SpeechSettings-Bix3Aslu.js} +1 -1
  69. package/src/assets/web-panel/assets/{SyncSettings-BkKtXU71.js → SyncSettings-CIpNxBVI.js} +2 -2
  70. package/src/assets/web-panel/assets/{Tasks-CBtNUwgq.js → Tasks-S3P_gUGK.js} +1 -1
  71. package/src/assets/web-panel/assets/{Templates-C2drh0s2.js → Templates-ApPjFp6V.js} +1 -1
  72. package/src/assets/web-panel/assets/{Tenant-BLk2CVEv.js → Tenant-CA39QBQx.js} +1 -1
  73. package/src/assets/web-panel/assets/{Terminal-mElJ0fhK.js → Terminal-CZCQVy4D.js} +2 -2
  74. package/src/assets/web-panel/assets/{TimelineRenderer-D4E9FDsp.js → TimelineRenderer-BH_bLWth.js} +1 -1
  75. package/src/assets/web-panel/assets/{Tokens-Cgmf0-_P.js → Tokens-CnM7BBQo.js} +1 -1
  76. package/src/assets/web-panel/assets/{Trigger-BRlJLDbx.js → Trigger-BaTkvjag.js} +1 -1
  77. package/src/assets/web-panel/assets/{Trust-C6RUSQhG.js → Trust-BL5_D9F2.js} +1 -1
  78. package/src/assets/web-panel/assets/{UkeySign-Chi7u_hM.js → UkeySign-RL5tPg28.js} +1 -1
  79. package/src/assets/web-panel/assets/{VideoEditing-4-bo8EmV.js → VideoEditing-DpziQ6j6.js} +1 -1
  80. package/src/assets/web-panel/assets/{Wallet-B2hSD9eY.js → Wallet-C5TJX6y1.js} +4 -4
  81. package/src/assets/web-panel/assets/{WebAuthn-D8xa8fun.js → WebAuthn-BRmIn8F_.js} +4 -4
  82. package/src/assets/web-panel/assets/{WorkflowEditor-Db9dxskT.js → WorkflowEditor-Dcq3e-ik.js} +1 -1
  83. package/src/assets/web-panel/assets/{chat-CXYLRZpi.js → chat-CIxM8WKc.js} +1 -1
  84. package/src/assets/web-panel/assets/{colors-CaKoXOVA.js → colors-C4KulwfK.js} +1 -1
  85. package/src/assets/web-panel/assets/{compact-item-Br5NvOwQ.js → compact-item-BuSPdvu3.js} +1 -1
  86. package/src/assets/web-panel/assets/{createContext-B-yHAw0V.js → createContext-DnkNir9Q.js} +1 -1
  87. package/src/assets/web-panel/assets/devWarning-CMQKGI8R.js +1 -0
  88. package/src/assets/web-panel/assets/{hasIn-CqrdCz3g.js → hasIn-Cf4nLc1Z.js} +1 -1
  89. package/src/assets/web-panel/assets/{index-1jqJ37zO.js → index-2EWeBL-U.js} +1 -1
  90. package/src/assets/web-panel/assets/{index-D98MYD3m.js → index-B0Mg9TNh.js} +1 -1
  91. package/src/assets/web-panel/assets/{index-DaQkxUNc.js → index-BKxfssGi.js} +1 -1
  92. package/src/assets/web-panel/assets/{index-8ghdlyXM.js → index-BSSHH2wV.js} +1 -1
  93. package/src/assets/web-panel/assets/{index-nT_CmIwR.js → index-BhJdIewr.js} +1 -1
  94. package/src/assets/web-panel/assets/{index-BjAkyQXg.js → index-BiSVvB5h.js} +1 -1
  95. package/src/assets/web-panel/assets/{index-BzpkjYz4.js → index-BixeTMRH.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-D39l1vpr.js → index-BkuD99JZ.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-CVt4C93w.js → index-Bxrdsatm.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DirWkR61.js → index-Bz60EXNV.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-W_LrSwhD.js → index-C3K7gFx4.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-CuaLeS0m.js → index-CBAXN3jR.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-DHwefCFJ.js → index-CIMAqOlD.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-BWxntLTd.js → index-CWDu1oDR.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-D6ngQeA0.js → index-CZrWQUeU.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-Ds4JSZQz.js → index-Ch5ijBA1.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-CvJruKpV.js → index-ClY2B2K3.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-CQDhGgK-.js → index-Cq1Fi_sP.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-hsgVTIGX.js → index-CrjJWis4.js} +1 -1
  108. package/src/assets/web-panel/assets/index-D1b1GHRk.js +1 -0
  109. package/src/assets/web-panel/assets/{index-BQcTQlrC.js → index-D6_QgZN5.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BRlkm8k6.js → index-DGVc7PRP.js} +1 -1
  111. package/src/assets/web-panel/assets/index-DGZzQZUz.js +1 -0
  112. package/src/assets/web-panel/assets/{index-CIZKEANZ.js → index-DLj6Tgel.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-BbZxkCWu.js → index-DUZ5Kool.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-B1IlWIb6.js → index-DXmlFKkG.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-BeE50mEy.js → index-DdA5Ua1b.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CvFe9Qyg.js → index-DeMVCFm4.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-ZB70zTAh.js → index-DeV7mBjK.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-BeQiNau_.js → index-DjRLVmY5.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-DGtE2LX-.js → index-Djm5GtZl.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-BrruO38Y.js → index-DlHHHyRx.js} +3 -3
  121. package/src/assets/web-panel/assets/{index-DZ9ISv1n.js → index-DyWheeVw.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-CMecOYUY.js → index-E9E5_8nm.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-KRKDnsR0.js → index-EdjA-3Bc.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-BmV-MOO5.js → index-LeyWnzub.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-DbrcBvEd.js → index-N1ncDYAO.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-Byv9CEgj.js → index-xUqyfQDD.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-DE2mB1ae.js → index-yzjY8Axn.js} +1 -1
  128. package/src/assets/web-panel/assets/{initDefaultProps-CikG-5bi.js → initDefaultProps--8dT0H6B.js} +1 -1
  129. package/src/assets/web-panel/assets/{motion--tkkEE3m.js → motion-D90Oz3kN.js} +1 -1
  130. package/src/assets/web-panel/assets/{move-D6xAZefU.js → move-CXTvl7NU.js} +1 -1
  131. package/src/assets/web-panel/assets/{omit-CsD8Wwta.js → omit-0trPxlmr.js} +1 -1
  132. package/src/assets/web-panel/assets/{pickAttrs-D4qa94u9.js → pickAttrs-CgAAFR7h.js} +1 -1
  133. package/src/assets/web-panel/assets/{placementArrow-9fx4sI6E.js → placementArrow-CS-hpoJS.js} +1 -1
  134. package/src/assets/web-panel/assets/{responsiveObserve-DwYJKWhG.js → responsiveObserve-9S3fBAtz.js} +1 -1
  135. package/src/assets/web-panel/assets/{slide-DFxU8IG1.js → slide-B-R8yXs_.js} +1 -1
  136. package/src/assets/web-panel/assets/{statusUtils-DPAkc9NC.js → statusUtils-DQiprWuZ.js} +1 -1
  137. package/src/assets/web-panel/assets/{styleChecker-D-ByG8n4.js → styleChecker-02H_AFJW.js} +1 -1
  138. package/src/assets/web-panel/assets/{useFlexGapSupport-DwVLaYMd.js → useFlexGapSupport-9DGfLuf2.js} +1 -1
  139. package/src/assets/web-panel/assets/{useFs-CSyqOEiA.js → useFs-CrPyzwar.js} +1 -1
  140. package/src/assets/web-panel/assets/{usePersonalDataHub-B7qEu3ar.js → usePersonalDataHub-BeLgaZq9.js} +1 -1
  141. package/src/assets/web-panel/assets/{vnode-4YgwyfPJ.js → vnode-Cln6ZUUD.js} +1 -1
  142. package/src/assets/web-panel/assets/{zoom-CPUWjtMS.js → zoom-BauTGPPs.js} +1 -1
  143. package/src/assets/web-panel/index.html +1 -1
  144. package/src/commands/hub.js +46 -9
  145. package/src/lib/git-integration.js +8 -2
  146. package/src/lib/hub-llm-client.js +86 -29
  147. package/src/assets/web-panel/assets/MobileProjects-Bfp8_lJh.js +0 -1
  148. package/src/assets/web-panel/assets/devWarning-B9dp57_Q.js +0 -1
  149. package/src/assets/web-panel/assets/index-Bd3PIxeQ.js +0 -1
  150. package/src/assets/web-panel/assets/index-WpnbyTfq.js +0 -1
@@ -1,4 +1,4 @@
1
- import{K as n}from"./index-BrruO38Y.js";import{i as e}from"./motion--tkkEE3m.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),{[`
1
+ import{K as n}from"./index-DlHHHyRx.js";import{i as e}from"./motion-D90Oz3kN.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-BrruO38Y.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
+ import{i as e}from"./index-DlHHHyRx.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-BrruO38Y.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};
1
+ import{A as d}from"./index-DlHHHyRx.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};
@@ -1 +1 @@
1
- import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-D-ByG8n4.js";const r=(()=>{const e=t(!1);return o(()=>{e.value=s()}),e});export{r as u};
1
+ import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-02H_AFJW.js";const r=(()=>{const e=t(!1);return o(()=>{e.value=s()}),e});export{r as u};
@@ -1 +1 @@
1
- import{u as d}from"./index-BrruO38Y.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
+ import{u as d}from"./index-DlHHHyRx.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 f}from"./index-BrruO38Y.js";function d(n){if(!n)return n;if(n.error)throw new Error(n.error);return n.result!==void 0?n.result:n}function p(n,t,a,e,r){return typeof n.onMessage!="function"||typeof n.sendRaw!="function"?n.sendRaw({type:t,...a},r).then(d):new Promise((u,s)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${t}.event`,g=`${t}.end`;let c=!1,y=()=>{};const o=(i,b)=>{if(!c){c=!0,clearTimeout(m);try{y()}catch{}i(b)}},m=setTimeout(()=>{o(s,new Error(`stream timeout (${r}ms): ${t}`))},r),h=n.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof e=="function")try{e(i.event||i)}catch{}return}if(i.type===g){o(u,d(i));return}i.type==="error"&&o(s,new Error(i.message||"stream error"))}});y=typeof h=="function"?h:()=>{},Promise.resolve(n.sendRaw({id:l,type:t,...a},r)).catch(()=>{})})}function D(){const n=f(),t=(a,e={},r=3e4)=>n.sendRaw({type:a,...e},r).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 pickFile(a={}){try{const e=await n.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),r=e&&e.result!==void 0?e.result:e;return r&&r.ok&&typeof r.filePath=="string"?r.filePath:null}catch{return null}},async adapterReadiness(a){return await t("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},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:r=1}={}){return await t("personal-data-hub.register-mock",{name:a,count:e,seed:r})},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={},r){return await p(n,"personal-data-hub.sync-adapter-stream",{name:a,options:e},r,6e5)},async syncAllStream(a={},e){return await p(n,"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:r}={}){return await t("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:e,zipPassword:r},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,r={}){return await t("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:e,opts:r},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:r,fridaOpts:u,keyProviderOverride:s}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:r,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
+ import{u as f}from"./index-DlHHHyRx.js";function d(n){if(!n)return n;if(n.error)throw new Error(n.error);return n.result!==void 0?n.result:n}function p(n,t,a,e,r){return typeof n.onMessage!="function"||typeof n.sendRaw!="function"?n.sendRaw({type:t,...a},r).then(d):new Promise((u,s)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${t}.event`,g=`${t}.end`;let c=!1,y=()=>{};const o=(i,b)=>{if(!c){c=!0,clearTimeout(m);try{y()}catch{}i(b)}},m=setTimeout(()=>{o(s,new Error(`stream timeout (${r}ms): ${t}`))},r),h=n.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof e=="function")try{e(i.event||i)}catch{}return}if(i.type===g){o(u,d(i));return}i.type==="error"&&o(s,new Error(i.message||"stream error"))}});y=typeof h=="function"?h:()=>{},Promise.resolve(n.sendRaw({id:l,type:t,...a},r)).catch(()=>{})})}function D(){const n=f(),t=(a,e={},r=3e4)=>n.sendRaw({type:a,...e},r).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 pickFile(a={}){try{const e=await n.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),r=e&&e.result!==void 0?e.result:e;return r&&r.ok&&typeof r.filePath=="string"?r.filePath:null}catch{return null}},async adapterReadiness(a){return await t("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},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:r=1}={}){return await t("personal-data-hub.register-mock",{name:a,count:e,seed:r})},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={},r){return await p(n,"personal-data-hub.sync-adapter-stream",{name:a,options:e},r,6e5)},async syncAllStream(a={},e){return await p(n,"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:r}={}){return await t("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:e,zipPassword:r},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,r={}){return await t("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:e,opts:r},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:r,fridaOpts:u,keyProviderOverride:s}={}){return await t("personal-data-hub.register-wechat",{account:a,dbPath:e,wechatDataPath:r,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-BrruO38Y.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-BvqAck49.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","class must be string"),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=>g(r)?!(r.type===d||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
+ import{M as i,h as a,w as l}from"./index-DlHHHyRx.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-BvqAck49.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","class must be string"),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=>g(r)?!(r.type===d||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-BrruO38Y.js";import{i as f}from"./motion--tkkEE3m.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),{[`
1
+ import{K as o}from"./index-DlHHHyRx.js";import{i as f}from"./motion-D90Oz3kN.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-BrruO38Y.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-DlHHHyRx.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="./assets/vendor-BvqAck49.js">
13
13
  <link rel="modulepreload" crossorigin href="./assets/icons-DP3uiYxy.js">
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-Cq93VfoF.css">
@@ -20,6 +20,8 @@ import chalk from "chalk";
20
20
  import ora from "ora";
21
21
  import { logger } from "../lib/logger.js";
22
22
  import { getHub, getHubMinimal } from "../lib/personal-data-hub-wiring.js";
23
+ import { loadConfig } from "../lib/config-manager.js";
24
+ import { isCloudHubConfigured } from "../lib/hub-llm-client.js";
23
25
  import { importPdh } from "../lib/pdh-load-error.js";
24
26
  import { getAIChatWizard } from "../lib/personal-data-hub-aichat-wizard.js";
25
27
 
@@ -77,11 +79,19 @@ async function cmdAsk(question, options) {
77
79
  if (!hub.engine) throw new Error("Analysis engine unavailable");
78
80
  // 推文 §三道锁第二把 "默认不许问云端" — acceptNonLocal 默认 false (拒云)。
79
81
  // 优先 --accept-non-local CLI 旗,其次 env CC_HUB_ALLOW_NON_LOCAL (Android UI
80
- // 拒云 toggle 通过 LocalCcRunner.askQuestion 透传),否则维持 false。
82
+ // 拒云 toggle 通过 LocalCcRunner.askQuestion 透传),再次为 PERSISTENT config
83
+ // `hub.llm` 选了云后端时的常驻同意 (一次性 `cc config set hub.llm …` 即informed
84
+ // opt-in,免去每次 --accept-non-local);否则维持 false。
81
85
  const envAllow =
82
86
  process.env.CC_HUB_ALLOW_NON_LOCAL === "1" ||
83
87
  process.env.CC_HUB_ALLOW_NON_LOCAL === "true";
84
- const acceptNonLocal = !!options.acceptNonLocal || envAllow;
88
+ let cfgCloudHub = false;
89
+ try {
90
+ cfgCloudHub = isCloudHubConfigured(loadConfig());
91
+ } catch {
92
+ cfgCloudHub = false; // fail-closed: unreadable config → keep cloud denied
93
+ }
94
+ const acceptNonLocal = !!options.acceptNonLocal || envAllow || cfgCloudHub;
85
95
  // Per-call budget overrides for small-model callers (Android Qwen2.5-1.5B
86
96
  // passes --max-facts 20 --max-query-limit 50 to keep prompt ~1.5K tokens
87
97
  // and stay under the model's effective instruction-following window).
@@ -1306,9 +1316,9 @@ async function cmdCollectWechat(options) {
1306
1316
  `enmm-dec-${process.pid}.db`,
1307
1317
  );
1308
1318
  fs.writeFileSync(tmp, result.decrypted);
1309
- let events;
1319
+ let parsed;
1310
1320
  try {
1311
- events = wx.parseEvents(Database, tmp, options.self || "self");
1321
+ parsed = wx.parseEvents(Database, tmp, options.self || "self");
1312
1322
  } finally {
1313
1323
  try {
1314
1324
  fs.unlinkSync(tmp);
@@ -1316,7 +1326,27 @@ async function cmdCollectWechat(options) {
1316
1326
  /* wipe plaintext */
1317
1327
  }
1318
1328
  }
1329
+ // parseEvents now returns { events, persons, topics } (bare-array shape
1330
+ // from older bundles tolerated for forward-compat).
1331
+ const events = Array.isArray(parsed) ? parsed : parsed.events || [];
1332
+ const persons = Array.isArray(parsed) ? [] : parsed.persons || [];
1333
+ const topics = Array.isArray(parsed) ? [] : parsed.topics || [];
1319
1334
 
1335
+ // Named contacts + group topics first so events resolve names / interests.
1336
+ for (const p of persons) {
1337
+ try {
1338
+ vault.putPerson(p);
1339
+ } catch {
1340
+ /* dup / optional */
1341
+ }
1342
+ }
1343
+ for (const t of topics) {
1344
+ try {
1345
+ if (typeof vault.putTopic === "function") vault.putTopic(t);
1346
+ } catch {
1347
+ /* dup / optional */
1348
+ }
1349
+ }
1320
1350
  let ingested = 0;
1321
1351
  for (const ev of events) {
1322
1352
  try {
@@ -1330,6 +1360,8 @@ async function cmdCollectWechat(options) {
1330
1360
  ok: true,
1331
1361
  cfg: result.cfg,
1332
1362
  messages: events.length,
1363
+ persons: persons.length,
1364
+ topics: topics.length,
1333
1365
  ingested,
1334
1366
  };
1335
1367
  if (spinner)
@@ -2688,11 +2720,16 @@ export function registerHubCommand(program) {
2688
2720
  .option("--json", "Output JSON")
2689
2721
  .addHelpText(
2690
2722
  "after",
2691
- "\nLLM backend: defaults to local Ollama (privacy). To use a configured\n" +
2692
- "cloud provider instead (e.g. no Ollama installed), set CC_HUB_LLM:\n" +
2693
- " CC_HUB_LLM=config use cc config's llm.{provider,model,baseUrl,apiKey}\n" +
2694
- " CC_HUB_LLM=<provider> e.g. volcengine / anthropic / deepseek\n" +
2695
- "Cloud backends still require --accept-non-local to send data off device.",
2723
+ "\nLLM backend: defaults to local Ollama (privacy). To use a cloud provider:\n" +
2724
+ " Persistent (recommended): cc config set hub.llm config\n" +
2725
+ " uses cc config's llm.{provider,model,baseUrl,apiKey}; no flag/env needed,\n" +
2726
+ " and the standing config opt-in also authorizes off-device egress.\n" +
2727
+ " Separate key/account for the hub? set an object instead:\n" +
2728
+ " cc config set hub.llm.provider volcengine\n" +
2729
+ " cc config set hub.llm.model doubao-seed-2-1-pro-260628\n" +
2730
+ " cc config set hub.llm.apiKeyEnv MY_HUB_KEY (or hub.llm.apiKey <key>)\n" +
2731
+ " • Ephemeral: CC_HUB_LLM=config|<provider> cc hub ask … --accept-non-local\n" +
2732
+ " (a one-off override still needs an explicit egress flag).",
2696
2733
  )
2697
2734
  .action(cmdAsk);
2698
2735
 
@@ -153,15 +153,21 @@ export function gitLog(dir, limit = 10) {
153
153
  }
154
154
 
155
155
  try {
156
+ // Subject (%s) is free text that often contains "|"; keep it LAST so a
157
+ // pipe in the subject can't shift the date/author fields, then re-join the
158
+ // remainder. (Field order kept as %X|%X — Windows cmd.exe expands adjacent
159
+ // %VAR% pairs, so a control-char separator like %x1f is not portable here.)
156
160
  const output = gitExec(
157
- `log --oneline --no-decorate -${limit} --format="%H|%h|%s|%ai|%an"`,
161
+ `log --oneline --no-decorate -${limit} --format="%H|%h|%ai|%an|%s"`,
158
162
  dir,
159
163
  );
160
164
  return output
161
165
  .split("\n")
162
166
  .filter(Boolean)
163
167
  .map((line) => {
164
- const [hash, shortHash, subject, date, author] = line.split("|");
168
+ const parts = line.split("|");
169
+ const [hash, shortHash, date, author] = parts;
170
+ const subject = parts.slice(4).join("|");
165
171
  return { hash, shortHash, subject, date, author };
166
172
  });
167
173
  } catch {
@@ -10,24 +10,29 @@
10
10
  * retrieval works but the final LLM call fails. This adapter gives the CLI the
11
11
  * same "honor the user's active provider" behavior the desktop has.
12
12
  *
13
- * Privacy: OPT-IN ONLY via env `CC_HUB_LLM`. When unset, this returns null and
13
+ * Privacy: OPT-IN ONLY. The backend is selected by env `CC_HUB_LLM` (ephemeral,
14
+ * per-invocation) OR persistent config `hub.llm` (set once via
15
+ * `cc config set hub.llm config`). When BOTH are unset this returns null and
14
16
  * the caller keeps the safe local-Ollama default (the §11.2 privacy promise:
15
17
  * personal data stays on-device unless the user explicitly opts in). The
16
18
  * client always reports `isLocal: false`, so the AnalysisEngine still refuses
17
- * to USE it unless the `ask` command is given `--accept-non-local`
18
- * (or env `CC_HUB_ALLOW_NON_LOCAL`). Two independent gates: this one chooses
19
- * the backend, that one authorizes sending data off-device.
19
+ * to USE it unless the `ask` command authorizes egress — via --accept-non-local,
20
+ * env `CC_HUB_ALLOW_NON_LOCAL`, or (for a PERSISTENT cloud backend) the standing
21
+ * consent implied by `hub.llm` being set in config (see `isCloudHubConfigured`).
22
+ * Two independent gates: this one chooses the backend, that one authorizes
23
+ * sending data off-device.
20
24
  *
21
- * CC_HUB_LLM unset / ollama / local / off / 0 -> null (local Ollama default)
22
- * CC_HUB_LLM = config | auto | on | 1 -> config.llm.{provider,model,baseUrl,apiKey}
23
- * CC_HUB_LLM = <provider> -> that provider; reuse config
24
- * creds when config.llm.provider
25
- * matches, else provider default
26
- * baseUrl + key from env/config
25
+ * value unset / ollama / local / off / 0 -> null (local Ollama default)
26
+ * value = config | auto | on | 1 -> config.llm.{provider,model,baseUrl,apiKey}
27
+ * value = <provider> -> that provider; reuse config
28
+ * creds when config.llm.provider
29
+ * matches, else provider default
30
+ * baseUrl + key from env/config
31
+ * where `value` = env CC_HUB_LLM (wins) || config.hub.llm.
27
32
  *
28
33
  * Returns null (→ caller falls back to OllamaClient) when it can't build a
29
- * usable cloud client: provider resolves to ollama, or a cloud provider has no
30
- * API key. Never throws at build time — a bad CC_HUB_LLM just keeps the local
34
+ * usable cloud client: backend resolves to ollama, or a cloud provider has no
35
+ * API key. Never throws at build time — a bad value just keeps the local
31
36
  * default rather than bricking `cc hub`.
32
37
  *
33
38
  * Contract (mirrors pdh OllamaClient): `{ name, isLocal, chat(messages, opts)
@@ -50,33 +55,68 @@ const LOCAL_SENTINELS = new Set([
50
55
  ]);
51
56
  const CONFIG_SENTINELS = new Set(["config", "auto", "on", "1", "true", "yes"]);
52
57
 
58
+ /**
59
+ * Resolve the hub-LLM "spec" — what backend the user selected and how.
60
+ * env `CC_HUB_LLM` (ephemeral) wins over persistent config `hub.llm`.
61
+ * - `hub.llm` as a STRING → "config" | "<provider>" (creds reuse config.llm/env)
62
+ * - `hub.llm` as an OBJECT → { provider, model, baseUrl, apiKey, apiKeyEnv }
63
+ * (self-contained; lets the hub use a DIFFERENT key/account than cc-wide llm)
64
+ * @returns {{kind:"string"|"object", value:any, source:"env"|"config"}|null}
65
+ */
66
+ export function resolveHubSpec(config = {}, env = process.env) {
67
+ const envVal = String((env && env.CC_HUB_LLM) || "").trim();
68
+ if (envVal)
69
+ return { kind: "string", value: envVal.toLowerCase(), source: "env" };
70
+ const h = config && config.hub && config.hub.llm;
71
+ if (h == null) return null;
72
+ if (typeof h === "object") {
73
+ return { kind: "object", value: h, source: "config" };
74
+ }
75
+ const s = String(h).trim();
76
+ if (!s) return null;
77
+ return { kind: "string", value: s.toLowerCase(), source: "config" };
78
+ }
79
+
53
80
  /**
54
81
  * @param {{config?: object, env?: object}} [args]
55
82
  * @returns {{name:string,isLocal:boolean,chat:Function}|null}
56
83
  */
57
84
  export function buildCliHubLLM({ config = {}, env = process.env } = {}) {
58
- const raw = String(env.CC_HUB_LLM || "")
59
- .trim()
60
- .toLowerCase();
61
- if (LOCAL_SENTINELS.has(raw)) return null;
85
+ const spec = resolveHubSpec(config, env);
86
+ if (!spec) return null;
62
87
 
63
88
  const cfgLlm = (config && config.llm) || {};
89
+ const sameAs = (p) => String(cfgLlm.provider || "").toLowerCase() === p;
64
90
  let provider, model, baseUrl, apiKey;
65
91
 
66
- if (CONFIG_SENTINELS.has(raw)) {
67
- provider = String(cfgLlm.provider || "").toLowerCase();
68
- model = cfgLlm.model;
69
- baseUrl = cfgLlm.baseUrl;
70
- apiKey = cfgLlm.apiKey;
92
+ if (spec.kind === "object") {
93
+ // Self-contained hub creds — key can come from an explicit apiKey, a named
94
+ // env var (apiKeyEnv → switch where the key is read from), or fall back to
95
+ // the cc-wide config.llm creds when the provider matches.
96
+ const o = spec.value || {};
97
+ provider = String(o.provider || cfgLlm.provider || "").toLowerCase();
98
+ apiKey =
99
+ o.apiKey ||
100
+ (o.apiKeyEnv ? env[o.apiKeyEnv] : null) ||
101
+ (sameAs(provider) ? cfgLlm.apiKey : null);
102
+ model = o.model || (sameAs(provider) ? cfgLlm.model : null);
103
+ baseUrl = o.baseUrl || (sameAs(provider) ? cfgLlm.baseUrl : null);
71
104
  } else {
72
- provider = raw;
73
- // Reuse the saved credentials only when they belong to the requested
74
- // provider; otherwise fall back to provider defaults + env key.
75
- const sameProvider =
76
- String(cfgLlm.provider || "").toLowerCase() === provider;
77
- model = sameProvider ? cfgLlm.model : null;
78
- baseUrl = sameProvider ? cfgLlm.baseUrl : null;
79
- apiKey = sameProvider ? cfgLlm.apiKey : null;
105
+ const raw = spec.value;
106
+ if (LOCAL_SENTINELS.has(raw)) return null;
107
+ if (CONFIG_SENTINELS.has(raw)) {
108
+ provider = String(cfgLlm.provider || "").toLowerCase();
109
+ model = cfgLlm.model;
110
+ baseUrl = cfgLlm.baseUrl;
111
+ apiKey = cfgLlm.apiKey;
112
+ } else {
113
+ provider = raw;
114
+ // Reuse the saved credentials only when they belong to the requested
115
+ // provider; otherwise fall back to provider defaults + env key.
116
+ model = sameAs(provider) ? cfgLlm.model : null;
117
+ baseUrl = sameAs(provider) ? cfgLlm.baseUrl : null;
118
+ apiKey = sameAs(provider) ? cfgLlm.apiKey : null;
119
+ }
80
120
  }
81
121
 
82
122
  if (!provider || provider === "ollama") return null;
@@ -115,6 +155,23 @@ export function buildCliHubLLM({ config = {}, env = process.env } = {}) {
115
155
  };
116
156
  }
117
157
 
158
+ /**
159
+ * True when a PERSISTENT config (`hub.llm`, NOT the ephemeral env var) selects
160
+ * a usable non-local cloud backend. The `ask` command uses this as standing
161
+ * consent to send data off-device — a deliberate `cc config set hub.llm …` is
162
+ * the informed opt-in, so the user need not also pass --accept-non-local on
163
+ * every call. The ephemeral env path (CC_HUB_LLM) is deliberately NOT covered:
164
+ * a one-off backend override still requires an explicit egress flag.
165
+ * @returns {boolean}
166
+ */
167
+ export function isCloudHubConfigured(config = {}) {
168
+ const h = config && config.hub && config.hub.llm;
169
+ if (h == null) return false;
170
+ // Resolve config-only (env stripped) and confirm it builds a non-local client.
171
+ const llm = buildCliHubLLM({ config, env: {} });
172
+ return !!(llm && llm.isLocal === false);
173
+ }
174
+
118
175
  function trimBase(base) {
119
176
  return String(base).replace(/\/+$/, "");
120
177
  }
@@ -1 +0,0 @@
1
- import{I as n,J as g,c as l,K as r,N as u,P as h,U as o,R as t,Q as b}from"./vendor-BvqAck49.js";import{_ as v,b as m}from"./index-BrruO38Y.js";import{a7 as y,M}from"./icons-DP3uiYxy.js";const B={__name:"MobileProjects",setup(p,{expose:i}){i();const c=u(),{t:e}=m();function a(){c.push("/projects")}function _(){c.push("/mobile-bridge")}const s={router:c,t:e,goToProjects:a,goToMobileBridge:_,get useRouter(){return u},get useI18n(){return m},get MobileOutlined(){return M},get FolderOutlined(){return y}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}},x={class:"mobile-projects-placeholder"},O={class:"title"},k={class:"subtitle"},w={class:"explainer"};function T(p,i,c,e,a,_){const s=n("a-alert"),d=n("a-button"),f=n("a-space"),P=n("a-empty"),j=n("a-card");return h(),g("div",x,[l(j,null,{default:r(()=>[l(P,{description:!1},{image:r(()=>[l(e.MobileOutlined,{style:{fontSize:"64px",color:"#bfbfbf"}})]),default:r(()=>[o("h2",O,t(e.t("mobileProjects.title")),1),o("p",k,t(e.t("mobileProjects.subtitle")),1),l(s,{message:e.t("mobileProjects.v02Banner"),type:"info","show-icon":"",class:"banner"},null,8,["message"]),o("div",w,[o("h3",null,t(e.t("mobileProjects.currentDirection")),1),o("p",null,t(e.t("mobileProjects.currentDirectionBody")),1),o("ul",null,[o("li",null,t(e.t("mobileProjects.stepPhone")),1),o("li",null,t(e.t("mobileProjects.stepTap")),1),o("li",null,t(e.t("mobileProjects.stepPull")),1)]),o("h3",null,t(e.t("mobileProjects.reverseDirection")),1),o("p",null,t(e.t("mobileProjects.reverseDirectionBody")),1)]),l(f,{class:"actions"},{default:r(()=>[l(d,{type:"primary",onClick:e.goToProjects},{default:r(()=>[l(e.FolderOutlined),b(" "+t(e.t("mobileProjects.viewLocalProjects")),1)]),_:1}),l(d,{onClick:e.goToMobileBridge},{default:r(()=>[l(e.MobileOutlined),b(" "+t(e.t("mobileProjects.checkBridge")),1)]),_:1})]),_:1})]),_:1})]),_:1})])}const N=v(B,[["render",T],["__scopeId","data-v-9262cc45"],["__file","/tmp/cc-web-panel-8vQYzk/repo/packages/web-panel/src/views/MobileProjects.vue"]]);export{N as default};
@@ -1 +0,0 @@
1
- import{O as r}from"./index-BrruO38Y.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-Bht2QpqM.js";import{U as t}from"./index-BrruO38Y.js";import"./vendor-BvqAck49.js";import"./index-BRlkm8k6.js";import"./icons-DP3uiYxy.js";const s=t(o);export{s as default};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-BwL7ApAT.js";import{U as t}from"./index-BrruO38Y.js";import"./vendor-BvqAck49.js";import"./responsiveObserve-DwYJKWhG.js";import"./useFlexGapSupport-DwVLaYMd.js";import"./styleChecker-D-ByG8n4.js";import"./index-BRlkm8k6.js";import"./icons-DP3uiYxy.js";const l=t(o);export{l as default};