プロバイダーレジストリとモデル解決。プロバイダー定義をロードし、config/auth/env のオーバーライドをマージし、ヘルパーを公開する。これには closedcode のローカル限定の egress ポリシーを強制するローカリティチェックも含まれ、モデルのインスタンス化に使用される。

Classes

Service

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 の並び順の先頭となる。モデルを持たないプロバイダはクラッシュせずスキップされ、依然としてリストに表示される。

Parameters:
NameTypeDescription
providersObject

プロバイダ id から models レコードを持つプロバイダオブジェクトへのマップ。

Returns:

プロバイダ id から選択されたデフォルトモデル id へのマップ。

Type: 
Object

(static) fromModelsDevProvider(provider) → {Object}

models.dev のプロバイダから内部プロバイダレコードを構築する。各モデルを展開し、実験的なモードに対しては合成された <id>-<mode> エントリを追加する(そのコスト/ボディ/ヘッダのオーバーライドをベースモデルに重ねてマージする)。

Parameters:
NameTypeDescription
providerObject

models.dev のプロバイダレコード。

Returns:

id、name、env、models を持つ内部プロバイダオブジェクト。

Type: 
Object

(static) isLocalProvider(provider) → {boolean}

プロバイダがローカルエンドポイントのみと通信するかどうかを、ベース URL と各モデルの API URL を isLocalURL で確認して判定する。

Parameters:
NameTypeDescription
providerObject

プロバイダ定義(options.baseURLmodels[id].api.url を読み取る)。

Returns:

プロバイダのベース URL またはいずれかのモデル URL がローカルな場合は true。

Type: 
boolean

(static) isLocalURL(url) → {boolean}

URL がローカルマシンまたはプライベートネットワークを指すかどうかを判定する。localhost、ループバック、RFC 1918 / リンクローカル IPv4、ULA / ループバック / リンクローカル IPv6、および .local / .lan / .internal のホスト名をローカルとして扱う。

Parameters:
NameTypeDescription
urlstring

検査する URL。

Returns:

URL のホストがローカルまたはプライベートな場合は true、それ以外または URL が解析不能な場合は false。

Type: 
boolean

(static) parseModel(model) → {Object}

"provider/model" 文字列をブランド付きのプロバイダ id とモデル id に分割する(モデル部分自体にスラッシュが含まれる場合があり、その場合は再結合される)。

Parameters:
NameTypeDescription
modelstring

"providerID/modelID" 文字列。

Returns:

ブランド付き id を持つ {providerID, modelID}

Type: 
Object

(static) sort(models) → {Array}

モデルを優先的な表示順に並べ替える。まず優先ファミリー(qwen/llama/gpt-oss)順、次に "latest" タグ付きの id、最後に id の降順とする。

Parameters:
NameTypeDescription
modelsArray

並べ替えるモデル。

Returns:

並べ替えられたモデル。

Type: 
Array

(inner) cost(c) → {Object}

models.dev のコストレコードを内部のコスト形式に変換する。欠落フィールドは 0 をデフォルトとし、オプションの >200k コンテキストオーバーライドを引き継ぐ。

Parameters:
NameTypeDescription
cObject

models.dev のコストレコード(undefined の場合がある)。

Returns:

内部のコストオブジェクト {input, output, cache: {read, write}, ...}

Type: 
Object

(inner) fromModelsDevModel(provider, model) → {Object}

models.dev のプロバイダとモデルのペアから内部 Model を構築し、API 情報、機能/モダリティ、コスト、上限、推論努力(reasoning-effort)のバリアントを導出する。

Parameters:
NameTypeDescription
providerObject

models.dev のプロバイダレコード。

modelObject

models.dev のモデルレコード。

Returns:

variants が設定された)内部の Model オブジェクト。

Type: 
Object

(inner) isPrivateIPv4(host) → {boolean}

ホスト文字列がプライベート/ループバック/リンクローカルの IPv4 アドレス(ループバック 127/8、RFC 1918 の 10/8・172.16/12・192.168/16、リンクローカル 169.254/16)かどうかを判定する。

Parameters:
NameTypeDescription
hoststring

テスト対象のホスト文字列。

Returns:

プライベート/ループバックの IPv4 アドレスの場合は true。そうでない場合や IPv4 リテラルでない場合は false。

Type: 
boolean

(inner) isPrivateIPv6(host) → {boolean}

ホスト文字列がループバック/プライベート/リンクローカルの IPv6 アドレス(::1 ループバック、fc00::/7 ユニークローカル、fe80::/10 リンクローカル)かどうかを判定する。

Parameters:
NameTypeDescription
hoststring

テスト対象のホスト文字列。

Returns:

ループバック/プライベート/リンクローカルの IPv6 アドレスの場合は true。そうでない場合は false。

Type: 
boolean

(inner) wrapSSE(res, ms, ctl) → {Response}

Server-Sent-Events の Response をラップし、ms 以内にチャンクが届かない場合に停止したストリームを中断する。タイムアウトが非正の値の場合、ボディのない Response の場合、または SSE 以外のコンテンツタイプの場合は、Response をそのまま返す。

Parameters:
NameTypeDescription
resResponse

ラップする fetch の Response。

msnumber

チャンクごとの読み取りタイムアウト(ミリ秒)。

ctlAbortController

読み取りがタイムアウトした際に中断されるコントローラ。

Returns:

元の Response、またはタイムアウトガード付きの Response。

Type: 
Response