chainlesschain 0.166.10 → 0.166.13

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 (230) hide show
  1. package/README.md +33 -0
  2. package/bin/chainlesschain.js +5 -0
  3. package/package.json +4 -2
  4. package/src/assets/web-panel/assets/{AIOps-CLYBDAGv.js → AIOps-BN25cNOD.js} +1 -1
  5. package/src/assets/web-panel/assets/{ActionButton-CpeSttcu.js → ActionButton-Da9IP-m5.js} +1 -1
  6. package/src/assets/web-panel/assets/{Analytics-Ba1TNLG0.js → Analytics-D7hkEvQm.js} +3 -3
  7. package/src/assets/web-panel/assets/{AppLayout-xBy8EOeg.js → AppLayout-CCV4Xnbc.js} +5 -5
  8. package/src/assets/web-panel/assets/{Artifacts-CJ_3TFb8.js → Artifacts-CVSnVJeA.js} +1 -1
  9. package/src/assets/web-panel/assets/{Audit-DUATFCG3.js → Audit-CuYdw5Ag.js} +1 -1
  10. package/src/assets/web-panel/assets/{BackgroundAgents-BRXYPIGp.js → BackgroundAgents-DZCnK-Tf.js} +1 -1
  11. package/src/assets/web-panel/assets/{Backup-D8auLx7y.js → Backup-cV9FdpTy.js} +1 -1
  12. package/src/assets/web-panel/assets/{BaseInput-CBgdslQ3.js → BaseInput-BRnv6YSp.js} +1 -1
  13. package/src/assets/web-panel/assets/{Chat-B32LvAiE.js → Chat-Bw5w87P4.js} +5 -5
  14. package/src/assets/web-panel/assets/{ChatBubbleRenderer-CVfvAy-n.js → ChatBubbleRenderer-C0GjtUAw.js} +1 -1
  15. package/src/assets/web-panel/assets/{Checkbox-BwzBxOpC.js → Checkbox-DaoTqcdt.js} +1 -1
  16. package/src/assets/web-panel/assets/{Codegen-0U5vrg1H.js → Codegen-B4dYcEIi.js} +1 -1
  17. package/src/assets/web-panel/assets/{Col-dZ2i4aAj.js → Col-mAhuOeuD.js} +1 -1
  18. package/src/assets/web-panel/assets/{Community-UVvpLr8c.js → Community-BK6KEdBk.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compact-BDNEb1Bd.js → Compact-CCglmNu5.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compliance-BrzQPxyS.js → Compliance-Cm8S4of7.js} +1 -1
  21. package/src/assets/web-panel/assets/{Cowork-BbgGsu-9.js → Cowork-Dhs1QLMe.js} +2 -2
  22. package/src/assets/web-panel/assets/{Cron-G321XPhp.js → Cron-CLlhmXWk.js} +2 -2
  23. package/src/assets/web-panel/assets/{Crosschain-CgLNUyMn.js → Crosschain-BnHVbaNs.js} +1 -1
  24. package/src/assets/web-panel/assets/{DID-BAfRj18q.js → DID-UzQP9-0O.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dashboard-BNIxA4TK.js → Dashboard-CBdlPClz.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dropdown-BLAUmCAN.js → Dropdown-axIRPdq1.js} +1 -1
  27. package/src/assets/web-panel/assets/{EmailListRenderer-CsnhTW22.js → EmailListRenderer-DUalW5rx.js} +1 -1
  28. package/src/assets/web-panel/assets/{FamilyGuardDashboard-zcQ7Ip1n.js → FamilyGuardDashboard-Bl4W9luY.js} +1 -1
  29. package/src/assets/web-panel/assets/{Federation-KFwxodNU.js → Federation-C1yP-uEu.js} +1 -1
  30. package/src/assets/web-panel/assets/{FormItemContext-3CYRLEHG.js → FormItemContext-Xh6Ig5q8.js} +1 -1
  31. package/src/assets/web-panel/assets/{GenericCardRenderer-D3d9D8L9.js → GenericCardRenderer-C2cz3bt2.js} +1 -1
  32. package/src/assets/web-panel/assets/{Git-BJ202nJY.js → Git-C_z63ixg.js} +2 -2
  33. package/src/assets/web-panel/assets/{Governance-ClnnXVQ-.js → Governance-BYqB33_3.js} +1 -1
  34. package/src/assets/web-panel/assets/{Inference-DNU-PTkc.js → Inference-CEULuArm.js} +1 -1
  35. package/src/assets/web-panel/assets/{KnowledgeGraph-DJuinbuY.js → KnowledgeGraph-fgMsu-0H.js} +1 -1
  36. package/src/assets/web-panel/assets/{Logs-D4No-46s.js → Logs-DO9Hdcec.js} +2 -2
  37. package/src/assets/web-panel/assets/MarkdownRenderer-BkrK04xW.js +1 -0
  38. package/src/assets/web-panel/assets/{Marketplace-Ba-KqRN3.js → Marketplace-B8zyLiFe.js} +1 -1
  39. package/src/assets/web-panel/assets/{McpTools-DVoxnPgE.js → McpTools-BLAN2mWW.js} +3 -3
  40. package/src/assets/web-panel/assets/{Memory-D_C8gzAZ.js → Memory-CrQcFM7u.js} +2 -2
  41. package/src/assets/web-panel/assets/{MobileBridge-DnzTPcDH.js → MobileBridge-DVnyiiU-.js} +1 -1
  42. package/src/assets/web-panel/assets/MobileProjects-qjCME5OD.js +1 -0
  43. package/src/assets/web-panel/assets/{Mtc-CvEHmHId.js → Mtc-4JE3C3It.js} +2 -2
  44. package/src/assets/web-panel/assets/{MtcAudit-VNJmWqmv.js → MtcAudit-CjBuak9I.js} +5 -5
  45. package/src/assets/web-panel/assets/{Multisig-BO0x_Vsa.js → Multisig-BtPcYQcC.js} +3 -3
  46. package/src/assets/web-panel/assets/{NLProgramming-CM2gI1UY.js → NLProgramming-Cx653_Ba.js} +1 -1
  47. package/src/assets/web-panel/assets/{Notes-CMc1HsML.js → Notes-CkuD3YzS.js} +3 -3
  48. package/src/assets/web-panel/assets/{NotificationSettings-DGNmSKGM.js → NotificationSettings-BgNgU7HH.js} +1 -1
  49. package/src/assets/web-panel/assets/{OrderTableRenderer-Du-Kct3p.js → OrderTableRenderer-BTC8W0a-.js} +1 -1
  50. package/src/assets/web-panel/assets/{Organization-DRtRZjas.js → Organization-Dmd4Hjxz.js} +4 -4
  51. package/src/assets/web-panel/assets/{Overflow-Dp4OeWsn.js → Overflow-C_5DA-G0.js} +1 -1
  52. package/src/assets/web-panel/assets/{P2P-DXMJVls8.js → P2P-uwslV4XC.js} +2 -2
  53. package/src/assets/web-panel/assets/PdhVaultBrowser-CuNgwVnX.js +7 -0
  54. package/src/assets/web-panel/assets/{Permissions-D1Hbb51o.js → Permissions-CJayVX9H.js} +4 -4
  55. package/src/assets/web-panel/assets/{PersonalDataHub-BridiDhr.js → PersonalDataHub-Cb05H5go.js} +4 -4
  56. package/src/assets/web-panel/assets/{Pipeline-B4bUNCm1.js → Pipeline-BZlGKapZ.js} +1 -1
  57. package/src/assets/web-panel/assets/{Privacy-BTu_HEqK.js → Privacy-BIzZWYzd.js} +1 -1
  58. package/src/assets/web-panel/assets/{ProjectInit-SVtL2hnt.js → ProjectInit-vEYYyQXQ.js} +2 -2
  59. package/src/assets/web-panel/assets/{ProjectSettings-B2Sh7JZ2.js → ProjectSettings-MZqTy5CC.js} +2 -2
  60. package/src/assets/web-panel/assets/{Projects-BwU1xalW.js → Projects-CRARUOl8.js} +1 -1
  61. package/src/assets/web-panel/assets/{Providers-BWdWQSDw.js → Providers-80VAK8PX.js} +1 -1
  62. package/src/assets/web-panel/assets/{QrScannerModal-Brzc-Sxb.js → QrScannerModal-CzRSoIwK.js} +1 -1
  63. package/src/assets/web-panel/assets/{QuickAsk-DIBz7FCe.js → QuickAsk-BpwQ2n4C.js} +1 -1
  64. package/src/assets/web-panel/assets/{Recommend-CZ8RriIJ.js → Recommend-BC03TZ79.js} +1 -1
  65. package/src/assets/web-panel/assets/{RemoteSession-CM0KJQ3t.js → RemoteSession-DE59-jaa.js} +2 -2
  66. package/src/assets/web-panel/assets/{Reputation-D_wo8H0O.js → Reputation-DOHmeWyA.js} +1 -1
  67. package/src/assets/web-panel/assets/{Row-D1G1fD7N.js → Row-hc5RZl1D.js} +1 -1
  68. package/src/assets/web-panel/assets/{RssFeed-dKCVtA0K.js → RssFeed-Cv5uMP7E.js} +3 -3
  69. package/src/assets/web-panel/assets/{Search-Be1D61xo.js → Search-qohu7Ug0.js} +1 -1
  70. package/src/assets/web-panel/assets/{Security-IbNiR6OC.js → Security-drCPFWV5.js} +4 -4
  71. package/src/assets/web-panel/assets/{Services-nuHK8y8p.js → Services-BAEgUeRy.js} +2 -2
  72. package/src/assets/web-panel/assets/{Skeleton-DnM5jdnC.js → Skeleton-CkJkKBlo.js} +1 -1
  73. package/src/assets/web-panel/assets/{Skills-DCTdoq_q.js → Skills-bMuKEpez.js} +1 -1
  74. package/src/assets/web-panel/assets/{Sla-DlWun-Ui.js → Sla-DxWQVHRC.js} +1 -1
  75. package/src/assets/web-panel/assets/{SpeechSettings-C19kv2sd.js → SpeechSettings-BpS8idmV.js} +1 -1
  76. package/src/assets/web-panel/assets/{SyncSettings-CkQIR_Hu.js → SyncSettings-BPBLlW5v.js} +2 -2
  77. package/src/assets/web-panel/assets/{Tasks-DdbqOEbs.js → Tasks-C4SLEeUh.js} +1 -1
  78. package/src/assets/web-panel/assets/{Templates-B7GpIXeo.js → Templates-r-wfU39U.js} +1 -1
  79. package/src/assets/web-panel/assets/{Tenant-ByEstFhY.js → Tenant-C7vjRmLN.js} +1 -1
  80. package/src/assets/web-panel/assets/{Terminal-BKRVID1a.js → Terminal-DdzeFCV2.js} +2 -2
  81. package/src/assets/web-panel/assets/{TimelineRenderer-CNS3dHNv.js → TimelineRenderer-CYyWN2KD.js} +1 -1
  82. package/src/assets/web-panel/assets/{Tokens-BykqylCL.js → Tokens-D8A9osUg.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trigger-ByNxq51W.js → Trigger-DBvrNlyS.js} +1 -1
  84. package/src/assets/web-panel/assets/{Trust-BlrFsdaS.js → Trust-DBVAGc7o.js} +1 -1
  85. package/src/assets/web-panel/assets/{UkeySign-Dg26A-sd.js → UkeySign-C1vQUCRJ.js} +1 -1
  86. package/src/assets/web-panel/assets/{VideoEditing-C1wUxNn0.js → VideoEditing-BKs4dah4.js} +1 -1
  87. package/src/assets/web-panel/assets/{Wallet-OphEUzI4.js → Wallet-ByIuj3lD.js} +4 -4
  88. package/src/assets/web-panel/assets/{WebAuthn-_8lL08hF.js → WebAuthn-DYlAFCm9.js} +3 -3
  89. package/src/assets/web-panel/assets/{WorkflowEditor-BnTuIvnP.js → WorkflowEditor-Dwyadd0c.js} +1 -1
  90. package/src/assets/web-panel/assets/{chat-3N3VLQYr.js → chat-Bm2f3s08.js} +1 -1
  91. package/src/assets/web-panel/assets/{colors-Bo_G96gg.js → colors-C8ORSh7V.js} +1 -1
  92. package/src/assets/web-panel/assets/{compact-item-DjubfjI_.js → compact-item-1iVlnsM-.js} +1 -1
  93. package/src/assets/web-panel/assets/{createContext-Cx_HSLCk.js → createContext-CmqNyUSL.js} +1 -1
  94. package/src/assets/web-panel/assets/devWarning-B69RCDDH.js +1 -0
  95. package/src/assets/web-panel/assets/{hasIn-D5OjAOlA.js → hasIn-rUMaX3Ul.js} +1 -1
  96. package/src/assets/web-panel/assets/index-9biMQ-tw.js +1 -0
  97. package/src/assets/web-panel/assets/{index-Bj7S5IJw.js → index-B53c3diB.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-C-_Cy0k_.js → index-B59OWAs7.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-DaU60K3A.js → index-B8BrB0Ls.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-UnpsQ6A0.js → index-BC32_0xT.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-BScGr1BY.js → index-BC8Wb6cy.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-CC7RnaPP.js → index-BCOhTILd.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-DXJqa1-I.js → index-BFniLMn9.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-C-4sfa0l.js → index-BIvM-uAX.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-C8dPFFhy.js → index-BK-RY0-7.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-CVPDhmVH.js → index-BQL9r73Y.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-CqZq3zWr.js → index-BVtnizyC.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-C5IwN9q3.js → index-Bf1PlIHp.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-Cz5tQ5PY.js → index-Bgw4Y2rU.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-CmLwI-Y8.js → index-BgwLNxmr.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-Y-H7j25u.js → index-C-J5-pGH.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-ydnEPOzZ.js → index-C-ZIHi42.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-HioDjvUF.js → index-C3B1S-mW.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-CRKk1JPX.js → index-C5RfRciU.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-x7o-2T3S.js → index-CCEyz58d.js} +1 -1
  116. package/src/assets/web-panel/assets/index-COie87kl.js +1 -0
  117. package/src/assets/web-panel/assets/{index-BvYo09C0.js → index-CTfEmKK0.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-CCjq3g32.js → index-CfiHyVyl.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-3_CEBEEf.js → index-CkFvuAex.js} +3 -3
  120. package/src/assets/web-panel/assets/{index-EZr3bvz2.js → index-D98FXb0w.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-C4MAnkl5.js → index-DDHk911Q.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-BgPb37tI.js → index-DJxtPFOh.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-CNmsP0Xf.js → index-DVJ1uKf4.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-DBvZhdCb.js → index-Dcck8QfW.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-B905-Mcs.js → index-DgUE51Pz.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-DrVjatPe.js → index-Dsve5Gkv.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-uAcJUJkx.js → index-DvedhJeM.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-DD1zSPZH.js → index-DwMdWKiF.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-BxgIE4PD.js → index-OcbzdRpT.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-Ce8EWU6r.js → index-fPK6GFEg.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-DlcbE0sX.js → index-geQinnns.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-Dbdr8tVi.js → index-pHWA7bmM.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-DE4XtzMl.js → index-reUHhuz8.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-Q_vn0t8d.js → index-tqTx5wXo.js} +1 -1
  135. package/src/assets/web-panel/assets/{initDefaultProps-DurpENJY.js → initDefaultProps-CuA-cpkL.js} +1 -1
  136. package/src/assets/web-panel/assets/{motion-CIh-z-gR.js → motion-CimmE_9b.js} +1 -1
  137. package/src/assets/web-panel/assets/{move-Uc_yI2NA.js → move-DlGlrltz.js} +1 -1
  138. package/src/assets/web-panel/assets/{mtc-parser-DUevj5wz.js → mtc-parser-CK6BJQ07.js} +1 -1
  139. package/src/assets/web-panel/assets/{omit-85eMYyur.js → omit-BKjBfZfB.js} +1 -1
  140. package/src/assets/web-panel/assets/{pickAttrs-AuxDD20F.js → pickAttrs-B2chVYw9.js} +1 -1
  141. package/src/assets/web-panel/assets/{placementArrow-DOWn8dd1.js → placementArrow-BW8aLJJ3.js} +1 -1
  142. package/src/assets/web-panel/assets/{responsiveObserve-CPxTWodH.js → responsiveObserve-dXlPl66S.js} +1 -1
  143. package/src/assets/web-panel/assets/{slide-BqvbGPjx.js → slide-hSa89S4G.js} +1 -1
  144. package/src/assets/web-panel/assets/{statusUtils-BzXKkV8d.js → statusUtils-DM6KLt-s.js} +1 -1
  145. package/src/assets/web-panel/assets/{styleChecker-B2O7yRk3.js → styleChecker-C9MQAK15.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFlexGapSupport-DRWp7px1.js → useFlexGapSupport-BpQDpP0z.js} +1 -1
  147. package/src/assets/web-panel/assets/{useFs-Dp0V7sjM.js → useFs-C7rtRViA.js} +1 -1
  148. package/src/assets/web-panel/assets/{usePersonalDataHub-CyCrG3ql.js → usePersonalDataHub-Dm15xafq.js} +1 -1
  149. package/src/assets/web-panel/assets/{vnode-CXhoFpFo.js → vnode-mEiEytw4.js} +1 -1
  150. package/src/assets/web-panel/assets/{zoom-0z3mtwEg.js → zoom-DzPxflhY.js} +1 -1
  151. package/src/assets/web-panel/index.html +1 -1
  152. package/src/command-help-index.json +5 -5
  153. package/src/commands/agent.js +51 -20
  154. package/src/commands/compact.js +349 -3
  155. package/src/commands/context.js +72 -1
  156. package/src/commands/graph.js +26 -15
  157. package/src/commands/hmemory.js +21 -0
  158. package/src/commands/hook.js +256 -28
  159. package/src/commands/memory.js +209 -42
  160. package/src/commands/promcomp.js +17 -0
  161. package/src/commands/serve.js +94 -10
  162. package/src/commands/session.js +2 -3
  163. package/src/commands/team.js +7 -1
  164. package/src/data/changelog.json +28 -2
  165. package/src/gateways/ws/session-core-protocol.js +62 -3
  166. package/src/gateways/ws/session-protocol.js +123 -15
  167. package/src/gateways/ws/ws-agent-handler.js +157 -9
  168. package/src/gateways/ws/ws-session-gateway.js +204 -30
  169. package/src/generated/cc-agent-protocol.schema.json +2094 -4
  170. package/src/harness/prompt-compressor.js +5 -55
  171. package/src/lib/agent-sandbox.js +14 -4
  172. package/src/lib/agent-team/team-distributed-graph-bridge.js +3 -3
  173. package/src/lib/app-server/context-memory-notifications.js +54 -0
  174. package/src/lib/app-server/rollout-store-factory.js +115 -0
  175. package/src/lib/app-server/rollout-store.js +310 -23
  176. package/src/lib/app-server/server.js +184 -7
  177. package/src/lib/app-server/sqlite-rollout-store.js +59 -16
  178. package/src/lib/auto-mode-config.js +26 -0
  179. package/src/lib/causal-observability.js +13 -1
  180. package/src/lib/context-memory-kernel/authority.js +95 -0
  181. package/src/lib/context-memory-kernel/durable-memory-port.js +296 -0
  182. package/src/lib/context-memory-kernel/index.js +8 -0
  183. package/src/lib/context-memory-kernel/jsonl-session-context-port.js +232 -0
  184. package/src/lib/context-memory-kernel/live-compaction.js +375 -0
  185. package/src/lib/context-memory-kernel/memory-service.js +667 -0
  186. package/src/lib/context-memory-kernel/message-adapter.js +451 -0
  187. package/src/lib/context-memory-kernel/privacy-purge-port.js +244 -0
  188. package/src/lib/context-memory-kernel/provider-context.js +192 -0
  189. package/src/lib/context-memory-kernel/runtime.js +61 -0
  190. package/src/lib/direct-model-usage.js +22 -18
  191. package/src/lib/graph-kernel/cutover-authority-resolver.js +4 -5
  192. package/src/lib/graph-kernel/cutover-ledger.js +2 -2
  193. package/src/lib/graph-kernel/event-store.js +3 -5
  194. package/src/lib/graph-kernel/migration-saga.js +2 -2
  195. package/src/lib/graph-kernel/production-cutover-evidence.js +8 -1
  196. package/src/lib/hierarchical-memory.js +22 -0
  197. package/src/lib/hook-audit-store.js +170 -0
  198. package/src/lib/hook-event-bus.cjs +0 -0
  199. package/src/lib/hook-manager.js +25 -83
  200. package/src/lib/hook-runtime-adapters.js +233 -0
  201. package/src/lib/hook-runtime-contract.cjs +291 -0
  202. package/src/lib/hook-runtime-contract.js +21 -0
  203. package/src/lib/hook-trust.js +210 -0
  204. package/src/lib/hooks-v2-producers.js +52 -6
  205. package/src/lib/hooks-v2-runtime.js +443 -178
  206. package/src/lib/llm-pricing.js +10 -0
  207. package/src/lib/memory-manager.js +29 -4
  208. package/src/lib/model-context-window.js +52 -0
  209. package/src/lib/permanent-memory.js +17 -0
  210. package/src/lib/plan-mode.js +8 -4
  211. package/src/lib/process-execution-broker/index.js +208 -16
  212. package/src/lib/runtime-usage-ledger.js +20 -0
  213. package/src/lib/session-consolidator.js +59 -0
  214. package/src/lib/session-core-singletons.js +17 -4
  215. package/src/lib/session-hooks.js +29 -2
  216. package/src/lib/session-transcript-migration.js +188 -0
  217. package/src/lib/settings-hook-events.cjs +37 -401
  218. package/src/lib/settings-hook-events.js +210 -8
  219. package/src/lib/settings-hooks.cjs +42 -83
  220. package/src/lib/ws-session-manager.js +4 -1
  221. package/src/repl/agent-repl.js +186 -53
  222. package/src/runtime/agent-core.js +376 -350
  223. package/src/runtime/headless-runner.js +40 -33
  224. package/src/runtime/headless-stream.js +131 -30
  225. package/src/assets/web-panel/assets/MarkdownRenderer-Dt8hH_qA.js +0 -1
  226. package/src/assets/web-panel/assets/MobileProjects-Jg2dVUc-.js +0 -1
  227. package/src/assets/web-panel/assets/PdhVaultBrowser-0jYeVmyY.js +0 -7
  228. package/src/assets/web-panel/assets/devWarning-BX944k9E.js +0 -1
  229. package/src/assets/web-panel/assets/index-C_9Jt_SR.js +0 -1
  230. package/src/assets/web-panel/assets/index-DL2EFx7m.js +0 -1
