@lombard.finance/sdk-agent 0.1.0 → 0.2.0-canary.11

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/README.md CHANGED
@@ -90,27 +90,38 @@ import { allTools, toolsByName } from "@lombard.finance/sdk-agent";
90
90
  | ---- | ----------- |
91
91
  | `get_deposit_btc_address` | Get a BTC deposit address for staking, or instructions to generate one |
92
92
  | `check_fee_authorization` | Check fee authorization status before address generation |
93
- | `prepare_btc_deposit` | Generate a new BTC deposit address (triggers wallet signing) |
93
+ | `prepare_btc_to_lbtc_deposit` | Generate a new BTC deposit address (triggers wallet signing) |
94
94
  | `get_deposit_status` | Track deposit confirmations and claimability |
95
- | `prepare_claim_deposit` | Claim a notarized deposit to mint LBTC |
95
+ | `prepare_claim_lbtc_deposit` | Claim a notarized deposit to mint LBTC |
96
96
 
97
- ### Stake and Unstake (EVM)
97
+ ### Asset conversions (EVM)
98
98
 
99
99
  | Tool | Description |
100
100
  | ---- | ----------- |
101
- | `prepare_stake` | Prepare a BTC.b to LBTC stake transaction |
102
- | `prepare_unstake` | Prepare an LBTC unstake transaction (to BTC or BTC.b) |
103
- | `get_unstake_status` | Track unstake and redemption status |
101
+ | `prepare_btcb_to_lbtc_stake` | Stake BTC.b to receive LBTC on the same chain |
102
+ | `prepare_lbtc_to_btc` | Cross-chain LBTC redemption to native Bitcoin (requires Bitcoin recipient) |
103
+ | `prepare_lbtc_to_btcb` | Same-chain LBTC redemption to BTC.b (no Bitcoin recipient needed) |
104
+ | `prepare_redeem_btcb` | BTC.b to native Bitcoin redemption (requires Bitcoin recipient) |
105
+ | `get_redemption_status` | Track in-flight LBTC unstakes and BTC.b redemptions |
104
106
 
105
- ### Bitcoin Earn (Vaults)
107
+ ### Bitcoin Earn
106
108
 
107
109
  | Tool | Description |
108
110
  | ---- | ----------- |
109
- | `get_strategies` | List available yield strategies with APY and TVL |
110
- | `get_opportunities` | Browse LBTC DeFi opportunities across protocols |
111
- | `get_vault_positions` | Check Bitcoin Earn positions (shares and LBTC value) |
112
- | `prepare_deploy_to_vault` | Deploy LBTC into Bitcoin Earn for additional yield |
113
- | `prepare_vault_withdrawal` | Withdraw from Bitcoin Earn |
111
+ | `get_earn_strategies` | List available yield strategies with APY and TVL |
112
+ | `get_lbtc_defi_opportunities` | Browse LBTC DeFi opportunities across protocols |
113
+ | `get_earn_positions` | Check Bitcoin Earn positions (shares and LBTC value) |
114
+ | `get_earn_withdrawals` | All Bitcoin Earn withdrawals (open, fulfilled, cancelled, expired) |
115
+ | `prepare_earn_deposit` | Deposit LBTC into Bitcoin Earn for additional yield |
116
+ | `prepare_earn_withdrawal` | Request a Bitcoin Earn withdrawal (one active per user per vault) |
117
+ | `prepare_cancel_earn_withdrawal` | Cancel an active Bitcoin Earn withdrawal |
118
+
119
+ ### Portfolio and rewards
120
+
121
+ | Tool | Description |
122
+ | ---- | ----------- |
123
+ | `get_lux_points` | Current-season Lux reward points (holding, protocol, referral, badge) |
124
+ | `get_positions_summary` | Aggregated portfolio summary (total BTC value, PnL, holdings and DeFi breakdown) |
114
125
 
115
126
  ### Morpho Blue (Lending and Borrowing)
116
127
 
