intentkit 0.7.5.dev27__py3-none-any.whl → 0.7.5.dev28__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of intentkit might be problematic. Click here for more details.
- intentkit/__init__.py +1 -1
- intentkit/core/agent.py +212 -33
- intentkit/core/statistics.py +169 -0
- {intentkit-0.7.5.dev27.dist-info → intentkit-0.7.5.dev28.dist-info}/METADATA +1 -1
- {intentkit-0.7.5.dev27.dist-info → intentkit-0.7.5.dev28.dist-info}/RECORD +7 -6
- {intentkit-0.7.5.dev27.dist-info → intentkit-0.7.5.dev28.dist-info}/WHEEL +0 -0
- {intentkit-0.7.5.dev27.dist-info → intentkit-0.7.5.dev28.dist-info}/licenses/LICENSE +0 -0
intentkit/__init__.py
CHANGED
intentkit/core/agent.py
CHANGED
|
@@ -2,7 +2,7 @@ import logging
|
|
|
2
2
|
import time
|
|
3
3
|
from datetime import datetime, timedelta, timezone
|
|
4
4
|
from decimal import Decimal
|
|
5
|
-
from typing import Any, Dict, List, Optional, Tuple
|
|
5
|
+
from typing import Any, AsyncGenerator, Dict, List, Optional, Tuple
|
|
6
6
|
|
|
7
7
|
from sqlalchemy import func, select, text, update
|
|
8
8
|
|
|
@@ -17,7 +17,13 @@ from intentkit.models.agent import (
|
|
|
17
17
|
AgentUpdate,
|
|
18
18
|
)
|
|
19
19
|
from intentkit.models.agent_data import AgentData, AgentQuota, AgentQuotaTable
|
|
20
|
-
from intentkit.models.credit import
|
|
20
|
+
from intentkit.models.credit import (
|
|
21
|
+
CreditAccount,
|
|
22
|
+
CreditEventTable,
|
|
23
|
+
EventType,
|
|
24
|
+
OwnerType,
|
|
25
|
+
UpstreamType,
|
|
26
|
+
)
|
|
21
27
|
from intentkit.models.db import get_session
|
|
22
28
|
from intentkit.models.skill import (
|
|
23
29
|
AgentSkillData,
|
|
@@ -660,7 +666,31 @@ class AgentStore(SkillStoreABC):
|
|
|
660
666
|
agent_store = AgentStore()
|
|
661
667
|
|
|
662
668
|
|
|
663
|
-
async def
|
|
669
|
+
async def _iterate_agent_id_batches(
|
|
670
|
+
batch_size: int = 100,
|
|
671
|
+
) -> AsyncGenerator[list[str], None]:
|
|
672
|
+
"""Yield agent IDs in ascending batches to limit memory usage."""
|
|
673
|
+
|
|
674
|
+
last_id: Optional[str] = None
|
|
675
|
+
while True:
|
|
676
|
+
async with get_session() as session:
|
|
677
|
+
query = select(AgentTable.id).order_by(AgentTable.id)
|
|
678
|
+
|
|
679
|
+
if last_id:
|
|
680
|
+
query = query.where(AgentTable.id > last_id)
|
|
681
|
+
|
|
682
|
+
query = query.limit(batch_size)
|
|
683
|
+
result = await session.execute(query)
|
|
684
|
+
agent_ids = [row[0] for row in result]
|
|
685
|
+
|
|
686
|
+
if not agent_ids:
|
|
687
|
+
break
|
|
688
|
+
|
|
689
|
+
yield agent_ids
|
|
690
|
+
last_id = agent_ids[-1]
|
|
691
|
+
|
|
692
|
+
|
|
693
|
+
async def update_agent_action_cost(batch_size: int = 100) -> None:
|
|
664
694
|
"""
|
|
665
695
|
Update action costs for all agents.
|
|
666
696
|
|
|
@@ -677,42 +707,20 @@ async def update_agent_action_cost():
|
|
|
677
707
|
"""
|
|
678
708
|
logger.info("Starting update of agent average action costs")
|
|
679
709
|
start_time = time.time()
|
|
680
|
-
batch_size = 100
|
|
681
|
-
last_id = None
|
|
682
710
|
total_updated = 0
|
|
683
711
|
|
|
684
|
-
|
|
685
|
-
# Get a batch of agent IDs ordered by ID
|
|
686
|
-
async with get_session() as session:
|
|
687
|
-
query = select(AgentTable.id).order_by(AgentTable.id)
|
|
688
|
-
|
|
689
|
-
# Apply pagination if we have a last_id from previous batch
|
|
690
|
-
if last_id:
|
|
691
|
-
query = query.where(AgentTable.id > last_id)
|
|
692
|
-
|
|
693
|
-
query = query.limit(batch_size)
|
|
694
|
-
result = await session.execute(query)
|
|
695
|
-
agent_ids = [row[0] for row in result]
|
|
696
|
-
|
|
697
|
-
# If no more agents, we're done
|
|
698
|
-
if not agent_ids:
|
|
699
|
-
break
|
|
700
|
-
|
|
701
|
-
# Update last_id for next batch
|
|
702
|
-
last_id = agent_ids[-1]
|
|
703
|
-
|
|
704
|
-
# Process this batch of agents
|
|
712
|
+
async for agent_ids in _iterate_agent_id_batches(batch_size):
|
|
705
713
|
logger.info(
|
|
706
|
-
|
|
714
|
+
"Processing batch of %s agents starting with ID %s",
|
|
715
|
+
len(agent_ids),
|
|
716
|
+
agent_ids[0],
|
|
707
717
|
)
|
|
708
718
|
batch_start_time = time.time()
|
|
709
719
|
|
|
710
720
|
for agent_id in agent_ids:
|
|
711
721
|
try:
|
|
712
|
-
# Calculate action costs for this agent
|
|
713
722
|
costs = await agent_action_cost(agent_id)
|
|
714
723
|
|
|
715
|
-
# Update the agent's quota record
|
|
716
724
|
async with get_session() as session:
|
|
717
725
|
update_stmt = (
|
|
718
726
|
update(AgentQuotaTable)
|
|
@@ -730,17 +738,188 @@ async def update_agent_action_cost():
|
|
|
730
738
|
await session.commit()
|
|
731
739
|
|
|
732
740
|
total_updated += 1
|
|
733
|
-
except Exception as e:
|
|
741
|
+
except Exception as e: # pragma: no cover - log path only
|
|
742
|
+
logger.error(
|
|
743
|
+
"Error updating action costs for agent %s: %s", agent_id, str(e)
|
|
744
|
+
)
|
|
745
|
+
|
|
746
|
+
batch_time = time.time() - batch_start_time
|
|
747
|
+
logger.info("Completed batch in %.3fs", batch_time)
|
|
748
|
+
|
|
749
|
+
total_time = time.time() - start_time
|
|
750
|
+
logger.info(
|
|
751
|
+
"Finished updating action costs for %s agents in %.3fs",
|
|
752
|
+
total_updated,
|
|
753
|
+
total_time,
|
|
754
|
+
)
|
|
755
|
+
|
|
756
|
+
|
|
757
|
+
async def update_agents_account_snapshot(batch_size: int = 100) -> None:
|
|
758
|
+
"""Refresh the cached credit account snapshot for every agent."""
|
|
759
|
+
|
|
760
|
+
logger.info("Starting update of agent account snapshots")
|
|
761
|
+
start_time = time.time()
|
|
762
|
+
total_updated = 0
|
|
763
|
+
|
|
764
|
+
async for agent_ids in _iterate_agent_id_batches(batch_size):
|
|
765
|
+
logger.info(
|
|
766
|
+
"Processing snapshot batch of %s agents starting with ID %s",
|
|
767
|
+
len(agent_ids),
|
|
768
|
+
agent_ids[0],
|
|
769
|
+
)
|
|
770
|
+
batch_start_time = time.time()
|
|
771
|
+
|
|
772
|
+
for agent_id in agent_ids:
|
|
773
|
+
try:
|
|
774
|
+
async with get_session() as session:
|
|
775
|
+
account = await CreditAccount.get_or_create_in_session(
|
|
776
|
+
session, OwnerType.AGENT, agent_id
|
|
777
|
+
)
|
|
778
|
+
await session.execute(
|
|
779
|
+
update(AgentTable)
|
|
780
|
+
.where(AgentTable.id == agent_id)
|
|
781
|
+
.values(
|
|
782
|
+
account_snapshot=account.model_dump(mode="json"),
|
|
783
|
+
)
|
|
784
|
+
)
|
|
785
|
+
await session.commit()
|
|
786
|
+
|
|
787
|
+
total_updated += 1
|
|
788
|
+
except Exception as exc: # pragma: no cover - log path only
|
|
789
|
+
logger.error(
|
|
790
|
+
"Error updating account snapshot for agent %s: %s",
|
|
791
|
+
agent_id,
|
|
792
|
+
exc,
|
|
793
|
+
)
|
|
794
|
+
|
|
795
|
+
batch_time = time.time() - batch_start_time
|
|
796
|
+
logger.info("Completed snapshot batch in %.3fs", batch_time)
|
|
797
|
+
|
|
798
|
+
total_time = time.time() - start_time
|
|
799
|
+
logger.info(
|
|
800
|
+
"Finished updating account snapshots for %s agents in %.3fs",
|
|
801
|
+
total_updated,
|
|
802
|
+
total_time,
|
|
803
|
+
)
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
async def update_agents_assets(batch_size: int = 100) -> None:
|
|
807
|
+
"""Refresh cached asset information for all agents."""
|
|
808
|
+
|
|
809
|
+
from intentkit.core.asset import agent_asset
|
|
810
|
+
|
|
811
|
+
logger.info("Starting update of agent assets")
|
|
812
|
+
start_time = time.time()
|
|
813
|
+
total_updated = 0
|
|
814
|
+
|
|
815
|
+
async for agent_ids in _iterate_agent_id_batches(batch_size):
|
|
816
|
+
logger.info(
|
|
817
|
+
"Processing asset batch of %s agents starting with ID %s",
|
|
818
|
+
len(agent_ids),
|
|
819
|
+
agent_ids[0],
|
|
820
|
+
)
|
|
821
|
+
batch_start_time = time.time()
|
|
822
|
+
|
|
823
|
+
for agent_id in agent_ids:
|
|
824
|
+
try:
|
|
825
|
+
assets = await agent_asset(agent_id)
|
|
826
|
+
except IntentKitAPIError as exc: # pragma: no cover - log path only
|
|
827
|
+
logger.warning(
|
|
828
|
+
"Skipping asset update for agent %s due to API error: %s",
|
|
829
|
+
agent_id,
|
|
830
|
+
exc,
|
|
831
|
+
)
|
|
832
|
+
continue
|
|
833
|
+
except Exception as exc: # pragma: no cover - log path only
|
|
834
|
+
logger.error("Error retrieving assets for agent %s: %s", agent_id, exc)
|
|
835
|
+
continue
|
|
836
|
+
|
|
837
|
+
try:
|
|
838
|
+
async with get_session() as session:
|
|
839
|
+
await session.execute(
|
|
840
|
+
update(AgentTable)
|
|
841
|
+
.where(AgentTable.id == agent_id)
|
|
842
|
+
.values(assets=assets.model_dump(mode="json"))
|
|
843
|
+
)
|
|
844
|
+
await session.commit()
|
|
845
|
+
|
|
846
|
+
total_updated += 1
|
|
847
|
+
except Exception as exc: # pragma: no cover - log path only
|
|
848
|
+
logger.error(
|
|
849
|
+
"Error updating asset cache for agent %s: %s", agent_id, exc
|
|
850
|
+
)
|
|
851
|
+
|
|
852
|
+
batch_time = time.time() - batch_start_time
|
|
853
|
+
logger.info("Completed asset batch in %.3fs", batch_time)
|
|
854
|
+
|
|
855
|
+
total_time = time.time() - start_time
|
|
856
|
+
logger.info(
|
|
857
|
+
"Finished updating assets for %s agents in %.3fs",
|
|
858
|
+
total_updated,
|
|
859
|
+
total_time,
|
|
860
|
+
)
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
async def update_agents_statistics(
|
|
864
|
+
*, end_time: Optional[datetime] = None, batch_size: int = 100
|
|
865
|
+
) -> None:
|
|
866
|
+
"""Refresh cached statistics for every agent."""
|
|
867
|
+
|
|
868
|
+
from intentkit.core.statistics import get_agent_statistics
|
|
869
|
+
|
|
870
|
+
if end_time is None:
|
|
871
|
+
end_time = datetime.now(timezone.utc)
|
|
872
|
+
elif end_time.tzinfo is None:
|
|
873
|
+
end_time = end_time.replace(tzinfo=timezone.utc)
|
|
874
|
+
else:
|
|
875
|
+
end_time = end_time.astimezone(timezone.utc)
|
|
876
|
+
|
|
877
|
+
logger.info("Starting update of agent statistics using end_time %s", end_time)
|
|
878
|
+
start_time = time.time()
|
|
879
|
+
total_updated = 0
|
|
880
|
+
|
|
881
|
+
async for agent_ids in _iterate_agent_id_batches(batch_size):
|
|
882
|
+
logger.info(
|
|
883
|
+
"Processing statistics batch of %s agents starting with ID %s",
|
|
884
|
+
len(agent_ids),
|
|
885
|
+
agent_ids[0],
|
|
886
|
+
)
|
|
887
|
+
batch_start_time = time.time()
|
|
888
|
+
|
|
889
|
+
for agent_id in agent_ids:
|
|
890
|
+
try:
|
|
891
|
+
statistics = await get_agent_statistics(agent_id, end_time=end_time)
|
|
892
|
+
except Exception as exc: # pragma: no cover - log path only
|
|
893
|
+
logger.error(
|
|
894
|
+
"Error computing statistics for agent %s: %s", agent_id, exc
|
|
895
|
+
)
|
|
896
|
+
continue
|
|
897
|
+
|
|
898
|
+
try:
|
|
899
|
+
async with get_session() as session:
|
|
900
|
+
await session.execute(
|
|
901
|
+
update(AgentTable)
|
|
902
|
+
.where(AgentTable.id == agent_id)
|
|
903
|
+
.values(statistics=statistics.model_dump(mode="json"))
|
|
904
|
+
)
|
|
905
|
+
await session.commit()
|
|
906
|
+
|
|
907
|
+
total_updated += 1
|
|
908
|
+
except Exception as exc: # pragma: no cover - log path only
|
|
734
909
|
logger.error(
|
|
735
|
-
|
|
910
|
+
"Error updating statistics cache for agent %s: %s",
|
|
911
|
+
agent_id,
|
|
912
|
+
exc,
|
|
736
913
|
)
|
|
737
914
|
|
|
738
915
|
batch_time = time.time() - batch_start_time
|
|
739
|
-
logger.info(
|
|
916
|
+
logger.info("Completed statistics batch in %.3fs", batch_time)
|
|
740
917
|
|
|
741
918
|
total_time = time.time() - start_time
|
|
742
919
|
logger.info(
|
|
743
|
-
|
|
920
|
+
"Finished updating statistics for %s agents in %.3fs",
|
|
921
|
+
total_updated,
|
|
922
|
+
total_time,
|
|
744
923
|
)
|
|
745
924
|
|
|
746
925
|
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"""Agent statistics utilities."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from datetime import datetime, timedelta, timezone
|
|
6
|
+
from decimal import Decimal
|
|
7
|
+
from typing import Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, Field
|
|
10
|
+
from sqlalchemy import func, select
|
|
11
|
+
from sqlalchemy.ext.asyncio import AsyncSession
|
|
12
|
+
|
|
13
|
+
from intentkit.models.agent_data import AgentQuota, AgentQuotaTable
|
|
14
|
+
from intentkit.models.credit import CreditAccount, CreditEventTable, OwnerType
|
|
15
|
+
from intentkit.models.db import get_session
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class AgentStatistics(BaseModel):
|
|
19
|
+
"""Aggregated statistics for an agent credit account."""
|
|
20
|
+
|
|
21
|
+
agent_id: str = Field(description="ID of the agent")
|
|
22
|
+
account_id: str = Field(description="ID of the associated credit account")
|
|
23
|
+
balance: Decimal = Field(description="Current credit account balance")
|
|
24
|
+
total_income: Decimal = Field(description="Total income across all events")
|
|
25
|
+
net_income: Decimal = Field(description="Net income from fee allocations")
|
|
26
|
+
permanent_income: Decimal = Field(
|
|
27
|
+
description="Total permanent income across all events"
|
|
28
|
+
)
|
|
29
|
+
permanent_profit: Decimal = Field(
|
|
30
|
+
description="Permanent profit allocated to the agent"
|
|
31
|
+
)
|
|
32
|
+
last_24h_income: Decimal = Field(
|
|
33
|
+
description="Income generated during the last 24 hours"
|
|
34
|
+
)
|
|
35
|
+
last_24h_permanent_income: Decimal = Field(
|
|
36
|
+
description="Permanent income generated during the last 24 hours"
|
|
37
|
+
)
|
|
38
|
+
avg_action_cost: Decimal = Field(description="Average action cost")
|
|
39
|
+
min_action_cost: Decimal = Field(description="Minimum action cost")
|
|
40
|
+
max_action_cost: Decimal = Field(description="Maximum action cost")
|
|
41
|
+
low_action_cost: Decimal = Field(description="20th percentile action cost")
|
|
42
|
+
medium_action_cost: Decimal = Field(description="60th percentile action cost")
|
|
43
|
+
high_action_cost: Decimal = Field(description="80th percentile action cost")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
async def get_agent_statistics(
|
|
47
|
+
agent_id: str,
|
|
48
|
+
*,
|
|
49
|
+
end_time: Optional[datetime] = None,
|
|
50
|
+
session: Optional[AsyncSession] = None,
|
|
51
|
+
) -> AgentStatistics:
|
|
52
|
+
"""Calculate statistics for an agent credit account.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
agent_id: ID of the agent.
|
|
56
|
+
end_time: Optional end time used as the inclusive boundary for
|
|
57
|
+
time-windowed aggregations. Defaults to the current UTC time.
|
|
58
|
+
session: Optional database session to reuse. When omitted, a
|
|
59
|
+
standalone session will be created and committed automatically.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
Aggregated statistics for the agent.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
managed_session = session is None
|
|
66
|
+
if end_time is None:
|
|
67
|
+
end_time = datetime.now(timezone.utc)
|
|
68
|
+
elif end_time.tzinfo is None:
|
|
69
|
+
end_time = end_time.replace(tzinfo=timezone.utc)
|
|
70
|
+
else:
|
|
71
|
+
end_time = end_time.astimezone(timezone.utc)
|
|
72
|
+
|
|
73
|
+
async def _compute(session: AsyncSession) -> AgentStatistics:
|
|
74
|
+
account = await CreditAccount.get_or_create_in_session(
|
|
75
|
+
session, OwnerType.AGENT, agent_id
|
|
76
|
+
)
|
|
77
|
+
balance = account.free_credits + account.reward_credits + account.credits
|
|
78
|
+
|
|
79
|
+
totals_stmt = select(
|
|
80
|
+
func.sum(CreditEventTable.total_amount).label("total_income"),
|
|
81
|
+
func.sum(CreditEventTable.fee_agent_amount).label("net_income"),
|
|
82
|
+
func.sum(CreditEventTable.permanent_amount).label("permanent_income"),
|
|
83
|
+
func.sum(CreditEventTable.fee_agent_permanent_amount).label(
|
|
84
|
+
"permanent_profit"
|
|
85
|
+
),
|
|
86
|
+
).where(CreditEventTable.agent_id == agent_id)
|
|
87
|
+
totals_result = await session.execute(totals_stmt)
|
|
88
|
+
totals_row = totals_result.first()
|
|
89
|
+
|
|
90
|
+
total_income = (
|
|
91
|
+
totals_row.total_income
|
|
92
|
+
if totals_row and totals_row.total_income
|
|
93
|
+
else Decimal("0")
|
|
94
|
+
)
|
|
95
|
+
net_income = (
|
|
96
|
+
totals_row.net_income
|
|
97
|
+
if totals_row and totals_row.net_income
|
|
98
|
+
else Decimal("0")
|
|
99
|
+
)
|
|
100
|
+
permanent_income = (
|
|
101
|
+
totals_row.permanent_income
|
|
102
|
+
if totals_row and totals_row.permanent_income
|
|
103
|
+
else Decimal("0")
|
|
104
|
+
)
|
|
105
|
+
permanent_profit = (
|
|
106
|
+
totals_row.permanent_profit
|
|
107
|
+
if totals_row and totals_row.permanent_profit
|
|
108
|
+
else Decimal("0")
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
window_start = end_time - timedelta(hours=24)
|
|
112
|
+
window_stmt = select(
|
|
113
|
+
func.sum(CreditEventTable.total_amount).label("last_24h_income"),
|
|
114
|
+
func.sum(CreditEventTable.permanent_amount).label(
|
|
115
|
+
"last_24h_permanent_income"
|
|
116
|
+
),
|
|
117
|
+
).where(
|
|
118
|
+
CreditEventTable.agent_id == agent_id,
|
|
119
|
+
CreditEventTable.created_at >= window_start,
|
|
120
|
+
CreditEventTable.created_at <= end_time,
|
|
121
|
+
)
|
|
122
|
+
window_result = await session.execute(window_stmt)
|
|
123
|
+
window_row = window_result.first()
|
|
124
|
+
|
|
125
|
+
last_24h_income = (
|
|
126
|
+
window_row.last_24h_income
|
|
127
|
+
if window_row and window_row.last_24h_income
|
|
128
|
+
else Decimal("0")
|
|
129
|
+
)
|
|
130
|
+
last_24h_permanent_income = (
|
|
131
|
+
window_row.last_24h_permanent_income
|
|
132
|
+
if window_row and window_row.last_24h_permanent_income
|
|
133
|
+
else Decimal("0")
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
quota_row = await session.get(AgentQuotaTable, agent_id)
|
|
137
|
+
quota = (
|
|
138
|
+
AgentQuota.model_validate(quota_row)
|
|
139
|
+
if quota_row
|
|
140
|
+
else AgentQuota(id=agent_id)
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
return AgentStatistics(
|
|
144
|
+
agent_id=agent_id,
|
|
145
|
+
account_id=account.id,
|
|
146
|
+
balance=balance,
|
|
147
|
+
total_income=total_income,
|
|
148
|
+
net_income=net_income,
|
|
149
|
+
permanent_income=permanent_income,
|
|
150
|
+
permanent_profit=permanent_profit,
|
|
151
|
+
last_24h_income=last_24h_income,
|
|
152
|
+
last_24h_permanent_income=last_24h_permanent_income,
|
|
153
|
+
avg_action_cost=quota.avg_action_cost,
|
|
154
|
+
min_action_cost=quota.min_action_cost,
|
|
155
|
+
max_action_cost=quota.max_action_cost,
|
|
156
|
+
low_action_cost=quota.low_action_cost,
|
|
157
|
+
medium_action_cost=quota.medium_action_cost,
|
|
158
|
+
high_action_cost=quota.high_action_cost,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
if managed_session:
|
|
162
|
+
async with get_session() as managed:
|
|
163
|
+
statistics = await _compute(managed)
|
|
164
|
+
await managed.commit()
|
|
165
|
+
return statistics
|
|
166
|
+
return await _compute(session)
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
__all__ = ["AgentStatistics", "get_agent_statistics"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.7.5.
|
|
3
|
+
Version: 0.7.5.dev28
|
|
4
4
|
Summary: Intent-based AI Agent Platform - Core Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
|
|
6
6
|
Project-URL: Repository, https://github.com/crestalnetwork/intentkit
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
intentkit/__init__.py,sha256=
|
|
1
|
+
intentkit/__init__.py,sha256=TLm-2HN623h5B0LDpMvBIq2Rf_D9u77MemTU2iwIQ0g,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
|
|
@@ -13,7 +13,7 @@ intentkit/clients/web3.py,sha256=A-w4vBPXHpDh8svsEFj_LkmvRgoDTZw4E-84S-UC9ws,102
|
|
|
13
13
|
intentkit/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
intentkit/config/config.py,sha256=kw9F-uLsJd-knCKmYNb-hqR7x7HUXUkNg5FZCgOPH54,8868
|
|
15
15
|
intentkit/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
intentkit/core/agent.py,sha256=
|
|
16
|
+
intentkit/core/agent.py,sha256=YeeaqSMHIRAWUihL4OsWwrbZy8QbV26ORddMgPtRqMc,37932
|
|
17
17
|
intentkit/core/api.py,sha256=WfoaHNquujYJIpNPuTR1dSaaxog0S3X2W4lG9Ehmkm4,3284
|
|
18
18
|
intentkit/core/asset.py,sha256=mswjgAhSkAzdkz8VlFCWFMrE4Di5R3tZlkHtC0Rt4D0,7397
|
|
19
19
|
intentkit/core/chat.py,sha256=YN20CnDazWLjiOZFOHgV6uHmA2DKkvPCsD5Q5sfNcZg,1685
|
|
@@ -22,6 +22,7 @@ intentkit/core/credit.py,sha256=b4f4T6G6eeBTMe0L_r8awWtXgUnqiog4IUaymDPYym0,7558
|
|
|
22
22
|
intentkit/core/engine.py,sha256=8-dlYnwg8BIViAWIAFj65s3O29EXCeQlTjf5Yg9Xfww,37597
|
|
23
23
|
intentkit/core/node.py,sha256=Cjekrg5RFtNNj3k_pLAWTZVGzm33Wnn2JtE__RSNMA8,8880
|
|
24
24
|
intentkit/core/prompt.py,sha256=idNx1ono4Maz2i6IBKfaKOBBbEQiWbaSxr2Eb1vZTI4,15482
|
|
25
|
+
intentkit/core/statistics.py,sha256=-IZmxIBzyzZuai7QyfPEY1tx8Q8ydmmcm6eqbSSy_6o,6366
|
|
25
26
|
intentkit/models/agent.py,sha256=-nRcaH5b-iMyds02KvjOlogHAfOC5X184qJZj_Gung4,69074
|
|
26
27
|
intentkit/models/agent_data.py,sha256=5zq3EPKnygT2P1OHc2IfEmL8hXkjeBND6sJ0JJsvQJg,28370
|
|
27
28
|
intentkit/models/agent_public.json,sha256=0X8Bd2WOobDJLsok8avWNzmzu4uvKSGEyy6Myn53eT4,2802
|
|
@@ -449,7 +450,7 @@ intentkit/utils/random.py,sha256=DymMxu9g0kuQLgJUqalvgksnIeLdS-v0aRk5nQU0mLI,452
|
|
|
449
450
|
intentkit/utils/s3.py,sha256=A8Nsx5QJyLsxhj9g7oHNy2-m24tjQUhC9URm8Qb1jFw,10057
|
|
450
451
|
intentkit/utils/slack_alert.py,sha256=s7UpRgyzLW7Pbmt8cKzTJgMA9bm4EP-1rQ5KXayHu6E,2264
|
|
451
452
|
intentkit/utils/tx.py,sha256=2yLLGuhvfBEY5n_GJ8wmIWLCzn0FsYKv5kRNzw_sLUI,1454
|
|
452
|
-
intentkit-0.7.5.
|
|
453
|
-
intentkit-0.7.5.
|
|
454
|
-
intentkit-0.7.5.
|
|
455
|
-
intentkit-0.7.5.
|
|
453
|
+
intentkit-0.7.5.dev28.dist-info/METADATA,sha256=0o_TegRevOjTNiaoB8xrvgkSa3RLiOiWRulXkbrRr0Q,6360
|
|
454
|
+
intentkit-0.7.5.dev28.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
455
|
+
intentkit-0.7.5.dev28.dist-info/licenses/LICENSE,sha256=Bln6DhK-LtcO4aXy-PBcdZv2f24MlJFm_qn222biJtE,1071
|
|
456
|
+
intentkit-0.7.5.dev28.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|