{
  "schemaVersion": 1,
  "generatedAt": "2026-11-15T00:58:23.215Z",
  "categories": [
    {
      "id": "toolchain",
      "title": "Toolchain & Templates",
      "titleJa": "ツールチェーン・テンプレート"
    },
    {
      "id": "foundation",
      "title": "Editor",
      "titleJa": "エディター"
    },
    {
      "id": "editor-testing",
      "title": "Editor Test Support",
      "titleJa": "エディターのテスト基盤"
    },
    {
      "id": "shell",
      "title": "App Shell",
      "titleJa": "アプリシェル"
    },
    {
      "id": "contracts",
      "title": "Extension Contracts",
      "titleJa": "拡張共通の契約"
    },
    {
      "id": "data",
      "title": "Data & Documents",
      "titleJa": "データ・ドキュメント"
    },
    {
      "id": "media",
      "title": "Stage & Presentation",
      "titleJa": "ステージ・表示"
    },
    {
      "id": "spatial",
      "title": "3D, AR & Space",
      "titleJa": "3D・AR・空間"
    },
    {
      "id": "camera",
      "title": "Camera & Codes",
      "titleJa": "カメラ・コード"
    },
    {
      "id": "sensing",
      "title": "Sensing & Input",
      "titleJa": "センシング・入力"
    },
    {
      "id": "network",
      "title": "Networking & Services",
      "titleJa": "通信・外部サービス"
    },
    {
      "id": "wraps",
      "title": "Library & API Wrappers",
      "titleJa": "ライブラリ・API ラッパー"
    },
    {
      "id": "apps",
      "title": "Applications",
      "titleJa": "アプリケーション"
    },
    {
      "id": "docs",
      "title": "Documentation & Samples",
      "titleJa": "ドキュメント・サンプル"
    }
  ],
  "extensions": [
    {
      "id": "kubohiroyaturbowarptitlemenu",
      "name": "TurboWarp-Title-Menu",
      "package": "@kubohiroya/turbowarp-title-menu",
      "version": "0.5.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-title-menu@0.5.0/dist/turbowarp-title-menu.js",
      "sha256": "e049ce0a3c7adec59d90c9693baf20bba0948a175094a0ddb1dec6fcda9728f2",
      "category": "shell",
      "repository": "https://github.com/kubohiroya/turbowarp-title-menu",
      "docsURL": "https://kubohiroya.github.io/turbowarp-title-menu/",
      "description": "Reusable title, application menu, and DSL source storage controls for TurboWarp.",
      "descriptions": {
        "ja": "TurboWarp拡張やPackager実行環境で使える、汎用のタイトル表示、アプリケーションメニュー、DSLファイル保管機構です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-title-menu@0.5.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyaruntimeexpression",
      "name": "TurboWarp-Runtime-Expression",
      "package": "@kubohiroya/turbowarp-runtime-expression",
      "version": "0.10.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-runtime-expression@0.10.0/dist/runtime-expression.js",
      "sha256": "ac5e86ba52d440293a5347703e2ed5d2e0fc87247ab4b28a46cbdac4bbb83463",
      "category": "contracts",
      "repository": "https://github.com/kubohiroya/turbowarp-runtime-expression",
      "docsURL": "https://kubohiroya.github.io/turbowarp-runtime-expression/",
      "description": "Safely evaluate JavaScript-like conditions over Temporary Variables runtime variables.",
      "descriptions": {
        "ja": "Temporary Variablesを安全なBoolean条件に変え、条件がfalseと trueの間で変化したときだけブロードキャストします。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-runtime-expression@0.10.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyanameddata",
      "name": "TurboWarp-Named-Data",
      "package": "@kubohiroya/turbowarp-named-data",
      "version": "0.8.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-named-data@0.8.0/dist/named-data.js",
      "sha256": "799f835db5745558d44b1f6cef6661b1ac57404d959cea84bfe7fcc47dfd3585",
      "category": "contracts",
      "repository": "https://github.com/kubohiroya/turbowarp-named-data",
      "docsURL": "https://kubohiroya.github.io/turbowarp-named-data/",
      "description": "Shared named-data references and provider registry for TurboWarp extensions.",
      "descriptions": {
        "ja": "unsandboxed TurboWarp機能拡張間で共有する、runtime-neutralなNamed Data契約とregistryです。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-named-data@0.8.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyanamedfunctions",
      "name": "TurboWarp-Named-Functions",
      "package": "@kubohiroya/turbowarp-named-functions",
      "version": "0.4.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-named-functions@0.4.0/dist/turbowarp-named-functions.js",
      "sha256": "c6ac2cccf6c806b71766c75e07365a779959379edcde3ae2fe1bffe2bd6158a5",
      "category": "contracts",
      "repository": "https://github.com/kubohiroya/turbowarp-named-functions",
      "docsURL": "https://kubohiroya.github.io/turbowarp-named-functions/",
      "description": "Named JSON functions that scripts can call by name, synchronously or asynchronously.",
      "descriptions": {
        "ja": "JSONの引数を受け取りJSONの結果を返す「名前を持つ関数」を定義するTurboWarp機能拡張です。スクリプトから名前で呼び出して結果を待つことも、いくつか開始しておいてあとでまとめて待つこともできます。ツールとして公開する印を付けると、AIのツール呼び出しなど、ほかの拡張から使えるようになります。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-named-functions@0.4.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyajotaiadapter",
      "name": "TurboWarp-Jotai-Adapter",
      "package": "@kubohiroya/turbowarp-jotai-adapter",
      "version": "0.7.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-jotai-adapter@0.7.0/dist/turbowarp-jotai-adapter.js",
      "sha256": "cd5ed0211a6460478c3dc216811a568eb93e6ff8beeb72788b3d508e1237078b",
      "category": "contracts",
      "repository": "https://github.com/kubohiroya/turbowarp-jotai-adapter",
      "docsURL": "https://kubohiroya.github.io/turbowarp-jotai-adapter/",
      "description": "TurboWarp blocks for producing Jotai bridge JSON.",
      "descriptions": {
        "ja": "TurboWarpのブロックから、Jotai連携用の状態定義JSONを作るための実験的・発展的パッケージです。Jotai本体をTurboWarp内で直接動かすのではなく、atom定義、action envelope、state snapshotをJSONとして表現し、React/Jotai側のbridgeへ渡すことをMVPにします。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-jotai-adapter@0.7.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyareactislands",
      "name": "TurboWarp-React-Islands",
      "package": "@kubohiroya/turbowarp-react-islands",
      "version": "0.7.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-react-islands@0.7.0/dist/turbowarp-react-islands.js",
      "sha256": "e98f2bb567f0bea6a259b0197276b863cdbc751a0ac88ac70c5fdf624f979078",
      "category": "contracts",
      "repository": "https://github.com/kubohiroya/turbowarp-react-islands",
      "docsURL": "https://kubohiroya.github.io/turbowarp-react-islands/",
      "description": "Describe React islands from TurboWarp blocks for turbowarp-http-server HTML responses.",
      "descriptions": {
        "ja": "turbowarp-http-server と turbowarp-html で作るHTMLレスポンスの一部に、Reactコンポーネントを island として埋め込むためのTurboWarp拡張とTypeScriptヘルパーです。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-react-islands@0.7.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyadiagnosticoverlay",
      "name": "TurboWarp-Diagnostic-Overlay",
      "package": "@kubohiroya/turbowarp-diagnostic-overlay",
      "version": "0.9.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-diagnostic-overlay@0.9.0/dist/diagnostic-overlay.js",
      "sha256": "75302c9854a79e82b43e3a853fdd2f077875f61ed3db0d1ff706128d8f644412",
      "category": "contracts",
      "repository": "https://github.com/kubohiroya/turbowarp-diagnostic-overlay",
      "docsURL": "https://kubohiroya.github.io/turbowarp-diagnostic-overlay/",
      "description": "Render structured diagnostics as safe SVG overlays on the TurboWarp stage.",
      "descriptions": {
        "ja": "構造化された診断データを検証し、安全なSVGテキストとして描画して、ステージ上に表示するアプリケーション非依存のTurboWarp拡張機能です。特定のアプリケーションやDSLに依存しません。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-diagnostic-overlay@0.9.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyastructureddata",
      "name": "TurboWarp-Structured-Data",
      "package": "@kubohiroya/turbowarp-structured-data",
      "version": "0.10.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-structured-data@0.10.0/dist/structured-data.js",
      "sha256": "b05f9d707dcbc9f31aa10679037e3923e9ce4138c9f1ce14ce642348b12045ce",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-structured-data",
      "docsURL": "https://kubohiroya.github.io/turbowarp-structured-data/",
      "description": "Named structured data with JSON/YAML codecs for TurboWarp and server compilation.",
      "descriptions": {
        "ja": "名前付き構造化データ、安全なJSON/YAML codec、決定的なpath操作、上限付き反復、server compiler契約を提供するTurboWarp機能拡張です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-structured-data@0.10.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": [
        "kubohiroyanameddata"
      ]
    },
    {
      "id": "kubohiroyadocumentdata",
      "name": "TurboWarp-Document-Data",
      "package": "@kubohiroya/turbowarp-document-data",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-document-data@0.6.0/dist/document-data.js",
      "sha256": "06699877e67d05aacbeb373c7bbc8739dfa9e9edbdd5a274535424881dfea649",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-document-data",
      "docsURL": "https://kubohiroya.github.io/turbowarp-document-data/",
      "description": "Named HTML and Markdown document trees for TurboWarp and HTTP bodies.",
      "descriptions": {
        "ja": "HTMLとMarkdownをtyped tree/ASTとしてparseし、target-localな名前で保持するTurboWarp機能拡張です。turbowarp-extension-templateを基に初期化し、canonical @kubohiroya/turbowarp-named-data registryへ接続します。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-document-data@0.6.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": [
        "kubohiroyayamljson",
        "kubohiroyanameddata"
      ]
    },
    {
      "id": "kubohiroyayamljson",
      "name": "TurboWarp-YAML-JSON",
      "package": "@kubohiroya/turbowarp-yaml-json",
      "version": "0.10.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-yaml-json@0.10.0/dist/turbowarp-yaml-json.js",
      "sha256": "361280dd0dde21e16235161bbef5acb31158b7a428e704afdfc90ce1c4cacb03",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-yaml-json",
      "docsURL": "https://kubohiroya.github.io/turbowarp-yaml-json/",
      "description": "Safely parse or build YAML and JSON data with immutable reporter blocks.",
      "descriptions": {
        "ja": "TurboWarp 上で YAML／JSON 文字列を安全に parse するか、構造化データを immutable な reporter 値として組み立て、最後の出力境界で YAML または JSON 文字列へ render する拡張です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-yaml-json@0.10.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyamarkdown",
      "name": "TurboWarp-Markdown",
      "package": "@kubohiroya/turbowarp-markdown",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-markdown@0.6.0/dist/turbowarp-markdown.js",
      "sha256": "5c5a6c540ead4af1310cc1cfd7cea64c67d528006fb194f5d4dbfd569c75aab3",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-markdown",
      "docsURL": "https://kubohiroya.github.io/turbowarp-markdown/",
      "description": "Build Markdown documents with immutable reporter blocks.",
      "descriptions": {
        "ja": "TurboWarp 上で Markdown を immutable な構造化フラグメントとして組み立て、最後の出力境界でだけ Markdown 文字列へレンダリングする拡張です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-markdown@0.6.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyahtml",
      "name": "TurboWarp-HTML",
      "package": "@kubohiroya/turbowarp-html",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-html@0.6.0/dist/turbowarp-html.js",
      "sha256": "453f6237bc4f71fb1938edd3d7c32106dacdc1f164429b00bdb6c3e283b618a1",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-html",
      "docsURL": "https://kubohiroya.github.io/turbowarp-html/",
      "description": "Build escaped HTML fragments with immutable reporter blocks.",
      "descriptions": {
        "ja": "TurboWarp 上で HTML を immutable な構造化フラグメントとして組み立て、最後の出力境界でだけ HTML 文字列へレンダリングする拡張です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-html@0.6.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyatextlines",
      "name": "TurboWarp-Text-Lines",
      "package": "@kubohiroya/turbowarp-text-lines",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-text-lines@0.6.0/dist/text-lines.js",
      "sha256": "fc7f60a5020ee3f3234cdd3a52767ac4b044ad0622f97d728a86a6ae432321e7",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-text-lines",
      "docsURL": "https://kubohiroya.github.io/turbowarp-text-lines/",
      "description": "Count, read, and split text by lines in TurboWarp.",
      "descriptions": {
        "ja": "TurboWarpのプロジェクトで複数行テキストを扱います。Text Linesは次の4つのblockを追加します。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-text-lines@0.6.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyabinarydata",
      "name": "TurboWarp-Binary-Data",
      "package": "@kubohiroya/turbowarp-binary-data",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-binary-data@0.6.0/dist/binary-data.js",
      "sha256": "132302f36d01b492e3dece24be041b04fce272c9ce2a483b86c8c9142b8e42c3",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-binary-data",
      "docsURL": "https://kubohiroya.github.io/turbowarp-binary-data/",
      "description": "Store named binary data and expose immutable raw body snapshots.",
      "descriptions": {
        "ja": "project scopeの名前付きバイナリ値と、再利用可能なraw body snapshotを提供するTurboWarp拡張機能です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-binary-data.svg",
      "unsandboxed": "unknown",
      "dependencies": [
        "kubohiroyanameddata"
      ]
    },
    {
      "id": "kubohiroyakvs",
      "name": "TurboWarp-KVS",
      "package": "@kubohiroya/turbowarp-kvs",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-kvs@0.6.0/dist/kvs.js",
      "sha256": "372212c0e3c8cf4700ca2957fbd95a3341b4c1f865d17d77c1f811187d9e40c0",
      "category": "data",
      "repository": "https://github.com/kubohiroya/turbowarp-kvs",
      "docsURL": "https://kubohiroya.github.io/turbowarp-kvs/",
      "description": "A portable namespace and key value store for TurboWarp.",
      "descriptions": {
        "ja": "TurboWarp projectとserver compilerで共通利用するnamespace/key型の永続storeです。text valueはbrowserのIndexedDBへ保存します。TurboWarp Asset Managerから抽出したIndexedDB/OPFS対応BinaryObjectStoreも公開し、binary bytesをScratch文字列やmanifestへ埋め込みません。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-kvs.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyasvgtext",
      "name": "TurboWarp-SVG-Text",
      "package": "@kubohiroya/turbowarp-svg-text",
      "version": "0.14.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-svg-text@0.14.0/dist/svg-text.js",
      "sha256": "ac0be1174530f150b1da48339ec7d4729b4fc2fd5bbcba317fb8ff5d2cca9587",
      "category": "media",
      "repository": "https://github.com/kubohiroya/turbowarp-svg-text",
      "docsURL": "https://kubohiroya.github.io/turbowarp-svg-text/",
      "description": "Responsive named-style SVG text actors for TurboWarp.",
      "descriptions": {
        "ja": "TurboWarp-SVG-Textは、応答的な名前付きスタイル、host非依存のplain/rubyレイアウト、SVG text actorを提供します。turbowarp-bubbleのようなhost拡張機能に対するテキストproviderであり、Bubbleの形状、配置、 portrait、アニメーションはhost側の責務です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-svg-text@0.14.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyabubble",
      "name": "TurboWarp-Bubble",
      "package": "@kubohiroya/turbowarp-bubble",
      "version": "0.18.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-bubble@0.18.0/dist/turbowarp-bubble.js",
      "sha256": "c92087e5862fd19825802bf13242eaf7ad551b070f43f719f076f1a263750421",
      "category": "media",
      "repository": "https://github.com/kubohiroya/turbowarp-bubble",
      "docsURL": "https://kubohiroya.github.io/turbowarp-bubble/",
      "description": "Layered say and think bubbles with portrait animation and continue indicators.",
      "descriptions": {
        "ja": "立ち絵のアニメーションや入力待ちの表示を伴う吹き出しを、重ねて表示します。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-bubble@0.18.0/assets/block-icon.svg",
      "unsandboxed": "required",
      "dependencies": [
        "kubohiroyasvgtext",
        "kubohiroyaassetcache",
        "kubohiroyaasyncinput",
        "kubohiroyaruntimeexpression"
      ]
    },
    {
      "id": "kubohiroyaassetcache",
      "name": "TurboWarp-Asset-Cache",
      "package": "@kubohiroya/turbowarp-asset-cache",
      "version": "0.8.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-asset-cache@0.8.0/dist/asset-cache.js",
      "sha256": "56e31318362e57a143750827b517c3d019458e23e860d02e4ac6a71ad7ac73d1",
      "category": "media",
      "repository": "https://github.com/kubohiroya/turbowarp-asset-cache",
      "docsURL": "https://kubohiroya.github.io/turbowarp-asset-cache/",
      "description": "Register, cache, display, and play image, audio, and runtime text assets in TurboWarp.",
      "descriptions": {
        "ja": "TurboWarpで画像・音声・実行時テキストの素材を登録・保持し、表示・再生します。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-asset-cache@0.8.0/assets/block-icon.svg",
      "unsandboxed": "required",
      "dependencies": [
        "kubohiroyanameddata"
      ]
    },
    {
      "id": "kubohiroyaextendednotification",
      "name": "TurboWarp-Extended-Notification",
      "package": "@kubohiroya/turbowarp-extended-notification",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-extended-notification@0.6.0/dist/extended-notification.js",
      "sha256": "078f985fe8ba2a0a5dc0cb8316d6fc78e3eee2893325aca4ee0f34af5eacd36b",
      "category": "media",
      "repository": "https://github.com/kubohiroya/turbowarp-extended-notification",
      "docsURL": "https://kubohiroya.github.io/turbowarp-extended-notification/",
      "description": "Wait for custom notifications or key presses with optional timeouts.",
      "descriptions": {
        "ja": "任意のタイムアウト付きで、独自の通知やキー入力を待つTurboWarp拡張機能です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-extended-notification@0.6.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroya3dsceneruntime",
      "name": "TurboWarp-3D-Scene-Runtime",
      "package": "@kubohiroya/turbowarp-3d-scene-runtime",
      "version": "0.7.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-3d-scene-runtime@0.7.0/dist/3d-scene-runtime.js",
      "sha256": "3f8e0d947626328b803546408646b5393ec332f57feb37ea63dc2ea1f8c45306",
      "category": "spatial",
      "repository": "https://github.com/kubohiroya/turbowarp-3d-scene-runtime",
      "docsURL": "https://kubohiroya.github.io/turbowarp-3d-scene-runtime/",
      "description": "Applies a 3D/AR scene description by dispatching its call plan to turbowarp-aframe and turbowarp-ar.",
      "descriptions": {
        "ja": "TurboWarp-3D-Scene-Runtime は、YAML または JSON で書いた 3D/AR シーンを適用する拡張です。1つのブロックが記述を受け取り、検証して呼び出し計画へ変換し、turbowarp-aframe と turbowarp-ar のランタイム capability を呼んでシーンを構築します。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-3d-scene-runtime@0.7.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "turbowarpaframe",
      "name": "TurboWarp-A-Frame",
      "package": "@kubohiroya/turbowarp-aframe",
      "version": "0.12.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-aframe@0.12.0/dist/turbowarp-aframe.js",
      "sha256": "6f984c03eeb7943f1497290e22a156ab7e52a90897ac0e2c181ac816aed43f60",
      "category": "spatial",
      "repository": "https://github.com/kubohiroya/turbowarp-aframe",
      "docsURL": "https://kubohiroya.github.io/turbowarp-aframe/",
      "description": "A TurboWarp extension for declarative A-Frame scene graphs.",
      "descriptions": {
        "ja": "TurboWarp-A-Frame は、TurboWarp のブロックから宣言型の A-Frame シーングラフを構築する unsandboxed 拡張です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-aframe@0.12.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyaar",
      "name": "TurboWarp-AR",
      "package": "@kubohiroya/turbowarp-ar",
      "version": "0.8.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-ar@0.8.0/dist/ar.js",
      "sha256": "95f21e85299c246876a5efd3114b3db9f32b1c91d4e500d4a4fc47606c0ddc14",
      "category": "spatial",
      "repository": "https://github.com/kubohiroya/turbowarp-ar",
      "docsURL": "https://kubohiroya.github.io/turbowarp-ar/",
      "description": "A TurboWarp extension for camera-source based AR target state.",
      "descriptions": {
        "ja": "TurboWarp-AR は、共有カメラの映像を TurboWarp ステージの背面に敷き、scene node が追従できる名前付きの target pose を保持する拡張です。カメラ取得は turbowarp-camera-source に委譲し、A-Frame node への書き込みは turbowarp-aframe が読み込まれていればその runtime capability を通して行います。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-ar@0.8.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyaphotogrammetry",
      "name": "TurboWarp-Photogrammetry",
      "package": "@kubohiroya/turbowarp-photogrammetry",
      "version": "0.5.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-photogrammetry@0.5.0/dist/photogrammetry.js",
      "sha256": "1a5bd61ec1446c8a9d9d69f175dd3ed395a53279a4cb6c65651013bc46db038d",
      "category": "spatial",
      "repository": "https://github.com/kubohiroya/turbowarp-photogrammetry",
      "docsURL": "https://kubohiroya.github.io/turbowarp-photogrammetry/",
      "description": "Initial scaffold for photogrammetry.",
      "descriptions": {
        "ja": "turbowarp-extension-template v0.4.0を元にした初期雛形です。現時点ではサンプルの挨拶ブロックのみ動作し、以下の機能は未実装です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-photogrammetry@0.5.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyacamerasource",
      "name": "TurboWarp-Camera-Source",
      "package": "@kubohiroya/turbowarp-camera-source",
      "version": "0.23.1",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-camera-source@0.23.1/dist/camera-source.js",
      "sha256": "6c0de20ae992bc44d245852f5b4d0391031099282e645911ac6a8da7c713ce57",
      "category": "camera",
      "repository": "https://github.com/kubohiroya/turbowarp-camera-source",
      "docsURL": "https://kubohiroya.github.io/turbowarp-camera-source/",
      "description": "Share one MediaDevices camera stream between TurboWarp extensions.",
      "descriptions": {
        "ja": "1つのカメラ映像を複数のTurboWarp機能拡張で共有します。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-camera-source.svg",
      "unsandboxed": "required",
      "dependencies": []
    },
    {
      "id": "kubohiroyacameracalibration",
      "name": "TurboWarp-Camera-Calibration",
      "package": "@kubohiroya/turbowarp-camera-calibration",
      "version": "0.19.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-camera-calibration@0.19.0/dist/camera-calibration.js",
      "sha256": "bdc4afe8f804ff0f6cbe11a1e05b4c770ea7d538585383d09fa8a24ef6b23124",
      "category": "sensing",
      "repository": "https://github.com/kubohiroya/turbowarp-camera-calibration",
      "docsURL": "https://kubohiroya.github.io/turbowarp-camera-calibration/",
      "description": "Calibrate a shared Camera Source camera and publish its intrinsic calibration profile.",
      "descriptions": {
        "ja": "TurboWarp-Camera-Source で共有しているカメラをChArUcoボードで校正し、得られた内部校正プロファイルを提供するためのTurboWarp機能拡張です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-camera-calibration@0.19.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": [
        "kubohiroyacamerasource"
      ]
    },
    {
      "id": "kubohiroyatm",
      "name": "TurboWarp-Teachable-Machine",
      "package": "@kubohiroya/turbowarp-teachable-machine",
      "version": "4.2.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@4.2.0/dist/teachable-machine.js",
      "sha256": "54e7a168fdfcf98fd63d3c86be7179f094fdb9019eabf4bd768877179dccf387",
      "category": "sensing",
      "repository": "https://github.com/kubohiroya/turbowarp-teachable-machine",
      "docsURL": "https://kubohiroya.github.io/turbowarp-teachable-machine/",
      "description": "Use Teachable Machine pose, image, or audio models for recognition in TurboWarp.",
      "descriptions": {
        "ja": "公開済みのTeachable Machineのポーズ・画像・音声モデルを、TurboWarpプロジェクトの入力として使うための機能拡張です。カメラの各フレームやマイクの各区間が、スクリプトからそのまま使えるラベル・信頼度・真偽条件になります。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-teachable-machine@4.2.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyavisualtracking",
      "name": "TurboWarp-Visual-Tracking",
      "package": "@kubohiroya/turbowarp-visual-tracking",
      "version": "0.4.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-visual-tracking@0.4.0/dist/visual-tracking.js",
      "sha256": "881c7227f4c4c132e2424ed1cab16ed6ae54fd63a95787f5a98d2cb74a3913b7",
      "category": "sensing",
      "repository": "https://github.com/kubohiroya/turbowarp-visual-tracking",
      "docsURL": "https://kubohiroya.github.io/turbowarp-visual-tracking/",
      "description": "Initial scaffold for visual-tracking.",
      "descriptions": {
        "ja": "turbowarp-extension-template v0.4.0を元にした初期雛形です。現時点ではサンプルの挨拶ブロックのみ動作し、以下の機能は未実装です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-visual-tracking@0.4.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyaasyncinput",
      "name": "TurboWarp-Async-Input",
      "package": "@kubohiroya/turbowarp-async-input",
      "version": "0.12.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-async-input@0.12.0/dist/async-input.js",
      "sha256": "eb31c3c345ab52ec53d4aaf36ab28e3636412e6814de2c8ee32bf6062c843dc3",
      "category": "sensing",
      "repository": "https://github.com/kubohiroya/turbowarp-async-input",
      "docsURL": "https://kubohiroya.github.io/turbowarp-async-input/",
      "description": "Bind keyboard and current-sprite pointer input to Temporary Variables runtime variables.",
      "descriptions": {
        "ja": "TurboWarp Temporary Variables向けに、target単位で非同期のキーボード・ポインタ・累積ポーズ入力を扱う拡張機能です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-async-input@0.12.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": [
        "kubohiroyajsqr",
        "kubohiroyawebusbpasori"
      ]
    },
    {
      "id": "kubohiroyawebrtc",
      "name": "TurboWarp-WebRTC-Manual-Pairing",
      "package": "@kubohiroya/turbowarp-webrtc",
      "version": "0.7.1",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-webrtc@0.7.1/dist/turbowarp-webrtc.js",
      "sha256": "7723133a05269ee2148d8953d790d32a1a2923e431ebb42f952d461a33fb0d90",
      "category": "network",
      "repository": "https://github.com/kubohiroya/turbowarp-webrtc",
      "docsURL": "https://kubohiroya.github.io/turbowarp-webrtc/",
      "description": "Peer-to-peer DataChannel messaging for TurboWarp with manual pairing codes.",
      "descriptions": {
        "ja": "TurboWarp向けの手動ペアリング型WebRTC DataChannel拡張です。TurboWarp Kamishibaiやリアル脱出ゲームのような、複数端末・物理イベント連携ランタイムの低レベル通信路として使うことを目的にしています。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-webrtc.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyacloudflareworker",
      "name": "TurboWarp-Cloudflare-Worker",
      "package": "@kubohiroya/turbowarp-cloudflare-worker",
      "version": "0.7.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-cloudflare-worker@0.7.0/dist/turbowarp-cloudflare-worker.js",
      "sha256": "f6b3be37c7319248828dcc536d82168a69b973baa48220bb878c80e35760c6df",
      "category": "network",
      "repository": "https://github.com/kubohiroya/turbowarp-cloudflare-worker",
      "docsURL": "https://kubohiroya.github.io/turbowarp-cloudflare-worker/",
      "description": "Cloudflare Workers generation blocks for turbowarp-http-server.",
      "descriptions": {
        "ja": "TurboWarp のブロックで表現した HTTP ハンドラ構成を Cloudflare Workers 向け TypeScript/Hono アプリへ変換するための初期実装です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-cloudflare-worker@0.7.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyasesame",
      "name": "TurboWarp-Sesame",
      "package": "@kubohiroya/turbowarp-sesame",
      "version": "0.4.1",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-sesame@0.4.1/dist/turbowarp-sesame.js",
      "sha256": "bbbf516dab4f20c0460e43204752e80cddd83c5b2d3a1e7b9cfaf3d1c394350c",
      "category": "network",
      "repository": "https://github.com/kubohiroya/turbowarp-sesame",
      "docsURL": "https://kubohiroya.github.io/turbowarp-sesame/",
      "description": "Control and inspect Candy House Sesame devices from TurboWarp.",
      "descriptions": {
        "ja": "Candy House Sesameの状態確認と、明示的に有効化したbuildでの遠隔施錠操作を行うTurboWarp機能拡張です。APIをブラウザから直接呼ぶDirect modeと、資格情報をlocalhostに分離するRelay modeを選べます。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-sesame.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyaqrdisplay",
      "name": "TurboWarp-QR-Display",
      "package": "@kubohiroya/turbowarp-qr-display",
      "version": "0.6.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-qr-display@0.6.0/dist/qr-display.js",
      "sha256": "6c0406e5c1f5c051f002fa60ce8d5bd108b47dd9331be1dc9388d1850128bb69",
      "category": "wraps",
      "repository": "https://github.com/kubohiroya/turbowarp-qr-display",
      "docsURL": "https://kubohiroya.github.io/turbowarp-qr-display/",
      "description": "Show any text as a QR code on a TurboWarp sprite.",
      "descriptions": {
        "ja": "TurboWarp QR Displayは、任意の文字列をQRコードにしてスプライトに表示するTurboWarp拡張です。QRコードはスプライトのコスチュームを変更せずに置き換えて表示し、隠したとき・プロジェクトを止めたとき・スプライトを削除したときに元のコスチュームへ戻ります。表示内容はプロジェクトに保存されません。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-qr-display@0.6.0/assets/block-icon.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyajsqr",
      "name": "TurboWarp-jsQR",
      "package": "@kubohiroya/turbowarp-jsqr",
      "version": "0.8.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-jsqr@0.8.0/dist/jsqr.js",
      "sha256": "29fbc85f4c25bcb14046238842d239cef34206b7cc2540c4e6a0fa2515eabaa9",
      "category": "wraps",
      "repository": "https://github.com/kubohiroya/turbowarp-jsqr",
      "docsURL": "https://kubohiroya.github.io/turbowarp-jsqr/",
      "description": "Read QR codes, including Structured Append sequences, from a shared TurboWarp camera source. Decodes with zxing-cpp.",
      "descriptions": {
        "ja": "TurboWarp jsQRは、共有カメラフレームからQRコードを読み取るTurboWarp拡張capabilityです。0.4.0からは、jsQRではなくzxing-cpp（zxing-wasm）で復号し、連結QR（Structured Append）の中での位置も返します。カメラを自前で所有せず、@kubohiroya/turbowarp-camera-sourceを優先して使うことで、TurboWarp TMなどのカメラ利用と共存し、qrのような名前付き下向きカメラを指定できます。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-jsqr.svg",
      "unsandboxed": "unknown",
      "dependencies": [
        "kubohiroyacamerasource"
      ]
    },
    {
      "id": "kubohiroyawebspeech",
      "name": "TurboWarp-Web-Speech",
      "package": "@kubohiroya/turbowarp-web-speech",
      "version": "0.4.1",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-web-speech@0.4.1/dist/turbowarp-web-speech.js",
      "sha256": "ffc63f7ba8ab85635ffab4b99bc9878605dd1551c5058ca07db9dae936826748",
      "category": "wraps",
      "repository": "https://github.com/kubohiroya/turbowarp-web-speech",
      "docsURL": "https://kubohiroya.github.io/turbowarp-web-speech/",
      "description": "Speech recognition and speech synthesis in the browser with the Web Speech API.",
      "descriptions": {
        "ja": "Web Speech APIを使い、ブラウザの中で音声認識と音声合成を行うTurboWarp機能拡張です。APIキーも、この拡張専用のサーバも不要です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-web-speech.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyawebusbpasori",
      "name": "TurboWarp-WebUSB-PaSoRi",
      "package": "@kubohiroya/turbowarp-webusb-pasori",
      "version": "0.7.0",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-webusb-pasori@0.7.0/dist/webusb-pasori.js",
      "sha256": "b779245f54a33685ba1cdc7ccef467229bffc1ed979f34787850b7dee65e09d5",
      "category": "wraps",
      "repository": "https://github.com/kubohiroya/turbowarp-webusb-pasori",
      "docsURL": "https://kubohiroya.github.io/turbowarp-webusb-pasori/",
      "description": "Read NFC card IDm and PMm values with Sony PaSoRi over WebUSB.",
      "descriptions": {
        "ja": "TurboWarp WebUSB PaSoRiは、Sony PaSoRiリーダーからWebUSB経由でNFCカードのIDm/PMmを読み取るTurboWarp capability extensionです。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-webusb-pasori.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    },
    {
      "id": "kubohiroyauuid",
      "name": "TurboWarp-UUID",
      "package": "@kubohiroya/turbowarp-uuid",
      "version": "0.4.1",
      "url": "https://cdn.jsdelivr.net/npm/@kubohiroya/turbowarp-uuid@0.4.1/dist/turbowarp-uuid.js",
      "sha256": "950e837076ea8a0fe3fa8565aa1441745afedcf26112c7a3ee0e9bf0a5bdb1f1",
      "category": "wraps",
      "repository": "https://github.com/kubohiroya/turbowarp-uuid",
      "docsURL": "https://kubohiroya.github.io/turbowarp-uuid/",
      "description": "Generate UUID v4/v7 and validate UUID strings in TurboWarp.",
      "descriptions": {
        "ja": "TurboWarpでUUID v4/v7を生成し、文字列がUUID形式か判定する拡張機能です。"
      },
      "author": "Hiroya Kubo",
      "authorURL": "https://github.com/kubohiroya",
      "license": "MPL-2.0",
      "banner": "https://kubohiroya.github.io/turbowarp-plus-packages/assets/extension-icons/turbowarp-uuid.svg",
      "unsandboxed": "unknown",
      "dependencies": []
    }
  ]
}