@@ -169,7 +180,8 @@ import {
169
180
 
170
181
  | Variable | Default | Description |
171
182
  | -------- | ------- | ----------- |
172
- | `LOMBARD_PARTNER_ID` | none | Partner ID for BTC deposit address generation |
183
+ | `LOMBARD_PARTNER_ID` | `lombardtest1` | Mainnet Partner ID for BTC deposit address generation. The default is a non-revenue test partner, set this explicitly for production traffic. |
184
+ | `LOMBARD_TESTNET_PARTNER_ID` | `test1` | Testnet Partner ID. Mainnet and testnet partner registries are separate. |
173
185
  | `LOMBARD_BFF_URL` | `https://bff.prod.lombard-fi.com` | Backend API URL |
174
186
 
175
187
  ## Requirements
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@ Networks: Ethereum and Base are production. Sepolia and Base Sepolia are develop
4
4
 
5
5
  # Core rules
6
6
 
7
- Validate first, act second. Never call a prepare_* tool with missing, placeholder, or inferred values. If a required field is absent (e.g. a Bitcoin recipient address for an LBTC → BTC unstake) or you are not sure of a constraint (minimum amount, address format), ask the user. Do not pull values from prior context unless the user just referenced them. If a prepare_* tool returns "valid: false", list the missing or invalid fields verbatim, ask the user to provide them, and stop — do not retry until the user supplies them.
7
+ Validate first, act second. Never call a prepare_* tool with missing, placeholder, or inferred values. If a required field is absent (e.g. a Bitcoin recipient address for prepare_lbtc_to_btc) or you are not sure of a constraint (minimum amount, address format), ask the user. Do not pull values from prior context unless the user just referenced them. If a prepare_* tool returns "valid: false", list the missing or invalid fields verbatim, ask the user to provide them, and stop — do not retry until the user supplies them.
8
8
 
9
9
  Use the wallet's connected chain as default. Each turn this prompt is extended with the user's wallet context (address, chainId, chainName). When the user asks for a balance / deposit / operation without naming a chain, use the connected chain and say so ("Showing your balance on {chainName}. Want me to check the other supported networks too?"). Do not silently default to Ethereum mainnet.
10
10
 
@@ -32,10 +32,10 @@ If a recovery path requires a URL not listed above, say so and stop — do not i
32
32
  Native BTC deposits (two distinct flows — pick based on what the user wants to receive):
33
33
 
34
34
  (A) BTC → LBTC (yield-bearing): the user receives LBTC, which accrues Babylon staking yield over time.
35
- 1. Call get_deposit_btc_address. If an address is returned, display it. Stop — do not call prepare_btc_deposit.
35
+ 1. Call get_deposit_btc_address. If an address is returned, display it. Stop — do not call prepare_btc_to_lbtc_deposit.
36
36
  2. If no address exists, call check_fee_authorization. If hasValidSignature is true, tell the user the wallet will only need to confirm the address (no fresh fee signature).
37
- 3. Call prepare_btc_deposit. The wallet prompts only when fee auth is missing or expired.
38
- 4. After the address is returned, tell the user to send BTC, track with get_deposit_status, and use prepare_claim_deposit once claimable.
37
+ 3. Call prepare_btc_to_lbtc_deposit. The wallet prompts only when fee auth is missing or expired.
38
+ 4. After the address is returned, tell the user to send BTC, track with get_deposit_status, and use prepare_claim_lbtc_deposit once claimable.
39
39
 
40
40
  (B) BTC → BTC.b (cross-chain wrapped BTC, NOT yield-bearing): the user receives BTC.b on the destination EVM chain.
41
41
  1. Call prepare_btc_to_btcb_deposit with the user's address and chainId. The wallet prompts for the required authorization, then a unique BTC deposit address is generated.
@@ -43,18 +43,19 @@ Native BTC deposits (two distinct flows — pick based on what the user wants to
43
43
 
44
44
  When the user says "I want to deposit BTC", ask which output they want (LBTC or BTC.b) and explain the difference: LBTC accrues yield; BTC.b is cross-chain wrapped BTC, not yield-bearing. Never tell the user BTC → BTC.b is unsupported — it is supported via prepare_btc_to_btcb_deposit.
45
45
 
46
- EVM stake / unstake / redeem:
47
- - prepare_stake: BTC.b → LBTC on the connected chain.
48
- - prepare_unstake: LBTC → BTC or BTC.b. When outputAsset is "BTC", you MUST collect a Bitcoin destination address from the user before calling the tool. Valid formats: bc1.../1.../3... on mainnet; tb1.../m.../n.../2... on Sepolia or Base Sepolia. Numeric strings, EVM addresses, or addresses inferred from earlier turns are invalid — re-prompt the user.
49
- - prepare_redeem_btcb: BTC.bnative BTC. Use this when the user holds BTC.b and wants real Bitcoin back (not LBTC). Same Bitcoin recipient address validation rules as prepare_unstake to BTC. Do NOT use prepare_unstake for BTC.b; prepare_unstake operates on LBTC only.
46
+ EVM asset conversions:
47
+ - prepare_btcb_to_lbtc_stake: BTC.b → LBTC on the connected chain.
48
+ - prepare_lbtc_to_btc: LBTC → native BTC (cross-chain). You MUST collect a Bitcoin destination address from the user before calling the tool. Valid formats: bc1.../1.../3... on mainnet; tb1.../m.../n.../2... on Sepolia or Base Sepolia. Numeric strings, EVM addresses, or addresses inferred from earlier turns are invalid — re-prompt the user.
49
+ - prepare_lbtc_to_btcb: LBTC → BTC.b (same-chain). No Bitcoin recipient address is needed; the BTC.b is credited to the caller's wallet on the same EVM chain.
50
+ - prepare_redeem_btcb: BTC.b → native BTC. Use this when the user holds BTC.b and wants real Bitcoin back (not LBTC). Same Bitcoin recipient address validation rules as prepare_lbtc_to_btc. Do NOT use prepare_lbtc_to_btc for BTC.b; prepare_lbtc_to_btc operates on LBTC only.
50
51
 
51
52
  Bitcoin Earn withdrawals (only one active withdrawal per user per vault):
52
- - prepare_vault_withdrawal performs a pre-flight check via getEarnWithdrawals. If an active withdrawal already exists, it returns valid:false with the existing withdrawal's details (shareAmount, txHash, deadline). Tell the user about that withdrawal and offer prepare_cancel_withdrawal — do NOT call prepare_vault_withdrawal again until the existing one is cancelled.
53
- - prepare_cancel_withdrawal looks up the user's active withdrawal and returns the cancel transaction parameters. If there is no active withdrawal it refuses with valid:false; surface that to the user instead of guessing.
53
+ - prepare_earn_withdrawal performs a pre-flight check via getEarnWithdrawals. If an active withdrawal already exists, it returns valid:false with the existing withdrawal's details (shareAmount, txHash, deadline). Tell the user about that withdrawal and offer prepare_cancel_earn_withdrawal — do NOT call prepare_earn_withdrawal again until the existing one is cancelled.
54
+ - prepare_cancel_earn_withdrawal looks up the user's active withdrawal and returns the cancel transaction parameters. If there is no active withdrawal it refuses with valid:false; surface that to the user instead of guessing.
54
55
 
55
56
  Yield / DeFi:
56
- 1. get_opportunities — cross-protocol LBTC and BTC.b opportunities.
57
- 2. get_strategies — Bitcoin Earn (mainnet-only): APY + TVL.
57
+ 1. get_lbtc_defi_opportunities — cross-protocol LBTC and BTC.b opportunities.
58
+ 2. get_earn_strategies — Bitcoin Earn (mainnet-only): APY + TVL.
58
59
  3. get_morpho_lbtc_markets — Morpho lending markets where LBTC is collateral.
59
60
  Present trade-offs and let the user choose. Bitcoin Earn is Lombard's vault product (built on the Veda vault protocol); always refer to it as "Bitcoin Earn".
60
61
 
@@ -71,8 +72,8 @@ Token balance by name (e.g. "my USDC balance"): call get_morpho_lbtc_markets fir
71
72
  - "bad captcha" / 401: the partner ID isn't accepted on this network. Direct the user to https://www.lombard.finance/app/ (use exactly this URL — see Canonical URLs).
72
73
  - HTTP 500 / "Internal Server Error" / "code: 13": a backend issue on the deposit-address service, usually transient on testnet. Tell the user it's a backend issue, suggest retrying in a moment, and offer https://www.lombard.finance/app/ as a workaround. Do not retry the tool more than twice.
73
74
  - "Active signature already exists for this user": the user is already authorized. Call check_fee_authorization to confirm, then call get_deposit_btc_address — they do not need to sign again.
74
- - Fee authorization expired: call prepare_btc_deposit to re-sign.
75
+ - Fee authorization expired: call prepare_btc_to_lbtc_deposit to re-sign.
75
76
  - Insufficient balance / chain mismatch: explain plainly and suggest the fix (top up / switch network).
76
77
  - Tool returns "valid: false": list the missing or invalid fields verbatim and ask the user to provide them.`,a=`${t}
77
78
 
78
- ${e.LOMBARD_ASSETS_GLOSSARY}`;exports.AddressAndChainSchema=e.AddressAndChainSchema;exports.AddressAndChainZod=e.AddressAndChainZod;exports.BalanceSchema=e.BalanceSchema;exports.BalanceZod=e.BalanceZod;exports.CHAIN_ID_DESCRIPTION=e.CHAIN_ID_DESCRIPTION;exports.ClaimDepositSchema=e.ClaimDepositSchema;exports.ClaimDepositZod=e.ClaimDepositZod;exports.DeployToVaultSchema=e.DeployToVaultSchema;exports.DeployToVaultZod=e.DeployToVaultZod;exports.DepositBtcSchema=e.DepositBtcSchema;exports.DepositBtcZod=e.DepositBtcZod;exports.ExchangeRateSchema=e.ExchangeRateSchema;exports.ExchangeRateZod=e.ExchangeRateZod;exports.LOMBARD_ASSETS=e.LOMBARD_ASSETS;exports.LOMBARD_ASSETS_GLOSSARY=e.LOMBARD_ASSETS_GLOSSARY;exports.LbtcApySchema=e.LbtcApySchema;exports.LbtcApyZod=e.LbtcApyZod;exports.MorphoBorrowSchema=e.MorphoBorrowSchema;exports.MorphoBorrowZod=e.MorphoBorrowZod;exports.MorphoLbtcMarketsSchema=e.MorphoLbtcMarketsSchema;exports.MorphoLbtcMarketsZod=e.MorphoLbtcMarketsZod;exports.MorphoPositionSchema=e.MorphoPositionSchema;exports.MorphoPositionZod=e.MorphoPositionZod;exports.MorphoRepaySchema=e.MorphoRepaySchema;exports.MorphoRepayZod=e.MorphoRepayZod;exports.MorphoSupplyCollateralSchema=e.MorphoSupplyCollateralSchema;exports.MorphoSupplyCollateralZod=e.MorphoSupplyCollateralZod;exports.OpportunitiesSchema=e.OpportunitiesSchema;exports.OpportunitiesZod=e.OpportunitiesZod;exports.RedeemBtcbSchema=e.RedeemBtcbSchema;exports.RedeemBtcbZod=e.RedeemBtcbZod;exports.SUPPORTED_CHAINS=e.SUPPORTED_CHAINS;exports.StakeSchema=e.StakeSchema;exports.StakeZod=e.StakeZod;exports.StrategiesSchema=e.StrategiesSchema;exports.StrategiesZod=e.StrategiesZod;exports.TokenBalanceSchema=e.TokenBalanceSchema;exports.TokenBalanceZod=e.TokenBalanceZod;exports.TokenInfoSchema=e.TokenInfoSchema;exports.TokenInfoZod=e.TokenInfoZod;exports.UnstakeSchema=e.UnstakeSchema;exports.UnstakeZod=e.UnstakeZod;exports.VaultWithdrawalSchema=e.VaultWithdrawalSchema;exports.VaultWithdrawalZod=e.VaultWithdrawalZod;exports.allTools=e.allTools;exports.amount=e.amount;exports.buildAssetGlossary=e.buildAssetGlossary;exports.chainId=e.chainId;exports.checkFeeAuthorization=e.checkFeeAuthorization;exports.evmAddress=e.evmAddress;exports.getBalance=e.getBalance;exports.getBtcbBalance=e.getBtcbBalance;exports.getChainConfig=e.getChainConfig;exports.getDepositBtcAddress=e.getDepositBtcAddress;exports.getDepositStatusTool=e.getDepositStatusTool;exports.getExchangeRate=e.getExchangeRate;exports.getLbtcApy=e.getLbtcApy;exports.getLbtcBalance=e.getLbtcBalance;exports.getMorphoLbtcMarkets=e.getMorphoLbtcMarkets;exports.getMorphoPosition=e.getMorphoPosition;exports.getOpportunities=e.getOpportunities;exports.getStrategies=e.getStrategies;exports.getTokenBalance=e.getTokenBalance;exports.getTokenInfo=e.getTokenInfo;exports.getUnstakeStatusTool=e.getUnstakeStatusTool;exports.getVaultPositions=e.getVaultPositions;exports.prepareBtcDeposit=e.prepareBtcDeposit;exports.prepareBtcToBtcbDeposit=e.prepareBtcToBtcbDeposit;exports.prepareCancelWithdrawal=e.prepareCancelWithdrawal;exports.prepareClaimDeposit=e.prepareClaimDeposit;exports.prepareDeployToVault=e.prepareDeployToVault;exports.prepareMorphoBorrow=e.prepareMorphoBorrow;exports.prepareMorphoRepay=e.prepareMorphoRepay;exports.prepareMorphoSupplyCollateral=e.prepareMorphoSupplyCollateral;exports.prepareRedeemBtcb=e.prepareRedeemBtcb;exports.prepareStake=e.prepareStake;exports.prepareUnstake=e.prepareUnstake;exports.prepareVaultWithdrawal=e.prepareVaultWithdrawal;exports.resolveAssetByAddress=e.resolveAssetByAddress;exports.resolveAssetByName=e.resolveAssetByName;exports.toolsByName=e.toolsByName;exports.LOMBARD_SYSTEM_PROMPT=a;
79
+ ${e.LOMBARD_ASSETS_GLOSSARY}`;exports.AddressAndChainSchema=e.AddressAndChainSchema;exports.AddressAndChainZod=e.AddressAndChainZod;exports.BalanceSchema=e.BalanceSchema;exports.BalanceZod=e.BalanceZod;exports.CHAIN_ID_DESCRIPTION=e.CHAIN_ID_DESCRIPTION;exports.ClaimDepositSchema=e.ClaimDepositSchema;exports.ClaimDepositZod=e.ClaimDepositZod;exports.DeployToVaultSchema=e.DeployToVaultSchema;exports.DeployToVaultZod=e.DeployToVaultZod;exports.DepositBtcSchema=e.DepositBtcSchema;exports.DepositBtcZod=e.DepositBtcZod;exports.ExchangeRateSchema=e.ExchangeRateSchema;exports.ExchangeRateZod=e.ExchangeRateZod;exports.LOMBARD_ASSETS=e.LOMBARD_ASSETS;exports.LOMBARD_ASSETS_GLOSSARY=e.LOMBARD_ASSETS_GLOSSARY;exports.LbtcApySchema=e.LbtcApySchema;exports.LbtcApyZod=e.LbtcApyZod;exports.LbtcToBtcSchema=e.LbtcToBtcSchema;exports.LbtcToBtcZod=e.LbtcToBtcZod;exports.LbtcToBtcbSchema=e.LbtcToBtcbSchema;exports.LbtcToBtcbZod=e.LbtcToBtcbZod;exports.MorphoBorrowSchema=e.MorphoBorrowSchema;exports.MorphoBorrowZod=e.MorphoBorrowZod;exports.MorphoLbtcMarketsSchema=e.MorphoLbtcMarketsSchema;exports.MorphoLbtcMarketsZod=e.MorphoLbtcMarketsZod;exports.MorphoPositionSchema=e.MorphoPositionSchema;exports.MorphoPositionZod=e.MorphoPositionZod;exports.MorphoRepaySchema=e.MorphoRepaySchema;exports.MorphoRepayZod=e.MorphoRepayZod;exports.MorphoSupplyCollateralSchema=e.MorphoSupplyCollateralSchema;exports.MorphoSupplyCollateralZod=e.MorphoSupplyCollateralZod;exports.OpportunitiesSchema=e.OpportunitiesSchema;exports.OpportunitiesZod=e.OpportunitiesZod;exports.RedeemBtcbSchema=e.RedeemBtcbSchema;exports.RedeemBtcbZod=e.RedeemBtcbZod;exports.SUPPORTED_CHAINS=e.SUPPORTED_CHAINS;exports.StakeSchema=e.StakeSchema;exports.StakeZod=e.StakeZod;exports.StrategiesSchema=e.StrategiesSchema;exports.StrategiesZod=e.StrategiesZod;exports.TokenBalanceSchema=e.TokenBalanceSchema;exports.TokenBalanceZod=e.TokenBalanceZod;exports.TokenInfoSchema=e.TokenInfoSchema;exports.TokenInfoZod=e.TokenInfoZod;exports.VaultWithdrawalSchema=e.VaultWithdrawalSchema;exports.VaultWithdrawalZod=e.VaultWithdrawalZod;exports.allTools=e.allTools;exports.amount=e.amount;exports.buildAssetGlossary=e.buildAssetGlossary;exports.chainId=e.chainId;exports.checkFeeAuthorization=e.checkFeeAuthorization;exports.evmAddress=e.evmAddress;exports.getBalance=e.getBalance;exports.getBtcbBalance=e.getBtcbBalance;exports.getChainConfig=e.getChainConfig;exports.getDepositBtcAddress=e.getDepositBtcAddress;exports.getDepositStatusTool=e.getDepositStatusTool;exports.getEarnPositions=e.getEarnPositions;exports.getEarnStrategiesTool=e.getEarnStrategiesTool;exports.getEarnWithdrawalsTool=e.getEarnWithdrawalsTool;exports.getExchangeRate=e.getExchangeRate;exports.getLbtcApy=e.getLbtcApy;exports.getLbtcBalance=e.getLbtcBalance;exports.getLbtcDefiOpportunitiesTool=e.getLbtcDefiOpportunitiesTool;exports.getLuxPoints=e.getLuxPoints;exports.getMorphoLbtcMarkets=e.getMorphoLbtcMarkets;exports.getMorphoPosition=e.getMorphoPosition;exports.getPositionsSummaryTool=e.getPositionsSummaryTool;exports.getRedemptionStatusTool=e.getRedemptionStatusTool;exports.getTokenBalance=e.getTokenBalance;exports.getTokenInfo=e.getTokenInfo;exports.prepareBtcToBtcbDeposit=e.prepareBtcToBtcbDeposit;exports.prepareBtcToLbtcDeposit=e.prepareBtcToLbtcDeposit;exports.prepareBtcbToLbtcStake=e.prepareBtcbToLbtcStake;exports.prepareCancelEarnWithdrawal=e.prepareCancelEarnWithdrawal;exports.prepareClaimLbtcDeposit=e.prepareClaimLbtcDeposit;exports.prepareEarnDeposit=e.prepareEarnDeposit;exports.prepareEarnWithdrawal=e.prepareEarnWithdrawal;exports.prepareLbtcToBtc=e.prepareLbtcToBtc;exports.prepareLbtcToBtcb=e.prepareLbtcToBtcb;exports.prepareMorphoBorrow=e.prepareMorphoBorrow;exports.prepareMorphoRepay=e.prepareMorphoRepay;exports.prepareMorphoSupplyCollateral=e.prepareMorphoSupplyCollateral;exports.prepareRedeemBtcb=e.prepareRedeemBtcb;exports.resolveAssetByAddress=e.resolveAssetByAddress;exports.resolveAssetByName=e.resolveAssetByName;exports.toolsByName=e.toolsByName;exports.LOMBARD_SYSTEM_PROMPT=a;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { buildAssetGlossary, LOMBARD_ASSETS, LOMBARD_ASSETS_GLOSSARY, type LombardAsset, resolveAssetByAddress, resolveAssetByName, } from "./assets";
2
2
  export { type ChainConfig, getChainConfig, SUPPORTED_CHAINS } from "./chains";
3
3
  export { LOMBARD_SYSTEM_PROMPT } from "./prompt";
4
- export { AddressAndChainSchema, AddressAndChainZod, amount, BalanceSchema, BalanceZod, CHAIN_ID_DESCRIPTION, chainId, ClaimDepositSchema, ClaimDepositZod, DeployToVaultSchema, DeployToVaultZod, DepositBtcSchema, DepositBtcZod, evmAddress, ExchangeRateSchema, ExchangeRateZod, LbtcApySchema, LbtcApyZod, MorphoBorrowSchema, MorphoBorrowZod, MorphoLbtcMarketsSchema, MorphoLbtcMarketsZod, MorphoPositionSchema, MorphoPositionZod, MorphoRepaySchema, MorphoRepayZod, MorphoSupplyCollateralSchema, MorphoSupplyCollateralZod, OpportunitiesSchema, OpportunitiesZod, RedeemBtcbSchema, RedeemBtcbZod, StakeSchema, StakeZod, StrategiesSchema, StrategiesZod, TokenBalanceSchema, TokenBalanceZod, TokenInfoSchema, TokenInfoZod, UnstakeSchema, UnstakeZod, VaultWithdrawalSchema, VaultWithdrawalZod, } from "./schemas";
5
- export { allTools, checkFeeAuthorization, getBalance, getBtcbBalance, getDepositBtcAddress, getDepositStatusTool, getExchangeRate, getLbtcApy, getLbtcBalance, getMorphoLbtcMarkets, getMorphoPosition, getOpportunities, getStrategies, getTokenBalance, getTokenInfo, getUnstakeStatusTool, getVaultPositions, prepareBtcDeposit, prepareBtcToBtcbDeposit, prepareCancelWithdrawal, prepareClaimDeposit, prepareDeployToVault, prepareMorphoBorrow, prepareMorphoRepay, prepareMorphoSupplyCollateral, prepareRedeemBtcb, prepareStake, prepareUnstake, prepareVaultWithdrawal, type ToolDefinition, toolsByName, } from "./tools";
4
+ export { AddressAndChainSchema, AddressAndChainZod, amount, BalanceSchema, BalanceZod, CHAIN_ID_DESCRIPTION, chainId, ClaimDepositSchema, ClaimDepositZod, DeployToVaultSchema, DeployToVaultZod, DepositBtcSchema, DepositBtcZod, evmAddress, ExchangeRateSchema, ExchangeRateZod, LbtcApySchema, LbtcApyZod, LbtcToBtcbSchema, LbtcToBtcbZod, LbtcToBtcSchema, LbtcToBtcZod, MorphoBorrowSchema, MorphoBorrowZod, MorphoLbtcMarketsSchema, MorphoLbtcMarketsZod, MorphoPositionSchema, MorphoPositionZod, MorphoRepaySchema, MorphoRepayZod, MorphoSupplyCollateralSchema, MorphoSupplyCollateralZod, OpportunitiesSchema, OpportunitiesZod, RedeemBtcbSchema, RedeemBtcbZod, StakeSchema, StakeZod, StrategiesSchema, StrategiesZod, TokenBalanceSchema, TokenBalanceZod, TokenInfoSchema, TokenInfoZod, VaultWithdrawalSchema, VaultWithdrawalZod, } from "./schemas";
5
+ export { allTools, checkFeeAuthorization, getBalance, getBtcbBalance, getDepositBtcAddress, getDepositStatusTool, getEarnPositions, getEarnStrategiesTool, getEarnWithdrawalsTool, getExchangeRate, getLbtcApy, getLbtcBalance, getLbtcDefiOpportunitiesTool, getLuxPoints, getMorphoLbtcMarkets, getMorphoPosition, getPositionsSummaryTool, getRedemptionStatusTool, getTokenBalance, getTokenInfo, prepareBtcbToLbtcStake, prepareBtcToBtcbDeposit, prepareBtcToLbtcDeposit, prepareCancelEarnWithdrawal, prepareClaimLbtcDeposit, prepareEarnDeposit, prepareEarnWithdrawal, prepareLbtcToBtc, prepareLbtcToBtcb, prepareMorphoBorrow, prepareMorphoRepay, prepareMorphoSupplyCollateral, prepareRedeemBtcb, type ToolDefinition, toolsByName, } from "./tools";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,KAAK,YAAY,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,KAAK,cAAc,EACnB,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,uBAAuB,EACvB,KAAK,YAAY,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,MAAM,EACN,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,cAAc,EACd,4BAA4B,EAC5B,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,6BAA6B,EAC7B,iBAAiB,EACjB,KAAK,cAAc,EACnB,WAAW,GACZ,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { L as e } from "./tools.js";
2
- import { A as i, a as n, B as l, b as p, C as h, c as d, d as c, D as u, e as m, f, g as w, E as b, h as B, i as g, j as T, k as _, M as y, l as k, m as C, n as v, o as S, p as L, q as A, r as M, s as D, t as E, O as I, u as x, R, v as Z, S as N, w as U, x as V, y as O, z as P, T as W, F as q, G as z, H as Y, U as H, I as F, V as j, J as G, K as $, N as J, P as K, Q, W as X, X as ee, Y as ae, Z as te, _ as se, $ as re, a0 as oe, a1 as ie, a2 as ne, a3 as le, a4 as pe, a5 as he, a6 as de, a7 as ce, a8 as ue, a9 as me, aa as fe, ab as we, ac as be, ad as Be, ae as ge, af as Te, ag as _e, ah as ye, ai as ke, aj as Ce, ak as ve, al as Se, am as Le, an as Ae, ao as Me, ap as De, aq as Ee } from "./tools.js";
2
+ import { A as i, a as n, B as l, b as c, C as p, c as h, d, D as u, e as m, f as b, g as _, E as f, h as w, i as B, j as T, k as g, l as y, m as C, n as S, o as v, M as k, p as L, q as E, r as A, s as M, t as D, u as I, v as x, w as R, x as Z, O as N, y as P, R as O, z as V, S as U, F as W, G as Y, H as q, I as z, T as H, J as F, K as j, N as G, V as $, P as J, Q as K, U as Q, W as X, X as ee, Y as ae, Z as te, _ as se, $ as oe, a0 as re, a1 as ie, a2 as ne, a3 as le, a4 as ce, a5 as pe, a6 as he, a7 as de, a8 as ue, a9 as me, aa as be, ab as _e, ac as fe, ad as we, ae as Be, af as Te, ag as ge, ah as ye, ai as Ce, aj as Se, ak as ve, al as ke, am as Le, an as Ee, ao as Ae, ap as Me, aq as De, ar as Ie, as as xe, at as Re, au as Ze, av as Ne, aw as Pe } from "./tools.js";
3
3
  const a = `You are an assistant for the Lombard protocol. Lombard issues LBTC, a yield-bearing receipt token for BTC staked via Babylon. LBTC accrues yield, so 1 LBTC is always worth more than 1 BTC; never assume 1:1 — always fetch the live rate with get_exchange_rate.
4
4
 
5
5
  Networks: Ethereum and Base are production. Sepolia and Base Sepolia are development/test environments. Bitcoin Earn (vault yield) and strategy data are mainnet-only.
6
6
 
7
7
  # Core rules
8
8
 
9
- Validate first, act second. Never call a prepare_* tool with missing, placeholder, or inferred values. If a required field is absent (e.g. a Bitcoin recipient address for an LBTC → BTC unstake) or you are not sure of a constraint (minimum amount, address format), ask the user. Do not pull values from prior context unless the user just referenced them. If a prepare_* tool returns "valid: false", list the missing or invalid fields verbatim, ask the user to provide them, and stop — do not retry until the user supplies them.
9
+ Validate first, act second. Never call a prepare_* tool with missing, placeholder, or inferred values. If a required field is absent (e.g. a Bitcoin recipient address for prepare_lbtc_to_btc) or you are not sure of a constraint (minimum amount, address format), ask the user. Do not pull values from prior context unless the user just referenced them. If a prepare_* tool returns "valid: false", list the missing or invalid fields verbatim, ask the user to provide them, and stop — do not retry until the user supplies them.
10
10
 
11
11
  Use the wallet's connected chain as default. Each turn this prompt is extended with the user's wallet context (address, chainId, chainName). When the user asks for a balance / deposit / operation without naming a chain, use the connected chain and say so ("Showing your balance on {chainName}. Want me to check the other supported networks too?"). Do not silently default to Ethereum mainnet.
12
12
 
@@ -34,10 +34,10 @@ If a recovery path requires a URL not listed above, say so and stop — do not i
34
34
  Native BTC deposits (two distinct flows — pick based on what the user wants to receive):
35
35
 
36
36
  (A) BTC → LBTC (yield-bearing): the user receives LBTC, which accrues Babylon staking yield over time.
37
- 1. Call get_deposit_btc_address. If an address is returned, display it. Stop — do not call prepare_btc_deposit.
37
+ 1. Call get_deposit_btc_address. If an address is returned, display it. Stop — do not call prepare_btc_to_lbtc_deposit.
38
38
  2. If no address exists, call check_fee_authorization. If hasValidSignature is true, tell the user the wallet will only need to confirm the address (no fresh fee signature).
39
- 3. Call prepare_btc_deposit. The wallet prompts only when fee auth is missing or expired.
40
- 4. After the address is returned, tell the user to send BTC, track with get_deposit_status, and use prepare_claim_deposit once claimable.
39
+ 3. Call prepare_btc_to_lbtc_deposit. The wallet prompts only when fee auth is missing or expired.
40
+ 4. After the address is returned, tell the user to send BTC, track with get_deposit_status, and use prepare_claim_lbtc_deposit once claimable.
41
41
 
42
42
  (B) BTC → BTC.b (cross-chain wrapped BTC, NOT yield-bearing): the user receives BTC.b on the destination EVM chain.
43
43
  1. Call prepare_btc_to_btcb_deposit with the user's address and chainId. The wallet prompts for the required authorization, then a unique BTC deposit address is generated.
@@ -45,18 +45,19 @@ Native BTC deposits (two distinct flows — pick based on what the user wants to
45
45
 
46
46
  When the user says "I want to deposit BTC", ask which output they want (LBTC or BTC.b) and explain the difference: LBTC accrues yield; BTC.b is cross-chain wrapped BTC, not yield-bearing. Never tell the user BTC → BTC.b is unsupported — it is supported via prepare_btc_to_btcb_deposit.
47
47
 
48
- EVM stake / unstake / redeem:
49
- - prepare_stake: BTC.b → LBTC on the connected chain.
50
- - prepare_unstake: LBTC → BTC or BTC.b. When outputAsset is "BTC", you MUST collect a Bitcoin destination address from the user before calling the tool. Valid formats: bc1.../1.../3... on mainnet; tb1.../m.../n.../2... on Sepolia or Base Sepolia. Numeric strings, EVM addresses, or addresses inferred from earlier turns are invalid — re-prompt the user.
51
- - prepare_redeem_btcb: BTC.bnative BTC. Use this when the user holds BTC.b and wants real Bitcoin back (not LBTC). Same Bitcoin recipient address validation rules as prepare_unstake to BTC. Do NOT use prepare_unstake for BTC.b; prepare_unstake operates on LBTC only.
48
+ EVM asset conversions:
49
+ - prepare_btcb_to_lbtc_stake: BTC.b → LBTC on the connected chain.
50
+ - prepare_lbtc_to_btc: LBTC → native BTC (cross-chain). You MUST collect a Bitcoin destination address from the user before calling the tool. Valid formats: bc1.../1.../3... on mainnet; tb1.../m.../n.../2... on Sepolia or Base Sepolia. Numeric strings, EVM addresses, or addresses inferred from earlier turns are invalid — re-prompt the user.
51
+ - prepare_lbtc_to_btcb: LBTC → BTC.b (same-chain). No Bitcoin recipient address is needed; the BTC.b is credited to the caller's wallet on the same EVM chain.
52
+ - prepare_redeem_btcb: BTC.b → native BTC. Use this when the user holds BTC.b and wants real Bitcoin back (not LBTC). Same Bitcoin recipient address validation rules as prepare_lbtc_to_btc. Do NOT use prepare_lbtc_to_btc for BTC.b; prepare_lbtc_to_btc operates on LBTC only.
52
53
 
53
54
  Bitcoin Earn withdrawals (only one active withdrawal per user per vault):
54
- - prepare_vault_withdrawal performs a pre-flight check via getEarnWithdrawals. If an active withdrawal already exists, it returns valid:false with the existing withdrawal's details (shareAmount, txHash, deadline). Tell the user about that withdrawal and offer prepare_cancel_withdrawal — do NOT call prepare_vault_withdrawal again until the existing one is cancelled.
55
- - prepare_cancel_withdrawal looks up the user's active withdrawal and returns the cancel transaction parameters. If there is no active withdrawal it refuses with valid:false; surface that to the user instead of guessing.
55
+ - prepare_earn_withdrawal performs a pre-flight check via getEarnWithdrawals. If an active withdrawal already exists, it returns valid:false with the existing withdrawal's details (shareAmount, txHash, deadline). Tell the user about that withdrawal and offer prepare_cancel_earn_withdrawal — do NOT call prepare_earn_withdrawal again until the existing one is cancelled.
56
+ - prepare_cancel_earn_withdrawal looks up the user's active withdrawal and returns the cancel transaction parameters. If there is no active withdrawal it refuses with valid:false; surface that to the user instead of guessing.
56
57
 
57
58
  Yield / DeFi:
58
- 1. get_opportunities — cross-protocol LBTC and BTC.b opportunities.
59
- 2. get_strategies — Bitcoin Earn (mainnet-only): APY + TVL.
59
+ 1. get_lbtc_defi_opportunities — cross-protocol LBTC and BTC.b opportunities.
60
+ 2. get_earn_strategies — Bitcoin Earn (mainnet-only): APY + TVL.
60
61
  3. get_morpho_lbtc_markets — Morpho lending markets where LBTC is collateral.
61
62
  Present trade-offs and let the user choose. Bitcoin Earn is Lombard's vault product (built on the Veda vault protocol); always refer to it as "Bitcoin Earn".
62
63
 
@@ -73,7 +74,7 @@ Token balance by name (e.g. "my USDC balance"): call get_morpho_lbtc_markets fir
73
74
  - "bad captcha" / 401: the partner ID isn't accepted on this network. Direct the user to https://www.lombard.finance/app/ (use exactly this URL — see Canonical URLs).
74
75
  - HTTP 500 / "Internal Server Error" / "code: 13": a backend issue on the deposit-address service, usually transient on testnet. Tell the user it's a backend issue, suggest retrying in a moment, and offer https://www.lombard.finance/app/ as a workaround. Do not retry the tool more than twice.
75
76
  - "Active signature already exists for this user": the user is already authorized. Call check_fee_authorization to confirm, then call get_deposit_btc_address — they do not need to sign again.
76
- - Fee authorization expired: call prepare_btc_deposit to re-sign.
77
+ - Fee authorization expired: call prepare_btc_to_lbtc_deposit to re-sign.
77
78
  - Insufficient balance / chain mismatch: explain plainly and suggest the fix (top up / switch network).
78
79
  - Tool returns "valid: false": list the missing or invalid fields verbatim and ask the user to provide them.`, s = `${a}
79
80
 
@@ -82,83 +83,89 @@ export {
82
83
  i as AddressAndChainSchema,
83
84
  n as AddressAndChainZod,
84
85
  l as BalanceSchema,
85
- p as BalanceZod,
86
- h as CHAIN_ID_DESCRIPTION,
87
- d as ClaimDepositSchema,
88
- c as ClaimDepositZod,
86
+ c as BalanceZod,
87
+ p as CHAIN_ID_DESCRIPTION,
88
+ h as ClaimDepositSchema,
89
+ d as ClaimDepositZod,
89
90
  u as DeployToVaultSchema,
90
91
  m as DeployToVaultZod,
91
- f as DepositBtcSchema,
92
- w as DepositBtcZod,
93
- b as ExchangeRateSchema,
94
- B as ExchangeRateZod,
95
- g as LOMBARD_ASSETS,
92
+ b as DepositBtcSchema,
93
+ _ as DepositBtcZod,
94
+ f as ExchangeRateSchema,
95
+ w as ExchangeRateZod,
96
+ B as LOMBARD_ASSETS,
96
97
  e as LOMBARD_ASSETS_GLOSSARY,
97
98
  s as LOMBARD_SYSTEM_PROMPT,
98
99
  T as LbtcApySchema,
99
- _ as LbtcApyZod,
100
- y as MorphoBorrowSchema,
101
- k as MorphoBorrowZod,
102
- C as MorphoLbtcMarketsSchema,
103
- v as MorphoLbtcMarketsZod,
104
- S as MorphoPositionSchema,
105
- L as MorphoPositionZod,
106
- A as MorphoRepaySchema,
107
- M as MorphoRepayZod,
108
- D as MorphoSupplyCollateralSchema,
109
- E as MorphoSupplyCollateralZod,
110
- I as OpportunitiesSchema,
111
- x as OpportunitiesZod,
112
- R as RedeemBtcbSchema,
113
- Z as RedeemBtcbZod,
114
- N as SUPPORTED_CHAINS,
115
- U as StakeSchema,
116
- V as StakeZod,
117
- O as StrategiesSchema,
118
- P as StrategiesZod,
119
- W as TokenBalanceSchema,
120
- q as TokenBalanceZod,
121
- z as TokenInfoSchema,
122
- Y as TokenInfoZod,
123
- H as UnstakeSchema,
124
- F as UnstakeZod,
125
- j as VaultWithdrawalSchema,
126
- G as VaultWithdrawalZod,
127
- $ as allTools,
128
- J as amount,
129
- K as buildAssetGlossary,
130
- Q as chainId,
131
- X as checkFeeAuthorization,
132
- ee as evmAddress,
133
- ae as getBalance,
134
- te as getBtcbBalance,
135
- se as getChainConfig,
136
- re as getDepositBtcAddress,
137
- oe as getDepositStatusTool,
138
- ie as getExchangeRate,
139
- ne as getLbtcApy,
140
- le as getLbtcBalance,
141
- pe as getMorphoLbtcMarkets,
142
- he as getMorphoPosition,
143
- de as getOpportunities,
144
- ce as getStrategies,
145
- ue as getTokenBalance,
146
- me as getTokenInfo,
147
- fe as getUnstakeStatusTool,
148
- we as getVaultPositions,
149
- be as prepareBtcDeposit,
150
- Be as prepareBtcToBtcbDeposit,
151
- ge as prepareCancelWithdrawal,
152
- Te as prepareClaimDeposit,
153
- _e as prepareDeployToVault,
154
- ye as prepareMorphoBorrow,
155
- ke as prepareMorphoRepay,
156
- Ce as prepareMorphoSupplyCollateral,
157
- ve as prepareRedeemBtcb,
158
- Se as prepareStake,
159
- Le as prepareUnstake,
160
- Ae as prepareVaultWithdrawal,
161
- Me as resolveAssetByAddress,
162
- De as resolveAssetByName,
163
- Ee as toolsByName
100
+ g as LbtcApyZod,
101
+ y as LbtcToBtcSchema,
102
+ C as LbtcToBtcZod,
103
+ S as LbtcToBtcbSchema,
104
+ v as LbtcToBtcbZod,
105
+ k as MorphoBorrowSchema,
106
+ L as MorphoBorrowZod,
107
+ E as MorphoLbtcMarketsSchema,
108
+ A as MorphoLbtcMarketsZod,
109
+ M as MorphoPositionSchema,
110
+ D as MorphoPositionZod,
111
+ I as MorphoRepaySchema,
112
+ x as MorphoRepayZod,
113
+ R as MorphoSupplyCollateralSchema,
114
+ Z as MorphoSupplyCollateralZod,
115
+ N as OpportunitiesSchema,
116
+ P as OpportunitiesZod,
117
+ O as RedeemBtcbSchema,
118
+ V as RedeemBtcbZod,
119
+ U as SUPPORTED_CHAINS,
120
+ W as StakeSchema,
121
+ Y as StakeZod,
122
+ q as StrategiesSchema,
123
+ z as StrategiesZod,
124
+ H as TokenBalanceSchema,
125
+ F as TokenBalanceZod,
126
+ j as TokenInfoSchema,
127
+ G as TokenInfoZod,
128
+ $ as VaultWithdrawalSchema,
129
+ J as VaultWithdrawalZod,
130
+ K as allTools,
131
+ Q as amount,
132
+ X as buildAssetGlossary,
133
+ ee as chainId,
134
+ ae as checkFeeAuthorization,
135
+ te as evmAddress,
136
+ se as getBalance,
137
+ oe as getBtcbBalance,
138
+ re as getChainConfig,
139
+ ie as getDepositBtcAddress,
140
+ ne as getDepositStatusTool,
141
+ le as getEarnPositions,
142
+ ce as getEarnStrategiesTool,
143
+ pe as getEarnWithdrawalsTool,
144
+ he as getExchangeRate,
145
+ de as getLbtcApy,
146
+ ue as getLbtcBalance,
147
+ me as getLbtcDefiOpportunitiesTool,
148
+ be as getLuxPoints,
149
+ _e as getMorphoLbtcMarkets,
150
+ fe as getMorphoPosition,
151
+ we as getPositionsSummaryTool,
152
+ Be as getRedemptionStatusTool,
153
+ Te as getTokenBalance,
154
+ ge as getTokenInfo,
155
+ ye as prepareBtcToBtcbDeposit,
156
+ Ce as prepareBtcToLbtcDeposit,
157
+ Se as prepareBtcbToLbtcStake,
158
+ ve as prepareCancelEarnWithdrawal,
159
+ ke as prepareClaimLbtcDeposit,
160
+ Le as prepareEarnDeposit,
161
+ Ee as prepareEarnWithdrawal,
162
+ Ae as prepareLbtcToBtc,
163
+ Me as prepareLbtcToBtcb,
164
+ De as prepareMorphoBorrow,
165
+ Ie as prepareMorphoRepay,
166
+ xe as prepareMorphoSupplyCollateral,
167
+ Re as prepareRedeemBtcb,
168
+ Ze as resolveAssetByAddress,
169
+ Ne as resolveAssetByName,
170
+ Pe as toolsByName
164
171
  };
package/dist/langchain.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { tool as n } from "@langchain/core/tools";
2
- import { K as t } from "./tools.js";
2
+ import { Q as t } from "./tools.js";
3
3
  function i(o) {
4
4
  return n(
5
5
  async (a) => JSON.stringify(await o.execute(a)),
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AA4FA,eAAO,MAAM,qBAAqB,QAAiD,CAAC"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AA6FA,eAAO,MAAM,qBAAqB,QAAiD,CAAC"}
package/dist/schemas.d.ts CHANGED
@@ -34,21 +34,28 @@ export declare const StakeZod: z.ZodObject<{
34
34
  chainId: number;
35
35
  amount: string;
36
36
  }>;
37
- export declare const UnstakeZod: z.ZodObject<{
37
+ export declare const LbtcToBtcZod: z.ZodObject<{
38
+ amount: z.ZodEffects<z.ZodString, string, string>;
39
+ recipient: z.ZodString;
40
+ chainId: z.ZodNumber;
41
+ }, "strip", z.ZodTypeAny, {
42
+ chainId: number;
43
+ amount: string;
44
+ recipient: string;
45
+ }, {
46
+ chainId: number;
47
+ amount: string;
48
+ recipient: string;
49
+ }>;
50
+ export declare const LbtcToBtcbZod: z.ZodObject<{
38
51
  amount: z.ZodEffects<z.ZodString, string, string>;
39
- outputAsset: z.ZodEnum<["BTC", "BTCb"]>;
40
- recipient: z.ZodOptional<z.ZodString>;
41
52
  chainId: z.ZodNumber;
42
53
  }, "strip", z.ZodTypeAny, {
43
54
  chainId: number;
44
55
  amount: string;
45
- outputAsset: "BTCb" | "BTC";
46
- recipient?: string | undefined;
47
56
  }, {
48
57
  chainId: number;
49
58
  amount: string;
50
- outputAsset: "BTCb" | "BTC";
51
- recipient?: string | undefined;
52
59
  }>;
53
60
  export declare const BalanceZod: z.ZodObject<{
54
61
  address: z.ZodString;
@@ -245,7 +252,8 @@ export declare const AddressOnlySchema: JsonObjectSchema;
245
252
  export declare const AddressAndChainSchema: JsonObjectSchema;
246
253
  export declare const ExchangeRateSchema: JsonObjectSchema;
247
254
  export declare const StakeSchema: JsonObjectSchema;
248
- export declare const UnstakeSchema: JsonObjectSchema;
255
+ export declare const LbtcToBtcSchema: JsonObjectSchema;
256
+ export declare const LbtcToBtcbSchema: JsonObjectSchema;
249
257
  export declare const BalanceSchema: JsonObjectSchema;
250
258
  export declare const StrategiesSchema: JsonObjectSchema;
251
259
  export declare const DepositBtcSchema: JsonObjectSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}