intentkit 1.0.0__tar.gz → 1.1.0__tar.gz
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.
- {intentkit-1.0.0 → intentkit-1.1.0}/PKG-INFO +1 -1
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/__init__.py +1 -1
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/api.py +32 -2
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/engine.py +2 -1
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/__init__.py +6 -0
- intentkit-1.1.0/intentkit/core/lead/skills/update_user_profile.py +134 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/sub_agents/__init__.py +11 -0
- intentkit-1.1.0/intentkit/core/lead/sub_agents/user_manager.py +82 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/prompt.py +7 -0
- intentkit-1.1.0/intentkit/core/team/wechat_session_notice.py +88 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/user.py +24 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/pyproject.toml +1 -1
- {intentkit-1.0.0 → intentkit-1.1.0}/.gitignore +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/LICENSE +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/app/team/intentkit/docker-compose.yml +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/.dockerignore +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/LICENSE +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/MANIFEST.in +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/api.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/engine.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/graph.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/skill.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/twitter.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/abstracts/wallet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/mcp/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/mcp/client.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/mcp/registry.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/mcp/tool.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/mcp/wrapper.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/moralis.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/s3.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/s3_setup.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/supabase.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/twitter.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/clients/web3_ens.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/config/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/config/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/config/config.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/config/db.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/config/db_mig.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/config/redis.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/account_checking.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/analytics.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/management.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/notifications.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/public_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/queries.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent/wallet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent_activity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/agent_post.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/asset.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/autonomous.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/avatar.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/budget.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/chat.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/cleanup.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/client.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/adjustment.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/expense.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/list_events.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/plan_credit.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/recharge.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/refill.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/reward.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/credit/withdraw.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/draft.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/draft_chat.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/engine.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/executor.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/cache.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/service.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/add_autonomous_task.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/call_agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/create_team_agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/delete_autonomous_task.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/edit_autonomous_task.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/get_post.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/get_self_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/get_team_agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/get_team_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/list_autonomous_tasks.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/list_skills.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/list_team_agents.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/llm.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/recent_team_activities.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/recent_team_posts.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/update_self.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/update_self_memory.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/skills/update_team_agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/sub_agents/agent_manager.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/sub_agents/content_manager.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/sub_agents/self_updater.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/lead/sub_agents/task_manager.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/engine.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/service.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/add_autonomous_task.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/delete_autonomous_task.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/draft.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/edit_autonomous_task.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/list_autonomous_tasks.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/llm.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/manager/skills/public_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/memory.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/middleware.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/public_agents.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/public_api.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/scheduler.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/share_link.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/statistics.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/call_agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/create_activity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/create_post.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/current_time.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/get_post.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/read_webpage.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/recent_activities.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/recent_posts.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/search_web.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/system_skills/update_memory.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/task_registry.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/team/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/team/channel.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/team/feed.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/team/membership.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/team/push.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/team/subscription.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/template.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/core/user.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/agent.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/autonomous.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/core.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/db.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/public.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/public_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/response.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent/user_input.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent_activity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/agent_post.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/app_setting.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/chat.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/credit/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/credit/account.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/credit/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/credit/event.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/credit/price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/credit/transaction.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/draft.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/llm.csv +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/llm.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/llm_picker.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/share_link.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/skill.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/team.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/team_channel.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/team_feed.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/template.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/user_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/models/x402_order.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/aave_v3.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/borrow.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/get_reserve_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/get_user_account_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/repay.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/set_collateral.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/supply.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aave_v3/withdraw.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/acp.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/cancel_checkout.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/complete_checkout.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/create_checkout.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/get_checkout.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/list_products.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/acp/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/add_liquidity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/aerodrome.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/get_positions.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/quote.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/remove_liquidity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/swap.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aerodrome/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aixbt/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aixbt/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aixbt/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aixbt/projects.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/aixbt/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/allora/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/allora/allora.jpeg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/allora/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/allora/price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/allora/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/basename/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/basename/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/basename/basename.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/basename/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/basename/register.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/basename/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/carv.webp +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/fetch_news.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/onchain_query.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/carv/token_info_and_price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/casino.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/deck_draw.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/deck_shuffle.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/dice_roll.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/casino/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/cdp.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/get_balance.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/get_wallet_details.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/native_transfer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cdp/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/chainlist/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/chainlist/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/chainlist/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/chainlist/chain_lookup.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/chainlist/chainlist.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/chainlist/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/api.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptocompare/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptopanic/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptopanic/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/cryptopanic/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dapplooker/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dapplooker/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dapplooker/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dapplooker/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/api.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/config/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/config/chains.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/defillama.jpeg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/fees/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tests/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/fetch_protocol.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/volumes/fetch_dex_overview.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/volumes/fetch_dex_summary.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/yields/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/get_pair_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/get_token_pairs.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/get_tokens_info.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/search_token.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dexscreener/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/dune.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/execute_query.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/get_query_results.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/run_sql.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/dune/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/elfa.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/mention.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/stats.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/tokens.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/elfa/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/abi/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/abi/approval.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/abi/erc20.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/abi/route.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/best_yield.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/enso.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/networks.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/prices.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/route.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/tokens.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/enso/wallet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/erc20.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/get_balance.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/get_token_address.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/transfer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc20/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/erc721.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/get_balance.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/mint.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/erc721/transfer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/clear.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/crawl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/query.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/scrape.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/firecrawl/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/github/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/github/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/github/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/github/github.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/github/github_search.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/github/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/heurist.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_animagine_xl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_arthemy_comics.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_arthemy_real.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_braindance.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_flux_1_dev.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/image_generation_sdxl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/heurist/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/get.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/http.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/post.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/put.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/http/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/gemini.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/gpt.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/grok.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/image.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/minimax.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/openrouter.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/image/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/jupiter.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/jupiter/swap.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/lifi.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/token_execute.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/token_quote.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/lifi/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/mcp_coingecko/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/mcp_coingecko/coingecko.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/mcp_coingecko/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/api.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/fetch_nft_portfolio.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/fetch_solana_portfolio.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/fetch_wallet_portfolio.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/moralis.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/moralis/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/borrow.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/deposit.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/get_position.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/get_vault_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/morpho.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/repay.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/supply_collateral.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/withdraw.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/morpho/withdraw_collateral.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/onchain.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/buy_nft.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/cancel_listing.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/create_listing.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_collection.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_collection_stats.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_events.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_listings.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_nft.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_nfts_by_account.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/get_offers.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/onchain_base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/opensea.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/opensea/update_listing.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/add_liquidity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/get_positions.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/pancakeswap.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/quote.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/remove_liquidity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/swap.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pancakeswap/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/cancel_order.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/get_market.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/get_orderbook.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/get_orders.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/get_positions.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/get_price_history.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/get_trades.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/place_order.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/polymarket.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/polymarket/search_markets.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/moralis.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/token_balances.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_history.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pyth/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pyth/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pyth/fetch_price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pyth/fetch_price_feed.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pyth/pyth.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/pyth/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/get_channel.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/get_message.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/schedule_message.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/send_message.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/slack/slack.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/delete_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/fetch_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/insert_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/invoke_function.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/supabase.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/update_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/supabase/upsert_data.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/create_flow.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/delete_flow.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/superfluid.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/superfluid/update_flow.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/tavily.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/tavily_extract.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/tavily/tavily_search.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/erc20_transfers.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/moralis.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/token_analytics.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/token_price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/token/token_search.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/follow_user.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/get_mentions.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/get_timeline.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/get_user_by_username.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/get_user_tweets.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/like_tweet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/post_tweet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/reply_tweet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/retweet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/search_tweets.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/twitter/twitter.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/ui/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/ui/ask_user.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/ui/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/ui/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/ui/show_card.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/ui/ui.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/add_liquidity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/get_positions.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/quote.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/remove_liquidity.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/swap.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/uniswap.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/uniswap/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/unrealspeech/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/unrealspeech/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/unrealspeech/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_audio/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_audio/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_audio/input.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_audio/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_audio/venice_audio.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/api.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/config.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_enhance/image_enhance.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_upscale/image_upscale.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/gemini.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/gpt.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/grok.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/minimax.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/video/video.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/langchain.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/constants.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/unwrap_eth.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/weth.svg +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/weth/wrap_eth.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/check_price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/get_orders.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/http_request.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/httpx_compat.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/pay.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/x402/x402.webp +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/README.md +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/base.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/price.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/schema.json +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/swap.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/transfer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/skills/xmtp/xmtp.png +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/alert.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/alert_handler.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/chain.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/ens.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/error.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/logging.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/opengraph.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/pdf.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/random.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/s3_setup.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/schema.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/slack_alert.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/telegram_alert.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/templates/post_pdf.html +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/time.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/tx.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/utils/upload.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/__init__.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/cdp.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/evm_wallet.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/native.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy_client.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy_nonce.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy_safe.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy_signer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy_types.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/privy_utils.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/signer.py +0 -0
- {intentkit-1.0.0 → intentkit-1.1.0}/intentkit/wallets/web3.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.1.0
|
|
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
|
|
@@ -22,6 +22,10 @@ from intentkit.core.engine import execute_agent, stream_agent
|
|
|
22
22
|
from intentkit.core.lead.engine import stream_lead
|
|
23
23
|
from intentkit.core.lead.service import verify_team_membership
|
|
24
24
|
from intentkit.core.team.channel import set_push_channel, set_push_channel_if_empty
|
|
25
|
+
from intentkit.core.team.wechat_session_notice import (
|
|
26
|
+
WECHAT_SESSION_EXPIRING,
|
|
27
|
+
build_expiring_prompt,
|
|
28
|
+
)
|
|
25
29
|
from intentkit.models.chat import (
|
|
26
30
|
AuthorType,
|
|
27
31
|
ChatMessage,
|
|
@@ -31,6 +35,11 @@ from intentkit.models.chat import (
|
|
|
31
35
|
from intentkit.models.user import User, UserUpdate
|
|
32
36
|
from intentkit.utils.error import IntentKitAPIError
|
|
33
37
|
|
|
38
|
+
# Set of recognized system_trigger values. Each value supplies its own
|
|
39
|
+
# synthesized prompt and may override the author_type to TRIGGER so the
|
|
40
|
+
# event is recorded in chat history without looking like a real user message.
|
|
41
|
+
_SYSTEM_TRIGGERS: frozenset[str] = frozenset({WECHAT_SESSION_EXPIRING})
|
|
42
|
+
|
|
34
43
|
# ⚠️ INTERNAL API ONLY - DO NOT EXPOSE TO PUBLIC INTERNET ⚠️
|
|
35
44
|
core_router = APIRouter(
|
|
36
45
|
prefix="/core",
|
|
@@ -91,6 +100,11 @@ class LeadExecuteRequest(BaseModel):
|
|
|
91
100
|
chat_id: str
|
|
92
101
|
message: str
|
|
93
102
|
attachments: list[ChatMessageAttachment] | None = None
|
|
103
|
+
# When set, the integration is asking the lead agent to handle a
|
|
104
|
+
# system-driven event (e.g. wechat reply window about to close) rather
|
|
105
|
+
# than a real user message. The `message` field is replaced with a
|
|
106
|
+
# synthesized prompt and the saved record is tagged AuthorType.TRIGGER.
|
|
107
|
+
system_trigger: str | None = None
|
|
94
108
|
|
|
95
109
|
|
|
96
110
|
# Per-channel config: (user_lookup, bind_field, author_type, chat_id_prefix)
|
|
@@ -131,15 +145,31 @@ async def _resolve_lead(
|
|
|
131
145
|
else:
|
|
132
146
|
user_id = request.channel_user_id
|
|
133
147
|
|
|
148
|
+
# System-driven trigger: replace the (likely empty) caller message with
|
|
149
|
+
# a synthesized prompt and tag the saved record as TRIGGER so chat-UI
|
|
150
|
+
# consumers can hide it the same way they hide autonomous task triggers.
|
|
151
|
+
message_text = request.message
|
|
152
|
+
saved_author_type = author_type
|
|
153
|
+
if request.system_trigger:
|
|
154
|
+
if request.system_trigger not in _SYSTEM_TRIGGERS:
|
|
155
|
+
raise IntentKitAPIError(
|
|
156
|
+
400,
|
|
157
|
+
"Bad Request",
|
|
158
|
+
f"Unknown system_trigger: {request.system_trigger}",
|
|
159
|
+
)
|
|
160
|
+
if request.system_trigger == WECHAT_SESSION_EXPIRING:
|
|
161
|
+
message_text = await build_expiring_prompt(request.team_id)
|
|
162
|
+
saved_author_type = AuthorType.TRIGGER
|
|
163
|
+
|
|
134
164
|
chat_msg = ChatMessageCreate(
|
|
135
165
|
id=str(XID()),
|
|
136
166
|
agent_id=f"team-{request.team_id}",
|
|
137
167
|
chat_id=f"{chat_prefix}:{request.team_id}:{request.chat_id}",
|
|
138
168
|
user_id=user_id,
|
|
139
169
|
author_id=user_id,
|
|
140
|
-
author_type=
|
|
170
|
+
author_type=saved_author_type,
|
|
141
171
|
thread_type=author_type,
|
|
142
|
-
message=
|
|
172
|
+
message=message_text,
|
|
143
173
|
attachments=request.attachments,
|
|
144
174
|
)
|
|
145
175
|
return user_id, chat_msg
|
|
@@ -73,7 +73,8 @@ async def _build_lead_agent(team_id: str) -> Agent:
|
|
|
73
73
|
"- `agent-manager`: Agent CRUD.\n"
|
|
74
74
|
"- `task-manager`: Autonomous task scheduling and management.\n"
|
|
75
75
|
"- `self-updater`: Update your own name, avatar, personality, or memory.\n"
|
|
76
|
-
"- `content-manager`: Read team activities and posts.\n
|
|
76
|
+
"- `content-manager`: Read team activities and posts.\n"
|
|
77
|
+
"- `user-manager`: Update the current user's profile (name, timezone, language).\n\n"
|
|
77
78
|
"You can also use `lead_call_agent` to delegate to any team agent "
|
|
78
79
|
"discovered via `lead_list_team_agents`.\n\n"
|
|
79
80
|
"### Workflow\n\n"
|
|
@@ -72,6 +72,10 @@ from intentkit.core.lead.skills.update_team_agent import (
|
|
|
72
72
|
UpdateTeamAgent,
|
|
73
73
|
update_team_agent_skill,
|
|
74
74
|
)
|
|
75
|
+
from intentkit.core.lead.skills.update_user_profile import (
|
|
76
|
+
LeadUpdateUserProfile,
|
|
77
|
+
lead_update_user_profile_skill,
|
|
78
|
+
)
|
|
75
79
|
|
|
76
80
|
__all__ = [
|
|
77
81
|
"CreateTeamAgent",
|
|
@@ -108,6 +112,8 @@ __all__ = [
|
|
|
108
112
|
"lead_update_self_memory_skill",
|
|
109
113
|
"ListTeamAgents",
|
|
110
114
|
"list_team_agents_skill",
|
|
115
|
+
"LeadUpdateUserProfile",
|
|
116
|
+
"lead_update_user_profile_skill",
|
|
111
117
|
"UpdateTeamAgent",
|
|
112
118
|
"update_team_agent_skill",
|
|
113
119
|
]
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"""Skill to update the current user's profile."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
from typing import Any, override
|
|
7
|
+
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
|
|
8
|
+
|
|
9
|
+
from langchain_core.tools import ArgsSchema
|
|
10
|
+
from langchain_core.tools.base import ToolException
|
|
11
|
+
from pydantic import BaseModel, Field
|
|
12
|
+
|
|
13
|
+
from intentkit.config.redis import get_redis
|
|
14
|
+
from intentkit.core.lead.skills.base import LeadSkill
|
|
15
|
+
from intentkit.models.user import UserUpdate
|
|
16
|
+
|
|
17
|
+
logger = logging.getLogger(__name__)
|
|
18
|
+
|
|
19
|
+
# Must stay in sync with USER_CACHE_PREFIX in app/team/user.py — we duplicate
|
|
20
|
+
# the constant because core/ cannot import from app/.
|
|
21
|
+
_USER_CACHE_PREFIX = "intentkit:user:"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class UpdateUserProfileInput(BaseModel):
|
|
25
|
+
"""Input model for lead_update_user_profile skill."""
|
|
26
|
+
|
|
27
|
+
name: str | None = Field(
|
|
28
|
+
default=None,
|
|
29
|
+
description="New display name (max 50 chars). Omit to keep unchanged.",
|
|
30
|
+
)
|
|
31
|
+
timezone: str | None = Field(
|
|
32
|
+
default=None,
|
|
33
|
+
description=(
|
|
34
|
+
"IANA timezone identifier (e.g. 'Asia/Shanghai', 'America/New_York'). "
|
|
35
|
+
"Convert offsets like 'GMT+8' to the corresponding IANA name first. "
|
|
36
|
+
"Omit to keep unchanged. Pass an empty string to clear."
|
|
37
|
+
),
|
|
38
|
+
)
|
|
39
|
+
language: str | None = Field(
|
|
40
|
+
default=None,
|
|
41
|
+
description=(
|
|
42
|
+
"Preferred language as a BCP 47 tag (e.g. 'zh-CN', 'en', 'ja'). "
|
|
43
|
+
"Omit to keep unchanged. Pass an empty string to clear."
|
|
44
|
+
),
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class UpdateUserProfileOutput(BaseModel):
|
|
49
|
+
"""Output model for lead_update_user_profile skill."""
|
|
50
|
+
|
|
51
|
+
message: str = Field(description="Success message")
|
|
52
|
+
updated_fields: list[str] = Field(description="List of fields that were updated")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class LeadUpdateUserProfile(LeadSkill):
|
|
56
|
+
"""Skill to update the current user's profile (name, timezone, language).
|
|
57
|
+
|
|
58
|
+
Writes go through `UserUpdate.patch`, so a row is created if the user does
|
|
59
|
+
not yet exist. The user's API-side Redis cache is invalidated so the next
|
|
60
|
+
GET reflects the change.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
name: str = "lead_update_user_profile"
|
|
64
|
+
description: str = (
|
|
65
|
+
"Update the current user's profile. Supported fields: name, timezone, "
|
|
66
|
+
"language. Only provide the fields you want to change. The user is "
|
|
67
|
+
"always taken from the current conversation context — never accept a "
|
|
68
|
+
"user id as input."
|
|
69
|
+
)
|
|
70
|
+
args_schema: ArgsSchema | None = UpdateUserProfileInput
|
|
71
|
+
|
|
72
|
+
@override
|
|
73
|
+
async def _arun(
|
|
74
|
+
self,
|
|
75
|
+
name: str | None = None,
|
|
76
|
+
timezone: str | None = None,
|
|
77
|
+
language: str | None = None,
|
|
78
|
+
**kwargs: Any,
|
|
79
|
+
) -> UpdateUserProfileOutput:
|
|
80
|
+
context = self.get_context()
|
|
81
|
+
user_id = context.user_id
|
|
82
|
+
if not user_id:
|
|
83
|
+
raise ToolException("No user_id in context")
|
|
84
|
+
|
|
85
|
+
updates: dict[str, Any] = {}
|
|
86
|
+
updated_fields: list[str] = []
|
|
87
|
+
|
|
88
|
+
if name is not None:
|
|
89
|
+
trimmed = name.strip()
|
|
90
|
+
if trimmed:
|
|
91
|
+
updates["name"] = trimmed[:50]
|
|
92
|
+
updated_fields.append("name")
|
|
93
|
+
|
|
94
|
+
if timezone is not None:
|
|
95
|
+
tz = timezone.strip()
|
|
96
|
+
if tz:
|
|
97
|
+
try:
|
|
98
|
+
ZoneInfo(tz)
|
|
99
|
+
except (ZoneInfoNotFoundError, ValueError) as exc:
|
|
100
|
+
raise ToolException(
|
|
101
|
+
f"Invalid IANA timezone: {timezone!r}. "
|
|
102
|
+
"Use a name like 'Asia/Shanghai' or 'America/New_York'."
|
|
103
|
+
) from exc
|
|
104
|
+
updates["timezone"] = tz
|
|
105
|
+
else:
|
|
106
|
+
updates["timezone"] = None
|
|
107
|
+
updated_fields.append("timezone")
|
|
108
|
+
|
|
109
|
+
if language is not None:
|
|
110
|
+
lang = language.strip()
|
|
111
|
+
updates["language"] = lang[:32] if lang else None
|
|
112
|
+
updated_fields.append("language")
|
|
113
|
+
|
|
114
|
+
if not updates:
|
|
115
|
+
return UpdateUserProfileOutput(
|
|
116
|
+
message="No fields provided to update.",
|
|
117
|
+
updated_fields=[],
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
await UserUpdate.model_validate(updates).patch(user_id)
|
|
121
|
+
|
|
122
|
+
try:
|
|
123
|
+
redis = get_redis()
|
|
124
|
+
await redis.delete(f"{_USER_CACHE_PREFIX}{user_id}")
|
|
125
|
+
except Exception as exc:
|
|
126
|
+
logger.warning("Failed to invalidate user cache for %s: %s", user_id, exc)
|
|
127
|
+
|
|
128
|
+
return UpdateUserProfileOutput(
|
|
129
|
+
message=f"User profile updated: {', '.join(updated_fields)}.",
|
|
130
|
+
updated_fields=updated_fields,
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
lead_update_user_profile_skill = LeadUpdateUserProfile()
|
|
@@ -23,6 +23,7 @@ SLUG_AGENT_MANAGER = "agent-manager"
|
|
|
23
23
|
SLUG_TASK_MANAGER = "task-manager"
|
|
24
24
|
SLUG_SELF_UPDATER = "self-updater"
|
|
25
25
|
SLUG_CONTENT_MANAGER = "content-manager"
|
|
26
|
+
SLUG_USER_MANAGER = "user-manager"
|
|
26
27
|
|
|
27
28
|
|
|
28
29
|
@dataclass
|
|
@@ -112,6 +113,10 @@ from intentkit.core.lead.sub_agents.task_manager import ( # noqa: E402
|
|
|
112
113
|
build_task_manager,
|
|
113
114
|
get_task_manager_skills,
|
|
114
115
|
)
|
|
116
|
+
from intentkit.core.lead.sub_agents.user_manager import ( # noqa: E402
|
|
117
|
+
build_user_manager,
|
|
118
|
+
get_user_manager_skills,
|
|
119
|
+
)
|
|
115
120
|
|
|
116
121
|
SUB_AGENT_REGISTRY: dict[str, SubAgentDefinition] = {
|
|
117
122
|
SLUG_AGENT_MANAGER: SubAgentDefinition(
|
|
@@ -147,4 +152,10 @@ SUB_AGENT_REGISTRY: dict[str, SubAgentDefinition] = {
|
|
|
147
152
|
build_fn=build_content_manager,
|
|
148
153
|
skills_fn=get_content_manager_skills,
|
|
149
154
|
),
|
|
155
|
+
SLUG_USER_MANAGER: SubAgentDefinition(
|
|
156
|
+
slug=SLUG_USER_MANAGER,
|
|
157
|
+
description=("Manages the current user's profile: name, timezone, language."),
|
|
158
|
+
build_fn=build_user_manager,
|
|
159
|
+
skills_fn=get_user_manager_skills,
|
|
160
|
+
),
|
|
150
161
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""User Manager sub-agent definition."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from collections.abc import Sequence
|
|
6
|
+
from datetime import datetime, timezone
|
|
7
|
+
|
|
8
|
+
from langchain_core.tools import BaseTool
|
|
9
|
+
|
|
10
|
+
from intentkit.core.lead.skills.update_user_profile import (
|
|
11
|
+
lead_update_user_profile_skill,
|
|
12
|
+
)
|
|
13
|
+
from intentkit.models.agent import Agent
|
|
14
|
+
from intentkit.models.llm_picker import pick_default_model
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_user_manager_skills() -> Sequence[BaseTool]:
|
|
18
|
+
"""Return skills for the user-manager sub-agent."""
|
|
19
|
+
return [
|
|
20
|
+
lead_update_user_profile_skill,
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def build_user_manager(team_id: str) -> Agent:
|
|
25
|
+
"""Build an in-memory User Manager sub-agent."""
|
|
26
|
+
now = datetime.now(timezone.utc)
|
|
27
|
+
|
|
28
|
+
prompt = (
|
|
29
|
+
"### Workflow\n\n"
|
|
30
|
+
"1. Confirm with the user which fields they want to change "
|
|
31
|
+
"(name, timezone, language).\n"
|
|
32
|
+
"2. Call `lead_update_user_profile` with only the fields being changed.\n"
|
|
33
|
+
"3. Report the result back to the user.\n\n"
|
|
34
|
+
"### Field Guidelines\n\n"
|
|
35
|
+
"- `name`: max 50 characters, the user's preferred display name.\n"
|
|
36
|
+
"- `timezone`: must be an IANA timezone (e.g. `Asia/Shanghai`, "
|
|
37
|
+
"`America/New_York`, `Europe/Berlin`). If the user gives an offset "
|
|
38
|
+
"like `GMT+8` or `UTC-5`, translate it to the matching IANA name "
|
|
39
|
+
"before calling the tool.\n"
|
|
40
|
+
"- `language`: BCP 47 tag (e.g. `zh-CN`, `en`, `ja`, `ko`). Use the "
|
|
41
|
+
"tag, not the language's English name.\n\n"
|
|
42
|
+
"### Boundaries\n\n"
|
|
43
|
+
"- Only ever update the current user. Never accept or use a user id "
|
|
44
|
+
"supplied by the user.\n"
|
|
45
|
+
"- Do not expose or modify any other user's profile.\n"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
agent_data = {
|
|
49
|
+
"id": f"team-{team_id}-user-manager",
|
|
50
|
+
"owner": "system",
|
|
51
|
+
"team_id": team_id,
|
|
52
|
+
"name": "User Manager",
|
|
53
|
+
"purpose": "Manage the current user's profile (name, timezone, language).",
|
|
54
|
+
"principles": (
|
|
55
|
+
"1. Speak to users in their language.\n"
|
|
56
|
+
"2. Only operate on the current user — never on others.\n"
|
|
57
|
+
"3. Confirm what will be changed before updating."
|
|
58
|
+
),
|
|
59
|
+
"model": pick_default_model(),
|
|
60
|
+
"prompt": prompt,
|
|
61
|
+
"temperature": 0.2,
|
|
62
|
+
"search_internet": False,
|
|
63
|
+
"super_mode": False,
|
|
64
|
+
"enable_todo": False,
|
|
65
|
+
"enable_activity": False,
|
|
66
|
+
"enable_post": False,
|
|
67
|
+
"enable_long_term_memory": False,
|
|
68
|
+
"sub_agents": None,
|
|
69
|
+
"skills": {
|
|
70
|
+
"ui": {
|
|
71
|
+
"enabled": True,
|
|
72
|
+
"states": {
|
|
73
|
+
"ui_show_card": "private",
|
|
74
|
+
"ui_ask_user": "private",
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
"created_at": now,
|
|
79
|
+
"updated_at": now,
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return Agent.model_validate(agent_data)
|
|
@@ -224,6 +224,13 @@ async def _build_user_info_section(context: AgentContext) -> str:
|
|
|
224
224
|
prompt_array.append(f"User X Username: {user.x_username}\n")
|
|
225
225
|
if user.telegram_username:
|
|
226
226
|
prompt_array.append(f"User Telegram Username: {user.telegram_username}\n")
|
|
227
|
+
if user.timezone:
|
|
228
|
+
prompt_array.append(f"User Timezone: {user.timezone}\n")
|
|
229
|
+
if user.language:
|
|
230
|
+
prompt_array.append(
|
|
231
|
+
f"User Preferred Language: {user.language} "
|
|
232
|
+
"(reply in this language unless the user clearly switches)\n"
|
|
233
|
+
)
|
|
227
234
|
|
|
228
235
|
if prompt_array:
|
|
229
236
|
prompt_array.append("\n")
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""Build the synthesized prompt sent to the lead agent when the wechat
|
|
2
|
+
24-hour reply window is about to close.
|
|
3
|
+
|
|
4
|
+
The Go integration's per-team timer fires this through the
|
|
5
|
+
``/core/lead/stream`` endpoint with ``system_trigger='wechat_session_expiring'``.
|
|
6
|
+
The lead agent receives the prompt as a TRIGGER-author message, generates a
|
|
7
|
+
heads-up message for the user, and the response is dispatched back over
|
|
8
|
+
wechat by the existing sender path while the window is still open.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import asyncio
|
|
14
|
+
import logging
|
|
15
|
+
|
|
16
|
+
from intentkit.core.autonomous import list_autonomous_tasks
|
|
17
|
+
from intentkit.core.lead.service import get_team_agents
|
|
18
|
+
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# Trigger value shared with integrations/wechat/bot/session_timer.go
|
|
23
|
+
# (SessionTriggerExpiring). Keep aligned.
|
|
24
|
+
WECHAT_SESSION_EXPIRING = "wechat_session_expiring"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
async def _build_team_status_block(team_id: str) -> str:
|
|
28
|
+
"""Return a compact, human-readable summary of the team's agents and
|
|
29
|
+
their currently enabled autonomous tasks. Best-effort: failures are
|
|
30
|
+
swallowed and reflected as a placeholder line so the notice still goes
|
|
31
|
+
out even if status collection breaks."""
|
|
32
|
+
try:
|
|
33
|
+
agents = await get_team_agents(team_id)
|
|
34
|
+
except Exception:
|
|
35
|
+
logger.warning(
|
|
36
|
+
"wechat session notice: failed to list team agents", exc_info=True
|
|
37
|
+
)
|
|
38
|
+
return "(暂无法获取 agent 状态)"
|
|
39
|
+
|
|
40
|
+
if not agents:
|
|
41
|
+
return "团队当前没有部署任何 agent。"
|
|
42
|
+
|
|
43
|
+
# Fan out per-agent task lookups concurrently — sequential awaits would
|
|
44
|
+
# add one DB round-trip per agent on the user-facing latency path.
|
|
45
|
+
task_results = await asyncio.gather(
|
|
46
|
+
*(list_autonomous_tasks(a.id) for a in agents),
|
|
47
|
+
return_exceptions=True,
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
lines: list[str] = []
|
|
51
|
+
for agent, tasks_or_err in zip(agents, task_results):
|
|
52
|
+
if isinstance(tasks_or_err, BaseException):
|
|
53
|
+
logger.warning(
|
|
54
|
+
"wechat session notice: failed to list autonomous tasks for %s",
|
|
55
|
+
agent.id,
|
|
56
|
+
exc_info=tasks_or_err,
|
|
57
|
+
)
|
|
58
|
+
tasks = []
|
|
59
|
+
else:
|
|
60
|
+
tasks = tasks_or_err
|
|
61
|
+
|
|
62
|
+
enabled_tasks = [t for t in tasks if t.enabled]
|
|
63
|
+
if enabled_tasks:
|
|
64
|
+
task_summaries = [f"{t.name}(cron={t.cron})" for t in enabled_tasks]
|
|
65
|
+
lines.append(
|
|
66
|
+
f"- {agent.name}: 进行中的自动任务 {len(enabled_tasks)} 个 — "
|
|
67
|
+
+ ";".join(task_summaries)
|
|
68
|
+
)
|
|
69
|
+
else:
|
|
70
|
+
lines.append(f"- {agent.name}: 暂无启用中的自动任务。")
|
|
71
|
+
|
|
72
|
+
return "\n".join(lines)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
async def build_expiring_prompt(team_id: str) -> str:
|
|
76
|
+
"""Build the synthesized user-facing prompt for the lead agent."""
|
|
77
|
+
status_block = await _build_team_status_block(team_id)
|
|
78
|
+
return (
|
|
79
|
+
"系统事件:用户在微信上即将达到 24 小时未与你互动的时间窗口,"
|
|
80
|
+
"再过 30 分钟左右我将无法主动给 ta 发消息。"
|
|
81
|
+
"请直接以你自己的口吻给用户写一条微信消息,做到:\n"
|
|
82
|
+
"1) 简明告知微信对主动消息有 1 天的时间限制,即将到期;\n"
|
|
83
|
+
"2) 提示如果想继续接收推送,回复任意消息或交付一个新任务即可;\n"
|
|
84
|
+
"3) 顺带把当前每个 agent 的状态和未完成任务概要带上。\n\n"
|
|
85
|
+
"回复直接就是发给用户的文本,不要再加引导语、问候或 markdown。\n\n"
|
|
86
|
+
"当前团队状态如下:\n"
|
|
87
|
+
f"{status_block}"
|
|
88
|
+
)
|
|
@@ -109,6 +109,14 @@ class UserTable(Base):
|
|
|
109
109
|
String,
|
|
110
110
|
nullable=True,
|
|
111
111
|
)
|
|
112
|
+
timezone: Mapped[str | None] = mapped_column(
|
|
113
|
+
String,
|
|
114
|
+
nullable=True,
|
|
115
|
+
)
|
|
116
|
+
language: Mapped[str | None] = mapped_column(
|
|
117
|
+
String,
|
|
118
|
+
nullable=True,
|
|
119
|
+
)
|
|
112
120
|
extra: Mapped[dict[str, object] | None] = mapped_column(
|
|
113
121
|
JSONB(),
|
|
114
122
|
nullable=True,
|
|
@@ -180,6 +188,22 @@ class UserUpdate(BaseModel):
|
|
|
180
188
|
wechat_id: Annotated[
|
|
181
189
|
str | None, Field(None, description="User's WeChat ID (e.g. xxxxx@im.wechat)")
|
|
182
190
|
]
|
|
191
|
+
timezone: Annotated[
|
|
192
|
+
str | None,
|
|
193
|
+
Field(
|
|
194
|
+
None,
|
|
195
|
+
description=(
|
|
196
|
+
"IANA timezone identifier (e.g. 'Asia/Shanghai', 'America/New_York')"
|
|
197
|
+
),
|
|
198
|
+
),
|
|
199
|
+
]
|
|
200
|
+
language: Annotated[
|
|
201
|
+
str | None,
|
|
202
|
+
Field(
|
|
203
|
+
None,
|
|
204
|
+
description="Preferred language as BCP 47 tag (e.g. 'zh-CN', 'en')",
|
|
205
|
+
),
|
|
206
|
+
]
|
|
183
207
|
extra: Annotated[
|
|
184
208
|
dict[str, object] | None, Field(None, description="Additional user information")
|
|
185
209
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|