Skip to main content

Зрелый пул аккаунтов/сессий поверх librarykit: статус-машина аккаунта, quota/подписки, rate-limit + circuit-breaker, OAuth-ротация (single-flight DCL-lock), egress-пул с quarantine, import/export, headless-фасад. Обобщение gemini-balancer в переиспользуемый доменный слой.

Project description

s-accountpoolkit

Зрелый пул аккаунтов/сессий поверх s-librarykit — доменный слой над SessionStore/SessionPool/RateLimiter/RotatingAuth/antibot-транспортами. Обобщение gemini-balancer в переиспользуемый кит.

import-имя accountpoolkit · dist-имя s-accountpoolkit (как s-librarykit → librarykit).

Что даёт (сверх librarykit)

  • Account со статус-машинойavailable / cooldown / quota_exhausted / disabled / blocked с причинами и таймстемпами (не строка+is_active).
  • Quota / подпискиQuotaData union (dual-window weekly+5h / header-based / JWT-claims), приоритет ULTRA > PRO > FREE, model-level изоляция.
  • Rate-limit + circuit-breaker — разбор 429/403/5xx/Retry-After, exp-backoff по причинам, cooldown отдельно от CB-open, авто-recovery.
  • Selector — двухслойный (жёсткий eligibility-фильтр → Power-of-Two-Choices), приоритет-каскад подписка→квота→health→reset, sticky-сессии, slow-start.
  • OAuth-ротация — single-flight (double-checked-locking) на аккаунт, атомарный rolling-refresh, fallback-цепочка OAuth-клиентов, invalid_grant → карантин, проактивный фоновый рефреш, keyring-экспорт токена.
  • Egress-пул — привязка аккаунт↔прокси (sticky IP) vs глобальный пул, стратегии (RR/Weighted/LeastConn/Priority/P2C), health-check, настоящий per-proxy circuit-breaker/quarantine.
  • Import/export — версионированный конверт, идемпотентный upsert, чтение чужих сторов.
  • Headless AccountService-фасад + clikit CLI (json-by-default); опц. REST admin ([rest]) + cloudflared tunnel ([tunnel]).

Секреты — только через librarykit SessionStore (envelope KEK/DEK) / SecretStore (keyring+fallback). Никакого plaintext.

Провайдер-специфика (gemini / codex / …) — через AccountProvider Protocol-плагины; ядро её не знает.

Установка

uv add s-accountpoolkit          # ядро
uv add "s-accountpoolkit[egress]"  # + antibot health-транспорт для egress-пула
uv add "s-accountpoolkit[cli]"     # + CLI `accountpool` (json-by-default)

import-имя — accountpoolkit. AccountService — headless-фасад над всеми слоями:

import accountpoolkit as apk
from librarykit.sessions import SessionStore

store = apk.AccountStore(SessionStore(root=None, encrypt=True), social="myservice")
pool = apk.AccountPool(store, tracker=apk.RateLimitTracker())
svc = apk.AccountService(store=store, pool=pool)

choice = await svc.acquire(require_tier=apk.SubscriptionTier.PRO)
if choice:
    ...  # запрос через choice.proxy (egress) + choice.account (device/creds)
    await svc.report(choice.ref, response=resp)  # 429/5xx → cooldown/circuit-breaker

Статус

Ядро стабильно: статус-машина аккаунта, quota/подписки, rate-limit + circuit-breaker, OAuth-ротация (single-flight), egress-пул, import/export, AccountService-фасад + CLI. Провайдер-плагины подключаются через entry-points accountpoolkit.providers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s_accountpoolkit-0.0.1.tar.gz (121.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

s_accountpoolkit-0.0.1-py3-none-any.whl (96.9 kB view details)

Uploaded Python 3

File details

Details for the file s_accountpoolkit-0.0.1.tar.gz.

File metadata

  • Download URL: s_accountpoolkit-0.0.1.tar.gz
  • Upload date:
  • Size: 121.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for s_accountpoolkit-0.0.1.tar.gz
Algorithm Hash digest
SHA256 41f9697e7b6b45e3fe34cbe2aa96fc8f14acbf870970845d50f04d12ea1c08f5
MD5 af0d5dc2e45114570bea3b308d3c082f
BLAKE2b-256 dd04878d2f51caad4a56c95e90541a52b3225add49560d3613f653067d65f51f

See more details on using hashes here.

File details

Details for the file s_accountpoolkit-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: s_accountpoolkit-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 96.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for s_accountpoolkit-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0ebca760faf9ce9539cc03269f6a29ec414a0731e04250e6d937967e2eec1b5
MD5 74ee277fcf06449b0d58e221b92fa834
BLAKE2b-256 efb8b5800beaf2035c83a9b0614f71e1655e4e1c508a194ccb4ee6661e459673

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page