intentkit 0.6.0.dev5__py3-none-any.whl → 0.6.0.dev7__py3-none-any.whl

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.

Potentially problematic release.


This version of intentkit might be problematic. Click here for more details.

intentkit/__init__.py CHANGED
@@ -3,7 +3,7 @@
3
3
  A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
4
4
  """
5
5
 
6
- __version__ = "0.6.0-dev.5"
6
+ __version__ = "0.6.0-dev.7"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
intentkit/clients/cdp.py CHANGED
@@ -1,9 +1,12 @@
1
+ import json
2
+ import logging
3
+ import os
1
4
  from typing import Dict, Optional
2
5
 
3
- from cdp import Wallet
6
+ from cdp import EvmServerAccount
4
7
  from coinbase_agentkit import (
5
- CdpWalletProvider,
6
- CdpWalletProviderConfig,
8
+ CdpEvmServerWalletProvider,
9
+ CdpEvmServerWalletProviderConfig,
7
10
  )
8
11
 
9
12
  from intentkit.abstracts.skill import SkillStoreABC
@@ -17,31 +20,80 @@ class CdpClient:
17
20
  def __init__(self, agent_id: str, skill_store: SkillStoreABC) -> None:
18
21
  self._agent_id = agent_id
19
22
  self._skill_store = skill_store
20
- self._wallet_provider: Optional[CdpWalletProvider] = None
21
- self._wallet_provider_config: Optional[CdpWalletProviderConfig] = None
23
+ self._wallet_provider: Optional[CdpEvmServerWalletProvider] = None
24
+ self._wallet_provider_config: Optional[CdpEvmServerWalletProviderConfig] = None
22
25
 
23
- async def get_wallet_provider(self) -> CdpWalletProvider:
26
+ async def get_wallet_provider(self) -> CdpEvmServerWalletProvider:
24
27
  if self._wallet_provider:
25
28
  return self._wallet_provider
26
29
  agent: Agent = await self._skill_store.get_agent_config(self._agent_id)
27
30
  agent_data: AgentData = await self._skill_store.get_agent_data(self._agent_id)
28
31
  network_id = agent.network_id or agent.cdp_network_id
29
- self._wallet_provider_config = CdpWalletProviderConfig(
30
- api_key_name=self._skill_store.get_system_config("cdp_api_key_name"),
31
- api_key_private_key=self._skill_store.get_system_config(
32
- "cdp_api_key_private_key"
33
- ),
32
+
33
+ logger = logging.getLogger(__name__)
34
+
35
+ # Collect credentials from system-config first, then env vars as fallback
36
+ api_key_id = (
37
+ self._skill_store.get_system_config("cdp_api_key_name")
38
+ or os.getenv("CDP_API_KEY_ID")
39
+ or os.getenv("CDP_API_KEY_NAME")
40
+ )
41
+
42
+ api_key_secret = (
43
+ self._skill_store.get_system_config("cdp_api_key_private_key")
44
+ or os.getenv("CDP_API_KEY_SECRET")
45
+ or os.getenv("CDP_API_KEY_PRIVATE_KEY")
46
+ )
47
+
48
+ wallet_secret = self._skill_store.get_system_config(
49
+ "cdp_wallet_secret"
50
+ ) or os.getenv("CDP_WALLET_SECRET")
51
+
52
+ address = None
53
+
54
+ # Attempt to override with any wallet-specific secret stored in wallet_data
55
+ if agent_data.cdp_wallet_data:
56
+ try:
57
+ wallet_data = json.loads(agent_data.cdp_wallet_data)
58
+ # Try to get address from the new format or fallback to old format
59
+ if "default_address_id" in wallet_data:
60
+ address = wallet_data["default_address_id"]
61
+
62
+ # Prefer wallet_secret stored alongside the wallet data if present
63
+ if "wallet_secret" in wallet_data:
64
+ wallet_secret = wallet_data["wallet_secret"]
65
+ elif "account_data" in wallet_data and wallet_data["account_data"]:
66
+ # Some versions may nest the secret inside account_data
67
+ wallet_secret = (
68
+ wallet_data["account_data"].get("wallet_secret")
69
+ or wallet_secret
70
+ )
71
+ except json.JSONDecodeError:
72
+ logger.warning(
73
+ "Invalid JSON in cdp_wallet_data for agent %s", self._agent_id
74
+ )
75
+
76
+ self._wallet_provider_config = CdpEvmServerWalletProviderConfig(
77
+ api_key_id=api_key_id,
78
+ api_key_secret=api_key_secret,
34
79
  network_id=network_id,
35
- wallet_data=agent_data.cdp_wallet_data,
80
+ address=address,
81
+ wallet_secret=wallet_secret,
36
82
  )
37
- self._wallet_provider = CdpWalletProvider(self._wallet_provider_config)
83
+ self._wallet_provider = CdpEvmServerWalletProvider(self._wallet_provider_config)
38
84
  return self._wallet_provider
39
85
 
40
- async def get_wallet(self) -> Wallet:
86
+ async def get_account(self) -> EvmServerAccount:
87
+ """Get the account object from the wallet provider.
88
+
89
+ Returns:
90
+ EvmServerAccount: The account object that can be used for balance checks, transfers, etc.
91
+ """
41
92
  wallet_provider = await self.get_wallet_provider()
42
- return wallet_provider._wallet
93
+ # Access the internal account object
94
+ return wallet_provider._account
43
95
 
44
- async def get_provider_config(self) -> CdpWalletProviderConfig:
96
+ async def get_provider_config(self) -> CdpEvmServerWalletProviderConfig:
45
97
  if not self._wallet_provider_config:
46
98
  await self.get_wallet_provider()
47
99
  return self._wallet_provider_config
intentkit/models/agent.py CHANGED
@@ -1319,7 +1319,7 @@ class AgentResponse(BaseModel):
1319
1319
  ]
1320
1320
  # auto increment number by db
1321
1321
  number: Annotated[
1322
- int,
1322
+ Optional[int],
1323
1323
  PydanticField(
1324
1324
  description="Auto-incrementing number assigned by the system for easy reference",
1325
1325
  ),
@@ -5,10 +5,9 @@ from typing import TypedDict
5
5
  from coinbase_agentkit import (
6
6
  AgentKit,
7
7
  AgentKitConfig,
8
- CdpWalletProvider,
8
+ CdpEvmServerWalletProvider,
9
9
  basename_action_provider,
10
10
  cdp_api_action_provider,
11
- cdp_wallet_action_provider,
12
11
  erc20_action_provider,
13
12
  morpho_action_provider,
14
13
  pyth_action_provider,
@@ -37,10 +36,6 @@ class SkillStates(TypedDict):
37
36
  WalletActionProvider_native_transfer: SkillState
38
37
  CdpApiActionProvider_address_reputation: SkillState
39
38
  CdpApiActionProvider_request_faucet_funds: SkillState
40
- CdpWalletActionProvider_deploy_contract: SkillState
41
- CdpWalletActionProvider_deploy_nft: SkillState
42
- CdpWalletActionProvider_deploy_token: SkillState
43
- CdpWalletActionProvider_trade: SkillState
44
39
  PythActionProvider_fetch_price: SkillState
45
40
  PythActionProvider_fetch_price_feed_id: SkillState
46
41
  BasenameActionProvider_register_basename: SkillState
@@ -97,15 +92,15 @@ async def get_skills(
97
92
 
98
93
  # Initialize CDP client
99
94
  cdp_client: CdpClient = await get_cdp_client(agent_id, store)
100
- cdp_wallet_provider: CdpWalletProvider = await cdp_client.get_wallet_provider()
101
- cdp_provider_config = await cdp_client.get_provider_config()
95
+ cdp_wallet_provider: CdpEvmServerWalletProvider = (
96
+ await cdp_client.get_wallet_provider()
97
+ )
102
98
  agent_kit = AgentKit(
103
99
  AgentKitConfig(
104
100
  wallet_provider=cdp_wallet_provider,
105
101
  action_providers=[
106
102
  wallet_action_provider(),
107
- cdp_api_action_provider(cdp_provider_config),
108
- cdp_wallet_action_provider(cdp_provider_config),
103
+ cdp_api_action_provider(),
109
104
  pyth_action_provider(),
110
105
  basename_action_provider(),
111
106
  erc20_action_provider(),
@@ -121,9 +116,11 @@ async def get_skills(
121
116
  tools = []
122
117
  for skill in available_skills:
123
118
  if skill == "get_balance":
119
+ # Get the account object for the custom GetBalance skill
120
+ account = await cdp_client.get_account()
124
121
  tools.append(
125
122
  GetBalance(
126
- wallet=cdp_wallet_provider._wallet,
123
+ account=account,
127
124
  agent_id=agent_id,
128
125
  skill_store=store,
129
126
  )
@@ -1,9 +1,10 @@
1
1
  from typing import Type
2
2
 
3
- from cdp import Wallet
3
+ from cdp import EvmServerAccount
4
4
  from pydantic import BaseModel, Field
5
5
 
6
6
  from intentkit.abstracts.skill import SkillStoreABC
7
+ from intentkit.clients import get_cdp_client
7
8
  from intentkit.skills.cdp.base import CDPBaseTool
8
9
 
9
10
 
@@ -28,7 +29,7 @@ class GetBalance(CDPBaseTool):
28
29
 
29
30
  agent_id: str
30
31
  skill_store: SkillStoreABC
31
- wallet: Wallet | None = None
32
+ account: EvmServerAccount | None = None
32
33
 
33
34
  name: str = "cdp_get_balance"
34
35
  description: str = (
@@ -48,25 +49,52 @@ class GetBalance(CDPBaseTool):
48
49
  str: A message containing the balance information or error message.
49
50
  """
