notdiamond 2.0.0-rc2 → 2.0.0-rc20

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.
Files changed (147) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/LICENSE +1 -1
  3. package/README.md +261 -168
  4. package/client.d.mts +26 -43
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +26 -43
  7. package/client.d.ts.map +1 -1
  8. package/client.js +49 -68
  9. package/client.js.map +1 -1
  10. package/client.mjs +47 -66
  11. package/client.mjs.map +1 -1
  12. package/core/api-promise.d.mts +2 -2
  13. package/core/api-promise.d.ts +2 -2
  14. package/core/error.d.mts +2 -2
  15. package/core/error.d.ts +2 -2
  16. package/core/error.js +4 -4
  17. package/core/error.mjs +2 -2
  18. package/core/resource.d.mts +3 -3
  19. package/core/resource.d.ts +3 -3
  20. package/index.d.mts +3 -3
  21. package/index.d.ts +3 -3
  22. package/index.js +4 -4
  23. package/index.mjs +3 -3
  24. package/internal/parse.d.mts +2 -2
  25. package/internal/parse.d.ts +2 -2
  26. package/internal/shims.js +1 -1
  27. package/internal/shims.mjs +1 -1
  28. package/internal/uploads.d.mts +4 -4
  29. package/internal/uploads.d.ts +4 -4
  30. package/internal/utils/base64.js +2 -2
  31. package/internal/utils/base64.mjs +3 -3
  32. package/internal/utils/env.d.mts.map +1 -1
  33. package/internal/utils/env.d.ts.map +1 -1
  34. package/internal/utils/env.js +4 -2
  35. package/internal/utils/env.js.map +1 -1
  36. package/internal/utils/env.mjs +4 -2
  37. package/internal/utils/env.mjs.map +1 -1
  38. package/internal/utils/log.d.mts +3 -3
  39. package/internal/utils/log.d.ts +3 -3
  40. package/internal/utils/path.js +1 -1
  41. package/internal/utils/path.mjs +2 -2
  42. package/internal/utils/values.js +5 -5
  43. package/internal/utils/values.mjs +6 -6
  44. package/package.json +11 -12
  45. package/resources/custom-router.d.mts +145 -0
  46. package/resources/custom-router.d.mts.map +1 -0
  47. package/resources/custom-router.d.ts +145 -0
  48. package/resources/custom-router.d.ts.map +1 -0
  49. package/resources/custom-router.js +83 -0
  50. package/resources/custom-router.js.map +1 -0
  51. package/resources/custom-router.mjs +79 -0
  52. package/resources/custom-router.mjs.map +1 -0
  53. package/resources/index.d.mts +5 -6
  54. package/resources/index.d.mts.map +1 -1
  55. package/resources/index.d.ts +5 -6
  56. package/resources/index.d.ts.map +1 -1
  57. package/resources/index.js +5 -7
  58. package/resources/index.js.map +1 -1
  59. package/resources/index.mjs +2 -3
  60. package/resources/index.mjs.map +1 -1
  61. package/resources/model-router.d.mts +194 -0
  62. package/resources/model-router.d.mts.map +1 -0
  63. package/resources/model-router.d.ts +194 -0
  64. package/resources/model-router.d.ts.map +1 -0
  65. package/resources/model-router.js +68 -0
  66. package/resources/model-router.js.map +1 -0
  67. package/resources/model-router.mjs +64 -0
  68. package/resources/model-router.mjs.map +1 -0
  69. package/resources/models.d.mts +50 -25
  70. package/resources/models.d.mts.map +1 -1
  71. package/resources/models.d.ts +50 -25
  72. package/resources/models.d.ts.map +1 -1
  73. package/resources/models.js +5 -0
  74. package/resources/models.js.map +1 -1
  75. package/resources/models.mjs +5 -0
  76. package/resources/models.mjs.map +1 -1
  77. package/resources/preferences.d.mts +37 -54
  78. package/resources/preferences.d.mts.map +1 -1
  79. package/resources/preferences.d.ts +37 -54
  80. package/resources/preferences.d.ts.map +1 -1
  81. package/resources/preferences.js +17 -42
  82. package/resources/preferences.js.map +1 -1
  83. package/resources/preferences.mjs +17 -42
  84. package/resources/preferences.mjs.map +1 -1
  85. package/resources/prompt-adaptation.d.mts +340 -249
  86. package/resources/prompt-adaptation.d.mts.map +1 -1
  87. package/resources/prompt-adaptation.d.ts +340 -249
  88. package/resources/prompt-adaptation.d.ts.map +1 -1
  89. package/resources/prompt-adaptation.js +36 -79
  90. package/resources/prompt-adaptation.js.map +1 -1
  91. package/resources/prompt-adaptation.mjs +36 -79
  92. package/resources/prompt-adaptation.mjs.map +1 -1
  93. package/src/client.ts +72 -128
  94. package/src/core/api-promise.ts +4 -4
  95. package/src/core/error.ts +2 -2
  96. package/src/core/resource.ts +3 -3
  97. package/src/index.ts +3 -3
  98. package/src/internal/parse.ts +2 -2
  99. package/src/internal/shims.ts +1 -1
  100. package/src/internal/uploads.ts +5 -5
  101. package/src/internal/utils/base64.ts +3 -3
  102. package/src/internal/utils/env.ts +4 -2
  103. package/src/internal/utils/log.ts +3 -3
  104. package/src/internal/utils/path.ts +2 -2
  105. package/src/internal/utils/values.ts +6 -6
  106. package/src/resources/custom-router.ts +168 -0
  107. package/src/resources/index.ts +20 -32
  108. package/src/resources/model-router.ts +222 -0
  109. package/src/resources/models.ts +55 -32
  110. package/src/resources/preferences.ts +43 -83
  111. package/src/resources/prompt-adaptation.ts +358 -300
  112. package/src/version.ts +1 -1
  113. package/version.d.mts +1 -1
  114. package/version.d.mts.map +1 -1
  115. package/version.d.ts +1 -1
  116. package/version.d.ts.map +1 -1
  117. package/version.js +1 -1
  118. package/version.js.map +1 -1
  119. package/version.mjs +1 -1
  120. package/version.mjs.map +1 -1
  121. package/resources/admin.d.mts +0 -4
  122. package/resources/admin.d.mts.map +0 -1
  123. package/resources/admin.d.ts +0 -4
  124. package/resources/admin.d.ts.map +0 -1
  125. package/resources/admin.js +0 -9
  126. package/resources/admin.js.map +0 -1
  127. package/resources/admin.mjs +0 -5
  128. package/resources/admin.mjs.map +0 -1
  129. package/resources/report.d.mts +0 -245
  130. package/resources/report.d.mts.map +0 -1
  131. package/resources/report.d.ts +0 -245
  132. package/resources/report.d.ts.map +0 -1
  133. package/resources/report.js +0 -86
  134. package/resources/report.js.map +0 -1
  135. package/resources/report.mjs +0 -82
  136. package/resources/report.mjs.map +0 -1
  137. package/resources/routing.d.mts +0 -391
  138. package/resources/routing.d.mts.map +0 -1
  139. package/resources/routing.d.ts +0 -391
  140. package/resources/routing.d.ts.map +0 -1
  141. package/resources/routing.js +0 -163
  142. package/resources/routing.js.map +0 -1
  143. package/resources/routing.mjs +0 -159
  144. package/resources/routing.mjs.map +0 -1
  145. package/src/resources/admin.ts +0 -5
  146. package/src/resources/report.ts +0 -300
  147. package/src/resources/routing.ts +0 -476
