intentkit 0.6.11.dev1__py3-none-any.whl → 0.6.11.dev2__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.11-dev1"
6
+ __version__ = "0.6.11-dev2"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -51,23 +51,23 @@ class Config:
51
51
  }
52
52
  else:
53
53
  self.db = {
54
- "username": self.load("DB_USERNAME"),
55
- "password": self.load("DB_PASSWORD"),
56
- "host": self.load("DB_HOST"),
57
- "port": self.load("DB_PORT"),
58
- "dbname": self.load("DB_NAME"),
54
+ "username": self.load("DB_USERNAME", ""),
55
+ "password": self.load("DB_PASSWORD", ""),
56
+ "host": self.load("DB_HOST", ""),
57
+ "port": self.load("DB_PORT", "5432"),
58
+ "dbname": self.load("DB_NAME", ""),
59
59
  }
60
60
  # ==== this part can be load from env or aws secrets manager
61
61
  self.db["auto_migrate"] = self.load("DB_AUTO_MIGRATE", "true") == "true"
62
- self.db["pool_size"] = int(self.load("DB_POOL_SIZE", "3"))
62
+ self.db["pool_size"] = self.load_int("DB_POOL_SIZE", 3)
63
63
  self.debug = self.load("DEBUG") == "true"
64
64
  self.debug_checkpoint = (
65
65
  self.load("DEBUG_CHECKPOINT", "false") == "true"
66
66
  ) # log with checkpoint
67
67
  # Redis
68
68
  self.redis_host = self.load("REDIS_HOST")
69
- self.redis_port = int(self.load("REDIS_PORT", "6379"))
70
- self.redis_db = int(self.load("REDIS_DB", "0"))
69
+ self.redis_port = self.load_int("REDIS_PORT", 6379)
70
+ self.redis_db = self.load_int("REDIS_DB", 0)
71
71
  # AWS
72
72
  self.aws_s3_bucket = self.load("AWS_S3_BUCKET")
73
73
  self.aws_s3_cdn_url = self.load("AWS_S3_CDN_URL")
@@ -97,7 +97,7 @@ class Config:
97
97
  self.reigent_api_key = self.load("REIGENT_API_KEY")
98
98
  self.venice_api_key = self.load("VENICE_API_KEY")
99
99
  self.system_prompt = self.load("SYSTEM_PROMPT")
100
- self.input_token_limit = int(self.load("INPUT_TOKEN_LIMIT", "60000"))
100
+ self.input_token_limit = self.load_int("INPUT_TOKEN_LIMIT", 60000)
101
101
  # Telegram server settings
102
102
  self.tg_base_url = self.load("TG_BASE_URL")
103
103
  self.tg_server_host = self.load("TG_SERVER_HOST", "127.0.0.1")
@@ -107,8 +107,8 @@ class Config:
107
107
  self.twitter_oauth2_client_id = self.load("TWITTER_OAUTH2_CLIENT_ID")
108
108
  self.twitter_oauth2_client_secret = self.load("TWITTER_OAUTH2_CLIENT_SECRET")
109
109
  self.twitter_oauth2_redirect_uri = self.load("TWITTER_OAUTH2_REDIRECT_URI")
