chainlesschain 0.166.123 → 0.166.125

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +14 -2
  2. package/package.json +1 -1
  3. package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
  4. package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
  5. package/src/assets/web-panel/assets/{AIOps-C-tjdqdU.js → AIOps-BP7bvhgw.js} +1 -1
  6. package/src/assets/web-panel/assets/{ActionButton-BO-Va_7P.js → ActionButton-CRSlqvUW.js} +1 -1
  7. package/src/assets/web-panel/assets/{Analytics-C4abdfMl.js → Analytics-Uh-IHXPq.js} +3 -3
  8. package/src/assets/web-panel/assets/{AppLayout-R0PVTt_L.js → AppLayout-BV2iUfEI.js} +4 -4
  9. package/src/assets/web-panel/assets/Artifacts-INNQe4tS.js +1 -0
  10. package/src/assets/web-panel/assets/{Audit-Ben_vkQv.js → Audit-CYX8n3_m.js} +1 -1
  11. package/src/assets/web-panel/assets/{BackgroundAgents-DYXk5NF7.js → BackgroundAgents-BqmXROox.js} +1 -1
  12. package/src/assets/web-panel/assets/{Backup-DWvhnz4a.js → Backup-BnVDRZIg.js} +1 -1
  13. package/src/assets/web-panel/assets/{BaseInput-Cnt7Lsw0.js → BaseInput-Bb6UmdRt.js} +1 -1
  14. package/src/assets/web-panel/assets/{Chat-D1IxtF3O.js → Chat-hz3OIIbK.js} +5 -5
  15. package/src/assets/web-panel/assets/{ChatBubbleRenderer-D_LhAwtF.js → ChatBubbleRenderer-DGNJTSsQ.js} +1 -1
  16. package/src/assets/web-panel/assets/{Checkbox-C4Mq1fW_.js → Checkbox-CQikB2We.js} +1 -1
  17. package/src/assets/web-panel/assets/{Codegen-DxNiYuf2.js → Codegen-B2nJ-skp.js} +1 -1
  18. package/src/assets/web-panel/assets/{Col-Er2GMIwp.js → Col-klIv1AGo.js} +1 -1
  19. package/src/assets/web-panel/assets/{Community-DY77zEtx.js → Community-Di-kPX__.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compact-vGbhGcj5.js → Compact-BxqPTGPL.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compliance-D_apMw_L.js → Compliance-BGMFZVuF.js} +1 -1
  22. package/src/assets/web-panel/assets/{Cowork-CzpeLIS0.js → Cowork-mqWGIwSR.js} +3 -3
  23. package/src/assets/web-panel/assets/{Cron-DkJn0etH.js → Cron-DR5O38TG.js} +2 -2
  24. package/src/assets/web-panel/assets/{Crosschain-xUoFR9Kc.js → Crosschain-D6hPm17z.js} +1 -1
  25. package/src/assets/web-panel/assets/{DID-CK6pStH-.js → DID-DoWPTVwK.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dashboard-CMmMmKdI.js → Dashboard-BPL8xNW_.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dropdown-DcuW2bMi.js → Dropdown-CiSVSWe5.js} +1 -1
  28. package/src/assets/web-panel/assets/{EmailListRenderer-Bala_XmD.js → EmailListRenderer-xx2j4JdY.js} +1 -1
  29. package/src/assets/web-panel/assets/EvolutionSettings-C8hEbz_k.js +1 -0
  30. package/src/assets/web-panel/assets/{FamilyGuardDashboard-Tv2-X2Dt.js → FamilyGuardDashboard-DyXIXJ_A.js} +1 -1
  31. package/src/assets/web-panel/assets/{Federation-BLpjJPtu.js → Federation-Byr6DvRk.js} +1 -1
  32. package/src/assets/web-panel/assets/{FormItemContext-Z0hL2bcM.js → FormItemContext-CQGnmQJv.js} +1 -1
  33. package/src/assets/web-panel/assets/{GenericCardRenderer-kOH9PidD.js → GenericCardRenderer-hQguQVZ3.js} +1 -1
  34. package/src/assets/web-panel/assets/{Git-DnqdUfjy.js → Git-BecJOnx6.js} +2 -2
  35. package/src/assets/web-panel/assets/{Governance-CSFh7-6e.js → Governance-BJddTPXq.js} +1 -1
  36. package/src/assets/web-panel/assets/{Inference-6c0j3NP8.js → Inference-D24icM6B.js} +1 -1
  37. package/src/assets/web-panel/assets/{KnowledgeGraph-DqlWAC7d.js → KnowledgeGraph-Do22sAeu.js} +1 -1
  38. package/src/assets/web-panel/assets/{Logs-pffKkPA3.js → Logs-hUuWosrZ.js} +2 -2
  39. package/src/assets/web-panel/assets/{MarkdownRenderer-DpyiXUmk.js → MarkdownRenderer-Bjl9v5wW.js} +1 -1
  40. package/src/assets/web-panel/assets/{Marketplace-D37-zXmo.js → Marketplace-Dp5LwB9H.js} +1 -1
  41. package/src/assets/web-panel/assets/{McpTools-DGG6wfLP.js → McpTools-BiVU1FMc.js} +2 -2
  42. package/src/assets/web-panel/assets/{Memory-DjECKlfE.js → Memory-CIxR4kQp.js} +2 -2
  43. package/src/assets/web-panel/assets/{MobileBridge--zANjFPV.js → MobileBridge-BfuDQmNF.js} +1 -1
  44. package/src/assets/web-panel/assets/MobileProjects-DjmNE-wQ.js +1 -0
  45. package/src/assets/web-panel/assets/{Mtc-BRZc_D3a.js → Mtc-CTvkHtBz.js} +5 -5
  46. package/src/assets/web-panel/assets/{MtcAudit-B4sPjzTs.js → MtcAudit-DkF8di0r.js} +2 -2
  47. package/src/assets/web-panel/assets/{Multisig-CsdVSHvp.js → Multisig-BsI3rR_s.js} +3 -3
  48. package/src/assets/web-panel/assets/{NLProgramming-rN5MTPrM.js → NLProgramming-DUE2RUBH.js} +1 -1
  49. package/src/assets/web-panel/assets/{Notes-CfCzpBLf.js → Notes-CZH-8mLz.js} +4 -4
  50. package/src/assets/web-panel/assets/{NotificationSettings-Bgnc5-lu.js → NotificationSettings-BWrE5Fdu.js} +1 -1
  51. package/src/assets/web-panel/assets/{OrderTableRenderer-vcR0ywXM.js → OrderTableRenderer-DBkeHV6o.js} +1 -1
  52. package/src/assets/web-panel/assets/{Organization-BWHfXikQ.js → Organization-GfJxDuZd.js} +4 -4
  53. package/src/assets/web-panel/assets/{Overflow-BfmX1brf.js → Overflow-DVpJGkTd.js} +1 -1
  54. package/src/assets/web-panel/assets/{P2P-Bgqrc7Gj.js → P2P-DLWmK0no.js} +2 -2
  55. package/src/assets/web-panel/assets/{PdhVaultBrowser-8n-lvjGR.js → PdhVaultBrowser-CgJZVTlX.js} +3 -3
  56. package/src/assets/web-panel/assets/{Permissions-DZvi_R1S.js → Permissions-CutFqMXH.js} +4 -4
  57. package/src/assets/web-panel/assets/{PersonalDataHub-d-SaMCBl.js → PersonalDataHub-CfqM7ZpK.js} +4 -4
  58. package/src/assets/web-panel/assets/{Pipeline-BtppU6_K.js → Pipeline-ie5hQZ0r.js} +1 -1
  59. package/src/assets/web-panel/assets/{Privacy-D8bAp4YK.js → Privacy-B1KdLF7O.js} +1 -1
  60. package/src/assets/web-panel/assets/{ProjectInit-DbkjQ5Tu.js → ProjectInit-CRPPcQzY.js} +2 -2
  61. package/src/assets/web-panel/assets/{ProjectSettings-h7KEbaRt.js → ProjectSettings-Do6fMBWF.js} +2 -2
  62. package/src/assets/web-panel/assets/{Projects-Cv23MVaI.js → Projects-BOB6rWxT.js} +1 -1
  63. package/src/assets/web-panel/assets/{Providers-By9_cN-N.js → Providers-CgZd2eBh.js} +1 -1
  64. package/src/assets/web-panel/assets/{QrScannerModal-BEpf5wsF.js → QrScannerModal-DrPG8IxK.js} +1 -1
  65. package/src/assets/web-panel/assets/{QuickAsk-eiQ-KUeQ.js → QuickAsk-D_uU-5Ph.js} +1 -1
  66. package/src/assets/web-panel/assets/{Recommend-DKpC7mUA.js → Recommend-DDId0K_9.js} +1 -1
  67. package/src/assets/web-panel/assets/{RemoteSession-Z2N0xnf3.js → RemoteSession-BnJcoKDQ.js} +3 -3
  68. package/src/assets/web-panel/assets/{Reputation-DmknmR2x.js → Reputation-BnnmzZb0.js} +1 -1
  69. package/src/assets/web-panel/assets/{Row-BOI5kMGe.js → Row-ChHU3TqH.js} +1 -1
  70. package/src/assets/web-panel/assets/{RssFeed-micYN0Y6.js → RssFeed-DeiKl8k2.js} +3 -3
  71. package/src/assets/web-panel/assets/{Search-C7l6pJP7.js → Search-Cd0Byr5Y.js} +1 -1
  72. package/src/assets/web-panel/assets/{Security-YYgdmPUQ.js → Security-CHqAAtUE.js} +4 -4
  73. package/src/assets/web-panel/assets/{Services-IqE2jmer.js → Services-CaC6ZaY3.js} +2 -2
  74. package/src/assets/web-panel/assets/{Skeleton-B40v1963.js → Skeleton-Do4HAN0a.js} +1 -1
  75. package/src/assets/web-panel/assets/{Skills-B5XhRxiz.js → Skills-CoElvXB8.js} +1 -1
  76. package/src/assets/web-panel/assets/{Sla-CR9FTy0l.js → Sla-jJiTPvtG.js} +1 -1
  77. package/src/assets/web-panel/assets/{SpeechSettings-qU35iVHu.js → SpeechSettings-OXfemdVC.js} +1 -1
  78. package/src/assets/web-panel/assets/{SyncSettings-Ty9clGaJ.js → SyncSettings-JPkmyUwi.js} +2 -2
  79. package/src/assets/web-panel/assets/{Tasks-B3L8-JKq.js → Tasks-BGG7ffmW.js} +1 -1
  80. package/src/assets/web-panel/assets/{Templates-r3oMi1-3.js → Templates-DeK9-2LY.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tenant-CbIHlv2e.js → Tenant-BTQSUiAe.js} +1 -1
  82. package/src/assets/web-panel/assets/{Terminal-V2EXXRcY.js → Terminal-nSeD_GjQ.js} +2 -2
  83. package/src/assets/web-panel/assets/{TimelineRenderer-DIfjYDRV.js → TimelineRenderer-DWj9DOd9.js} +1 -1
  84. package/src/assets/web-panel/assets/{Tokens-o7spb61I.js → Tokens-CNi7fvHT.js} +1 -1
  85. package/src/assets/web-panel/assets/{Trigger-C9Mx4M1Z.js → Trigger-qXYBuAUZ.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trust-BO1ooAq1.js → Trust-UMIDxWBQ.js} +1 -1
  87. package/src/assets/web-panel/assets/{UkeySign-BqFvW_RC.js → UkeySign-VWmZ_L_a.js} +1 -1
  88. package/src/assets/web-panel/assets/{VideoEditing-CGCdftvj.js → VideoEditing-Dwlrr7Ju.js} +1 -1
  89. package/src/assets/web-panel/assets/{Wallet-xI4tcBY8.js → Wallet-DY25E1_s.js} +4 -4
  90. package/src/assets/web-panel/assets/{WebAuthn-9GP7HTR7.js → WebAuthn-Cg4ZH9YH.js} +5 -5
  91. package/src/assets/web-panel/assets/{WorkflowEditor-B9h2rJSw.js → WorkflowEditor-LB5NqSGq.js} +1 -1
  92. package/src/assets/web-panel/assets/{chat-QkuzCwVj.js → chat-CaCuVsD2.js} +1 -1
  93. package/src/assets/web-panel/assets/{colors-zLVw-h4c.js → colors-BG2JI5F8.js} +1 -1
  94. package/src/assets/web-panel/assets/{compact-item-CMO1mB03.js → compact-item-CdTkLvXf.js} +1 -1
  95. package/src/assets/web-panel/assets/{createContext-DNGLcpGd.js → createContext-Wv41oeUq.js} +1 -1
  96. package/src/assets/web-panel/assets/devWarning-CgQHHMHl.js +1 -0
  97. package/src/assets/web-panel/assets/{hasIn-d27IiOzc.js → hasIn-B7Uw6Y5_.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DOz_Tlza.js → index--q3_jHhu.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-BwpB82Xl.js → index-0DcGfrpr.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-gln9cpY4.js → index-27hwVsUl.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-BmvaP46c.js → index-6TrZH59x.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-C6nrSRBx.js → index-98U0Akgy.js} +1 -1
  103. package/src/assets/web-panel/assets/index-B5iepofq.js +1 -0
  104. package/src/assets/web-panel/assets/{index-D7hqqF5C.js → index-B68Kr1A0.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-MlwjpKXX.js → index-BLLVYN1S.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-CqVXEx5l.js → index-BN8FIy9Z.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-CFMd66NM.js → index-BONqMz21.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-wIxrU-u5.js → index-BWuKDmL6.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-c8o5sSmC.js → index-BfpOUAjn.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-SmN-h9ye.js → index-ByGwOQL-.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-1vkEjspu.js → index-BzQ1hohb.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-Czx0FlX_.js → index-C58rpLKM.js} +3 -3
  113. package/src/assets/web-panel/assets/{index-CRhckfWe.js → index-CAG1C05A.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-0fgps_Ha.js → index-CCVpB1HT.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-IBrGVX5g.js → index-CDA9_4jw.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CD2REWY7.js → index-CDuOf0Sk.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-C2_Bbcup.js → index-CZCE6USm.js} +1 -1
  118. package/src/assets/web-panel/assets/index-C_pAjUXd.js +1 -0
  119. package/src/assets/web-panel/assets/{index-DjboeGlp.js → index-Cd9QfEPf.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-KwO1ni8W.js → index-CeBODQXm.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-B1YE9vXa.js → index-ChJPZoiz.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-TPdHE3X9.js → index-Cnkd1twb.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-B0AVVWRp.js → index-D6wz6Lj3.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-XnJSs5Sx.js → index-DTWvW7Q9.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-DGNE9Xm-.js → index-DyBgFbOX.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-DJ2M_yRa.js → index-DyddYZY6.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-DbtxyEga.js → index-FYb9E4P0.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DGjWl8Rt.js → index-Hcx0wbx7.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-yAaQ43Yv.js → index-X3kmZCFh.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-DcJ6eK35.js → index-XVz1pdi4.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-BKEvKuq6.js → index-a811Rdaf.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-VV-CCwRg.js → index-m9IlVQwa.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-CJpHuknz.js → index-oICFzKT6.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-B-7uVSmD.js → index-tyw6dj9r.js} +1 -1
  135. package/src/assets/web-panel/assets/{index-Cj9NMUTv.js → index-xZOajA5D.js} +1 -1
  136. package/src/assets/web-panel/assets/{index-BIPaY2R7.js → index-zEDHN35C.js} +1 -1
  137. package/src/assets/web-panel/assets/{initDefaultProps-mTv02Iv2.js → initDefaultProps-rhNcfOEv.js} +1 -1
  138. package/src/assets/web-panel/assets/{motion-DIWq6Zdd.js → motion-C3Ot7PRG.js} +1 -1
  139. package/src/assets/web-panel/assets/{move-Cs0zlq4K.js → move-BSbZkByI.js} +1 -1
  140. package/src/assets/web-panel/assets/{mtc-parser-D9YFWslw.js → mtc-parser-BHcarv2m.js} +1 -1
  141. package/src/assets/web-panel/assets/{omit-D1blfLNP.js → omit-CH8lRpcG.js} +1 -1
  142. package/src/assets/web-panel/assets/{pickAttrs-DGpZjtCx.js → pickAttrs-DiLvg1NK.js} +1 -1
  143. package/src/assets/web-panel/assets/{placementArrow-U4Xuy5q7.js → placementArrow-DXqb9Lm6.js} +1 -1
  144. package/src/assets/web-panel/assets/{responsiveObserve-sv8vtjTZ.js → responsiveObserve-qhZCsCCH.js} +1 -1
  145. package/src/assets/web-panel/assets/{slide-Abur0WLB.js → slide-amPl47DO.js} +1 -1
  146. package/src/assets/web-panel/assets/{statusUtils-M9GWlDcS.js → statusUtils-BIM6xD4_.js} +1 -1
  147. package/src/assets/web-panel/assets/{styleChecker-Bb9iHj5r.js → styleChecker-BQM4w1nF.js} +1 -1
  148. package/src/assets/web-panel/assets/{useFlexGapSupport-BVNU1yiq.js → useFlexGapSupport-CQLRdXAd.js} +1 -1
  149. package/src/assets/web-panel/assets/{useFs-pGc0P1Qu.js → useFs-CjgDjsYN.js} +1 -1
  150. package/src/assets/web-panel/assets/{usePersonalDataHub-C8em9rTC.js → usePersonalDataHub-BNs5KK4A.js} +1 -1
  151. package/src/assets/web-panel/assets/{vnode-xeBAzt3Y.js → vnode-CEORzacS.js} +1 -1
  152. package/src/assets/web-panel/assets/{zoom-mTBeZV-N.js → zoom-CJco15He.js} +1 -1
  153. package/src/assets/web-panel/index.html +1 -1
  154. package/src/data/changelog.json +13 -0
  155. package/src/lib/evolution/evidence-json-text.js +170 -14
  156. package/src/lib/evolution/evolution-evidence-projector.js +24 -1
  157. package/src/assets/web-panel/assets/Artifacts-Bx9i0fTm.js +0 -1
  158. package/src/assets/web-panel/assets/EvolutionSettings-BdSnL7Vs.js +0 -1
  159. package/src/assets/web-panel/assets/MobileProjects-82ulqAUz.js +0 -1
  160. package/src/assets/web-panel/assets/devWarning-BHskhca6.js +0 -1
  161. package/src/assets/web-panel/assets/index-ByQoHRw-.js +0 -1
  162. package/src/assets/web-panel/assets/index-DSojR8WR.js +0 -1
