@seasonkoh/webaz 0.1.28 → 0.1.30

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 (198) hide show
  1. package/README.md +3 -2
  2. package/README.zh-CN.md +7 -6
  3. package/dist/bond-refund-blockers.js +50 -0
  4. package/dist/bond-slash.js +100 -0
  5. package/dist/bond-terms.js +31 -0
  6. package/dist/currency.js +16 -0
  7. package/dist/deposit-rails.js +52 -0
  8. package/dist/direct-pay-aml-monitor.js +67 -0
  9. package/dist/direct-pay-aml-review.js +40 -0
  10. package/dist/direct-pay-base-bond-entry.js +5 -0
  11. package/dist/direct-pay-bond-rail-clearance.js +99 -0
  12. package/dist/direct-pay-cancel-refund.js +160 -0
  13. package/dist/direct-pay-compliance-ingress.js +145 -0
  14. package/dist/direct-pay-controls.js +136 -0
  15. package/dist/direct-pay-create.js +231 -0
  16. package/dist/direct-pay-deferral-quota.js +43 -0
  17. package/dist/direct-pay-disclosures.js +50 -0
  18. package/dist/direct-pay-eligibility.js +46 -0
  19. package/dist/direct-pay-fee-ar.js +241 -0
  20. package/dist/direct-pay-fee-prepay-request.js +80 -0
  21. package/dist/direct-pay-launch-readiness.js +108 -0
  22. package/dist/direct-pay-launch-summary.js +68 -0
  23. package/dist/direct-pay-ledger.js +94 -0
  24. package/dist/direct-pay-returns.js +104 -0
  25. package/dist/direct-pay-stock.js +9 -0
  26. package/dist/direct-receive-account-qr.js +77 -0
  27. package/dist/direct-receive-accounts.js +82 -0
  28. package/dist/direct-receive-deferral.js +171 -0
  29. package/dist/direct-receive-deposits.js +365 -0
  30. package/dist/direct-receive-payment-instruction.js +26 -0
  31. package/dist/free-shipping.js +37 -0
  32. package/dist/fx-rates.js +78 -0
  33. package/dist/layer0-foundation/L0-1-database/schema.js +777 -1
  34. package/dist/layer0-foundation/L0-2-state-machine/engine.js +1 -0
  35. package/dist/layer0-foundation/L0-2-state-machine/genuine-sale.js +15 -5
  36. package/dist/layer0-foundation/L0-2-state-machine/transitions.js +114 -0
  37. package/dist/layer0-foundation/L0-5-manifest/manifest.js +1 -1
  38. package/dist/layer1-agent/L1-1-mcp-server/cli.js +64 -0
  39. package/dist/layer1-agent/L1-1-mcp-server/network-mode.js +11 -0
  40. package/dist/layer1-agent/L1-1-mcp-server/server.js +99 -32
  41. package/dist/layer2-business/L2-6-notifications/notification-engine.js +110 -41
  42. package/dist/layer3-trust/L3-1-dispute-engine/dispute-engine.js +133 -31
  43. package/dist/layer3-trust/L3-1-dispute-engine/evidence-storage.js +16 -4
  44. package/dist/layer3-trust/L3-1-dispute-engine/mutual-cancel.js +156 -0
  45. package/dist/layer4-economics/L4-4-skill-market/skill-engine.js +4 -4
  46. package/dist/ledger.js +12 -3
  47. package/dist/mcp.js +23 -4
  48. package/dist/merchant-bond-domain.js +64 -0
  49. package/dist/merchant-bond-exposure.js +78 -0
  50. package/dist/merchant-bond-watcher.js +26 -0
  51. package/dist/payment-rails.js +29 -0
  52. package/dist/platform-receive-accounts.js +94 -0
  53. package/dist/product-verification.js +93 -0
  54. package/dist/pwa/acp-feed.js +3 -2
  55. package/dist/pwa/arbitration-read-admin.js +37 -0
  56. package/dist/pwa/arbitrator-lifecycle.js +100 -0
  57. package/dist/pwa/contract-fingerprint.js +18 -0
  58. package/dist/pwa/direct-pay-guards.js +20 -0
  59. package/dist/pwa/direct-pay-order-redaction.js +42 -0
  60. package/dist/pwa/endpoint-actions.js +3 -0
  61. package/dist/pwa/human-presence.js +2 -6
  62. package/dist/pwa/public/app-account.js +9 -9
  63. package/dist/pwa/public/app-admin-disputes.js +55 -0
  64. package/dist/pwa/public/app-agent-appeal.js +90 -0
  65. package/dist/pwa/public/app-agent-approvals.js +93 -0
  66. package/dist/pwa/public/app-agent-pair.js +127 -0
  67. package/dist/pwa/public/app-ai.js +10 -10
  68. package/dist/pwa/public/app-arbitrator-admin.js +87 -0
  69. package/dist/pwa/public/app-arbitrator-entry.js +9 -0
  70. package/dist/pwa/public/app-bond-deferral-ui.js +9 -0
  71. package/dist/pwa/public/app-bond-refund-ui.js +66 -0
  72. package/dist/pwa/public/app-bond-slash-ui.js +74 -0
  73. package/dist/pwa/public/app-bond-terms-ui.js +23 -0
  74. package/dist/pwa/public/app-bond-ui.js +108 -0
  75. package/dist/pwa/public/app-chat-poll.js +29 -0
  76. package/dist/pwa/public/app-contribution-hub.js +23 -0
  77. package/dist/pwa/public/app-create-kinds.js +17 -0
  78. package/dist/pwa/public/app-direct-pay-accounts.js +141 -0
  79. package/dist/pwa/public/app-direct-pay-buyer.js +72 -0
  80. package/dist/pwa/public/app-direct-pay-cancel-refund.js +72 -0
  81. package/dist/pwa/public/app-direct-pay-compliance.js +67 -0
  82. package/dist/pwa/public/app-direct-pay-copy.js +12 -0
  83. package/dist/pwa/public/app-direct-pay-deferral-admin.js +72 -0
  84. package/dist/pwa/public/app-direct-pay-deferral.js +61 -0
  85. package/dist/pwa/public/app-direct-pay-fee-center.js +33 -0
  86. package/dist/pwa/public/app-direct-pay-fee-history.js +39 -0
  87. package/dist/pwa/public/app-direct-pay-fee-ops.js +112 -0
  88. package/dist/pwa/public/app-direct-pay-fee-request.js +81 -0
  89. package/dist/pwa/public/app-direct-pay-fee-requests-admin.js +70 -0
  90. package/dist/pwa/public/app-direct-pay-memo.js +14 -0
  91. package/dist/pwa/public/app-direct-pay-negotiation.js +35 -0
  92. package/dist/pwa/public/app-direct-pay-pay.js +15 -0
  93. package/dist/pwa/public/app-direct-pay-paymodal.js +32 -0
  94. package/dist/pwa/public/app-direct-pay-product-verify.js +103 -0
  95. package/dist/pwa/public/app-direct-pay-readiness.js +38 -0
  96. package/dist/pwa/public/app-direct-pay-reconcile.js +19 -0
  97. package/dist/pwa/public/app-direct-pay-returns.js +56 -0
  98. package/dist/pwa/public/app-direct-pay-reveal.js +82 -0
  99. package/dist/pwa/public/app-direct-pay-sales-report.js +70 -0
  100. package/dist/pwa/public/app-direct-pay-store-verify.js +100 -0
  101. package/dist/pwa/public/app-direct-pay.js +226 -0
  102. package/dist/pwa/public/app-discover.js +20 -20
  103. package/dist/pwa/public/app-dispute-close-ui.js +38 -0
  104. package/dist/pwa/public/app-external-links.js +32 -0
  105. package/dist/pwa/public/app-free-shipping-ui.js +29 -0
  106. package/dist/pwa/public/app-gmv-rail-split.js +12 -0
  107. package/dist/pwa/public/app-listing-commerce-ui.js +72 -0
  108. package/dist/pwa/public/app-listings.js +4 -4
  109. package/dist/pwa/public/app-mutual-cancel.js +54 -0
  110. package/dist/pwa/public/app-notif-templates-orders.js +43 -0
  111. package/dist/pwa/public/app-notif-templates.js +22 -0
  112. package/dist/pwa/public/app-order-accept-ui.js +158 -0
  113. package/dist/pwa/public/app-order-errors.js +50 -0
  114. package/dist/pwa/public/app-order-labels.js +19 -0
  115. package/dist/pwa/public/app-order-rail-filter.js +26 -0
  116. package/dist/pwa/public/app-platform-receive-accounts.js +140 -0
  117. package/dist/pwa/public/app-poll-governor.js +22 -0
  118. package/dist/pwa/public/app-prelaunch-waz.js +39 -0
  119. package/dist/pwa/public/app-price.js +55 -0
  120. package/dist/pwa/public/app-product-media.js +15 -0
  121. package/dist/pwa/public/app-profile.js +10 -10
  122. package/dist/pwa/public/app-purchase-terms-ui.js +68 -0
  123. package/dist/pwa/public/app-sale-regions-ui.js +38 -0
  124. package/dist/pwa/public/app-seller.js +5 -5
  125. package/dist/pwa/public/app-shop.js +19 -19
  126. package/dist/pwa/public/app-trade-tax-ui.js +33 -0
  127. package/dist/pwa/public/app.js +264 -295
  128. package/dist/pwa/public/i18n.js +1068 -197
  129. package/dist/pwa/public/index.html +58 -0
  130. package/dist/pwa/public/openapi.json +1845 -653
  131. package/dist/pwa/public/style.css +3 -0
  132. package/dist/pwa/routes/admin-analytics.js +4 -2
  133. package/dist/pwa/routes/admin-direct-receive-deposits.js +533 -0
  134. package/dist/pwa/routes/admin-protocol-params.js +16 -0
  135. package/dist/pwa/routes/admin-reports.js +31 -5
  136. package/dist/pwa/routes/agent-governance.js +1 -1
  137. package/dist/pwa/routes/agent-grants.js +253 -32
  138. package/dist/pwa/routes/analytics.js +2 -0
  139. package/dist/pwa/routes/arbitrator.js +67 -14
  140. package/dist/pwa/routes/bond-seller.js +162 -0
  141. package/dist/pwa/routes/buyer-feeds.js +2 -1
  142. package/dist/pwa/routes/chat.js +6 -1
  143. package/dist/pwa/routes/dashboards.js +2 -1
  144. package/dist/pwa/routes/direct-pay-availability.js +196 -0
  145. package/dist/pwa/routes/direct-pay-cancel-refund.js +111 -0
  146. package/dist/pwa/routes/direct-pay-disclosure-acks.js +79 -0
  147. package/dist/pwa/routes/direct-pay-pending-accept.js +222 -0
  148. package/dist/pwa/routes/direct-pay-returns.js +74 -0
  149. package/dist/pwa/routes/direct-pay-timeouts.js +248 -0
  150. package/dist/pwa/routes/direct-receive-accounts.js +155 -0
  151. package/dist/pwa/routes/direct-receive-payment-instructions.js +45 -0
  152. package/dist/pwa/routes/disputes-read.js +20 -6
  153. package/dist/pwa/routes/disputes-write.js +91 -33
  154. package/dist/pwa/routes/external-anchors.js +4 -2
  155. package/dist/pwa/routes/fee-prepay-requests.js +66 -0
  156. package/dist/pwa/routes/fx.js +12 -0
  157. package/dist/pwa/routes/governance-onboarding.js +46 -8
  158. package/dist/pwa/routes/leaderboard.js +47 -9
  159. package/dist/pwa/routes/listings.js +2 -2
  160. package/dist/pwa/routes/logistics.js +6 -2
  161. package/dist/pwa/routes/manifests.js +38 -0
  162. package/dist/pwa/routes/me-data.js +5 -2
  163. package/dist/pwa/routes/mutual-cancel.js +62 -0
  164. package/dist/pwa/routes/orders-action.js +297 -16
  165. package/dist/pwa/routes/orders-create.js +21 -6
  166. package/dist/pwa/routes/orders-read.js +106 -8
  167. package/dist/pwa/routes/p2p-products.js +2 -2
  168. package/dist/pwa/routes/platform-receive-accounts.js +111 -0
  169. package/dist/pwa/routes/products-create.js +15 -4
  170. package/dist/pwa/routes/products-links.js +34 -0
  171. package/dist/pwa/routes/products-list.js +2 -1
  172. package/dist/pwa/routes/products-update.js +37 -3
  173. package/dist/pwa/routes/profile-identity.js +4 -2
  174. package/dist/pwa/routes/promoter.js +3 -0
  175. package/dist/pwa/routes/referral.js +4 -0
  176. package/dist/pwa/routes/returns.js +60 -4
  177. package/dist/pwa/routes/rewards-apply.js +10 -5
  178. package/dist/pwa/routes/rewards-clearing-mature.js +96 -0
  179. package/dist/pwa/routes/rewards-escrow-expire.js +6 -2
  180. package/dist/pwa/routes/seller-directpay-report.js +110 -0
  181. package/dist/pwa/routes/seller-quota.js +5 -1
  182. package/dist/pwa/routes/shipping-templates.js +219 -0
  183. package/dist/pwa/routes/shops.js +2 -1
  184. package/dist/pwa/routes/snf.js +4 -1
  185. package/dist/pwa/routes/url-claim.js +2 -2
  186. package/dist/pwa/routes/users-public.js +8 -0
  187. package/dist/pwa/routes/wallet-read.js +3 -0
  188. package/dist/pwa/routes/webauthn.js +3 -3
  189. package/dist/pwa/server.js +112 -132
  190. package/dist/runtime/agent-grant-scopes.js +69 -1
  191. package/dist/runtime/webaz-schema-helpers.js +161 -3
  192. package/dist/sale-regions.js +116 -0
  193. package/dist/shipping-templates.js +119 -0
  194. package/dist/store-verification.js +77 -0
  195. package/dist/trade-tax.js +99 -0
  196. package/dist/trade-terms.js +76 -0
  197. package/dist/version.js +1 -1
  198. package/package.json +128 -2
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "WebAZ Protocol API",
5
5
  "version": "0.4.14",
6
- "description": "Auto-generated endpoint inventory (673 endpoints, 17 with full schema). See docs/ for design context."
6
+ "description": "Auto-generated endpoint inventory (776 endpoints, 17 with full schema). See docs/ for design context."
7
7
  },
8
8
  "servers": [
9
9
  {
@@ -349,6 +349,71 @@
349
349
  ]
350
350
  }
351
351
  },
352
+ "/api/admin/arbitrators": {
353
+ "get": {
354
+ "summary": "名册(admin 只读,无需 Passkey)。含 active/suspended/revoked 全量 + 状态。",
355
+ "tags": [
356
+ "admin"
357
+ ],
358
+ "security": [
359
+ {
360
+ "bearerAuth": []
361
+ }
362
+ ]
363
+ }
364
+ },
365
+ "/api/admin/arbitrators/:user_id/reinstate": {
366
+ "post": {
367
+ "summary": "POST /api/admin/arbitrators/:user_id/reinstate",
368
+ "tags": [
369
+ "admin"
370
+ ],
371
+ "security": [
372
+ {
373
+ "bearerAuth": []
374
+ }
375
+ ]
376
+ }
377
+ },
378
+ "/api/admin/arbitrators/:user_id/revoke": {
379
+ "post": {
380
+ "summary": "POST /api/admin/arbitrators/:user_id/revoke",
381
+ "tags": [
382
+ "admin"
383
+ ],
384
+ "security": [
385
+ {
386
+ "bearerAuth": []
387
+ }
388
+ ]
389
+ }
390
+ },
391
+ "/api/admin/arbitrators/:user_id/suspend": {
392
+ "post": {
393
+ "summary": "POST /api/admin/arbitrators/:user_id/suspend",
394
+ "tags": [
395
+ "admin"
396
+ ],
397
+ "security": [
398
+ {
399
+ "bearerAuth": []
400
+ }
401
+ ]
402
+ }
403
+ },
404
+ "/api/admin/arbitrators/grant": {
405
+ "post": {
406
+ "summary": "POST /api/admin/arbitrators/grant",
407
+ "tags": [
408
+ "admin"
409
+ ],
410
+ "security": [
411
+ {
412
+ "bearerAuth": []
413
+ }
414
+ ]
415
+ }
416
+ },
352
417
  "/api/admin/atomic/process-ledger": {
353
418
  "post": {
354
419
  "summary": "POST /api/admin/atomic/process-ledger",
@@ -605,12 +670,11 @@
605
670
  ]
606
671
  }
607
672
  },