@@ -0,0 +1,194 @@
1
+ import { APIResource } from "../core/resource.js";
2
+ import * as PromptAdaptationAPI from "./prompt-adaptation.js";
3
+ import { APIPromise } from "../core/api-promise.js";
4
+ import { RequestOptions } from "../internal/request-options.js";
5
+ export declare class ModelRouter extends APIResource {
6
+ /**
7
+ * Select the optimal LLM to handle your query based on Not Diamond's routing
8
+ * algorithm.
9
+ *
10
+ * This endpoint analyzes your messages and returns the best-suited model from your
11
+ * specified models. The router considers factors like query complexity, model
12
+ * capabilities, cost, and latency based on your preferences.
13
+ *
14
+ * **Key Features:**
15
+ *
16
+ * - Intelligent routing across multiple LLM providers
17
+ * - Support for custom routers trained on your evaluation data
18
+ * - Optional cost/latency optimization
19
+ * - Function calling support for compatible models
20
+ *
21
+ * **Usage:**
22
+ *
23
+ * 1. Pass your messages in OpenAI format (array of objects with 'role' and
24
+ * 'content')
25
+ * 2. Specify which LLM providers you want to route between
26
+ * 3. Optionally provide a preference_id to use a custom router that you've trained
27
+ * 4. Receive a recommended model and session_id
28
+ * 5. Use the session_id to submit feedback and improve routing
29
+ *
30
+ * **Related Endpoints:**
31
+ *
32
+ * - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
33
+ * personalized routing
34
+ * - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
35
+ * data
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const response = await client.modelRouter.selectModel({
40
+ * llm_providers: [
41
+ * { provider: 'openai', model: 'gpt-4o' },
42
+ * {
43
+ * provider: 'anthropic',
44
+ * model: 'claude-sonnet-4-5-20250929',
45
+ * },
46
+ * { provider: 'google', model: 'gemini-2.5-flash' },
47
+ * ],
48
+ * messages: [
49
+ * {
50
+ * role: 'system',
51
+ * content: 'You are a helpful assistant.',
52
+ * },
53
+ * {
54
+ * role: 'user',
55
+ * content: 'Explain quantum computing in simple terms',
56
+ * },
57
+ * ],
58
+ * });
59
+ * ```
60
+ */
61
+ selectModel(params: ModelRouterSelectModelParams, options?: RequestOptions): APIPromise<ModelRouterSelectModelResponse>;
62
+ }
63
+ /**
64
+ * Response from model selection endpoint.
65
+ */
66
+ export interface ModelRouterSelectModelResponse {
67
+ /**
68
+ * List containing the selected provider
69
+ */
70
+ providers: Array<ModelRouterSelectModelResponse.Provider>;
71
+ /**
72
+ * Unique session ID for this routing decision
73
+ */
74
+ session_id: string;
75
+ }
76
+ export declare namespace ModelRouterSelectModelResponse {
77
+ /**
78
+ * Selected LLM provider information from model selection endpoints.
79
+ *
80
+ * Part of ModelSelectResponse. Contains the provider and model that Not Diamond's
81
+ * routing algorithm selected as optimal for your query. Use these values to make
82
+ * your LLM API call to the recommended model.
83
+ */
84
+ interface Provider {
85
+ /**
86
+ * Model identifier for the selected model (e.g., 'gpt-4o',
87
+ * 'claude-3-opus-20240229')
88
+ */
89
+ model: string;
90
+ /**
91
+ * Provider name for the selected model (e.g., 'openai', 'anthropic', 'google')
92
+ */
93
+ provider: string;
94
+ }
95
+ }
96
+ export interface ModelRouterSelectModelParams {
97
+ /**
98
+ * Body param: List of LLM providers to route between. Specify at least one
99
+ * provider in format {provider, model}
100
+ */
101
+ llm_providers: Array<PromptAdaptationAPI.RequestProvider | ModelRouterSelectModelParams.OpenRouterProvider>;
102
+ /**
103
+ * Body param: Array of message objects in OpenAI format (with 'role' and 'content'
104
+ * keys)
105
+ */
106
+ messages: Array<{
107
+ [key: string]: string | Array<unknown>;
108
+ }> | string;
109
+ /**
110
+ * Query param: Optional format type. Use 'openrouter' to accept and return
111
+ * OpenRouter-format model identifiers
112
+ */
113
+ type?: string | null;
114
+ /**
115
+ * Body param: Whether to hash message content for privacy
116
+ */
117
+ hash_content?: boolean;
118
+ /**
119
+ * Body param: Maximum number of models to consider for routing. If not specified,
120
+ * considers all provided models
121
+ */
122
+ max_model_depth?: number | null;
123
+ /**
124
+ * Body param: Optimization metric for model selection
125
+ */
126
+ metric?: string;
127
+ /**
128
+ * Body param: Preference ID for personalized routing. Create one via POST
129
+ * /v2/preferences/userPreferenceCreate
130
+ */
131
+ preference_id?: string | null;
132
+ /**
133
+ * Body param: Previous session ID to link related requests
134
+ */
135
+ previous_session?: string | null;
136
+ /**
137
+ * Body param: OpenAI-format function calling tools
138
+ */
139
+ tools?: Array<{
140
+ [key: string]: unknown;
141
+ }> | null;
142
+ /**
143
+ * Body param: Optimization tradeoff strategy. Use 'cost' to prioritize cost
144
+ * savings or 'latency' to prioritize speed
145
+ */
146
+ tradeoff?: string | null;
147
+ }
148
+ export declare namespace ModelRouterSelectModelParams {
149
+ /**
150
+ * Model for specifying an LLM provider using OpenRouter format.
151
+ *
152
+ * Used in model routing requests when you want to specify providers using the
153
+ * OpenRouter naming convention (combined 'provider/model' format). This is an
154
+ * alternative to the standard RequestProvider which uses separate provider and
155
+ * model fields.
156
+ *
157
+ * **When to use:**
158
+ *
159
+ * - When working with OpenRouter-compatible systems
160
+ * - When you prefer the unified 'provider/model' format
161
+ * - For models accessed via OpenRouter proxy
162
+ */
163
+ interface OpenRouterProvider {
164
+ /**
165
+ * OpenRouter model identifier in 'provider/model' format (e.g., 'openai/gpt-4o',
166
+ * 'anthropic/claude-sonnet-4-5-20250929')
167
+ */
168
+ model: string;
169
+ /**
170
+ * Maximum context length for the model (required for custom models)
171
+ */
172
+ context_length?: number | null;
173
+ /**
174
+ * Input token price per million tokens in USD (required for custom models)
175
+ */
176
+ input_price?: number | null;
177
+ /**
178
+ * Whether this is a custom model not in Not Diamond's supported model list
179
+ */
180
+ is_custom?: boolean;
181
+ /**
182
+ * Average latency in seconds (required for custom models)
183
+ */
184
+ latency?: number | null;
185
+ /**
186
+ * Output token price per million tokens in USD (required for custom models)
187
+ */
188
+ output_price?: number | null;
189
+ }
190
+ }
191
+ export declare namespace ModelRouter {
192
+ export { type ModelRouterSelectModelResponse as ModelRouterSelectModelResponse, type ModelRouterSelectModelParams as ModelRouterSelectModelParams, };
193
+ }
194
+ //# sourceMappingURL=model-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-router.d.ts","sourceRoot":"","sources":["../src/resources/model-router.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,mBAAmB;OACxB,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,WAAY,SAAQ,WAAW;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACH,WAAW,CACT,MAAM,EAAE,4BAA4B,EACpC,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,8BAA8B,CAAC;CAI9C;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,SAAS,EAAE,KAAK,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAE1D;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,yBAAiB,8BAA8B,CAAC;IAC9C;;;;;;OAMG;IACH,UAAiB,QAAQ;QACvB;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAC;QAEd;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAC;KAClB;CACF;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,aAAa,EAAE,KAAK,CAAC,mBAAmB,CAAC,eAAe,GAAG,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;IAE5G;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC;IAErE;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAEjD;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,yBAAiB,4BAA4B,CAAC;IAC5C;;;;;;;;;;;;;OAaG;IACH,UAAiB,kBAAkB;QACjC;;;WAGG;QACH,KAAK,EAAE,MAAM,CAAC;QAEd;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAE/B;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAE5B;;WAEG;QACH,SAAS,CAAC,EAAE,OAAO,CAAC;QAEpB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAExB;;WAEG;QACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B;CACF;AAED,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,OAAO,EACL,KAAK,8BAA8B,IAAI,8BAA8B,EACrE,KAAK,4BAA4B,IAAI,4BAA4B,GAClE,CAAC;CACH"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ModelRouter = void 0;
5
+ const resource_1 = require("../core/resource.js");
6
+ class ModelRouter extends resource_1.APIResource {
7
+ /**
8
+ * Select the optimal LLM to handle your query based on Not Diamond's routing
9
+ * algorithm.
10
+ *
11
+ * This endpoint analyzes your messages and returns the best-suited model from your
12
+ * specified models. The router considers factors like query complexity, model
13
+ * capabilities, cost, and latency based on your preferences.
14
+ *
15
+ * **Key Features:**
16
+ *
17
+ * - Intelligent routing across multiple LLM providers
18
+ * - Support for custom routers trained on your evaluation data
19
+ * - Optional cost/latency optimization
20
+ * - Function calling support for compatible models
21
+ *
22
+ * **Usage:**
23
+ *
24
+ * 1. Pass your messages in OpenAI format (array of objects with 'role' and
25
+ * 'content')
26
+ * 2. Specify which LLM providers you want to route between
27
+ * 3. Optionally provide a preference_id to use a custom router that you've trained
28
+ * 4. Receive a recommended model and session_id
29
+ * 5. Use the session_id to submit feedback and improve routing
30
+ *
31
+ * **Related Endpoints:**
32
+ *
33
+ * - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
34
+ * personalized routing
35
+ * - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
36
+ * data
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const response = await client.modelRouter.selectModel({
41
+ * llm_providers: [
42
+ * { provider: 'openai', model: 'gpt-4o' },
43
+ * {
44
+ * provider: 'anthropic',
45
+ * model: 'claude-sonnet-4-5-20250929',
46
+ * },
47
+ * { provider: 'google', model: 'gemini-2.5-flash' },
48
+ * ],
49
+ * messages: [
50
+ * {
51
+ * role: 'system',
52
+ * content: 'You are a helpful assistant.',
53
+ * },
54
+ * {
55
+ * role: 'user',
56
+ * content: 'Explain quantum computing in simple terms',
57
+ * },
58
+ * ],
59
+ * });
60
+ * ```
61
+ */
62
+ selectModel(params, options) {
63
+ const { type, ...body } = params;
64
+ return this._client.post('/v2/modelRouter/modelSelect', { query: { type }, body, ...options });
65
+ }
66
+ }
67
+ exports.ModelRouter = ModelRouter;
68
+ //# sourceMappingURL=model-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-router.js","sourceRoot":"","sources":["../src/resources/model-router.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAK/C,MAAa,WAAY,SAAQ,sBAAW;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACH,WAAW,CACT,MAAoC,EACpC,OAAwB;QAExB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;CACF;AA/DD,kCA+DC"}
@@ -0,0 +1,64 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { APIResource } from "../core/resource.mjs";
3
+ export class ModelRouter extends APIResource {
4
+ /**
5
+ * Select the optimal LLM to handle your query based on Not Diamond's routing
6
+ * algorithm.
7
+ *
8
+ * This endpoint analyzes your messages and returns the best-suited model from your
9
+ * specified models. The router considers factors like query complexity, model
10
+ * capabilities, cost, and latency based on your preferences.
11
+ *
12
+ * **Key Features:**
13
+ *
14
+ * - Intelligent routing across multiple LLM providers
15
+ * - Support for custom routers trained on your evaluation data
16
+ * - Optional cost/latency optimization
17
+ * - Function calling support for compatible models
18
+ *
19
+ * **Usage:**
20
+ *
21
+ * 1. Pass your messages in OpenAI format (array of objects with 'role' and
22
+ * 'content')
23
+ * 2. Specify which LLM providers you want to route between
24
+ * 3. Optionally provide a preference_id to use a custom router that you've trained
25
+ * 4. Receive a recommended model and session_id
26
+ * 5. Use the session_id to submit feedback and improve routing
27
+ *
28
+ * **Related Endpoints:**
29
+ *
30
+ * - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
31
+ * personalized routing
32
+ * - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
33
+ * data
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const response = await client.modelRouter.selectModel({
38
+ * llm_providers: [
39
+ * { provider: 'openai', model: 'gpt-4o' },
40
+ * {
41
+ * provider: 'anthropic',
42
+ * model: 'claude-sonnet-4-5-20250929',
43
+ * },
44
+ * { provider: 'google', model: 'gemini-2.5-flash' },
45
+ * ],
46
+ * messages: [
47
+ * {
48
+ * role: 'system',
49
+ * content: 'You are a helpful assistant.',
50
+ * },
51
+ * {
52
+ * role: 'user',
53
+ * content: 'Explain quantum computing in simple terms',
54
+ * },
55
+ * ],
56
+ * });
57
+ * ```
58
+ */
59
+ selectModel(params, options) {
60
+ const { type, ...body } = params;
61
+ return this._client.post('/v2/modelRouter/modelSelect', { query: { type }, body, ...options });
62
+ }
63
+ }
64
+ //# sourceMappingURL=model-router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-router.mjs","sourceRoot":"","sources":["../src/resources/model-router.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;AAKtB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACH,WAAW,CACT,MAAoC,EACpC,OAAwB;QAExB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;CACF"}
@@ -33,40 +33,65 @@ export declare class Models extends APIResource {
33
33
  * **Caching:**
34
34
  *
35
35
  * - Response is cacheable for 1 hour (model list rarely changes)
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const models = await client.models.list();
40
+ * ```
36
41
  */
37
42
  list(query?: ModelListParams | null | undefined, options?: RequestOptions): APIPromise<ModelListResponse>;
38
43
  }
39
44
  /**
40
- * Response for models list endpoint.
45
+ * Response model for a single LLM model from GET /v2/models endpoint.
46
+ *
47
+ * Contains metadata about a supported text generation model including pricing,
48
+ * context limits, and availability information.
41
49
  */
42
- export interface ModelListResponse {
43
- deprecated_models: Array<ModelListResponse.DeprecatedModel>;
44
- models: Array<ModelListResponse.Model>;
45
- total: number;
50
+ export interface Model {
51
+ /**
52
+ * Maximum context window size in tokens
53
+ */
54
+ context_length: number;
55
+ /**
56
+ * Price per million input tokens in USD
57
+ */
58
+ input_price: number;
59
+ /**
60
+ * Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229')
61
+ */
62
+ model: string;
63
+ /**
64
+ * Price per million output tokens in USD
65
+ */
66
+ output_price: number;
67
+ /**
68
+ * Provider name (e.g., 'openai', 'anthropic', 'google')
69
+ */
70
+ provider: string;
71
+ /**
72
+ * OpenRouter model identifier if available, null if not supported via OpenRouter
73
+ */
74
+ openrouter_model?: string | null;
46
75
  }
47
- export declare namespace ModelListResponse {
76
+ /**
77
+ * Response model for GET /v2/models endpoint.
78
+ *
79
+ * Returns a list of all supported text generation models with their metadata,
80
+ * separated into active and deprecated models.
81
+ */
82
+ export interface ModelListResponse {
48
83
  /**
49
- * Response model for a single LLM provider.
84
+ * List of deprecated models that are no longer recommended but may still work
50
85
  */
51
- interface DeprecatedModel {
52
- context_length: number;
53
- input_price: number;
54
- model: string;
55
- output_price: number;
56
- provider: string;
57
- openrouter_model?: string | null;
58
- }
86
+ deprecated_models: Array<Model>;
59
87
  /**
60
- * Response model for a single LLM provider.
88
+ * List of active/supported text generation models with their metadata
61
89
  */
62
- interface Model {
63
- context_length: number;
64
- input_price: number;
65
- model: string;
66
- output_price: number;
67
- provider: string;
68
- openrouter_model?: string | null;
69
- }
90
+ models: Array<Model>;
91
+ /**
92
+ * Total count of active models in the response
93
+ */
94
+ total: number;
70
95
  }
71
96
  export interface ModelListParams {
72
97
  /**
@@ -80,6 +105,6 @@ export interface ModelListParams {
80
105
  provider?: Array<string> | null;
81
106
  }
82
107
  export declare namespace Models {
83
- export { type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams };
108
+ export { type Model as Model, type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams, };
84
109
  }
85
110
  //# sourceMappingURL=models.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.mts","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,IAAI,CACF,KAAK,GAAE,eAAe,GAAG,IAAI,GAAG,SAAc,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,iBAAiB,CAAC;CAGjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE5D,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yBAAiB,iBAAiB,CAAC;IACjC;;OAEG;IACH,UAAiB,eAAe;QAC9B,cAAc,EAAE,MAAM,CAAC;QAEvB,WAAW,EAAE,MAAM,CAAC;QAEpB,KAAK,EAAE,MAAM,CAAC;QAEd,YAAY,EAAE,MAAM,CAAC;QAErB,QAAQ,EAAE,MAAM,CAAC;QAEjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC;IAED;;OAEG;IACH,UAAiB,KAAK;QACpB,cAAc,EAAE,MAAM,CAAC;QAEvB,WAAW,EAAE,MAAM,CAAC;QAEpB,KAAK,EAAE,MAAM,CAAC;QAEd,YAAY,EAAE,MAAM,CAAC;QAErB,QAAQ,EAAE,MAAM,CAAC;QAEjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC;CACF;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,OAAO,EAAE,KAAK,iBAAiB,IAAI,iBAAiB,EAAE,KAAK,eAAe,IAAI,eAAe,EAAE,CAAC;CACjG"}
1
+ {"version":3,"file":"models.d.mts","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CACF,KAAK,GAAE,eAAe,GAAG,IAAI,GAAG,SAAc,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,iBAAiB,CAAC;CAGjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,OAAO,EACL,KAAK,KAAK,IAAI,KAAK,EACnB,KAAK,iBAAiB,IAAI,iBAAiB,EAC3C,KAAK,eAAe,IAAI,eAAe,GACxC,CAAC;CACH"}
@@ -33,40 +33,65 @@ export declare class Models extends APIResource {
33
33
  * **Caching:**
34
34
  *
35
35
  * - Response is cacheable for 1 hour (model list rarely changes)
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const models = await client.models.list();
40
+ * ```
36
41
  */
37
42
  list(query?: ModelListParams | null | undefined, options?: RequestOptions): APIPromise<ModelListResponse>;
38
43
  }
