chainlesschain 0.162.119 → 0.162.120
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-DHRc0Ie_.js → AIOps-MUE7jVfi.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CgUXfXke.js → ActionButton-DKkJNgJW.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DIKHjclG.js → Analytics-DcHt5MVA.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-vX1r-6CY.js → AppLayout-BjF0MsBB.js} +5 -5
- package/src/assets/web-panel/assets/{Audit-DzJx-WeF.js → Audit-CybGKBUd.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DZ4na4uj.js → Backup-CzZoTRnY.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-qUEPpz0X.js → BaseInput-CG8BgY54.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-DTZl8nH5.js → Chat-S6AcW4T2.js} +4 -4
- package/src/assets/web-panel/assets/ChatBubbleRenderer-XpONY6wA.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-BQFF8-dn.js → Checkbox-DZ_LDoVZ.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DIQaC76u.js → Codegen-DN2ZYd_4.js} +1 -1
- package/src/assets/web-panel/assets/{Col-uy6MSNXM.js → Col-Cidm2Ykv.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DJSclfR8.js → Community-ByNGbzcY.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DS2_Cpq1.js → Compact-Dj9vY8yk.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-T6LqAmah.js → Compliance-_0ipnnBf.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BrqyP337.js → Cowork-BNdunLG9.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-DYFCc-f1.js → Cron-BvzsO_i-.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CnWNsqde.js → Crosschain-BSR_odwN.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Cno6plcv.js → DID-AsJk_1HF.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CsgzRLsJ.js → Dashboard-tYbIuKgu.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BUKI1xuG.js → Dropdown-CVuLEkIH.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DuEOjlci.js → EmailListRenderer-C4DBbxZ8.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BfnUdEaU.js → FamilyGuardDashboard-DNX_oWxL.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CfeUTibi.js → Federation-Cl5fg-2b.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-D14wwVsq.js → FormItemContext-sMFqQO5g.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CGx7VfKf.js → GenericCardRenderer-qZpi2wH1.js} +1 -1
- package/src/assets/web-panel/assets/{Git-chaiL5nL.js → Git-uO96e0En.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-Ca5rbA-N.js → Governance-CAkQyU1W.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DA0DK7dc.js → Inference-kQgYGwuX.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BwaAK34_.js → KnowledgeGraph-B3r3qbm6.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-FA4XPXuO.js → Logs-BhnUcQP2.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-eOsO5rY3.js → Marketplace-cSrDXJRg.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-D88TlCnE.js → McpTools-D7tn-iuQ.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-DsIN2Sv6.js → Memory-YfMrETfK.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge--q60qDOY.js → MobileBridge-QYTJAlGR.js} +3 -3
- package/src/assets/web-panel/assets/MobileProjects-hulCHsOG.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-BYfKH7WL.js → Mtc-C6a2fTit.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-D35u_eyo.js → MtcAudit-tPoY6xsu.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-BksPgmCa.js → Multisig-VVdmiLTB.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-D5cbMuDm.js → NLProgramming-BuI8pzz1.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-Cu_pbWTB.js → Notes-f_coT28Z.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-C81tVX8S.js → NotificationSettings-D8Beg8OP.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Ccx2Lxcc.js → OrderTableRenderer-C9PxKWwg.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BIJzR15j.js → Organization-fUX97U1w.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BKCASkRj.js → Overflow-vVjV0pGU.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-Q4mb4TFL.js → P2P-DGM6VCzC.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-CPWIjtON.js → PdhVaultBrowser-j01q6J9e.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-DCo0YoEd.js → Permissions-Q7NYy0Wv.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-CT-Efwnw.js → PersonalDataHub-Bdp3MI1-.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-B5iEJ2T_.js → Pipeline-CB1xH835.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-BjOXW26f.js → Privacy-DIbp3aJd.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-DE6GZFCM.js → ProjectInit-DzEtaFH9.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-cHsBvsYo.js → ProjectSettings-CiciM4K4.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-Bi4Wv8m6.js → Projects-C7KoEuf4.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-C0yVlpp5.js → Providers-CXgLwW2L.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-C6BQQUUw.js → QuickAsk-nzHdN2F2.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-Dz18iBwP.js → Recommend-BicIztEZ.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-LagVnM_Q.js → Reputation-C_Y8oRqf.js} +1 -1
- package/src/assets/web-panel/assets/{Row--IaheXkB.js → Row-CkNhTYCZ.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CDNYaijn.js → RssFeed-D_fjy-vQ.js} +3 -3
- package/src/assets/web-panel/assets/{Search-D6DPr_Km.js → Search-CCsIRDKU.js} +1 -1
- package/src/assets/web-panel/assets/{Security-a4-jIBqX.js → Security-CHJPSsH6.js} +3 -3
- package/src/assets/web-panel/assets/{Services-Bmj4jr2Q.js → Services-BQr5Adu-.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BhKpCNqE.js → Skeleton-BQtvUIf2.js} +1 -1
- package/src/assets/web-panel/assets/Skills-Dc0LU3LK.js +1 -0
- package/src/assets/web-panel/assets/{Sla-D68DDW4T.js → Sla-BO5j3PAQ.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CxCF4E_o.js → SpeechSettings-BmPQTYAi.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-pcetCirO.js → SyncSettings-BnobmeAo.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-DFFcr6Zm.js +1 -0
- package/src/assets/web-panel/assets/{Templates-6QfV55r3.js → Templates-RZh0Oh_Q.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BOI2_4NB.js → Tenant-BD6D6Ak7.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-DSIv5Z7S.js → Terminal-BSuShSOU.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-C4tC343-.js → TimelineRenderer-DmwdA_BU.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-CnNoHnJv.js → Tokens-CMgdZ-HW.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-BaRSXO70.js → Trigger-Ckz3UHfh.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-CWnKxwgN.js → Trust-AKEeF68u.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-De8aN7WZ.js → UkeySign-y_PA8Ugs.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Cu7XhMNZ.js → VideoEditing-BDCHMoYT.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-xfhJUu0f.js → Wallet-BUPNjLDa.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-Bt6sYYDk.js → WebAuthn-BSkgJ_ej.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-C4LZ0x-0.js → WorkflowEditor-Cly_vJCn.js} +1 -1
- package/src/assets/web-panel/assets/{chat-33Oq8wz3.js → chat-B2upy0kk.js} +1 -1
- package/src/assets/web-panel/assets/{colors-COL29MyD.js → colors-DRymaRcw.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-D8hinshK.js → compact-item-BjlECmvE.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DVD4d6-0.js → createContext-NByPo135.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-BQpi8pDO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-CvLpycQb.js → hasIn-CnapAb4N.js} +1 -1
- package/src/assets/web-panel/assets/{index-DhHsdI-s.js → index-3N2bkUYM.js} +1 -1
- package/src/assets/web-panel/assets/{index-JR5iJ3Nm.js → index-69yznrDs.js} +1 -1
- package/src/assets/web-panel/assets/{index-65FhG6v3.js → index-B0IxW10q.js} +1 -1
- package/src/assets/web-panel/assets/{index-BcqrzCOI.js → index-B1l9stj4.js} +1 -1
- package/src/assets/web-panel/assets/{index-cgs0nxzF.js → index-B7EkRJNQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DigxhXCh.js → index-B8mHLG8W.js} +1 -1
- package/src/assets/web-panel/assets/{index-DD9PcRt3.js → index-BC3lHdGe.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bc1y36ct.js → index-BCIn3-zn.js} +3 -3
- package/src/assets/web-panel/assets/{index-DpAeo8Y1.js → index-BdsQCfwD.js} +1 -1
- package/src/assets/web-panel/assets/{index-B3Ja9sDO.js → index-Bl67igbC.js} +1 -1
- package/src/assets/web-panel/assets/{index-DGDKCtU2.js → index-BlVSeRLX.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAZl_jZJ.js → index-BnYbOEQ5.js} +1 -1
- package/src/assets/web-panel/assets/{index-BmieBFpM.js → index-BuMhmoLi.js} +1 -1
- package/src/assets/web-panel/assets/index-BvYGiwBG.js +1 -0
- package/src/assets/web-panel/assets/{index-B2nqCkxx.js → index-C35ewkvS.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaXHhqHE.js → index-C4Je7eKb.js} +1 -1
- package/src/assets/web-panel/assets/{index-DUkg9C1d.js → index-C5QIx6d1.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdlzRBsd.js → index-C8mpo9w0.js} +1 -1
- package/src/assets/web-panel/assets/{index-3GhR2NdM.js → index-CBqC10Mz.js} +1 -1
- package/src/assets/web-panel/assets/index-CC_4NPrV.js +1 -0
- package/src/assets/web-panel/assets/{index-CNTOYZQJ.js → index-CQ6Td4oP.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4L1oFlv.js → index-CmdbB6n1.js} +1 -1
- package/src/assets/web-panel/assets/{index-CXFtAKWy.js → index-CoZgzgDg.js} +1 -1
- package/src/assets/web-panel/assets/{index-BCJdqeDG.js → index-DDOEPs_e.js} +1 -1
- package/src/assets/web-panel/assets/{index-DnxPhaUe.js → index-DQRbttWF.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dk6Mp5o3.js → index-DSNzuCKY.js} +1 -1
- package/src/assets/web-panel/assets/{index-BzJsjPb9.js → index-DUZ5OBUP.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4E97124.js → index-DaQVzr6e.js} +1 -1
- package/src/assets/web-panel/assets/{index-1HmyagUk.js → index-DdWH7Nnq.js} +1 -1
- package/src/assets/web-panel/assets/{index-D50I92to.js → index-DfV7ozPn.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_KT8dhv.js → index-DpVmeNyO.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcSZkELE.js → index-DrJVa6Gk.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dz_IGu03.js → index-KbNiEQkd.js} +1 -1
- package/src/assets/web-panel/assets/{index-DDzdST6b.js → index-MtPi9EHn.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dm47rSqn.js → index-aV-LQt0K.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ctz762df.js → index-iFODT6oN.js} +1 -1
- package/src/assets/web-panel/assets/{index-D72pZlFa.js → index-o8nqsumS.js} +1 -1
- package/src/assets/web-panel/assets/{index-CSzLUjjZ.js → index-qVEh-o74.js} +1 -1
- package/src/assets/web-panel/assets/{index-czxh_xOe.js → index-sX1MbnSU.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DqSLMT1R.js → initDefaultProps-o1fFt3V7.js} +1 -1
- package/src/assets/web-panel/assets/{motion-DkdJz9l-.js → motion-Bwj9ZiqO.js} +1 -1
- package/src/assets/web-panel/assets/{move-oonN7lOc.js → move-DoTSIAxU.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BeFyiGwR.js → omit-DkO-otLG.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-OePKGTKF.js → pickAttrs-7dqbsVWT.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CjQXhAph.js → placementArrow-WPFcCNIM.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-Dmn9lUes.js → responsiveObserve-DqQxE3aN.js} +1 -1
- package/src/assets/web-panel/assets/{slide-Dfi_sykC.js → slide-CyzizbNB.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-Dl9mPVld.js → statusUtils-C71vV6Kb.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-D3ay9a4W.js → styleChecker-DVrLfHrc.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-D07_5fY3.js → useFlexGapSupport-DVNyuXrQ.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-D3axlil7.js → useFs-BpBz_yQJ.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CR53u77i.js → usePersonalDataHub-CYHp2Bn2.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-DNOIJ4an.js → vnode-CXAL4PQ0.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-MIAkyImQ.js → zoom-mrlkZmnn.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/update.js +20 -0
- package/src/runtime/__tests__/message-roles.test.js +142 -0
- package/src/runtime/headless-runner.js +8 -2
- package/src/runtime/headless-stream.js +34 -1
- package/src/runtime/message-roles.js +94 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-DD2tLmRr.js +0 -1
- package/src/assets/web-panel/assets/MobileProjects-84NgjQck.js +0 -1
- package/src/assets/web-panel/assets/Skills-BqmheUDl.js +0 -1
- package/src/assets/web-panel/assets/Tasks-D3er3tkS.js +0 -1
- package/src/assets/web-panel/assets/devWarning-CKV56AdO.js +0 -1
- package/src/assets/web-panel/assets/index-DBC8yuEG.js +0 -1
- package/src/assets/web-panel/assets/index-z9Rtlw7F.js +0 -1
package/src/assets/web-panel/assets/{placementArrow-CjQXhAph.js → placementArrow-WPFcCNIM.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-BCIn3-zn.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-Dmn9lUes.js → responsiveObserve-DqQxE3aN.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as o,h}from"./index-
|
|
1
|
+
import{I as o,h}from"./index-BCIn3-zn.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-BCIn3-zn.js";import{i as e}from"./motion-Bwj9ZiqO.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-BCIn3-zn.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-BCIn3-zn.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-D07_5fY3.js → useFlexGapSupport-DVNyuXrQ.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-DVrLfHrc.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-BCIn3-zn.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-BCIn3-zn.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-BCIn3-zn.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-BCIn3-zn.js";import{i as f}from"./motion-Bwj9ZiqO.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-BCIn3-zn.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/commands/update.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
+
import semver from "semver";
|
|
2
3
|
import { execSync } from "node:child_process";
|
|
3
4
|
import { checkForUpdates } from "../lib/version-checker.js";
|
|
4
5
|
import { downloadRelease } from "../lib/downloader.js";
|
|
@@ -6,11 +7,30 @@ import { VERSION } from "../constants.js";
|
|
|
6
7
|
import { askConfirm } from "../lib/prompts.js";
|
|
7
8
|
import logger from "../lib/logger.js";
|
|
8
9
|
|
|
10
|
+
/**
|
|
11
|
+
* A version that is safe to interpolate into `npm install -g chainlesschain@<v>`.
|
|
12
|
+
* The version reaching selfUpdateCli already comes from version-checker (gated by
|
|
13
|
+
* semver.gt), but it flows UNQUOTED into a shell command, so validate it locally
|
|
14
|
+
* too: a strict semver can only contain [0-9A-Za-z.+-] — never a shell
|
|
15
|
+
* metacharacter — so this makes shell-injection impossible at the point of use
|
|
16
|
+
* rather than relying solely on a check in another module.
|
|
17
|
+
*/
|
|
18
|
+
export function isInstallableVersion(v) {
|
|
19
|
+
return typeof v === "string" && semver.valid(v) !== null;
|
|
20
|
+
}
|
|
21
|
+
|
|
9
22
|
async function selfUpdateCli(targetVersion) {
|
|
10
23
|
if (VERSION === targetVersion) {
|
|
11
24
|
return true; // Already at the target version
|
|
12
25
|
}
|
|
13
26
|
|
|
27
|
+
if (!isInstallableVersion(targetVersion)) {
|
|
28
|
+
logger.warn(
|
|
29
|
+
`Refusing to self-update to an invalid version: ${String(targetVersion).slice(0, 60)}`,
|
|
30
|
+
);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
|
|
14
34
|
try {
|
|
15
35
|
logger.info("Updating CLI package...");
|
|
16
36
|
execSync(`npm install -g chainlesschain@${targetVersion}`, {
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
mergeConsecutiveMessages,
|
|
4
|
+
_internal,
|
|
5
|
+
} from "../message-roles.js";
|
|
6
|
+
|
|
7
|
+
describe("mergeConsecutiveMessages", () => {
|
|
8
|
+
it("is a no-op on a healthy alternating transcript", () => {
|
|
9
|
+
const msgs = [
|
|
10
|
+
{ role: "system", content: "sys" },
|
|
11
|
+
{ role: "user", content: "a" },
|
|
12
|
+
{ role: "assistant", content: "b" },
|
|
13
|
+
{ role: "user", content: "c" },
|
|
14
|
+
];
|
|
15
|
+
expect(mergeConsecutiveMessages(msgs)).toEqual(msgs);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("merges two consecutive user turns (the --resume no-response bug)", () => {
|
|
19
|
+
// history ended with a bare `user` (prior run produced no assistant
|
|
20
|
+
// response); a new user prompt was spliced after it.
|
|
21
|
+
const out = mergeConsecutiveMessages([
|
|
22
|
+
{ role: "system", content: "sys" },
|
|
23
|
+
{ role: "user", content: "original task" },
|
|
24
|
+
{ role: "user", content: "continue please" },
|
|
25
|
+
]);
|
|
26
|
+
expect(out).toEqual([
|
|
27
|
+
{ role: "system", content: "sys" },
|
|
28
|
+
{ role: "user", content: "original task\n\ncontinue please" },
|
|
29
|
+
]);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("merges three-plus consecutive same-role turns", () => {
|
|
33
|
+
const out = mergeConsecutiveMessages([
|
|
34
|
+
{ role: "user", content: "one" },
|
|
35
|
+
{ role: "user", content: "two" },
|
|
36
|
+
{ role: "user", content: "three" },
|
|
37
|
+
]);
|
|
38
|
+
expect(out).toEqual([{ role: "user", content: "one\n\ntwo\n\nthree" }]);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("merges consecutive assistant turns defensively", () => {
|
|
42
|
+
const out = mergeConsecutiveMessages([
|
|
43
|
+
{ role: "assistant", content: "x" },
|
|
44
|
+
{ role: "assistant", content: "y" },
|
|
45
|
+
]);
|
|
46
|
+
expect(out).toEqual([{ role: "assistant", content: "x\n\ny" }]);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it("never merges system messages (leading base + context pair kept distinct)", () => {
|
|
50
|
+
const msgs = [
|
|
51
|
+
{ role: "system", content: "base" },
|
|
52
|
+
{ role: "system", content: "session-context" },
|
|
53
|
+
{ role: "user", content: "hi" },
|
|
54
|
+
];
|
|
55
|
+
expect(mergeConsecutiveMessages(msgs)).toEqual(msgs);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("preserves the user turn after a healthy assistant tail", () => {
|
|
59
|
+
const out = mergeConsecutiveMessages([
|
|
60
|
+
{ role: "assistant", content: "done" },
|
|
61
|
+
{ role: "user", content: "next" },
|
|
62
|
+
]);
|
|
63
|
+
expect(out).toEqual([
|
|
64
|
+
{ role: "assistant", content: "done" },
|
|
65
|
+
{ role: "user", content: "next" },
|
|
66
|
+
]);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it("combines multimodal content arrays when merging user turns", () => {
|
|
70
|
+
const out = mergeConsecutiveMessages([
|
|
71
|
+
{
|
|
72
|
+
role: "user",
|
|
73
|
+
content: [
|
|
74
|
+
{ type: "text", text: "look" },
|
|
75
|
+
{ type: "image", source: "x" },
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
{ role: "user", content: "and describe" },
|
|
79
|
+
]);
|
|
80
|
+
expect(out).toHaveLength(1);
|
|
81
|
+
expect(out[0].role).toBe("user");
|
|
82
|
+
expect(out[0].content).toEqual([
|
|
83
|
+
{ type: "text", text: "look" },
|
|
84
|
+
{ type: "image", source: "x" },
|
|
85
|
+
{ type: "text", text: "and describe" },
|
|
86
|
+
]);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("treats an empty-string content as nothing when merging", () => {
|
|
90
|
+
const out = mergeConsecutiveMessages([
|
|
91
|
+
{ role: "user", content: "" },
|
|
92
|
+
{ role: "user", content: "real" },
|
|
93
|
+
]);
|
|
94
|
+
expect(out).toEqual([{ role: "user", content: "real" }]);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it("does not mutate the input array or its messages", () => {
|
|
98
|
+
const input = [
|
|
99
|
+
{ role: "user", content: "a" },
|
|
100
|
+
{ role: "user", content: "b" },
|
|
101
|
+
];
|
|
102
|
+
const snapshot = JSON.parse(JSON.stringify(input));
|
|
103
|
+
mergeConsecutiveMessages(input);
|
|
104
|
+
expect(input).toEqual(snapshot);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("passes through falsy / role-less entries verbatim without crashing", () => {
|
|
108
|
+
const out = mergeConsecutiveMessages([
|
|
109
|
+
null,
|
|
110
|
+
{ content: "no role" },
|
|
111
|
+
{ role: "user", content: "a" },
|
|
112
|
+
{ role: "user", content: "b" },
|
|
113
|
+
]);
|
|
114
|
+
expect(out).toEqual([
|
|
115
|
+
null,
|
|
116
|
+
{ content: "no role" },
|
|
117
|
+
{ role: "user", content: "a\n\nb" },
|
|
118
|
+
]);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it("returns the argument unchanged when not an array", () => {
|
|
122
|
+
expect(mergeConsecutiveMessages(null)).toBe(null);
|
|
123
|
+
expect(mergeConsecutiveMessages(undefined)).toBe(undefined);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
describe("_internal.joinContent", () => {
|
|
127
|
+
const { joinContent } = _internal;
|
|
128
|
+
it("joins two strings with a blank line", () => {
|
|
129
|
+
expect(joinContent("a", "b")).toBe("a\n\nb");
|
|
130
|
+
});
|
|
131
|
+
it("returns the non-empty side when one string is empty", () => {
|
|
132
|
+
expect(joinContent("", "b")).toBe("b");
|
|
133
|
+
expect(joinContent("a", "")).toBe("a");
|
|
134
|
+
});
|
|
135
|
+
it("promotes a string to a text block when joining with an array", () => {
|
|
136
|
+
expect(joinContent("hi", [{ type: "image", source: "x" }])).toEqual([
|
|
137
|
+
{ type: "text", text: "hi" },
|
|
138
|
+
{ type: "image", source: "x" },
|
|
139
|
+
]);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
});
|
|
@@ -46,6 +46,7 @@ import {
|
|
|
46
46
|
import { expandFileRefsAsync } from "./file-ref-expander.js";
|
|
47
47
|
import { composeSystemPrompt } from "./system-prompt.js";
|
|
48
48
|
import { buildUserContent } from "../lib/image-input.js";
|
|
49
|
+
import { mergeConsecutiveMessages } from "./message-roles.js";
|
|
49
50
|
import { isHeadlessConfigCommand } from "../lib/headless-config-command.js";
|
|
50
51
|
import { withQuietStdout } from "./quiet-stdout.js";
|
|
51
52
|
import { CostBudget } from "../lib/cost-budget.js";
|
|
@@ -610,14 +611,19 @@ export async function runAgentHeadless(options = {}, deps = {}) {
|
|
|
610
611
|
// content array (agent-core converts it per-provider for ollama/anthropic).
|
|
611
612
|
const userMessageContent = buildUserContent(userContent, options.images);
|
|
612
613
|
|
|
613
|
-
|
|
614
|
+
// Merge consecutive same-role turns so a resumed session whose previous run
|
|
615
|
+
// produced NO assistant response (history ends with a bare `user` turn) does
|
|
616
|
+
// not yield two adjacent `user` messages — which Anthropic/Bedrock reject as
|
|
617
|
+
// "roles must alternate", failing the resume (Claude Code 2.1.187 parity).
|
|
618
|
+
// No-op on a healthy alternating transcript.
|
|
619
|
+
const messages = mergeConsecutiveMessages([
|
|
614
620
|
{ role: "system", content: systemContent },
|
|
615
621
|
...(sessionStartContext
|
|
616
622
|
? [{ role: "system", content: sessionStartContext }]
|
|
617
623
|
: []),
|
|
618
624
|
...history,
|
|
619
625
|
{ role: "user", content: userMessageContent },
|
|
620
|
-
];
|
|
626
|
+
]);
|
|
621
627
|
|
|
622
628
|
// Persist the user turn up front (best-effort) so a session is recoverable
|
|
623
629
|
// even if the run crashes mid-loop. startSession is append-safe: only seed
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { bootstrap } from "./bootstrap.js";
|
|
20
20
|
import { buildSystemPrompt, agentLoop as coreAgentLoop } from "./agent-core.js";
|
|
21
21
|
import { composeSystemPrompt } from "./system-prompt.js";
|
|
22
|
+
import { mergeConsecutiveMessages } from "./message-roles.js";
|
|
22
23
|
import { expandFileRefsAsync } from "./file-ref-expander.js";
|
|
23
24
|
import { detectImagePaths } from "../lib/image-input.js";
|
|
24
25
|
import { detectVersionSkew, versionSkewMessage } from "../lib/version-skew.js";
|
|
@@ -259,7 +260,22 @@ async function runTurn(messages, loopOptions, { runLoop, emit, costBudget }) {
|
|
|
259
260
|
let endReason = "complete";
|
|
260
261
|
let stopForCost = false;
|
|
261
262
|
|
|
262
|
-
|
|
263
|
+
// Merge consecutive same-role turns before the model call ONLY when the
|
|
264
|
+
// caller flags a resume-degenerate transcript (`mergeRoles`): a resumed
|
|
265
|
+
// session whose previous run produced NO assistant response leaves a trailing
|
|
266
|
+
// bare `user` turn, so splicing the first live prompt after it sends two
|
|
267
|
+
// adjacent `user` messages — which Anthropic/Bedrock reject as "roles must
|
|
268
|
+
// alternate" (Claude Code 2.1.187 parity). It is GATED rather than applied
|
|
269
|
+
// every turn because the live turn loop legitimately produces consecutive
|
|
270
|
+
// `user` messages — an interrupted turn's dangling prompt, a PDH feedback
|
|
271
|
+
// note (§3.5.13) — that must reach the model distinctly and must not be
|
|
272
|
+
// folded (folding the interrupt-dangling turn even resurrects the abandoned
|
|
273
|
+
// request). Non-mutating: the persistent `messages` array is untouched; only
|
|
274
|
+
// the provider payload is sanitized.
|
|
275
|
+
const modelMessages = loopOptions.mergeRoles
|
|
276
|
+
? mergeConsecutiveMessages(messages)
|
|
277
|
+
: messages;
|
|
278
|
+
for await (const event of runLoop(modelMessages, loopOptions)) {
|
|
263
279
|
switch (event.type) {
|
|
264
280
|
case "tool-executing":
|
|
265
281
|
toolCalls.push({ tool: event.tool, args: event.args });
|
|
@@ -642,6 +658,15 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
642
658
|
}
|
|
643
659
|
}
|
|
644
660
|
|
|
661
|
+
// Resume-degenerate role sanitation (Claude Code 2.1.187 parity): when the
|
|
662
|
+
// replayed history ends with a bare `user` turn (the prior run produced no
|
|
663
|
+
// assistant response), the FIRST live prompt would make two adjacent `user`
|
|
664
|
+
// messages. Arm a one-shot flag consumed by the first model call so the merge
|
|
665
|
+
// fires exactly once — the live turn loop's intentional consecutive-`user`
|
|
666
|
+
// states (interrupt-dangling turn, PDH feedback note) are never folded.
|
|
667
|
+
let sanitizeRolesNextTurn =
|
|
668
|
+
resumedMessages > 0 && messages[messages.length - 1]?.role === "user";
|
|
669
|
+
|
|
645
670
|
emit({
|
|
646
671
|
type: "system",
|
|
647
672
|
subtype: "init",
|
|
@@ -1294,6 +1319,12 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
1294
1319
|
? AbortSignal.any([options.signal, currentAbort.signal])
|
|
1295
1320
|
: currentAbort.signal;
|
|
1296
1321
|
|
|
1322
|
+
// Consume the one-shot resume-degeneracy flag for THIS turn (see
|
|
1323
|
+
// sanitizeRolesNextTurn) so the role merge fires exactly once, whether the
|
|
1324
|
+
// model call completes or is interrupted.
|
|
1325
|
+
const mergeRolesThisTurn = sanitizeRolesNextTurn;
|
|
1326
|
+
sanitizeRolesNextTurn = false;
|
|
1327
|
+
|
|
1297
1328
|
let outcome;
|
|
1298
1329
|
try {
|
|
1299
1330
|
outcome = await runTurn(
|
|
@@ -1339,6 +1370,8 @@ export async function runAgentHeadlessStream(options = {}, deps = {}) {
|
|
|
1339
1370
|
: {}),
|
|
1340
1371
|
iterationBudget: budget,
|
|
1341
1372
|
signal: turnSignal,
|
|
1373
|
+
// Resume-degenerate role merge for the first live model call only.
|
|
1374
|
+
mergeRoles: mergeRolesThisTurn,
|
|
1342
1375
|
},
|
|
1343
1376
|
{ runLoop, emit, costBudget },
|
|
1344
1377
|
);
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation role sanitation shared by the headless runner and the
|
|
3
|
+
* stream-json runtime.
|
|
4
|
+
*
|
|
5
|
+
* Providers that strictly enforce alternating roles — Anthropic, Bedrock, and
|
|
6
|
+
* some OpenAI-compatible gateways — reject a payload with two consecutive
|
|
7
|
+
* messages of the same non-system role ("messages: roles must alternate").
|
|
8
|
+
*
|
|
9
|
+
* A degenerate transcript reaches that state on `--resume` when the ORIGINAL
|
|
10
|
+
* run produced NO assistant response (the model errored, the turn was
|
|
11
|
+
* interrupted, or the provider was down): the persisted JSONL ends with a bare
|
|
12
|
+
* `user` turn. Splicing the new resume prompt after it yields
|
|
13
|
+
* `[…, {role:"user"}, {role:"user"}]` → the provider 400s and resume fails.
|
|
14
|
+
*
|
|
15
|
+
* `mergeConsecutiveMessages` folds adjacent same-role (non-system) turns into a
|
|
16
|
+
* single message so the transcript always alternates, regardless of how it
|
|
17
|
+
* degenerated. This mirrors Claude Code 2.1.187 ("Fixed --resume failing when
|
|
18
|
+
* original run produced no model responses"). It is a no-op on a well-formed
|
|
19
|
+
* alternating transcript, so healthy sessions are byte-for-byte unchanged.
|
|
20
|
+
*
|
|
21
|
+
* @module runtime/message-roles
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Normalize a message `content` field to an array of content blocks. A plain
|
|
26
|
+
* string becomes a single `text` block; an empty string contributes nothing;
|
|
27
|
+
* an existing array is returned as-is; any other object is wrapped as a single
|
|
28
|
+
* opaque block so unknown shapes survive a merge.
|
|
29
|
+
* @param {*} content
|
|
30
|
+
* @returns {Array}
|
|
31
|
+
*/
|
|
32
|
+
function toBlocks(content) {
|
|
33
|
+
if (Array.isArray(content)) return content;
|
|
34
|
+
if (content == null) return [];
|
|
35
|
+
if (typeof content === "string") {
|
|
36
|
+
return content === "" ? [] : [{ type: "text", text: content }];
|
|
37
|
+
}
|
|
38
|
+
return [content];
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Join two message `content` values. When both are plain strings the result
|
|
43
|
+
* stays a string (joined by a blank line) — the overwhelmingly common case, so
|
|
44
|
+
* a text-only resume keeps a string payload. When either side is a multimodal
|
|
45
|
+
* content array, both are normalized to block arrays and concatenated.
|
|
46
|
+
* @param {*} a
|
|
47
|
+
* @param {*} b
|
|
48
|
+
* @returns {string|Array}
|
|
49
|
+
*/
|
|
50
|
+
function joinContent(a, b) {
|
|
51
|
+
if (typeof a === "string" && typeof b === "string") {
|
|
52
|
+
if (a === "") return b;
|
|
53
|
+
if (b === "") return a;
|
|
54
|
+
return `${a}\n\n${b}`;
|
|
55
|
+
}
|
|
56
|
+
return [...toBlocks(a), ...toBlocks(b)];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Merge consecutive same-role, non-system messages so the conversation
|
|
61
|
+
* alternates roles for the provider. System messages are passed through
|
|
62
|
+
* untouched and never participate in a merge (a leading base + session-context
|
|
63
|
+
* system pair stays distinct). Falsy / role-less entries are passed through
|
|
64
|
+
* verbatim rather than dropped.
|
|
65
|
+
*
|
|
66
|
+
* Returns a NEW array; the input is not mutated.
|
|
67
|
+
*
|
|
68
|
+
* @param {Array<object>} messages
|
|
69
|
+
* @returns {Array<object>}
|
|
70
|
+
*/
|
|
71
|
+
export function mergeConsecutiveMessages(messages) {
|
|
72
|
+
if (!Array.isArray(messages)) return messages;
|
|
73
|
+
const out = [];
|
|
74
|
+
for (const msg of messages) {
|
|
75
|
+
const prev = out[out.length - 1];
|
|
76
|
+
if (
|
|
77
|
+
prev &&
|
|
78
|
+
msg &&
|
|
79
|
+
typeof msg.role === "string" &&
|
|
80
|
+
msg.role !== "system" &&
|
|
81
|
+
prev.role === msg.role
|
|
82
|
+
) {
|
|
83
|
+
out[out.length - 1] = {
|
|
84
|
+
...prev,
|
|
85
|
+
content: joinContent(prev.content, msg.content),
|
|
86
|
+
};
|
|
87
|
+
} else {
|
|
88
|
+
out.push(msg);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export const _internal = { toBlocks, joinContent };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as v,P as u,J as S,U as s,R as a,S as y,K as C,Q as w,V as x,_ as B,b as n}from"./vendor-BvqAck49.js";import{_ as k}from"./index-Bc1y36ct.js";import"./icons-DP3uiYxy.js";const N={__name:"ChatBubbleRenderer",props:{event:{type:Object,required:!0}},setup(c,{expose:d}){d();const t=c,r=n(()=>{const e=t.event.content||{};return e.text||e.body||e.message||e.title||JSON.stringify(e).slice(0,200)}),i=n(()=>{const e=t.event.content||{};return e.from||e.sender||e.senderName||t.event.actor||"(unknown)"}),l=n(()=>{const e=(t.event.actor||"").toLowerCase();return e.includes("self")||e==="me"||e.endsWith("_self")}),o=n(()=>{const e=t.event.source.adapter||"";return e.startsWith("messaging-qq")?"magenta":e==="wechat"?"green":"blue"}),m=n(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),p=e.getFullYear(),f=String(e.getMonth()+1).padStart(2,"0"),g=String(e.getDate()).padStart(2,"0"),b=String(e.getHours()).padStart(2,"0"),h=String(e.getMinutes()).padStart(2,"0");return`${p}-${f}-${g} ${b}:${h}`}catch{return""}}),_={props:t,messageText:r,actorLabel:i,isMine:l,adapterColor:o,formattedTime:m,computed:n};return Object.defineProperty(_,"__isScriptSetup",{enumerable:!1,value:!0}),_}},T={class:"bubble"},M={class:"meta"},R={class:"actor"},V={class:"time"},q={class:"body"};function D(c,d,t,r,i,l){const o=v("a-tag");return u(),S("div",{class:B(["chat-row",{mine:r.isMine}])},[s("div",T,[s("div",M,[s("span",R,a(r.actorLabel),1),s("span",V,a(r.formattedTime),1)]),s("div",q,a(r.messageText),1),t.event.source.adapter?(u(),y(o,{key:0,class:"src",color:r.adapterColor},{default:C(()=>[w(a(t.event.source.adapter),1)]),_:1},8,["color"])):x("v-if",!0)])],2)}const j=k(N,[["render",D],["__scopeId","data-v-49238629"],["__file","/tmp/cc-web-panel-nw0Wu0/repo/packages/web-panel/src/components/pdh/renderers/ChatBubbleRenderer.vue"]]);export{j as default};
|
|
@@ -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-Bc1y36ct.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"},w={class:"subtitle"},k={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",w,t(e.t("mobileProjects.subtitle")),1),l(s,{message:e.t("mobileProjects.v02Banner"),type:"info","show-icon":"",class:"banner"},null,8,["message"]),o("div",k,[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-nw0Wu0/repo/packages/web-panel/src/views/MobileProjects.vue"]]);export{N as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as I,b as C,r as b,I as m,J as y,U as a,R as g,c as i,K as u,V as h,F as w,Z as L,N as O,o as M,P as p,Q as S,S as R}from"./vendor-BvqAck49.js";import{u as E,_ as N}from"./index-Bc1y36ct.js";import{u as P}from"./useShellMode-CgR0wCYM.js";import{p as V}from"./parsers-UEvh_ShA.js";import{u as z}from"./chat-33Oq8wz3.js";import{a9 as j,ap as q,R as B}from"./icons-DP3uiYxy.js";const A=I("skills",()=>{const _=b(!1),t=b([]),n=b(""),e=b("all"),k=C(()=>{const o=new Set(["all"]);return t.value.forEach(l=>{l.category&&o.add(l.category),l.executionMode&&o.add(l.executionMode)}),[...o]}),v=C(()=>{let o=t.value;if(e.value!=="all"&&(o=o.filter(l=>l.category===e.value||l.executionMode===e.value)),n.value){const l=n.value.toLowerCase();o=o.filter(d=>d.name?.toLowerCase().includes(l)||d.description?.toLowerCase().includes(l)||d.title?.toLowerCase().includes(l))}return o});async function f(){const o=E();_.value=!0;try{if(P().isEmbedded){const c=await o.sendRaw({type:"skill.list"},2e4);c?.ok&&Array.isArray(c.result?.skills)?t.value=c.result.skills:(console.error("skill.list custom topic failed:",c?.error),t.value=[]);return}const{output:l}=await o.execute("skill list",2e4),d=V(l);t.value=d}catch(l){console.error("Failed to load skills:",l)}finally{_.value=!1}}return{loading:_,allSkills:t,searchQuery:n,selectedCategory:e,categories:k,filteredSkills:v,loadSkills:f}}),F={__name:"Skills",setup(_,{expose:t}){t();const n=A(),e=z(),k=O(),v=C(()=>n.categories.filter(r=>r!=="all").slice(0,6));function f(r){return{"built-in":"内置","cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合",workspace:"工作区",marketplace:"市场"}[r]||r}function o(r){return{"cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合","built-in":"内置"}[r]||r||"未知"}function l(r){return{"cli-direct":"cyan",agent:"purple","llm-query":"blue",hybrid:"orange","built-in":"green"}[r]||"default"}async function d(r){await e.createSession("agent"),k.push("/chat"),setTimeout(()=>{e.currentSessionId&&e.sendMessage(e.currentSessionId,`/skill run ${r}`)},300)}M(()=>{n.allSkills.length||n.loadSkills()});const c={skillsStore:n,chatStore:e,router:k,displayCategories:v,catLabel:f,modeLabel:o,modeColor:l,runSkill:d,computed:C,onMounted:M,get useRouter(){return O},get ReloadOutlined(){return B},get PlayCircleOutlined(){return q},get AppstoreOutlined(){return j},get useSkillsStore(){return A},get useChatStore(){return z}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}},Q={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},U={class:"page-sub"},T={style:{display:"flex",gap:"12px","margin-bottom":"20px","flex-wrap":"wrap"}},W={key:0,style:{"text-align":"center",padding:"60px"}},D={class:"skills-grid"},G={style:{display:"flex","justify-content":"space-between","align-items":"flex-start"}},J={style:{flex:"1","min-width":"0"}},K={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px","font-family":"monospace"}},Z={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},H={style:{"margin-left":"12px","flex-shrink":"0"}},X={style:{"margin-top":"10px",display:"flex","justify-content":"flex-end"}},Y={style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}};function $(_,t,n,e,k,v){const f=m("a-button"),o=m("a-input-search"),l=m("a-radio-button"),d=m("a-radio-group"),c=m("a-spin"),r=m("a-tag"),x=m("a-card");return p(),y("div",null,[a("div",Q,[a("div",null,[t[3]||(t[3]=a("h2",{class:"page-title"},"技能管理",-1)),a("p",U,g(e.skillsStore.allSkills.length)+" 个可用技能",1)]),i(f,{type:"primary",ghost:"",loading:e.skillsStore.loading,onClick:t[0]||(t[0]=s=>e.skillsStore.loadSkills())},{icon:u(()=>[i(e.ReloadOutlined)]),default:u(()=>[t[4]||(t[4]=S(" 刷新 ",-1))]),_:1},8,["loading"])]),h(" Search & Filter "),a("div",T,[i(o,{value:e.skillsStore.searchQuery,"onUpdate:value":t[1]||(t[1]=s=>e.skillsStore.searchQuery=s),placeholder:"搜索技能名称或描述...",style:{width:"300px"},"allow-clear":""},null,8,["value"]),i(d,{value:e.skillsStore.selectedCategory,"onUpdate:value":t[2]||(t[2]=s=>e.skillsStore.selectedCategory=s),"button-style":"solid"},{default:u(()=>[i(l,{value:"all"},{default:u(()=>[...t[5]||(t[5]=[S("全部",-1)])]),_:1}),(p(!0),y(w,null,L(e.displayCategories,s=>(p(),R(l,{key:s,value:s},{default:u(()=>[S(g(e.catLabel(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),h(" Loading State "),e.skillsStore.loading?(p(),y("div",W,[i(c,{size:"large"}),t[6]||(t[6]=a("div",{style:{color:"var(--text-muted)","margin-top":"12px"}},"加载技能中...",-1))])):e.skillsStore.filteredSkills.length?(p(),y(w,{key:1},[h(" Skills Grid "),a("div",D,[(p(!0),y(w,null,L(e.skillsStore.filteredSkills,s=>(p(),R(x,{key:s.name,class:"skill-card",size:"small",hoverable:"",style:{background:"var(--bg-card)","border-color":"var(--border-color)",cursor:"default"}},{default:u(()=>[a("div",G,[a("div",J,[a("div",K,g(s.name),1),a("div",Z,g(s.description||"暂无描述"),1)]),a("div",H,[i(r,{color:e.modeColor(s.executionMode),style:{"font-size":"10px"}},{default:u(()=>[S(g(e.modeLabel(s.executionMode)),1)]),_:2},1032,["color"])])]),a("div",X,[i(f,{size:"small",type:"primary",ghost:"",onClick:ee=>e.runSkill(s.name)},{icon:u(()=>[i(e.PlayCircleOutlined)]),default:u(()=>[t[7]||(t[7]=S(" 运行 ",-1))]),_:1},8,["onClick"])])]),_:2},1024))),128))])],2112)):(p(),y(w,{key:2},[h(" Empty State "),a("div",Y,[i(e.AppstoreOutlined,{style:{"font-size":"48px","margin-bottom":"16px",display:"block"}}),a("div",null,g(e.skillsStore.allSkills.length?"没有匹配的技能":"点击刷新加载技能列表"),1)])],2112))])}const ie=N(F,[["render",$],["__scopeId","data-v-d64d43f5"],["__file","/tmp/cc-web-panel-nw0Wu0/repo/packages/web-panel/src/views/Skills.vue"]]);export{ie as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{E as F,b as D,r as R,I as p,J as c,U as _,c as n,K as a,S as C,V as x,o as I,x as V,P as i,Q as k,R as r,F as T,Z as O}from"./vendor-BvqAck49.js";import{u as P,_ as E}from"./index-Bc1y36ct.js";import{R as U}from"./icons-DP3uiYxy.js";const B=F("tasks",()=>{const y=R([]),l=R(!1);let u=null,t=null,d=null;const b=D(()=>y.value.filter(e=>e.status==="running")),v=D(()=>y.value.filter(e=>e.status==="pending")),w=D(()=>y.value.filter(e=>e.status==="completed"||e.status==="failed"||e.status==="timeout"));async function s(){const e=P();l.value=!0;try{const g=await e.sendRaw({type:"tasks-list"});g&&Array.isArray(g.tasks)&&(y.value=g.tasks)}catch{}finally{l.value=!1}}async function m(e){const g=P();try{await g.sendRaw({type:"tasks-stop",taskId:e})}catch{}finally{await s()}}const f=R(null);function h(e=5e3){N(),s(),u=setInterval(s,e),S()}function N(){u&&(clearInterval(u),u=null),t&&(t(),t=null),d&&(clearTimeout(d),d=null)}function S(){const e=P();if(t)return;const g=z=>{z.type==="task:notification"&&z.payload?.task&&(f.value=z.payload.task,s(),d&&clearTimeout(d),d=setTimeout(()=>{f.value=null,d=null},8e3))};t=e.onRuntimeEvent(g)}function A(e){return!e||e<0?"-":e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${(e/6e4).toFixed(1)}m`}function o(e){switch(e){case"running":return"processing";case"pending":return"default";case"completed":return"success";case"failed":return"error";case"timeout":return"warning";default:return"default"}}return{tasks:y,loading:l,running:b,pending:v,completed:w,lastNotification:f,fetchTasks:s,stopTask:m,startPolling:h,stopPolling:N,formatDuration:A,getStatusColor:o}}),L={__name:"Tasks",setup(y,{expose:l}){l();const u=B(),t=[{title:"状态",key:"status",width:90},{title:"描述",key:"description",ellipsis:!0},{title:"类型",dataIndex:"type",width:100},{title:"耗时",key:"duration",width:90},{title:"创建时间",key:"createdAt",width:180},{title:"结果",key:"result",ellipsis:!0},{title:"操作",key:"action",width:80}];function d(s){return s.status==="running"&&s.startedAt?u.formatDuration(Date.now()-s.startedAt):s.completedAt&&s.startedAt?u.formatDuration(s.completedAt-s.startedAt):"-"}function b(s){return s?new Date(s).toLocaleString():"-"}function v(s,m){return s?s.length>m?`${s.slice(0,m)}...`:s:""}I(()=>u.startPolling(5e3)),V(()=>u.stopPolling());const w={store:u,columns:t,getDuration:d,formatTime:b,truncate:v,onMounted:I,onUnmounted:V,get ReloadOutlined(){return U},get useTasksStore(){return B}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}},W={class:"page-header"},j={key:0,class:"error-text"},J={key:1},K={class:"task-header"},M={class:"task-desc"},Q={class:"task-id"},Z={class:"task-meta"},q=["title"],G={key:0,class:"error-text"},H={key:1,class:"success-text"},X={key:2,class:"muted-text"};function Y(y,l,u,t,d,b){const v=p("a-button"),w=p("a-space"),s=p("a-alert"),m=p("a-statistic"),f=p("a-card"),h=p("a-col"),N=p("a-row"),S=p("a-tag"),A=p("a-table");return i(),c("div",null,[_("div",W,[l[3]||(l[3]=_("div",null,[_("h2",{class:"page-title"},"后台任务"),_("p",{class:"page-sub"},"查看后台任务队列、实时通知和任务执行结果。")],-1)),n(w,null,{default:a(()=>[n(v,{ghost:"",loading:t.store.loading,onClick:l[0]||(l[0]=o=>t.store.fetchTasks())},{icon:a(()=>[n(t.ReloadOutlined)]),default:a(()=>[l[2]||(l[2]=k(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),t.store.lastNotification?(i(),C(s,{key:0,type:t.store.lastNotification.status==="completed"?"success":"error","show-icon":"",closable:"",class:"banner",onClose:l[1]||(l[1]=o=>t.store.lastNotification=null)},{message:a(()=>[k(" 任务"+r(t.store.lastNotification.status==="completed"?"完成":"结束")+": "+r(t.store.lastNotification.description||t.store.lastNotification.id.slice(0,16)),1)]),description:a(()=>[t.store.lastNotification.error?(i(),c("span",j,r(t.store.lastNotification.error),1)):t.store.lastNotification.result?(i(),c("span",J,r(t.truncate(String(t.store.lastNotification.result),120)),1)):x("v-if",!0)]),_:1},8,["type"])):x("v-if",!0),n(N,{gutter:[16,16],class:"stats-row"},{default:a(()=>[n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"全部任务",value:t.store.tasks.length},null,8,["value"])]),_:1})]),_:1}),n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"运行中",value:t.store.running.length},null,8,["value"])]),_:1})]),_:1}),n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"等待中",value:t.store.pending.length},null,8,["value"])]),_:1})]),_:1}),n(h,{xs:12,sm:6},{default:a(()=>[n(f,{class:"stat-card",size:"small"},{default:a(()=>[n(m,{title:"已完成",value:t.store.completed.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),t.store.running.length>0?(i(),C(f,{key:1,title:"运行中的任务",class:"panel-card",size:"small"},{default:a(()=>[(i(!0),c(T,null,O(t.store.running,o=>(i(),c("div",{key:o.id,class:"task-item running"},[_("div",K,[n(S,{color:t.store.getStatusColor(o.status)},{default:a(()=>[k(r(o.status.toUpperCase()),1)]),_:2},1032,["color"]),_("span",M,r(o.description),1),_("span",Q,r(o.id.slice(0,16)),1)]),_("div",Z,[_("span",null,"类型: "+r(o.type||"-"),1),_("span",null,"已运行: "+r(t.store.formatDuration(Date.now()-o.startedAt)),1),n(v,{size:"small",danger:"",onClick:e=>t.store.stopTask(o.id)},{default:a(()=>[...l[4]||(l[4]=[k("停止",-1)])]),_:1},8,["onClick"])])]))),128))]),_:1})):x("v-if",!0),n(f,{class:"panel-card"},{default:a(()=>[n(A,{columns:t.columns,"data-source":t.store.tasks,pagination:{pageSize:15,size:"small"},loading:t.store.loading,"row-key":"id",size:"small"},{bodyCell:a(({column:o,record:e})=>[o.key==="status"?(i(),C(S,{key:0,color:t.store.getStatusColor(e.status)},{default:a(()=>[k(r(e.status),1)]),_:2},1032,["color"])):o.key==="description"?(i(),c("span",{key:1,title:e.command},r(e.description),9,q)):o.key==="duration"?(i(),c(T,{key:2},[k(r(t.getDuration(e)),1)],64)):o.key==="createdAt"?(i(),c(T,{key:3},[k(r(t.formatTime(e.createdAt)),1)],64)):o.key==="result"?(i(),c(T,{key:4},[e.error?(i(),c("span",G,r(t.truncate(e.error,60)),1)):e.result?(i(),c("span",H,r(t.truncate(String(e.result),60)),1)):(i(),c("span",X,"-"))],64)):o.key==="action"?(i(),c(T,{key:5},[e.status==="running"?(i(),C(v,{key:0,size:"small",danger:"",onClick:g=>t.store.stopTask(e.id)},{default:a(()=>[...l[5]||(l[5]=[k(" 停止 ",-1)])]),_:1},8,["onClick"])):x("v-if",!0)],64)):x("v-if",!0)]),_:1},8,["data-source","loading"])]),_:1})])}const st=E(L,[["render",Y],["__scopeId","data-v-da5ff6a2"],["__file","/tmp/cc-web-panel-nw0Wu0/repo/packages/web-panel/src/views/Tasks.vue"]]);export{st as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O as r}from"./index-Bc1y36ct.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-uy6MSNXM.js";import{U as t}from"./index-Bc1y36ct.js";import"./vendor-BvqAck49.js";import"./index-czxh_xOe.js";import"./icons-DP3uiYxy.js";const s=t(o);export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row--IaheXkB.js";import{U as t}from"./index-Bc1y36ct.js";import"./vendor-BvqAck49.js";import"./responsiveObserve-Dmn9lUes.js";import"./useFlexGapSupport-D07_5fY3.js";import"./styleChecker-D3ay9a4W.js";import"./index-czxh_xOe.js";import"./icons-DP3uiYxy.js";const l=t(o);export{l as default};
|