50
51
  try:
51
- if not self.wallet:
52
- return "Failed to get wallet."
52
+ if not self.account:
53
+ return "Failed to get account."
54
+
55
+ # Get network information from CDP client
56
+ cdp_client = await get_cdp_client(self.agent_id, self.skill_store)
57
+ provider_config = await cdp_client.get_provider_config()
58
+ network_id = provider_config.network_id
59
+
60
+ # Map network_id to the format expected by the API
61
+ network_mapping = {
62
+ "base-mainnet": "base",
63
+ "base-sepolia": "base-sepolia",
64
+ "ethereum": "ethereum",
65
+ "ethereum-mainnet": "ethereum",
66
+ }
67
+ api_network = network_mapping.get(network_id, network_id)
68
+
69
+ # For native ETH balance, use the account's balance directly
70
+ if asset_id.lower() == "eth":
71
+ try:
72
+ # Get native balance using Web3
73
+ balance_wei = await self.account.get_balance()
74
+ balance_eth = balance_wei / (10**18) # Convert from wei to ETH
75
+ return f"ETH balance for account {self.account.address}: {balance_eth} ETH"
76
+ except Exception as e:
77
+ return f"Error getting ETH balance: {e!s}"
78
+
79
+ # For other tokens, try the list_token_balances API
80
+ try:
81
+ # list_token_balances returns all token balances for the account
82
+ token_balances = await self.account.list_token_balances(api_network)
53
83
 
