@wowok/agent-mcp 2.3.16 → 2.4.1

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 (136) hide show
  1. package/dist/customer/index.d.ts +9 -0
  2. package/dist/customer/index.js +9 -0
  3. package/dist/customer/industry-risks.d.ts +4 -0
  4. package/dist/customer/industry-risks.js +45 -31
  5. package/dist/customer/order-monitor.js +57 -57
  6. package/dist/customer/order-strategy.js +89 -89
  7. package/dist/customer/post-purchase.js +97 -97
  8. package/dist/customer/reminder-system.js +26 -26
  9. package/dist/customer/risk-assessment.js +46 -46
  10. package/dist/customer/types.d.ts +4 -4
  11. package/dist/customer/types.js +4 -4
  12. package/dist/customer/user-preferences.d.ts +3 -0
  13. package/dist/customer/user-preferences.js +59 -50
  14. package/dist/experience/intent-distill.js +6 -6
  15. package/dist/experience/realtime-feedback.js +17 -0
  16. package/dist/index.js +360 -273
  17. package/dist/knowledge/acquisition-flywheel.d.ts +3 -0
  18. package/dist/knowledge/acquisition-flywheel.js +73 -64
  19. package/dist/knowledge/arbitration-trust.js +10 -10
  20. package/dist/knowledge/demand-matching.js +8 -8
  21. package/dist/knowledge/dynamic-pricing.js +18 -18
  22. package/dist/knowledge/flywheel-loop.js +11 -11
  23. package/dist/knowledge/glossary.js +22 -22
  24. package/dist/knowledge/guard-ledger.d.ts +19 -0
  25. package/dist/knowledge/guard-ledger.js +246 -0
  26. package/dist/knowledge/guard-lint.d.ts +76 -0
  27. package/dist/knowledge/guard-lint.js +590 -0
  28. package/dist/knowledge/guard-puzzle.d.ts +188 -0
  29. package/dist/knowledge/guard-puzzle.js +804 -0
  30. package/dist/knowledge/guard-risk.d.ts +67 -0
  31. package/dist/knowledge/guard-risk.js +1046 -0
  32. package/dist/knowledge/guard-templates.d.ts +37 -0
  33. package/dist/knowledge/guard-templates.js +329 -0
  34. package/dist/knowledge/guard-translation.d.ts +58 -0
  35. package/dist/knowledge/guard-translation.js +1118 -0
  36. package/dist/knowledge/index.d.ts +17 -0
  37. package/dist/knowledge/index.js +17 -0
  38. package/dist/knowledge/industry-evolution.js +29 -29
  39. package/dist/knowledge/industry-generalizer.js +52 -52
  40. package/dist/knowledge/industry-registry.d.ts +1 -2
  41. package/dist/knowledge/industry-registry.js +43 -36
  42. package/dist/knowledge/intent-metrics.js +67 -67
  43. package/dist/knowledge/process-model.js +80 -80
  44. package/dist/knowledge/reputation-rules.js +9 -9
  45. package/dist/knowledge/reward-templates.js +51 -51
  46. package/dist/knowledge/safety-rules.js +63 -2
  47. package/dist/knowledge/tool-constraints.js +17 -11
  48. package/dist/knowledge/trust-metrics.js +26 -26
  49. package/dist/safety/confirm-gate.d.ts +4 -2
  50. package/dist/safety/confirm-gate.js +48 -4
  51. package/dist/schema/call/allocation.d.ts +24 -14
  52. package/dist/schema/call/arbitration.d.ts +142 -132
  53. package/dist/schema/call/base.d.ts +901 -43
  54. package/dist/schema/call/base.js +77 -13
  55. package/dist/schema/call/bridge-handler.js +15 -2
  56. package/dist/schema/call/bridge.d.ts +795 -27
  57. package/dist/schema/call/bridge.js +37 -0
  58. package/dist/schema/call/contact.d.ts +10 -0
  59. package/dist/schema/call/demand.d.ts +94 -84
  60. package/dist/schema/call/guard.d.ts +229 -46
  61. package/dist/schema/call/guard.js +50 -0
  62. package/dist/schema/call/handler.js +46 -14
  63. package/dist/schema/call/machine.d.ts +158 -138
  64. package/dist/schema/call/order.d.ts +10 -0
  65. package/dist/schema/call/payment.d.ts +10 -0
  66. package/dist/schema/call/permission.d.ts +314 -304
  67. package/dist/schema/call/personal.d.ts +10 -0
  68. package/dist/schema/call/progress.d.ts +10 -0
  69. package/dist/schema/call/proof.d.ts +20 -0
  70. package/dist/schema/call/repository.d.ts +32 -22
  71. package/dist/schema/call/reward.d.ts +10 -0
  72. package/dist/schema/call/semantic.d.ts +9 -2
  73. package/dist/schema/call/semantic.js +617 -25
  74. package/dist/schema/call/service.d.ts +20 -10
  75. package/dist/schema/call/treasury.d.ts +10 -0
  76. package/dist/schema/config/index.d.ts +18 -0
  77. package/dist/schema/config/index.js +17 -0
  78. package/dist/schema/index.d.ts +6 -0
  79. package/dist/schema/index.js +5 -0
  80. package/dist/schema/local/index.d.ts +9 -9
  81. package/dist/schema/local/index.js +9 -0
  82. package/dist/schema/local/wip.d.ts +39 -19
  83. package/dist/schema/local/wip.js +5 -5
  84. package/dist/schema/messenger/index.d.ts +376 -55
  85. package/dist/schema/messenger/index.js +19 -19
  86. package/dist/schema/operations.d.ts +1881 -681
  87. package/dist/schema/operations.js +91 -96
  88. package/dist/schema/project/index.d.ts +21 -0
  89. package/dist/schema/project/index.js +32 -0
  90. package/dist/schema/query/index.d.ts +1074 -168
  91. package/dist/schema/query/index.js +8 -8
  92. package/dist/schema/schema-query/index.d.ts +33 -0
  93. package/dist/schema/schema-query/index.js +36 -0
  94. package/dist/schema/schema-version.d.ts +25 -0
  95. package/dist/schema/schema-version.js +76 -0
  96. package/dist/schema/trust/index.d.ts +407 -0
  97. package/dist/schema/trust/index.js +113 -0
  98. package/dist/schema/utils/guard-parser.js +4 -4
  99. package/dist/schema/utils/node-parser.js +14 -14
  100. package/dist/schemas/bridge_operation.output.json +233 -9
  101. package/dist/schemas/bridge_operation.schema.json +67 -8
  102. package/dist/schemas/config_operation.output.json +18 -0
  103. package/dist/schemas/config_operation.schema.json +34 -0
  104. package/dist/schemas/guard-node-schema.json +82 -0
  105. package/dist/schemas/guard2file.schema.json +8 -0
  106. package/dist/schemas/index.json +19 -1
  107. package/dist/schemas/machineNode2file.schema.json +8 -0
  108. package/dist/schemas/messenger_operation.output.json +236 -10
  109. package/dist/schemas/onchain_events.output.json +718 -0
  110. package/dist/schemas/onchain_operations.output.json +286 -11
  111. package/dist/schemas/onchain_operations.schema.json +19 -16
  112. package/dist/schemas/onchain_operations_allocation.schema.json +8 -0
  113. package/dist/schemas/onchain_operations_arbitration.schema.json +8 -0
  114. package/dist/schemas/onchain_operations_contact.schema.json +8 -0
  115. package/dist/schemas/onchain_operations_demand.schema.json +8 -0
  116. package/dist/schemas/onchain_operations_gen_passport.schema.json +16 -0
  117. package/dist/schemas/onchain_operations_guard.schema.json +11 -16
  118. package/dist/schemas/onchain_operations_machine.schema.json +8 -0
  119. package/dist/schemas/onchain_operations_order.schema.json +8 -0
  120. package/dist/schemas/onchain_operations_payment.schema.json +8 -0
  121. package/dist/schemas/onchain_operations_permission.schema.json +8 -0
  122. package/dist/schemas/onchain_operations_personal.schema.json +8 -0
  123. package/dist/schemas/onchain_operations_progress.schema.json +8 -0
  124. package/dist/schemas/onchain_operations_repository.schema.json +8 -0
  125. package/dist/schemas/onchain_operations_reward.schema.json +8 -0
  126. package/dist/schemas/onchain_operations_service.schema.json +8 -0
  127. package/dist/schemas/onchain_operations_treasury.schema.json +8 -0
  128. package/dist/schemas/onchain_table_data.output.json +718 -0
  129. package/dist/schemas/project_operation.output.json +18 -0
  130. package/dist/schemas/project_operation.schema.json +42 -0
  131. package/dist/schemas/query_toolkit.schema.json +360 -368
  132. package/dist/schemas/schema_query.schema.json +6 -3
  133. package/dist/schemas/trust_score.output.json +327 -0
  134. package/dist/schemas/trust_score.schema.json +46 -0
  135. package/dist/schemas/wip_file.output.json +24 -1
  136. package/package.json +2 -2