39
44
  /**
40
- * Response for models list endpoint.
45
+ * Response model for a single LLM model from GET /v2/models endpoint.
46
+ *
47
+ * Contains metadata about a supported text generation model including pricing,
48
+ * context limits, and availability information.
41
49
  */
42
- export interface ModelListResponse {
43
- deprecated_models: Array<ModelListResponse.DeprecatedModel>;
44
- models: Array<ModelListResponse.Model>;
45
- total: number;
50
+ export interface Model {
51
+ /**
52
+ * Maximum context window size in tokens
53
+ */
54
+ context_length: number;
55
+ /**
56
+ * Price per million input tokens in USD
57
+ */
58
+ input_price: number;
59
+ /**
60
+ * Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229')
61
+ */
62
+ model: string;
63
+ /**
64
+ * Price per million output tokens in USD
65
+ */
66
+ output_price: number;
67
+ /**
68
+ * Provider name (e.g., 'openai', 'anthropic', 'google')
69
+ */
70
+ provider: string;
71
+ /**
72
+ * OpenRouter model identifier if available, null if not supported via OpenRouter
73
+ */
74
+ openrouter_model?: string | null;
46
75
  }
47
- export declare namespace ModelListResponse {
76
+ /**
77
+ * Response model for GET /v2/models endpoint.
78
+ *
79
+ * Returns a list of all supported text generation models with their metadata,
80
+ * separated into active and deprecated models.
81
+ */
82
+ export interface ModelListResponse {
48
83
  /**
49
- * Response model for a single LLM provider.
84
+ * List of deprecated models that are no longer recommended but may still work
50
85
  */
51
- interface DeprecatedModel {
52
- context_length: number;
53
- input_price: number;
54
- model: string;
55
- output_price: number;
56
- provider: string;
57
- openrouter_model?: string | null;
58
- }
86
+ deprecated_models: Array<Model>;
59
87
  /**
60
- * Response model for a single LLM provider.
88
+ * List of active/supported text generation models with their metadata
61
89
  */
62
- interface Model {
63
- context_length: number;
64
- input_price: number;
65
- model: string;
66
- output_price: number;
67
- provider: string;
68
- openrouter_model?: string | null;
69
- }
90
+ models: Array<Model>;
91
+ /**
92
+ * Total count of active models in the response
93
+ */
94
+ total: number;
70
95
  }
71
96
  export interface ModelListParams {
72
97
  /**
@@ -80,6 +105,6 @@ export interface ModelListParams {
80
105
  provider?: Array<string> | null;
81
106
  }
82
107
  export declare namespace Models {
83
- export { type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams };
108
+ export { type Model as Model, type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams, };
84
109
  }
85
110
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,IAAI,CACF,KAAK,GAAE,eAAe,GAAG,IAAI,GAAG,SAAc,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,iBAAiB,CAAC;CAGjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE5D,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,yBAAiB,iBAAiB,CAAC;IACjC;;OAEG;IACH,UAAiB,eAAe;QAC9B,cAAc,EAAE,MAAM,CAAC;QAEvB,WAAW,EAAE,MAAM,CAAC;QAEpB,KAAK,EAAE,MAAM,CAAC;QAEd,YAAY,EAAE,MAAM,CAAC;QAErB,QAAQ,EAAE,MAAM,CAAC;QAEjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC;IAED;;OAEG;IACH,UAAiB,KAAK;QACpB,cAAc,EAAE,MAAM,CAAC;QAEvB,WAAW,EAAE,MAAM,CAAC;QAEpB,KAAK,EAAE,MAAM,CAAC;QAEd,YAAY,EAAE,MAAM,CAAC;QAErB,QAAQ,EAAE,MAAM,CAAC;QAEjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAClC;CACF;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,OAAO,EAAE,KAAK,iBAAiB,IAAI,iBAAiB,EAAE,KAAK,eAAe,IAAI,eAAe,EAAE,CAAC;CACjG"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAEzB,qBAAa,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CACF,KAAK,GAAE,eAAe,GAAG,IAAI,GAAG,SAAc,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,iBAAiB,CAAC;CAGjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAErB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,OAAO,EACL,KAAK,KAAK,IAAI,KAAK,EACnB,KAAK,iBAAiB,IAAI,iBAAiB,EAC3C,KAAK,eAAe,IAAI,eAAe,GACxC,CAAC;CACH"}
@@ -35,6 +35,11 @@ class Models extends resource_1.APIResource {
35
35
  * **Caching:**
36
36
  *
37
37
  * - Response is cacheable for 1 hour (model list rarely changes)
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * const models = await client.models.list();
42
+ * ```
38
43
  */
39
44
  list(query = {}, options) {
40
45
  return this._client.get('/v2/models', { query, ...options });
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAI/C,MAAa,MAAO,SAAQ,sBAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,IAAI,CACF,QAA4C,EAAE,EAC9C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AAvCD,wBAuCC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAI/C,MAAa,MAAO,SAAQ,sBAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CACF,QAA4C,EAAE,EAC9C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AA5CD,wBA4CC"}
@@ -32,6 +32,11 @@ export class Models extends APIResource {
32
32
  * **Caching:**
33
33
  *
34
34
  * - Response is cacheable for 1 hour (model list rarely changes)
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const models = await client.models.list();
39
+ * ```
35
40
  */
36
41
  list(query = {}, options) {
37
42
  return this._client.get('/v2/models', { query, ...options });
@@ -1 +1 @@
1
- {"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;AAItB,MAAM,OAAO,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,IAAI,CACF,QAA4C,EAAE,EAC9C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF"}
1
+ {"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/resources/models.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;AAItB,MAAM,OAAO,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,IAAI,CACF,QAA4C,EAAE,EAC9C,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF"}