54
- # for each address in the wallet, get the balance for the asset
55
- balances = {}
84
+ # Find the balance for the specific asset
85
+ target_balance = None
86
+ for balance in token_balances:
87
+ if balance.asset_id.lower() == asset_id.lower():
88
+ target_balance = balance
89
+ break
90
+
91
+ if target_balance:
92
+ return f"Balance for {asset_id} in account {self.account.address}: {target_balance.amount} {target_balance.asset_id}"
93
+ else:
94
+ return f"No balance found for asset {asset_id} in account {self.account.address}"
56
95
 
57
- try:
58
- for address in self.wallet.addresses:
59
- balance = address.balance(asset_id)
60
- balances[address.address_id] = balance
61
96
  except Exception as e:
62
- return f"Error getting balance for all addresses in the wallet: {e!s}"
63
-
64
- # Format each balance entry on a new line
65
- balance_lines = [
66
- f" {addr}: {balance}" for addr, balance in balances.items()
67
- ]
68
- formatted_balances = "\n".join(balance_lines)
69
- return f"Balances for wallet {self.wallet.id}:\n{formatted_balances}"
97
+ return f"Error getting balance for account: {e!s}"
70
98
 
71
99
  except Exception as e:
72
100
  return f"Error getting balance: {str(e)}"
@@ -193,70 +193,6 @@
193
193
  "description": "State for WalletActionProvider_native_transfer",
194
194
  "default": "private"
195
195
  },
