IУстановка

Первое доказательство.

От чистой машины до хешированного, воспроизводимого ответа — менее чем за минуту. Без аккаунта, без ключа, без сервера. Выполните те же четыре шага на любом из языков — доказательство даст одинаковый хеш.

TypeScriptNode ≥ 20

  1. 01Установка

  2. 02Подключение источника

    import { createSQAI } from "@thyn-ai/sqai";
    
    const sqai = createSQAI();
    await sqai.connect("./sales.csv",
      { name: "sales" });
  3. 03Запрос

    const a = await sqai.ask({
      metric: "revenue",
      aggregation: "sum",
      group_by: "region",
      source_name: "sales",
    });
    // east 2130.5 · west 1519 · north 1000
    // plan_hash f87610d8afeb…
  4. 04Вычисление значения

    const r = await sqai.compute({
      module: "finance", function: "npv",
      args: [0.1, [-1000, 300, 420, 560, 680]],
    });
    r.value505.020148896933
    r.computation_hashb74f67d0…d91bc8

PythonPython ≥ 3.10

  1. 01Установка

  2. 02Подключение источника

    from sqai import SQAI
    
    sqai = SQAI()
    sqai.connect("./sales.csv",
      name="sales")
  3. 03Запрос

    a = sqai.ask({
      "metric": "revenue",
      "aggregation": "sum",
      "group_by": "region",
      "source_name": "sales",
    })
    # east 2130.5 · west 1519 · north 1000
    # plan_hash f87610d8afeb…
  4. 04Вычисление значения

    r = sqai.compute(
      module="finance", function="npv",
      args=[0.1, [-1000, 300, 420, 560, 680]],
    )
    r["value"]505.020148896933
    r["computation_hash"]b74f67d0…d91bc8
computation_hash · TypeScript ≡ Python

b74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8

Идентично. Побайтово.

Оба SDK канонизируют один и тот же результат в одни и те же байты, поэтому хеш совпадает между языками — не случайно, а по построению. Воспроизведите вызов где угодно: он обязан вывести эту строку.

IIОднократная настройка

Настроить один раз. Дальше — мгновенно.

Плоскость запросов запускается внутри процесса сразу после установки — без демона, без ключа. Плоскость вычислений подготавливает подписанную среду выполнения один раз, при первом вызове compute(), и затем держит её резидентной.

await sqai.compute(…)  // first call, ever~110 с · один раз на машину

  1. 01загрузка пакета платформы
  2. 02проверка подписи RS256 + sha256 каждого артефакта
  3. 03атомарное извлечение и установка
  4. 04запуск резидентного движка

await sqai.compute(…)  // every call after0,83–0,93 мс · измерено

Среда выполнения уже резидентна — никакой загрузки, никакого холодного старта, никакой подготовки на каждый запрос.

Пакет кешируется на уровне пользователя, поэтому подготовка происходит один раз на машину, а не на каждый процесс.

IIIПроверка

Одна команда проверяет всю машину.

✓ node: v20.11.0
✓ sdk: @thyn-ai/sqai 0.1.4 imports cleanly
✓ contract: 4778 capabilities
  sha256:79f1c5a6c7164e7e9e1750e70a5c03292fa87eb52d8148a740c06695924be9a1
• tested-pair: skipped (not in the repo)
• runtime: unavailable (checks skipped)
✓ doctor: ok

doctor проверяет версию Node, импорт SDK, встроенный контракт и живой зонд среды выполнения. На чистой машине строка среды выполнения показывает unavailable — это пропуск, не ошибка. Плоскость запросов не требует среды выполнения.

  • В хеш-закреплённом контракте содержится 4 778 возможностей; 4 574 из них открыты для SDK — только чтение, детерминированно.
  • Добавьте --parity, чтобы проверить этот инвариант и сравнить модули контракта с работающим движком.
  • Добавьте --json, чтобы вывести ровно один JSON-объект — удобно для CI.

IVТребования

Что нужно для этой минуты.

Node
20 или новее для npm-пакетов — doctor проверяет это принудительно.
Python
3.10 или новее для пакета PyPI.
Вычислительная плоскость
darwin-arm64 или linux-x64 — подписанный runtime разворачивается при первом вызове compute().
Плоскость запросов
Везде, где работает Node или Python.
Windows и другие
Плоскость запросов работает полностью; compute() возвращает структурированную ошибку unsupported_platform — без сбоев.

На неподдерживаемом хосте направьте вычисления на удалённый движок через SQAI_ENGINE_URL или SQAI_API_KEY — запросы и диспетчеризация работают; локальное развёртывание пропускается.

VИнструменты оператора

Три команды вокруг SDK.

Подключение, запросы и вычисления выполняются внутри процесса через SDK. CLI — это то, что запускается вокруг них: авторизовать устройство, проверить среду, управлять runtime.

  1. $sqai login [--no-browser]

    Опциональная авторизация устройства (RFC 8628) через accounts.thyn.ai. Передаётся только подписанный токен — никаких данных. Бесплатно на одной машине.

  2. $sqai doctor [--parity] [--json]

    Node, импорт SDK, встроенный контракт, живой зонд runtime. --parity проверяет инвариант: только чтение, детерминированность.

  3. $sqai runtime <status|install|verify|stop>

    Резидентный вычислительный runtime: статус, предварительная установка, проверка закреплённого sha256, остановка.

Каждая команда принимает --json и выводит ровно один JSON-объект. Коды выхода пригодны для скриптов: 0 — успех · 1 — ошибка проверки · 2 — ошибка использования.