@dbx-tools/shared-model-gateway 0.9.37 → 0.9.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,21 +1,61 @@
1
1
  # @dbx-tools/shared-model-gateway
2
2
 
3
- Browser-safe Zod contracts and model-discovery client for
4
- `@dbx-tools/appkit-model-gateway`.
3
+ Discover the models exposed by a dbx-tools model gateway from browser, edge, or
4
+ shared application code. The package validates successful and error responses
5
+ at the network boundary and provides the protocol contracts needed to build
6
+ model pickers without importing Node or AppKit runtime code.
7
+
8
+ ## List Available Models
5
9
 
6
10
  ```ts
7
- import { createModelGatewayClient, ModelListResponseSchema } from "@dbx-tools/shared-model-gateway";
11
+ import { createModelGatewayClient } from "@dbx-tools/shared-model-gateway";
8
12
 
9
13
  const client = createModelGatewayClient();
10
14
  const response = await client.listModels({ search: "claude sonnet" });
11
- const models = ModelListResponseSchema.parse(response);
15
+
16
+ for (const model of response.data) {
17
+ console.log(model.id);
18
+ }
19
+ ```
20
+
21
+ In a browser, the client uses the active origin. Supply `baseUrl` in tests,
22
+ server rendering, or any runtime without `globalThis.location`:
23
+
24
+ ```ts
25
+ const client = createModelGatewayClient({
26
+ baseUrl: "http://127.0.0.1:4000/",
27
+ });
12
28
  ```
13
29
 
14
- Use `{ codex: true }` to request the Codex-native model catalog:
30
+ ## Request A Codex Catalogue
31
+
32
+ Use the Codex catalogue when a client needs Codex-specific model metadata and
33
+ reasoning controls:
15
34
 
16
35
  ```ts
17
36
  const response = await client.listModels({ codex: true });
18
37
  ```
19
38
 
20
- The package contains no Node, AppKit, SDK, authentication, or filesystem
21
- dependencies.
39
+ Pass an `AbortSignal` to cancel model discovery. HTTP failures throw
40
+ `ModelGatewayClientError`, which includes the status code and a validated gateway
41
+ error response when one was returned.
42
+
43
+ ## Validate Gateway Payloads
44
+
45
+ Use the exported Zod schemas when another transport owns the HTTP request:
46
+
47
+ ```ts
48
+ import { ModelListResponseSchema } from "@dbx-tools/shared-model-gateway";
49
+
50
+ const models = ModelListResponseSchema.parse(await response.json());
51
+ ```
52
+
53
+ The `models` module covers OpenAI, Codex, Anthropic, embedding, and error
54
+ payloads. The `contracts` module covers model capabilities and deterministic
55
+ route-selection inputs and results.
56
+
57
+ ## Package API
58
+
59
+ - `client` creates the model-discovery client and typed HTTP errors.
60
+ - `models` validates public model, embedding, and error payloads.
61
+ - `contracts` validates shared routing and capability values.
package/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model-gateway";
6
- export const PACKAGE_VERSION = "0.9.37";
6
+ export const PACKAGE_VERSION = "0.9.38";
7
7
  export * as client from "./src/client.ts";
8
8
  export * as contracts from "./src/contracts.ts";
9
9
  export * as models from "./src/models.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model-gateway";
2
- export declare const PACKAGE_VERSION = "0.9.37";
2
+ export declare const PACKAGE_VERSION = "0.9.38";
3
3
  export * as client from "./src/client.ts";
4
4
  export * as contracts from "./src/contracts.ts";
5
5
  export * as models from "./src/models.ts";
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Regenerated from the exporting modules in ./src.
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
  export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-model-gateway";
5
- export const PACKAGE_VERSION = "0.9.37";
5
+ export const PACKAGE_VERSION = "0.9.38";
6
6
  export * as client from "./src/client.js";
7
7
  export * as contracts from "./src/contracts.js";
8
8
  export * as models from "./src/models.js";
@@ -10,4 +10,4 @@ export { ModelGatewayClientError } from "./src/client.js";
10
10
  export { ClientProtocolSchema, UpstreamProtocolSchema, ModelCapabilitiesSchema, ModelTargetSchema, RequestedFeaturesSchema, GatewayRouteSchema, ModelCapabilityOverrideSchema, ResolveRouteInputSchema } from "./src/contracts.js";
11
11
  export { OpenAIModelCapabilitiesSchema, OpenAIModelSchema, OpenAIModelListResponseSchema, CodexReasoningLevelSchema, CodexTruncationPolicySchema, CodexModelSchema, CodexModelListResponseSchema, ModelListResponseSchema, EmbeddingRequestSchema, EmbeddingDataSchema, EmbeddingUsageSchema, EmbeddingResponseSchema, OpenAIErrorResponseSchema, AnthropicErrorResponseSchema, GatewayErrorResponseSchema } from "./src/models.js";