@@ -1 +1 @@
1
- import{J as o,h}from"./index-Czx0FlX_.js";import{b as x}from"./vendor-Bn1JzzAn.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
+ import{J as o,h}from"./index-C58rpLKM.js";import{b as x}from"./vendor-Bn1JzzAn.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-Czx0FlX_.js";import{i as e}from"./motion-DIWq6Zdd.js";const m=new n("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),f=new n("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),c=new n("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),l=new n("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),y=new n("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),p=new n("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),O=new n("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),d=new n("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),g={"slide-up":{inKeyframes:m,outKeyframes:f},"slide-down":{inKeyframes:c,outKeyframes:l},"slide-left":{inKeyframes:y,outKeyframes:p},"slide-right":{inKeyframes:O,outKeyframes:d}},K=(t,r)=>{const{antCls:a}=t,i=`${a}-${r}`,{inKeyframes:s,outKeyframes:o}=g[r];return[e(i,s,o,t.motionDurationMid),{[`
1
+ import{K as n}from"./index-C58rpLKM.js";import{i as e}from"./motion-C3Ot7PRG.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-Czx0FlX_.js";function r(a,s,t){return e({[`${a}-status-success`]:s==="success",[`${a}-status-warning`]:s==="warning",[`${a}-status-error`]:s==="error",[`${a}-status-validating`]:s==="validating",[`${a}-has-feedback`]:t})}const c=(a,s)=>s||a;export{c as a,r as g};
1
+ import{i as e}from"./index-C58rpLKM.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{B as d}from"./index-Czx0FlX_.js";const i=()=>d()&&window.document.documentElement,c=e=>{if(d()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(r=>r in n.style)}return!1},u=(e,t)=>{if(!c(e))return!1;const n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function s(e,t){return!Array.isArray(e)&&t!==void 0?u(e,t):c(e)}let o;const p=()=>{if(!i())return!1;if(o!==void 0)return o;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=e.scrollHeight===1,document.body.removeChild(e),o};export{i as c,p as d,s as i};
1
+ import{B as d}from"./index-C58rpLKM.js";const i=()=>d()&&window.document.documentElement,c=e=>{if(d()&&window.document.documentElement){const t=Array.isArray(e)?e:[e],{documentElement:n}=window.document;return t.some(r=>r in n.style)}return!1},u=(e,t)=>{if(!c(e))return!1;const n=document.createElement("div"),r=n.style[e];return n.style[e]=t,n.style[e]!==r};function s(e,t){return!Array.isArray(e)&&t!==void 0?u(e,t):c(e)}let o;const p=()=>{if(!i())return!1;if(o!==void 0)return o;const e=document.createElement("div");return e.style.display="flex",e.style.flexDirection="column",e.style.rowGap="1px",e.appendChild(document.createElement("div")),e.appendChild(document.createElement("div")),document.body.appendChild(e),o=e.scrollHeight===1,document.body.removeChild(e),o};export{i as c,p as d,s as i};
@@ -1 +1 @@
1
- import{o,s as t}from"./vendor-Bn1JzzAn.js";import{d as s}from"./styleChecker-Bb9iHj5r.js";const r=(()=>{const e=t(!1);return o(()=>{e.value=s()}),e});export{r as u};
1
+ import{o,s as t}from"./vendor-Bn1JzzAn.js";import{d as s}from"./styleChecker-BQM4w1nF.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-Czx0FlX_.js";import{u as c}from"./useShellMode-CgR0wCYM.js";function u({accept:l=""}={}){return new Promise(a=>{if(typeof document>"u"){a({canceled:!0,path:null,content:null});return}const n=document.createElement("input");n.type="file",l&&(n.accept=l),n.style.display="none",document.body.appendChild(n);let o=!1;const i=()=>{n.parentNode&&n.parentNode.removeChild(n)},r=()=>{if(o)return;o=!0;const e=n.files&&n.files[0];if(!e){i(),a({canceled:!0,path:null,content:null});return}const t=new FileReader;t.onload=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:typeof t.result=="string"?t.result:""})},t.onerror=()=>{i(),a({canceled:!1,path:e.name,size:e.size,content:null,reason:"read_failed"})},t.readAsText(e)};n.addEventListener("change",r),n.click()})}function f(l,{defaultPath:a="download.txt"}={}){if(typeof document>"u")return{canceled:!0,path:null};const n=new Blob([l],{type:"text/plain"}),o=URL.createObjectURL(n),i=document.createElement("a");return i.href=o,i.download=a,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(o),{canceled:!1,path:a}}function p(l){if(!Array.isArray(l))return"";const a=[];for(const n of l)if(Array.isArray(n.extensions))for(const o of n.extensions)a.push(`.${o.replace(/^\./,"")}`);return a.join(",")}function m(){const l=d();async function a(r={}){if(c().isEmbedded){const e=await l.sendRaw({type:"fs.openDialog",title:r.title,filters:r.filters},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDialog failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,content:t.content??null,size:t.size,reason:t.reason}}return u({accept:p(r.filters)})}async function n(r,e={}){if(typeof r!="string")throw new Error("content must be a string");if(c().isEmbedded){const t=await l.sendRaw({type:"fs.saveDialog",title:e.title,defaultPath:e.defaultPath,filters:e.filters,content:r},6e4);if(t&&t.ok===!1)throw new Error(t.error||"fs.saveDialog failed");const s=t?.result??t;return{canceled:!!s.canceled,path:s.path??null}}return f(r,{defaultPath:e.defaultPath})}async function o(r,e={}){const t=JSON.stringify(r,null,2),s={...e,defaultPath:e.defaultPath||"data.json",filters:e.filters||[{name:"JSON",extensions:["json"]}]};return n(t,s)}async function i(r={}){if(!c().isEmbedded)return{canceled:!0,path:null,initialized:!1,unsupported:!0};const e=await l.sendRaw({type:"fs.openDirectory",title:r.title},6e4);if(e&&e.ok===!1)throw new Error(e.error||"fs.openDirectory failed");const t=e?.result??e;return{canceled:!!t.canceled,path:t.path??null,initialized:!!t.initialized}}return{pickFileText:a,saveText:n,saveJson:o,pickDirectory:i}}export{m as u};
1
+ import{u as d}from"./index-C58rpLKM.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 v}from"./index-Czx0FlX_.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
1
+ import{u as v}from"./index-C58rpLKM.js";import{u as _}from"./useShellMode-CgR0wCYM.js";function d(r){if(!r)return r;if(r.error)throw new Error(r.error);return r.result!==void 0?r.result:r}async function p(r,s={},e=!0){try{if(e!==!0||!r||typeof r.sendRaw!="function")return{status:"unavailable",path:null};const a=await r.sendRaw({type:"fs.openDirectory",title:s.title},6e4);if(a&&(a.ok===!1||a.error))return{status:"unavailable",path:null};const t=a&&a.result!==void 0?a.result:a;return t&&(t.ok===!1||t.error||t.unsupported===!0)?{status:"unavailable",path:null}:t&&t.canceled===!0?{status:"cancelled",path:null}:t&&typeof t.path=="string"&&t.path.length>0?{status:"selected",path:t.path}:{status:"unavailable",path:null}}catch{return{status:"unavailable",path:null}}}function b(r,s,e,a,t){return typeof r.onMessage!="function"||typeof r.sendRaw!="function"?r.sendRaw({type:s,...e},t).then(d):new Promise((n,u)=>{const l=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,w=`${s}.event`,m=`${s}.end`;let c=!1,h=()=>{};const o=(i,f)=>{if(!c){c=!0,clearTimeout(g);try{h()}catch{}i(f)}},g=setTimeout(()=>{o(u,new Error(`stream timeout (${t}ms): ${s}`))},t),y=r.onMessage(i=>{if(!(c||!i)&&!(i.id!==l&&i.requestId!==l)){if(i.type===w){if(typeof a=="function")try{a(i.event||i)}catch{}return}if(i.type===m){o(n,d(i));return}i.type==="error"&&o(u,new Error(i.message||"stream error"))}});h=typeof y=="function"?y:()=>{},Promise.resolve(r.sendRaw({id:l,type:s,...e},t)).catch(()=>{})})}function k(){const r=v(),s=_(),e=(a,t={},n=3e4)=>r.sendRaw({type:a,...t},n).then(d);return{async health(){return await e("personal-data-hub.health",{},8e3)},async stats(){return await e("personal-data-hub.stats",{},8e3)},async listAdapters(){return await e("personal-data-hub.list-adapters",{},5e3)},async pickFile(a={}){try{const t=await r.sendRaw({type:"fs.openDialog",title:a.title,filters:a.filters},6e4),n=t&&t.result!==void 0?t.result:t,u=n&&typeof n.path=="string"?n.path:n&&typeof n.filePath=="string"?n.filePath:null;return n&&n.canceled!==!0&&u?u:null}catch{return null}},async pickDirectoryResult(a={}){return await p(r,a,s.isEmbedded)},async pickDirectory(a={}){const t=await p(r,a,s.isEmbedded);return t.status==="selected"?t.path:null},async adapterReadiness(a){return await e("personal-data-hub.adapter-readiness",Number.isInteger(a)?{timeoutMs:a}:{},15e3)},async syncAdapter(a,t={}){return await e("personal-data-hub.sync-adapter",{name:a,options:t},6e5)},async syncAll(a={}){return await e("personal-data-hub.sync-all",{options:a},6e5)},async registerMock({name:a="mock",count:t=20,seed:n=1}={}){return await e("personal-data-hub.register-mock",{name:a,count:t,seed:n})},async unregister(a){return await e("personal-data-hub.unregister",{name:a})},async ask(a,t={}){return await e("personal-data-hub.ask",{question:a,options:t},18e4)},async queryEvents(a={}){return await e("personal-data-hub.query-events",a,1e4)},async recentAudit(a={}){return await e("personal-data-hub.recent-audit",a,1e4)},async searchEvents(a={}){return await e("personal-data-hub.search-events",a,15e3)},async facetCounts(a={}){return await e("personal-data-hub.facet-counts",a,1e4)},async testEmailAuth(a){return await e("personal-data-hub.test-email-auth",{account:a},3e4)},async registerEmail(a,t={}){return await e("personal-data-hub.register-email",{account:a,opts:t},15e3)},async unregisterEmail(a){return await e("personal-data-hub.unregister-email",{email:a},5e3)},async listEmailAccounts(){return await e("personal-data-hub.list-email-accounts",{},5e3)},async activateEmail(a){return await e("personal-data-hub.activate-email",{email:a},5e3)},async eventDetail(a){return await e("personal-data-hub.event-detail",{eventId:a},5e3)},async syncAdapterStream(a,t={},n){return await b(r,"personal-data-hub.sync-adapter-stream",{name:a,options:t},n,6e5)},async syncAllStream(a={},t){return await b(r,"personal-data-hub.sync-all-stream",{options:a},t,9e5)},async registerAlipay(a,t={}){return await e("personal-data-hub.register-alipay",{account:a,opts:t},15e3)},async unregisterAlipay(a){return await e("personal-data-hub.unregister-alipay",{email:a},5e3)},async listAlipayAccounts(){return await e("personal-data-hub.list-alipay-accounts",{},5e3)},async activateAlipay(a){return await e("personal-data-hub.activate-alipay",{email:a},5e3)},async importAlipayBill({zipPath:a,csvPath:t,zipPassword:n}={}){return await e("personal-data-hub.import-alipay-bill",{zipPath:a,csvPath:t,zipPassword:n},3e5)},async reviewQueueList(a=50){return await e("personal-data-hub.review-queue-list",{limit:a},5e3)},async reviewDecision(a,t){return await e("personal-data-hub.review-decision",{reviewId:a,decision:t},5e3)},async manualMerge(a,t){return await e("personal-data-hub.manual-merge",{aId:a,bId:t},5e3)},async manualUnmerge(a){return await e("personal-data-hub.manual-unmerge",{personId:a},5e3)},async resolverDrain(a=50){return await e("personal-data-hub.resolver-drain",{limit:a},18e4)},async resolverStats(){return await e("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await e("personal-data-hub.skills-list",{},5e3)},async runSkill(a,t={}){return await e("personal-data-hub.run-skill",{name:a,options:t},12e4)},async openAichatLogin(a,t={}){return await e("personal-data-hub.aichat-open-login",{vendor:a,opts:t},1e4)},async probeAichatCookies(a,t){return await e("personal-data-hub.aichat-probe-cookies",{vendor:a,cookieHeader:t},1e4)},async registerAichatVendor(a,t,n={}){return await e("personal-data-hub.aichat-register-vendor",{vendor:a,cookies:t,opts:n},3e4)},async rotateAichatLogin(a){return await e("personal-data-hub.aichat-rotate-login",{vendor:a},1e4)},async listAichatAccounts(){return await e("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(a){return await e("personal-data-hub.unregister-aichat",{vendor:a},5e3)},async aichatHealthCheckOnce(){return await e("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await e("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l}={}){return await e("personal-data-hub.register-wechat",{account:a,dbPath:t,wechatDataPath:n,fridaOpts:u,keyProviderOverride:l},45e3)},async listWechatAccounts(){return await e("personal-data-hub.list-wechat-accounts",{},5e3)},async activateWechat(a,t={}){return await e("personal-data-hub.activate-wechat",{uin:a,fridaOpts:t.fridaOpts,keyProviderOverride:t.keyProviderOverride},45e3)},async unregisterWechat(a){return await e("personal-data-hub.unregister-wechat",{uin:a},5e3)},async bilibiliAdbSync(a={}){return await e("personal-data-hub.bilibili-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bilibiliAdbDoctor(){return await e("personal-data-hub.bilibili-adb-doctor",{},15e3)},async weiboAdbSync(a={}){return await e("personal-data-hub.weibo-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async xhsAdbSync(a={}){return await e("personal-data-hub.xhs-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)},async toutiaoAdbSync(a={}){return await e("personal-data-hub.toutiao-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},9e4)},async kuaishouAdbSync(a={}){return await e("personal-data-hub.kuaishou-adb-sync",{limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},12e4)},async bridgeDoctor(){return await e("personal-data-hub.bridge-doctor",{},6e4)},async douyinAdbSync(a={}){return await e("personal-data-hub.douyin-adb-sync",{uid:a.uid,limits:a.limits,stagingDir:a.stagingDir,displayName:a.displayName},6e4)}}}export{k as u};
@@ -1 +1 @@
1
- import{N as i,h as a,w as l}from"./index-Czx0FlX_.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.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 v(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,v as t};
1
+ import{N as i,h as a,w as l}from"./index-C58rpLKM.js";import{a7 as o,k as g,C as d,F as f,A as p}from"./vendor-Bn1JzzAn.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 v(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,v as t};
@@ -1,4 +1,4 @@
1
- import{K as o}from"./index-Czx0FlX_.js";import{i as f}from"./motion-DIWq6Zdd.js";const c=new o("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),y=new o("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),a=new o("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),s=new o("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),g=new o("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),O=new o("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),l=new o("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),u=new o("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),p=new o("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),z=new o("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),K=new o("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),w=new o("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),I={zoom:{inKeyframes:c,outKeyframes:y},"zoom-big":{inKeyframes:a,outKeyframes:s},"zoom-big-fast":{inKeyframes:a,outKeyframes:s},"zoom-left":{inKeyframes:l,outKeyframes:u},"zoom-right":{inKeyframes:p,outKeyframes:z},"zoom-up":{inKeyframes:g,outKeyframes:O},"zoom-down":{inKeyframes:K,outKeyframes:w}},h=(n,r)=>{const{antCls:m}=n,t=`${m}-${r}`,{inKeyframes:i,outKeyframes:e}=I[r];return[f(t,i,e,r==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[`
1
+ import{K as o}from"./index-C58rpLKM.js";import{i as f}from"./motion-C3Ot7PRG.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-Czx0FlX_.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-C58rpLKM.js"></script>
12
12
  <link rel="modulepreload" crossorigin href="./assets/vendor-Bn1JzzAn.js">
13
13
  <link rel="modulepreload" crossorigin href="./assets/icons-DG5UD-6K.js">
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-Cq93VfoF.css">
@@ -1,6 +1,19 @@
1
1
  {
2
2
  "source": "CHANGELOG.md",
3
3
  "releases": [
4
+ {
5
+ "productVersion": null,
6
+ "cliVersion": "0.166.125",
7
+ "cliVersions": ["0.166.125"],
8
+ "date": "2026-10-26",
9
+ "title": "",
10
+ "sections": [
11
+ {
12
+ "heading": "Fixed - cc CLI 0.166.125: source expressions in completed tool history (candidate, 2026-10-26)",
13
+ "body": "- Recognize Python list/object unpacking, JavaScript spread and bounded unary/binary expressions in code fields so completed tool history can reach the next model turn.\n- Keep malformed/duplicate JSON and projection budgets enforced, retain conservative sensitive-source guards, and preserve v7 evidence verification with versioned v8 rules.\n- Add regressions for object/serialized arguments, paired results, fenced code, sensitive assignment wrappers and real Agent continuation without tool replay. Child dependency pins are unchanged. Publication requires exact-source three-OS CLI CI and Strict Sandbox followed by Actions OIDC."
14
+ }
15
+ ]
16
+ },
4
17
  {
5
18
  "productVersion": null,
6
19
  "cliVersion": "0.166.123",
@@ -110,6 +110,68 @@ function assignmentKeyBefore(text, start, end) {
110
110
  return keyEnd > index + 1 ? text.slice(index + 1, keyEnd) : undefined;
111
111
  }
112
112
 
113
+ // New expression syntax retains all preceding decoded names, including targets
114
+ // across calls, destructuring and nested statements. Without a language parser,
115
+ // newline/semicolon cannot prove an enclosing sensitive assignment has ended.
116
+ // This check applies only to newly admitted syntax; historical code keeps its
117
+ // existing scanner. The cursor and shared budgets bound the additional work.
118
+ function createSourcePrefixTracker(text, requireSafeKey, rejectOpaque) {
119
+ let cursor = 0;
120
+ let candidates = [];
121
+ return (until) => {
122
+ while (cursor < until) {
123
+ const char = text[cursor];
124
+ if (char === "`") {
125
+ let end = cursor + 1;
126
+ for (; end < text.length; end++) {
127
+ if (text[end] === "\\") end++;
128
+ else if (text[end] === "`") break;
129
+ }
130
+ // Template interpolation has its own grammar. Do not grant new source
131
+ // semantics inside it without a decoder for its escapes and bindings.
132
+ if (end >= until) rejectOpaque();
133
+ cursor = end + 1;
134
+ continue;
135
+ }
136
+ if (char === '"' || char === "'") {
137
+ const literal = (
138
+ char === '"' ? CODE_DOUBLE_QUOTED_PREFIX : CODE_SINGLE_QUOTED_PREFIX
139
+ ).exec(text.slice(cursor))?.[0];
140
+ if (!literal) {
141
+ cursor++;
142
+ continue;
143
+ }
144
+ candidates.push({ literal });
145
+ cursor += literal.length;
146
+ continue;
147
+ }
148
+ const name =
149
+ /^(?:[$_\p{ID_Start}]|\\u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\}))(?:[$\p{ID_Continue}]|\\u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\}))*/u.exec(
150
+ text.slice(cursor),
151
+ )?.[0];
152
+ if (name) {
153
+ candidates.push({ key: name });
154
+ cursor += name.length;
155
+ continue;
156
+ }
157
+ if (text.slice(cursor, cursor + 2) === "/*") {
158
+ const end = text.indexOf("*/", cursor + 2);
159
+ if (end < 0 || end >= until) rejectOpaque();
160
+ cursor = end + 2;
161
+ continue;
162
+ }
163
+ if (char === "#" && /\s/u.test(text[cursor + 1] ?? "")) {
164
+ const newline = text.indexOf("\n", cursor);
165
+ cursor = newline < 0 ? text.length : newline;
166
+ continue;
167
+ }
168
+ cursor++;
169
+ }
170
+ for (const entry of candidates) requireSafeKey(entry);
171
+ candidates = [];
172
+ };
173
+ }
174
+
113
175
  export function createEvidenceJsonTextBoundary(
114
176
  fail,
115
177
  policy = EVIDENCE_JSON_POLICY,
@@ -134,6 +196,38 @@ export function createEvidenceJsonTextBoundary(
134
196
  Object.defineProperty(error, PARSE_FAILURE, { value: kind });
135
197
  throw error;
136
198
  };
199
+ // Source syntax is admitted only at a known code field. Require an operand:
200
+ // a bare spread/operator must never turn malformed JSON into plain text.
201
+ // Do not admit templates or regex literals: their escapes are not decoded by
202
+ // this boundary. Numeric operands retain the strict JSON number budget.
203
+ const sourceOperand = (text) => {
204
+ const rest = text.trimStart();
205
+ if (/^[$_\p{ID_Start}('"[{]/u.test(rest)) return true;
206
+ const token = /^(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/u.exec(rest)?.[0];
207
+ if (!token || /[\w$.]/u.test(rest[token.length] ?? "")) return false;
208
+ const number = Number(token);
209
+ if (
210
+ !Number.isFinite(number) ||
211
+ (Number.isInteger(number) && !Number.isSafeInteger(number))
212
+ )
213
+ parserReject("budget");
214
+ return true;
215
+ };
216
+ const sourcePrefix = (text, objectSpread = false) => {
217
+ const token = (
218
+ objectSpread ? /^(?:\*\*|\.\.\.)/u : /^(?:\.\.\.|\*{1,2}|[+!~]|-(?!\d))/u
219
+ ).exec(text)?.[0];
220
+ return token !== undefined && sourceOperand(text.slice(token.length));
221
+ };
222
+ const sourceContinuation = (text) => {
223
+ // Existing call/member/conditional syntax keeps its historical handling.
224
+ if (/^[.(?]/u.test(text)) return true;
225
+ const token =
226
+ /^(?:\*\*|\/\/|>>>?|<<|===?|!==?|<=?|>=?|&&?|\|\|?|[-+*/%&|^]|(?:and|or|if|in|is|not)\b)/u.exec(
227
+ text,
228
+ )?.[0];
229
+ return token !== undefined && sourceOperand(text.slice(token.length));
230
+ };
137
231
  const decodeSourceString = (literal, quote) => {
138
232
  let output = "";
139
233
  for (let index = 1; index < literal.length - 1; index++) {
@@ -206,7 +300,11 @@ export function createEvidenceJsonTextBoundary(
206
300
  }
207
301
  return output;
208
302
  };
209
- const parser = (text, start, { allowSingleQuotedStrings = false } = {}) => {
303
+ const parser = (
304
+ text,
305
+ start,
306
+ { allowSingleQuotedStrings = false, allowSourceExpressions = false } = {},
307
+ ) => {
210
308
  let index = start;
211
309
  const whitespace = () => {
212
310
  while (/[ \t\r\n]/u.test(text[index] ?? "x")) index++;
@@ -259,6 +357,8 @@ export function createEvidenceJsonTextBoundary(
259
357
  while (index < text.length) {
260
358
  let key;
261
359
  if (!array) {
360
+ if (allowSourceExpressions && sourcePrefix(text.slice(index), true))
361
+ parserReject("source-expression");
262
362
  if (
263
363
  text[index] !== '"' &&
264
364
  !(allowSingleQuotedStrings && text[index] === "'")
@@ -286,6 +386,12 @@ export function createEvidenceJsonTextBoundary(
286
386
  return output;
287
387
  }
288
388
  if (text[index] !== ",") {
389
+ if (
390
+ allowSourceExpressions &&
391
+ !/^[.(+*/?]/u.test(text[index] ?? "") &&
392
+ sourceContinuation(text.slice(index))
393
+ )
394
+ parserReject("source-expression");
289
395
  // Slices, comprehensions and member/call/arithmetic expressions
290
396
  // are source syntax. Missing delimiters and trailing commas stay
291
397
  // malformed JSON, including in run_code output.
@@ -307,6 +413,8 @@ export function createEvidenceJsonTextBoundary(
307
413
  text.slice(index),
308
414
  )?.[0];
309
415
  if (!token) {
416
+ if (allowSourceExpressions && sourcePrefix(text.slice(index)))
417
+ parserReject("source-expression");
310
418
  return parserReject(
311
419
  /^[A-Za-z_$][A-Za-z0-9_$]*|^\(/u.test(text.slice(index))
312
420
  ? "code-expression"
@@ -314,6 +422,14 @@ export function createEvidenceJsonTextBoundary(
314
422
  );
315
423
  }
316
424
  index += token.length;
425
+ if (
426
+ allowSourceExpressions &&
427
+ /^-?\d/u.test(token) &&
428
+ (/[\p{ID_Continue}$]/u.test(text[index] ?? "") ||
429
+ (text[index] === "." &&
430
+ !/^\.{1,2}[$_\p{ID_Start}]/u.test(text.slice(index))))
431
+ )
432
+ parserReject("syntax");
317
433
  // A primitive prefix is not a complete source expression. In particular,
318
434
  // redacting only `true` from trueSecretValue would expose the suffix of
319
435
  // a sensitive quoted assignment. Historical policies retain their parser.
@@ -376,6 +492,30 @@ export function createEvidenceJsonTextBoundary(
376
492
  reject("Agent model JSON text exceeds its budget");
377
493
  return visit(parsed, layer + 1, textContext);
378
494
  };
495
+ const requireSafeSourceKey = (key) => {
496
+ const probe = Object.defineProperty(Object.create(null), key, {
497
+ value: "source-expression",
498
+ enumerable: true,
499
+ });
500
+ if (!equal(probe, transform(probe)))
501
+ reject(
502
+ "Agent model code expression under a sensitive key cannot be safely projected",
503
+ );
504
+ };
505
+ const requireSafeSourceAssignments = createSourcePrefixTracker(
506
+ text,
507
+ ({ key, literal }) => {
508
+ if (literal) {
509
+ const reader = parser(literal, 0, { allowSingleQuotedStrings: true });
510
+ key = reader.value();
511
+ } else key = decodeSourceString(`"${key}"`, '"');
512
+ requireSafeSourceKey(key);
513
+ },
514
+ () =>
515
+ reject(
516
+ "Agent model code expression under an opaque source context cannot be safely projected",
517
+ ),
518
+ );
379
519
  if (objectOnly) {
380
520
  const reader = parser(text, 0);
381
521
  let parsed;
@@ -516,6 +656,9 @@ export function createEvidenceJsonTextBoundary(
516
656
  // A recognized container is always tried as strict JSON first, even
517
657
  // inside code. Only an explicit non-JSON token allows literal scanning.
518
658
  allowSingleQuotedStrings: codeText && !container,
659
+ allowSourceExpressions:
660
+ codeText &&
661
+ policy.sourceExpressionPolicy === "bounded-source-tokens-v1",
519
662
  });
520
663
  let parsed;
521
664
  let valueEnd;
@@ -524,7 +667,16 @@ export function createEvidenceJsonTextBoundary(
524
667
  valueEnd = reader.end();
525
668
  } catch (error) {
526
669
  const kind = error?.[PARSE_FAILURE];
527
- if (!codeText || kind !== "code-expression") rejectParseFailure(error);
670
+ if (
671
+ !codeText ||
672
+ !["code-expression", "source-expression"].includes(kind)
673
+ )
674
+ rejectParseFailure(error);
675
+ if (kind === "source-expression") {
676
+ requireSafeSourceAssignments(index);
677
+ const key = assignmentKeyBefore(text, plainStart, index);
678
+ if (key) requireSafeSourceKey(key);
679
+ }
528
680
  // Python/JavaScript containers may contain single quotes or expressions.
529
681
  // Scan their literals individually, preserving nested strict JSON scans.
530
682
  // Keep consumed nodes charged so repeated fallback cannot reset budgets.
@@ -538,14 +690,7 @@ export function createEvidenceJsonTextBoundary(
538
690
  // An expression cannot be visited as a decoded JSON value. Preserve
539
691
  // the decoded key boundary: otherwise a password list/call expression
540
692
  // could expose its string literals when scanning resumes inside it.
541
- const probe = Object.defineProperty(Object.create(null), parsed, {
542
- value: "source-expression",
543
- enumerable: true,
544
- });
545
- if (!equal(probe, transform(probe)))
546
- reject(
547
- "Agent model code expression under a sensitive key cannot be safely projected",
548
- );
693
+ requireSafeSourceKey(parsed);
549
694
  };
550
695
  if (pair) {
551
696
  const rhsStart = reader.end() + 1;
@@ -560,16 +705,23 @@ export function createEvidenceJsonTextBoundary(
560
705
  pair = false;
561
706
  } else {
562
707
  try {
563
- const rhsContainer = /^[ \t\r\n]*[\[{]/u.test(text.slice(rhsStart));
708
+ const rhsContainer = /^[ \t\r\n]*[[{]/u.test(text.slice(rhsStart));
564
709
  const rhs = parser(text, rhsStart, {
565
710
  allowSingleQuotedStrings: codeText && !rhsContainer,
711
+ allowSourceExpressions:
712
+ codeText &&
713
+ policy.sourceExpressionPolicy === "bounded-source-tokens-v1",
566
714
  });
567
715
  const entry = rhs.value();
568
716
  const entryEnd = rhs.end();
569
717
  rhs.whitespace();
570
718
  if (
571
719
  (codeText || policy.proseQuotedPairPolicy) &&
572
- /^[+\-*/%?.([<>&|^=!"']/u.test(text[rhs.end()] ?? "")
720
+ (/^[+\-*/%?.([<>&|^=!"']/u.test(text[rhs.end()] ?? "") ||
721
+ (codeText &&
722
+ policy.sourceExpressionPolicy ===
723
+ "bounded-source-tokens-v1" &&
724
+ sourceContinuation(text.slice(rhs.end()))))
573
725
  )
574
726
  requireSafeExpressionKey();
575
727
  parsed = Object.defineProperty(Object.create(null), parsed, {
@@ -582,7 +734,8 @@ export function createEvidenceJsonTextBoundary(
582
734
  if (kind === undefined) throw error;
583
735
  if (
584
736
  (!codeText && !policy.proseQuotedPairPolicy) ||
585
- kind !== "code-expression"
737
+ (kind !== "code-expression" &&
738
+ !(codeText && kind === "source-expression"))
586
739
  )
587
740
  rejectParseFailure(error);
588
741
  // A standalone prose label or a source key followed by an
@@ -633,7 +786,10 @@ export function createEvidenceJsonTextBoundary(
633
786
  (codeText || policy.proseQuotedPairPolicy) &&
634
787
  assignmentKey &&
635
788
  !equal(parsed, safe) &&
636
- /^\s*[+\-*/%?.([<>&|^=!"']/u.test(text.slice(end))
789
+ (/^\s*[+\-*/%?.([<>&|^=!"']/u.test(text.slice(end)) ||
790
+ (codeText &&
791
+ policy.sourceExpressionPolicy === "bounded-source-tokens-v1" &&
792
+ sourceContinuation(text.slice(end).trimStart())))
637
793
  )
638
794
  reject(
639
795
  "Agent model code expression under a sensitive key cannot be safely projected",
@@ -596,7 +596,7 @@ export const EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_V6_DIGEST = `sha256:${crea
596
596
  "utf8",
597
597
  )
598
598
  .digest("hex")}`;
599
- const AGENT_MODEL_RULESET = Object.freeze({
599
+ const AGENT_MODEL_RULESET_V7 = Object.freeze({
600
600
  ...AGENT_MODEL_RULESET_V6,
601
601
  schema: "chainlesschain.evolution-agent-model-projection-rules/v7",
602
602
  version: 7,
@@ -606,6 +606,24 @@ const AGENT_MODEL_RULESET = Object.freeze({
606
606
  pythonFStringPolicy: "bounded-static-label-alignment-v1",
607
607
  }),
608
608
  });
609
+ export const EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_V7_DIGEST = `sha256:${createHash(
610
+ "sha256",
611
+ )
612
+ .update(
613
+ `${AGENT_MODEL_RULESET_V7.schema}\0${JSON.stringify(AGENT_MODEL_RULESET_V7)}`,
614
+ "utf8",
615
+ )
616
+ .digest("hex")}`;
617
+ const AGENT_MODEL_RULESET = Object.freeze({
618
+ ...AGENT_MODEL_RULESET_V7,
619
+ schema: "chainlesschain.evolution-agent-model-projection-rules/v8",
620
+ version: 8,
621
+ jsonTextPolicy: Object.freeze({
622
+ ...AGENT_MODEL_RULESET_V7.jsonTextPolicy,
623
+ version: 5,
624
+ sourceExpressionPolicy: "bounded-source-tokens-v1",
625
+ }),
626
+ });
609
627
  export const EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_DIGEST = `sha256:${createHash(
610
628
  "sha256",
611
629
  )
@@ -640,6 +658,7 @@ const SUPPORTED_RULESETS = new Map([
640
658
  [EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_V4_DIGEST, AGENT_MODEL_RULESET_V4],
641
659
  [EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_V5_DIGEST, AGENT_MODEL_RULESET_V5],
642
660
  [EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_V6_DIGEST, AGENT_MODEL_RULESET_V6],
661
+ [EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_V7_DIGEST, AGENT_MODEL_RULESET_V7],
643
662
  [EVOLUTION_AGENT_MODEL_PROJECTION_RULESET_DIGEST, AGENT_MODEL_RULESET],
644
663
  ]);
645
664
 
@@ -715,6 +734,7 @@ const AGENT_VALUE_PATTERNS = Object.freeze([
715
734
  function valuePatterns(ruleset) {
716
735
  return ruleset === SKILL_DECISION_RULESET ||
717
736
  ruleset === AGENT_MODEL_RULESET ||
737
+ ruleset === AGENT_MODEL_RULESET_V7 ||
718
738
  ruleset === AGENT_MODEL_RULESET_V6 ||
719
739
  ruleset === AGENT_MODEL_RULESET_V5 ||
720
740
  ruleset === AGENT_MODEL_RULESET_V4 ||
@@ -1469,6 +1489,7 @@ function sanitizePayload(
1469
1489
  const toolArguments = jsonText && isAgentToolArgumentsPath(path);
1470
1490
  const opaqueTransportBlock =
1471
1491
  ruleset === AGENT_MODEL_RULESET ||
1492
+ ruleset === AGENT_MODEL_RULESET_V7 ||
1472
1493
  ruleset === AGENT_MODEL_RULESET_V6 ||
1473
1494
  ruleset === AGENT_MODEL_RULESET_V5 ||
1474
1495
  ruleset === AGENT_MODEL_RULESET_V4 ||
@@ -3364,6 +3385,7 @@ function validateBundleIntegrity(bundle) {
3364
3385
  }
3365
3386
  if (
3366
3387
  ruleset === AGENT_MODEL_RULESET ||
3388
+ ruleset === AGENT_MODEL_RULESET_V7 ||
3367
3389
  ruleset === AGENT_MODEL_RULESET_V6 ||
3368
3390
  ruleset === AGENT_MODEL_RULESET_V5 ||
3369
3391
  ruleset === AGENT_MODEL_RULESET_V4 ||
@@ -3375,6 +3397,7 @@ function validateBundleIntegrity(bundle) {
3375
3397
  allowStructuredArgumentText: ruleset !== AGENT_MODEL_RULESET_V1,
3376
3398
  allowOpaqueTransportBlocks:
3377
3399
  ruleset === AGENT_MODEL_RULESET ||
3400
+ ruleset === AGENT_MODEL_RULESET_V7 ||
3378
3401
  ruleset === AGENT_MODEL_RULESET_V6 ||
3379
3402
  ruleset === AGENT_MODEL_RULESET_V5 ||
3380
3403
  ruleset === AGENT_MODEL_RULESET_V4 ||
@@ -1 +0,0 @@
1
- import{E as J,b as z,r as C,I as k,J as y,U as _,c as r,K as o,S as R,V as F,o as V,f as D,P as d,Q as f,R as p,F as j}from"./vendor-Bn1JzzAn.js";import{M as Q}from"./MarkdownRenderer-DpyiXUmk.js";import{u as B,_ as W,d as S}from"./index-Czx0FlX_.js";import{R as q}from"./icons-DG5UD-6K.js";import"./markdown-Bq2x0XsR.js";import"./markdown-DUKxbhE4.js";const K=J("artifacts",()=>{const h=C([]),t=C(!1),u=C(""),e=C(""),v=C(null),b=C(!1),A=z(()=>[...new Set(h.value.map(a=>a.kind).filter(Boolean))].sort());async function l(){const n=B();t.value=!0;try{const a={type:"artifact-list"};u.value&&(a.kind=u.value),e.value&&(a.session=e.value);const s=await n.sendRaw(a);s&&Array.isArray(s.artifacts)&&(h.value=[...s.artifacts].reverse())}catch{}finally{t.value=!1}}async function g(n){const a=B();b.value=!0,v.value={entry:n,previewable:!1};try{const s=await a.sendRaw({type:"artifact-content",artifactId:n.id});v.value={entry:n,previewable:s?.previewable===!0,encoding:s?.encoding||null,content:s?.content||"",truncated:s?.truncated===!0,reason:s?.reason||null}}catch(s){v.value={entry:n,previewable:!1,reason:s?.message||"preview failed"}}finally{b.value=!1}}function i(){v.value=null}const m=z(()=>{const n=v.value;return!n?.previewable||n.encoding!=="base64"?null:`data:${n.entry?.mime||"image/png"};base64,${n.content}`}),O=z(()=>{const n=v.value;return n?.previewable===!0&&n.encoding==="utf8"&&String(n.entry?.mime||"").toLowerCase()==="text/markdown"});async function M(n,a={}){if(!n?.id)return!1;const s=a.fetch||globalThis.fetch,T=a.document||globalThis.document,E=a.URL||globalThis.URL,L=(a.config||globalThis.window?.__CC_CONFIG__)??{};try{const N=await s(`/api/artifacts/${n.id}/download`,{headers:L.wsToken?{Authorization:`Bearer ${L.wsToken}`}:{}});if(!N.ok)return!1;const G=await N.blob(),U=E.createObjectURL(G),I=T.createElement("a");return I.href=U,I.download=n.title||n.id,T.body.appendChild(I),I.click(),I.remove(),E.revokeObjectURL(U),!0}catch{return!1}}async function P(n){const a=B();if(!n)return!1;try{const s=await a.sendRaw({type:"artifact-remove",artifactId:n});return v.value?.entry?.id===n&&(v.value=null),await l(),s?.found===!0}catch{return!1}}async function c(){const n=B();try{const a=await n.sendRaw({type:"artifact-clean"});return await l(),Number(a?.removed)||0}catch{return 0}}function w(n){const a=Number(n)||0;return a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KB`:`${(a/(1024*1024)).toFixed(1)} MB`}function x(n){switch(n){case"report":return"blue";case"patch":return"purple";case"screenshot":return"cyan";case"log":return"default";case"data":return"green";default:return"default"}}return{artifacts:h,loading:t,kindFilter:u,sessionFilter:e,kinds:A,preview:v,previewLoading:b,previewImageSrc:m,previewIsMarkdown:O,fetchArtifacts:l,openPreview:g,closePreview:i,removeArtifact:P,cleanExpired:c,downloadArtifact:M,formatSize:w,kindColor:x}}),H={__name:"Artifacts",setup(h,{expose:t}){t();const u=K(),e=[{title:"标题",key:"title",dataIndex:"title",ellipsis:!0},{title:"类型",key:"kind",dataIndex:"kind",width:110},{title:"MIME",dataIndex:"mime",width:160,ellipsis:!0},{title:"大小",key:"size",dataIndex:"size",width:90},{title:"发布时间",key:"createdAt",dataIndex:"createdAt",width:170},{title:"会话",dataIndex:"sessionId",width:160,ellipsis:!0},{title:"操作",key:"actions",width:150}],v=z(()=>u.kinds.map(i=>({label:i,value:i})));async function b(i){await u.removeArtifact(i)?S.success("已删除"):S.error("删除失败")}async function A(){const i=await u.cleanExpired();S.info(i>0?`清理了 ${i} 个过期交付物`:"没有过期交付物")}async function l(i){await u.downloadArtifact(i)||S.error("下载失败")}V(()=>{u.fetchArtifacts()}),D(()=>{u.closePreview()});const g={store:u,columns:e,kindOptions:v,onRemove:b,onClean:A,onDownload:l,computed:z,onBeforeUnmount:D,onMounted:V,get ReloadOutlined(){return q},get message(){return S},MarkdownRenderer:Q,get useArtifactsStore(){return K}};return Object.defineProperty(g,"__isScriptSetup",{enumerable:!1,value:!0}),g}},X={class:"page-header"},Y=["onClick"],Z=["src"],$={key:1,class:"preview-markdown"},ee={key:2,class:"preview-text"},te={class:"preview-meta"},ne={key:0};function ae(h,t,u,e,v,b){const A=k("a-select"),l=k("a-button"),g=k("a-popconfirm"),i=k("a-space"),m=k("a-tag"),O=k("a-table"),M=k("a-empty"),P=k("a-card");return d(),y("div",null,[_("div",X,[t[7]||(t[7]=_("div",null,[_("h2",{class:"page-title"},"交付物"),_("p",{class:"page-sub"}," agent 用 publish_artifact 发布的交付物(报告 / patch / 截图 / 日志),在这里预览与管理(cc artifacts 同源)。 ")],-1)),r(i,null,{default:o(()=>[r(A,{value:e.store.kindFilter,"onUpdate:value":t[0]||(t[0]=c=>e.store.kindFilter=c),style:{"min-width":"120px"},placeholder:"全部类型","allow-clear":"",options:e.kindOptions,onChange:t[1]||(t[1]=c=>e.store.fetchArtifacts())},null,8,["value","options"]),r(g,{title:"删除所有过期交付物?",onConfirm:e.onClean},{default:o(()=>[r(l,null,{default:o(()=>[...t[5]||(t[5]=[f("清理过期",-1)])]),_:1})]),_:1}),r(l,{ghost:"",loading:e.store.loading,onClick:t[2]||(t[2]=c=>e.store.fetchArtifacts())},{icon:o(()=>[r(e.ReloadOutlined)]),default:o(()=>[t[6]||(t[6]=f(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),r(O,{"data-source":e.store.artifacts,columns:e.columns,"row-key":"id",size:"small",pagination:{pageSize:10,hideOnSinglePage:!0}},{bodyCell:o(({column:c,record:w})=>[c.key==="title"?(d(),y("a",{key:0,onClick:x=>e.store.openPreview(w)},p(w.title),9,Y)):c.key==="kind"?(d(),R(m,{key:1,color:e.store.kindColor(w.kind)},{default:o(()=>[f(p(w.kind),1)]),_:2},1032,["color"])):c.key==="size"?(d(),y(j,{key:2},[f(p(e.store.formatSize(w.size)),1)],64)):c.key==="createdAt"?(d(),y(j,{key:3},[f(p((w.createdAt||"").replace("T"," ").slice(0,19)),1)],64)):c.key==="actions"?(d(),R(i,{key:4},{default:o(()=>[r(l,{size:"small",onClick:x=>e.store.openPreview(w)},{default:o(()=>[...t[8]||(t[8]=[f("预览",-1)])]),_:1},8,["onClick"]),r(l,{size:"small",onClick:x=>e.onDownload(w)},{default:o(()=>[...t[9]||(t[9]=[f("下载",-1)])]),_:1},8,["onClick"]),r(g,{title:"删除该交付物?",onConfirm:x=>e.onRemove(w.id)},{default:o(()=>[r(l,{size:"small",danger:""},{default:o(()=>[...t[10]||(t[10]=[f("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)):F("v-if",!0)]),_:1},8,["data-source"]),e.store.preview?(d(),R(P,{key:0,size:"small",class:"preview-card",loading:e.store.previewLoading},{title:o(()=>[r(i,null,{default:o(()=>[_("span",null,p(e.store.preview.entry?.title),1),r(m,{color:e.store.kindColor(e.store.preview.entry?.kind)},{default:o(()=>[f(p(e.store.preview.entry?.kind),1)]),_:1},8,["color"]),r(m,{color:"default"},{default:o(()=>[f(p(e.store.preview.entry?.mime),1)]),_:1}),e.store.preview.truncated?(d(),R(m,{key:0,color:"warning"},{default:o(()=>[...t[11]||(t[11]=[f("已截断预览",-1)])]),_:1})):F("v-if",!0)]),_:1})]),extra:o(()=>[r(i,null,{default:o(()=>[r(l,{size:"small",onClick:t[3]||(t[3]=c=>e.onDownload(e.store.preview.entry))},{default:o(()=>[...t[12]||(t[12]=[f("下载",-1)])]),_:1}),r(l,{size:"small",onClick:t[4]||(t[4]=c=>e.store.closePreview())},{default:o(()=>[...t[13]||(t[13]=[f("关闭",-1)])]),_:1})]),_:1})]),default:o(()=>[e.store.previewImageSrc?(d(),y("img",{key:0,src:e.store.previewImageSrc,class:"preview-image",alt:"artifact preview"},null,8,Z)):e.store.previewIsMarkdown?(d(),y("div",$,[r(e.MarkdownRenderer,{content:e.store.preview.content||""},null,8,["content"])])):e.store.preview.previewable?(d(),y("pre",ee,p(e.store.preview.content||"(空文件)"),1)):(d(),R(M,{key:3,description:e.store.preview.reason||"该类型不支持在线预览,可在本机用 cc artifacts open <id> 打开"},null,8,["description"])),_("div",te,[_("span",null,p(e.store.preview.entry?.id),1),e.store.preview.entry?.sessionId?(d(),y("span",ne," · session "+p(e.store.preview.entry.sessionId),1)):F("v-if",!0),_("span",null," · sha256 "+p((e.store.preview.entry?.sha256||"").slice(0,12))+"…",1)])]),_:1},8,["loading"])):F("v-if",!0)])}const de=W(H,[["render",ae],["__scopeId","data-v-c8b48f8c"],["__file","/tmp/cc-web-panel-oEI67F/repo/packages/web-panel/src/views/Artifacts.vue"]]);export{de as default};
@@ -1 +0,0 @@
1
- import{I as r,J as T,U as c,c as a,K as o,S as I,V as C,o as M,r as k,a as V,b as L,P as R,Q as d,R as m,F,Z as H}from"./vendor-Bn1JzzAn.js";import{_ as W,u as N,d as i}from"./index-Czx0FlX_.js";import{R as A}from"./icons-DG5UD-6K.js";function B(P){return["ask","agent"].map(t=>{const n=P?.readiness?.[t],e=n?.state==="admitted",f=n?.scope==="deployment-admission"&&n.runtimeVerification==="not_checked"&&Array.isArray(n.requiredCommands)&&n.requiredCommands.includes(t)&&(e?n.ready===!0&&n.taskReady===null:["not_configured","disabled","invalid","command_not_allowed"].includes(n.state)&&n.ready===!1&&n.taskReady===!1);return{command:t,state:f?n.state:"unknown",summary:f?e?"部署准入通过":"部署准入被阻断":"未提供准入诊断",detail:f&&typeof n.detail=="string"?n.detail:"当前 CLI 未提供可识别的部署准入诊断,请更新 CLI。",remediation:f&&typeof n.remediation=="string"?n.remediation:""}})}function U(P,t){for(const n of Object.keys(P))delete P[n];Object.assign(P,{source:"none",effectiveEnabled:!1,profileEnabled:!1,verified:!1,commands:[],readiness:null},t||{})}const J={__name:"EvolutionSettings",setup(P,{expose:t}){t();const n=N(),e=k(!1),f=k(!1),S=k(!1),p=k(!1),w=k(!1),g=k(""),_=k(""),E=k(""),v=V({source:"none",effectiveEnabled:!1,profileEnabled:!1,verified:!1,commands:[]}),x=L(()=>e.value||f.value||S.value||p.value||w.value),h=L(()=>B(v));function b(s){U(v,s),_.value=v.descriptorPath||"",E.value=v.trustRootPath||"",g.value=v.modulePath||g.value||""}async function u(s,z=3e4){return await n.waitConnected(8e3),(await n.sendRaw(s,z)).result}async function y(){e.value=!0;try{b(await u({type:"evolution.deployment.status"}))}catch(s){i.error("读取配置失败:"+s.message)}finally{e.value=!1}}async function O(){if(!_.value.trim()||!E.value.trim()){i.warning("请填写描述符和信任根公钥的绝对路径");return}f.value=!0;try{b(await u({type:"evolution.deployment.configure",descriptorPath:_.value.trim(),trustRootPath:E.value.trim()},6e4)),i.success("签名校验通过,配置已保存并启用;自动发布仍为 HOLD")}catch(s){i.error("配置失败:"+s.message)}finally{f.value=!1}}async function D(){if(!g.value.trim()){i.warning("请填写测试部署宿主模块的服务器绝对路径");return}p.value=!0;try{b(await u({type:"evolution.deployment.init-test",modulePath:g.value.trim()},6e4)),i.success("TEST 测试开发环境已生成并启用;禁止用于生产")}catch(s){i.error("生成测试环境失败:"+s.message)}finally{p.value=!1}}async function l(){if(!_.value.trim()||!E.value.trim()){i.warning("请填写正式描述符和正式信任根公钥的绝对路径");return}w.value=!0;try{b(await u({type:"evolution.deployment.replace-test",descriptorPath:_.value.trim(),trustRootPath:E.value.trim()},6e4)),i.success("测试根已安全轮换为正式受管证书;请重启 cc ui、IDE 或 Desktop 长驻进程后做正式验证")}catch(s){i.error("替换失败:"+s.message)}finally{w.value=!1}}async function q(){S.value=!0;try{b(await u({type:"evolution.deployment.set-enabled",enabled:!v.profileEnabled})),i.success(v.profileEnabled?"已启用":"已停用")}catch(s){i.error("更新失败:"+s.message)}finally{S.value=!1}}M(y);const j={ws:n,loading:e,saving:f,toggling:S,initializingTest:p,replacingTest:w,modulePath:g,descriptorPath:_,trustRootPath:E,status:v,busy:x,readinessRows:h,apply:b,request:u,loadStatus:y,save:O,initTest:D,replaceTest:l,toggle:q,computed:L,onMounted:M,reactive:V,ref:k,get ReloadOutlined(){return A},get message(){return i},get useWsStore(){return N},get deploymentReadinessRows(){return B},get replaceDeploymentStatus(){return U}};return Object.defineProperty(j,"__isScriptSetup",{enumerable:!1,value:!0}),j}},K={class:"page-head"},Q={class:"mono"},Z={class:"mono"},G={class:"admission-status","aria-live":"polite"},X=["data-admission-command"],Y={class:"mono"},$={key:0,class:"mono"};function ee(P,t,n,e,f,S){const p=r("a-button"),w=r("a-alert"),g=r("a-input"),_=r("a-form-item"),E=r("a-divider"),v=r("a-space"),x=r("a-form"),h=r("a-card"),b=r("a-col"),u=r("a-tag"),y=r("a-descriptions-item"),O=r("a-descriptions"),D=r("a-row");return R(),T("div",null,[c("div",K,[t[4]||(t[4]=c("div",null,[c("h2",{class:"page-title"},"Skill 自进化配置"),c("p",{class:"page-sub"},"统一配置受治理部署;CLI、IDE 插件与 cc ui 共享。")],-1)),a(p,{loading:e.loading,onClick:e.loadStatus},{icon:o(()=>[a(e.ReloadOutlined)]),default:o(()=>[t[3]||(t[3]=d("刷新 ",-1))]),_:1},8,["loading"])]),a(w,{message:"不会开启自动发布",description:"此开关只启用经过签名的 Skill 自进化运行时。候选项进入 active 前仍需人工审核,自动发布始终保持 HOLD。",type:"warning","show-icon":"",class:"notice"}),e.status.deploymentMode==="test"?(R(),I(w,{key:0,message:"当前为 TEST 测试开发环境",description:"本机自动生成的测试密钥不能用于生产。正式 descriptor 和 trust root 到位后,请使用下方“一键替换测试证书并转正式”。",type:"error","show-icon":"",class:"notice"})):C("v-if",!0),a(D,{gutter:16},{default:o(()=>[a(b,{xs:24,xl:15},{default:o(()=>[a(h,{title:"上线前测试与正式部署",class:"panel-card"},{default:o(()=>[a(x,{layout:"vertical"},{default:o(()=>[a(_,{label:"测试部署宿主模块"},{extra:o(()=>[...t[5]||(t[5]=[d("首次填写后点击一次即可生成 Ed25519 测试密钥、签名描述符并启用;宿主模块修改后再次点击可刷新。",-1)])]),default:o(()=>[a(g,{value:e.modulePath,"onUpdate:value":t[0]||(t[0]=l=>e.modulePath=l),disabled:e.busy,placeholder:"运行 cc ui 的机器上 deployment host .mjs/.js 的绝对路径"},null,8,["value","disabled"])]),_:1}),a(p,{type:"primary",loading:e.initializingTest,onClick:e.initTest},{default:o(()=>[...t[6]||(t[6]=[d("一键生成/刷新测试环境",-1)])]),_:1},8,["loading"]),a(E),a(_,{label:"签名部署描述符"},{extra:o(()=>[...t[7]||(t[7]=[d("Web 页面不能读取本机文件选择器,请填写运行 cc ui 的机器上的绝对路径。",-1)])]),default:o(()=>[a(g,{value:e.descriptorPath,"onUpdate:value":t[1]||(t[1]=l=>e.descriptorPath=l),disabled:e.busy,placeholder:"deployment descriptor JSON 的服务器绝对路径"},null,8,["value","disabled"])]),_:1}),a(_,{label:"Ed25519 信任根公钥"},{default:o(()=>[a(g,{value:e.trustRootPath,"onUpdate:value":t[2]||(t[2]=l=>e.trustRootPath=l),disabled:e.busy,placeholder:"信任根 public key 的服务器绝对路径"},null,8,["value","disabled"])]),_:1}),a(v,null,{default:o(()=>[a(p,{type:"primary",loading:e.saving,onClick:e.save},{default:o(()=>[...t[8]||(t[8]=[d("校验、保存并启用",-1)])]),_:1},8,["loading"]),a(p,{danger:e.status.profileEnabled,disabled:!e.status.descriptorPath,loading:e.toggling,onClick:e.toggle},{default:o(()=>[d(m(e.status.profileEnabled?"停用":"启用"),1)]),_:1},8,["danger","disabled","loading"]),e.status.deploymentMode==="test"?(R(),I(p,{key:0,loading:e.replacingTest,onClick:e.replaceTest},{default:o(()=>[...t[9]||(t[9]=[d("一键替换测试证书并转正式",-1)])]),_:1},8,["loading"])):C("v-if",!0)]),_:1})]),_:1})]),_:1})]),_:1}),a(b,{xs:24,xl:9},{default:o(()=>[a(h,{title:"治理状态",class:"panel-card status-card"},{default:o(()=>[a(O,{column:1,size:"small"},{default:o(()=>[a(y,{label:"部署模式"},{default:o(()=>[a(u,{color:e.status.deploymentMode==="test"?"red":"blue"},{default:o(()=>[d(m(e.status.deploymentMode==="test"?"TEST(仅限上线前联调)":e.status.deploymentMode||"none"),1)]),_:1},8,["color"])]),_:1}),a(y,{label:"生效状态"},{default:o(()=>[a(u,{color:e.status.effectiveEnabled?"green":"default"},{default:o(()=>[d(m(e.status.effectiveEnabled?"已启用":"未启用"),1)]),_:1},8,["color"])]),_:1}),a(y,{label:"生效来源"},{default:o(()=>[d(m(e.status.source||"none"),1)]),_:1}),a(y,{label:"签名校验"},{default:o(()=>[a(u,{color:e.status.verified?"green":"red"},{default:o(()=>[d(m(e.status.verified?"已通过":"未通过"),1)]),_:1},8,["color"])]),_:1}),a(y,{label:"自动发布"},{default:o(()=>[a(u,{color:"orange"},{default:o(()=>[...t[10]||(t[10]=[d("HOLD",-1)])]),_:1})]),_:1}),a(y,{label:"配置文件"},{default:o(()=>[c("span",Q,m(e.status.profilePath||"—"),1)]),_:1}),a(y,{label:"允许命令"},{default:o(()=>[c("span",Z,m((e.status.commands||[]).join(", ")||"—"),1)]),_:1})]),_:1}),c("section",G,[t[11]||(t[11]=c("h3",null,"模型命令部署准入",-1)),t[12]||(t[12]=c("p",null,"这里只检查部署准入,实际任务运行尚未验证。",-1)),(R(!0),T(F,null,H(e.readinessRows,l=>(R(),T("div",{key:l.command,"data-admission-command":l.command},[c("strong",null,m(l.command)+":"+m(l.summary),1),c("p",Y,m(l.detail),1),l.remediation?(R(),T("p",$,m(l.remediation),1)):C("v-if",!0)],8,X))),128))]),e.status.error?(R(),I(w,{key:0,message:e.status.error,type:"error","show-icon":"",class:"error"},null,8,["message"])):C("v-if",!0)]),_:1})]),_:1})]),_:1})])}const le=W(J,[["render",ee],["__scopeId","data-v-5a42105e"],["__file","/tmp/cc-web-panel-oEI67F/repo/packages/web-panel/src/views/EvolutionSettings.vue"]]);export{le 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-Bn1JzzAn.js";import{_ as v,b as m}from"./index-Czx0FlX_.js";import{a8 as y,M}from"./icons-DG5UD-6K.js";const B={__name:"MobileProjects",setup(p,{expose:i}){i();const c=u(),{t:e}=m();function a(){c.push("/projects")}function _(){c.push("/mobile-bridge")}const s={router:c,t:e,goToProjects:a,goToMobileBridge:_,get useRouter(){return u},get useI18n(){return m},get MobileOutlined(){return M},get FolderOutlined(){return y}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}},x={class:"mobile-projects-placeholder"},O={class:"title"},k={class:"subtitle"},w={class:"explainer"};function T(p,i,c,e,a,_){const s=n("a-alert"),d=n("a-button"),f=n("a-space"),P=n("a-empty"),j=n("a-card");return h(),g("div",x,[l(j,null,{default:r(()=>[l(P,{description:!1},{image:r(()=>[l(e.MobileOutlined,{style:{fontSize:"64px",color:"#bfbfbf"}})]),default:r(()=>[o("h2",O,t(e.t("mobileProjects.title")),1),o("p",k,t(e.t("mobileProjects.subtitle")),1),l(s,{message:e.t("mobileProjects.v02Banner"),type:"info","show-icon":"",class:"banner"},null,8,["message"]),o("div",w,[o("h3",null,t(e.t("mobileProjects.currentDirection")),1),o("p",null,t(e.t("mobileProjects.currentDirectionBody")),1),o("ul",null,[o("li",null,t(e.t("mobileProjects.stepPhone")),1),o("li",null,t(e.t("mobileProjects.stepTap")),1),o("li",null,t(e.t("mobileProjects.stepPull")),1)]),o("h3",null,t(e.t("mobileProjects.reverseDirection")),1),o("p",null,t(e.t("mobileProjects.reverseDirectionBody")),1)]),l(f,{class:"actions"},{default:r(()=>[l(d,{type:"primary",onClick:e.goToProjects},{default:r(()=>[l(e.FolderOutlined),b(" "+t(e.t("mobileProjects.viewLocalProjects")),1)]),_:1}),l(d,{onClick:e.goToMobileBridge},{default:r(()=>[l(e.MobileOutlined),b(" "+t(e.t("mobileProjects.checkBridge")),1)]),_:1})]),_:1})]),_:1})]),_:1})])}const F=v(B,[["render",T],["__scopeId","data-v-9262cc45"],["__file","/tmp/cc-web-panel-oEI67F/repo/packages/web-panel/src/views/MobileProjects.vue"]]);export{F as default};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-Czx0FlX_.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-BOI5kMGe.js";import{a0 as t}from"./index-Czx0FlX_.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-sv8vtjTZ.js";import"./useFlexGapSupport-BVNU1yiq.js";import"./styleChecker-Bb9iHj5r.js";import"./index-CqVXEx5l.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-Er2GMIwp.js";import{a0 as t}from"./index-Czx0FlX_.js";import"./vendor-Bn1JzzAn.js";import"./index-CqVXEx5l.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};