Agent Runtime のブラウザー契約
Agent Runtime はプレイ可能なリリースを、隔離された iframe 内の静的ブラウザー アセットとして読み込みます。ゲームは描画、入力、ルール、ゲーム状態を持ち、 Runtime は隔離、ライフサイクル、アセット配信、VifuHub SDK bridge を扱います。
| 項目 | 要件 |
|---|---|
| 入口 | main.url が build.output 内の HTML ファイルを指す。通常は index.html。 |
| ビルド出力 | 静的ブラウザーファイルのみ。ゲーム用のサーバープロセスは実行しない。 |
| アセット | 相対パスを優先し、宣言済みデータやメディアには hub.resources を使う。 |
| JavaScript | 実行コードをリリースに含める。外部 JavaScript は許可しない。 |
| ネットワーク | 任意の外部 API ではなく VifuHub SDK を使う。 |
| ストレージ | 一時状態にはブラウザーストレージ、永続状態には hub.gameState を使う。 |
| ホストブリッジ | 生の window.parent.postMessage(...) ではなく @vifu/hub を使う。 |
トップレベルナビゲーション、必須ポップアップ、親ウィンドウへの直接アクセスを 避け、iframe 内でレスポンシブに表示し、非表示時に停止・再開できるようにします。
アップロードされたゲームコードは厳格な sandbox 内で動きます。ブラウザーの sandbox と CSP が実行を制限し、保護された操作はその所有サービスが認可します。
成果物の規則はデプロイポリシーを確認してください。
