@crossly/mcp 0.0.0-stage → 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +126 -2
- package/dist/api.d.ts +44 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +79 -0
- package/dist/api.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -0
- package/dist/registry.d.ts +11 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +345 -0
- package/dist/registry.js.map +1 -0
- package/dist/tools/account.d.ts +3 -0
- package/dist/tools/account.d.ts.map +1 -0
- package/dist/tools/account.js +164 -0
- package/dist/tools/account.js.map +1 -0
- package/dist/tools/accounts.d.ts +3 -0
- package/dist/tools/accounts.d.ts.map +1 -0
- package/dist/tools/accounts.js +471 -0
- package/dist/tools/accounts.js.map +1 -0
- package/dist/tools/action_log.d.ts +3 -0
- package/dist/tools/action_log.d.ts.map +1 -0
- package/dist/tools/action_log.js +81 -0
- package/dist/tools/action_log.js.map +1 -0
- package/dist/tools/ads.d.ts +45 -0
- package/dist/tools/ads.d.ts.map +1 -0
- package/dist/tools/ads.js +233 -0
- package/dist/tools/ads.js.map +1 -0
- package/dist/tools/ai.d.ts +3 -0
- package/dist/tools/ai.d.ts.map +1 -0
- package/dist/tools/ai.js +437 -0
- package/dist/tools/ai.js.map +1 -0
- package/dist/tools/analytics.d.ts +3 -0
- package/dist/tools/analytics.d.ts.map +1 -0
- package/dist/tools/analytics.js +193 -0
- package/dist/tools/analytics.js.map +1 -0
- package/dist/tools/automation/chains.d.ts +10 -0
- package/dist/tools/automation/chains.d.ts.map +1 -0
- package/dist/tools/automation/chains.js +180 -0
- package/dist/tools/automation/chains.js.map +1 -0
- package/dist/tools/automation/network.d.ts +8 -0
- package/dist/tools/automation/network.d.ts.map +1 -0
- package/dist/tools/automation/network.js +102 -0
- package/dist/tools/automation/network.js.map +1 -0
- package/dist/tools/automation/notifications.d.ts +8 -0
- package/dist/tools/automation/notifications.d.ts.map +1 -0
- package/dist/tools/automation/notifications.js +123 -0
- package/dist/tools/automation/notifications.js.map +1 -0
- package/dist/tools/automation/recipes.d.ts +11 -0
- package/dist/tools/automation/recipes.d.ts.map +1 -0
- package/dist/tools/automation/recipes.js +82 -0
- package/dist/tools/automation/recipes.js.map +1 -0
- package/dist/tools/automation/rules.d.ts +12 -0
- package/dist/tools/automation/rules.d.ts.map +1 -0
- package/dist/tools/automation/rules.js +296 -0
- package/dist/tools/automation/rules.js.map +1 -0
- package/dist/tools/automation.d.ts +31 -0
- package/dist/tools/automation.d.ts.map +1 -0
- package/dist/tools/automation.js +41 -0
- package/dist/tools/automation.js.map +1 -0
- package/dist/tools/brand-drops.d.ts +3 -0
- package/dist/tools/brand-drops.d.ts.map +1 -0
- package/dist/tools/brand-drops.js +145 -0
- package/dist/tools/brand-drops.js.map +1 -0
- package/dist/tools/buyer-commerce.d.ts +3 -0
- package/dist/tools/buyer-commerce.d.ts.map +1 -0
- package/dist/tools/buyer-commerce.js +189 -0
- package/dist/tools/buyer-commerce.js.map +1 -0
- package/dist/tools/buyer-gift-cards.d.ts +12 -0
- package/dist/tools/buyer-gift-cards.d.ts.map +1 -0
- package/dist/tools/buyer-gift-cards.js +86 -0
- package/dist/tools/buyer-gift-cards.js.map +1 -0
- package/dist/tools/buyer-lists.d.ts +3 -0
- package/dist/tools/buyer-lists.d.ts.map +1 -0
- package/dist/tools/buyer-lists.js +245 -0
- package/dist/tools/buyer-lists.js.map +1 -0
- package/dist/tools/buyer-live.d.ts +22 -0
- package/dist/tools/buyer-live.d.ts.map +1 -0
- package/dist/tools/buyer-live.js +291 -0
- package/dist/tools/buyer-live.js.map +1 -0
- package/dist/tools/buyer-orders.d.ts +3 -0
- package/dist/tools/buyer-orders.d.ts.map +1 -0
- package/dist/tools/buyer-orders.js +275 -0
- package/dist/tools/buyer-orders.js.map +1 -0
- package/dist/tools/buyer-packs.d.ts +3 -0
- package/dist/tools/buyer-packs.d.ts.map +1 -0
- package/dist/tools/buyer-packs.js +53 -0
- package/dist/tools/buyer-packs.js.map +1 -0
- package/dist/tools/buyer-w7.d.ts +3 -0
- package/dist/tools/buyer-w7.d.ts.map +1 -0
- package/dist/tools/buyer-w7.js +95 -0
- package/dist/tools/buyer-w7.js.map +1 -0
- package/dist/tools/buyer-wave3.d.ts +3 -0
- package/dist/tools/buyer-wave3.d.ts.map +1 -0
- package/dist/tools/buyer-wave3.js +291 -0
- package/dist/tools/buyer-wave3.js.map +1 -0
- package/dist/tools/buyer-xmarket-extras.d.ts +3 -0
- package/dist/tools/buyer-xmarket-extras.d.ts.map +1 -0
- package/dist/tools/buyer-xmarket-extras.js +280 -0
- package/dist/tools/buyer-xmarket-extras.js.map +1 -0
- package/dist/tools/buyer-xmarket.d.ts +3 -0
- package/dist/tools/buyer-xmarket.d.ts.map +1 -0
- package/dist/tools/buyer-xmarket.js +310 -0
- package/dist/tools/buyer-xmarket.js.map +1 -0
- package/dist/tools/buyer.d.ts +21 -0
- package/dist/tools/buyer.d.ts.map +1 -0
- package/dist/tools/buyer.js +451 -0
- package/dist/tools/buyer.js.map +1 -0
- package/dist/tools/catalog-lookup.d.ts +3 -0
- package/dist/tools/catalog-lookup.d.ts.map +1 -0
- package/dist/tools/catalog-lookup.js +40 -0
- package/dist/tools/catalog-lookup.js.map +1 -0
- package/dist/tools/catalog-matches.d.ts +10 -0
- package/dist/tools/catalog-matches.d.ts.map +1 -0
- package/dist/tools/catalog-matches.js +91 -0
- package/dist/tools/catalog-matches.js.map +1 -0
- package/dist/tools/cbx-ops.d.ts +11 -0
- package/dist/tools/cbx-ops.d.ts.map +1 -0
- package/dist/tools/cbx-ops.js +35 -0
- package/dist/tools/cbx-ops.js.map +1 -0
- package/dist/tools/cbx-rewards/ad-credit.d.ts +3 -0
- package/dist/tools/cbx-rewards/ad-credit.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/ad-credit.js +72 -0
- package/dist/tools/cbx-rewards/ad-credit.js.map +1 -0
- package/dist/tools/cbx-rewards/balances.d.ts +3 -0
- package/dist/tools/cbx-rewards/balances.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/balances.js +114 -0
- package/dist/tools/cbx-rewards/balances.js.map +1 -0
- package/dist/tools/cbx-rewards/credit.d.ts +3 -0
- package/dist/tools/cbx-rewards/credit.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/credit.js +131 -0
- package/dist/tools/cbx-rewards/credit.js.map +1 -0
- package/dist/tools/cbx-rewards/disbursements.d.ts +3 -0
- package/dist/tools/cbx-rewards/disbursements.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/disbursements.js +146 -0
- package/dist/tools/cbx-rewards/disbursements.js.map +1 -0
- package/dist/tools/cbx-rewards/earn-boosts.d.ts +3 -0
- package/dist/tools/cbx-rewards/earn-boosts.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/earn-boosts.js +152 -0
- package/dist/tools/cbx-rewards/earn-boosts.js.map +1 -0
- package/dist/tools/cbx-rewards/redemptions.d.ts +3 -0
- package/dist/tools/cbx-rewards/redemptions.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/redemptions.js +61 -0
- package/dist/tools/cbx-rewards/redemptions.js.map +1 -0
- package/dist/tools/cbx-rewards/staking.d.ts +3 -0
- package/dist/tools/cbx-rewards/staking.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/staking.js +74 -0
- package/dist/tools/cbx-rewards/staking.js.map +1 -0
- package/dist/tools/cbx-rewards/tier-admin.d.ts +3 -0
- package/dist/tools/cbx-rewards/tier-admin.d.ts.map +1 -0
- package/dist/tools/cbx-rewards/tier-admin.js +75 -0
- package/dist/tools/cbx-rewards/tier-admin.js.map +1 -0
- package/dist/tools/cbx-rewards.d.ts +40 -0
- package/dist/tools/cbx-rewards.d.ts.map +1 -0
- package/dist/tools/cbx-rewards.js +56 -0
- package/dist/tools/cbx-rewards.js.map +1 -0
- package/dist/tools/cbx-wallet-payments.d.ts +35 -0
- package/dist/tools/cbx-wallet-payments.d.ts.map +1 -0
- package/dist/tools/cbx-wallet-payments.js +156 -0
- package/dist/tools/cbx-wallet-payments.js.map +1 -0
- package/dist/tools/cbx.d.ts +23 -0
- package/dist/tools/cbx.d.ts.map +1 -0
- package/dist/tools/cbx.js +474 -0
- package/dist/tools/cbx.js.map +1 -0
- package/dist/tools/comp_watchlists.d.ts +3 -0
- package/dist/tools/comp_watchlists.d.ts.map +1 -0
- package/dist/tools/comp_watchlists.js +127 -0
- package/dist/tools/comp_watchlists.js.map +1 -0
- package/dist/tools/connected_apps.d.ts +12 -0
- package/dist/tools/connected_apps.d.ts.map +1 -0
- package/dist/tools/connected_apps.js +42 -0
- package/dist/tools/connected_apps.js.map +1 -0
- package/dist/tools/cosm/attestations.d.ts +3 -0
- package/dist/tools/cosm/attestations.d.ts.map +1 -0
- package/dist/tools/cosm/attestations.js +102 -0
- package/dist/tools/cosm/attestations.js.map +1 -0
- package/dist/tools/cosm/auction.d.ts +3 -0
- package/dist/tools/cosm/auction.d.ts.map +1 -0
- package/dist/tools/cosm/auction.js +97 -0
- package/dist/tools/cosm/auction.js.map +1 -0
- package/dist/tools/cosm/cosmetics.d.ts +3 -0
- package/dist/tools/cosm/cosmetics.d.ts.map +1 -0
- package/dist/tools/cosm/cosmetics.js +95 -0
- package/dist/tools/cosm/cosmetics.js.map +1 -0
- package/dist/tools/cosm/designer.d.ts +3 -0
- package/dist/tools/cosm/designer.d.ts.map +1 -0
- package/dist/tools/cosm/designer.js +224 -0
- package/dist/tools/cosm/designer.js.map +1 -0
- package/dist/tools/cosm/fusion-handles.d.ts +3 -0
- package/dist/tools/cosm/fusion-handles.d.ts.map +1 -0
- package/dist/tools/cosm/fusion-handles.js +82 -0
- package/dist/tools/cosm/fusion-handles.js.map +1 -0
- package/dist/tools/cosm/pegs.d.ts +3 -0
- package/dist/tools/cosm/pegs.d.ts.map +1 -0
- package/dist/tools/cosm/pegs.js +112 -0
- package/dist/tools/cosm/pegs.js.map +1 -0
- package/dist/tools/cosm/storefront.d.ts +3 -0
- package/dist/tools/cosm/storefront.d.ts.map +1 -0
- package/dist/tools/cosm/storefront.js +138 -0
- package/dist/tools/cosm/storefront.js.map +1 -0
- package/dist/tools/cosm/supply.d.ts +3 -0
- package/dist/tools/cosm/supply.d.ts.map +1 -0
- package/dist/tools/cosm/supply.js +67 -0
- package/dist/tools/cosm/supply.js.map +1 -0
- package/dist/tools/cosm/withdrawals.d.ts +3 -0
- package/dist/tools/cosm/withdrawals.d.ts.map +1 -0
- package/dist/tools/cosm/withdrawals.js +63 -0
- package/dist/tools/cosm/withdrawals.js.map +1 -0
- package/dist/tools/cosm.d.ts +57 -0
- package/dist/tools/cosm.d.ts.map +1 -0
- package/dist/tools/cosm.js +75 -0
- package/dist/tools/cosm.js.map +1 -0
- package/dist/tools/customers.d.ts +3 -0
- package/dist/tools/customers.d.ts.map +1 -0
- package/dist/tools/customers.js +147 -0
- package/dist/tools/customers.js.map +1 -0
- package/dist/tools/dao.d.ts +53 -0
- package/dist/tools/dao.d.ts.map +1 -0
- package/dist/tools/dao.js +351 -0
- package/dist/tools/dao.js.map +1 -0
- package/dist/tools/devices.d.ts +3 -0
- package/dist/tools/devices.d.ts.map +1 -0
- package/dist/tools/devices.js +46 -0
- package/dist/tools/devices.js.map +1 -0
- package/dist/tools/drops.d.ts +3 -0
- package/dist/tools/drops.d.ts.map +1 -0
- package/dist/tools/drops.js +126 -0
- package/dist/tools/drops.js.map +1 -0
- package/dist/tools/embeds.d.ts +12 -0
- package/dist/tools/embeds.d.ts.map +1 -0
- package/dist/tools/embeds.js +80 -0
- package/dist/tools/embeds.js.map +1 -0
- package/dist/tools/evidence.d.ts +11 -0
- package/dist/tools/evidence.d.ts.map +1 -0
- package/dist/tools/evidence.js +42 -0
- package/dist/tools/evidence.js.map +1 -0
- package/dist/tools/friends-boards-clubs.d.ts +3 -0
- package/dist/tools/friends-boards-clubs.d.ts.map +1 -0
- package/dist/tools/friends-boards-clubs.js +157 -0
- package/dist/tools/friends-boards-clubs.js.map +1 -0
- package/dist/tools/fulfillment.d.ts +3 -0
- package/dist/tools/fulfillment.d.ts.map +1 -0
- package/dist/tools/fulfillment.js +71 -0
- package/dist/tools/fulfillment.js.map +1 -0
- package/dist/tools/games.d.ts +10 -0
- package/dist/tools/games.d.ts.map +1 -0
- package/dist/tools/games.js +49 -0
- package/dist/tools/games.js.map +1 -0
- package/dist/tools/grading.d.ts +3 -0
- package/dist/tools/grading.d.ts.map +1 -0
- package/dist/tools/grading.js +184 -0
- package/dist/tools/grading.js.map +1 -0
- package/dist/tools/homes.d.ts +10 -0
- package/dist/tools/homes.d.ts.map +1 -0
- package/dist/tools/homes.js +62 -0
- package/dist/tools/homes.js.map +1 -0
- package/dist/tools/imports.d.ts +3 -0
- package/dist/tools/imports.d.ts.map +1 -0
- package/dist/tools/imports.js +72 -0
- package/dist/tools/imports.js.map +1 -0
- package/dist/tools/inbox.d.ts +3 -0
- package/dist/tools/inbox.d.ts.map +1 -0
- package/dist/tools/inbox.js +408 -0
- package/dist/tools/inbox.js.map +1 -0
- package/dist/tools/inventory.d.ts +3 -0
- package/dist/tools/inventory.d.ts.map +1 -0
- package/dist/tools/inventory.js +572 -0
- package/dist/tools/inventory.js.map +1 -0
- package/dist/tools/listings/_shared.d.ts +43 -0
- package/dist/tools/listings/_shared.d.ts.map +1 -0
- package/dist/tools/listings/_shared.js +59 -0
- package/dist/tools/listings/_shared.js.map +1 -0
- package/dist/tools/listings/ai-image.d.ts +3 -0
- package/dist/tools/listings/ai-image.d.ts.map +1 -0
- package/dist/tools/listings/ai-image.js +145 -0
- package/dist/tools/listings/ai-image.js.map +1 -0
- package/dist/tools/listings/bulk.d.ts +3 -0
- package/dist/tools/listings/bulk.d.ts.map +1 -0
- package/dist/tools/listings/bulk.js +262 -0
- package/dist/tools/listings/bulk.js.map +1 -0
- package/dist/tools/listings/core.d.ts +3 -0
- package/dist/tools/listings/core.d.ts.map +1 -0
- package/dist/tools/listings/core.js +300 -0
- package/dist/tools/listings/core.js.map +1 -0
- package/dist/tools/listings/discovery.d.ts +3 -0
- package/dist/tools/listings/discovery.d.ts.map +1 -0
- package/dist/tools/listings/discovery.js +153 -0
- package/dist/tools/listings/discovery.js.map +1 -0
- package/dist/tools/listings.d.ts +3 -0
- package/dist/tools/listings.d.ts.map +1 -0
- package/dist/tools/listings.js +26 -0
- package/dist/tools/listings.js.map +1 -0
- package/dist/tools/live-shows.d.ts +3 -0
- package/dist/tools/live-shows.d.ts.map +1 -0
- package/dist/tools/live-shows.js +70 -0
- package/dist/tools/live-shows.js.map +1 -0
- package/dist/tools/magic.d.ts +3 -0
- package/dist/tools/magic.d.ts.map +1 -0
- package/dist/tools/magic.js +104 -0
- package/dist/tools/magic.js.map +1 -0
- package/dist/tools/market.d.ts +14 -0
- package/dist/tools/market.d.ts.map +1 -0
- package/dist/tools/market.js +222 -0
- package/dist/tools/market.js.map +1 -0
- package/dist/tools/mobile.d.ts +3 -0
- package/dist/tools/mobile.d.ts.map +1 -0
- package/dist/tools/mobile.js +61 -0
- package/dist/tools/mobile.js.map +1 -0
- package/dist/tools/neighbourhoods.d.ts +3 -0
- package/dist/tools/neighbourhoods.d.ts.map +1 -0
- package/dist/tools/neighbourhoods.js +30 -0
- package/dist/tools/neighbourhoods.js.map +1 -0
- package/dist/tools/nft-market.d.ts +8 -0
- package/dist/tools/nft-market.d.ts.map +1 -0
- package/dist/tools/nft-market.js +99 -0
- package/dist/tools/nft-market.js.map +1 -0
- package/dist/tools/offers.d.ts +12 -0
- package/dist/tools/offers.d.ts.map +1 -0
- package/dist/tools/offers.js +76 -0
- package/dist/tools/offers.js.map +1 -0
- package/dist/tools/orders/actions.d.ts +4 -0
- package/dist/tools/orders/actions.d.ts.map +1 -0
- package/dist/tools/orders/actions.js +126 -0
- package/dist/tools/orders/actions.js.map +1 -0
- package/dist/tools/orders/bulk.d.ts +4 -0
- package/dist/tools/orders/bulk.d.ts.map +1 -0
- package/dist/tools/orders/bulk.js +145 -0
- package/dist/tools/orders/bulk.js.map +1 -0
- package/dist/tools/orders/fulfillment.d.ts +4 -0
- package/dist/tools/orders/fulfillment.d.ts.map +1 -0
- package/dist/tools/orders/fulfillment.js +240 -0
- package/dist/tools/orders/fulfillment.js.map +1 -0
- package/dist/tools/orders/read.d.ts +4 -0
- package/dist/tools/orders/read.d.ts.map +1 -0
- package/dist/tools/orders/read.js +165 -0
- package/dist/tools/orders/read.js.map +1 -0
- package/dist/tools/orders/whatnot.d.ts +7 -0
- package/dist/tools/orders/whatnot.d.ts.map +1 -0
- package/dist/tools/orders/whatnot.js +96 -0
- package/dist/tools/orders/whatnot.js.map +1 -0
- package/dist/tools/orders.d.ts +25 -0
- package/dist/tools/orders.d.ts.map +1 -0
- package/dist/tools/orders.js +35 -0
- package/dist/tools/orders.js.map +1 -0
- package/dist/tools/passports.d.ts +3 -0
- package/dist/tools/passports.d.ts.map +1 -0
- package/dist/tools/passports.js +66 -0
- package/dist/tools/passports.js.map +1 -0
- package/dist/tools/pat.d.ts +3 -0
- package/dist/tools/pat.d.ts.map +1 -0
- package/dist/tools/pat.js +103 -0
- package/dist/tools/pat.js.map +1 -0
- package/dist/tools/payout.d.ts +3 -0
- package/dist/tools/payout.d.ts.map +1 -0
- package/dist/tools/payout.js +134 -0
- package/dist/tools/payout.js.map +1 -0
- package/dist/tools/policy-presets.d.ts +3 -0
- package/dist/tools/policy-presets.d.ts.map +1 -0
- package/dist/tools/policy-presets.js +146 -0
- package/dist/tools/policy-presets.js.map +1 -0
- package/dist/tools/production.d.ts +8 -0
- package/dist/tools/production.d.ts.map +1 -0
- package/dist/tools/production.js +419 -0
- package/dist/tools/production.js.map +1 -0
- package/dist/tools/reference.d.ts +3 -0
- package/dist/tools/reference.d.ts.map +1 -0
- package/dist/tools/reference.js +138 -0
- package/dist/tools/reference.js.map +1 -0
- package/dist/tools/reprice.d.ts +3 -0
- package/dist/tools/reprice.d.ts.map +1 -0
- package/dist/tools/reprice.js +62 -0
- package/dist/tools/reprice.js.map +1 -0
- package/dist/tools/reputation.d.ts +10 -0
- package/dist/tools/reputation.d.ts.map +1 -0
- package/dist/tools/reputation.js +57 -0
- package/dist/tools/reputation.js.map +1 -0
- package/dist/tools/restock.d.ts +3 -0
- package/dist/tools/restock.d.ts.map +1 -0
- package/dist/tools/restock.js +76 -0
- package/dist/tools/restock.js.map +1 -0
- package/dist/tools/returns.d.ts +3 -0
- package/dist/tools/returns.d.ts.map +1 -0
- package/dist/tools/returns.js +125 -0
- package/dist/tools/returns.js.map +1 -0
- package/dist/tools/sales.d.ts +3 -0
- package/dist/tools/sales.d.ts.map +1 -0
- package/dist/tools/sales.js +52 -0
- package/dist/tools/sales.js.map +1 -0
- package/dist/tools/saved_views.d.ts +3 -0
- package/dist/tools/saved_views.d.ts.map +1 -0
- package/dist/tools/saved_views.js +155 -0
- package/dist/tools/saved_views.js.map +1 -0
- package/dist/tools/scan.d.ts +14 -0
- package/dist/tools/scan.d.ts.map +1 -0
- package/dist/tools/scan.js +85 -0
- package/dist/tools/scan.js.map +1 -0
- package/dist/tools/seller-ops.d.ts +3 -0
- package/dist/tools/seller-ops.d.ts.map +1 -0
- package/dist/tools/seller-ops.js +83 -0
- package/dist/tools/seller-ops.js.map +1 -0
- package/dist/tools/seller-xmarket.d.ts +3 -0
- package/dist/tools/seller-xmarket.d.ts.map +1 -0
- package/dist/tools/seller-xmarket.js +120 -0
- package/dist/tools/seller-xmarket.js.map +1 -0
- package/dist/tools/sourcing.d.ts +3 -0
- package/dist/tools/sourcing.d.ts.map +1 -0
- package/dist/tools/sourcing.js +160 -0
- package/dist/tools/sourcing.js.map +1 -0
- package/dist/tools/spatial-auction.d.ts +3 -0
- package/dist/tools/spatial-auction.d.ts.map +1 -0
- package/dist/tools/spatial-auction.js +162 -0
- package/dist/tools/spatial-auction.js.map +1 -0
- package/dist/tools/spatial-emotes.d.ts +10 -0
- package/dist/tools/spatial-emotes.d.ts.map +1 -0
- package/dist/tools/spatial-emotes.js +40 -0
- package/dist/tools/spatial-emotes.js.map +1 -0
- package/dist/tools/spatial-employee.d.ts +3 -0
- package/dist/tools/spatial-employee.d.ts.map +1 -0
- package/dist/tools/spatial-employee.js +221 -0
- package/dist/tools/spatial-employee.js.map +1 -0
- package/dist/tools/spatial-party.d.ts +10 -0
- package/dist/tools/spatial-party.d.ts.map +1 -0
- package/dist/tools/spatial-party.js +25 -0
- package/dist/tools/spatial-party.js.map +1 -0
- package/dist/tools/spatial-rooms.d.ts +8 -0
- package/dist/tools/spatial-rooms.d.ts.map +1 -0
- package/dist/tools/spatial-rooms.js +177 -0
- package/dist/tools/spatial-rooms.js.map +1 -0
- package/dist/tools/spatial.d.ts +12 -0
- package/dist/tools/spatial.d.ts.map +1 -0
- package/dist/tools/spatial.js +537 -0
- package/dist/tools/spatial.js.map +1 -0
- package/dist/tools/stalls.d.ts +3 -0
- package/dist/tools/stalls.d.ts.map +1 -0
- package/dist/tools/stalls.js +145 -0
- package/dist/tools/stalls.js.map +1 -0
- package/dist/tools/storefront-shipping.d.ts +7 -0
- package/dist/tools/storefront-shipping.d.ts.map +1 -0
- package/dist/tools/storefront-shipping.js +94 -0
- package/dist/tools/storefront-shipping.js.map +1 -0
- package/dist/tools/tax.d.ts +3 -0
- package/dist/tools/tax.d.ts.map +1 -0
- package/dist/tools/tax.js +194 -0
- package/dist/tools/tax.js.map +1 -0
- package/dist/tools/taxonomy.d.ts +3 -0
- package/dist/tools/taxonomy.d.ts.map +1 -0
- package/dist/tools/taxonomy.js +131 -0
- package/dist/tools/taxonomy.js.map +1 -0
- package/dist/tools/team.d.ts +3 -0
- package/dist/tools/team.d.ts.map +1 -0
- package/dist/tools/team.js +152 -0
- package/dist/tools/team.js.map +1 -0
- package/dist/tools/templates.d.ts +10 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +406 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/trade-block.d.ts +3 -0
- package/dist/tools/trade-block.d.ts.map +1 -0
- package/dist/tools/trade-block.js +308 -0
- package/dist/tools/trade-block.js.map +1 -0
- package/dist/tools/types.d.ts +43 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +24 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/units.d.ts +9 -0
- package/dist/tools/units.d.ts.map +1 -0
- package/dist/tools/units.js +156 -0
- package/dist/tools/units.js.map +1 -0
- package/dist/tools/variation_groups.d.ts +17 -0
- package/dist/tools/variation_groups.d.ts.map +1 -0
- package/dist/tools/variation_groups.js +92 -0
- package/dist/tools/variation_groups.js.map +1 -0
- package/dist/tools/vault-markets-adl.d.ts +11 -0
- package/dist/tools/vault-markets-adl.d.ts.map +1 -0
- package/dist/tools/vault-markets-adl.js +46 -0
- package/dist/tools/vault-markets-adl.js.map +1 -0
- package/dist/tools/vault-markets-agent.d.ts +3 -0
- package/dist/tools/vault-markets-agent.d.ts.map +1 -0
- package/dist/tools/vault-markets-agent.js +82 -0
- package/dist/tools/vault-markets-agent.js.map +1 -0
- package/dist/tools/vault-markets-alerts-hub.d.ts +3 -0
- package/dist/tools/vault-markets-alerts-hub.d.ts.map +1 -0
- package/dist/tools/vault-markets-alerts-hub.js +75 -0
- package/dist/tools/vault-markets-alerts-hub.js.map +1 -0
- package/dist/tools/vault-markets-analytics.d.ts +3 -0
- package/dist/tools/vault-markets-analytics.d.ts.map +1 -0
- package/dist/tools/vault-markets-analytics.js +192 -0
- package/dist/tools/vault-markets-analytics.js.map +1 -0
- package/dist/tools/vault-markets-bullion.d.ts +3 -0
- package/dist/tools/vault-markets-bullion.d.ts.map +1 -0
- package/dist/tools/vault-markets-bullion.js +172 -0
- package/dist/tools/vault-markets-bullion.js.map +1 -0
- package/dist/tools/vault-markets-channels.d.ts +10 -0
- package/dist/tools/vault-markets-channels.d.ts.map +1 -0
- package/dist/tools/vault-markets-channels.js +93 -0
- package/dist/tools/vault-markets-channels.js.map +1 -0
- package/dist/tools/vault-markets-credit.d.ts +3 -0
- package/dist/tools/vault-markets-credit.d.ts.map +1 -0
- package/dist/tools/vault-markets-credit.js +164 -0
- package/dist/tools/vault-markets-credit.js.map +1 -0
- package/dist/tools/vault-markets-curve-pools.d.ts +3 -0
- package/dist/tools/vault-markets-curve-pools.d.ts.map +1 -0
- package/dist/tools/vault-markets-curve-pools.js +116 -0
- package/dist/tools/vault-markets-curve-pools.js.map +1 -0
- package/dist/tools/vault-markets-floor.d.ts +8 -0
- package/dist/tools/vault-markets-floor.d.ts.map +1 -0
- package/dist/tools/vault-markets-floor.js +17 -0
- package/dist/tools/vault-markets-floor.js.map +1 -0
- package/dist/tools/vault-markets-follows.d.ts +3 -0
- package/dist/tools/vault-markets-follows.d.ts.map +1 -0
- package/dist/tools/vault-markets-follows.js +134 -0
- package/dist/tools/vault-markets-follows.js.map +1 -0
- package/dist/tools/vault-markets-grade-to-vault.d.ts +3 -0
- package/dist/tools/vault-markets-grade-to-vault.d.ts.map +1 -0
- package/dist/tools/vault-markets-grade-to-vault.js +178 -0
- package/dist/tools/vault-markets-grade-to-vault.js.map +1 -0
- package/dist/tools/vault-markets-grading.d.ts +10 -0
- package/dist/tools/vault-markets-grading.d.ts.map +1 -0
- package/dist/tools/vault-markets-grading.js +55 -0
- package/dist/tools/vault-markets-grading.js.map +1 -0
- package/dist/tools/vault-markets-hall.d.ts +9 -0
- package/dist/tools/vault-markets-hall.d.ts.map +1 -0
- package/dist/tools/vault-markets-hall.js +70 -0
- package/dist/tools/vault-markets-hall.js.map +1 -0
- package/dist/tools/vault-markets-health.d.ts +10 -0
- package/dist/tools/vault-markets-health.d.ts.map +1 -0
- package/dist/tools/vault-markets-health.js +34 -0
- package/dist/tools/vault-markets-health.js.map +1 -0
- package/dist/tools/vault-markets-home.d.ts +9 -0
- package/dist/tools/vault-markets-home.d.ts.map +1 -0
- package/dist/tools/vault-markets-home.js +58 -0
- package/dist/tools/vault-markets-home.js.map +1 -0
- package/dist/tools/vault-markets-index.d.ts +3 -0
- package/dist/tools/vault-markets-index.d.ts.map +1 -0
- package/dist/tools/vault-markets-index.js +135 -0
- package/dist/tools/vault-markets-index.js.map +1 -0
- package/dist/tools/vault-markets-inst.d.ts +3 -0
- package/dist/tools/vault-markets-inst.d.ts.map +1 -0
- package/dist/tools/vault-markets-inst.js +390 -0
- package/dist/tools/vault-markets-inst.js.map +1 -0
- package/dist/tools/vault-markets-joint-tod.d.ts +3 -0
- package/dist/tools/vault-markets-joint-tod.d.ts.map +1 -0
- package/dist/tools/vault-markets-joint-tod.js +300 -0
- package/dist/tools/vault-markets-joint-tod.js.map +1 -0
- package/dist/tools/vault-markets-liquidity.d.ts +3 -0
- package/dist/tools/vault-markets-liquidity.d.ts.map +1 -0
- package/dist/tools/vault-markets-liquidity.js +408 -0
- package/dist/tools/vault-markets-liquidity.js.map +1 -0
- package/dist/tools/vault-markets-marks.d.ts +8 -0
- package/dist/tools/vault-markets-marks.d.ts.map +1 -0
- package/dist/tools/vault-markets-marks.js +25 -0
- package/dist/tools/vault-markets-marks.js.map +1 -0
- package/dist/tools/vault-markets-missions.d.ts +3 -0
- package/dist/tools/vault-markets-missions.d.ts.map +1 -0
- package/dist/tools/vault-markets-missions.js +36 -0
- package/dist/tools/vault-markets-missions.js.map +1 -0
- package/dist/tools/vault-markets-mm.d.ts +3 -0
- package/dist/tools/vault-markets-mm.d.ts.map +1 -0
- package/dist/tools/vault-markets-mm.js +282 -0
- package/dist/tools/vault-markets-mm.js.map +1 -0
- package/dist/tools/vault-markets-mode.d.ts +11 -0
- package/dist/tools/vault-markets-mode.d.ts.map +1 -0
- package/dist/tools/vault-markets-mode.js +56 -0
- package/dist/tools/vault-markets-mode.js.map +1 -0
- package/dist/tools/vault-markets-ops.d.ts +3 -0
- package/dist/tools/vault-markets-ops.d.ts.map +1 -0
- package/dist/tools/vault-markets-ops.js +208 -0
- package/dist/tools/vault-markets-ops.js.map +1 -0
- package/dist/tools/vault-markets-oracle-dcm.d.ts +10 -0
- package/dist/tools/vault-markets-oracle-dcm.d.ts.map +1 -0
- package/dist/tools/vault-markets-oracle-dcm.js +153 -0
- package/dist/tools/vault-markets-oracle-dcm.js.map +1 -0
- package/dist/tools/vault-markets-p2p.d.ts +3 -0
- package/dist/tools/vault-markets-p2p.d.ts.map +1 -0
- package/dist/tools/vault-markets-p2p.js +177 -0
- package/dist/tools/vault-markets-p2p.js.map +1 -0
- package/dist/tools/vault-markets-paper.d.ts +3 -0
- package/dist/tools/vault-markets-paper.d.ts.map +1 -0
- package/dist/tools/vault-markets-paper.js +126 -0
- package/dist/tools/vault-markets-paper.js.map +1 -0
- package/dist/tools/vault-markets-pm.d.ts +10 -0
- package/dist/tools/vault-markets-pm.d.ts.map +1 -0
- package/dist/tools/vault-markets-pm.js +74 -0
- package/dist/tools/vault-markets-pm.js.map +1 -0
- package/dist/tools/vault-markets-pop-reports.d.ts +8 -0
- package/dist/tools/vault-markets-pop-reports.d.ts.map +1 -0
- package/dist/tools/vault-markets-pop-reports.js +31 -0
- package/dist/tools/vault-markets-pop-reports.js.map +1 -0
- package/dist/tools/vault-markets-price-widgets.d.ts +3 -0
- package/dist/tools/vault-markets-price-widgets.d.ts.map +1 -0
- package/dist/tools/vault-markets-price-widgets.js +89 -0
- package/dist/tools/vault-markets-price-widgets.js.map +1 -0
- package/dist/tools/vault-markets-pro.d.ts +3 -0
- package/dist/tools/vault-markets-pro.d.ts.map +1 -0
- package/dist/tools/vault-markets-pro.js +276 -0
- package/dist/tools/vault-markets-pro.js.map +1 -0
- package/dist/tools/vault-markets-receipt-tokens.d.ts +3 -0
- package/dist/tools/vault-markets-receipt-tokens.d.ts.map +1 -0
- package/dist/tools/vault-markets-receipt-tokens.js +81 -0
- package/dist/tools/vault-markets-receipt-tokens.js.map +1 -0
- package/dist/tools/vault-markets-reports.d.ts +10 -0
- package/dist/tools/vault-markets-reports.d.ts.map +1 -0
- package/dist/tools/vault-markets-reports.js +47 -0
- package/dist/tools/vault-markets-reports.js.map +1 -0
- package/dist/tools/vault-markets-set-goals.d.ts +3 -0
- package/dist/tools/vault-markets-set-goals.d.ts.map +1 -0
- package/dist/tools/vault-markets-set-goals.js +150 -0
- package/dist/tools/vault-markets-set-goals.js.map +1 -0
- package/dist/tools/vault-markets-social.d.ts +3 -0
- package/dist/tools/vault-markets-social.d.ts.map +1 -0
- package/dist/tools/vault-markets-social.js +212 -0
- package/dist/tools/vault-markets-social.js.map +1 -0
- package/dist/tools/vault-markets-stats.d.ts +3 -0
- package/dist/tools/vault-markets-stats.d.ts.map +1 -0
- package/dist/tools/vault-markets-stats.js +83 -0
- package/dist/tools/vault-markets-stats.js.map +1 -0
- package/dist/tools/vault-markets-supply.d.ts +3 -0
- package/dist/tools/vault-markets-supply.d.ts.map +1 -0
- package/dist/tools/vault-markets-supply.js +183 -0
- package/dist/tools/vault-markets-supply.js.map +1 -0
- package/dist/tools/vault-markets-tax-loss.d.ts +9 -0
- package/dist/tools/vault-markets-tax-loss.d.ts.map +1 -0
- package/dist/tools/vault-markets-tax-loss.js +16 -0
- package/dist/tools/vault-markets-tax-loss.js.map +1 -0
- package/dist/tools/vault-markets-title.d.ts +3 -0
- package/dist/tools/vault-markets-title.d.ts.map +1 -0
- package/dist/tools/vault-markets-title.js +158 -0
- package/dist/tools/vault-markets-title.js.map +1 -0
- package/dist/tools/vault-markets-unit-story.d.ts +10 -0
- package/dist/tools/vault-markets-unit-story.d.ts.map +1 -0
- package/dist/tools/vault-markets-unit-story.js +23 -0
- package/dist/tools/vault-markets-unit-story.js.map +1 -0
- package/dist/tools/vault-markets-valuation.d.ts +3 -0
- package/dist/tools/vault-markets-valuation.d.ts.map +1 -0
- package/dist/tools/vault-markets-valuation.js +91 -0
- package/dist/tools/vault-markets-valuation.js.map +1 -0
- package/dist/tools/vault-markets-vault-suggest.d.ts +10 -0
- package/dist/tools/vault-markets-vault-suggest.d.ts.map +1 -0
- package/dist/tools/vault-markets-vault-suggest.js +38 -0
- package/dist/tools/vault-markets-vault-suggest.js.map +1 -0
- package/dist/tools/vault-markets-widget.d.ts +3 -0
- package/dist/tools/vault-markets-widget.d.ts.map +1 -0
- package/dist/tools/vault-markets-widget.js +64 -0
- package/dist/tools/vault-markets-widget.js.map +1 -0
- package/dist/tools/vault-markets-world.d.ts +12 -0
- package/dist/tools/vault-markets-world.d.ts.map +1 -0
- package/dist/tools/vault-markets-world.js +176 -0
- package/dist/tools/vault-markets-world.js.map +1 -0
- package/dist/tools/vault-markets.d.ts +3 -0
- package/dist/tools/vault-markets.d.ts.map +1 -0
- package/dist/tools/vault-markets.js +305 -0
- package/dist/tools/vault-markets.js.map +1 -0
- package/dist/tools/web3-book.d.ts +8 -0
- package/dist/tools/web3-book.d.ts.map +1 -0
- package/dist/tools/web3-book.js +494 -0
- package/dist/tools/web3-book.js.map +1 -0
- package/dist/tools/web3-crosslist.d.ts +8 -0
- package/dist/tools/web3-crosslist.d.ts.map +1 -0
- package/dist/tools/web3-crosslist.js +307 -0
- package/dist/tools/web3-crosslist.js.map +1 -0
- package/dist/tools/web3-launch-tools.d.ts +3 -0
- package/dist/tools/web3-launch-tools.d.ts.map +1 -0
- package/dist/tools/web3-launch-tools.js +151 -0
- package/dist/tools/web3-launch-tools.js.map +1 -0
- package/dist/tools/web3-launchpad.d.ts +3 -0
- package/dist/tools/web3-launchpad.d.ts.map +1 -0
- package/dist/tools/web3-launchpad.js +139 -0
- package/dist/tools/web3-launchpad.js.map +1 -0
- package/dist/tools/web3-world-live.d.ts +3 -0
- package/dist/tools/web3-world-live.d.ts.map +1 -0
- package/dist/tools/web3-world-live.js +95 -0
- package/dist/tools/web3-world-live.js.map +1 -0
- package/dist/tools/web3.d.ts +9 -0
- package/dist/tools/web3.d.ts.map +1 -0
- package/dist/tools/web3.js +291 -0
- package/dist/tools/web3.js.map +1 -0
- package/dist/tools/webhooks.d.ts +3 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +83 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/dist/tools/wholesale.d.ts +3 -0
- package/dist/tools/wholesale.d.ts.map +1 -0
- package/dist/tools/wholesale.js +63 -0
- package/dist/tools/wholesale.js.map +1 -0
- package/dist/tools/world-account.d.ts +3 -0
- package/dist/tools/world-account.d.ts.map +1 -0
- package/dist/tools/world-account.js +133 -0
- package/dist/tools/world-account.js.map +1 -0
- package/dist/tools/world-arcade.d.ts +3 -0
- package/dist/tools/world-arcade.d.ts.map +1 -0
- package/dist/tools/world-arcade.js +20 -0
- package/dist/tools/world-arcade.js.map +1 -0
- package/dist/tools/world-aurora.d.ts +7 -0
- package/dist/tools/world-aurora.d.ts.map +1 -0
- package/dist/tools/world-aurora.js +16 -0
- package/dist/tools/world-aurora.js.map +1 -0
- package/dist/tools/world-capabilities.d.ts +3 -0
- package/dist/tools/world-capabilities.d.ts.map +1 -0
- package/dist/tools/world-capabilities.js +105 -0
- package/dist/tools/world-capabilities.js.map +1 -0
- package/dist/tools/world-chests.d.ts +8 -0
- package/dist/tools/world-chests.d.ts.map +1 -0
- package/dist/tools/world-chests.js +17 -0
- package/dist/tools/world-chests.js.map +1 -0
- package/dist/tools/world-contests.d.ts +3 -0
- package/dist/tools/world-contests.d.ts.map +1 -0
- package/dist/tools/world-contests.js +55 -0
- package/dist/tools/world-contests.js.map +1 -0
- package/dist/tools/world-conventions.d.ts +3 -0
- package/dist/tools/world-conventions.d.ts.map +1 -0
- package/dist/tools/world-conventions.js +122 -0
- package/dist/tools/world-conventions.js.map +1 -0
- package/dist/tools/world-creator.d.ts +3 -0
- package/dist/tools/world-creator.d.ts.map +1 -0
- package/dist/tools/world-creator.js +162 -0
- package/dist/tools/world-creator.js.map +1 -0
- package/dist/tools/world-fireflies.d.ts +10 -0
- package/dist/tools/world-fireflies.d.ts.map +1 -0
- package/dist/tools/world-fireflies.js +19 -0
- package/dist/tools/world-fireflies.js.map +1 -0
- package/dist/tools/world-games.d.ts +3 -0
- package/dist/tools/world-games.d.ts.map +1 -0
- package/dist/tools/world-games.js +151 -0
- package/dist/tools/world-games.js.map +1 -0
- package/dist/tools/world-grails.d.ts +7 -0
- package/dist/tools/world-grails.d.ts.map +1 -0
- package/dist/tools/world-grails.js +28 -0
- package/dist/tools/world-grails.js.map +1 -0
- package/dist/tools/world-hall.d.ts +9 -0
- package/dist/tools/world-hall.d.ts.map +1 -0
- package/dist/tools/world-hall.js +51 -0
- package/dist/tools/world-hall.js.map +1 -0
- package/dist/tools/world-homes.d.ts +7 -0
- package/dist/tools/world-homes.d.ts.map +1 -0
- package/dist/tools/world-homes.js +83 -0
- package/dist/tools/world-homes.js.map +1 -0
- package/dist/tools/world-hunt.d.ts +3 -0
- package/dist/tools/world-hunt.d.ts.map +1 -0
- package/dist/tools/world-hunt.js +35 -0
- package/dist/tools/world-hunt.js.map +1 -0
- package/dist/tools/world-kites.d.ts +10 -0
- package/dist/tools/world-kites.d.ts.map +1 -0
- package/dist/tools/world-kites.js +19 -0
- package/dist/tools/world-kites.js.map +1 -0
- package/dist/tools/world-lanterns.d.ts +10 -0
- package/dist/tools/world-lanterns.d.ts.map +1 -0
- package/dist/tools/world-lanterns.js +19 -0
- package/dist/tools/world-lanterns.js.map +1 -0
- package/dist/tools/world-live.d.ts +10 -0
- package/dist/tools/world-live.d.ts.map +1 -0
- package/dist/tools/world-live.js +73 -0
- package/dist/tools/world-live.js.map +1 -0
- package/dist/tools/world-parties.d.ts +7 -0
- package/dist/tools/world-parties.d.ts.map +1 -0
- package/dist/tools/world-parties.js +113 -0
- package/dist/tools/world-parties.js.map +1 -0
- package/dist/tools/world-places.d.ts +8 -0
- package/dist/tools/world-places.d.ts.map +1 -0
- package/dist/tools/world-places.js +126 -0
- package/dist/tools/world-places.js.map +1 -0
- package/dist/tools/world-provenance.d.ts +4 -0
- package/dist/tools/world-provenance.d.ts.map +1 -0
- package/dist/tools/world-provenance.js +16 -0
- package/dist/tools/world-provenance.js.map +1 -0
- package/dist/tools/world-spaces.d.ts +7 -0
- package/dist/tools/world-spaces.d.ts.map +1 -0
- package/dist/tools/world-spaces.js +149 -0
- package/dist/tools/world-spaces.js.map +1 -0
- package/dist/tools/world-streets.d.ts +8 -0
- package/dist/tools/world-streets.d.ts.map +1 -0
- package/dist/tools/world-streets.js +162 -0
- package/dist/tools/world-streets.js.map +1 -0
- package/dist/tools/world-trials.d.ts +3 -0
- package/dist/tools/world-trials.d.ts.map +1 -0
- package/dist/tools/world-trials.js +35 -0
- package/dist/tools/world-trials.js.map +1 -0
- package/dist/tools/world-wishes.d.ts +9 -0
- package/dist/tools/world-wishes.d.ts.map +1 -0
- package/dist/tools/world-wishes.js +18 -0
- package/dist/tools/world-wishes.js.map +1 -0
- package/dist/tools/world.d.ts +3 -0
- package/dist/tools/world.d.ts.map +1 -0
- package/dist/tools/world.js +554 -0
- package/dist/tools/world.js.map +1 -0
- package/package.json +66 -3
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
import { apiGet, apiPost } from '../api.js';
|
|
2
|
+
/**
|
|
3
|
+
* CBX — cashback rails for a physical-goods marketplace.
|
|
4
|
+
*
|
|
5
|
+
* ── WHAT AN AGENT NEEDS TO UNDERSTAND BEFORE USING THESE ──────────────
|
|
6
|
+
* Two of these tools move real money and one of them is irreversible, so
|
|
7
|
+
* the descriptions say so plainly rather than reading as neutral CRUD.
|
|
8
|
+
* Specifically:
|
|
9
|
+
*
|
|
10
|
+
* accrue_cbx creates a liability. Idempotent ONLY if you pass
|
|
11
|
+
* sourceExternalId.
|
|
12
|
+
* reverse_cbx_accrual works while pending, fails once converted.
|
|
13
|
+
* create_cbx_claim debits a balance and queues a transfer OFF the
|
|
14
|
+
* platform. Not reversible once confirmed.
|
|
15
|
+
* execute_cbx_campaign distributes a pool to many users at once.
|
|
16
|
+
*
|
|
17
|
+
* ── AMOUNTS ───────────────────────────────────────────────────────────
|
|
18
|
+
* Cents are plain integers. TOKEN amounts are decimal STRINGS of base
|
|
19
|
+
* units, because a balance can exceed what a JSON number holds exactly.
|
|
20
|
+
* Never convert a token amount through a float before displaying it.
|
|
21
|
+
*/
|
|
22
|
+
export const cbxTools = [
|
|
23
|
+
{
|
|
24
|
+
name: 'get_cbx_account',
|
|
25
|
+
description: 'Which CBX merchant the configured key belongs to, and the exact terms it issues '
|
|
26
|
+
+ 'cashback on — earn rate, maturation window, claim minimum, withdrawal fee schedule, '
|
|
27
|
+
+ 'and whether external claims are enabled at all. Read this before quoting terms to a '
|
|
28
|
+
+ 'user: the rates are per-merchant and hard-coding Crossly\'s own would be wrong for '
|
|
29
|
+
+ 'any other marketplace.',
|
|
30
|
+
inputSchema: { type: 'object', properties: {} },
|
|
31
|
+
handler: () => apiGet('/v1/cbx/me'),
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'create_cbx_subject',
|
|
35
|
+
description: 'Map one of the merchant\'s own user ids to a CBX subject id. Idempotent — calling it '
|
|
36
|
+
+ 'again with the same externalUserId returns the same subject. Every other CBX tool '
|
|
37
|
+
+ 'takes the subjectId, never the merchant\'s own user id.',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
type: 'object',
|
|
40
|
+
properties: {
|
|
41
|
+
externalUserId: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
description: "The merchant's own id for this user. Opaque to CBX.",
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
required: ['externalUserId'],
|
|
47
|
+
},
|
|
48
|
+
handler: (args) => apiPost('/v1/cbx/subjects', args),
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: 'accrue_cbx',
|
|
52
|
+
description: 'Record cashback a user earned, in cents. CREATES A LIABILITY — the merchant now owes '
|
|
53
|
+
+ 'this. The accrual stays PENDING and dollar-denominated until its maturation window '
|
|
54
|
+
+ 'closes, then converts to tokens at that moment\'s market price. '
|
|
55
|
+
+ 'ALWAYS pass sourceExternalId (the merchant\'s own order or accrual id): it is what '
|
|
56
|
+
+ 'makes a retry a no-op instead of a second credit. Without it, a retried call accrues '
|
|
57
|
+
+ 'twice. A duplicate returns { duplicate: true } rather than an error.',
|
|
58
|
+
inputSchema: {
|
|
59
|
+
type: 'object',
|
|
60
|
+
properties: {
|
|
61
|
+
subjectId: { type: 'string', description: 'From create_cbx_subject.' },
|
|
62
|
+
cents: {
|
|
63
|
+
type: 'number',
|
|
64
|
+
description: 'Positive whole cents the user earned.',
|
|
65
|
+
},
|
|
66
|
+
sourceExternalId: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: "The merchant's own id for this accrual. STRONGLY RECOMMENDED — it is the "
|
|
69
|
+
+ 'idempotency key. Omitting it makes a retry a double credit.',
|
|
70
|
+
},
|
|
71
|
+
maturationDays: {
|
|
72
|
+
type: 'number',
|
|
73
|
+
description: "Override the merchant's configured window. Must be at least as long as their "
|
|
74
|
+
+ 'refund window, because after conversion there is no clawback.',
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
required: ['subjectId', 'cents'],
|
|
78
|
+
},
|
|
79
|
+
handler: (args) => apiPost('/v1/cbx/accruals', args),
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'reverse_cbx_accrual',
|
|
83
|
+
description: 'Claw back a PENDING accrual — a refund, cancellation, or fraud. Returns 409 once the '
|
|
84
|
+
+ 'accrual has converted, because by then the value is tokens in somebody\'s balance and '
|
|
85
|
+
+ 'reversing it is a debit against that balance rather than a state change. If this '
|
|
86
|
+
+ 'fails with state "converted", the refund has to be handled another way.',
|
|
87
|
+
inputSchema: {
|
|
88
|
+
type: 'object',
|
|
89
|
+
properties: {
|
|
90
|
+
accrualId: { type: 'string', description: 'Accrual id, as returned by accrue_cbx.' },
|
|
91
|
+
reason: { type: 'string', description: 'Recorded on the accrual as the audit trail.' },
|
|
92
|
+
},
|
|
93
|
+
required: ['accrualId', 'reason'],
|
|
94
|
+
},
|
|
95
|
+
handler: (args) => {
|
|
96
|
+
const { accrualId, ...body } = args;
|
|
97
|
+
return apiPost(`/v1/cbx/accruals/${encodeURIComponent(accrualId)}/reverse`, body);
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'spend_cbx',
|
|
102
|
+
description: "Redeem a user's CBX against an order. DEBITS THEIR BALANCE. "
|
|
103
|
+
+ 'The user is charged exactly what they spend — the skim is never added on top, and '
|
|
104
|
+
+ "it comes out of the MERCHANT's fee on the order, capped against it. "
|
|
105
|
+
+ 'ALWAYS pass externalId (your order id): it makes a retried checkout a no-op '
|
|
106
|
+
+ 'instead of debiting the user twice, and checkouts retry. '
|
|
107
|
+
+ 'Spending is free and has no minimum, unlike withdrawing — if a user is choosing '
|
|
108
|
+
+ 'between spending and withdrawing, spending is cheaper for them and better for the '
|
|
109
|
+
+ 'merchant, and it is worth saying so.',
|
|
110
|
+
inputSchema: {
|
|
111
|
+
type: 'object',
|
|
112
|
+
properties: {
|
|
113
|
+
subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' },
|
|
114
|
+
baseUnits: { type: 'string', description: 'Base units as a decimal string.' },
|
|
115
|
+
crosslyFeeCentsOnOrder: {
|
|
116
|
+
type: 'number',
|
|
117
|
+
description: "The merchant's fee on this order in cents. The margin the skim is funded "
|
|
118
|
+
+ 'from and capped against. Zero is legitimate and yields no skim.',
|
|
119
|
+
},
|
|
120
|
+
externalId: {
|
|
121
|
+
type: 'string',
|
|
122
|
+
description: 'REQUIRED. Your order id — the idempotency key.',
|
|
123
|
+
},
|
|
124
|
+
centsPerToken: { type: 'number', description: 'Override the oracle spot. Normally omit.' },
|
|
125
|
+
},
|
|
126
|
+
required: ['subjectId', 'baseUnits', 'crosslyFeeCentsOnOrder', 'externalId'],
|
|
127
|
+
},
|
|
128
|
+
handler: (args) => apiPost('/v1/cbx/spends', args),
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: 'reverse_cbx_spend',
|
|
132
|
+
description: 'Refund a spend. Returns the tokens to the user AND claws the skim back out of both '
|
|
133
|
+
+ 'the community pool and operator revenue — all three move together, because '
|
|
134
|
+
+ 'returning the tokens while the others kept their shares would count the same '
|
|
135
|
+
+ 'tokens twice against one reserve. The spend also stops counting as campaign '
|
|
136
|
+
+ 'activity, so buy-then-refund cannot farm distributions.',
|
|
137
|
+
inputSchema: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: {
|
|
140
|
+
externalId: { type: 'string', description: 'The order id used when spending.' },
|
|
141
|
+
reason: { type: 'string', description: 'Why the spend is being reversed. Recorded as the audit trail.' },
|
|
142
|
+
},
|
|
143
|
+
required: ['externalId', 'reason'],
|
|
144
|
+
},
|
|
145
|
+
handler: (args) => {
|
|
146
|
+
const { externalId, ...body } = args;
|
|
147
|
+
return apiPost(`/v1/cbx/spends/${encodeURIComponent(externalId)}/reverse`, body);
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'get_cbx_spent',
|
|
152
|
+
description: "Total CBX a subject has spent in the merchant's marketplace.",
|
|
153
|
+
inputSchema: {
|
|
154
|
+
type: 'object',
|
|
155
|
+
properties: { subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' } },
|
|
156
|
+
required: ['subjectId'],
|
|
157
|
+
},
|
|
158
|
+
handler: (args) => {
|
|
159
|
+
const { subjectId } = args;
|
|
160
|
+
return apiGet(`/v1/cbx/subjects/${encodeURIComponent(subjectId)}/spent`);
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: 'get_cbx_revenue',
|
|
165
|
+
description: 'Operator revenue accrued and NOT yet withdrawn, in CBX — the share of the spend '
|
|
166
|
+
+ 'skim plus half the withdrawal fees. It sits inside the reserve until swept, which '
|
|
167
|
+
+ 'is why it is tracked separately: without a number saying how much of the reserve '
|
|
168
|
+
+ "is the operator's, there is no safe amount to take out.",
|
|
169
|
+
inputSchema: { type: 'object', properties: {} },
|
|
170
|
+
handler: () => apiGet('/v1/cbx/revenue'),
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'sweep_cbx_revenue',
|
|
174
|
+
description: 'Move accrued revenue from the reserve to the operator revenue wallet. MOVES REAL '
|
|
175
|
+
+ 'VALUE on chain. '
|
|
176
|
+
+ 'Moves at most what is genuinely free — reserve minus outstanding user balances, '
|
|
177
|
+
+ 'minus claims in flight, minus the community pool, minus unswept revenue. If the '
|
|
178
|
+
+ 'reserve is SHORT it moves nothing regardless of what is accrued: an under-covered '
|
|
179
|
+
+ 'reserve is not a reason to stop paying users, it is a reason to stop paying '
|
|
180
|
+
+ 'ourselves. '
|
|
181
|
+
+ 'Call with dryRun first and surface the breakdown — "why did it sweep nothing" is '
|
|
182
|
+
+ 'answered by the individual terms, not by the total.',
|
|
183
|
+
inputSchema: {
|
|
184
|
+
type: 'object',
|
|
185
|
+
properties: {
|
|
186
|
+
maxBaseUnits: { type: 'string', description: 'Cap the sweep. Omit to move everything free.' },
|
|
187
|
+
dryRun: { type: 'boolean', description: 'Report the arithmetic without moving tokens.' },
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
handler: (args) => apiPost('/v1/cbx/revenue/sweep', args ?? {}),
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: 'get_cbx_balance',
|
|
194
|
+
description: 'What a subject holds. TWO numbers, and they are different things: `pendingCents` is '
|
|
195
|
+
+ 'earned but still inside its reversal window — dollars, not tokens, and still '
|
|
196
|
+
+ 'clawback-able. `availableBaseUnits` is CBX they hold now, as a decimal STRING of base '
|
|
197
|
+
+ 'units. Do not add them together; do not parse the token amount as a float.',
|
|
198
|
+
inputSchema: {
|
|
199
|
+
type: 'object',
|
|
200
|
+
properties: { subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' } },
|
|
201
|
+
required: ['subjectId'],
|
|
202
|
+
},
|
|
203
|
+
handler: (args) => {
|
|
204
|
+
const { subjectId } = args;
|
|
205
|
+
return apiGet(`/v1/cbx/subjects/${encodeURIComponent(subjectId)}/balance`);
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: 'get_cbx_ledger',
|
|
210
|
+
description: "A subject's append-only CBX ledger, newest first. The balance is the sum of these rows; "
|
|
211
|
+
+ 'there is no cached balance anywhere that could disagree with them.',
|
|
212
|
+
inputSchema: {
|
|
213
|
+
type: 'object',
|
|
214
|
+
properties: {
|
|
215
|
+
subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' },
|
|
216
|
+
limit: { type: 'number', description: '1-200, default 50.' },
|
|
217
|
+
},
|
|
218
|
+
required: ['subjectId'],
|
|
219
|
+
},
|
|
220
|
+
handler: (args) => {
|
|
221
|
+
const { subjectId, ...query } = args;
|
|
222
|
+
return apiGet(`/v1/cbx/subjects/${encodeURIComponent(subjectId)}/ledger`, query);
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: 'get_cbx_treasury',
|
|
227
|
+
description: "The merchant's latest reserve reconciliation. `coverageBps` is their reserve measured "
|
|
228
|
+
+ 'against what they owe users, including claims in flight — 10000 is exactly 100%. Below '
|
|
229
|
+
+ 'the required floor, CONVERSIONS STOP (balances are never credited against tokens that '
|
|
230
|
+
+ 'do not exist) while claims and spends keep working, because those move value out and '
|
|
231
|
+
+ 'improve coverage. If `ok` is false, that is the thing to surface.',
|
|
232
|
+
inputSchema: { type: 'object', properties: {} },
|
|
233
|
+
handler: () => apiGet('/v1/cbx/treasury'),
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
name: 'get_cbx_pool',
|
|
237
|
+
description: "The merchant's events-pool balance, in base units as a string. Funded by the skim on "
|
|
238
|
+
+ 'in-marketplace CBX spending, the community share of withdrawal fees, and lapsed '
|
|
239
|
+
+ 'balances. This is what campaigns distribute.',
|
|
240
|
+
inputSchema: { type: 'object', properties: {} },
|
|
241
|
+
handler: () => apiGet('/v1/cbx/pool'),
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
name: 'get_cbx_wallet',
|
|
245
|
+
description: 'The verified payout address for a subject, or null if they have not registered and '
|
|
246
|
+
+ 'proved one. A claim cannot be created until this returns an address — payouts go only '
|
|
247
|
+
+ 'to an address the subject cryptographically proved they control.',
|
|
248
|
+
inputSchema: {
|
|
249
|
+
type: 'object',
|
|
250
|
+
properties: { subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' } },
|
|
251
|
+
required: ['subjectId'],
|
|
252
|
+
},
|
|
253
|
+
handler: (args) => {
|
|
254
|
+
const { subjectId } = args;
|
|
255
|
+
return apiGet(`/v1/cbx/subjects/${encodeURIComponent(subjectId)}/wallet`);
|
|
256
|
+
},
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
name: 'start_cbx_wallet_verification',
|
|
260
|
+
description: 'Begin proving a subject controls a payout address. Returns a `message` that a HUMAN must '
|
|
261
|
+
+ 'sign with their wallet — an agent cannot do this step, and should present the message '
|
|
262
|
+
+ 'text verbatim and wait for the signature. '
|
|
263
|
+
+ 'The signature is required because there is no custody here: a payout cannot be undone, '
|
|
264
|
+
+ 'so a typo or an address swapped by a phishing page is permanent. The message binds the '
|
|
265
|
+
+ 'merchant, subject, address and a single-use nonce, so it is not reusable elsewhere. '
|
|
266
|
+
+ 'Calling this replaces any previously registered address for that subject.',
|
|
267
|
+
inputSchema: {
|
|
268
|
+
type: 'object',
|
|
269
|
+
properties: {
|
|
270
|
+
subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' },
|
|
271
|
+
address: { type: 'string', description: 'The Solana address the user wants paid to.' },
|
|
272
|
+
},
|
|
273
|
+
required: ['subjectId', 'address'],
|
|
274
|
+
},
|
|
275
|
+
handler: (args) => apiPost('/v1/cbx/wallets/challenge', args),
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: 'complete_cbx_wallet_verification',
|
|
279
|
+
description: 'Finish verification by submitting the signature the user produced over the message from '
|
|
280
|
+
+ 'start_cbx_wallet_verification. The nonce is single-use, so a signature cannot be '
|
|
281
|
+
+ 'replayed later to re-verify an address that was since replaced. A failure returns a '
|
|
282
|
+
+ 'reason (nonce_expired, nonce_consumed, signature_mismatch, bad_address) — surface it '
|
|
283
|
+
+ 'rather than retrying blindly, since each one needs a different fix.',
|
|
284
|
+
inputSchema: {
|
|
285
|
+
type: 'object',
|
|
286
|
+
properties: {
|
|
287
|
+
subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' },
|
|
288
|
+
walletId: { type: 'string', description: 'From start_cbx_wallet_verification.' },
|
|
289
|
+
signature: { type: 'string', description: 'Base58 signature over the issued message.' },
|
|
290
|
+
},
|
|
291
|
+
required: ['subjectId', 'walletId', 'signature'],
|
|
292
|
+
},
|
|
293
|
+
handler: (args) => apiPost('/v1/cbx/wallets/verify', args),
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
name: 'quote_cbx_claim',
|
|
297
|
+
description: 'What a withdrawal would cost, WITHOUT committing to it. Use this to show a user the fee '
|
|
298
|
+
+ 'breakdown before they confirm — a payout that arrives smaller than expected with no '
|
|
299
|
+
+ 'prior breakdown reads as shaving. The network fee is at actual cost and includes a '
|
|
300
|
+
+ 'one-time account rent when the recipient has no token account yet; that rent is a '
|
|
301
|
+
+ 'recoverable deposit on an account the USER owns, not a fee anybody keeps.',
|
|
302
|
+
inputSchema: {
|
|
303
|
+
type: 'object',
|
|
304
|
+
properties: {
|
|
305
|
+
subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' },
|
|
306
|
+
baseUnits: { type: 'string', description: 'Gross amount to withdraw, base units as a string.' },
|
|
307
|
+
centsPerToken: { type: 'number', description: 'Current price, integer cents per token.' },
|
|
308
|
+
networkCostCents: { type: 'number', description: 'Estimated network cost in cents.' },
|
|
309
|
+
},
|
|
310
|
+
required: ['subjectId', 'baseUnits', 'centsPerToken'],
|
|
311
|
+
},
|
|
312
|
+
handler: (args) => apiPost('/v1/cbx/claims/quote', args),
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
name: 'create_cbx_claim',
|
|
316
|
+
description: 'Reserve a withdrawal. DEBITS THE BALANCE IMMEDIATELY and queues a transfer off the '
|
|
317
|
+
+ 'platform. Call quote_cbx_claim first and confirm with the user. '
|
|
318
|
+
+ 'There is NO destination parameter — payouts go only to the address the subject '
|
|
319
|
+
+ 'registered and cryptographically proved they control, which is why a compromised key '
|
|
320
|
+
+ 'cannot redirect anybody\'s balance. Pass an idempotencyKey; a retry with the same key '
|
|
321
|
+
+ 'returns the original claim rather than debiting twice.',
|
|
322
|
+
inputSchema: {
|
|
323
|
+
type: 'object',
|
|
324
|
+
properties: {
|
|
325
|
+
subjectId: { type: 'string', description: 'The CBX subject id from create_cbx_subject — never the merchant’s own user id.' },
|
|
326
|
+
baseUnits: { type: 'string', description: 'Token amount in BASE UNITS as a decimal string — not whole tokens.' },
|
|
327
|
+
centsPerToken: { type: 'number', description: 'Integer CENTS per whole token. Overrides the oracle spot; normally omit.' },
|
|
328
|
+
networkCostCents: { type: 'number', description: 'On-chain network cost in integer CENTS (not dollars), withheld from the claim.' },
|
|
329
|
+
idempotencyKey: {
|
|
330
|
+
type: 'string',
|
|
331
|
+
description: 'REQUIRED. A retry with the same key will not debit twice.',
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
required: ['subjectId', 'baseUnits', 'centsPerToken', 'idempotencyKey'],
|
|
335
|
+
},
|
|
336
|
+
handler: (args) => apiPost('/v1/cbx/claims', args),
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: 'send_cbx_claim',
|
|
340
|
+
description: 'Send a reserved claim on chain. IRREVERSIBLE once confirmed. '
|
|
341
|
+
+ 'A status of `unconfirmed` means the transfer may have landed but confirmation was not '
|
|
342
|
+
+ 'observed — DO NOT retry it. Retrying an unconfirmed transfer is how a claim gets paid '
|
|
343
|
+
+ 'twice; it must be reconciled against the chain first.',
|
|
344
|
+
inputSchema: {
|
|
345
|
+
type: 'object',
|
|
346
|
+
properties: { claimId: { type: 'string', description: 'Claim id, as returned by create_cbx_claim.' } },
|
|
347
|
+
required: ['claimId'],
|
|
348
|
+
},
|
|
349
|
+
handler: (args) => {
|
|
350
|
+
const { claimId } = args;
|
|
351
|
+
return apiPost(`/v1/cbx/claims/${encodeURIComponent(claimId)}/send`, {});
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
name: 'get_cbx_claim',
|
|
356
|
+
description: "A claim's current state, transaction signature, and failure reason if any.",
|
|
357
|
+
inputSchema: {
|
|
358
|
+
type: 'object',
|
|
359
|
+
properties: { claimId: { type: 'string', description: 'Claim id, as returned by create_cbx_claim.' } },
|
|
360
|
+
required: ['claimId'],
|
|
361
|
+
},
|
|
362
|
+
handler: (args) => {
|
|
363
|
+
const { claimId } = args;
|
|
364
|
+
return apiGet(`/v1/cbx/claims/${encodeURIComponent(claimId)}`);
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
name: 'list_cbx_campaigns',
|
|
369
|
+
description: "The merchant's pool distributions, newest first, with their current state.",
|
|
370
|
+
inputSchema: { type: 'object', properties: {} },
|
|
371
|
+
handler: () => apiGet('/v1/cbx/campaigns'),
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
name: 'create_cbx_campaign',
|
|
375
|
+
description: 'Create a pool distribution in DRAFT. Nothing is paid until it is previewed, approved and '
|
|
376
|
+
+ 'executed. Weighting metrics all measure ACTIVITY inside the window '
|
|
377
|
+
+ '(accruals_count, accrued_cents, spend_count, spend_base_units) — there is deliberately '
|
|
378
|
+
+ 'no option to weight by balance held, because paying holders in proportion to holdings '
|
|
379
|
+
+ 'is a dividend on a passive position and rewards hoarding. '
|
|
380
|
+
+ 'Set capPerSubject on anything proportional: without it one large participant can take '
|
|
381
|
+
+ 'almost the entire pool.',
|
|
382
|
+
inputSchema: {
|
|
383
|
+
type: 'object',
|
|
384
|
+
properties: {
|
|
385
|
+
name: { type: 'string', description: 'Human-readable campaign name, shown wherever the campaign is listed.' },
|
|
386
|
+
budgetBaseUnits: { type: 'string', description: 'Hard ceiling, base units as a string.' },
|
|
387
|
+
windowStart: { type: 'string', description: 'ISO 8601.' },
|
|
388
|
+
windowEnd: { type: 'string', description: 'ISO 8601.' },
|
|
389
|
+
eligibility: {
|
|
390
|
+
type: 'object',
|
|
391
|
+
description: 'Optional gate, e.g. { minMetric: { metric: "accruals_count", value: 3 } }.',
|
|
392
|
+
},
|
|
393
|
+
weighting: {
|
|
394
|
+
type: 'object',
|
|
395
|
+
description: 'Required. { metric, mode: "proportional"|"equal", capPerSubject? }. '
|
|
396
|
+
+ 'Metric must be one of accruals_count, accrued_cents, spend_count, spend_base_units.',
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
required: ['name', 'budgetBaseUnits', 'windowStart', 'windowEnd', 'weighting'],
|
|
400
|
+
},
|
|
401
|
+
handler: (args) => apiPost('/v1/cbx/campaigns', args),
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
name: 'preview_cbx_campaign',
|
|
405
|
+
description: 'Compute the recipient list WITHOUT paying it. Always do this before approving. '
|
|
406
|
+
+ 'An eligibility rule over a live dataset cannot be sized by reading it — the only way '
|
|
407
|
+
+ 'to know whether it pays fifty people or fifty thousand is to run it and look. '
|
|
408
|
+
+ 'Returns the recipients, the total, the pool balance, and a hash of the list. '
|
|
409
|
+
+ 'Re-previewing invalidates any prior approval by design.',
|
|
410
|
+
inputSchema: {
|
|
411
|
+
type: 'object',
|
|
412
|
+
properties: { campaignId: { type: 'string', description: 'Campaign id, as returned by create_cbx_campaign.' } },
|
|
413
|
+
required: ['campaignId'],
|
|
414
|
+
},
|
|
415
|
+
handler: (args) => {
|
|
416
|
+
const { campaignId } = args;
|
|
417
|
+
return apiPost(`/v1/cbx/campaigns/${encodeURIComponent(campaignId)}/preview`, {});
|
|
418
|
+
},
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
name: 'approve_cbx_campaign',
|
|
422
|
+
description: 'Approve the previewed recipient list. Approval is of THAT specific list — if the '
|
|
423
|
+
+ 'eligible set changes afterwards, execution will refuse and it has to be re-previewed '
|
|
424
|
+
+ 'and re-approved.',
|
|
425
|
+
inputSchema: {
|
|
426
|
+
type: 'object',
|
|
427
|
+
properties: { campaignId: { type: 'string', description: 'Campaign id, as returned by create_cbx_campaign.' } },
|
|
428
|
+
required: ['campaignId'],
|
|
429
|
+
},
|
|
430
|
+
handler: (args) => {
|
|
431
|
+
const { campaignId } = args;
|
|
432
|
+
return apiPost(`/v1/cbx/campaigns/${encodeURIComponent(campaignId)}/approve`, {});
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
name: 'execute_cbx_campaign',
|
|
437
|
+
description: 'Pay an approved campaign. DISTRIBUTES REAL VALUE to many subjects at once. '
|
|
438
|
+
+ 'Refuses if the recipient list moved since approval. Pass an executionKey; a retry '
|
|
439
|
+
+ 'with the same key is a no-op rather than a second distribution. '
|
|
440
|
+
+ 'Payouts credit balances directly rather than transferring on chain, so a distribution '
|
|
441
|
+
+ 'to ten thousand recipients costs one internal move.',
|
|
442
|
+
inputSchema: {
|
|
443
|
+
type: 'object',
|
|
444
|
+
properties: {
|
|
445
|
+
campaignId: { type: 'string', description: 'Campaign id, as returned by create_cbx_campaign.' },
|
|
446
|
+
executionKey: {
|
|
447
|
+
type: 'string',
|
|
448
|
+
description: 'REQUIRED. Makes a retry a no-op instead of paying twice.',
|
|
449
|
+
},
|
|
450
|
+
},
|
|
451
|
+
required: ['campaignId', 'executionKey'],
|
|
452
|
+
},
|
|
453
|
+
handler: (args) => {
|
|
454
|
+
const { campaignId, ...body } = args;
|
|
455
|
+
return apiPost(`/v1/cbx/campaigns/${encodeURIComponent(campaignId)}/execute`, body);
|
|
456
|
+
},
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
name: 'get_cbx_campaign_payouts',
|
|
460
|
+
description: 'What a campaign actually paid, with the activity weight behind each amount. The weight '
|
|
461
|
+
+ 'is kept so a payout can be explained to the person who received it — "why did I get '
|
|
462
|
+
+ 'this much" should have a better answer than "the algorithm".',
|
|
463
|
+
inputSchema: {
|
|
464
|
+
type: 'object',
|
|
465
|
+
properties: { campaignId: { type: 'string', description: 'Campaign id, as returned by create_cbx_campaign.' } },
|
|
466
|
+
required: ['campaignId'],
|
|
467
|
+
},
|
|
468
|
+
handler: (args) => {
|
|
469
|
+
const { campaignId } = args;
|
|
470
|
+
return apiGet(`/v1/cbx/campaigns/${encodeURIComponent(campaignId)}/payouts`);
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
];
|
|
474
|
+
//# sourceMappingURL=cbx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cbx.js","sourceRoot":"","sources":["../../src/tools/cbx.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comp_watchlists.d.ts","sourceRoot":"","sources":["../../src/tools/comp_watchlists.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD,eAAO,MAAM,mBAAmB,EAAE,OAAO,EAiJxC,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { apiDelete, apiGet, apiPost } from '../api.js';
|
|
2
|
+
import { IDEMPOTENCY_PROP } from './types.js';
|
|
3
|
+
export const compWatchlistsTools = [
|
|
4
|
+
{
|
|
5
|
+
name: 'list_comp_watchlists',
|
|
6
|
+
description: "List the seller's sold-comp watchlists. Each watchlist is a saved filter against the external_sold_comps table — " +
|
|
7
|
+
'when scrapers pull new sold comps, the matching watchlists surface them in the dashboard. Useful for "what items ' +
|
|
8
|
+
'are selling at what price right now?" research.',
|
|
9
|
+
inputSchema: { type: 'object', properties: {}, additionalProperties: false },
|
|
10
|
+
handler: () => apiGet('/v1/comp-watchlists'),
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'create_comp_watchlist',
|
|
14
|
+
description: 'Create a sold-comp watchlist. At least one of brand/categoryMain/platform must be set; minPrice/maxPrice are ' +
|
|
15
|
+
'optional and must satisfy min ≤ max when both present. Pass an idempotencyKey on retries.',
|
|
16
|
+
inputSchema: {
|
|
17
|
+
type: 'object',
|
|
18
|
+
properties: {
|
|
19
|
+
name: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Human label for the watchlist, 1-100 characters — shown in the dashboard and echoed as `watchlistName` ' +
|
|
22
|
+
'in the COMP_WATCHLIST_MATCH push. Purely a label: it is NOT part of the filter and never affects which ' +
|
|
23
|
+
'comps match.',
|
|
24
|
+
maxLength: 100,
|
|
25
|
+
},
|
|
26
|
+
brand: {
|
|
27
|
+
type: ['string', 'null'],
|
|
28
|
+
description: "Brand to watch, 1-100 characters, e.g. 'Lululemon'. Matched case-insensitively as a CONTAINS against " +
|
|
29
|
+
"each scraped comp's title OR its brand field, so 'nike' also matches a title reading 'Nike Air Max 90'. " +
|
|
30
|
+
'null or omitted means any brand. At least one of brand / categoryMain / platform must be set or the ' +
|
|
31
|
+
'server rejects the create with 400.',
|
|
32
|
+
},
|
|
33
|
+
categoryMain: {
|
|
34
|
+
type: ['string', 'null'],
|
|
35
|
+
description: "Top-level category to watch, 1-100 characters — the `main` segment of Crossly's category object, e.g. " +
|
|
36
|
+
"'shoes' or 'tops'. Matched case-insensitively EXACT against the comp's category (not a contains match, " +
|
|
37
|
+
"so 'shoe' will not match 'shoes'). null or omitted means any category. Counts toward the " +
|
|
38
|
+
'brand/categoryMain/platform requirement.',
|
|
39
|
+
},
|
|
40
|
+
platform: {
|
|
41
|
+
type: ['string', 'null'],
|
|
42
|
+
description: "Marketplace slug to watch, max 40 characters — exact match on the comp's platform. Only 'ebay', " +
|
|
43
|
+
"'stockx', 'poshmark', 'mercari' and 'depop' have sold-comp scrapers; any other slug stores fine but " +
|
|
44
|
+
'never scrapes. null or omitted means any platform, and the scrape then fans out across all five. ' +
|
|
45
|
+
'Counts toward the brand/categoryMain/platform requirement.',
|
|
46
|
+
},
|
|
47
|
+
condition: {
|
|
48
|
+
type: ['string', 'null'],
|
|
49
|
+
description: "Item condition to watch, max 40 characters, in the platform's own vocabulary (e.g. 'new_with_tags', " +
|
|
50
|
+
"'good'). Matched case-insensitively EXACT against the comp's condition; rows the scraper captured with " +
|
|
51
|
+
'no condition are excluded once this is set. null or omitted means any condition. This does NOT satisfy ' +
|
|
52
|
+
'the brand/categoryMain/platform requirement on its own.',
|
|
53
|
+
},
|
|
54
|
+
minPrice: { type: ['number', 'null'], minimum: 0, description: 'In DOLLARS as a decimal, e.g. 45.99 — this column is decimal(10,2), NOT cents. Other Crossly fields ending in `Cents` are integers of cents; do not mix them up.' },
|
|
55
|
+
maxPrice: { type: ['number', 'null'], minimum: 0, description: 'In DOLLARS as a decimal, e.g. 45.99 — this column is decimal(10,2), NOT cents. Other Crossly fields ending in `Cents` are integers of cents; do not mix them up.' },
|
|
56
|
+
...IDEMPOTENCY_PROP,
|
|
57
|
+
},
|
|
58
|
+
required: ['name'],
|
|
59
|
+
additionalProperties: false,
|
|
60
|
+
},
|
|
61
|
+
handler: (args) => {
|
|
62
|
+
const { idempotencyKey, ...body } = args;
|
|
63
|
+
return apiPost('/v1/comp-watchlists', body, idempotencyKey);
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: 'delete_comp_watchlist',
|
|
68
|
+
description: 'Delete a sold-comp watchlist by id. Pass an idempotencyKey on retries.',
|
|
69
|
+
inputSchema: {
|
|
70
|
+
type: 'object',
|
|
71
|
+
properties: {
|
|
72
|
+
id: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
description: 'UUID of the watchlist to delete (`comp_watchlists.id`, as returned by list_comp_watchlists) — not a ' +
|
|
75
|
+
'listing or comp id. Must belong to the calling account; an unknown or foreign id returns 404. Deleting ' +
|
|
76
|
+
'the saved filter does NOT delete the scraped sold comps it surfaced; those are shared market data.',
|
|
77
|
+
},
|
|
78
|
+
...IDEMPOTENCY_PROP,
|
|
79
|
+
},
|
|
80
|
+
required: ['id'],
|
|
81
|
+
additionalProperties: false,
|
|
82
|
+
},
|
|
83
|
+
handler: (args) => apiDelete(`/v1/comp-watchlists/${encodeURIComponent(args.id)}`, args.idempotencyKey),
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'comp_watchlist_recent',
|
|
87
|
+
description: 'List recent external sold comps matching a watchlist — up to 50 rows ordered by soldAtApprox (or scrapedAt fallback) ' +
|
|
88
|
+
'DESC. Each row has platform, title, brand, soldPrice, imageUrl, listingUrl, scrapedAt, soldAtApprox.',
|
|
89
|
+
inputSchema: {
|
|
90
|
+
type: 'object',
|
|
91
|
+
properties: {
|
|
92
|
+
id: {
|
|
93
|
+
type: 'string',
|
|
94
|
+
description: "UUID of the watchlist whose saved filter to replay (`comp_watchlists.id`, from list_comp_watchlists). " +
|
|
95
|
+
'Must belong to the calling account, otherwise 404. Reads already-scraped rows only — it does not fetch ' +
|
|
96
|
+
'anything fresh; use comp_watchlist_scrape for that.',
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
required: ['id'],
|
|
100
|
+
additionalProperties: false,
|
|
101
|
+
},
|
|
102
|
+
handler: (args) => apiGet(`/v1/comp-watchlists/${encodeURIComponent(args.id)}/recent`),
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'comp_watchlist_scrape',
|
|
106
|
+
description: "Manually trigger a fresh scrape for a watchlist. Returns a summary of how many new comps were ingested. Use this when " +
|
|
107
|
+
"the seller wants 'pull the latest data right now' instead of waiting for the next scheduled scrape. Pass an " +
|
|
108
|
+
'idempotencyKey on retries.',
|
|
109
|
+
inputSchema: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
id: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
description: 'UUID of the watchlist to scrape right now (`comp_watchlists.id`, from list_comp_watchlists). Must ' +
|
|
115
|
+
'belong to the calling account, otherwise 404. Scrapes the one platform the watchlist names, or all ' +
|
|
116
|
+
"five scrapable ones ('ebay', 'stockx', 'poshmark', 'mercari', 'depop') when its platform is null, and " +
|
|
117
|
+
'returns `{ scraped, new, matched }` counts.',
|
|
118
|
+
},
|
|
119
|
+
...IDEMPOTENCY_PROP,
|
|
120
|
+
},
|
|
121
|
+
required: ['id'],
|
|
122
|
+
additionalProperties: false,
|
|
123
|
+
},
|
|
124
|
+
handler: (args) => apiPost(`/v1/comp-watchlists/${encodeURIComponent(args.id)}/scrape`, {}, args.idempotencyKey),
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
//# sourceMappingURL=comp_watchlists.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comp_watchlists.js","sourceRoot":"","sources":["../../src/tools/comp_watchlists.ts"],"names":[],"mappings":"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"}
|