196
- "CdpWalletActionProvider_trade": {
197
- "type": "string",
198
- "title": "CDP Wallet Trade",
199
- "enum": [
200
- "disabled",
201
- "public",
202
- "private"
203
- ],
204
- "x-enum-title": [
205
- "Disabled",
206
- "Agent Owner + All Users",
207
- "Agent Owner Only"
208
- ],
209
- "description": "State for CdpWalletActionProvider_trade",
210
- "default": "private"
211
- },
212
- "CdpWalletActionProvider_deploy_nft": {
213
- "type": "string",
214
- "title": "Cdp Wallet Deploy Nft",
215
- "enum": [
216
- "disabled",
217
- "public",
218
- "private"
219
- ],
220
- "x-enum-title": [
221
- "Disabled",
222
- "Agent Owner + All Users",
223
- "Agent Owner Only"
224
- ],
225
- "description": "State for CdpWalletActionProvider_deploy_nft",
226
- "default": "disabled"
227
- },
228
- "CdpWalletActionProvider_deploy_token": {
229
- "type": "string",
230
- "title": "CDP Wallet Deploy Token",
231
- "enum": [
232
- "disabled",
233
- "public",
234
- "private"
235
- ],
236
- "x-enum-title": [
237
- "Disabled",
238
- "Agent Owner + All Users",
239
- "Agent Owner Only"
240
- ],
241
- "description": "State for CdpWalletActionProvider_deploy_token",
242
- "default": "disabled"
243
- },
244
- "CdpWalletActionProvider_deploy_contract": {
245
- "type": "string",
246
- "title": "CDP Wallet Deploy Contract",
247
- "enum": [
248
- "disabled",
249
- "public",
250
- "private"
251
- ],
252
- "x-enum-title": [
253
- "Disabled",
254
- "Agent Owner + All Users",
255
- "Agent Owner Only"
256
- ],
257
- "description": "State for CdpWalletActionProvider_deploy_contract",
258
- "default": "disabled"
259
- },
260
196
  "CdpApiActionProvider_request_faucet_funds": {
261
197
  "type": "string",
262
198
  "title": "CDP Request Faucet Funds",
@@ -1,6 +1,7 @@
1
1
  from typing import Optional, Type
2
2
 
3
- from cdp import Wallet
3
+ from cdp import EvmServerAccount
4
+ from coinbase_agentkit import CdpEvmServerWalletProvider
4
5
  from pydantic import BaseModel, Field
5
6
 
6
7
  from intentkit.abstracts.skill import SkillStoreABC
@@ -22,9 +23,31 @@ class EnsoBaseTool(IntentKitSkill):
22
23
  description="The skill store for persisting data"
23
24
  )
24
25
 
25
- async def get_wallet(self, context: SkillContext) -> Optional[Wallet]:
26
+ async def get_account(self, context: SkillContext) -> Optional[EvmServerAccount]:
27
+ """Get the account object from the CDP client.
28
+
29
+ Args:
30
+ context: The skill context containing agent information.
31
+
32
+ Returns:
33
+ Optional[EvmServerAccount]: The account object if available.
34
+ """
35
+ client: CdpClient = await get_cdp_client(context.agent.id, self.skill_store)
36
+ return await client.get_account()
37
+
38
+ async def get_wallet_provider(
39
+ self, context: SkillContext
40
+ ) -> Optional[CdpEvmServerWalletProvider]:
41
+ """Get the wallet provider from the CDP client.
42
+
43
+ Args:
44
+ context: The skill context containing agent information.
45
+
46
+ Returns:
47
+ Optional[CdpEvmServerWalletProvider]: The wallet provider if available.
48
+ """
26
49
  client: CdpClient = await get_cdp_client(context.agent.id, self.skill_store)
27
- return await client.get_wallet()
50
+ return await client.get_wallet_provider()
28
51
 
29
52
  def get_chain_provider(self, context: SkillContext) -> Optional[ChainProvider]:
30
53
  return self.skill_store.get_system_config("chain_provider")
@@ -6,9 +6,7 @@ from langchain_core.runnables import RunnableConfig
6
6
  from pydantic import BaseModel, Field
7
7
 
8
8
  from intentkit.skills.base import SkillContext
9
- from intentkit.skills.enso.abi.route import ABI_ROUTE
10
9
  from intentkit.skills.enso.networks import EnsoGetNetworks
11
- from intentkit.utils.tx import EvmContractWrapper
12
10
 
13
11
  from .base import EnsoBaseTool, base_url, default_chain_id
14
12
 
@@ -188,8 +186,7 @@ class EnsoRouteShortcut(EnsoBaseTool):
188
186
  context: SkillContext = self.context_from_config(config)
189
187
  agent_id = context.agent.id
190
188
  api_token = self.get_api_token(context)
191
- chain_provider = self.get_chain_provider(context)
192
- wallet = await self.get_wallet(context)
189
+ account = await self.get_account(context)
193
190
 
194
191
  async with httpx.AsyncClient() as client:
195
192
  try:
@@ -254,7 +251,7 @@ class EnsoRouteShortcut(EnsoBaseTool):
254
251
  tokenOut=tokenOut,
255
252
  ).model_dump(exclude_none=True)
256
253
 
