intentkit 0.7.5.dev30__py3-none-any.whl → 0.7.5.dev32__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.7.5-dev30"
6
+ __version__ = "0.7.5-dev32"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
intentkit/clients/web3.py CHANGED
@@ -2,19 +2,18 @@ from typing import Dict
2
2
 
3
3
  from web3 import Web3
4
4
 
5
- from intentkit.abstracts.skill import SkillStoreABC
5
+ from intentkit.config.config import config
6
6
  from intentkit.utils.chain import ChainProvider
7
7
 
8
8
  # Global cache for Web3 clients by network_id
9
9
  _web3_client_cache: Dict[str, Web3] = {}
10
10
 
11
11
 
12
- def get_web3_client(network_id: str, skill_store: SkillStoreABC) -> Web3:
12
+ def get_web3_client(network_id: str) -> Web3:
13
13
  """Get a Web3 client for the specified network.
14
14
 
15
15
  Args:
16
16
  network_id: The network ID to get the Web3 client for
17
- skill_store: The skill store to get system configuration from
18
17
 
19
18
  Returns:
20
19
  Web3: A Web3 client instance for the specified network
@@ -24,7 +23,7 @@ def get_web3_client(network_id: str, skill_store: SkillStoreABC) -> Web3:
24
23
  return _web3_client_cache[network_id]
25
24
 
26
25
  # Create new Web3 client and cache it
27
- chain_provider: ChainProvider = skill_store.get_system_config("chain_provider")
26
+ chain_provider: ChainProvider = config.chain_provider
28
27
  chain = chain_provider.get_chain_config(network_id)
29
28
  web3_client = Web3(Web3.HTTPProvider(chain.rpc_url))
30
29
  _web3_client_cache[network_id] = web3_client
intentkit/core/asset.py CHANGED
@@ -12,7 +12,6 @@ from web3 import Web3
12
12
 
13
13
  from intentkit.clients.web3 import get_web3_client
14
14
  from intentkit.config.config import config
15
- from intentkit.core.agent import agent_store
16
15
  from intentkit.models.agent import Agent
17
16
  from intentkit.models.agent_data import AgentData
18
17
  from intentkit.utils.error import IntentKitAPIError
@@ -184,7 +183,7 @@ async def agent_asset(agent_id: str) -> AgentAssets:
184
183
  return AgentAssets(net_worth="0", tokens=[])
185
184
 
186
185
  try:
187
- web3_client = get_web3_client(str(agent.network_id), agent_store)
186
+ web3_client = get_web3_client(str(agent.network_id))
188
187
  tokens = await _build_assets_list(agent, agent_data, web3_client)
189
188
  net_worth = await _get_wallet_net_worth(agent_data.evm_wallet_address)
190
189
  return AgentAssets(net_worth=net_worth, tokens=tokens)
@@ -0,0 +1,92 @@
1
+ """Core scheduler utilities."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Mapping, MutableMapping
6
+
7
+ from apscheduler.jobstores.base import BaseJobStore
8
+ from apscheduler.schedulers.asyncio import AsyncIOScheduler
9
+ from apscheduler.triggers.cron import CronTrigger
10
+
11
+ from intentkit.core.agent import (
12
+ update_agent_action_cost,
13
+ update_agents_account_snapshot,
14
+ update_agents_assets,
15
+ update_agents_statistics,
16
+ )
17
+ from intentkit.core.credit import refill_all_free_credits
18
+ from intentkit.models.agent_data import AgentQuota
19
+
20
+
21
+ def create_scheduler(
22
+ jobstores: Mapping[str, BaseJobStore]
23
+ | MutableMapping[str, BaseJobStore]
24
+ | None = None,
25
+ ) -> AsyncIOScheduler:
26
+ """Create and configure the APScheduler with all periodic tasks."""
27
+ scheduler = AsyncIOScheduler(jobstores=dict(jobstores or {}))
28
+
29
+ # Reset daily quotas at UTC 00:00
30
+ scheduler.add_job(
31
+ AgentQuota.reset_daily_quotas,
32
+ trigger=CronTrigger(hour=0, minute=0, timezone="UTC"),
33
+ id="reset_daily_quotas",
34
+ name="Reset daily quotas",
35
+ replace_existing=True,
36
+ )
37
+
38
+ # Reset monthly quotas at UTC 00:00 on the first day of each month
39
+ scheduler.add_job(
40
+ AgentQuota.reset_monthly_quotas,
41
+ trigger=CronTrigger(day=1, hour=0, minute=0, timezone="UTC"),
42
+ id="reset_monthly_quotas",
43
+ name="Reset monthly quotas",
44
+ replace_existing=True,
45
+ )
46
+
47
+ # Refill free credits every hour at minute 20
48
+ scheduler.add_job(
49
+ refill_all_free_credits,
50
+ trigger=CronTrigger(minute="20", timezone="UTC"),
51
+ id="refill_free_credits",
52
+ name="Refill free credits",
53
+ replace_existing=True,
54
+ )
55
+
56
+ # Update agent account snapshots hourly
57
+ scheduler.add_job(
58
+ update_agents_account_snapshot,
59
+ trigger=CronTrigger(minute=0, timezone="UTC"),
60
+ id="update_agent_account_snapshot",
61
+ name="Update agent account snapshots",
62
+ replace_existing=True,
63
+ )
64
+
65
+ # Update agent assets daily at UTC midnight
66
+ scheduler.add_job(
67
+ update_agents_assets,
68
+ trigger=CronTrigger(hour=0, minute=0, timezone="UTC"),
69
+ id="update_agent_assets",
70
+ name="Update agent assets",
71
+ replace_existing=True,
72
+ )
73
+
74
+ # Update agent action costs hourly at minute 40
75
+ scheduler.add_job(
76
+ update_agent_action_cost,
77
+ trigger=CronTrigger(minute="40", timezone="UTC"),
78
+ id="update_agent_action_cost",
79
+ name="Update agent action costs",
80
+ replace_existing=True,
81
+ )
82
+
83
+ # Update agent statistics daily at UTC 00:01
84
+ scheduler.add_job(
85
+ update_agents_statistics,
86
+ trigger=CronTrigger(hour=0, minute=1, timezone="UTC"),
87
+ id="update_agent_statistics",
88
+ name="Update agent statistics",
89
+ replace_existing=True,
90
+ )
91
+
92
+ return scheduler
intentkit/skills/base.py CHANGED
@@ -183,7 +183,7 @@ class IntentKitSkill(BaseTool):
183
183
  agent = context.agent