@@ -2,10 +2,10 @@ import { CUSTOMER_INTELLIGENCE_VERSION } from "./types.js";
2
2
  const SCENARIO_SPECS = {
3
3
  info_asymmetry: {
4
4
  scenario: "info_asymmetry",
5
- merchant_tactic: "隐藏关键流程信息,Machine 不公开",
6
- user_strategy: "要求查看 machineNode2file 导出 + Guard 配置;通过 Messenger 询问关键节点",
7
- nash_equilibrium: "商家透明化(提供完整 Machine 文档)↔ 用户购买",
8
- fallback: "放弃购买",
5
+ merchant_tactic: "Hides key workflow information; Machine is not public",
6
+ user_strategy: "Request machineNode2file export + Guard configuration; ask about key nodes via Messenger",
7
+ nash_equilibrium: "Merchant becomes transparent (provides full Machine docs) ↔ User purchases",
8
+ fallback: "Abandon purchase",
9
9
  confidence: (puzzle) => {
10
10
  if (puzzle.workflow_analysis === undefined)
11
11
  return 0.9;
@@ -15,20 +15,20 @@ const SCENARIO_SPECS = {
15
15
  },
16
16
  rationale: (puzzle) => {
17
17
  if (puzzle.workflow_analysis === undefined) {
18
- return "流程结构分析缺失,信息严重不对称";
18
+ return "Workflow structure analysis missing; severe information asymmetry";
19
19
  }
20
20
  if (puzzle.completeness < 0.5) {
21
- return `信息完整度仅 ${Math.round(puzzle.completeness * 100)}%,关键碎片缺失`;
21
+ return `Information completeness is only ${Math.round(puzzle.completeness * 100)}%; key puzzle pieces missing`;
22
22
  }
23
- return "信息完整度尚可,但仍建议索取 Machine 文档";
23
+ return "Information completeness is acceptable, but still recommend requesting Machine docs";
24
24
  },
25
25
  },
26
26
  fund_safety: {
27
27
  scenario: "fund_safety",
28
- merchant_tactic: "无赔偿金或赔偿金不足",
29
- user_strategy: "要求商家补充 compensation_fund 到订单金额 100%;写入 WTS 协议",
30
- nash_equilibrium: "商家补足赔偿金用户购买",
31
- fallback: "选择其他商家或要求仲裁前置",
28
+ merchant_tactic: "No compensation fund or insufficient compensation fund",
29
+ user_strategy: "Require merchant to top up compensation_fund to 100% of order amount; write into WTS agreement",
30
+ nash_equilibrium: "Merchant tops up compensation fund User purchases",
31
+ fallback: "Choose another merchant or require arbitration upfront",
32
32
  confidence: (puzzle) => {
33
33
  const fund = puzzle.fund_safety;
34
34
  if (!fund)
@@ -40,19 +40,19 @@ const SCENARIO_SPECS = {
40
40
  rationale: (puzzle) => {
41
41
  const fund = puzzle.fund_safety;
42
42
  if (!fund)
43
- return "资金安全分析缺失";
43
+ return "Fund safety analysis missing";
44
44
  if (fund.compensation_covers_order === false) {
45
- return `赔偿金仅覆盖 ${Math.round(fund.compensation_ratio * 100)}% 订单金额`;
45
+ return `Compensation fund covers only ${Math.round(fund.compensation_ratio * 100)}% of order amount`;
46
46
  }
47
- return "赔偿金已覆盖订单金额";
47
+ return "Compensation fund covers the order amount";
48
48
  },
49
49
  },
50
50
  refund_dispute: {
51
51
  scenario: "refund_dispute",
52
- merchant_tactic: "无退款路径或退款 Allocator 配置不公平",
53
- user_strategy: "通过 Messenger 协商退款条款 + 要求 100%→Order Allocator",
54
- nash_equilibrium: "商家配置退款 Allocator ↔ 用户购买",
55
- fallback: "仲裁",
52
+ merchant_tactic: "No refund path or unfair refund Allocator configuration",
53
+ user_strategy: "Negotiate refund terms via Messenger + require 100%→Order Allocator",
54
+ nash_equilibrium: "Merchant configures refund Allocator ↔ User purchases",
55
+ fallback: "Arbitration",
56
56
  confidence: (puzzle) => {
57
57
  const wf = puzzle.workflow_analysis;
58
58
  if (!wf)
@@ -64,18 +64,18 @@ const SCENARIO_SPECS = {
64
64
  rationale: (puzzle) => {
65
65
  const wf = puzzle.workflow_analysis;
66
66
  if (!wf)
67
- return "流程结构缺失,无法确认退款路径";
67
+ return "Workflow structure missing; cannot confirm refund path";
68
68
  if (wf.has_refund_path === false)
69
- return "流程中未检测到退款路径";
70
- return "退款路径已存在";
69
+ return "No refund path detected in the workflow";
70
+ return "Refund path exists";
71
71
  },
72
72
  },
73
73
  arbitration_fairness: {
74
74
  scenario: "arbitration_fairness",
75
- merchant_tactic: "自建仲裁(owner=service owner",
76
- user_strategy: "要求第三方仲裁;通过 query_toolkit 验证 arb owner",
77
- nash_equilibrium: "第三方仲裁用户购买",
78
- fallback: "不购买",
75
+ merchant_tactic: "Self-built arbitration (owner=service owner)",
76
+ user_strategy: "Require third-party arbitration; verify arb owner via query_toolkit",
77
+ nash_equilibrium: "Third-party arbitration User purchases",
78
+ fallback: "Do not purchase",
79
79
  confidence: (puzzle) => {
80
80
  const trust = puzzle.trust_signals;
81
81
  if (!trust)
@@ -87,19 +87,19 @@ const SCENARIO_SPECS = {
87
87
  rationale: (puzzle) => {
88
88
  const trust = puzzle.trust_signals;
89
89
  if (!trust)
90
- return "信任信号缺失,无法判断仲裁独立性";
90
+ return "Trust signals missing; cannot judge arbitration independence";
91
91
  if (trust.arbitration_independent === false) {
92
- return "仲裁方与商家为同一地址,公正性存疑";
92
+ return "Arbitrator and merchant are the same address; fairness is questionable";
93
93
  }
94
- return "仲裁独立,公正性有保障";
94
+ return "Arbitration is independent; fairness is assured";
95
95
  },
96
96
  },
97
97
  pricing: {
98
98
  scenario: "pricing",
99
- merchant_tactic: "价格高于市场均价 20%+",
100
- user_strategy: "引用 puzzle.market_context.avg_price 谈判;要求折扣或 Reward",
101
- nash_equilibrium: "商家降价或提供 Reward ↔ 用户购买",
102
- fallback: "接受当前价格但要求额外权益",
99
+ merchant_tactic: "Price is 20%+ above market average",
100
+ user_strategy: "Cite puzzle.market_context.avg_price in negotiation; request discount or Reward",
101
+ nash_equilibrium: "Merchant lowers price or provides Reward ↔ User purchases",
102
+ fallback: "Accept current price but request additional benefits",
103
103
  confidence: (puzzle) => {
104
104
  const market = puzzle.market_context;
105
105
  if (!market)
@@ -111,16 +111,16 @@ const SCENARIO_SPECS = {
111
111
  rationale: (puzzle) => {
112
112
  const market = puzzle.market_context;
113
113
  if (!market)
114
- return "市场环境数据缺失";
115
- return `价格处于市场分位 ${Math.round(market.price_percentile * 100)}%`;
114
+ return "Market context data missing";
115
+ return `Price is at the ${Math.round(market.price_percentile * 100)}th market percentile`;
116
116
  },
117
117
  },
118
118
  delivery_sla: {
119
119
  scenario: "delivery_sla",
120
- merchant_tactic: "无里程碑节点 / 无交付时间承诺",
121
- user_strategy: "要求配置 milestone 节点 + 时间承诺写入 WTS",
122
- nash_equilibrium: "商家配置 SLA ↔ 用户购买",
123
- fallback: "接受但通过 Messenger 书面约定时间",
120
+ merchant_tactic: "No milestone nodes / no delivery time commitment",
121
+ user_strategy: "Require milestone nodes + write time commitment into WTS",
122
+ nash_equilibrium: "Merchant configures SLA ↔ User purchases",
123
+ fallback: "Accept but agree on timeline in writing via Messenger",
124
124
  confidence: (puzzle) => {
125
125
  const wf = puzzle.workflow_analysis;
126
126
  if (!wf)
@@ -132,18 +132,18 @@ const SCENARIO_SPECS = {
132
132
  rationale: (puzzle) => {
133
133
  const wf = puzzle.workflow_analysis;
134
134
  if (!wf)
135
- return "流程结构缺失,无法判断里程碑";
135
+ return "Workflow structure missing; cannot assess milestones";
136
136
  if (wf.has_milestone_nodes === false)
137
- return "未检测到里程碑节点";
138
- return "已配置里程碑节点";
137
+ return "No milestone nodes detected";
138
+ return "Milestone nodes are configured";
139
139
  },
140
140
  },
141
141
  quality_verification: {
142
142
  scenario: "quality_verification",
143
- merchant_tactic: "WIP hash 未验证",
144
- user_strategy: "要求 WIP hash 验证;要求样品或阶段性交付证据",
145
- nash_equilibrium: "商家提供 WIP 验证用户购买",
146
- fallback: "通过 Messenger 索取样品",
143
+ merchant_tactic: "WIP hash not verified",
144
+ user_strategy: "Require WIP hash verification; request samples or phased delivery evidence",
145
+ nash_equilibrium: "Merchant provides WIP verificationUser purchases",
146
+ fallback: "Request samples via Messenger",
147
147
  confidence: (puzzle) => {
148
148
  const basics = puzzle.service_basics;
149
149
  if (basics.wip_verified === false)
@@ -153,16 +153,16 @@ const SCENARIO_SPECS = {
153
153
  rationale: (puzzle) => {
154
154
  const basics = puzzle.service_basics;
155
155
  if (basics.wip_verified === false)
156
- return "WIP hash 未经验证,交付物可能被篡改";
157
- return "WIP hash 已验证";
156
+ return "WIP hash is unverified; deliverables may have been tampered with";
157
+ return "WIP hash is verified";
158
158
  },
159
159
  },
160
160
  after_sales: {
161
161
  scenario: "after_sales",
162
- merchant_tactic: " Messenger 或售后支持",
163
- user_strategy: "要求配置 Messenger;要求写入售后条款",
164
- nash_equilibrium: "商家提供售后通道用户购买",
165
- fallback: "通过 Contact 通道替代",
162
+ merchant_tactic: "No Messenger or post-sale support",
163
+ user_strategy: "Require Messenger to be configured; require post-sale terms to be written down",
164
+ nash_equilibrium: "Merchant provides post-sale channel User purchases",
165
+ fallback: "Use Contact channel as a substitute",
166
166
  confidence: (puzzle) => {
167
167
  const trust = puzzle.trust_signals;
168
168
  if (!trust)
@@ -174,10 +174,10 @@ const SCENARIO_SPECS = {
174
174
  rationale: (puzzle) => {
175
175
  const trust = puzzle.trust_signals;
176
176
  if (!trust)
177
- return "信任信号缺失,无法确认 Messenger";
177
+ return "Trust signals missing; cannot confirm Messenger";
178
178
  if (trust.has_messenger === false)
179
- return "未配置 Messenger,售后无通道";
180
- return "已配置 Messenger";
179
+ return "Messenger is not configured; no post-sale channel";
180
+ return "Messenger is configured";
181
181
  },
182
182
  },
183
183
  };
@@ -233,22 +233,22 @@ export function flowMigrationStrategy(puzzle) {
233
233
  const wf = puzzle.workflow_analysis;
234
234
  if (!wf || wf.machine_published === false) {
235
235
  return {
236
- strategy: "Machine 未发布,强烈建议要求商家发布后再下单",
236
+ strategy: "Machine is not published; strongly recommend requiring the merchant to publish before ordering",
237
237
  risk: "high",
238
- advice: "Machine 未发布意味着流程尚未生效,下单后订单可能无法按预期路径推进。建议通过 Messenger 要求商家先发布 Machine 再下单。",
238
+ advice: "An unpublished Machine means the workflow is not yet in effect; after ordering, the order may not advance along the expected path. Suggest asking the merchant via Messenger to publish the Machine before placing the order.",
239
239
  };
240
240
  }
241
241
  if (wf.machine_paused === true) {
242
242
  return {
243
- strategy: "Machine 已暂停,确认原因后再下单",
243
+ strategy: "Machine is paused; confirm the reason before ordering",
244
244
  risk: "medium",
245
- advice: "Machine 已被商家暂停,可能是临时维护或主动停售。建议通过 Messenger 询问暂停原因并确认恢复时间后再下单。",
245
+ advice: "The Machine has been paused by the merchant; it may be temporary maintenance or an active delisting. Suggest asking the merchant via Messenger about the reason and confirming the resumption time before ordering.",
246
246
  };
247
247
  }
248
248
  return {
249
- strategy: "可放心下单,流程稳定",
249
+ strategy: "Safe to order; workflow is stable",
250
250
  risk: "low",
251
- advice: "Machine 已发布且未暂停,流程处于活跃状态,可放心下单。仍建议下单后通过 Progress 节点监控推进。",
251
+ advice: "The Machine is published and not paused; the workflow is active and it is safe to order. Still recommend monitoring progress via Progress nodes after ordering.",
252
252
  };
253
253
  }
254
254
  export function repeatGameStrategy(puzzle, history) {
@@ -259,26 +259,26 @@ export function repeatGameStrategy(puzzle, history) {
259
259
  ? Math.round((history.disputes / history.completed) * 100)
260
260
  : 0;
261
261
  return {
262
- strategy: "已建立长期信任,可考虑批量下单/优惠谈判",
262
+ strategy: "Long-term trust established; consider bulk ordering / discount negotiation",
263
263
  is_long_term_partner: true,
264
- advice: `历史已完成 ${history.completed} 单,争议率 ${disputeRate}%,信任度较高。` +
265
- "可考虑批量下单以争取折扣,或协商长期合作协议。仍建议保留 WTS 凭证以备后续维权。",
264
+ advice: `Historical completed orders: ${history.completed}, dispute rate: ${disputeRate}%, trust level is high. ` +
265
+ "Consider bulk ordering to negotiate discounts, or negotiate a long-term cooperation agreement. Still recommend keeping WTS evidence for future rights protection.",
266
266
  };
267
267
  }
268
268
  if (history.completed < 5) {
269
269
  return {
270
- strategy: "首次合作,建议先小单测试,建立信任后再扩大",
270
+ strategy: "First-time cooperation; recommend a small test order before scaling up once trust is established",
271
271
  is_long_term_partner: false,
272
- advice: `历史合作仅 ${history.completed} 单,样本不足以判断长期信任。` +
273
- "建议先用小额订单测试商家履约能力与沟通效率," +
274
- "积累信任后再扩大订单规模。重点关注退款路径与仲裁配置。",
272
+ advice: `Only ${history.completed} historical order(s); sample is insufficient to judge long-term trust. ` +
273
+ "Recommend testing the merchant's fulfillment and communication efficiency with a small order first, " +
274
+ "and scaling up once trust is accumulated. Focus on refund path and arbitration configuration.",
275
275
  };
276
276
  }
277
277
  const disputeRate = Math.round((history.disputes / history.completed) * 100);
278
278
  return {
279
- strategy: "历史争议率较高,建议谨慎下单并加强风险保障",
279
+ strategy: "Historical dispute rate is high; recommend ordering with caution and strengthening risk safeguards",
280
280
  is_long_term_partner: false,
281
- advice: `历史 ${history.completed} 单中争议率 ${disputeRate}% 偏高,建议本次下单要求商家补足赔偿金、写入 WTS 协议,并强化仲裁前置条款。`,
281
+ advice: `Among ${history.completed} historical orders, the dispute rate of ${disputeRate}% is high. Recommend requiring the merchant to top up the compensation fund, write terms into the WTS agreement, and strengthen upfront arbitration clauses for this order.`,
282
282
  };
283
283
  }
284
284
  export function rightsProtectionStrategy(puzzle, prefs) {
@@ -290,56 +290,56 @@ export function rightsProtectionStrategy(puzzle, prefs) {
290
290
  const arbIndependent = puzzle.trust_signals?.arbitration_independent ?? true;
291
291
  const compensationRatio = puzzle.fund_safety?.compensation_ratio ?? 0;
292
292
  if (!hasRefundPath) {
293
- required.push("要求商家配置退款 Allocator100%→Order");
293
+ required.push("Require the merchant to configure a refund Allocator (100%→Order)");
294
294
  }
295
295
  else {
296
- required.push("确认退款路径可用");
296
+ required.push("Confirm the refund path is available");
297
297
  }
298
298
  if (!hasArbPath) {
299
- required.push("要求商家绑定第三方仲裁服务");
299
+ required.push("Require the merchant to bind a third-party arbitration service");
300
300
  }
301
301
  else if (!arbIndependent) {
302
- required.push("要求商家更换为第三方仲裁(当前为自建仲裁)");
302
+ required.push("Require the merchant to switch to third-party arbitration (currently self-built arbitration)");
303
303
  }
304
304
  else {
305
- required.push("确认仲裁路径可用");
305
+ required.push("Confirm the arbitration path is available");
306
306
  }
307
307
  if (compensationRatio < 1) {
308
- required.push(`要求商家补充赔偿金至订单金额 100%(当前覆盖 ${Math.round(compensationRatio * 100)}%)`);
308
+ required.push(`Require the merchant to top up the compensation fund to 100% of the order amount (currently covers ${Math.round(compensationRatio * 100)}%)`);
309
309
  }
310
310
  else {
311
- required.push("确认赔偿金充足");
311
+ required.push("Confirm the compensation fund is sufficient");
312
312
  }
313
313
  if (prefs?.require_arbitration && !hasArbPath) {
314
- required.push("用户偏好要求必备仲裁");
314
+ required.push("User preference requires mandatory arbitration");
315
315
  }
316
316
  if (prefs?.require_compensation_fund && compensationRatio < 1) {
317
- required.push("用户偏好要求必备赔偿金");
317
+ required.push("User preference requires a mandatory compensation fund");
318
318
  }
319
- negotiable.push("价格(基于市场均价谈判)");
320
- negotiable.push("交付时间(通过 Messenger 书面约定)");
321
- negotiable.push("Reward 或折扣(基于 puzzle.market_context");
319
+ negotiable.push("Price (negotiate based on market average)");
320
+ negotiable.push("Delivery time (agree in writing via Messenger)");
321
+ negotiable.push("Reward or discount (based on puzzle.market_context)");
322
322
  if (prefs) {
323
323
  if (prefs.bargain_hunting > 0.5) {
324
- negotiable.push("额外折扣(用户占便宜心态强烈)");
324
+ negotiable.push("Additional discount (user has a strong bargain-hunting tendency)");
325
325
  }
326
326
  if (prefs.reward_seeking) {
327
- negotiable.push("Reward 激励条款");
327
+ negotiable.push("Reward incentive terms");
328
328
  }
329
329
  if (prefs.delivery_speed_priority === "urgent") {
330
- negotiable.push("加急交付承诺");
330
+ negotiable.push("Expedited delivery commitment");
331
331
  }
332
332
  }
333
333
  if (!hasArbPath && !hasRefundPath) {
334
- red_lines.push("无仲裁且无退款路径:商家可任意违约,资金无保障,建议不购买");
334
+ red_lines.push("No arbitration and no refund path: the merchant can breach at will, funds are unprotected; recommend not purchasing");
335
335
  }
336
336
  if (compensationRatio < 0.5) {
337
- red_lines.push(`赔偿金覆盖率仅 ${Math.round(compensationRatio * 100)}%(<50%):订单失败时赔付严重不足,建议不购买`);
337
+ red_lines.push(`Compensation fund coverage is only ${Math.round(compensationRatio * 100)}% (<50%): payout is severely insufficient if the order fails; recommend not purchasing`);
338
338
  }
339
339
  if (prefs) {
340
340
  const trustScore = puzzle.trust_signals?.trust_score ?? 100;
341
341
  if (trustScore < prefs.min_trust_score) {
342
- red_lines.push(`综合信任分 ${trustScore} 低于用户最低要求 ${prefs.min_trust_score}`);
342
+ red_lines.push(`Composite trust score ${trustScore} is below the user's minimum requirement of ${prefs.min_trust_score}`);
343
343
  }
344
344
  }
345
345
  return {
@@ -360,12 +360,12 @@ function applyPrefsToFallback(scenario, defaultFallback, prefs) {
360
360
  return defaultFallback;
361
361
  if (prefs.risk_appetite === "conservative") {
362
362
  if (scenario === "arbitration_fairness" || scenario === "fund_safety") {
363
- return "放弃购买(保守型用户)";
363
+ return "Abandon purchase (conservative user)";
364
364
  }
365
365
  }
366
366
  if (prefs.risk_appetite === "aggressive") {
367
367
  if (scenario === "pricing") {
368
- return "接受当前价格但要求额外 Reward 或折扣";
368
+ return "Accept current price but request additional Reward or discount";
369
369
  }
370
370
  }
371
371
  return defaultFallback;