Iインストール
最初の証明。
クリーンな環境から、ハッシュ付きで再生可能な答えまで一分以内。アカウント不要、キー不要、サーバー不要。どちらの言語でも同じ四ステップを実行すれば、証明は同じハッシュになる。
TypeScriptNode ≥ 20
01インストール
02ソースを接続する
import { createSQAI } from "@thyn-ai/sqai"; const sqai = createSQAI(); await sqai.connect("./sales.csv", { name: "sales" });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…04値を計算する
const r = await sqai.compute({ module: "finance", function: "npv", args: [0.1, [-1000, 300, 420, 560, 680]], });r.value505.020148896933r.computation_hashb74f67d0…d91bc8
PythonPython ≥ 3.10 が必要
01インストール
02ソースを接続する
from sqai import SQAI sqai = SQAI() sqai.connect("./sales.csv", name="sales")03クエリを実行する
a = sqai.ask({ "metric": "revenue", "aggregation": "sum", "group_by": "region", "source_name": "sales", }) # east 2130.5 · west 1519 · north 1000 # plan_hash f87610d8afeb…04値を計算する
r = sqai.compute( module="finance", function="npv", args=[0.1, [-1000, 300, 420, 560, 680]], )r["value"]505.020148896933r["computation_hash"]b74f67d0…d91bc8
b74f67d0d7a594aa7ac91f6291612452aa8ccdf603351ebc8d801a6fddd91bc8
完全一致。バイト単位で。
両 SDK は同じ結果を同じバイト列に正規化するため、ハッシュは言語をまたいで一致する — 偶然ではなく、設計による。どこでこの呼び出しを再生しても、この行が出力されなければならない。
II初回セットアップ
一度プロビジョニングすれば、あとは即時。
クエリプレーンはインストール完了と同時にインプロセスで起動 — デーモン不要、キー不要。コンピュートプレーンは初回の compute() 時に署名済みランタイムを一度プロビジョニングし、以降は常駐させる。
await sqai.compute(…) // first call, ever約 110 秒 · マシンごとに一度
await sqai.compute(…) // every call after0.83〜0.93 ms · 実測値
ランタイムはすでに常駐している — ダウンロードなし、コールドスタートなし、クエリごとのセットアップなし。
バンドルはユーザー単位でキャッシュされるため、プロビジョニングはマシンごとに一度 — プロセスごとではない。
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: okdoctor は Node バージョン、SDK インポート、埋め込みコントラクト、ライブランタイムプローブを確認する。クリーンな環境ではランタイム行が unavailable と表示されるが、これはスキップであり失敗ではない。クエリプレーンにランタイムは不要だ。
- ハッシュ固定コントラクトには 4,778 のケイパビリティが含まれ、そのうち 4,574 が SDK に公開されている — 読み取り専用かつ決定論的。
- `--parity` を追加すると、その不変条件をアサートし、コントラクトモジュールと実行中エンジンの差分を確認できる。
- `--json` を追加すると、JSON オブジェクトを一つだけ出力 — CI 向けに設計されている。
IV要件
一分間に必要なもの。
- Node
- npmパッケージには20以上が必要です — doctor が強制します。
- Python
- PyPIパッケージには3.10以上が必要です。
- コンピュートプレーン
- darwin-arm64 または linux-x64 — 署名済みランタイムは初回の compute() 時にプロビジョニングされます。
- クエリプレーン
- Node または Python が動作する環境であればどこでも。
- Windows・その他
- クエリプレーンは完全に動作します。compute() はクラッシュせず、構造化された unsupported_platform エラーを返します。
サポート対象外のホストでは、SQAI_ENGINE_URL または SQAI_API_KEY でリモートエンジンにコンピュートを向けてください — クエリとディスパッチは引き続き機能し、ローカルプロビジョニングのみスキップされます。
Vオペレーターの作業帯
SDK を支える3つのコマンド。
接続・問い合わせ・コンピュートはすべて SDK を通じてインプロセスで行われます。CLI はその周囲で使うツールです — デバイスのサインイン、環境の確認、ランタイムの管理を担います。
$sqai login [--no-browser]
accounts.thyn.ai 経由のオプションのデバイスサインイン(RFC 8628)。署名済みトークンのみを転送し、データは一切送信しません。1台まで無料。
$sqai doctor [--parity] [--json]
Node、SDKインポート、組み込みコントラクト、ライブランタイムプローブを確認します。--parity は読み取り専用・決定論的な不変条件をアサートします。
$sqai runtime <status|install|verify|stop>
常駐コンピュートランタイム: 状態の報告、事前インストール、固定 sha256 の検証、停止。
すべてのコマンドは --json を受け付け、JSONオブジェクトを1つだけ出力します。終了コードはスクリプト対応です: 0 成功 · 1 チェック失敗 · 2 使用法エラー。
VI次へ