IInstallation

La première preuve.

D'une machine vierge à une réponse hachée et rejouable en moins d'une minute. Sans compte, sans clé, sans serveur. Les mêmes quatre étapes dans l'un ou l'autre langage — la preuve est le même hash.

TypeScriptNode ≥ 20

  1. 01Installer

  2. 02Connecter une source

    import { createSQAI } from "@thyn-ai/sqai";
    
    const sqai = createSQAI();
    await sqai.connect("./sales.csv",
      { name: "sales" });
  3. 03Soumettre une requête

    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. 04Calculer une valeur

    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. 01Installer

  2. 02Connecter une source

    from sqai import SQAI
    
    sqai = SQAI()
    sqai.connect("./sales.csv",
      name="sales")
  3. 03Soumettre une requête

    a = sqai.ask({
      "metric": "revenue",
      "aggregation": "sum",
      "group_by": "region",
      "source_name": "sales",
    })
    # east 2130.5 · west 1519 · north 1000
    # plan_hash f87610d8afeb…
  4. 04Calculer une valeur

    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

Identiques. Octet pour octet.

Les deux SDK canonicalisent le même résultat vers les mêmes octets, de sorte que le hash correspond entre les langages — non par coïncidence, mais par construction. Rejouez l'appel n'importe où : cette ligne doit s'afficher.

IIConfiguration initiale

Provisionner une fois. Ensuite, c'est instantané.

Le plan de requête s'exécute en cours de processus dès la fin de l'installation — sans démon, sans clé. Le plan de calcul provisionne son runtime signé une seule fois, au premier compute(), puis le maintient résident.

await sqai.compute(…)  // first call, ever~110 s · une fois par machine

  1. 01téléchargement du bundle de la plateforme
  2. 02vérification de la signature RS256 + sha256 par artefact
  3. 03extraction et installation atomique
  4. 04démarrage du moteur résident

await sqai.compute(…)  // every call after0,83–0,93 ms · mesuré

Le runtime est déjà résident — aucun téléchargement, aucun démarrage à froid, aucune initialisation par requête.

Le bundle est mis en cache par utilisateur : le provisionnement n'a lieu qu'une fois par machine, pas une fois par processus.

IIIVérifier

Une commande lit toute la machine.

✓ 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 vérifie la version de Node, l'import du SDK, le contrat embarqué et une sonde runtime en direct. Sur une machine vierge, la ligne runtime indique unavailable — un saut, pas un échec. Le plan de requête ne nécessite aucun runtime.

  • 4 778 capacités sont livrées dans le contrat épinglé par hash ; 4 574 sont exposées aux SDK — en lecture seule, déterministes.
  • Ajoutez --parity pour vérifier cet invariant et comparer les modules du contrat avec le moteur en cours d'exécution.
  • Ajoutez --json pour afficher exactement un objet JSON — conçu pour la CI.

IVPrérequis

Ce que la minute requiert.

Node
20 ou supérieur pour les packages npm — doctor l'impose.
Python
3.10 ou supérieur pour le package PyPI.
Plan de calcul
darwin-arm64 ou linux-x64 — le runtime signé se provisionne au premier compute().
Plan de requête
Partout où Node ou Python s'exécute.
Windows & autres
Le plan de requête fonctionne intégralement ; compute() retourne une erreur structurée unsupported_platform — jamais un crash.

Hors hôte supporté, pointez compute vers un moteur distant via SQAI_ENGINE_URL ou SQAI_API_KEY — requêtes et dispatch restent opérationnels ; seul le provisionnement local est ignoré.

VLa console opérateur

Trois commandes autour du SDK.

Connexion, interrogation et calcul s'effectuent en cours de processus via les SDK. Le CLI s'utilise autour d'eux — authentifier un appareil, vérifier l'environnement, gérer le runtime.

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

    Authentification d'appareil optionnelle (RFC 8628) via accounts.thyn.ai. Elle transfère un token signé — jamais vos données. Gratuit sur une machine.

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

    Node, import SDK, contrat embarqué, sonde runtime en direct. --parity vérifie l'invariant lecture seule et déterministe.

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

    Le runtime de calcul résident : le consulter, l'installer à l'avance, vérifier le sha256 épinglé, l'arrêter.

Chaque commande accepte --json et imprime exactement un objet JSON. Les codes de sortie sont scriptables : 0 succès · 1 vérification échouée · 2 erreur d'usage.