chainlesschain 0.162.96 → 0.162.98
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/README.md +1 -1
- package/package.json +2 -2
- package/src/assets/web-panel/assets/{AIOps-Bo9Ux24z.js → AIOps-Dopp7kG3.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CExgXSQT.js → ActionButton-B9plqRTR.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BNnZhRTZ.js → Analytics-BbL27syj.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-D9xfqFCT.js → AppLayout-B9rOBN1I.js} +5 -5
- package/src/assets/web-panel/assets/{Audit-Cpgu8uCw.js → Audit-SEcFNgDq.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CHdEJnNE.js → Backup-D55NT8a_.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-Cbw-PxBq.js → BaseInput-CQA5i5-j.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-ChHTZK_6.js → Chat-hZVoQErO.js} +6 -6
- package/src/assets/web-panel/assets/ChatBubbleRenderer-DHPGunKz.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-Cj8d9bru.js → Checkbox-YB06gq_Q.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-C2YobW4j.js → Codegen-DEJElWj7.js} +1 -1
- package/src/assets/web-panel/assets/{Col-CxfV5FGT.js → Col-f08dByTl.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CiwOASMj.js → Community-CcOHpQjm.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-CTg_2iKW.js → Compact-BeE3ATUR.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-HMbsTmtw.js → Compliance-D8AL7P6-.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DyNDqGR2.js → Cowork-DvVoobje.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-9-x5M7qy.js → Cron-DypPu_9A.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-4msgDaYJ.js → Crosschain-Gjb0GOZJ.js} +1 -1
- package/src/assets/web-panel/assets/{DID--2Beb5Po.js → DID-CD_CHZ4x.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-T6nq0Lzs.js → Dashboard-DtyHOb4D.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-D_Q6T10v.js → Dropdown-BdWB7cAn.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-TnN21bJx.js → EmailListRenderer-FyOIo5uU.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-kky_uIij.js → FamilyGuardDashboard-oyAF4xWT.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-C1GkNY4B.js → Federation-gFQkN3PT.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-5-_Fc5YV.js → FormItemContext-BH8Fbs2N.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CmHiB7sr.js → GenericCardRenderer-fEiHh3Lh.js} +1 -1
- package/src/assets/web-panel/assets/{Git-Cuci_BPI.js → Git-1coyidys.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-BU0cO2LD.js → Governance-BkK0UYXj.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BDFNgEcx.js → Inference-BtfboTIU.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DITXUzHz.js → KnowledgeGraph-Bk4DX28g.js} +1 -1
- package/src/assets/web-panel/assets/Logs-C8GaTtRk.js +2 -0
- package/src/assets/web-panel/assets/{Marketplace-D6OBbRVG.js → Marketplace-DICb-6LS.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-eiKpIJMi.js → McpTools-BuTCG_A8.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-M-X-T8UF.js → Memory-CaW76n8s.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-xcZb9Ekv.js → MobileBridge-kRaYsm5-.js} +2 -2
- package/src/assets/web-panel/assets/MobileProjects-CyVOfabL.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-BWfGDzD8.js → Mtc-MIDFioA-.js} +6 -6
- package/src/assets/web-panel/assets/{MtcAudit-imBuld-U.js → MtcAudit-CwLVt0Jo.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-C2kcsq7I.js → Multisig-D-zRJY3P.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-DObvXSXP.js → NLProgramming-Bv_3HzfF.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-C-6OGJMe.js → Notes--khDFw-C.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-ub7Ozxci.js → NotificationSettings-DKbWmdWq.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-CR2W89Vk.js → OrderTableRenderer-DhHKlr8h.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DNA_Wty7.js → Organization-q9clPF9A.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-rT4Wb4rQ.js → Overflow-OfK0brjW.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CK-hARKv.js → P2P-C-yrhQp7.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-C2pbtNbT.js → PdhVaultBrowser-C1qmolzi.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-B8EIEqGJ.js → Permissions-SIjYzYdM.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-BxNVNU3s.js → PersonalDataHub-B1X3rEhm.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-CT9pbkyY.js → Pipeline-DFaaCaKm.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DhCNd2CS.js → Privacy-CL8RDhbr.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-Qngnx-vQ.js → ProjectInit-B1B9C25V.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-Dfn-nQc1.js → ProjectSettings-D0N_yhOn.js} +2 -2
- package/src/assets/web-panel/assets/Projects-CgSrSaCv.js +1 -0
- package/src/assets/web-panel/assets/{Providers-4o9B_n-X.js → Providers-D2FAQKYQ.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-bs1qvF30.js → QuickAsk-CIaA0L4p.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CuEnKA2K.js → Recommend-t4xC_3-I.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DbfvmRb2.js → Reputation-VGfVNzyi.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DvMJGAI3.js → Row-DIWwezlq.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-oJ0BZvmA.js → RssFeed-DHlOW936.js} +3 -3
- package/src/assets/web-panel/assets/{Search-DnIVrY9O.js → Search-BbQnUaQD.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CIWhI_Tc.js → Security-DS8ZEr_d.js} +4 -4
- package/src/assets/web-panel/assets/{Services-DLrnpjwm.js → Services-DHB-vZBF.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CYmqgtVb.js → Skeleton-Cqy066vD.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BUzCkoeu.js → Skills-CNfggAac.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DYRE4bnS.js → Sla-CRE17ElE.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-_6MurdOg.js → SpeechSettings-D40fNZKf.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-UIdnF5Li.js → SyncSettings-BGEENGeS.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-DRB6AtwX.js +1 -0
- package/src/assets/web-panel/assets/{Templates-BcHAmkZo.js → Templates-_DuWsixs.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-CjYQS8yZ.js → Tenant-DFJRRH4i.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-BmfOPcWt.js → Terminal-C2dZMvVC.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-D5HuarNQ.js → TimelineRenderer-Dra5H7Qj.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-C_fbProA.js → Tokens-rfJkHeF1.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-JPulpRx8.js → Trigger-BIeMQ6r6.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-CnO-062O.js → Trust-BNYXPJpH.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-HpNovvau.js → UkeySign--b3OFpb1.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-yMncxH7y.js → VideoEditing-BKfPGoi4.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Cug-t7Np.js → Wallet-BVEoPbjs.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn--U1-NR-3.js → WebAuthn-GM1ZnztN.js} +2 -2
- package/src/assets/web-panel/assets/{WorkflowEditor-R-XvSJ3S.js → WorkflowEditor-9iW07gbT.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CCI1i6Rp.js → chat-CJ6BGk5S.js} +1 -1
- package/src/assets/web-panel/assets/{colors-C-mqoaLt.js → colors-oV1TuSMR.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-De_N2iRR.js → compact-item-Bd6lGz36.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DbTM6sjZ.js → createContext-CCg9Rhbq.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-xdg9qqtm.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-D0Adylyc.js → hasIn-BIEcJQM4.js} +1 -1
- package/src/assets/web-panel/assets/{index-qUSZJcgw.js → index--ROk7GIw.js} +1 -1
- package/src/assets/web-panel/assets/{index-C9ej-MF0.js → index-14oRTMYn.js} +3 -3
- package/src/assets/web-panel/assets/{index-DVtamtlm.js → index-B6zZEkVK.js} +1 -1
- package/src/assets/web-panel/assets/{index-BU6XtnSx.js → index-B94w8kX2.js} +1 -1
- package/src/assets/web-panel/assets/{index-D0NJ5lRi.js → index-BASWAMCv.js} +1 -1
- package/src/assets/web-panel/assets/{index-iGPGaORA.js → index-BB2mk1sp.js} +1 -1
- package/src/assets/web-panel/assets/index-BLTkWDwj.js +1 -0
- package/src/assets/web-panel/assets/{index-D5F6shtn.js → index-BSnPCIua.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjQA0Vez.js → index-BUcDn2K2.js} +1 -1
- package/src/assets/web-panel/assets/{index-BBgDgkwW.js → index-BXIJIzTa.js} +1 -1
- package/src/assets/web-panel/assets/{index-CIEiQl1j.js → index-BadaJJZC.js} +1 -1
- package/src/assets/web-panel/assets/{index-BtE3cw9m.js → index-BcF5WMES.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6hgy5VC.js → index-Bdwnjni0.js} +1 -1
- package/src/assets/web-panel/assets/{index-Co1UkcFX.js → index-CA8CziGJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DuP-8HWu.js → index-CBdvDNLG.js} +1 -1
- package/src/assets/web-panel/assets/{index-jhy5KQvg.js → index-CQ7jOTlU.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMmeiw88.js → index-CaoVCfNV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CzP5d5LW.js → index-Cqda4B71.js} +1 -1
- package/src/assets/web-panel/assets/{index-T3VhH8cO.js → index-Cu6D_AQR.js} +1 -1
- package/src/assets/web-panel/assets/{index-AY937BxS.js → index-CxWlMaXV.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bi7VUG0R.js → index-D-AueUuj.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ds8NJVEL.js → index-D2_0TH-u.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaXb4B9P.js → index-D63xjAjB.js} +1 -1
- package/src/assets/web-panel/assets/{index-TDY1o0w3.js → index-D7EHSh_m.js} +1 -1
- package/src/assets/web-panel/assets/{index-DwLTiJ31.js → index-D8qV5EkE.js} +1 -1
- package/src/assets/web-panel/assets/{index-zkTiW6d6.js → index-DMntlMWV.js} +1 -1
- package/src/assets/web-panel/assets/{index-DWT18hDG.js → index-DSQjmGzK.js} +1 -1
- package/src/assets/web-panel/assets/{index-D0gBsqTX.js → index-DZmbXtga.js} +1 -1
- package/src/assets/web-panel/assets/{index-TRy2Gc3V.js → index-DsIziW_3.js} +1 -1
- package/src/assets/web-panel/assets/{index-xdMc71Kh.js → index-G8GY51fN.js} +1 -1
- package/src/assets/web-panel/assets/index-IxLLPL3b.js +1 -0
- package/src/assets/web-panel/assets/{index-w3f6lqkD.js → index-LSlgJmJu.js} +1 -1
- package/src/assets/web-panel/assets/{index-xhX5eg2Z.js → index-V0ugrxmo.js} +1 -1
- package/src/assets/web-panel/assets/{index-CY0KKR5f.js → index-by4U6aXa.js} +1 -1
- package/src/assets/web-panel/assets/{index-B7XnpLHk.js → index-hfHoSdJo.js} +1 -1
- package/src/assets/web-panel/assets/{index-W1OMxCmI.js → index-jDSdh0FL.js} +1 -1
- package/src/assets/web-panel/assets/{index-ftFRZbuc.js → index-so1Tydte.js} +1 -1
- package/src/assets/web-panel/assets/{index-CKgaW9E5.js → index-vE3OG1I5.js} +1 -1
- package/src/assets/web-panel/assets/{index-B7gw-tDm.js → index-vTIRb03M.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CIHqouWk.js → initDefaultProps-DWYKe610.js} +1 -1
- package/src/assets/web-panel/assets/{motion-D1iUKftk.js → motion-BICCfl_C.js} +1 -1
- package/src/assets/web-panel/assets/{move-YOpWjmjL.js → move-CB59bXjB.js} +1 -1
- package/src/assets/web-panel/assets/{omit-C_1357UY.js → omit-BJVgfIG3.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CDb4dq6o.js → pickAttrs-Bx2dMm_6.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D-OGYyhd.js → placementArrow-DW2LkM1d.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-hS-j69A0.js → responsiveObserve-Br7Fix75.js} +1 -1
- package/src/assets/web-panel/assets/{slide-tnjuvphU.js → slide-DcMZllSx.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BERfMMcU.js → statusUtils-Bg6W-VYy.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DKpl2K9E.js → styleChecker-DqG-3BAY.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-C_sX4D3N.js → useFlexGapSupport-NzxPB7xZ.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DBcxC1vK.js → useFs-oqmnvO6t.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-CeoDf2XI.js → usePersonalDataHub-BDbnivAw.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-DC9Pmj_u.js → vnode-B1Jm52Qk.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CZA58J7M.js → zoom-BeNwqRgo.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/activitypub.js +3 -18
- package/src/commands/agents.js +18 -4
- package/src/commands/command.js +12 -2
- package/src/commands/dao.js +3 -15
- package/src/commands/dlp.js +1 -6
- package/src/commands/hub.js +125 -0
- package/src/index.js +2 -0
- package/src/lib/a2a-protocol.js +1 -0
- package/src/lib/agent-core.js +2 -0
- package/src/lib/chat-core.js +6 -1
- package/src/lib/personal-data-hub-wiring.js +3 -3
- package/src/repl/agent-repl.js +11 -3
- package/src/repl/chat-repl.js +11 -2
- package/src/runtime/agent-core.js +7 -3
- package/src/runtime/headless-stream.js +69 -4
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Dl6z6ZH7.js +0 -1
- package/src/assets/web-panel/assets/Logs-Ea-07CRd.js +0 -2
- package/src/assets/web-panel/assets/MobileProjects-DCfoTPRC.js +0 -1
- package/src/assets/web-panel/assets/Projects-BKdiSaPR.js +0 -1
- package/src/assets/web-panel/assets/Tasks-COx2CjT8.js +0 -1
- package/src/assets/web-panel/assets/devWarning-OcLPHSl5.js +0 -1
- package/src/assets/web-panel/assets/index-7E_mHkDU.js +0 -1
- package/src/assets/web-panel/assets/index-CbV3-WlB.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-14oRTMYn.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-D-OGYyhd.js → placementArrow-DW2LkM1d.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as i}from"./index-
|
|
1
|
+
import{h as i}from"./index-14oRTMYn.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-hS-j69A0.js → responsiveObserve-Br7Fix75.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as o,h}from"./index-
|
|
1
|
+
import{I as o,h}from"./index-14oRTMYn.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-14oRTMYn.js";import{i as e}from"./motion-BICCfl_C.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-14oRTMYn.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-14oRTMYn.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-C_sX4D3N.js → useFlexGapSupport-NzxPB7xZ.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-DqG-3BAY.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-14oRTMYn.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-14oRTMYn.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-14oRTMYn.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-14oRTMYn.js";import{i as f}from"./motion-BICCfl_C.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-14oRTMYn.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">
|
|
@@ -321,12 +321,7 @@ export function registerActivityPubCommand(program) {
|
|
|
321
321
|
try {
|
|
322
322
|
await bootstrapDb(program);
|
|
323
323
|
const items = getOutbox(username, {
|
|
324
|
-
limit: numericOption(options.limit, {
|
|
325
|
-
name: "--limit",
|
|
326
|
-
integer: true,
|
|
327
|
-
min: 1,
|
|
328
|
-
fallback: 50,
|
|
329
|
-
}),
|
|
324
|
+
limit: numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 }),
|
|
330
325
|
types: options.type,
|
|
331
326
|
});
|
|
332
327
|
if (options.json) {
|
|
@@ -360,12 +355,7 @@ export function registerActivityPubCommand(program) {
|
|
|
360
355
|
try {
|
|
361
356
|
await bootstrapDb(program);
|
|
362
357
|
const items = getInbox(username, {
|
|
363
|
-
limit: numericOption(options.limit, {
|
|
364
|
-
name: "--limit",
|
|
365
|
-
integer: true,
|
|
366
|
-
min: 1,
|
|
367
|
-
fallback: 50,
|
|
368
|
-
}),
|
|
358
|
+
limit: numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 }),
|
|
369
359
|
types: options.type,
|
|
370
360
|
});
|
|
371
361
|
if (options.json) {
|
|
@@ -463,12 +453,7 @@ export function registerActivityPubCommand(program) {
|
|
|
463
453
|
.action(async (query, options) => {
|
|
464
454
|
try {
|
|
465
455
|
await bootstrapDb(program);
|
|
466
|
-
const limit = numericOption(options.limit, {
|
|
467
|
-
name: "--limit",
|
|
468
|
-
integer: true,
|
|
469
|
-
min: 1,
|
|
470
|
-
fallback: 20,
|
|
471
|
-
});
|
|
456
|
+
const limit = numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 20 });
|
|
472
457
|
const target = options.target;
|
|
473
458
|
const result = {};
|
|
474
459
|
if (target === "actors" || target === "all") {
|
package/src/commands/agents.js
CHANGED
|
@@ -118,19 +118,31 @@ export function registerAgentsCommand(program) {
|
|
|
118
118
|
const prompt = Array.isArray(task) ? task.join(" ").trim() : "";
|
|
119
119
|
if (!prompt) {
|
|
120
120
|
logger.error(
|
|
121
|
-
chalk.red(
|
|
121
|
+
chalk.red(
|
|
122
|
+
`agents run requires a task, e.g. cc agents run ${name} "review @src/x.js"`,
|
|
123
|
+
),
|
|
122
124
|
);
|
|
123
125
|
process.exitCode = 1;
|
|
124
126
|
return;
|
|
125
127
|
}
|
|
126
|
-
|
|
128
|
+
// Claude-Code 2.1.183 parity: deprecation warnings appear in stderr
|
|
129
|
+
// during print mode AND for agent-frontmatter models. The resolved model
|
|
130
|
+
// here comes from `--model` or the agent file's frontmatter `model:`.
|
|
131
|
+
const resolvedModel = options.model || a.model || undefined;
|
|
132
|
+
if (resolvedModel) {
|
|
133
|
+
const { maybeWarnDeprecatedModel } =
|
|
134
|
+
await import("../lib/model-deprecation.js");
|
|
135
|
+
maybeWarnDeprecatedModel({ model: resolvedModel });
|
|
136
|
+
}
|
|
137
|
+
const { runAgentHeadless } =
|
|
138
|
+
await import("../runtime/headless-runner.js");
|
|
127
139
|
const outcome = await runAgentHeadless({
|
|
128
140
|
prompt,
|
|
129
141
|
// The agent file's body becomes the system prompt (its persona).
|
|
130
142
|
systemPrompt: a.systemPrompt || undefined,
|
|
131
143
|
// Frontmatter `tools` scopes the run; null = inherit all.
|
|
132
144
|
allowedTools: a.tools || undefined,
|
|
133
|
-
model:
|
|
145
|
+
model: resolvedModel,
|
|
134
146
|
outputFormat: options.outputFormat,
|
|
135
147
|
permissionMode: options.permissionMode,
|
|
136
148
|
additionalDirectories: Array.isArray(options.addDir)
|
|
@@ -147,7 +159,9 @@ export function registerAgentsCommand(program) {
|
|
|
147
159
|
// ── new (scaffold) ────────────────────────────────────────────────────
|
|
148
160
|
cmd
|
|
149
161
|
.command("new <name>")
|
|
150
|
-
.description(
|
|
162
|
+
.description(
|
|
163
|
+
"Scaffold a new agent file (project-native .chainlesschain/agents/)",
|
|
164
|
+
)
|
|
151
165
|
.option("--description <d>", "Frontmatter description")
|
|
152
166
|
.option("--tools <list>", "Comma-separated tool allow-list")
|
|
153
167
|
.option("--claude", "Create under .claude/agents (Claude-Code-portable)")
|
package/src/commands/command.js
CHANGED
|
@@ -125,12 +125,20 @@ export function registerCommandCommand(program) {
|
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
// Claude-Code 2.1.183 parity: surface model-deprecation notices for
|
|
129
|
+
// frontmatter-declared models, same as `cc agents run` and print mode.
|
|
130
|
+
const resolvedModel = options.model || c.model || undefined;
|
|
131
|
+
if (resolvedModel) {
|
|
132
|
+
const { maybeWarnDeprecatedModel } =
|
|
133
|
+
await import("../lib/model-deprecation.js");
|
|
134
|
+
maybeWarnDeprecatedModel({ model: resolvedModel });
|
|
135
|
+
}
|
|
128
136
|
const { runAgentHeadless, parseToolList } =
|
|
129
137
|
await import("../runtime/headless-runner.js");
|
|
130
138
|
const outcome = await runAgentHeadless({
|
|
131
139
|
prompt,
|
|
132
140
|
outputFormat: options.outputFormat,
|
|
133
|
-
model:
|
|
141
|
+
model: resolvedModel,
|
|
134
142
|
permissionMode: options.permissionMode,
|
|
135
143
|
// A command's frontmatter allowed-tools scopes the run.
|
|
136
144
|
allowedTools: parseToolList(c.allowedTools),
|
|
@@ -145,7 +153,9 @@ export function registerCommandCommand(program) {
|
|
|
145
153
|
// ── new (scaffold) ────────────────────────────────────────────────────
|
|
146
154
|
cmd
|
|
147
155
|
.command("new <name>")
|
|
148
|
-
.description(
|
|
156
|
+
.description(
|
|
157
|
+
"Scaffold a new command file (project-native .chainlesschain/commands/)",
|
|
158
|
+
)
|
|
149
159
|
.option("--description <d>", "Frontmatter description")
|
|
150
160
|
.option("--claude", "Create under .claude/commands (Claude-Code-portable)")
|
|
151
161
|
.option("--personal", "Create under ~/.claude/commands instead of project")
|
package/src/commands/dao.js
CHANGED
|
@@ -311,22 +311,10 @@ export function registerDaoCommand(program) {
|
|
|
311
311
|
|
|
312
312
|
const cfg = {};
|
|
313
313
|
if (options.votingPeriod)
|
|
314
|
-
cfg.votingPeriod = numericOption(options.votingPeriod, {
|
|
315
|
-
|
|
316
|
-
integer: true,
|
|
317
|
-
min: 1,
|
|
318
|
-
});
|
|
319
|
-
if (options.quorum)
|
|
320
|
-
cfg.quorum = numericOption(options.quorum, {
|
|
321
|
-
name: "--quorum",
|
|
322
|
-
min: 0,
|
|
323
|
-
});
|
|
314
|
+
cfg.votingPeriod = numericOption(options.votingPeriod, { name: "--voting-period", integer: true, min: 1 });
|
|
315
|
+
if (options.quorum) cfg.quorum = numericOption(options.quorum, { name: "--quorum", min: 0 });
|
|
324
316
|
if (options.executionDelay)
|
|
325
|
-
cfg.executionDelay = numericOption(options.executionDelay, {
|
|
326
|
-
name: "--execution-delay",
|
|
327
|
-
integer: true,
|
|
328
|
-
min: 0,
|
|
329
|
-
});
|
|
317
|
+
cfg.executionDelay = numericOption(options.executionDelay, { name: "--execution-delay", integer: true, min: 0 });
|
|
330
318
|
|
|
331
319
|
const result = configure(cfg);
|
|
332
320
|
logger.success("Configuration updated");
|
package/src/commands/dlp.js
CHANGED
|
@@ -538,12 +538,7 @@ export function registerDlpCommand(program) {
|
|
|
538
538
|
if (options.policy) filter.policyId = options.policy;
|
|
539
539
|
if (options.from) filter.fromDate = options.from;
|
|
540
540
|
if (options.to) filter.toDate = options.to;
|
|
541
|
-
filter.limit = numericOption(options.limit, {
|
|
542
|
-
name: "--limit",
|
|
543
|
-
integer: true,
|
|
544
|
-
min: 1,
|
|
545
|
-
fallback: 50,
|
|
546
|
-
});
|
|
541
|
+
filter.limit = numericOption(options.limit, { name: "--limit", integer: true, min: 1, fallback: 50 });
|
|
547
542
|
console.log(JSON.stringify(listIncidentsV2(filter), null, 2));
|
|
548
543
|
|
|
549
544
|
await shutdown();
|
package/src/commands/hub.js
CHANGED
|
@@ -852,6 +852,116 @@ async function cmdSalvage(dumpfile, options) {
|
|
|
852
852
|
}
|
|
853
853
|
}
|
|
854
854
|
|
|
855
|
+
// ─── collect-qq (QQNT frida-free decrypt → vault) ────────────────────────
|
|
856
|
+
//
|
|
857
|
+
// module 101 QQNT 采集方案 — on-device path. Decrypts a (root-staged) encrypted
|
|
858
|
+
// nt_msg.db via the DERIVED key (MD5(MD5(uid)+rand), no frida), protobuf-parses
|
|
859
|
+
// the messages, and ingests them. The Android CollectQqNativeTool su-reads the
|
|
860
|
+
// DB + uid candidates, then invokes this. Same logic also runs on PC (USB).
|
|
861
|
+
// Plaintext is written to a temp file only for parsing, then deleted.
|
|
862
|
+
async function cmdCollectQq(options) {
|
|
863
|
+
const spinner = options.json
|
|
864
|
+
? null
|
|
865
|
+
: ora("collect-qq (decrypt + ingest)...").start();
|
|
866
|
+
try {
|
|
867
|
+
const { createRequire } = await import("module");
|
|
868
|
+
const require = createRequire(import.meta.url);
|
|
869
|
+
const fs = require("fs");
|
|
870
|
+
const os = require("os");
|
|
871
|
+
const path = require("path");
|
|
872
|
+
const qq = options._qqCore
|
|
873
|
+
? options._qqCore
|
|
874
|
+
: await import("@chainlesschain/personal-data-hub/forensics/qq-nt-collect");
|
|
875
|
+
|
|
876
|
+
if (!options.db) throw new Error("need --db <encrypted nt_msg.db>");
|
|
877
|
+
if (!options.uids) throw new Error("need --uids <file with u_ candidates>");
|
|
878
|
+
const raw = fs.readFileSync(options.db);
|
|
879
|
+
const rand = options.rand || qq.extractRand(raw);
|
|
880
|
+
if (!rand)
|
|
881
|
+
throw new Error(
|
|
882
|
+
"could not read `rand` from nt_msg.db header (pass --rand)",
|
|
883
|
+
);
|
|
884
|
+
const uids = fs
|
|
885
|
+
.readFileSync(options.uids, "utf8")
|
|
886
|
+
.split(/\s+/)
|
|
887
|
+
.filter((u) => /^u_[A-Za-z0-9_-]{10,}$/.test(u));
|
|
888
|
+
if (!uids.length) throw new Error("no u_ uid candidates in --uids file");
|
|
889
|
+
|
|
890
|
+
const result = qq.deriveAndDecrypt(raw, uids, rand);
|
|
891
|
+
if (!result) {
|
|
892
|
+
const report = {
|
|
893
|
+
ok: false,
|
|
894
|
+
reason: "no-uid-match",
|
|
895
|
+
uidCandidates: uids.length,
|
|
896
|
+
};
|
|
897
|
+
if (options.json) {
|
|
898
|
+
jsonAndExit(report);
|
|
899
|
+
return;
|
|
900
|
+
}
|
|
901
|
+
if (spinner)
|
|
902
|
+
spinner.fail(
|
|
903
|
+
"no uid matched (account uid not in candidates, or formula changed)",
|
|
904
|
+
);
|
|
905
|
+
process.exit(2);
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
// better-sqlite3's native binding isn't at the standard `bindings` path on
|
|
909
|
+
// Android (the bundle loads it specially) — reuse the vault's already-loaded
|
|
910
|
+
// Database constructor instead of require("better-sqlite3").
|
|
911
|
+
const hub = await (options._getHub || getHub)();
|
|
912
|
+
const vault = hub.vault;
|
|
913
|
+
const Database = (vault.db || vault._db || vault).constructor;
|
|
914
|
+
|
|
915
|
+
// Write the plaintext next to the (app-writable) input DB — os.tmpdir() is
|
|
916
|
+
// /data/local/tmp on Android, which the app uid can't write (EACCES).
|
|
917
|
+
void os;
|
|
918
|
+
const tmp = path.join(
|
|
919
|
+
path.dirname(path.resolve(options.db)),
|
|
920
|
+
`qqnt-dec-${process.pid}.db`,
|
|
921
|
+
);
|
|
922
|
+
fs.writeFileSync(tmp, result.decrypted);
|
|
923
|
+
let events;
|
|
924
|
+
try {
|
|
925
|
+
events = qq.parseEvents(Database, tmp, options.self || "self");
|
|
926
|
+
} finally {
|
|
927
|
+
try {
|
|
928
|
+
fs.unlinkSync(tmp);
|
|
929
|
+
} catch {
|
|
930
|
+
/* best-effort wipe */
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
let ingested = 0;
|
|
935
|
+
for (const ev of events) {
|
|
936
|
+
try {
|
|
937
|
+
vault.putEvent(ev);
|
|
938
|
+
ingested++;
|
|
939
|
+
} catch {
|
|
940
|
+
/* skip dup/invalid */
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
const report = {
|
|
944
|
+
ok: true,
|
|
945
|
+
matchedUid: result.uid,
|
|
946
|
+
kdf: result.kdf,
|
|
947
|
+
messages: events.length,
|
|
948
|
+
ingested,
|
|
949
|
+
};
|
|
950
|
+
if (spinner) spinner.succeed(`collect-qq: ${ingested} QQ messages → vault`);
|
|
951
|
+
if (options.json) {
|
|
952
|
+
jsonAndExit(report);
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
logger.log(chalk.green("✓ QQNT collect succeeded"));
|
|
956
|
+
logger.log(` matched uid: ${result.uid} (kdf ${result.kdf})`);
|
|
957
|
+
logger.log(` messages: ${events.length}`);
|
|
958
|
+
logger.log(` ingested: ${ingested}`);
|
|
959
|
+
process.exit(0);
|
|
960
|
+
} catch (err) {
|
|
961
|
+
fail(spinner, err, options.json);
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
|
|
855
965
|
// ─── Phase 10.3 — cc hub aichat <verb> wizard subcommand surface ─────
|
|
856
966
|
//
|
|
857
967
|
// Mirrors the WS topics (personal-data-hub.aichat-*) so scripts and the
|
|
@@ -2561,6 +2671,21 @@ export function registerHubCommand(program) {
|
|
|
2561
2671
|
.option("--json", "Output JSON")
|
|
2562
2672
|
.action(cmdSalvage);
|
|
2563
2673
|
|
|
2674
|
+
hub
|
|
2675
|
+
.command("collect-qq")
|
|
2676
|
+
.description(
|
|
2677
|
+
"QQNT (modern QQ): decrypt a root-staged encrypted nt_msg.db via the DERIVED key (no frida), protobuf-parse messages, and ingest into the vault. Used by the Android CollectQqNativeTool (su-reads DB + uids); also runnable on PC.",
|
|
2678
|
+
)
|
|
2679
|
+
.requiredOption("--db <path>", "Encrypted nt_msg.db (root-staged / pulled)")
|
|
2680
|
+
.requiredOption(
|
|
2681
|
+
"--uids <path>",
|
|
2682
|
+
"File with u_ uid candidates (one per line)",
|
|
2683
|
+
)
|
|
2684
|
+
.option("--rand <str>", "Override the header-derived rand")
|
|
2685
|
+
.option("--self <qq>", "Your own QQ number (attribution fallback)")
|
|
2686
|
+
.option("--json", "Output JSON")
|
|
2687
|
+
.action(cmdCollectQq);
|
|
2688
|
+
|
|
2564
2689
|
hub
|
|
2565
2690
|
.command("event-detail <eventId>")
|
|
2566
2691
|
.description(
|
package/src/index.js
CHANGED
|
@@ -62,6 +62,7 @@ import { registerContextCommand } from "./commands/context.js";
|
|
|
62
62
|
import { registerCheckpointCommand } from "./commands/checkpoint.js";
|
|
63
63
|
import { registerGoalCommand } from "./commands/goal.js";
|
|
64
64
|
import { registerCommandCommand } from "./commands/command.js";
|
|
65
|
+
import { registerAgentsCommand } from "./commands/agents.js";
|
|
65
66
|
import { registerCompactCommand } from "./commands/compact.js";
|
|
66
67
|
import { registerLoopCommand } from "./commands/loop.js";
|
|
67
68
|
import { registerReviewCommand } from "./commands/review.js";
|
|
@@ -478,6 +479,7 @@ export function createProgram(opts = {}) {
|
|
|
478
479
|
registerCheckpointCommand(program);
|
|
479
480
|
registerGoalCommand(program);
|
|
480
481
|
registerCommandCommand(program);
|
|
482
|
+
registerAgentsCommand(program);
|
|
481
483
|
registerCompactCommand(program);
|
|
482
484
|
registerLoopCommand(program);
|
|
483
485
|
registerReviewCommand(program);
|
package/src/lib/a2a-protocol.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* capability negotiation, and peer discovery.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
|
|
8
9
|
// Safe JSON-array parse for values read back from the DB (capabilities / skills /
|
|
9
10
|
// history / artifacts are stored as JSON strings). Written via JSON.stringify so
|
|
10
11
|
// normally valid, but a corrupted or externally-edited DB must not crash agent
|
package/src/lib/agent-core.js
CHANGED
package/src/lib/chat-core.js
CHANGED
|
@@ -48,7 +48,12 @@ function makeStallGuard(
|
|
|
48
48
|
if (hintTimer) clearTimeout(hintTimer);
|
|
49
49
|
hintTimer = setTimeout(() => {
|
|
50
50
|
try {
|
|
51
|
-
|
|
51
|
+
// 2nd arg = the hard abort deadline (stallMs) so the hint can tell
|
|
52
|
+
// the user when the silent request will time out. Note the chat path
|
|
53
|
+
// surfaces a stall error rather than auto-retrying (see the dispatch
|
|
54
|
+
// loop in chatStream), so callers should word it "will time out",
|
|
55
|
+
// not "will retry".
|
|
56
|
+
onHint(hintMs, stallMs);
|
|
52
57
|
} catch {
|
|
53
58
|
/* hint is best-effort — never affect the stream */
|
|
54
59
|
}
|
|
@@ -1377,7 +1377,7 @@ async function initHub() {
|
|
|
1377
1377
|
|
|
1378
1378
|
// ─── Phase 12.6.8 — WeChat account persistence helpers (cli mirror) ──────
|
|
1379
1379
|
|
|
1380
|
-
function loadWechatAccounts(filePath) {
|
|
1380
|
+
export function loadWechatAccounts(filePath) {
|
|
1381
1381
|
try {
|
|
1382
1382
|
if (!existsSync(filePath)) return [];
|
|
1383
1383
|
const raw = readFileSync(filePath, "utf-8");
|
|
@@ -1420,7 +1420,7 @@ function saveWechatAccounts(filePath, accounts) {
|
|
|
1420
1420
|
|
|
1421
1421
|
// ─── Email account persistence (Phase 5.6) ───────────────────────────────
|
|
1422
1422
|
|
|
1423
|
-
function loadEmailAccounts(filePath) {
|
|
1423
|
+
export function loadEmailAccounts(filePath) {
|
|
1424
1424
|
try {
|
|
1425
1425
|
if (!existsSync(filePath)) return [];
|
|
1426
1426
|
const raw = readFileSync(filePath, "utf-8");
|
|
@@ -1437,7 +1437,7 @@ function saveEmailAccounts(filePath, accounts) {
|
|
|
1437
1437
|
|
|
1438
1438
|
// ─── Alipay account persistence (Phase 6) ───────────────────────────────
|
|
1439
1439
|
|
|
1440
|
-
function loadAlipayAccounts(filePath) {
|
|
1440
|
+
export function loadAlipayAccounts(filePath) {
|
|
1441
1441
|
try {
|
|
1442
1442
|
if (!existsSync(filePath)) return [];
|
|
1443
1443
|
const raw = readFileSync(filePath, "utf-8");
|
package/src/repl/agent-repl.js
CHANGED
|
@@ -3271,12 +3271,20 @@ export async function startAgentRepl(options = {}) {
|
|
|
3271
3271
|
// the API has gone silent mid-response — tell the user we're still
|
|
3272
3272
|
// waiting instead of leaving a frozen spinner. stderr so it never
|
|
3273
3273
|
// corrupts the streamed answer on stdout.
|
|
3274
|
-
onStall: (ms) =>
|
|
3274
|
+
onStall: (ms, timeoutMs) => {
|
|
3275
|
+
const silent = Math.round(ms / 1000);
|
|
3276
|
+
// 2.1.185: when a hard inactivity timeout is set, tell the user when
|
|
3277
|
+
// the stalled stream will auto-retry instead of leaving them unsure
|
|
3278
|
+
// whether it's hung forever.
|
|
3279
|
+
const retryIn =
|
|
3280
|
+
timeoutMs > ms ? Math.round((timeoutMs - ms) / 1000) : 0;
|
|
3281
|
+
const suffix = retryIn > 0 ? ` · will retry in ${retryIn}s` : "";
|
|
3275
3282
|
process.stderr.write(
|
|
3276
3283
|
chalk.dim(
|
|
3277
|
-
` ⏳ waiting for API response (silent ${
|
|
3284
|
+
` ⏳ waiting for API response (silent ${silent}s)${suffix}…\n`,
|
|
3278
3285
|
),
|
|
3279
|
-
)
|
|
3286
|
+
);
|
|
3287
|
+
},
|
|
3280
3288
|
// Hard inactivity timeout: abort + retry a dead-but-open stream instead
|
|
3281
3289
|
// of hanging forever. undefined → agent-core's 180s default (matches cc
|
|
3282
3290
|
// chat/ask); config.llm.streamStallTimeoutMs tunes or disables (0).
|
package/src/repl/chat-repl.js
CHANGED
|
@@ -186,10 +186,19 @@ export async function startChatRepl(options = {}) {
|
|
|
186
186
|
// Stall hint (cc agent parity): the connection is alive but the API has
|
|
187
187
|
// gone silent — reassure instead of a frozen cursor. stderr so it never
|
|
188
188
|
// corrupts the streamed answer on stdout.
|
|
189
|
-
const onStall = (ms) =>
|
|
189
|
+
const onStall = (ms, timeoutMs) => {
|
|
190
|
+
const silent = Math.round(ms / 1000);
|
|
191
|
+
// 2.1.185: surface the abort deadline so the user knows when the silent
|
|
192
|
+
// request gives up. The chat path aborts (and surfaces an error) on
|
|
193
|
+
// stall rather than auto-retrying like the agent path, so the wording is
|
|
194
|
+
// "will time out", not "will retry".
|
|
195
|
+
const timeoutIn =
|
|
196
|
+
timeoutMs > ms ? Math.round((timeoutMs - ms) / 1000) : 0;
|
|
197
|
+
const suffix = timeoutIn > 0 ? ` · will time out in ${timeoutIn}s` : "";
|
|
190
198
|
process.stderr.write(
|
|
191
|
-
`\x1b[2m ⏳ waiting for API response (silent ${
|
|
199
|
+
`\x1b[2m ⏳ waiting for API response (silent ${silent}s)${suffix}…\x1b[0m\n`,
|
|
192
200
|
);
|
|
201
|
+
};
|
|
193
202
|
|
|
194
203
|
if (sessionId)
|
|
195
204
|
appendEvent(sessionId, "user_message", { content: trimmed });
|