chainlesschain 0.166.7 → 0.166.10

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 (191) hide show
  1. package/README.md +21 -0
  2. package/package.json +4 -1
  3. package/src/assets/web-panel/.build-hash +1 -1
  4. package/src/assets/web-panel/assets/{AIOps-BlrmQxa2.js → AIOps-CLYBDAGv.js} +1 -1
  5. package/src/assets/web-panel/assets/{ActionButton-zyRyLITg.js → ActionButton-CpeSttcu.js} +1 -1
  6. package/src/assets/web-panel/assets/{Analytics-DwGz7OGN.js → Analytics-Ba1TNLG0.js} +3 -3
  7. package/src/assets/web-panel/assets/{AppLayout-Dc-nj7Zd.js → AppLayout-xBy8EOeg.js} +5 -5
  8. package/src/assets/web-panel/assets/{Artifacts-7Hu3O73p.js → Artifacts-CJ_3TFb8.js} +1 -1
  9. package/src/assets/web-panel/assets/{Audit-Bnoe3-fR.js → Audit-DUATFCG3.js} +1 -1
  10. package/src/assets/web-panel/assets/{BackgroundAgents-BqYFrDKZ.js → BackgroundAgents-BRXYPIGp.js} +1 -1
  11. package/src/assets/web-panel/assets/{Backup-B3hwW1nz.js → Backup-D8auLx7y.js} +1 -1
  12. package/src/assets/web-panel/assets/{BaseInput-XFVxLA4w.js → BaseInput-CBgdslQ3.js} +1 -1
  13. package/src/assets/web-panel/assets/{Chat-CWRDNw7e.js → Chat-B32LvAiE.js} +5 -5
  14. package/src/assets/web-panel/assets/ChatBubbleRenderer-CVfvAy-n.js +1 -0
  15. package/src/assets/web-panel/assets/{Checkbox-kFeeBgac.js → Checkbox-BwzBxOpC.js} +1 -1
  16. package/src/assets/web-panel/assets/{Codegen-CCxp8xoI.js → Codegen-0U5vrg1H.js} +1 -1
  17. package/src/assets/web-panel/assets/{Col-BLKZalle.js → Col-dZ2i4aAj.js} +1 -1
  18. package/src/assets/web-panel/assets/{Community-DD0eWCez.js → Community-UVvpLr8c.js} +1 -1
  19. package/src/assets/web-panel/assets/{Compact-CHqHWdy0.js → Compact-BDNEb1Bd.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compliance-Bw54uPiK.js → Compliance-BrzQPxyS.js} +1 -1
  21. package/src/assets/web-panel/assets/{Cowork-DZ13zKNJ.js → Cowork-BbgGsu-9.js} +3 -3
  22. package/src/assets/web-panel/assets/{Cron-Dlj5Jevg.js → Cron-G321XPhp.js} +2 -2
  23. package/src/assets/web-panel/assets/{Crosschain-Nvz0aR0j.js → Crosschain-CgLNUyMn.js} +1 -1
  24. package/src/assets/web-panel/assets/{DID-Ct89eUyY.js → DID-BAfRj18q.js} +2 -2
  25. package/src/assets/web-panel/assets/{Dashboard-BHUH5IAe.js → Dashboard-BNIxA4TK.js} +2 -2
  26. package/src/assets/web-panel/assets/{Dropdown-BhZG-PO7.js → Dropdown-BLAUmCAN.js} +1 -1
  27. package/src/assets/web-panel/assets/{EmailListRenderer-ae4RVwwJ.js → EmailListRenderer-CsnhTW22.js} +1 -1
  28. package/src/assets/web-panel/assets/{FamilyGuardDashboard-AOcxLfLr.js → FamilyGuardDashboard-zcQ7Ip1n.js} +1 -1
  29. package/src/assets/web-panel/assets/{Federation-BK2PJQOF.js → Federation-KFwxodNU.js} +1 -1
  30. package/src/assets/web-panel/assets/{FormItemContext-C2n3xO2_.js → FormItemContext-3CYRLEHG.js} +1 -1
  31. package/src/assets/web-panel/assets/{GenericCardRenderer-DcyUVFZq.js → GenericCardRenderer-D3d9D8L9.js} +1 -1
  32. package/src/assets/web-panel/assets/{Git-tBae9Lt8.js → Git-BJ202nJY.js} +2 -2
  33. package/src/assets/web-panel/assets/{Governance-DmNR3AP4.js → Governance-ClnnXVQ-.js} +1 -1
  34. package/src/assets/web-panel/assets/{Inference-CoseEigi.js → Inference-DNU-PTkc.js} +1 -1
  35. package/src/assets/web-panel/assets/{KnowledgeGraph-Bdjd1sxr.js → KnowledgeGraph-DJuinbuY.js} +1 -1
  36. package/src/assets/web-panel/assets/{Logs-CtlkKIcn.js → Logs-D4No-46s.js} +2 -2
  37. package/src/assets/web-panel/assets/MarkdownRenderer-Dt8hH_qA.js +1 -0
  38. package/src/assets/web-panel/assets/{Marketplace-BTYb7nEx.js → Marketplace-Ba-KqRN3.js} +1 -1
  39. package/src/assets/web-panel/assets/{McpTools-D0iUdW3P.js → McpTools-DVoxnPgE.js} +2 -2
  40. package/src/assets/web-panel/assets/{Memory--gwI7w4Y.js → Memory-D_C8gzAZ.js} +2 -2
  41. package/src/assets/web-panel/assets/{MobileBridge-JmFBi24T.js → MobileBridge-DnzTPcDH.js} +1 -1
  42. package/src/assets/web-panel/assets/MobileProjects-Jg2dVUc-.js +1 -0
  43. package/src/assets/web-panel/assets/{Mtc-u7avzyoO.js → Mtc-CvEHmHId.js} +5 -5
  44. package/src/assets/web-panel/assets/{MtcAudit-gT3z5fo_.js → MtcAudit-VNJmWqmv.js} +2 -2
  45. package/src/assets/web-panel/assets/{Multisig-BIqZTz5n.js → Multisig-BO0x_Vsa.js} +3 -3
  46. package/src/assets/web-panel/assets/{NLProgramming-DdhVfXYq.js → NLProgramming-CM2gI1UY.js} +1 -1
  47. package/src/assets/web-panel/assets/{Notes-CBlyUmY3.js → Notes-CMc1HsML.js} +4 -4
  48. package/src/assets/web-panel/assets/{NotificationSettings-DSyI26N3.js → NotificationSettings-DGNmSKGM.js} +1 -1
  49. package/src/assets/web-panel/assets/{OrderTableRenderer-B7IEuNz4.js → OrderTableRenderer-Du-Kct3p.js} +1 -1
  50. package/src/assets/web-panel/assets/{Organization-ozhi4kGS.js → Organization-DRtRZjas.js} +4 -4
  51. package/src/assets/web-panel/assets/{Overflow-CBy57RVM.js → Overflow-Dp4OeWsn.js} +1 -1
  52. package/src/assets/web-panel/assets/{P2P-CA-ZRv77.js → P2P-DXMJVls8.js} +2 -2
  53. package/src/assets/web-panel/assets/PdhVaultBrowser-0jYeVmyY.js +7 -0
  54. package/src/assets/web-panel/assets/{Permissions-DiP632GP.js → Permissions-D1Hbb51o.js} +4 -4
  55. package/src/assets/web-panel/assets/{PersonalDataHub-AnU8O-SS.js → PersonalDataHub-BridiDhr.js} +5 -5
  56. package/src/assets/web-panel/assets/{Pipeline-DDibOUaP.js → Pipeline-B4bUNCm1.js} +1 -1
  57. package/src/assets/web-panel/assets/{Privacy-D421t36T.js → Privacy-BTu_HEqK.js} +1 -1
  58. package/src/assets/web-panel/assets/{ProjectInit-DR879ZPJ.js → ProjectInit-SVtL2hnt.js} +2 -2
  59. package/src/assets/web-panel/assets/{ProjectSettings-Ded8o6aY.js → ProjectSettings-B2Sh7JZ2.js} +2 -2
  60. package/src/assets/web-panel/assets/{Projects-BHPxiucB.js → Projects-BwU1xalW.js} +1 -1
  61. package/src/assets/web-panel/assets/{Providers-Boivuu-E.js → Providers-BWdWQSDw.js} +1 -1
  62. package/src/assets/web-panel/assets/{QrScannerModal-xKD_ntKp.js → QrScannerModal-Brzc-Sxb.js} +1 -1
  63. package/src/assets/web-panel/assets/{QuickAsk-D3y_A6FV.js → QuickAsk-DIBz7FCe.js} +1 -1
  64. package/src/assets/web-panel/assets/{Recommend-BjKM-YC2.js → Recommend-CZ8RriIJ.js} +1 -1
  65. package/src/assets/web-panel/assets/RemoteSession-CM0KJQ3t.js +5 -0
  66. package/src/assets/web-panel/assets/{Reputation-Ci2GjH5p.js → Reputation-D_wo8H0O.js} +1 -1
  67. package/src/assets/web-panel/assets/{Row-B0-T2BSh.js → Row-D1G1fD7N.js} +1 -1
  68. package/src/assets/web-panel/assets/{RssFeed-Bet-ur-r.js → RssFeed-dKCVtA0K.js} +3 -3
  69. package/src/assets/web-panel/assets/{Search-DWtRAS2R.js → Search-Be1D61xo.js} +1 -1
  70. package/src/assets/web-panel/assets/{Security-BDfu2Qn6.js → Security-IbNiR6OC.js} +4 -4
  71. package/src/assets/web-panel/assets/{Services-CvJmvSMM.js → Services-nuHK8y8p.js} +2 -2
  72. package/src/assets/web-panel/assets/{Skeleton-CEbrKpdC.js → Skeleton-DnM5jdnC.js} +1 -1
  73. package/src/assets/web-panel/assets/{Skills-CjVeiETf.js → Skills-DCTdoq_q.js} +1 -1
  74. package/src/assets/web-panel/assets/{Sla-Dibypxum.js → Sla-DlWun-Ui.js} +1 -1
  75. package/src/assets/web-panel/assets/{SpeechSettings-XflYXp7a.js → SpeechSettings-C19kv2sd.js} +1 -1
  76. package/src/assets/web-panel/assets/{SyncSettings-ro1Ivx1E.js → SyncSettings-CkQIR_Hu.js} +2 -2
  77. package/src/assets/web-panel/assets/{Tasks-CHq1qFbo.js → Tasks-DdbqOEbs.js} +1 -1
  78. package/src/assets/web-panel/assets/{Templates-CRnUZxtZ.js → Templates-B7GpIXeo.js} +1 -1
  79. package/src/assets/web-panel/assets/{Tenant-jUX72JCA.js → Tenant-ByEstFhY.js} +1 -1
  80. package/src/assets/web-panel/assets/{Terminal-BBhAs7pt.js → Terminal-BKRVID1a.js} +2 -2
  81. package/src/assets/web-panel/assets/{TimelineRenderer-CD5M3RGp.js → TimelineRenderer-CNS3dHNv.js} +1 -1
  82. package/src/assets/web-panel/assets/{Tokens-sah3v0gu.js → Tokens-BykqylCL.js} +1 -1
  83. package/src/assets/web-panel/assets/{Trigger-BNT3Uz3s.js → Trigger-ByNxq51W.js} +1 -1
  84. package/src/assets/web-panel/assets/{Trust-BytMGPMo.js → Trust-BlrFsdaS.js} +1 -1
  85. package/src/assets/web-panel/assets/{UkeySign-BkYVMRQs.js → UkeySign-Dg26A-sd.js} +1 -1
  86. package/src/assets/web-panel/assets/{VideoEditing-psvb5Q7Y.js → VideoEditing-C1wUxNn0.js} +1 -1
  87. package/src/assets/web-panel/assets/{Wallet-PFQTW0MH.js → Wallet-OphEUzI4.js} +4 -4
  88. package/src/assets/web-panel/assets/{WebAuthn-DgO-OwRT.js → WebAuthn-_8lL08hF.js} +5 -5
  89. package/src/assets/web-panel/assets/{WorkflowEditor-DL2l9VNl.js → WorkflowEditor-BnTuIvnP.js} +1 -1
  90. package/src/assets/web-panel/assets/{chat-C84akEzN.js → chat-3N3VLQYr.js} +1 -1
  91. package/src/assets/web-panel/assets/{colors-DzTWuQKP.js → colors-Bo_G96gg.js} +1 -1
  92. package/src/assets/web-panel/assets/{compact-item-CR9LJQFv.js → compact-item-DjubfjI_.js} +1 -1
  93. package/src/assets/web-panel/assets/{createContext-CTTov5Kn.js → createContext-Cx_HSLCk.js} +1 -1
  94. package/src/assets/web-panel/assets/devWarning-BX944k9E.js +1 -0
  95. package/src/assets/web-panel/assets/{hasIn-DALj523o.js → hasIn-D5OjAOlA.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-D9ScRFxz.js → index-3_CEBEEf.js} +3 -3
  97. package/src/assets/web-panel/assets/{index-BKNIzw0U.js → index-B905-Mcs.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-eJcFleIV.js → index-BScGr1BY.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-CXaCRXN4.js → index-BgPb37tI.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-B6QOJbSn.js → index-Bj7S5IJw.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-CNmTDXmf.js → index-BvYo09C0.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-7ux_XohH.js → index-BxgIE4PD.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-D_Bg0LdK.js → index-C-4sfa0l.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-DZER6Lj3.js → index-C-_Cy0k_.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-CmELknPe.js → index-C4MAnkl5.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-CXTEpfGe.js → index-C5IwN9q3.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-W9axN_Ce.js → index-C8dPFFhy.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-B2qpjU-D.js → index-CC7RnaPP.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-D0MqUnKO.js → index-CCjq3g32.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-DtW6Zr_i.js → index-CNmsP0Xf.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-CqUgXYIQ.js → index-CRKk1JPX.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-_8vetPbU.js → index-CVPDhmVH.js} +1 -1
  113. package/src/assets/web-panel/assets/index-C_9Jt_SR.js +1 -0
  114. package/src/assets/web-panel/assets/{index-Cef0n4k_.js → index-Ce8EWU6r.js} +1 -1
  115. package/src/assets/web-panel/assets/{index-CnxjXIsK.js → index-CmLwI-Y8.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CunGDV0g.js → index-CqZq3zWr.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-DjE_ew7U.js → index-Cz5tQ5PY.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-QW0EXx14.js → index-DBvZhdCb.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-Dah8M4l2.js → index-DD1zSPZH.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-DBIPnoTj.js → index-DE4XtzMl.js} +1 -1
  121. package/src/assets/web-panel/assets/index-DL2EFx7m.js +1 -0
  122. package/src/assets/web-panel/assets/{index-3-XJoYgX.js → index-DXJqa1-I.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-Be6Os5S8.js → index-DaU60K3A.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-AXnERsyV.js → index-Dbdr8tVi.js} +1 -1
  125. package/src/assets/web-panel/assets/{index-hzzTITR9.js → index-DlcbE0sX.js} +1 -1
  126. package/src/assets/web-panel/assets/{index-s4CFyn-n.js → index-DrVjatPe.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-CZhhFQi9.js → index-EZr3bvz2.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-BDyt57zL.js → index-HioDjvUF.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-DH6OG-ci.js → index-Q_vn0t8d.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-BNaQt49r.js → index-UnpsQ6A0.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-C5eeMl_2.js → index-Y-H7j25u.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-CjkPDSX4.js → index-uAcJUJkx.js} +1 -1
  133. package/src/assets/web-panel/assets/{index-DxdzSljS.js → index-x7o-2T3S.js} +1 -1
  134. package/src/assets/web-panel/assets/{index-BHRXKiU1.js → index-ydnEPOzZ.js} +1 -1
  135. package/src/assets/web-panel/assets/{initDefaultProps-JuW8mFj7.js → initDefaultProps-DurpENJY.js} +1 -1
  136. package/src/assets/web-panel/assets/{motion-Cwb0HBve.js → motion-CIh-z-gR.js} +1 -1
  137. package/src/assets/web-panel/assets/{move-DHokzMgu.js → move-Uc_yI2NA.js} +1 -1
  138. package/src/assets/web-panel/assets/{mtc-parser-DX31y6QS.js → mtc-parser-DUevj5wz.js} +1 -1
  139. package/src/assets/web-panel/assets/{omit-BCIUYDA6.js → omit-85eMYyur.js} +1 -1
  140. package/src/assets/web-panel/assets/{pickAttrs-DMCj4EoZ.js → pickAttrs-AuxDD20F.js} +1 -1
  141. package/src/assets/web-panel/assets/{placementArrow-Dy5K-u1s.js → placementArrow-DOWn8dd1.js} +1 -1
  142. package/src/assets/web-panel/assets/{responsiveObserve-DkGeZu54.js → responsiveObserve-CPxTWodH.js} +1 -1
  143. package/src/assets/web-panel/assets/{slide-Dc5dyJdg.js → slide-BqvbGPjx.js} +1 -1
  144. package/src/assets/web-panel/assets/{statusUtils-DIUBjOaC.js → statusUtils-BzXKkV8d.js} +1 -1
  145. package/src/assets/web-panel/assets/{styleChecker-DmyEOxm5.js → styleChecker-B2O7yRk3.js} +1 -1
  146. package/src/assets/web-panel/assets/{useFlexGapSupport-FRhakk1e.js → useFlexGapSupport-DRWp7px1.js} +1 -1
  147. package/src/assets/web-panel/assets/{useFs-clXyV1WQ.js → useFs-Dp0V7sjM.js} +1 -1
  148. package/src/assets/web-panel/assets/{usePersonalDataHub-UF6DG41z.js → usePersonalDataHub-CyCrG3ql.js} +1 -1
  149. package/src/assets/web-panel/assets/{vnode-CoCt95G7.js → vnode-CXhoFpFo.js} +1 -1
  150. package/src/assets/web-panel/assets/{zoom-yVWt-ENm.js → zoom-0z3mtwEg.js} +1 -1
  151. package/src/assets/web-panel/index.html +1 -1
  152. package/src/command-help-index.json +1 -1
  153. package/src/commands/orchestrate.js +61 -9
  154. package/src/data/changelog.json +47 -1
  155. package/src/gateways/ws/message-dispatcher.js +4 -0
  156. package/src/gateways/ws/session-protocol.js +89 -11
  157. package/src/gateways/ws/ws-agent-handler.js +65 -9
  158. package/src/gateways/ws/ws-approval-gate.js +181 -16
  159. package/src/gateways/ws/ws-server.js +16 -6
  160. package/src/generated/cc-agent-protocol.schema.json +148 -2
  161. package/src/lib/agent-team/task-lease.js +172 -3
  162. package/src/lib/agent-team/team-runner.js +60 -1
  163. package/src/lib/app-server/graph-runtime.js +326 -2
  164. package/src/lib/app-server/server.js +60 -0
  165. package/src/lib/approval-grant-ledger.js +69 -0
  166. package/src/lib/codex-app-server-adapter.js +11 -20
  167. package/src/lib/graph-kernel/compiler.js +66 -13
  168. package/src/lib/graph-kernel/cutover-authority-resolver.js +26 -0
  169. package/src/lib/graph-kernel/cutover-ledger.js +53 -11
  170. package/src/lib/graph-kernel/index.js +2 -0
  171. package/src/lib/graph-kernel/production-cutover-evidence.js +969 -0
  172. package/src/lib/graph-kernel/retirement-evidence.js +575 -0
  173. package/src/lib/graph-kernel/runtime.js +76 -14
  174. package/src/lib/interaction-adapter.js +61 -9
  175. package/src/lib/policy-decision-event.js +149 -0
  176. package/src/lib/process-execution-broker/platform-sandbox.js +15 -1
  177. package/src/lib/record-replay/index.js +1 -0
  178. package/src/lib/record-replay/playwright-ui-driver.js +327 -0
  179. package/src/lib/webhook-security.js +484 -36
  180. package/src/runtime/coding-agent-events.cjs +13 -11
  181. package/src/runtime/headless-runner.js +17 -1
  182. package/src/runtime/headless-stream.js +66 -3
  183. package/src/runtime/session-slash-commands.js +57 -6
  184. package/src/assets/web-panel/assets/ChatBubbleRenderer-Bf30VM8G.js +0 -1
  185. package/src/assets/web-panel/assets/MarkdownRenderer-CZsTBEQE.js +0 -1
  186. package/src/assets/web-panel/assets/MobileProjects-BK01cQRx.js +0 -1
  187. package/src/assets/web-panel/assets/PdhVaultBrowser-DOHc9zm8.js +0 -7
  188. package/src/assets/web-panel/assets/RemoteSession-CgqKMXG4.js +0 -5
  189. package/src/assets/web-panel/assets/devWarning-BOhvmlpc.js +0 -1
  190. package/src/assets/web-panel/assets/index-DDyMJexx.js +0 -1
  191. package/src/assets/web-panel/assets/index-btiojFYn.js +0 -1
