chainlesschain 0.162.85 → 0.162.87
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 +1 -1
- package/src/assets/web-panel/assets/{AIOps-9s5boloe.js → AIOps-B5qoKwDX.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-nuq5gtIb.js → ActionButton-BdKytPee.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DrDHYSjZ.js → Analytics-CeSpW9WC.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BDs4ULs3.js → AppLayout-CN0HcGHl.js} +5 -5
- package/src/assets/web-panel/assets/{Audit-DaqX39ZA.js → Audit-DiLVSuxs.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-ZpAZcYWU.js → Backup-RBZEr_Cm.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-rEL4bCmz.js → BaseInput-BLwgjz7w.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-LkXtveTN.js → Chat-hWbKo3Y8.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-BdkD-opG.js → ChatBubbleRenderer-DCQz2Fh1.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-B_nJ54jp.js → Checkbox-DjSvCtwm.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-C0NHbbUn.js → Codegen-CS5mCkDD.js} +1 -1
- package/src/assets/web-panel/assets/{Col-Bijl1DuU.js → Col-CXZT4-Kf.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CVxkvzf7.js → Community-sRpeoMwv.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-CXmuCEc2.js → Compact-DLud5sT4.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-CsP-YVrE.js → Compliance-BaC6_OKU.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-B31Nw8vF.js → Cowork-CkDgjPCR.js} +4 -4
- package/src/assets/web-panel/assets/{Cron-Bo_cDFwM.js → Cron-JIyvROA6.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-D0C8hYOr.js → Crosschain-3zqCVPCv.js} +1 -1
- package/src/assets/web-panel/assets/{DID-eq7i-KXB.js → DID-B3tgwNrV.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CVRBWNgx.js → Dashboard-7bPbgI4P.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-DcEm3tiv.js → Dropdown--vLJWMQt.js} +1 -1
- package/src/assets/web-panel/assets/EmailListRenderer-By5OyD2q.js +1 -0
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-C1THZ4cA.js → FamilyGuardDashboard-CCox4cK9.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-BO6tO2cA.js → Federation--4n8yx-h.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BLCjbBnQ.js → FormItemContext-CP8g135H.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-HGQG6O9G.js → GenericCardRenderer-DhiGHyKC.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DN44Wtw8.js → Git-CrnIJELY.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-BwUlWRZa.js → Governance-BudsrPFK.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-CI7XUJpq.js → Inference-Dmi_oji4.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-D5AFdDA1.js → KnowledgeGraph-C25fw0FO.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-ChxfsVjf.js → Logs-DShQrjB9.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-fzmD7edl.js → Marketplace-Dkw8f7jY.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-egeEEiOo.js → McpTools-BHx1HO5R.js} +5 -5
- package/src/assets/web-panel/assets/{Memory-ClfkU0Zc.js → Memory-RI41JeXd.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-CZP0a7ug.js → MobileBridge-CelTeD1k.js} +2 -2
- package/src/assets/web-panel/assets/{MobileProjects-ClhNmxpO.js → MobileProjects-B8pQWHvj.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-2W2NWMiR.js → Mtc-CK1SSiwH.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-BTH5f5vy.js → MtcAudit-CRdIoMd4.js} +6 -6
- package/src/assets/web-panel/assets/{Multisig-Dm-8GZVC.js → Multisig-Bw-b9lKa.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CWvQYw0f.js → NLProgramming-BwwxruYQ.js} +1 -1
- package/src/assets/web-panel/assets/Notes-D4u4Q26j.js +7 -0
- package/src/assets/web-panel/assets/{NotificationSettings-DhGUAxEK.js → NotificationSettings-C6NlrEiz.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-B085DzwZ.js +1 -0
- package/src/assets/web-panel/assets/{Organization-BE6PoYoV.js → Organization-CJ-HZOGl.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-CidZn_Vh.js → Overflow-DP-Gr0MB.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-D8KPm4lA.js → P2P-ClZ8vSAq.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-Cp_Cp_QM.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-DBRrTNke.js → Permissions-CFNoSn65.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-DYhCXT0Y.js → PersonalDataHub-BB7QWWJg.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-CcP7z75i.js → Pipeline-X8zOudQr.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DIL17ASI.js → Privacy-BhHTcrIP.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-UbjZrOSd.js → ProjectInit-DyexCLNd.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-DEi3eB8z.js → ProjectSettings-6OwfY6DN.js} +2 -2
- package/src/assets/web-panel/assets/Projects-CXz0fJTM.js +1 -0
- package/src/assets/web-panel/assets/{Providers-BDh_Pzi1.js → Providers-DcV93Yo5.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BDRMDklR.js → QuickAsk-D-hrghMC.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-SiCcAGiO.js → Recommend-zaqUMInK.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-CHG51BYr.js → Reputation-F6S8NTxc.js} +1 -1
- package/src/assets/web-panel/assets/{Row-syZxxDmc.js → Row-DAH0pXst.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CLfcVChu.js → RssFeed-CiAB906Z.js} +3 -3
- package/src/assets/web-panel/assets/{Search-By-0Z5NO.js → Search-Coqx1seG.js} +1 -1
- package/src/assets/web-panel/assets/{Security-gxHVmg1J.js → Security-BoxcgnJV.js} +4 -4
- package/src/assets/web-panel/assets/{Services-DGbUxRrs.js → Services-COCvhr-B.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-JiyfBUz-.js → Skeleton-B1eVJHIi.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-C4xFz9Bd.js → Skills-CE9Dmx9j.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DyeMx6KJ.js → Sla-BNTAqoF4.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CY8SKnF9.js → SpeechSettings-Bcz7uwC6.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-t3ZgQs5m.js → SyncSettings-BYavRqFb.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-DIChx79b.js +1 -0
- package/src/assets/web-panel/assets/{Templates-dZ0agBUO.js → Templates-CtFWI9Wo.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DEoI-tNH.js → Tenant-D3_a2Q-F.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CvMaElnO.js → Terminal-tUKKFhFe.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-CUS477-i.js → TimelineRenderer-CAuPIfP3.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-B9-haDN7.js → Tokens-HwfHQxS6.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-den4MocY.js → Trigger-DqBh0u8h.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-DqnPipcT.js → Trust-BZisudc4.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CmPLZGO2.js → UkeySign-BDVHNHgW.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-BcldEyuI.js → VideoEditing-CVg27K9W.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Dap9Ydle.js → Wallet-C_C9Uozu.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-cSNYDx2c.js → WebAuthn-BJOqrscu.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-R4gjxnPH.js → WorkflowEditor-D371gIHp.js} +1 -1
- package/src/assets/web-panel/assets/{chat-Dgaug64C.js → chat-Bg3mtk60.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CzEwsWwx.js → colors-DbsZDd0h.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DWfrBoYH.js → compact-item-DdUiFvWf.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DTQOT4YN.js → createContext-CdIrP9Fp.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-Cx5sL2Te.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-BZffORzo.js → hasIn-yRPIU6sb.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bz3VXQHs.js → index--f_sM-jB.js} +1 -1
- package/src/assets/web-panel/assets/{index-C0YRxk_4.js → index-06QSa3lu.js} +1 -1
- package/src/assets/web-panel/assets/{index-C7wTpk38.js → index-3ByeAY2K.js} +1 -1
- package/src/assets/web-panel/assets/{index-BgWQb3ab.js → index-6AVqepI5.js} +1 -1
- package/src/assets/web-panel/assets/{index-BgqftzvZ.js → index-7ME2_dHQ.js} +3 -3
- package/src/assets/web-panel/assets/index-A3QJglda.js +1 -0
- package/src/assets/web-panel/assets/{index-CU_6ho7E.js → index-BB6vndQ4.js} +1 -1
- package/src/assets/web-panel/assets/{index-D_TSRl0O.js → index-BMtLrQ_2.js} +1 -1
- package/src/assets/web-panel/assets/{index-OvBi64nW.js → index-BSg5Da6w.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2pcp3GP.js → index-BVzaPW2D.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFYzC2yk.js → index-Be6UZot2.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-aIuwpi.js → index-Bqz7zZa7.js} +1 -1
- package/src/assets/web-panel/assets/{index-D7h9VCvX.js → index-C-KhRvoX.js} +1 -1
- package/src/assets/web-panel/assets/{index-DRAeb51w.js → index-C1TOvQrI.js} +1 -1
- package/src/assets/web-panel/assets/{index-CN37EzzF.js → index-C1qvwqu6.js} +1 -1
- package/src/assets/web-panel/assets/{index-DGjB2DHG.js → index-C9vGPhlv.js} +1 -1
- package/src/assets/web-panel/assets/{index-CXK7GqtK.js → index-CI6-JPV0.js} +1 -1
- package/src/assets/web-panel/assets/{index-FEhVHCgN.js → index-CI9zX_HP.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZWIp8ei.js → index-CO_F1Qu3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CKs7M2hi.js → index-Ca_WrpLv.js} +1 -1
- package/src/assets/web-panel/assets/{index-D3XaluNc.js → index-CbVz-2sW.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6B2nVTh.js → index-CiSWEzLQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BI6qopNT.js → index-CkJ_vwPY.js} +1 -1
- package/src/assets/web-panel/assets/{index-3of1AqNk.js → index-Co41LvAQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-OoAfomZi.js → index-DFREoy8V.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bx9jDCsw.js → index-DPG-ZpDS.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4Zncxxn.js → index-DTV6uuEg.js} +1 -1
- package/src/assets/web-panel/assets/{index-CR6f7W_w.js → index-DVdMu7WX.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ov5m4jW7.js → index-DXK5QEYX.js} +1 -1
- package/src/assets/web-panel/assets/index-DYZJhSD2.js +1 -0
- package/src/assets/web-panel/assets/{index-CV7WR2SO.js → index-D_OnF9Ge.js} +1 -1
- package/src/assets/web-panel/assets/{index-4Vr4kM9h.js → index-DhZHHas9.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dlc29Z4D.js → index-DilAf_75.js} +1 -1
- package/src/assets/web-panel/assets/{index-MpkucUn9.js → index-DmN9cfv0.js} +1 -1
- package/src/assets/web-panel/assets/{index-CCHs-tnT.js → index-DoR3E0kH.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cl1aGzuh.js → index-M2Kx4V8G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CS3ZkiIg.js → index-XLmzFKoX.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFNgAerJ.js → index-g_ZbMU32.js} +1 -1
- package/src/assets/web-panel/assets/{index-B5fMCVs_.js → index-xOjyFW4Q.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-B2v8eGiE.js → initDefaultProps-CziU9pk-.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CwkWvaNW.js → motion-BOZPhyUp.js} +1 -1
- package/src/assets/web-panel/assets/{move-BYJ058wL.js → move-BwhvSRTb.js} +1 -1
- package/src/assets/web-panel/assets/{omit-B3nuYFSU.js → omit-BfU3fObW.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-0hcTSJaT.js → pickAttrs-eGMYizN6.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D6IUlBKU.js → placementArrow-8A1qsZl_.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-FKtuDNR2.js → responsiveObserve-BU9yRWZK.js} +1 -1
- package/src/assets/web-panel/assets/{slide-B_QbBNod.js → slide-BG428wmF.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-rGTl4pd7.js → statusUtils-_TFDDXxp.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DSo1kqIn.js → styleChecker-DuM2cLhx.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CxkZaI6s.js → useFlexGapSupport-fg8Q35CB.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DrW3e3kn.js → useFs-3EiVX8L4.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CVKkAaON.js → usePersonalDataHub-C8OgHGoE.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-lTUDdHso.js → vnode--NhVoccz.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-D9qIJ7kF.js → zoom-Bf0hAHy7.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/lib/image-input.js +27 -3
- package/src/repl/agent-repl.js +4 -1
- package/src/repl/config-summary.js +48 -0
- package/src/runtime/coding-agent-shell-policy.cjs +58 -18
- package/src/runtime/headless-stream.js +55 -1
- package/src/assets/web-panel/assets/EmailListRenderer-B16xNYan.js +0 -1
- package/src/assets/web-panel/assets/Notes-Ba9QC8Nt.js +0 -7
- package/src/assets/web-panel/assets/OrderTableRenderer-DwM-WxqV.js +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-uALWSx7o.js +0 -7
- package/src/assets/web-panel/assets/Projects-DhHbGqmv.js +0 -1
- package/src/assets/web-panel/assets/Tasks-BavjuZCf.js +0 -1
- package/src/assets/web-panel/assets/devWarning-BpZTkDGI.js +0 -1
- package/src/assets/web-panel/assets/index-CmQTcEwA.js +0 -1
- package/src/assets/web-panel/assets/index-vzAexOhR.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as D,e as k,d as F,q as _,o as I,w as O,n as R,f as z,c as H,s as f}from"./vendor-BvqAck49.js";import{A as p,B as A,D as C,P as j,F as q,G,h as v}from"./index-
|
|
1
|
+
import{b as D,e as k,d as F,q as _,o as I,w as O,n as R,f as z,c as H,s as f}from"./vendor-BvqAck49.js";import{A as p,B as A,D as C,P as j,F as q,G,h as v}from"./index-7ME2_dHQ.js";import{w as L}from"./raf-Deuc0E8-.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}`;k(t=>{if(p()){if(n.value){const r=W(),a=V();A(`
|
|
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-7ME2_dHQ.js";import{i as s}from"./motion-BOZPhyUp.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-7ME2_dHQ.js";function a(n,t){const e=s({},n);for(let o=0;o<t.length;o+=1){const r=t[o];delete e[r]}return e}export{a as o};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-7ME2_dHQ.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-D6IUlBKU.js → placementArrow-8A1qsZl_.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-7ME2_dHQ.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-FKtuDNR2.js → responsiveObserve-BU9yRWZK.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as o,h}from"./index-
|
|
1
|
+
import{I as o,h}from"./index-7ME2_dHQ.js";import{b as x}from"./vendor-BvqAck49.js";const v=["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{v as r,w as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{K as n}from"./index-
|
|
1
|
+
import{K as n}from"./index-7ME2_dHQ.js";import{i as e}from"./motion-BOZPhyUp.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-7ME2_dHQ.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-7ME2_dHQ.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-CxkZaI6s.js → useFlexGapSupport-fg8Q35CB.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-
|
|
1
|
+
import{o,s as t}from"./vendor-BvqAck49.js";import{d as s}from"./styleChecker-DuM2cLhx.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-
|
|
1
|
+
import{u as d}from"./index-7ME2_dHQ.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-
|
|
1
|
+
import{u as f}from"./index-7ME2_dHQ.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-
|
|
1
|
+
import{M as i,h as a,w as l}from"./index-7ME2_dHQ.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-
|
|
1
|
+
import{K as o}from"./index-7ME2_dHQ.js";import{i as f}from"./motion-BOZPhyUp.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-7ME2_dHQ.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">
|
package/src/lib/image-input.js
CHANGED
|
@@ -32,6 +32,24 @@ function localPathCandidates(raw) {
|
|
|
32
32
|
return cands;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Convert a local `file://` URI to a filesystem path so a dragged/pasted image
|
|
37
|
+
* (IDEs often hand back `file:///C:/Users/…/a.png`) is recognized like a bare
|
|
38
|
+
* path. Strips the scheme, percent-decodes, and drops the leading slash before
|
|
39
|
+
* a Windows drive (`/C:/…` → `C:/…`). Returns null for non-file URIs.
|
|
40
|
+
*/
|
|
41
|
+
function fileUriToPath(uri) {
|
|
42
|
+
if (!/^file:\/\//i.test(uri)) return null;
|
|
43
|
+
let p = uri.replace(/^file:\/\//i, "");
|
|
44
|
+
try {
|
|
45
|
+
p = decodeURIComponent(p);
|
|
46
|
+
} catch {
|
|
47
|
+
/* leave as-is if it isn't valid percent-encoding */
|
|
48
|
+
}
|
|
49
|
+
if (/^\/[a-zA-Z]:/.test(p)) p = p.slice(1); // /C:/Users/x → C:/Users/x
|
|
50
|
+
return p;
|
|
51
|
+
}
|
|
52
|
+
|
|
35
53
|
const EXT_MEDIA = {
|
|
36
54
|
".png": "image/png",
|
|
37
55
|
".jpg": "image/jpeg",
|
|
@@ -97,13 +115,19 @@ export function detectImagePaths(text, deps = {}) {
|
|
|
97
115
|
while ((m = re.exec(text)) !== null) {
|
|
98
116
|
const raw = m[1] || m[2] || m[3];
|
|
99
117
|
if (!raw) continue;
|
|
100
|
-
//
|
|
101
|
-
|
|
118
|
+
// A local `file://` URI (common from drag/drop in IDEs) → a path token;
|
|
119
|
+
// any other scheme (http/https/ftp/data…) is never auto-attached.
|
|
120
|
+
let token = raw;
|
|
121
|
+
if (/^file:\/\//i.test(raw)) {
|
|
122
|
+
token = fileUriToPath(raw) || raw;
|
|
123
|
+
} else if (/^[a-z][a-z0-9+.-]*:\/\//i.test(raw) || /^data:/i.test(raw)) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
102
126
|
// Resolve to the first on-disk form (handles Git-Bash `/c/…` + `~`). The
|
|
103
127
|
// RESOLVED path is what gets attached/read; the RAW token is stripped from
|
|
104
128
|
// the text.
|
|
105
129
|
let resolved = null;
|
|
106
|
-
for (const cand of localPathCandidates(
|
|
130
|
+
for (const cand of localPathCandidates(token)) {
|
|
107
131
|
try {
|
|
108
132
|
if (existsSync(cand)) {
|
|
109
133
|
resolved = cand;
|
package/src/repl/agent-repl.js
CHANGED
|
@@ -1321,7 +1321,7 @@ export async function startAgentRepl(options = {}) {
|
|
|
1321
1321
|
` ${chalk.cyan("/theme")} Color theme (/theme <auto|dark|light|mono>; mono = no color)`,
|
|
1322
1322
|
);
|
|
1323
1323
|
logger.log(
|
|
1324
|
-
` ${chalk.cyan("/config")} Show config; ${chalk.cyan("/config <key>")} read, ${chalk.cyan("/config <key>=<val>")} set`,
|
|
1324
|
+
` ${chalk.cyan("/config")} Show config; ${chalk.cyan("/config <key>")} read, ${chalk.cyan("/config <key>=<val>")} set, ${chalk.cyan("/config --help")} keys`,
|
|
1325
1325
|
);
|
|
1326
1326
|
logger.log(
|
|
1327
1327
|
` ${chalk.cyan("/doctor")} Session health check (provider/key/IDE/MCP/hooks)`,
|
|
@@ -2720,10 +2720,13 @@ export async function startAgentRepl(options = {}) {
|
|
|
2720
2720
|
parseConfigCommand,
|
|
2721
2721
|
renderConfigGet,
|
|
2722
2722
|
renderConfigSet,
|
|
2723
|
+
renderConfigHelp,
|
|
2723
2724
|
} = await import("./config-summary.js");
|
|
2724
2725
|
const cmd = parseConfigCommand(trimmed.slice("/config".length));
|
|
2725
2726
|
if (cmd.action === "error") {
|
|
2726
2727
|
logger.error(chalk.red(`/config: ${cmd.message}`));
|
|
2728
|
+
} else if (cmd.action === "help") {
|
|
2729
|
+
logger.log(renderConfigHelp());
|
|
2727
2730
|
} else if (cmd.action === "get") {
|
|
2728
2731
|
logger.log(renderConfigGet(cmd.key, cm.getConfigValue(cmd.key)));
|
|
2729
2732
|
} else if (cmd.action === "set") {
|
|
@@ -46,6 +46,11 @@ export function parseConfigCommand(argStr) {
|
|
|
46
46
|
const s = (argStr || "").trim();
|
|
47
47
|
if (s === "") return { action: "show" };
|
|
48
48
|
|
|
49
|
+
// `/config --help` | `-h` | `help` | `?` (Claude-Code 2.1.183 parity) — list
|
|
50
|
+
// the common config keys. Checked before `=` / `key value` so `help` isn't
|
|
51
|
+
// mistaken for a key read.
|
|
52
|
+
if (/^(--help|-h|help|\?)$/i.test(s)) return { action: "help" };
|
|
53
|
+
|
|
49
54
|
const eq = s.indexOf("=");
|
|
50
55
|
if (eq !== -1) {
|
|
51
56
|
const key = s.slice(0, eq).trim();
|
|
@@ -62,6 +67,49 @@ export function parseConfigCommand(argStr) {
|
|
|
62
67
|
return { action: "get", key: s };
|
|
63
68
|
}
|
|
64
69
|
|
|
70
|
+
/**
|
|
71
|
+
* The common config keys, surfaced by `/config --help`. cc's `/config` accepts
|
|
72
|
+
* any dotted key (free-form), so this is a curated quick-reference of the keys
|
|
73
|
+
* the CLI actually reads — not an exhaustive schema.
|
|
74
|
+
*/
|
|
75
|
+
export const COMMON_CONFIG_KEYS = Object.freeze([
|
|
76
|
+
[
|
|
77
|
+
"llm.provider",
|
|
78
|
+
"LLM provider (ollama | volcengine | anthropic | openai | …)",
|
|
79
|
+
],
|
|
80
|
+
["llm.model", "default text model id"],
|
|
81
|
+
["llm.visionModel", "model used for image turns (falls back to a default)"],
|
|
82
|
+
["llm.baseUrl", "provider API base URL"],
|
|
83
|
+
["llm.apiKey", "provider API key (stored masked; env *_API_KEY overrides)"],
|
|
84
|
+
[
|
|
85
|
+
"webSearch.provider",
|
|
86
|
+
"web_search backend (auto | tavily | brave | duckduckgo | …)",
|
|
87
|
+
],
|
|
88
|
+
["webSearch.apiKey", "web-search API key"],
|
|
89
|
+
["cli.theme", "REPL color theme (auto | dark | light | mono)"],
|
|
90
|
+
]);
|
|
91
|
+
|
|
92
|
+
/** Render `/config --help`: usage + the common config keys. */
|
|
93
|
+
export function renderConfigHelp() {
|
|
94
|
+
const lines = [
|
|
95
|
+
"/config — show or edit configuration:",
|
|
96
|
+
" /config show effective config (secret-safe)",
|
|
97
|
+
" /config <key> read a value (e.g. /config llm.model)",
|
|
98
|
+
" /config <key>=<value> set a value (e.g. /config llm.model=opus)",
|
|
99
|
+
" /config <key> <value> set a value (space form)",
|
|
100
|
+
" /config --help this list",
|
|
101
|
+
"",
|
|
102
|
+
"Common keys:",
|
|
103
|
+
];
|
|
104
|
+
const width = Math.max(...COMMON_CONFIG_KEYS.map(([k]) => k.length));
|
|
105
|
+
for (const [key, desc] of COMMON_CONFIG_KEYS) {
|
|
106
|
+
lines.push(` ${key.padEnd(width)} ${desc}`);
|
|
107
|
+
}
|
|
108
|
+
lines.push("");
|
|
109
|
+
lines.push(" (any dotted key is accepted; keys are stored in config.json)");
|
|
110
|
+
return lines.join("\n");
|
|
111
|
+
}
|
|
112
|
+
|
|
65
113
|
/** Render a single config value for `/config <key>`, masking secrets. */
|
|
66
114
|
export function renderConfigGet(key, value) {
|
|
67
115
|
if (value === undefined) return `${key} = (unset)`;
|
|
@@ -114,6 +114,20 @@ function splitFirstCommandSegment(command) {
|
|
|
114
114
|
.trim();
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
/**
|
|
118
|
+
* Split a (possibly compound) command on shell separators (`&&`, `||`, `|`,
|
|
119
|
+
* `;`) into its individual command segments. The policy must inspect EVERY
|
|
120
|
+
* segment — not just the first — so a destructive command (`rm -rf …`,
|
|
121
|
+
* `git reset --hard`) cannot be smuggled after a separator behind a benign or
|
|
122
|
+
* allowlisted leading segment (e.g. `npm run build && git checkout -- .`).
|
|
123
|
+
*/
|
|
124
|
+
function splitCommandSegments(command) {
|
|
125
|
+
return String(command || "")
|
|
126
|
+
.split(/(?:\|\||&&|[|;])/)
|
|
127
|
+
.map((segment) => segment.trim())
|
|
128
|
+
.filter(Boolean);
|
|
129
|
+
}
|
|
130
|
+
|
|
117
131
|
function tokenizeShellCommand(command) {
|
|
118
132
|
const tokens = [];
|
|
119
133
|
let current = "";
|
|
@@ -165,34 +179,28 @@ function normalizeShellCommand(command) {
|
|
|
165
179
|
return splitFirstCommandSegment(command).replace(/\s+/g, " ").trim();
|
|
166
180
|
}
|
|
167
181
|
|
|
168
|
-
|
|
169
|
-
|
|
182
|
+
// Severity ordering so the most restrictive segment of a compound command wins.
|
|
183
|
+
const DECISION_SEVERITY = Object.freeze({
|
|
184
|
+
[SHELL_POLICY_DECISIONS.DENY]: 3,
|
|
185
|
+
[SHELL_POLICY_DECISIONS.REROUTE]: 2,
|
|
186
|
+
[SHELL_POLICY_DECISIONS.WARN]: 1,
|
|
187
|
+
[SHELL_POLICY_DECISIONS.ALLOW]: 0,
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
/** Classify ONE command segment (no separators). */
|
|
191
|
+
function evaluateSegmentPolicy(segment, overrideRuleIds) {
|
|
192
|
+
const normalized = normalizeShellCommand(segment);
|
|
170
193
|
const tokens = tokenizeShellCommand(normalized);
|
|
171
194
|
const firstToken = (tokens[0] || "").toLowerCase();
|
|
172
195
|
const secondToken = (tokens[1] || "").toLowerCase();
|
|
173
196
|
const context = {
|
|
174
|
-
command: String(
|
|
197
|
+
command: String(segment || ""),
|
|
175
198
|
normalized,
|
|
176
199
|
tokens,
|
|
177
200
|
firstToken,
|
|
178
201
|
secondToken,
|
|
179
202
|
};
|
|
180
203
|
|
|
181
|
-
// Rule IDs that should be downgraded from DENY to WARN (e.g. cowork web-research)
|
|
182
|
-
const overrideRuleIds = Array.isArray(options.overrideRuleIds)
|
|
183
|
-
? new Set(options.overrideRuleIds)
|
|
184
|
-
: new Set();
|
|
185
|
-
|
|
186
|
-
if (!normalized) {
|
|
187
|
-
return {
|
|
188
|
-
allowed: false,
|
|
189
|
-
decision: SHELL_POLICY_DECISIONS.DENY,
|
|
190
|
-
reason: "Shell command is required.",
|
|
191
|
-
ruleId: "empty-command",
|
|
192
|
-
normalizedCommand: normalized,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
|
|
196
204
|
const blockedRule = BLOCKED_SHELL_RULES.find((rule) => rule.test(context));
|
|
197
205
|
if (blockedRule) {
|
|
198
206
|
// If the rule is overridden, downgrade from DENY to WARN (allowed)
|
|
@@ -237,6 +245,37 @@ function evaluateShellCommandPolicy(command, options = {}) {
|
|
|
237
245
|
};
|
|
238
246
|
}
|
|
239
247
|
|
|
248
|
+
function evaluateShellCommandPolicy(command, options = {}) {
|
|
249
|
+
// Rule IDs that should be downgraded from DENY to WARN (e.g. cowork web-research)
|
|
250
|
+
const overrideRuleIds = Array.isArray(options.overrideRuleIds)
|
|
251
|
+
? new Set(options.overrideRuleIds)
|
|
252
|
+
: new Set();
|
|
253
|
+
|
|
254
|
+
// Inspect EVERY segment of a compound command, not just the first — a
|
|
255
|
+
// dangerous segment after `&&` / `;` / `|` must still be caught. The most
|
|
256
|
+
// restrictive segment decides the whole command (a compound is only ALLOW
|
|
257
|
+
// when every segment is independently allowlisted).
|
|
258
|
+
const segments = splitCommandSegments(command);
|
|
259
|
+
if (!segments.length) {
|
|
260
|
+
return {
|
|
261
|
+
allowed: false,
|
|
262
|
+
decision: SHELL_POLICY_DECISIONS.DENY,
|
|
263
|
+
reason: "Shell command is required.",
|
|
264
|
+
ruleId: "empty-command",
|
|
265
|
+
normalizedCommand: "",
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
let worst = null;
|
|
270
|
+
for (const segment of segments) {
|
|
271
|
+
const result = evaluateSegmentPolicy(segment, overrideRuleIds);
|
|
272
|
+
const sev = DECISION_SEVERITY[result.decision] ?? 1;
|
|
273
|
+
const worstSev = worst ? (DECISION_SEVERITY[worst.decision] ?? 1) : -1;
|
|
274
|
+
if (sev > worstSev) worst = result;
|
|
275
|
+
}
|
|
276
|
+
return worst;
|
|
277
|
+
}
|
|
278
|
+
|
|
240
279
|
module.exports = {
|
|
241
280
|
ALLOWLISTED_SHELL_RULES,
|
|
242
281
|
BLOCKED_SHELL_RULES,
|
|
@@ -244,5 +283,6 @@ module.exports = {
|
|
|
244
283
|
evaluateShellCommandPolicy,
|
|
245
284
|
normalizeShellCommand,
|
|
246
285
|
splitFirstCommandSegment,
|
|
286
|
+
splitCommandSegments,
|
|
247
287
|
tokenizeShellCommand,
|
|
248
288
|
};
|
|
@@ -241,6 +241,19 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
241
241
|
const provider = options.provider || "ollama";
|
|
242
242
|
const baseUrl = options.baseUrl || "http://localhost:11434";
|
|
243
243
|
const apiKey = options.apiKey || null;
|
|
244
|
+
// Vision model (config.llm.visionModel) — image turns switch to it for that
|
|
245
|
+
// turn only (resolveVisionLlm falls back to the default when unset), so a
|
|
246
|
+
// pasted/typed image is read by a vision-capable model even though the
|
|
247
|
+
// session's default model is text-only.
|
|
248
|
+
let visionModel = options.visionModel;
|
|
249
|
+
if (!visionModel) {
|
|
250
|
+
try {
|
|
251
|
+
const { loadConfig } = await import("../lib/config-manager.js");
|
|
252
|
+
visionModel = loadConfig()?.llm?.visionModel || undefined;
|
|
253
|
+
} catch {
|
|
254
|
+
/* optional — resolveVisionLlm falls back to DEFAULT_VISION_MODEL */
|
|
255
|
+
}
|
|
256
|
+
}
|
|
244
257
|
const cwd = options.cwd || process.cwd();
|
|
245
258
|
const additionalDirectories = Array.isArray(options.additionalDirectories)
|
|
246
259
|
? options.additionalDirectories.filter(Boolean)
|
|
@@ -636,6 +649,12 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
636
649
|
|
|
637
650
|
let turns = 0;
|
|
638
651
|
let sawError = false;
|
|
652
|
+
// Once any turn attaches an image, the image stays in the conversation
|
|
653
|
+
// history — so every later turn (even a text-only follow-up like "what colour
|
|
654
|
+
// is it?") must keep using the vision LLM, otherwise a text-only default model
|
|
655
|
+
// is handed image content it can't read. Claude Code never hits this (one
|
|
656
|
+
// multimodal model); cc splits text/vision models, so we sticky the routing.
|
|
657
|
+
let conversationHasImages = false;
|
|
639
658
|
|
|
640
659
|
// ── Concurrent stdin pump (turn-interrupt support) ────────────────────────
|
|
641
660
|
// Input is consumed AS IT ARRIVES — not between turns — so an
|
|
@@ -863,6 +882,8 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
863
882
|
// Attach pasted/added images (panel parity with `--image`): file paths →
|
|
864
883
|
// data URLs → OpenAI-style multimodal content. buildUserContent returns
|
|
865
884
|
// the plain string when there are no images, so text turns are unchanged.
|
|
885
|
+
// On an image turn, also switch THIS turn to the vision LLM (model only —
|
|
886
|
+
// same account/key) so it's read by a vision-capable model.
|
|
866
887
|
let turnContent = userContent;
|
|
867
888
|
if (parsed.images && parsed.images.length) {
|
|
868
889
|
try {
|
|
@@ -872,6 +893,7 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
872
893
|
userContent,
|
|
873
894
|
resolveImages(parsed.images),
|
|
874
895
|
);
|
|
896
|
+
conversationHasImages = true;
|
|
875
897
|
} catch (err) {
|
|
876
898
|
emit({
|
|
877
899
|
type: "result",
|
|
@@ -883,6 +905,24 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
883
905
|
continue; // bad attachment kills the turn, not the session
|
|
884
906
|
}
|
|
885
907
|
}
|
|
908
|
+
// Route to the vision LLM (model only — same provider/account/key/baseUrl)
|
|
909
|
+
// on any turn that carries an image AND on every later turn once the
|
|
910
|
+
// conversation holds an image, so a text-only follow-up about the image
|
|
911
|
+
// isn't sent to a text-only default model that can't read the history.
|
|
912
|
+
let turnVisionLlm = null;
|
|
913
|
+
if (conversationHasImages) {
|
|
914
|
+
const { resolveVisionLlm } = await import("../lib/image-input.js");
|
|
915
|
+
turnVisionLlm = resolveVisionLlm({
|
|
916
|
+
hasImage: true,
|
|
917
|
+
flags: {},
|
|
918
|
+
llm: { provider, baseUrl, apiKey, visionModel },
|
|
919
|
+
});
|
|
920
|
+
if (parsed.images && parsed.images.length) {
|
|
921
|
+
writeErr(
|
|
922
|
+
` [image] ${parsed.images.length} attached → vision model ${turnVisionLlm.model}\n`,
|
|
923
|
+
);
|
|
924
|
+
}
|
|
925
|
+
}
|
|
886
926
|
|
|
887
927
|
messages.push({ role: "user", content: turnContent });
|
|
888
928
|
if (persist) {
|
|
@@ -906,7 +946,21 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
906
946
|
try {
|
|
907
947
|
outcome = await runTurn(
|
|
908
948
|
messages,
|
|
909
|
-
{
|
|
949
|
+
{
|
|
950
|
+
...loopOptionsBase,
|
|
951
|
+
// Image turn → switch this turn's provider/model/baseUrl/apiKey to
|
|
952
|
+
// the vision LLM (model only; same account/key/baseUrl).
|
|
953
|
+
...(turnVisionLlm
|
|
954
|
+
? {
|
|
955
|
+
provider: turnVisionLlm.provider,
|
|
956
|
+
model: turnVisionLlm.model,
|
|
957
|
+
baseUrl: turnVisionLlm.baseUrl,
|
|
958
|
+
apiKey: turnVisionLlm.apiKey,
|
|
959
|
+
}
|
|
960
|
+
: {}),
|
|
961
|
+
iterationBudget: budget,
|
|
962
|
+
signal: turnSignal,
|
|
963
|
+
},
|
|
910
964
|
{ runLoop, emit, costBudget },
|
|
911
965
|
);
|
|
912
966
|
} catch (err) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as T,P as c,J as f,U as r,c as h,_ as k,R as n,V as l,K as d,Q as u,S as g,b as t}from"./vendor-BvqAck49.js";import{_ as j}from"./index-BgqftzvZ.js";import{aG as w}from"./icons-DP3uiYxy.js";const M={__name:"EmailListRenderer",props:{event:{type:Object,required:!0}},setup(_,{expose:m}){m();const a=_,e=t(()=>a.event.content||{}),i=t(()=>a.event.extra||{}),p=t(()=>e.value.from||e.value.sender||e.value.fromName||a.event.actor||"(未知发件人)"),s=t(()=>e.value.subject||e.value.title||"(无主题)"),y=t(()=>e.value.snippet||e.value.preview||e.value.body?.slice(0,100)||null),b=t(()=>Array.isArray(e.value.attachments)?e.value.attachments.length:typeof e.value.attachmentCount=="number"?e.value.attachmentCount:0),x=t(()=>i.value.category||e.value.category),S=t(()=>e.value.unread===!0),C=t(()=>{if(!a.event.occurredAt)return"";const o=new Date(a.event.occurredAt);return`${o.getFullYear()}-${String(o.getMonth()+1).padStart(2,"0")}-${String(o.getDate()).padStart(2,"0")} ${String(o.getHours()).padStart(2,"0")}:${String(o.getMinutes()).padStart(2,"0")}`}),v={props:a,c:e,e:i,fromText:p,subjectText:s,snippetText:y,attachmentCount:b,category:x,isUnread:S,formattedTime:C,computed:t,get MailOutlined(){return w}};return Object.defineProperty(v,"__isScriptSetup",{enumerable:!1,value:!0}),v}},N={class:"email-row"},O={class:"left"},V={class:"body"},A={class:"head"},B={class:"from"},E={class:"time"},L={class:"subject"},R={key:0,class:"snippet"},U={class:"meta"};function D(_,m,a,e,i,p){const s=T("a-tag");return c(),f("div",N,[r("div",O,[h(e.MailOutlined,{class:k(["icon",{unread:e.isUnread}])},null,8,["class"])]),r("div",V,[r("div",A,[r("span",B,n(e.fromText),1),r("span",E,n(e.formattedTime),1)]),r("div",L,n(e.subjectText),1),e.snippetText?(c(),f("div",R,n(e.snippetText),1)):l("v-if",!0),r("div",U,[h(s,{color:"blue",class:"src"},{default:d(()=>[u(n(a.event.source.adapter),1)]),_:1}),e.attachmentCount>0?(c(),g(s,{key:0,color:"orange"},{default:d(()=>[u(" 📎 "+n(e.attachmentCount),1)]),_:1})):l("v-if",!0),e.category?(c(),g(s,{key:1},{default:d(()=>[u(n(e.category),1)]),_:1})):l("v-if",!0)])])])}const q=j(M,[["render",D],["__scopeId","data-v-e4ddf632"],["__file","/tmp/cc-web-panel-oYLsUC/repo/packages/web-panel/src/components/pdh/renderers/EmailListRenderer.vue"]]);export{q as default};
|