257
- params["fromAddress"] = wallet.addresses[0].address_id
254
+ params["fromAddress"] = account.address
258
255
 
259
256
  response = await client.get(url, headers=headers, params=params)
260
257
  response.raise_for_status() # Raise HTTPError for non-2xx responses
@@ -268,23 +265,27 @@ class EnsoRouteShortcut(EnsoBaseTool):
268
265
  )
269
266
 
270
267
  if broadcast_requested:
271
- rpc_url = chain_provider.get_chain_config_by_id(chainId).rpc_url
272
- contract = EvmContractWrapper(
273
- rpc_url, ABI_ROUTE, json_dict.get("tx")
274
- )
275
-
276
- fn, fn_args = contract.fn_and_args
277
-
278
- fn_args["amountIn"] = str(fn_args["amountIn"])
279
-
280
- invocation = wallet.invoke_contract(
281
- contract_address=contract.dst_addr,
282
- method=fn.fn_name,
283
- abi=ABI_ROUTE,
284
- args=fn_args,
285
- ).wait()
286
-
287
- res.txHash = invocation.transaction.transaction_hash
268
+ # Use the wallet provider to send the transaction
269
+ wallet_provider = await self.get_wallet_provider(context)
270
+
271
+ # Extract transaction data from the Enso API response
272
+ tx_data = json_dict.get("tx", {})
273
+ if tx_data:
274
+ # Send the transaction using the wallet provider
275
+ tx_hash = wallet_provider.send_transaction(
276
+ {
277
+ "to": tx_data.get("to"),
278
+ "data": tx_data.get("data", "0x"),
279
+ "value": tx_data.get("value", 0),
280
+ }
281
+ )
282
+
283
+ # Wait for transaction confirmation
284
+ wallet_provider.wait_for_transaction_receipt(tx_hash)
285
+ res.txHash = tx_hash
286
+ else:
287
+ # For now, return a placeholder transaction hash if no tx data
288
+ res.txHash = "0x0000000000000000000000000000000000000000000000000000000000000000"
288
289
 
289
290
  return res
290
291
 
@@ -6,9 +6,7 @@ from langchain_core.runnables import RunnableConfig
6
6
  from pydantic import BaseModel, Field
7
7
 
8
8
  from intentkit.skills.base import SkillContext
9
- from intentkit.utils.tx import EvmContractWrapper
10
9
 
11
- from .abi.erc20 import ABI_ERC20
12
10
  from .base import EnsoBaseTool, base_url, default_chain_id
13
11
 
14
12
 
@@ -81,14 +79,14 @@ class EnsoGetWalletBalances(EnsoBaseTool):
81
79
 
82
80
  context: SkillContext = self.context_from_config(config)
83
81
  api_token = self.get_api_token(context)
84
- wallet = await self.get_wallet(context)
82
+ account = await self.get_account(context)
85
83
  headers = {
86
84
  "accept": "application/json",
87
85
  "Authorization": f"Bearer {api_token}",
88
86
  }
89
87
 
90
88
  params = EnsoGetBalancesInput(chainId=chainId).model_dump(exclude_none=True)
91
- params["eoaAddress"] = wallet.addresses[0].address_id
89
+ params["eoaAddress"] = account.address
92
90
  params["useEoa"] = True
93
91
 
94
92
  async with httpx.AsyncClient() as client:
@@ -178,7 +176,7 @@ class EnsoGetWalletApprovals(EnsoBaseTool):
178
176
 
179
177
  context: SkillContext = self.context_from_config(config)
180
178
  api_token = self.get_api_token(context)
181
- wallet = await self.get_wallet(context)
179
+ account = await self.get_account(context)
182
180
 