@@ -1,7 +1,7 @@
1
- import{I as f,P as w,S as L,K as a,J as V,c as n,V as x,w as F,b as P,a as Y,r as u,U as T,Q as k,R as A,F as te,M as le,o as re,Z as se}from"./vendor-Bn1JzzAn.js";import{u as J,_ as ae,d as C}from"./index-D9ScRFxz.js";import{u as ie}from"./useFs-clXyV1WQ.js";import{u as de}from"./useShellMode-CgR0wCYM.js";import{ax as me,ay as ue,az as pe,aA as ge,a5 as ve,R as we,at as _e}from"./icons-DG5UD-6K.js";function ye(m){if(m&&m.ok===!1)throw new Error(m.error||"knowledge handler failed");return m?.result??m}function ne(m){return String(m).replace(/(["\\])/g,"\\$1")}function Z(){const m=J();async function t({title:b,content:e,tags:h=[],type:g="note"}={}){if(typeof b!="string"||!b.trim())throw new Error("title is required");if(typeof e!="string")throw new Error("content is required");const r=Array.isArray(h)?h.filter(Boolean):[];if(de().isEmbedded){const i=await m.sendRaw({type:"knowledge.add-item",item:{title:b.trim(),content:e,tags:r,type:g}},2e4),_=ye(i);if(_?.success===!1)throw new Error(_.error||"knowledge.add-item failed");return _?.item??null}let s=`note add "${ne(b.trim())}" -c "${ne(e)}"`;r.length&&(s+=` -t "${ne(r.join(","))}"`);const{output:d}=await m.execute(s,15e3);if(d&&/^[\s\S]*✖|error/i.test(d))throw new Error(d.slice(0,200));return{title:b.trim(),content:e,tags:r,type:g}}return{addItem:t}}const he={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=Z(),r=P({get:()=>e.modelValue,set:p=>h("update:modelValue",p)}),s=u(!1),d=u(""),i=Y({title:"",content:"",tagsRaw:""}),_=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){i.title=_(),i.content="",i.tagsRaw="",d.value=""}async function v(){if(d.value="",!navigator.clipboard?.readText){d.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();i.content=p||"",p||(d.value="剪贴板为空")}catch(p){d.value="读取剪贴板失败:"+(p?.message||String(p))}}F(()=>e.modelValue,async p=>{p&&(S(),await v())},{immediate:!0});async function O(){if(!i.content.trim()){C.warning("内容为空,无法保存");return}s.value=!0;try{const p=i.tagsRaw.split(/[,,]/).map(c=>c.trim()).filter(Boolean),o=await g.addItem({title:i.title.trim()||_(),content:i.content,tags:p,type:"note"});C.success("已保存到知识库"),h("saved",o),r.value=!1}catch(p){C.error("保存失败:"+(p?.message||String(p)))}finally{s.value=!1}}function U(){r.value=!1}const E={props:e,emit:h,knowledge:g,open:r,loading:s,readError:d,formState:i,defaultTitle:_,resetForm:S,readClipboard:v,handleSave:O,handleCancel:U,ref:u,reactive:Y,computed:P,watch:F,get message(){return C},get useKnowledge(){return Z}};return Object.defineProperty(E,"__isScriptSetup",{enumerable:!1,value:!0}),E}},be={key:0,style:{"margin-bottom":"16px"}};function Se(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-input"),d=f("a-form-item"),i=f("a-textarea"),_=f("a-form"),S=f("a-modal");return w(),L(S,{open:e.open,"onUpdate:open":t[3]||(t[3]=v=>e.open=v),title:"剪贴板导入",width:640,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.formState.content.trim()},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.readError?(w(),V("div",be,[n(r,{type:"warning","show-icon":"",message:e.readError,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):x("v-if",!0),n(_,{layout:"vertical",model:e.formState},{default:a(()=>[n(d,{label:"标题"},{default:a(()=>[n(s,{value:e.formState.title,"onUpdate:value":t[0]||(t[0]=v=>e.formState.title=v),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(d,{label:"内容"},{default:a(()=>[n(i,{value:e.formState.content,"onUpdate:value":t[1]||(t[1]=v=>e.formState.content=v),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),n(d,{label:"标签(逗号分隔,可选)"},{default:a(()=>[n(s,{value:e.formState.tagsRaw,"onUpdate:value":t[2]||(t[2]=v=>e.formState.tagsRaw=v),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}const xe=ae(he,[["render",Se],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/components/ClipboardImportDialog.vue"]]);function oe(m){if(m&&m.ok===!1)throw new Error(m.error||"screenshot handler failed");return m?.result??m}function ce(){const m=J();if(!de().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function b({screenIndex:g}={}){const r=await m.sendRaw({type:"screenshot.capture",screenIndex:g},3e4),s=oe(r);if(s?.success===!1)throw new Error(s.error||"screenshot.capture failed");return s}async function e(g,r,s){if(!g)throw new Error("path is required");const d=await m.sendRaw({type:"screenshot.ocr",path:g,lang:r,engine:s},9e4),i=oe(d);if(i?.success===!1)throw new Error(i.error||"screenshot.ocr failed");return i}async function h(g){if(g)try{const r=await m.sendRaw({type:"screenshot.cleanup",path:g},1e4),s=oe(r);s?.success===!1&&console.warn("[useScreenshot] cleanup failed:",s.error)}catch(r){console.warn("[useScreenshot] cleanup error:",r?.message||r)}}return{unsupported:!1,capture:b,ocr:e,cleanup:h}}const ke={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=ce(),r=Z(),s=P({get:()=>e.modelValue,set:y=>h("update:modelValue",y)}),d=u(!1),i=u(!1),_=u(!1),S=u(""),v=u(null),O=u("auto"),U=u(null),E=u(""),p=u(""),o=u(null),c=Y({title:"",content:"",tagsRaw:""}),N=P(()=>!!o.value&&(c.content.trim()||"").length>0),B=()=>`截图识别 - ${new Date().toLocaleString()}`;function q(){c.title=B(),c.content="",c.tagsRaw="",S.value="",v.value=null,U.value=null,E.value="",p.value="",o.value=null}async function D(){o.value?.path&&await g.cleanup(o.value.path)}async function K(){if(g.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;i.value=!0;try{return await g.capture({})}catch(y){return S.value=y?.message||String(y),null}finally{i.value=!1}}async function z(y){if(y){_.value=!0;try{const l=await g.ocr(y,void 0,O.value);c.content=l.text||"",v.value=typeof l.confidence=="number"?l.confidence:null,U.value=l.engine||null,E.value=l.model||"",p.value=l.fallbackReason||"",l.text||C.info("OCR 未识别到文本,可手动输入")}catch(l){C.warning("OCR 失败: "+(l?.message||String(l)))}finally{_.value=!1}}}async function j(){p.value=""}async function G(){await D(),q();const y=await K();y&&(o.value=y,await z(y.path))}async function Q(){o.value?.path&&await z(o.value.path)}F(()=>e.modelValue,async y=>{if(y){q();const l=await K();l&&(o.value=l,await z(l.path))}else await D(),o.value=null},{immediate:!0});async function H(){if(!N.value){C.warning("识别文本为空,无法保存");return}d.value=!0;try{const y=c.tagsRaw.split(/[,,]/).map(I=>I.trim()).filter(Boolean),l=await r.addItem({title:c.title.trim()||B(),content:c.content,tags:y,type:"note"});C.success("已保存到知识库"),h("saved",l),await D(),s.value=!1}catch(y){C.error("保存失败: "+(y?.message||String(y)))}finally{d.value=!1}}async function X(){await D(),s.value=!1}const W={props:e,emit:h,screenshot:g,knowledge:r,open:s,loading:d,capturing:i,ocrLoading:_,captureError:S,ocrConfidence:v,ocrEngine:O,engineUsed:U,ocrModel:E,ocrFallbackReason:p,shot:o,formState:c,canSave:N,defaultTitle:B,resetState:q,cleanupShot:D,runCapture:K,runOcr:z,handleEngineChange:j,handleRecapture:G,handleRerunOcr:Q,handleSave:H,handleCancel:X,ref:u,reactive:Y,computed:P,watch:F,get message(){return C},get CameraOutlined(){return ue},get ScanOutlined(){return me},get useScreenshot(){return ce},get useKnowledge(){return Z}};return Object.defineProperty(W,"__isScriptSetup",{enumerable:!1,value:!0}),W}},Ce={key:0,style:{"margin-bottom":"16px"}},Oe={key:1,class:"ss-error"},Re={key:2},Ne={class:"ss-actions"},Ee={key:0,class:"ss-preview"},Ie=["src"];function Ve(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-button"),d=f("a-select-option"),i=f("a-select"),_=f("a-tag"),S=f("a-tooltip"),v=f("a-input"),O=f("a-form-item"),U=f("a-spin"),E=f("a-textarea"),p=f("a-form"),o=f("a-modal");return w(),L(o,{open:e.open,"onUpdate:open":t[4]||(t[4]=c=>e.open=c),title:"截图识别",width:780,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.canSave},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.screenshot.unsupported?(w(),V("div",Ce,[n(r,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):e.captureError?(w(),V("div",Oe,[n(r,{type:"error","show-icon":"",message:e.captureError},null,8,["message"])])):(w(),V("div",Re,[T("div",Ne,[n(s,{size:"small",loading:e.capturing,onClick:e.handleRecapture},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[5]||(t[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),n(s,{size:"small",loading:e.ocrLoading,disabled:!e.shot||e.ocrLoading,onClick:e.handleRerunOcr},{icon:a(()=>[n(e.ScanOutlined)]),default:a(()=>[t[6]||(t[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),n(i,{value:e.ocrEngine,"onUpdate:value":t[0]||(t[0]=c=>e.ocrEngine=c),size:"small",style:{width:"140px"},disabled:e.ocrLoading,onChange:e.handleEngineChange},{default:a(()=>[n(d,{value:"auto"},{default:a(()=>[...t[7]||(t[7]=[k("自动 (推荐)",-1)])]),_:1}),n(d,{value:"llm"},{default:a(()=>[...t[8]||(t[8]=[k("视觉 LLM",-1)])]),_:1}),n(d,{value:"tesseract"},{default:a(()=>[...t[9]||(t[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),e.engineUsed==="llm"?(w(),L(_,{key:0,color:"blue"},{default:a(()=>[k(A(e.ocrModel||"豆包视觉"),1)]),_:1})):e.engineUsed==="tesseract"&&e.ocrConfidence!==null?(w(),L(_,{key:1},{default:a(()=>[k(" Tesseract · "+A(e.ocrConfidence)+"% ",1)]),_:1})):x("v-if",!0),e.ocrFallbackReason?(w(),L(S,{key:2,title:`LLM 识别失败已回落 Tesseract: ${e.ocrFallbackReason}`},{default:a(()=>[n(_,{color:"orange"},{default:a(()=>[...t[10]||(t[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):x("v-if",!0)]),e.shot?.dataUrl?(w(),V("div",Ee,[T("img",{src:e.shot.dataUrl,alt:"screenshot"},null,8,Ie)])):x("v-if",!0),n(p,{layout:"vertical",model:e.formState},{default:a(()=>[n(O,{label:"标题"},{default:a(()=>[n(v,{value:e.formState.title,"onUpdate:value":t[1]||(t[1]=c=>e.formState.title=c),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(O,null,{label:a(()=>[t[11]||(t[11]=T("span",null,"识别文本",-1)),e.ocrLoading?(w(),L(U,{key:0,size:"small",style:{"margin-left":"8px"}})):x("v-if",!0)]),default:a(()=>[n(E,{value:e.formState.content,"onUpdate:value":t[2]||(t[2]=c=>e.formState.content=c),placeholder:e.ocrLoading?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),n(O,{label:"标签 (逗号分隔, 可选)"},{default:a(()=>[n(v,{value:e.formState.tagsRaw,"onUpdate:value":t[3]||(t[3]=c=>e.formState.tagsRaw=c),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}const Ue=ae(ke,[["render",Ve],["__scopeId","data-v-1d6234fd"],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/components/ScreenshotImportDialog.vue"]]),Te={__name:"Notes",setup(m,{expose:t}){t();const b=J(),e=ie(),h=le(),g=u(!1),r=u(!1),s=u(!1),d=u(!1),i=u(""),_=u([]),S=u([]),v=u(!1),O=u(""),U=u(!1),E=u(!1),p=u(!1),o=u(!1),c=u(null),N=u({title:"",content:"",tags:""});async function B(){C.success("剪贴板内容已保存到知识库"),await z()}async function q(){C.success("截图内容已保存到知识库"),await z()}const D=P(()=>v.value?S.value:_.value),K=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function z(){r.value=!0,i.value="";try{const{output:l}=await b.execute("note list",2e4);_.value=j(l)}catch(l){i.value=`加载失败: ${l.message}`}finally{r.value=!1}}function j(l){const I=[],$=l.split(`
2
- `);for(const ee of $){const R=ee.trim();if(!R||R.startsWith("─")||R.startsWith("Note")||R.match(/^\d+ note/i))continue;const M=R.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);M?I.push({key:M[1],id:M[1],title:M[2].trim(),tags:M[3]?M[3].split(",").map(fe=>fe.trim()):[],preview:(M[4]||"").trim().slice(0,100),content:""}):R.length>2&&!R.startsWith("✖")&&!R.startsWith("[")&&I.push({key:I.length,id:String(I.length),title:R,tags:[],preview:"",content:""})}return I}async function G(){if(!O.value.trim()){Q();return}s.value=!0,v.value=!0;try{const{output:l}=await b.execute(`note search "${O.value}"`,15e3);S.value=j(l)}catch{S.value=[]}finally{s.value=!1}}function Q(){O.value="",v.value=!1,S.value=[]}async function H(){if(!N.value.title.trim()){C.warning("请输入标题");return}d.value=!0;try{let l=`note add "${N.value.title}"`;N.value.content&&(l+=` -c "${N.value.content.replace(/"/g,'\\"')}"`),N.value.tags&&(l+=` -t "${N.value.tags}"`);const{output:I}=await b.execute(l,15e3);I.includes("✖")||I.toLowerCase().includes("error")?C.error("添加失败: "+I.slice(0,100)):(C.success("笔记已添加"),U.value=!1,N.value={title:"",content:"",tags:""},await z())}catch(l){C.error("添加失败: "+l.message)}finally{d.value=!1}}function X(l){c.value=l,E.value=!0}async function W(){if(!c.value)return;const l=c.value,I=l.tags?.length?`tags: [${l.tags.join(", ")}]
1
+ import{I as f,P as w,S as T,K as a,J as V,c as n,V as x,w as F,b as P,a as J,r as u,U as L,Q as k,R as D,F as te,M as le,o as re,Z as se}from"./vendor-Bn1JzzAn.js";import{u as Z,_ as ae,d as C}from"./index-3_CEBEEf.js";import{u as ie}from"./useFs-Dp0V7sjM.js";import{u as de}from"./useShellMode-CgR0wCYM.js";import{ax as me,ay as ue,az as pe,aA as ge,a5 as ve,R as we,at as _e}from"./icons-DG5UD-6K.js";function ye(m){if(m&&m.ok===!1)throw new Error(m.error||"knowledge handler failed");return m?.result??m}function ne(m){return String(m).replace(/(["\\])/g,"\\$1")}function G(){const m=Z();async function t({title:b,content:e,tags:h=[],type:g="note"}={}){if(typeof b!="string"||!b.trim())throw new Error("title is required");if(typeof e!="string")throw new Error("content is required");const r=Array.isArray(h)?h.filter(Boolean):[];if(de().isEmbedded){const i=await m.sendRaw({type:"knowledge.add-item",item:{title:b.trim(),content:e,tags:r,type:g}},2e4),_=ye(i);if(_?.success===!1)throw new Error(_.error||"knowledge.add-item failed");return _?.item??null}let s=`note add "${ne(b.trim())}" -c "${ne(e)}"`;r.length&&(s+=` -t "${ne(r.join(","))}"`);const{output:d}=await m.execute(s,15e3);if(d&&/^[\s\S]*✖|error/i.test(d))throw new Error(d.slice(0,200));return{title:b.trim(),content:e,tags:r,type:g}}return{addItem:t}}const he={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=G(),r=P({get:()=>e.modelValue,set:p=>h("update:modelValue",p)}),s=u(!1),d=u(""),i=J({title:"",content:"",tagsRaw:""}),_=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){i.title=_(),i.content="",i.tagsRaw="",d.value=""}async function v(){if(d.value="",!navigator.clipboard?.readText){d.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();i.content=p||"",p||(d.value="剪贴板为空")}catch(p){d.value="读取剪贴板失败:"+(p?.message||String(p))}}F(()=>e.modelValue,async p=>{p&&(S(),await v())},{immediate:!0});async function O(){if(!i.content.trim()){C.warning("内容为空,无法保存");return}s.value=!0;try{const p=i.tagsRaw.split(/[,,]/).map(c=>c.trim()).filter(Boolean),o=await g.addItem({title:i.title.trim()||_(),content:i.content,tags:p,type:"note"});C.success("已保存到知识库"),h("saved",o),r.value=!1}catch(p){C.error("保存失败:"+(p?.message||String(p)))}finally{s.value=!1}}function U(){r.value=!1}const I={props:e,emit:h,knowledge:g,open:r,loading:s,readError:d,formState:i,defaultTitle:_,resetForm:S,readClipboard:v,handleSave:O,handleCancel:U,ref:u,reactive:J,computed:P,watch:F,get message(){return C},get useKnowledge(){return G}};return Object.defineProperty(I,"__isScriptSetup",{enumerable:!1,value:!0}),I}},be={key:0,style:{"margin-bottom":"16px"}};function Se(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-input"),d=f("a-form-item"),i=f("a-textarea"),_=f("a-form"),S=f("a-modal");return w(),T(S,{open:e.open,"onUpdate:open":t[3]||(t[3]=v=>e.open=v),title:"剪贴板导入",width:640,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.formState.content.trim()},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.readError?(w(),V("div",be,[n(r,{type:"warning","show-icon":"",message:e.readError,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):x("v-if",!0),n(_,{layout:"vertical",model:e.formState},{default:a(()=>[n(d,{label:"标题"},{default:a(()=>[n(s,{value:e.formState.title,"onUpdate:value":t[0]||(t[0]=v=>e.formState.title=v),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(d,{label:"内容"},{default:a(()=>[n(i,{value:e.formState.content,"onUpdate:value":t[1]||(t[1]=v=>e.formState.content=v),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),n(d,{label:"标签(逗号分隔,可选)"},{default:a(()=>[n(s,{value:e.formState.tagsRaw,"onUpdate:value":t[2]||(t[2]=v=>e.formState.tagsRaw=v),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}const xe=ae(he,[["render",Se],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/ClipboardImportDialog.vue"]]);function oe(m){if(m&&m.ok===!1)throw new Error(m.error||"screenshot handler failed");return m?.result??m}function ce(){const m=Z();if(!de().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function b({screenIndex:g}={}){const r=await m.sendRaw({type:"screenshot.capture",screenIndex:g},3e4),s=oe(r);if(s?.success===!1)throw new Error(s.error||"screenshot.capture failed");return s}async function e(g,r,s){if(!g)throw new Error("path is required");const d=await m.sendRaw({type:"screenshot.ocr",path:g,lang:r,engine:s},9e4),i=oe(d);if(i?.success===!1)throw new Error(i.error||"screenshot.ocr failed");return i}async function h(g){if(g)try{const r=await m.sendRaw({type:"screenshot.cleanup",path:g},1e4),s=oe(r);s?.success===!1&&console.warn("[useScreenshot] cleanup failed:",s.error)}catch(r){console.warn("[useScreenshot] cleanup error:",r?.message||r)}}return{unsupported:!1,capture:b,ocr:e,cleanup:h}}const ke={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=ce(),r=G(),s=P({get:()=>e.modelValue,set:y=>h("update:modelValue",y)}),d=u(!1),i=u(!1),_=u(!1),S=u(""),v=u(null),O=u("auto"),U=u(null),I=u(""),p=u(""),o=u(null),c=J({title:"",content:"",tagsRaw:""}),N=P(()=>!!o.value&&(c.content.trim()||"").length>0),B=()=>`截图识别 - ${new Date().toLocaleString()}`;function q(){c.title=B(),c.content="",c.tagsRaw="",S.value="",v.value=null,U.value=null,I.value="",p.value="",o.value=null}async function M(){o.value?.path&&await g.cleanup(o.value.path)}async function j(){if(g.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;i.value=!0;try{return await g.capture({})}catch(y){return S.value=y?.message||String(y),null}finally{i.value=!1}}async function z(y){if(y){_.value=!0;try{const l=await g.ocr(y,void 0,O.value);c.content=l.text||"",v.value=typeof l.confidence=="number"?l.confidence:null,U.value=l.engine||null,I.value=l.model||"",p.value=l.fallbackReason||"",l.text||C.info("OCR 未识别到文本,可手动输入")}catch(l){C.warning("OCR 失败: "+(l?.message||String(l)))}finally{_.value=!1}}}async function Q(){p.value=""}async function H(){await M(),q();const y=await j();y&&(o.value=y,await z(y.path))}async function W(){o.value?.path&&await z(o.value.path)}F(()=>e.modelValue,async y=>{if(y){q();const l=await j();l&&(o.value=l,await z(l.path))}else await M(),o.value=null},{immediate:!0});async function X(){if(!N.value){C.warning("识别文本为空,无法保存");return}d.value=!0;try{const y=c.tagsRaw.split(/[,,]/).map(E=>E.trim()).filter(Boolean),l=await r.addItem({title:c.title.trim()||B(),content:c.content,tags:y,type:"note"});C.success("已保存到知识库"),h("saved",l),await M(),s.value=!1}catch(y){C.error("保存失败: "+(y?.message||String(y)))}finally{d.value=!1}}async function Y(){await M(),s.value=!1}const K={props:e,emit:h,screenshot:g,knowledge:r,open:s,loading:d,capturing:i,ocrLoading:_,captureError:S,ocrConfidence:v,ocrEngine:O,engineUsed:U,ocrModel:I,ocrFallbackReason:p,shot:o,formState:c,canSave:N,defaultTitle:B,resetState:q,cleanupShot:M,runCapture:j,runOcr:z,handleEngineChange:Q,handleRecapture:H,handleRerunOcr:W,handleSave:X,handleCancel:Y,ref:u,reactive:J,computed:P,watch:F,get message(){return C},get CameraOutlined(){return ue},get ScanOutlined(){return me},get useScreenshot(){return ce},get useKnowledge(){return G}};return Object.defineProperty(K,"__isScriptSetup",{enumerable:!1,value:!0}),K}},Ce={key:0,style:{"margin-bottom":"16px"}},Oe={key:1,class:"ss-error"},Re={key:2},Ne={class:"ss-actions"},Ie={key:0,class:"ss-preview"},Ee=["src"];function Ve(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-button"),d=f("a-select-option"),i=f("a-select"),_=f("a-tag"),S=f("a-tooltip"),v=f("a-input"),O=f("a-form-item"),U=f("a-spin"),I=f("a-textarea"),p=f("a-form"),o=f("a-modal");return w(),T(o,{open:e.open,"onUpdate:open":t[4]||(t[4]=c=>e.open=c),title:"截图识别",width:780,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.canSave},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.screenshot.unsupported?(w(),V("div",Ce,[n(r,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):e.captureError?(w(),V("div",Oe,[n(r,{type:"error","show-icon":"",message:e.captureError},null,8,["message"])])):(w(),V("div",Re,[L("div",Ne,[n(s,{size:"small",loading:e.capturing,onClick:e.handleRecapture},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[5]||(t[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),n(s,{size:"small",loading:e.ocrLoading,disabled:!e.shot||e.ocrLoading,onClick:e.handleRerunOcr},{icon:a(()=>[n(e.ScanOutlined)]),default:a(()=>[t[6]||(t[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),n(i,{value:e.ocrEngine,"onUpdate:value":t[0]||(t[0]=c=>e.ocrEngine=c),size:"small",style:{width:"140px"},disabled:e.ocrLoading,onChange:e.handleEngineChange},{default:a(()=>[n(d,{value:"auto"},{default:a(()=>[...t[7]||(t[7]=[k("自动 (推荐)",-1)])]),_:1}),n(d,{value:"llm"},{default:a(()=>[...t[8]||(t[8]=[k("视觉 LLM",-1)])]),_:1}),n(d,{value:"tesseract"},{default:a(()=>[...t[9]||(t[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),e.engineUsed==="llm"?(w(),T(_,{key:0,color:"blue"},{default:a(()=>[k(D(e.ocrModel||"豆包视觉"),1)]),_:1})):e.engineUsed==="tesseract"&&e.ocrConfidence!==null?(w(),T(_,{key:1},{default:a(()=>[k(" Tesseract · "+D(e.ocrConfidence)+"% ",1)]),_:1})):x("v-if",!0),e.ocrFallbackReason?(w(),T(S,{key:2,title:`LLM 识别失败已回落 Tesseract: ${e.ocrFallbackReason}`},{default:a(()=>[n(_,{color:"orange"},{default:a(()=>[...t[10]||(t[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):x("v-if",!0)]),e.shot?.dataUrl?(w(),V("div",Ie,[L("img",{src:e.shot.dataUrl,alt:"screenshot"},null,8,Ee)])):x("v-if",!0),n(p,{layout:"vertical",model:e.formState},{default:a(()=>[n(O,{label:"标题"},{default:a(()=>[n(v,{value:e.formState.title,"onUpdate:value":t[1]||(t[1]=c=>e.formState.title=c),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(O,null,{label:a(()=>[t[11]||(t[11]=L("span",null,"识别文本",-1)),e.ocrLoading?(w(),T(U,{key:0,size:"small",style:{"margin-left":"8px"}})):x("v-if",!0)]),default:a(()=>[n(I,{value:e.formState.content,"onUpdate:value":t[2]||(t[2]=c=>e.formState.content=c),placeholder:e.ocrLoading?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),n(O,{label:"标签 (逗号分隔, 可选)"},{default:a(()=>[n(v,{value:e.formState.tagsRaw,"onUpdate:value":t[3]||(t[3]=c=>e.formState.tagsRaw=c),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}const Ue=ae(ke,[["render",Ve],["__scopeId","data-v-1d6234fd"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/ScreenshotImportDialog.vue"]]),Le={__name:"Notes",setup(m,{expose:t}){t();const b=Z(),e=ie(),h=le(),g=u(!1),r=u(!1),s=u(!1),d=u(!1),i=u(""),_=u([]),S=u([]),v=u(!1),O=u(""),U=u(!1),I=u(!1),p=u(!1),o=u(!1),c=u(null),N=u({title:"",content:"",tags:""});async function B(){C.success("剪贴板内容已保存到知识库"),await z()}async function q(){C.success("截图内容已保存到知识库"),await z()}const M=P(()=>v.value?S.value:_.value),j=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function z(){r.value=!0,i.value="";try{const{output:l}=await b.execute("note list",2e4);_.value=Q(l)}catch(l){i.value=`加载失败: ${l.message}`}finally{r.value=!1}}function Q(l){const E=[],$=l.split(`
2
+ `);for(const ee of $){const R=ee.trim();if(!R||R.startsWith("─")||R.startsWith("Note")||R.match(/^\d+ note/i))continue;const A=R.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);A?E.push({key:A[1],id:A[1],title:A[2].trim(),tags:A[3]?A[3].split(",").map(fe=>fe.trim()):[],preview:(A[4]||"").trim().slice(0,100),content:""}):R.length>2&&!R.startsWith("✖")&&!R.startsWith("[")&&E.push({key:E.length,id:String(E.length),title:R,tags:[],preview:"",content:""})}return E}async function H(){if(!O.value.trim()){W();return}s.value=!0,v.value=!0;try{const{output:l}=await b.execute(`note search "${O.value}"`,15e3);S.value=Q(l)}catch{S.value=[]}finally{s.value=!1}}function W(){O.value="",v.value=!1,S.value=[]}async function X(){if(!N.value.title.trim()){C.warning("请输入标题");return}d.value=!0;try{let l=`note add "${N.value.title}"`;N.value.content&&(l+=` -c "${N.value.content.replace(/"/g,'\\"')}"`),N.value.tags&&(l+=` -t "${N.value.tags}"`);const{output:E}=await b.execute(l,15e3);E.includes("✖")||E.toLowerCase().includes("error")?C.error("添加失败: "+E.slice(0,100)):(C.success("笔记已添加"),U.value=!1,N.value={title:"",content:"",tags:""},await z())}catch(l){C.error("添加失败: "+l.message)}finally{d.value=!1}}function Y(l){c.value=l,I.value=!0}async function K(){if(!c.value)return;const l=c.value,E=l.tags?.length?`tags: [${l.tags.join(", ")}]
3
3
 
4
4
  `:"",$=`# ${l.title}
5
5
 
6
- ${I}${l.content||l.preview||""}
7
- `,ee=(l.title||"note").replace(/[\\/:*?"<>|\x00-\x1f]+/g,"_").slice(0,80)||"note";g.value=!0;try{const R=await e.saveText($,{defaultPath:`${ee}.md`,filters:[{name:"Markdown",extensions:["md"]}]});if(R.canceled)return;C.success(R.path?`已导出到 ${R.path}`:"已导出")}catch(R){C.error(`导出失败: ${R.message||R}`)}finally{g.value=!1}}re(()=>{z(),h.query.clipboardImport&&(p.value=!0),h.query.screenshotOcr&&(o.value=!0)}),F(()=>h.query.clipboardImport,l=>{l&&(p.value=!0)}),F(()=>h.query.screenshotOcr,l=>{l&&(o.value=!0)});const y={ws:b,fs:e,route:h,exporting:g,loading:r,searching:s,adding:d,error:i,notes:_,searchResults:S,isSearchMode:v,searchQuery:O,showAdd:U,showView:E,showClipboardImport:p,showScreenshotImport:o,viewingNote:c,newNote:N,onClipboardSaved:B,onScreenshotSaved:q,displayNotes:D,columns:K,loadNotes:z,parseNoteList:j,doSearch:G,clearSearch:Q,addNote:H,viewNote:X,exportNote:W,ref:u,computed:P,onMounted:re,watch:F,get useRoute(){return le},get PlusOutlined(){return _e},get ReloadOutlined(){return we},get FileTextOutlined(){return ve},get DownloadOutlined(){return ge},get SnippetsOutlined(){return pe},get CameraOutlined(){return ue},get message(){return C},get useWsStore(){return J},get useFs(){return ie},ClipboardImportDialog:xe,ScreenshotImportDialog:Ue};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}},Le={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ze={class:"page-sub"},Ae={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},De={key:0,style:{"text-align":"center",padding:"60px"}},Me={key:0,style:{color:"#e0e0e0","font-weight":"500"}},Fe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Pe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Be={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},qe={style:{"margin-bottom":"10px"}},Ke={style:{"white-space":"pre-wrap",color:"#ccc","font-family":"inherit","line-height":"1.7",background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}};function je(m,t,b,e,h,g){const r=f("a-button"),s=f("a-space"),d=f("a-input-search"),i=f("a-tag"),_=f("a-spin"),S=f("a-table"),v=f("a-input"),O=f("a-form-item"),U=f("a-textarea"),E=f("a-form"),p=f("a-modal");return w(),V("div",null,[T("div",Le,[T("div",null,[t[12]||(t[12]=T("h2",{class:"page-title"},"笔记管理",-1)),T("p",ze,"个人知识库 · "+A(e.notes.length)+" 条笔记",1)]),n(s,null,{default:a(()=>[n(r,{onClick:t[0]||(t[0]=o=>e.showAdd=!0),type:"primary"},{icon:a(()=>[n(e.PlusOutlined)]),default:a(()=>[t[13]||(t[13]=k(" 新建笔记 ",-1))]),_:1}),n(r,{onClick:t[1]||(t[1]=o=>e.showClipboardImport=!0)},{icon:a(()=>[n(e.SnippetsOutlined)]),default:a(()=>[t[14]||(t[14]=k(" 剪贴板导入 ",-1))]),_:1}),n(r,{onClick:t[2]||(t[2]=o=>e.showScreenshotImport=!0)},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[15]||(t[15]=k(" 截图识别 ",-1))]),_:1}),n(r,{ghost:"",loading:e.loading,onClick:e.loadNotes},{icon:a(()=>[n(e.ReloadOutlined)]),default:a(()=>[t[16]||(t[16]=k(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),x(" Search "),T("div",Ae,[n(d,{value:e.searchQuery,"onUpdate:value":t[3]||(t[3]=o=>e.searchQuery=o),placeholder:"搜索笔记...","allow-clear":"",style:{"max-width":"400px"},loading:e.searching,onSearch:e.doSearch,onClear:e.clearSearch},null,8,["value","loading"]),e.isSearchMode?(w(),L(i,{key:0,color:"blue",closable:"",onClose:e.clearSearch},{default:a(()=>[k(" 搜索: "+A(e.searchQuery),1)]),_:1})):x("v-if",!0)]),x(" Loading "),e.loading?(w(),V("div",De,[n(_,{size:"large"})])):(w(),V(te,{key:1},[x(" Notes Table "),n(S,{columns:e.columns,"data-source":e.displayNotes,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"note-row"},{bodyCell:a(({column:o,record:c})=>[o.key==="title"?(w(),V("span",Me,A(c.title),1)):x("v-if",!0),o.key==="tags"?(w(!0),V(te,{key:1},se(c.tags,N=>(w(),L(i,{key:N,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:a(()=>[k(A(N),1)]),_:2},1024))),128)):x("v-if",!0),o.key==="content"?(w(),V("span",Fe,A(c.preview),1)):x("v-if",!0),o.key==="actions"?(w(),L(r,{key:3,size:"small",type:"link",onClick:N=>e.viewNote(c)},{default:a(()=>[...t[17]||(t[17]=[k("查看",-1)])]),_:1},8,["onClick"])):x("v-if",!0)]),emptyText:a(()=>[T("div",Pe,[n(e.FileTextOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),k(" "+A(e.error||'暂无笔记,点击"新建笔记"添加'),1)])]),_:1},8,["data-source","pagination"])],2112)),x(" Add Note Modal "),n(p,{open:e.showAdd,"onUpdate:open":t[7]||(t[7]=o=>e.showAdd=o),title:"新建笔记","confirm-loading":e.adding,onOk:e.addNote},{default:a(()=>[n(E,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[n(O,{label:"标题",required:""},{default:a(()=>[n(v,{value:e.newNote.title,"onUpdate:value":t[4]||(t[4]=o=>e.newNote.title=o),placeholder:"笔记标题"},null,8,["value"])]),_:1}),n(O,{label:"内容"},{default:a(()=>[n(U,{value:e.newNote.content,"onUpdate:value":t[5]||(t[5]=o=>e.newNote.content=o),rows:5,placeholder:"笔记内容..."},null,8,["value"])]),_:1}),n(O,{label:"标签"},{default:a(()=>[n(v,{value:e.newNote.tags,"onUpdate:value":t[6]||(t[6]=o=>e.newNote.tags=o),placeholder:"用逗号分隔,如: work,ideas"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),x(" Clipboard import modal "),n(e.ClipboardImportDialog,{modelValue:e.showClipboardImport,"onUpdate:modelValue":t[8]||(t[8]=o=>e.showClipboardImport=o),onSaved:e.onClipboardSaved},null,8,["modelValue"]),x(" Screenshot OCR modal "),n(e.ScreenshotImportDialog,{modelValue:e.showScreenshotImport,"onUpdate:modelValue":t[9]||(t[9]=o=>e.showScreenshotImport=o),onSaved:e.onScreenshotSaved},null,8,["modelValue"]),x(" View Note Modal "),n(p,{open:e.showView,"onUpdate:open":t[11]||(t[11]=o=>e.showView=o),title:e.viewingNote?.title,width:"700px"},{footer:a(()=>[n(r,{onClick:t[10]||(t[10]=o=>e.showView=!1)},{default:a(()=>[...t[18]||(t[18]=[k("关闭",-1)])]),_:1}),e.viewingNote?(w(),L(r,{key:0,type:"primary",loading:e.exporting,onClick:e.exportNote},{icon:a(()=>[n(e.DownloadOutlined)]),default:a(()=>[t[19]||(t[19]=k(" 导出 .md ",-1))]),_:1},8,["loading"])):x("v-if",!0)]),default:a(()=>[e.viewingNote?(w(),V("div",Be,[T("div",qe,[(w(!0),V(te,null,se(e.viewingNote.tags,o=>(w(),L(i,{key:o,color:"blue"},{default:a(()=>[k(A(o),1)]),_:2},1024))),128))]),T("pre",Ke,A(e.viewingNote.content||e.viewingNote.preview),1)])):x("v-if",!0)]),_:1},8,["open","title"])])}const Ge=ae(Te,[["render",je],["__scopeId","data-v-7992c921"],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/views/Notes.vue"]]);export{Ge as default};
6
+ ${E}${l.content||l.preview||""}
7
+ `,ee=(l.title||"note").replace(/[\\/:*?"<>|\x00-\x1f]+/g,"_").slice(0,80)||"note";g.value=!0;try{const R=await e.saveText($,{defaultPath:`${ee}.md`,filters:[{name:"Markdown",extensions:["md"]}]});if(R.canceled)return;C.success(R.path?`已导出到 ${R.path}`:"已导出")}catch(R){C.error(`导出失败: ${R.message||R}`)}finally{g.value=!1}}re(()=>{z(),h.query.clipboardImport&&(p.value=!0),h.query.screenshotOcr&&(o.value=!0)}),F(()=>h.query.clipboardImport,l=>{l&&(p.value=!0)}),F(()=>h.query.screenshotOcr,l=>{l&&(o.value=!0)});const y={ws:b,fs:e,route:h,exporting:g,loading:r,searching:s,adding:d,error:i,notes:_,searchResults:S,isSearchMode:v,searchQuery:O,showAdd:U,showView:I,showClipboardImport:p,showScreenshotImport:o,viewingNote:c,newNote:N,onClipboardSaved:B,onScreenshotSaved:q,displayNotes:M,columns:j,loadNotes:z,parseNoteList:Q,doSearch:H,clearSearch:W,addNote:X,viewNote:Y,exportNote:K,ref:u,computed:P,onMounted:re,watch:F,get useRoute(){return le},get PlusOutlined(){return _e},get ReloadOutlined(){return we},get FileTextOutlined(){return ve},get DownloadOutlined(){return ge},get SnippetsOutlined(){return pe},get CameraOutlined(){return ue},get message(){return C},get useWsStore(){return Z},get useFs(){return ie},ClipboardImportDialog:xe,ScreenshotImportDialog:Ue};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}},Te={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ze={class:"page-sub"},De={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},Me={key:0,style:{"text-align":"center",padding:"60px"}},Ae={key:0,style:{color:"#e0e0e0","font-weight":"500"}},Fe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Pe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Be={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},qe={style:{"margin-bottom":"10px"}},je={style:{"white-space":"pre-wrap",color:"#ccc","font-family":"inherit","line-height":"1.7",background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}};function Qe(m,t,b,e,h,g){const r=f("a-button"),s=f("a-space"),d=f("a-input-search"),i=f("a-tag"),_=f("a-spin"),S=f("a-table"),v=f("a-input"),O=f("a-form-item"),U=f("a-textarea"),I=f("a-form"),p=f("a-modal");return w(),V("div",null,[L("div",Te,[L("div",null,[t[12]||(t[12]=L("h2",{class:"page-title"},"笔记管理",-1)),L("p",ze,"个人知识库 · "+D(e.notes.length)+" 条笔记",1)]),n(s,null,{default:a(()=>[n(r,{onClick:t[0]||(t[0]=o=>e.showAdd=!0),type:"primary"},{icon:a(()=>[n(e.PlusOutlined)]),default:a(()=>[t[13]||(t[13]=k(" 新建笔记 ",-1))]),_:1}),n(r,{onClick:t[1]||(t[1]=o=>e.showClipboardImport=!0)},{icon:a(()=>[n(e.SnippetsOutlined)]),default:a(()=>[t[14]||(t[14]=k(" 剪贴板导入 ",-1))]),_:1}),n(r,{onClick:t[2]||(t[2]=o=>e.showScreenshotImport=!0)},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[15]||(t[15]=k(" 截图识别 ",-1))]),_:1}),n(r,{ghost:"",loading:e.loading,onClick:e.loadNotes},{icon:a(()=>[n(e.ReloadOutlined)]),default:a(()=>[t[16]||(t[16]=k(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),x(" Search "),L("div",De,[n(d,{value:e.searchQuery,"onUpdate:value":t[3]||(t[3]=o=>e.searchQuery=o),placeholder:"搜索笔记...","allow-clear":"",style:{"max-width":"400px"},loading:e.searching,onSearch:e.doSearch,onClear:e.clearSearch},null,8,["value","loading"]),e.isSearchMode?(w(),T(i,{key:0,color:"blue",closable:"",onClose:e.clearSearch},{default:a(()=>[k(" 搜索: "+D(e.searchQuery),1)]),_:1})):x("v-if",!0)]),x(" Loading "),e.loading?(w(),V("div",Me,[n(_,{size:"large"})])):(w(),V(te,{key:1},[x(" Notes Table "),n(S,{columns:e.columns,"data-source":e.displayNotes,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"note-row"},{bodyCell:a(({column:o,record:c})=>[o.key==="title"?(w(),V("span",Ae,D(c.title),1)):x("v-if",!0),o.key==="tags"?(w(!0),V(te,{key:1},se(c.tags,N=>(w(),T(i,{key:N,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:a(()=>[k(D(N),1)]),_:2},1024))),128)):x("v-if",!0),o.key==="content"?(w(),V("span",Fe,D(c.preview),1)):x("v-if",!0),o.key==="actions"?(w(),T(r,{key:3,size:"small",type:"link",onClick:N=>e.viewNote(c)},{default:a(()=>[...t[17]||(t[17]=[k("查看",-1)])]),_:1},8,["onClick"])):x("v-if",!0)]),emptyText:a(()=>[L("div",Pe,[n(e.FileTextOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),k(" "+D(e.error||'暂无笔记,点击"新建笔记"添加'),1)])]),_:1},8,["data-source","pagination"])],2112)),x(" Add Note Modal "),n(p,{open:e.showAdd,"onUpdate:open":t[7]||(t[7]=o=>e.showAdd=o),title:"新建笔记","confirm-loading":e.adding,onOk:e.addNote},{default:a(()=>[n(I,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[n(O,{label:"标题",required:""},{default:a(()=>[n(v,{value:e.newNote.title,"onUpdate:value":t[4]||(t[4]=o=>e.newNote.title=o),placeholder:"笔记标题"},null,8,["value"])]),_:1}),n(O,{label:"内容"},{default:a(()=>[n(U,{value:e.newNote.content,"onUpdate:value":t[5]||(t[5]=o=>e.newNote.content=o),rows:5,placeholder:"笔记内容..."},null,8,["value"])]),_:1}),n(O,{label:"标签"},{default:a(()=>[n(v,{value:e.newNote.tags,"onUpdate:value":t[6]||(t[6]=o=>e.newNote.tags=o),placeholder:"用逗号分隔,如: work,ideas"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),x(" Clipboard import modal "),n(e.ClipboardImportDialog,{modelValue:e.showClipboardImport,"onUpdate:modelValue":t[8]||(t[8]=o=>e.showClipboardImport=o),onSaved:e.onClipboardSaved},null,8,["modelValue"]),x(" Screenshot OCR modal "),n(e.ScreenshotImportDialog,{modelValue:e.showScreenshotImport,"onUpdate:modelValue":t[9]||(t[9]=o=>e.showScreenshotImport=o),onSaved:e.onScreenshotSaved},null,8,["modelValue"]),x(" View Note Modal "),n(p,{open:e.showView,"onUpdate:open":t[11]||(t[11]=o=>e.showView=o),title:e.viewingNote?.title,width:"700px"},{footer:a(()=>[n(r,{onClick:t[10]||(t[10]=o=>e.showView=!1)},{default:a(()=>[...t[18]||(t[18]=[k("关闭",-1)])]),_:1}),e.viewingNote?(w(),T(r,{key:0,type:"primary",loading:e.exporting,onClick:e.exportNote},{icon:a(()=>[n(e.DownloadOutlined)]),default:a(()=>[t[19]||(t[19]=k(" 导出 .md ",-1))]),_:1},8,["loading"])):x("v-if",!0)]),default:a(()=>[e.viewingNote?(w(),V("div",Be,[L("div",qe,[(w(!0),V(te,null,se(e.viewingNote.tags,o=>(w(),T(i,{key:o,color:"blue"},{default:a(()=>[k(D(o),1)]),_:2},1024))),128))]),L("pre",je,D(e.viewingNote.content||e.viewingNote.preview),1)])):x("v-if",!0)]),_:1},8,["open","title"])])}const He=ae(Le,[["render",Qe],["__scopeId","data-v-7992c921"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/views/Notes.vue"]]);export{He as default};
@@ -1 +1 @@
1
- import{r as b,I as f,J as h,U as d,S as R,V as E,c as n,K as c,o as N,P as k,F as V,Q as O,R as B}from"./vendor-Bn1JzzAn.js";import{u as A,_ as D,d as S}from"./index-D9ScRFxz.js";import{u as F}from"./useShellMode-CgR0wCYM.js";import{R as L}from"./icons-DG5UD-6K.js";const p={enabled:!0,sound:!0,badge:!0,desktop:!0};function T(s){if(s&&s.ok===!1)throw new Error(s.error||"notification-settings handler failed");return s?.result??s}const u={settings:b({...p})};function x(){const s=A(),t=F().isEmbedded;async function _(){if(!t)return u.settings.value={...p},u.settings.value;const a=await s.sendRaw({type:"notification-settings.get"},1e4),o=T(a);if(o?.success===!1)throw new Error(o.error||"notification-settings.get failed");return u.settings.value={...p,...o?.settings||{}},u.settings.value}async function e(a){if(!a||typeof a!="object")throw new Error("patch is required");if(!t)throw new Error("通知设置仅在嵌入式 web-shell 中可写");const o=await s.sendRaw({type:"notification-settings.update",settings:a},1e4),i=T(o);if(i?.success===!1)throw new Error(i.error||"notification-settings.update failed");return u.settings.value={...p,...i?.settings||{}},u.settings.value}return{settings:u.settings,isEmbedded:t,load:_,update:e,DEFAULTS:p}}const j={__name:"NotificationSettings",setup(s,{expose:t}){t();const{settings:_,isEmbedded:e,load:a,update:o}=x(),i=b(!1),l=b(!1),g=b("");async function v(){i.value=!0;try{await a()}catch(m){S.error("加载失败: "+(m?.message||String(m)))}finally{i.value=!1}}async function y(m,r){if(e){l.value=!0;try{await o({[m]:r}),g.value=new Date().toLocaleTimeString(),S.success("已保存")}catch(C){S.error("保存失败: "+(C?.message||String(C))),await a().catch(()=>{})}finally{l.value=!1}}}N(v);const w={settings:_,isEmbedded:e,load:a,update:o,loading:i,saving:l,lastSaved:g,reload:v,onToggle:y,ref:b,onMounted:N,get message(){return S},get ReloadOutlined(){return L},get useNotificationSettings(){return x}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}},I={class:"footer-row"},K={key:0,class:"last-saved"};function M(s,t,_,e,a,o){const i=f("a-alert"),l=f("a-switch"),g=f("a-form-item"),v=f("a-form"),y=f("a-divider"),w=f("a-button"),m=f("a-card");return k(),h("div",null,[t[9]||(t[9]=d("div",{class:"page-head"},[d("div",null,[d("h2",{class:"page-title"},"通知设置"),d("p",{class:"page-sub"},"控制应用通知行为 · 与桌面 V5/V6 设置同源")])],-1)),e.isEmbedded?E("v-if",!0):(k(),R(i,{key:0,type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"浏览器模式只读",description:"纯浏览器没有 Electron AppConfig 后端,本页只能展示默认值。请使用桌面壳 (cc desktop) 写入。"})),n(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:c(()=>[n(v,{layout:"horizontal","label-col":{span:6},"wrapper-col":{span:18}},{default:c(()=>[n(g,{label:"启用通知"},{default:c(()=>[n(l,{checked:e.settings.enabled,disabled:!e.isEmbedded||e.saving,onChange:t[0]||(t[0]=r=>e.onToggle("enabled",r))},null,8,["checked","disabled"]),t[4]||(t[4]=d("span",{class:"hint"},"关闭后所有通知静默",-1))]),_:1}),e.settings.enabled?(k(),h(V,{key:0},[n(g,{label:"通知声音"},{default:c(()=>[n(l,{checked:e.settings.sound,disabled:!e.isEmbedded||e.saving,onChange:t[1]||(t[1]=r=>e.onToggle("sound",r))},null,8,["checked","disabled"]),t[5]||(t[5]=d("span",{class:"hint"},"桌面通知伴随系统提示音",-1))]),_:1}),n(g,{label:"角标提示"},{default:c(()=>[n(l,{checked:e.settings.badge,disabled:!e.isEmbedded||e.saving,onChange:t[2]||(t[2]=r=>e.onToggle("badge",r))},null,8,["checked","disabled"]),t[6]||(t[6]=d("span",{class:"hint"},"在应用图标 / 任务栏角标显示未读数",-1))]),_:1}),n(g,{label:"桌面通知"},{default:c(()=>[n(l,{checked:e.settings.desktop,disabled:!e.isEmbedded||e.saving,onChange:t[3]||(t[3]=r=>e.onToggle("desktop",r))},null,8,["checked","disabled"]),t[7]||(t[7]=d("span",{class:"hint"},"系统级 toast (Windows / macOS / Linux 原生通知)",-1))]),_:1})],64)):E("v-if",!0)]),_:1}),n(y),d("div",I,[n(w,{loading:e.loading,onClick:e.reload},{icon:c(()=>[n(e.ReloadOutlined)]),default:c(()=>[t[8]||(t[8]=O(" 重新加载 ",-1))]),_:1},8,["loading"]),e.lastSaved?(k(),h("span",K,"最近保存: "+B(e.lastSaved),1)):E("v-if",!0)])]),_:1})])}const z=D(j,[["render",M],["__scopeId","data-v-ae0392e9"],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/views/NotificationSettings.vue"]]);export{z as default};
1
+ import{r as b,I as f,J as h,U as d,S as R,V as E,c as n,K as c,o as C,P as k,F as V,Q as O,R as B}from"./vendor-Bn1JzzAn.js";import{u as D,_ as F,d as S}from"./index-3_CEBEEf.js";import{u as I}from"./useShellMode-CgR0wCYM.js";import{R as L}from"./icons-DG5UD-6K.js";const p={enabled:!0,sound:!0,badge:!0,desktop:!0};function N(s){if(s&&s.ok===!1)throw new Error(s.error||"notification-settings handler failed");return s?.result??s}const u={settings:b({...p})};function T(){const s=D(),t=I().isEmbedded;async function _(){if(!t)return u.settings.value={...p},u.settings.value;const a=await s.sendRaw({type:"notification-settings.get"},1e4),o=N(a);if(o?.success===!1)throw new Error(o.error||"notification-settings.get failed");return u.settings.value={...p,...o?.settings||{}},u.settings.value}async function e(a){if(!a||typeof a!="object")throw new Error("patch is required");if(!t)throw new Error("通知设置仅在嵌入式 web-shell 中可写");const o=await s.sendRaw({type:"notification-settings.update",settings:a},1e4),i=N(o);if(i?.success===!1)throw new Error(i.error||"notification-settings.update failed");return u.settings.value={...p,...i?.settings||{}},u.settings.value}return{settings:u.settings,isEmbedded:t,load:_,update:e,DEFAULTS:p}}const j={__name:"NotificationSettings",setup(s,{expose:t}){t();const{settings:_,isEmbedded:e,load:a,update:o}=T(),i=b(!1),l=b(!1),g=b("");async function v(){i.value=!0;try{await a()}catch(m){S.error("加载失败: "+(m?.message||String(m)))}finally{i.value=!1}}async function y(m,r){if(e){l.value=!0;try{await o({[m]:r}),g.value=new Date().toLocaleTimeString(),S.success("已保存")}catch(x){S.error("保存失败: "+(x?.message||String(x))),await a().catch(()=>{})}finally{l.value=!1}}}C(v);const w={settings:_,isEmbedded:e,load:a,update:o,loading:i,saving:l,lastSaved:g,reload:v,onToggle:y,ref:b,onMounted:C,get message(){return S},get ReloadOutlined(){return L},get useNotificationSettings(){return T}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}},A={class:"footer-row"},M={key:0,class:"last-saved"};function P(s,t,_,e,a,o){const i=f("a-alert"),l=f("a-switch"),g=f("a-form-item"),v=f("a-form"),y=f("a-divider"),w=f("a-button"),m=f("a-card");return k(),h("div",null,[t[9]||(t[9]=d("div",{class:"page-head"},[d("div",null,[d("h2",{class:"page-title"},"通知设置"),d("p",{class:"page-sub"},"控制应用通知行为 · 与桌面 V5/V6 设置同源")])],-1)),e.isEmbedded?E("v-if",!0):(k(),R(i,{key:0,type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"浏览器模式只读",description:"纯浏览器没有 Electron AppConfig 后端,本页只能展示默认值。请使用桌面壳 (cc desktop) 写入。"})),n(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:c(()=>[n(v,{layout:"horizontal","label-col":{span:6},"wrapper-col":{span:18}},{default:c(()=>[n(g,{label:"启用通知"},{default:c(()=>[n(l,{checked:e.settings.enabled,disabled:!e.isEmbedded||e.saving,onChange:t[0]||(t[0]=r=>e.onToggle("enabled",r))},null,8,["checked","disabled"]),t[4]||(t[4]=d("span",{class:"hint"},"关闭后所有通知静默",-1))]),_:1}),e.settings.enabled?(k(),h(V,{key:0},[n(g,{label:"通知声音"},{default:c(()=>[n(l,{checked:e.settings.sound,disabled:!e.isEmbedded||e.saving,onChange:t[1]||(t[1]=r=>e.onToggle("sound",r))},null,8,["checked","disabled"]),t[5]||(t[5]=d("span",{class:"hint"},"桌面通知伴随系统提示音",-1))]),_:1}),n(g,{label:"角标提示"},{default:c(()=>[n(l,{checked:e.settings.badge,disabled:!e.isEmbedded||e.saving,onChange:t[2]||(t[2]=r=>e.onToggle("badge",r))},null,8,["checked","disabled"]),t[6]||(t[6]=d("span",{class:"hint"},"在应用图标 / 任务栏角标显示未读数",-1))]),_:1}),n(g,{label:"桌面通知"},{default:c(()=>[n(l,{checked:e.settings.desktop,disabled:!e.isEmbedded||e.saving,onChange:t[3]||(t[3]=r=>e.onToggle("desktop",r))},null,8,["checked","disabled"]),t[7]||(t[7]=d("span",{class:"hint"},"系统级 toast (Windows / macOS / Linux 原生通知)",-1))]),_:1})],64)):E("v-if",!0)]),_:1}),n(y),d("div",A,[n(w,{loading:e.loading,onClick:e.reload},{icon:c(()=>[n(e.ReloadOutlined)]),default:c(()=>[t[8]||(t[8]=O(" 重新加载 ",-1))]),_:1},8,["loading"]),e.lastSaved?(k(),h("span",M,"最近保存: "+B(e.lastSaved),1)):E("v-if",!0)])]),_:1})])}const J=F(j,[["render",P],["__scopeId","data-v-ae0392e9"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/views/NotificationSettings.vue"]]);export{J as default};
@@ -1 +1 @@
1
- import{I as w,P as l,J as u,U as s,R as n,c as i,K as v,Q as _,V as g,b as a}from"./vendor-Bn1JzzAn.js";import{_ as S}from"./index-D9ScRFxz.js";import"./icons-DG5UD-6K.js";const k={__name:"OrderTableRenderer",props:{event:{type:Object,required:!0}},setup(p,{expose:r}){r();const o=p,e=a(()=>o.event.content||{}),d=a(()=>o.event.extra||{}),m=a(()=>d.value.merchant||e.value.merchant||e.value.counterparty||"—"),c=a(()=>e.value.title||e.value.name||e.value.itemName||e.value.text||"—"),y=a(()=>{const t=e.value.amount??e.value.price??e.value.total;return t==null?"—":`${e.value.currency||"¥"} ${typeof t=="number"?t.toFixed(2):t}`}),T=a(()=>d.value.orderNo||e.value.orderNo||e.value.orderId),f=a(()=>e.value.status||e.value.state),b=a(()=>{const t=(f.value||"").toLowerCase();return t.includes("成功")||t.includes("succe")||t.includes("paid")?"green":t.includes("退")||t.includes("refund")?"orange":t.includes("失败")||t.includes("fail")?"red":"default"}),h=a(()=>{if(!o.event.occurredAt)return"";const t=new Date(o.event.occurredAt);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}),x={props:o,c:e,e:d,merchantText:m,itemText:c,amountText:y,orderNo:T,statusText:f,statusColor:b,formattedTime:h,computed:a};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}},N={class:"order-card"},C={class:"head"},O={class:"time"},V={class:"row"},R={class:"val"},A={class:"row"},B={class:"val"},D={class:"row amount-row"},I={class:"val amount"},j={key:0,class:"row"},F={class:"val mono"},K={key:1,class:"row"};function M(p,r,o,e,d,m){const c=w("a-tag");return l(),u("div",N,[s("div",C,[s("span",O,n(e.formattedTime),1),i(c,{color:"gold"},{default:v(()=>[_(n(o.event.source.adapter),1)]),_:1}),i(c,null,{default:v(()=>[_(n(o.event.subtype),1)]),_:1})]),s("div",V,[r[0]||(r[0]=s("span",{class:"key"},"商户",-1)),s("span",R,n(e.merchantText),1)]),s("div",A,[r[1]||(r[1]=s("span",{class:"key"},"商品/项目",-1)),s("span",B,n(e.itemText),1)]),s("div",D,[r[2]||(r[2]=s("span",{class:"key"},"金额",-1)),s("span",I,n(e.amountText),1)]),e.orderNo?(l(),u("div",j,[r[3]||(r[3]=s("span",{class:"key"},"单号",-1)),s("span",F,n(e.orderNo),1)])):g("v-if",!0),e.statusText?(l(),u("div",K,[r[4]||(r[4]=s("span",{class:"key"},"状态",-1)),i(c,{color:e.statusColor},{default:v(()=>[_(n(e.statusText),1)]),_:1},8,["color"])])):g("v-if",!0)])}const H=S(k,[["render",M],["__scopeId","data-v-5ed5524d"],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/components/pdh/renderers/OrderTableRenderer.vue"]]);export{H as default};
1
+ import{I as w,P as l,J as u,U as s,R as n,c as i,K as v,Q as _,V as g,b as a}from"./vendor-Bn1JzzAn.js";import{_ as S}from"./index-3_CEBEEf.js";import"./icons-DG5UD-6K.js";const k={__name:"OrderTableRenderer",props:{event:{type:Object,required:!0}},setup(p,{expose:r}){r();const o=p,e=a(()=>o.event.content||{}),d=a(()=>o.event.extra||{}),m=a(()=>d.value.merchant||e.value.merchant||e.value.counterparty||"—"),c=a(()=>e.value.title||e.value.name||e.value.itemName||e.value.text||"—"),y=a(()=>{const t=e.value.amount??e.value.price??e.value.total;return t==null?"—":`${e.value.currency||"¥"} ${typeof t=="number"?t.toFixed(2):t}`}),T=a(()=>d.value.orderNo||e.value.orderNo||e.value.orderId),f=a(()=>e.value.status||e.value.state),b=a(()=>{const t=(f.value||"").toLowerCase();return t.includes("成功")||t.includes("succe")||t.includes("paid")?"green":t.includes("退")||t.includes("refund")?"orange":t.includes("失败")||t.includes("fail")?"red":"default"}),h=a(()=>{if(!o.event.occurredAt)return"";const t=new Date(o.event.occurredAt);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}),x={props:o,c:e,e:d,merchantText:m,itemText:c,amountText:y,orderNo:T,statusText:f,statusColor:b,formattedTime:h,computed:a};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}},N={class:"order-card"},C={class:"head"},O={class:"time"},V={class:"row"},I={class:"val"},R={class:"row"},B={class:"val"},D={class:"row amount-row"},j={class:"val amount"},A={key:0,class:"row"},F={class:"val mono"},M={key:1,class:"row"};function P(p,r,o,e,d,m){const c=w("a-tag");return l(),u("div",N,[s("div",C,[s("span",O,n(e.formattedTime),1),i(c,{color:"gold"},{default:v(()=>[_(n(o.event.source.adapter),1)]),_:1}),i(c,null,{default:v(()=>[_(n(o.event.subtype),1)]),_:1})]),s("div",V,[r[0]||(r[0]=s("span",{class:"key"},"商户",-1)),s("span",I,n(e.merchantText),1)]),s("div",R,[r[1]||(r[1]=s("span",{class:"key"},"商品/项目",-1)),s("span",B,n(e.itemText),1)]),s("div",D,[r[2]||(r[2]=s("span",{class:"key"},"金额",-1)),s("span",j,n(e.amountText),1)]),e.orderNo?(l(),u("div",A,[r[3]||(r[3]=s("span",{class:"key"},"单号",-1)),s("span",F,n(e.orderNo),1)])):g("v-if",!0),e.statusText?(l(),u("div",M,[r[4]||(r[4]=s("span",{class:"key"},"状态",-1)),i(c,{color:e.statusColor},{default:v(()=>[_(n(e.statusText),1)]),_:1},8,["color"])])):g("v-if",!0)])}const K=S(k,[["render",P],["__scopeId","data-v-5ed5524d"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/components/pdh/renderers/OrderTableRenderer.vue"]]);export{K as default};
@@ -1,4 +1,4 @@
1
- import{I as z,J as v,U as P,R as d,c as t,K as n,o as be,b as S,r as m,P as c,Q as _,V as f,S as O,F as _e,a2 as we}from"./vendor-Bn1JzzAn.js";import{_ as Fe,b as ze,u as xe,t as q,d as u}from"./index-D9ScRFxz.js";import{b as qe,ak as Ne,at as De,R as Re,A as Be,aQ as Ve,O as Ke}from"./icons-DG5UD-6K.js";const We={__name:"Organization",setup(ke,{expose:s}){s();const{t:r}=ze(),e=xe(),N=m("orgs"),K=m(!1);async function I(){K.value=!0;try{N.value==="orgs"?await A():N.value==="members"?(await A(),C.value&&(await E(),await Y())):N.value==="approvals"&&await F()}finally{K.value=!1}}function D(o){o==="orgs"&&k.value.length===0&&A(),o==="members"&&k.value.length===0&&A(),o==="approvals"&&G.value.length===0&&F()}const L=m(!1),k=m([]),j=m(!1),M=m(!1),h=m(""),R=m(""),U=m(!1),x=m(!1),w=m({}),T=m(""),B=S(()=>[{title:r("organization.orgColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:r("organization.orgColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:r("organization.orgColumns.owner"),key:"owner",dataIndex:"owner",width:"140px"},{title:r("organization.orgColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:r("organization.orgColumns.memberCount"),key:"memberCount",dataIndex:"memberCount",width:"90px"}]),V=S(()=>k.value.map(o=>({label:o.name,value:o.id})));async function A(){L.value=!0;try{const{output:o}=await e.execute("org list --json",15e3),i=q(o);Array.isArray(i)?k.value=i.map((l,p)=>({key:l.id||p,id:l.id||"-",name:l.name||"-",owner:l.owner||"-",description:l.description||"",memberCount:l.memberCount??l.members??0})):k.value=W(o)}catch(o){u.error(r("organization.messages.loadOrgsFailed",{err:o.message}))}finally{L.value=!1}}function W(o){const i=[],l=o.split(`
2
- `);for(const p of l){const y=p.trim();if(!y||y.startsWith("─")||y.match(/^\d+ org/i))continue;const b=y.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,id:b[0]||"-",name:b[1]||"-",owner:b[2]||"-",description:b[3]||"",memberCount:parseInt(b[4],10)||0})}return i}async function a(){if(!h.value.trim()){u.warning(r("organization.messages.orgNameRequired"));return}M.value=!0;try{const o=h.value.trim().replace(/"/g,'\\"'),i=R.value.trim().replace(/"/g,'\\"');let l=`org create "${o}" --json`;i&&(l=`org create "${o}" --description "${i}" --json`);const{output:p}=await e.execute(l,2e4);p.includes("error")||p.includes("失败")?u.error(r("organization.messages.orgCreateFailed",{err:p.slice(0,120)})):(u.success(r("organization.messages.orgCreateOk")),j.value=!1,h.value="",R.value="",await A())}catch(o){u.error(r("organization.messages.orgCreateFailed",{err:o.message}))}finally{M.value=!1}}async function g(o){w.value={...o},T.value="",U.value=!0,x.value=!0;try{const{output:i}=await e.execute(`org show ${o.id} --json`,15e3),l=q(i);l&&typeof l=="object"?(w.value={id:l.id||o.id,name:l.name||o.name,owner:l.owner||o.owner,description:l.description||o.description,memberCount:l.memberCount??l.members??o.memberCount,createdAt:l.createdAt||l.created||""},T.value=JSON.stringify(l,null,2)):T.value=i}catch(i){T.value=r("organization.messages.loadDetailFailed",{err:i.message})}finally{x.value=!1}}const C=m(null),Z=m(!1),$=m([]),ee=m(!1),ae=m([]),ge=m(!1),te=m(!1),J=m(""),oe=m(""),ne=m("member"),pe=m(!1),le=m(!1),Q=m(""),ie=m(""),re=m(""),he=S(()=>[{label:r("organization.members.roleAdmin"),value:"admin"},{label:r("organization.members.roleMember"),value:"member"},{label:r("organization.members.roleViewer"),value:"viewer"}]),Ce=S(()=>[{title:r("organization.memberColumns.userId"),key:"userId",dataIndex:"userId",width:"160px"},{title:r("organization.memberColumns.name"),key:"name",dataIndex:"name",width:"140px"},{title:r("organization.memberColumns.role"),key:"role",dataIndex:"role",width:"100px"},{title:r("organization.memberColumns.joinedAt"),key:"joinedAt",dataIndex:"joinedAt",width:"180px"}]),Oe=S(()=>[{title:r("organization.teamColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:r("organization.teamColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:r("organization.teamColumns.lead"),key:"lead",dataIndex:"lead",width:"140px"}]);function Te(o){return{admin:"gold",member:"blue",viewer:"default",owner:"purple"}[(o||"").toLowerCase()]||"default"}async function Ie(){C.value&&await Promise.all([E(),Y()])}async function E(){if(C.value){Z.value=!0;try{const{output:o}=await e.execute(`org members ${C.value} --json`,15e3),i=q(o);Array.isArray(i)?$.value=i.map((l,p)=>({key:l.userId||l.id||p,userId:l.userId||l.id||"-",name:l.name||l.displayName||"-",role:l.role||"member",joinedAt:l.joinedAt||l.joined||"-"})):$.value=ue(o)}catch(o){u.error(r("organization.messages.loadMembersFailed",{err:o.message}))}finally{Z.value=!1}}}function ue(o){const i=[],l=o.split(`
3
- `);for(const p of l){const y=p.trim();if(!y||y.startsWith("─")||y.match(/^\d+ member/i))continue;const b=y.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,userId:b[0]||"-",name:b[1]||"-",role:b[2]||"member",joinedAt:b[3]||"-"})}return i}async function Y(){if(C.value){ee.value=!0;try{const{output:o}=await e.execute(`org teams ${C.value} --json`,15e3),i=q(o);Array.isArray(i)?ae.value=i.map((l,p)=>({key:l.id||l.name||p,name:l.name||"-",description:l.description||"",lead:l.lead||l.leader||"-"})):ae.value=[]}catch(o){u.error(r("organization.messages.loadTeamsFailed",{err:o.message}))}finally{ee.value=!1}}}async function Le(){if(!J.value.trim()){u.warning(r("organization.messages.userIdRequired"));return}te.value=!0;try{const o=J.value.trim().replace(/"/g,'\\"'),i=oe.value.trim().replace(/"/g,'\\"');let l=`org invite ${C.value} ${o} --role ${ne.value}`;i&&(l+=` --name "${i}"`);const{output:p}=await e.execute(l,2e4);p.includes("error")||p.includes("失败")?u.error(r("organization.messages.inviteFailed",{err:p.slice(0,120)})):(u.success(r("organization.messages.inviteOk")),ge.value=!1,J.value="",oe.value="",ne.value="member",await E())}catch(o){u.error(r("organization.messages.inviteFailed",{err:o.message}))}finally{te.value=!1}}async function Ae(){if(!Q.value.trim()){u.warning(r("organization.messages.teamNameRequired"));return}le.value=!0;try{const o=Q.value.trim().replace(/"/g,'\\"'),i=ie.value.trim().replace(/"/g,'\\"'),l=re.value.trim().replace(/"/g,'\\"');let p=`org teams ${C.value} create "${o}"`;i&&(p+=` --description "${i}"`),l&&(p+=` --lead "${l}"`);const{output:y}=await e.execute(p,2e4);y.includes("error")||y.includes("失败")?u.error(r("organization.messages.teamCreateFailed",{err:y.slice(0,120)})):(u.success(r("organization.messages.teamCreateOk")),pe.value=!1,Q.value="",ie.value="",re.value="",await Y())}catch(o){u.error(r("organization.messages.teamCreateFailed",{err:o.message}))}finally{le.value=!1}}const se=m(!1),G=m([]),ve=m(!1),de=m(!1),H=m(null),X=m(""),me=m(""),ce=m(""),je=S(()=>[{title:r("organization.approvalColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:r("organization.approvalColumns.title"),key:"title",dataIndex:"title",width:"200px"},{title:r("organization.approvalColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:r("organization.approvalColumns.requester"),key:"requester",dataIndex:"requester",width:"140px"},{title:r("organization.approvalColumns.status"),key:"status",dataIndex:"status",width:"100px"},{title:r("organization.approvalColumns.actions"),key:"actions",width:"180px"}]);function Me(o){return{pending:"orange",approved:"green",rejected:"red"}[(o||"").toLowerCase()]||"default"}async function F(){se.value=!0;try{const{output:o}=await e.execute("org approvals --json",15e3),i=q(o);Array.isArray(i)?G.value=i.map((l,p)=>({key:l.id||p,id:l.id||"-",title:l.title||"-",type:l.type||"-",requester:l.requester||l.requestedBy||"-",status:l.status||"pending",_approving:!1,_rejecting:!1})):G.value=fe(o)}catch(o){u.error(r("organization.messages.loadApprovalsFailed",{err:o.message}))}finally{se.value=!1}}function fe(o){const i=[],l=o.split(`
4
- `);for(const p of l){const y=p.trim();if(!y||y.startsWith("─")||y.match(/^\d+ approval/i))continue;const b=y.split(/\s*[|│]\s*/);b.length>=4&&i.push({key:i.length,id:b[0]||"-",title:b[1]||"-",type:b[2]||"-",requester:b[3]||"-",status:b[4]||"pending",_approving:!1,_rejecting:!1})}return i}async function Ue(o){o._approving=!0;try{const{output:i}=await e.execute(`org approve ${o.id}`,15e3);i.includes("error")||i.includes("失败")?u.error(r("organization.messages.approveFailed",{err:i.slice(0,120)})):(u.success(r("organization.messages.approveOk")),await F())}catch(i){u.error(r("organization.messages.approveFailed",{err:i.message}))}finally{o._approving=!1}}async function Pe(o){o._rejecting=!0;try{const{output:i}=await e.execute(`org reject ${o.id}`,15e3);i.includes("error")||i.includes("失败")?u.error(r("organization.messages.rejectFailed",{err:i.slice(0,120)})):(u.success(r("organization.messages.rejectOk")),await F())}catch(i){u.error(r("organization.messages.rejectFailed",{err:i.message}))}finally{o._rejecting=!1}}async function Se(){if(!H.value){u.warning(r("organization.messages.orgRequired"));return}if(!X.value.trim()){u.warning(r("organization.messages.approvalTitleRequired"));return}de.value=!0;try{const o=X.value.trim().replace(/"/g,'\\"'),i=me.value.trim().replace(/"/g,'\\"'),l=ce.value.trim().replace(/"/g,'\\"');let p=`org approve --submit --org ${H.value} --title "${o}"`;i&&(p+=` --type "${i}"`),l&&(p+=` --description "${l}"`);const{output:y}=await e.execute(p,2e4);y.includes("error")||y.includes("失败")?u.error(r("organization.messages.submitFailed",{err:y.slice(0,120)})):(u.success(r("organization.messages.submitOk")),ve.value=!1,H.value=null,X.value="",me.value="",ce.value="",await F())}catch(o){u.error(r("organization.messages.submitFailed",{err:o.message}))}finally{de.value=!1}}be(()=>{A()});const ye={t:r,ws:e,activeTab:N,refreshing:K,refreshCurrentTab:I,onTabChange:D,orgLoading:L,orgList:k,showCreateOrgModal:j,creatingOrg:M,newOrgName:h,newOrgDesc:R,showDetailModal:U,detailLoading:x,detailOrg:w,detailRaw:T,orgColumns:B,orgSelectOptions:V,loadOrgList:A,parseOrgListText:W,createOrg:a,showOrgDetail:g,selectedOrgId:C,memberLoading:Z,memberList:$,teamLoading:ee,teamList:ae,showInviteModal:ge,inviting:te,inviteUserId:J,inviteName:oe,inviteRole:ne,showCreateTeamModal:pe,creatingTeam:le,newTeamName:Q,newTeamDesc:ie,newTeamLead:re,roleOptions:he,memberColumns:Ce,teamColumns:Oe,roleColor:Te,onOrgSelected:Ie,loadMembers:E,parseMemberListText:ue,loadTeams:Y,inviteMember:Le,createTeam:Ae,approvalLoading:se,approvalList:G,showSubmitApprovalModal:ve,submittingApproval:de,approvalOrgId:H,approvalTitle:X,approvalType:me,approvalDescription:ce,approvalColumns:je,approvalStatusColor:Me,loadApprovals:F,parseApprovalListText:fe,approveItem:Ue,rejectItem:Pe,submitApproval:Se,ref:m,computed:S,onMounted:be,get useI18n(){return ze},get TeamOutlined(){return Ke},get UserAddOutlined(){return Ve},get AuditOutlined(){return Be},get ReloadOutlined(){return Re},get PlusOutlined(){return De},get CheckOutlined(){return Ne},get CloseOutlined(){return qe},get message(){return u},get useWsStore(){return xe},get tryParseJson(){return q}};return Object.defineProperty(ye,"__isScriptSetup",{enumerable:!1,value:!0}),ye}},Je={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},Ee={class:"page-sub"},Ye={key:0,style:{"text-align":"center",padding:"60px"}},Ge={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},He={key:1,style:{color:"#1677ff"}},Xe={key:2,style:{color:"var(--text-secondary)"}},Ze={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},$e={key:0,style:{"text-align":"center",padding:"40px"}},ea={key:1},aa={style:{"font-family":"monospace",color:"#ccc"}},ta={key:0,style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"300px","overflow-y":"auto"}},oa={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},na={key:0,style:{"text-align":"center",padding:"60px"}},la={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ia={key:1,style:{color:"#e0e0e0"}},ra={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},sa={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},da={style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},ma={key:0,style:{"text-align":"center",padding:"40px"}},ca={key:0,style:{color:"#e0e0e0"}},ga={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},pa={key:2,style:{color:"var(--text-secondary)"}},ua={key:0,style:{"text-align":"center",padding:"60px"}},va={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},fa={key:1,style:{color:"#e0e0e0"}},ya={key:3,style:{color:"var(--text-secondary)"}},ba={key:1,style:{color:"var(--text-muted)","font-size":"12px"}};function _a(ke,s,r,e,N,K){const I=z("a-button"),D=z("a-space"),L=z("a-spin"),k=z("a-tag"),j=z("a-empty"),M=z("a-table"),h=z("a-descriptions-item"),R=z("a-descriptions"),U=z("a-modal"),x=z("a-input"),w=z("a-form-item"),T=z("a-form"),B=z("a-tab-pane"),V=z("a-select"),A=z("a-textarea"),W=z("a-tabs");return c(),v("div",null,[P("div",Je,[P("div",null,[P("h2",Qe,d(e.t("organization.title")),1),P("p",Ee,d(e.t("organization.subtitle")),1)]),t(I,{type:"primary",ghost:"",loading:e.refreshing,onClick:e.refreshCurrentTab},{icon:n(()=>[t(e.ReloadOutlined)]),default:n(()=>[_(" "+d(e.t("organization.refresh")),1)]),_:1},8,["loading"])]),t(W,{activeKey:e.activeTab,"onUpdate:activeKey":s[22]||(s[22]=a=>e.activeTab=a),type:"card",onChange:e.onTabChange},{default:n(()=>[f(" Tab 1: Organization List "),t(B,{key:"orgs"},{tab:n(()=>[t(e.TeamOutlined),_(" "+d(e.t("organization.tabs.orgs")),1)]),default:n(()=>[t(D,{style:{"margin-bottom":"16px"}},{default:n(()=>[t(I,{type:"primary",onClick:s[0]||(s[0]=a=>e.showCreateOrgModal=!0)},{icon:n(()=>[t(e.PlusOutlined)]),default:n(()=>[_(" "+d(e.t("organization.orgs.createButton")),1)]),_:1})]),_:1}),e.orgLoading?(c(),v("div",Ye,[t(L,{size:"large"})])):(c(),O(M,{key:1,columns:e.orgColumns,"data-source":e.orgList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":a=>({onClick:()=>e.showOrgDetail(a)})},{bodyCell:n(({column:a,record:g})=>[a.key==="id"?(c(),v("span",Ge,d(g.id),1)):f("v-if",!0),a.key==="name"?(c(),v("a",He,d(g.name),1)):f("v-if",!0),a.key==="owner"?(c(),v("span",Xe,d(g.owner),1)):f("v-if",!0),a.key==="description"?(c(),v("span",Ze,d(g.description),1)):f("v-if",!0),a.key==="memberCount"?(c(),O(k,{key:4,color:"blue"},{default:n(()=>[_(d(g.memberCount),1)]),_:2},1024)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),t(U,{open:e.showDetailModal,"onUpdate:open":s[1]||(s[1]=a=>e.showDetailModal=a),title:e.t("organization.orgs.detailTitle",{name:e.detailOrg.name||""}),footer:null,width:"640px"},{default:n(()=>[e.detailLoading?(c(),v("div",$e,[t(L)])):(c(),v("div",ea,[t(R,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:n(()=>[t(h,{label:e.t("organization.orgs.detailLabels.id")},{default:n(()=>[P("span",aa,d(e.detailOrg.id),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.name")},{default:n(()=>[_(d(e.detailOrg.name),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.owner")},{default:n(()=>[_(d(e.detailOrg.owner),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.description")},{default:n(()=>[_(d(e.detailOrg.description||"-"),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.memberCount")},{default:n(()=>[_(d(e.detailOrg.memberCount),1)]),_:1},8,["label"]),e.detailOrg.createdAt?(c(),O(h,{key:0,label:e.t("organization.orgs.detailLabels.createdAt")},{default:n(()=>[_(d(e.detailOrg.createdAt),1)]),_:1},8,["label"])):f("v-if",!0)]),_:1}),e.detailRaw?(c(),v("pre",ta,d(e.detailRaw),1)):f("v-if",!0)]))]),_:1},8,["open","title"]),t(U,{open:e.showCreateOrgModal,"onUpdate:open":s[4]||(s[4]=a=>e.showCreateOrgModal=a),title:e.t("organization.orgs.createTitle"),"confirm-loading":e.creatingOrg,onOk:e.createOrg,"ok-text":e.t("organization.orgs.createOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.orgs.nameLabel"),required:""},{default:n(()=>[t(x,{value:e.newOrgName,"onUpdate:value":s[2]||(s[2]=a=>e.newOrgName=a),placeholder:e.t("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.orgs.descriptionLabel")},{default:n(()=>[t(x,{value:e.newOrgDesc,"onUpdate:value":s[3]||(s[3]=a=>e.newOrgDesc=a),placeholder:e.t("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),f(" Tab 2: Member Management "),t(B,{key:"members"},{tab:n(()=>[t(e.UserAddOutlined),_(" "+d(e.t("organization.tabs.members")),1)]),default:n(()=>[P("div",oa,[t(V,{value:e.selectedOrgId,"onUpdate:value":s[5]||(s[5]=a=>e.selectedOrgId=a),placeholder:e.t("organization.members.selectPlaceholder"),style:{width:"280px"},options:e.orgSelectOptions,onChange:e.onOrgSelected},null,8,["value","placeholder","options"]),t(I,{type:"primary",disabled:!e.selectedOrgId,onClick:s[6]||(s[6]=a=>e.showInviteModal=!0)},{icon:n(()=>[t(e.UserAddOutlined)]),default:n(()=>[_(" "+d(e.t("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),e.memberLoading?(c(),v("div",na,[t(L,{size:"large"})])):e.selectedOrgId?(c(),O(M,{key:1,columns:e.memberColumns,"data-source":e.memberList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:n(({column:a,record:g})=>[a.key==="userId"?(c(),v("span",la,d(g.userId),1)):f("v-if",!0),a.key==="name"?(c(),v("span",ia,d(g.name),1)):f("v-if",!0),a.key==="role"?(c(),O(k,{key:2,color:e.roleColor(g.role)},{default:n(()=>[_(d(g.role),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="joinedAt"?(c(),v("span",ra,d(g.joinedAt),1)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(c(),O(j,{key:2,description:e.t("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),e.selectedOrgId?(c(),v(_e,{key:3},[P("div",sa,[P("h3",da,d(e.t("organization.members.teamsTitle")),1),t(I,{size:"small",onClick:s[7]||(s[7]=a=>e.showCreateTeamModal=!0)},{icon:n(()=>[t(e.PlusOutlined)]),default:n(()=>[_(" "+d(e.t("organization.members.createTeamButton")),1)]),_:1})]),e.teamLoading?(c(),v("div",ma,[t(L)])):(c(),O(M,{key:1,columns:e.teamColumns,"data-source":e.teamList,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:n(({column:a,record:g})=>[a.key==="name"?(c(),v("span",ca,d(g.name),1)):f("v-if",!0),a.key==="description"?(c(),v("span",ga,d(g.description),1)):f("v-if",!0),a.key==="lead"?(c(),v("span",pa,d(g.lead),1)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):f("v-if",!0),t(U,{open:e.showInviteModal,"onUpdate:open":s[11]||(s[11]=a=>e.showInviteModal=a),title:e.t("organization.members.inviteTitle"),"confirm-loading":e.inviting,onOk:e.inviteMember,"ok-text":e.t("organization.members.inviteOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.members.userIdLabel"),required:""},{default:n(()=>[t(x,{value:e.inviteUserId,"onUpdate:value":s[8]||(s[8]=a=>e.inviteUserId=a),placeholder:e.t("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.nameLabel")},{default:n(()=>[t(x,{value:e.inviteName,"onUpdate:value":s[9]||(s[9]=a=>e.inviteName=a),placeholder:e.t("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.roleLabel")},{default:n(()=>[t(V,{value:e.inviteRole,"onUpdate:value":s[10]||(s[10]=a=>e.inviteRole=a),options:e.roleOptions},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(U,{open:e.showCreateTeamModal,"onUpdate:open":s[15]||(s[15]=a=>e.showCreateTeamModal=a),title:e.t("organization.members.createTeamTitle"),"confirm-loading":e.creatingTeam,onOk:e.createTeam,"ok-text":e.t("organization.members.createTeamOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.members.teamNameLabel"),required:""},{default:n(()=>[t(x,{value:e.newTeamName,"onUpdate:value":s[12]||(s[12]=a=>e.newTeamName=a),placeholder:e.t("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamDescLabel")},{default:n(()=>[t(x,{value:e.newTeamDesc,"onUpdate:value":s[13]||(s[13]=a=>e.newTeamDesc=a),placeholder:e.t("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamLeadLabel")},{default:n(()=>[t(x,{value:e.newTeamLead,"onUpdate:value":s[14]||(s[14]=a=>e.newTeamLead=a),placeholder:e.t("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),f(" Tab 3: Approval Management "),t(B,{key:"approvals"},{tab:n(()=>[t(e.AuditOutlined),_(" "+d(e.t("organization.tabs.approvals")),1)]),default:n(()=>[t(D,{style:{"margin-bottom":"16px"}},{default:n(()=>[t(I,{type:"primary",onClick:s[16]||(s[16]=a=>e.showSubmitApprovalModal=!0)},{icon:n(()=>[t(e.PlusOutlined)]),default:n(()=>[_(" "+d(e.t("organization.approvals.submitButton")),1)]),_:1})]),_:1}),e.approvalLoading?(c(),v("div",ua,[t(L,{size:"large"})])):(c(),O(M,{key:1,columns:e.approvalColumns,"data-source":e.approvalList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:n(({column:a,record:g})=>[a.key==="id"?(c(),v("span",va,d(g.id),1)):f("v-if",!0),a.key==="title"?(c(),v("span",fa,d(g.title),1)):f("v-if",!0),a.key==="type"?(c(),O(k,{key:2,color:"blue"},{default:n(()=>[_(d(g.type),1)]),_:2},1024)):f("v-if",!0),a.key==="requester"?(c(),v("span",ya,d(g.requester),1)):f("v-if",!0),a.key==="status"?(c(),O(k,{key:4,color:e.approvalStatusColor(g.status)},{default:n(()=>[_(d(g.status),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="actions"?(c(),v(_e,{key:5},[(g.status||"").toLowerCase()==="pending"?(c(),O(D,{key:0},{default:n(()=>[t(I,{type:"primary",size:"small",loading:g._approving,onClick:we(C=>e.approveItem(g),["stop"])},{icon:n(()=>[t(e.CheckOutlined)]),default:n(()=>[_(" "+d(e.t("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),t(I,{danger:"",size:"small",loading:g._rejecting,onClick:we(C=>e.rejectItem(g),["stop"])},{icon:n(()=>[t(e.CloseOutlined)]),default:n(()=>[_(" "+d(e.t("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(c(),v("span",ba,"-"))],64)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),t(U,{open:e.showSubmitApprovalModal,"onUpdate:open":s[21]||(s[21]=a=>e.showSubmitApprovalModal=a),title:e.t("organization.approvals.submitTitle"),"confirm-loading":e.submittingApproval,onOk:e.submitApproval,"ok-text":e.t("organization.approvals.submitOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.approvals.orgLabel"),required:""},{default:n(()=>[t(V,{value:e.approvalOrgId,"onUpdate:value":s[17]||(s[17]=a=>e.approvalOrgId=a),placeholder:e.t("organization.approvals.orgPlaceholder"),options:e.orgSelectOptions},null,8,["value","placeholder","options"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.titleLabel"),required:""},{default:n(()=>[t(x,{value:e.approvalTitle,"onUpdate:value":s[18]||(s[18]=a=>e.approvalTitle=a),placeholder:e.t("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.typeLabel")},{default:n(()=>[t(x,{value:e.approvalType,"onUpdate:value":s[19]||(s[19]=a=>e.approvalType=a),placeholder:e.t("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.descLabel")},{default:n(()=>[t(A,{value:e.approvalDescription,"onUpdate:value":s[20]||(s[20]=a=>e.approvalDescription=a),placeholder:e.t("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}const ka=Fe(We,[["render",_a],["__scopeId","data-v-4900dc74"],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/views/Organization.vue"]]);export{ka as default};
1
+ import{I as z,J as v,U as P,R as d,c as t,K as n,o as be,b as S,r as m,P as c,Q as _,V as f,S as O,F as _e,a2 as we}from"./vendor-Bn1JzzAn.js";import{_ as Fe,b as ze,u as xe,t as q,d as u}from"./index-3_CEBEEf.js";import{b as qe,ak as Ne,at as De,R as Re,A as Be,aQ as Ve,O as We}from"./icons-DG5UD-6K.js";const Je={__name:"Organization",setup(ke,{expose:s}){s();const{t:r}=ze(),e=xe(),N=m("orgs"),W=m(!1);async function I(){W.value=!0;try{N.value==="orgs"?await A():N.value==="members"?(await A(),C.value&&(await E(),await G())):N.value==="approvals"&&await F()}finally{W.value=!1}}function D(o){o==="orgs"&&k.value.length===0&&A(),o==="members"&&k.value.length===0&&A(),o==="approvals"&&H.value.length===0&&F()}const L=m(!1),k=m([]),j=m(!1),M=m(!1),h=m(""),R=m(""),U=m(!1),x=m(!1),w=m({}),T=m(""),B=S(()=>[{title:r("organization.orgColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:r("organization.orgColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:r("organization.orgColumns.owner"),key:"owner",dataIndex:"owner",width:"140px"},{title:r("organization.orgColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:r("organization.orgColumns.memberCount"),key:"memberCount",dataIndex:"memberCount",width:"90px"}]),V=S(()=>k.value.map(o=>({label:o.name,value:o.id})));async function A(){L.value=!0;try{const{output:o}=await e.execute("org list --json",15e3),i=q(o);Array.isArray(i)?k.value=i.map((l,p)=>({key:l.id||p,id:l.id||"-",name:l.name||"-",owner:l.owner||"-",description:l.description||"",memberCount:l.memberCount??l.members??0})):k.value=J(o)}catch(o){u.error(r("organization.messages.loadOrgsFailed",{err:o.message}))}finally{L.value=!1}}function J(o){const i=[],l=o.split(`
2
+ `);for(const p of l){const y=p.trim();if(!y||y.startsWith("─")||y.match(/^\d+ org/i))continue;const b=y.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,id:b[0]||"-",name:b[1]||"-",owner:b[2]||"-",description:b[3]||"",memberCount:parseInt(b[4],10)||0})}return i}async function a(){if(!h.value.trim()){u.warning(r("organization.messages.orgNameRequired"));return}M.value=!0;try{const o=h.value.trim().replace(/"/g,'\\"'),i=R.value.trim().replace(/"/g,'\\"');let l=`org create "${o}" --json`;i&&(l=`org create "${o}" --description "${i}" --json`);const{output:p}=await e.execute(l,2e4);p.includes("error")||p.includes("失败")?u.error(r("organization.messages.orgCreateFailed",{err:p.slice(0,120)})):(u.success(r("organization.messages.orgCreateOk")),j.value=!1,h.value="",R.value="",await A())}catch(o){u.error(r("organization.messages.orgCreateFailed",{err:o.message}))}finally{M.value=!1}}async function g(o){w.value={...o},T.value="",U.value=!0,x.value=!0;try{const{output:i}=await e.execute(`org show ${o.id} --json`,15e3),l=q(i);l&&typeof l=="object"?(w.value={id:l.id||o.id,name:l.name||o.name,owner:l.owner||o.owner,description:l.description||o.description,memberCount:l.memberCount??l.members??o.memberCount,createdAt:l.createdAt||l.created||""},T.value=JSON.stringify(l,null,2)):T.value=i}catch(i){T.value=r("organization.messages.loadDetailFailed",{err:i.message})}finally{x.value=!1}}const C=m(null),Z=m(!1),$=m([]),ee=m(!1),ae=m([]),ge=m(!1),te=m(!1),K=m(""),oe=m(""),ne=m("member"),pe=m(!1),le=m(!1),Q=m(""),ie=m(""),re=m(""),he=S(()=>[{label:r("organization.members.roleAdmin"),value:"admin"},{label:r("organization.members.roleMember"),value:"member"},{label:r("organization.members.roleViewer"),value:"viewer"}]),Ce=S(()=>[{title:r("organization.memberColumns.userId"),key:"userId",dataIndex:"userId",width:"160px"},{title:r("organization.memberColumns.name"),key:"name",dataIndex:"name",width:"140px"},{title:r("organization.memberColumns.role"),key:"role",dataIndex:"role",width:"100px"},{title:r("organization.memberColumns.joinedAt"),key:"joinedAt",dataIndex:"joinedAt",width:"180px"}]),Oe=S(()=>[{title:r("organization.teamColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:r("organization.teamColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:r("organization.teamColumns.lead"),key:"lead",dataIndex:"lead",width:"140px"}]);function Te(o){return{admin:"gold",member:"blue",viewer:"default",owner:"purple"}[(o||"").toLowerCase()]||"default"}async function Ie(){C.value&&await Promise.all([E(),G()])}async function E(){if(C.value){Z.value=!0;try{const{output:o}=await e.execute(`org members ${C.value} --json`,15e3),i=q(o);Array.isArray(i)?$.value=i.map((l,p)=>({key:l.userId||l.id||p,userId:l.userId||l.id||"-",name:l.name||l.displayName||"-",role:l.role||"member",joinedAt:l.joinedAt||l.joined||"-"})):$.value=ue(o)}catch(o){u.error(r("organization.messages.loadMembersFailed",{err:o.message}))}finally{Z.value=!1}}}function ue(o){const i=[],l=o.split(`
3
+ `);for(const p of l){const y=p.trim();if(!y||y.startsWith("─")||y.match(/^\d+ member/i))continue;const b=y.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,userId:b[0]||"-",name:b[1]||"-",role:b[2]||"member",joinedAt:b[3]||"-"})}return i}async function G(){if(C.value){ee.value=!0;try{const{output:o}=await e.execute(`org teams ${C.value} --json`,15e3),i=q(o);Array.isArray(i)?ae.value=i.map((l,p)=>({key:l.id||l.name||p,name:l.name||"-",description:l.description||"",lead:l.lead||l.leader||"-"})):ae.value=[]}catch(o){u.error(r("organization.messages.loadTeamsFailed",{err:o.message}))}finally{ee.value=!1}}}async function Le(){if(!K.value.trim()){u.warning(r("organization.messages.userIdRequired"));return}te.value=!0;try{const o=K.value.trim().replace(/"/g,'\\"'),i=oe.value.trim().replace(/"/g,'\\"');let l=`org invite ${C.value} ${o} --role ${ne.value}`;i&&(l+=` --name "${i}"`);const{output:p}=await e.execute(l,2e4);p.includes("error")||p.includes("失败")?u.error(r("organization.messages.inviteFailed",{err:p.slice(0,120)})):(u.success(r("organization.messages.inviteOk")),ge.value=!1,K.value="",oe.value="",ne.value="member",await E())}catch(o){u.error(r("organization.messages.inviteFailed",{err:o.message}))}finally{te.value=!1}}async function Ae(){if(!Q.value.trim()){u.warning(r("organization.messages.teamNameRequired"));return}le.value=!0;try{const o=Q.value.trim().replace(/"/g,'\\"'),i=ie.value.trim().replace(/"/g,'\\"'),l=re.value.trim().replace(/"/g,'\\"');let p=`org teams ${C.value} create "${o}"`;i&&(p+=` --description "${i}"`),l&&(p+=` --lead "${l}"`);const{output:y}=await e.execute(p,2e4);y.includes("error")||y.includes("失败")?u.error(r("organization.messages.teamCreateFailed",{err:y.slice(0,120)})):(u.success(r("organization.messages.teamCreateOk")),pe.value=!1,Q.value="",ie.value="",re.value="",await G())}catch(o){u.error(r("organization.messages.teamCreateFailed",{err:o.message}))}finally{le.value=!1}}const se=m(!1),H=m([]),ve=m(!1),de=m(!1),X=m(null),Y=m(""),me=m(""),ce=m(""),je=S(()=>[{title:r("organization.approvalColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:r("organization.approvalColumns.title"),key:"title",dataIndex:"title",width:"200px"},{title:r("organization.approvalColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:r("organization.approvalColumns.requester"),key:"requester",dataIndex:"requester",width:"140px"},{title:r("organization.approvalColumns.status"),key:"status",dataIndex:"status",width:"100px"},{title:r("organization.approvalColumns.actions"),key:"actions",width:"180px"}]);function Me(o){return{pending:"orange",approved:"green",rejected:"red"}[(o||"").toLowerCase()]||"default"}async function F(){se.value=!0;try{const{output:o}=await e.execute("org approvals --json",15e3),i=q(o);Array.isArray(i)?H.value=i.map((l,p)=>({key:l.id||p,id:l.id||"-",title:l.title||"-",type:l.type||"-",requester:l.requester||l.requestedBy||"-",status:l.status||"pending",_approving:!1,_rejecting:!1})):H.value=fe(o)}catch(o){u.error(r("organization.messages.loadApprovalsFailed",{err:o.message}))}finally{se.value=!1}}function fe(o){const i=[],l=o.split(`
4
+ `);for(const p of l){const y=p.trim();if(!y||y.startsWith("─")||y.match(/^\d+ approval/i))continue;const b=y.split(/\s*[|│]\s*/);b.length>=4&&i.push({key:i.length,id:b[0]||"-",title:b[1]||"-",type:b[2]||"-",requester:b[3]||"-",status:b[4]||"pending",_approving:!1,_rejecting:!1})}return i}async function Ue(o){o._approving=!0;try{const{output:i}=await e.execute(`org approve ${o.id}`,15e3);i.includes("error")||i.includes("失败")?u.error(r("organization.messages.approveFailed",{err:i.slice(0,120)})):(u.success(r("organization.messages.approveOk")),await F())}catch(i){u.error(r("organization.messages.approveFailed",{err:i.message}))}finally{o._approving=!1}}async function Pe(o){o._rejecting=!0;try{const{output:i}=await e.execute(`org reject ${o.id}`,15e3);i.includes("error")||i.includes("失败")?u.error(r("organization.messages.rejectFailed",{err:i.slice(0,120)})):(u.success(r("organization.messages.rejectOk")),await F())}catch(i){u.error(r("organization.messages.rejectFailed",{err:i.message}))}finally{o._rejecting=!1}}async function Se(){if(!X.value){u.warning(r("organization.messages.orgRequired"));return}if(!Y.value.trim()){u.warning(r("organization.messages.approvalTitleRequired"));return}de.value=!0;try{const o=Y.value.trim().replace(/"/g,'\\"'),i=me.value.trim().replace(/"/g,'\\"'),l=ce.value.trim().replace(/"/g,'\\"');let p=`org approve --submit --org ${X.value} --title "${o}"`;i&&(p+=` --type "${i}"`),l&&(p+=` --description "${l}"`);const{output:y}=await e.execute(p,2e4);y.includes("error")||y.includes("失败")?u.error(r("organization.messages.submitFailed",{err:y.slice(0,120)})):(u.success(r("organization.messages.submitOk")),ve.value=!1,X.value=null,Y.value="",me.value="",ce.value="",await F())}catch(o){u.error(r("organization.messages.submitFailed",{err:o.message}))}finally{de.value=!1}}be(()=>{A()});const ye={t:r,ws:e,activeTab:N,refreshing:W,refreshCurrentTab:I,onTabChange:D,orgLoading:L,orgList:k,showCreateOrgModal:j,creatingOrg:M,newOrgName:h,newOrgDesc:R,showDetailModal:U,detailLoading:x,detailOrg:w,detailRaw:T,orgColumns:B,orgSelectOptions:V,loadOrgList:A,parseOrgListText:J,createOrg:a,showOrgDetail:g,selectedOrgId:C,memberLoading:Z,memberList:$,teamLoading:ee,teamList:ae,showInviteModal:ge,inviting:te,inviteUserId:K,inviteName:oe,inviteRole:ne,showCreateTeamModal:pe,creatingTeam:le,newTeamName:Q,newTeamDesc:ie,newTeamLead:re,roleOptions:he,memberColumns:Ce,teamColumns:Oe,roleColor:Te,onOrgSelected:Ie,loadMembers:E,parseMemberListText:ue,loadTeams:G,inviteMember:Le,createTeam:Ae,approvalLoading:se,approvalList:H,showSubmitApprovalModal:ve,submittingApproval:de,approvalOrgId:X,approvalTitle:Y,approvalType:me,approvalDescription:ce,approvalColumns:je,approvalStatusColor:Me,loadApprovals:F,parseApprovalListText:fe,approveItem:Ue,rejectItem:Pe,submitApproval:Se,ref:m,computed:S,onMounted:be,get useI18n(){return ze},get TeamOutlined(){return We},get UserAddOutlined(){return Ve},get AuditOutlined(){return Be},get ReloadOutlined(){return Re},get PlusOutlined(){return De},get CheckOutlined(){return Ne},get CloseOutlined(){return qe},get message(){return u},get useWsStore(){return xe},get tryParseJson(){return q}};return Object.defineProperty(ye,"__isScriptSetup",{enumerable:!1,value:!0}),ye}},Ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},Ee={class:"page-sub"},Ge={key:0,style:{"text-align":"center",padding:"60px"}},He={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Xe={key:1,style:{color:"#1677ff"}},Ye={key:2,style:{color:"var(--text-secondary)"}},Ze={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},$e={key:0,style:{"text-align":"center",padding:"40px"}},ea={key:1},aa={style:{"font-family":"monospace",color:"#ccc"}},ta={key:0,style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"300px","overflow-y":"auto"}},oa={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},na={key:0,style:{"text-align":"center",padding:"60px"}},la={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ia={key:1,style:{color:"#e0e0e0"}},ra={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},sa={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},da={style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},ma={key:0,style:{"text-align":"center",padding:"40px"}},ca={key:0,style:{color:"#e0e0e0"}},ga={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},pa={key:2,style:{color:"var(--text-secondary)"}},ua={key:0,style:{"text-align":"center",padding:"60px"}},va={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},fa={key:1,style:{color:"#e0e0e0"}},ya={key:3,style:{color:"var(--text-secondary)"}},ba={key:1,style:{color:"var(--text-muted)","font-size":"12px"}};function _a(ke,s,r,e,N,W){const I=z("a-button"),D=z("a-space"),L=z("a-spin"),k=z("a-tag"),j=z("a-empty"),M=z("a-table"),h=z("a-descriptions-item"),R=z("a-descriptions"),U=z("a-modal"),x=z("a-input"),w=z("a-form-item"),T=z("a-form"),B=z("a-tab-pane"),V=z("a-select"),A=z("a-textarea"),J=z("a-tabs");return c(),v("div",null,[P("div",Ke,[P("div",null,[P("h2",Qe,d(e.t("organization.title")),1),P("p",Ee,d(e.t("organization.subtitle")),1)]),t(I,{type:"primary",ghost:"",loading:e.refreshing,onClick:e.refreshCurrentTab},{icon:n(()=>[t(e.ReloadOutlined)]),default:n(()=>[_(" "+d(e.t("organization.refresh")),1)]),_:1},8,["loading"])]),t(J,{activeKey:e.activeTab,"onUpdate:activeKey":s[22]||(s[22]=a=>e.activeTab=a),type:"card",onChange:e.onTabChange},{default:n(()=>[f(" Tab 1: Organization List "),t(B,{key:"orgs"},{tab:n(()=>[t(e.TeamOutlined),_(" "+d(e.t("organization.tabs.orgs")),1)]),default:n(()=>[t(D,{style:{"margin-bottom":"16px"}},{default:n(()=>[t(I,{type:"primary",onClick:s[0]||(s[0]=a=>e.showCreateOrgModal=!0)},{icon:n(()=>[t(e.PlusOutlined)]),default:n(()=>[_(" "+d(e.t("organization.orgs.createButton")),1)]),_:1})]),_:1}),e.orgLoading?(c(),v("div",Ge,[t(L,{size:"large"})])):(c(),O(M,{key:1,columns:e.orgColumns,"data-source":e.orgList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":a=>({onClick:()=>e.showOrgDetail(a)})},{bodyCell:n(({column:a,record:g})=>[a.key==="id"?(c(),v("span",He,d(g.id),1)):f("v-if",!0),a.key==="name"?(c(),v("a",Xe,d(g.name),1)):f("v-if",!0),a.key==="owner"?(c(),v("span",Ye,d(g.owner),1)):f("v-if",!0),a.key==="description"?(c(),v("span",Ze,d(g.description),1)):f("v-if",!0),a.key==="memberCount"?(c(),O(k,{key:4,color:"blue"},{default:n(()=>[_(d(g.memberCount),1)]),_:2},1024)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),t(U,{open:e.showDetailModal,"onUpdate:open":s[1]||(s[1]=a=>e.showDetailModal=a),title:e.t("organization.orgs.detailTitle",{name:e.detailOrg.name||""}),footer:null,width:"640px"},{default:n(()=>[e.detailLoading?(c(),v("div",$e,[t(L)])):(c(),v("div",ea,[t(R,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:n(()=>[t(h,{label:e.t("organization.orgs.detailLabels.id")},{default:n(()=>[P("span",aa,d(e.detailOrg.id),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.name")},{default:n(()=>[_(d(e.detailOrg.name),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.owner")},{default:n(()=>[_(d(e.detailOrg.owner),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.description")},{default:n(()=>[_(d(e.detailOrg.description||"-"),1)]),_:1},8,["label"]),t(h,{label:e.t("organization.orgs.detailLabels.memberCount")},{default:n(()=>[_(d(e.detailOrg.memberCount),1)]),_:1},8,["label"]),e.detailOrg.createdAt?(c(),O(h,{key:0,label:e.t("organization.orgs.detailLabels.createdAt")},{default:n(()=>[_(d(e.detailOrg.createdAt),1)]),_:1},8,["label"])):f("v-if",!0)]),_:1}),e.detailRaw?(c(),v("pre",ta,d(e.detailRaw),1)):f("v-if",!0)]))]),_:1},8,["open","title"]),t(U,{open:e.showCreateOrgModal,"onUpdate:open":s[4]||(s[4]=a=>e.showCreateOrgModal=a),title:e.t("organization.orgs.createTitle"),"confirm-loading":e.creatingOrg,onOk:e.createOrg,"ok-text":e.t("organization.orgs.createOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.orgs.nameLabel"),required:""},{default:n(()=>[t(x,{value:e.newOrgName,"onUpdate:value":s[2]||(s[2]=a=>e.newOrgName=a),placeholder:e.t("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.orgs.descriptionLabel")},{default:n(()=>[t(x,{value:e.newOrgDesc,"onUpdate:value":s[3]||(s[3]=a=>e.newOrgDesc=a),placeholder:e.t("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),f(" Tab 2: Member Management "),t(B,{key:"members"},{tab:n(()=>[t(e.UserAddOutlined),_(" "+d(e.t("organization.tabs.members")),1)]),default:n(()=>[P("div",oa,[t(V,{value:e.selectedOrgId,"onUpdate:value":s[5]||(s[5]=a=>e.selectedOrgId=a),placeholder:e.t("organization.members.selectPlaceholder"),style:{width:"280px"},options:e.orgSelectOptions,onChange:e.onOrgSelected},null,8,["value","placeholder","options"]),t(I,{type:"primary",disabled:!e.selectedOrgId,onClick:s[6]||(s[6]=a=>e.showInviteModal=!0)},{icon:n(()=>[t(e.UserAddOutlined)]),default:n(()=>[_(" "+d(e.t("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),e.memberLoading?(c(),v("div",na,[t(L,{size:"large"})])):e.selectedOrgId?(c(),O(M,{key:1,columns:e.memberColumns,"data-source":e.memberList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:n(({column:a,record:g})=>[a.key==="userId"?(c(),v("span",la,d(g.userId),1)):f("v-if",!0),a.key==="name"?(c(),v("span",ia,d(g.name),1)):f("v-if",!0),a.key==="role"?(c(),O(k,{key:2,color:e.roleColor(g.role)},{default:n(()=>[_(d(g.role),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="joinedAt"?(c(),v("span",ra,d(g.joinedAt),1)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(c(),O(j,{key:2,description:e.t("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),e.selectedOrgId?(c(),v(_e,{key:3},[P("div",sa,[P("h3",da,d(e.t("organization.members.teamsTitle")),1),t(I,{size:"small",onClick:s[7]||(s[7]=a=>e.showCreateTeamModal=!0)},{icon:n(()=>[t(e.PlusOutlined)]),default:n(()=>[_(" "+d(e.t("organization.members.createTeamButton")),1)]),_:1})]),e.teamLoading?(c(),v("div",ma,[t(L)])):(c(),O(M,{key:1,columns:e.teamColumns,"data-source":e.teamList,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:n(({column:a,record:g})=>[a.key==="name"?(c(),v("span",ca,d(g.name),1)):f("v-if",!0),a.key==="description"?(c(),v("span",ga,d(g.description),1)):f("v-if",!0),a.key==="lead"?(c(),v("span",pa,d(g.lead),1)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):f("v-if",!0),t(U,{open:e.showInviteModal,"onUpdate:open":s[11]||(s[11]=a=>e.showInviteModal=a),title:e.t("organization.members.inviteTitle"),"confirm-loading":e.inviting,onOk:e.inviteMember,"ok-text":e.t("organization.members.inviteOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.members.userIdLabel"),required:""},{default:n(()=>[t(x,{value:e.inviteUserId,"onUpdate:value":s[8]||(s[8]=a=>e.inviteUserId=a),placeholder:e.t("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.nameLabel")},{default:n(()=>[t(x,{value:e.inviteName,"onUpdate:value":s[9]||(s[9]=a=>e.inviteName=a),placeholder:e.t("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.roleLabel")},{default:n(()=>[t(V,{value:e.inviteRole,"onUpdate:value":s[10]||(s[10]=a=>e.inviteRole=a),options:e.roleOptions},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(U,{open:e.showCreateTeamModal,"onUpdate:open":s[15]||(s[15]=a=>e.showCreateTeamModal=a),title:e.t("organization.members.createTeamTitle"),"confirm-loading":e.creatingTeam,onOk:e.createTeam,"ok-text":e.t("organization.members.createTeamOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.members.teamNameLabel"),required:""},{default:n(()=>[t(x,{value:e.newTeamName,"onUpdate:value":s[12]||(s[12]=a=>e.newTeamName=a),placeholder:e.t("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamDescLabel")},{default:n(()=>[t(x,{value:e.newTeamDesc,"onUpdate:value":s[13]||(s[13]=a=>e.newTeamDesc=a),placeholder:e.t("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamLeadLabel")},{default:n(()=>[t(x,{value:e.newTeamLead,"onUpdate:value":s[14]||(s[14]=a=>e.newTeamLead=a),placeholder:e.t("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),f(" Tab 3: Approval Management "),t(B,{key:"approvals"},{tab:n(()=>[t(e.AuditOutlined),_(" "+d(e.t("organization.tabs.approvals")),1)]),default:n(()=>[t(D,{style:{"margin-bottom":"16px"}},{default:n(()=>[t(I,{type:"primary",onClick:s[16]||(s[16]=a=>e.showSubmitApprovalModal=!0)},{icon:n(()=>[t(e.PlusOutlined)]),default:n(()=>[_(" "+d(e.t("organization.approvals.submitButton")),1)]),_:1})]),_:1}),e.approvalLoading?(c(),v("div",ua,[t(L,{size:"large"})])):(c(),O(M,{key:1,columns:e.approvalColumns,"data-source":e.approvalList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:n(({column:a,record:g})=>[a.key==="id"?(c(),v("span",va,d(g.id),1)):f("v-if",!0),a.key==="title"?(c(),v("span",fa,d(g.title),1)):f("v-if",!0),a.key==="type"?(c(),O(k,{key:2,color:"blue"},{default:n(()=>[_(d(g.type),1)]),_:2},1024)):f("v-if",!0),a.key==="requester"?(c(),v("span",ya,d(g.requester),1)):f("v-if",!0),a.key==="status"?(c(),O(k,{key:4,color:e.approvalStatusColor(g.status)},{default:n(()=>[_(d(g.status),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="actions"?(c(),v(_e,{key:5},[(g.status||"").toLowerCase()==="pending"?(c(),O(D,{key:0},{default:n(()=>[t(I,{type:"primary",size:"small",loading:g._approving,onClick:we(C=>e.approveItem(g),["stop"])},{icon:n(()=>[t(e.CheckOutlined)]),default:n(()=>[_(" "+d(e.t("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),t(I,{danger:"",size:"small",loading:g._rejecting,onClick:we(C=>e.rejectItem(g),["stop"])},{icon:n(()=>[t(e.CloseOutlined)]),default:n(()=>[_(" "+d(e.t("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(c(),v("span",ba,"-"))],64)):f("v-if",!0)]),emptyText:n(()=>[t(j,{description:e.t("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),t(U,{open:e.showSubmitApprovalModal,"onUpdate:open":s[21]||(s[21]=a=>e.showSubmitApprovalModal=a),title:e.t("organization.approvals.submitTitle"),"confirm-loading":e.submittingApproval,onOk:e.submitApproval,"ok-text":e.t("organization.approvals.submitOk"),"cancel-text":e.t("common.cancel")},{default:n(()=>[t(T,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[t(w,{label:e.t("organization.approvals.orgLabel"),required:""},{default:n(()=>[t(V,{value:e.approvalOrgId,"onUpdate:value":s[17]||(s[17]=a=>e.approvalOrgId=a),placeholder:e.t("organization.approvals.orgPlaceholder"),options:e.orgSelectOptions},null,8,["value","placeholder","options"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.titleLabel"),required:""},{default:n(()=>[t(x,{value:e.approvalTitle,"onUpdate:value":s[18]||(s[18]=a=>e.approvalTitle=a),placeholder:e.t("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.typeLabel")},{default:n(()=>[t(x,{value:e.approvalType,"onUpdate:value":s[19]||(s[19]=a=>e.approvalType=a),placeholder:e.t("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.descLabel")},{default:n(()=>[t(A,{value:e.approvalDescription,"onUpdate:value":s[20]||(s[20]=a=>e.approvalDescription=a),placeholder:e.t("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}const ka=Fe(Je,[["render",_a],["__scopeId","data-v-4900dc74"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/views/Organization.vue"]]);export{ka as default};
@@ -1 +1 @@
1
- import{P,f as u,i as H,h as D}from"./index-D9ScRFxz.js";import{d as k,p as ge,b as c,i as pe,x as be,c as v,r as he,w as Oe,s as C}from"./vendor-Bn1JzzAn.js";import{R as ee}from"./index-CZhhFQi9.js";const te=Symbol("OverflowContextProviderKey"),X=k({compatConfig:{MODE:3},name:"OverflowContextProvider",inheritAttrs:!1,props:{value:{type:Object}},setup(e,o){let{slots:a}=o;return ge(te,c(()=>e.value)),()=>{var t;return(t=a.default)===null||t===void 0?void 0:t.call(a)}}}),Se=()=>pe(te,c(()=>null));var xe=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const _=void 0,$=k({compatConfig:{MODE:3},name:"Item",props:{prefixCls:String,item:P.any,renderItem:Function,responsive:Boolean,itemKey:{type:[String,Number]},registerSize:Function,display:Boolean,order:Number,component:P.any,invalidate:Boolean},setup(e,o){let{slots:a,expose:t}=o;const n=c(()=>e.responsive&&!e.display),p=he();t({itemNodeRef:p});function b(i){e.registerSize(e.itemKey,i)}return be(()=>{b(null)}),()=>{var i;const{prefixCls:O,invalidate:w,item:m,renderItem:y,responsive:f,registerSize:z,itemKey:R,display:V,order:I,component:M="div"}=e,S=xe(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","display","order","component"]),W=(i=a.default)===null||i===void 0?void 0:i.call(a),T=y&&m!==_?y(m):W;let h;w||(h={opacity:n.value?0:1,height:n.value?0:_,overflowY:n.value?"hidden":_,order:f?I:_,pointerEvents:n.value?"none":_,position:n.value?"absolute":_});const N={};return n.value&&(N["aria-hidden"]=!0),v(ee,{disabled:!f,onResize:E=>{let{offsetWidth:B}=E;b(B)}},{default:()=>v(M,u(u(u({class:H(!w&&O),style:h},N),S),{},{ref:p}),{default:()=>[T]})})}}});var U=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const Ce=k({compatConfig:{MODE:3},name:"RawItem",inheritAttrs:!1,props:{component:P.any,title:P.any,id:String,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},role:String,tabindex:Number},setup(e,o){let{slots:a,attrs:t}=o;const n=Se();return()=>{var p;if(!n.value){const{component:y="div"}=e,f=U(e,["component"]);return v(y,u(u({},f),t),{default:()=>[(p=a.default)===null||p===void 0?void 0:p.call(a)]})}const b=n.value,{className:i}=b,O=U(b,["className"]),{class:w}=t,m=U(t,["class"]);return v(X,{value:null},{default:()=>[v($,u(u(u({class:H(i,w)},O),m),e),a)]})}}});var we=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const ne="responsive",le="invalidate";function Re(e){return`+ ${e.length} ...`}const Ie=()=>({id:String,prefixCls:String,data:Array,itemKey:[String,Number,Function],itemWidth:{type:Number,default:10},renderItem:Function,renderRawItem:Function,maxCount:[Number,String],renderRest:Function,renderRawRest:Function,suffix:P.any,component:String,itemComponent:P.any,onVisibleChange:Function,ssr:String,onMousedown:Function,role:String}),Y=k({name:"Overflow",inheritAttrs:!1,props:Ie(),emits:["visibleChange"],setup(e,o){let{attrs:a,emit:t,slots:n}=o;const p=c(()=>e.ssr==="full"),b=C(null),i=c(()=>b.value||0),O=C(new Map),w=C(0),m=C(0),y=C(0),f=C(null),z=C(null),R=c(()=>z.value===null&&p.value?Number.MAX_SAFE_INTEGER:z.value||0),V=C(!1),I=c(()=>`${e.prefixCls}-item`),M=c(()=>Math.max(w.value,m.value)),S=c(()=>!!(e.data.length&&e.maxCount===ne)),W=c(()=>e.maxCount===le),T=c(()=>S.value||typeof e.maxCount=="number"&&e.data.length>e.maxCount),h=c(()=>{let l=e.data;return S.value?b.value===null&&p.value?l=e.data:l=e.data.slice(0,Math.min(e.data.length,i.value/e.itemWidth)):typeof e.maxCount=="number"&&(l=e.data.slice(0,e.maxCount)),l}),N=c(()=>S.value?e.data.slice(R.value+1):e.data.slice(h.value.length)),E=(l,r)=>{var s;return typeof e.itemKey=="function"?e.itemKey(l):(s=e.itemKey&&l?.[e.itemKey])!==null&&s!==void 0?s:r},B=c(()=>e.renderItem||(l=>l)),A=(l,r)=>{z.value=l,r||(V.value=l<e.data.length-1,t("visibleChange",l))},ae=(l,r)=>{b.value=r.clientWidth},q=(l,r)=>{const s=new Map(O.value);r===null?s.delete(l):s.set(l,r),O.value=s},re=(l,r)=>{w.value=m.value,m.value=r},oe=(l,r)=>{y.value=r},G=l=>O.value.get(E(h.value[l],l));return Oe([i,O,m,y,()=>e.itemKey,h],()=>{if(i.value&&M.value&&h.value){let l=y.value;const r=h.value.length,s=r-1;if(!r){A(0),f.value=null;return}for(let g=0;g<r;g+=1){const F=G(g);if(F===void 0){A(g-1,!0);break}if(l+=F,s===0&&l<=i.value||g===s-1&&l+G(s)<=i.value){A(s),f.value=null;break}else if(l+M.value>i.value){A(g-1),f.value=l-F-y.value+m.value;break}}e.suffix&&G(0)+y.value>i.value&&(f.value=null)}}),()=>{const l=V.value&&!!N.value.length,{itemComponent:r,renderRawItem:s,renderRawRest:g,renderRest:F,prefixCls:ie="rc-overflow",suffix:J,component:se="div",id:ue,onMousedown:de}=e,{class:ce,style:ve}=a,fe=we(a,["class","style"]);let Q={};f.value!==null&&S.value&&(Q={position:"absolute",left:`${f.value}px`,top:0});const j={prefixCls:I.value,responsive:S.value,component:r,invalidate:W.value},me=s?(d,x)=>{const K=E(d,x);return v(X,{key:K,value:D(D({},j),{order:x,item:d,itemKey:K,registerSize:q,display:x<=R.value})},{default:()=>[s(d,x)]})}:(d,x)=>{const K=E(d,x);return v($,u(u({},j),{},{order:x,key:K,item:d,renderItem:B.value,itemKey:K,registerSize:q,display:x<=R.value}),null)};let L=()=>null;const Z={order:l?R.value:Number.MAX_SAFE_INTEGER,className:`${I.value} ${I.value}-rest`,registerSize:re,display:l};if(g)g&&(L=()=>v(X,{value:D(D({},j),Z)},{default:()=>[g(N.value)]}));else{const d=F||Re;L=()=>v($,u(u({},j),Z),{default:()=>typeof d=="function"?d(N.value):d})}const ye=()=>{var d;return v(se,u({id:ue,class:H(!W.value&&ie,ce),style:ve,onMousedown:de,role:e.role},fe),{default:()=>[h.value.map(me),T.value?L():null,J&&v($,u(u({},j),{},{order:R.value,class:`${I.value}-suffix`,registerSize:oe,display:!0,style:Q}),{default:()=>J}),(d=n.default)===null||d===void 0?void 0:d.call(n)]})};return v(ee,{disabled:!S.value,onResize:ae},{default:ye})}}});Y.Item=Ce;Y.RESPONSIVE=ne;Y.INVALIDATE=le;export{Y as O};
1
+ import{P,f as u,i as H,h as D}from"./index-3_CEBEEf.js";import{d as k,p as ge,b as c,i as pe,x as be,c as v,r as he,w as Oe,s as C}from"./vendor-Bn1JzzAn.js";import{R as ee}from"./index-EZr3bvz2.js";const te=Symbol("OverflowContextProviderKey"),X=k({compatConfig:{MODE:3},name:"OverflowContextProvider",inheritAttrs:!1,props:{value:{type:Object}},setup(e,o){let{slots:a}=o;return ge(te,c(()=>e.value)),()=>{var t;return(t=a.default)===null||t===void 0?void 0:t.call(a)}}}),Se=()=>pe(te,c(()=>null));var xe=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const _=void 0,$=k({compatConfig:{MODE:3},name:"Item",props:{prefixCls:String,item:P.any,renderItem:Function,responsive:Boolean,itemKey:{type:[String,Number]},registerSize:Function,display:Boolean,order:Number,component:P.any,invalidate:Boolean},setup(e,o){let{slots:a,expose:t}=o;const n=c(()=>e.responsive&&!e.display),p=he();t({itemNodeRef:p});function b(i){e.registerSize(e.itemKey,i)}return be(()=>{b(null)}),()=>{var i;const{prefixCls:O,invalidate:w,item:m,renderItem:y,responsive:f,registerSize:z,itemKey:R,display:V,order:I,component:M="div"}=e,S=xe(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","display","order","component"]),W=(i=a.default)===null||i===void 0?void 0:i.call(a),T=y&&m!==_?y(m):W;let h;w||(h={opacity:n.value?0:1,height:n.value?0:_,overflowY:n.value?"hidden":_,order:f?I:_,pointerEvents:n.value?"none":_,position:n.value?"absolute":_});const N={};return n.value&&(N["aria-hidden"]=!0),v(ee,{disabled:!f,onResize:E=>{let{offsetWidth:B}=E;b(B)}},{default:()=>v(M,u(u(u({class:H(!w&&O),style:h},N),S),{},{ref:p}),{default:()=>[T]})})}}});var U=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const Ce=k({compatConfig:{MODE:3},name:"RawItem",inheritAttrs:!1,props:{component:P.any,title:P.any,id:String,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},role:String,tabindex:Number},setup(e,o){let{slots:a,attrs:t}=o;const n=Se();return()=>{var p;if(!n.value){const{component:y="div"}=e,f=U(e,["component"]);return v(y,u(u({},f),t),{default:()=>[(p=a.default)===null||p===void 0?void 0:p.call(a)]})}const b=n.value,{className:i}=b,O=U(b,["className"]),{class:w}=t,m=U(t,["class"]);return v(X,{value:null},{default:()=>[v($,u(u(u({class:H(i,w)},O),m),e),a)]})}}});var we=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const ne="responsive",le="invalidate";function Re(e){return`+ ${e.length} ...`}const Ie=()=>({id:String,prefixCls:String,data:Array,itemKey:[String,Number,Function],itemWidth:{type:Number,default:10},renderItem:Function,renderRawItem:Function,maxCount:[Number,String],renderRest:Function,renderRawRest:Function,suffix:P.any,component:String,itemComponent:P.any,onVisibleChange:Function,ssr:String,onMousedown:Function,role:String}),Y=k({name:"Overflow",inheritAttrs:!1,props:Ie(),emits:["visibleChange"],setup(e,o){let{attrs:a,emit:t,slots:n}=o;const p=c(()=>e.ssr==="full"),b=C(null),i=c(()=>b.value||0),O=C(new Map),w=C(0),m=C(0),y=C(0),f=C(null),z=C(null),R=c(()=>z.value===null&&p.value?Number.MAX_SAFE_INTEGER:z.value||0),V=C(!1),I=c(()=>`${e.prefixCls}-item`),M=c(()=>Math.max(w.value,m.value)),S=c(()=>!!(e.data.length&&e.maxCount===ne)),W=c(()=>e.maxCount===le),T=c(()=>S.value||typeof e.maxCount=="number"&&e.data.length>e.maxCount),h=c(()=>{let l=e.data;return S.value?b.value===null&&p.value?l=e.data:l=e.data.slice(0,Math.min(e.data.length,i.value/e.itemWidth)):typeof e.maxCount=="number"&&(l=e.data.slice(0,e.maxCount)),l}),N=c(()=>S.value?e.data.slice(R.value+1):e.data.slice(h.value.length)),E=(l,r)=>{var s;return typeof e.itemKey=="function"?e.itemKey(l):(s=e.itemKey&&l?.[e.itemKey])!==null&&s!==void 0?s:r},B=c(()=>e.renderItem||(l=>l)),A=(l,r)=>{z.value=l,r||(V.value=l<e.data.length-1,t("visibleChange",l))},ae=(l,r)=>{b.value=r.clientWidth},q=(l,r)=>{const s=new Map(O.value);r===null?s.delete(l):s.set(l,r),O.value=s},re=(l,r)=>{w.value=m.value,m.value=r},oe=(l,r)=>{y.value=r},G=l=>O.value.get(E(h.value[l],l));return Oe([i,O,m,y,()=>e.itemKey,h],()=>{if(i.value&&M.value&&h.value){let l=y.value;const r=h.value.length,s=r-1;if(!r){A(0),f.value=null;return}for(let g=0;g<r;g+=1){const F=G(g);if(F===void 0){A(g-1,!0);break}if(l+=F,s===0&&l<=i.value||g===s-1&&l+G(s)<=i.value){A(s),f.value=null;break}else if(l+M.value>i.value){A(g-1),f.value=l-F-y.value+m.value;break}}e.suffix&&G(0)+y.value>i.value&&(f.value=null)}}),()=>{const l=V.value&&!!N.value.length,{itemComponent:r,renderRawItem:s,renderRawRest:g,renderRest:F,prefixCls:ie="rc-overflow",suffix:J,component:se="div",id:ue,onMousedown:de}=e,{class:ce,style:ve}=a,fe=we(a,["class","style"]);let Q={};f.value!==null&&S.value&&(Q={position:"absolute",left:`${f.value}px`,top:0});const j={prefixCls:I.value,responsive:S.value,component:r,invalidate:W.value},me=s?(d,x)=>{const K=E(d,x);return v(X,{key:K,value:D(D({},j),{order:x,item:d,itemKey:K,registerSize:q,display:x<=R.value})},{default:()=>[s(d,x)]})}:(d,x)=>{const K=E(d,x);return v($,u(u({},j),{},{order:x,key:K,item:d,renderItem:B.value,itemKey:K,registerSize:q,display:x<=R.value}),null)};let L=()=>null;const Z={order:l?R.value:Number.MAX_SAFE_INTEGER,className:`${I.value} ${I.value}-rest`,registerSize:re,display:l};if(g)g&&(L=()=>v(X,{value:D(D({},j),Z)},{default:()=>[g(N.value)]}));else{const d=F||Re;L=()=>v($,u(u({},j),Z),{default:()=>typeof d=="function"?d(N.value):d})}const ye=()=>{var d;return v(se,u({id:ue,class:H(!W.value&&ie,ce),style:ve,onMousedown:de,role:e.role},fe),{default:()=>[h.value.map(me),T.value?L():null,J&&v($,u(u({},j),{},{order:R.value,class:`${I.value}-suffix`,registerSize:oe,display:!0,style:Q}),{default:()=>J}),(d=n.default)===null||d===void 0?void 0:d.call(n)]})};return v(ee,{disabled:!S.value,onResize:ae},{default:ye})}}});Y.Item=Ce;Y.RESPONSIVE=ne;Y.INVALIDATE=le;export{Y as O};
@@ -1,2 +1,2 @@
1
- import{I as d,J as y,U as u,R as l,c as t,K as a,V as p,o as X,b as $,r,P as i,Q as g,S as O,F as ee,Z as re}from"./vendor-Bn1JzzAn.js";import{_ as se,b as te,u as ne}from"./index-D9ScRFxz.js";import{M as ie,R as ce,at as de,am as pe,S as ue}from"./icons-DG5UD-6K.js";const ye={__name:"P2P",setup(ae,{expose:c}){c();const{t:s}=te(),e=ne(),z=r(!1),T=r(""),f=r([]),L=$(()=>[{title:s("p2p.peerColumns.name"),key:"name"},{title:s("p2p.peerColumns.id"),key:"id"},{title:s("p2p.peerColumns.status"),key:"status"},{title:s("p2p.peerColumns.action"),key:"action",width:100}]);async function k(){z.value=!0,T.value="";try{const{output:n}=await e.execute("p2p peers",15e3);f.value=R(n)}catch(n){T.value=s("p2p.messages.loadPeersFailed",{err:n.message})}finally{z.value=!1}}function R(n){if(!n||n.includes("No peers")||n.includes("no peers"))return[];const N=n.split(`
2
- `).filter(U=>U.trim()),P=[];for(const U of N){const I=U.match(/^\s*(\S+)\s+(.+?)\s+(connected|online|offline|disconnected)\s*$/i);if(I){P.push({id:I[1],name:I[2].trim(),connected:/connected|online/i.test(I[3])});continue}const V=U.match(/^\s*((?:12D3|Qm)\S{10,})\s*(.*)$/);if(V){const H=V[2].trim();P.push({id:V[1],name:H||V[1].slice(0,12),connected:/connected|online/i.test(H)})}}return P}const D=r(!1),M=r(!1),m=r(""),_=r("");async function C(){if(m.value.trim()){M.value=!0,_.value="";try{const{output:n}=await e.execute(`p2p pair "${m.value.trim()}"`,3e4);_.value=n,await k()}catch(n){_.value=s("p2p.messages.pairFailed",{err:n.message})}finally{M.value=!1}}}const E=r(!1),S=r(!1),b=r(void 0),w=r(""),x=r("");function o(n){b.value=n.id,w.value="",x.value="",E.value=!0}async function v(){if(!(!b.value||!w.value.trim())){S.value=!0,x.value="";try{const{output:n}=await e.execute(`p2p send ${b.value} "${w.value.trim()}"`,15e3);x.value=n||s("p2p.send.messageDefault")}catch(n){x.value=s("p2p.messages.sendFailed",{err:n.message})}finally{S.value=!1}}}const B=r(!1),A=r(""),j=r(!1),K=r(""),J=r(0),Y=r(""),h=r(""),Q=r(!1),W=r(!1);async function F(){B.value=!0,A.value="";try{const{output:n}=await e.execute("sync status",15e3);Z(n)}catch(n){A.value=s("p2p.messages.loadSyncFailed",{err:n.message})}finally{B.value=!1}}function Z(n){if(!n){K.value=s("p2p.sync.unknown");return}j.value=/synced|online|up.to.date/i.test(n),K.value=j.value?s("p2p.sync.synced"):s("p2p.sync.notSynced");const N=n.match(/pending[:\s]+(\d+)/i);J.value=N?parseInt(N[1]):0;const P=n.match(/last[:\s]+(.+)/i);P&&(Y.value=P[1].trim())}async function oe(){Q.value=!0,h.value="";try{const{output:n}=await e.execute("sync push",3e4);h.value=n||s("p2p.sync.pushDefault"),await F()}catch(n){h.value=s("p2p.messages.pushFailed",{err:n.message})}finally{Q.value=!1}}async function le(){W.value=!0,h.value="";try{const{output:n}=await e.execute("sync pull",3e4);h.value=n||s("p2p.sync.pullDefault"),await F()}catch(n){h.value=s("p2p.messages.pullFailed",{err:n.message})}finally{W.value=!1}}async function q(){await Promise.all([k(),F()])}X(q);const G={t:s,ws:e,peersLoading:z,peersError:T,peers:f,peerColumns:L,loadPeers:k,parsePeersOutput:R,showPairModal:D,pairLoading:M,pairDeviceName:m,pairResult:_,doPair:C,showSendModal:E,sendLoading:S,sendTarget:b,sendMessage:w,sendResult:x,openSendTo:o,doSend:v,syncLoading:B,syncError:A,syncOnline:j,syncStatusText:K,syncPending:J,lastSyncTime:Y,syncOutput:h,pushLoading:Q,pullLoading:W,loadSync:F,parseSyncStatus:Z,syncPush:oe,syncPull:le,refreshAll:q,ref:r,computed:$,onMounted:X,get useI18n(){return te},get SyncOutlined(){return ue},get SendOutlined(){return pe},get PlusOutlined(){return de},get ReloadOutlined(){return ce},get MobileOutlined(){return ie},get useWsStore(){return ne}};return Object.defineProperty(G,"__isScriptSetup",{enumerable:!1,value:!0}),G}},ve={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},fe={class:"page-title"},me={class:"page-sub"},ge={key:0,style:{"text-align":"center",padding:"30px"}},_e={key:2,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},be={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},xe={key:0,style:{"text-align":"center",padding:"30px"}},he={key:0,style:{"margin-top":"16px"}},ke={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},Se={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},we={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},Pe={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},Oe={key:0,style:{"margin-top":"12px"}},Le={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Me={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},Ce={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},ze={key:0,style:{"margin-top":"12px"}},Te={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}};function Re(ae,c,s,e,z,T){const f=d("a-button"),L=d("a-space"),k=d("a-spin"),R=d("a-empty"),D=d("a-tag"),M=d("a-table"),m=d("a-card"),_=d("a-statistic"),C=d("a-col"),E=d("a-row"),S=d("a-input"),b=d("a-modal"),w=d("a-select-option"),x=d("a-select");return i(),y("div",null,[u("div",ve,[u("div",null,[u("h2",fe,l(e.t("p2p.title")),1),u("p",me,l(e.t("p2p.subtitle")),1)]),t(f,{type:"primary",ghost:"",loading:e.peersLoading,onClick:e.refreshAll},{icon:a(()=>[t(e.ReloadOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.refresh")),1)]),_:1},8,["loading"])]),p(" P2P Devices Section "),t(m,{title:e.t("p2p.peers.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:a(()=>[t(L,null,{default:a(()=>[t(f,{size:"small",onClick:c[0]||(c[0]=o=>e.showPairModal=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.PlusOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.peers.pairButton")),1)]),_:1}),t(f,{size:"small",onClick:c[1]||(c[1]=o=>e.showSendModal=!0),disabled:e.peers.length===0,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.SendOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.peers.sendButton")),1)]),_:1},8,["disabled"])]),_:1})]),default:a(()=>[e.peersLoading?(i(),y("div",ge,[t(k)])):e.peers.length===0?(i(),O(R,{key:1,description:e.t("p2p.peers.emptyText")},null,8,["description"])):(i(),O(M,{key:2,columns:e.peerColumns,"data-source":e.peers,pagination:!1,size:"small","row-key":"id"},{bodyCell:a(({column:o,record:v})=>[o.key==="status"?(i(),O(D,{key:0,color:v.connected?"green":"default"},{default:a(()=>[g(l(v.connected?e.t("p2p.peers.online"):e.t("p2p.peers.offline")),1)]),_:2},1032,["color"])):p("v-if",!0),o.key==="name"?(i(),O(L,{key:1},{default:a(()=>[t(e.MobileOutlined,{style:{color:"var(--text-muted)"}}),u("span",null,l(v.name||v.id),1)]),_:2},1024)):p("v-if",!0),o.key==="id"?(i(),y("span",_e,l(v.id.length>16?v.id.slice(0,16)+"...":v.id),1)):p("v-if",!0),o.key==="action"?(i(),O(f,{key:3,size:"small",type:"link",onClick:B=>e.openSendTo(v)},{default:a(()=>[t(e.SendOutlined),g(" "+l(e.t("p2p.peers.rowSend")),1)]),_:1},8,["onClick"])):p("v-if",!0)]),_:1},8,["columns","data-source"])),e.peersError?(i(),y("div",be,l(e.peersError),1)):p("v-if",!0)]),_:1},8,["title"]),p(" Sync Section "),t(m,{title:e.t("p2p.sync.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:a(()=>[t(D,{color:e.syncOnline?"green":"default"},{default:a(()=>[g(l(e.syncOnline?e.t("p2p.sync.synced"):e.t("p2p.sync.notSynced")),1)]),_:1},8,["color"])]),default:a(()=>[e.syncLoading?(i(),y("div",xe,[t(k)])):(i(),y(ee,{key:1},[t(E,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(C,{xs:24,sm:8},{default:a(()=>[t(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(_,{title:e.t("p2p.sync.statusLabel"),value:e.syncStatusText,"value-style":{color:e.syncOnline?"#52c41a":"#888",fontSize:"16px"}},{prefix:a(()=>[t(e.SyncOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(C,{xs:24,sm:8},{default:a(()=>[t(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(_,{title:e.t("p2p.sync.pendingLabel"),value:e.syncPending,"value-style":{color:e.syncPending>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:a(()=>[t(e.SyncOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(C,{xs:24,sm:8},{default:a(()=>[t(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(_,{title:e.t("p2p.sync.lastSyncLabel"),value:e.lastSyncTime||e.t("p2p.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:a(()=>[t(e.SyncOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(L,null,{default:a(()=>[t(f,{loading:e.pushLoading,onClick:e.syncPush,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.SyncOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.sync.pushButton")),1)]),_:1},8,["loading"]),t(f,{loading:e.pullLoading,onClick:e.syncPull,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.SyncOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),e.syncOutput?(i(),y("div",he,[u("div",ke,l(e.t("p2p.sync.outputLabel")),1),u("pre",Se,l(e.syncOutput),1)])):p("v-if",!0)],64)),e.syncError?(i(),y("div",we,l(e.syncError),1)):p("v-if",!0)]),_:1},8,["title"]),p(" Pair Modal "),t(b,{open:e.showPairModal,"onUpdate:open":c[3]||(c[3]=o=>e.showPairModal=o),title:e.t("p2p.pair.title"),"confirm-loading":e.pairLoading,onOk:e.doPair,"ok-text":e.t("p2p.pair.ok"),"cancel-text":e.t("common.cancel")},{default:a(()=>[u("div",Pe,l(e.t("p2p.pair.intro")),1),t(S,{value:e.pairDeviceName,"onUpdate:value":c[2]||(c[2]=o=>e.pairDeviceName=o),placeholder:e.t("p2p.pair.placeholder"),onPressEnter:e.doPair},null,8,["value","placeholder"]),e.pairResult?(i(),y("div",Oe,[u("pre",Le,l(e.pairResult),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" Send Modal "),t(b,{open:e.showSendModal,"onUpdate:open":c[6]||(c[6]=o=>e.showSendModal=o),title:e.t("p2p.send.title"),"confirm-loading":e.sendLoading,onOk:e.doSend,"ok-text":e.t("p2p.send.ok"),"cancel-text":e.t("common.cancel")},{default:a(()=>[u("div",Me,l(e.t("p2p.send.targetLabel")),1),t(x,{value:e.sendTarget,"onUpdate:value":c[4]||(c[4]=o=>e.sendTarget=o),style:{width:"100%","margin-bottom":"16px"},placeholder:e.t("p2p.send.targetPlaceholder")},{default:a(()=>[(i(!0),y(ee,null,re(e.peers,o=>(i(),O(w,{key:o.id,value:o.id},{default:a(()=>[g(l(o.name||o.id),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"]),u("div",Ce,l(e.t("p2p.send.messageLabel")),1),t(S,{value:e.sendMessage,"onUpdate:value":c[5]||(c[5]=o=>e.sendMessage=o),placeholder:e.t("p2p.send.messagePlaceholder"),onPressEnter:e.doSend},null,8,["value","placeholder"]),e.sendResult?(i(),y("div",ze,[u("pre",Te,l(e.sendResult),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const Fe=se(ye,[["render",Re],["__scopeId","data-v-f34183d8"],["__file","/tmp/cc-web-panel-TsYAbK/repo/packages/web-panel/src/views/P2P.vue"]]);export{Fe as default};
1
+ import{I as d,J as y,U as u,R as l,c as t,K as a,V as p,o as Y,b as $,r,P as i,Q as g,S as O,F as ee,Z as re}from"./vendor-Bn1JzzAn.js";import{_ as se,b as te,u as ne}from"./index-3_CEBEEf.js";import{M as ie,R as ce,at as de,am as pe,S as ue}from"./icons-DG5UD-6K.js";const ye={__name:"P2P",setup(ae,{expose:c}){c();const{t:s}=te(),e=ne(),z=r(!1),T=r(""),f=r([]),L=$(()=>[{title:s("p2p.peerColumns.name"),key:"name"},{title:s("p2p.peerColumns.id"),key:"id"},{title:s("p2p.peerColumns.status"),key:"status"},{title:s("p2p.peerColumns.action"),key:"action",width:100}]);async function k(){z.value=!0,T.value="";try{const{output:n}=await e.execute("p2p peers",15e3);f.value=R(n)}catch(n){T.value=s("p2p.messages.loadPeersFailed",{err:n.message})}finally{z.value=!1}}function R(n){if(!n||n.includes("No peers")||n.includes("no peers"))return[];const N=n.split(`
2
+ `).filter(I=>I.trim()),P=[];for(const I of N){const U=I.match(/^\s*(\S+)\s+(.+?)\s+(connected|online|offline|disconnected)\s*$/i);if(U){P.push({id:U[1],name:U[2].trim(),connected:/connected|online/i.test(U[3])});continue}const V=I.match(/^\s*((?:12D3|Qm)\S{10,})\s*(.*)$/);if(V){const X=V[2].trim();P.push({id:V[1],name:X||V[1].slice(0,12),connected:/connected|online/i.test(X)})}}return P}const D=r(!1),M=r(!1),m=r(""),_=r("");async function C(){if(m.value.trim()){M.value=!0,_.value="";try{const{output:n}=await e.execute(`p2p pair "${m.value.trim()}"`,3e4);_.value=n,await k()}catch(n){_.value=s("p2p.messages.pairFailed",{err:n.message})}finally{M.value=!1}}}const E=r(!1),S=r(!1),b=r(void 0),w=r(""),x=r("");function o(n){b.value=n.id,w.value="",x.value="",E.value=!0}async function v(){if(!(!b.value||!w.value.trim())){S.value=!0,x.value="";try{const{output:n}=await e.execute(`p2p send ${b.value} "${w.value.trim()}"`,15e3);x.value=n||s("p2p.send.messageDefault")}catch(n){x.value=s("p2p.messages.sendFailed",{err:n.message})}finally{S.value=!1}}}const B=r(!1),j=r(""),A=r(!1),Q=r(""),K=r(0),Z=r(""),h=r(""),W=r(!1),J=r(!1);async function F(){B.value=!0,j.value="";try{const{output:n}=await e.execute("sync status",15e3);q(n)}catch(n){j.value=s("p2p.messages.loadSyncFailed",{err:n.message})}finally{B.value=!1}}function q(n){if(!n){Q.value=s("p2p.sync.unknown");return}A.value=/synced|online|up.to.date/i.test(n),Q.value=A.value?s("p2p.sync.synced"):s("p2p.sync.notSynced");const N=n.match(/pending[:\s]+(\d+)/i);K.value=N?parseInt(N[1]):0;const P=n.match(/last[:\s]+(.+)/i);P&&(Z.value=P[1].trim())}async function oe(){W.value=!0,h.value="";try{const{output:n}=await e.execute("sync push",3e4);h.value=n||s("p2p.sync.pushDefault"),await F()}catch(n){h.value=s("p2p.messages.pushFailed",{err:n.message})}finally{W.value=!1}}async function le(){J.value=!0,h.value="";try{const{output:n}=await e.execute("sync pull",3e4);h.value=n||s("p2p.sync.pullDefault"),await F()}catch(n){h.value=s("p2p.messages.pullFailed",{err:n.message})}finally{J.value=!1}}async function G(){await Promise.all([k(),F()])}Y(G);const H={t:s,ws:e,peersLoading:z,peersError:T,peers:f,peerColumns:L,loadPeers:k,parsePeersOutput:R,showPairModal:D,pairLoading:M,pairDeviceName:m,pairResult:_,doPair:C,showSendModal:E,sendLoading:S,sendTarget:b,sendMessage:w,sendResult:x,openSendTo:o,doSend:v,syncLoading:B,syncError:j,syncOnline:A,syncStatusText:Q,syncPending:K,lastSyncTime:Z,syncOutput:h,pushLoading:W,pullLoading:J,loadSync:F,parseSyncStatus:q,syncPush:oe,syncPull:le,refreshAll:G,ref:r,computed:$,onMounted:Y,get useI18n(){return te},get SyncOutlined(){return ue},get SendOutlined(){return pe},get PlusOutlined(){return de},get ReloadOutlined(){return ce},get MobileOutlined(){return ie},get useWsStore(){return ne}};return Object.defineProperty(H,"__isScriptSetup",{enumerable:!1,value:!0}),H}},ve={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},fe={class:"page-title"},me={class:"page-sub"},ge={key:0,style:{"text-align":"center",padding:"30px"}},_e={key:2,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},be={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},xe={key:0,style:{"text-align":"center",padding:"30px"}},he={key:0,style:{"margin-top":"16px"}},ke={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},Se={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},we={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},Pe={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},Oe={key:0,style:{"margin-top":"12px"}},Le={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Me={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},Ce={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},ze={key:0,style:{"margin-top":"12px"}},Te={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}};function Re(ae,c,s,e,z,T){const f=d("a-button"),L=d("a-space"),k=d("a-spin"),R=d("a-empty"),D=d("a-tag"),M=d("a-table"),m=d("a-card"),_=d("a-statistic"),C=d("a-col"),E=d("a-row"),S=d("a-input"),b=d("a-modal"),w=d("a-select-option"),x=d("a-select");return i(),y("div",null,[u("div",ve,[u("div",null,[u("h2",fe,l(e.t("p2p.title")),1),u("p",me,l(e.t("p2p.subtitle")),1)]),t(f,{type:"primary",ghost:"",loading:e.peersLoading,onClick:e.refreshAll},{icon:a(()=>[t(e.ReloadOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.refresh")),1)]),_:1},8,["loading"])]),p(" P2P Devices Section "),t(m,{title:e.t("p2p.peers.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:a(()=>[t(L,null,{default:a(()=>[t(f,{size:"small",onClick:c[0]||(c[0]=o=>e.showPairModal=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.PlusOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.peers.pairButton")),1)]),_:1}),t(f,{size:"small",onClick:c[1]||(c[1]=o=>e.showSendModal=!0),disabled:e.peers.length===0,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.SendOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.peers.sendButton")),1)]),_:1},8,["disabled"])]),_:1})]),default:a(()=>[e.peersLoading?(i(),y("div",ge,[t(k)])):e.peers.length===0?(i(),O(R,{key:1,description:e.t("p2p.peers.emptyText")},null,8,["description"])):(i(),O(M,{key:2,columns:e.peerColumns,"data-source":e.peers,pagination:!1,size:"small","row-key":"id"},{bodyCell:a(({column:o,record:v})=>[o.key==="status"?(i(),O(D,{key:0,color:v.connected?"green":"default"},{default:a(()=>[g(l(v.connected?e.t("p2p.peers.online"):e.t("p2p.peers.offline")),1)]),_:2},1032,["color"])):p("v-if",!0),o.key==="name"?(i(),O(L,{key:1},{default:a(()=>[t(e.MobileOutlined,{style:{color:"var(--text-muted)"}}),u("span",null,l(v.name||v.id),1)]),_:2},1024)):p("v-if",!0),o.key==="id"?(i(),y("span",_e,l(v.id.length>16?v.id.slice(0,16)+"...":v.id),1)):p("v-if",!0),o.key==="action"?(i(),O(f,{key:3,size:"small",type:"link",onClick:B=>e.openSendTo(v)},{default:a(()=>[t(e.SendOutlined),g(" "+l(e.t("p2p.peers.rowSend")),1)]),_:1},8,["onClick"])):p("v-if",!0)]),_:1},8,["columns","data-source"])),e.peersError?(i(),y("div",be,l(e.peersError),1)):p("v-if",!0)]),_:1},8,["title"]),p(" Sync Section "),t(m,{title:e.t("p2p.sync.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:a(()=>[t(D,{color:e.syncOnline?"green":"default"},{default:a(()=>[g(l(e.syncOnline?e.t("p2p.sync.synced"):e.t("p2p.sync.notSynced")),1)]),_:1},8,["color"])]),default:a(()=>[e.syncLoading?(i(),y("div",xe,[t(k)])):(i(),y(ee,{key:1},[t(E,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(C,{xs:24,sm:8},{default:a(()=>[t(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(_,{title:e.t("p2p.sync.statusLabel"),value:e.syncStatusText,"value-style":{color:e.syncOnline?"#52c41a":"#888",fontSize:"16px"}},{prefix:a(()=>[t(e.SyncOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(C,{xs:24,sm:8},{default:a(()=>[t(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(_,{title:e.t("p2p.sync.pendingLabel"),value:e.syncPending,"value-style":{color:e.syncPending>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:a(()=>[t(e.SyncOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(C,{xs:24,sm:8},{default:a(()=>[t(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(_,{title:e.t("p2p.sync.lastSyncLabel"),value:e.lastSyncTime||e.t("p2p.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:a(()=>[t(e.SyncOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(L,null,{default:a(()=>[t(f,{loading:e.pushLoading,onClick:e.syncPush,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.SyncOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.sync.pushButton")),1)]),_:1},8,["loading"]),t(f,{loading:e.pullLoading,onClick:e.syncPull,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:a(()=>[t(e.SyncOutlined)]),default:a(()=>[g(" "+l(e.t("p2p.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),e.syncOutput?(i(),y("div",he,[u("div",ke,l(e.t("p2p.sync.outputLabel")),1),u("pre",Se,l(e.syncOutput),1)])):p("v-if",!0)],64)),e.syncError?(i(),y("div",we,l(e.syncError),1)):p("v-if",!0)]),_:1},8,["title"]),p(" Pair Modal "),t(b,{open:e.showPairModal,"onUpdate:open":c[3]||(c[3]=o=>e.showPairModal=o),title:e.t("p2p.pair.title"),"confirm-loading":e.pairLoading,onOk:e.doPair,"ok-text":e.t("p2p.pair.ok"),"cancel-text":e.t("common.cancel")},{default:a(()=>[u("div",Pe,l(e.t("p2p.pair.intro")),1),t(S,{value:e.pairDeviceName,"onUpdate:value":c[2]||(c[2]=o=>e.pairDeviceName=o),placeholder:e.t("p2p.pair.placeholder"),onPressEnter:e.doPair},null,8,["value","placeholder"]),e.pairResult?(i(),y("div",Oe,[u("pre",Le,l(e.pairResult),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" Send Modal "),t(b,{open:e.showSendModal,"onUpdate:open":c[6]||(c[6]=o=>e.showSendModal=o),title:e.t("p2p.send.title"),"confirm-loading":e.sendLoading,onOk:e.doSend,"ok-text":e.t("p2p.send.ok"),"cancel-text":e.t("common.cancel")},{default:a(()=>[u("div",Me,l(e.t("p2p.send.targetLabel")),1),t(x,{value:e.sendTarget,"onUpdate:value":c[4]||(c[4]=o=>e.sendTarget=o),style:{width:"100%","margin-bottom":"16px"},placeholder:e.t("p2p.send.targetPlaceholder")},{default:a(()=>[(i(!0),y(ee,null,re(e.peers,o=>(i(),O(w,{key:o.id,value:o.id},{default:a(()=>[g(l(o.name||o.id),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"]),u("div",Ce,l(e.t("p2p.send.messageLabel")),1),t(S,{value:e.sendMessage,"onUpdate:value":c[5]||(c[5]=o=>e.sendMessage=o),placeholder:e.t("p2p.send.messagePlaceholder"),onPressEnter:e.doSend},null,8,["value","placeholder"]),e.sendResult?(i(),y("div",ze,[u("pre",Te,l(e.sendResult),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const Fe=se(ye,[["render",Re],["__scopeId","data-v-f34183d8"],["__file","/tmp/cc-web-panel-Ix5cmp/repo/packages/web-panel/src/views/P2P.vue"]]);export{Fe as default};
@@ -0,0 +1,7 @@
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};