@dbx-tools/shared-model-gateway

中文文档
0.9.206发布于 2026/11/11Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1万

Browser-safe model-gateway schemas and model discovery client

原始使用文档
文档目录6 节
  1. List available models
  2. Request a Codex catalog
  3. Validate gateway payloads
  4. Configure gateway options
  5. Runtime boundary
  6. Package exports

@dbx-tools/shared-model-gateway

Discover models exposed by a dbx-tools model gateway from browser, edge, or shared application code. The package validates success and error responses at the network boundary and provides model-picker contracts without importing Node or Databricks AppKit runtime code.

List available models

import { createModelGatewayClient } from "@dbx-tools/shared-model-gateway";

const client = createModelGatewayClient();
const response = await client.listModels({ search: "claude sonnet" });
const modelIds = "data" in response ? response.data.map((model) => model.id) : [];

The catalogue includes the virtual smart-router chat model only when the gateway's memoized Databricks Smart Router probe succeeds. Its capabilities.smart_router field distinguishes it from concrete endpoints. Successful probes expire after five minutes by default and are also refreshed hourly in the background. A failed routed request invalidates a positive probe immediately so later model-list responses stop advertising the virtual model.

In a browser, the client uses the active origin. Supply baseUrl in tests, server rendering, or any runtime without globalThis.location:

const client = createModelGatewayClient({
  baseUrl: "http://127.0.0.1:4000/",
});

Request a Codex catalog

Use the Codex catalog when a client needs Codex-specific model metadata and reasoning controls:

const response = await client.listModels({ codex: true });

Set metadata: true for either catalogue shape when the caller needs sortable latency, aggregate LMArena quality, source rankings, limits, and pricing. The client sends GET /v1/models?metadata=true; requests that omit the option receive the unchanged compatibility payload.

Pass an AbortSignal to cancel model discovery. HTTP failures throw ModelGatewayClientError, which includes the status code and a validated gateway error response when one was returned.

Validate gateway payloads

Use the exported Zod schemas with another HTTP transport:

import { ModelListResponseSchema } from "@dbx-tools/shared-model-gateway";

const models = ModelListResponseSchema.parse(await response.json());

The models module covers OpenAI, Codex, Anthropic, embedding, and error payloads. The contracts module covers model capabilities and deterministic route-selection inputs and results.

Configure gateway options

ModelGatewayOptionsSchema defines server defaults and validation. The derived ModelGatewayCliOptionsSchema adds runtimeInfo and requires a non-zero port for foreground and service commands:

import {
  ModelGatewayOptionsSchema,
  resolveModelGatewayOptions,
} from "@dbx-tools/shared-model-gateway/options";

const options = resolveModelGatewayOptions({
  smartRouter: "auto",
  smartRouterTimeoutMs: 10000,
  listen: "localhost:4400",
  modelClass: "chat-balanced",
  preferSystemModels: true,
  bodyLimit: "100mb",
});

ModelGatewayOptionsSchema.parse(options);

ModelSelectionOptionsSchema defines the mutually exclusive model and modelClass fields shared by model-gateway and Genie Code callers. Omit both to select the best available chat model. preferSystemModels defaults to false. When enabled, non-exact requests use system.ai.* services instead of workspace serving endpoints.

The smartRouter module exports the canonical smart-router id, validated routes:select contracts, and response-header names used to observe the selected concrete model and task_v3 profile.

Runtime boundary

The discovery client performs HTTP requests to GET /v1/models. The schemas and option helpers don't start a gateway, resolve Databricks credentials, or invoke models. Use @dbx-tools/appkit-model-gateway for AppKit gateway transport and @dbx-tools/model for server-side model discovery and selection.

Package exports

  • client: creates the model-discovery client and typed HTTP errors.
  • models: validates public model, embedding, and error payloads.
  • contracts: validates shared routing and capability values.
  • options: validates shared server and CLI configuration.
  • smartRouter: owns the virtual model id, wire schemas, and observation headers.

版本与发布记录

@dbx-tools/shared-model-gateway 共发布 100 个版本,首次发布于 2026/10/06;过去 12 个月发布了 100 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.206latest2026/11/11今天
0.9.2052026/11/111 天前
0.9.2042026/11/101 天前
0.9.2032026/11/074 天前
0.9.2022026/11/065 天前
0.9.2012026/11/056 天前

关于 @dbx-tools/shared-model-gateway 的常见问题

@dbx-tools/shared-model-gateway 是什么?

Browser-safe model-gateway schemas and model discovery client

如何安装 @dbx-tools/shared-model-gateway?

在项目目录运行 npm install @dbx-tools/shared-model-gateway,或使用 pnpm add / yarn add / bun add。

@dbx-tools/shared-model-gateway 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dbx-tools/shared-model-gateway 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dbx-tools/shared-model-gateway 可以商用吗?

@dbx-tools/shared-model-gateway 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dbx-tools/shared-model-gateway 的下载量有多少?

根据 npm 官方下载统计,@dbx-tools/shared-model-gateway 在 2026/10/12 – 2026/11/10 这 30 天内被下载 10,003 次,日均约 333 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dbx-tools/shared-model-gateway 还在维护吗?

最新版本 0.9.206 发布于 2026/11/11(今天);至今共发布 100 个版本,其中过去 12 个月发布了 100 个;首次发布于 2026/10/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。