変更履歴
このページでは、公開パッケージ @neongate-ai/orbz、カスタム要素 <orb-z> の契約、および対応する統合方法に関するユーザー向けの変更を記録します。
実装の正本は GitHub リポジトリ です。公開版は npm 、完全なドキュメントは orbz.site で確認できます。
1.0.2 — 2026-09-08
Neongate プリセットの修正
neongateを既定プリセットの正式名に戻しました。DEFAULT_ORBZ_PRESET、ORBZ_PRESET_NAMES、要素の正規化済みプリセット getter が対象です。Neongate の色は変わりません。- 1.0.1 で誤って使われたアカウント由来の名前を、非推奨の入力別名として維持しました。既存の属性、プロパティ代入、型付き入力、ガードは引き続き受け付けます。正規化と属性への反映には
neongateを使います。 - 非推奨のパレットキーを、
ORBZ_PRESETS.neongateの不変かつ列挙不可の別名として維持しました。正式なプリセット一覧は引き続き6件です。 - 旧形式の簡略・完全設定オブジェクトを、呼び出し元の入力を変更せず正規化します。指定された色と厳密な検証を維持します。
1.0.1 からの更新
公開済みの修正版をインストールし、固定バージョンの CDN URL を更新してください。
npm install @neongate-ai/orbz@1.0.2新しく明示するプリセットには neongate を使ってください。廃止されたアカウント由来のキーも互換性を維持するため、都合のよい時点で移行できます。正規化済みの名前を読むコードは neongate を想定してください。既定の例とパレット参照は Neongate プリセットの命名を参照してください。
この修正は、履歴として以下に残す 1.0.1 の命名案内に優先します。npm スコープは @neongate-ai/orbz のままです。保守対象のソースリポジトリは現在 jonatassales 配下にあります。
npm で 1.0.2 を表示
· v1.0.2 のソースタグを見る
· タグ間のソースを比較
1.0.1 — 2026-09-08
クリーンアップと簡略設定
- Orbz ソースの
orb cleanup(別名orb clean)を修正し、ルートと下位階層の未追跡node_modulesおよび生成物を既定で削除するようにしました。--dry-runは対象を表示し、--keep-dependenciesは依存関係を保持します。追跡済み内容、ソース/アセット、ハーネスメタデータ、入れ子のリポジトリは保持し、ディレクトリのシンボリックリンクはたどりません。 - 手書きの設定 JSON を簡略化しました。変換処理は省略された内部の外観・動作・音声グループを型付き既定値で補い、実行時設定を検証、複製、凍結します。これらのグループの明示的な上書きは引き続き可能です。
- GitHub の所有者リンクを当時の個人アカウントに更新し、README、CLI ガイド、エンジニアリングチェックも更新しました。npm パッケージ名は
@neongate-ai/orbzのままです。
1.0.0 からの更新
修正版をインストールし、固定バージョンの CDN URL を更新してください。
npm install @neongate-ai/orbz@1.0.1この版では既定プリセットを一時的に個人アカウント名へ変更しましたが、従来の neongate の色は維持しました。1.0.2 で正式名を neongate に戻したため、新しい統合では <orb-z preset="neongate"></orb-z> を使ってください。ソースを保守する場合、node_modules を残すには orb cleanup --keep-dependencies を使います。orb cleanup だけでは削除されます。パッチリリースであっても、この移行事項は適用されます。
1.0.0 — 2026-09-06
音声モデルと Realtime 会話
web-speech、openai-speech、openai-realtime用の型付き JavaScript プロパティvoiceModelを追加しました。プロバイダーの選択だけでは発話しません。ユーザー操作後、ホストが明示的に発話や会話を開始します。OpenAIRealtimeAdapterとブラウザーからプロバイダーへの直接 WebRTC 音声を追加しました。アプリケーションは独自エンドポイント、または SDP answer を返す非同期コールバックを使い、realtimeSessionでセッション開始を認可します。startConversation()、stopConversation()、interruptConversation()、読み取り専用conversationState、orbz-conversation-state-changeとorbz-transcriptを追加し、アプリ側の操作・文字起こし UI に対応しました。- プロバイダーキーはアプリのバックエンドに保持します。モデル設定は公開情報だけを含み、エンドポイントオブジェクトは
apiKey、token、headersなどの未知のフィールドを拒否します。秘密情報やセッショントークンを HTML 属性、コンポーネントプロパティ、設定 JSON に入れないでください。
正式な設定と CLI
- フォークの保守者は
src/orbz.config.jsonでコンポーネント、外観、動作、音声、Realtime の既定値を編集し、再ビルドします。インストール済みパッケージは同梱の既定値を使い、実行時に設定を取得しません。 - 読み取り専用
orbzConfigurationと純粋なtransformOrbzConfiguration()を追加しました。パッケージのシングルトンを変更せず、完全な設定を検証、複製、変換、凍結できます。 - Orb CLI のコマンド処理とヘルプを統合しました。既存の公開エクスポート、視覚属性、ネイティブ登録、明示的な
voiceEngine統合は引き続き利用できます。
0.4.3 からの更新
公開版をインストールし、固定バージョンの CDN URL を更新してください。
npm install @neongate-ai/orbz@1.0.0既存の視覚サンプルは同じ <orb-z> タグとブラウザー入口を使います。新しい構造化オプションは JavaScript プロパティで設定し、voice-model HTML 属性はありません。Realtime にはアプリ側のセッション認可と明示的な操作が必要です。更新だけでは音声を開始したりマイクを要求したりしません。明示的に設定した voiceEngine は voiceModel に優先します。
0.4.3 — 2026-09-04
0.3.1 以降の主な変更
- 公開 POSIX shell CLI
orbをパッケージの実行ファイルとして追加しました。npx -y --package=@neongate-ai/orbz@latest orbで一時実行できます。 - Orb のセットアップはメタデータとロックファイルから npm、pnpm、Yarn、Bun を検出し、実行中の Orbz バージョンをインストールします。アプリソースは生成・上書きしません。
WebSpeechAdapterの既定言語はブラジルポルトガル語(pt-BR)になりました。別の言語が必要ならen-USなどでlanguageを上書きできます。- 定型の挨拶、ペルソナ、既定の会話フローは同梱されなくなりました。利用側が
speechまたはtalkFlowを渡し、voiceEngineを設定してstartTalking()を明示的に呼びます。
0.3.1 — 2026-08-25
明示的な音声の有効化
<orb-z>の接続やアップグレードだけでは既定エンジンや会話フローを開始しなくなりました。voiceEngineの既定値はundefinedです。アプリが明示的にエンジンを指定し、訪問者の同意操作後にstartTalking()を呼びます。- エンジンの設定だけでは発話しません。
stopTalking()は進行中のフローを停止し、undefinedの代入はエンジン設定を解除します。 - HTML やサーバー描画マークアップの数値文字列を、数値プロパティと同様にピクセル長へ正規化します。
0.3.0 — 2026-08-23
React と Next.js の型定義
- React と Next.js の TypeScript プロジェクト用に、任意の
@neongate-ai/orbz/react-types入口を追加しました。 - JSX を拡張し、フレームワーク用ラッパーなしで
<orb-z>の型を提供します。 - React は引き続き Orbz の実行時依存に含まれません。React 型は任意の宣言入口のビルドだけに使用します。
0.2.0 — 2026-08-22
Orbz 0.2.0 は、従来の視覚アシスタントを音声対応のフレームワーク非依存カスタム要素へ拡張します。会話ランタイム、交換可能な音声・知能ポート、厳密な外観制御、強化したカプセル化、全対応フレームワークで共通のネイティブ統合を導入しました。
1.0 前の破壊的変更を含むリリース:
0.1.0のcolors、公開 CSS 変数、Shadow Parts、開いた Shadow DOM、@neongate-ai/orbz/reactを使うアプリは移行が必要です。
音声と会話ランタイム
- 初回の接続済み描画後に始まる、自動で決定的な会話フローを追加しました。
- 公開
talkオブジェクトとDEFAULT_TALK_FLOWにwelcoming、askName、help、answerステップを追加しました。 - 実行時だけの会話メモリーを追加しました。既定フローは訪問者の名前を
talkContextで提供し、Cookie、ローカルストレージ、IndexedDB、バックエンドには書き込みません。 - 現在の実行コンテキストをリセットし、設定済みフローを再開する
startTalking()を追加しました。 - アプリが自身の UI で受け取ったテキストで質問・回答ステップを続ける
receive(input)を追加しました。 - 進行中のフローと音声を停止する
stopTalking()を追加しました。 - 設定可能な
voiceEngine、talkFlow、intelligenceを追加しました。 - 公開 TypeScript 契約
OrbzTalkStep、OrbzTalkContext、OrbzVoiceOptionsを追加しました。 - コンポーネントを変えずに音声出力を交換する
OrbzVoiceEnginePortを追加しました。 - 製品ロジックや認証情報を Orbz 外部に保ったまま、エージェントや回答プロバイダーを接続する
OrbzIntelligencePortを追加しました。 - 知能プロバイダーが未設定または失敗した場合のローカル代替応答を追加しました。
{ speaking: boolean }を持つorbz-speaking-changeを追加しました。- 元のエラーを
{ error: unknown }に含むorbz-talk-errorを追加しました。 - 音声再生中は一時的に
speaking状態となり、終了後に以前の視覚状態へ戻ります。 - マイク収録、音声認識、権限、文字起こし、テキスト入力の責任はホストアプリに残します。Orbz は
receive()に渡されたテキストだけを受け取ります。
ブラウザー音声
- 設定不要の既定エンジンとして
WebSpeechAdapterを追加しました。 - 既定の音声言語を
en-USに変更しました。 - 非同期の音声一覧が読み込まれてから音声を選びます。
- 無関係な OS 既定音声を使う代わりに、明示的な英語フィルターを追加しました。
- 設定済みの優先音声と、ブラウザーが提供する高品質な Google、Microsoft、自然、ニューラル、プレミアム、拡張、オンライン音声の選択を追加しました。
- 言語、優先音声、速度、ピッチ、音量、音声読み込みタイムアウトを設定できます。
- 発話開始の失敗を検出し、フローが無期限に待機しないようにしました。
- 自動音声が
NotAllowedErrorで拒否された場合、初回描画の音声を最初のポインター・キーボード・タッチ操作後に自動再試行します。 - 発話前にすべてリセットで要素を再マウントする必要があったサンプルの動作を削除しました。
- 音声は訪問者のブラウザーと OS が提供することを明確にしました。選択を改善しても、システム音声が OpenAI 生成音声になるわけではありません。
OpenAI 音声
- アプリ経由で OpenAI の読み上げを使う
OpenAISpeechAdapterを追加しました。 - 既定で
gpt-4o-mini-tts、marin、MP3 出力、自然な米国英語の指示を使用します。 - モデル、音声、応答形式、指示、認証情報、ヘッダー、fetch 実装を設定できます。
- 旧
tts-1とtts-1-hdに対応し、互換の既定音声と非対応指示の省略を追加しました。 - OpenAI API キーはブラウザーと Orbz パッケージ外に保持します。アダプターは実装者のエンドポイントから生成音声を取得します。
- 出力停止・置換時に保留中の音声要求をキャンセルします。
- 再生、キャンセル、失敗後に生成音声のオブジェクト URL を解放します。
- ブラウザーのアクティベーションエラーを処理し、生成音声もブラウザー音声と同じ初回操作での再試行に参加します。
外観とコンポーネント API
-
自由な
colorsプロパティを、厳密で排他的な2つの外観モードに置き換えました。preset属性またはプロパティ。color-primary、color-secondary、color-accent、color-highlight、color-backgroundの5属性。
-
neongate、periwinkle、magenta、peach、mocha、ivoryの6プリセットを追加しました。 -
プリセットと独自色は排他的です。両方を指定すると競合を通知し、プリセットを適用して、その属性を削除するまで独自色を無視します。
-
任意の中央影を付ける真偽値属性・プロパティ
elevatedを追加しました。 -
idle、listening、thinking、speaking、asleepの公開状態を維持しました。 -
正の速度倍率、サイズ正規化、停止・再生、アニメーション再開、
system・always・neverの動きを抑える方針を維持しました。 -
状態、プリセット、動きの抑制、サイズ、速度、色の公開定数・ガード・正規化関数を維持しました。
-
Shadow DOM を開いた状態から閉じた状態へ変更しました。
-
公開 Shadow Parts と外部
::part(...)スタイルを削除しました。 -
公開
--orbz-*CSS 変数による変更を削除しました。内部セレクターと変数は私的な実装詳細です。 -
ソーススタイルを
src/element/index.cssに移し、閉じた shadow root に保持して、同じ内容をdist/index.cssに出力します。
フレームワーク統合とパッケージ入口
- 専用 React コンポーネントと
@neongate-ai/orbz/react入口を削除しました。 - 実行時パッケージの peer dependency と開発依存から React を削除しました。
- 全フレームワークでリテラルの
<orb-z>を使用するよう統一しました。 - React と Next.js はブラウザー入口を登録して
<orb-z>を直接描画します。 - ラッパーを導入せずに TypeScript に認識させるため、React と Next.js サンプルにローカル JSX intrinsic-element 宣言を追加しました。
@neongate-ai/orbzは型、定数、アダプター、ポート、ファクトリー、明示的登録ヘルパーの副作用なし入口として維持しました。@neongate-ai/orbz/browserは<orb-z>を登録する入口として維持しました。@neongate-ai/orbz/standaloneは CDN や直接スクリプト向けの自己登録する独立バンドルとして維持しました。- SSR 環境での要素クラス生成・登録のガードを維持しました。
- 複数バンドルやマイクロフロントエンドによる登録時も
defineOrbz()は冪等です。 - 高度な要素クラス生成関数を
orbzElementClassFactory()に改名しました。 - 登録の副作用をパッケージルートから明示的ブラウザー入口へ移しました。
ビルド、配布、内部構成
npm packやnpm publish前に厳密な TypeScript 検証と新規ビルドを行うprepackを追加しました。- npm 内容を
dist生成物と、自動で含まれるpackage.json、README.md、LICENSEなどに限定しました。 - 文書、サンプル、内部エージェント指示、ソース、ワークスペース設定は npm tarball に含めません。
- 共有 tsdown 設定の import に
.tsを明記し、Node のネイティブ TypeScript 設定読み込みに対応しました。 - 内部モジュールを
core、element、factories、ports、services、talkに整理しました。 - 従来の
voice領域をtalkに改名しました。 - 関連する型宣言を
.types.tsに統合しました。 - 公開
Orbz*名は維持し、内部ファイル名の冗長なorbz接頭辞を削除しました。 - 不要な単一ファイルのディレクトリを平坦化しました。
- React ランタイム実装をパッケージソースから完全に削除しました。
サンプルとドキュメント
- 共通の
<orb-z>UI に基づく Vanilla、React、Vue、Svelte、Angular、Next.js の同期サンプルを追加しました。 - 再マウントせずに状態を戻すリセット操作へ更新しました。
- 元の VitePress 構成を Nextra 文書サイトへ置き換えました。
- ネイティブ、フレームワーク、CDN 統合の入門を追加しました。
- 設計思想、状態、外観、動作、アクセシビリティの概念説明を追加しました。
- フレームワーク、マイクロフロントエンド、SSR、音声アシスタントのガイドを追加しました。
- 要素とパッケージエクスポートの完全な API リファレンスを追加しました。
- サンプル、トラブルシューティング、移行案内を追加しました。
- orbz.site を主な文書公開先に定めました。
- フレームワーク別サブドメインを同期サンプルの配備先に定めました。
0.1.0 からの移行
React アダプターを置き換える
従来の React 入口からの import を削除します。
import { Orbz } from "@neongate-ai/orbz/react";
export function Assistant() {
return <Orbz state="idle" />;
}代わりにブラウザー入口を登録し、ネイティブカスタム要素を描画します。
import "@neongate-ai/orbz/browser";
export function Assistant() {
return <orb-z state="idle"></orb-z>;
}TypeScript が orb-z を認識しない場合は、ローカル JSX intrinsic-element 宣言を追加します。これはコンパイル時の型情報のみを提供し、React コンポーネントを生成しません。
色の API を置き換える
従来の colors オブジェクトを削除します。
orb.colors = {
primary: "#7C3AED",
secondary: "#22D3EE"
};組み込みプリセットを使います。
<orb-z preset="neongate"></orb-z>または preset を指定せず、対応する5つの色属性を使います。
<orb-z
color-primary="#7C3AED"
color-secondary="#22D3EE"
color-accent="#F472B6"
color-highlight="#FDE68A"
color-background="#09090B"
></orb-z>プリセットを意図的に優先する場合を除き、明示的プリセットと独自色を併用しないでください。
外部からの Shadow DOM 変更を削除する
次に依存する統合を削除します。
element.shadowRoot。- 内部セレクター。
::part(...)。- 公開
--orbz-*CSS 変数。 - 内部 DOM 構造への仮定。
代わりに、文書化された属性、プロパティ、メソッド、ポート、アダプター、イベント、エクスポートを使います。
カスタム要素を明示的に登録する
現在のモジュールで <orb-z> を登録する場合はブラウザー入口を使います。
import "@neongate-ai/orbz/browser";ブラウザーの副作用なしに型やツールを import する場合はパッケージルートを使います。
import {
defineOrbz,
type OrbzElement
} from "@neongate-ai/orbz";登録をホストアプリ側で管理する場合は defineOrbz() を明示的に呼びます。
音声を明示的に有効にする
0.2.0 と 0.3.0 は初回の接続済み描画後に会話を予約しました。0.3.1 でこの動作を削除しました。現在は voiceEngine、talkFlow、intelligence を設定し、訪問者の操作後に startTalking() を明示的に呼びます。
import '@neongate-ai/orbz/browser'
import {
OpenAISpeechAdapter,
type OrbzElement
} from "@neongate-ai/orbz";
const orb = document.createElement("orb-z") as OrbzElement;
orb.voiceEngine = new OpenAISpeechAdapter({
endpoint: "/api/orbz/speech"
});
document.body.append(orb);
const startVoiceButton = document.querySelector<HTMLButtonElement>("[data-start-voice]");
startVoiceButton?.addEventListener("click", async () => {
await orb.startTalking();
});明示的な操作でもブラウザーが音声を拒否した場合、Orbz は次の操作時にその要求済みフローを再試行します。
0.1.0 — 最初の公開リリース
- 最初の
@neongate-ai/orbzを npm に公開しました。 - Web Components 製のフレームワーク非依存 AI 音声ビジュアルとして Orbz を確立しました。
idle、listening、thinking、speaking、asleepの5状態を提供しました。- サイズ、速度、停止・再生、アニメーション再開、動きを抑える設定を提供しました。
- SSR に安全なカスタム要素作成・登録を追加しました。
- ブラウザー登録入口と独立バンドルを追加しました。
- 初期 React アダプターを追加しました。
- JavaScript の
colorsで色の上書きを公開しました。 --orbz-*CSS 変数を公開しました。- 開いた Shadow DOM と名前付き Shadow Parts で外部カスタマイズに対応しました。
バージョン管理方針
文書化された属性、プロパティ、メソッド、イベント、ポート、アダプター、型、定数、パッケージエクスポートは公開 API です。
Orbz 1.0.0 以降:
- 非互換の公開 API 変更はメジャーバージョンを上げます。
- 後方互換の機能追加はマイナーバージョンを上げます。
- 後方互換の修正はパッチバージョンを上げます。
サンプル、文書、配備設定、内部ソース構成は、新たな公開実行時契約を作らずに変更される場合があります。公開パッケージを説明・実演しますが、明示的にエクスポートするか文書化されたコンポーネント契約に含めない限り、npm API の一部にはなりません。