184
184
  network_id = agent.network_id
185
185
 
186
- return get_web3_client(network_id, self.skill_store)
186
+ return get_web3_client(network_id)
187
187
 
188
188
 
189
189
  async def get_agentkit_actions(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.7.5.dev30
3
+ Version: 0.7.5.dev32
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
6
6
  Project-URL: Repository, https://github.com/crestalnetwork/intentkit
@@ -1,4 +1,4 @@
1
- intentkit/__init__.py,sha256=-n3vxVw4M-jpivJEgHTham-QAs55TMcaG5T5rSyOzu4,384
1
+ intentkit/__init__.py,sha256=Wh254m2MzW5NNCC2tH5HFugnMh2YubdINTnvS1WHi04,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
@@ -9,19 +9,20 @@ intentkit/abstracts/twitter.py,sha256=cEtP7ygR_b-pHdc9i8kBuyooz1cPoGUGwsBHDpowJy
9
9
  intentkit/clients/__init__.py,sha256=YmXSif963E5rUfkfHaI6JdWRFU5yNa_yJwafs2KEIVo,406
10
10
  intentkit/clients/cdp.py,sha256=eUsy8r9zSHzogATyHLcm5pOn771gUI4gH3Mt0Jq-shQ,5392
11
11
  intentkit/clients/twitter.py,sha256=Lfa7srHOFnY96SXcElW0jfg7XKS_WliWnXjPZEe6SQc,18976
12
- intentkit/clients/web3.py,sha256=A-w4vBPXHpDh8svsEFj_LkmvRgoDTZw4E-84S-UC9ws,1023
12
+ intentkit/clients/web3.py,sha256=iFjjingL9Aqh3kwUUKN8Tw5N66o2SE_bfo6OhqI-6SU,890
13
13
  intentkit/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  intentkit/config/config.py,sha256=kw9F-uLsJd-knCKmYNb-hqR7x7HUXUkNg5FZCgOPH54,8868
15
15
  intentkit/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  intentkit/core/agent.py,sha256=YeeaqSMHIRAWUihL4OsWwrbZy8QbV26ORddMgPtRqMc,37932
17
17
  intentkit/core/api.py,sha256=WfoaHNquujYJIpNPuTR1dSaaxog0S3X2W4lG9Ehmkm4,3284
18
- intentkit/core/asset.py,sha256=mswjgAhSkAzdkz8VlFCWFMrE4Di5R3tZlkHtC0Rt4D0,7397
18
+ intentkit/core/asset.py,sha256=9hkIgi-QRmr4FQddloEcQ5xdZlnHGFcxekNhss_gHOY,7339
19
19
  intentkit/core/chat.py,sha256=YN20CnDazWLjiOZFOHgV6uHmA2DKkvPCsD5Q5sfNcZg,1685
20
20
  intentkit/core/client.py,sha256=J5K7f08-ucszBKAbn9K3QNOFKIC__7amTbKYii1jFkI,3056
21
21
  intentkit/core/credit.py,sha256=b4f4T6G6eeBTMe0L_r8awWtXgUnqiog4IUaymDPYym0,75587
22
22
  intentkit/core/engine.py,sha256=8-dlYnwg8BIViAWIAFj65s3O29EXCeQlTjf5Yg9Xfww,37597
23
23
  intentkit/core/node.py,sha256=Cjekrg5RFtNNj3k_pLAWTZVGzm33Wnn2JtE__RSNMA8,8880
24
24
  intentkit/core/prompt.py,sha256=idNx1ono4Maz2i6IBKfaKOBBbEQiWbaSxr2Eb1vZTI4,15482
25
+ intentkit/core/scheduler.py,sha256=De84aTHYoIH18YPooB_GckHts5oGFZg-XQZQcqFvlXc,2842
25
26
  intentkit/core/statistics.py,sha256=-IZmxIBzyzZuai7QyfPEY1tx8Q8ydmmcm6eqbSSy_6o,6366
26
27
  intentkit/models/agent.py,sha256=2uz2YlyfqbSH4APycI7kQuBen25Tn07cSvgqQivUWWM,69074
27
28
  intentkit/models/agent_data.py,sha256=5zq3EPKnygT2P1OHc2IfEmL8hXkjeBND6sJ0JJsvQJg,28370
@@ -42,7 +43,7 @@ intentkit/models/skill.py,sha256=n9d1VKWxACe852wMOUC5P7Ps1EUMzIDAYT62Vfs8pQU,208
42
43
  intentkit/models/skills.csv,sha256=lvQg_1byPvJaHToQbEqRZarfYDuXpP4EXeVJVMc8aDs,19132
43
44
  intentkit/models/user.py,sha256=r2UWpuBJbS6bbfS-fz_rAtOTHL3zodRt1rccA7HhAQM,9902
44
45
  intentkit/skills/__init__.py,sha256=WkjmKB4xvy36zyXMroPMf_DTPgQloNS3L73nVnBmuQI,303
45
- intentkit/skills/base.py,sha256=0CCcN6n7gteLqOhEr447RmUmSyzetX3ck5R4oCNVBWY,7745
46
+ intentkit/skills/base.py,sha256=LJC6-zG4vgRvhkqRx-8syXSSjJBYlLLWperZycZt9jo,7727
46
47
  intentkit/skills/skills.toml,sha256=WQiai9RKIQ2Mqp-eW35_RCn2RW5QLWN3aRgsj7B7OvE,3532
47
48
  intentkit/skills/acolyt/__init__.py,sha256=qHQXFlqyyx4deRxC0rts_ZEEpDVV-vWXPncqI_ZMOi4,2074
48
49
  intentkit/skills/acolyt/acolyt.jpg,sha256=CwrrouzXzYvnHi1rprYruvZqPopG06ppMczEZmZ7D2s,11559
@@ -450,7 +451,7 @@ intentkit/utils/random.py,sha256=DymMxu9g0kuQLgJUqalvgksnIeLdS-v0aRk5nQU0mLI,452
450
451
  intentkit/utils/s3.py,sha256=A8Nsx5QJyLsxhj9g7oHNy2-m24tjQUhC9URm8Qb1jFw,10057
451
452
  intentkit/utils/slack_alert.py,sha256=s7UpRgyzLW7Pbmt8cKzTJgMA9bm4EP-1rQ5KXayHu6E,2264
452
453
  intentkit/utils/tx.py,sha256=2yLLGuhvfBEY5n_GJ8wmIWLCzn0FsYKv5kRNzw_sLUI,1454
453
- intentkit-0.7.5.dev30.dist-info/METADATA,sha256=LnwfzrexNAailFDtYQJ6F4na7XzuUcEi2jpII6oPVh0,6331
454
- intentkit-0.7.5.dev30.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
455
- intentkit-0.7.5.dev30.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
456
- intentkit-0.7.5.dev30.dist-info/RECORD,,
454
+ intentkit-0.7.5.dev32.dist-info/METADATA,sha256=0FChfPDfKxeO1qzpWf9rS0tWCjYsJqJI3wkcwwMTsXQ,6331
455
+ intentkit-0.7.5.dev32.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
456
+ intentkit-0.7.5.dev32.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
457
+ intentkit-0.7.5.dev32.dist-info/RECORD,,