Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 4 additions & 38 deletions spoon_toolkits/storage/__init__.py
Original file line number Diff line number Diff line change
@@ -1,39 +1,5 @@
"""DEX tools module for SpoonAI"""
"""Storage tools module for SpoonAI"""

from .base import (
DexBaseTool,
DefiBaseTool,
BitqueryTool
)

from .price_data import (
GetTokenPriceTool,
Get24hStatsTool,
GetKlineDataTool,
)

from .price_alerts import (
PriceThresholdAlertTool,
LpRangeCheckTool,
SuddenPriceIncreaseTool,
)

from .lending_rates import (
LendingRateMonitorTool,
)

# from .lst_arbitrage import LstArbitrageTool

__all__ = [
"GetTokenPriceTool",
"Get24hStatsTool",
"GetKlineDataTool",
"PriceThresholdAlertTool",
"LpRangeCheckTool",
"SuddenPriceIncreaseTool",
"LendingRateMonitorTool",
"DexBaseTool",
"DefiBaseTool",
"BitqueryTool",
# "LstArbitrageTool",
]
# This file is intentionally minimal to avoid circular dependencies
# and incorrect imports. Specific storage tools are imported from their
# respective submodules.
85 changes: 85 additions & 0 deletions spoon_toolkits/storage/autonomys_auto_drive/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
"""Autonomys Auto Drive tools module"""

# Account tools (renamed from Subscription)
from .subscriptions_tools import (
GetAccountInfoTool,
)

# Upload tools
from .uploads_tools import (
UploadFileTool,
UploadFileSmallTool,
UploadFileLargeTool,
GetUploadStatusTool,
)

# Object tools
from .objects_tools import (
GetRootObjectsTool,
SearchObjectsTool,
PublishObjectTool,
UnpublishObjectTool,
DeleteObjectTool,
RestoreObjectTool,
GetSharedRootObjectsTool,
GetDeletedRootObjectsTool,
GetObjectSummaryTool,
ShareObjectTool,
GetObjectStatusTool,
GetObjectMetadataTool,
)

# Download tools
from .downloads_tools import (
DownloadObjectTool,
StreamDownloadTool,
DownloadPublicObjectTool,
StreamDownloadPublicObjectTool,
CreateAsyncDownloadTool,
GetAsyncDownloadStatusTool,
ListAsyncDownloadsTool,
DismissAsyncDownloadTool,
)

# Provider
from .provider import AutoDriveProvider
from .base import get_provider

__all__ = [
# Account tools (1) - renamed from Subscription
"GetAccountInfoTool",

# Upload tools (4)
"UploadFileTool",
"UploadFileSmallTool",
"UploadFileLargeTool",
"GetUploadStatusTool",

# Object tools (12)
"GetRootObjectsTool",
"SearchObjectsTool",
"PublishObjectTool",
"UnpublishObjectTool",
"DeleteObjectTool",
"RestoreObjectTool",
"GetSharedRootObjectsTool",
"GetDeletedRootObjectsTool",
"GetObjectSummaryTool",
"ShareObjectTool",
"GetObjectStatusTool",
"GetObjectMetadataTool",

# Download tools (8)
"DownloadObjectTool",
"StreamDownloadTool",
"DownloadPublicObjectTool",
"StreamDownloadPublicObjectTool",
"CreateAsyncDownloadTool",
"GetAsyncDownloadStatusTool",
"ListAsyncDownloadsTool",
"DismissAsyncDownloadTool",

# Provider
"AutoDriveProvider",
"get_provider",
]
23 changes: 23 additions & 0 deletions spoon_toolkits/storage/autonomys_auto_drive/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"""Base module for Autonomys Auto Drive tools"""

import os
from .provider import AutoDriveProvider

def get_provider() -> AutoDriveProvider:
"""
Get Auto Drive provider instance.
Validates that the API key is configured before initialization.
"""
api_key = os.environ.get('AUTONOMYS_AUTO_DRIVE_API_KEY', 'apikey')
auth_provider = os.environ.get('AUTONOMYS_AUTO_DRIVE_AUTH_PROVIDER', 'apikey')

if not api_key:
Comment on lines +11 to +14

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fail fast when AUTONOMYS_AUTO_DRIVE_API_KEY is unset

If the environment variable is missing, get_provider() silently falls back to the literal 'apikey', so the if not api_key guard never triggers. This means a misconfigured environment will attempt API calls with a placeholder key and return confusing auth errors instead of the explicit configuration error promised by the docstring. This only occurs when the env var is unset, but in that case the tools won’t give the intended guidance.

Useful? React with 👍 / 👎.

raise RuntimeError(
"AUTONOMYS_AUTO_DRIVE_API_KEY is not set in environment variables. "
"Please configure it to use Autonomys Auto Drive tools."
)

return AutoDriveProvider(
api_key=api_key,
auth_provider=auth_provider
)
Loading