110
- self.twitter_entrypoint_interval = int(
111
- self.load("TWITTER_ENTRYPOINT_INTERVAL", "5")
110
+ self.twitter_entrypoint_interval = self.load_int(
111
+ "TWITTER_ENTRYPOINT_INTERVAL", 5
112
112
  ) # in minutes
113
113
  # Slack Alert
114
114
  self.slack_alert_token = self.load("SLACK_ALERT_TOKEN")
@@ -126,12 +126,12 @@ class Config:
126
126
  self.firecrawl_api_key = self.load("FIRECRAWL_API_KEY")
127
127
  # Sentry
128
128
  self.sentry_dsn = self.load("SENTRY_DSN")
129
- self.sentry_sample_rate = float(self.load("SENTRY_SAMPLE_RATE", "0.1"))
130
- self.sentry_traces_sample_rate = float(
131
- self.load("SENTRY_TRACES_SAMPLE_RATE", "0.01")
129
+ self.sentry_sample_rate = self.load_float("SENTRY_SAMPLE_RATE", 0.1)
130
+ self.sentry_traces_sample_rate = self.load_float(
131
+ "SENTRY_TRACES_SAMPLE_RATE", 0.01
132
132
  )
133
- self.sentry_profiles_sample_rate = float(
134
- self.load("SENTRY_PROFILES_SAMPLE_RATE", "0.01")
133
+ self.sentry_profiles_sample_rate = self.load_float(
134
+ "SENTRY_PROFILES_SAMPLE_RATE", 0.01
135
135
  )
136
136
  # RPC Providers
137
137
  self.quicknode_api_key = self.load("QUICKNODE_API_KEY")
@@ -164,11 +164,38 @@ class Config:
164
164
  def load(self, key, default=None):
165
165
  """Load a secret from the secrets map or env"""
166
166
  value = self.secrets.get(key, os.getenv(key, default))
167
+
168
+ # If value is empty string, use default instead
169
+ if value == "":
170
+ value = default
171
+
167
172
  if value:
168
173
  value = value.replace("\\n", "\n")
169
174
  if value and value.startswith("'") and value.endswith("'"):
170
175
  value = value[1:-1]
171
176
  return value
172
177
 
178
+ def load_int(self, key, default=0):
179
+ """Load an integer value from env, handling empty strings gracefully"""
180
+ value = self.load(key, str(default))
181
+ if value is None or value == "":
182
+ return default
183
+ try:
184
+ return int(value)
185
+ except (ValueError, TypeError):
186
+ logger.warning(f"Invalid integer value for {key}, using default: {default}")
187
+ return default
188
+
189
+ def load_float(self, key, default=0.0):
190
+ """Load a float value from env, handling empty strings gracefully"""
191
+ value = self.load(key, str(default))
192
+ if value is None or value == "":
193
+ return default
194
+ try:
195
+ return float(value)
196
+ except (ValueError, TypeError):
197
+ logger.warning(f"Invalid float value for {key}, using default: {default}")
198
+ return default
199
+
173
200
 
174
201
  config: Config = Config()
intentkit/core/credit.py CHANGED
@@ -38,6 +38,7 @@ from intentkit.models.credit import (
38
38
  )
39
39
  from intentkit.models.db import get_session
40
40
  from intentkit.models.skill import Skill
41
+ from intentkit.utils.slack_alert import send_slack_message
41
42
 
42
43
  logger = logging.getLogger(__name__)
43
44
 
@@ -185,6 +186,19 @@ async def recharge(
185
186
  # Commit all changes
186
187
  await session.commit()
187
188
 
189
+ # Send Slack notification for recharge
190
+ try:
191
+ send_slack_message(
192
+ f"💰 **Credit Recharge**\n"
193
+ f"• User ID: `{user_id}`\n"
194
+ f"• Amount: `{amount}` credits\n"
195
+ f"• Transaction ID: `{upstream_tx_id}`\n"
196
+ f"• New Balance: `{user_account.credits + user_account.free_credits + user_account.reward_credits}` credits\n"
197
+ f"• Note: {note or 'N/A'}"
198
+ )
199
+ except Exception as e:
200
+ logger.error(f"Failed to send Slack notification for recharge: {str(e)}")
201
+
188
202
  return user_account
189
203
 
190
204
 
@@ -294,6 +308,21 @@ async def reward(
294
308
  # Commit all changes
295
309
  await session.commit()
296
310
 
311
+ # Send Slack notification for reward
312
+ try:
313
+ reward_type_name = reward_type.value if reward_type else "REWARD"
314
+ send_slack_message(
315
+ f"🎁 **Credit Reward**\n"
316
+ f"• User ID: `{user_id}`\n"
317
+ f"• Amount: `{amount}` reward credits\n"
318
+ f"• Transaction ID: `{upstream_tx_id}`\n"
319
+ f"• Reward Type: `{reward_type_name}`\n"
320
+ f"• New Balance: `{user_account.credits + user_account.free_credits + user_account.reward_credits}` credits\n"
321
+ f"• Note: {note or 'N/A'}"
322
+ )
323
+ except Exception as e:
324
+ logger.error(f"Failed to send Slack notification for reward: {str(e)}")
325
+
297
326
  return user_account
298
327
 
299
328
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.11.dev1
3
+ Version: 0.6.11.dev2
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=-8gpz_FbeZDvU7qUstAPL_FmqUFxE2Et5MG4mpTpECM,384
1
+ intentkit/__init__.py,sha256=bHsUzcFd-XdSi9M2iFW-p1x3-hntZ5xAoxpEA4kIadU,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
@@ -11,12 +11,12 @@ intentkit/clients/__init__.py,sha256=sQ_6_bRC2MPWLPH-skQ3qsEe8ce-dUGL7i8VJOautHg
11
11
  intentkit/clients/cdp.py,sha256=_CkvnBkzdq7-sFMGct4lz85FpaOoHxOGstWubhClzrA,5921
12
12
  intentkit/clients/twitter.py,sha256=Lfa7srHOFnY96SXcElW0jfg7XKS_WliWnXjPZEe6SQc,18976
13
13
  intentkit/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- intentkit/config/config.py,sha256=npQqWffhc2RZ3ECEOQXHp1DP-15aQqQ-xooIBkxDiM0,7576
14
+ intentkit/config/config.py,sha256=Q3xsxRvn0RxcPpAOHbHcPumTRlJQMcE_pfnPfAl6aXw,8553
15
15
  intentkit/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  intentkit/core/agent.py,sha256=GIKDn1dTenIHWMRxe-ud7hd1cQaHzbTDdypy5IAgPfU,16658
17
17
  intentkit/core/api.py,sha256=3GIMJpwduLUSbVPNW6mQVxZncYHH3OlLwdiqFtYtEAE,1208
18
18
  intentkit/core/client.py,sha256=rIwtJVVm-7piXtFNDbeykt9vWdNTecgjW0aA3N-lHnM,1495
19
- intentkit/core/credit.py,sha256=vLT47NlLrGyvSU1OP8dkVXV5_VHqRNSeAK5t1FqSSYs,61742
19
+ intentkit/core/credit.py,sha256=Y5cjShFFqGBhz7Uc_ziqejyW-2FP58TYxsSNc4N_6hI,63039
20
20
  intentkit/core/engine.py,sha256=ibaPSez5IuNys5AT3xifBsKUwNElFiJMmsXCjuziRdE,43555
21
21
  intentkit/core/node.py,sha256=7h9zgDSd928bzUi3m3EZnKkhbwqlbRAQUr_uz7gKB5Y,8880
22
22
  intentkit/core/prompt.py,sha256=RfLhlUktkB2kCr3wfldqq6ZP2l8heZIMc8jVp31KIyQ,3631
@@ -401,7 +401,7 @@ intentkit/utils/random.py,sha256=DymMxu9g0kuQLgJUqalvgksnIeLdS-v0aRk5nQU0mLI,452
401
401
  intentkit/utils/s3.py,sha256=9trQNkKQ5VgxWsewVsV8Y0q_pXzGRvsCYP8xauyUYkg,8549
402
402
  intentkit/utils/slack_alert.py,sha256=s7UpRgyzLW7Pbmt8cKzTJgMA9bm4EP-1rQ5KXayHu6E,2264
403
403
  intentkit/utils/tx.py,sha256=2yLLGuhvfBEY5n_GJ8wmIWLCzn0FsYKv5kRNzw_sLUI,1454
404
- intentkit-0.6.11.dev1.dist-info/METADATA,sha256=JZJaaNXNawGAeFXrbGyxwHfO7CQMPlsJ6cpNd2xefx4,6373
405
- intentkit-0.6.11.dev1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
406
- intentkit-0.6.11.dev1.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
407
- intentkit-0.6.11.dev1.dist-info/RECORD,,
404
+ intentkit-0.6.11.dev2.dist-info/METADATA,sha256=0u5l0TiIRv2CAvfKEQAO0L6iDKysSuuH7TkrivT2-Gg,6373
405
+ intentkit-0.6.11.dev2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
406
+ intentkit-0.6.11.dev2.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
407
+ intentkit-0.6.11.dev2.dist-info/RECORD,,