プロバイダーレジストリとモデル解決。プロバイダー定義をロードし、config/auth/env のオーバーライドをマージし、ヘルパーを公開する。これには closedcode のローカル限定の egress ポリシーを強制するローカリティチェックも含まれ、モデルのインスタンス化に使用される。
Classes
Members
(static, constant) ConfigProvidersResult
config-providers レスポンスのスキーマ。設定で定義されたプロバイダとそのデフォルトモデルを含む。
(static, constant) Info
解決済みプロバイダのスキーマ。ソース、環境変数名、キー、モデルを含む。
(static, constant) InitError
エラー: プロバイダ SDK を構築できなかった(根本原因をラップする)。
(static, constant) ListResult
/provider リストレスポンスのスキーマ。全プロバイダ、プロバイダごとのデフォルトモデル、接続済み id を含む。
(static, constant) Model
完全に解決されたモデル(models.dev、設定、環境変数、認証情報をマージしたもの)のスキーマ。
(static, constant) ModelNotFoundError
エラー: 要求されたプロバイダまたはモデル id が見つからなかった(あいまい一致の候補を含む)。
(static, constant) defaultLayer
すべてのサービス依存関係が提供された Provider レイヤー。
(inner, constant) layer
Provider サービスを構築する Layer。models.dev のスナップショットをプラグインフック、設定、環境変数、保存された認証情報とマージして完全なプロバイダ/モデルデータベースを解決し、ローカル限定ポリシーを適用して非ローカルなプロバイダをすべて除外したうえで、ルックアップ / SDK 解決の操作を公開する。
Methods
(static) defaultModelIDs(providers) → {Object}
各プロバイダのデフォルトモデル id を選ぶ。sort の並び順の先頭となる。モデルを持たないプロバイダはクラッシュせずスキップされ、依然としてリストに表示される。
| Name | Type | Description |
|---|---|---|
providers | Object | プロバイダ id から |
プロバイダ id から選択されたデフォルトモデル id へのマップ。
- Type:
- Object
(static) fromModelsDevProvider(provider) → {Object}
models.dev のプロバイダから内部プロバイダレコードを構築する。各モデルを展開し、実験的なモードに対しては合成された <id>-<mode> エントリを追加する(そのコスト/ボディ/ヘッダのオーバーライドをベースモデルに重ねてマージする)。
| Name | Type | Description |
|---|---|---|
provider | Object | models.dev のプロバイダレコード。 |
id、name、env、models を持つ内部プロバイダオブジェクト。
- Type:
- Object
(static) isLocalProvider(provider) → {boolean}
プロバイダがローカルエンドポイントのみと通信するかどうかを、ベース URL と各モデルの API URL を isLocalURL で確認して判定する。
| Name | Type | Description |
|---|---|---|
provider | Object | プロバイダ定義( |
プロバイダのベース URL またはいずれかのモデル URL がローカルな場合は true。
- Type:
- boolean
(static) isLocalURL(url) → {boolean}
URL がローカルマシンまたはプライベートネットワークを指すかどうかを判定する。localhost、ループバック、RFC 1918 / リンクローカル IPv4、ULA / ループバック / リンクローカル IPv6、および .local / .lan / .internal のホスト名をローカルとして扱う。
| Name | Type | Description |
|---|---|---|
url | string | 検査する URL。 |
URL のホストがローカルまたはプライベートな場合は true、それ以外または URL が解析不能な場合は false。
- Type:
- boolean
(static) parseModel(model) → {Object}
"provider/model" 文字列をブランド付きのプロバイダ id とモデル id に分割する(モデル部分自体にスラッシュが含まれる場合があり、その場合は再結合される)。
| Name | Type | Description |
|---|---|---|
model | string | "providerID/modelID" 文字列。 |
ブランド付き id を持つ {providerID, modelID}。
- Type:
- Object
(static) sort(models) → {Array}
モデルを優先的な表示順に並べ替える。まず優先ファミリー(qwen/llama/gpt-oss)順、次に "latest" タグ付きの id、最後に id の降順とする。
| Name | Type | Description |
|---|---|---|
models | Array | 並べ替えるモデル。 |
並べ替えられたモデル。
- Type:
- Array
(inner) cost(c) → {Object}
models.dev のコストレコードを内部のコスト形式に変換する。欠落フィールドは 0 をデフォルトとし、オプションの >200k コンテキストオーバーライドを引き継ぐ。
| Name | Type | Description |
|---|---|---|
c | Object | models.dev のコストレコード(undefined の場合がある)。 |
内部のコストオブジェクト {input, output, cache: {read, write}, ...}。
- Type:
- Object
(inner) fromModelsDevModel(provider, model) → {Object}
models.dev のプロバイダとモデルのペアから内部 Model を構築し、API 情報、機能/モダリティ、コスト、上限、推論努力(reasoning-effort)のバリアントを導出する。
| Name | Type | Description |
|---|---|---|
provider | Object | models.dev のプロバイダレコード。 |
model | Object | models.dev のモデルレコード。 |
(variants が設定された)内部の Model オブジェクト。
- Type:
- Object
(inner) isPrivateIPv4(host) → {boolean}
ホスト文字列がプライベート/ループバック/リンクローカルの IPv4 アドレス(ループバック 127/8、RFC 1918 の 10/8・172.16/12・192.168/16、リンクローカル 169.254/16)かどうかを判定する。
| Name | Type | Description |
|---|---|---|
host | string | テスト対象のホスト文字列。 |
プライベート/ループバックの IPv4 アドレスの場合は true。そうでない場合や IPv4 リテラルでない場合は false。
- Type:
- boolean
(inner) isPrivateIPv6(host) → {boolean}
ホスト文字列がループバック/プライベート/リンクローカルの IPv6 アドレス(::1 ループバック、fc00::/7 ユニークローカル、fe80::/10 リンクローカル)かどうかを判定する。
| Name | Type | Description |
|---|---|---|
host | string | テスト対象のホスト文字列。 |
ループバック/プライベート/リンクローカルの IPv6 アドレスの場合は true。そうでない場合は false。
- Type:
- boolean
(inner) wrapSSE(res, ms, ctl) → {Response}
Server-Sent-Events の Response をラップし、ms 以内にチャンクが届かない場合に停止したストリームを中断する。タイムアウトが非正の値の場合、ボディのない Response の場合、または SSE 以外のコンテンツタイプの場合は、Response をそのまま返す。
| Name | Type | Description |
|---|---|---|
res | Response | ラップする fetch の Response。 |
ms | number | チャンクごとの読み取りタイムアウト(ミリ秒)。 |
ctl | AbortController | 読み取りがタイムアウトした際に中断されるコントローラ。 |
元の Response、またはタイムアウトガード付きの Response。
- Type:
- Response