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 +1 -1
- intentkit/clients/web3.py +3 -4
- intentkit/core/asset.py +1 -2
- intentkit/core/scheduler.py +92 -0
- intentkit/skills/base.py +1 -1
- {intentkit-0.7.5.dev30.dist-info → intentkit-0.7.5.dev32.dist-info}/METADATA +1 -1
- {intentkit-0.7.5.dev30.dist-info → intentkit-0.7.5.dev32.dist-info}/RECORD +9 -8
- {intentkit-0.7.5.dev30.dist-info → intentkit-0.7.5.dev32.dist-info}/WHEEL +0 -0
- {intentkit-0.7.5.dev30.dist-info → intentkit-0.7.5.dev32.dist-info}/licenses/LICENSE +0 -0
intentkit/__init__.py
CHANGED
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.
|
|
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
|
|
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 =
|
|
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)
|
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.7.5.
|
|
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
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
454
|
-
intentkit-0.7.5.
|
|
455
|
-
intentkit-0.7.5.
|
|
456
|
-
intentkit-0.7.5.
|
|
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,,
|
|
File without changes
|
|
File without changes
|