608
- "/api/admin/disputes": {
609
- "get": {
610
- "summary": "GET /api/admin/disputes",
673
+ "/api/admin/direct-receive/aml-flags": {
674
+ "post": {
675
+ "summary": "POST /api/admin/direct-receive/aml-flags",
611
676
  "tags": [
612
- "admin",
613
- "dispute"
677
+ "admin"
614
678
  ],
615
679
  "security": [
616
680
  {
@@ -619,9 +683,9 @@
619
683
  ]
620
684
  }
621
685
  },
622
- "/api/admin/economic-summary": {
623
- "get": {
624
- "summary": "隐私第一:运营财务,仅 protocol admin 可见。",
686
+ "/api/admin/direct-receive/aml-flags/:id/review": {
687
+ "post": {
688
+ "summary": "route 只做 auth + gate + 参数校验 + 调 reviewAmlFlag(唯一 review writer,原子改 flag + 写 audit)。",
625
689
  "tags": [
626
690
  "admin"
627
691
  ],
@@ -632,9 +696,9 @@
632
696
  ]
633
697
  }
634
698
  },
635
- "/api/admin/editor-picks": {
699
+ "/api/admin/direct-receive/bond-slash": {
636
700
  "get": {
637
- "summary": "GET /api/admin/editor-picks",
701
+ "summary": "── B3:保证金罚没(人工铁律:仲裁裁定卖家责的直付争议 → 提案 → 冷静期 → ROOT+Passkey 执行;绝不自动)──",
638
702
  "tags": [
639
703
  "admin"
640
704
  ],
@@ -643,9 +707,11 @@
643
707
  "bearerAuth": []
644
708
  }
645
709
  ]
646
- },
710
+ }
711
+ },
712
+ "/api/admin/direct-receive/bond-slash/:id/cancel": {
647
713
  "post": {
648
- "summary": "POST /api/admin/editor-picks",
714
+ "summary": "POST /api/admin/direct-receive/bond-slash/:id/cancel",
649
715
  "tags": [
650
716
  "admin"
651
717
  ],
@@ -656,9 +722,9 @@
656
722
  ]
657
723
  }
658
724
  },
659
- "/api/admin/editor-picks/:id": {
660
- "delete": {
661
- "summary": "DELETE /api/admin/editor-picks/:id",
725
+ "/api/admin/direct-receive/bond-slash/:id/execute": {
726
+ "post": {
727
+ "summary": "执行(ROOT + 真人 Passkey,purpose direct_pay_bond_slash 绑 proposal_id;冷静期由域内绝对截止校验)。",
662
728
  "tags": [
663
729
  "admin"
664
730
  ],
@@ -669,9 +735,9 @@
669
735
  ]
670
736
  }
671
737
  },
672
- "/api/admin/email-subscriptions": {
673
- "get": {
674
- "summary": "2026-05-25 admin 查邮箱订阅 — 独立端点,与建议分开",
738
+ "/api/admin/direct-receive/bond-slash/propose": {
739
+ "post": {
740
+ "summary": "提案(ROOT,审计留痕,不 Passkey —— 提案不动任何东西;执行才是终局动作)。通知卖家(冷静期=申诉窗)。",
675
741
  "tags": [
676
742
  "admin"
677
743
  ],
@@ -682,9 +748,9 @@
682
748
  ]
683
749
  }
684
750
  },
685
- "/api/admin/email-subscriptions/:id/status": {
686
- "patch": {
687
- "summary": "2026-05-29: admin 标记申请处理状态(pending→contacted→invited→done)— 不动 POST 提交逻辑",
751
+ "/api/admin/direct-receive/deferrals": {
752
+ "get": {
753
+ "summary": "GET /api/admin/direct-receive/deferrals?status=pending ROOT 审批队列(默认全部;可按 status 过滤)。纯读。",
688
754
  "tags": [
689
755
  "admin"
690
756
  ],
@@ -695,9 +761,9 @@
695
761
  ]
696
762
  }
697
763
  },
698
- "/api/admin/errors": {
699
- "get": {
700
- "summary": "GET /api/admin/errors",
764
+ "/api/admin/direct-receive/deferrals/:id/approve": {
765
+ "post": {
766
+ "summary": "Passkey purpose_data 绑定【完整审批条款】(deferral_id + reduced_quota_factor + grace_days):签 A 批 B / 改条款一律拒。",
701
767
  "tags": [
702
768
  "admin"
703
769
  ],
@@ -708,9 +774,9 @@
708
774
  ]
709
775
  }
710
776
  },
711
- "/api/admin/errors/aggregate": {
712
- "get": {
713
- "summary": "Tier 1 #5: 错误聚合 view(24h / 1h 趋势 + top by source + top messages + burst alert)",
777
+ "/api/admin/direct-receive/deferrals/:id/reject": {
778
+ "post": {
779
+ "summary": "POST /api/admin/direct-receive/deferrals/:id/reject ROOT + 真人 Passkey 拒绝缓交。purpose_data deferral_id。",
714
780
  "tags": [
715
781
  "admin"
716
782
  ],
@@ -721,9 +787,9 @@
721
787
  ]
722
788
  }
723
789
  },
724
- "/api/admin/events/recent": {
790
+ "/api/admin/direct-receive/deposits": {
725
791
  "get": {
726
- "summary": "GET /api/admin/events/recent",
792
+ "summary": "GET /api/admin/direct-receive/deposits?status=pending — ROOT 只读:保证金申报队列(核对到账用)。B1。",
727
793
  "tags": [
728
794
  "admin"
729
795
  ],
@@ -734,16 +800,9 @@
734
800
  ]
735
801
  }
736
802
  },
737
- "/api/admin/events/stream": {
738
- "get": {
739
- "summary": "GET /api/admin/events/stream",
740
- "tags": [],
741
- "security": []
742
- }
743
- },
744
- "/api/admin/events/ticket": {
803
+ "/api/admin/direct-receive/deposits/:id/confirm-production": {
745
804
  "post": {
746
- "summary": "POST /api/admin/events/ticket",
805
+ "summary": "当前恒 fail-closed(无 legal-cleared rail → assert 抛 → PRODUCTION_RAIL_NOT_CLEARED)。",
747
806
  "tags": [
748
807
  "admin"
749
808
  ],
@@ -754,9 +813,9 @@
754
813
  ]
755
814
  }
756
815
  },
757
- "/api/admin/export/:kind": {
758
- "get": {
759
- "summary": "GET /api/admin/export/:kind",
816
+ "/api/admin/direct-receive/deposits/:id/execute-refund": {
817
+ "post": {
818
+ "summary": "unlock blockers(冷静期内可能新增退货/欠费等责任 —— 有任一即拒)。凭据必填;真实退款发生在协议外,此处只记录。",
760
819
  "tags": [
761
820
  "admin"
762
821
  ],
@@ -767,21 +826,12 @@
767
826
  ]
768
827
  }
769
828
  },
770
- "/api/admin/feedback": {
771
- "get": {
772
- "summary": "admin 列出工单",
773
- "tags": [],
774
- "security": [
775
- {
776
- "bearerAuth": []
777
- }
778
- ]
779
- }
780
- },
781
- "/api/admin/feedback/:id/reply": {
829
+ "/api/admin/direct-receive/deposits/:id/reject": {
782
830
  "post": {
783
- "summary": "admin 回复 + 切状态",
784
- "tags": [],
831
+ "summary": " Passkey:驳回不授予/不移动任何东西(与缓交 reject 不同 —— 那是资格决定;这里只是\"到账核不上\"退回重报)。",
832
+ "tags": [
833
+ "admin"
834
+ ],
785
835
  "security": [
786
836
  {
787
837
  "bearerAuth": []
@@ -789,9 +839,9 @@
789
839
  ]
790
840
  }
791
841
  },
792
- "/api/admin/finance/monthly": {
842
+ "/api/admin/direct-receive/fee-account/:seller_id": {
793
843
  "get": {
794
- "summary": "GET /api/admin/finance/monthly",
844
+ "summary": "只读诊断,不写、无 Passkey(读不授权能力);卖家私密财务,买家/卖家拿不到此 admin 视图。",
795
845
  "tags": [
796
846
  "admin"
797
847
  ],
@@ -802,9 +852,9 @@
802
852
  ]
803
853
  }
804
854
  },
805
- "/api/admin/governance/activate": {
855
+ "/api/admin/direct-receive/fee-adjust": {
806
856
  "post": {
807
- "summary": "body: { application_id, webauthn_token, note? }",
857
+ "summary": " 退款(不动真钱,只调记账)。purpose_data seller_id+delta_units+reason。",
808
858
  "tags": [
809
859
  "admin"
810
860
  ],
@@ -815,9 +865,9 @@
815
865
  ]
816
866
  }
817
867
  },
818
- "/api/admin/governance/appeals": {
819
- "get": {
820
- "summary": "GET /api/admin/governance/appeals — maintainer 看待裁决申诉",
868
+ "/api/admin/direct-receive/fee-prepay": {
869
+ "post": {
870
+ "summary": "不碰 buyer wallet/escrow/order/settlement/refund;非买家 escrow/保证金/penalty。本轮无\"余额退款\"(仅正向预付款登记)。",
821
871
  "tags": [
822
872
  "admin"
823
873
  ],
@@ -828,9 +878,9 @@
828
878
  ]
829
879
  }
830
880
  },
831
- "/api/admin/governance/application/:id": {
881
+ "/api/admin/direct-receive/fee-prepay-requests": {
832
882
  "get": {
833
- "summary": "GET /api/admin/governance/application/:id详情(含 expected_verdict 用于对比 — 仅 maintainer 看)",
883
+ "summary": "GET /api/admin/direct-receive/fee-prepay-requests?status=pendingROOT 只读:预充值申请队列(核对到账用)",
834
884
  "tags": [
835
885
  "admin"
836
886
  ],
@@ -841,9 +891,9 @@
841
891
  ]
842
892
  }
843
893
  },
844
- "/api/admin/governance/applications": {
845
- "get": {
846
- "summary": "GET /api/admin/governance/applications 列出 pending_onboarding(可筛 quiz_passed + has_case_review)",
894
+ "/api/admin/direct-receive/fee-prepay-requests/:id/approve": {
895
+ "post": {
896
+ "summary": "purpose_data request_id + seller_id + amount_units + method(把入账金额/对象钉进 Passkey)。原子:approved + recordFeePrepay + 关联 payment。",
847
897
  "tags": [
848
898
  "admin"
849
899
  ],
@@ -854,9 +904,9 @@
854
904
  ]
855
905
  }
856
906
  },
857
- "/api/admin/governance/auto-deactivations": {
858
- "get": {
859
- "summary": "spec §6.2 公示触发原因(透明 元规则 #1)",
907
+ "/api/admin/direct-receive/fee-prepay-requests/:id/reject": {
908
+ "post": {
909
+ "summary": "POST /api/admin/direct-receive/fee-prepay-requests/:id/rejectROOT + Passkey(不动钱)。purpose_data 绑 request_id。",
860
910
  "tags": [
861
911
  "admin"
862
912
  ],
@@ -867,9 +917,9 @@
867
917
  ]
868
918
  }
869
919
  },
870
- "/api/admin/governance/resolve-appeal": {
920
+ "/api/admin/direct-receive/fee-refund": {
871
921
  "post": {
872
- "summary": "accept 恢复 active(spec §7.2) ;reject 维持 inactive,公开理由",
922
+ "summary": "amount 当前 available(helper 同事务校验)。append-only + audit。purpose_data seller_id+amount_units+method+evidence_ref。",
873
923
  "tags": [
874
924
  "admin"
875
925
  ],
@@ -880,9 +930,9 @@
880
930
  ]
881
931
  }
882
932
  },
883
- "/api/admin/governance/run-auto-deactivate": {
933
+ "/api/admin/direct-receive/kyb-reviews": {
884
934
  "post": {
885
- "summary": "Useful for ops + testing. The scheduled cron also runs every N hours.",
935
+ "summary": "Passkey purpose_data 绑定【完整写入内容】(user_id+status+provider_ref+expires_at):签 A B 一律拒。",
886
936
  "tags": [
887
937
  "admin"
888
938
  ],
@@ -893,9 +943,9 @@
893
943
  ]
894
944
  }
895
945
  },
896
- "/api/admin/health": {
946
+ "/api/admin/direct-receive/product-verifications": {
897
947
  "get": {
898
- "summary": "GET /api/admin/health",
948
+ "summary": "GET /api/admin/direct-receive/product-verifications?status=submitted — ROOT 审核队列(默认全部)。纯读。",
899
949
  "tags": [
900
950
  "admin"
901
951
  ],
@@ -906,16 +956,9 @@
906
956
  ]
907
957
  }
908
958
  },
909
- "/api/admin/hot-wallet": {
910
- "get": {
911
- "summary": "Legacy x-admin-key 入口:仅余额",
912
- "tags": [],
913
- "security": []
914
- }
915
- },
916
- "/api/admin/hot-wallet/status": {
917
- "get": {
918
- "summary": "P2-5: protocol 权限(区域 admin 看不到全局热钱包)",
959
+ "/api/admin/direct-receive/product-verifications/:id/review": {
960
+ "post": {
961
+ "summary": "Passkey purpose_data 绑 verification_id + decision:签 A 用 B / 改结论一律拒。verify = 放行该产品直付(逐品,绝不放行全部)。",
919
962
  "tags": [
920
963
  "admin"
921
964
  ],
@@ -926,9 +969,9 @@
926
969
  ]
927
970
  }
928
971
  },
929
- "/api/admin/kyc/:user_id/approve": {
972
+ "/api/admin/direct-receive/readiness": {
930
973
  "post": {
931
- "summary": "POST /api/admin/kyc/:user_id/approve",
974
+ "summary": " KYB/sanctions/AML/base-bond/rail clearance 全细节)。只读诊断(不写库、不 flip launch);ROOT 专用,买家/卖家拿不到。",
932
975
  "tags": [
933
976
  "admin"
934
977
  ],
@@ -939,9 +982,9 @@
939
982
  ]
940
983
  }
941
984
  },
942
- "/api/admin/kyc/:user_id/reject": {
985
+ "/api/admin/direct-receive/sanctions-screenings": {
943
986
  "post": {
944
- "summary": "POST /api/admin/kyc/:user_id/reject",
987
+ "summary": "purpose_data 绑定 user_id+status+provider_ref+expires_at。",
945
988
  "tags": [
946
989
  "admin"
947
990
  ],
@@ -952,9 +995,9 @@
952
995
  ]
953
996
  }
954
997
  },
955
- "/api/admin/kyc/pending": {
998
+ "/api/admin/direct-receive/store-verifications": {
956
999
  "get": {
957
- "summary": "─── KYC ──────────────────────────────────────────────────────",
1000
+ "summary": "GET /api/admin/direct-receive/store-verifications?status=submitted — ROOT 审核队列(默认全部)。纯读。",
958
1001
  "tags": [
959
1002
  "admin"
960
1003
  ],
@@ -965,20 +1008,9 @@
965
1008
  ]
966
1009
  }
967
1010
  },
968
- "/api/admin/operator-claims": {
969
- "get": {
970
- "summary": "── ROOT: review queue (all claims, optional ?status=) ──",
971
- "tags": [
972
- "admin"
973
- ],
974
- "security": [
975
- {
976
- "bearerAuth": []
977
- }
978
- ]
979
- },
1011
+ "/api/admin/direct-receive/store-verifications/:id/review": {
980
1012
  "post": {
981
- "summary": "── admin proposes linking THEIR OWN seat to a contributor account ──",
1013
+ "summary": "POST /api/admin/direct-receive/store-verifications/:id/review ROOT + 真人 Passkey 核店铺 + 勾选逐品豁免。",
982
1014
  "tags": [
983
1015
  "admin"
984
1016
  ],
@@ -989,11 +1021,12 @@
989
1021
  ]
990
1022
  }
991
1023
  },
992
- "/api/admin/operator-claims/:approvedEventId/revoke": {
993
- "post": {
994
- "summary": "── ROOT: revoke an APPROVED (active) claim ──",
1024
+ "/api/admin/disputes": {
1025
+ "get": {
1026
+ "summary": "GET /api/admin/disputes",
995
1027
  "tags": [
996
- "admin"
1028
+ "admin",
1029
+ "dispute"
997
1030
  ],
998
1031
  "security": [
999
1032
  {
@@ -1002,9 +1035,9 @@
1002
1035
  ]
1003
1036
  }
1004
1037
  },
1005
- "/api/admin/operator-claims/:claimedEventId": {
1038
+ "/api/admin/economic-summary": {
1006
1039
  "get": {
1007
- "summary": "── ROOT: claim detail ──",
1040
+ "summary": "隐私第一:运营财务,仅 protocol admin 可见。",
1008
1041
  "tags": [
1009
1042
  "admin"
1010
1043
  ],
@@ -1015,9 +1048,9 @@
1015
1048
  ]
1016
1049
  }
1017
1050
  },
1018
- "/api/admin/operator-claims/:claimedEventId/approve": {
1019
- "post": {
1020
- "summary": "── ROOT: approve a proposed-or-confirmed claim ──",
1051
+ "/api/admin/editor-picks": {
1052
+ "get": {
1053
+ "summary": "GET /api/admin/editor-picks",
1021
1054
  "tags": [
1022
1055
  "admin"
1023
1056
  ],
@@ -1026,11 +1059,9 @@
1026
1059
  "bearerAuth": []
1027
1060
  }
1028
1061
  ]
1029
- }
1030
- },
1031
- "/api/admin/operator-claims/:claimedEventId/reject": {
1062
+ },
1032
1063
  "post": {
1033
- "summary": "── ROOT: reject a still-proposed/confirmed claim ──",
1064
+ "summary": "POST /api/admin/editor-picks",
1034
1065
  "tags": [
1035
1066
  "admin"
1036
1067
  ],
@@ -1041,9 +1072,9 @@
1041
1072
  ]
1042
1073
  }
1043
1074
  },
1044
- "/api/admin/operator-claims/me": {
1045
- "get": {
1046
- "summary": "admin-seat owner can request/track unlink on their own active claims) ──",
1075
+ "/api/admin/editor-picks/:id": {
1076
+ "delete": {
1077
+ "summary": "DELETE /api/admin/editor-picks/:id",
1047
1078
  "tags": [
1048
1079
  "admin"
1049
1080
  ],
@@ -1054,9 +1085,9 @@
1054
1085
  ]
1055
1086
  }
1056
1087
  },
1057
- "/api/admin/operator-claims/unlink/:requestEventId/approve": {
1058
- "post": {
1059
- "summary": "relationship/request, approval_kind + conflict_disclosure are required (governance honesty). ──",
1088
+ "/api/admin/email-subscriptions": {
1089
+ "get": {
1090
+ "summary": "2026-05-25 admin 查邮箱订阅 独立端点,与建议分开",
1060
1091
  "tags": [
1061
1092
  "admin"
1062
1093
  ],
@@ -1067,9 +1098,9 @@
1067
1098
  ]
1068
1099
  }
1069
1100
  },
1070
- "/api/admin/operator-claims/unlink/:requestEventId/reject": {
1071
- "post": {
1072
- "summary": "── ROOT: reject an unlink request claim stays active. Same self-or-related marking discipline. ──",
1101
+ "/api/admin/email-subscriptions/:id/status": {
1102
+ "patch": {
1103
+ "summary": "2026-05-29: admin 标记申请处理状态(pendingcontacted→invited→done)— 不动 POST 提交逻辑",
1073
1104
  "tags": [
1074
1105
  "admin"
1075
1106
  ],
@@ -1080,9 +1111,9 @@
1080
1111
  ]
1081
1112
  }
1082
1113
  },
1083
- "/api/admin/operator-claims/unlink/requests": {
1114
+ "/api/admin/errors": {
1084
1115
  "get": {
1085
- "summary": "self_or_related flags each request the viewing root is a party to → the UI then REQUIRES honest marking. ──",
1116
+ "summary": "GET /api/admin/errors",
1086
1117
  "tags": [
1087
1118
  "admin"
1088
1119
  ],
@@ -1093,12 +1124,11 @@
1093
1124
  ]
1094
1125
  }
1095
1126
  },
1096
- "/api/admin/orders": {
1127
+ "/api/admin/errors/aggregate": {
1097
1128
  "get": {
1098
- "summary": "GET /api/admin/orders",
1129
+ "summary": "Tier 1 #5: 错误聚合 view(24h / 1h 趋势 + top by source + top messages + burst alert)",
1099
1130
  "tags": [
1100
- "admin",
1101
- "order"
1131
+ "admin"
1102
1132
  ],
1103
1133
  "security": [
1104
1134
  {
@@ -1107,9 +1137,9 @@
1107
1137
  ]
1108
1138
  }
1109
1139
  },
1110
- "/api/admin/payment-methods": {
1140
+ "/api/admin/events/recent": {
1111
1141
  "get": {
1112
- "summary": "─── Admin payment_methods CRUD(root admin only · 基础设施变更需根权限)─",
1142
+ "summary": "GET /api/admin/events/recent",
1113
1143
  "tags": [
1114
1144
  "admin"
1115
1145
  ],
@@ -1118,9 +1148,18 @@
1118
1148
  "bearerAuth": []
1119
1149
  }
1120
1150
  ]
1121
- },
1151
+ }
1152
+ },
1153
+ "/api/admin/events/stream": {
1154
+ "get": {
1155
+ "summary": "GET /api/admin/events/stream",
1156
+ "tags": [],
1157
+ "security": []
1158
+ }
1159
+ },
1160
+ "/api/admin/events/ticket": {
1122
1161
  "post": {
1123
- "summary": "POST /api/admin/payment-methods",
1162
+ "summary": "POST /api/admin/events/ticket",
1124
1163
  "tags": [
1125
1164
  "admin"
1126
1165
  ],
@@ -1131,9 +1170,9 @@
1131
1170
  ]
1132
1171
  }
1133
1172
  },
1134
- "/api/admin/payment-methods/:id": {
1135
- "delete": {
1136
- "summary": "DELETE /api/admin/payment-methods/:id",
1173
+ "/api/admin/export/:kind": {
1174
+ "get": {
1175
+ "summary": "GET /api/admin/export/:kind",
1137
1176
  "tags": [
1138
1177
  "admin"
1139
1178
  ],
@@ -1142,12 +1181,12 @@
1142
1181
  "bearerAuth": []
1143
1182
  }
1144
1183
  ]
1145
- },
1146
- "put": {
1147
- "summary": "PUT /api/admin/payment-methods/:id",
1148
- "tags": [
1149
- "admin"
1150
- ],
1184
+ }
1185
+ },
1186
+ "/api/admin/feedback": {
1187
+ "get": {
1188
+ "summary": "admin 列出工单",
1189
+ "tags": [],
1151
1190
  "security": [
1152
1191
  {
1153
1192
  "bearerAuth": []
@@ -1155,9 +1194,20 @@
1155
1194
  ]
1156
1195
  }
1157
1196
  },
1158
- "/api/admin/products": {
1197
+ "/api/admin/feedback/:id/reply": {
1198
+ "post": {
1199
+ "summary": "admin 回复 + 切状态",
1200
+ "tags": [],
1201
+ "security": [
1202
+ {
1203
+ "bearerAuth": []
1204
+ }
1205
+ ]
1206
+ }
1207
+ },
1208
+ "/api/admin/finance/monthly": {
1159
1209
  "get": {
1160
- "summary": "─── 商品 列表 + 强制下架 ───────────────────────────────",
1210
+ "summary": "GET /api/admin/finance/monthly",
1161
1211
  "tags": [
1162
1212
  "admin"
1163
1213
  ],
@@ -1168,9 +1218,9 @@
1168
1218
  ]
1169
1219
  }
1170
1220
  },
1171
- "/api/admin/products/:id/force-delist": {
1221
+ "/api/admin/governance/activate": {
1172
1222
  "post": {
1173
- "summary": "POST /api/admin/products/:id/force-delist",
1223
+ "summary": "body: { application_id, webauthn_token, note? }",
1174
1224
  "tags": [
1175
1225
  "admin"
1176
1226
  ],
@@ -1181,9 +1231,9 @@
1181
1231
  ]
1182
1232
  }
1183
1233
  },
1184
- "/api/admin/protocol-kpi": {
1234
+ "/api/admin/governance/appeals": {
1185
1235
  "get": {
1186
- "summary": "GET /api/admin/protocol-kpi",
1236
+ "summary": "GET /api/admin/governance/appeals — maintainer 看待裁决申诉",
1187
1237
  "tags": [
1188
1238
  "admin"
1189
1239
  ],
@@ -1194,9 +1244,9 @@
1194
1244
  ]
1195
1245
  }
1196
1246
  },
1197
- "/api/admin/protocol-params": {
1247
+ "/api/admin/governance/application/:id": {
1198
1248
  "get": {
1199
- "summary": "GET /api/admin/protocol-params",
1249
+ "summary": "GET /api/admin/governance/application/:id — 详情(含 expected_verdict 用于对比 — 仅 maintainer 看)",
1200
1250
  "tags": [
1201
1251
  "admin"
1202
1252
  ],
@@ -1207,9 +1257,9 @@
1207
1257
  ]
1208
1258
  }
1209
1259
  },
1210
- "/api/admin/protocol-params/:key": {
1211
- "patch": {
1212
- "summary": "2026-06-03 #1095: + constitutional only-increase 守护",
1260
+ "/api/admin/governance/applications": {
1261
+ "get": {
1262
+ "summary": "GET /api/admin/governance/applications 列出 pending_onboarding(可筛 quiz_passed + has_case_review)",
1213
1263
  "tags": [
1214
1264
  "admin"
1215
1265
  ],
@@ -1220,9 +1270,9 @@
1220
1270
  ]
1221
1271
  }
1222
1272
  },
1223
- "/api/admin/protocol-params/:key/history": {
1273
+ "/api/admin/governance/auto-deactivations": {
1224
1274
  "get": {
1225
- "summary": "A-3: 变更历史",
1275
+ "summary": "spec §6.2 公示触发原因(透明 — 元规则 #1)",
1226
1276
  "tags": [
1227
1277
  "admin"
1228
1278
  ],
@@ -1233,9 +1283,9 @@
1233
1283
  ]
1234
1284
  }
1235
1285
  },
1236
- "/api/admin/protocol-params/:key/reset": {
1286
+ "/api/admin/governance/resolve-appeal": {
1237
1287
  "post": {
1238
- "summary": "POST /api/admin/protocol-params/:key/reset",
1288
+ "summary": "accept → 恢复 active(spec §7.2) ;reject → 维持 inactive,公开理由",
1239
1289
  "tags": [
1240
1290
  "admin"
1241
1291
  ],
@@ -1246,9 +1296,9 @@
1246
1296
  ]
1247
1297
  }
1248
1298
  },
1249
- "/api/admin/public-ideas": {
1250
- "get": {
1251
- "summary": "─── admin ─────────────────────────────────────────────",
1299
+ "/api/admin/governance/run-auto-deactivate": {
1300
+ "post": {
1301
+ "summary": "Useful for ops + testing. The scheduled cron also runs every N hours.",
1252
1302
  "tags": [
1253
1303
  "admin"
1254
1304
  ],
@@ -1259,9 +1309,9 @@
1259
1309
  ]
1260
1310
  }
1261
1311
  },
1262
- "/api/admin/public-ideas/:id": {
1263
- "patch": {
1264
- "summary": "PATCH /api/admin/public-ideas/:id",
1312
+ "/api/admin/health": {
1313
+ "get": {
1314
+ "summary": "GET /api/admin/health",
1265
1315
  "tags": [
1266
1316
  "admin"
1267
1317
  ],
@@ -1272,9 +1322,16 @@
1272
1322
  ]
1273
1323
  }
1274
1324
  },
1275
- "/api/admin/quota-applications": {
1325
+ "/api/admin/hot-wallet": {
1276
1326
  "get": {
1277
- "summary": "Admin",
1327
+ "summary": "Legacy x-admin-key 入口:仅余额",
1328
+ "tags": [],
1329
+ "security": []
1330
+ }
1331
+ },
1332
+ "/api/admin/hot-wallet/status": {
1333
+ "get": {
1334
+ "summary": "P2-5: protocol 权限(区域 admin 看不到全局热钱包)",
1278
1335
  "tags": [
1279
1336
  "admin"
1280
1337
  ],
@@ -1285,9 +1342,9 @@
1285
1342
  ]
1286
1343
  }
1287
1344
  },
1288
- "/api/admin/quota-applications/:id/approve": {
1345
+ "/api/admin/kyc/:user_id/approve": {
1289
1346
  "post": {
1290
- "summary": "POST /api/admin/quota-applications/:id/approve",
1347
+ "summary": "POST /api/admin/kyc/:user_id/approve",
1291
1348
  "tags": [
1292
1349
  "admin"
1293
1350
  ],
@@ -1298,9 +1355,9 @@
1298
1355
  ]
1299
1356
  }
1300
1357
  },
1301
- "/api/admin/quota-applications/:id/reject": {
1358
+ "/api/admin/kyc/:user_id/reject": {
1302
1359
  "post": {
1303
- "summary": "POST /api/admin/quota-applications/:id/reject",
1360
+ "summary": "POST /api/admin/kyc/:user_id/reject",
1304
1361
  "tags": [
1305
1362
  "admin"
1306
1363
  ],
@@ -1311,9 +1368,9 @@
1311
1368
  ]
1312
1369
  }
1313
1370
  },
1314
- "/api/admin/quota-requests": {
1371
+ "/api/admin/kyc/pending": {
1315
1372
  "get": {
1316
- "summary": "list quota requests (optional ?status=)",
1373
+ "summary": "─── KYC ──────────────────────────────────────────────────────",
1317
1374
  "tags": [
1318
1375
  "admin"
1319
1376
  ],
@@ -1324,9 +1381,9 @@
1324
1381
  ]
1325
1382
  }
1326
1383
  },
1327
- "/api/admin/quota-requests/:id": {
1384
+ "/api/admin/operator-claims": {
1328
1385
  "get": {
1329
- "summary": "detail of one request + the requester's live 24h create usage (reviewer context)",
1386
+ "summary": "── ROOT: review queue (all claims, optional ?status=) ──",
1330
1387
  "tags": [
1331
1388
  "admin"
1332
1389
  ],
@@ -1335,11 +1392,9 @@
1335
1392
  "bearerAuth": []
1336
1393
  }
1337
1394
  ]
1338
- }
1339
- },
1340
- "/api/admin/quota-requests/:id/approve": {
1395
+ },
1341
1396
  "post": {
1342
- "summary": "approve time-boxed counted grant (self-approval rejected in the store)",
1397
+ "summary": "── admin proposes linking THEIR OWN seat to a contributor account ──",
1343
1398
  "tags": [
1344
1399
  "admin"
1345
1400
  ],
@@ -1350,9 +1405,9 @@
1350
1405
  ]
1351
1406
  }
1352
1407
  },
1353
- "/api/admin/quota-requests/:id/reject": {
1408
+ "/api/admin/operator-claims/:approvedEventId/revoke": {
1354
1409
  "post": {
1355
- "summary": "reject (self-rejection also blocked by the store's SELF_DECISION guard)",
1410
+ "summary": "── ROOT: revoke an APPROVED (active) claim ──",
1356
1411
  "tags": [
1357
1412
  "admin"
1358
1413
  ],
@@ -1363,9 +1418,9 @@
1363
1418
  ]
1364
1419
  }
1365
1420
  },
1366
- "/api/admin/quota-requests/:id/revoke": {
1367
- "post": {
1368
- "summary": "revoke an already-approved grant (root)",
1421
+ "/api/admin/operator-claims/:claimedEventId": {
1422
+ "get": {
1423
+ "summary": "── ROOT: claim detail ──",
1369
1424
  "tags": [
1370
1425
  "admin"
1371
1426
  ],
@@ -1376,9 +1431,9 @@
1376
1431
  ]
1377
1432
  }
1378
1433
  },
1379
- "/api/admin/region-payment-methods": {
1380
- "get": {
1381
- "summary": "─── region_payment_methods CRUD ──────────────────────────",
1434
+ "/api/admin/operator-claims/:claimedEventId/approve": {
1435
+ "post": {
1436
+ "summary": "── ROOT: approve a proposed-or-confirmed claim ──",
1382
1437
  "tags": [
1383
1438
  "admin"
1384
1439
  ],
@@ -1387,9 +1442,11 @@
1387
1442
  "bearerAuth": []
1388
1443
  }
1389
1444
  ]
1390
- },
1445
+ }
1446
+ },
1447
+ "/api/admin/operator-claims/:claimedEventId/reject": {
1391
1448
  "post": {
1392
- "summary": "POST /api/admin/region-payment-methods",
1449
+ "summary": "── ROOT: reject a still-proposed/confirmed claim ──",
1393
1450
  "tags": [
1394
1451
  "admin"
1395
1452
  ],
@@ -1400,9 +1457,9 @@
1400
1457
  ]
1401
1458
  }
1402
1459
  },
1403
- "/api/admin/region-payment-methods/:id": {
1404
- "delete": {
1405
- "summary": "DELETE /api/admin/region-payment-methods/:id",
1460
+ "/api/admin/operator-claims/me": {
1461
+ "get": {
1462
+ "summary": "admin-seat owner can request/track unlink on their own active claims) ──",
1406
1463
  "tags": [
1407
1464
  "admin"
1408
1465
  ],
@@ -1411,9 +1468,11 @@
1411
1468
  "bearerAuth": []
1412
1469
  }
1413
1470
  ]
1414
- },
1415
- "put": {
1416
- "summary": "PUT /api/admin/region-payment-methods/:id",
1471
+ }
1472
+ },
1473
+ "/api/admin/operator-claims/unlink/:requestEventId/approve": {
1474
+ "post": {
1475
+ "summary": "relationship/request, approval_kind + conflict_disclosure are required (governance honesty). ──",
1417
1476
  "tags": [
1418
1477
  "admin"
1419
1478
  ],
@@ -1424,10 +1483,12 @@
1424
1483
  ]
1425
1484
  }
1426
1485
  },
1427
- "/api/admin/reputation/decay": {
1486
+ "/api/admin/operator-claims/unlink/:requestEventId/reject": {
1428
1487
  "post": {
1429
- "summary": "POST /api/admin/reputation/decay",
1430
- "tags": [],
1488
+ "summary": "── ROOT: reject an unlink request → claim stays active. Same self-or-related marking discipline. ──",
1489
+ "tags": [
1490
+ "admin"
1491
+ ],
1431
1492
  "security": [
1432
1493
  {
1433
1494
  "bearerAuth": []
@@ -1435,9 +1496,9 @@
1435
1496
  ]
1436
1497
  }
1437
1498
  },
1438
- "/api/admin/rewards-health": {
1499
+ "/api/admin/operator-claims/unlink/requests": {
1439
1500
  "get": {
1440
- "summary": "以及\"在旧 major consent 上仍 opted-in\"= 下次 auto_downgrade cron 的降级候选。",
1501
+ "summary": "self_or_related flags each request the viewing root is a party to → the UI then REQUIRES honest marking. ──",
1441
1502
  "tags": [
1442
1503
  "admin"
1443
1504
  ],
@@ -1448,11 +1509,12 @@
1448
1509
  ]
1449
1510
  }
1450
1511
  },
1451
- "/api/admin/risk/suspend/:user_id": {
1452
- "post": {
1453
- "summary": "POST /api/admin/risk/suspend/:user_id",
1512
+ "/api/admin/orders": {
1513
+ "get": {
1514
+ "summary": "GET /api/admin/orders",
1454
1515
  "tags": [
1455
- "admin"
1516
+ "admin",
1517
+ "order"
1456
1518
  ],
1457
1519
  "security": [
1458
1520
  {
@@ -1461,9 +1523,9 @@
1461
1523
  ]
1462
1524
  }
1463
1525
  },
1464
- "/api/admin/risk/suspicious": {
1526
+ "/api/admin/payment-methods": {
1465
1527
  "get": {
1466
- "summary": "─── D-1 风控告警 ────────────────────────────────────────────",
1528
+ "summary": "─── Admin payment_methods CRUD(root admin only · 基础设施变更需根权限)─",
1467
1529
  "tags": [
1468
1530
  "admin"
1469
1531
  ],
@@ -1472,11 +1534,9 @@
1472
1534
  "bearerAuth": []
1473
1535
  }
1474
1536
  ]
1475
- }
1476
- },
1477
- "/api/admin/risk/unsuspend/:user_id": {
1537
+ },
1478
1538
  "post": {
1479
- "summary": "POST /api/admin/risk/unsuspend/:user_id",
1539
+ "summary": "POST /api/admin/payment-methods",
1480
1540
  "tags": [
1481
1541
  "admin"
1482
1542
  ],
@@ -1487,9 +1547,9 @@
1487
1547
  ]
1488
1548
  }
1489
1549
  },
1490
- "/api/admin/skill-market/:id/audit": {
1491
- "post": {
1492
- "summary": "─── Admin:审核 ────────────────────────────────────────────",
1550
+ "/api/admin/payment-methods/:id": {
1551
+ "delete": {
1552
+ "summary": "DELETE /api/admin/payment-methods/:id",
1493
1553
  "tags": [
1494
1554
  "admin"
1495
1555
  ],
@@ -1498,11 +1558,9 @@
1498
1558
  "bearerAuth": []
1499
1559
  }
1500
1560
  ]
1501
- }
1502
- },
1503
- "/api/admin/skill-market/pending": {
1504
- "get": {
1505
- "summary": "─── Admin:待审列表 ────────────────────────────────────────",
1561
+ },
1562
+ "put": {
1563
+ "summary": "PUT /api/admin/payment-methods/:id",
1506
1564
  "tags": [
1507
1565
  "admin"
1508
1566
  ],
@@ -1513,9 +1571,9 @@
1513
1571
  ]
1514
1572
  }
1515
1573
  },
1516
- "/api/admin/task-proposals": {
1574
+ "/api/admin/platform-receive-accounts": {
1517
1575
  "get": {
1518
- "summary": "admin list (maintainer only)",
1576
+ "summary": "── list(ROOT 读;含 inactive + qr_data_uri)──",
1519
1577
  "tags": [
1520
1578
  "admin"
1521
1579
  ],
@@ -1524,11 +1582,9 @@
1524
1582
  "bearerAuth": []
1525
1583
  }
1526
1584
  ]
1527
- }
1528
- },
1529
- "/api/admin/task-proposals/:id/ai-assist": {
1585
+ },
1530
1586
  "post": {
1531
- "summary": "NEVER a decision: no auto-publish / auto-reject / hide / reward. A human admin must act explicitly.",
1587
+ "summary": "── add(ROOT + Passkey)──",
1532
1588
  "tags": [
1533
1589
  "admin"
1534
1590
  ],
@@ -1539,9 +1595,9 @@
1539
1595
  ]
1540
1596
  }
1541
1597
  },
1542
- "/api/admin/task-proposals/:id/ai-suggestions": {
1543
- "get": {
1544
- "summary": "stored AI suggestions (evidence) for a proposal",
1598
+ "/api/admin/platform-receive-accounts/:id": {
1599
+ "delete": {
1600
+ "summary": "── deactivate(ROOT + Passkey + 存在性)──",
1545
1601
  "tags": [
1546
1602
  "admin"
1547
1603
  ],
@@ -1550,11 +1606,9 @@
1550
1606
  "bearerAuth": []
1551
1607
  }
1552
1608
  ]
1553
- }
1554
- },
1555
- "/api/admin/task-proposals/:id/create-task-draft": {
1556
- "post": {
1557
- "summary": "No auto-publish (draft is internal/unclaimable until an explicit publish); no reward/credit side effect.",
1609
+ },
1610
+ "put": {
1611
+ "summary": "── update(ROOT + Passkey + 存在性)──",
1558
1612
  "tags": [
1559
1613
  "admin"
1560
1614
  ],
@@ -1565,9 +1619,9 @@
1565
1619
  ]
1566
1620
  }
1567
1621
  },
1568
- "/api/admin/task-proposals/:id/review": {
1569
- "post": {
1570
- "summary": "admin review (maintainer only): needs_info | rejected | converted — no build_task is created here.",
1622
+ "/api/admin/products": {
1623
+ "get": {
1624
+ "summary": "─── 商品 列表 + 强制下架 ───────────────────────────────",
1571
1625
  "tags": [
1572
1626
  "admin"
1573
1627
  ],
@@ -1578,9 +1632,9 @@
1578
1632
  ]
1579
1633
  }
1580
1634
  },
1581
- "/api/admin/tokenomics": {
1582
- "get": {
1583
- "summary": "Tokenomics 详细数据 + Tier 配置 + 高额榜",
1635
+ "/api/admin/products/:id/force-delist": {
1636
+ "post": {
1637
+ "summary": "POST /api/admin/products/:id/force-delist",
1584
1638
  "tags": [
1585
1639
  "admin"
1586
1640
  ],
@@ -1591,9 +1645,9 @@
1591
1645
  ]
1592
1646
  }
1593
1647
  },
1594
- "/api/admin/tokenomics/require-ref/toggle": {
1595
- "post": {
1596
- "summary": "注册必须 ref 开关",
1648
+ "/api/admin/protocol-kpi": {
1649
+ "get": {
1650
+ "summary": "GET /api/admin/protocol-kpi",
1597
1651
  "tags": [
1598
1652
  "admin"
1599
1653
  ],
@@ -1604,9 +1658,9 @@
1604
1658
  ]
1605
1659
  }
1606
1660
  },
1607
- "/api/admin/trial/run-eval": {
1608
- "post": {
1609
- "summary": "Admin 手动触发测评评估(测试 + 紧急 + 立即生效)",
1661
+ "/api/admin/protocol-params": {
1662
+ "get": {
1663
+ "summary": "GET /api/admin/protocol-params",
1610
1664
  "tags": [
1611
1665
  "admin"
1612
1666
  ],
@@ -1617,16 +1671,9 @@
1617
1671
  ]
1618
1672
  }
1619
1673
  },
1620
- "/api/admin/usage": {
1621
- "get": {
1622
- "summary": "GET /api/admin/usage",
1623
- "tags": [],
1624
- "security": []
1625
- }
1626
- },
1627
- "/api/admin/users": {
1628
- "get": {
1629
- "summary": "GET /api/admin/users",
1674
+ "/api/admin/protocol-params/:key": {
1675
+ "patch": {
1676
+ "summary": "2026-06-03 #1095: + constitutional only-increase 守护",
1630
1677
  "tags": [
1631
1678
  "admin"
1632
1679
  ],
@@ -1637,9 +1684,9 @@
1637
1684
  ]
1638
1685
  }
1639
1686
  },
1640
- "/api/admin/users/:id/force-delist-all": {
1641
- "post": {
1642
- "summary": "POST /api/admin/users/:id/force-delist-all",
1687
+ "/api/admin/protocol-params/:key/history": {
1688
+ "get": {
1689
+ "summary": "A-3: 变更历史",
1643
1690
  "tags": [
1644
1691
  "admin"
1645
1692
  ],
@@ -1650,9 +1697,9 @@
1650
1697
  ]
1651
1698
  }
1652
1699
  },
1653
- "/api/admin/users/:id/grant-role": {
1700
+ "/api/admin/protocol-params/:key/reset": {
1654
1701
  "post": {
1655
- "summary": "P0.1: admin 角色提权必须 root;其他角色需 users + scope",
1702
+ "summary": "POST /api/admin/protocol-params/:key/reset",
1656
1703
  "tags": [
1657
1704
  "admin"
1658
1705
  ],
@@ -1663,9 +1710,9 @@
1663
1710
  ]
1664
1711
  }
1665
1712
  },
1666
- "/api/admin/users/:id/l1-share-override": {
1667
- "post": {
1668
- "summary": "L1 分享权限 override:0 auto / 1 强允 / -1 强禁",
1713
+ "/api/admin/public-ideas": {
1714
+ "get": {
1715
+ "summary": "─── admin ─────────────────────────────────────────────",
1669
1716
  "tags": [
1670
1717
  "admin"
1671
1718
  ],
@@ -1676,9 +1723,9 @@
1676
1723
  ]
1677
1724
  }
1678
1725
  },
1679
- "/api/admin/users/:id/pause-listing": {
1680
- "post": {
1681
- "summary": "POST /api/admin/users/:id/pause-listing",
1726
+ "/api/admin/public-ideas/:id": {
1727
+ "patch": {
1728
+ "summary": "PATCH /api/admin/public-ideas/:id",
1682
1729
  "tags": [
1683
1730
  "admin"
1684
1731
  ],
@@ -1689,9 +1736,9 @@
1689
1736
  ]
1690
1737
  }
1691
1738
  },
1692
- "/api/admin/users/:id/profile": {
1739
+ "/api/admin/quota-applications": {
1693
1740
  "get": {
1694
- "summary": "完整档案聚合",
1741
+ "summary": "Admin",
1695
1742
  "tags": [
1696
1743
  "admin"
1697
1744
  ],
@@ -1702,9 +1749,9 @@
1702
1749
  ]
1703
1750
  }
1704
1751
  },
1705
- "/api/admin/users/:id/reset-failed-attempts": {
1752
+ "/api/admin/quota-applications/:id/approve": {
1706
1753
  "post": {
1707
- "summary": "解除账号登录锁定:清零失败次数 + 解锁",
1754
+ "summary": "POST /api/admin/quota-applications/:id/approve",
1708
1755
  "tags": [
1709
1756
  "admin"
1710
1757
  ],
@@ -1715,9 +1762,9 @@
1715
1762
  ]
1716
1763
  }
1717
1764
  },
1718
- "/api/admin/users/:id/resume-listing": {
1765
+ "/api/admin/quota-applications/:id/reject": {
1719
1766
  "post": {
1720
- "summary": "POST /api/admin/users/:id/resume-listing",
1767
+ "summary": "POST /api/admin/quota-applications/:id/reject",
1721
1768
  "tags": [
1722
1769
  "admin"
1723
1770
  ],
@@ -1728,9 +1775,9 @@
1728
1775
  ]
1729
1776
  }
1730
1777
  },
1731
- "/api/admin/users/:id/revoke-role": {
1732
- "post": {
1733
- "summary": "P0.3: revoke admin root only",
1778
+ "/api/admin/quota-requests": {
1779
+ "get": {
1780
+ "summary": "list quota requests (optional ?status=)",
1734
1781
  "tags": [
1735
1782
  "admin"
1736
1783
  ],
@@ -1741,9 +1788,9 @@
1741
1788
  ]
1742
1789
  }
1743
1790
  },
1744
- "/api/admin/users/:id/set-product-quota": {
1745
- "post": {
1746
- "summary": "POST /api/admin/users/:id/set-product-quota",
1791
+ "/api/admin/quota-requests/:id": {
1792
+ "get": {
1793
+ "summary": "detail of one request + the requester's live 24h create usage (reviewer context)",
1747
1794
  "tags": [
1748
1795
  "admin"
1749
1796
  ],
@@ -1754,16 +1801,9 @@
1754
1801
  ]
1755
1802
  }
1756
1803
  },
1757
- "/api/admin/users/:id/set-roles": {
1758
- "post": {
1759
- "summary": "P0.2: preview diff,含 admin 变更 → root only",
1760
- "tags": [],
1761
- "security": []
1762
- }
1763
- },
1764
- "/api/admin/users/:id/suspend": {
1804
+ "/api/admin/quota-requests/:id/approve": {
1765
1805
  "post": {
1766
- "summary": "P0.4: users + scope;suspend admin root only",
1806
+ "summary": "approve time-boxed counted grant (self-approval rejected in the store)",
1767
1807
  "tags": [
1768
1808
  "admin"
1769
1809
  ],
@@ -1774,9 +1814,9 @@
1774
1814
  ]
1775
1815
  }
1776
1816
  },
1777
- "/api/admin/users/:id/timeline": {
1778
- "get": {
1779
- "summary": "Wave F-3: 完整事件流",
1817
+ "/api/admin/quota-requests/:id/reject": {
1818
+ "post": {
1819
+ "summary": "reject (self-rejection also blocked by the store's SELF_DECISION guard)",
1780
1820
  "tags": [
1781
1821
  "admin"
1782
1822
  ],
@@ -1787,9 +1827,9 @@
1787
1827
  ]
1788
1828
  }
1789
1829
  },
1790
- "/api/admin/users/:id/unsuspend": {
1830
+ "/api/admin/quota-requests/:id/revoke": {
1791
1831
  "post": {
1792
- "summary": "POST /api/admin/users/:id/unsuspend",
1832
+ "summary": "revoke an already-approved grant (root)",
1793
1833
  "tags": [
1794
1834
  "admin"
1795
1835
  ],
@@ -1800,9 +1840,20 @@
1800
1840
  ]
1801
1841
  }
1802
1842
  },
1803
- "/api/admin/users/batch-action": {
1843
+ "/api/admin/region-payment-methods": {
1844
+ "get": {
1845
+ "summary": "─── region_payment_methods CRUD ──────────────────────────",
1846
+ "tags": [
1847
+ "admin"
1848
+ ],
1849
+ "security": [
1850
+ {
1851
+ "bearerAuth": []
1852
+ }
1853
+ ]
1854
+ },
1804
1855
  "post": {
1805
- "summary": "POST /api/admin/users/batch-action",
1856
+ "summary": "POST /api/admin/region-payment-methods",
1806
1857
  "tags": [
1807
1858
  "admin"
1808
1859
  ],
@@ -1813,9 +1864,9 @@
1813
1864
  ]
1814
1865
  }
1815
1866
  },
1816
- "/api/admin/users/lookup": {
1817
- "get": {
1818
- "summary": "P1-1: 按 handle / id 任意角色查找",
1867
+ "/api/admin/region-payment-methods/:id": {
1868
+ "delete": {
1869
+ "summary": "DELETE /api/admin/region-payment-methods/:id",
1819
1870
  "tags": [
1820
1871
  "admin"
1821
1872
  ],
@@ -1824,11 +1875,9 @@
1824
1875
  "bearerAuth": []
1825
1876
  }
1826
1877
  ]
1827
- }
1828
- },
1829
- "/api/admin/verifier-appeals": {
1830
- "get": {
1831
- "summary": "GET /api/admin/verifier-appeals",
1878
+ },
1879
+ "put": {
1880
+ "summary": "PUT /api/admin/region-payment-methods/:id",
1832
1881
  "tags": [
1833
1882
  "admin"
1834
1883
  ],
@@ -1839,9 +1888,20 @@
1839
1888
  ]
1840
1889
  }
1841
1890
  },
1842
- "/api/admin/verifier-appeals/:id/decide": {
1891
+ "/api/admin/reputation/decay": {
1843
1892
  "post": {
1844
- "summary": "POST /api/admin/verifier-appeals/:id/decide",
1893
+ "summary": "POST /api/admin/reputation/decay",
1894
+ "tags": [],
1895
+ "security": [
1896
+ {
1897
+ "bearerAuth": []
1898
+ }
1899
+ ]
1900
+ }
1901
+ },
1902
+ "/api/admin/rewards-health": {
1903
+ "get": {
1904
+ "summary": "以及\"在旧 major consent 上仍 opted-in\"= 下次 auto_downgrade cron 的降级候选。",
1845
1905
  "tags": [
1846
1906
  "admin"
1847
1907
  ],
@@ -1852,9 +1912,9 @@
1852
1912
  ]
1853
1913
  }
1854
1914
  },
1855
- "/api/admin/verifier-applications": {
1856
- "get": {
1857
- "summary": "GET /api/admin/verifier-applications",
1915
+ "/api/admin/risk/suspend/:user_id": {
1916
+ "post": {
1917
+ "summary": "POST /api/admin/risk/suspend/:user_id",
1858
1918
  "tags": [
1859
1919
  "admin"
1860
1920
  ],
@@ -1865,9 +1925,9 @@
1865
1925
  ]
1866
1926
  }
1867
1927
  },
1868
- "/api/admin/verifier-applications/:id/approve": {
1869
- "post": {
1870
- "summary": "POST /api/admin/verifier-applications/:id/approve",
1928
+ "/api/admin/risk/suspicious": {
1929
+ "get": {
1930
+ "summary": "─── D-1 风控告警 ────────────────────────────────────────────",
1871
1931
  "tags": [
1872
1932
  "admin"
1873
1933
  ],
@@ -1878,9 +1938,9 @@
1878
1938
  ]
1879
1939
  }
1880
1940
  },
1881
- "/api/admin/verifier-applications/:id/reject": {
1941
+ "/api/admin/risk/unsuspend/:user_id": {
1882
1942
  "post": {
1883
- "summary": "POST /api/admin/verifier-applications/:id/reject",
1943
+ "summary": "POST /api/admin/risk/unsuspend/:user_id",
1884
1944
  "tags": [
1885
1945
  "admin"
1886
1946
  ],
@@ -1891,9 +1951,9 @@
1891
1951
  ]
1892
1952
  }
1893
1953
  },
1894
- "/api/admin/verifier-whitelist": {
1895
- "get": {
1896
- "summary": "GET /api/admin/verifier-whitelist",
1954
+ "/api/admin/skill-market/:id/audit": {
1955
+ "post": {
1956
+ "summary": "─── Admin:审核 ────────────────────────────────────────────",
1897
1957
  "tags": [
1898
1958
  "admin"
1899
1959
  ],
@@ -1902,9 +1962,11 @@
1902
1962
  "bearerAuth": []
1903
1963
  }
1904
1964
  ]
1905
- },
1906
- "post": {
1907
- "summary": "POST /api/admin/verifier-whitelist",
1965
+ }
1966
+ },
1967
+ "/api/admin/skill-market/pending": {
1968
+ "get": {
1969
+ "summary": "─── Admin:待审列表 ────────────────────────────────────────",
1908
1970
  "tags": [
1909
1971
  "admin"
1910
1972
  ],
@@ -1915,9 +1977,9 @@
1915
1977
  ]
1916
1978
  }
1917
1979
  },
1918
- "/api/admin/verifier-whitelist/:userId": {
1919
- "delete": {
1920
- "summary": "DELETE /api/admin/verifier-whitelist/:userId",
1980
+ "/api/admin/task-proposals": {
1981
+ "get": {
1982
+ "summary": "admin list (maintainer only)",
1921
1983
  "tags": [
1922
1984
  "admin"
1923
1985
  ],
@@ -1928,9 +1990,9 @@
1928
1990
  ]
1929
1991
  }
1930
1992
  },
1931
- "/api/admin/verifier-whitelist/:userId/promote": {
1993
+ "/api/admin/task-proposals/:id/ai-assist": {
1932
1994
  "post": {
1933
- "summary": "POST /api/admin/verifier-whitelist/:userId/promote",
1995
+ "summary": "NEVER a decision: no auto-publish / auto-reject / hide / reward. A human admin must act explicitly.",
1934
1996
  "tags": [
1935
1997
  "admin"
1936
1998
  ],
@@ -1941,9 +2003,9 @@
1941
2003
  ]
1942
2004
  }
1943
2005
  },
1944
- "/api/admin/verifier-whitelist/:userId/revoke": {
1945
- "post": {
1946
- "summary": "POST /api/admin/verifier-whitelist/:userId/revoke",
2006
+ "/api/admin/task-proposals/:id/ai-suggestions": {
2007
+ "get": {
2008
+ "summary": "stored AI suggestions (evidence) for a proposal",
1947
2009
  "tags": [
1948
2010
  "admin"
1949
2011
  ],
@@ -1954,9 +2016,9 @@
1954
2016
  ]
1955
2017
  }
1956
2018
  },
1957
- "/api/admin/verifier-whitelist/:userId/suspend": {
2019
+ "/api/admin/task-proposals/:id/create-task-draft": {
1958
2020
  "post": {
1959
- "summary": "POST /api/admin/verifier-whitelist/:userId/suspend",
2021
+ "summary": "No auto-publish (draft is internal/unclaimable until an explicit publish); no reward/credit side effect.",
1960
2022
  "tags": [
1961
2023
  "admin"
1962
2024
  ],
@@ -1967,9 +2029,9 @@
1967
2029
  ]
1968
2030
  }
1969
2031
  },
1970
- "/api/admin/verify-tasks": {
1971
- "get": {
1972
- "summary": "GET /api/admin/verify-tasks",
2032
+ "/api/admin/task-proposals/:id/review": {
2033
+ "post": {
2034
+ "summary": "admin review (maintainer only): needs_info | rejected | converted — no build_task is created here.",
1973
2035
  "tags": [
1974
2036
  "admin"
1975
2037
  ],
@@ -1980,9 +2042,9 @@
1980
2042
  ]
1981
2043
  }
1982
2044
  },
1983
- "/api/admin/wish-reports": {
2045
+ "/api/admin/tokenomics": {
1984
2046
  "get": {
1985
- "summary": "─── admin 慈善管理 ─────────────────────────────────────────",
2047
+ "summary": "Tokenomics 详细数据 + Tier 配置 + 高额榜",
1986
2048
  "tags": [
1987
2049
  "admin"
1988
2050
  ],
@@ -1993,9 +2055,9 @@
1993
2055
  ]
1994
2056
  }
1995
2057
  },
1996
- "/api/admin/wish-reports/:id": {
1997
- "patch": {
1998
- "summary": "PATCH /api/admin/wish-reports/:id",
2058
+ "/api/admin/tokenomics/require-ref/toggle": {
2059
+ "post": {
2060
+ "summary": "注册必须 ref 开关",
1999
2061
  "tags": [
2000
2062
  "admin"
2001
2063
  ],
@@ -2006,9 +2068,9 @@
2006
2068
  ]
2007
2069
  }
2008
2070
  },
2009
- "/api/admin/wishes/:id/takedown": {
2071
+ "/api/admin/trial/run-eval": {
2010
2072
  "post": {
2011
- "summary": "POST /api/admin/wishes/:id/takedown",
2073
+ "summary": "Admin 手动触发测评评估(测试 + 紧急 + 立即生效)",
2012
2074
  "tags": [
2013
2075
  "admin"
2014
2076
  ],
@@ -2019,91 +2081,45 @@
2019
2081
  ]
2020
2082
  }
2021
2083
  },
2022
- "/api/admin/withdrawals": {
2084
+ "/api/admin/usage": {
2023
2085
  "get": {
2024
- "summary": "GET /api/admin/withdrawals",
2025
- "tags": [],
2026
- "security": []
2027
- }
2028
- },
2029
- "/api/admin/withdrawals/:id/approve": {
2030
- "post": {
2031
- "summary": "POST /api/admin/withdrawals/:id/approve",
2086
+ "summary": "GET /api/admin/usage",
2032
2087
  "tags": [],
2033
2088
  "security": []
2034
2089
  }
2035
2090
  },
2036
- "/api/agent-buy": {
2037
- "post": {
2038
- "summary": "Agent 智能下单 — 外链/搜索词输入 → 自动比价 + 推荐 / 锁价",
2091
+ "/api/admin/users": {
2092
+ "get": {
2093
+ "summary": "GET /api/admin/users",
2039
2094
  "tags": [
2040
- "agent"
2095
+ "admin"
2041
2096
  ],
2042
2097
  "security": [
2043
2098
  {
2044
2099
  "bearerAuth": []
2045
2100
  }
2046
- ],
2047
- "requestBody": {
2048
- "type": "object",
2049
- "properties": {
2050
- "source_url": {
2051
- "type": "string",
2052
- "format": "uri",
2053
- "description": "外站链接(淘宝/京东/Amazon 等)"
2054
- },
2055
- "shipping_address": {
2056
- "type": "string"
2057
- },
2058
- "auto_buy": {
2059
- "type": "boolean",
2060
- "default": false,
2061
- "description": "true 时自动下单,false 时仅返回推荐"
2062
- }
2063
- }
2064
- },
2065
- "responses": {
2066
- "200": {
2067
- "type": "object",
2068
- "properties": {
2069
- "recommendation": {
2070
- "enum": [
2071
- "buy_webaz",
2072
- "buy_source",
2073
- "no_match"
2074
- ]
2075
- },
2076
- "best_product": {
2077
- "type": "object"
2078
- },
2079
- "webaz_products": {
2080
- "type": "array"
2081
- },
2082
- "order_id": {
2083
- "type": "string",
2084
- "description": "仅 auto_bought=true 时"
2085
- },
2086
- "auto_bought": {
2087
- "type": "boolean"
2088
- }
2089
- }
2090
- }
2091
- }
2101
+ ]
2092
2102
  }
2093
2103
  },
2094
- "/api/agent-grants": {
2095
- "get": {
2096
- "summary": "\"Connected agents\" UI shows so a human can spot stale/unused or busy agents before revoking.",
2097
- "tags": [],
2104
+ "/api/admin/users/:id/force-delist-all": {
2105
+ "post": {
2106
+ "summary": "POST /api/admin/users/:id/force-delist-all",
2107
+ "tags": [
2108
+ "admin"
2109
+ ],
2098
2110
  "security": [
2099
2111
  {
2100
2112
  "bearerAuth": []
2101
2113
  }
2102
2114
  ]
2103
- },
2115
+ }
2116
+ },
2117
+ "/api/admin/users/:id/grant-role": {
2104
2118
  "post": {
2105
- "summary": "── Issue a grant (human-authenticated). Safe scopes only; risk/never-delegable rejected. ──",
2106
- "tags": [],
2119
+ "summary": "P0.1: admin 角色提权必须 root;其他角色需 users + scope",
2120
+ "tags": [
2121
+ "admin"
2122
+ ],
2107
2123
  "security": [
2108
2124
  {
2109
2125
  "bearerAuth": []
@@ -2111,10 +2127,12 @@
2111
2127
  ]
2112
2128
  }
2113
2129
  },
2114
- "/api/agent-grants/:grant_id/revoke": {
2130
+ "/api/admin/users/:id/l1-share-override": {
2115
2131
  "post": {
2116
- "summary": "── Revoke (online, one-click). ──",
2117
- "tags": [],
2132
+ "summary": "L1 分享权限 override:0 auto / 1 强允 / -1 强禁",
2133
+ "tags": [
2134
+ "admin"
2135
+ ],
2118
2136
  "security": [
2119
2137
  {
2120
2138
  "bearerAuth": []
@@ -2122,11 +2140,464 @@
2122
2140
  ]
2123
2141
  }
2124
2142
  },
2125
- "/api/agent-grants/pair/:pairing_id/retrieve": {
2143
+ "/api/admin/users/:id/pause-listing": {
2126
2144
  "post": {
2127
- "summary": "(pair 4) Agent retrieves the credential ONCE via PKCE verifier — UNAUTHENTICATED (PKCE-gated).",
2128
- "tags": [],
2129
- "security": []
2145
+ "summary": "POST /api/admin/users/:id/pause-listing",
2146
+ "tags": [
2147
+ "admin"
2148
+ ],
2149
+ "security": [
2150
+ {
2151
+ "bearerAuth": []
2152
+ }
2153
+ ]
2154
+ }
2155
+ },
2156
+ "/api/admin/users/:id/profile": {
2157
+ "get": {
2158
+ "summary": "完整档案聚合",
2159
+ "tags": [
2160
+ "admin"
2161
+ ],
2162
+ "security": [
2163
+ {
2164
+ "bearerAuth": []
2165
+ }
2166
+ ]
2167
+ }
2168
+ },
2169
+ "/api/admin/users/:id/reset-failed-attempts": {
2170
+ "post": {
2171
+ "summary": "解除账号登录锁定:清零失败次数 + 解锁",
2172
+ "tags": [
2173
+ "admin"
2174
+ ],
2175
+ "security": [
2176
+ {
2177
+ "bearerAuth": []
2178
+ }
2179
+ ]
2180
+ }
2181
+ },
2182
+ "/api/admin/users/:id/resume-listing": {
2183
+ "post": {
2184
+ "summary": "POST /api/admin/users/:id/resume-listing",
2185
+ "tags": [
2186
+ "admin"
2187
+ ],
2188
+ "security": [
2189
+ {
2190
+ "bearerAuth": []
2191
+ }
2192
+ ]
2193
+ }
2194
+ },
2195
+ "/api/admin/users/:id/revoke-role": {
2196
+ "post": {
2197
+ "summary": "P0.3: revoke admin → root only",
2198
+ "tags": [
2199
+ "admin"
2200
+ ],
2201
+ "security": [
2202
+ {
2203
+ "bearerAuth": []
2204
+ }
2205
+ ]
2206
+ }
2207
+ },
2208
+ "/api/admin/users/:id/set-product-quota": {
2209
+ "post": {
2210
+ "summary": "POST /api/admin/users/:id/set-product-quota",
2211
+ "tags": [
2212
+ "admin"
2213
+ ],
2214
+ "security": [
2215
+ {
2216
+ "bearerAuth": []
2217
+ }
2218
+ ]
2219
+ }
2220
+ },
2221
+ "/api/admin/users/:id/set-roles": {
2222
+ "post": {
2223
+ "summary": "P0.2: preview diff,含 admin 变更 → root only",
2224
+ "tags": [],
2225
+ "security": []
2226
+ }
2227
+ },
2228
+ "/api/admin/users/:id/suspend": {
2229
+ "post": {
2230
+ "summary": "P0.4: users + scope;suspend admin → root only",
2231
+ "tags": [
2232
+ "admin"
2233
+ ],
2234
+ "security": [
2235
+ {
2236
+ "bearerAuth": []
2237
+ }
2238
+ ]
2239
+ }
2240
+ },
2241
+ "/api/admin/users/:id/timeline": {
2242
+ "get": {
2243
+ "summary": "Wave F-3: 完整事件流",
2244
+ "tags": [
2245
+ "admin"
2246
+ ],
2247
+ "security": [
2248
+ {
2249
+ "bearerAuth": []
2250
+ }
2251
+ ]
2252
+ }
2253
+ },
2254
+ "/api/admin/users/:id/unsuspend": {
2255
+ "post": {
2256
+ "summary": "POST /api/admin/users/:id/unsuspend",
2257
+ "tags": [
2258
+ "admin"
2259
+ ],
2260
+ "security": [
2261
+ {
2262
+ "bearerAuth": []
2263
+ }
2264
+ ]
2265
+ }
2266
+ },
2267
+ "/api/admin/users/batch-action": {
2268
+ "post": {
2269
+ "summary": "POST /api/admin/users/batch-action",
2270
+ "tags": [
2271
+ "admin"
2272
+ ],
2273
+ "security": [
2274
+ {
2275
+ "bearerAuth": []
2276
+ }
2277
+ ]
2278
+ }
2279
+ },
2280
+ "/api/admin/users/lookup": {
2281
+ "get": {
2282
+ "summary": "P1-1: 按 handle / id 任意角色查找",
2283
+ "tags": [
2284
+ "admin"
2285
+ ],
2286
+ "security": [
2287
+ {
2288
+ "bearerAuth": []
2289
+ }
2290
+ ]
2291
+ }
2292
+ },
2293
+ "/api/admin/verifier-appeals": {
2294
+ "get": {
2295
+ "summary": "GET /api/admin/verifier-appeals",
2296
+ "tags": [
2297
+ "admin"
2298
+ ],
2299
+ "security": [
2300
+ {
2301
+ "bearerAuth": []
2302
+ }
2303
+ ]
2304
+ }
2305
+ },
2306
+ "/api/admin/verifier-appeals/:id/decide": {
2307
+ "post": {
2308
+ "summary": "POST /api/admin/verifier-appeals/:id/decide",
2309
+ "tags": [
2310
+ "admin"
2311
+ ],
2312
+ "security": [
2313
+ {
2314
+ "bearerAuth": []
2315
+ }
2316
+ ]
2317
+ }
2318
+ },
2319
+ "/api/admin/verifier-applications": {
2320
+ "get": {
2321
+ "summary": "GET /api/admin/verifier-applications",
2322
+ "tags": [
2323
+ "admin"
2324
+ ],
2325
+ "security": [
2326
+ {
2327
+ "bearerAuth": []
2328
+ }
2329
+ ]
2330
+ }
2331
+ },
2332
+ "/api/admin/verifier-applications/:id/approve": {
2333
+ "post": {
2334
+ "summary": "POST /api/admin/verifier-applications/:id/approve",
2335
+ "tags": [
2336
+ "admin"
2337
+ ],
2338
+ "security": [
2339
+ {
2340
+ "bearerAuth": []
2341
+ }
2342
+ ]
2343
+ }
2344
+ },
2345
+ "/api/admin/verifier-applications/:id/reject": {
2346
+ "post": {
2347
+ "summary": "POST /api/admin/verifier-applications/:id/reject",
2348
+ "tags": [
2349
+ "admin"
2350
+ ],
2351
+ "security": [
2352
+ {
2353
+ "bearerAuth": []
2354
+ }
2355
+ ]
2356
+ }
2357
+ },
2358
+ "/api/admin/verifier-whitelist": {
2359
+ "get": {
2360
+ "summary": "GET /api/admin/verifier-whitelist",
2361
+ "tags": [
2362
+ "admin"
2363
+ ],
2364
+ "security": [
2365
+ {
2366
+ "bearerAuth": []
2367
+ }
2368
+ ]
2369
+ },
2370
+ "post": {
2371
+ "summary": "POST /api/admin/verifier-whitelist",
2372
+ "tags": [
2373
+ "admin"
2374
+ ],
2375
+ "security": [
2376
+ {
2377
+ "bearerAuth": []
2378
+ }
2379
+ ]
2380
+ }
2381
+ },
2382
+ "/api/admin/verifier-whitelist/:userId": {
2383
+ "delete": {
2384
+ "summary": "DELETE /api/admin/verifier-whitelist/:userId",
2385
+ "tags": [
2386
+ "admin"
2387
+ ],
2388
+ "security": [
2389
+ {
2390
+ "bearerAuth": []
2391
+ }
2392
+ ]
2393
+ }
2394
+ },
2395
+ "/api/admin/verifier-whitelist/:userId/promote": {
2396
+ "post": {
2397
+ "summary": "POST /api/admin/verifier-whitelist/:userId/promote",
2398
+ "tags": [
2399
+ "admin"
2400
+ ],
2401
+ "security": [
2402
+ {
2403
+ "bearerAuth": []
2404
+ }
2405
+ ]
2406
+ }
2407
+ },
2408
+ "/api/admin/verifier-whitelist/:userId/revoke": {
2409
+ "post": {
2410
+ "summary": "POST /api/admin/verifier-whitelist/:userId/revoke",
2411
+ "tags": [
2412
+ "admin"
2413
+ ],
2414
+ "security": [
2415
+ {
2416
+ "bearerAuth": []
2417
+ }
2418
+ ]
2419
+ }
2420
+ },
2421
+ "/api/admin/verifier-whitelist/:userId/suspend": {
2422
+ "post": {
2423
+ "summary": "POST /api/admin/verifier-whitelist/:userId/suspend",
2424
+ "tags": [
2425
+ "admin"
2426
+ ],
2427
+ "security": [
2428
+ {
2429
+ "bearerAuth": []
2430
+ }
2431
+ ]
2432
+ }
2433
+ },
2434
+ "/api/admin/verify-tasks": {
2435
+ "get": {
2436
+ "summary": "GET /api/admin/verify-tasks",
2437
+ "tags": [
2438
+ "admin"
2439
+ ],
2440
+ "security": [
2441
+ {
2442
+ "bearerAuth": []
2443
+ }
2444
+ ]
2445
+ }
2446
+ },
2447
+ "/api/admin/wish-reports": {
2448
+ "get": {
2449
+ "summary": "─── admin 慈善管理 ─────────────────────────────────────────",
2450
+ "tags": [
2451
+ "admin"
2452
+ ],
2453
+ "security": [
2454
+ {
2455
+ "bearerAuth": []
2456
+ }
2457
+ ]
2458
+ }
2459
+ },
2460
+ "/api/admin/wish-reports/:id": {
2461
+ "patch": {
2462
+ "summary": "PATCH /api/admin/wish-reports/:id",
2463
+ "tags": [
2464
+ "admin"
2465
+ ],
2466
+ "security": [
2467
+ {
2468
+ "bearerAuth": []
2469
+ }
2470
+ ]
2471
+ }
2472
+ },
2473
+ "/api/admin/wishes/:id/takedown": {
2474
+ "post": {
2475
+ "summary": "POST /api/admin/wishes/:id/takedown",
2476
+ "tags": [
2477
+ "admin"
2478
+ ],
2479
+ "security": [
2480
+ {
2481
+ "bearerAuth": []
2482
+ }
2483
+ ]
2484
+ }
2485
+ },
2486
+ "/api/admin/withdrawals": {
2487
+ "get": {
2488
+ "summary": "GET /api/admin/withdrawals",
2489
+ "tags": [],
2490
+ "security": []
2491
+ }
2492
+ },
2493
+ "/api/admin/withdrawals/:id/approve": {
2494
+ "post": {
2495
+ "summary": "POST /api/admin/withdrawals/:id/approve",
2496
+ "tags": [],
2497
+ "security": []
2498
+ }
2499
+ },
2500
+ "/api/agent-buy": {
2501
+ "post": {
2502
+ "summary": "Agent 智能下单 — 外链/搜索词输入 → 自动比价 + 推荐 / 锁价",
2503
+ "tags": [
2504
+ "agent"
2505
+ ],
2506
+ "security": [
2507
+ {
2508
+ "bearerAuth": []
2509
+ }
2510
+ ],
2511
+ "requestBody": {
2512
+ "type": "object",
2513
+ "properties": {
2514
+ "source_url": {
2515
+ "type": "string",
2516
+ "format": "uri",
2517
+ "description": "外站链接(淘宝/京东/Amazon 等)"
2518
+ },
2519
+ "shipping_address": {
2520
+ "type": "string"
2521
+ },
2522
+ "auto_buy": {
2523
+ "type": "boolean",
2524
+ "default": false,
2525
+ "description": "true 时自动下单,false 时仅返回推荐"
2526
+ }
2527
+ }
2528
+ },
2529
+ "responses": {
2530
+ "200": {
2531
+ "type": "object",
2532
+ "properties": {
2533
+ "recommendation": {
2534
+ "enum": [
2535
+ "buy_webaz",
2536
+ "buy_source",
2537
+ "no_match"
2538
+ ]
2539
+ },
2540
+ "best_product": {
2541
+ "type": "object"
2542
+ },
2543
+ "webaz_products": {
2544
+ "type": "array"
2545
+ },
2546
+ "order_id": {
2547
+ "type": "string",
2548
+ "description": "仅 auto_bought=true 时"
2549
+ },
2550
+ "auto_bought": {
2551
+ "type": "boolean"
2552
+ }
2553
+ }
2554
+ }
2555
+ }
2556
+ }
2557
+ },
2558
+ "/api/agent-grants": {
2559
+ "get": {
2560
+ "summary": "\"Connected agents\" UI shows so a human can spot stale/unused or busy agents before revoking.",
2561
+ "tags": [],
2562
+ "security": [
2563
+ {
2564
+ "bearerAuth": []
2565
+ }
2566
+ ]
2567
+ },
2568
+ "post": {
2569
+ "summary": "agent delegation\"的安全叙事。零消费方(前端/MCP/测试均不用),故降级为不可用,统一走 pairing。",
2570
+ "tags": [],
2571
+ "security": [
2572
+ {
2573
+ "bearerAuth": []
2574
+ }
2575
+ ]
2576
+ }
2577
+ },
2578
+ "/api/agent-grants/:grant_id/revoke": {
2579
+ "post": {
2580
+ "summary": "── Revoke (online, one-click). ──",
2581
+ "tags": [],
2582
+ "security": [
2583
+ {
2584
+ "bearerAuth": []
2585
+ }
2586
+ ]
2587
+ }
2588
+ },
2589
+ "/api/agent-grants/my-permission-requests": {
2590
+ "get": {
2591
+ "summary": "grant_id: an agent sees ONLY its own requests, never the human's other agents'. Audited (fail-closed).",
2592
+ "tags": [],
2593
+ "security": []
2594
+ }
2595
+ },
2596
+ "/api/agent-grants/pair/:pairing_id/retrieve": {
2597
+ "post": {
2598
+ "summary": "(pair 4) Agent retrieves the credential ONCE via PKCE verifier — UNAUTHENTICATED (PKCE-gated).",
2599
+ "tags": [],
2600
+ "security": []
2130
2601
  }
2131
2602
  },
2132
2603
  "/api/agent-grants/pair/:user_code": {
@@ -2151,6 +2622,17 @@
2151
2622
  ]
2152
2623
  }
2153
2624
  },
2625
+ "/api/agent-grants/pair/:user_code/reject": {
2626
+ "post": {
2627
+ "summary": "拒绝是保护性动作,无需 Passkey(不签发任何凭证)。幂等:仅 pending 可拒。",
2628
+ "tags": [],
2629
+ "security": [
2630
+ {
2631
+ "bearerAuth": []
2632
+ }
2633
+ ]
2634
+ }
2635
+ },
2154
2636
  "/api/agent-grants/pair/start": {
2155
2637
  "post": {
2156
2638
  "summary": "(pair 1) Agent starts a pairing — UNAUTHENTICATED (agent has no credential yet). Safe scopes only.",
@@ -2158,6 +2640,51 @@
2158
2640
  "security": []
2159
2641
  }
2160
2642
  },
2643
+ "/api/agent-grants/permission-requests": {
2644
+ "get": {
2645
+ "summary": "GET list this human's PENDING permission requests (for #agent-approvals). Human-authed.",
2646
+ "tags": [],
2647
+ "security": [
2648
+ {
2649
+ "bearerAuth": []
2650
+ }
2651
+ ]
2652
+ },
2653
+ "post": {
2654
+ "summary": "NOT grantable (they need a per-action live Passkey, not a persistent grant) → structured reject.",
2655
+ "tags": [],
2656
+ "security": []
2657
+ }
2658
+ },
2659
+ "/api/agent-grants/permission-requests/:id/approve": {
2660
+ "post": {
2661
+ "summary": "POST approve — human-authed + live Passkey; expands the bound grant (union scopes + bundle + extend expiry). Audited.",
2662
+ "tags": [],
2663
+ "security": [
2664
+ {
2665
+ "bearerAuth": []
2666
+ }
2667
+ ]
2668
+ }
2669
+ },
2670
+ "/api/agent-grants/permission-requests/:id/reject": {
2671
+ "post": {
2672
+ "summary": "POST reject — human-authed. Terminal 'rejected'; nothing is granted.",
2673
+ "tags": [],
2674
+ "security": [
2675
+ {
2676
+ "bearerAuth": []
2677
+ }
2678
+ ]
2679
+ }
2680
+ },
2681
+ "/api/agent-grants/verify": {
2682
+ "get": {
2683
+ "summary": "Audited (acceptance #8: every grant use logs). Never returns the raw token/api_key.",
2684
+ "tags": [],
2685
+ "security": []
2686
+ }
2687
+ },
2161
2688
  "/api/agent-grants/whoami": {
2162
2689
  "get": {
2163
2690
  "summary": "end-to-end on a brand-new read-only endpoint that touches NO existing route and NO money path.",
@@ -2234,7 +2761,19 @@
2234
2761
  "get": {
2235
2762
  "summary": "GET /api/agent/negative-space",
2236
2763
  "tags": [],
2237
- "security": []
2764
+ "security": []
2765
+ }
2766
+ },
2767
+ "/api/agent/seller/products": {
2768
+ "get": {
2769
+ "summary": "The consumption (allow AND the permission_required deny) is audited by the middleware.",
2770
+ "tags": [],
2771
+ "security": [
2772
+ {
2773
+ "grantBearer": []
2774
+ }
2775
+ ],
2776
+ "x-webaz-grant-scope": "seller_products_read"
2238
2777
  }
2239
2778
  },
2240
2779
  "/api/agent/verifiability": {
@@ -2407,15 +2946,274 @@
2407
2946
  }
2408
2947
  }
2409
2948
  }
2410
- }
2949
+ }
2950
+ }
2951
+ },
2952
+ "/api/anchor/me": {
2953
+ "get": {
2954
+ "summary": "GET /api/anchor/me",
2955
+ "tags": [
2956
+ "anchor"
2957
+ ],
2958
+ "security": [
2959
+ {
2960
+ "bearerAuth": []
2961
+ }
2962
+ ]
2963
+ }
2964
+ },
2965
+ "/api/announcements/:id/read": {
2966
+ "post": {
2967
+ "summary": "POST /api/announcements/:id/read",
2968
+ "tags": [],
2969
+ "security": [
2970
+ {
2971
+ "bearerAuth": []
2972
+ }
2973
+ ]
2974
+ }
2975
+ },
2976
+ "/api/announcements/active": {
2977
+ "get": {
2978
+ "summary": "列出对当前用户可见的活跃公告(按角色 + 区域过滤)",
2979
+ "tags": [],
2980
+ "security": [
2981
+ {
2982
+ "bearerAuth": []
2983
+ }
2984
+ ]
2985
+ }
2986
+ },
2987
+ "/api/arbitrator/apply": {
2988
+ "post": {
2989
+ "summary": "POST /api/arbitrator/apply",
2990
+ "tags": [],
2991
+ "security": [
2992
+ {
2993
+ "bearerAuth": []
2994
+ }
2995
+ ]
2996
+ }
2997
+ },
2998
+ "/api/arbitrator/eligibility": {
2999
+ "get": {
3000
+ "summary": "GET /api/arbitrator/eligibility",
3001
+ "tags": [],
3002
+ "security": [
3003
+ {
3004
+ "bearerAuth": []
3005
+ }
3006
+ ]
3007
+ }
3008
+ },
3009
+ "/api/arbitrator/me/kpi": {
3010
+ "get": {
3011
+ "summary": "Arbitrator KPI(仲裁累计 + 裁决分布 + pending)",
3012
+ "tags": [],
3013
+ "security": [
3014
+ {
3015
+ "bearerAuth": []
3016
+ }
3017
+ ]
3018
+ }
3019
+ },
3020
+ "/api/arbitrator/status": {
3021
+ "get": {
3022
+ "summary": "GET /api/arbitrator/status",
3023
+ "tags": [],
3024
+ "security": [
3025
+ {
3026
+ "bearerAuth": []
3027
+ }
3028
+ ]
3029
+ }
3030
+ },
3031
+ "/api/arbitrator/withdraw-application": {
3032
+ "post": {
3033
+ "summary": "POST /api/arbitrator/withdraw-application",
3034
+ "tags": [],
3035
+ "security": [
3036
+ {
3037
+ "bearerAuth": []
3038
+ }
3039
+ ]
3040
+ }
3041
+ },
3042
+ "/api/auctions": {
3043
+ "get": {
3044
+ "summary": "看板:浏览公开拍卖(匿名可访问)",
3045
+ "tags": [],
3046
+ "security": []
3047
+ },
3048
+ "post": {
3049
+ "summary": "卖家发起拍卖",
3050
+ "tags": [],
3051
+ "security": [
3052
+ {
3053
+ "bearerAuth": []
3054
+ }
3055
+ ]
3056
+ }
3057
+ },
3058
+ "/api/auctions/:id": {
3059
+ "delete": {
3060
+ "summary": "卖家:取消(仅未出价时)",
3061
+ "tags": [],
3062
+ "security": [
3063
+ {
3064
+ "bearerAuth": []
3065
+ }
3066
+ ]
3067
+ },
3068
+ "get": {
3069
+ "summary": "详情:含 bid 历史(buyer 身份脱敏;卖家+出价人本人 可见全名)",
3070
+ "tags": [],
3071
+ "security": [
3072
+ {
3073
+ "bearerAuth": []
3074
+ }
3075
+ ]
3076
+ }
3077
+ },
3078
+ "/api/auctions/:id/bids": {
3079
+ "post": {
3080
+ "summary": "买家:出价",
3081
+ "tags": [],
3082
+ "security": [
3083
+ {
3084
+ "bearerAuth": []
3085
+ }
3086
+ ]
3087
+ }
3088
+ },
3089
+ "/api/auctions/:id/remind": {
3090
+ "delete": {
3091
+ "summary": "DELETE /api/auctions/:id/remind",
3092
+ "tags": [],
3093
+ "security": [
3094
+ {
3095
+ "bearerAuth": []
3096
+ }
3097
+ ]
3098
+ },
3099
+ "get": {
3100
+ "summary": "GET /api/auctions/:id/remind",
3101
+ "tags": [],
3102
+ "security": [
3103
+ {
3104
+ "bearerAuth": []
3105
+ }
3106
+ ]
3107
+ },
3108
+ "post": {
3109
+ "summary": "拍卖「⏰ 提醒我」(#959)",
3110
+ "tags": [],
3111
+ "security": [
3112
+ {
3113
+ "bearerAuth": []
3114
+ }
3115
+ ]
3116
+ }
3117
+ },
3118
+ "/api/auctions/mine": {
3119
+ "get": {
3120
+ "summary": "我的:买家=我出过价的,卖家=我发起的",
3121
+ "tags": [],
3122
+ "security": [
3123
+ {
3124
+ "bearerAuth": []
3125
+ }
3126
+ ]
3127
+ }
3128
+ },
3129
+ "/api/auth/logout-all": {
3130
+ "post": {
3131
+ "summary": "要求密码二次验证(防 api_key 被盗后攻击者锁死真用户)",
3132
+ "tags": [],
3133
+ "security": [
3134
+ {
3135
+ "bearerAuth": []
3136
+ }
3137
+ ]
3138
+ }
3139
+ },
3140
+ "/api/auth/sessions": {
3141
+ "get": {
3142
+ "summary": "GET /api/auth/sessions",
3143
+ "tags": [],
3144
+ "security": [
3145
+ {
3146
+ "bearerAuth": []
3147
+ }
3148
+ ]
3149
+ }
3150
+ },
3151
+ "/api/auth/sessions/:id/revoke": {
3152
+ "post": {
3153
+ "summary": "远程吊销某个会话(不影响当前 session)",
3154
+ "tags": [],
3155
+ "security": [
3156
+ {
3157
+ "bearerAuth": []
3158
+ }
3159
+ ]
3160
+ }
3161
+ },
3162
+ "/api/bids/:id": {
3163
+ "delete": {
3164
+ "summary": "卖家:撤回 bid(释放 stake)",
3165
+ "tags": [],
3166
+ "security": [
3167
+ {
3168
+ "bearerAuth": []
3169
+ }
3170
+ ]
3171
+ },
3172
+ "patch": {
3173
+ "summary": "卖家:修改 bid(仅 active;stake 差额自动结算)",
3174
+ "tags": [],
3175
+ "security": [
3176
+ {
3177
+ "bearerAuth": []
3178
+ }
3179
+ ]
3180
+ }
3181
+ },
3182
+ "/api/blocklist": {
3183
+ "get": {
3184
+ "summary": "D-2: 列表",
3185
+ "tags": [],
3186
+ "security": [
3187
+ {
3188
+ "bearerAuth": []
3189
+ }
3190
+ ]
3191
+ }
3192
+ },
3193
+ "/api/blocklist/:user_id": {
3194
+ "delete": {
3195
+ "summary": "DELETE /api/blocklist/:user_id",
3196
+ "tags": [],
3197
+ "security": [
3198
+ {
3199
+ "bearerAuth": []
3200
+ }
3201
+ ]
3202
+ },
3203
+ "post": {
3204
+ "summary": "POST /api/blocklist/:user_id",
3205
+ "tags": [],
3206
+ "security": [
3207
+ {
3208
+ "bearerAuth": []
3209
+ }
3210
+ ]
2411
3211
  }
2412
3212
  },
2413
- "/api/anchor/me": {
3213
+ "/api/blocklist/:user_id/status": {
2414
3214
  "get": {
2415
- "summary": "GET /api/anchor/me",
2416
- "tags": [
2417
- "anchor"
2418
- ],
3215
+ "summary": "GET /api/blocklist/:user_id/status",
3216
+ "tags": [],
2419
3217
  "security": [
2420
3218
  {
2421
3219
  "bearerAuth": []
@@ -2423,9 +3221,20 @@
2423
3221
  ]
2424
3222
  }
2425
3223
  },
2426
- "/api/announcements/:id/read": {
3224
+ "/api/blocklist/me": {
3225
+ "get": {
3226
+ "summary": "GET /api/blocklist/me",
3227
+ "tags": [],
3228
+ "security": [
3229
+ {
3230
+ "bearerAuth": []
3231
+ }
3232
+ ]
3233
+ }
3234
+ },
3235
+ "/api/build-feedback": {
2427
3236
  "post": {
2428
- "summary": "POST /api/announcements/:id/read",
3237
+ "summary": "── 提交 ──────────────────────────────────────────────",
2429
3238
  "tags": [],
2430
3239
  "security": [
2431
3240
  {
@@ -2434,9 +3243,9 @@
2434
3243
  ]
2435
3244
  }
2436
3245
  },
2437
- "/api/announcements/active": {
3246
+ "/api/build-feedback/:id": {
2438
3247
  "get": {
2439
- "summary": "列出对当前用户可见的活跃公告(按角色 + 区域过滤)",
3248
+ "summary": "GET /api/build-feedback/:id",
2440
3249
  "tags": [],
2441
3250
  "security": [
2442
3251
  {
@@ -2445,9 +3254,9 @@
2445
3254
  ]
2446
3255
  }
2447
3256
  },
2448
- "/api/arbitrator/apply": {
2449
- "post": {
2450
- "summary": "POST /api/arbitrator/apply",
3257
+ "/api/build-feedback/mine": {
3258
+ "get": {
3259
+ "summary": "── 闭环:我的反馈进度 ──(必须在 /:id 之前声明)──────────",
2451
3260
  "tags": [],
2452
3261
  "security": [
2453
3262
  {
@@ -2456,9 +3265,9 @@
2456
3265
  ]
2457
3266
  }
2458
3267
  },
2459
- "/api/arbitrator/eligibility": {
3268
+ "/api/build-reputation/me": {
2460
3269
  "get": {
2461
- "summary": "GET /api/arbitrator/eligibility",
3270
+ "summary": "BUILD reputation (coordination layer) only and promise no economic value.",
2462
3271
  "tags": [],
2463
3272
  "security": [
2464
3273
  {
@@ -2467,9 +3276,18 @@
2467
3276
  ]
2468
3277
  }
2469
3278
  },
2470
- "/api/arbitrator/me/kpi": {
3279
+ "/api/build-tasks": {
2471
3280
  "get": {
2472
- "summary": "Arbitrator KPI(仲裁累计 + 裁决分布 + pending)",
3281
+ "summary": "uncommitted value_boundary; member scope hides restricted/internal. Bad filter → fail-closed 400.",
3282
+ "tags": [],
3283
+ "security": [
3284
+ {
3285
+ "bearerAuth": []
3286
+ }
3287
+ ]
3288
+ },
3289
+ "post": {
3290
+ "summary": "POST /api/build-tasks",
2473
3291
  "tags": [],
2474
3292
  "security": [
2475
3293
  {
@@ -2478,9 +3296,9 @@
2478
3296
  ]
2479
3297
  }
2480
3298
  },
2481
- "/api/arbitrator/status": {
3299
+ "/api/build-tasks/:id": {
2482
3300
  "get": {
2483
- "summary": "GET /api/arbitrator/status",
3301
+ "summary": "GET /api/build-tasks/:id",
2484
3302
  "tags": [],
2485
3303
  "security": [
2486
3304
  {
@@ -2489,9 +3307,9 @@
2489
3307
  ]
2490
3308
  }
2491
3309
  },
2492
- "/api/arbitrator/withdraw-application": {
3310
+ "/api/build-tasks/:id/claim": {
2493
3311
  "post": {
2494
- "summary": "POST /api/arbitrator/withdraw-application",
3312
+ "summary": "task → claim respects auto_claimable. Success appends value_boundary + canonical_contribution_target only.",
2495
3313
  "tags": [],
2496
3314
  "security": [
2497
3315
  {
@@ -2500,14 +3318,40 @@
2500
3318
  ]
2501
3319
  }
2502
3320
  },
2503
- "/api/auctions": {
3321
+ "/api/build-tasks/:id/release": {
3322
+ "post": {
3323
+ "summary": "POST /api/build-tasks/:id/release",
3324
+ "tags": [],
3325
+ "security": [
3326
+ {
3327
+ "bearerAuth": []
3328
+ }
3329
+ ]
3330
+ }
3331
+ },
3332
+ "/api/build-tasks/:id/submit": {
3333
+ "post": {
3334
+ "summary": "POST /api/build-tasks/:id/submit",
3335
+ "tags": [],
3336
+ "security": [
3337
+ {
3338
+ "bearerAuth": []
3339
+ }
3340
+ ]
3341
+ }
3342
+ },
3343
+ "/api/cart": {
2504
3344
  "get": {
2505
- "summary": "看板:浏览公开拍卖(匿名可访问)",
3345
+ "summary": "GET /api/cart",
2506
3346
  "tags": [],
2507
- "security": []
3347
+ "security": [
3348
+ {
3349
+ "bearerAuth": []
3350
+ }
3351
+ ]
2508
3352
  },
2509
3353
  "post": {
2510
- "summary": "卖家发起拍卖",
3354
+ "summary": "POST /api/cart",
2511
3355
  "tags": [],
2512
3356
  "security": [
2513
3357
  {
@@ -2516,9 +3360,9 @@
2516
3360
  ]
2517
3361
  }
2518
3362
  },
2519
- "/api/auctions/:id": {
3363
+ "/api/cart/:product_id": {
2520
3364
  "delete": {
2521
- "summary": "卖家:取消(仅未出价时)",
3365
+ "summary": "DELETE /api/cart/:product_id",
2522
3366
  "tags": [],
2523
3367
  "security": [
2524
3368
  {
@@ -2526,8 +3370,8 @@
2526
3370
  }
2527
3371
  ]
2528
3372
  },
2529
- "get": {
2530
- "summary": "详情:含 bid 历史(buyer 身份脱敏;卖家+出价人本人 可见全名)",
3373
+ "patch": {
3374
+ "summary": "PATCH /api/cart/:product_id",
2531
3375
  "tags": [],
2532
3376
  "security": [
2533
3377
  {
@@ -2536,9 +3380,9 @@
2536
3380
  ]
2537
3381
  }
2538
3382
  },
2539
- "/api/auctions/:id/bids": {
3383
+ "/api/cart/checkout": {
2540
3384
  "post": {
2541
- "summary": "买家:出价",
3385
+ "summary": "C-1: 购物车批量下单(按 seller 自动分订单)",
2542
3386
  "tags": [],
2543
3387
  "security": [
2544
3388
  {
@@ -2547,27 +3391,73 @@
2547
3391
  ]
2548
3392
  }
2549
3393
  },
2550
- "/api/auctions/:id/remind": {
2551
- "delete": {
2552
- "summary": "DELETE /api/auctions/:id/remind",
2553
- "tags": [],
3394
+ "/api/charity/fund": {
3395
+ "get": {
3396
+ "summary": "GET 基金概况 + 最近流水",
3397
+ "tags": [
3398
+ "charity"
3399
+ ],
3400
+ "security": []
3401
+ }
3402
+ },
3403
+ "/api/charity/fund/donate": {
3404
+ "post": {
3405
+ "summary": "任何人捐款给慈善基金",
3406
+ "tags": [
3407
+ "charity"
3408
+ ],
2554
3409
  "security": [
2555
3410
  {
2556
3411
  "bearerAuth": []
2557
3412
  }
2558
3413
  ]
2559
- },
3414
+ }
3415
+ },
3416
+ "/api/charity/leaderboard": {
2560
3417
  "get": {
2561
- "summary": "GET /api/auctions/:id/remind",
3418
+ "summary": "慈善排行",
3419
+ "tags": [
3420
+ "charity"
3421
+ ],
3422
+ "security": []
3423
+ }
3424
+ },
3425
+ "/api/charity/me": {
3426
+ "get": {
3427
+ "summary": "GET /api/charity/me — 我的慈善档案",
3428
+ "tags": [
3429
+ "charity"
3430
+ ],
3431
+ "security": [
3432
+ {
3433
+ "bearerAuth": []
3434
+ }
3435
+ ]
3436
+ }
3437
+ },
3438
+ "/api/charity/stories": {
3439
+ "get": {
3440
+ "summary": "GET /api/charity/stories — 公开披露的故事板",
3441
+ "tags": [
3442
+ "charity"
3443
+ ],
3444
+ "security": []
3445
+ }
3446
+ },
3447
+ "/api/check-url": {
3448
+ "get": {
3449
+ "summary": "GET /api/check-url",
2562
3450
  "tags": [],
2563
3451
  "security": [
2564
3452
  {
2565
3453
  "bearerAuth": []
2566
3454
  }
2567
3455
  ]
2568
- },
3456
+ }
3457
+ },
3458
+ "/api/checkin": {
2569
3459
  "post": {
2570
- "summary": "拍卖「⏰ 提醒我」(#959)",
3460
+ "summary": "POST /api/checkin",
2571
3461
  "tags": [],
2572
3462
  "security": [
2573
3463
  {
@@ -2576,9 +3466,9 @@
2576
3466
  ]
2577
3467
  }
2578
3468
  },
2579
- "/api/auctions/mine": {
3469
+ "/api/checkin/status": {
2580
3470
  "get": {
2581
- "summary": "我的:买家=我出过价的,卖家=我发起的",
3471
+ "summary": "GET /api/checkin/status",
2582
3472
  "tags": [],
2583
3473
  "security": [
2584
3474
  {
@@ -2587,9 +3477,9 @@
2587
3477
  ]
2588
3478
  }
2589
3479
  },
2590
- "/api/auth/logout-all": {
2591
- "post": {
2592
- "summary": "要求密码二次验证(防 api_key 被盗后攻击者锁死真用户)",
3480
+ "/api/checkout/tax-preview": {
3481
+ "get": {
3482
+ "summary": "GET /api/checkout/tax-preview",
2593
3483
  "tags": [],
2594
3484
  "security": [
2595
3485
  {
@@ -2598,9 +3488,9 @@
2598
3488
  ]
2599
3489
  }
2600
3490
  },
2601
- "/api/auth/sessions": {
3491
+ "/api/claim-tasks/:id": {
2602
3492
  "get": {
2603
- "summary": "GET /api/auth/sessions",
3493
+ "summary": "任务详情",
2604
3494
  "tags": [],
2605
3495
  "security": [
2606
3496
  {
@@ -2609,9 +3499,9 @@
2609
3499
  ]
2610
3500
  }
2611
3501
  },
2612
- "/api/auth/sessions/:id/revoke": {
3502
+ "/api/claim-tasks/:id/seller-evidence": {
2613
3503
  "post": {
2614
- "summary": "远程吊销某个会话(不影响当前 session)",
3504
+ "summary": "卖家提交证据 → 延期 24h;状态保持 open",
2615
3505
  "tags": [],
2616
3506
  "security": [
2617
3507
  {
@@ -2620,18 +3510,20 @@
2620
3510
  ]
2621
3511
  }
2622
3512
  },
2623
- "/api/bids/:id": {
2624
- "delete": {
2625
- "summary": "卖家:撤回 bid(释放 stake)",
3513
+ "/api/claim-tasks/:id/vote": {
3514
+ "post": {
3515
+ "summary": "verifier 投票 — 铁律 §4",
2626
3516
  "tags": [],
2627
3517
  "security": [
2628
3518
  {
2629
3519
  "bearerAuth": []
2630
3520
  }
2631
3521
  ]
2632
- },
2633
- "patch": {
2634
- "summary": "卖家:修改 bid(仅 active;stake 差额自动结算)",
3522
+ }
3523
+ },
3524
+ "/api/claim-tasks/available": {
3525
+ "get": {
3526
+ "summary": "列出可接的 open 任务",
2635
3527
  "tags": [],
2636
3528
  "security": [
2637
3529
  {
@@ -2640,9 +3532,9 @@
2640
3532
  ]
2641
3533
  }
2642
3534
  },
2643
- "/api/blocklist": {
3535
+ "/api/claim-tasks/mine": {
2644
3536
  "get": {
2645
- "summary": "D-2: 列表",
3537
+ "summary": "我相关的任务(必须在 /:id 之前注册,否则被 /:id 截获)",
2646
3538
  "tags": [],
2647
3539
  "security": [
2648
3540
  {
@@ -2651,18 +3543,27 @@
2651
3543
  ]
2652
3544
  }
2653
3545
  },
2654
- "/api/blocklist/:user_id": {
2655
- "delete": {
2656
- "summary": "DELETE /api/blocklist/:user_id",
3546
+ "/api/claim-url": {
3547
+ "post": {
3548
+ "summary": "POST /api/claim-url",
2657
3549
  "tags": [],
2658
3550
  "security": [
2659
3551
  {
2660
3552
  "bearerAuth": []
2661
3553
  }
2662
3554
  ]
2663
- },
2664
- "post": {
2665
- "summary": "POST /api/blocklist/:user_id",
3555
+ }
3556
+ },
3557
+ "/api/claims/public": {
3558
+ "get": {
3559
+ "summary": "公开 #claims 广场(无 auth — 透明性是验证声明信任的前提)",
3560
+ "tags": [],
3561
+ "security": []
3562
+ }
3563
+ },
3564
+ "/api/contribution-facts/me": {
3565
+ "get": {
3566
+ "summary": "── READ-ONLY: the caller's OWN attributable contribution facts (GitHub + admin coordination) ──",
2666
3567
  "tags": [],
2667
3568
  "security": [
2668
3569
  {
@@ -2671,9 +3572,9 @@
2671
3572
  ]
2672
3573
  }
2673
3574
  },
2674
- "/api/blocklist/:user_id/status": {
2675
- "get": {
2676
- "summary": "GET /api/blocklist/:user_id/status",
3575
+ "/api/contribution-identity/github/claim-challenge": {
3576
+ "post": {
3577
+ "summary": "── 1) issue a publication challenge ─────────────────────────────────────────────────────────",
2677
3578
  "tags": [],
2678
3579
  "security": [
2679
3580
  {
@@ -2682,9 +3583,9 @@
2682
3583
  ]
2683
3584
  }
2684
3585
  },
2685
- "/api/blocklist/me": {
2686
- "get": {
2687
- "summary": "GET /api/blocklist/me",
3586
+ "/api/contribution-identity/github/claim-complete": {
3587
+ "post": {
3588
+ "summary": "── 2) complete the claim (human gate → re-fetch gist proof → atomic consume+bind) ────────────",
2688
3589
  "tags": [],
2689
3590
  "security": [
2690
3591
  {
@@ -2693,9 +3594,9 @@
2693
3594
  ]
2694
3595
  }
2695
3596
  },
2696
- "/api/build-feedback": {
2697
- "post": {
2698
- "summary": "── 提交 ──────────────────────────────────────────────",
3597
+ "/api/contribution-identity/github/claimable": {
3598
+ "get": {
3599
+ "summary": "carries the uncommitted-value boundary, and errors never leak SQL/stack.",
2699
3600
  "tags": [],
2700
3601
  "security": [
2701
3602
  {
@@ -2704,9 +3605,9 @@
2704
3605
  ]
2705
3606
  }
2706
3607
  },
2707
- "/api/build-feedback/:id": {
3608
+ "/api/contribution-identity/github/me": {
2708
3609
  "get": {
2709
- "summary": "GET /api/build-feedback/:id",
3610
+ "summary": "metering/display surface can never read as a payout promise — facts + attribution only.",
2710
3611
  "tags": [],
2711
3612
  "security": [
2712
3613
  {
@@ -2715,9 +3616,9 @@
2715
3616
  ]
2716
3617
  }
2717
3618
  },
2718
- "/api/build-feedback/mine": {
3619
+ "/api/contribution-score/evidence/me": {
2719
3620
  "get": {
2720
- "summary": "── 闭环:我的反馈进度 ──(必须在 /:id 之前声明)──────────",
3621
+ "summary": "always the session user. Output is component evidence wrapped in the uncommitted-value boundary.",
2721
3622
  "tags": [],
2722
3623
  "security": [
2723
3624
  {
@@ -2726,9 +3627,9 @@
2726
3627
  ]
2727
3628
  }
2728
3629
  },
2729
- "/api/build-reputation/me": {
3630
+ "/api/conversations": {
2730
3631
  "get": {
2731
- "summary": "BUILD reputation (coordination layer) only and promise no economic value.",
3632
+ "summary": "我的会话列表",
2732
3633
  "tags": [],
2733
3634
  "security": [
2734
3635
  {
@@ -2737,18 +3638,20 @@
2737
3638
  ]
2738
3639
  }
2739
3640
  },
2740
- "/api/build-tasks": {
3641
+ "/api/conversations/:id": {
2741
3642
  "get": {
2742
- "summary": "uncommitted value_boundary; member scope hides restricted/internal. Bad filter → fail-closed 400.",
3643
+ "summary": "会话详情 + 消息分页",
2743
3644
  "tags": [],
2744
3645
  "security": [
2745
3646
  {
2746
3647
  "bearerAuth": []
2747
3648
  }
2748
3649
  ]
2749
- },
3650
+ }
3651
+ },
3652
+ "/api/conversations/:id/archive": {
2750
3653
  "post": {
2751
- "summary": "POST /api/build-tasks",
3654
+ "summary": "归档(仅自己侧)",
2752
3655
  "tags": [],
2753
3656
  "security": [
2754
3657
  {
@@ -2757,9 +3660,9 @@
2757
3660
  ]
2758
3661
  }
2759
3662
  },
2760
- "/api/build-tasks/:id": {
2761
- "get": {
2762
- "summary": "GET /api/build-tasks/:id",
3663
+ "/api/conversations/:id/block": {
3664
+ "post": {
3665
+ "summary": "拉黑(双向屏蔽)",
2763
3666
  "tags": [],
2764
3667
  "security": [
2765
3668
  {
@@ -2768,9 +3671,9 @@
2768
3671
  ]
2769
3672
  }
2770
3673
  },
2771
- "/api/build-tasks/:id/claim": {
3674
+ "/api/conversations/:id/messages": {
2772
3675
  "post": {
2773
- "summary": "task → claim respects auto_claimable. Success appends value_boundary + canonical_contribution_target only.",
3676
+ "summary": "发消息",
2774
3677
  "tags": [],
2775
3678
  "security": [
2776
3679
  {
@@ -2779,9 +3682,9 @@
2779
3682
  ]
2780
3683
  }
2781
3684
  },
2782
- "/api/build-tasks/:id/release": {
3685
+ "/api/conversations/:id/read": {
2783
3686
  "post": {
2784
- "summary": "POST /api/build-tasks/:id/release",
3687
+ "summary": "标记已读",
2785
3688
  "tags": [],
2786
3689
  "security": [
2787
3690
  {
@@ -2790,9 +3693,9 @@
2790
3693
  ]
2791
3694
  }
2792
3695
  },
2793
- "/api/build-tasks/:id/submit": {
3696
+ "/api/conversations/:id/report": {
2794
3697
  "post": {
2795
- "summary": "POST /api/build-tasks/:id/submit",
3698
+ "summary": "举报(人工审核)",
2796
3699
  "tags": [],
2797
3700
  "security": [
2798
3701
  {
@@ -2801,18 +3704,20 @@
2801
3704
  ]
2802
3705
  }
2803
3706
  },
2804
- "/api/cart": {
2805
- "get": {
2806
- "summary": "GET /api/cart",
3707
+ "/api/conversations/start": {
3708
+ "post": {
3709
+ "summary": "开会话(idempotent — 已存在则返回 id)",
2807
3710
  "tags": [],
2808
3711
  "security": [
2809
3712
  {
2810
3713
  "bearerAuth": []
2811
3714
  }
2812
3715
  ]
2813
- },
3716
+ }
3717
+ },
3718
+ "/api/coupons": {
2814
3719
  "post": {
2815
- "summary": "POST /api/cart",
3720
+ "summary": "POST /api/coupons",
2816
3721
  "tags": [],
2817
3722
  "security": [
2818
3723
  {
@@ -2821,18 +3726,20 @@
2821
3726
  ]
2822
3727
  }
2823
3728
  },
2824
- "/api/cart/:product_id": {
2825
- "delete": {
2826
- "summary": "DELETE /api/cart/:product_id",
3729
+ "/api/coupons/:id": {
3730
+ "patch": {
3731
+ "summary": "PATCH /api/coupons/:id",
2827
3732
  "tags": [],
2828
3733
  "security": [
2829
3734
  {
2830
3735
  "bearerAuth": []
2831
3736
  }
2832
3737
  ]
2833
- },
2834
- "patch": {
2835
- "summary": "PATCH /api/cart/:product_id",
3738
+ }
3739
+ },
3740
+ "/api/coupons/available": {
3741
+ "get": {
3742
+ "summary": "buyer 视角:全平台 + 已购卖家店铺/单品券 + 历史",
2836
3743
  "tags": [],
2837
3744
  "security": [
2838
3745
  {
@@ -2841,9 +3748,9 @@
2841
3748
  ]
2842
3749
  }
2843
3750
  },
2844
- "/api/cart/checkout": {
2845
- "post": {
2846
- "summary": "C-1: 购物车批量下单(按 seller 自动分订单)",
3751
+ "/api/coupons/mine": {
3752
+ "get": {
3753
+ "summary": "GET /api/coupons/mine",
2847
3754
  "tags": [],
2848
3755
  "security": [
2849
3756
  {
@@ -2852,21 +3759,10 @@
2852
3759
  ]
2853
3760
  }
2854
3761
  },
2855
- "/api/charity/fund": {
3762
+ "/api/coupons/preview": {
2856
3763
  "get": {
2857
- "summary": "GET 基金概况 + 最近流水",
2858
- "tags": [
2859
- "charity"
2860
- ],
2861
- "security": []
2862
- }
2863
- },
2864
- "/api/charity/fund/donate": {
2865
- "post": {
2866
- "summary": "任何人捐款给慈善基金",
2867
- "tags": [
2868
- "charity"
2869
- ],
3764
+ "summary": "GET /api/coupons/preview",
3765
+ "tags": [],
2870
3766
  "security": [
2871
3767
  {
2872
3768
  "bearerAuth": []
@@ -2874,21 +3770,10 @@
2874
3770
  ]
2875
3771
  }
2876
3772
  },
2877
- "/api/charity/leaderboard": {
2878
- "get": {
2879
- "summary": "慈善排行",
2880
- "tags": [
2881
- "charity"
2882
- ],
2883
- "security": []
2884
- }
2885
- },
2886
- "/api/charity/me": {
3773
+ "/api/creator/stats": {
2887
3774
  "get": {
2888
- "summary": "GET /api/charity/me — 我的慈善档案",
2889
- "tags": [
2890
- "charity"
2891
- ],
3775
+ "summary": "里程碑 L3:创作者贡献仪表盘",
3776
+ "tags": [],
2892
3777
  "security": [
2893
3778
  {
2894
3779
  "bearerAuth": []
@@ -2896,18 +3781,9 @@
2896
3781
  ]
2897
3782
  }
2898
3783
  },
2899
- "/api/charity/stories": {
2900
- "get": {
2901
- "summary": "GET /api/charity/stories — 公开披露的故事板",
2902
- "tags": [
2903
- "charity"
2904
- ],
2905
- "security": []
2906
- }
2907
- },
2908
- "/api/check-url": {
3784
+ "/api/direct-pay/availability": {
2909
3785
  "get": {
2910
- "summary": "GET /api/check-url",
3786
+ "summary": "GET /api/direct-pay/availability?product_id=... — 该商品(以 qty=1 计)当前是否可直付 + 不可用原因(脱敏)。",
2911
3787
  "tags": [],
2912
3788
  "security": [
2913
3789
  {
@@ -2916,9 +3792,9 @@
2916
3792
  ]
2917
3793
  }
2918
3794
  },
2919
- "/api/checkin": {
3795
+ "/api/direct-pay/disclosure-acks": {
2920
3796
  "post": {
2921
- "summary": "POST /api/checkin",
3797
+ "summary": "stage:'both' —— 单 stage token 冒充不了 both,both token 也重放不了单 stage(一次性消费 + validate 精确匹配)。",
2922
3798
  "tags": [],
2923
3799
  "security": [
2924
3800
  {
@@ -2927,9 +3803,9 @@
2927
3803
  ]
2928
3804
  }
2929
3805
  },
2930
- "/api/checkin/status": {
3806
+ "/api/direct-pay/disclosure-acks/:orderId": {
2931
3807
  "get": {
2932
- "summary": "GET /api/checkin/status",
3808
+ "summary": "GET — 查询某单两次 ack 状态 + 买家视角披露文案(无卖家机制)。只读(本人),不需 gate token。",
2933
3809
  "tags": [],
2934
3810
  "security": [
2935
3811
  {
@@ -2938,20 +3814,18 @@
2938
3814
  ]
2939
3815
  }
2940
3816
  },
2941
- "/api/checkout/tax-preview": {
3817
+ "/api/direct-receive/accounts": {
2942
3818
  "get": {
2943
- "summary": "GET /api/checkout/tax-preview",
3819
+ "summary": "── list(本人;不返回 raw QR,只含 qr_image_ref)──",
2944
3820
  "tags": [],
2945
3821
  "security": [
2946
3822
  {
2947
3823
  "bearerAuth": []
2948
3824
  }
2949
3825
  ]
2950
- }
2951
- },
2952
- "/api/claim-tasks/:id": {
2953
- "get": {
2954
- "summary": "任务详情",
3826
+ },
3827
+ "post": {
3828
+ "summary": "── add(Passkey)──",
2955
3829
  "tags": [],
2956
3830
  "security": [
2957
3831
  {
@@ -2960,20 +3834,18 @@
2960
3834
  ]
2961
3835
  }
2962
3836
  },
2963
- "/api/claim-tasks/:id/seller-evidence": {
2964
- "post": {
2965
- "summary": "卖家提交证据 延期 24h;状态保持 open",
3837
+ "/api/direct-receive/accounts/:id": {
3838
+ "delete": {
3839
+ "summary": "── deactivate(Passkey + owner)──",
2966
3840
  "tags": [],
2967
3841
  "security": [
2968
3842
  {
2969
3843
  "bearerAuth": []
2970
3844
  }
2971
3845
  ]
2972
- }
2973
- },
2974
- "/api/claim-tasks/:id/vote": {
2975
- "post": {
2976
- "summary": "verifier 投票 — 铁律 §4",
3846
+ },
3847
+ "put": {
3848
+ "summary": "── update(Passkey + owner)──",
2977
3849
  "tags": [],
2978
3850
  "security": [
2979
3851
  {
@@ -2982,20 +3854,18 @@
2982
3854
  ]
2983
3855
  }
2984
3856
  },
2985
- "/api/claim-tasks/available": {
3857
+ "/api/direct-receive/accounts/:id/qr": {
2986
3858
  "get": {
2987
- "summary": "列出可接的 open 任务",
3859
+ "summary": "── QR preview(owner-only read;硬化转发;不存在/非本人 → 404)──",
2988
3860
  "tags": [],
2989
3861
  "security": [
2990
3862
  {
2991
3863
  "bearerAuth": []
2992
3864
  }
2993
3865
  ]
2994
- }
2995
- },
2996
- "/api/claim-tasks/mine": {
2997
- "get": {
2998
- "summary": "我相关的任务(必须在 /:id 之前注册,否则被 /:id 截获)",
3866
+ },
3867
+ "put": {
3868
+ "summary": "── upload / replace QR(Passkey + owner;immutable content-addressed store)──",
2999
3869
  "tags": [],
3000
3870
  "security": [
3001
3871
  {
@@ -3004,9 +3874,9 @@
3004
3874
  ]
3005
3875
  }
3006
3876
  },
3007
- "/api/claim-url": {
3877
+ "/api/direct-receive/bond-deposit": {
3008
3878
  "post": {
3009
- "summary": "POST /api/claim-url",
3879
+ "summary": "POST /api/direct-receive/bond-deposit",
3010
3880
  "tags": [],
3011
3881
  "security": [
3012
3882
  {
@@ -3015,16 +3885,9 @@
3015
3885
  ]
3016
3886
  }
3017
3887
  },
3018
- "/api/claims/public": {
3019
- "get": {
3020
- "summary": "公开 #claims 广场(无 auth — 透明性是验证声明信任的前提)",
3021
- "tags": [],
3022
- "security": []
3023
- }
3024
- },
3025
- "/api/contribution-facts/me": {
3026
- "get": {
3027
- "summary": "── READ-ONLY: the caller's OWN attributable contribution facts (GitHub + admin coordination) ──",
3888
+ "/api/direct-receive/bond-deposit/:id/cancel": {
3889
+ "post": {
3890
+ "summary": "POST /api/direct-receive/bond-deposit/:id/cancel",
3028
3891
  "tags": [],
3029
3892
  "security": [
3030
3893
  {
@@ -3033,9 +3896,9 @@
3033
3896
  ]
3034
3897
  }
3035
3898
  },
3036
- "/api/contribution-identity/github/claim-challenge": {
3899
+ "/api/direct-receive/bond-refund-request": {
3037
3900
  "post": {
3038
- "summary": "── 1) issue a publication challenge ─────────────────────────────────────────────────────────",
3901
+ "summary": "── B2:退出退还 —— 申请(§5 blockers fail-closed) 冷静期 admin 执行;申请期间直付资格暂停,可撤销 ──",
3039
3902
  "tags": [],
3040
3903
  "security": [
3041
3904
  {
@@ -3044,9 +3907,9 @@
3044
3907
  ]
3045
3908
  }
3046
3909
  },
3047
- "/api/contribution-identity/github/claim-complete": {
3910
+ "/api/direct-receive/bond-refund-request/cancel": {
3048
3911
  "post": {
3049
- "summary": "── 2) complete the claim (human gate → re-fetch gist proof → atomic consume+bind) ────────────",
3912
+ "summary": "POST /api/direct-receive/bond-refund-request/cancel",
3050
3913
  "tags": [],
3051
3914
  "security": [
3052
3915
  {
@@ -3055,9 +3918,9 @@
3055
3918
  ]
3056
3919
  }
3057
3920
  },
3058
- "/api/contribution-identity/github/claimable": {
3921
+ "/api/direct-receive/bond-status": {
3059
3922
  "get": {
3060
- "summary": "carries the uncommitted-value boundary, and errors never leak SQL/stack.",
3923
+ "summary": "GET /api/direct-receive/bond-status",
3061
3924
  "tags": [],
3062
3925
  "security": [
3063
3926
  {
@@ -3066,20 +3929,18 @@
3066
3929
  ]
3067
3930
  }
3068
3931
  },
3069
- "/api/contribution-identity/github/me": {
3932
+ "/api/direct-receive/deferral": {
3070
3933
  "get": {
3071
- "summary": "metering/display surface can never read as a payout promise — facts + attribution only.",
3934
+ "summary": "GET /api/direct-receive/deferral 卖家本人缓交状态:最新一条申请(脱敏:不含 admin 身份)+ 是否当前生效(active)。",
3072
3935
  "tags": [],
3073
3936
  "security": [
3074
3937
  {
3075
3938
  "bearerAuth": []
3076
3939
  }
3077
3940
  ]
3078
- }
3079
- },
3080
- "/api/contribution-score/evidence/me": {
3081
- "get": {
3082
- "summary": "always the session user. Output is component evidence wrapped in the uncommitted-value boundary.",
3941
+ },
3942
+ "post": {
3943
+ "summary": "POST /api/direct-receive/deferral — 卖家申请缓交。helper 强制:单一活跃、periodDays 正整数、id 唯一。",
3083
3944
  "tags": [],
3084
3945
  "security": [
3085
3946
  {
@@ -3088,9 +3949,9 @@
3088
3949
  ]
3089
3950
  }
3090
3951
  },
3091
- "/api/conversations": {
3092
- "get": {
3093
- "summary": "我的会话列表",
3952
+ "/api/direct-receive/fee-prepay-request": {
3953
+ "post": {
3954
+ "summary": "── 提交预充值申请(不 Passkey;凭据必填)──",
3094
3955
  "tags": [],
3095
3956
  "security": [
3096
3957
  {
@@ -3099,9 +3960,9 @@
3099
3960
  ]
3100
3961
  }
3101
3962
  },
3102
- "/api/conversations/:id": {
3103
- "get": {
3104
- "summary": "会话详情 + 消息分页",
3963
+ "/api/direct-receive/fee-prepay-request/:id/cancel": {
3964
+ "post": {
3965
+ "summary": "── 卖家撤销自己的 pending 申请 ──",
3105
3966
  "tags": [],
3106
3967
  "security": [
3107
3968
  {
@@ -3110,9 +3971,9 @@
3110
3971
  ]
3111
3972
  }
3112
3973
  },
3113
- "/api/conversations/:id/archive": {
3114
- "post": {
3115
- "summary": "归档(仅自己侧)",
3974
+ "/api/direct-receive/fee-prepay-requests": {
3975
+ "get": {
3976
+ "summary": "── 卖家看自己的申请(全状态)──",
3116
3977
  "tags": [],
3117
3978
  "security": [
3118
3979
  {
@@ -3121,9 +3982,9 @@
3121
3982
  ]
3122
3983
  }
3123
3984
  },
3124
- "/api/conversations/:id/block": {
3125
- "post": {
3126
- "summary": "拉黑(双向屏蔽)",
3985
+ "/api/direct-receive/my-fee-account": {
3986
+ "get": {
3987
+ "summary": "仅本人(requireSeller),买家拿不到;只读、不碰任何资金动作。供 seller fee center 展示。",
3127
3988
  "tags": [],
3128
3989
  "security": [
3129
3990
  {
@@ -3132,31 +3993,27 @@
3132
3993
  ]
3133
3994
  }
3134
3995
  },
3135
- "/api/conversations/:id/messages": {
3136
- "post": {
3137
- "summary": "发消息",
3996
+ "/api/direct-receive/payment-instruction": {
3997
+ "delete": {
3998
+ "summary": "DELETE — 停用卖家当前 active 收款说明(软停用,留历史为 inactive)。停用后 create route fail-closed。",
3138
3999
  "tags": [],
3139
4000
  "security": [
3140
4001
  {
3141
4002
  "bearerAuth": []
3142
4003
  }
3143
4004
  ]
3144
- }
3145
- },
3146
- "/api/conversations/:id/read": {
3147
- "post": {
3148
- "summary": "标记已读",
4005
+ },
4006
+ "get": {
4007
+ "summary": "GET — 卖家本人当前 active 收款说明;无则 instruction:null(200,显式空状态,便于 UI 渲染“尚未设置”)。",
3149
4008
  "tags": [],
3150
4009
  "security": [
3151
4010
  {
3152
4011
  "bearerAuth": []
3153
4012
  }
3154
4013
  ]
3155
- }
3156
- },
3157
- "/api/conversations/:id/report": {
3158
- "post": {
3159
- "summary": "举报(人工审核)",
4014
+ },
4015
+ "put": {
4016
+ "summary": "PUT — 设置/替换卖家当前 active 收款说明。instruction 必填、trim、长度上限;label 可选、trim、长度上限。",
3160
4017
  "tags": [],
3161
4018
  "security": [
3162
4019
  {
@@ -3165,9 +4022,9 @@
3165
4022
  ]
3166
4023
  }
3167
4024
  },
3168
- "/api/conversations/start": {
3169
- "post": {
3170
- "summary": "开会话(idempotent 已存在则返回 id)",
4025
+ "/api/direct-receive/platform-receive-accounts": {
4026
+ "get": {
4027
+ "summary": "── 卖家看平台收款方式(active;含 instruction + qr_data_uri —— 平台公开收款明细,据此付款)──",
3171
4028
  "tags": [],
3172
4029
  "security": [
3173
4030
  {
@@ -3176,20 +4033,18 @@
3176
4033
  ]
3177
4034
  }
3178
4035
  },
3179
- "/api/coupons": {
4036
+ "/api/direct-receive/product-verification": {
3180
4037
  "post": {
3181
- "summary": "POST /api/coupons",
4038
+ "summary": "POST /api/direct-receive/product-verification — 卖家为某产品申领验证码(单一活跃 per product)。",
3182
4039
  "tags": [],
3183
4040
  "security": [
3184
4041
  {
3185
4042
  "bearerAuth": []
3186
4043
  }
3187
4044
  ]
3188
- }
3189
- },
3190
- "/api/coupons/:id": {
3191
- "patch": {
3192
- "summary": "PATCH /api/coupons/:id",
4045
+ },
4046
+ "put": {
4047
+ "summary": "PUT /api/direct-receive/product-verification — 卖家为某产品提交外部商品链接(链接仅存储,WebAZ 不抓取)。",
3193
4048
  "tags": [],
3194
4049
  "security": [
3195
4050
  {
@@ -3198,9 +4053,9 @@
3198
4053
  ]
3199
4054
  }
3200
4055
  },
3201
- "/api/coupons/available": {
4056
+ "/api/direct-receive/product-verifications": {
3202
4057
  "get": {
3203
- "summary": "buyer 视角:全平台 + 已购卖家店铺/单品券 + 历史",
4058
+ "summary": "GET /api/direct-receive/product-verifications 卖家本人所有产品的认证状态(逐产品)。",
3204
4059
  "tags": [],
3205
4060
  "security": [
3206
4061
  {
@@ -3209,9 +4064,9 @@
3209
4064
  ]
3210
4065
  }
3211
4066
  },
3212
- "/api/coupons/mine": {
4067
+ "/api/direct-receive/readiness": {
3213
4068
  "get": {
3214
- "summary": "GET /api/coupons/mine",
4069
+ "summary": "绝不下发 raw blocker / KYB·制裁·AML 分项(见 sellerDirectPayReadinessView)。只读 self(auth 用户自身 id)。",
3215
4070
  "tags": [],
3216
4071
  "security": [
3217
4072
  {
@@ -3220,9 +4075,9 @@
3220
4075
  ]
3221
4076
  }
3222
4077
  },
3223
- "/api/coupons/preview": {
4078
+ "/api/direct-receive/selectable-accounts": {
3224
4079
  "get": {
3225
- "summary": "GET /api/coupons/preview",
4080
+ "summary": "⚠️ 只下发元数据 method/currency/label —— instruction 原文与 QR 受披露门保护,D1/D2 ack 后才随订单快照给买家。",
3226
4081
  "tags": [],
3227
4082
  "security": [
3228
4083
  {
@@ -3231,9 +4086,27 @@
3231
4086
  ]
3232
4087
  }
3233
4088
  },
3234
- "/api/creator/stats": {
4089
+ "/api/direct-receive/store-verification": {
3235
4090
  "get": {
3236
- "summary": "里程碑 L3:创作者贡献仪表盘",
4091
+ "summary": "GET /api/direct-receive/store-verification — 卖家本人店铺认证状态(脱敏 DTO,含豁免位)。",
4092
+ "tags": [],
4093
+ "security": [
4094
+ {
4095
+ "bearerAuth": []
4096
+ }
4097
+ ]
4098
+ },
4099
+ "post": {
4100
+ "summary": "POST /api/direct-receive/store-verification — 卖家申领店铺验证码(单一活跃 per seller)。",
4101
+ "tags": [],
4102
+ "security": [
4103
+ {
4104
+ "bearerAuth": []
4105
+ }
4106
+ ]
4107
+ },
4108
+ "put": {
4109
+ "summary": "PUT /api/direct-receive/store-verification — 卖家提交店铺外链(仅存储,不抓取)。",
3237
4110
  "tags": [],
3238
4111
  "security": [
3239
4112
  {
@@ -3604,7 +4477,7 @@
3604
4477
  },
3605
4478
  "/api/external-anchors/:id/distribute-rewards": {
3606
4479
  "post": {
3607
- "summary": "手动 distribute(admin/arbitrator 补救:anchor community fee_paid_out=0)",
4480
+ "summary": "白名单(isEligibleArbitrator),不认 legacy user.role(否则已 suspend/revokerole 未同步的账号仍可触发放款)。",
3608
4481
  "tags": [],
3609
4482
  "security": [
3610
4483
  {
@@ -3815,6 +4688,13 @@
3815
4688
  ]
3816
4689
  }
3817
4690
  },
4691
+ "/api/fx/rates": {
4692
+ "get": {
4693
+ "summary": "GET /api/fx/rates",
4694
+ "tags": [],
4695
+ "security": []
4696
+ }
4697
+ },
3818
4698
  "/api/governance/onboarding-stats": {
3819
4699
  "get": {
3820
4700
  "summary": "无 auth — agent / 用户 / 第三方都可读;不暴露 PII",
@@ -4271,6 +5151,13 @@
4271
5151
  ]
4272
5152
  }
4273
5153
  },
5154
+ "/api/manifests/:hash/thumb": {
5155
+ "get": {
5156
+ "summary": "Only the low-res thumbnail is exposed (never full-res / metadata / other columns).",
5157
+ "tags": [],
5158
+ "security": []
5159
+ }
5160
+ },
4274
5161
  "/api/manifests/by-anchor/:anchor": {
4275
5162
  "get": {
4276
5163
  "summary": "GET /api/manifests/by-anchor/:anchor",
@@ -4810,9 +5697,87 @@
4810
5697
  ]
4811
5698
  }
4812
5699
  },
5700
+ "/api/orders/:id/cancel-refund": {
5701
+ "get": {
5702
+ "summary": "GET /api/orders/:id/cancel-refund",
5703
+ "tags": [
5704
+ "order"
5705
+ ],
5706
+ "security": [
5707
+ {
5708
+ "bearerAuth": []
5709
+ }
5710
+ ]
5711
+ }
5712
+ },
5713
+ "/api/orders/:id/cancel-refund/confirm": {
5714
+ "post": {
5715
+ "summary": "POST /api/orders/:id/cancel-refund/confirm",
5716
+ "tags": [
5717
+ "order"
5718
+ ],
5719
+ "security": [
5720
+ {
5721
+ "bearerAuth": []
5722
+ }
5723
+ ]
5724
+ }
5725
+ },
5726
+ "/api/orders/:id/cancel-refund/decline": {
5727
+ "post": {
5728
+ "summary": "POST /api/orders/:id/cancel-refund/decline",
5729
+ "tags": [
5730
+ "order"
5731
+ ],
5732
+ "security": [
5733
+ {
5734
+ "bearerAuth": []
5735
+ }
5736
+ ]
5737
+ }
5738
+ },
5739
+ "/api/orders/:id/cancel-refund/mark-refunded": {
5740
+ "post": {
5741
+ "summary": "POST /api/orders/:id/cancel-refund/mark-refunded",
5742
+ "tags": [
5743
+ "order"
5744
+ ],
5745
+ "security": [
5746
+ {
5747
+ "bearerAuth": []
5748
+ }
5749
+ ]
5750
+ }
5751
+ },
5752
+ "/api/orders/:id/cancel-refund/request": {
5753
+ "post": {
5754
+ "summary": "POST /api/orders/:id/cancel-refund/request",
5755
+ "tags": [
5756
+ "order"
5757
+ ],
5758
+ "security": [
5759
+ {
5760
+ "bearerAuth": []
5761
+ }
5762
+ ]
5763
+ }
5764
+ },
5765
+ "/api/orders/:id/cancel-refund/withdraw": {
5766
+ "post": {
5767
+ "summary": "POST /api/orders/:id/cancel-refund/withdraw",
5768
+ "tags": [
5769
+ "order"
5770
+ ],
5771
+ "security": [
5772
+ {
5773
+ "bearerAuth": []
5774
+ }
5775
+ ]
5776
+ }
5777
+ },
4813
5778
  "/api/orders/:id/chain": {
4814
5779
  "get": {
4815
- "summary": "订单签名链 — 当事人 + arbitrator + admin 可查",
5780
+ "summary": "订单签名链 — 当事人 + 白名单仲裁员(涉争议订单) + admin 可查",
4816
5781
  "tags": [
4817
5782
  "order"
4818
5783
  ],
@@ -4862,6 +5827,19 @@
4862
5827
  ]
4863
5828
  }
4864
5829
  },
5830
+ "/api/orders/:id/direct-pay-qr": {
5831
+ "get": {
5832
+ "summary": "取【当时那一版】图字节。未 ack / 非买家 / 无 QR / 非 direct_p2p → 统一 404(不枚举,不泄露)。图字节不入 order JSON。",
5833
+ "tags": [
5834
+ "order"
5835
+ ],
5836
+ "security": [
5837
+ {
5838
+ "bearerAuth": []
5839
+ }
5840
+ ]
5841
+ }
5842
+ },
4865
5843
  "/api/orders/:id/force-timeout-check": {
4866
5844
  "post": {
4867
5845
  "summary": "手动触发超时判责(当事人)",
@@ -4875,6 +5853,136 @@
4875
5853
  ]
4876
5854
  }
4877
5855
  },
5856
+ "/api/orders/:id/mutual-cancel": {
5857
+ "get": {
5858
+ "summary": "GET /api/orders/:id/mutual-cancel",
5859
+ "tags": [
5860
+ "order"
5861
+ ],
5862
+ "security": [
5863
+ {
5864
+ "bearerAuth": []
5865
+ }
5866
+ ]
5867
+ }
5868
+ },
5869
+ "/api/orders/:id/mutual-cancel/accept": {
5870
+ "post": {
5871
+ "summary": "POST /api/orders/:id/mutual-cancel/accept",
5872
+ "tags": [
5873
+ "order"
5874
+ ],
5875
+ "security": [
5876
+ {
5877
+ "bearerAuth": []
5878
+ }
5879
+ ]
5880
+ }
5881
+ },
5882
+ "/api/orders/:id/mutual-cancel/decline": {
5883
+ "post": {
5884
+ "summary": "POST /api/orders/:id/mutual-cancel/decline",
5885
+ "tags": [
5886
+ "order"
5887
+ ],
5888
+ "security": [
5889
+ {
5890
+ "bearerAuth": []
5891
+ }
5892
+ ]
5893
+ }
5894
+ },
5895
+ "/api/orders/:id/mutual-cancel/propose": {
5896
+ "post": {
5897
+ "summary": "POST /api/orders/:id/mutual-cancel/propose",
5898
+ "tags": [
5899
+ "order"
5900
+ ],
5901
+ "security": [
5902
+ {
5903
+ "bearerAuth": []
5904
+ }
5905
+ ]
5906
+ }
5907
+ },
5908
+ "/api/orders/:id/mutual-cancel/withdraw": {
5909
+ "post": {
5910
+ "summary": "POST /api/orders/:id/mutual-cancel/withdraw",
5911
+ "tags": [
5912
+ "order"
5913
+ ],
5914
+ "security": [
5915
+ {
5916
+ "bearerAuth": []
5917
+ }
5918
+ ]
5919
+ }
5920
+ },
5921
+ "/api/orders/:id/pending-accept/accept": {
5922
+ "post": {
5923
+ "summary": "卖家确认接单 → 开付款窗口(deadline 此刻起表;收款信息此刻起买家可见 —— orders-read 状态门放行)",
5924
+ "tags": [
5925
+ "order"
5926
+ ],
5927
+ "security": [
5928
+ {
5929
+ "bearerAuth": []
5930
+ }
5931
+ ]
5932
+ }
5933
+ },
5934
+ "/api/orders/:id/pending-accept/cancel": {
5935
+ "post": {
5936
+ "summary": "买家撤单(接单前反悔)→ 无责取消 + 回补库存",
5937
+ "tags": [
5938
+ "order"
5939
+ ],
5940
+ "security": [
5941
+ {
5942
+ "bearerAuth": []
5943
+ }
5944
+ ]
5945
+ }
5946
+ },
5947
+ "/api/orders/:id/pending-accept/confirm-quote": {
5948
+ "post": {
5949
+ "summary": "CAS:仅 pending_accept 且已报价;总额变更与状态转移同一 db.transaction(要么全生效要么全回滚)。",
5950
+ "tags": [
5951
+ "order"
5952
+ ],
5953
+ "security": [
5954
+ {
5955
+ "bearerAuth": []
5956
+ }
5957
+ ]
5958
+ }
5959
+ },
5960
+ "/api/orders/:id/pending-accept/decline": {
5961
+ "post": {
5962
+ "summary": "卖家谢绝(无法发货/物流不可达等;理由可选,买家可见)→ 无责取消 + 回补库存",
5963
+ "tags": [
5964
+ "order"
5965
+ ],
5966
+ "security": [
5967
+ {
5968
+ "bearerAuth": []
5969
+ }
5970
+ ]
5971
+ }
5972
+ },
5973
+ "/api/orders/:id/pending-accept/quote": {
5974
+ "post": {
5975
+ "summary": "可重复报价(买家确认前修正);每次报价重置响应窗(param direct_pay.quote_confirm_hours,默认 48h)。",
5976
+ "tags": [
5977
+ "order"
5978
+ ],
5979
+ "security": [
5980
+ {
5981
+ "bearerAuth": []
5982
+ }
5983
+ ]
5984
+ }
5985
+ },
4878
5986
  "/api/orders/:order_id/buyer-rating": {
4879
5987
  "get": {
4880
5988
  "summary": "查 seller → buyer 评价(双盲遮蔽:buyer 看不到,除非自己也评过 OR 窗口到期)",
@@ -5364,6 +6472,17 @@
5364
6472
  "security": []
5365
6473
  }
5366
6474
  },
6475
+ "/api/products/:id/external-links": {
6476
+ "get": {
6477
+ "summary": "array the seller workbench consumes; that stays untouched). Only public-safe columns are returned.",
6478
+ "tags": [],
6479
+ "security": [
6480
+ {
6481
+ "bearerAuth": []
6482
+ }
6483
+ ]
6484
+ }
6485
+ },
5367
6486
  "/api/products/:id/get-or-create-share": {
5368
6487
  "post": {
5369
6488
  "summary": "获取或创建商品 shareable(被 sharePromoLink 用,走 /s/<id> 短链)",
@@ -5420,6 +6539,13 @@
5420
6539
  "security": []
5421
6540
  }
5422
6541
  },
6542
+ "/api/products/:id/shipping-options": {
6543
+ "get": {
6544
+ "summary": "公开读:买家下单前查配送范围。生效 = 单品覆盖 ?? 店铺默认;template=null → 不按地区计费(下单不要求选地区)。",
6545
+ "tags": [],
6546
+ "security": []
6547
+ }
6548
+ },
5423
6549
  "/api/products/:id/status": {
5424
6550
  "patch": {
5425
6551
  "summary": "状态切换(active / warehouse / deleted)",
@@ -6105,6 +7231,17 @@
6105
7231
  ]
6106
7232
  }
6107
7233
  },
7234
+ "/api/return-requests/:id/confirm-refund": {
7235
+ "post": {
7236
+ "summary": "POST /api/return-requests/:id/confirm-refund",
7237
+ "tags": [],
7238
+ "security": [
7239
+ {
7240
+ "bearerAuth": []
7241
+ }
7242
+ ]
7243
+ }
7244
+ },
6108
7245
  "/api/return-requests/:id/decide": {
6109
7246
  "post": {
6110
7247
  "summary": "POST /api/return-requests/:id/decide",
@@ -6127,6 +7264,17 @@
6127
7264
  ]
6128
7265
  }
6129
7266
  },
7267
+ "/api/return-requests/:id/mark-refunded": {
7268
+ "post": {
7269
+ "summary": "POST /api/return-requests/:id/mark-refunded",
7270
+ "tags": [],
7271
+ "security": [
7272
+ {
7273
+ "bearerAuth": []
7274
+ }
7275
+ ]
7276
+ }
7277
+ },
6130
7278
  "/api/return-requests/:id/messages": {
6131
7279
  "post": {
6132
7280
  "summary": "POST /api/return-requests/:id/messages",
@@ -6361,6 +7509,17 @@
6361
7509
  ]
6362
7510
  }
6363
7511
  },
7512
+ "/api/seller/accept-mode": {
7513
+ "post": {
7514
+ "summary": "POST /api/seller/accept-mode",
7515
+ "tags": [],
7516
+ "security": [
7517
+ {
7518
+ "bearerAuth": []
7519
+ }
7520
+ ]
7521
+ }
7522
+ },
6364
7523
  "/api/seller/apply-quota-increase": {
6365
7524
  "post": {
6366
7525
  "summary": "POST /api/seller/apply-quota-increase",
@@ -6394,6 +7553,28 @@
6394
7553
  ]
6395
7554
  }
6396
7555
  },
7556
+ "/api/seller/shipping-settings": {
7557
+ "get": {
7558
+ "summary": "卖家读自己的店铺级设置(设置 UI 回显):接单模式 + 运费模板 + 询价开关。",
7559
+ "tags": [],
7560
+ "security": [
7561
+ {
7562
+ "bearerAuth": []
7563
+ }
7564
+ ]
7565
+ }
7566
+ },
7567
+ "/api/seller/shipping-template": {
7568
+ "post": {
7569
+ "summary": "POST /api/seller/shipping-template",
7570
+ "tags": [],
7571
+ "security": [
7572
+ {
7573
+ "bearerAuth": []
7574
+ }
7575
+ ]
7576
+ }
7577
+ },
6397
7578
  "/api/seller/withdraw-quota-application": {
6398
7579
  "post": {
6399
7580
  "summary": "POST /api/seller/withdraw-quota-application",
@@ -6423,6 +7604,17 @@
6423
7604
  ]
6424
7605
  }
6425
7606
  },
7607
+ "/api/sellers/me/direct-pay-report": {
7608
+ "get": {
7609
+ "summary": "from/to 均可选(闭区间,按日期比较 substr(created_at,1,10));返回汇总 + 按月 + 逐单(含平台费明细)。",
7610
+ "tags": [],
7611
+ "security": [
7612
+ {
7613
+ "bearerAuth": []
7614
+ }
7615
+ ]
7616
+ }
7617
+ },
6426
7618
  "/api/sellers/me/flash-sales": {
6427
7619
  "get": {
6428
7620
  "summary": "seller 自己的 flash sales(全部状态)",