setup_connector
Создаёт новую учётную запись, записывая учетные данные ТОЛЬКО ДЛЯ ЧТЕНИЯ в системную связку ключей. Используйте, когда пользователь запрашивает: 'добавить аккаунт Bybit', 'подключить Binance', 'подключить мой кошелёк MetaMask', 'настроить Polymarket', 'подключить мой кошелёк Solana', 'отслеживать мой Hyperliquid', 'добавить мой кошелёк Hyperliquid', 'добавить новую биржу'.
КОНТРАКТ ПОВЕДЕНИЯ ДЛЯ ВАС (LLM):
- После успешного выполнения этого инструмента подтвердите пользователю ТОЛЬКО метку учётной записи и account_id.
- НИКОГДА не повторяйте, не записывайте, не перефразируйте и не воспроизводите значения учётных данных (apiKey, apiSecret, etherscanApiKey) в своём ответе.
- Если пользователь вставляет учётные данные прямо в чат, предложите ему использовать форму в интерфейсе настроек (инструмент render_settings) — форма не включает секреты в историю переписки.
Учётные данные проверяются через вышестоящее API перед сохранением; при неудачной проверке ничего не записывается.
Хранилище: системная связка ключей (macOS Keychain / Linux Secret Service / Windows Credential Vault) через @napi-rs/keyring. Тот же путь, что и в процессе настройки через CLI.
Все шесть коннекторов по замыслу используют учётные данные ТОЛЬКО ДЛЯ ЧТЕНИЯ (Bybit только 'Read', Binance только 'Enable Reading', Etherscan — это токен с ограничением частоты для публичных данных, прокси-кошелёк Polymarket уже публичный, адреса Solana/Hyperliquid — это публичные ончейн-идентификаторы — Hyperliquid вообще не требует ключа или подписи).
Входные данные (требуется один из bybit / binance / metamask / polymarket / solana / hyperliquid):
- bybit: { apiKey, apiSecret, accountType: 'UNIFIED'|'CONTRACT'|'SPOT'|'FUND' (основной, он же ID учётной записи), accountTypes?: массив дополнительных типов для распределения (например, ['FUND'] вместе с UNIFIED, чтобы отслеживались балансы фондового кошелька) }
- binance: { apiKey, apiSecret, includeFutures (необязательный bool, по умолчанию false), recvWindow (необязательный ms) }
- metamask: { address, etherscanApiKey, chainIds (number[]), trackCommonTokens (bool), hasEtherscanPro (bool) }
- polymarket: { proxyWallet (0x...), sizeThreshold…