notdiamond 2.0.0-rc5 → 2.1.0

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 (144) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/LICENSE +1 -1
  3. package/README.md +276 -148
  4. package/client.d.mts +16 -19
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +16 -19
  7. package/client.d.ts.map +1 -1
  8. package/client.js +11 -14
  9. package/client.js.map +1 -1
  10. package/client.mjs +11 -14
  11. package/client.mjs.map +1 -1
  12. package/internal/tslib.js +17 -17
  13. package/package.json +3 -3
  14. package/resources/{pzn.d.mts → custom-router.d.mts} +16 -96
  15. package/resources/custom-router.d.mts.map +1 -0
  16. package/resources/{pzn.d.ts → custom-router.d.ts} +16 -96
  17. package/resources/custom-router.d.ts.map +1 -0
  18. package/resources/{pzn.js → custom-router.js} +13 -50
  19. package/resources/custom-router.js.map +1 -0
  20. package/resources/{pzn.mjs → custom-router.mjs} +11 -48
  21. package/resources/custom-router.mjs.map +1 -0
  22. package/resources/index.d.mts +4 -5
  23. package/resources/index.d.mts.map +1 -1
  24. package/resources/index.d.ts +4 -5
  25. package/resources/index.d.ts.map +1 -1
  26. package/resources/index.js +5 -7
  27. package/resources/index.js.map +1 -1
  28. package/resources/index.mjs +2 -3
  29. package/resources/index.mjs.map +1 -1
  30. package/resources/model-router.d.mts +6 -123
  31. package/resources/model-router.d.mts.map +1 -1
  32. package/resources/model-router.d.ts +6 -123
  33. package/resources/model-router.d.ts.map +1 -1
  34. package/resources/model-router.js +3 -32
  35. package/resources/model-router.js.map +1 -1
  36. package/resources/model-router.mjs +3 -32
  37. package/resources/model-router.mjs.map +1 -1
  38. package/resources/preferences.d.mts +4 -23
  39. package/resources/preferences.d.mts.map +1 -1
  40. package/resources/preferences.d.ts +4 -23
  41. package/resources/preferences.d.ts.map +1 -1
  42. package/resources/preferences.js +3 -25
  43. package/resources/preferences.js.map +1 -1
  44. package/resources/preferences.mjs +3 -25
  45. package/resources/preferences.mjs.map +1 -1
  46. package/resources/prompt-adaptation.d.mts +687 -0
  47. package/resources/prompt-adaptation.d.mts.map +1 -0
  48. package/resources/prompt-adaptation.d.ts +687 -0
  49. package/resources/prompt-adaptation.d.ts.map +1 -0
  50. package/resources/prompt-adaptation.js +258 -0
  51. package/resources/prompt-adaptation.js.map +1 -0
  52. package/resources/prompt-adaptation.mjs +254 -0
  53. package/resources/prompt-adaptation.mjs.map +1 -0
  54. package/src/client.ts +37 -44
  55. package/src/resources/{pzn.ts → custom-router.ts} +17 -122
  56. package/src/resources/index.ts +14 -16
  57. package/src/resources/model-router.ts +5 -139
  58. package/src/resources/preferences.ts +3 -34
  59. package/src/resources/prompt-adaptation.ts +780 -0
  60. package/src/version.ts +1 -1
  61. package/version.d.mts +1 -1
  62. package/version.d.mts.map +1 -1
  63. package/version.d.ts +1 -1
  64. package/version.d.ts.map +1 -1
  65. package/version.js +1 -1
  66. package/version.js.map +1 -1
  67. package/version.mjs +1 -1
  68. package/version.mjs.map +1 -1
  69. package/resources/prompt/adapt.d.mts +0 -352
  70. package/resources/prompt/adapt.d.mts.map +0 -1
  71. package/resources/prompt/adapt.d.ts +0 -352
  72. package/resources/prompt/adapt.d.ts.map +0 -1
  73. package/resources/prompt/adapt.js +0 -154
  74. package/resources/prompt/adapt.js.map +0 -1
  75. package/resources/prompt/adapt.mjs +0 -150
  76. package/resources/prompt/adapt.mjs.map +0 -1
  77. package/resources/prompt/index.d.mts +0 -3
  78. package/resources/prompt/index.d.mts.map +0 -1
  79. package/resources/prompt/index.d.ts +0 -3
  80. package/resources/prompt/index.d.ts.map +0 -1
  81. package/resources/prompt/index.js +0 -9
  82. package/resources/prompt/index.js.map +0 -1
  83. package/resources/prompt/index.mjs +0 -4
  84. package/resources/prompt/index.mjs.map +0 -1
  85. package/resources/prompt/prompt.d.mts +0 -338
  86. package/resources/prompt/prompt.d.mts.map +0 -1
  87. package/resources/prompt/prompt.d.ts +0 -338
  88. package/resources/prompt/prompt.d.ts.map +0 -1
  89. package/resources/prompt/prompt.js +0 -128
  90. package/resources/prompt/prompt.js.map +0 -1
  91. package/resources/prompt/prompt.mjs +0 -123
  92. package/resources/prompt/prompt.mjs.map +0 -1
  93. package/resources/prompt.d.mts +0 -2
  94. package/resources/prompt.d.mts.map +0 -1
  95. package/resources/prompt.d.ts +0 -2
  96. package/resources/prompt.d.ts.map +0 -1
  97. package/resources/prompt.js +0 -6
  98. package/resources/prompt.js.map +0 -1
  99. package/resources/prompt.mjs +0 -3
  100. package/resources/prompt.mjs.map +0 -1
  101. package/resources/pzn.d.mts.map +0 -1
  102. package/resources/pzn.d.ts.map +0 -1
  103. package/resources/pzn.js.map +0 -1
  104. package/resources/pzn.mjs.map +0 -1
  105. package/resources/report/index.d.mts +0 -3
  106. package/resources/report/index.d.mts.map +0 -1
  107. package/resources/report/index.d.ts +0 -3
  108. package/resources/report/index.d.ts.map +0 -1
  109. package/resources/report/index.js +0 -9
  110. package/resources/report/index.js.map +0 -1
  111. package/resources/report/index.mjs +0 -4
  112. package/resources/report/index.mjs.map +0 -1
  113. package/resources/report/metrics.d.mts +0 -87
  114. package/resources/report/metrics.d.mts.map +0 -1
  115. package/resources/report/metrics.d.ts +0 -87
  116. package/resources/report/metrics.d.ts.map +0 -1
  117. package/resources/report/metrics.js +0 -57
  118. package/resources/report/metrics.js.map +0 -1
  119. package/resources/report/metrics.mjs +0 -53
  120. package/resources/report/metrics.mjs.map +0 -1
  121. package/resources/report/report.d.mts +0 -10
  122. package/resources/report/report.d.mts.map +0 -1
  123. package/resources/report/report.d.ts +0 -10
  124. package/resources/report/report.d.ts.map +0 -1
  125. package/resources/report/report.js +0 -17
  126. package/resources/report/report.js.map +0 -1
  127. package/resources/report/report.mjs +0 -12
  128. package/resources/report/report.mjs.map +0 -1
  129. package/resources/report.d.mts +0 -2
  130. package/resources/report.d.mts.map +0 -1
  131. package/resources/report.d.ts +0 -2
  132. package/resources/report.d.ts.map +0 -1
  133. package/resources/report.js +0 -6
  134. package/resources/report.js.map +0 -1
  135. package/resources/report.mjs +0 -3
  136. package/resources/report.mjs.map +0 -1
  137. package/src/resources/prompt/adapt.ts +0 -402
  138. package/src/resources/prompt/index.ts +0 -16
  139. package/src/resources/prompt/prompt.ts +0 -398
  140. package/src/resources/prompt.ts +0 -3
  141. package/src/resources/report/index.ts +0 -4
  142. package/src/resources/report/metrics.ts +0 -99
  143. package/src/resources/report/report.ts +0 -19
  144. package/src/resources/report.ts +0 -3
