chainlesschain 0.166.115 → 0.166.118

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 (207) hide show
  1. package/README.md +43 -5
  2. package/package.json +4 -4
  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/.build-hash +1 -1
  6. package/src/assets/web-panel/assets/{AIOps-BsoSoDNb.js → AIOps-BGySwMIP.js} +1 -1
  7. package/src/assets/web-panel/assets/{ActionButton-Dcx7Gm5t.js → ActionButton-Chn7fBLr.js} +1 -1
  8. package/src/assets/web-panel/assets/{Analytics-S1hsBIz3.js → Analytics-ORH7UkGa.js} +3 -3
  9. package/src/assets/web-panel/assets/{AppLayout-B2j067qM.js → AppLayout-8xV4jWjP.js} +5 -5
  10. package/src/assets/web-panel/assets/{Artifacts-D5iGV9ic.js → Artifacts-26SBK-x-.js} +1 -1
  11. package/src/assets/web-panel/assets/{Audit-C8ChVvXu.js → Audit-CtXpqbXg.js} +1 -1
  12. package/src/assets/web-panel/assets/{BackgroundAgents-Cg97AAJS.js → BackgroundAgents-C5zLvQis.js} +1 -1
  13. package/src/assets/web-panel/assets/{Backup-CyxU9IUg.js → Backup-C93xY4vO.js} +1 -1
  14. package/src/assets/web-panel/assets/{BaseInput-CKlWjA8I.js → BaseInput-DpVCHfAn.js} +1 -1
  15. package/src/assets/web-panel/assets/{Chat-C-EqZza6.js → Chat-DM0LblR2.js} +5 -5
  16. package/src/assets/web-panel/assets/{ChatBubbleRenderer-BRFiXKPX.js → ChatBubbleRenderer-unlQUF1T.js} +1 -1
  17. package/src/assets/web-panel/assets/{Checkbox-kkI13tSJ.js → Checkbox-BsAt3cKR.js} +1 -1
  18. package/src/assets/web-panel/assets/{Codegen-NlqEDwHK.js → Codegen-E_kp4KFd.js} +1 -1
  19. package/src/assets/web-panel/assets/{Col-CfepEu79.js → Col-6msR3T6I.js} +1 -1
  20. package/src/assets/web-panel/assets/{Community-BRo0qLXM.js → Community-PyX9c5D-.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compact-BMu8TP0E.js → Compact-7G1bVDSH.js} +1 -1
  22. package/src/assets/web-panel/assets/{Compliance-B7Q3Moef.js → Compliance-DcHN7GlD.js} +1 -1
  23. package/src/assets/web-panel/assets/{Cowork-BVwt7Xmc.js → Cowork-WUIHJYDx.js} +3 -3
  24. package/src/assets/web-panel/assets/{Cron-CgBv20Qy.js → Cron-CWgCbptg.js} +2 -2
  25. package/src/assets/web-panel/assets/{Crosschain-CwcSBJk2.js → Crosschain-BzKZ6roD.js} +1 -1
  26. package/src/assets/web-panel/assets/{DID-d20rCiIm.js → DID-r7zxeItn.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dashboard-PpZaUYpS.js → Dashboard-D3pBiN2H.js} +2 -2
  28. package/src/assets/web-panel/assets/{Dropdown-DjsLdX_Z.js → Dropdown-C4otRJlZ.js} +1 -1
  29. package/src/assets/web-panel/assets/{EmailListRenderer-CaPkrtxn.js → EmailListRenderer-CzDTC8lm.js} +1 -1
  30. package/src/assets/web-panel/assets/{EvolutionSettings-DDY8cQnE.js → EvolutionSettings-DGkXiIs-.js} +1 -1
  31. package/src/assets/web-panel/assets/{FamilyGuardDashboard-VQavMjyj.js → FamilyGuardDashboard-BKdEyuiR.js} +1 -1
  32. package/src/assets/web-panel/assets/{Federation-D0GvKQgI.js → Federation-dsI-xcpf.js} +1 -1
  33. package/src/assets/web-panel/assets/{FormItemContext-Dl_TWHmb.js → FormItemContext-CEEb1fMR.js} +1 -1
  34. package/src/assets/web-panel/assets/{GenericCardRenderer-Bny2uagG.js → GenericCardRenderer-D_mfO3Ts.js} +1 -1
  35. package/src/assets/web-panel/assets/{Git-B01KXq47.js → Git-CBwr2ZI3.js} +2 -2
  36. package/src/assets/web-panel/assets/{Governance-F4c4Vwo1.js → Governance-D-Wy2Jjr.js} +1 -1
  37. package/src/assets/web-panel/assets/{Inference-_025Q-8K.js → Inference-B4Yk_IRx.js} +1 -1
  38. package/src/assets/web-panel/assets/{KnowledgeGraph-DwbTmQb1.js → KnowledgeGraph-DoI7bi6m.js} +1 -1
  39. package/src/assets/web-panel/assets/{Logs-CnNo0hCm.js → Logs-Ce1IiKAj.js} +2 -2
  40. package/src/assets/web-panel/assets/MarkdownRenderer-GND_8y0V.js +1 -0
  41. package/src/assets/web-panel/assets/{Marketplace-Dkz5bv7F.js → Marketplace-CsIEByzK.js} +1 -1
  42. package/src/assets/web-panel/assets/{McpTools-CBtRwDW_.js → McpTools-_DRzjcIn.js} +3 -3
  43. package/src/assets/web-panel/assets/{Memory-Y9jnyTb7.js → Memory-zvLpyi__.js} +2 -2
  44. package/src/assets/web-panel/assets/{MobileBridge-Br1urkOz.js → MobileBridge-DXd1ik2Z.js} +1 -1
  45. package/src/assets/web-panel/assets/{MobileProjects-DnsyuerX.js → MobileProjects-DKh2q-Y9.js} +1 -1
  46. package/src/assets/web-panel/assets/{Mtc-he3ZzieF.js → Mtc-Ct-fhtIx.js} +4 -4
  47. package/src/assets/web-panel/assets/{MtcAudit-BadphAuN.js → MtcAudit-J4zY3Oqk.js} +2 -2
  48. package/src/assets/web-panel/assets/{Multisig-3_pVLymK.js → Multisig-B2HJMCKe.js} +3 -3
  49. package/src/assets/web-panel/assets/{NLProgramming-DmtmHfsI.js → NLProgramming-CwcSmU4q.js} +1 -1
  50. package/src/assets/web-panel/assets/{Notes-CE4L2O55.js → Notes-Da53L6wb.js} +4 -4
  51. package/src/assets/web-panel/assets/{NotificationSettings-B7QmfJn9.js → NotificationSettings-BxhufdrA.js} +1 -1
  52. package/src/assets/web-panel/assets/{OrderTableRenderer-O0wRSyJ0.js → OrderTableRenderer-BoFwohAi.js} +1 -1
  53. package/src/assets/web-panel/assets/{Organization-BrlMSsyT.js → Organization-MIsMrUes.js} +4 -4
  54. package/src/assets/web-panel/assets/{Overflow-CY4ULPrZ.js → Overflow-Dy2P4v3q.js} +1 -1
  55. package/src/assets/web-panel/assets/{P2P-kIANZYKd.js → P2P-CD9Sxn2y.js} +2 -2
  56. package/src/assets/web-panel/assets/{PdhVaultBrowser-DEgB4rvF.js → PdhVaultBrowser-BvBWgfG0.js} +5 -5
  57. package/src/assets/web-panel/assets/{Permissions-CWxywRp5.js → Permissions-CwOlDRis.js} +4 -4
  58. package/src/assets/web-panel/assets/{PersonalDataHub-DAg7iCbr.js → PersonalDataHub-CZYaxEpv.js} +4 -4
  59. package/src/assets/web-panel/assets/{Pipeline-Brc6ONnR.js → Pipeline-kLU7PUbB.js} +1 -1
  60. package/src/assets/web-panel/assets/{Privacy-CcinYTL8.js → Privacy-BVRycSiI.js} +1 -1
  61. package/src/assets/web-panel/assets/{ProjectInit-Bz8XEsom.js → ProjectInit-DP3pr7uJ.js} +2 -2
  62. package/src/assets/web-panel/assets/{ProjectSettings-CsOMlSTZ.js → ProjectSettings-CACaDYjs.js} +2 -2
  63. package/src/assets/web-panel/assets/Projects-CB1k4zTC.js +1 -0
  64. package/src/assets/web-panel/assets/{Providers-CeunOQiH.js → Providers-D7Y9WHRE.js} +1 -1
  65. package/src/assets/web-panel/assets/{QrScannerModal-CN2a2_Fb.js → QrScannerModal-CeP8xzs1.js} +1 -1
  66. package/src/assets/web-panel/assets/{QuickAsk-CVeLif3e.js → QuickAsk-iJVFrhZ2.js} +1 -1
  67. package/src/assets/web-panel/assets/{Recommend-1k9WOEGM.js → Recommend-DmTpnagw.js} +1 -1
  68. package/src/assets/web-panel/assets/{RemoteSession-Q8UCqIMw.js → RemoteSession-C6ek8Uni.js} +2 -2
  69. package/src/assets/web-panel/assets/{Reputation-CkrCgXKM.js → Reputation-CPfwc9de.js} +1 -1
  70. package/src/assets/web-panel/assets/{Row-JFdvuTzi.js → Row-C1wwtSMJ.js} +1 -1
  71. package/src/assets/web-panel/assets/{RssFeed-C74JHCmk.js → RssFeed-BiDJsqaH.js} +3 -3
  72. package/src/assets/web-panel/assets/{Search-DrJiVO1T.js → Search-BF6Aon95.js} +1 -1
  73. package/src/assets/web-panel/assets/{Security-BJzNlSJq.js → Security-Bps0XnV4.js} +3 -3
  74. package/src/assets/web-panel/assets/{Services-D4TLMnJm.js → Services-uf92smGR.js} +2 -2
  75. package/src/assets/web-panel/assets/{Skeleton-cswTDqhh.js → Skeleton-DQd4eVWW.js} +1 -1
  76. package/src/assets/web-panel/assets/{Skills-Bv0rM1BS.js → Skills-DgamiYa5.js} +1 -1
  77. package/src/assets/web-panel/assets/{Sla-D9rE7hNh.js → Sla-CF1IVIrm.js} +1 -1
  78. package/src/assets/web-panel/assets/SpeechSettings-Bzxmjbpc.js +1 -0
  79. package/src/assets/web-panel/assets/{SyncSettings-BwnMG8kq.js → SyncSettings-B8zKauiq.js} +2 -2
  80. package/src/assets/web-panel/assets/{Tasks-wJvU24cB.js → Tasks-DPKV_xSt.js} +1 -1
  81. package/src/assets/web-panel/assets/{Templates-CZbRU3tN.js → Templates-BikeSZIF.js} +1 -1
  82. package/src/assets/web-panel/assets/{Tenant-_jbpFJPZ.js → Tenant-CEaUaDkJ.js} +1 -1
  83. package/src/assets/web-panel/assets/{Terminal-BzNm5WKZ.js → Terminal-ZPgOSQ_q.js} +3 -3
  84. package/src/assets/web-panel/assets/{TimelineRenderer-bmybWjuS.js → TimelineRenderer-DmyB4Udk.js} +1 -1
  85. package/src/assets/web-panel/assets/{Tokens-o1WDcqVQ.js → Tokens-g85Pm5TO.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trigger-BB1D6sIB.js → Trigger-D202hx9a.js} +1 -1
  87. package/src/assets/web-panel/assets/{Trust-CLxdCfy2.js → Trust-DzvQYVFy.js} +1 -1
  88. package/src/assets/web-panel/assets/{UkeySign-B9LS6vS0.js → UkeySign-KRzwddVg.js} +1 -1
  89. package/src/assets/web-panel/assets/{VideoEditing-Bg0-wxjz.js → VideoEditing-IRBXLO2z.js} +1 -1
  90. package/src/assets/web-panel/assets/{Wallet-Bw0G2F6P.js → Wallet-DSf5KPgQ.js} +4 -4
  91. package/src/assets/web-panel/assets/{WebAuthn-irEiNY9b.js → WebAuthn-DNPxLTCc.js} +5 -5
  92. package/src/assets/web-panel/assets/{WorkflowEditor-Bh08FbJs.js → WorkflowEditor-C3wAtVcK.js} +1 -1
  93. package/src/assets/web-panel/assets/{addon-fit-CK6X9sAG.js → addon-fit-CbkjSUJl.js} +1 -1
  94. package/src/assets/web-panel/assets/{chat-De-FPjVT.js → chat-q3XXUtv2.js} +1 -1
  95. package/src/assets/web-panel/assets/{colors-ygdyvinU.js → colors-CF54SNei.js} +1 -1
  96. package/src/assets/web-panel/assets/{compact-item-BQ9jH9KV.js → compact-item-BaRkvZuT.js} +1 -1
  97. package/src/assets/web-panel/assets/{createContext-BFuVSyox.js → createContext-CDR9hsfs.js} +1 -1
  98. package/src/assets/web-panel/assets/devWarning-1LO-NplX.js +1 -0
  99. package/src/assets/web-panel/assets/{hasIn-i19GtR1P.js → hasIn-DlC--S8R.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DS1IwwGL.js → index-B0Ptc7yu.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-B1IsP_JO.js → index-B0V9rgdu.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-CWfgeaG4.js → index-BEiUlFKb.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-DTY20pWu.js → index-BJO0n1LQ.js} +1 -1
  104. package/src/assets/web-panel/assets/index-BLaJsev4.js +1 -0
  105. package/src/assets/web-panel/assets/index-BLmviChG.js +1 -0
  106. package/src/assets/web-panel/assets/{index-IXkif6J_.js → index-BU5DJqk7.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-BVhtukYX.js → index-BY-Tf3OM.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-BKlU5VZy.js → index-BZrE0Go8.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-Bw5pTpnI.js → index-BizdX2X5.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-BGMxK155.js → index-C87Yr3h1.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-DVnFgasM.js → index-C9Wypz9e.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-C61w3omz.js → index-CAoG_E-q.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-l5-J0jHx.js → index-CAxSyMrF.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-28DjsABm.js → index-CC5HjNM6.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-BPUCvc8i.js → index-CNZQEZ9g.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CpdXhhMY.js → index-CPvIhha6.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-DAboGZTw.js → index-CR_wqMGy.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-DL7ewjD2.js → index-CSClXoB3.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-Bhf-MuUh.js → index-CZ8azVgB.js} +3 -3
  120. package/src/assets/web-panel/assets/{index-BaaydJcC.js → index-Ccc5z8eJ.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-B2LieObB.js → index-CeiKbM3a.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-We2nK3ju.js → index-Cl6av3X7.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-m8waSAyv.js → index-CtGfeD7E.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-cDJsyAkI.js → index-Ctid12Gq.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-DlwxUZQL.js → index-D0H-N0uG.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-BBYiCI1d.js → index-D0vIgprF.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-_9tUBcLm.js → index-D4wUDFRg.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-4HoFz1MA.js → index-DJFipyK7.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-Cq9k4-Ws.js → index-DX2REKNp.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-DuuOX5u3.js → index-Dc3gD0cw.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-DgjLaB7k.js → index-DiQzer2R.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-CMNjaSir.js → index-DntKLOs9.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-vXtH3o6O.js → index-Dplhl6gh.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-BLMtCKAY.js → index-Dq8q_PWB.js} +1 -1
  135. package/src/assets/web-panel/assets/{index-CXrk8OYO.js → index-IVQdOBNN.js} +1 -1
  136. package/src/assets/web-panel/assets/{index-CBVcGaxk.js → index-Kerduyao.js} +1 -1
  137. package/src/assets/web-panel/assets/{index-BKblSCL9.js → index-W6cLGjpW.js} +1 -1
  138. package/src/assets/web-panel/assets/{index-CgoSgmjK.js → index-qZDNFll9.js} +1 -1
  139. package/src/assets/web-panel/assets/{initDefaultProps-B_EZHeqN.js → initDefaultProps-Ccz7v71u.js} +1 -1
  140. package/src/assets/web-panel/assets/{markdown-Yo_c6Krv.js → markdown-Bq2x0XsR.js} +1 -1
  141. package/src/assets/web-panel/assets/markdown-DUKxbhE4.js +51 -0
  142. package/src/assets/web-panel/assets/{motion-BrVb_Gy1.js → motion-BlCLpVDp.js} +1 -1
  143. package/src/assets/web-panel/assets/{move-CKxVRL_J.js → move-B80G7fLU.js} +1 -1
  144. package/src/assets/web-panel/assets/{mtc-parser-C80rvQ1J.js → mtc-parser-Djw08NJh.js} +1 -1
  145. package/src/assets/web-panel/assets/{omit-De5vD7BR.js → omit-Bg_G1eUr.js} +1 -1
  146. package/src/assets/web-panel/assets/{pickAttrs-BTyEDjth.js → pickAttrs-Df9zYUg2.js} +1 -1
  147. package/src/assets/web-panel/assets/{placementArrow-BWR94AjR.js → placementArrow-DjCDLhJ4.js} +1 -1
  148. package/src/assets/web-panel/assets/{responsiveObserve-1g-Vnibk.js → responsiveObserve--Naz7NgY.js} +1 -1
  149. package/src/assets/web-panel/assets/{slide-Dmg6dYuF.js → slide-CHn3ald-.js} +1 -1
  150. package/src/assets/web-panel/assets/{statusUtils-Ddj6rSab.js → statusUtils-BiGwoIK_.js} +1 -1
  151. package/src/assets/web-panel/assets/{styleChecker-DyP1mPDf.js → styleChecker-Zf2dQx1j.js} +1 -1
  152. package/src/assets/web-panel/assets/{useFlexGapSupport-D3d_0YuY.js → useFlexGapSupport-sLES8nyD.js} +1 -1
  153. package/src/assets/web-panel/assets/{useFs-M3vq-gE2.js → useFs-DV1Hl4qu.js} +1 -1
  154. package/src/assets/web-panel/assets/{usePersonalDataHub-GtP2TgtK.js → usePersonalDataHub-CZXr2Qxg.js} +1 -1
  155. package/src/assets/web-panel/assets/{vnode-BurE2ATQ.js → vnode-e8Eo3Oyl.js} +1 -1
  156. package/src/assets/web-panel/assets/{xterm-BZcWGsqw.js → xterm-zbskxxGA.js} +1 -1
  157. package/src/assets/web-panel/assets/{zoom-Ch-ViiDe.js → zoom-B8A6xKMF.js} +1 -1
  158. package/src/assets/web-panel/index.html +1 -1
  159. package/src/commands/compact.js +7 -2
  160. package/src/data/changelog.json +27 -1
  161. package/src/harness/jsonl-session-store.js +80 -74
  162. package/src/harness/prompt-compressor.js +57 -3
  163. package/src/lib/artifact-store.js +129 -20
  164. package/src/lib/bounded-artifact-file-read.js +128 -46
  165. package/src/lib/context-memory-kernel/context-image-transport.js +248 -0
  166. package/src/lib/context-memory-kernel/jsonl-session-context-port.js +4 -1
  167. package/src/lib/context-memory-kernel/live-compaction.js +40 -10
  168. package/src/lib/context-memory-kernel/message-adapter.js +80 -10
  169. package/src/lib/context-memory-kernel/message-bundle-store.js +1140 -0
  170. package/src/lib/context-memory-kernel/provider-context.js +23 -8
  171. package/src/lib/evolution/agent-evolution-ingress.js +103 -19
  172. package/src/lib/evolution/agent-evolution-runtime-composition.js +65 -27
  173. package/src/lib/evolution/agent-model-projection.js +90 -18
  174. package/src/lib/evolution/evidence-json-text.js +341 -42
  175. package/src/lib/evolution/evolution-artifact-ports.js +1005 -83
  176. package/src/lib/evolution/evolution-evidence-artifact-adapter.js +59 -15
  177. package/src/lib/evolution/evolution-evidence-projector.js +153 -16
  178. package/src/lib/evolution/evolution-evidence-storage-layout.js +115 -0
  179. package/src/lib/evolution/evolution-file-witness.js +7 -3
  180. package/src/lib/evolution/evolution-ledger-file-manifest-catalog.js +6 -2
  181. package/src/lib/evolution/evolution-ledger-file-manifest-head-store.js +6 -2
  182. package/src/lib/evolution/evolution-ledger.js +226 -55
  183. package/src/lib/evolution/evolution-private-storage.js +20 -0
  184. package/src/lib/evolution/evolution-run-ledger-adapter.js +298 -11
  185. package/src/lib/evolution/evolution-windows-directory-durability.js +215 -32
  186. package/src/lib/evolution/local-ui-evolution-runtime.js +3 -38
  187. package/src/lib/evolution/local-ui-signing-authority.js +69 -0
  188. package/src/lib/image-token-estimate.js +59 -0
  189. package/src/lib/ollama-provider-fetch.js +33 -0
  190. package/src/lib/provider-stream.js +14 -13
  191. package/src/lib/read-file-loop-guard.js +7 -4
  192. package/src/lib/session-history-origins.js +94 -35
  193. package/src/lib/session-message-provenance.js +26 -2
  194. package/src/lib/session-runtime-retention.js +10 -1
  195. package/src/lib/session-transcript-history.js +5 -1
  196. package/src/lib/session-transcript-migration.js +67 -12
  197. package/src/lib/storage-failure-cause-codes.js +449 -0
  198. package/src/lib/tool-result-preview.js +276 -0
  199. package/src/runtime/agent-core.js +111 -92
  200. package/src/runtime/headless-stream.js +121 -27
  201. package/src/assets/web-panel/assets/MarkdownRenderer-D8_iZief.js +0 -1
  202. package/src/assets/web-panel/assets/Projects-BeSOM6wi.js +0 -1
  203. package/src/assets/web-panel/assets/SpeechSettings-Bfhvin8B.js +0 -1
  204. package/src/assets/web-panel/assets/devWarning-c2I2Rn4_.js +0 -1
  205. package/src/assets/web-panel/assets/index-CTs4dYcV.js +0 -1
  206. package/src/assets/web-panel/assets/index-DeuvaW15.js +0 -1
  207. package/src/assets/web-panel/assets/markdown-CsiA8-E5.js +0 -50
