@seasonkoh/webaz 0.1.12 → 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.
@@ -279,10 +279,15 @@ Note: paste-link matching hits webaz.xyz production data, not your local webaz.d
279
279
  },
280
280
  {
281
281
  name: 'webaz_verify_price',
282
- description: `Lock product price before placing order — returns session_token.
283
- Recommended flow for agents: call this first to verify & lock price, then call webaz_place_order with session_token.
284
- Benefits: (1) order price matches displayed; (2) caller is alerted if price changed; (3) platform only liable for T0 price.
285
- 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.
286
291
 
287
292
  ──
288
293
  中文:下单前锁价 — 10 分钟一次性 session_token;agent 应先调此再调 place_order。`,
@@ -298,8 +303,14 @@ session_token: 10-minute TTL, single-use.
298
303
  },
299
304
  {
300
305
  name: 'webaz_list_product',
301
- description: `Seller product catalog management (create / update / shelf / archive / query own listings).
302
- 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.
303
314
 
304
315
  Fill fields completely — better agent_summary helps buyer agents make comparison decisions (brand / return / handling / warranty).
305
316
  Note: for "exclusive price vs external link" listing, use PWA Web only — link claim needs crowd-verification.
@@ -429,7 +440,9 @@ Missing any deadline auto-judges fault against the responsible party and trigger
429
440
  },
430
441
  {
431
442
  name: 'webaz_update_order',
432
- 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).
433
446
 
434
447
  Seller actions:
435
448
  - accept: accept order (within 24h of payment)
@@ -486,7 +499,9 @@ Returns: current status, status history (who did what when), next responsible ac
486
499
  },
487
500
  {
488
501
  name: 'webaz_wallet',
489
- 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.
490
505
 
491
506
  Actions:
492
507
  - view available balance + staked + in-escrow + total earnings + reputation tier (default)
@@ -494,9 +509,6 @@ Actions:
494
509
  - withdrawals last 10 withdrawal requests (with status / tx_hash)
495
510
  - income income breakdown: referral L1/L2/L3 + binary PV matching + sales net
496
511
 
497
- NOTE: actual withdrawals / deposits / whitelist management require Passkey + email OTP via PWA Web only.
498
- This is a security boundary — agents CANNOT bypass it. Use this tool for read-only queries only.
499
-
500
512
  ──
501
513
  中文:钱包查询(余额/收益/充提历史)。仅查询用,实际充提需 PWA Web + Passkey + 邮件 OTP,agent 不可绕过。`,
502
514
  inputSchema: {
@@ -532,7 +544,12 @@ Every status change (new order / ship / dispute / etc.) notifies relevant partic
532
544
  },
533
545
  {
534
546
  name: 'webaz_dispute',
535
- 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.
536
553
 
537
554
  When buyer claims item-not-as-described / damaged / seller fraud, first raise dispute via webaz_update_order action=dispute,
538
555
  then use this tool for follow-ups.
@@ -601,7 +618,12 @@ view / list_open / respond / add_evidence can be agent-proxied; only arbitrate n
601
618
  },
602
619
  {
603
620
  name: 'webaz_claim_verify',
604
- 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.
605
627
 
606
628
  When to use:
607
629
  - Buyer: suspects a seller's product claim (e.g. "brand new sealed", "ships within 24h") → wants decentralized verification
@@ -670,12 +692,14 @@ Other actions (create / view / mine / available / eligibility / apply / appeal e
670
692
  },
671
693
  {
672
694
  name: 'webaz_skill',
673
- 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.
674
696
 
675
697
  USE THIS when:
676
698
  - seller wants to install reusable selling behavior (auto-accept / catalog-sync / price-haggling / etc.), OR
677
699
  - buyer agent wants to subscribe to seller's behaviour to enable priority discovery / auto-deal flows.
678
- This is NOT a product search — for "find me X" use webaz_search.
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).
679
703
 
680
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.)
681
705
 
@@ -731,7 +755,9 @@ Actions:
731
755
  },
732
756
  {
733
757
  name: 'webaz_mykey',
734
- 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).
735
761
 
736
762
  Rate-limited: 5 attempts per handle per hour. Excessive failures lock the handle for 1 hour.
737
763
 
@@ -798,13 +824,15 @@ Public-profile actions:
798
824
  },
799
825
  {
800
826
  name: 'webaz_revoke_key',
801
- 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.
802
830
 
803
- Use when:
804
- - Your api_key was leaked or you suspect unauthorized access
805
- - 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
806
834
 
807
- 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.
808
836
 
809
837
  ──
810
838
  中文:发起 api_key 吊销。Iron-Rule:真正吊销必须 PWA + Passkey 二次确认(agent 不能单方面执行不可逆操作)。MCP 仅登记意图,返回 PWA 确认 URL。`,
@@ -943,7 +971,16 @@ to my address" — use webaz_search ship_to filter.`,
943
971
  },
944
972
  {
945
973
  name: 'webaz_shareables',
946
- 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(那个是生成新短链)。`,
947
984
  inputSchema: {
948
985
  type: 'object',
949
986
  properties: {
@@ -1016,7 +1053,10 @@ Shipping address: if omitted, falls back to webaz_default_address (set via that
1016
1053
  },
1017
1054
  {
1018
1055
  name: 'webaz_bid',
1019
- 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
+
1020
1060
  Actions:
1021
1061
  - submit: new bid; needs rfq_id + price + qty_offered + fulfillment_type; optional eta_hours/note
1022
1062
  - patch: edit price/ETA/fulfillment/note (only active; stake delta auto-settled)
@@ -1044,7 +1084,9 @@ Actions:
1044
1084
  },
1045
1085
  {
1046
1086
  name: 'webaz_chat',
1047
- 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.
1048
1090
  Actions:
1049
1091
  - start: open conversation — needs kind + context_id (for rfq, also recipient_id)
1050
1092
  - list: my conversation list
@@ -1108,7 +1150,14 @@ Returns insufficient_data:true when data sparse.
1108
1150
  },
1109
1151
  {
1110
1152
  name: 'webaz_charity',
1111
- 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.
1112
1161
  Actions:
1113
1162
  - list: browse public wishes (filter by category/target_kind; anonymous accessible)
1114
1163
  - detail: single wish details (commit_hash + fulfillment + repayments)
@@ -1273,6 +1322,8 @@ Actions:
1273
1322
  {
1274
1323
  name: 'webaz_auto_bid',
1275
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.
1276
1327
  Actions:
1277
1328
  - get: read current Skill config
1278
1329
  - set: create/update Skill (needs categories[] / regions[] / max_eta_h / bid_strategy etc.)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seasonkoh/webaz",
3
- "version": "0.1.12",
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": {