package/src/client.ts CHANGED
@@ -17,10 +17,13 @@ import * as Errors from './core/error';
17
17
  import * as Uploads from './core/uploads';
18
18
  import * as API from './resources/index';
19
19
  import { APIPromise } from './core/api-promise';
20
+ import {
21
+ CustomRouter,
22
+ CustomRouterTrainCustomRouterParams,
23
+ CustomRouterTrainCustomRouterResponse,
24
+ } from './resources/custom-router';
20
25
  import {
21
26
  ModelRouter,
22
- ModelRouterOpenHandsSelectParams,
23
- ModelRouterOpenHandsSelectResponse,
24
27
  ModelRouterSelectModelParams,
25
28
  ModelRouterSelectModelResponse,
26
29
  } from './resources/model-router';
@@ -29,26 +32,21 @@ import {
29
32
  PreferenceCreateParams,
30
33
  PreferenceCreateResponse,
31
34
  PreferenceDeleteResponse,
32
- PreferenceRetrieveParams,
33
- PreferenceRetrieveResponse,
34
35
  PreferenceUpdateParams,
35
36
  PreferenceUpdateResponse,
36
37
  Preferences,
37
38
  } from './resources/preferences';
38
39
  import {
39
- Pzn,
40
- PznSubmitSurveyResponseParams,
41
- PznSubmitSurveyResponseResponse,
42
- PznTrainCustomRouterParams,
43
- PznTrainCustomRouterResponse,
44
- } from './resources/pzn';
45
- import {
40
+ GoldenRecord,
46
41
  JobStatus,
47
- Prompt,
48
- PromptGetAdaptResultsResponse,
49
- PromptGetAdaptStatusResponse,
50
- } from './resources/prompt/prompt';
51
- import { Report } from './resources/report/report';
42
+ PromptAdaptation,
43
+ PromptAdaptationAdaptParams,
44
+ PromptAdaptationAdaptResponse,
45
+ PromptAdaptationGetAdaptResultsResponse,
46
+ PromptAdaptationGetAdaptStatusResponse,
47
+ PromptAdaptationGetCostResponse,
48
+ RequestProvider,
49
+ } from './resources/prompt-adaptation';
52
50
  import { type Fetch } from './internal/builtin-types';