@@ -901,8 +901,8 @@ async function runAgentHeadlessInWorkspace(
901
901
  effectiveHooks._authorityErrors.length > 0
902
902
  ? effectiveHooks
903
903
  : null;
904
- // First-run trust notice for an untrusted/cloned repo's shell-running
905
- // hooks (Claude-Code 2.1.195 parity). Best-effort, stderr-only.
904
+ // Explain the explicit content-bound trust gate. Displaying this notice
905
+ // never authorizes execution.
906
906
  try {
907
907
  const notice = projectHookTrustNotice({
908
908
  cwd,
@@ -910,7 +910,7 @@ async function runAgentHeadlessInWorkspace(
910
910
  });
911
911
  if (notice) writeErr(notice + "\n");
912
912
  } catch {
913
- /* trust notice is best-effort */
913
+ /* notice output is best-effort; the runtime gate is fail-closed */
914
914
  }
915
915
  } catch (error) {
916
916
  settingsHooks = {};
@@ -1605,7 +1605,8 @@ async function runAgentHeadlessInWorkspace(
1605
1605
  if (approvalGate) {
1606
1606
  approvalGate.setAuthorizationConsumer?.(null);
1607
1607
  if (typeof approvalGate.setSessionPolicy === "function") {
1608
- approvalGate.setSessionPolicy(sessionId, perm.sessionPolicy);
1608
+ await approvalGate.setSessionPolicy(sessionId, perm.sessionPolicy);
1609
+ await approvalGate.awaitPersistence?.();
1609
1610
  }
1610
1611
  if (typeof approvalGate.setConfirmer === "function") {
1611
1612
  approvalGate.setConfirmer(perm.confirmer);
@@ -1708,7 +1709,7 @@ async function runAgentHeadlessInWorkspace(
1708
1709
  try {
1709
1710
  const { runUserPromptSubmitHooks } =
1710
1711
  await import("../lib/settings-hook-events.js");
1711
- const ups = runUserPromptSubmitHooks(settingsHooks, {
1712
+ const ups = await runUserPromptSubmitHooks(settingsHooks, {
1712
1713
  prompt: userContent,
1713
1714
  cwd,
1714
1715
  sessionId,
@@ -1739,11 +1740,13 @@ async function runAgentHeadlessInWorkspace(
1739
1740
  try {
1740
1741
  const { runInstructionsLoadedHooks } =
1741
1742
  await import("../lib/settings-hook-events.js");
1742
- instructionsLoadedContext = runInstructionsLoadedHooks(settingsHooks, {
1743
- files: _loadedInstructions.files,
1744
- cwd,
1745
- sessionId,
1746
- }).additionalContext;
1743
+ instructionsLoadedContext = (
1744
+ await runInstructionsLoadedHooks(settingsHooks, {
1745
+ files: _loadedInstructions.files,
1746
+ cwd,
1747
+ sessionId,
1748
+ })
1749
+ ).additionalContext;
1747
1750
  } catch (_err) {
1748
1751
  instructionsLoadedContext = null;
1749
1752
  }
@@ -1755,11 +1758,13 @@ async function runAgentHeadlessInWorkspace(
1755
1758
  try {
1756
1759
  const { runSessionStartHooks } =
1757
1760
  await import("../lib/settings-hook-events.js");
1758
- sessionStartContext = runSessionStartHooks(settingsHooks, {
1759
- source: resumeId ? "resume" : "startup",
1760
- cwd,
1761
- sessionId,
1762
- }).additionalContext;
1761
+ sessionStartContext = (
1762
+ await runSessionStartHooks(settingsHooks, {
1763
+ source: resumeId ? "resume" : "startup",
1764
+ cwd,
1765
+ sessionId,
1766
+ })
1767
+ ).additionalContext;
1763
1768
  } catch (_err) {
1764
1769
  sessionStartContext = null;
1765
1770
  }
@@ -1774,7 +1779,7 @@ async function runAgentHeadlessInWorkspace(
1774
1779
  try {
1775
1780
  const { runObserveHooks } =
1776
1781
  await import("../lib/settings-hook-events.js");
1777
- runObserveHooks(
1782
+ await runObserveHooks(
1778
1783
  settingsHooks,
1779
1784
  "SessionResume",
1780
1785
  {
@@ -2631,12 +2636,14 @@ async function runAgentHeadlessInWorkspace(
2631
2636
  // --max-budget-usd: a hard USD spend cap (Claude-Code parity). Accumulates
2632
2637
  // per-call cost from token-usage events and stops the loop before the next
2633
2638
  // paid call once the cap is reached. null → no cap (unchanged behavior).
2634
- const costBudget = options.maxCostUsd
2635
- ? new CostBudget({
2636
- limitUsd: options.maxCostUsd,
2637
- table: options.priceTable,
2638
- })
2639
- : null;
2639
+ // Track priced usage even when no hard cap is configured so every machine
2640
+ // readable terminal result can carry authoritative cost evidence. A null
2641
+ // limit never warns or stops the run; it only accumulates the same estimates
2642
+ // that an enabled --max-budget-usd guard would use.
2643
+ const costBudget = new CostBudget({
2644
+ limitUsd: options.maxCostUsd,
2645
+ table: options.priceTable,
2646
+ });
2640
2647
 
2641
2648
  const startedAt = deps.now ? deps.now() : Date.now();
2642
2649
  const toolCalls = [];
@@ -2770,9 +2777,8 @@ async function runAgentHeadlessInWorkspace(
2770
2777
  let _asyncStopHandled = false;
2771
2778
  const _settleAsyncStop = async () => {
2772
2779
  if (!settingsHooks || !_hookSupervisor) return { rewakes: [], results: [] };
2773
- const { dispatchAsyncHooks } =
2774
- await import("../lib/settings-hook-events.js");
2775
- dispatchAsyncHooks(
2780
+ const { runObserveHooks } = await import("../lib/settings-hook-events.js");
2781
+ await runObserveHooks(
2776
2782
  settingsHooks,
2777
2783
  "Stop",
2778
2784
  { reason: endReason, cwd, session_id: sessionId },
@@ -3613,21 +3619,22 @@ async function runAgentHeadlessInWorkspace(
3613
3619
  await cleanupDeadline.run("settings-hooks", async () => {
3614
3620
  if (settingsHooks) {
3615
3621
  try {
3616
- const { runObserveHooks, dispatchAsyncHooks } =
3622
+ const { runObserveHooks } =
3617
3623
  await import("../lib/settings-hook-events.js");
3618
3624
  const stopPayload = {
3619
3625
  reason: pipeState.closed ? "pipe_closed" : endReason,
3620
3626
  cwd,
3621
3627
  session_id: sessionId,
3622
3628
  };
3623
- const stopOutcome = runObserveHooks(
3629
+ const stopOutcome = await runObserveHooks(
3624
3630
  settingsHooks,
3625
3631
  "Stop",
3626
3632
  stopPayload,
3627
- { cwd },
3633
+ { cwd, supervisor: _hookSupervisor },
3628
3634
  );
3629
3635
  const stopFailures = (stopOutcome?.results || []).filter(
3630
3636
  (result) =>
3637
+ result?.status === "error" ||
3631
3638
  result?.nonBlockingError === true ||
3632
3639
  result?.malformedDecision === true ||
3633
3640
  result?.breakerOpen === true,
@@ -3647,10 +3654,6 @@ async function runAgentHeadlessInWorkspace(
3647
3654
  // Skip the async Stop dispatch/settle here if the auto-rewake re-drive
3648
3655
  // loop already fired + drained it this run (avoids double-execution).
3649
3656
  if (_hookSupervisor && !_asyncStopHandled) {
3650
- dispatchAsyncHooks(settingsHooks, "Stop", stopPayload, {
3651
- cwd,
3652
- supervisor: _hookSupervisor,
3653
- });
3654
3657
  // Bounded settle: wait for in-flight async hooks (Stop + any
3655
3658
  // PostToolUse dispatched during the loop) to finish, capped so a
3656
3659
  // slow/hung check can never stall the run. Default 5s; tunable.
@@ -3694,7 +3697,7 @@ async function runAgentHeadlessInWorkspace(
3694
3697
  // Always reap the supervisor (kills any straggler child + detaches the
3695
3698
  // exit reaper), whether the async Stop was handled here or in re-drive.
3696
3699
  if (_hookSupervisor) _hookSupervisor.stopAll();
3697
- runObserveHooks(
3700
+ await runObserveHooks(
3698
3701
  settingsHooks,
3699
3702
  "SessionEnd",
3700
3703
  {
@@ -3901,6 +3904,7 @@ async function runAgentHeadlessInWorkspace(
3901
3904
  num_turns: budget.consumed,
3902
3905
  duration_ms: durationMs,
3903
3906
  usage,
3907
+ total_cost_usd: costBudget.spentUsd,
3904
3908
  ...(compactionDegradations.length
3905
3909
  ? { compaction_degradations: compactionDegradations }
3906
3910
  : {}),
@@ -3916,6 +3920,7 @@ async function runAgentHeadlessInWorkspace(
3916
3920
  sessionId,
3917
3921
  toolCalls,
3918
3922
  usage,
3923
+ totalCostUsd: costBudget.spentUsd,
3919
3924
  numTurns: budget.consumed,
3920
3925
  durationMs,
3921
3926
  denials,
@@ -3976,6 +3981,7 @@ function buildResultEnvelope({
3976
3981
  sessionId,
3977
3982
  toolCalls,
3978
3983
  usage,
3984
+ totalCostUsd,
3979
3985
  numTurns,
3980
3986
  durationMs,
3981
3987
  denials,
@@ -3992,6 +3998,7 @@ function buildResultEnvelope({
3992
3998
  duration_ms: durationMs,
3993
3999
  tool_calls: toolCalls,
3994
4000
  usage,
4001
+ total_cost_usd: totalCostUsd,
3995
4002
  };
3996
4003
  // Only present when something was blocked — keeps the no-denial envelope
3997
4004
  // byte-identical to before (Claude-Code 2.1.193 denial reasons, json mode).
@@ -51,7 +51,10 @@ import {
51
51
  } from "./agent-core.js";
52
52
  import { composeSystemPrompt } from "./system-prompt.js";
53
53
  import { collapseConsecutiveMessagesInPlace } from "./message-roles.js";
54
- import { sanitizeToolPairs } from "../harness/prompt-compressor.js";
54
+ import {
55
+ estimateMessagesTokens,
56
+ sanitizeToolPairs,
57
+ } from "../harness/prompt-compressor.js";
55
58
  import { compactConversationWithProvider } from "../harness/provider-backed-compaction.js";
56
59
  import { HostResourceBudget } from "../lib/host-resource-budget.js";
57
60
  import { projectCanonicalResumeMessages } from "../lib/session-message-provenance.js";
@@ -1549,7 +1552,10 @@ async function runAgentHeadlessStreamInWorkspace(
1549
1552
  seq: true,
1550
1553
  trace_id: true,
1551
1554
  tool_use_id: true,
1552
- permission_decision: true,
1555
+ // Hook lifecycle events can occur before the optional first-line hello.
1556
+ // Buffer their additive policy projection until negotiation either accepts
1557
+ // or disables this feature.
1558
+ permission_decision: null,
1553
1559
  };
1554
1560
  const streamCoalescer =
1555
1561
  deps.streamCoalescer ||
@@ -1560,13 +1566,24 @@ async function runAgentHeadlessStreamInWorkspace(
1560
1566
  fieldGate,
1561
1567
  });
1562
1568
  const emit = streamCoalescer.emit;
1569
+ const pendingHookPolicyEvents = [];
1570
+ const settlePermissionDecisionGate = (enabled) => {
1571
+ fieldGate.permission_decision = enabled === true;
1572
+ if (fieldGate.permission_decision) {
1573
+ for (const event of pendingHookPolicyEvents.splice(0)) emit(event);
1574
+ } else {
1575
+ pendingHookPolicyEvents.length = 0;
1576
+ }
1577
+ };
1563
1578
  const removeHookObserver =
1564
1579
  options.includeHookEvents === true
1565
1580
  ? addHooksV2EventObserver(sessionId, (event) => {
1566
1581
  emit(event);
1567
- if (fieldGate.permission_decision !== false) {
1568
- const policyEvent = projectHookPolicyDecision(event);
1569
- if (policyEvent) emit(policyEvent);
1582
+ const policyEvent = projectHookPolicyDecision(event);
1583
+ if (!policyEvent) return;
1584
+ if (fieldGate.permission_decision === true) emit(policyEvent);
1585
+ else if (fieldGate.permission_decision == null) {
1586
+ pendingHookPolicyEvents.push(policyEvent);
1570
1587
  }
1571
1588
  })
1572
1589
  : null;
@@ -1792,8 +1809,8 @@ async function runAgentHeadlessStreamInWorkspace(
1792
1809
  effectiveHooks._authorityErrors.length > 0
1793
1810
  ? effectiveHooks
1794
1811
  : null;
1795
- // First-run trust notice for an untrusted/cloned repo's shell-running
1796
- // hooks (Claude-Code 2.1.195 parity). stderr keeps the NDJSON stdout clean.
1812
+ // Explain the explicit content-bound trust gate. stderr keeps NDJSON
1813
+ // stdout clean; the notice itself never grants Hook authority.
1797
1814
  try {
1798
1815
  const notice = projectHookTrustNotice({
1799
1816
  cwd,
@@ -1801,7 +1818,7 @@ async function runAgentHeadlessStreamInWorkspace(
1801
1818
  });
1802
1819
  if (notice) writeErr(notice + "\n");
1803
1820
  } catch {
1804
- /* trust notice is best-effort */
1821
+ /* notice output is best-effort; the runtime gate is fail-closed */
1805
1822
  }
1806
1823
  } catch (error) {
1807
1824
  settingsHooks = {};
@@ -1847,7 +1864,7 @@ async function runAgentHeadlessStreamInWorkspace(
1847
1864
  const runObserveHooks =
1848
1865
  deps.runObserveHooks ||
1849
1866
  (await import("../lib/settings-hook-events.js")).runObserveHooks;
1850
- runObserveHooks(
1867
+ await runObserveHooks(
1851
1868
  settingsHooks,
1852
1869
  "SessionEnd",
1853
1870
  { reason, cwd, session_id: sessionId },
@@ -2358,7 +2375,8 @@ async function runAgentHeadlessStreamInWorkspace(
2358
2375
  }
2359
2376
  if (approvalGate) {
2360
2377
  approvalGate.setAuthorizationConsumer?.(null);
2361
- approvalGate.setSessionPolicy?.(sessionId, perm.sessionPolicy);
2378
+ await approvalGate.setSessionPolicy?.(sessionId, perm.sessionPolicy);
2379
+ await approvalGate.awaitPersistence?.();
2362
2380
  approvalGate.setConfirmer?.(
2363
2381
  interactive && perm.allowInteractiveApprovals
2364
2382
  ? interactiveConfirm
@@ -2562,11 +2580,13 @@ async function runAgentHeadlessStreamInWorkspace(
2562
2580
  try {
2563
2581
  const { runInstructionsLoadedHooks } =
2564
2582
  await import("../lib/settings-hook-events.js");
2565
- const ctx = runInstructionsLoadedHooks(settingsHooks, {
2566
- files: _loadedInstructions.files,
2567
- cwd,
2568
- sessionId,
2569
- }).additionalContext;
2583
+ const ctx = (
2584
+ await runInstructionsLoadedHooks(settingsHooks, {
2585
+ files: _loadedInstructions.files,
2586
+ cwd,
2587
+ sessionId,
2588
+ })
2589
+ ).additionalContext;
2570
2590
  if (ctx) messages.push({ role: "system", content: ctx });
2571
2591
  } catch (_err) {
2572
2592
  // best-effort
@@ -2603,11 +2623,13 @@ async function runAgentHeadlessStreamInWorkspace(
2603
2623
  try {
2604
2624
  const { runSessionStartHooks } =
2605
2625
  await import("../lib/settings-hook-events.js");
2606
- const ctx = runSessionStartHooks(settingsHooks, {
2607
- source: "startup",
2608
- cwd,
2609
- sessionId,
2610
- }).additionalContext;
2626
+ const ctx = (
2627
+ await runSessionStartHooks(settingsHooks, {
2628
+ source: "startup",
2629
+ cwd,
2630
+ sessionId,
2631
+ })
2632
+ ).additionalContext;
2611
2633
  if (ctx) messages.push({ role: "system", content: ctx });
2612
2634
  } catch (_err) {
2613
2635
  // best-effort
@@ -3453,6 +3475,7 @@ async function runAgentHeadlessStreamInWorkspace(
3453
3475
  parsed.hello,
3454
3476
  );
3455
3477
  applyNegotiationToGate(negotiated, fieldGate);
3478
+ settlePermissionDecisionGate(fieldGate.permission_decision !== false);
3456
3479
  emit({
3457
3480
  type: "system",
3458
3481
  subtype: "negotiated",
@@ -3466,6 +3489,9 @@ async function runAgentHeadlessStreamInWorkspace(
3466
3489
  });
3467
3490
  continue;
3468
3491
  }
3492
+ if (fieldGate.permission_decision == null) {
3493
+ settlePermissionDecisionGate(true);
3494
+ }
3469
3495
  if (parsed.interrupt) {
3470
3496
  currentAbort?.abort();
3471
3497
  continue;
@@ -3706,13 +3732,7 @@ async function runAgentHeadlessStreamInWorkspace(
3706
3732
  const compactionCallId = `compact-${++slashRequestSeq}`;
3707
3733
  let compactionProviderStarted = false;
3708
3734
  try {
3709
- ({
3710
- messages: compacted,
3711
- stats,
3712
- degradedEvent,
3713
- usageEvent,
3714
- usageUnknownEvent,
3715
- } = await compactConversationWithProvider(messages, {
3735
+ const providerCompactionOptions = {
3716
3736
  provider,
3717
3737
  model,
3718
3738
  baseUrl,
@@ -3746,7 +3766,84 @@ async function runAgentHeadlessStreamInWorkspace(
3746
3766
  compactionProviderStarted = true;
3747
3767
  return compactionCallId;
3748
3768
  },
3749
- }));
3769
+ };
3770
+ const { resolveCliContextMemoryCutover } =
3771
+ await import("../lib/context-memory-kernel/authority.js");
3772
+ const cutover = resolveCliContextMemoryCutover({
3773
+ env: options.contextMemoryEnv || process.env,
3774
+ scopeKey: `cli:session:${sessionId}`,
3775
+ });
3776
+ if (cutover.canonical) {
3777
+ const { compactLiveMessagesCanonical } =
3778
+ await import("../lib/context-memory-kernel/live-compaction.js");
3779
+ let compatibilityResult = null;
3780
+ const canonical = await compactLiveMessagesCanonical(messages, {
3781
+ compressor: {
3782
+ maxTokens: Math.max(
3783
+ 256,
3784
+ Math.floor(estimateMessagesTokens(messages) * 0.6),
3785
+ ),
3786
+ compress: async (dropped) => {
3787
+ compatibilityResult = await compactConversationWithProvider(
3788
+ dropped,
3789
+ providerCompactionOptions,
3790
+ );
3791
+ return compatibilityResult;
3792
+ },
3793
+ },
3794
+ sessionId,
3795
+ operationId: `manual-${randomUUID()}`,
3796
+ provider,
3797
+ model,
3798
+ env: options.contextMemoryEnv || process.env,
3799
+ persist,
3800
+ trigger: "manual",
3801
+ ...(persist
3802
+ ? {
3803
+ commit: (canonicalStats, output, settlement = {}) => {
3804
+ sessionHostLease?.assert?.();
3805
+ return requireSynchronousRecoveryResult(
3806
+ store.appendCompactEventIfMessagesMatch(
3807
+ sessionId,
3808
+ {
3809
+ ...canonicalStats,
3810
+ trigger: "manual",
3811
+ messages: projectCanonicalResumeMessages(output, {
3812
+ strict: true,
3813
+ }),
3814
+ },
3815
+ settlement.expectedMessages,
3816
+ ),
3817
+ "appendCompactEventIfMessagesMatch",
3818
+ );
3819
+ },
3820
+ }
3821
+ : {}),
3822
+ });
3823
+ compacted = canonical.messages;
3824
+ stats = canonical.stats;
3825
+ degradedEvent = compatibilityResult?.degradedEvent || null;
3826
+ usageEvent = compatibilityResult?.usageEvent || null;
3827
+ usageUnknownEvent = compatibilityResult?.usageUnknownEvent || null;
3828
+ if (canonical.receipt.status === "stale") {
3829
+ const error = new Error(
3830
+ "session messages changed during canonical compaction",
3831
+ );
3832
+ error.code = "SESSION_REVISION_STALE";
3833
+ throw error;
3834
+ }
3835
+ } else {
3836
+ ({
3837
+ messages: compacted,
3838
+ stats,
3839
+ degradedEvent,
3840
+ usageEvent,
3841
+ usageUnknownEvent,
3842
+ } = await compactConversationWithProvider(
3843
+ messages,
3844
+ providerCompactionOptions,
3845
+ ));
3846
+ }
3750
3847
  } catch (error) {
3751
3848
  if (isAbortError(error) || options.signal?.aborted) throw error;
3752
3849
  if (error?.runtimeLedgerPersistence === true) throw error;
@@ -3840,7 +3937,11 @@ async function runAgentHeadlessStreamInWorkspace(
3840
3937
  const shouldPersistCompact = stats?.strategy !== "none";
3841
3938
  let settlementError = null;
3842
3939
  let persistenceFailure = null;
3843
- if (persist && shouldPersistCompact) {
3940
+ if (
3941
+ persist &&
3942
+ shouldPersistCompact &&
3943
+ stats?.canonicalAlreadySettled !== true
3944
+ ) {
3844
3945
  try {
3845
3946
  sessionHostLease?.assert?.();
3846
3947
  requireSynchronousRecoveryResult(
@@ -4218,7 +4319,7 @@ async function runAgentHeadlessStreamInWorkspace(
4218
4319
  try {
4219
4320
  const { runUserPromptSubmitHooks } =
4220
4321
  await import("../lib/settings-hook-events.js");
4221
- const ups = runUserPromptSubmitHooks(settingsHooks, {
4322
+ const ups = await runUserPromptSubmitHooks(settingsHooks, {
4222
4323
  prompt: userContent,
4223
4324
  cwd,
4224
4325
  sessionId,
@@ -1 +0,0 @@
1
- import{P as a,J as p,b as c}from"./vendor-Bn1JzzAn.js";import{r as s}from"./markdown-Yo_c6Krv.js";import{_ as d}from"./index-3_CEBEEf.js";const _={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(t,{expose:o}){o();const e=t,r=c(()=>s(e.content||"")),n={props:e,rendered:r,computed:c,get renderMarkdown(){return s}};return Object.defineProperty(n,"__isScriptSetup",{enumerable:!1,value:!0}),n}},i=["innerHTML"];function m(t,o,e,r,n,u){return a(),p("div",{class:"markdown-content",innerHTML:r.rendered},null,8,i)}const w=d(_,[["render",m],["__scopeId","data-v-0b0b9f63"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/MarkdownRenderer.vue"]]);export{w as M};
@@ -1 +0,0 @@
1
- import{I as c,J as g,c as l,K as r,N as u,P as h,U as o,R as t,Q as m}from"./vendor-Bn1JzzAn.js";import{_ as v,b}from"./index-3_CEBEEf.js";import{a8 as y,M}from"./icons-DG5UD-6K.js";const x={__name:"MobileProjects",setup(p,{expose:i}){i();const n=u(),{t:e}=b();function a(){n.push("/projects")}function _(){n.push("/mobile-bridge")}const s={router:n,t:e,goToProjects:a,goToMobileBridge:_,get useRouter(){return u},get useI18n(){return b},get MobileOutlined(){return M},get FolderOutlined(){return y}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}},B={class:"mobile-projects-placeholder"},O={class:"title"},k={class:"subtitle"},w={class:"explainer"};function T(p,i,n,e,a,_){const s=c("a-alert"),d=c("a-button"),f=c("a-space"),P=c("a-empty"),j=c("a-card");return h(),g("div",B,[l(j,null,{default:r(()=>[l(P,{description:!1},{image:r(()=>[l(e.MobileOutlined,{style:{fontSize:"64px",color:"#bfbfbf"}})]),default:r(()=>[o("h2",O,t(e.t("mobileProjects.title")),1),o("p",k,t(e.t("mobileProjects.subtitle")),1),l(s,{message:e.t("mobileProjects.v02Banner"),type:"info","show-icon":"",class:"banner"},null,8,["message"]),o("div",w,[o("h3",null,t(e.t("mobileProjects.currentDirection")),1),o("p",null,t(e.t("mobileProjects.currentDirectionBody")),1),o("ul",null,[o("li",null,t(e.t("mobileProjects.stepPhone")),1),o("li",null,t(e.t("mobileProjects.stepTap")),1),o("li",null,t(e.t("mobileProjects.stepPull")),1)]),o("h3",null,t(e.t("mobileProjects.reverseDirection")),1),o("p",null,t(e.t("mobileProjects.reverseDirectionBody")),1)]),l(f,{class:"actions"},{default:r(()=>[l(d,{type:"primary",onClick:e.goToProjects},{default:r(()=>[l(e.FolderOutlined),m(" "+t(e.t("mobileProjects.viewLocalProjects")),1)]),_:1}),l(d,{onClick:e.goToMobileBridge},{default:r(()=>[l(e.MobileOutlined),m(" "+t(e.t("mobileProjects.checkBridge")),1)]),_:1})]),_:1})]),_:1})]),_:1})])}const N=v(x,[["render",T],["__scopeId","data-v-9262cc45"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/views/MobileProjects.vue"]]);export{N as default};
@@ -1,7 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ChatBubbleRenderer-CVfvAy-n.js","./vendor-Bn1JzzAn.js","./index-3_CEBEEf.js","./icons-DG5UD-6K.js","./index-Cq93VfoF.css","./ChatBubbleRenderer-gy5SDGw2.css","./OrderTableRenderer-Du-Kct3p.js","./OrderTableRenderer-CfrDjSHT.css","./TimelineRenderer-CNS3dHNv.js","./TimelineRenderer-BlTAtkOc.css","./EmailListRenderer-CsnhTW22.js","./EmailListRenderer-DTPZPx_S.css","./GenericCardRenderer-D3d9D8L9.js","./GenericCardRenderer-o85VDYQS.css"])))=>i.map(i=>d[i]);
2
- import{E as ue,r as E,b as w,I as g,P as u,J as O,U as v,c,S as C,V as x,_ as M,F as V,Z as se,a0 as ae,R,K as m,Q as b,W as L,o as J}from"./vendor-Bn1JzzAn.js";import{u as U}from"./usePersonalDataHub-CyCrG3ql.js";import{_ as F,e as I,d as P}from"./index-3_CEBEEf.js";import{aa as q,ag as Q,M as z,aI as G,v as H,aH as K,aq as W,ac as Y,e as de,d as fe,k as pe,ai as me,aA as _e,R as ye}from"./icons-DG5UD-6K.js";import"./useShellMode-CgR0wCYM.js";const T=Object.freeze({q:"",category:null,adapter:null,subtype:null,since:null,until:null}),B=50,Z=300,X=ue("pdhBrowser",()=>{const r=E({...T}),t=E([]),n=E(null),e=E(!1),o=E(!1),a=E(null),l=E(null),s=E(!1),i=E({byCategory:{},byAdapter:{},bySubtype:{},total:0});let d=0,_=null;const j=w(()=>t.value.length>0),A=w(()=>n.value!=null);function h(S={}){const p={},f=r.value;return f.q&&f.q.trim()&&(p.q=f.q.trim()),f.category&&(p.category=f.category),f.adapter&&(p.adapter=f.adapter),f.subtype&&(p.subtype=f.subtype),Number.isFinite(f.since)&&(p.since=f.since),Number.isFinite(f.until)&&(p.until=f.until),{...p,...S}}async function y(){const S=++d;e.value=!0,a.value=null;const p=U();try{const[f,D]=await Promise.all([p.searchEvents(h({limit:B})),p.facetCounts({...r.value.q&&r.value.q.trim()?{q:r.value.q.trim()}:{},...Number.isFinite(r.value.since)?{since:r.value.since}:{},...Number.isFinite(r.value.until)?{until:r.value.until}:{}})]);if(S!==d)return;t.value=f.rows||[],n.value=f.nextCursor||null,l.value=f.mode||"like",s.value=!!f.shortQuery,i.value={byCategory:D.byCategory||{},byAdapter:D.byAdapter||{},bySubtype:D.bySubtype||{},total:D.total||0}}catch(f){if(S!==d)return;a.value=f&&f.message?f.message:String(f),t.value=[],n.value=null}finally{S===d&&(e.value=!1)}}async function k(){if(!n.value||o.value)return;o.value=!0,a.value=null;const S=U();try{const p=await S.searchEvents(h({cursor:n.value,limit:B}));t.value=t.value.concat(p.rows||[]),n.value=p.nextCursor||null,l.value=p.mode||l.value}catch(p){a.value=p&&p.message?p.message:String(p)}finally{o.value=!1}}function le(S,p){if(!(S in T))throw new Error(`pdhBrowser.setFilter: unknown key "${S}"`);r.value={...r.value,[S]:p},_&&clearTimeout(_),_=setTimeout(()=>{_=null,y()},Z)}function ie(S){return r.value={...T,...S},_&&(clearTimeout(_),_=null),y()}function ce(){r.value={...T},t.value=[],n.value=null,a.value=null,i.value={byCategory:{},byAdapter:{},bySubtype:{},total:0}}return{filters:r,results:t,cursor:n,isLoading:e,isAppending:o,error:a,mode:l,shortQuery:s,facets:i,hasResults:j,canLoadMore:A,search:y,loadMore:k,setFilter:le,setFilters:ie,reset:ce,PAGE_SIZE:B,SEARCH_DEBOUNCE_MS:Z}}),ge=Object.freeze(["chat","social","email","shopping","travel","system","ai-chat","other"]),ve=Object.freeze({chat:"社交聊天",social:"内容平台",email:"邮件",shopping:"支付订单",travel:"出行",system:"系统数据","ai-chat":"AI 对话",other:"其他"});function N(r){return ve[r]||r||"未知"}const be=Object.freeze([["wechat","chat"],["messaging-","chat"],["social-","social"],["email-","email"],["shopping-","shopping"],["alipay-","shopping"],["travel-","travel"],["system-data","system"],["browser-","system"],["meeting-","system"],["vscode","system"],["vscodium","system"],["jetbrains-ide","system"],["win-recent","system"],["git-activity","system"],["shell-history","system"],["hbuilderx","system"],["local-files","system"],["cursor","ai-chat"],["claude-code","ai-chat"],["ai-chat-","ai-chat"]]);function $(r){if(typeof r!="string"||r.length===0)return"other";for(const[t,n]of be)if(t.endsWith("-")||t==="system-data"){if(r.startsWith(t))return n}else if(r===t)return n;return"other"}const he={__name:"CategorySidebar",props:{selected:{type:String,default:null},facets:{type:Object,default:()=>({byCategory:{},total:0})}},emits:["select"],setup(r,{expose:t}){t();const n=r,e=w(()=>n.facets.total||0),o={chat:Y,social:W,email:K,shopping:H,travel:G,system:z,"ai-chat":Q,other:q};function a(i){return o[i]||q}function l(i){return i?{backgroundColor:"#fff",color:"#1677ff"}:{backgroundColor:"#f0f0f0",color:"#666"}}const s={props:n,total:e,ICONS:o,iconFor:a,badgeStyle:l,computed:w,get AppstoreOutlined(){return q},get MessageOutlined(){return Y},get PlayCircleOutlined(){return W},get MailOutlined(){return K},get ShoppingOutlined(){return H},get CarOutlined(){return G},get MobileOutlined(){return z},get RobotOutlined(){return Q},get CATEGORIES(){return ge},get categoryLabel(){return N}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}},Se={class:"pdh-sidebar"},Oe=["onClick"],we={class:"label"};function Ce(r,t,n,e,o,a){const l=g("a-badge");return u(),O("div",Se,[t[2]||(t[2]=v("div",{class:"sidebar-title"},"数据类型",-1)),v("div",{class:M(["cat-item",{active:n.selected===null}]),onClick:t[0]||(t[0]=s=>r.$emit("select",null))},[c(e.AppstoreOutlined,{class:"icon"}),t[1]||(t[1]=v("span",{class:"label"},"全部",-1)),e.total>0?(u(),C(l,{key:0,count:e.total,"number-style":e.badgeStyle(n.selected===null),"overflow-count":9999},null,8,["count","number-style"])):x("v-if",!0)],2),(u(!0),O(V,null,se(e.CATEGORIES,s=>(u(),O("div",{key:s,class:M(["cat-item",{active:n.selected===s,dim:!n.facets.byCategory[s]}]),onClick:i=>r.$emit("select",s)},[(u(),C(ae(e.iconFor(s)),{class:"icon"})),v("span",we,R(e.categoryLabel(s)),1),n.facets.byCategory[s]?(u(),C(l,{key:0,count:n.facets.byCategory[s],"number-style":e.badgeStyle(n.selected===s),"overflow-count":9999},null,8,["count","number-style"])):x("v-if",!0)],10,Oe))),128))])}const ke=F(he,[["render",Ce],["__scopeId","data-v-6b62a22e"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/pdh/CategorySidebar.vue"]]),xe={__name:"SearchFilterBar",props:{filters:{type:Object,required:!0},facets:{type:Object,default:()=>({byAdapter:{}})},isLoading:{type:Boolean,default:!1},mode:{type:String,default:null},shortQuery:{type:Boolean,default:!1}},emits:["set-filter","reset"],setup(r,{expose:t,emit:n}){t();const e=r,o=n,a=w(()=>e.filters.category?`在「${e.filters.category}」类目内搜索…`:"搜索关键词(如:支付宝、罗技、Kotlin)…"),l=w(()=>Object.entries(e.facets.byAdapter||{}).sort((y,k)=>k[1]-y[1]).map(([y,k])=>({value:y,label:`${y} (${k})`}))),s=w(()=>!e.filters.since&&!e.filters.until?null:[e.filters.since?new Date(e.filters.since):null,e.filters.until?new Date(e.filters.until):null]),i=w(()=>!!(e.filters.q||e.filters.adapter||e.filters.subtype||e.filters.since||e.filters.until));function d(h){o("set-filter","q",h||"")}function _(h){o("set-filter","q",h||"")}function j(h){if(!h||h.length===0){o("set-filter","since",null),o("set-filter","until",null);return}const[y,k]=h;o("set-filter","since",y?+y:null),o("set-filter","until",k?+k:null)}const A={props:e,emit:o,placeholderText:a,adapterOptions:l,dateRangeValue:s,hasActiveFilters:i,onQInput:d,onSearch:_,onDateChange:j,computed:w,get SearchOutlined(){return pe},get CloseCircleOutlined(){return fe},get InfoCircleOutlined(){return de}};return Object.defineProperty(A,"__isScriptSetup",{enumerable:!1,value:!0}),A}},Ee={class:"pdh-filter-bar"},Re={key:1,class:"hint"},je={key:2,class:"hint"};function Ae(r,t,n,e,o,a){const l=g("a-input-search"),s=g("a-select"),i=g("a-range-picker"),d=g("a-button");return u(),O("div",Ee,[c(l,{value:n.filters.q,placeholder:e.placeholderText,"enter-button":"搜索","allow-clear":"",loading:n.isLoading,style:{flex:"1","max-width":"480px"},"onUpdate:value":e.onQInput,onSearch:e.onSearch},{prefix:m(()=>[c(e.SearchOutlined)]),_:1},8,["value","placeholder","loading"]),c(s,{value:n.filters.adapter,placeholder:"所有 adapter","allow-clear":"",options:e.adapterOptions,style:{width:"200px"},"onUpdate:value":t[0]||(t[0]=_=>r.$emit("set-filter","adapter",_||null))},null,8,["value","options"]),c(i,{value:e.dateRangeValue,placeholder:["开始日期","结束日期"],style:{width:"280px"},"onUpdate:value":e.onDateChange},null,8,["value"]),e.hasActiveFilters?(u(),C(d,{key:0,type:"link",danger:"",onClick:t[1]||(t[1]=_=>r.$emit("reset"))},{icon:m(()=>[c(e.CloseCircleOutlined)]),default:m(()=>[t[2]||(t[2]=b(" 清空筛选 ",-1))]),_:1})):x("v-if",!0),n.shortQuery?(u(),O("span",Re,[c(e.InfoCircleOutlined),t[3]||(t[3]=b(" 关键词需至少 3 字 (FTS5 trigram 限制) ",-1))])):n.mode==="like"?(u(),O("span",je,[c(e.InfoCircleOutlined),t[4]||(t[4]=b(" 当前为 LIKE 兜底模式 ",-1))])):x("v-if",!0)])}const Le=F(xe,[["render",Ae],["__scopeId","data-v-d7cce6e9"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/pdh/SearchFilterBar.vue"]]),Ie={__name:"RendererDispatcher",props:{event:{type:Object,required:!0}},setup(r,{expose:t}){t();const n=L(()=>I(()=>import("./ChatBubbleRenderer-CVfvAy-n.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),e=L(()=>I(()=>import("./OrderTableRenderer-Du-Kct3p.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)),o=L(()=>I(()=>import("./TimelineRenderer-CNS3dHNv.js"),__vite__mapDeps([8,1,2,3,4,9]),import.meta.url)),a=L(()=>I(()=>import("./EmailListRenderer-CsnhTW22.js"),__vite__mapDeps([10,1,2,3,4,11]),import.meta.url)),l=L(()=>I(()=>import("./GenericCardRenderer-D3d9D8L9.js"),__vite__mapDeps([12,1,2,3,4,13]),import.meta.url));function s(d){const _=d&&d.source&&d.source.adapter;switch($(_)){case"chat":case"ai-chat":return n;case"shopping":return e;case"travel":return o;case"email":return a;default:return l}}const i={ChatBubbleRenderer:n,OrderTableRenderer:e,TimelineRenderer:o,EmailListRenderer:a,GenericCardRenderer:l,rendererFor:s,defineAsyncComponent:L,get getCategory(){return $}};return Object.defineProperty(i,"__isScriptSetup",{enumerable:!1,value:!0}),i}};function Fe(r,t,n,e,o,a){return u(),C(ae(e.rendererFor(n.event)),{event:n.event},null,8,["event"])}const De=F(Ie,[["render",Fe],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/pdh/renderers/RendererDispatcher.vue"]]);function ee(r){return JSON.stringify(r,null,2)}function te(r){return r.map(t=>JSON.stringify(t)).join(`
3
- `)+`
4
- `}function ne(r){const n=["id","subtype","occurredAt","occurredAtIso","actor","place","adapter","summary","contentJson","extraJson"].join(","),e=r.map(o=>{const a=Number.isFinite(o.occurredAt)?o.occurredAt:null,l=a?new Date(a).toISOString():"",s=o.source&&o.source.adapter||"",i=o.content&&(o.content.text||o.content.title||o.content.subject)||"";return[o.id||"",o.subtype||"",a!=null?String(a):"",l,o.actor||"",o.place||"",s,i,o.content?JSON.stringify(o.content):"",o.extra?JSON.stringify(o.extra):""].map(Te).join(",")});return[n,...e].join(`
5
- `)+`
6
- `}function Te(r){const t=String(r??"");return t.includes(",")||t.includes('"')||t.includes(`
7
- `)||t.includes("\r")?'"'+t.replace(/"/g,'""')+'"':t}function re(r,t,n="application/octet-stream"){if(typeof window>"u"||typeof document>"u")return t;const e=new Blob([r],{type:n}),o=URL.createObjectURL(e),a=document.createElement("a");return a.href=o,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a),setTimeout(()=>URL.revokeObjectURL(o),1e3),t}function oe(r,t=null){const n=new Date,e=n.getFullYear(),o=String(n.getMonth()+1).padStart(2,"0"),a=String(n.getDate()).padStart(2,"0"),l=r==="ndjson"?"ndjson":r,s=t?`-${t}`:"";return`pdh-events-${e}-${o}-${a}${s}.${l}`}const Pe={__name:"ExportDropdown",props:{events:{type:Array,required:!0},category:{type:String,default:null}},setup(r,{expose:t}){t();const n=r,e=w(()=>n.events.length>0),o={json:"application/json;charset=utf-8",ndjson:"application/x-ndjson;charset=utf-8",csv:"text/csv;charset=utf-8"};function a(i){switch(i){case"json":return ee(n.events);case"ndjson":return te(n.events);case"csv":return ne(n.events);default:throw new Error(`unknown format: ${i}`)}}function l({key:i}){try{const d=a(i),_=oe(i,n.category);re(d,_,o[i]),P.success(`已导出 ${n.events.length} 条到 ${_}`)}catch(d){P.error(`导出失败: ${d.message||d}`)}}const s={props:n,hasResults:e,MIME:o,serialize:a,onClick:l,computed:w,get DownloadOutlined(){return _e},get DownOutlined(){return me},get message(){return P},get eventsToJson(){return ee},get eventsToNdjson(){return te},get eventsToCsv(){return ne},get downloadAs(){return re},get suggestFilename(){return oe}};return Object.defineProperty(s,"__isScriptSetup",{enumerable:!1,value:!0}),s}};function qe(r,t,n,e,o,a){const l=g("a-button"),s=g("a-menu-item"),i=g("a-menu"),d=g("a-dropdown");return u(),C(d,{disabled:!e.hasResults},{overlay:m(()=>[c(i,{onClick:e.onClick},{default:m(()=>[c(s,{key:"json"},{default:m(()=>[...t[0]||(t[0]=[b("JSON (.json)",-1)])]),_:1}),c(s,{key:"ndjson"},{default:m(()=>[...t[1]||(t[1]=[b("NDJSON (.ndjson)",-1)])]),_:1}),c(s,{key:"csv"},{default:m(()=>[...t[2]||(t[2]=[b("CSV (.csv)",-1)])]),_:1})]),_:1})]),default:m(()=>[c(l,{disabled:!e.hasResults},{icon:m(()=>[c(e.DownloadOutlined)]),default:m(()=>[b(" 导出 ("+R(n.events.length)+") ",1),c(e.DownOutlined)]),_:1},8,["disabled"])]),_:1},8,["disabled"])}const Be=F(Pe,[["render",qe],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/pdh/ExportDropdown.vue"]]),Ve={__name:"PdhVaultBrowser",setup(r,{expose:t}){t();const n=X(),e=w(()=>n.filters.q?`没有匹配 "${n.filters.q}" 的事件 — 试试更短的关键词或换个类目`:n.filters.category?`「${N(n.filters.category)}」类目下还没有数据 — 去采集页同步对应 adapter`:"Vault 里还没有数据 — 去「个人数据中台」页面同步任意 adapter");function o(s){n.filters.category=s,n.search()}function a(s,i){n.setFilter(s,i)}J(()=>{!n.hasResults&&!n.isLoading&&n.search()});const l={store:n,emptyHint:e,onCategorySelect:o,onSetFilter:a,onMounted:J,computed:w,get ReloadOutlined(){return ye},get usePdhBrowserStore(){return X},get categoryLabel(){return N},CategorySidebar:ke,SearchFilterBar:Le,RendererDispatcher:De,ExportDropdown:Be};return Object.defineProperty(l,"__isScriptSetup",{enumerable:!1,value:!0}),l}},Ne={class:"pdh-browser-page"},Me={class:"page-header"},Je={class:"main-pane"},Ue={class:"results-summary"},Qe={key:0},ze={key:0},Ge={key:1},He={class:"loaded-of"},Ke={class:"results-list"},We={key:2,class:"load-more"};function Ye(r,t,n,e,o,a){const l=g("a-tag"),s=g("a-button"),i=g("a-space"),d=g("a-col"),_=g("a-spin"),j=g("a-alert"),A=g("a-empty"),h=g("a-row");return u(),O("div",Ne,[v("div",Me,[t[6]||(t[6]=v("div",null,[v("h2",{class:"page-title"},"数据浏览器"),v("p",{class:"page-sub"}," Vault 里所有已采集的数据,按类目浏览 / 全文检索 / 时间窗口筛选。 完全离线,不外传。 ")],-1)),c(i,null,{default:m(()=>[e.store.mode==="fts5"?(u(),C(l,{key:0,color:"green"},{default:m(()=>[...t[3]||(t[3]=[b("FTS5 trigram",-1)])]),_:1})):e.store.mode==="like"?(u(),C(l,{key:1,color:"orange"},{default:m(()=>[...t[4]||(t[4]=[b("LIKE 兜底",-1)])]),_:1})):x("v-if",!0),c(e.ExportDropdown,{events:e.store.results,category:e.store.filters.category},null,8,["events","category"]),c(s,{onClick:t[0]||(t[0]=y=>e.store.search()),loading:e.store.isLoading},{icon:m(()=>[c(e.ReloadOutlined)]),default:m(()=>[t[5]||(t[5]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),c(h,{gutter:16,class:"browser-layout"},{default:m(()=>[c(d,{xs:24,sm:24,md:6,lg:5,xl:4},{default:m(()=>[c(e.CategorySidebar,{selected:e.store.filters.category,facets:e.store.facets,onSelect:e.onCategorySelect},null,8,["selected","facets"])]),_:1}),c(d,{xs:24,sm:24,md:18,lg:19,xl:20},{default:m(()=>[v("div",Je,[c(e.SearchFilterBar,{filters:e.store.filters,facets:e.store.facets,"is-loading":e.store.isLoading,mode:e.store.mode,"short-query":e.store.shortQuery,onSetFilter:e.onSetFilter,onReset:t[1]||(t[1]=y=>{e.store.reset(),e.store.search()})},null,8,["filters","facets","is-loading","mode","short-query"]),v("div",Ue,[e.store.isLoading&&e.store.results.length===0?(u(),O("span",Qe,[c(_,{size:"small"}),t[7]||(t[7]=b(" 载入中… ",-1))])):(u(),O(V,{key:1},[v("strong",null,R(e.store.facets.total),1),t[11]||(t[11]=b(" 条事件 ",-1)),e.store.filters.category?(u(),O("span",ze,[t[8]||(t[8]=b(" / 当前类目 ",-1)),v("strong",null,R(e.categoryLabel(e.store.filters.category)),1),v("strong",null,R(e.store.facets.byCategory[e.store.filters.category]||0),1)])):x("v-if",!0),e.store.filters.q?(u(),O("span",Ge,[t[9]||(t[9]=b(' / 关键词 "',-1)),v("em",null,R(e.store.filters.q),1),t[10]||(t[10]=b('"',-1))])):x("v-if",!0),v("span",He," / 已显示 "+R(e.store.results.length),1)],64))]),e.store.error?(u(),C(j,{key:0,type:"error","show-icon":"",message:e.store.error,closable:"",style:{margin:"12px 0"}},null,8,["message"])):x("v-if",!0),!e.store.isLoading&&e.store.results.length===0&&!e.store.error?(u(),C(A,{key:1,description:e.emptyHint,style:{"margin-top":"40px"}},null,8,["description"])):x("v-if",!0),v("div",Ke,[(u(!0),O(V,null,se(e.store.results,(y,k)=>(u(),C(e.RendererDispatcher,{key:`r-${k}-${y.id}`,event:y},null,8,["event"]))),128))]),e.store.canLoadMore?(u(),O("div",We,[c(s,{loading:e.store.isAppending,onClick:t[2]||(t[2]=y=>e.store.loadMore()),block:""},{default:m(()=>[...t[12]||(t[12]=[b(" 加载下一页 (50 条) ",-1)])]),_:1},8,["loading"])])):x("v-if",!0)])]),_:1})]),_:1})])}const nt=F(Ve,[["render",Ye],["__scopeId","data-v-0f7c02cd"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/views/PdhVaultBrowser.vue"]]);export{nt as default};
@@ -1 +0,0 @@
1
- import{Q as r}from"./index-3_CEBEEf.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
@@ -1 +0,0 @@
1
- import{C as o}from"./Col-dZ2i4aAj.js";import{a0 as t}from"./index-3_CEBEEf.js";import"./vendor-Bn1JzzAn.js";import"./index-CC7RnaPP.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
@@ -1 +0,0 @@
1
- import{A as o}from"./Row-D1G1fD7N.js";import{a0 as t}from"./index-3_CEBEEf.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-CPxTWodH.js";import"./useFlexGapSupport-DRWp7px1.js";import"./styleChecker-B2O7yRk3.js";import"./index-CC7RnaPP.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};