chainlesschain 0.166.62 → 0.166.63

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 (170) hide show
  1. package/README.md +38 -8
  2. package/package.json +3 -1
  3. package/src/assets/web-panel/assets/{AIOps-BqoRiuXE.js → AIOps-CfPrpABR.js} +1 -1
  4. package/src/assets/web-panel/assets/{ActionButton-BwBhyFIm.js → ActionButton-Bkv1erki.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-DTW03Emb.js → Analytics-fY_7epoU.js} +3 -3
  6. package/src/assets/web-panel/assets/{AppLayout-CI-wxMLQ.js → AppLayout-DegaN-aa.js} +4 -4
  7. package/src/assets/web-panel/assets/{Artifacts-DVqbM3iE.js → Artifacts-90-UNTVE.js} +1 -1
  8. package/src/assets/web-panel/assets/{Audit-DulhOs16.js → Audit-BRQ1F4sA.js} +1 -1
  9. package/src/assets/web-panel/assets/{BackgroundAgents-DnRs67e8.js → BackgroundAgents-Cb85uP7O.js} +1 -1
  10. package/src/assets/web-panel/assets/{Backup-BFEZo0vX.js → Backup-CrLBSWQK.js} +1 -1
  11. package/src/assets/web-panel/assets/{BaseInput-D185sBnp.js → BaseInput-DditUW5B.js} +1 -1
  12. package/src/assets/web-panel/assets/{Chat-DUvP-2SK.js → Chat-0XozleDQ.js} +6 -6
  13. package/src/assets/web-panel/assets/{ChatBubbleRenderer-u9WKQbZb.js → ChatBubbleRenderer-8QXBJvgy.js} +1 -1
  14. package/src/assets/web-panel/assets/{Checkbox-D8Zh_18b.js → Checkbox-C2Ck_3ju.js} +1 -1
  15. package/src/assets/web-panel/assets/{Codegen-WdiWRdfC.js → Codegen-Chjw-MS7.js} +1 -1
  16. package/src/assets/web-panel/assets/{Col-CnSoVpw6.js → Col-B_w8_Oka.js} +1 -1
  17. package/src/assets/web-panel/assets/{Community-BJDHgBkw.js → Community-XAqxPnXq.js} +1 -1
  18. package/src/assets/web-panel/assets/{Compact-uNRdmBaq.js → Compact-BX_3GJ3m.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compliance-_6jRTJa3.js → Compliance-DE3kIC9z.js} +1 -1
  20. package/src/assets/web-panel/assets/{Cowork-D5lnbXR6.js → Cowork-DPBYp1ey.js} +2 -2
  21. package/src/assets/web-panel/assets/{Cron-D6tuGBVg.js → Cron-D9cknqzn.js} +2 -2
  22. package/src/assets/web-panel/assets/{Crosschain-Ce5e9Lbm.js → Crosschain-BzHrGWY9.js} +1 -1
  23. package/src/assets/web-panel/assets/{DID-1VVKZ_c1.js → DID-BuD8TkZl.js} +2 -2
  24. package/src/assets/web-panel/assets/{Dashboard-DuHcZ13w.js → Dashboard-BbxMuZVK.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dropdown-BC3EK0wN.js → Dropdown-jq0ki-tE.js} +1 -1
  26. package/src/assets/web-panel/assets/{EmailListRenderer-DzLpGs5E.js → EmailListRenderer-RiMvINxT.js} +1 -1
  27. package/src/assets/web-panel/assets/{EvolutionSettings-x2XZHG0Z.js → EvolutionSettings-DE-URi9i.js} +1 -1
  28. package/src/assets/web-panel/assets/{FamilyGuardDashboard-nAavV50Y.js → FamilyGuardDashboard-DV3ao62-.js} +1 -1
  29. package/src/assets/web-panel/assets/{Federation-CCHWVS5J.js → Federation-BF6BmBPg.js} +1 -1
  30. package/src/assets/web-panel/assets/{FormItemContext-CGod_3Ni.js → FormItemContext-CKTX59j2.js} +1 -1
  31. package/src/assets/web-panel/assets/{GenericCardRenderer-DIFYQa2f.js → GenericCardRenderer-DZkH-CTs.js} +1 -1
  32. package/src/assets/web-panel/assets/{Git-DikM1Nc5.js → Git-B5JYb-w-.js} +2 -2
  33. package/src/assets/web-panel/assets/{Governance-SzzBXCDX.js → Governance-D3WfDZ6W.js} +1 -1
  34. package/src/assets/web-panel/assets/{Inference-wVsu9QzM.js → Inference-DoSvfDUk.js} +1 -1
  35. package/src/assets/web-panel/assets/{KnowledgeGraph-DDpVxfO-.js → KnowledgeGraph-DUDIzN97.js} +1 -1
  36. package/src/assets/web-panel/assets/{Logs-BnIjS-2Z.js → Logs-JfJerfFD.js} +2 -2
  37. package/src/assets/web-panel/assets/MarkdownRenderer-DXgA7cZm.js +1 -0
  38. package/src/assets/web-panel/assets/{Marketplace-Cj3PLhXV.js → Marketplace-BpVrOM_V.js} +1 -1
  39. package/src/assets/web-panel/assets/{McpTools-DMKO55Kz.js → McpTools-CFnQdiSv.js} +3 -3
  40. package/src/assets/web-panel/assets/{Memory-wWJl5yJL.js → Memory-Dxv81cNl.js} +2 -2
  41. package/src/assets/web-panel/assets/{MobileBridge-CJ_VIPgJ.js → MobileBridge-C92eX7PB.js} +1 -1
  42. package/src/assets/web-panel/assets/{MobileProjects-CiJT5cF8.js → MobileProjects-BUHw7Wox.js} +1 -1
  43. package/src/assets/web-panel/assets/{Mtc-BXmndm9a.js → Mtc-D-G9H4A1.js} +2 -2
  44. package/src/assets/web-panel/assets/{MtcAudit-C3hWIAnz.js → MtcAudit-CAEaEtAz.js} +2 -2
  45. package/src/assets/web-panel/assets/{Multisig-DU4OUQ7u.js → Multisig-Cx_-X9HD.js} +3 -3
  46. package/src/assets/web-panel/assets/{NLProgramming-CyAwOeU5.js → NLProgramming-DRIKG4Xy.js} +1 -1
  47. package/src/assets/web-panel/assets/{Notes--YvcAg13.js → Notes-CmL0vKUv.js} +3 -3
  48. package/src/assets/web-panel/assets/{NotificationSettings-Dyu6dC0D.js → NotificationSettings-D2cQ5aQn.js} +1 -1
  49. package/src/assets/web-panel/assets/{OrderTableRenderer-Df-0iTO2.js → OrderTableRenderer-CPfd7PNy.js} +1 -1
  50. package/src/assets/web-panel/assets/{Organization-a9Em4Sgu.js → Organization-EKqO46hz.js} +4 -4
  51. package/src/assets/web-panel/assets/{Overflow-CCQtvcsw.js → Overflow-BOHjBwJo.js} +1 -1
  52. package/src/assets/web-panel/assets/{P2P--CaB5e38.js → P2P-Dx4LdCE0.js} +2 -2
  53. package/src/assets/web-panel/assets/{PdhVaultBrowser-CmfHjoJG.js → PdhVaultBrowser-CgCt2xdT.js} +3 -3
  54. package/src/assets/web-panel/assets/{Permissions-BCDjNsXi.js → Permissions-DWjDeO7O.js} +4 -4
  55. package/src/assets/web-panel/assets/{PersonalDataHub-ByprqCJd.js → PersonalDataHub-Bx4Od8pG.js} +4 -4
  56. package/src/assets/web-panel/assets/{Pipeline-CZRZq-P0.js → Pipeline-oKxws_Ch.js} +1 -1
  57. package/src/assets/web-panel/assets/{Privacy-CeDay_dV.js → Privacy-Df1HVRKR.js} +1 -1
  58. package/src/assets/web-panel/assets/{ProjectInit-CgpIfRAZ.js → ProjectInit-BraLwZT4.js} +2 -2
  59. package/src/assets/web-panel/assets/{ProjectSettings-CU8iakEs.js → ProjectSettings-CKru54M0.js} +2 -2
  60. package/src/assets/web-panel/assets/{Projects-pPM0KRfQ.js → Projects-BEr7cJcS.js} +1 -1
  61. package/src/assets/web-panel/assets/{Providers-BfpxsZh1.js → Providers-C8v30DU3.js} +1 -1
  62. package/src/assets/web-panel/assets/{QrScannerModal-Dmv3rax1.js → QrScannerModal-CPyNV-O5.js} +1 -1
  63. package/src/assets/web-panel/assets/{QuickAsk-DBOtB5wd.js → QuickAsk-BLIew7A5.js} +1 -1
  64. package/src/assets/web-panel/assets/{Recommend-C_KnHRvS.js → Recommend-DVjWmsPs.js} +1 -1
  65. package/src/assets/web-panel/assets/{RemoteSession-OIO9kT7D.js → RemoteSession-B4PNTaEf.js} +3 -3
  66. package/src/assets/web-panel/assets/{Reputation-BCfNIBt3.js → Reputation-D5HOV6oI.js} +1 -1
  67. package/src/assets/web-panel/assets/{Row-pnhw7dyj.js → Row-DgCQom2M.js} +1 -1
  68. package/src/assets/web-panel/assets/{RssFeed-CLJ1A3FF.js → RssFeed-zvIcGHgz.js} +3 -3
  69. package/src/assets/web-panel/assets/{Search-CSQzJ3gj.js → Search-C-KbJP_z.js} +1 -1
  70. package/src/assets/web-panel/assets/{Security-CS_mvkaE.js → Security-CasnI-Ld.js} +4 -4
  71. package/src/assets/web-panel/assets/{Services-DBqA2Csq.js → Services-CR-pSlFv.js} +2 -2
  72. package/src/assets/web-panel/assets/{Skeleton-BjR3_iWH.js → Skeleton-BB5On1b5.js} +1 -1
  73. package/src/assets/web-panel/assets/{Skills-DwGIXRJS.js → Skills-CC-wdQi-.js} +1 -1
  74. package/src/assets/web-panel/assets/{Sla-DwiHHJtJ.js → Sla-CPX5QKEu.js} +1 -1
  75. package/src/assets/web-panel/assets/{SpeechSettings-QYN_t0CS.js → SpeechSettings-Bifkl6Zz.js} +1 -1
  76. package/src/assets/web-panel/assets/{SyncSettings-DcXA1Jp3.js → SyncSettings-CdUVeB-S.js} +2 -2
  77. package/src/assets/web-panel/assets/Tasks-BttwN3fs.js +1 -0
  78. package/src/assets/web-panel/assets/{Templates-C6MTuLXU.js → Templates-CBHNbpQ7.js} +1 -1
  79. package/src/assets/web-panel/assets/{Tenant-DmbdMB2D.js → Tenant-B90lEwSQ.js} +1 -1
  80. package/src/assets/web-panel/assets/{Terminal-DYeXnE4A.js → Terminal-u8KqitsA.js} +2 -2
  81. package/src/assets/web-panel/assets/{TimelineRenderer-BrwLhsSE.js → TimelineRenderer-CnEJMkJo.js} +1 -1
  82. package/src/assets/web-panel/assets/{Tokens-C5kKpRWj.js → Tokens-CTM2OOJ_.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trigger-C4Zyg1jj.js → Trigger-Ca8NmmgU.js} +1 -1
  84. package/src/assets/web-panel/assets/{Trust-D0mrY3kY.js → Trust-CI9GpUj2.js} +1 -1
  85. package/src/assets/web-panel/assets/{UkeySign-Bq5NMLLb.js → UkeySign-BlMLGqKK.js} +1 -1
  86. package/src/assets/web-panel/assets/{VideoEditing-OObS6euz.js → VideoEditing-C8yCZrH0.js} +1 -1
  87. package/src/assets/web-panel/assets/{Wallet-Die77ZAO.js → Wallet-BpuYrz8o.js} +4 -4
  88. package/src/assets/web-panel/assets/{WebAuthn-DFpqn0WO.js → WebAuthn-DFpNfLG_.js} +5 -5
  89. package/src/assets/web-panel/assets/{WorkflowEditor-BgKZiece.js → WorkflowEditor-BWhLoeU4.js} +1 -1
  90. package/src/assets/web-panel/assets/{chat-CbWtbRmr.js → chat-Dwo4LC7E.js} +1 -1
  91. package/src/assets/web-panel/assets/{colors-Zu_TgmpG.js → colors-DkdGvKBf.js} +1 -1
  92. package/src/assets/web-panel/assets/{compact-item-BqABAwA_.js → compact-item-1gI0lfs3.js} +1 -1
  93. package/src/assets/web-panel/assets/{createContext-DR6r1ykz.js → createContext-O9iHirtr.js} +1 -1
  94. package/src/assets/web-panel/assets/devWarning-axBqv361.js +1 -0
  95. package/src/assets/web-panel/assets/{hasIn-BNnYbjOt.js → hasIn-DY1jo9BQ.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-BbHnxChr.js → index-1AnBwAoM.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-P-0rrwu0.js → index-B-kbagPi.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-DxloCIDQ.js → index-B0TX-bLV.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-uwS83tsv.js → index-B5l7eb6E.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DuCixW1o.js → index-BDwV_V5g.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-BtQDpNFU.js → index-BgHG4f2K.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-DEdqCQKQ.js → index-BgVO1aXv.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-Ct4xnx2r.js → index-Bl6GfsQZ.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-ys7--3Ab.js → index-BmAK4o9I.js} +1 -1
  105. package/src/assets/web-panel/assets/{index--1t0mcMh.js → index-BsQkwBu2.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-BQHn6m4S.js → index-BumRAO-7.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-BvQB-LK5.js → index-Bx4MNNMY.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-GrGT2dft.js → index-C4c0XaiT.js} +1 -1
  109. package/src/assets/web-panel/assets/index-CAsOttsq.js +1 -0
  110. package/src/assets/web-panel/assets/{index-BQ1WFS4G.js → index-CBqSTwY9.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-CbJgVaoQ.js → index-D8fqsTHW.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-D08ytPR_.js → index-DCqPIE3G.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-CkBDWART.js → index-DNnaEzC5.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-CSNMSJAt.js → index-DTppQua6.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-DiaPl_6F.js → index-DfFzjnA0.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-DaKziwj_.js → index-DskEFn8M.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-CVgcq0cJ.js → index-DvRvwzc-.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-CuYLjMxX.js → index-DwBcFhcc.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-CR4uB9Mt.js → index-DwJBbK3Z.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-CpmSx_mp.js → index-DwhJqZqM.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-n62j7dTt.js → index-Dx51Am-0.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-B9qA3lcI.js → index-E5Ar6dNV.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BCyrVLzm.js → index-ETHEhWvI.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-CO9hQ7ri.js → index-KUrBWzIM.js} +1 -1
  125. package/src/assets/web-panel/assets/index-MgEKheCh.js +1 -0
  126. package/src/assets/web-panel/assets/{index-55eCb40A.js → index-YnGvCu0P.js} +3 -3
  127. package/src/assets/web-panel/assets/{index-CYgH1j85.js → index-hRtVittm.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-C912Wlyi.js → index-nXoV4OCZ.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-rS1lj7A9.js → index-qUbrqzvO.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-hZ41pakD.js → index-rIJqtLz-.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-CmGll9ri.js → index-rkkMl4Lb.js} +1 -1
  132. package/src/assets/web-panel/assets/{index--vigBXnN.js → index-tXjOuLZm.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-fvl4dSWm.js → index-zLOzCcxM.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-hWckjvz-.js → index-zPpssHXA.js} +1 -1
  135. package/src/assets/web-panel/assets/{initDefaultProps-BEtGYjIT.js → initDefaultProps-Du5HHTVt.js} +1 -1
  136. package/src/assets/web-panel/assets/{motion-Cvnft4fL.js → motion-D9mAVPKP.js} +1 -1
  137. package/src/assets/web-panel/assets/{move-CdxE_5Yl.js → move-DPO_sFtt.js} +1 -1
  138. package/src/assets/web-panel/assets/{mtc-parser-CS0l6IJn.js → mtc-parser-CnezVcXi.js} +1 -1
  139. package/src/assets/web-panel/assets/{omit-Bnji87sb.js → omit-DNpYMbet.js} +1 -1
  140. package/src/assets/web-panel/assets/{pickAttrs-BYdnEgN3.js → pickAttrs-BUFm_slL.js} +1 -1
  141. package/src/assets/web-panel/assets/{placementArrow-DYYd524z.js → placementArrow-DvwJtnzY.js} +1 -1
  142. package/src/assets/web-panel/assets/{responsiveObserve-BbIJIkXp.js → responsiveObserve-CUWOh_KI.js} +1 -1
  143. package/src/assets/web-panel/assets/{slide-BSvuvfUS.js → slide-bVHCUsdj.js} +1 -1
  144. package/src/assets/web-panel/assets/{statusUtils-DeLSt3js.js → statusUtils-FlOzOrxf.js} +1 -1
  145. package/src/assets/web-panel/assets/{styleChecker-DpJTPfyI.js → styleChecker-C6CFXutA.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFlexGapSupport-S7WdFQMU.js → useFlexGapSupport-BNGqO_E0.js} +1 -1
  147. package/src/assets/web-panel/assets/{useFs-CkfCBy52.js → useFs-DyKOrA27.js} +1 -1
  148. package/src/assets/web-panel/assets/{usePersonalDataHub-CA48p8Gt.js → usePersonalDataHub-DZAqeMAJ.js} +1 -1
  149. package/src/assets/web-panel/assets/{vnode-C9D1tq_L.js → vnode-Do7fVasi.js} +1 -1
  150. package/src/assets/web-panel/assets/{zoom-B0TG7YQI.js → zoom-DYkEmOT2.js} +1 -1
  151. package/src/assets/web-panel/index.html +1 -1
  152. package/src/data/changelog.json +13 -0
  153. package/src/lib/evolution/evolution-artifact-ports.js +3 -0
  154. package/src/lib/evolution/evolution-deployment-loader.js +125 -9
  155. package/src/lib/evolution/pm-exploration-budget-executor.js +346 -0
  156. package/src/lib/evolution/pm-exploration-business-grader.js +581 -0
  157. package/src/lib/evolution/pm-exploration-evidence-bundle.js +613 -0
  158. package/src/lib/evolution/pm-exploration-execution-host.js +946 -0
  159. package/src/lib/evolution/pm-exploration-ledger-adapter.js +210 -22
  160. package/src/lib/evolution/pm-exploration-provider-settlement-adapter.js +420 -0
  161. package/src/lib/evolution/pm-exploration-receipts.js +626 -0
  162. package/src/lib/evolution/pm-exploration-recovery-snapshot-store.js +521 -0
  163. package/src/lib/evolution/pm-exploration-rounds.js +12 -2
  164. package/src/lib/evolution/pm-exploration-transition-committer.js +541 -0
  165. package/src/lib/evolution/pm-exploration-volcengine-provider.js +724 -0
  166. package/src/assets/web-panel/assets/MarkdownRenderer-3AsRzie6.js +0 -1
  167. package/src/assets/web-panel/assets/Tasks-DwWqvoyB.js +0 -1
  168. package/src/assets/web-panel/assets/devWarning-CmMzSuk5.js +0 -1
  169. package/src/assets/web-panel/assets/index-Dw-oPGSM.js +0 -1
  170. package/src/assets/web-panel/assets/index-OXemaG8f.js +0 -1