53
51
  import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
54
52
  import { FinalRequestOptions, RequestOptions } from './internal/request-options';
@@ -71,7 +69,7 @@ export interface ClientOptions {
71
69
  /**
72
70
  * Override the default base URL for the API, e.g., "https://api.example.com/v2/"
73
71
  *
74
- * Defaults to process.env['NOT_DIAMOND_BASE_URL'].
72
+ * Defaults to process.env['NOTDIAMOND_BASE_URL'].
75
73
  */
76
74
  baseURL?: string | null | undefined;
77
75
 
@@ -125,7 +123,7 @@ export interface ClientOptions {
125
123
  /**
126
124
  * Set the log level.
127
125
  *
128
- * Defaults to process.env['NOT_DIAMOND_LOG'] or 'warn' if it isn't set.
126
+ * Defaults to process.env['NOTDIAMOND_LOG'] or 'warn' if it isn't set.
129
127
  */
130
128
  logLevel?: LogLevel | undefined;
131
129
 
@@ -138,7 +136,7 @@ export interface ClientOptions {
138
136
  }
139
137
 
140
138
  /**
141
- * API Client for interfacing with the Not Diamond API.
139
+ * API Client for interfacing with the Notdiamond API.
142
140
  */
143
141
  export class NotDiamond {
144
142
  apiKey: string;
@@ -146,7 +144,7 @@ export class NotDiamond {
146
144
  baseURL: string;
147
145
  maxRetries: number;
148
146
  timeout: number;
149
- logger: Logger | undefined;
147
+ logger: Logger;
150
148
  logLevel: LogLevel | undefined;
151
149
  fetchOptions: MergedRequestInit | undefined;
152
150
 
@@ -156,10 +154,10 @@ export class NotDiamond {
156
154
  private _options: ClientOptions;
157
155
 
158
156
  /**
159
- * API Client for interfacing with the Not Diamond API.
157
+ * API Client for interfacing with the Notdiamond API.
160
158
  *
161
159
  * @param {string | undefined} [opts.apiKey=process.env['NOT_DIAMOND_API_KEY'] ?? undefined]
162
- * @param {string} [opts.baseURL=process.env['NOT_DIAMOND_BASE_URL'] ?? https://api.notdiamond.ai] - Override the default base URL for the API.
160
+ * @param {string} [opts.baseURL=process.env['NOTDIAMOND_BASE_URL'] ?? https://api.notdiamond.ai] - Override the default base URL for the API.
163
161
  * @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
164
162
  * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.
165
163
  * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.
@@ -168,7 +166,7 @@ export class NotDiamond {
168
166
  * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.
169
167
  */
170
168
  constructor({
171
- baseURL = readEnv('NOT_DIAMOND_BASE_URL'),
169
+ baseURL = readEnv('NOTDIAMOND_BASE_URL'),
172
170
  apiKey = readEnv('NOT_DIAMOND_API_KEY'),
173
171
  ...opts
174
172
  }: ClientOptions = {}) {
@@ -192,7 +190,7 @@ export class NotDiamond {
192
190
  this.logLevel = defaultLogLevel;
193
191
  this.logLevel =
194
192
  parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??
195
- parseLogLevel(readEnv('NOT_DIAMOND_LOG'), "process.env['NOT_DIAMOND_LOG']", this) ??
193
+ parseLogLevel(readEnv('NOTDIAMOND_LOG'), "process.env['NOTDIAMOND_LOG']", this) ??
196
194
  defaultLogLevel;
197
195
  this.fetchOptions = options.fetchOptions;
198
196
  this.maxRetries = options.maxRetries ?? 2;
@@ -731,18 +729,16 @@ export class NotDiamond {
731
729
  static toFile = Uploads.toFile;
732
730
 
733
731
  modelRouter: API.ModelRouter = new API.ModelRouter(this);
734
- report: API.Report = new API.Report(this);
735
732
  preferences: API.Preferences = new API.Preferences(this);
736
- prompt: API.Prompt = new API.Prompt(this);
737
- pzn: API.Pzn = new API.Pzn(this);
733
+ promptAdaptation: API.PromptAdaptation = new API.PromptAdaptation(this);
734
+ customRouter: API.CustomRouter = new API.CustomRouter(this);
738
735
  models: API.Models = new API.Models(this);
739
736
  }
740
737
 
741
738
  NotDiamond.ModelRouter = ModelRouter;
742
- NotDiamond.Report = Report;
743
739
  NotDiamond.Preferences = Preferences;
744
- NotDiamond.Prompt = Prompt;
745
- NotDiamond.Pzn = Pzn;
740
+ NotDiamond.PromptAdaptation = PromptAdaptation;
741
+ NotDiamond.CustomRouter = CustomRouter;
746
742
  NotDiamond.Models = Models;
747
743
 
748
744
  export declare namespace NotDiamond {
@@ -750,38 +746,35 @@ export declare namespace NotDiamond {
750
746
 
751
747
  export {
752
748
  ModelRouter as ModelRouter,
753
- type ModelRouterOpenHandsSelectResponse as ModelRouterOpenHandsSelectResponse,
754
749
  type ModelRouterSelectModelResponse as ModelRouterSelectModelResponse,
755
- type ModelRouterOpenHandsSelectParams as ModelRouterOpenHandsSelectParams,
756
750
  type ModelRouterSelectModelParams as ModelRouterSelectModelParams,
757
751
  };
758
752
 
759
- export { Report as Report };
760
-
761
753
  export {
762
754
  Preferences as Preferences,
763
755
  type PreferenceCreateResponse as PreferenceCreateResponse,
764
- type PreferenceRetrieveResponse as PreferenceRetrieveResponse,
765
756
  type PreferenceUpdateResponse as PreferenceUpdateResponse,
766
757
  type PreferenceDeleteResponse as PreferenceDeleteResponse,
767
758
  type PreferenceCreateParams as PreferenceCreateParams,
768
- type PreferenceRetrieveParams as PreferenceRetrieveParams,
769
759
  type PreferenceUpdateParams as PreferenceUpdateParams,
770
760
  };
771
761
 
772
762
  export {
773
- Prompt as Prompt,
763
+ PromptAdaptation as PromptAdaptation,
764
+ type GoldenRecord as GoldenRecord,
774
765
  type JobStatus as JobStatus,
775
- type PromptGetAdaptResultsResponse as PromptGetAdaptResultsResponse,
776
- type PromptGetAdaptStatusResponse as PromptGetAdaptStatusResponse,
766
+ type RequestProvider as RequestProvider,
767
+ type PromptAdaptationAdaptResponse as PromptAdaptationAdaptResponse,
768
+ type PromptAdaptationGetAdaptResultsResponse as PromptAdaptationGetAdaptResultsResponse,
769
+ type PromptAdaptationGetAdaptStatusResponse as PromptAdaptationGetAdaptStatusResponse,
770
+ type PromptAdaptationGetCostResponse as PromptAdaptationGetCostResponse,
771
+ type PromptAdaptationAdaptParams as PromptAdaptationAdaptParams,
777
772
  };
778
773
 
779
774
  export {
780
- Pzn as Pzn,
781
- type PznSubmitSurveyResponseResponse as PznSubmitSurveyResponseResponse,
782
- type PznTrainCustomRouterResponse as PznTrainCustomRouterResponse,
783
- type PznSubmitSurveyResponseParams as PznSubmitSurveyResponseParams,
784
- type PznTrainCustomRouterParams as PznTrainCustomRouterParams,
775
+ CustomRouter as CustomRouter,
776
+ type CustomRouterTrainCustomRouterResponse as CustomRouterTrainCustomRouterResponse,
777
+ type CustomRouterTrainCustomRouterParams as CustomRouterTrainCustomRouterParams,
785
778
  };
786
779
 
787
780
  export {
@@ -3,55 +3,10 @@
3
3
  import { APIResource } from '../core/resource';
4
4
  import { APIPromise } from '../core/api-promise';
5
5
  import { type Uploadable } from '../core/uploads';
6
- import { buildHeaders } from '../internal/headers';
7
6
  import { RequestOptions } from '../internal/request-options';
8
7
  import { multipartFormRequestOptions } from '../internal/uploads';
9
8
 
10
- export class Pzn extends APIResource {
11
- /**
12
- * Submit a survey response for personalized routing setup.
13
- *
14
- * This admin endpoint processes survey responses to set up personalized routing
15
- * configurations for users based on their use case, LLM preferences, and
16
- * constraints.
17
- *
18
- * **Survey Data:**
19
- *
20
- * - User information and use case description
21
- * - Preferred LLM providers and models
22
- * - Constraint priorities (quality, cost, latency)
23
- * - Optional prompts and evaluation datasets
24
- *
25
- * **File Uploads:**
26
- *
27
- * - `prompt_file`: Optional CSV file with prompts
28
- * - `dataset_file`: Optional CSV file with evaluation dataset
29
- *
30
- * **Note:** This is an admin-only endpoint for internal use.
31
- *
32
- * @example
33
- * ```ts
34
- * const response = await client.pzn.submitSurveyResponse({
35
- * constraint_priorities: 'constraint_priorities',
36
- * email: 'email',
37
- * llm_providers: 'llm_providers',
38
- * use_case_desc: 'use_case_desc',
39
- * user_id: 'user_id',
40
- * 'x-token': 'x-token',
41
- * });
42
- * ```
43
- */
44
- submitSurveyResponse(params: PznSubmitSurveyResponseParams, options?: RequestOptions): APIPromise<unknown> {
45
- const { 'x-token': xToken, ...body } = params;
46
- return this._client.post(
47
- '/v2/pzn/surveyResponse',
48
- multipartFormRequestOptions(
49
- { body, ...options, headers: buildHeaders([{ 'x-token': xToken }, options?.headers]) },
50
- this._client,
51
- ),
52
- );
53
- }
54
-
9
+ export class CustomRouter extends APIResource {
55
10
  /**
56
11
  * Train a custom router on your evaluation data to optimize routing for your
57
12
  * specific use case.
@@ -111,20 +66,21 @@ export class Pzn extends APIResource {
111
66
  *
112
67
  * @example
113
68
  * ```ts
114
- * const response = await client.pzn.trainCustomRouter({
115
- * dataset_file: fs.createReadStream('path/to/file'),
116
- * language: 'english',
117
- * llm_providers:
118
- * '[{"provider": "openai", "model": "gpt-4o"}, {"provider": "anthropic", "model": "claude-sonnet-4-5-20250929"}]',
119
- * maximize: true,
120
- * prompt_column: 'prompt',
121
- * });
69
+ * const response =
70
+ * await client.customRouter.trainCustomRouter({
71
+ * dataset_file: fs.createReadStream('path/to/file'),
72
+ * language: 'english',
73
+ * llm_providers:
74
+ * '[{"provider": "openai", "model": "gpt-4o"}, {"provider": "anthropic", "model": "claude-sonnet-4-5-20250929"}]',
75
+ * maximize: true,
76
+ * prompt_column: 'prompt',
77
+ * });
122
78
  * ```
123
79
  */
124
80
  trainCustomRouter(
125
- body: PznTrainCustomRouterParams,
81
+ body: CustomRouterTrainCustomRouterParams,
126
82
  options?: RequestOptions,
127
- ): APIPromise<PznTrainCustomRouterResponse> {
83
+ ): APIPromise<CustomRouterTrainCustomRouterResponse> {
128
84
  return this._client.post(
129
85
  '/v2/pzn/trainCustomRouter',
130
86
  multipartFormRequestOptions({ body, ...options }, this._client),
@@ -132,8 +88,6 @@ export class Pzn extends APIResource {
132
88
  }
133
89
  }
134
90
 
135
- export type PznSubmitSurveyResponseResponse = unknown;
136
-
137
91
  /**
138
92
  * Response model for POST /v2/pzn/trainCustomRouter endpoint.
139
93
  *
@@ -155,7 +109,7 @@ export type PznSubmitSurveyResponseResponse = unknown;
155
109
  * - No need to poll status - you can start using it immediately (will use default
156
110
  * until ready)
157
111
  */
158
- export interface PznTrainCustomRouterResponse {
112
+ export interface CustomRouterTrainCustomRouterResponse {
159
113
  /**
160
114
  * Unique identifier for the custom router. Use this in model_select() calls to
161
115
  * enable routing with your custom-trained router
@@ -163,64 +117,7 @@ export interface PznTrainCustomRouterResponse {
163
117
  preference_id: string;
164
118
  }
165
119
 
166
- export interface PznSubmitSurveyResponseParams {
167
- /**
168
- * Body param: JSON string of constraint priorities object
169
- */
170
- constraint_priorities: string;
171
-
172
- /**
173
- * Body param: User email address
174
- */
175
- email: string;
176
-
177
- /**
178
- * Body param: JSON string of LLM providers array
179
- */
180
- llm_providers: string;
181
-
182
- /**
183
- * Body param: Description of the user's use case
184
- */
185
- use_case_desc: string;
186
-
187
- /**
188
- * Body param: User ID from Supabase
189
- */
190
- user_id: string;
191
-
192
- /**
193
- * Header param:
194
- */
195
- 'x-token': string;
196
-
197
- /**
198
- * Body param: Optional additional preferences text
199
- */
200
- additional_preferences?: string | null;
201
-
202
- /**
203
- * Body param: Optional CSV file with evaluation dataset
204
- */
205
- dataset_file?: Uploadable | null;
206
-
207
- /**
208
- * Body param: Optional preference name
209
- */
210
- name?: string | null;
211
-
212
- /**
213
- * Body param: Optional CSV file with prompts
214
- */
215
- prompt_file?: Uploadable | null;
216
-
217
- /**
218
- * Body param: Optional JSON string of prompts array
219
- */
220
- prompts?: string | null;
221
- }
222
-
223
- export interface PznTrainCustomRouterParams {
120
+ export interface CustomRouterTrainCustomRouterParams {
224
121
  /**
225
122
  * CSV file containing evaluation data with prompt column and score/response
226
123
  * columns for each model
@@ -263,11 +160,9 @@ export interface PznTrainCustomRouterParams {
263
160
  preference_id?: string | null;
264
161
  }
265
162
 
266
- export declare namespace Pzn {
163
+ export declare namespace CustomRouter {
267
164
  export {
268
- type PznSubmitSurveyResponseResponse as PznSubmitSurveyResponseResponse,
269
- type PznTrainCustomRouterResponse as PznTrainCustomRouterResponse,
270
- type PznSubmitSurveyResponseParams as PznSubmitSurveyResponseParams,
271
- type PznTrainCustomRouterParams as PznTrainCustomRouterParams,
165
+ type CustomRouterTrainCustomRouterResponse as CustomRouterTrainCustomRouterResponse,
166
+ type CustomRouterTrainCustomRouterParams as CustomRouterTrainCustomRouterParams,
272
167
  };
273
168
  }
@@ -1,34 +1,32 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
+ export {
4
+ CustomRouter,
5
+ type CustomRouterTrainCustomRouterResponse,
6
+ type CustomRouterTrainCustomRouterParams,
7
+ } from './custom-router';
3
8
  export {
4
9
  ModelRouter,
5
- type ModelRouterOpenHandsSelectResponse,
6
10
  type ModelRouterSelectModelResponse,
7
- type ModelRouterOpenHandsSelectParams,
8
11
  type ModelRouterSelectModelParams,
9
12
  } from './model-router';
10
13
  export { Models, type Model, type ModelListResponse, type ModelListParams } from './models';
11
14
  export {
12
15
  Preferences,
13
16
  type PreferenceCreateResponse,
14
- type PreferenceRetrieveResponse,
15
17
  type PreferenceUpdateResponse,
16
18
  type PreferenceDeleteResponse,
17
19
  type PreferenceCreateParams,
18
- type PreferenceRetrieveParams,
19
20
  type PreferenceUpdateParams,
20
21
  } from './preferences';
21
22
  export {
22
- Prompt,
23
+ PromptAdaptation,
24
+ type GoldenRecord,
23
25
  type JobStatus,
24
- type PromptGetAdaptResultsResponse,
25
- type PromptGetAdaptStatusResponse,
26
- } from './prompt/prompt';
27
- export {
28
- Pzn,
29
- type PznSubmitSurveyResponseResponse,
30
- type PznTrainCustomRouterResponse,
31
- type PznSubmitSurveyResponseParams,
32
- type PznTrainCustomRouterParams,
33
- } from './pzn';
34
- export { Report } from './report/report';
26
+ type RequestProvider,
27
+ type PromptAdaptationAdaptResponse,
28
+ type PromptAdaptationGetAdaptResultsResponse,
29
+ type PromptAdaptationGetAdaptStatusResponse,
30
+ type PromptAdaptationGetCostResponse,
31
+ type PromptAdaptationAdaptParams,
32
+ } from './prompt-adaptation';
@@ -1,45 +1,17 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
- import * as AdaptAPI from './prompt/adapt';
4
+ import * as PromptAdaptationAPI from './prompt-adaptation';
5
5
  import { APIPromise } from '../core/api-promise';
6
6
  import { RequestOptions } from '../internal/request-options';
7
7
 
8
8
  export class ModelRouter extends APIResource {
9
- /**
10
- * Openhands Model Select
11
- *
12
- * @example
13
- * ```ts
14
- * const response = await client.modelRouter.openHandsSelect({
15
- * llm_providers: [
16
- * { model: 'gpt-4o', provider: 'openai' },
17
- * {
18
- * model: 'claude-sonnet-4-5-20250929',
19
- * provider: 'anthropic',
20
- * },
21
- * { model: 'gemini-1.5-pro', provider: 'google' },
22
- * ],
23
- * messages: [
24
- * {
25
- * content: 'You are a helpful assistant.',
26
- * role: 'system',
27
- * },
28
- * { content: 'Explain quantum computing', role: 'user' },
29
- * ],
30
- * });
31
- * ```
32
- */
33
- openHandsSelect(body: ModelRouterOpenHandsSelectParams, options?: RequestOptions): APIPromise<unknown> {
34
- return this._client.post('/v2/modelRouter/openHandsRouter', { body, ...options });
35
- }
36
-
37
9
  /**
38
10
  * Select the optimal LLM to handle your query based on Not Diamond's routing
39
11
  * algorithm.
40
12
  *
41
13
  * This endpoint analyzes your messages and returns the best-suited model from your
42
- * specified providers. The router considers factors like query complexity, model
14
+ * specified models. The router considers factors like query complexity, model
43
15
  * capabilities, cost, and latency based on your preferences.
44
16
  *
45
17
  * **Key Features:**
@@ -48,14 +20,13 @@ export class ModelRouter extends APIResource {
48
20
  * - Support for custom routers trained on your evaluation data
49
21
  * - Optional cost/latency optimization
50
22
  * - Function calling support for compatible models
51
- * - Privacy-preserving content hashing
52
23
  *
53
24
  * **Usage:**
54
25
  *
55
26
  * 1. Pass your messages in OpenAI format (array of objects with 'role' and
56
27
  * 'content')
57
28
  * 2. Specify which LLM providers you want to route between
58
- * 3. Optionally provide a preference_id for personalized routing
29
+ * 3. Optionally provide a preference_id to use a custom router that you've trained
59
30
  * 4. Receive a recommended model and session_id
60
31
  * 5. Use the session_id to submit feedback and improve routing
61
32
  *
@@ -63,7 +34,6 @@ export class ModelRouter extends APIResource {
63
34
  *
64
35
  * - `POST /v2/preferences/userPreferenceCreate` - Create a preference ID for
65
36
  * personalized routing
66
- * - `POST /v2/report/metrics/feedback` - Submit feedback on routing decisions
67
37
  * - `POST /v2/pzn/trainCustomRouter` - Train a custom router on your evaluation
68
38
  * data
69
39
  *
@@ -76,7 +46,7 @@ export class ModelRouter extends APIResource {
76
46
  * provider: 'anthropic',
77
47
  * model: 'claude-sonnet-4-5-20250929',
78
48
  * },
79
- * { provider: 'google', model: 'gemini-1.5-pro' },
49
+ * { provider: 'google', model: 'gemini-2.5-flash' },
80
50
  * ],
81
51
  * messages: [
82
52
  * {
@@ -100,8 +70,6 @@ export class ModelRouter extends APIResource {
100
70
  }
101
71
  }
102
72
 
103
- export type ModelRouterOpenHandsSelectResponse = unknown;
104
-
105
73
  /**
106
74
  * Response from model selection endpoint.
107
75
  */
@@ -139,112 +107,12 @@ export namespace ModelRouterSelectModelResponse {
139
107
  }
140
108
  }
141
109
 
142
- export interface ModelRouterOpenHandsSelectParams {
143
- /**
144
- * List of LLM providers to route between. Specify at least one provider in format
145
- * {provider, model}
146
- */
147
- llm_providers: Array<AdaptAPI.RequestProvider | ModelRouterOpenHandsSelectParams.OpenRouterProvider>;
148
-
149
- /**
150
- * Array of message objects in OpenAI format (with 'role' and 'content' keys)
151
- */
152
- messages: Array<{ [key: string]: string | Array<unknown> }> | string;
153
-
154
- /**
155
- * Whether to hash message content for privacy
156
- */
157
- hash_content?: boolean;
158
-
159
- /**
160
- * Maximum number of models to consider for routing. If not specified, considers
161
- * all provided models
162
- */
163
- max_model_depth?: number | null;
164
-
165
- /**
166
- * Optimization metric for model selection
167
- */
168
- metric?: string;
169
-
170
- /**
171
- * Preference ID for personalized routing. Create one via POST
172
- * /v2/preferences/userPreferenceCreate
173
- */
174
- preference_id?: string | null;
175
-
176
- /**
177
- * Previous session ID to link related requests
178
- */
179
- previous_session?: string | null;
180
-
181
- /**
182
- * OpenAI-format function calling tools
183
- */
184
- tools?: Array<{ [key: string]: unknown }> | null;
185
-
186
- /**
187
- * Optimization tradeoff strategy. Use 'cost' to prioritize cost savings or
188
- * 'latency' to prioritize speed
189
- */
190
- tradeoff?: string | null;
191
- }
192
-
193
- export namespace ModelRouterOpenHandsSelectParams {
194
- /**
195
- * Model for specifying an LLM provider using OpenRouter format.
196
- *
197
- * Used in model routing requests when you want to specify providers using the
198
- * OpenRouter naming convention (combined 'provider/model' format). This is an
199
- * alternative to the standard RequestProvider which uses separate provider and
200
- * model fields.
201
- *
202
- * **When to use:**
203
- *
204
- * - When working with OpenRouter-compatible systems
205
- * - When you prefer the unified 'provider/model' format
206
- * - For models accessed via OpenRouter proxy
207
- */
208
- export interface OpenRouterProvider {
209
- /**
210
- * OpenRouter model identifier in 'provider/model' format (e.g., 'openai/gpt-4o',
211
- * 'anthropic/claude-sonnet-4-5-20250929')
212
- */
213
- model: string;
214
-
215
- /**
216
- * Maximum context length for the model (required for custom models)
217
- */
218
- context_length?: number | null;
219
-
220
- /**
221
- * Input token price per million tokens in USD (required for custom models)
222
- */
223
- input_price?: number | null;
224
-
225
- /**
226
- * Whether this is a custom model not in Not Diamond's supported model list
227
- */
228
- is_custom?: boolean;
229
-
230
- /**
231
- * Average latency in seconds (required for custom models)
232
- */
233
- latency?: number | null;
234
-
235
- /**
236
- * Output token price per million tokens in USD (required for custom models)
237
- */
238
- output_price?: number | null;
239
- }
240
- }
241
-
242
110
  export interface ModelRouterSelectModelParams {
243
111
  /**
244
112
  * Body param: List of LLM providers to route between. Specify at least one
245
113
  * provider in format {provider, model}
246
114
  */
247
- llm_providers: Array<AdaptAPI.RequestProvider | ModelRouterSelectModelParams.OpenRouterProvider>;
115
+ llm_providers: Array<PromptAdaptationAPI.RequestProvider | ModelRouterSelectModelParams.OpenRouterProvider>;
248
116
 
249
117
  /**
250
118
  * Body param: Array of message objects in OpenAI format (with 'role' and 'content'
@@ -348,9 +216,7 @@ export namespace ModelRouterSelectModelParams {
348
216
 
349
217
  export declare namespace ModelRouter {
350
218
  export {
351
- type ModelRouterOpenHandsSelectResponse as ModelRouterOpenHandsSelectResponse,
352
219
  type ModelRouterSelectModelResponse as ModelRouterSelectModelResponse,
353
- type ModelRouterOpenHandsSelectParams as ModelRouterOpenHandsSelectParams,
354
220
  type ModelRouterSelectModelParams as ModelRouterSelectModelParams,
355
221
  };
356
222
  }