12
12
  export * from "./exports.js";
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5PLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxpQkFBaUIsRUFBRSw2QkFBNkIsRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBhLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwtZ2F0ZXdheVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjM3XCI7XG5leHBvcnQgKiBhcyBjbGllbnQgZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgY29udHJhY3RzIGZyb20gXCIuL3NyYy9jb250cmFjdHMudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVscyBmcm9tIFwiLi9zcmMvbW9kZWxzLnRzXCI7XG5leHBvcnQgeyBNb2RlbEdhdGV3YXlDbGllbnRFcnJvciB9IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5Q2xpZW50T3B0aW9ucywgTGlzdE1vZGVsc09wdGlvbnMsIE1vZGVsR2F0ZXdheUNsaWVudCB9IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCB7IENsaWVudFByb3RvY29sU2NoZW1hLCBVcHN0cmVhbVByb3RvY29sU2NoZW1hLCBNb2RlbENhcGFiaWxpdGllc1NjaGVtYSwgTW9kZWxUYXJnZXRTY2hlbWEsIFJlcXVlc3RlZEZlYXR1cmVzU2NoZW1hLCBHYXRld2F5Um91dGVTY2hlbWEsIE1vZGVsQ2FwYWJpbGl0eU92ZXJyaWRlU2NoZW1hLCBSZXNvbHZlUm91dGVJbnB1dFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jb250cmFjdHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2xpZW50UHJvdG9jb2wsIFVwc3RyZWFtUHJvdG9jb2wsIE1vZGVsQ2FwYWJpbGl0aWVzLCBNb2RlbFRhcmdldCwgUmVxdWVzdGVkRmVhdHVyZXMsIEdhdGV3YXlSb3V0ZSwgTW9kZWxDYXBhYmlsaXR5T3ZlcnJpZGUsIFJlc29sdmVSb3V0ZUlucHV0IH0gZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0IHsgT3BlbkFJTW9kZWxDYXBhYmlsaXRpZXNTY2hlbWEsIE9wZW5BSU1vZGVsU2NoZW1hLCBPcGVuQUlNb2RlbExpc3RSZXNwb25zZVNjaGVtYSwgQ29kZXhSZWFzb25pbmdMZXZlbFNjaGVtYSwgQ29kZXhUcnVuY2F0aW9uUG9saWN5U2NoZW1hLCBDb2RleE1vZGVsU2NoZW1hLCBDb2RleE1vZGVsTGlzdFJlc3BvbnNlU2NoZW1hLCBNb2RlbExpc3RSZXNwb25zZVNjaGVtYSwgRW1iZWRkaW5nUmVxdWVzdFNjaGVtYSwgRW1iZWRkaW5nRGF0YVNjaGVtYSwgRW1iZWRkaW5nVXNhZ2VTY2hlbWEsIEVtYmVkZGluZ1Jlc3BvbnNlU2NoZW1hLCBPcGVuQUlFcnJvclJlc3BvbnNlU2NoZW1hLCBBbnRocm9waWNFcnJvclJlc3BvbnNlU2NoZW1hLCBHYXRld2F5RXJyb3JSZXNwb25zZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9tb2RlbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3BlbkFJTW9kZWxDYXBhYmlsaXRpZXMsIE9wZW5BSU1vZGVsLCBPcGVuQUlNb2RlbExpc3RSZXNwb25zZSwgQ29kZXhSZWFzb25pbmdMZXZlbCwgQ29kZXhUcnVuY2F0aW9uUG9saWN5LCBDb2RleE1vZGVsLCBDb2RleE1vZGVsTGlzdFJlc3BvbnNlLCBNb2RlbExpc3RSZXNwb25zZSwgRW1iZWRkaW5nUmVxdWVzdCwgRW1iZWRkaW5nRGF0YSwgRW1iZWRkaW5nVXNhZ2UsIEVtYmVkZGluZ1Jlc3BvbnNlLCBPcGVuQUlFcnJvclJlc3BvbnNlLCBBbnRocm9waWNFcnJvclJlc3BvbnNlLCBHYXRld2F5RXJyb3JSZXNwb25zZSB9IGZyb20gXCIuL3NyYy9tb2RlbHMudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5PLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxpQkFBaUIsRUFBRSw2QkFBNkIsRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBhLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9zaGFyZWQtbW9kZWwtZ2F0ZXdheVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjM4XCI7XG5leHBvcnQgKiBhcyBjbGllbnQgZnJvbSBcIi4vc3JjL2NsaWVudC50c1wiO1xuZXhwb3J0ICogYXMgY29udHJhY3RzIGZyb20gXCIuL3NyYy9jb250cmFjdHMudHNcIjtcbmV4cG9ydCAqIGFzIG1vZGVscyBmcm9tIFwiLi9zcmMvbW9kZWxzLnRzXCI7XG5leHBvcnQgeyBNb2RlbEdhdGV3YXlDbGllbnRFcnJvciB9IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCB0eXBlIHsgTW9kZWxHYXRld2F5Q2xpZW50T3B0aW9ucywgTGlzdE1vZGVsc09wdGlvbnMsIE1vZGVsR2F0ZXdheUNsaWVudCB9IGZyb20gXCIuL3NyYy9jbGllbnQudHNcIjtcbmV4cG9ydCB7IENsaWVudFByb3RvY29sU2NoZW1hLCBVcHN0cmVhbVByb3RvY29sU2NoZW1hLCBNb2RlbENhcGFiaWxpdGllc1NjaGVtYSwgTW9kZWxUYXJnZXRTY2hlbWEsIFJlcXVlc3RlZEZlYXR1cmVzU2NoZW1hLCBHYXRld2F5Um91dGVTY2hlbWEsIE1vZGVsQ2FwYWJpbGl0eU92ZXJyaWRlU2NoZW1hLCBSZXNvbHZlUm91dGVJbnB1dFNjaGVtYSB9IGZyb20gXCIuL3NyYy9jb250cmFjdHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ2xpZW50UHJvdG9jb2wsIFVwc3RyZWFtUHJvdG9jb2wsIE1vZGVsQ2FwYWJpbGl0aWVzLCBNb2RlbFRhcmdldCwgUmVxdWVzdGVkRmVhdHVyZXMsIEdhdGV3YXlSb3V0ZSwgTW9kZWxDYXBhYmlsaXR5T3ZlcnJpZGUsIFJlc29sdmVSb3V0ZUlucHV0IH0gZnJvbSBcIi4vc3JjL2NvbnRyYWN0cy50c1wiO1xuZXhwb3J0IHsgT3BlbkFJTW9kZWxDYXBhYmlsaXRpZXNTY2hlbWEsIE9wZW5BSU1vZGVsU2NoZW1hLCBPcGVuQUlNb2RlbExpc3RSZXNwb25zZVNjaGVtYSwgQ29kZXhSZWFzb25pbmdMZXZlbFNjaGVtYSwgQ29kZXhUcnVuY2F0aW9uUG9saWN5U2NoZW1hLCBDb2RleE1vZGVsU2NoZW1hLCBDb2RleE1vZGVsTGlzdFJlc3BvbnNlU2NoZW1hLCBNb2RlbExpc3RSZXNwb25zZVNjaGVtYSwgRW1iZWRkaW5nUmVxdWVzdFNjaGVtYSwgRW1iZWRkaW5nRGF0YVNjaGVtYSwgRW1iZWRkaW5nVXNhZ2VTY2hlbWEsIEVtYmVkZGluZ1Jlc3BvbnNlU2NoZW1hLCBPcGVuQUlFcnJvclJlc3BvbnNlU2NoZW1hLCBBbnRocm9waWNFcnJvclJlc3BvbnNlU2NoZW1hLCBHYXRld2F5RXJyb3JSZXNwb25zZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9tb2RlbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3BlbkFJTW9kZWxDYXBhYmlsaXRpZXMsIE9wZW5BSU1vZGVsLCBPcGVuQUlNb2RlbExpc3RSZXNwb25zZSwgQ29kZXhSZWFzb25pbmdMZXZlbCwgQ29kZXhUcnVuY2F0aW9uUG9saWN5LCBDb2RleE1vZGVsLCBDb2RleE1vZGVsTGlzdFJlc3BvbnNlLCBNb2RlbExpc3RSZXNwb25zZSwgRW1iZWRkaW5nUmVxdWVzdCwgRW1iZWRkaW5nRGF0YSwgRW1iZWRkaW5nVXNhZ2UsIEVtYmVkZGluZ1Jlc3BvbnNlLCBPcGVuQUlFcnJvclJlc3BvbnNlLCBBbnRocm9waWNFcnJvclJlc3BvbnNlLCBHYXRld2F5RXJyb3JSZXNwb25zZSB9IGZyb20gXCIuL3NyYy9tb2RlbHMudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4cG9ydHMudHNcIjtcbiJdfQ==
package/package.json CHANGED
@@ -22,7 +22,7 @@
22
22
  "typescript": "^5.9.3"
23
23
  },
24
24
  "dependencies": {
25
- "@dbx-tools/shared-model": "^0.9.37",
25
+ "@dbx-tools/shared-model": "^0.9.38",
26
26
  "zod": "4.3.6"
27
27
  },
28
28
  "main": "./lib/index.js",
@@ -51,7 +51,7 @@
51
51
  "./package.json": "./package.json"
52
52
  }
53
53
  },
54
- "version": "0.9.37",
54
+ "version": "0.9.38",
55
55
  "types": "./lib/index.d.ts",
56
56
  "dbxToolsConfig": {
57
57
  "tags": [