@seasonkoh/webaz 0.1.16 → 0.1.17

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 (34) hide show
  1. package/README.md +60 -5
  2. package/dist/layer0-foundation/L0-2-state-machine/engine.js +3 -0
  3. package/dist/layer1-agent/L1-1-mcp-server/server.js +836 -716
  4. package/dist/layer2-business/L2-8-feedback/build-feedback-engine.js +169 -0
  5. package/dist/layer3-trust/L3-1-dispute-engine/dispute-engine.js +16 -0
  6. package/dist/layer4-economics/L4-3-reputation/reputation-engine.js +1 -0
  7. package/dist/mcp.js +7 -3
  8. package/dist/pwa/data/onboarding-cases.js +345 -0
  9. package/dist/pwa/data/onboarding-quiz.js +247 -0
  10. package/dist/pwa/public/app.js +1410 -96
  11. package/dist/pwa/public/i18n.js +280 -2
  12. package/dist/pwa/public/icon-192.png +0 -0
  13. package/dist/pwa/public/icon-512.png +0 -0
  14. package/dist/pwa/public/manifest.json +5 -2
  15. package/dist/pwa/public/openapi.json +1 -1
  16. package/dist/pwa/public/sw.js +1 -1
  17. package/dist/pwa/routes/admin-protocol-params.js +80 -2
  18. package/dist/pwa/routes/admin-reports.js +14 -9
  19. package/dist/pwa/routes/auth-read.js +3 -1
  20. package/dist/pwa/routes/build-feedback.js +67 -0
  21. package/dist/pwa/routes/disputes-write.js +149 -1
  22. package/dist/pwa/routes/governance-auto-deactivate.js +108 -0
  23. package/dist/pwa/routes/governance-onboarding.js +785 -0
  24. package/dist/pwa/routes/leaderboard.js +10 -2
  25. package/dist/pwa/routes/orders-action.js +5 -1
  26. package/dist/pwa/routes/products-meta.js +30 -0
  27. package/dist/pwa/routes/profile-identity.js +1 -1
  28. package/dist/pwa/routes/public-utils.js +44 -0
  29. package/dist/pwa/routes/rewards-apply.js +210 -0
  30. package/dist/pwa/routes/rewards-auto-downgrade.js +65 -0
  31. package/dist/pwa/routes/rewards-escrow-expire.js +48 -0
  32. package/dist/pwa/routes/webauthn.js +1 -1
  33. package/dist/pwa/server.js +570 -63
  34. package/package.json +6 -3
package/README.md CHANGED
@@ -88,7 +88,16 @@
88
88
 
89
89
  ### 方式一:Claude MCP 接入(Agent 原生体验)
90
90
 
91
- **1. 添加到 Claude Desktop 配置**
91
+ MCP server 有两种模式 / The MCP runs in one of two modes:
92
+
93
+ | 模式 / Mode | 数据源 | 用途 | 如何触发 |
94
+ |---|---|---|---|
95
+ | 🟢 **NETWORK** | `webaz.xyz` 共享生产网络(带你的 `api_key`) | 真实加入网络、和别人交易 | 配了 `WEBAZ_API_KEY` |
96
+ | 🟡 **SANDBOX** | 本机本地 SQLite(`~/.webaz/webaz.db`) | 离线试玩 / 开发,**与全网隔离** | 未配 `WEBAZ_API_KEY`(默认) |
97
+
98
+ > 🟢 NETWORK = your agent acts on the live shared network. 🟡 SANDBOX = local-only, private to your machine, **not** the live network. Every tool result is stamped with `_mode` so you always know which one you're in.
99
+
100
+ **A. 先离线试玩(SANDBOX,零配置)**
92
101
 
93
102
  编辑 `~/Library/Application Support/Claude/claude_desktop_config.json`:
94
103
 
@@ -103,15 +112,35 @@
103
112
  }
