IInstallation

Der erste Beweis.

Von einer frischen Maschine zu einer gehashten, wiederholbaren Antwort in unter einer Minute. Kein Konto, kein Schlüssel, kein Server. Dieselben vier Schritte in beiden Sprachen — der Beweis ist derselbe Hash.

TypeScriptNode ≥ 20

  1. 01Installieren

  2. 02Quelle verbinden

    import { createSQAI } from "@thyn-ai/sqai";
    
    const sqai = createSQAI();
    await sqai.connect("./sales.csv",
      { name: "sales" });
  3. 03Abfrage stellen

    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. 04Wert berechnen

    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 erforderlich

  1. 01Installieren

  2. 02Quelle verbinden

    from sqai import SQAI
    
    sqai = SQAI()
    sqai.connect("./sales.csv",
      name="sales")
  3. 03Abfrage stellen

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

    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

Identisch. Byte für Byte.

Beide SDKs kanonisieren dasselbe Ergebnis zu denselben Bytes, sodass der Hash sprachübergreifend übereinstimmt — nicht zufällig, sondern konstruktionsbedingt. Den Aufruf beliebig wiederholen — diese Zeile muss erscheinen.

IIEinmalige Einrichtung

Einmal provisionieren. Dann sofort bereit.

Die Query-Ebene läuft im Prozess, sobald die Installation abgeschlossen ist — kein Daemon, kein Schlüssel. Die Compute-Ebene provisioniert ihren signierten Runtime einmalig beim ersten compute()-Aufruf und hält ihn dann resident.

await sqai.compute(…)  // first call, ever~110 s · einmalig pro Maschine

  1. 01Plattform-Bundle herunterladen
  2. 02RS256-Signatur + sha256 je Artefakt verifizieren
  3. 03atomar entpacken und installieren
  4. 04residenten Engine starten

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

Der Runtime ist bereits resident — kein Download, kein Cold Start, kein Aufwand pro Abfrage.

Das Bundle wird pro Benutzer gecacht, sodass die Provisionierung einmalig pro Maschine erfolgt — nicht pro Prozess.

IIIPrüfen

Ein Befehl liest die gesamte Maschine aus.

✓ 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 prüft die Node-Version, den SDK-Import, den eingebetteten Vertrag und eine Live-Runtime-Sonde. Auf einer frischen Maschine zeigt die Runtime-Zeile unavailable — ein Überspringen, kein Fehler. Die Query-Ebene benötigt keinen Runtime.

  • 4.778 Capabilities werden im hash-gepinnten Vertrag ausgeliefert; 4.574 sind den SDKs zugänglich — schreibgeschützt, deterministisch.
  • --parity hinzufügen, um diese Invariante zu prüfen und Vertragsmodule gegen den laufenden Engine zu vergleichen.
  • --json hinzufügen, um genau ein JSON-Objekt auszugeben — für CI verdrahtet.

IVVoraussetzungen

Was die Minute braucht.

Node
20 oder neuer für die npm-Pakete — wird von doctor erzwungen.
Python
3.10 oder neuer für das PyPI-Paket.
Compute-Ebene
darwin-arm64 oder linux-x64 — die signierte Runtime wird beim ersten compute() bereitgestellt.
Query-Ebene
Überall, wo Node oder Python läuft.
Windows & andere
Die Query-Ebene funktioniert vollständig; compute() gibt einen strukturierten unsupported_platform-Fehler zurück — kein Absturz.

Außerhalb eines unterstützten Hosts compute via SQAI_ENGINE_URL oder SQAI_API_KEY auf eine Remote-Engine verweisen — Abfragen und Dispatch funktionieren weiterhin; nur die lokale Bereitstellung entfällt.

VDas Operator-Werkzeug

Drei Befehle rund um das SDK.

Verbinden, Abfragen und Berechnen laufen alle in-process über die SDKs. Die CLI ist das, was Sie drumherum ausführen — ein Gerät anmelden, die Umgebung prüfen, die Runtime verwalten.

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

    Optionale Geräteanmeldung (RFC 8628) über accounts.thyn.ai. Dabei wird ein signiertes Token übertragen — niemals Ihre Daten. Auf einem Gerät kostenlos.

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

    Node, SDK-Import, eingebetteter Vertrag, Live-Runtime-Probe. --parity prüft die schreibgeschützte, deterministische Invariante.

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

    Die lokale Compute-Runtime: Status anzeigen, vorab installieren, den gepinnten sha256 verifizieren, stoppen.

Jeder Befehl akzeptiert --json und gibt genau ein JSON-Objekt aus. Exit-Codes sind skriptfähig: 0 Erfolg · 1 fehlgeschlagene Prüfung · 2 Verwendungsfehler.