@@ -1 +1 @@
1
- import{J as o,h}from"./index-Bhf-MuUh.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-CZ8azVgB.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-Bhf-MuUh.js";import{i as e}from"./motion-BrVb_Gy1.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-CZ8azVgB.js";import{i as e}from"./motion-BlCLpVDp.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-Bhf-MuUh.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-CZ8azVgB.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-Bhf-MuUh.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-CZ8azVgB.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-DyP1mPDf.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-Zf2dQx1j.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-Bhf-MuUh.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-CZ8azVgB.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-Bhf-MuUh.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-CZ8azVgB.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-Bhf-MuUh.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-CZ8azVgB.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{i as Ce}from"./markdown-CsiA8-E5.js";function be(se,le){for(var te=0;te<le.length;te++){const Y=le[te];if(typeof Y!="string"&&!Array.isArray(Y)){for(const G in Y)if(G!=="default"&&!(G in se)){const ie=Object.getOwnPropertyDescriptor(Y,G);ie&&Object.defineProperty(se,G,ie.get?ie:{enumerable:!0,get:()=>Y[G]})}}}return Object.freeze(Object.defineProperty(se,Symbol.toStringTag,{value:"Module"}))}var ve={exports:{}},pe;function we(){return pe||(pe=1,(function(se,le){(function(te,Y){se.exports=Y()})(globalThis,(()=>(()=>{var te={4567:function(O,r,o){var l=this&&this.__decorate||function(e,t,a,u){var _,p=arguments.length,c=p<3?t:u===null?u=Object.getOwnPropertyDescriptor(t,a):u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(e,t,a,u);else for(var m=e.length-1;m>=0;m--)(_=e[m])&&(c=(p<3?_(c):p>3?_(t,a,c):_(t,a))||c);return p>3&&c&&Object.defineProperty(t,a,c),c},f=this&&this.__param||function(e,t){return function(a,u){t(a,u,e)}};Object.defineProperty(r,"__esModule",{value:!0}),r.AccessibilityManager=void 0;const n=o(9042),d=o(9924),v=o(844),g=o(4725),h=o(2585),i=o(3656);let s=r.AccessibilityManager=class extends v.Disposable{constructor(e,t,a,u){super(),this._terminal=e,this._coreBrowserService=a,this._renderService=u,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let _=0;_<this._terminal.rows;_++)this._rowElements[_]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[_]);if(this._topBoundaryFocusListener=_=>this._handleBoundaryFocus(_,0),this._bottomBoundaryFocusListener=_=>this._handleBoundaryFocus(_,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new d.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((_=>this._handleResize(_.rows)))),this.register(this._terminal.onRender((_=>this._refreshRows(_.start,_.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((_=>this._handleChar(_)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(`
1
+ import{i as Ce}from"./markdown-DUKxbhE4.js";function be(se,le){for(var te=0;te<le.length;te++){const Y=le[te];if(typeof Y!="string"&&!Array.isArray(Y)){for(const G in Y)if(G!=="default"&&!(G in se)){const ie=Object.getOwnPropertyDescriptor(Y,G);ie&&Object.defineProperty(se,G,ie.get?ie:{enumerable:!0,get:()=>Y[G]})}}}return Object.freeze(Object.defineProperty(se,Symbol.toStringTag,{value:"Module"}))}var ve={exports:{}},pe;function we(){return pe||(pe=1,(function(se,le){(function(te,Y){se.exports=Y()})(globalThis,(()=>(()=>{var te={4567:function(O,r,o){var l=this&&this.__decorate||function(e,t,a,u){var _,p=arguments.length,c=p<3?t:u===null?u=Object.getOwnPropertyDescriptor(t,a):u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")c=Reflect.decorate(e,t,a,u);else for(var m=e.length-1;m>=0;m--)(_=e[m])&&(c=(p<3?_(c):p>3?_(t,a,c):_(t,a))||c);return p>3&&c&&Object.defineProperty(t,a,c),c},f=this&&this.__param||function(e,t){return function(a,u){t(a,u,e)}};Object.defineProperty(r,"__esModule",{value:!0}),r.AccessibilityManager=void 0;const n=o(9042),d=o(9924),v=o(844),g=o(4725),h=o(2585),i=o(3656);let s=r.AccessibilityManager=class extends v.Disposable{constructor(e,t,a,u){super(),this._terminal=e,this._coreBrowserService=a,this._renderService=u,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce="",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement("div"),this._accessibilityContainer.classList.add("xterm-accessibility"),this._rowContainer=this._coreBrowserService.mainDocument.createElement("div"),this._rowContainer.setAttribute("role","list"),this._rowContainer.classList.add("xterm-accessibility-tree"),this._rowElements=[];for(let _=0;_<this._terminal.rows;_++)this._rowElements[_]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[_]);if(this._topBoundaryFocusListener=_=>this._handleBoundaryFocus(_,0),this._bottomBoundaryFocusListener=_=>this._handleBoundaryFocus(_,1),this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement("div"),this._liveRegion.classList.add("live-region"),this._liveRegion.setAttribute("aria-live","assertive"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new d.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize((_=>this._handleResize(_.rows)))),this.register(this._terminal.onRender((_=>this._refreshRows(_.start,_.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((_=>this._handleChar(_)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(`
2
2
  `)))),this.register(this._terminal.onA11yTab((_=>this._handleTab(_)))),this.register(this._terminal.onKey((_=>this._handleKey(_.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,i.addDisposableDomListener)(document,"selectionchange",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,v.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(" ")}_handleChar(e){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`
3
3
  `&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=n.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent="",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),new RegExp("\\p{Control}","u").test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const a=this._terminal.buffer,u=a.lines.length.toString();for(let _=e;_<=t;_++){const p=a.lines.get(a.ydisp+_),c=[],m=p?.translateToString(!0,void 0,void 0,c)||"",E=(a.ydisp+_+1).toString(),k=this._rowElements[_];k&&(m.length===0?(k.innerText=" ",this._rowColumns.set(k,[0,1])):(k.textContent=m,this._rowColumns.set(k,c)),k.setAttribute("aria-posinset",E),k.setAttribute("aria-setsize",u))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(e,t){const a=e.target,u=this._rowElements[t===0?1:this._rowElements.length-2];if(a.getAttribute("aria-posinset")===(t===0?"1":`${this._terminal.buffer.lines.length}`)||e.relatedTarget!==u)return;let _,p;if(t===0?(_=a,p=this._rowElements.pop(),this._rowContainer.removeChild(p)):(_=this._rowElements.shift(),p=a,this._rowContainer.removeChild(_)),_.removeEventListener("focus",this._topBoundaryFocusListener),p.removeEventListener("focus",this._bottomBoundaryFocusListener),t===0){const c=this._createAccessibilityTreeNode();this._rowElements.unshift(c),this._rowContainer.insertAdjacentElement("afterbegin",c)}else{const c=this._createAccessibilityTreeNode();this._rowElements.push(c),this._rowContainer.appendChild(c)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(t===0?-1:1),this._rowElements[t===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;const e=document.getSelection();if(!e)return;if(e.isCollapsed)return void(this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection());if(!e.anchorNode||!e.focusNode)return void console.error("anchorNode and/or focusNode are null");let t={node:e.anchorNode,offset:e.anchorOffset},a={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(a.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===a.node&&t.offset>a.offset)&&([t,a]=[a,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;const u=this._rowElements.slice(-1)[0];if(a.node.compareDocumentPosition(u)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(a={node:u,offset:u.textContent?.length??0}),!this._rowContainer.contains(a.node))return;const _=({node:m,offset:E})=>{const k=m instanceof Text?m.parentNode:m;let D=parseInt(k?.getAttribute("aria-posinset"),10)-1;if(isNaN(D))return console.warn("row is invalid. Race condition?"),null;const b=this._rowColumns.get(k);if(!b)return console.warn("columns is null. Race condition?"),null;let x=E<b.length?b[E]:b.slice(-1)[0]+1;return x>=this._terminal.cols&&(++D,x=0),{row:D,column:x}},p=_(t),c=_(a);if(p&&c){if(p.row>c.row||p.row===c.row&&p.column>=c.column)throw new Error("invalid range");this._terminal.select(p.column,p.row,(c.row-p.row)*this._terminal.cols-p.column+c.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let t=this._rowContainer.children.length;t<this._terminal.rows;t++)this._rowElements[t]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[t]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=this._coreBrowserService.mainDocument.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}};r.AccessibilityManager=s=l([f(1,h.IInstantiationService),f(2,g.ICoreBrowserService),f(3,g.IRenderService)],s)},3614:(O,r)=>{function o(d){return d.replace(/\r?\n/g,"\r")}function l(d,v){return v?"\x1B[200~"+d+"\x1B[201~":d}function f(d,v,g,h){d=l(d=o(d),g.decPrivateModes.bracketedPasteMode&&h.rawOptions.ignoreBracketedPasteMode!==!0),g.triggerDataEvent(d,!0),v.value=""}function n(d,v,g){const h=g.getBoundingClientRect(),i=d.clientX-h.left-10,s=d.clientY-h.top-10;v.style.width="20px",v.style.height="20px",v.style.left=`${i}px`,v.style.top=`${s}px`,v.style.zIndex="1000",v.focus()}Object.defineProperty(r,"__esModule",{value:!0}),r.rightClickHandler=r.moveTextAreaUnderMouseCursor=r.paste=r.handlePasteEvent=r.copyHandler=r.bracketTextForPaste=r.prepareTextForTerminal=void 0,r.prepareTextForTerminal=o,r.bracketTextForPaste=l,r.copyHandler=function(d,v){d.clipboardData&&d.clipboardData.setData("text/plain",v.selectionText),d.preventDefault()},r.handlePasteEvent=function(d,v,g,h){d.stopPropagation(),d.clipboardData&&f(d.clipboardData.getData("text/plain"),v,g,h)},r.paste=f,r.moveTextAreaUnderMouseCursor=n,r.rightClickHandler=function(d,v,g,h,i){n(d,v,g),i&&h.rightClickSelect(d),v.value=h.selectionText,v.select()}},7239:(O,r,o)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.ColorContrastCache=void 0;const l=o(1505);r.ColorContrastCache=class{constructor(){this._color=new l.TwoKeyMap,this._css=new l.TwoKeyMap}setCss(f,n,d){this._css.set(f,n,d)}getCss(f,n){return this._css.get(f,n)}setColor(f,n,d){this._color.set(f,n,d)}getColor(f,n){return this._color.get(f,n)}clear(){this._color.clear(),this._css.clear()}}},3656:(O,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.addDisposableDomListener=void 0,r.addDisposableDomListener=function(o,l,f,n){o.addEventListener(l,f,n);let d=!1;return{dispose:()=>{d||(d=!0,o.removeEventListener(l,f,n))}}}},3551:function(O,r,o){var l=this&&this.__decorate||function(s,e,t,a){var u,_=arguments.length,p=_<3?e:a===null?a=Object.getOwnPropertyDescriptor(e,t):a;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")p=Reflect.decorate(s,e,t,a);else for(var c=s.length-1;c>=0;c--)(u=s[c])&&(p=(_<3?u(p):_>3?u(e,t,p):u(e,t))||p);return _>3&&p&&Object.defineProperty(e,t,p),p},f=this&&this.__param||function(s,e){return function(t,a){e(t,a,s)}};Object.defineProperty(r,"__esModule",{value:!0}),r.Linkifier=void 0;const n=o(3656),d=o(8460),v=o(844),g=o(2585),h=o(4725);let i=r.Linkifier=class extends v.Disposable{get currentLink(){return this._currentLink}constructor(s,e,t,a,u){super(),this._element=s,this._mouseService=e,this._renderService=t,this._bufferService=a,this._linkProviderService=u,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new d.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new d.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,v.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,v.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,n.addDisposableDomListener)(this._element,"mouseleave",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,n.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(s){this._lastMouseEvent=s;const e=this._positionFromMouseEvent(s,this._element,this._mouseService);if(!e)return;this._isMouseOut=!1;const t=s.composedPath();for(let a=0;a<t.length;a++){const u=t[a];if(u.classList.contains("xterm"))break;if(u.classList.contains("xterm-hover"))return}this._lastBufferCell&&e.x===this._lastBufferCell.x&&e.y===this._lastBufferCell.y||(this._handleHover(e),this._lastBufferCell=e)}_handleHover(s){if(this._activeLine!==s.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(s,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,s)||(this._clearCurrentLink(),this._askForLink(s,!0))}_askForLink(s,e){this._activeProviderReplies&&e||(this._activeProviderReplies?.forEach((a=>{a?.forEach((u=>{u.link.dispose&&u.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=s.y);let t=!1;for(const[a,u]of this._linkProviderService.linkProviders.entries())e?this._activeProviderReplies?.get(a)&&(t=this._checkLinkProviderResult(a,s,t)):u.provideLinks(s.y,(_=>{if(this._isMouseOut)return;const p=_?.map((c=>({link:c})));this._activeProviderReplies?.set(a,p),t=this._checkLinkProviderResult(a,s,t),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(s.y,this._activeProviderReplies)}))}_removeIntersectingLinks(s,e){const t=new Set;for(let a=0;a<e.size;a++){const u=e.get(a);if(u)for(let _=0;_<u.length;_++){const p=u[_],c=p.link.range.start.y<s?0:p.link.range.start.x,m=p.link.range.end.y>s?this._bufferService.cols:p.link.range.end.x;for(let E=c;E<=m;E++){if(t.has(E)){u.splice(_--,1);break}t.add(E)}}}}_checkLinkProviderResult(s,e,t){if(!this._activeProviderReplies)return t;const a=this._activeProviderReplies.get(s);let u=!1;for(let _=0;_<s;_++)this._activeProviderReplies.has(_)&&!this._activeProviderReplies.get(_)||(u=!0);if(!u&&a){const _=a.find((p=>this._linkAtPosition(p.link,e)));_&&(t=!0,this._handleNewLink(_))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!t)for(let _=0;_<this._activeProviderReplies.size;_++){const p=this._activeProviderReplies.get(_)?.find((c=>this._linkAtPosition(c.link,e)));if(p){t=!0,this._handleNewLink(p);break}}return t}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(s){if(!this._currentLink)return;const e=this._positionFromMouseEvent(s,this._element,this._mouseService);e&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,e)&&this._currentLink.link.activate(s,this._currentLink.link.text)}_clearCurrentLink(s,e){this._currentLink&&this._lastMouseEvent&&(!s||!e||this._currentLink.link.range.start.y>=s&&this._currentLink.link.range.end.y<=e)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,v.disposeArray)(this._linkCacheDisposables))}_handleNewLink(s){if(!this._lastMouseEvent)return;const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._linkAtPosition(s.link,e)&&(this._currentLink=s,this._currentLink.state={decorations:{underline:s.link.decorations===void 0||s.link.decorations.underline,pointerCursor:s.link.decorations===void 0||s.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,s.link,this._lastMouseEvent),s.link.decorations={},Object.defineProperties(s.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:t=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==t&&(this._currentLink.state.decorations.pointerCursor=t,this._currentLink.state.isHovered&&this._element.classList.toggle("xterm-cursor-pointer",t))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(s.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((t=>{if(!this._currentLink)return;const a=t.start===0?0:t.start+1+this._bufferService.buffer.ydisp,u=this._bufferService.buffer.ydisp+1+t.end;if(this._currentLink.link.range.start.y>=a&&this._currentLink.link.range.end.y<=u&&(this._clearCurrentLink(a,u),this._lastMouseEvent)){const _=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);_&&this._askForLink(_,!1)}}))))}_linkHover(s,e,t){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(e,!0),this._currentLink.state.decorations.pointerCursor&&s.classList.add("xterm-cursor-pointer")),e.hover&&e.hover(t,e.text)}_fireUnderlineEvent(s,e){const t=s.range,a=this._bufferService.buffer.ydisp,u=this._createLinkUnderlineEvent(t.start.x-1,t.start.y-a-1,t.end.x,t.end.y-a-1,void 0);(e?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(u)}_linkLeave(s,e,t){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(e,!1),this._currentLink.state.decorations.pointerCursor&&s.classList.remove("xterm-cursor-pointer")),e.leave&&e.leave(t,e.text)}_linkAtPosition(s,e){const t=s.range.start.y*this._bufferService.cols+s.range.start.x,a=s.range.end.y*this._bufferService.cols+s.range.end.x,u=e.y*this._bufferService.cols+e.x;return t<=u&&u<=a}_positionFromMouseEvent(s,e,t){const a=t.getCoords(s,e,this._bufferService.cols,this._bufferService.rows);if(a)return{x:a[0],y:a[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(s,e,t,a,u){return{x1:s,y1:e,x2:t,y2:a,cols:this._bufferService.cols,fg:u}}};r.Linkifier=i=l([f(1,h.IMouseService),f(2,h.IRenderService),f(3,g.IBufferService),f(4,h.ILinkProviderService)],i)},9042:(O,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.tooMuchOutput=r.promptLabel=void 0,r.promptLabel="Terminal input",r.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(O,r,o){var l=this&&this.__decorate||function(h,i,s,e){var t,a=arguments.length,u=a<3?i:e===null?e=Object.getOwnPropertyDescriptor(i,s):e;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(h,i,s,e);else for(var _=h.length-1;_>=0;_--)(t=h[_])&&(u=(a<3?t(u):a>3?t(i,s,u):t(i,s))||u);return a>3&&u&&Object.defineProperty(i,s,u),u},f=this&&this.__param||function(h,i){return function(s,e){i(s,e,h)}};Object.defineProperty(r,"__esModule",{value:!0}),r.OscLinkProvider=void 0;const n=o(511),d=o(2585);let v=r.OscLinkProvider=class{constructor(h,i,s){this._bufferService=h,this._optionsService=i,this._oscLinkService=s}provideLinks(h,i){const s=this._bufferService.buffer.lines.get(h-1);if(!s)return void i(void 0);const e=[],t=this._optionsService.rawOptions.linkHandler,a=new n.CellData,u=s.getTrimmedLength();let _=-1,p=-1,c=!1;for(let m=0;m<u;m++)if(p!==-1||s.hasContent(m)){if(s.loadCell(m,a),a.hasExtendedAttrs()&&a.extended.urlId){if(p===-1){p=m,_=a.extended.urlId;continue}c=a.extended.urlId!==_}else p!==-1&&(c=!0);if(c||p!==-1&&m===u-1){const E=this._oscLinkService.getLinkData(_)?.uri;if(E){const k={start:{x:p+1,y:h},end:{x:m+(c||m!==u-1?0:1),y:h}};let D=!1;if(!t?.allowNonHttpProtocols)try{const b=new URL(E);["http:","https:"].includes(b.protocol)||(D=!0)}catch{D=!0}D||e.push({text:E,range:k,activate:(b,x)=>t?t.activate(b,x,k):g(0,x),hover:(b,x)=>t?.hover?.(b,x,k),leave:(b,x)=>t?.leave?.(b,x,k)})}c=!1,a.hasExtendedAttrs()&&a.extended.urlId?(p=m,_=a.extended.urlId):(p=-1,_=-1)}}i(e)}};function g(h,i){if(confirm(`Do you want to navigate to ${i}?
4
4
 
@@ -1,4 +1,4 @@
1
- import{K as o}from"./index-Bhf-MuUh.js";import{i as f}from"./motion-BrVb_Gy1.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-CZ8azVgB.js";import{i as f}from"./motion-BlCLpVDp.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-Bhf-MuUh.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-CZ8azVgB.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">
@@ -252,7 +252,9 @@ function buildKernelSummarizer({
252
252
  error.code = "SESSION_REVISION_STALE";
253
253
  throw error;
254
254
  }
255
- const droppedMessages = contextItemsToMessages(droppedItems);
255
+ const droppedMessages = contextItemsToMessages(droppedItems, {
256
+ sessionId: sessionPort.sessionId,
257
+ });
256
258
  if (droppedMessages.length < 3) {
257
259
  return { items: [], usageReceipt: { outcome: "not_metered" } };
258
260
  }
@@ -301,6 +303,7 @@ function buildKernelSummarizer({
301
303
  parents: droppedItems,
302
304
  operationId: context.operationId,
303
305
  now: new Date().toISOString(),
306
+ allowExternalization: true,
304
307
  })
305
308
  : null;
306
309
  const usageReceipt = providerWasCalled
@@ -381,7 +384,9 @@ async function dryRunKernelPlan(runtime, request) {
381
384
  });
382
385
  return {
383
386
  plan,
384
- messages: contextItemsToMessages(plan.selected),
387
+ messages: contextItemsToMessages(plan.selected, {
388
+ sessionId: request.sessionId,
389
+ }),
385
390
  stats: {
386
391
  strategy: "canonical-deterministic-selection",
387
392
  originalMessages: snapshot.items.length,
@@ -1,6 +1,32 @@
1
1
  {
2
2
  "source": "CHANGELOG.md",
3
3
  "releases": [
4
+ {
5
+ "productVersion": null,
6
+ "cliVersion": "0.166.118",
7
+ "cliVersions": ["0.166.118"],
8
+ "date": "2026-10-25",
9
+ "title": "",
10
+ "sections": [
11
+ {
12
+ "heading": "Fixed - cc CLI 0.166.118: input delivery, long-session storage and Windows startup (candidate, 2026-10-25)",
13
+ "body": "- Return a structured failure when a held session host lease is lost or incoming user evidence cannot be persisted. Stop without admitting the next input or reporting successful completion; retain normal caller cancellation and turn interruption behavior.\n- Fail reliability diagnostics immediately on an error result, premature child exit or failed input stream. Retain bounded exit codes and startup diagnostics while preserving the original turn, cleanup and resource limits.\n- Reuse canonical index aliases only after complete fresh byte comparison, and share authenticated directory scopes across original history reads. Preserve per-file identity, digest, signature and final authority checks, custom-port fallback and the existing memory budget.\n- Combine default artifact index lookups within each synchronous readback phase. Read a fresh physical snapshot before and after payload access, retain duplicate and replacement rejection, and preserve custom storage hooks and their original order.\n- Distinguish authentication clock rollback, envelope expiry and authority lease expiry with fixed failure reasons, preserving the original rejection, clock calls and deadlines. The earlier intermittent authentication failure remains unresolved.\n\n- Treat Agent SDK stdin backpressure as queued input, reject writes after input failure or process exit, and retain final output through process close.\n- Preserve unknown durable input delivery in both IDEs and retry Windows atomic draft replacement under temporary sharing locks without deleting the previous draft.\n- Exclude only input-acceptance receipt fields from conversation replay and comparison, retaining original authenticated events and receipt deduplication. IDE tool turns no longer mistake their own accepted input for a concurrent session revision.\n- Normalize omitted text in OpenAI-compatible tool responses to JSON-safe null, retaining strict response validation and stream behavior across compatible providers.\n- Settle pending completed tools before long-session result retention, recompute the retained checkpoint after host settlement, and preserve existing private runtime-only message markers across trusted retention clones.\n- Require a durable head acknowledgement before a streaming host advances past completed tools. Stop without retry or next-input admission when acknowledgement is missing, including a committed append whose acknowledgement was lost; preserve already written tool evidence for verified recovery.\n- Show bounded persistence error codes and known failure phases in VS Code; pause recurring prompts after unknown input delivery or persistence failure and retain process exit diagnostics without automatically replaying tools.\n- Retain redacted broker transport receipts in new native retest evidence archives; keep frozen acceptance criteria and completed rounds unchanged.\n- Retain bounded startup diagnostics and completed pipe samples when a reliability-soak child exits before producing output; preserve the original failure criteria and deadlines.\n- Recognize supported closed JavaScript, TypeScript and Python code fences in project instructions without rejecting ordinary code as malformed JSON. Version the new projection policy while preserving historical verification, secret scanning and cumulative budgets.\n- Bind Node 22.12's legacy Windows fast-stat device projection to the same native directory handle using the correct path structure, complete volume serial and 128-bit file ID; reject unbound or changed identities before and after flushing.\n- Give each Windows directory durability module its own native type names so multiple module instances can flush directories in the same process; preserve filesystem authority boundaries and real durability checks.\n- Bind Windows ledger ACL verification to a trusted parent volume when path and descriptor device projections differ; retain full-precision publication identities and reject metadata changes before and after fsync.\n- Classify fixed Windows startup errors without storing their content, and exclude request-context prose from MCP failure-code diagnostics.\n- Give each default Ollama request a fresh connection so long synchronous turns cannot reuse a retired idle socket; preserve explicit dispatchers, governed transport policy and existing request budgets without replaying requests.\n- Verify the Evolution Run ledger once before and after each history read, retaining individual artifact authentication and rejecting a changed frontier instead of re-verifying the entire ledger for every event.\n- Reduce repeated Evolution artifact index parsing during long Agent sessions through bounded synchronous reads; retain fresh file identity, byte, payload, signature and current authority checks, and freeze parsed rows before reuse.\n- Read original Run history as one sealed operation so each internal group does not reread the entire artifact index. Recheck full index bytes and every authority lease before returning, share one authenticated parent for direct file reads, and preserve custom integrity hooks and all per-file checks.\n- Allocate original Run append sequences from the same freshly authenticated ledger load and reuse only its post-publication head proof within that operation. Preserve conflict detection, durable acknowledgement, final readback and custom-port behavior.\n- Append bounded allowlisted storage cause codes, fixed artifact failure stages and exact known guard reasons to Evolution ingress failures and retain them in soak diagnostics. Preserve failure classification, privacy boundaries, acknowledgement requirements and all time and resource budgets; the observed intermittent ingress failure remains unresolved.\n- Reuse bounded, private index parses only after freshly read bytes match exactly or extend the complete previous index. Retain compact raw and canonical index bytes across typed stores, reserve replacement space before parsing, and evict only as needed within the existing memory budget; preserve index admission limits and fresh authentication.\n- Read default ArtifactStore payloads through one complete bounded physical read instead of three repeated reads. Bind repository method identities at module initialization, recheck dynamic path methods before and after reading, and preserve custom integrity hooks and their original order.\n- Store new local Agent Evidence in five fixed type partitions selected by an authenticated Run layout marker. Retain permanent Run history, existing TTLs and legacy Run reopening; reject missing or replaced partitions without searching another store.\n- Secure independent Windows ledger roots in one ACL batch before creating child directories, preserving physical identity checks and private parent permissions.\n- Use an isolated native Windows ACL worker for Node hosts, retaining the existing helper deadlines and fresh object identity checks. Electron retains its existing backend; native failures do not fall back to PowerShell.\n- Preserve the native ACL backend for Evolution witness, manifest catalog and head storage using default Node fs or the unchanged repository runtime adapter. Modified and custom filesystem ports retain their explicit dependencies and owner-only ACL verification.\n- Explicitly repair Windows file ownership and ACLs before durable readback in Evolution witness, manifest catalog and head storage, including files created by elevated tokens. Keep directory checks on their existing path and verify genuine file repair in all five filesystem configurations.\n- Exercise signed-deployment process E2E with the production filesystem adapter, replacing synthetic directory descriptors and no-op directory flushing. Keep real owner-only ACL repair and the original SDK initialization, approval and resume deadlines.\n- Use the production filesystem in Workbench fixtures, including real directory flushing for test identity publication, and capture bounded browser failure diagnostics without changing approval or rollback deadlines.\n- Replace synthetic Windows directory descriptors and no-op flushing in physical persistence fixtures with the original filesystem adapter. Preserve inherited Node methods, owned directory-flush methods and existing fault admission hooks in monitored ports; custom fault filesystems retain their explicit dependencies and original assertions and deadlines.\n- Read Run history and its matching signed frontier from one locked ledger load, retaining complete artifact authentication and the final frontier check. Original custom and subclass ports retain their existing behavior.\n- Bind the immutable local witness verifier epoch to its fixed public key and complete trust policy, enabling the existing bounded verification cache while rehashing current stored bytes. External authorities keep their existing revocation and epoch contracts.\n- Validate cached production ledger files with full-precision path and descriptor identities and a fresh bounded byte read, avoiding redundant legacy Number-stat samples. Persisted legacy fingerprints and custom filesystem behavior remain unchanged.\n- Retain observations for all twenty concurrent reliability children on failure and await bounded cleanup without replacing the original timeout or deleting storage still in use.\n- Checkpoint duplex timeout diagnostics before retiring the owned process tree; preserve the original failure and retain temporary storage if cleanup cannot be confirmed.\n- Observe transient Darwin process-group permission probes within the original cleanup deadline after a successful group kill; confirm retirement only after explicit process-group absence and root close, without resending termination signals.\n- Upgrade DOMPurify to 3.4.17 in desktop and Web Panel dependency graphs, including Monaco's nested copy. Run sanitizer regressions with DOMPurify's supported jsdom environment.\n- Prepare Session Core 0.3.23, Agent SDK 0.2.16, CLI 0.166.118, Open VSX 0.37.160 and JetBrains 0.4.177. Publish required child npm packages before the CLI, then the IDEs, requiring complete exact-source Actions gates and public readback at each stage; mobile and PC clients follow the IDEs.\n- Prepare product v5.0.3.141 with synchronized desktop, Android and iOS versions; require both paired IDE releases to be public before product builds proceed.\n- Historical 36+9 acceptance remains 32/45 across versions, with 13 unfinished. No new live model-task acceptance is claimed for this candidate."
14
+ }
15
+ ]
16
+ },
17
+ {
18
+ "productVersion": null,
19
+ "cliVersion": "0.166.117",
20
+ "cliVersions": ["0.166.117"],
21
+ "date": "2026-10-23",
22
+ "title": "",
23
+ "sections": [
24
+ {
25
+ "heading": "Fixed - cc CLI 0.166.117: code literals at Evolution ingress and completed tool recovery (published, 2026-10-23)",
26
+ "body": "- Recognize Python and JavaScript literals in `run_code` source and results without treating ordinary code as malformed JSON. Continue decoding quoted sensitive keys and values for redaction.\n- Keep genuine JSON validation, duplicate-key rejection, numeric limits and projection budgets; distinguish malformed JSON errors from actual JSON budget failures.\n- Preserve historical Agent projection rulesets while using a new versioned code-text policy for new requests.\n- Coordinate the bounded Agent projection and decoded-JSON node budgets with model-request capacity, and trigger canonical compaction on text byte pressure before the ingress ceiling is reached.\n- Account for image transport separately from text: retain the existing eight-image / 20 MiB message allowance, bound historical request images, and commit image digests in small evidence and context-planning records. Estimate vision tokens separately from base64 bytes.\n- Preview oversized tool results as complete JSON trees and omit incomplete host-created excerpts, retaining status fields, pagination cursors and duplicate-output recovery guards.\n- Settle completed tool rounds before terminating an Agent Run on Evolution ingress failure, retaining verified session prefix checks and removing unanswered calls from replay.\n- Preserve completed rounds on caller cancellation, session-budget exhaustion, unknown compaction usage and independent runtime-ledger failure.\n- Persist large image context bundles as private references bound to the current saved-session generation; verify bytes on restart and clean them up with session deletion. Unsaved sessions do not create persistent image bundles.\n- Published the child packages before CLI 0.166.117, then Open VSX 0.37.159 and JetBrains 0.4.176; both IDEs publicly recommend CLI 0.166.117.\n- Align Session Core 0.3.22 and Personal Data Hub 0.4.66 with their changed source trees before publishing the CLI. Candidate 0.166.116 was not published; its immutable tag remains unchanged."
27
+ }
28
+ ]
29
+ },
4
30
  {
5
31
  "productVersion": null,
6
32
  "cliVersion": "0.166.115",
@@ -9,7 +35,7 @@
9
35
  "title": "",
10
36
  "sections": [
11
37
  {
12
- "heading": "Fixed - cc CLI 0.166.115: JSON-compatible Agent tool evidence (candidate, 2026-10-22)",
38
+ "heading": "Fixed - cc CLI 0.166.115: JSON-compatible Agent tool evidence (published, 2026-10-22)",
13
39
  "body": "- Resolve built-in tool descriptor categories from their telemetry metadata and use explicit null for missing optional descriptor values, so successful Git and shell tools do not terminate the Agent's signed Evolution ingress.\n- Omit absent slash-command descriptions, warnings and non-persistent code script paths; represent unknown process exit codes as null. Preserve strict evidence validation.\n- Omit unavailable ranges from repeated-file read recovery and represent missing cell IDs from legacy notebooks as null, keeping successful file tools compatible with signed evidence.\n- Encode new local signing tenant, run and evidence IDs without digits while preserving their entropy, preventing accidental payment-card matches during first use. Retain existing deployment identities and sensitive-content scanning.\n- Prepare VS Code 0.37.157 and JetBrains 0.4.174 to recommend CLI 0.166.115 after exact-source gates and public npm verification."
14
40
  }
15
41
  ]
@@ -44,6 +44,7 @@ import {
44
44
  markDurableSystemMessage,
45
45
  projectCanonicalResumeMessages,
46
46
  sanitizePersistedMessage,
47
+ sanitizeConversationMessage,
47
48
  SESSION_FORK_AUTHORITY_FIELD,
48
49
  } from "../lib/session-message-provenance.js";
49
50
  import {
@@ -71,6 +72,7 @@ import {
71
72
  } from "./session-list-index.js";
72
73
  import { createSessionPersistenceFailure } from "../lib/session-persistence-failure.js";
73
74
  import { withSessionHostWriteAuthority } from "../lib/session-host-lease.js";
75
+ import { withSessionMessageBundleDeletion } from "../lib/context-memory-kernel/message-bundle-store.js";
74
76
  import { createSessionTranscriptStructureProjection } from "../lib/session-transcript-structure.js";
75
77
  import {
76
78
  TOOL_ROUND_EVENT,
@@ -5930,7 +5932,7 @@ function isReplayableMessage(m) {
5930
5932
  function rebuildMessagesFromFile(
5931
5933
  filePath,
5932
5934
  options = {},
5933
- decodeMessage = sanitizePersistedMessage,
5935
+ decodeMessage = sanitizeConversationMessage,
5934
5936
  ) {
5935
5937
  const ioMetrics = options?.ioMetrics ?? null;
5936
5938
  // Scan newest-first and stop at the latest valid compact checkpoint. Memory
@@ -6240,18 +6242,20 @@ export function deleteJsonlSession(sessionId) {
6240
6242
  Number(existingMeta.updated_at_ms) ||
6241
6243
  Date.now(),
6242
6244
  ) || Date.now();
6243
- const tombstone = recordSessionDeleted(
6244
- getSessionsDir(),
6245
- sessionId,
6246
- timestamp,
6247
- );
6248
- publishSessionAntiRollbackWitness(
6249
- sessionId,
6250
- tombstone,
6251
- filePath,
6252
- "deleted",
6253
- );
6254
- return externalAnchor?.status !== "deleted";
6245
+ return withSessionMessageBundleDeletion(sessionId, () => {
6246
+ const tombstone = recordSessionDeleted(
6247
+ getSessionsDir(),
6248
+ sessionId,
6249
+ timestamp,
6250
+ );
6251
+ publishSessionAntiRollbackWitness(
6252
+ sessionId,
6253
+ tombstone,
6254
+ filePath,
6255
+ "deleted",
6256
+ );
6257
+ return externalAnchor?.status !== "deleted";
6258
+ });
6255
6259
  }
6256
6260
  if (!transcriptExists && existingMeta === null) {
6257
6261
  return false;
@@ -6276,70 +6280,72 @@ export function deleteJsonlSession(sessionId) {
6276
6280
  rebuildSessionMetaUnlocked(getSessionsDir(), sessionId, filePath);
6277
6281
  existingMeta = readSessionPersistenceWitness(sessionId);
6278
6282
  }
6279
- if (deletionWitness === null) {
6280
- assertSessionAntiRollbackBeforeWrite(
6281
- sessionId,
6282
- existingMeta,
6283
- filePath,
6284
- "live",
6285
- );
6286
- } else if (existingMeta?.deleted !== true) {
6287
- existingMeta = replaceSessionMeta(getSessionsDir(), {
6288
- ...emptySessionMeta(sessionId),
6289
- id: sessionId,
6290
- generation: deletionWitness.generation || null,
6291
- last_hash: deletionWitness.last_hash || null,
6292
- event_count: Math.max(0, Number(deletionWitness.event_count) || 0),
6293
- updated_at_ms: Math.max(
6294
- 0,
6295
- Number(deletionWitness.deleted_at_ms) || Date.now(),
6296
- ),
6297
- deleted_at_ms: Math.max(
6298
- 0,
6299
- Number(deletionWitness.deleted_at_ms) || Date.now(),
6300
- ),
6301
- deleted: true,
6302
- transcript: null,
6303
- });
6304
- }
6305
- if (transcriptExists) rmSync(filePath, { force: true });
6306
- // The external tombstone is published only after the absent transcript
6307
- // directory entry is durable. A retry after an interrupted unlink must
6308
- // repeat this barrier even though the path is already absent in memory.
6309
- fsyncParentDirectory(
6310
- filePath,
6311
- Object.freeze({ sessionId, filePath, operation: "delete" }),
6312
- "beforeDeleteDirectoryFsync",
6313
- "afterDeleteDirectoryFsync",
6314
- );
6315
- try {
6316
- const tombstone = recordSessionDeleted(getSessionsDir(), sessionId);
6317
- publishSessionAntiRollbackWitness(
6318
- sessionId,
6319
- tombstone,
6320
- filePath,
6321
- "deleted",
6322
- );
6323
- } catch (error) {
6324
- // A complete anti-rollback record is readable before its fsync. If
6325
- // rollback also fails, readback alone cannot prove durability. Only
6326
- // swallow a post-meta failure after an exact replay has settled the
6327
- // deleted record through the production persistence path.
6328
- const tombstone = readSessionMeta(getSessionsDir(), sessionId);
6329
- if (
6330
- tombstone?.deleted !== true ||
6331
- readSessionAntiRollbackAnchor(sessionId)?.status !== "deleted"
6332
- ) {
6333
- throw error;
6283
+ return withSessionMessageBundleDeletion(sessionId, () => {
6284
+ if (deletionWitness === null) {
6285
+ assertSessionAntiRollbackBeforeWrite(
6286
+ sessionId,
6287
+ existingMeta,
6288
+ filePath,
6289
+ "live",
6290
+ );
6291
+ } else if (existingMeta?.deleted !== true) {
6292
+ existingMeta = replaceSessionMeta(getSessionsDir(), {
6293
+ ...emptySessionMeta(sessionId),
6294
+ id: sessionId,
6295
+ generation: deletionWitness.generation || null,
6296
+ last_hash: deletionWitness.last_hash || null,
6297
+ event_count: Math.max(0, Number(deletionWitness.event_count) || 0),
6298
+ updated_at_ms: Math.max(
6299
+ 0,
6300
+ Number(deletionWitness.deleted_at_ms) || Date.now(),
6301
+ ),
6302
+ deleted_at_ms: Math.max(
6303
+ 0,
6304
+ Number(deletionWitness.deleted_at_ms) || Date.now(),
6305
+ ),
6306
+ deleted: true,
6307
+ transcript: null,
6308
+ });
6334
6309
  }
6335
- publishSessionAntiRollbackWitness(
6336
- sessionId,
6337
- tombstone,
6310
+ if (transcriptExists) rmSync(filePath, { force: true });
6311
+ // The external tombstone is published only after the absent transcript
6312
+ // directory entry is durable. A retry after an interrupted unlink must
6313
+ // repeat this barrier even though the path is already absent in memory.
6314
+ fsyncParentDirectory(
6338
6315
  filePath,
6339
- "deleted",
6316
+ Object.freeze({ sessionId, filePath, operation: "delete" }),
6317
+ "beforeDeleteDirectoryFsync",
6318
+ "afterDeleteDirectoryFsync",
6340
6319
  );
6341
- }
6342
- return true;
6320
+ try {
6321
+ const tombstone = recordSessionDeleted(getSessionsDir(), sessionId);
6322
+ publishSessionAntiRollbackWitness(
6323
+ sessionId,
6324
+ tombstone,
6325
+ filePath,
6326
+ "deleted",
6327
+ );
6328
+ } catch (error) {
6329
+ // A complete anti-rollback record is readable before its fsync. If
6330
+ // rollback also fails, readback alone cannot prove durability. Only
6331
+ // swallow a post-meta failure after an exact replay has settled the
6332
+ // deleted record through the production persistence path.
6333
+ const tombstone = readSessionMeta(getSessionsDir(), sessionId);
6334
+ if (
6335
+ tombstone?.deleted !== true ||
6336
+ readSessionAntiRollbackAnchor(sessionId)?.status !== "deleted"
6337
+ ) {
6338
+ throw error;
6339
+ }
6340
+ publishSessionAntiRollbackWitness(
6341
+ sessionId,
6342
+ tombstone,
6343
+ filePath,
6344
+ "deleted",
6345
+ );
6346
+ }
6347
+ return true;
6348
+ });
6343
6349
  },
6344
6350
  {
6345
6351
  failIfUnavailable: true,
@@ -10,6 +10,7 @@
10
10
  */
11
11
 
12
12
  import { createHash } from "node:crypto";
13
+ import { imageTransportEstimate } from "../lib/image-token-estimate.js";
13
14
  import {
14
15
  collectFileReadProgress,
15
16
  FILE_READ_PROGRESS_PREFIX,
@@ -183,7 +184,25 @@ export function estimateMessagesTokens(messages) {
183
184
  typeof msg.content === "string"
184
185
  ? msg.content
185
186
  : JSON.stringify(msg.content || "");
186
- return sum + estimateTokens(content);
187
+ const image = imageTransportEstimate([msg]);
188
+ // Base64 is transport, not language tokens. The remaining serialized
189
+ // content is still charged, including captions and image metadata.
190
+ return (
191
+ sum + estimateTokens(content) - Math.ceil(image.bytes / 4) + image.tokens
192
+ );
193
+ }, 0);
194
+ }
195
+
196
+ // Leave space for tool definitions, protocol metadata and projection records
197
+ // before the bounded Evolution input/projected-content ceilings are reached.
198
+ export const AUTO_COMPACT_TEXT_BYTES = 768 * 1024;
199
+
200
+ export function estimateMessagesTextBytes(messages) {
201
+ return messages.reduce((sum, message) => {
202
+ const image = imageTransportEstimate([message]);
203
+ return (
204
+ sum + Buffer.byteLength(JSON.stringify(message), "utf8") - image.bytes
205
+ );
187
206
  }, 0);
188
207
  }
189
208
 
@@ -406,7 +425,9 @@ export class PromptCompressor {
406
425
  const currentTokens = estimateMessagesTokens(result);
407
426
  if (
408
427
  this.llmQuery &&
409
- (currentTokens > this.maxTokens || result.length > this.maxMessages) &&
428
+ (currentTokens > this.maxTokens ||
429
+ result.length > this.maxMessages ||
430
+ estimateMessagesTextBytes(result) > AUTO_COMPACT_TEXT_BYTES) &&
410
431
  messages.length > 4
411
432
  ) {
412
433
  const summarized = await this._summarize(result, messages);
@@ -494,7 +515,40 @@ export class PromptCompressor {
494
515
  return (
495
516
  ((!this._adaptive || this._contextWindow < 128000) &&
496
517
  messages.length > this.maxMessages) ||
497
- estimateMessagesTokens(messages) > this.maxTokens
518
+ estimateMessagesTokens(messages) > this.maxTokens ||
519
+ estimateMessagesTextBytes(messages) > AUTO_COMPACT_TEXT_BYTES
520
+ );
521
+ }
522
+
523
+ getCompactionTokenBudget(messages) {
524
+ const textBytes = estimateMessagesTextBytes(messages);
525
+ if (textBytes <= AUTO_COMPACT_TEXT_BYTES) return this.maxTokens;
526
+ const imageTokens = imageTransportEstimate(messages).tokens;
527
+ const lastUser = messages.findLast((message) => message.role === "user");
528
+ // Historical images may be dropped by the planner. Reserving all of them
529
+ // would let it satisfy this target by deleting images while retaining the
530
+ // text that caused the byte overflow.
531
+ const protectedImageTokens = imageTransportEstimate(
532
+ messages.filter(
533
+ (message) =>
534
+ message === lastUser ||
535
+ message.pinned === true ||
536
+ message._pin === true,
537
+ ),
538
+ ).tokens;
539
+ const textTokens = Math.max(
540
+ 0,
541
+ estimateMessagesTokens(messages) - imageTokens,
542
+ );
543
+ return Math.max(
544
+ 1,
545
+ Math.min(
546
+ this.maxTokens,
547
+ Math.floor(
548
+ protectedImageTokens +
549
+ textTokens * (AUTO_COMPACT_TEXT_BYTES / textBytes) * 0.75,
550
+ ),
551
+ ),
498
552
  );
499
553
  }
500
554