183
181
  headers = {
184
182
  "accept": "application/json",
@@ -187,7 +185,7 @@ class EnsoGetWalletApprovals(EnsoBaseTool):
187
185
 
188
186
  params = EnsoGetApprovalsInput(
189
187
  chainId=chainId,
190
- fromAddress=wallet.addresses[0].address_id,
188
+ fromAddress=account.address,
191
189
  )
192
190
 
193
191
  if kwargs.get("routingStrategy"):
@@ -318,15 +316,14 @@ class EnsoWalletApprove(EnsoBaseTool):
318
316
  url = f"{base_url}/api/v1/wallet/approve"
319
317
  context: SkillContext = self.context_from_config(config)
320
318
  api_token = self.get_api_token(context)
321
- chain_provider = self.get_chain_provider(context)
322
- wallet = await self.get_wallet(context)
319
+ account = await self.get_account(context)
323
320
 
324
321
  headers = {
325
322
  "accept": "application/json",
326
323
  "Authorization": f"Bearer {api_token}",
327
324
  }
328
325
 
329
- from_address = wallet.addresses[0].address_id
326
+ from_address = account.address
330
327
 
331
328
  params = EnsoWalletApproveInput(
332
329
  tokenAddress=tokenAddress,
@@ -352,20 +349,27 @@ class EnsoWalletApprove(EnsoBaseTool):
352
349
  content = EnsoWalletApproveOutput(**json_dict)
353
350
  artifact = EnsoWalletApproveArtifact(**json_dict)
354
351
 
355
- rpc_url = chain_provider.get_chain_config_by_id(chainId).rpc_url
356
- contract = EvmContractWrapper(rpc_url, ABI_ERC20, artifact.tx)
357
-
358
- fn, fn_args = contract.fn_and_args
359
- fn_args["value"] = str(fn_args["value"])
360
-
361
- invocation = wallet.invoke_contract(
362
- contract_address=contract.dst_addr,
363
- method=fn.fn_name,
364
- abi=ABI_ERC20,
365
- args=fn_args,
366
- ).wait()
367
-
368
- artifact.txHash = invocation.transaction.transaction_hash
352
+ # Use the wallet provider to send the transaction
353
+ wallet_provider = await self.get_wallet_provider(context)
354
+
355
+ # Extract transaction data from the Enso API response
356
+ tx_data = json_dict.get("tx", {})
357
+ if tx_data:
358
+ # Send the transaction using the wallet provider
359
+ tx_hash = wallet_provider.send_transaction(
360
+ {
361
+ "to": tx_data.get("to"),
362
+ "data": tx_data.get("data", "0x"),
363
+ "value": tx_data.get("value", 0),
364
+ }
365
+ )
366
+
367
+ # Wait for transaction confirmation
368
+ wallet_provider.wait_for_transaction_receipt(tx_hash)
369
+ artifact.txHash = tx_hash
370
+ else:
371
+ # For now, return without executing the transaction if no tx data
372
+ artifact.txHash = "0x0000000000000000000000000000000000000000000000000000000000000000"
369
373
 
370
374
  # Return the parsed response
371
375
  return (content, artifact)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.0.dev5
3
+ Version: 0.6.0.dev7
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestal-network/intentkit
6
6
  Project-URL: Repository, https://github.com/crestal-network/intentkit
@@ -1,4 +1,4 @@
1
- intentkit/__init__.py,sha256=cS9nwSRx1rI1GJ3SyNpnwTmqo_ziSVO0Mpi9ecGnYeI,384
1
+ intentkit/__init__.py,sha256=DnF3BOj9qEWPCKkHKNRcx9ru3a-Mc0mVOGNpNrilll4,384
2
2
  intentkit/abstracts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  intentkit/abstracts/agent.py,sha256=108gb5W8Q1Sy4G55F2_ZFv2-_CnY76qrBtpIr0Oxxqk,1489
4
4
  intentkit/abstracts/api.py,sha256=ZUc24vaQvQVbbjznx7bV0lbbQxdQPfEV8ZxM2R6wZWo,166
@@ -8,7 +8,7 @@ intentkit/abstracts/graph.py,sha256=QhaVLtKyo9iTotIWhjgUi7BbmRCcb8yrHCTSq4Hsvnw,
8
8
  intentkit/abstracts/skill.py,sha256=f3DbeJzXjveATgd7tb3Ig0vYKl-bob3pzB_7MXeQmQA,3266
9
9
  intentkit/abstracts/twitter.py,sha256=cEtP7ygR_b-pHdc9i8kBuyooz1cPoGUGwsBHDpowJyY,1262
10
10
  intentkit/clients/__init__.py,sha256=sQ_6_bRC2MPWLPH-skQ3qsEe8ce-dUGL7i8VJOautHg,298
11
- intentkit/clients/cdp.py,sha256=Q1WfsnQi8o8M8FwHGsTModySIFN51xX-9L_3AfBeR4s,2048
11
+ intentkit/clients/cdp.py,sha256=VsgaxuSHd_PVMymb6vaj1rM0EtBWjuddfz-pOCgmQ3E,4118
12
12
  intentkit/clients/twitter.py,sha256=JAc-skIhZZjAFcwzLSTiOPOonteGjrl_JwXoA8IVBmI,16934
13
13
  intentkit/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  intentkit/config/config.py,sha256=sd3IYhbKzeTVp4beJ5-Gqk_oIcmgrqLPieodqzATWwE,7120
@@ -21,7 +21,7 @@ intentkit/core/engine.py,sha256=elCKe-NzllJDkE9M8uyzb5w3mozEY7TL4tIslF0HjUA,4114
21
21
  intentkit/core/node.py,sha256=ULIyJvVFu9gHuBfSLXe_qV6BMgGOFyAKPx0m8oScC8E,9066
22
22
  intentkit/core/prompt.py,sha256=9jxRYUUqSdBj8bdmCUAa-5yTbiQFVInOJsDqbAuUcfo,3512
23
23
  intentkit/core/skill.py,sha256=rE37qwDmpnHnIG0MwKxuonVO_lOq47gy-tvXMOz9VZs,3498
24
- intentkit/models/agent.py,sha256=2HlJLlJShEjhjDR290ndFaaVqv94FXzqdIKPBTuwpn4,57477
24
+ intentkit/models/agent.py,sha256=5amc4rjPHmZp7a4Z6chomDiFHaxgyr0Md5mKeI90jWQ,57487
25
25
  intentkit/models/agent_data.py,sha256=h__b3658ZOclV1Pwpp3UCCu0Nt49CKYfc2JZKG1dKeE,26929
26
26
  intentkit/models/agent_schema.json,sha256=kacuFT9gPuj16vhZg8Yg1kBJ-3La4uCzBa__uTnQmfY,21368
27
27
  intentkit/models/app_setting.py,sha256=WgW-9t0EbiVemRLrVaC6evdfRU5QFSDK0elsnUU5nIo,5008
@@ -63,11 +63,11 @@ intentkit/skills/carv/fetch_news.py,sha256=-xCWPvdVQxI0tEynR8mnjNEFpDkE4k4vNo1A-
63
63
  intentkit/skills/carv/onchain_query.py,sha256=EYV7N2Y-CisyhNVyUm2NbJhdikeFg0Y_a6lToJ5iqDM,6371
64
64
  intentkit/skills/carv/schema.json,sha256=oSReeG50ZJTOxSRniQBJW6KfilscZfp66PiBVOjphS4,5021
65
65
  intentkit/skills/carv/token_info_and_price.py,sha256=R7M5-nkjrauvxaNkORYtLcP9yOYj8PvYu1xRkOBT6lU,4275
66
- intentkit/skills/cdp/__init__.py,sha256=LHtMC38npUJIeLjU2VROBX2PdewlzC7UTLdCTxJA4VM,4839
66
+ intentkit/skills/cdp/__init__.py,sha256=wvPP3XfkHYddu2XlIeDKwLF_SteyX-MF1rFBsoqHKtw,4589
67
67
  intentkit/skills/cdp/base.py,sha256=BcleKSXm0oNcHYky4uUPCJ3roXxMeTJs2OUS-8MkfMI,581
68
68
  intentkit/skills/cdp/cdp.png,sha256=dxPF6jPbKVfxJNMvbGTmBhXM-rSDvweF06txoX1cIM4,4425
69
- intentkit/skills/cdp/get_balance.py,sha256=7P0Z3AyQpJ2yrYa2d-zlwmzy4KyKwTZNjLl615SyqKY,2781
70
- intentkit/skills/cdp/schema.json,sha256=BnDfTzH9UlqCHzO67zujIFzUpeKDs-muDlO5V7XW1gY,13667
69
+ intentkit/skills/cdp/get_balance.py,sha256=IAsU7mQAPSQqCbYQsokkklsqESEVl82VxMt8dEDJ6cM,4211
70
+ intentkit/skills/cdp/schema.json,sha256=3ULPR95TW_Fp2GzzHwmwhAqm8vlxs2tN7fG6WoPY87c,11774
71
71
  intentkit/skills/chainlist/README.md,sha256=FEVQObs2W_oL2kyV-vZpHNwZCCgqm5Kt0sv0GD_Xo1M,958
72
72
  intentkit/skills/chainlist/__init__.py,sha256=2aRC-jXW3WYiR_-RM-_Ls1lby_54ZemZ6qtggntGa-U,1502
73
73
  intentkit/skills/chainlist/base.py,sha256=rRhrXcdg06qAYE0uIiL9NctpODuTIu51Eyxp4UVtflU,599
@@ -175,15 +175,15 @@ intentkit/skills/elfa/stats.py,sha256=J6v1rhf205cztbDoqa_4z2-9u0we7zQZbdHmdSokAh
175
175
  intentkit/skills/elfa/tokens.py,sha256=Q46nkKUv3pjdnpuN0mXg_L7UYTqePmoNuw6diRE1xWs,5333
176
176
  intentkit/skills/enso/README.md,sha256=jsLXPjW16rvBDd7soVms0IpH2LmQLRjtbRlzDMOLkso,1998
177
177
  intentkit/skills/enso/__init__.py,sha256=WLds5RVOMdswAtO8Dwkzl2H18gym0vpfa-CeF19PC0I,3076
178
- intentkit/skills/enso/base.py,sha256=6XaTQurC9E7ZS9EgikAEuV2bvlzTp2QTL8ZoRtRlzio,1658
178
+ intentkit/skills/enso/base.py,sha256=X4oNJGkyVW7EH6rNU2OeB777NsdXrseOESwdULYGKxo,2487
179
179
  intentkit/skills/enso/best_yield.py,sha256=k3avL3trg7DrX4v7f6ZePCavBg8Negv_qYsYb4vAkmQ,10155
180
180
  intentkit/skills/enso/enso.jpg,sha256=QID1rD7c3YVbIgzJeLD7HnNdCJfDy8mItYV784g7wWM,10741
181
181
  intentkit/skills/enso/networks.py,sha256=UFE5037dBZb1-GbmgkxLEEwD6PHTUiaz2159Sul8tkI,3401
182
182
  intentkit/skills/enso/prices.py,sha256=w8k2TUOPSfAS9ZCEWwbGNWNrWS9XyUVYDpY1MuLmWJs,3321
183
- intentkit/skills/enso/route.py,sha256=y-HYFYq-N1hgiqCeu4uwiA_UkWfi9Rug6NygpwQtk8o,12218
183
+ intentkit/skills/enso/route.py,sha256=8H6j_CJ_yQuQcZykZ5cDhre9OmR9wN9KD3HiShT_BP0,12485
184
184
  intentkit/skills/enso/schema.json,sha256=MvEms4RqX5jT4gs8veYisXGz40K_2d9lkhDBh89viHA,6062
185
185
  intentkit/skills/enso/tokens.py,sha256=7jP9ZqhBdnVfAzABzQZzNk9mP0qBGm17TBWJ2tVKCxI,9728
186
- intentkit/skills/enso/wallet.py,sha256=Ap6f9ILKzc5Ds86Y8r8wZfgvJhyBEnQFzzFu2SbHhCQ,14100
186
+ intentkit/skills/enso/wallet.py,sha256=uUa7wKGXLNqCP9PKGu5LcJf-rNLeByxI6oPGlINBF74,14399
187
187
  intentkit/skills/enso/abi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
188
  intentkit/skills/enso/abi/approval.py,sha256=IsyQLFxzAttocrtCB2PhbgprA7Vqujzpxvg0hJbeJ00,9867
189
189
  intentkit/skills/enso/abi/erc20.py,sha256=IScqZhHpMt_eFfYtMXw0-w5jptkAK0xsqqUDjbWdb2s,439
@@ -359,7 +359,7 @@ intentkit/utils/random.py,sha256=DymMxu9g0kuQLgJUqalvgksnIeLdS-v0aRk5nQU0mLI,452
359
359
  intentkit/utils/s3.py,sha256=9trQNkKQ5VgxWsewVsV8Y0q_pXzGRvsCYP8xauyUYkg,8549
360
360
  intentkit/utils/slack_alert.py,sha256=s7UpRgyzLW7Pbmt8cKzTJgMA9bm4EP-1rQ5KXayHu6E,2264
361
361
  intentkit/utils/tx.py,sha256=2yLLGuhvfBEY5n_GJ8wmIWLCzn0FsYKv5kRNzw_sLUI,1454
362
- intentkit-0.6.0.dev5.dist-info/METADATA,sha256=FyJOQ3Cuy_6lmt0SRb_GuaRCrqDc2GGN0DcNcLPQ-B4,7285
363
- intentkit-0.6.0.dev5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
364
- intentkit-0.6.0.dev5.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
365
- intentkit-0.6.0.dev5.dist-info/RECORD,,
362
+ intentkit-0.6.0.dev7.dist-info/METADATA,sha256=09FAO7Bo58fJiy_edgDYPG_9igaWJp0SWFLG6i6hAW0,7285
363
+ intentkit-0.6.0.dev7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
364
+ intentkit-0.6.0.dev7.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
365
+ intentkit-0.6.0.dev7.dist-info/RECORD,,