@seasonkoh/webaz 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -212,8 +212,18 @@ Roles:
212
212
  },
213
213
  {
214
214
  name: 'webaz_search',
215
- description: `Search WebAZ marketplace listings. No auth required.
216
- Returns structured specs + logistics + after-sales + agent_summary (one-line decision hint).
215
+ description: `Search WebAZ marketplace + cross-platform anchor lookup. No auth required.
216
+
217
+ USE THIS when the user:
218
+ - gives KEYWORDS / filters (typical product discovery), OR
219
+ - pastes ANY external product URL/share-text from Taobao / Tmall / JD / PDD / 1688 / Douyin / Xiaohongshu
220
+ → WebAZ exact-matches against its anchor registry (canonical product fingerprints across
221
+ platforms). matched_by='none' means truly not indexed — do NOT silently fall back to keyword,
222
+ and do NOT guess similar products.
223
+
224
+ ⚠️ Do not skip this tool just because user gave you a URL — URL-paste is a first-class mode here,
225
+ NOT a separate browser-fetch capability. Returns structured specs + logistics + after-sales +
226
+ agent_summary (one-line decision hint).
217
227
 
218
228
  【Keyword search】Pass query / category / max_price / min_return_days / max_handling_hours.
219
229
 
@@ -269,10 +279,15 @@ Note: paste-link matching hits webaz.xyz production data, not your local webaz.d
269
279
  },
