@oakagentkit/core 0.2.4 → 0.2.5
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/build/dist/api/amounts.d.ts +2 -0
- package/build/dist/api/amounts.js +1 -1
- package/build/dist/api/args.js +1 -1
- package/build/dist/api/gas.js +1 -1
- package/build/dist/api/grandfather.js +1 -1
- package/build/dist/api/guards.js +1 -1
- package/build/dist/api/history.js +1 -1
- package/build/dist/api/http.js +1 -1
- package/build/dist/api/merkle.js +1 -1
- package/build/dist/api/module.js +1 -1
- package/build/dist/api/modules/beefy/boosts.js +1 -1
- package/build/dist/api/modules/beefy/clm.js +1 -1
- package/build/dist/api/modules/beefy/guard.js +1 -1
- package/build/dist/api/modules/beefy/index.js +1 -1
- package/build/dist/api/modules/beefy/liquidity.js +1 -1
- package/build/dist/api/modules/beefy/management.js +1 -1
- package/build/dist/api/modules/beefy/vaults.js +1 -1
- package/build/dist/api/modules/borro/abi.d.ts +149 -0
- package/build/dist/api/modules/borro/abi.js +1 -0
- package/build/dist/api/modules/borro/actions.d.ts +2 -0
- package/build/dist/api/modules/borro/actions.js +1 -0
- package/build/dist/api/modules/borro/checks.d.ts +151 -0
- package/build/dist/api/modules/borro/checks.js +1 -0
- package/build/dist/api/modules/borro/copy.d.ts +174 -0
- package/build/dist/api/modules/borro/copy.js +1 -0
- package/build/dist/api/modules/borro/index.d.ts +13 -0
- package/build/dist/api/modules/borro/index.js +1 -0
- package/build/dist/api/modules/borro/liquidity.d.ts +4 -0
- package/build/dist/api/modules/borro/liquidity.js +1 -0
- package/build/dist/api/modules/borro/pins.d.ts +264 -0
- package/build/dist/api/modules/borro/pins.js +1 -0
- package/build/dist/api/modules/borro/positions.d.ts +8 -0
- package/build/dist/api/modules/borro/positions.js +1 -0
- package/build/dist/api/modules/borro/rates.d.ts +20 -0
- package/build/dist/api/modules/borro/rates.js +1 -0
- package/build/dist/api/modules/borro/reader.d.ts +32 -0
- package/build/dist/api/modules/borro/reader.js +1 -0
- package/build/dist/api/modules/borro/types.d.ts +120 -0
- package/build/dist/api/modules/borro/types.js +0 -0
- package/build/dist/api/modules/clanker/extensions.js +1 -1
- package/build/dist/api/modules/clanker/index.js +1 -1
- package/build/dist/api/modules/clanker/manage.js +1 -1
- package/build/dist/api/modules/clanker/pool-config.js +1 -1
- package/build/dist/api/modules/clanker/protocol.js +1 -1
- package/build/dist/api/modules/clanker/state.js +1 -1
- package/build/dist/api/modules/earn/copy.d.ts +2 -2
- package/build/dist/api/modules/earn/copy.js +1 -1
- package/build/dist/api/modules/earn/index.js +1 -1
- package/build/dist/api/modules/earn/lp.js +1 -1
- package/build/dist/api/modules/earn/options.js +1 -1
- package/build/dist/api/modules/erc8004/common.js +1 -1
- package/build/dist/api/modules/erc8004/domain.js +1 -1
- package/build/dist/api/modules/erc8004/index.js +1 -1
- package/build/dist/api/modules/erc8004/management.js +1 -1
- package/build/dist/api/modules/erc8004/reputation.js +1 -1
- package/build/dist/api/modules/erc8004/services.js +1 -1
- package/build/dist/api/modules/erc8004/validation.js +1 -1
- package/build/dist/api/modules/grove/index.js +1 -1
- package/build/dist/api/modules/heyresearch/builder-feed.js +1 -1
- package/build/dist/api/modules/heyresearch/index.js +1 -1
- package/build/dist/api/modules/heyresearch/proof-reads.js +1 -1
- package/build/dist/api/modules/heyresearch/public-reads.js +1 -1
- package/build/dist/api/modules/heyresearch/scan.js +1 -1
- package/build/dist/api/modules/heyresearch/token-facts.js +1 -1
- package/build/dist/api/modules/hoodag/chain-reads.js +1 -1
- package/build/dist/api/modules/hoodag/index.js +1 -1
- package/build/dist/api/modules/hoodag/management.js +1 -1
- package/build/dist/api/modules/hoodag/public-reads.js +1 -1
- package/build/dist/api/modules/hoodag/reconstruct.js +1 -1
- package/build/dist/api/modules/hoodlock/airdrop.js +1 -1
- package/build/dist/api/modules/hoodlock/commerce.js +1 -1
- package/build/dist/api/modules/hoodlock/fee.js +1 -1
- package/build/dist/api/modules/hoodlock/guard.js +1 -1
- package/build/dist/api/modules/hoodlock/index.js +1 -1
- package/build/dist/api/modules/hoodlock/lifecycle.js +1 -1
- package/build/dist/api/modules/hoodlock/locks-burn.js +1 -1
- package/build/dist/api/modules/hoodlock/public.js +1 -1
- package/build/dist/api/modules/hookr/actions.js +1 -1
- package/build/dist/api/modules/hookr/addons.js +1 -1
- package/build/dist/api/modules/hookr/agent-gate.js +1 -1
- package/build/dist/api/modules/hookr/contracts.js +1 -1
- package/build/dist/api/modules/hookr/create-cancel.js +1 -1
- package/build/dist/api/modules/hookr/discovery.js +1 -1
- package/build/dist/api/modules/hookr/fill-bounty.js +1 -1
- package/build/dist/api/modules/hookr/index.js +1 -1
- package/build/dist/api/modules/hookr/launch-options.js +1 -1
- package/build/dist/api/modules/hookr/launch-receipt.js +1 -1
- package/build/dist/api/modules/hookr/launch.js +1 -1
- package/build/dist/api/modules/hookr/liquidity.js +1 -1
- package/build/dist/api/modules/hookr/lp-positions.js +1 -1
- package/build/dist/api/modules/hookr/lp-reads.js +1 -1
- package/build/dist/api/modules/hookr/lp-receipt.js +1 -1
- package/build/dist/api/modules/hookr/lp-state.js +1 -1
- package/build/dist/api/modules/hookr/public-reads.js +1 -1
- package/build/dist/api/modules/hookr/read-utils.js +1 -1
- package/build/dist/api/modules/hookr/relay.js +1 -1
- package/build/dist/api/modules/hookr/revenue.js +1 -1
- package/build/dist/api/modules/kyberswap/index.js +1 -1
- package/build/dist/api/modules/kyberswap/source-pools.js +1 -1
- package/build/dist/api/modules/layerbank/actions.js +1 -1
- package/build/dist/api/modules/layerbank/checks.js +1 -1
- package/build/dist/api/modules/layerbank/index.js +1 -1
- package/build/dist/api/modules/layerbank/merkl.js +1 -1
- package/build/dist/api/modules/layerbank/reader.js +1 -1
- package/build/dist/api/modules/layerbank/reserve.js +1 -1
- package/build/dist/api/modules/lighter/index.js +1 -1
- package/build/dist/api/modules/longbow/administration.js +1 -1
- package/build/dist/api/modules/longbow/analytics.js +1 -1
- package/build/dist/api/modules/longbow/fixed.js +1 -1
- package/build/dist/api/modules/longbow/index.js +1 -1
- package/build/dist/api/modules/longbow/nft.js +1 -1
- package/build/dist/api/modules/longbow/rebates.js +1 -1
- package/build/dist/api/modules/longbow/staking.js +1 -1
- package/build/dist/api/modules/meridian/index.js +1 -1
- package/build/dist/api/modules/meridian/markets.js +1 -1
- package/build/dist/api/modules/meridian/perps-batch.js +1 -1
- package/build/dist/api/modules/meridian/perps-common.js +1 -1
- package/build/dist/api/modules/meridian/perps-guards.js +1 -1
- package/build/dist/api/modules/meridian/perps-intents.js +1 -1
- package/build/dist/api/modules/meridian/perps-stream.js +1 -1
- package/build/dist/api/modules/meridian/perps.d.ts +1 -0
- package/build/dist/api/modules/meridian/perps.js +1 -1
- package/build/dist/api/modules/meridian/predict-read.js +1 -1
- package/build/dist/api/modules/meridian/rfq.js +1 -1
- package/build/dist/api/modules/merkl/discovery.js +1 -1
- package/build/dist/api/modules/merkl/index.js +1 -1
- package/build/dist/api/modules/merkl/manage.js +1 -1
- package/build/dist/api/modules/merkl/protocol.js +1 -1
- package/build/dist/api/modules/morpho/allocator.js +1 -1
- package/build/dist/api/modules/morpho/bundles.js +1 -1
- package/build/dist/api/modules/morpho/in-kind.js +1 -1
- package/build/dist/api/modules/morpho/index.js +1 -1
- package/build/dist/api/modules/morpho/local-guard.js +1 -1
- package/build/dist/api/modules/morpho/midnight.js +1 -1
- package/build/dist/api/modules/morpho/protocol.js +1 -1
- package/build/dist/api/modules/morpho/vault-management.js +1 -1
- package/build/dist/api/modules/morpho/vault-tools.js +1 -1
- package/build/dist/api/modules/morpho/vault-v2.js +1 -1
- package/build/dist/api/modules/netnet/card-plan.js +1 -1
- package/build/dist/api/modules/netnet/card-read.js +1 -1
- package/build/dist/api/modules/netnet/card-recovery.js +1 -1
- package/build/dist/api/modules/netnet/desk-action.js +1 -1
- package/build/dist/api/modules/netnet/financial.js +1 -1
- package/build/dist/api/modules/netnet/index.js +1 -1
- package/build/dist/api/modules/netnet/staking.js +1 -1
- package/build/dist/api/modules/orbio/gateway.js +1 -1
- package/build/dist/api/modules/orbio/index.js +1 -1
- package/build/dist/api/modules/orbio/positions.js +1 -1
- package/build/dist/api/modules/pendle/convert.js +1 -1
- package/build/dist/api/modules/pendle/costs.js +1 -1
- package/build/dist/api/modules/pendle/index.js +1 -1
- package/build/dist/api/modules/pendle/markets.js +1 -1
- package/build/dist/api/modules/pendle/positions.js +1 -1
- package/build/dist/api/modules/pendle/pricecheck.js +1 -1
- package/build/dist/api/modules/pendle/reader.js +1 -1
- package/build/dist/api/modules/pendle/redeem.js +1 -1
- package/build/dist/api/modules/pendle/trade.js +1 -1
- package/build/dist/api/modules/pendle/types.d.ts +16 -1
- package/build/dist/api/modules/pendle/validate.js +1 -1
- package/build/dist/api/modules/pendle/verify.js +1 -1
- package/build/dist/api/modules/pons/claim.js +1 -1
- package/build/dist/api/modules/pons/holder-directory.js +1 -1
- package/build/dist/api/modules/pons/index.js +1 -1
- package/build/dist/api/modules/pons/launch-status.js +1 -1
- package/build/dist/api/modules/pons/prices.js +1 -1
- package/build/dist/api/modules/pons/reads.js +1 -1
- package/build/dist/api/modules/pons/swap-terms.js +1 -1
- package/build/dist/api/modules/pons/trade.js +1 -1
- package/build/dist/api/modules/poolstrade/index.js +1 -1
- package/build/dist/api/modules/priors/coverage.js +1 -1
- package/build/dist/api/modules/priors/discovery.js +1 -1
- package/build/dist/api/modules/priors/features.js +1 -1
- package/build/dist/api/modules/priors/holdings.js +1 -1
- package/build/dist/api/modules/priors/index.js +1 -1
- package/build/dist/api/modules/priors/integration.js +1 -1
- package/build/dist/api/modules/priors/market.js +1 -1
- package/build/dist/api/modules/priors/pt.js +1 -1
- package/build/dist/api/modules/priors/savings-exit.js +1 -1
- package/build/dist/api/modules/priors/starter-line.js +1 -1
- package/build/dist/api/modules/priors/stock-swap.js +1 -1
- package/build/dist/api/modules/relay/api.js +1 -1
- package/build/dist/api/modules/relay/bootstrap.js +1 -1
- package/build/dist/api/modules/relay/discovery.js +1 -1
- package/build/dist/api/modules/relay/inbound.d.ts +2 -0
- package/build/dist/api/modules/relay/inbound.js +1 -1
- package/build/dist/api/modules/relay/index.js +1 -1
- package/build/dist/api/modules/relay/order.js +1 -1
- package/build/dist/api/modules/relay/outbound-status.js +1 -1
- package/build/dist/api/modules/relay/readiness.js +1 -1
- package/build/dist/api/modules/relay/reads.js +1 -1
- package/build/dist/api/modules/relay/vaults.js +1 -1
- package/build/dist/api/modules/spark/actions.js +1 -1
- package/build/dist/api/modules/spark/details.js +1 -1
- package/build/dist/api/modules/spark/index.js +1 -1
- package/build/dist/api/modules/spark/management.js +1 -1
- package/build/dist/api/modules/steakhouse/analytics.js +1 -1
- package/build/dist/api/modules/steakhouse/erc4626.js +1 -1
- package/build/dist/api/modules/steakhouse/index.js +1 -1
- package/build/dist/api/modules/steakhouse/local-guard.js +1 -1
- package/build/dist/api/modules/steakhouse/management.js +1 -1
- package/build/dist/api/modules/steakhouse/v2-exit.js +1 -1
- package/build/dist/api/modules/tickerspring/basket-routes.js +1 -1
- package/build/dist/api/modules/tickerspring/contract-reads.js +1 -1
- package/build/dist/api/modules/tickerspring/exit-preview.js +1 -1
- package/build/dist/api/modules/tickerspring/guards.js +1 -1
- package/build/dist/api/modules/tickerspring/index.js +1 -1
- package/build/dist/api/modules/tickerspring/journeys.js +1 -1
- package/build/dist/api/modules/tickerspring/ladder.js +1 -1
- package/build/dist/api/modules/tickerspring/maker.js +1 -1
- package/build/dist/api/modules/tickerspring/order-accounting.js +1 -1
- package/build/dist/api/modules/tickerspring/research.js +1 -1
- package/build/dist/api/modules/tickerspring/strategies.js +1 -1
- package/build/dist/api/modules/uniswap/auction-create.js +1 -1
- package/build/dist/api/modules/uniswap/auction.js +1 -1
- package/build/dist/api/modules/uniswap/batch.js +1 -1
- package/build/dist/api/modules/uniswap/common.js +1 -1
- package/build/dist/api/modules/uniswap/fees.js +1 -1
- package/build/dist/api/modules/uniswap/index.js +1 -1
- package/build/dist/api/modules/uniswap/local-guard.js +1 -1
- package/build/dist/api/modules/uniswap/oracle.js +1 -1
- package/build/dist/api/modules/uniswap/pool-math.js +1 -1
- package/build/dist/api/modules/uniswap/pools.js +1 -1
- package/build/dist/api/modules/uniswap/position.js +1 -1
- package/build/dist/api/modules/uniswap/protocol.js +1 -1
- package/build/dist/api/modules/uniswap/token-jar.js +1 -1
- package/build/dist/api/modules/uniswap/trade-batch.js +1 -1
- package/build/dist/api/modules/uniswap/trade.js +1 -1
- package/build/dist/api/modules/uniswap/v2.js +1 -1
- package/build/dist/api/modules/uniswap/v3.d.ts +11 -1
- package/build/dist/api/modules/uniswap/v3.js +1 -1
- package/build/dist/api/modules/uniswap/v4.js +1 -1
- package/build/dist/api/modules/uniswap/wrap.js +1 -1
- package/build/dist/api/modules/velora/claims.js +1 -1
- package/build/dist/api/modules/velora/delta-reads.js +1 -1
- package/build/dist/api/modules/velora/index.js +1 -1
- package/build/dist/api/modules/wormhole/index.js +1 -1
- package/build/dist/api/modules/wormhole/scan-text.js +1 -1
- package/build/dist/api/modules/wormhole/token-check.js +1 -1
- package/build/dist/api/positions.js +1 -1
- package/build/dist/api/pricenote.js +1 -1
- package/build/dist/api/prices.js +1 -1
- package/build/dist/api/pricing.js +1 -1
- package/build/dist/api/routes.js +1 -1
- package/build/dist/api/send.js +1 -1
- package/build/dist/api/signing-registry.js +1 -1
- package/build/dist/api/simulate.js +1 -1
- package/build/dist/api/swap.js +1 -1
- package/build/dist/api/tokens.d.ts +1 -0
- package/build/dist/api/tokens.js +1 -1
- package/build/dist/api/tool-policy.js +1 -1
- package/build/dist/api/tx.js +1 -1
- package/build/dist/api/vendor-limits.js +1 -1
- package/build/dist/chunks/{BAAXGB4K.js → 2KYAMXTS.js} +1 -1
- package/build/dist/chunks/{WVONJOWN.js → 2MAMJJJC.js} +1 -1
- package/build/dist/chunks/{MKAPRRKF.js → 2TK3ETUO.js} +1 -1
- package/build/dist/chunks/{CTMA4BTM.js → 326QMOTR.js} +1 -1
- package/build/dist/chunks/{ALRRW7SF.js → 3FUVMSCF.js} +1 -1
- package/build/dist/chunks/{YPM2UITD.js → 3GOHSYHW.js} +1 -1
- package/build/dist/chunks/{HTXKERNS.js → 3MLUCYCB.js} +1 -1
- package/build/dist/chunks/{GHPREYQK.js → 3NJ5KQ3Q.js} +1 -1
- package/build/dist/chunks/{WPFAEBE7.js → 3XNZUIRU.js} +1 -1
- package/build/dist/chunks/3XXBLNEX.js +1 -0
- package/build/dist/chunks/{PBQSJSZO.js → 43LI5NKJ.js} +1 -1
- package/build/dist/chunks/{NZXQWDGF.js → 45BRW2ZF.js} +1 -1
- package/build/dist/chunks/{QVYCJ6WV.js → 46KWRAYK.js} +1 -1
- package/build/dist/chunks/{UHRCM7AG.js → 4HG6FRVH.js} +1 -1
- package/build/dist/chunks/{TBCSZDAF.js → 4MXM6Q4W.js} +1 -1
- package/build/dist/chunks/{ZCOFMGPS.js → 4PY3UFNR.js} +1 -1
- package/build/dist/chunks/{WIVYKLQM.js → 52ELWNXJ.js} +1 -1
- package/build/dist/chunks/{F3BSEE52.js → 553UE2ZQ.js} +1 -1
- package/build/dist/chunks/{S2TAJHHK.js → 57MEFFCU.js} +1 -1
- package/build/dist/chunks/{ENX72ARB.js → 5APS4T2D.js} +1 -1
- package/build/dist/chunks/{UA4O226F.js → 5SMVQCAP.js} +1 -1
- package/build/dist/chunks/{6PY3IRDS.js → 64GOINYS.js} +1 -1
- package/build/dist/chunks/{5ZLOCQA4.js → 66F5ZH34.js} +1 -1
- package/build/dist/chunks/{HVM2EEXB.js → 6B3VVISQ.js} +1 -1
- package/build/dist/chunks/{E6RRXNV2.js → 6D5DJA5B.js} +1 -1
- package/build/dist/chunks/{XDZRO5JQ.js → 6I4NTKB2.js} +1 -1
- package/build/dist/chunks/{MFCPL6LF.js → 6OGDTEGH.js} +1 -1
- package/build/dist/chunks/6PBGEPUK.js +20 -0
- package/build/dist/chunks/{43CSMYDO.js → 6WD4HHID.js} +1 -1
- package/build/dist/chunks/{XJEOEMDS.js → 6WZX7C4T.js} +1 -1
- package/build/dist/chunks/{NA7R6J5N.js → 74Y2KDNR.js} +1 -1
- package/build/dist/chunks/{IKEJCBYU.js → 7WSHW7KW.js} +1 -1
- package/build/dist/chunks/{UPMGGK34.js → AFBEZXNV.js} +1 -1
- package/build/dist/chunks/{AUOXDNUO.js → AKYF5264.js} +1 -1
- package/build/dist/chunks/{BXHNYCH2.js → APGLZXIW.js} +1 -1
- package/build/dist/chunks/{7UOOIDR3.js → AVG4W3Y7.js} +1 -1
- package/build/dist/chunks/{Y7PRJOIK.js → B3RXD5ET.js} +1 -1
- package/build/dist/chunks/{JPNYUEQP.js → BBS3ODWZ.js} +1 -1
- package/build/dist/chunks/{I4TGMF2C.js → BJ2VGRF4.js} +1 -1
- package/build/dist/chunks/{WD37MEMZ.js → BTD5SMOW.js} +1 -1
- package/build/dist/chunks/{57JFKIMK.js → BTPXJAUX.js} +1 -1
- package/build/dist/chunks/{BIRMUW7Z.js → C36BFZH6.js} +1 -1
- package/build/dist/chunks/{ZGKVXFM5.js → C7AXJHBT.js} +1 -1
- package/build/dist/chunks/{5U7TCKX2.js → CBG5HARQ.js} +1 -1
- package/build/dist/chunks/{ET23SES4.js → CCTXCMH4.js} +1 -1
- package/build/dist/chunks/{5N4A5XAW.js → CHXBOXOD.js} +1 -1
- package/build/dist/chunks/D3YLXQPW.js +1 -0
- package/build/dist/chunks/{L7OQUHM5.js → DJN3JAWB.js} +1 -1
- package/build/dist/chunks/{CERNEJ2F.js → DW4V5PUY.js} +1 -1
- package/build/dist/chunks/E3RACZUY.js +1 -0
- package/build/dist/chunks/{TPL4U3AQ.js → E674J2MD.js} +1 -1
- package/build/dist/chunks/EE64JSLY.js +1 -0
- package/build/dist/chunks/EJ7O75A7.js +1 -0
- package/build/dist/chunks/{3AXVB23N.js → ELSXLZN5.js} +1 -1
- package/build/dist/chunks/{IQGY5FW7.js → ER47KGRM.js} +1 -1
- package/build/dist/chunks/FQ6UZCM6.js +1 -0
- package/build/dist/chunks/{WPAF55SP.js → GEIFITAQ.js} +1 -1
- package/build/dist/chunks/{4ALMYJJV.js → GGSAKCND.js} +1 -1
- package/build/dist/chunks/{EKNSLLJK.js → GL4NCUMH.js} +1 -1
- package/build/dist/chunks/GNC6RXLT.js +1 -0
- package/build/dist/chunks/{VVA72C6O.js → GQ5GYUEH.js} +1 -1
- package/build/dist/chunks/{6AAARNZ3.js → GW626GG2.js} +1 -1
- package/build/dist/chunks/{LROVANUR.js → H2XDMFQQ.js} +1 -1
- package/build/dist/chunks/H43RNCX2.js +1 -0
- package/build/dist/chunks/{VHLINDDS.js → HAQPIBYR.js} +1 -1
- package/build/dist/chunks/{ZE7EU2CS.js → HCUHMCBW.js} +1 -1
- package/build/dist/chunks/{64WKYWZV.js → HKEMQBFA.js} +1 -1
- package/build/dist/chunks/{4YFVAYKR.js → HM72DH4V.js} +1 -1
- package/build/dist/chunks/HSCQZ66A.js +1 -0
- package/build/dist/chunks/{QRC4ZPDA.js → I26DMNJG.js} +1 -1
- package/build/dist/chunks/{S3FPF537.js → IMO3GDA5.js} +1 -1
- package/build/dist/chunks/{ECWGKLBW.js → INOZIE55.js} +1 -1
- package/build/dist/chunks/{BQICZFLR.js → IOYRL6AY.js} +1 -1
- package/build/dist/chunks/IX3GZMTM.js +1 -0
- package/build/dist/chunks/IY7BXLT4.js +1 -0
- package/build/dist/chunks/{NYNJITCM.js → J2OT4KAH.js} +1 -1
- package/build/dist/chunks/{Y7RPSDD2.js → JKD2B6OX.js} +1 -1
- package/build/dist/chunks/{PSVOVZH7.js → JUZ5JU6D.js} +5 -5
- package/build/dist/chunks/{YEXUSRIZ.js → JVLLVNF2.js} +1 -1
- package/build/dist/chunks/{SSIENQVU.js → K3RDPI5J.js} +1 -1
- package/build/dist/chunks/{PADWZX7J.js → K4DHHQBI.js} +1 -1
- package/build/dist/chunks/KIFSRO5K.js +1 -0
- package/build/dist/chunks/{NB3LYS3G.js → KIFZ5ZSK.js} +1 -1
- package/build/dist/chunks/{QSN6Y2K6.js → KPCY5V35.js} +1 -1
- package/build/dist/chunks/{3ESNHZT5.js → L4N2RSK2.js} +1 -1
- package/build/dist/chunks/{EYFBVQ46.js → L5BLHY34.js} +1 -1
- package/build/dist/chunks/{E6UU7DL2.js → LSXUAHOE.js} +1 -1
- package/build/dist/chunks/{BNG2IWZL.js → M37654RL.js} +1 -1
- package/build/dist/chunks/{XFKVU46U.js → MJ6WEWMI.js} +1 -1
- package/build/dist/chunks/{47YN4OUI.js → MR5L7V6Z.js} +1 -1
- package/build/dist/chunks/{DVVFT42J.js → MRMR4QHA.js} +1 -1
- package/build/dist/chunks/{WWHCEMNB.js → N4Q6GN65.js} +1 -1
- package/build/dist/chunks/{S5WICHIS.js → NAZPDRIF.js} +1 -1
- package/build/dist/chunks/{MKBNLGDD.js → NDCLTVIU.js} +1 -1
- package/build/dist/chunks/{5WUKOQIJ.js → NEEZBJBC.js} +1 -1
- package/build/dist/chunks/{HSFOWJ3Z.js → NKZKKCK2.js} +1 -1
- package/build/dist/chunks/{5KUWLUPM.js → NWNYJ26T.js} +1 -1
- package/build/dist/chunks/{KBXU7U6Q.js → O7HCEPQY.js} +1 -1
- package/build/dist/chunks/{LDT3QTSY.js → OJ4WJUPP.js} +1 -1
- package/build/dist/chunks/{QJFXLYZG.js → OJPG45AC.js} +1 -1
- package/build/dist/chunks/{5MQ5KSSV.js → OKUO3BVM.js} +1 -1
- package/build/dist/chunks/OTXSKFUD.js +1 -0
- package/build/dist/chunks/{4TQQH7N6.js → P3S4BR5G.js} +1 -1
- package/build/dist/chunks/P56RZC2M.js +1 -0
- package/build/dist/chunks/{BK23XJXE.js → P5PYFK7L.js} +1 -1
- package/build/dist/chunks/{ZYH4B2GR.js → P7I62KFR.js} +1 -1
- package/build/dist/chunks/{SQL6HD5E.js → PK66GCDT.js} +1 -1
- package/build/dist/chunks/{6FTYNYGF.js → PSBQWDYI.js} +1 -1
- package/build/dist/chunks/{W76QC2AW.js → PV5FDT6O.js} +1 -1
- package/build/dist/chunks/{42DQTKEO.js → PXT5YTWU.js} +1 -1
- package/build/dist/chunks/{IMRXZ7JB.js → Q42YI3EP.js} +1 -1
- package/build/dist/chunks/{ZBFKKUNP.js → QA3UHEO3.js} +1 -1
- package/build/dist/chunks/QC3HH5UD.js +3 -0
- package/build/dist/chunks/{MQYOG66Q.js → QF52OIBS.js} +1 -1
- package/build/dist/chunks/{7WQEPZJY.js → QO3KCJMP.js} +1 -1
- package/build/dist/chunks/QQECG3WP.js +1 -0
- package/build/dist/chunks/QSHCBASA.js +1 -0
- package/build/dist/chunks/{RVO3QK2B.js → QU5XKRGK.js} +1 -1
- package/build/dist/chunks/{GVPX5XCL.js → QZZ4O34L.js} +1 -1
- package/build/dist/chunks/{A6YQ5H24.js → RQ4GHJXE.js} +1 -1
- package/build/dist/chunks/{3WXK2FUA.js → RUC7KH7A.js} +1 -1
- package/build/dist/chunks/{MBTARLZQ.js → RUX3RY7Y.js} +1 -1
- package/build/dist/chunks/{3VAJW6TQ.js → RVDUSNWW.js} +1 -1
- package/build/dist/chunks/{SDHPFXRM.js → S47VUTHM.js} +1 -1
- package/build/dist/chunks/{OTIXQZ3X.js → S7IFAQPG.js} +1 -1
- package/build/dist/chunks/{WMNRP3YH.js → SIYUNOLI.js} +1 -1
- package/build/dist/chunks/{TNKVRVTH.js → SJJR4ZBZ.js} +1 -1
- package/build/dist/chunks/{UFVPMWPJ.js → SMYWWIE6.js} +1 -1
- package/build/dist/chunks/{Z4SRGAVL.js → SPJCSEKP.js} +1 -1
- package/build/dist/chunks/{IQIWASRD.js → SSHCD6RZ.js} +1 -1
- package/build/dist/chunks/{SGEZIYJW.js → T2WHOZXM.js} +1 -1
- package/build/dist/chunks/{WOEKXQAH.js → T3AJSQYT.js} +1 -1
- package/build/dist/chunks/{SKMPKAZI.js → TAEZTP4L.js} +1 -1
- package/build/dist/chunks/{E3UBHTJO.js → TEJ7W534.js} +1 -1
- package/build/dist/chunks/{AWXJV2YH.js → TFDPEAVZ.js} +1 -1
- package/build/dist/chunks/{MGPHD4VV.js → TM2XCRU7.js} +1 -1
- package/build/dist/chunks/{UOGHQLQX.js → TMVO2DAK.js} +1 -1
- package/build/dist/chunks/{MXW2TP5P.js → TVWMTMEF.js} +1 -1
- package/build/dist/chunks/{GRIGSPD4.js → TX2EOIRS.js} +1 -1
- package/build/dist/chunks/{VV2HEIFI.js → U5PMVP56.js} +1 -1
- package/build/dist/chunks/{K72EYD6R.js → U67J4BCH.js} +1 -1
- package/build/dist/chunks/{MDDHG34Y.js → UHTRW2R6.js} +1 -1
- package/build/dist/chunks/{PQC5635W.js → UHVSINR5.js} +1 -1
- package/build/dist/chunks/{MOPETB64.js → UMIZMJWW.js} +1 -1
- package/build/dist/chunks/{F26FK47J.js → UNJJRQIU.js} +1 -1
- package/build/dist/chunks/V74F6IDY.js +1 -0
- package/build/dist/chunks/{MYFAKCQI.js → VEQBHI6O.js} +1 -1
- package/build/dist/chunks/VHV6WQ5F.js +1 -0
- package/build/dist/chunks/{EOQYLFXA.js → VJS4DHQQ.js} +1 -1
- package/build/dist/chunks/{AG67Z3SC.js → VOMGT5SG.js} +1 -1
- package/build/dist/chunks/{D6ZJPNK7.js → VY7XRHZQ.js} +1 -1
- package/build/dist/chunks/{W2OJ57ZO.js → VYAJXLND.js} +1 -1
- package/build/dist/chunks/{LVLVP5KQ.js → VYN2NRAP.js} +1 -1
- package/build/dist/chunks/{MDV7GECM.js → VYYSL557.js} +1 -1
- package/build/dist/chunks/{KA7BPBCV.js → W2BYU5JQ.js} +1 -1
- package/build/dist/chunks/W6BS3T7S.js +1 -0
- package/build/dist/chunks/WCNHZYQQ.js +1 -0
- package/build/dist/chunks/{ALPYEM7B.js → WDK6VOG4.js} +1 -1
- package/build/dist/chunks/{K22EXPWN.js → WIRBCS4W.js} +1 -1
- package/build/dist/chunks/{YRXT3HTW.js → WLMWWEP7.js} +1 -1
- package/build/dist/chunks/{NDW5DAFL.js → WP6RHXGN.js} +1 -1
- package/build/dist/chunks/{PLZKXQ76.js → WTXC3XKW.js} +1 -1
- package/build/dist/chunks/{WGL46F3S.js → WU7XIAXB.js} +1 -1
- package/build/dist/chunks/{5OKJEGBH.js → WV3A3OUU.js} +1 -1
- package/build/dist/chunks/{4ISR2U72.js → X2KFXCVD.js} +1 -1
- package/build/dist/chunks/{RPNAFUM5.js → X3BYCOWS.js} +1 -1
- package/build/dist/chunks/{6L5KTE6Y.js → X3PQMS4N.js} +1 -1
- package/build/dist/chunks/{RNC463IM.js → XBE3B6Y2.js} +1 -1
- package/build/dist/chunks/XLOYBLFI.js +1 -0
- package/build/dist/chunks/{2ZUP7ZEV.js → XR7VK24E.js} +1 -1
- package/build/dist/chunks/{ZSQOMSOC.js → Y25EXZCO.js} +1 -1
- package/build/dist/chunks/{TJWVY4VO.js → YCZPSMZ5.js} +1 -1
- package/build/dist/chunks/{JZXYLHI7.js → YDNTY67T.js} +1 -1
- package/build/dist/chunks/{2DUCTO5C.js → YN56C7PN.js} +1 -1
- package/build/dist/chunks/{G7XSFUDL.js → YWRDZQI6.js} +1 -1
- package/build/dist/chunks/{DP2NIYBP.js → YXTSWRV5.js} +1 -1
- package/build/dist/chunks/{I6KUORFT.js → Z43BTOTE.js} +1 -1
- package/build/dist/chunks/{PWH464CJ.js → Z4FZVJ5Z.js} +1 -1
- package/build/dist/chunks/{YAJYDD6C.js → ZMFRMWHR.js} +1 -1
- package/build/dist/chunks/{OFI3Y55L.js → ZQAFFWDK.js} +1 -1
- package/build/dist/chunks/{TBIVTEP5.js → ZSN4IRI5.js} +1 -1
- package/build/dist/chunks/{ZET37EIG.js → ZV5HIQXC.js} +1 -1
- package/package.json +1 -1
- package/build/dist/chunks/24CQ2SPB.js +0 -1
- package/build/dist/chunks/2OJAOVMG.js +0 -1
- package/build/dist/chunks/65EQECL3.js +0 -1
- package/build/dist/chunks/6YYCGUCU.js +0 -1
- package/build/dist/chunks/EU3OAJU2.js +0 -1
- package/build/dist/chunks/H4NYYJ3Z.js +0 -1
- package/build/dist/chunks/JG27HM4P.js +0 -1
- package/build/dist/chunks/L6D26AMO.js +0 -1
- package/build/dist/chunks/O6L4BJP4.js +0 -1
- package/build/dist/chunks/SUFA2GKR.js +0 -1
- package/build/dist/chunks/UP7FBDMJ.js +0 -1
- package/build/dist/chunks/YHRUAQQK.js +0 -1
- package/build/dist/chunks/ZCUXM52B.js +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { PublicClient } from 'viem';
|
|
2
|
+
import type { Address, Hex, ModuleContext, Token, TokenAmount, ToolDefinition } from '../../types.js';
|
|
3
|
+
export interface BorroPin {
|
|
4
|
+
symbol: string;
|
|
5
|
+
vault: Address;
|
|
6
|
+
vaultSymbol: string;
|
|
7
|
+
asset: Address;
|
|
8
|
+
assetDecimals: number;
|
|
9
|
+
codeHash: Hex;
|
|
10
|
+
owner: Address;
|
|
11
|
+
curator: Address;
|
|
12
|
+
adapters: readonly Address[];
|
|
13
|
+
deployedAt: string;
|
|
14
|
+
source: string;
|
|
15
|
+
measuredAtBlock: string;
|
|
16
|
+
}
|
|
17
|
+
export type VerificationMode = 'deposit' | 'withdraw';
|
|
18
|
+
export interface SetupReading {
|
|
19
|
+
ok: boolean;
|
|
20
|
+
drift: string[];
|
|
21
|
+
owner?: Address;
|
|
22
|
+
curator?: Address;
|
|
23
|
+
adapters?: Address[];
|
|
24
|
+
}
|
|
25
|
+
export interface LiquidityReading {
|
|
26
|
+
kind: 'morpho-market' | 'parked-vault' | 'unknown';
|
|
27
|
+
readyBase?: bigint;
|
|
28
|
+
}
|
|
29
|
+
export interface VerifiedVault extends Omit<BorroPin, 'deployedAt' | 'owner' | 'curator' | 'adapters'> {
|
|
30
|
+
chainId: 4663;
|
|
31
|
+
shareDecimals: 18;
|
|
32
|
+
owner?: Address;
|
|
33
|
+
curator?: Address;
|
|
34
|
+
adapters?: readonly Address[];
|
|
35
|
+
deployedAt?: string;
|
|
36
|
+
provenance: {
|
|
37
|
+
kind: 'factory';
|
|
38
|
+
factory: Address;
|
|
39
|
+
isVaultV2: true;
|
|
40
|
+
};
|
|
41
|
+
setup: SetupReading;
|
|
42
|
+
assetAllowed: boolean;
|
|
43
|
+
mode: VerificationMode;
|
|
44
|
+
}
|
|
45
|
+
export interface VaultReading {
|
|
46
|
+
vault: Address;
|
|
47
|
+
verified: boolean;
|
|
48
|
+
symbol?: string;
|
|
49
|
+
vaultSymbol?: string;
|
|
50
|
+
asset?: Token;
|
|
51
|
+
shares?: Token;
|
|
52
|
+
setup?: SetupReading;
|
|
53
|
+
error?: string;
|
|
54
|
+
totalAssets?: TokenAmount;
|
|
55
|
+
cashOnHand?: TokenAmount;
|
|
56
|
+
liquidityKind?: LiquidityReading['kind'];
|
|
57
|
+
performanceFeeWad?: string;
|
|
58
|
+
owner?: Address;
|
|
59
|
+
curator?: Address;
|
|
60
|
+
safeThreshold?: number;
|
|
61
|
+
safeOwners?: number;
|
|
62
|
+
gasInUsd?: number;
|
|
63
|
+
gasOutUsd?: number;
|
|
64
|
+
layerbankRateBasePct?: number;
|
|
65
|
+
deployedAt?: string;
|
|
66
|
+
ageSeconds?: string;
|
|
67
|
+
walletAssetBalance?: TokenAmount;
|
|
68
|
+
walletShares?: TokenAmount;
|
|
69
|
+
walletShareValue?: TokenAmount;
|
|
70
|
+
apr?: number;
|
|
71
|
+
rateSource?: string;
|
|
72
|
+
vendorReadyToWithdraw?: TokenAmount;
|
|
73
|
+
measuredAtBlock?: string;
|
|
74
|
+
risk?: {
|
|
75
|
+
title: string;
|
|
76
|
+
text: string;
|
|
77
|
+
source?: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export interface VaultSelector {
|
|
81
|
+
asset?: string;
|
|
82
|
+
vault?: Address;
|
|
83
|
+
}
|
|
84
|
+
export interface DiscoveryReading {
|
|
85
|
+
vaults: VerifiedVault[];
|
|
86
|
+
refused: {
|
|
87
|
+
vault?: Address;
|
|
88
|
+
reason: string;
|
|
89
|
+
}[];
|
|
90
|
+
sources: ('contracts.json' | 'factory-events')[];
|
|
91
|
+
incomplete: boolean;
|
|
92
|
+
warnings: string[];
|
|
93
|
+
measuredAtBlock: string;
|
|
94
|
+
}
|
|
95
|
+
export type DiscoverVaults = (client: PublicClient, options?: {
|
|
96
|
+
asset?: string;
|
|
97
|
+
wallet?: Address;
|
|
98
|
+
signal?: AbortSignal;
|
|
99
|
+
}) => Promise<DiscoveryReading>;
|
|
100
|
+
export type VerifyVault = (client: PublicClient, vault: Address, mode: VerificationMode, options?: {
|
|
101
|
+
wallet?: Address;
|
|
102
|
+
blockNumber?: bigint;
|
|
103
|
+
}) => Promise<VerifiedVault>;
|
|
104
|
+
export type ResolveVault = (client: PublicClient, selector: VaultSelector, mode: VerificationMode, wallet: Address) => Promise<VerifiedVault>;
|
|
105
|
+
export type VerifySetup = (client: PublicClient, pin: BorroPin | VerifiedVault, mode: VerificationMode) => Promise<SetupReading>;
|
|
106
|
+
export type ReadLiquidity = (client: PublicClient, pin: BorroPin | VerifiedVault) => Promise<LiquidityReading>;
|
|
107
|
+
export type ResolveAllowedAsset = (client: PublicClient, asset: Address, blockNumber: bigint) => Promise<Token | undefined>;
|
|
108
|
+
export interface VerificationDependencies {
|
|
109
|
+
resolveAllowedAsset: ResolveAllowedAsset;
|
|
110
|
+
}
|
|
111
|
+
export interface ActionToolDependencies {
|
|
112
|
+
client: PublicClient;
|
|
113
|
+
wallet: Address;
|
|
114
|
+
verifySetup: VerifySetup;
|
|
115
|
+
readLiquidity: ReadLiquidity;
|
|
116
|
+
verifyVault: VerifyVault;
|
|
117
|
+
resolveVault: ResolveVault;
|
|
118
|
+
context: ModuleContext;
|
|
119
|
+
}
|
|
120
|
+
export type CreateActionTools = (deps: ActionToolDependencies) => [ToolDefinition, ToolDefinition];
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../../../chunks/
|
|
1
|
+
import{a,b,c}from"../../../chunks/ZV5HIQXC.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{c as createExtensionsPart,a as extensionSchemas,b as launchExtensions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../../../chunks/
|
|
1
|
+
import{a,b,c}from"../../../chunks/L4N2RSK2.js";import"../../../chunks/3NJ5KQ3Q.js";import"../../../chunks/P5PYFK7L.js";import"../../../chunks/ZQAFFWDK.js";import"../../../chunks/WP6RHXGN.js";import"../../../chunks/3MLUCYCB.js";import"../../../chunks/LIUXNOLP.js";import"../../../chunks/RVDUSNWW.js";import"../../../chunks/ZV5HIQXC.js";import"../../../chunks/RUX3RY7Y.js";import"../../../chunks/XBE3B6Y2.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/U4JGEMKT.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/IOYRL6AY.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/5HCXZWUH.js";import"../../../chunks/ABPL3ZZI.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{c as createModule,b as createModulePart,a as readClankerTokens};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunks/
|
|
1
|
+
import{a}from"../../../chunks/RUX3RY7Y.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as createManagementPart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/XBE3B6Y2.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{b as poolConfiguration,a as poolSchema};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunks/
|
|
1
|
+
import{a}from"../../../chunks/RVDUSNWW.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as createProtocolPart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m}from"../../../chunks/
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m}from"../../../chunks/PV5FDT6O.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{e as NONZERO_ADDRESS_ERROR,f as address,c as bytes32Schema,l as deployment,j as hex32,h as integer,b as integerSchema,d as lockerAbi,a as pins,m as poolState,k as readUnits,i as supported,g as units};
|
|
@@ -35,7 +35,7 @@ export declare const PENDLE_BUY_STABLE_SCREEN: Template<"Lock {amount_usd} in a
|
|
|
35
35
|
export declare const PENDLE_BUY_STOCK_SCREEN: Template<"Lock {amount_units} {stock_symbol} in a fixed rate until {pendle_end_date}?\n\nWhat you get: you put in {amount_units} {stock_symbol} and receive at least {pt_min} tokens. On {pendle_end_date} each token pays out {payout_per_pt_phrase}. That is {gain_units} {stock_symbol} more than you put in, a fixed {pendle_rate}% a year in {stock_symbol}, not in dollars.\nThe catch: the payout is in {stock_symbol}, not dollars. If the stock token is worth less on {pendle_end_date}, you get less in dollars, even though the {stock_symbol} count is fixed.\nThe risk: leaving early sells at the market price that day, which can be less than you put in. This term is short ({days_left} days), so the extra {stock_symbol} is small. Pendle is a trading app; its code can fail, and its team can change it.\nCost: about {fees_usd} in trading and network fees now and about {gas_out_usd} to cash out.\n\nLock it until {pendle_end_date}? [Yes] [No]">;
|
|
36
36
|
export declare const PENDLE_SELL_SCREEN: Template<"Leave early and sell {pt_amount} tokens now?\n\nIf you wait until {pendle_end_date}, these tokens pay {payout_at_end} {unit}.\nIf you sell now, the market pays about {sell_now} {unit}, and Oak accepts no less than {sell_min}. {gap_line}\nSelling early can lose money. The price today may be lower than what you paid.\nCost: about {fees_usd} in trading and network fees.\n\nSell now? [Yes, sell now] [No, keep waiting]">;
|
|
37
37
|
export declare const PENDLE_SELL_GAP_LINE: Template<"That is {gap} less than waiting.">;
|
|
38
|
-
export declare const PENDLE_SELL_NO_GAP_LINE: Template<"The
|
|
38
|
+
export declare const PENDLE_SELL_NO_GAP_LINE: Template<"The quoted output before fees is at least the payout at the end of the term. Fees, the minimum output and what you paid still affect whether you lose money.">;
|
|
39
39
|
export declare const PENDLE_SELL_DEFAULT_BUTTON = "No, keep waiting";
|
|
40
40
|
export declare const PENDLE_REDEEM_SCREEN: Template<"Cash out {pt_amount} tokens for {usdg_out} USDG?\n\nThe term ended on {pendle_end_date}. Each token pays out {payout_per_pt_phrase} now, with no market price involved.\nCost: about {gas_usd} in network fees.\n\nCash out? [Yes] [No]">;
|
|
41
41
|
export declare const PENDLE_REDEEM_STOCK_SCREEN: Template<"Cash out {pt_amount} tokens for about {unit_out} {stock_symbol}?\n\nThe term ended on {pendle_end_date}. You receive {stock_symbol}, not USDG: about {unit_out} {stock_symbol}, worth about {value_usd} at today's price, which can move. No market price is involved in the payout itself.\nTo end up in USDG, I can swap the {stock_symbol} afterwards with Oak's swap tool and show you that price first.\nCost: about {gas_usd} in network fees.\n\nCash out? [Yes] [No]">;
|
|
@@ -87,7 +87,7 @@ export declare const TEMPLATES: {
|
|
|
87
87
|
readonly PENDLE_BUY_STOCK_SCREEN: Template<"Lock {amount_units} {stock_symbol} in a fixed rate until {pendle_end_date}?\n\nWhat you get: you put in {amount_units} {stock_symbol} and receive at least {pt_min} tokens. On {pendle_end_date} each token pays out {payout_per_pt_phrase}. That is {gain_units} {stock_symbol} more than you put in, a fixed {pendle_rate}% a year in {stock_symbol}, not in dollars.\nThe catch: the payout is in {stock_symbol}, not dollars. If the stock token is worth less on {pendle_end_date}, you get less in dollars, even though the {stock_symbol} count is fixed.\nThe risk: leaving early sells at the market price that day, which can be less than you put in. This term is short ({days_left} days), so the extra {stock_symbol} is small. Pendle is a trading app; its code can fail, and its team can change it.\nCost: about {fees_usd} in trading and network fees now and about {gas_out_usd} to cash out.\n\nLock it until {pendle_end_date}? [Yes] [No]">;
|
|
88
88
|
readonly PENDLE_SELL_SCREEN: Template<"Leave early and sell {pt_amount} tokens now?\n\nIf you wait until {pendle_end_date}, these tokens pay {payout_at_end} {unit}.\nIf you sell now, the market pays about {sell_now} {unit}, and Oak accepts no less than {sell_min}. {gap_line}\nSelling early can lose money. The price today may be lower than what you paid.\nCost: about {fees_usd} in trading and network fees.\n\nSell now? [Yes, sell now] [No, keep waiting]">;
|
|
89
89
|
readonly PENDLE_SELL_GAP_LINE: Template<"That is {gap} less than waiting.">;
|
|
90
|
-
readonly PENDLE_SELL_NO_GAP_LINE: Template<"The
|
|
90
|
+
readonly PENDLE_SELL_NO_GAP_LINE: Template<"The quoted output before fees is at least the payout at the end of the term. Fees, the minimum output and what you paid still affect whether you lose money.">;
|
|
91
91
|
readonly PENDLE_REDEEM_SCREEN: Template<"Cash out {pt_amount} tokens for {usdg_out} USDG?\n\nThe term ended on {pendle_end_date}. Each token pays out {payout_per_pt_phrase} now, with no market price involved.\nCost: about {gas_usd} in network fees.\n\nCash out? [Yes] [No]">;
|
|
92
92
|
readonly PENDLE_REDEEM_STOCK_SCREEN: Template<"Cash out {pt_amount} tokens for about {unit_out} {stock_symbol}?\n\nThe term ended on {pendle_end_date}. You receive {stock_symbol}, not USDG: about {unit_out} {stock_symbol}, worth about {value_usd} at today's price, which can move. No market price is involved in the payout itself.\nTo end up in USDG, I can swap the {stock_symbol} afterwards with Oak's swap tool and show you that price first.\nCost: about {gas_usd} in network fees.\n\nCash out? [Yes] [No]">;
|
|
93
93
|
readonly PAYOUT_EXACT: Template<"exactly 1 {unit}">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,a,aa,b,ba,c,ca,d,da,e,ea,f,fa,g,ga,h,ha,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../../../chunks/
|
|
1
|
+
import{$,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,a,aa,b,ba,c,ca,d,da,e,ea,f,fa,g,ga,h,ha,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../../../chunks/JUZ5JU6D.js";import"../../../chunks/63YRSLDK.js";export{S as ACCESS_FEE_LINE,y as ACCESS_NO_PLAN,ha as BANNED_COPY,n as BONUS_CLAUSE,u as CARD_FOOTER_ASK,v as CARD_FOOTER_NO_ASK,e as CARD_HEADER,f as CARD_HEADER_AMOUNT,g as CARD_HEADER_AMOUNT_NOT_HELD,w as ETH_HINT,T as FEES_ESTIMATED_HIGH,h as LAYERBANK_RISK_SUMMARY,ea as LAYERBANK_SETUP_MISMATCH,c as LAYERBANK_SITE,B as LB_BONUS_NOTE,C as LB_CASH_NOTE,z as LB_DEPOSIT_SCREEN,A as LB_WITHDRAW_SCREEN,$ as LP_ADD_BUTTON,Y as LP_BLOCK,_ as LP_BLOCK_UNREADABLE,aa as LP_DECLINE_BUTTON,Z as LP_NOT_WORTH_CLAUSE,U as MATURED_NOTICE,V as MATURED_STOCK_NOTICE,W as MATURED_STOCK_NOTICE_NO_AMOUNT,x as NOTHING_TO_EARN,X as NO_NEW_TERM,m as OPTION_A,q as OPTION_A_CANT_CHECK,s as OPTION_A_CLOSED,t as OPTION_A_NO_ROOM,o as OPTION_B,r as OPTION_B_CANT_CHECK,p as OPTION_B_NONE,M as PAYOUT_APPROX,L as PAYOUT_EXACT,D as PENDLE_BUY_STABLE_SCREEN,E as PENDLE_BUY_STOCK_SCREEN,l as PENDLE_CONTRACT_CHANGE,j as PENDLE_EARLY_EXIT,k as PENDLE_FIXED_RATE,J as PENDLE_REDEEM_SCREEN,K as PENDLE_REDEEM_STOCK_SCREEN,i as PENDLE_RISK_SUMMARY,I as PENDLE_SELL_DEFAULT_BUTTON,G as PENDLE_SELL_GAP_LINE,H as PENDLE_SELL_NO_GAP_LINE,F as PENDLE_SELL_SCREEN,fa as PENDLE_SERVICE_DOWN,d as PENDLE_SITE,da as PRICE_MISMATCH_REFUSAL,ba as SLIPPAGE_CAP_REFUSAL,N as STOCK_PAID_IN,O as STOCK_SHORT_TERM,P as STOCK_SHORT_TERM_DAYS,ga as TEMPLATES,ca as THIN_MARKET_REFUSAL,Q as TOO_SMALL,R as TOO_SMALL_NO_SIZE,b as fill,a as placeholdersOf};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d}from"../../../chunks/
|
|
1
|
+
import{a as d}from"../../../chunks/KIFZ5ZSK.js";import{c as l}from"../../../chunks/S47VUTHM.js";import"../../../chunks/52ELWNXJ.js";import"../../../chunks/MRMR4QHA.js";import"../../../chunks/Q42YI3EP.js";import"../../../chunks/SK2VBNAU.js";import"../../../chunks/QU5XKRGK.js";import"../../../chunks/4HG6FRVH.js";import"../../../chunks/H43RNCX2.js";import{h as s}from"../../../chunks/XR7VK24E.js";import"../../../chunks/SMYWWIE6.js";import{a as f,b as y}from"../../../chunks/CBG5HARQ.js";import{a as o}from"../../../chunks/AKYF5264.js";import"../../../chunks/KBKK7UNY.js";import"../../../chunks/JKD2B6OX.js";import"../../../chunks/TFDPEAVZ.js";import"../../../chunks/2MZXTOZU.js";import{ia as u}from"../../../chunks/JUZ5JU6D.js";import"../../../chunks/57MEFFCU.js";import"../../../chunks/VYYSL557.js";import"../../../chunks/WU7XIAXB.js";import"../../../chunks/6WD4HHID.js";import"../../../chunks/P56RZC2M.js";import"../../../chunks/TM2XCRU7.js";import"../../../chunks/MJ6WEWMI.js";import"../../../chunks/3GOHSYHW.js";import"../../../chunks/L4N2RSK2.js";import"../../../chunks/3NJ5KQ3Q.js";import"../../../chunks/P5PYFK7L.js";import"../../../chunks/ZQAFFWDK.js";import"../../../chunks/WP6RHXGN.js";import"../../../chunks/3MLUCYCB.js";import"../../../chunks/LIUXNOLP.js";import"../../../chunks/RVDUSNWW.js";import"../../../chunks/ZV5HIQXC.js";import"../../../chunks/RUX3RY7Y.js";import"../../../chunks/XBE3B6Y2.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/U4JGEMKT.js";import"../../../chunks/P4UQGWCP.js";import{b as m}from"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/IOYRL6AY.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import{b as i}from"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/5HCXZWUH.js";import"../../../chunks/ABPL3ZZI.js";import{a,j as p}from"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";import{erc20Abi as E}from"viem";function b(e){return{nowSec:()=>Math.floor(Date.now()/1e3),usdgBalance:async t=>e.clientFor(a).readContract({address:p,abi:E,functionName:"balanceOf",args:[t]}),ethBalance:async t=>e.clientFor(a).getBalance({address:t})}}var C="Optional USDG decimal base units (6 decimals); defaults to the wallet USDG balance.";function D(e,t={layerbank:s(e),pendleTerms:r=>l(e,r),pendleQuoteCosts:(r,n)=>d(e,r,n)},c={}){return m("earn",[{tools:[{name:"earn_options",inputSchema:{type:"object",properties:{amount:i(C)},additionalProperties:!1},execute:async(r,n)=>o(t,{...b(e),...c},n,typeof r.amount=="string"?{amount:r.amount}:{})}]}])}export{D as createModule,u as earnCopy,o as earnOptions,y as lpWarning,f as lpWarningParts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/CBG5HARQ.js";import"../../../chunks/KBKK7UNY.js";import"../../../chunks/JUZ5JU6D.js";import"../../../chunks/63YRSLDK.js";export{b as lpWarning,a as lpWarningParts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunks/
|
|
1
|
+
import{a}from"../../../chunks/AKYF5264.js";import"../../../chunks/KBKK7UNY.js";import"../../../chunks/JUZ5JU6D.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as earnOptions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../../../chunks/
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../../../chunks/N4Q6GN65.js";import"../../../chunks/X5V2Z2NM.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{z as act,m as address,l as agentId,o as bytes32,f as bytes32Schema,n as chainGuard,h as coordinates,r as dataProfile,a as disclosure,e as hashSchema,g as hexSchema,d as idSchema,k as isZero,b as marker,c as markerValue,v as matchingReceipt,x as metadataKeyOf,y as metadataValueOf,s as previewAction,q as referenceURI,i as reputationRegistry,t as requireAuthority,u as requireOwnerOrOperator,p as shortText,w as singleEvent,j as validationRegistry};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/WIRBCS4W.js";import"../../../chunks/N4Q6GN65.js";import"../../../chunks/X5V2Z2NM.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{b as createDomainPart,a as publicAddress};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as b,b as c,c as d,d as e,e as f}from"../../../chunks/
|
|
1
|
+
import{a as b,b as c,c as d,d as e,e as f}from"../../../chunks/GL4NCUMH.js";import"../../../chunks/WIRBCS4W.js";import"../../../chunks/PXT5YTWU.js";import"../../../chunks/BTPXJAUX.js";import"../../../chunks/RUC7KH7A.js";import"../../../chunks/U5PMVP56.js";import"../../../chunks/N4Q6GN65.js";import{a}from"../../../chunks/X5V2Z2NM.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{b as CLI_ALIASES,f as createModule,e as createModulePart,a as identityAbi,c as readAgentIdentity,d as selfRegistration};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../../../chunks/
|
|
1
|
+
import{a,b,c}from"../../../chunks/PXT5YTWU.js";import"../../../chunks/N4Q6GN65.js";import"../../../chunks/X5V2Z2NM.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as WALLET_MAX_DELAY,c as createManagementPart,b as walletRequest};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/BTPXJAUX.js";import"../../../chunks/N4Q6GN65.js";import"../../../chunks/X5V2Z2NM.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{b as createReputationPart,a as decimalText};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/RUC7KH7A.js";import"../../../chunks/N4Q6GN65.js";import"../../../chunks/X5V2Z2NM.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as SERVICE_KINDS,b as validateService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunks/
|
|
1
|
+
import{a}from"../../../chunks/U5PMVP56.js";import"../../../chunks/N4Q6GN65.js";import"../../../chunks/X5V2Z2NM.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as createValidationPart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/J2OT4KAH.js";import"../../../chunks/Z4FZVJ5Z.js";import"../../../chunks/C7AXJHBT.js";import"../../../chunks/XLOYBLFI.js";import"../../../chunks/K3RDPI5J.js";import"../../../chunks/A3PN3PK3.js";import"../../../chunks/VYAJXLND.js";import"../../../chunks/7WSHW7KW.js";import"../../../chunks/P56RZC2M.js";import"../../../chunks/TM2XCRU7.js";import"../../../chunks/MJ6WEWMI.js";import"../../../chunks/3GOHSYHW.js";import"../../../chunks/L4N2RSK2.js";import"../../../chunks/3NJ5KQ3Q.js";import"../../../chunks/P5PYFK7L.js";import"../../../chunks/ZQAFFWDK.js";import"../../../chunks/WP6RHXGN.js";import"../../../chunks/3MLUCYCB.js";import"../../../chunks/LIUXNOLP.js";import"../../../chunks/RVDUSNWW.js";import"../../../chunks/ZV5HIQXC.js";import"../../../chunks/RUX3RY7Y.js";import"../../../chunks/XBE3B6Y2.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/U4JGEMKT.js";import"../../../chunks/P4UQGWCP.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/IOYRL6AY.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/5HCXZWUH.js";import"../../../chunks/ABPL3ZZI.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{b as createModule,a as createModulePart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as U}from"../../../chunks/TNKVRVTH.js";import{b as I}from"../../../chunks/UPMGGK34.js";import{c as L,e as D}from"../../../chunks/46547QT3.js";import"../../../chunks/HOEQVPY7.js";import"../../../chunks/MYFAKCQI.js";import"../../../chunks/YHRUAQQK.js";import{b as w,e as u}from"../../../chunks/5KUWLUPM.js";import"../../../chunks/UP7FBDMJ.js";import{a as R}from"../../../chunks/FWD4L3CJ.js";import{a as F}from"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";var me=["release","contract","commit","docs","correction","other"],O=20,$=4,x=48,Y=4,Z=3,N=6,K=3e5,M=600,B=512,v=/^[a-z0-9][a-z0-9-]{0,79}$/,V=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/,S=/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u,q=/\.(?:localhost|local|localdomain|internal|intranet|lan|home|corp|private|home\.arpa)$/,H=Object.freeze({FEATURE_RELEASE:"release",PRODUCT_LAUNCH:"release",APP_RELEASE:"release",GITHUB_RELEASE:"release",API_RELEASE:"release",SDK_RELEASE:"release",DEMO_RELEASE:"release",DESIGN_RELEASE:"release",CONTRACT_DEPLOY:"contract",CONTRACT_UPGRADE:"contract",CONTRACT_DEPLOY_FOLLOWUP:"contract",CODE_ACTIVITY:"commit",DOCS_UPDATE:"docs",CORRECTION:"correction",RETRACTION:"correction"}),J=new Set(["listProjects","getProjectTimeline","getPartnerScanCard","listChanges"]),Q=new Set(["pons_launch_info","pons_holders"]);function ee(e){return{async hey(t,n){if(!J.has(t))throw new Error(`Blocked HEY read ${t}`);let o=await e("heyresearch_read",{operation:t,parameters:n});if(!u(o)||o.operation!==t||!u(o.data))throw new Error("Unexpected HEY response");return o.data},async oak(t,n){if(!Q.has(t))throw new Error(`Blocked read ${t}`);return e(t,n)}}}function T(e){return typeof e=="string"&&e.trim().length>0}function A(e){if(typeof e!="string"||!V.test(e))return;let t=Date.parse(e);return Number.isFinite(t)&&new Date(t).toISOString().slice(0,19)===e.slice(0,19)?t:void 0}function z(e){if(!(typeof e!="string"||e.length>2048||/[\s<>\\]/.test(e)||S.test(e)))try{let t=new URL(e),n=t.hostname.toLowerCase().replace(/\.$/,"");return t.protocol!=="https:"||t.username||t.password||!n||n.startsWith("[")||/^[\d.]+$/.test(n)||!n.includes(".")||n==="localhost"||q.test(n)||!/^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/.test(n)||!/[a-z]/.test(n.slice(n.lastIndexOf(".")+1))?void 0:t}catch{return}}function y(e){throw new F(e)}function te(e){return Array.isArray(e)||y("Provide the follow list as an array."),e.map(t=>((!u(t)||t.chainId!==R)&&y("Only Robinhood Chain mainnet (4663) follows can be checked."),(typeof t.token!="string"||!w.test(t.token))&&y("Each follow needs a full token address."),(typeof t.projectSlug!="string"||!v.test(t.projectSlug))&&y("Each follow needs a valid HEY project slug."),t.lastCheckedAt!==null&&A(t.lastCheckedAt)===void 0&&y("lastCheckedAt must be null or a UTC time such as 2026-11-02T12:00:00.000Z."),t.after!==void 0&&t.after!==null&&!P(t.after)&&y("Each follow cursor must be null or a cursor HEY returned."),t))}function P(e){return typeof e=="string"&&e.length>0&&e.length<=B&&!S.test(e)}function ne(e){return e===void 0?{}:((!u(e)||Object.values(e).some(t=>!P(t)))&&y("Continuation cursors must be the strings a previous page returned."),Object.fromEntries(Object.entries(e).map(([t,n])=>[t.toLowerCase(),n])))}function G(e,t,n){let o=i=>{n.push({code:"item_omitted",detail:i,slug:t.slug})};if(!u(e))return o("A row was not an object.");if(!T(e.id)||e.id.length>240)return o("A row had no usable receipt id.");let r=A(e.at);if(r===void 0)return o(`Receipt ${e.id} has no valid UTC publication time.`);if(r>t.reference+K)return o(`Receipt ${e.id} is dated in the future.`);if(!T(e.title)||e.title.length>M||S.test(e.title))return o(`Receipt ${e.id} has unusable text.`);let c=z(e.source);if(!c)return o(`Receipt ${e.id} has no public HTTPS source.`);let d=typeof e.eventType=="string"?e.eventType:void 0,g=e.withdrawn===!0?"correction":d!==void 0&&Object.hasOwn(H,d)?H[d]:"other";return{at:r,recorded:A(e.recordedAt),key:`${t.slug}|${g==="correction"?"correction:":""}${e.id}`,item:{project_slug:t.slug,project_name:t.name,hey_status:t.status,update_type:g,update_text:e.title,published_at:e.at,source_host:c.hostname,source_url:e.source}}}function X(e){return e.map((t,n)=>({candidate:t,index:n})).sort((t,n)=>n.candidate.at-t.candidate.at||t.index-n.index).map(({candidate:t})=>t.item)}function se(e,t){let n=e.nextCursor;if(!u(e.project)||e.project.slug!==t||!Array.isArray(e.items)||!(n==null||typeof n=="string"&&n.length>0&&n.length<=B))throw new Error("Unexpected timeline");return{items:e.items,next:n??null}}async function oe(e,t,n){let o=e.offset??0;(!Number.isSafeInteger(o)||o<0)&&y("offset must be a whole number from zero.");let r=new Date(n()).toISOString(),c=[],d=[],l=new Set,g=!0,i=o,_,k=0;for(;i!==void 0&&k<Y&&_===void 0;){let p;try{p=await t.hey("listProjects",{has:["token"],sort:"newest",limit:x,offset:i})}catch{return c.push({code:"unavailable",detail:"The HEY project list could not be read."}),{mode:"browse",items:[],oak:{},coverage:c,complete:!1,continuation:{offset:i},checkedThrough:r}}if(!Array.isArray(p.items)||!(p.nextOffset===void 0||Number.isSafeInteger(p.nextOffset)&&p.nextOffset>i))return c.push({code:"bad_pagination",detail:"HEY returned a project list whose paging could not be followed."}),{mode:"browse",items:[],oak:{},coverage:c,complete:!1,continuation:{offset:i},checkedThrough:r};k++;let E=i;for(let[f,s]of p.items.entries()){let a=u(s)&&u(s.token)?s.token:void 0;if(!u(s)||typeof s.slug!="string"||!v.test(s.slug)||!T(s.name)||s.name.length>M||S.test(s.name)||!a||a.chainId!==R||typeof a.contractAddress!="string"||!w.test(a.contractAddress)){c.push({code:"project_skipped",detail:"A listed project has no Robinhood Chain mainnet token HEY can bind to it.",...u(s)&&typeof s.slug=="string"&&v.test(s.slug)?{slug:s.slug}:{}});continue}if(!l.has(s.slug)){if(d.length>=x){_=E+f;break}l.add(s.slug),d.push({slug:s.slug,name:s.name,token:a.contractAddress})}}i=p.nextOffset}let b=[];for(let p=0;p<d.length;p+=N){let E=d.slice(p,p+N),f=await Promise.all(E.map(async s=>{let a=await W(t,{chainId:R,token:s.token,projectSlug:s.slug,lastCheckedAt:null}),C={...s,status:a.status==="tied"?a.line:a.status==="untied"&&a.statusLine?a.statusLine:"HEY Research Lab context unavailable"};try{let m=await t.hey("getProjectTimeline",{slug:C.slug,lens:"build",limit:Z});return{project:C,...se(m,C.slug)}}catch{return{project:C,failed:!0}}}));for(let s of f){if("failed"in s){g=!1,c.push({code:"unavailable",detail:"This project's updates could not be read.",slug:s.project.slug});continue}let a={slug:s.project.slug,name:s.project.name,status:s.project.status,reference:n()};for(let C of s.items){let m=G(C,a,c);m&&!l.has(m.key)&&(l.add(m.key),b.push(m))}}}let h=_??i;return h!==void 0&&(g=!1),{mode:"browse",items:X(b),oak:{},coverage:c,complete:g,continuation:h===void 0?null:{offset:h},checkedThrough:r}}async function W(e,t){let n;try{n=await e.hey("getPartnerScanCard",{chain:R,token:t.token})}catch{return{status:"unavailable"}}let o=n.found===!1&&n.contractAddress===void 0?{...n,contractAddress:t.token}:n,r=I(o,R,t.token);if(!r)return{status:"unavailable"};if(!r.found)return{status:"untied",detail:"HEY has no published project for this token. An empty feed proves nothing.",statusLine:L};let c=u(n.project)?n.project:void 0,d="";try{d=new URL(r.project_link).pathname.split("/")[2]??""}catch{}let l=c?.slug===t.projectSlug&&d===t.projectSlug,g=D(r.status_label,r.status_help);return r.token_verification!=="VERIFIED"||!r.activity_applies_to_token||!l?{status:"untied",detail:"HEY does not tie this token to the followed project, so no builder history is shown for it.",...l?{statusLine:g}:{}}:{status:"tied",line:g,name:T(c?.name)?String(c?.name):t.projectSlug}}function re(e,t,n){if(!u(e.query)||e.query.project!==t||e.query.mode!=="sync"||!Array.isArray(e.items)||typeof e.hasMore!="boolean"||!(P(e.nextCursor)||e.nextCursor===null&&e.hasMore===!1&&e.items.length===0)||e.ignoredParameters!==void 0&&(!Array.isArray(e.ignoredParameters)||e.ignoredParameters.length>0))throw new Error("Unexpected change ledger page");if(e.items.some(o=>u(o)&&(o.op!=="retract"||o.project!==void 0)&&(!u(o.project)||o.project.slug!==t)))throw new Error("Change belongs to another project");return{items:e.items,next:e.nextCursor===null?n:e.nextCursor,more:e.hasMore}}function ie(e,t,n){if(u(e)&&e.op==="retract"&&T(e.id)&&e.id.length<=240&&!S.test(e.id))return n.push({code:"retraction",slug:t.slug,detail:`HEY retracted ${e.id}. Empty fields were not supplied by the tombstone.`}),{at:A(e.recordedAt)??0,recorded:A(e.recordedAt),key:`${t.slug}|${e.id}|${String(e.revision)}|retract`,item:{project_slug:t.slug,project_name:t.name,hey_status:t.status,update_type:"correction",update_text:"",published_at:A(e.recordedAt)===void 0?"":e.recordedAt,source_host:"",source_url:""}};if(!u(e)||e.op!=="upsert"){n.push({code:"item_omitted",slug:t.slug,detail:"A change had no supported ledger operation."});return}let o=Array.isArray(e.evidence)?e.evidence.find(l=>u(l)&&z(l.url)):void 0,r=u(e.facts)?e.facts:{},c=typeof r.eventType=="string"?r.eventType:typeof e.type=="string"&&e.type.startsWith("build.")?e.type.slice(6).toUpperCase():void 0,d=G({id:e.id,at:e.occurredAt??e.detectedAt??e.recordedAt,recordedAt:e.recordedAt,title:e.summary,eventType:c,source:u(o)?o.url:void 0},t,n);return d&&(d.key=`${t.slug}|${String(e.id)}|${String(e.revision)}|upsert`),d}async function ae(e,t,n,o){let r=[],c=[],d={},l={},g=!0,i=e.token.toLowerCase(),_={launch_info:null,addresses:null};for(let[E,f,s]of[["launch_info","pons_launch_info",{token:e.token}],["addresses","pons_holders",{token:e.token,limit:1}]])try{let a=await t.oak(f,s);if(E==="addresses"){let C=U(a,e.token);_.addresses=C?.addresses??null,C||r.push({code:"oak_unavailable",detail:"Address figures were not read for this token.",token:i})}else _.launch_info=a}catch{r.push({code:"oak_unavailable",detail:`${f} could not be read for this token; it is unknown, not empty.`,token:i})}let k=await W(t,e);if(k.status==="unavailable")return g=!1,r.push({code:"unavailable",detail:"HEY's scan for this token could not be read.",slug:e.projectSlug,token:i}),o[i]&&(d[i]=o[i]),{key:i,facts:_,coverage:r,candidates:c,nextCursors:d,after:l,complete:g};if(k.status==="untied")return r.push({code:"tie_not_verified",detail:k.detail,slug:e.projectSlug,token:i,...k.statusLine?{statusLine:k.statusLine,statusNote:"show exactly"}:{}}),{key:i,facts:_,coverage:r,candidates:c,nextCursors:d,after:l,complete:g};let b={slug:e.projectSlug,name:k.name,status:k.line,reference:n},h=o[i]??e.after??"c1.0",p=new Set([h]);for(let E=0;;E++){if(E>=Y){g=!1,d[i]=h;break}let f;try{f=re(await t.hey("listChanges",{project:e.projectSlug,after:h,limit:x}),e.projectSlug,h)}catch{g=!1,r.push({code:"unavailable",detail:"This project's change ledger could not be read.",slug:e.projectSlug,token:i}),d[i]=h;break}if(p.has(f.next)&&(f.more||f.items.length>0)){g=!1,r.push({code:"bad_pagination",detail:"HEY repeated a continuation cursor.",slug:e.projectSlug,token:i}),d[i]=h;break}for(let s of f.items){let a=ie(s,b,r);a&&c.push(a)}if(!f.more){l[i]=f.next;break}p.add(f.next),h=f.next}return{key:i,facts:_,coverage:r,candidates:c,nextCursors:d,after:l,complete:g}}async function ce(e,t,n){let o=te(e.entries),r=A(e.until);r===void 0&&y("until must be a UTC time such as 2026-11-02T12:00:00.000Z.");let c=ne(e.cursors),d=Object.keys(c).length>0,l=[],g={},i=[],_=new Set,k={},b={},h=!0,p=o.filter(a=>!d||Object.hasOwn(c,a.token.toLowerCase())),E=p.slice(0,O),f=p.slice(O);f.length&&(h=!1,l.push({code:"follow_limit",detail:`At most ${O} followed tokens are read at once; ${f.length} remain.`})),o.length||l.push({code:"no_follows",detail:"The follow list is empty. An empty feed proves nothing."});for(let a=0;a<E.length;a+=$){let C=await Promise.all(E.slice(a,a+$).map(m=>ae(m,t,Math.max(r,n()),c)));for(let m of C){g[m.key]=m.facts,l.push(...m.coverage),Object.assign(k,m.nextCursors),Object.assign(b,m.after),m.complete||(h=!1);for(let j of m.candidates)_.has(j.key)||(_.add(j.key),i.push(j))}}let s={};return Object.keys(k).length&&(s.cursors=k),f.length&&(s.remainingTokens=f.map(a=>a.token)),{mode:"updates",items:X(i),oak:g,coverage:l,complete:h,after:b,continuation:Object.keys(s).length?s:null,checkedThrough:e.until}}async function he(e,t,n={}){let o=ee(t);return u(e)&&e.mode==="browse"?oe(e,o,n.now??Date.now):u(e)&&e.mode==="updates"?ce(e,o,n.now??Date.now):y("Choose browse or updates.")}export{me as UPDATE_TYPES,he as readBuilderFeed};
|
|
1
|
+
import{a as U}from"../../../chunks/SJJR4ZBZ.js";import{b as I}from"../../../chunks/AFBEZXNV.js";import{c as L,e as D}from"../../../chunks/46547QT3.js";import"../../../chunks/HOEQVPY7.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import{b as w,e as u}from"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import{a as R}from"../../../chunks/FWD4L3CJ.js";import{a as F}from"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";var me=["release","contract","commit","docs","correction","other"],O=20,$=4,x=48,Y=4,Z=3,N=6,K=3e5,M=600,B=512,v=/^[a-z0-9][a-z0-9-]{0,79}$/,V=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/,S=/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/u,q=/\.(?:localhost|local|localdomain|internal|intranet|lan|home|corp|private|home\.arpa)$/,H=Object.freeze({FEATURE_RELEASE:"release",PRODUCT_LAUNCH:"release",APP_RELEASE:"release",GITHUB_RELEASE:"release",API_RELEASE:"release",SDK_RELEASE:"release",DEMO_RELEASE:"release",DESIGN_RELEASE:"release",CONTRACT_DEPLOY:"contract",CONTRACT_UPGRADE:"contract",CONTRACT_DEPLOY_FOLLOWUP:"contract",CODE_ACTIVITY:"commit",DOCS_UPDATE:"docs",CORRECTION:"correction",RETRACTION:"correction"}),J=new Set(["listProjects","getProjectTimeline","getPartnerScanCard","listChanges"]),Q=new Set(["pons_launch_info","pons_holders"]);function ee(e){return{async hey(t,n){if(!J.has(t))throw new Error(`Blocked HEY read ${t}`);let o=await e("heyresearch_read",{operation:t,parameters:n});if(!u(o)||o.operation!==t||!u(o.data))throw new Error("Unexpected HEY response");return o.data},async oak(t,n){if(!Q.has(t))throw new Error(`Blocked read ${t}`);return e(t,n)}}}function T(e){return typeof e=="string"&&e.trim().length>0}function A(e){if(typeof e!="string"||!V.test(e))return;let t=Date.parse(e);return Number.isFinite(t)&&new Date(t).toISOString().slice(0,19)===e.slice(0,19)?t:void 0}function z(e){if(!(typeof e!="string"||e.length>2048||/[\s<>\\]/.test(e)||S.test(e)))try{let t=new URL(e),n=t.hostname.toLowerCase().replace(/\.$/,"");return t.protocol!=="https:"||t.username||t.password||!n||n.startsWith("[")||/^[\d.]+$/.test(n)||!n.includes(".")||n==="localhost"||q.test(n)||!/^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/.test(n)||!/[a-z]/.test(n.slice(n.lastIndexOf(".")+1))?void 0:t}catch{return}}function y(e){throw new F(e)}function te(e){return Array.isArray(e)||y("Provide the follow list as an array."),e.map(t=>((!u(t)||t.chainId!==R)&&y("Only Robinhood Chain mainnet (4663) follows can be checked."),(typeof t.token!="string"||!w.test(t.token))&&y("Each follow needs a full token address."),(typeof t.projectSlug!="string"||!v.test(t.projectSlug))&&y("Each follow needs a valid HEY project slug."),t.lastCheckedAt!==null&&A(t.lastCheckedAt)===void 0&&y("lastCheckedAt must be null or a UTC time such as 2026-11-02T12:00:00.000Z."),t.after!==void 0&&t.after!==null&&!P(t.after)&&y("Each follow cursor must be null or a cursor HEY returned."),t))}function P(e){return typeof e=="string"&&e.length>0&&e.length<=B&&!S.test(e)}function ne(e){return e===void 0?{}:((!u(e)||Object.values(e).some(t=>!P(t)))&&y("Continuation cursors must be the strings a previous page returned."),Object.fromEntries(Object.entries(e).map(([t,n])=>[t.toLowerCase(),n])))}function G(e,t,n){let o=i=>{n.push({code:"item_omitted",detail:i,slug:t.slug})};if(!u(e))return o("A row was not an object.");if(!T(e.id)||e.id.length>240)return o("A row had no usable receipt id.");let r=A(e.at);if(r===void 0)return o(`Receipt ${e.id} has no valid UTC publication time.`);if(r>t.reference+K)return o(`Receipt ${e.id} is dated in the future.`);if(!T(e.title)||e.title.length>M||S.test(e.title))return o(`Receipt ${e.id} has unusable text.`);let c=z(e.source);if(!c)return o(`Receipt ${e.id} has no public HTTPS source.`);let d=typeof e.eventType=="string"?e.eventType:void 0,g=e.withdrawn===!0?"correction":d!==void 0&&Object.hasOwn(H,d)?H[d]:"other";return{at:r,recorded:A(e.recordedAt),key:`${t.slug}|${g==="correction"?"correction:":""}${e.id}`,item:{project_slug:t.slug,project_name:t.name,hey_status:t.status,update_type:g,update_text:e.title,published_at:e.at,source_host:c.hostname,source_url:e.source}}}function X(e){return e.map((t,n)=>({candidate:t,index:n})).sort((t,n)=>n.candidate.at-t.candidate.at||t.index-n.index).map(({candidate:t})=>t.item)}function se(e,t){let n=e.nextCursor;if(!u(e.project)||e.project.slug!==t||!Array.isArray(e.items)||!(n==null||typeof n=="string"&&n.length>0&&n.length<=B))throw new Error("Unexpected timeline");return{items:e.items,next:n??null}}async function oe(e,t,n){let o=e.offset??0;(!Number.isSafeInteger(o)||o<0)&&y("offset must be a whole number from zero.");let r=new Date(n()).toISOString(),c=[],d=[],l=new Set,g=!0,i=o,_,k=0;for(;i!==void 0&&k<Y&&_===void 0;){let p;try{p=await t.hey("listProjects",{has:["token"],sort:"newest",limit:x,offset:i})}catch{return c.push({code:"unavailable",detail:"The HEY project list could not be read."}),{mode:"browse",items:[],oak:{},coverage:c,complete:!1,continuation:{offset:i},checkedThrough:r}}if(!Array.isArray(p.items)||!(p.nextOffset===void 0||Number.isSafeInteger(p.nextOffset)&&p.nextOffset>i))return c.push({code:"bad_pagination",detail:"HEY returned a project list whose paging could not be followed."}),{mode:"browse",items:[],oak:{},coverage:c,complete:!1,continuation:{offset:i},checkedThrough:r};k++;let E=i;for(let[f,s]of p.items.entries()){let a=u(s)&&u(s.token)?s.token:void 0;if(!u(s)||typeof s.slug!="string"||!v.test(s.slug)||!T(s.name)||s.name.length>M||S.test(s.name)||!a||a.chainId!==R||typeof a.contractAddress!="string"||!w.test(a.contractAddress)){c.push({code:"project_skipped",detail:"A listed project has no Robinhood Chain mainnet token HEY can bind to it.",...u(s)&&typeof s.slug=="string"&&v.test(s.slug)?{slug:s.slug}:{}});continue}if(!l.has(s.slug)){if(d.length>=x){_=E+f;break}l.add(s.slug),d.push({slug:s.slug,name:s.name,token:a.contractAddress})}}i=p.nextOffset}let b=[];for(let p=0;p<d.length;p+=N){let E=d.slice(p,p+N),f=await Promise.all(E.map(async s=>{let a=await W(t,{chainId:R,token:s.token,projectSlug:s.slug,lastCheckedAt:null}),C={...s,status:a.status==="tied"?a.line:a.status==="untied"&&a.statusLine?a.statusLine:"HEY Research Lab context unavailable"};try{let m=await t.hey("getProjectTimeline",{slug:C.slug,lens:"build",limit:Z});return{project:C,...se(m,C.slug)}}catch{return{project:C,failed:!0}}}));for(let s of f){if("failed"in s){g=!1,c.push({code:"unavailable",detail:"This project's updates could not be read.",slug:s.project.slug});continue}let a={slug:s.project.slug,name:s.project.name,status:s.project.status,reference:n()};for(let C of s.items){let m=G(C,a,c);m&&!l.has(m.key)&&(l.add(m.key),b.push(m))}}}let h=_??i;return h!==void 0&&(g=!1),{mode:"browse",items:X(b),oak:{},coverage:c,complete:g,continuation:h===void 0?null:{offset:h},checkedThrough:r}}async function W(e,t){let n;try{n=await e.hey("getPartnerScanCard",{chain:R,token:t.token})}catch{return{status:"unavailable"}}let o=n.found===!1&&n.contractAddress===void 0?{...n,contractAddress:t.token}:n,r=I(o,R,t.token);if(!r)return{status:"unavailable"};if(!r.found)return{status:"untied",detail:"HEY has no published project for this token. An empty feed proves nothing.",statusLine:L};let c=u(n.project)?n.project:void 0,d="";try{d=new URL(r.project_link).pathname.split("/")[2]??""}catch{}let l=c?.slug===t.projectSlug&&d===t.projectSlug,g=D(r.status_label,r.status_help);return r.token_verification!=="VERIFIED"||!r.activity_applies_to_token||!l?{status:"untied",detail:"HEY does not tie this token to the followed project, so no builder history is shown for it.",...l?{statusLine:g}:{}}:{status:"tied",line:g,name:T(c?.name)?String(c?.name):t.projectSlug}}function re(e,t,n){if(!u(e.query)||e.query.project!==t||e.query.mode!=="sync"||!Array.isArray(e.items)||typeof e.hasMore!="boolean"||!(P(e.nextCursor)||e.nextCursor===null&&e.hasMore===!1&&e.items.length===0)||e.ignoredParameters!==void 0&&(!Array.isArray(e.ignoredParameters)||e.ignoredParameters.length>0))throw new Error("Unexpected change ledger page");if(e.items.some(o=>u(o)&&(o.op!=="retract"||o.project!==void 0)&&(!u(o.project)||o.project.slug!==t)))throw new Error("Change belongs to another project");return{items:e.items,next:e.nextCursor===null?n:e.nextCursor,more:e.hasMore}}function ie(e,t,n){if(u(e)&&e.op==="retract"&&T(e.id)&&e.id.length<=240&&!S.test(e.id))return n.push({code:"retraction",slug:t.slug,detail:`HEY retracted ${e.id}. Empty fields were not supplied by the tombstone.`}),{at:A(e.recordedAt)??0,recorded:A(e.recordedAt),key:`${t.slug}|${e.id}|${String(e.revision)}|retract`,item:{project_slug:t.slug,project_name:t.name,hey_status:t.status,update_type:"correction",update_text:"",published_at:A(e.recordedAt)===void 0?"":e.recordedAt,source_host:"",source_url:""}};if(!u(e)||e.op!=="upsert"){n.push({code:"item_omitted",slug:t.slug,detail:"A change had no supported ledger operation."});return}let o=Array.isArray(e.evidence)?e.evidence.find(l=>u(l)&&z(l.url)):void 0,r=u(e.facts)?e.facts:{},c=typeof r.eventType=="string"?r.eventType:typeof e.type=="string"&&e.type.startsWith("build.")?e.type.slice(6).toUpperCase():void 0,d=G({id:e.id,at:e.occurredAt??e.detectedAt??e.recordedAt,recordedAt:e.recordedAt,title:e.summary,eventType:c,source:u(o)?o.url:void 0},t,n);return d&&(d.key=`${t.slug}|${String(e.id)}|${String(e.revision)}|upsert`),d}async function ae(e,t,n,o){let r=[],c=[],d={},l={},g=!0,i=e.token.toLowerCase(),_={launch_info:null,addresses:null};for(let[E,f,s]of[["launch_info","pons_launch_info",{token:e.token}],["addresses","pons_holders",{token:e.token,limit:1}]])try{let a=await t.oak(f,s);if(E==="addresses"){let C=U(a,e.token);_.addresses=C?.addresses??null,C||r.push({code:"oak_unavailable",detail:"Address figures were not read for this token.",token:i})}else _.launch_info=a}catch{r.push({code:"oak_unavailable",detail:`${f} could not be read for this token; it is unknown, not empty.`,token:i})}let k=await W(t,e);if(k.status==="unavailable")return g=!1,r.push({code:"unavailable",detail:"HEY's scan for this token could not be read.",slug:e.projectSlug,token:i}),o[i]&&(d[i]=o[i]),{key:i,facts:_,coverage:r,candidates:c,nextCursors:d,after:l,complete:g};if(k.status==="untied")return r.push({code:"tie_not_verified",detail:k.detail,slug:e.projectSlug,token:i,...k.statusLine?{statusLine:k.statusLine,statusNote:"show exactly"}:{}}),{key:i,facts:_,coverage:r,candidates:c,nextCursors:d,after:l,complete:g};let b={slug:e.projectSlug,name:k.name,status:k.line,reference:n},h=o[i]??e.after??"c1.0",p=new Set([h]);for(let E=0;;E++){if(E>=Y){g=!1,d[i]=h;break}let f;try{f=re(await t.hey("listChanges",{project:e.projectSlug,after:h,limit:x}),e.projectSlug,h)}catch{g=!1,r.push({code:"unavailable",detail:"This project's change ledger could not be read.",slug:e.projectSlug,token:i}),d[i]=h;break}if(p.has(f.next)&&(f.more||f.items.length>0)){g=!1,r.push({code:"bad_pagination",detail:"HEY repeated a continuation cursor.",slug:e.projectSlug,token:i}),d[i]=h;break}for(let s of f.items){let a=ie(s,b,r);a&&c.push(a)}if(!f.more){l[i]=f.next;break}p.add(f.next),h=f.next}return{key:i,facts:_,coverage:r,candidates:c,nextCursors:d,after:l,complete:g}}async function ce(e,t,n){let o=te(e.entries),r=A(e.until);r===void 0&&y("until must be a UTC time such as 2026-11-02T12:00:00.000Z.");let c=ne(e.cursors),d=Object.keys(c).length>0,l=[],g={},i=[],_=new Set,k={},b={},h=!0,p=o.filter(a=>!d||Object.hasOwn(c,a.token.toLowerCase())),E=p.slice(0,O),f=p.slice(O);f.length&&(h=!1,l.push({code:"follow_limit",detail:`At most ${O} followed tokens are read at once; ${f.length} remain.`})),o.length||l.push({code:"no_follows",detail:"The follow list is empty. An empty feed proves nothing."});for(let a=0;a<E.length;a+=$){let C=await Promise.all(E.slice(a,a+$).map(m=>ae(m,t,Math.max(r,n()),c)));for(let m of C){g[m.key]=m.facts,l.push(...m.coverage),Object.assign(k,m.nextCursors),Object.assign(b,m.after),m.complete||(h=!1);for(let j of m.candidates)_.has(j.key)||(_.add(j.key),i.push(j))}}let s={};return Object.keys(k).length&&(s.cursors=k),f.length&&(s.remainingTokens=f.map(a=>a.token)),{mode:"updates",items:X(i),oak:g,coverage:l,complete:h,after:b,continuation:Object.keys(s).length?s:null,checkedThrough:e.until}}async function he(e,t,n={}){let o=ee(t);return u(e)&&e.mode==="browse"?oe(e,o,n.now??Date.now):u(e)&&e.mode==="updates"?ce(e,o,n.now??Date.now):y("Choose browse or updates.")}export{me as UPDATE_TYPES,he as readBuilderFeed};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as N}from"../../../chunks/LVLVP5KQ.js";import{a as $}from"../../../chunks/TWR7BF72.js";import"../../../chunks/UOGHQLQX.js";import{a as L}from"../../../chunks/UPMGGK34.js";import{b as R}from"../../../chunks/46547QT3.js";import{a as O}from"../../../chunks/HOEQVPY7.js";import{b as Y}from"../../../chunks/Z4SRGAVL.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/PBQSJSZO.js";import{a as q}from"../../../chunks/MYFAKCQI.js";import"../../../chunks/YHRUAQQK.js";import"../../../chunks/5ZLOCQA4.js";import{b,e as c,g as T}from"../../../chunks/5KUWLUPM.js";import"../../../chunks/UP7FBDMJ.js";import{a as m}from"../../../chunks/FWD4L3CJ.js";import{a as u,e as M}from"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";var I="https://heyresearch.xyz",U=6e4,F=120,D=/^[a-z0-9][a-z0-9-]{0,79}$/,K=`${R} HEY Research Lab records public activity. These records are not investment advice, a buy or sell signal, or a safety verdict. Null means not measured.`,z=`${R} Keyed research, not advice. Preserve per-item found/error states and input order. The server key is not returned. Private responses are not cached.`,G=`${R} Stateless receipt validation. HEY stores nothing and does not endorse the conclusion. Oak does not cache this receipt.`,B=new WeakMap;function h(e){return typeof e=="string"&&e.trim().length>0}function E(e){return h(e)&&Number.isFinite(Date.parse(e))}function A(e){return e===null||typeof e=="number"&&Number.isSafeInteger(e)&&e>=0}function H(e){if(!h(e))return!1;try{let r=new URL(e);return r.origin===I&&!r.username&&!r.password}catch{return!1}}function k(){throw new u("HEY returned an unexpected response. Please try again.")}function C(e,r){if((e.schema!=="hey.agent-intelligence-response"||e.schemaVersion!=="1"||e.capability!==r||e.status!=="ok"||!c(e.chain)||e.chain.chainId!==m||!c(e.data)||!c(e.links)||!H(e.links.page)||!c(e.citation)||!h(e.citation.text)||!E(e.citation.asOf)||!E(e.asOf))&&k(),r==="research_project"){(!c(e.subject)||!c(e.subject.project)||!h(e.subject.project.slug)||!c(e.data.builderState)||!h(e.data.builderState.activityStatus)||typeof e.data.builderState.activityMeasured!="boolean"||!A(e.data.builderState.meaningfulEvents30d))&&k();let t=e.subject.project.token;t!=null&&(!c(t)||t.chainId!==m||typeof t.address!="string"||!b.test(t.address))&&k()}else r==="chain_brief"&&(!c(e.data.window)||!E(e.data.window.from)||!E(e.data.window.to)||!c(e.data.shipped)||!A(e.data.shipped.ships)||!A(e.data.shipped.projects))&&k()}function J(e,r){(e.chain_id!==m||typeof e.contract_address!="string"||e.contract_address.toLowerCase()!==r||!H(e.project_link)||!h(e.hey_status_label)||!h(e.token_verification)||typeof e.activity_applies_to_token!="boolean"||typeof e.activity_measured!="boolean"||!A(e.meaningful_ships_30d)||!E(e.as_of)||!h(e.disclaimer)||e.token_verification==="MISMATCH"&&e.activity_applies_to_token!==!1)&&k()}function V(e){(e.chainId!==m||!Array.isArray(e.days)||e.days.length===0||!e.days.every(r=>c(r)&&typeof r.day=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(r.day)&&A(r.ships)&&A(r.transactions)&&(r.chainObservedAt===null||E(r.chainObservedAt))))&&k()}function W(e,r){let t=n=>{throw new u(`HEY scan_cards returned an unexpected ${n}. Please try again.`)};(!Array.isArray(e.items)||e.items.length!==r.length)&&t("items"),e.requested!==r.length&&t("requested count"),(typeof e.found_count!="number"||!Number.isSafeInteger(e.found_count)||e.found_count<0)&&t("found_count"),h(e.disclaimer)||t("disclaimer");for(let[n,s]of e.items.entries()){(!c(s)||s.input!==r[n])&&t(`items[${n}].input`);let i=s;typeof i.found!="boolean"&&t(`items[${n}].found`),i.chainId!==m&&t(`items[${n}].chainId`),(typeof i.contractAddress!="string"||!T(i.contractAddress,r[n]))&&t(`items[${n}].contractAddress`),h(i.disclaimer)||t(`items[${n}].disclaimer`),i.found&&(!c(i.project)||!c(i.activity)||!H(i.project_link)||!h(i.status)||!h(i.status_label)||!h(i.status_help)||!h(i.research_level)||typeof i.verified_builder!="boolean"||typeof i.activity_measured!="boolean"||!["VERIFIED","UNVERIFIED","MISMATCH"].includes(String(i.token_verification))||typeof i.activity_applies_to_token!="boolean"||i.token_verification==="MISMATCH"&&i.activity_applies_to_token!==!1||!["measured","no_source","not_researched"].includes(String(i.coverage)))&&t(`items[${n}] scan card`)}}var j=class extends u{constructor(t,n,s){super(s);this.status=t;this.code=n}status;code};function P(e,r,t=""){let n=c(r)?r.error:void 0,s=c(n)?n.code:n;if(e===400&&s==="ambiguous"){let p=(c(n)&&Array.isArray(n.candidates)?n.candidates:[]).flatMap(d=>c(d)&&typeof d.slug=="string"&&D.test(d.slug)?[d.slug]:[]);return new j(e,s,`The HEY query is ambiguous. Choose a project slug${p.length?`: ${p.join(", ")}`:" or use a contract address"}.`)}if(e===404&&(s==="not_found"||s==="not_published")){if(t.startsWith("/api/evidence/"))return new j(e,s,"The cited HEY evidence receipt is unavailable. Check the exact typed id; missing evidence is not a finding.");let i=c(r)&&H(r.scan_url)?` See ${r.scan_url}.`:"";return new j(e,s,`HEY has not published a matching project. This describes its index, not the token.${i}`)}return new j(e,s,e>=400&&e<500&&e!==429?L(e,t).message:`HEY returned HTTP ${e}. Please try again.`)}async function Q(e){let r=e.body?.getReader();if(!r)return"";let t=[],n=0;try{for(;;){let{done:p,value:d}=await r.read();if(p)break;if(n+=d.byteLength,n>2e6)throw await r.cancel(),new u("HEY response exceeds the two-megabyte read limit. Narrow the query.");t.push(d)}}finally{r.releaseLock()}let s=new Uint8Array(n),i=0;for(let p of t)s.set(p,i),i+=p.byteLength;return new TextDecoder().decode(s)}function X(e){let r=B.get(e.http);r||(r={cache:new Map,pending:new Map,requests:[],backoff:O()},B.set(e.http,r));let t=r;return async(n,s,i="json",p,d=!1,w=1)=>{let l=d?e.heyApiKey:void 0;if(d&&!l)throw new u("HEY bulk reads require an operator-configured server API key. Never provide a key in tool arguments.");if(l&&(typeof l!="string"||l.length>4096||[...l].some(o=>o.charCodeAt(0)<33||o.charCodeAt(0)>126)))throw new u("The server HEY API key configuration is invalid. Ask the Oak operator to correct it.");let a=p===void 0&&!d;if(t.backoff.blocked())throw new u(t.backoff.limited()?"HEY received too many requests. Please try again later.":"HEY Research Lab is temporarily unavailable. Please try again later.");let f=Date.now();for(let[o,_]of t.cache)_.expires<=f&&t.cache.delete(o);let y=a?t.cache.get(n):void 0;if(y)return s(y.body),structuredClone(y.body);let S=a?t.pending.get(n):void 0;if(S){let o=await S;return s(o),structuredClone(o)}if(t.requests=t.requests.filter(o=>o>f-U),t.requests.length+w>F)throw new u("HEY received too many requests. Please try again later.");for(let o=0;o<w;o++)t.requests.push(f);let g=(async()=>{try{let o=await e.http(`${I}${n}`,{method:p===void 0?"GET":"POST",credentials:"omit",redirect:"error",headers:{accept:i==="csv"?"text/csv":"application/json","x-hey-integration":"oak/1.0.0","user-agent":"oak/1.0.0",...p===void 0?{}:{"content-type":"application/json"},...l?{authorization:`Bearer ${l}`}:{}},...p===void 0?{}:{body:JSON.stringify(p)},signal:AbortSignal.timeout(1e4)}).catch(v=>{if(v instanceof q)return v.response;throw t.backoff.defer(null),v});if(o.status===429)throw t.backoff.defer(o.headers.get("retry-after"),!0),await o.body?.cancel(),new u("HEY received too many requests. Please try again later.");if(o.status>=500)throw t.backoff.defer(o.headers.get("retry-after")),await o.body?.cancel(),P(o.status,null,n);let _;try{let v=await Q(o);_=i==="csv"&&o.ok?{format:"csv",value:v}:JSON.parse(v)}catch(v){throw v instanceof u?v:o.ok?new u("HEY returned malformed JSON. Please try again."):P(o.status,null,n)}if(d&&[401,403].includes(o.status))throw new u("HEY refused keyed access. Ask the Oak operator to check the server key and allowance.");if(!o.ok)throw P(o.status,_,n);return c(_)||k(),s(_),a&&t.cache.set(n,{body:_,expires:Date.now()+U}),_}catch(o){throw o instanceof u?o:new u(M(o))}})();a&&t.pending.set(n,g);try{return structuredClone(await g)}finally{a&&t.pending.delete(n)}}}function x(e,r){if(!c(e)||Object.keys(e).some(t=>t!==r))throw new u(`Provide only ${r}; HEY reads are fixed to Robinhood Chain 4663.`)}var Z=e=>{let r=X(e);return{tools:[{name:"heyresearch_research_project",inputSchema:{type:"object",additionalProperties:!1,required:["project"],properties:{project:{type:"string",minLength:1,maxLength:200,description:"A project slug, project name, ticker search, or token contract address on chain 4663."}}},async execute(t){if(x(t,"project"),!h(t.project)||t.project.trim().length>200)throw new u("Provide a project slug, name, ticker, or token contract address.");let n=t.project.trim();if(/^0x/i.test(n)&&!b.test(n))throw new u("Provide a full token contract address on Robinhood Chain 4663.");let s=b.test(n)?"address":D.test(n)?"project":"q",i=s==="address"?n.toLowerCase():n,p=g=>r(`/api/agent/research_project?${g}=${encodeURIComponent(i)}`,o=>C(o,"research_project")),d;try{d=await p(s)}catch(g){if(s!=="project"||!(g instanceof j)||g.status!==404||g.code!=="not_found")throw g;d=await p("q")}let w=d.subject.project,l=c(w.token)?w.token.address:void 0,a=s==="address"?i:l?.toLowerCase(),f=a?await r(`/api/v1/builder?chain=${m}&token=${a}&integration=oak/1.0.0`,g=>J(g,a)):null,y=f?.activity_applies_to_token===!1;s==="address"&&l&&l.toLowerCase()!==a&&!y&&k();let S=d.links;return{chainId:m,research:d,builder:f,freshnessAssessment:$(d),attribution:{page:S.page,citation:d.citation,...f&&!y?{project_link:f.project_link}:{}},warnings:y?["This activity belongs to the project, not this token. The project names a different contract; do not link this token to the project."]:[],notAdvice:!0,disclaimer:K}}},{name:"heyresearch_chain_activity",inputSchema:{type:"object",additionalProperties:!1,properties:{days:{type:"integer",minimum:1,maximum:30,default:7,description:"UTC days of chain activity alongside the seven-day builder brief."}}},async execute(t){x(t,"days");let n=t.days===void 0?7:t.days;if(typeof n!="number"||!Number.isInteger(n)||n<1||n>30)throw new u("Provide a whole number of days from 1 to 30.");let s=await r("/api/agent/chain_brief",p=>C(p,"chain_brief")),i=await r(`/api/chain?days=${n}`,V);return{chainId:m,brief:s,activity:i,freshnessAssessment:$({brief:s,activity:i}),attribution:{page:s.links.page,citation:s.citation,activity:`${I}/api/chain?days=${n}`},notAdvice:!0,disclaimer:K}}},N(r,C),{name:"heyresearch_bulk",inputSchema:{type:"object",additionalProperties:!1,required:["operation","items"],properties:{operation:{type:"string",enum:["snapshots","tokens","scan_cards"],description:"Keyed GET reads. Requires an Oak operator-configured server key; one upstream allowance unit per input. Results are not cached."},items:{type:"array",minItems:1,maxItems:30,items:{type:"string"},description:"Up to 10 project slugs for snapshots; up to 30 token addresses for tokens or scan_cards. Repeated inputs and their order are preserved."}}},async execute(t){if(!c(t)||Object.keys(t).some(a=>!["operation","items"].includes(a)))throw new u("Provide only the bulk operation and items; configure credentials on the Oak server.");let n=t.operation;if(!["snapshots","tokens","scan_cards"].includes(String(n))||!Array.isArray(t.items)||!t.items.length||t.items.length>(n==="snapshots"?10:30)||t.items.some(a=>typeof a!="string"||!(n==="snapshots"?D:b).test(a)))throw new u("Provide up to 10 valid project slugs or up to 30 full token addresses for the chosen bulk operation.");let s=t.items,i=new URLSearchParams(n==="snapshots"?{slugs:s.join(",")}:n==="tokens"?{addresses:s.join(",")}:{chain:String(m),tokens:s.join(",")}),p=`${n==="snapshots"?"/api/snapshots":n==="tokens"?`/api/token/${m}`:"/api/v1/scan"}?${i}`,d=await r(p,a=>{if(n==="scan_cards")return W(a,s);(!Array.isArray(a.items)||a.items.length!==s.length||a.requested!==s.length||typeof a.found!="number"||!Number.isSafeInteger(a.found)||a.found<0||typeof a.disclaimer!="string"||a.items.some((f,y)=>!c(f)||f.input!==s[y]||typeof f.found!="boolean"||c(f.data)&&f.data.chainId!==void 0&&f.data.chainId!==m))&&k()},"json",void 0,!0,s.length),w=d.items.filter(a=>a.found===!0).length,l=n==="scan_cards"?d.found_count:d.found;return{consistency:{reportedFound:l,countedFound:w,consistent:l===w},warnings:l===w?[]:[`HEY reports ${n==="scan_cards"?"found_count":"found"}=${l}, but ${w} returned items have found=true. Provider data is preserved; check the per-item states.`],chainId:m,operation:n,data:d,attribution:{source:`${I}${p}`,provider:"HEY Research Lab"},notAdvice:!0,untrusted:!0,disclaimer:z}}},{name:"heyresearch_validate_receipt",inputSchema:{type:"object",additionalProperties:!1,required:["receipt"],properties:{receipt:{type:"object",description:"AgentResearchReceipt v1. Sent to HEY for stateless validation; no reasoning trace, wallet credential or API key. Maximum 64 KiB."}}},async execute(t){if(x(t,"receipt"),!c(t.receipt))throw new u("Provide an AgentResearchReceipt object.");let n=JSON.stringify(t.receipt);if(new TextEncoder().encode(n).length>65536)throw new u("The research receipt exceeds 64 KiB.");if(/"(?:private_key|secret_key|wallet_key|mnemonic|seed|seed_phrase|recovery_phrase)"\s*:/i.test(n))throw new u("Do not include wallet credentials in a research receipt.");let s=await r("/api/receipts/validate",i=>{(!Object.keys(i).length||i.error)&&k()},"json",t.receipt);return{chainId:m,data:s,attribution:{source:`${I}/api/receipts/validate`,provider:"HEY Research Lab"},notAdvice:!0,disclaimer:G}}}]}},ue=e=>Y("heyresearch",[Z(e)]);export{z as HEY_KEYED_DISCLAIMER,G as HEY_RECEIPT_DISCLAIMER,K as HEY_RECORDS_DISCLAIMER,ue as createModule,Z as createModulePart};
|
|
1
|
+
import{b as N}from"../../../chunks/VYN2NRAP.js";import{a as $}from"../../../chunks/TWR7BF72.js";import"../../../chunks/TMVO2DAK.js";import{a as L}from"../../../chunks/AFBEZXNV.js";import{b as R}from"../../../chunks/46547QT3.js";import{a as O}from"../../../chunks/HOEQVPY7.js";import{b as Y}from"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import{a as q}from"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import{b,e as c,g as T}from"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import{a as m}from"../../../chunks/FWD4L3CJ.js";import{a as u,e as M}from"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";var I="https://heyresearch.xyz",U=6e4,F=120,D=/^[a-z0-9][a-z0-9-]{0,79}$/,K=`${R} HEY Research Lab records public activity. These records are not investment advice, a buy or sell signal, or a safety verdict. Null means not measured.`,z=`${R} Keyed research, not advice. Preserve per-item found/error states and input order. The server key is not returned. Private responses are not cached.`,G=`${R} Stateless receipt validation. HEY stores nothing and does not endorse the conclusion. Oak does not cache this receipt.`,B=new WeakMap;function h(e){return typeof e=="string"&&e.trim().length>0}function E(e){return h(e)&&Number.isFinite(Date.parse(e))}function A(e){return e===null||typeof e=="number"&&Number.isSafeInteger(e)&&e>=0}function H(e){if(!h(e))return!1;try{let r=new URL(e);return r.origin===I&&!r.username&&!r.password}catch{return!1}}function k(){throw new u("HEY returned an unexpected response. Please try again.")}function C(e,r){if((e.schema!=="hey.agent-intelligence-response"||e.schemaVersion!=="1"||e.capability!==r||e.status!=="ok"||!c(e.chain)||e.chain.chainId!==m||!c(e.data)||!c(e.links)||!H(e.links.page)||!c(e.citation)||!h(e.citation.text)||!E(e.citation.asOf)||!E(e.asOf))&&k(),r==="research_project"){(!c(e.subject)||!c(e.subject.project)||!h(e.subject.project.slug)||!c(e.data.builderState)||!h(e.data.builderState.activityStatus)||typeof e.data.builderState.activityMeasured!="boolean"||!A(e.data.builderState.meaningfulEvents30d))&&k();let t=e.subject.project.token;t!=null&&(!c(t)||t.chainId!==m||typeof t.address!="string"||!b.test(t.address))&&k()}else r==="chain_brief"&&(!c(e.data.window)||!E(e.data.window.from)||!E(e.data.window.to)||!c(e.data.shipped)||!A(e.data.shipped.ships)||!A(e.data.shipped.projects))&&k()}function J(e,r){(e.chain_id!==m||typeof e.contract_address!="string"||e.contract_address.toLowerCase()!==r||!H(e.project_link)||!h(e.hey_status_label)||!h(e.token_verification)||typeof e.activity_applies_to_token!="boolean"||typeof e.activity_measured!="boolean"||!A(e.meaningful_ships_30d)||!E(e.as_of)||!h(e.disclaimer)||e.token_verification==="MISMATCH"&&e.activity_applies_to_token!==!1)&&k()}function V(e){(e.chainId!==m||!Array.isArray(e.days)||e.days.length===0||!e.days.every(r=>c(r)&&typeof r.day=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(r.day)&&A(r.ships)&&A(r.transactions)&&(r.chainObservedAt===null||E(r.chainObservedAt))))&&k()}function W(e,r){let t=n=>{throw new u(`HEY scan_cards returned an unexpected ${n}. Please try again.`)};(!Array.isArray(e.items)||e.items.length!==r.length)&&t("items"),e.requested!==r.length&&t("requested count"),(typeof e.found_count!="number"||!Number.isSafeInteger(e.found_count)||e.found_count<0)&&t("found_count"),h(e.disclaimer)||t("disclaimer");for(let[n,s]of e.items.entries()){(!c(s)||s.input!==r[n])&&t(`items[${n}].input`);let i=s;typeof i.found!="boolean"&&t(`items[${n}].found`),i.chainId!==m&&t(`items[${n}].chainId`),(typeof i.contractAddress!="string"||!T(i.contractAddress,r[n]))&&t(`items[${n}].contractAddress`),h(i.disclaimer)||t(`items[${n}].disclaimer`),i.found&&(!c(i.project)||!c(i.activity)||!H(i.project_link)||!h(i.status)||!h(i.status_label)||!h(i.status_help)||!h(i.research_level)||typeof i.verified_builder!="boolean"||typeof i.activity_measured!="boolean"||!["VERIFIED","UNVERIFIED","MISMATCH"].includes(String(i.token_verification))||typeof i.activity_applies_to_token!="boolean"||i.token_verification==="MISMATCH"&&i.activity_applies_to_token!==!1||!["measured","no_source","not_researched"].includes(String(i.coverage)))&&t(`items[${n}] scan card`)}}var j=class extends u{constructor(t,n,s){super(s);this.status=t;this.code=n}status;code};function P(e,r,t=""){let n=c(r)?r.error:void 0,s=c(n)?n.code:n;if(e===400&&s==="ambiguous"){let p=(c(n)&&Array.isArray(n.candidates)?n.candidates:[]).flatMap(d=>c(d)&&typeof d.slug=="string"&&D.test(d.slug)?[d.slug]:[]);return new j(e,s,`The HEY query is ambiguous. Choose a project slug${p.length?`: ${p.join(", ")}`:" or use a contract address"}.`)}if(e===404&&(s==="not_found"||s==="not_published")){if(t.startsWith("/api/evidence/"))return new j(e,s,"The cited HEY evidence receipt is unavailable. Check the exact typed id; missing evidence is not a finding.");let i=c(r)&&H(r.scan_url)?` See ${r.scan_url}.`:"";return new j(e,s,`HEY has not published a matching project. This describes its index, not the token.${i}`)}return new j(e,s,e>=400&&e<500&&e!==429?L(e,t).message:`HEY returned HTTP ${e}. Please try again.`)}async function Q(e){let r=e.body?.getReader();if(!r)return"";let t=[],n=0;try{for(;;){let{done:p,value:d}=await r.read();if(p)break;if(n+=d.byteLength,n>2e6)throw await r.cancel(),new u("HEY response exceeds the two-megabyte read limit. Narrow the query.");t.push(d)}}finally{r.releaseLock()}let s=new Uint8Array(n),i=0;for(let p of t)s.set(p,i),i+=p.byteLength;return new TextDecoder().decode(s)}function X(e){let r=B.get(e.http);r||(r={cache:new Map,pending:new Map,requests:[],backoff:O()},B.set(e.http,r));let t=r;return async(n,s,i="json",p,d=!1,w=1)=>{let l=d?e.heyApiKey:void 0;if(d&&!l)throw new u("HEY bulk reads require an operator-configured server API key. Never provide a key in tool arguments.");if(l&&(typeof l!="string"||l.length>4096||[...l].some(o=>o.charCodeAt(0)<33||o.charCodeAt(0)>126)))throw new u("The server HEY API key configuration is invalid. Ask the Oak operator to correct it.");let a=p===void 0&&!d;if(t.backoff.blocked())throw new u(t.backoff.limited()?"HEY received too many requests. Please try again later.":"HEY Research Lab is temporarily unavailable. Please try again later.");let f=Date.now();for(let[o,_]of t.cache)_.expires<=f&&t.cache.delete(o);let y=a?t.cache.get(n):void 0;if(y)return s(y.body),structuredClone(y.body);let S=a?t.pending.get(n):void 0;if(S){let o=await S;return s(o),structuredClone(o)}if(t.requests=t.requests.filter(o=>o>f-U),t.requests.length+w>F)throw new u("HEY received too many requests. Please try again later.");for(let o=0;o<w;o++)t.requests.push(f);let g=(async()=>{try{let o=await e.http(`${I}${n}`,{method:p===void 0?"GET":"POST",credentials:"omit",redirect:"error",headers:{accept:i==="csv"?"text/csv":"application/json","x-hey-integration":"oak/1.0.0","user-agent":"oak/1.0.0",...p===void 0?{}:{"content-type":"application/json"},...l?{authorization:`Bearer ${l}`}:{}},...p===void 0?{}:{body:JSON.stringify(p)},signal:AbortSignal.timeout(1e4)}).catch(v=>{if(v instanceof q)return v.response;throw t.backoff.defer(null),v});if(o.status===429)throw t.backoff.defer(o.headers.get("retry-after"),!0),await o.body?.cancel(),new u("HEY received too many requests. Please try again later.");if(o.status>=500)throw t.backoff.defer(o.headers.get("retry-after")),await o.body?.cancel(),P(o.status,null,n);let _;try{let v=await Q(o);_=i==="csv"&&o.ok?{format:"csv",value:v}:JSON.parse(v)}catch(v){throw v instanceof u?v:o.ok?new u("HEY returned malformed JSON. Please try again."):P(o.status,null,n)}if(d&&[401,403].includes(o.status))throw new u("HEY refused keyed access. Ask the Oak operator to check the server key and allowance.");if(!o.ok)throw P(o.status,_,n);return c(_)||k(),s(_),a&&t.cache.set(n,{body:_,expires:Date.now()+U}),_}catch(o){throw o instanceof u?o:new u(M(o))}})();a&&t.pending.set(n,g);try{return structuredClone(await g)}finally{a&&t.pending.delete(n)}}}function x(e,r){if(!c(e)||Object.keys(e).some(t=>t!==r))throw new u(`Provide only ${r}; HEY reads are fixed to Robinhood Chain 4663.`)}var Z=e=>{let r=X(e);return{tools:[{name:"heyresearch_research_project",inputSchema:{type:"object",additionalProperties:!1,required:["project"],properties:{project:{type:"string",minLength:1,maxLength:200,description:"A project slug, project name, ticker search, or token contract address on chain 4663."}}},async execute(t){if(x(t,"project"),!h(t.project)||t.project.trim().length>200)throw new u("Provide a project slug, name, ticker, or token contract address.");let n=t.project.trim();if(/^0x/i.test(n)&&!b.test(n))throw new u("Provide a full token contract address on Robinhood Chain 4663.");let s=b.test(n)?"address":D.test(n)?"project":"q",i=s==="address"?n.toLowerCase():n,p=g=>r(`/api/agent/research_project?${g}=${encodeURIComponent(i)}`,o=>C(o,"research_project")),d;try{d=await p(s)}catch(g){if(s!=="project"||!(g instanceof j)||g.status!==404||g.code!=="not_found")throw g;d=await p("q")}let w=d.subject.project,l=c(w.token)?w.token.address:void 0,a=s==="address"?i:l?.toLowerCase(),f=a?await r(`/api/v1/builder?chain=${m}&token=${a}&integration=oak/1.0.0`,g=>J(g,a)):null,y=f?.activity_applies_to_token===!1;s==="address"&&l&&l.toLowerCase()!==a&&!y&&k();let S=d.links;return{chainId:m,research:d,builder:f,freshnessAssessment:$(d),attribution:{page:S.page,citation:d.citation,...f&&!y?{project_link:f.project_link}:{}},warnings:y?["This activity belongs to the project, not this token. The project names a different contract; do not link this token to the project."]:[],notAdvice:!0,disclaimer:K}}},{name:"heyresearch_chain_activity",inputSchema:{type:"object",additionalProperties:!1,properties:{days:{type:"integer",minimum:1,maximum:30,default:7,description:"UTC days of chain activity alongside the seven-day builder brief."}}},async execute(t){x(t,"days");let n=t.days===void 0?7:t.days;if(typeof n!="number"||!Number.isInteger(n)||n<1||n>30)throw new u("Provide a whole number of days from 1 to 30.");let s=await r("/api/agent/chain_brief",p=>C(p,"chain_brief")),i=await r(`/api/chain?days=${n}`,V);return{chainId:m,brief:s,activity:i,freshnessAssessment:$({brief:s,activity:i}),attribution:{page:s.links.page,citation:s.citation,activity:`${I}/api/chain?days=${n}`},notAdvice:!0,disclaimer:K}}},N(r,C),{name:"heyresearch_bulk",inputSchema:{type:"object",additionalProperties:!1,required:["operation","items"],properties:{operation:{type:"string",enum:["snapshots","tokens","scan_cards"],description:"Keyed GET reads. Requires an Oak operator-configured server key; one upstream allowance unit per input. Results are not cached."},items:{type:"array",minItems:1,maxItems:30,items:{type:"string"},description:"Up to 10 project slugs for snapshots; up to 30 token addresses for tokens or scan_cards. Repeated inputs and their order are preserved."}}},async execute(t){if(!c(t)||Object.keys(t).some(a=>!["operation","items"].includes(a)))throw new u("Provide only the bulk operation and items; configure credentials on the Oak server.");let n=t.operation;if(!["snapshots","tokens","scan_cards"].includes(String(n))||!Array.isArray(t.items)||!t.items.length||t.items.length>(n==="snapshots"?10:30)||t.items.some(a=>typeof a!="string"||!(n==="snapshots"?D:b).test(a)))throw new u("Provide up to 10 valid project slugs or up to 30 full token addresses for the chosen bulk operation.");let s=t.items,i=new URLSearchParams(n==="snapshots"?{slugs:s.join(",")}:n==="tokens"?{addresses:s.join(",")}:{chain:String(m),tokens:s.join(",")}),p=`${n==="snapshots"?"/api/snapshots":n==="tokens"?`/api/token/${m}`:"/api/v1/scan"}?${i}`,d=await r(p,a=>{if(n==="scan_cards")return W(a,s);(!Array.isArray(a.items)||a.items.length!==s.length||a.requested!==s.length||typeof a.found!="number"||!Number.isSafeInteger(a.found)||a.found<0||typeof a.disclaimer!="string"||a.items.some((f,y)=>!c(f)||f.input!==s[y]||typeof f.found!="boolean"||c(f.data)&&f.data.chainId!==void 0&&f.data.chainId!==m))&&k()},"json",void 0,!0,s.length),w=d.items.filter(a=>a.found===!0).length,l=n==="scan_cards"?d.found_count:d.found;return{consistency:{reportedFound:l,countedFound:w,consistent:l===w},warnings:l===w?[]:[`HEY reports ${n==="scan_cards"?"found_count":"found"}=${l}, but ${w} returned items have found=true. Provider data is preserved; check the per-item states.`],chainId:m,operation:n,data:d,attribution:{source:`${I}${p}`,provider:"HEY Research Lab"},notAdvice:!0,untrusted:!0,disclaimer:z}}},{name:"heyresearch_validate_receipt",inputSchema:{type:"object",additionalProperties:!1,required:["receipt"],properties:{receipt:{type:"object",description:"AgentResearchReceipt v1. Sent to HEY for stateless validation; no reasoning trace, wallet credential or API key. Maximum 64 KiB."}}},async execute(t){if(x(t,"receipt"),!c(t.receipt))throw new u("Provide an AgentResearchReceipt object.");let n=JSON.stringify(t.receipt);if(new TextEncoder().encode(n).length>65536)throw new u("The research receipt exceeds 64 KiB.");if(/"(?:private_key|secret_key|wallet_key|mnemonic|seed|seed_phrase|recovery_phrase)"\s*:/i.test(n))throw new u("Do not include wallet credentials in a research receipt.");let s=await r("/api/receipts/validate",i=>{(!Object.keys(i).length||i.error)&&k()},"json",t.receipt);return{chainId:m,data:s,attribution:{source:`${I}/api/receipts/validate`,provider:"HEY Research Lab"},notAdvice:!0,disclaimer:G}}}]}},ue=e=>Y("heyresearch",[Z(e)]);export{z as HEY_KEYED_DISCLAIMER,G as HEY_RECEIPT_DISCLAIMER,K as HEY_RECORDS_DISCLAIMER,ue as createModule,Z as createModulePart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a,c as b,d as c,e as d}from"../../../chunks/
|
|
1
|
+
import{b as a,c as b,d as c,e as d}from"../../../chunks/TMVO2DAK.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as HEY_EXCLUSIVE_DISCLAIMER,b as PROOF_READ_OPERATIONS,c as validateProofParameters,d as validateProofRead};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/VYN2NRAP.js";import"../../../chunks/TWR7BF72.js";import"../../../chunks/TMVO2DAK.js";import"../../../chunks/AFBEZXNV.js";import"../../../chunks/46547QT3.js";import"../../../chunks/HOEQVPY7.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as HEY_PUBLIC_READ_DISCLAIMER,b as publicReadTool};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c}from"../../../chunks/
|
|
1
|
+
import{a,b,c}from"../../../chunks/AFBEZXNV.js";import"../../../chunks/46547QT3.js";import"../../../chunks/HOEQVPY7.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{c as createHeyScanner,a as heyRequestError,b as parseHeyScanCard};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"../../../chunks/
|
|
1
|
+
import{a,b}from"../../../chunks/SJJR4ZBZ.js";import"../../../chunks/AFBEZXNV.js";import"../../../chunks/46547QT3.js";import"../../../chunks/HOEQVPY7.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as parsePonsAddresses,b as readTokenFacts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as a,k as b}from"../../../chunks/
|
|
1
|
+
import{j as a,k as b}from"../../../chunks/6WZX7C4T.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as chainPageProperties,b as readChainNames};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a,d as b,e as c,f as d,g as e,h as f,i as g}from"../../../chunks/
|
|
1
|
+
import{c as a,d as b,e as c,f as d,g as e,h as f,i as g}from"../../../chunks/6WZX7C4T.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{c as addressValue,g as createModule,f as createModulePart,b as durationSeconds,a as nameParts,e as tool,d as uintValue};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"../../../chunks/
|
|
1
|
+
import{a}from"../../../chunks/6WZX7C4T.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as createManagementTools};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a}from"../../../chunks/
|
|
1
|
+
import{b as a}from"../../../chunks/6WZX7C4T.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{a as createPublicReadTools};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as f}from"../../../chunks/
|
|
1
|
+
import{i as f}from"../../../chunks/6WZX7C4T.js";import{a as l}from"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/66F5ZH34.js";import{g as i}from"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import{a as h,i as m}from"../../../chunks/FWD4L3CJ.js";import{a}from"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";import{decodeFunctionData as p,erc20Abi as w,erc721Abi as A}from"viem";var x=new Set(["hoodag_register","hoodag_renew","hoodag_set_address","hoodag_set_text","hoodag_set_contenthash","hoodag_set_primary","hoodag_clear_primary","hoodag_reclaim","hoodag_transfer","hoodag_approve_transfer","hoodag_market_list","hoodag_market_set_price","hoodag_market_unlist","hoodag_market_buy","hoodag_commit","hoodag_register_eth","hoodag_register_many"]);async function I(n,d,r,g){if(!x.has(n))throw new a("This hood.ag action is not configured for local reconstruction.");let o=()=>{throw new a("HoodAG local reconstruction cannot use HTTP or a swap.")},_=l({clientFor:e=>{if(e!==h)throw new a("HoodAG requires Robinhood Chain 4663.");return g},http:o,quoteSwap:o,buildSwap:o,preview:async e=>({txs:e,changes:[],summary:"Local reconstruction only; the sender must simulate and confirm before signing."})}),u=await f(_).tools.find(e=>e.name===n).execute(d,r),s=[],c=m[h].hoodag.registrar.address;for(let e of u.txs){if(BigInt(e.value)&&s.push({token:"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",amount:BigInt(e.value),to:e.to}),e.data.startsWith("0x095ea7b3")){let t=p({abi:w,data:e.data});if(t.functionName!=="approve")throw new a("Invalid HoodAG approval.");i(e.to,c)?s.push({token:c,amount:1n,id:t.args[1]}):s.push({token:e.to,amount:t.args[1]})}if(i(e.to,c)&&e.data.startsWith("0x42842e0e")){let t=p({abi:A,data:e.data});if(t.functionName!=="safeTransferFrom")throw new a("Invalid HoodAG transfer.");s.push({token:c,amount:1n,id:t.args[2],to:t.args[1]})}}return{txs:u.txs,inputs:s}}function C(n,d){if(n.length!==d.length||n.some((r,g)=>{let o=d[g];return r.chainId!==o.chainId||!i(r.to,o.to)||!i(r.data,o.data)||r.value!==o.value}))throw new a("HoodAG transactions differ from the locally reconstructed caller terms.")}export{x as HOODAG_ACTIONS,C as assertHoodagTransactions,I as reconstructHoodagAction};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}from"../../../chunks/
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r}from"../../../chunks/IY7BXLT4.js";import"../../../chunks/P56RZC2M.js";import"../../../chunks/TM2XCRU7.js";import"../../../chunks/MJ6WEWMI.js";import"../../../chunks/3GOHSYHW.js";import"../../../chunks/L4N2RSK2.js";import"../../../chunks/3NJ5KQ3Q.js";import"../../../chunks/P5PYFK7L.js";import"../../../chunks/ZQAFFWDK.js";import"../../../chunks/WP6RHXGN.js";import"../../../chunks/3MLUCYCB.js";import"../../../chunks/LIUXNOLP.js";import"../../../chunks/RVDUSNWW.js";import"../../../chunks/ZV5HIQXC.js";import"../../../chunks/RUX3RY7Y.js";import"../../../chunks/XBE3B6Y2.js";import"../../../chunks/PV5FDT6O.js";import"../../../chunks/U4JGEMKT.js";import"../../../chunks/P4UQGWCP.js";import"../../../chunks/SPJCSEKP.js";import"../../../chunks/Z25UKUJF.js";import"../../../chunks/43LI5NKJ.js";import"../../../chunks/IOYRL6AY.js";import"../../../chunks/VEQBHI6O.js";import"../../../chunks/OTXSKFUD.js";import"../../../chunks/UNJJRQIU.js";import"../../../chunks/66F5ZH34.js";import"../../../chunks/NWNYJ26T.js";import"../../../chunks/IX3GZMTM.js";import"../../../chunks/5HCXZWUH.js";import"../../../chunks/5CAAFU7R.js";import"../../../chunks/ABPL3ZZI.js";import"../../../chunks/FWD4L3CJ.js";import"../../../chunks/XSD5NL7J.js";import"../../../chunks/JXOEJPJ4.js";import"../../../chunks/63YRSLDK.js";export{h as DEFAULT_INCLUSION_MARGIN_SECONDS,a as ERC20_APPROVE_ABI,j as HOODLOCK_AIRDROP_ABI,c as HOODLOCK_AIRDROP_ADDRESS,d as HOODLOCK_API_BASE_URL,b as HOODLOCK_CHAIN_ID,e as MAX_CLAIMS_LIMIT,i as MAX_QUOTE_FEE,f as MAX_URI_BYTES,g as MIN_END_DELAY_SECONDS,l as airdropLeaf,o as buildAirdropTree,m as computeAirdropRootFromProof,q as createAirdropModulePart,r as createModulePart,k as formatSignedAmount,p as rebuildAirdropTreeFromList,n as verifyAirdropProof};
|