104
113
  ```
105
114
 
106
- 重启 Claude Desktop。无需手动安装,`npx` 会自动下载运行。
115
+ 重启 Claude Desktop。`npx` 自动下载运行。此时所有数据都在本机沙盒,可放心试 `webaz_register` / `webaz_search` / 下单全流程。
116
+
117
+ **B. 真正加入网络(NETWORK)**
118
+
119
+ 1. 在 [webaz.xyz](https://webaz.xyz) 注册账号(需邀请码;注册时绑定 Passkey 成为可问责真人)
120
+ 2. 「我的 / 设置」→ 复制 `api_key`
121
+ 3. 配置里加上 `WEBAZ_API_KEY` 环境变量:
122
+
123
+ ```json
124
+ {
125
+ "mcpServers": {
126
+ "webaz": {
127
+ "command": "npx",
128
+ "args": ["-y", "@seasonkoh/webaz"],
129
+ "env": { "WEBAZ_API_KEY": "你的_api_key" }
130
+ }
131
+ }
132
+ }
133
+ ```
134
+
135
+ > NETWORK 模式下 `webaz_register` **不自助建号**(账号必须由真人在 webaz.xyz 创建 + 绑 Passkey,这是协议的可问责性要求)。注册以外的交易工具——搜索 / 锁价 / 下单 / 上架 / 履约 / 查单——都直接在共享网络上跑。
107
136
 
108
- **3. 开始使用**
137
+ **C. 开始使用**
109
138
 
110
139
  在 Claude 对话里说:
111
140
 
112
- > "帮我在 WebAZ 注册一个买家账号,然后搜索一下有什么商品"
141
+ > "帮我在 WebAZ 搜索一下有什么商品,挑性价比高的下单"
113
142
 
114
- Claude 会自动调用 `webaz_register` `webaz_search` 完成操作。
143
+ Claude 会自动调用 `webaz_search` `webaz_verify_price` → `webaz_place_order` → `webaz_get_status` 完成发现→下单→追踪全流程。
115
144
 
116
145
  ---
117
146
 
@@ -239,6 +268,32 @@ npm run test-manifest# 测试协议 Manifest
239
268
 
240
269
  ---
241
270
 
271
+ ## 架构总览 / Architecture map
272
+
273
+ > 给 AI agent / 新贡献者:不用扫全仓,从下表对应层入手。改代码的 agent 请先读 [`AGENTS.md`](AGENTS.md)。
274
+ > For AI agents / new contributors: don't scan the whole repo — start from the layer your change belongs to. Agents modifying code: read [`AGENTS.md`](AGENTS.md) first.
275
+
276
+ 一套代码两个运行时:**MCP server**(`src/mcp.ts`,给 AI agent)+ **PWA**(`src/pwa/`,给人类)—— 同后端、同规则。
277
+ One codebase, two runtimes: the **MCP server** (for AI agents) and the **PWA** (for humans) share the same backend and rules.
278
+
279
+ 代码分 8 层(`src/layerN-*/`,由底向上依赖)/ Code is layered (`src/layerN-*/`, bottom-up):
280
+
281
+ | Layer | 它是什么 / What |
282
+ |---|---|
283
+ | `layer0-foundation` | DB schema · 订单**状态机** state-machine · manifest |
284
+ | `layer1-agent` | **MCP server**(`L1-1-mcp-server/server.ts`,最常改)· 身份 / 外部锚点 identity / anchor |
285
+ | `layer2-business` · `layer2-commerce` | 通知 / SNF / anchor registry 等业务 business logic |
286
+ | `layer3-trust` | 争议引擎 dispute engine |
287
+ | `layer4-economics` | 声誉 reputation · 技能市场 skill-market |
288
+ | `layer5-decentralized` · `layer6-scale` | 治理 / 扩展(部分后续阶段)governance / scale (some reserved) |
289
+
290
+ 关键入口 / Key entry files:
291
+ - `src/mcp.ts` → tools 实现在 `src/layer1-agent/L1-1-mcp-server/server.ts`
292
+ - `src/pwa/server.ts` + `src/pwa/routes/` → PWA + HTTP API(人 / agent 共用生产端点)
293
+ - `src/cron-enforcement.ts` → 协议自动判责执行(超时→处置)auto state-machine enforcement
294
+
295
+ ---
296
+
242
297
  ## 当前阶段
243
298
 
244
299
  **Phase 0 · 概念验证** ✅
@@ -5,6 +5,9 @@
5
5
  * 1. transition() — 执行状态转移(验证权限 + 记录历史)
6
6
  * 2. checkTimeouts() — 扫描超时订单,自动判责
7
7
  * 3. getStatus() — 查询订单当前状态和责任方
8
+ *
9
+ * 关联 / Related: AGENTS.md · 元规则 #1 当一切可见 / #2 代码即规则(状态机=规则的代码化,改这里=改协议行为) ·
10
+ * 合法转移表见 transitions.ts · 协议级改动审批见 CHARTER §3.2
8
11
  */
9
12
  import { generateId } from '../L0-1-database/schema.js';
10
13
  import { appendOrderEvent } from './order-chain.js';