270
280
  {
271
281
  name: 'webaz_verify_price',
272
- description: `Lock product price before placing order — returns session_token.
273
- Recommended flow for agents: call this first to verify & lock price, then call webaz_place_order with session_token.
274
- Benefits: (1) order price matches displayed; (2) caller is alerted if price changed; (3) platform only liable for T0 price.
275
- session_token: 10-minute TTL, single-use.
282
+ description: `Lock product price + reserve stock window BEFORE webaz_place_order — returns session_token.
283
+
284
+ USE THIS for EVERY purchase, not just price-sensitive ones. Reasons:
285
+ (1) order price matches displayed (defeats flash-sale / hidden-fee races)
286
+ (2) caller is alerted if price changed between view and order
287
+ (3) protocol only liable for T0 price
288
+ (4) reduces stock-depletion race on hot items (session_token is single-use within 10min)
289
+
290
+ Skipping this is allowed but the agent then carries the price/stock-race risk itself. session_token: 10-minute TTL, single-use, pass it to webaz_place_order.
276
291
 
277
292
  ──
278
293
  中文:下单前锁价 — 10 分钟一次性 session_token;agent 应先调此再调 place_order。`,
@@ -288,8 +303,14 @@ session_token: 10-minute TTL, single-use.
288
303
  },
289
304
  {
290
305
  name: 'webaz_list_product',
291
- description: `Seller product catalog management (create / update / shelf / archive / query own listings).
292
- Requires seller-role api_key. On create, system auto-suggests stake (~15% of price) to secure buyer protection.
306
+ description: `⚠️ "list" = PUBLISH (verb), NOT "list out" (noun). Seller-only product catalog publishing & management.
307
+
308
+ USE THIS when SELLER wants to:
309
+ - publish a NEW product to their catalog, OR
310
+ - update / delist / relist / trash / delete an existing product they own, OR
311
+ - view their OWN listings (action=mine)
312
+
313
+ NOT for browsing the marketplace — for that use webaz_search (anyone, no auth). Requires seller-role api_key. On create, system auto-suggests stake (~15% of price) to secure buyer protection.
293
314
 
294
315
  Fill fields completely — better agent_summary helps buyer agents make comparison decisions (brand / return / handling / warranty).
295
316
  Note: for "exclusive price vs external link" listing, use PWA Web only — link claim needs crowd-verification.
@@ -419,7 +440,9 @@ Missing any deadline auto-judges fault against the responsible party and trigger
419
440
  },
420
441
  {
421
442
  name: 'webaz_update_order',
422
- description: `Update order status (each role can only perform their own actions).
443
+ description: `STATUS TRANSITIONS on an order (accept / ship / pickup / deliver / confirm / dispute) — NOT for editing order content (price/quantity/address are immutable after creation).
444
+
445
+ USE THIS to advance an order through its lifecycle. Each role can only perform their own actions (see action list).
423
446
 
424
447
  Seller actions:
425
448
  - accept: accept order (within 24h of payment)
@@ -476,7 +499,9 @@ Returns: current status, status history (who did what when), next responsible ac
476
499
  },
477
500
  {
478
501
  name: 'webaz_wallet',
479
- description: `Wallet query (balance + earnings stats + deposit/withdrawal/income history).
502
+ description: `Wallet READ-ONLY query (balance + earnings stats + deposit/withdrawal/income history).
503
+
504
+ ⚠️ Iron-Rule (must read before use): actual withdrawals / deposits / whitelist management require Passkey + email OTP via PWA Web only. This tool CANNOT move money — only query state. If user asks "send/withdraw/deposit WAZ", do NOT promise it via MCP; instead direct them to PWA Web.
480
505
 
481
506
  Actions:
482
507
  - view available balance + staked + in-escrow + total earnings + reputation tier (default)
@@ -484,9 +509,6 @@ Actions:
484
509
  - withdrawals last 10 withdrawal requests (with status / tx_hash)
485
510
  - income income breakdown: referral L1/L2/L3 + binary PV matching + sales net
486
511
 
487
- NOTE: actual withdrawals / deposits / whitelist management require Passkey + email OTP via PWA Web only.
488
- This is a security boundary — agents CANNOT bypass it. Use this tool for read-only queries only.
489
-
490
512
  ──
491
513
  中文:钱包查询(余额/收益/充提历史)。仅查询用,实际充提需 PWA Web + Passkey + 邮件 OTP,agent 不可绕过。`,
492
514
  inputSchema: {
@@ -522,7 +544,12 @@ Every status change (new order / ship / dispute / etc.) notifies relevant partic
522
544
  },
523
545
  {
524
546
  name: 'webaz_dispute',
525
- description: `Manage dispute lifecycle (L3 dispute system).
547
+ description: `Manage ORDER-DELIVERY dispute lifecycle (L3 dispute system, central arbitrator).
548
+
549
+ ⚠️ Different from webaz_claim_verify:
550
+ - webaz_dispute = order delivery problem (didn't arrive / wrong / damaged in transit / seller fraud) → central arbitrator + 120h ruling
551
+ - webaz_claim_verify = challenge a product CLAIM (brand / spec / ship time) → 3 crowd verifiers vote
552
+ Pick based on the actual problem: delivery/receiving = dispute; marketing-claim accuracy = claim_verify.
526
553
 
527
554
  When buyer claims item-not-as-described / damaged / seller fraud, first raise dispute via webaz_update_order action=dispute,
528
555
  then use this tool for follow-ups.
@@ -591,7 +618,12 @@ view / list_open / respond / add_evidence can be agent-proxied; only arbitrate n
591
618
  },
592
619
  {
593
620
  name: 'webaz_claim_verify',
594
- description: `Crowd-sourced claim verification — no central arbitrator, 3 eligible verifiers reach consensus by vote.
621
+ description: `Crowd-sourced PRODUCT-CLAIM verification — challenge seller's marketing claims (brand / spec / ship time / authenticity); 3 eligible verifiers reach consensus by vote.
622
+
623
+ ⚠️ Different from webaz_dispute:
624
+ - webaz_claim_verify = challenge a CLAIM about the product itself ("seller said 24h ship but didn't" / "said brand new but used")
625
+ - webaz_dispute = order-delivery problem (didn't arrive / arrived broken / wrong item) → central arbitrator
626
+ If unsure: did the buyer GET the item? If yes + problem with item itself → claim_verify. If no/damaged in transit → dispute.
595
627
 
596
628
  When to use:
597
629
  - Buyer: suspects a seller's product claim (e.g. "brand new sealed", "ships within 24h") → wants decentralized verification
@@ -660,7 +692,14 @@ Other actions (create / view / mine / available / eligibility / apply / appeal e
660
692
  },
661
693
  {
662
694
  name: 'webaz_skill',
663
- description: `L4-4 Skill marketplace — sellers publish reusable seller-side behaviour configs; buyer Agents subscribe with one click.
695
+ description: `L4-4 Skill marketplace — sellers publish reusable seller-side BEHAVIOUR configs; buyer Agents subscribe with one click.
696
+
697
+ USE THIS when:
698
+ - seller wants to install reusable selling behavior (auto-accept / catalog-sync / price-haggling / etc.), OR
699
+ - buyer agent wants to subscribe to seller's behaviour to enable priority discovery / auto-deal flows.
700
+
701
+ NOT a product search — for "find me X" use webaz_search.
702
+ NOT a KNOWLEDGE-content marketplace — for buying/selling templates / prompts / guides / checklists use webaz_skill_market (totally separate system, independent revenue flow).
664
703
 
665
704
  ⚠️ Important — Skill is NOT executable code distribution. There are exactly 5 typed Skill kinds (below), each accepts only **structured config parameters** (numbers / enums / amounts). There is NO path for an Agent to download and run arbitrary third-party code via this marketplace. Subscribing = setting a flag + data binding, not installing a plugin. (Common Web2 "plugin marketplace" risk model does NOT apply here.)
666
705
 
@@ -716,7 +755,9 @@ Actions:
716
755
  },
717
756
  {
718
757
  name: 'webaz_mykey',
719
- description: `Confirm account existence by handle + permanent_code. Returns redacted api_key hint only — full api_key disclosure requires PWA + Passkey verification (Iron-Rule).
758
+ description: `Account RECOVERY check — confirm account existence by handle + permanent_code when user has lost their api_key but still remembers handle + 6-char recovery code from registration. Returns redacted api_key hint only — full api_key disclosure requires PWA + Passkey verification (Iron-Rule).
759
+
760
+ USE THIS ONLY when user has lost api_key and provides handle + permanent_code. NOT for "show me my api_key" (you already have it if you're authenticated). NOT for looking up other users (use webaz_profile).
720
761
 
721
762
  Rate-limited: 5 attempts per handle per hour. Excessive failures lock the handle for 1 hour.
722
763
 
@@ -740,6 +781,9 @@ Returns:
740
781
  name: 'webaz_profile',
741
782
  description: `View your own profile / manage roles, AND view any user's public profile + content streams (个人主页内容流).
742
783
 
784
+ USE THIS when user wants info about a SPECIFIC PERSON (by usr_xxx / permanent code / @handle / name),
785
+ OR wants to see someone's listings / notes / activity stream. NOT for product keyword search — use webaz_search.
786
+
743
787
  Self actions (need api_key):
744
788
  - view show your profile & wallet & api_key hint
745
789
  - add_role add a new role
@@ -780,13 +824,15 @@ Public-profile actions:
780
824
  },
781
825
  {
782
826
  name: 'webaz_revoke_key',
783
- description: `Initiate api_key revocation. Iron-Rule: actual revocation requires PWA + Passkey confirmation — MCP only registers the intent and returns the PWA URL where you finish the action.
827
+ description: `Initiate api_key revocation (NO REPLACEMENT — old key dies, no new one issued). Iron-Rule: actual revocation requires PWA + Passkey confirmation — MCP only registers the intent and returns the PWA URL where you finish the action.
828
+
829
+ ⚠️ STRONG RECOMMENDATION: use webaz_rotate_key instead unless you intentionally want zero replacement (e.g. fully decommissioning the agent / device). Rotate = atomic swap (no access gap). Revoke = death + you re-register from scratch.
784
830
 
785
- Use when:
786
- - Your api_key was leaked or you suspect unauthorized access
787
- - You are decommissioning an agent / device
831
+ Use revoke (not rotate) when:
832
+ - You are PERMANENTLY decommissioning this agent / device, OR
833
+ - You want all access to die NOW with no fallback
788
834
 
789
- After PWA confirmation, the old api_key returns 401 on all tools. Plan ahead: have a new key (via webaz_rotate_key) before revoking, or you lose access.
835
+ After PWA confirmation, the old api_key returns 401 on all tools.
790
836
 
791
837
  ──
792
838
  中文:发起 api_key 吊销。Iron-Rule:真正吊销必须 PWA + Passkey 二次确认(agent 不能单方面执行不可逆操作)。MCP 仅登记意图,返回 PWA 确认 URL。`,
@@ -887,7 +933,11 @@ Returns the action result.`,
887
933
  },
888
934
  {
889
935
  name: 'webaz_nearby',
890
- description: 'Query anonymized nearby (~11km cell) purchase aggregation. k-anonymity ≥ 3 privacy guard. Or set/clear your coarse geo location (0.1° = 11km precision, never stores exact GPS).',
936
+ description: `Query anonymized nearby (~11km cell) purchase aggregation. k-anonymity ≥ 3 privacy guard. Or set/clear your coarse geo location (0.1° = 11km precision, never stores exact GPS).
937
+
938
+ USE THIS when user asks "what's popular/being bought near me / 我附近 / 同城" — geo-aggregated
939
+ view, no specific keyword. NOT for "find product X" — use webaz_search. NOT for "items shippable
940
+ to my address" — use webaz_search ship_to filter.`,
891
941
  inputSchema: {
892
942
  type: 'object',
893
943
  properties: {
@@ -921,7 +971,16 @@ Returns the action result.`,
921
971
  },
922
972
  {
923
973
  name: 'webaz_shareables',
924
- description: 'Manage your external content "shareables" (YouTube / TikTok / 小红书 / B 站 / IG / Twitter links bound to a product or anchor). WebAZ indexes only the URL, never the content bytes. Or query by product_id / anchor.',
974
+ description: `Bind your EXTERNAL content (YouTube / TikTok / 小红书 / B站 / IG / Twitter posts) to a WebAZ product turns your content into a referral-earning channel. WebAZ indexes only the URL, never the content bytes.
975
+
976
+ USE THIS when:
977
+ - creator/user wants to "anchor" their existing review/unboxing/recommendation video/post to a WebAZ product (or anchor) so future buyers clicking that content → registration / purchase counts toward THEIR referral commission, OR
978
+ - agent wants to look up "what external content is associated with this product / this anchor"
979
+
980
+ Differs from webaz_share_link (which generates a NEW short link for sharing) — shareables register your EXISTING content as the discovery surface.
981
+
982
+ ──
983
+ 中文:把你在 YouTube/TikTok/小红书/B站/IG/Twitter 已发的内容(测评/开箱/推荐)锚定到 WebAZ 商品 —— 让你的外部内容变成赚 referral 佣金的入口。WebAZ 只锚 URL,不取内容。区别于 webaz_share_link(那个是生成新短链)。`,
925
984
  inputSchema: {
926
985
  type: 'object',
927
986
  properties: {
@@ -942,6 +1001,10 @@ Returns the action result.`,
942
1001
  name: 'webaz_rfq',
943
1002
  description: `RFQ (Request-for-Quotation) — buyer posts demand, sellers bid within a time window.
944
1003
 
1004
+ USE THIS when buyer wants to POST a need (and have sellers come to them) — typically because
1005
+ webaz_search returned no good match, OR the buyer wants competing quotes (bulk / custom / unusual
1006
+ spec / time-sensitive). NOT a search tool. For browsing existing listings use webaz_search.
1007
+
945
1008
  Actions:
946
1009
  - create (buyer): publish RFQ; needs title/qty/max_price/category/urgency/award_mode
947
1010
  - mine (buyer): my RFQ list
@@ -990,7 +1053,10 @@ Shipping address: if omitted, falls back to webaz_default_address (set via that
990
1053
  },
991
1054
  {
992
1055
  name: 'webaz_bid',
993
- description: `Bid on RFQs (seller-side).
1056
+ description: `Bid on RFQs (seller-side, Request-for-Quotation).
1057
+
1058
+ USE THIS ONLY for RFQ bidding (when a buyer posted demand via webaz_rfq and you want to quote). For AUCTION bidding (English forward auction on a listed item) use webaz_auction action=bid — they are separate systems with different economics (RFQ has bid stake; auction has min_increment + sniper extension).
1059
+
994
1060
  Actions:
995
1061
  - submit: new bid; needs rfq_id + price + qty_offered + fulfillment_type; optional eta_hours/note
996
1062
  - patch: edit price/ETA/fulfillment/note (only active; stake delta auto-settled)
@@ -1018,7 +1084,9 @@ Actions:
1018
1084
  },
1019
1085
  {
1020
1086
  name: 'webaz_chat',
1021
- description: `Context-bound DM (no open DM only order / rfq / listing_qa contexts allowed).
1087
+ description: `Relay buyer↔seller (or RFQ partner) MESSAGES — context-bound DM, no open DM. Only order / rfq / listing_qa contexts allowed.
1088
+
1089
+ USE THIS when the user wants to communicate with the OTHER PARTY of a trade (e.g. "ask seller about return", "tell buyer about shipping delay", "answer Q&A on my listing"). NOT a general LLM chat — every message attaches to an order/rfq/listing_qa context. If the user just wants to chat with YOU (the agent), don't call this tool.
1022
1090
  Actions:
1023
1091
  - start: open conversation — needs kind + context_id (for rfq, also recipient_id)
1024
1092
  - list: my conversation list
@@ -1082,7 +1150,14 @@ Returns insufficient_data:true when data sparse.
1082
1150
  },
1083
1151
  {
1084
1152
  name: 'webaz_charity',
1085
- description: `Charity wish pool + repayment + community fund — double-anonymous + dual-signed anchoring + isolated prestige.
1153
+ description: `Charity WISH POOL + repayment + community FUND — double-anonymous + dual-signed anchoring + isolated prestige.
1154
+
1155
+ USE THIS when:
1156
+ - user wants to publish a "wish" (need help with money/service) for community fulfillment, OR
1157
+ - user wants to claim/fulfill someone else's wish, OR
1158
+ - user wants to donate to / browse the community charity fund (separate from per-order donation).
1159
+
1160
+ NOT for per-order charity donation — that's handled by webaz_place_order's donation_pct param (0.5% / 1% / 2% / 5% sent to charity_fund at order time). This tool is for the standalone wish-fulfillment economy.
1086
1161
  Actions:
1087
1162
  - list: browse public wishes (filter by category/target_kind; anonymous accessible)
1088
1163
  - detail: single wish details (commit_hash + fulfillment + repayments)
@@ -1210,6 +1285,10 @@ Kinds:
1210
1285
  {
1211
1286
  name: 'webaz_auction',
1212
1287
  description: `English forward auction — seller posts → buyers raise bids → anti-sniping extension → highest bid wins.
1288
+
1289
+ USE THIS when user wants to BID on auction items OR a seller wants to START an auction (rare goods,
1290
+ collectibles, price-discovery). NOT a regular product search — auctions are time-windowed events.
1291
+ For fixed-price items use webaz_search.
1213
1292
  Actions:
1214
1293
  - create (seller): start auction; needs title/qty/category/starting_price, optional min_increment/reserve_price/window_min/sniper_extend_min
1215
1294
  - browse: public board
@@ -1243,6 +1322,8 @@ Actions:
1243
1322
  {
1244
1323
  name: 'webaz_auto_bid',
1245
1324
  description: `Seller auto_bid Skill config — auto-quote on RFQ creation instantly.
1325
+
1326
+ USE THIS as a shortcut equivalent to webaz_skill install kind=auto_bid + ongoing config edits. Dedicated tool because auto_bid is the most-used Skill and needs frequent param tuning (max_eta_h / undercut_pct / daily_cap). For other Skill kinds use webaz_skill directly.
1246
1327
  Actions:
1247
1328
  - get: read current Skill config
1248
1329
  - set: create/update Skill (needs categories[] / regions[] / max_eta_h / bid_strategy etc.)
@@ -1322,6 +1403,10 @@ Actions:
1322
1403
  name: 'webaz_secondhand',
1323
1404
  description: `Secondhand market (个人闲置二手) — peer-to-peer pre-owned goods, 1% protocol fee, escrow-protected. Supports shipping and in-person handoff.
1324
1405
 
1406
+ USE THIS when user wants USED / pre-owned / 闲置 / 二手 items, OR wants to sell own used items.
1407
+ For NEW manufactured products use webaz_search. Note: secondhand and shop catalog are separate
1408
+ spaces — webaz_search does NOT return secondhand listings.
1409
+
1325
1410
  Actions:
1326
1411
  - browse list available items (filters: category / condition / region / min_price / max_price / query / sort; no auth needed; excludes your own when api_key given)
1327
1412
  - detail one item's detail + seller's other listings (item_id; no auth needed)
@@ -1371,6 +1456,12 @@ fulfillment: shipping / in_person / both
1371
1456
  name: 'webaz_trial',
1372
1457
  description: `Trial-for-review (测评免单) — sellers offer order refunds to buyers who post a qualifying review note; when the review reaches a target view threshold the order is auto-refunded.
1373
1458
 
1459
+ USE THIS when:
1460
+ - buyer asks "is there a trial / free-test / 测评免单 / 0 元试用 for this product?", OR
1461
+ - buyer has already ordered a product with a trial campaign and wants to claim the slot, OR
1462
+ - seller wants to launch a trial campaign to seed reviews.
1463
+ NOT a search tool — for product discovery use webaz_search (can filter by has_trial=true coming soon).
1464
+
1374
1465
  Anti-abuse is enforced server-side (buyer≠seller, must have a confirmed/completed order, account ≥3 days old, IP/UA rate limits, config snapshot at claim time) — MCP just passes through.
1375
1466
 
1376
1467
  Buyer actions:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seasonkoh/webaz",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Agent-native decentralized commerce protocol. Humans and AI agents trade on the same protocol via MCP tools.",
5
5
  "main": "dist/mcp.js",
6
6
  "bin": {