@@ -1 +1 @@
1
- import{u as v}from"./index-55eCb40A.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-YnGvCu0P.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-55eCb40A.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-YnGvCu0P.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-55eCb40A.js";import{i as f}from"./motion-Cvnft4fL.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-YnGvCu0P.js";import{i as f}from"./motion-D9mAVPKP.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-55eCb40A.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-YnGvCu0P.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.63",
7
+ "cliVersions": ["0.166.63"],
8
+ "date": null,
9
+ "title": "",
10
+ "sections": [
11
+ {
12
+ "heading": "Added - cc CLI 0.166.63: RSIAgent governed evolution batches 9-23",
13
+ "body": "- Add the ninth through twenty-third RSIAgent evolution batches: budget\n executor, signed receipts, and execution host; Volcengine provider adapter\n with usage settlement and live probe; signed provider settlement and desktop\n deployment smoke test; standalone PM business grading with signed task\n binding; desktop read-only outcome reader with DB identity hardening and\n deployment wiring.\n- Seal failed states and gate tainted execution hosts, commit durable state\n transitions, recover an authenticated chain head on restart, and retain\n SQLite recovery snapshots bound to their migration for governed\n post-restart trust.\n- Align the VS Code and JetBrains plugin releases with the CLI and sync the\n platform release sites."
14
+ }
15
+ ]
16
+ },
4
17
  {
5
18
  "productVersion": null,
6
19
  "cliVersion": "0.166.62",
@@ -82,6 +82,7 @@ export const EVOLUTION_ARTIFACT_LEDGER_RETENTION_TYPES = Object.freeze([
82
82
  "evolution-ledger-v2-journal",
83
83
  "evolution-run-event",
84
84
  "pm-exploration-recovery-snapshot",
85
+ "pm-exploration-provider-settlement",
85
86
  "evolution-eval-child-evidence",
86
87
  "evolution-raw-deletion-receipt",
87
88
  "evolution-raw-deletion-tombstone",
@@ -139,6 +140,7 @@ export const EVOLUTION_ARTIFACT_TYPES = Object.freeze([
139
140
  "evaluation-result",
140
141
  "evolution-run-event",
141
142
  "pm-exploration-recovery-snapshot",
143
+ "pm-exploration-provider-settlement",
142
144
  "evolution-eval-child-evidence",
143
145
  "evolution-raw-deletion-receipt",
144
146
  "evolution-raw-deletion-tombstone",
@@ -393,6 +395,7 @@ const LEDGER_RETENTION_PURPOSES_BY_TYPE = new Map([
393
395
  ["wiki-pruning-retrieval-projection", new Set(["evolution-ledger"])],
394
396
  ["evolution-run-event", new Set(["evolution-ledger"])],
395
397
  ["pm-exploration-recovery-snapshot", new Set(["evolution-ledger"])],
398
+ ["pm-exploration-provider-settlement", new Set(["evolution-ledger"])],
396
399
  ["evolution-eval-child-evidence", new Set(["evolution-ledger"])],
397
400
  ["evolution-raw-deletion-receipt", new Set(["evolution-ledger"])],
398
401
  ["evolution-raw-deletion-tombstone", new Set(["evolution-ledger"])],
@@ -253,19 +253,103 @@ async function loadBuiltInFactories(commandName) {
253
253
  });
254
254
  }
255
255
  if (commandName === "desktop") {
256
- const [adapter, rounds, ledgerPorts, artifactPorts, ledgerBackend, store] =
257
- await Promise.all([
258
- import("./pm-exploration-ledger-adapter.js"),
259
- import("./pm-exploration-rounds.js"),
260
- import("./evolution-ledger-ports.js"),
261
- import("./evolution-artifact-ports.js"),
262
- import("./evolution-ledger-file-backend.js"),
263
- import("../artifact-store.js"),
264
- ]);
256
+ const [
257
+ adapter,
258
+ rounds,
259
+ receipts,
260
+ execution,
261
+ transitionCommitter,
262
+ recoverySnapshotStore,
263
+ evidence,
264
+ provider,
265
+ settlementAdapter,
266
+ businessGrader,
267
+ ledgerPorts,
268
+ artifactPorts,
269
+ ledgerBackend,
270
+ store,
271
+ ] = await Promise.all([
272
+ import("./pm-exploration-ledger-adapter.js"),
273
+ import("./pm-exploration-rounds.js"),
274
+ import("./pm-exploration-receipts.js"),
275
+ import("./pm-exploration-execution-host.js"),
276
+ import("./pm-exploration-transition-committer.js"),
277
+ import("./pm-exploration-recovery-snapshot-store.js"),
278
+ import("./pm-exploration-evidence-bundle.js"),
279
+ import("./pm-exploration-volcengine-provider.js"),
280
+ import("./pm-exploration-provider-settlement-adapter.js"),
281
+ import("./pm-exploration-business-grader.js"),
282
+ import("./evolution-ledger-ports.js"),
283
+ import("./evolution-artifact-ports.js"),
284
+ import("./evolution-ledger-file-backend.js"),
285
+ import("../artifact-store.js"),
286
+ ]);
265
287
  Object.assign(factories, {
266
288
  createPmExplorationLedgerAdapter: (options) =>
267
289
  new adapter.PmExplorationLedgerAdapter(options),
268
290
  createPmExplorationPlan: rounds.createPmExplorationPlan,
291
+ createPmExplorationJournal: rounds.createPmExplorationJournal,
292
+ enterPmExplorationDeepStage: rounds.enterPmExplorationDeepStage,
293
+ exportPmExplorationRecoverySnapshot:
294
+ rounds.exportPmExplorationRecoverySnapshot,
295
+ inspectPmExplorationJournal: rounds.inspectPmExplorationJournal,
296
+ createPmExplorationReceiptAuthority:
297
+ receipts.createPmExplorationReceiptAuthority,
298
+ createPmExplorationReceiptSigner:
299
+ receipts.createPmExplorationReceiptSigner,
300
+ getPmExplorationReceiptSignerAuthority:
301
+ receipts.getPmExplorationReceiptSignerAuthority,
302
+ inspectPmExplorationReceiptAuthority:
303
+ receipts.inspectPmExplorationReceiptAuthority,
304
+ createPmExplorationExecutionManifest:
305
+ execution.createPmExplorationExecutionManifest,
306
+ createPmExplorationRunner: execution.createPmExplorationRunner,
307
+ createPmExplorationGrader: execution.createPmExplorationGrader,
308
+ createPmExplorationMerger: execution.createPmExplorationMerger,
309
+ createPmExplorationEvaluator: execution.createPmExplorationEvaluator,
310
+ createPmExplorationExecutionHost:
311
+ execution.createPmExplorationExecutionHost,
312
+ isPmExplorationExecutionHost: execution.isPmExplorationExecutionHost,
313
+ inspectPmExplorationExecutionHost:
314
+ execution.inspectPmExplorationExecutionHost,
315
+ createPmExplorationTransitionCommitter:
316
+ transitionCommitter.createPmExplorationTransitionCommitter,
317
+ capturePmExplorationTransitionCommitter:
318
+ transitionCommitter.capturePmExplorationTransitionCommitter,
319
+ verifyPmExplorationTransitionEvidence:
320
+ transitionCommitter.verifyPmExplorationTransitionEvidence,
321
+ createPmExplorationRecoverySnapshotStore:
322
+ recoverySnapshotStore.createPmExplorationRecoverySnapshotStore,
323
+ capturePmExplorationRecoverySnapshotStore:
324
+ recoverySnapshotStore.capturePmExplorationRecoverySnapshotStore,
325
+ verifyPmExplorationRecoverySnapshotAck:
326
+ recoverySnapshotStore.verifyPmExplorationRecoverySnapshotAck,
327
+ executePmExplorationRound: execution.executePmExplorationRound,
328
+ mergePmExplorationBranches: execution.mergePmExplorationBranches,
329
+ evaluatePmExplorationMemory: execution.evaluatePmExplorationMemory,
330
+ createPmExplorationEvidenceBundle:
331
+ evidence.createPmExplorationEvidenceBundle,
332
+ verifyPmExplorationEvidenceBundle:
333
+ evidence.verifyPmExplorationEvidenceBundle,
334
+ createPmExplorationVolcengineProvider:
335
+ provider.createPmExplorationVolcengineProvider,
336
+ inspectPmExplorationVolcengineProvider:
337
+ provider.inspectPmExplorationVolcengineProvider,
338
+ invokePmExplorationVolcengine: provider.invokePmExplorationVolcengine,
339
+ verifyPmExplorationVolcengineSettlement:
340
+ provider.verifyPmExplorationVolcengineSettlement,
341
+ verifyPmExplorationVolcengineSettlementRecord:
342
+ provider.verifyPmExplorationVolcengineSettlementRecord,
343
+ createPmExplorationProviderSettlementAdapter: (options) =>
344
+ new settlementAdapter.PmExplorationProviderSettlementAdapter(options),
345
+ capturePmExplorationProviderSettlementStore:
346
+ settlementAdapter.capturePmExplorationProviderSettlementStore,
347
+ createPmExplorationReadOnlyOutcomeSource:
348
+ businessGrader.createPmExplorationReadOnlyOutcomeSource,
349
+ inspectPmExplorationReadOnlyOutcomeSource:
350
+ businessGrader.inspectPmExplorationReadOnlyOutcomeSource,
351
+ createPmExplorationBusinessGrader:
352
+ businessGrader.createPmExplorationBusinessGrader,
269
353
  createEvolutionLedgerDurableArtifactResolver:
270
354
  ledgerPorts.createEvolutionLedgerDurableArtifactResolver,
271
355
  createEvolutionArtifactPorts: (options) =>
@@ -568,6 +652,38 @@ function bindFactoriesToModule(factories, moduleDigest) {
568
652
  return factories[name](options);
569
653
  };
570
654
  }
655
+ for (const name of [
656
+ "createPmExplorationReceiptAuthority",
657
+ "createPmExplorationReceiptSigner",
658
+ "createPmExplorationProviderSettlementAdapter",
659
+ "createPmExplorationReadOnlyOutcomeSource",
660
+ ]) {
661
+ if (typeof factories[name] !== "function") continue;
662
+ result[name] = (options = {}) => {
663
+ const handlerArtifactDigest =
664
+ name === "createPmExplorationProviderSettlementAdapter"
665
+ ? options?.descriptor?.handlerArtifactDigest
666
+ : name === "createPmExplorationReadOnlyOutcomeSource"
667
+ ? options?.descriptor?.handlerArtifactDigest
668
+ : options?.handlerArtifactDigest;
669
+ if (handlerArtifactDigest !== moduleDigest)
670
+ throw new Error(
671
+ `${name} handlerArtifactDigest must equal the authenticated deployment module digest`,
672
+ );
673
+ return factories[name](options);
674
+ };
675
+ }
676
+ if (typeof factories.createPmExplorationExecutionManifest === "function") {
677
+ result.createPmExplorationExecutionManifest = (input = {}) => {
678
+ for (const authority of ["runner", "grader", "merger", "evaluator"]) {
679
+ if (input?.[authority]?.handlerArtifactDigest !== moduleDigest)
680
+ throw new Error(
681
+ `PM exploration ${authority} handlerArtifactDigest must equal the authenticated deployment module digest`,
682
+ );
683
+ }
684
+ return factories.createPmExplorationExecutionManifest(input);
685
+ };
686
+ }
571
687
  if (
572
688
  typeof factories.createWikiSkillBenchmarkExecutionManifest === "function"
573
689
  ) {
@@ -0,0 +1,346 @@
1
+ import { createHash } from "node:crypto";
2
+ import { performance } from "node:perf_hooks";
3
+ import { isProxy } from "node:util/types";
4
+
5
+ export const PM_EXPLORATION_BUDGET_OUTCOME_SCHEMA =
6
+ "chainlesschain.pm-exploration-budget-outcome/v1";
7
+
8
+ const TOOL_ID = /^[a-z][a-z0-9]*(?:[._:-][a-z0-9]+)*$/u;
9
+
10
+ function exact(value, keys, label) {
11
+ if (
12
+ !value ||
13
+ typeof value !== "object" ||
14
+ Array.isArray(value) ||
15
+ isProxy(value) ||
16
+ Object.getPrototypeOf(value) !== Object.prototype
17
+ ) {
18
+ throw new TypeError(`${label} must be a plain object`);
19
+ }
20
+ const actual = Reflect.ownKeys(value);
21
+ if (
22
+ actual.length !== keys.length ||
23
+ actual.some((key) => {
24
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
25
+ return (
26
+ typeof key !== "string" ||
27
+ !keys.includes(key) ||
28
+ !descriptor ||
29
+ !descriptor.enumerable ||
30
+ !("value" in descriptor)
31
+ );
32
+ })
33
+ ) {
34
+ throw new TypeError(`${label} has unexpected or accessor fields`);
35
+ }
36
+ }
37
+
38
+ function integer(value, label) {
39
+ if (!Number.isSafeInteger(value) || value < 0)
40
+ throw new TypeError(`${label} must be a non-negative safe integer`);
41
+ return value;
42
+ }
43
+
44
+ function copyJson(
45
+ value,
46
+ label,
47
+ context = { bytes: 0, nodes: 0, seen: new WeakSet() },
48
+ ) {
49
+ if (
50
+ value === null ||
51
+ typeof value === "string" ||
52
+ typeof value === "boolean"
53
+ ) {
54
+ context.bytes += Buffer.byteLength(JSON.stringify(value));
55
+ if (context.bytes > 1024 * 1024)
56
+ throw new TypeError(`${label} exceeds its byte bound`);
57
+ return value;
58
+ }
59
+ if (typeof value === "number" && Number.isFinite(value)) return value;
60
+ if (
61
+ !value ||
62
+ typeof value !== "object" ||
63
+ isProxy(value) ||
64
+ context.seen.has(value) ||
65
+ context.nodes >= 20_000
66
+ ) {
67
+ throw new TypeError(`${label} must be bounded acyclic JSON data`);
68
+ }
69
+ context.seen.add(value);
70
+ context.nodes += 1;
71
+ if (Array.isArray(value)) {
72
+ if (
73
+ Object.getPrototypeOf(value) !== Array.prototype ||
74
+ Reflect.ownKeys(value).length !== value.length + 1
75
+ ) {
76
+ throw new TypeError(`${label} must be a dense plain array`);
77
+ }
78
+ const result = [];
79
+ for (let index = 0; index < value.length; index += 1) {
80
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
81
+ if (!descriptor || !descriptor.enumerable || !("value" in descriptor))
82
+ throw new TypeError(`${label} contains a hole or accessor`);
83
+ result.push(copyJson(descriptor.value, label, context));
84
+ }
85
+ context.seen.delete(value);
86
+ return result;
87
+ }
88
+ if (Object.getPrototypeOf(value) !== Object.prototype)
89
+ throw new TypeError(`${label} must use the default object prototype`);
90
+ const result = {};
91
+ for (const key of Reflect.ownKeys(value)) {
92
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
93
+ if (
94
+ typeof key !== "string" ||
95
+ !descriptor ||
96
+ !descriptor.enumerable ||
97
+ !("value" in descriptor)
98
+ ) {
99
+ throw new TypeError(`${label} contains a symbol or accessor`);
100
+ }
101
+ context.bytes += Buffer.byteLength(key);
102
+ if (context.bytes > 1024 * 1024)
103
+ throw new TypeError(`${label} exceeds its byte bound`);
104
+ Object.defineProperty(result, key, {
105
+ value: copyJson(descriptor.value, label, context),
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ });
110
+ }
111
+ context.seen.delete(value);
112
+ return result;
113
+ }
114
+
115
+ function traceDigest(reason, failureClass) {
116
+ return `sha256:${createHash("sha256")
117
+ .update(PM_EXPLORATION_BUDGET_OUTCOME_SCHEMA)
118
+ .update("\0")
119
+ .update(reason)
120
+ .update("\0")
121
+ .update(failureClass)
122
+ .digest("hex")}`;
123
+ }
124
+
125
+ function abortReason(signal) {
126
+ const reason = signal?.reason;
127
+ if (reason instanceof PmExplorationBudgetError) return reason.reason;
128
+ return "parent-aborted";
129
+ }
130
+
131
+ export class PmExplorationBudgetError extends Error {
132
+ constructor(reason) {
133
+ super(`PM exploration execution stopped: ${reason}`);
134
+ this.name = "AbortError";
135
+ this.code = "CC_PM_EXPLORATION_BUDGET_EXHAUSTED";
136
+ this.reason = reason;
137
+ }
138
+ }
139
+
140
+ export async function executePmExplorationBudgetedOperation({
141
+ limits,
142
+ operation,
143
+ allowedToolIds = [],
144
+ invokeTool = null,
145
+ parentSignal = null,
146
+ now = performance.now.bind(performance),
147
+ setTimer = setTimeout,
148
+ clearTimer = clearTimeout,
149
+ } = {}) {
150
+ exact(
151
+ limits,
152
+ ["maxTokens", "maxToolCalls", "maxWallClockMs"],
153
+ "PM exploration budget limits",
154
+ );
155
+ const maximum = Object.freeze({
156
+ tokens: integer(limits.maxTokens, "maxTokens"),
157
+ toolCalls: integer(limits.maxToolCalls, "maxToolCalls"),
158
+ wallClockMs: integer(limits.maxWallClockMs, "maxWallClockMs"),
159
+ });
160
+ if (typeof operation !== "function" || isProxy(operation))
161
+ throw new TypeError(
162
+ "PM exploration budget operation must be a direct function",
163
+ );
164
+ if (
165
+ invokeTool !== null &&
166
+ (typeof invokeTool !== "function" || isProxy(invokeTool))
167
+ )
168
+ throw new TypeError("PM exploration tool broker must be a direct function");
169
+ if (!Array.isArray(allowedToolIds) || isProxy(allowedToolIds))
170
+ throw new TypeError("allowedToolIds must be an array");
171
+ const toolIds = new Set();
172
+ for (const toolId of allowedToolIds) {
173
+ if (
174
+ typeof toolId !== "string" ||
175
+ toolId.length > 256 ||
176
+ !TOOL_ID.test(toolId) ||
177
+ toolIds.has(toolId)
178
+ ) {
179
+ throw new TypeError("allowedToolIds contains an invalid or duplicate ID");
180
+ }
181
+ toolIds.add(toolId);
182
+ }
183
+ if (
184
+ (parentSignal !== null && !(parentSignal instanceof AbortSignal)) ||
185
+ typeof now !== "function" ||
186
+ typeof setTimer !== "function" ||
187
+ typeof clearTimer !== "function"
188
+ ) {
189
+ throw new TypeError(
190
+ "PM exploration budget runtime dependencies are invalid",
191
+ );
192
+ }
193
+
194
+ const controller = new AbortController();
195
+ const totals = { tokens: 0, toolCalls: 0 };
196
+ let activeTools = 0;
197
+ let closed = false;
198
+ let stoppedReason = null;
199
+ const startedAt = Number(now());
200
+ if (!Number.isFinite(startedAt))
201
+ throw new TypeError("PM exploration monotonic clock is invalid");
202
+
203
+ const stop = (reason) => {
204
+ if (stoppedReason === null) stoppedReason = reason;
205
+ if (!controller.signal.aborted)
206
+ controller.abort(new PmExplorationBudgetError(stoppedReason));
207
+ };
208
+ const assertOpen = () => {
209
+ if (closed) throw new Error("PM exploration budget runtime is closed");
210
+ if (controller.signal.aborted)
211
+ throw (
212
+ controller.signal.reason ?? new PmExplorationBudgetError(stoppedReason)
213
+ );
214
+ };
215
+
216
+ const runtime = Object.freeze({
217
+ signal: controller.signal,
218
+ recordTokens(count) {
219
+ assertOpen();
220
+ const delta = integer(count, "token count");
221
+ if (!Number.isSafeInteger(totals.tokens + delta))
222
+ throw new TypeError("token total exceeds the safe integer range");
223
+ totals.tokens += delta;
224
+ if (totals.tokens > maximum.tokens) {
225
+ stop("max-tokens");
226
+ throw controller.signal.reason;
227
+ }
228
+ return totals.tokens;
229
+ },
230
+ async invokeTool(toolId, input) {
231
+ assertOpen();
232
+ if (!toolIds.has(toolId)) {
233
+ stop("tool-not-allowed");
234
+ throw controller.signal.reason;
235
+ }
236
+ totals.toolCalls += 1;
237
+ if (totals.toolCalls > maximum.toolCalls) {
238
+ stop("max-tool-calls");
239
+ throw controller.signal.reason;
240
+ }
241
+ if (invokeTool === null) {
242
+ stop("tool-broker-unavailable");
243
+ throw controller.signal.reason;
244
+ }
245
+ const safeInput = copyJson(input, "tool input");
246
+ activeTools += 1;
247
+ try {
248
+ const output = await invokeTool(
249
+ Object.freeze({
250
+ toolId,
251
+ input: safeInput,
252
+ signal: controller.signal,
253
+ }),
254
+ );
255
+ assertOpen();
256
+ return copyJson(output, "tool output");
257
+ } finally {
258
+ activeTools -= 1;
259
+ }
260
+ },
261
+ snapshot() {
262
+ const current = Number(now());
263
+ if (!Number.isFinite(current) || current < startedAt)
264
+ throw new TypeError("PM exploration monotonic clock moved backwards");
265
+ return Object.freeze({
266
+ tokens: totals.tokens,
267
+ toolCalls: totals.toolCalls,
268
+ wallClockMs: Math.ceil(current - startedAt),
269
+ });
270
+ },
271
+ });
272
+
273
+ const parentAbort = () => stop(abortReason(parentSignal));
274
+ if (parentSignal) {
275
+ if (parentSignal.aborted) parentAbort();
276
+ else parentSignal.addEventListener("abort", parentAbort, { once: true });
277
+ }
278
+ if (maximum.wallClockMs === 0) stop("max-wall-clock-ms");
279
+
280
+ let timer = null;
281
+ const timeout = new Promise((resolve) => {
282
+ timer = setTimer(() => {
283
+ stop("max-wall-clock-ms");
284
+ resolve(Object.freeze({ kind: "stopped" }));
285
+ }, maximum.wallClockMs);
286
+ });
287
+ const attempted = Promise.resolve()
288
+ .then(() => {
289
+ if (controller.signal.aborted)
290
+ throw (
291
+ controller.signal.reason ??
292
+ new PmExplorationBudgetError(stoppedReason)
293
+ );
294
+ return operation(runtime);
295
+ })
296
+ .then(
297
+ (value) => Object.freeze({ kind: "value", value }),
298
+ () => Object.freeze({ kind: "error" }),
299
+ );
300
+ const winner = controller.signal.aborted
301
+ ? Object.freeze({ kind: "stopped" })
302
+ : await Promise.race([attempted, timeout]);
303
+
304
+ if (timer !== null) clearTimer(timer);
305
+ if (parentSignal && !parentSignal.aborted)
306
+ parentSignal.removeEventListener("abort", parentAbort);
307
+ let current = Number(now());
308
+ if (!Number.isFinite(current) || current < startedAt) current = startedAt;
309
+ const wallClockMs = Math.ceil(current - startedAt);
310
+ if (wallClockMs > maximum.wallClockMs) stop("max-wall-clock-ms");
311
+ if (activeTools !== 0) stop("unsettled-tools");
312
+ closed = true;
313
+
314
+ const metrics = Object.freeze({
315
+ tokens: totals.tokens,
316
+ toolCalls: totals.toolCalls,
317
+ wallClockMs,
318
+ });
319
+ let status;
320
+ let failureClass;
321
+ let reason;
322
+ let value = null;
323
+ if (stoppedReason !== null || winner.kind === "stopped") {
324
+ status = "aborted";
325
+ reason = stoppedReason ?? "parent-aborted";
326
+ failureClass = reason.startsWith("max-") ? "budget" : "sandbox";
327
+ } else if (winner.kind === "error") {
328
+ status = "failed";
329
+ reason = "operation-failed";
330
+ failureClass = "infrastructure";
331
+ } else {
332
+ status = "succeeded";
333
+ reason = "completed";
334
+ failureClass = "none";
335
+ value = winner.value;
336
+ }
337
+ return Object.freeze({
338
+ schema: PM_EXPLORATION_BUDGET_OUTCOME_SCHEMA,
339
+ status,
340
+ failureClass,
341
+ reason,
342
+ metrics,
343
+ traceDigest: traceDigest(reason, failureClass),
344
+ value,
345
+ });
346
+ }