notdiamond 2.0.0-rc1 → 2.0.0-rc11

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 (175) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/LICENSE +1 -1
  3. package/README.md +327 -124
  4. package/client.d.mts +28 -42
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +28 -42
  7. package/client.d.ts.map +1 -1
  8. package/client.js +52 -68
  9. package/client.js.map +1 -1
  10. package/client.mjs +50 -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/tslib.js +17 -17
  29. package/internal/uploads.d.mts +4 -4
  30. package/internal/uploads.d.ts +4 -4
  31. package/internal/utils/base64.js +2 -2
  32. package/internal/utils/base64.mjs +3 -3
  33. package/internal/utils/env.d.mts.map +1 -1
  34. package/internal/utils/env.d.ts.map +1 -1
  35. package/internal/utils/env.js +4 -2
  36. package/internal/utils/env.js.map +1 -1
  37. package/internal/utils/env.mjs +4 -2
  38. package/internal/utils/env.mjs.map +1 -1
  39. package/internal/utils/log.d.mts +3 -3
  40. package/internal/utils/log.d.ts +3 -3
  41. package/internal/utils/path.js +1 -1
  42. package/internal/utils/path.mjs +2 -2
  43. package/internal/utils/values.js +5 -5
  44. package/internal/utils/values.mjs +6 -6
  45. package/package.json +11 -12
  46. package/resources/custom-router.d.mts +145 -0
  47. package/resources/custom-router.d.mts.map +1 -0
  48. package/resources/custom-router.d.ts +145 -0
  49. package/resources/custom-router.d.ts.map +1 -0
  50. package/resources/custom-router.js +83 -0
  51. package/resources/custom-router.js.map +1 -0
  52. package/resources/custom-router.mjs +79 -0
  53. package/resources/custom-router.mjs.map +1 -0
  54. package/resources/index.d.mts +6 -6
  55. package/resources/index.d.mts.map +1 -1
  56. package/resources/index.d.ts +6 -6
  57. package/resources/index.d.ts.map +1 -1
  58. package/resources/index.js +6 -6
  59. package/resources/index.js.map +1 -1
  60. package/resources/index.mjs +3 -3
  61. package/resources/index.mjs.map +1 -1
  62. package/resources/model-router.d.mts +196 -0
  63. package/resources/model-router.d.mts.map +1 -0
  64. package/resources/model-router.d.ts +196 -0
  65. package/resources/model-router.d.ts.map +1 -0
  66. package/resources/model-router.js +70 -0
  67. package/resources/model-router.js.map +1 -0
  68. package/resources/model-router.mjs +66 -0
  69. package/resources/model-router.mjs.map +1 -0
  70. package/resources/models.d.mts +50 -25
  71. package/resources/models.d.mts.map +1 -1
  72. package/resources/models.d.ts +50 -25
  73. package/resources/models.d.ts.map +1 -1
  74. package/resources/models.js +5 -0
  75. package/resources/models.js.map +1 -1
  76. package/resources/models.mjs +5 -0
  77. package/resources/models.mjs.map +1 -1
  78. package/resources/preferences.d.mts +34 -48
  79. package/resources/preferences.d.mts.map +1 -1
  80. package/resources/preferences.d.ts +34 -48
  81. package/resources/preferences.d.ts.map +1 -1
  82. package/resources/preferences.js +14 -36
  83. package/resources/preferences.js.map +1 -1
  84. package/resources/preferences.mjs +14 -36
  85. package/resources/preferences.mjs.map +1 -1
  86. package/resources/prompt-adaptation.d.mts +339 -234
  87. package/resources/prompt-adaptation.d.mts.map +1 -1
  88. package/resources/prompt-adaptation.d.ts +339 -234
  89. package/resources/prompt-adaptation.d.ts.map +1 -1
  90. package/resources/prompt-adaptation.js +30 -53
  91. package/resources/prompt-adaptation.js.map +1 -1
  92. package/resources/prompt-adaptation.mjs +30 -53
  93. package/resources/prompt-adaptation.mjs.map +1 -1
  94. package/resources/report/index.d.mts +3 -0
  95. package/resources/report/index.d.mts.map +1 -0
  96. package/resources/report/index.d.ts +3 -0
  97. package/resources/report/index.d.ts.map +1 -0
  98. package/resources/report/index.js +9 -0
  99. package/resources/report/index.js.map +1 -0
  100. package/resources/report/index.mjs +4 -0
  101. package/resources/report/index.mjs.map +1 -0
  102. package/resources/report/metrics.d.mts +87 -0
  103. package/resources/report/metrics.d.mts.map +1 -0
  104. package/resources/report/metrics.d.ts +87 -0
  105. package/resources/report/metrics.d.ts.map +1 -0
  106. package/resources/report/metrics.js +57 -0
  107. package/resources/report/metrics.js.map +1 -0
  108. package/resources/report/metrics.mjs +53 -0
  109. package/resources/report/metrics.mjs.map +1 -0
  110. package/resources/report/report.d.mts +10 -0
  111. package/resources/report/report.d.mts.map +1 -0
  112. package/resources/report/report.d.ts +10 -0
  113. package/resources/report/report.d.ts.map +1 -0
  114. package/resources/report/report.js +17 -0
  115. package/resources/report/report.js.map +1 -0
  116. package/resources/report/report.mjs +12 -0
  117. package/resources/report/report.mjs.map +1 -0
  118. package/resources/report.d.mts +1 -244
  119. package/resources/report.d.mts.map +1 -1
  120. package/resources/report.d.ts +1 -244
  121. package/resources/report.d.ts.map +1 -1
  122. package/resources/report.js +2 -82
  123. package/resources/report.js.map +1 -1
  124. package/resources/report.mjs +1 -80
  125. package/resources/report.mjs.map +1 -1
  126. package/src/client.ts +80 -131
  127. package/src/core/api-promise.ts +4 -4
  128. package/src/core/error.ts +2 -2
  129. package/src/core/resource.ts +3 -3
  130. package/src/index.ts +3 -3
  131. package/src/internal/parse.ts +2 -2
  132. package/src/internal/shims.ts +1 -1
  133. package/src/internal/uploads.ts +5 -5
  134. package/src/internal/utils/base64.ts +3 -3
  135. package/src/internal/utils/env.ts +4 -2
  136. package/src/internal/utils/log.ts +3 -3
  137. package/src/internal/utils/path.ts +2 -2
  138. package/src/internal/utils/values.ts +6 -6
  139. package/src/resources/custom-router.ts +168 -0
  140. package/src/resources/index.ts +23 -34
  141. package/src/resources/model-router.ts +224 -0
  142. package/src/resources/models.ts +55 -32
  143. package/src/resources/preferences.ts +40 -77
  144. package/src/resources/prompt-adaptation.ts +361 -291
  145. package/src/resources/report/index.ts +4 -0
  146. package/src/resources/report/metrics.ts +99 -0
  147. package/src/resources/report/report.ts +19 -0
  148. package/src/resources/report.ts +1 -298
  149. package/src/version.ts +1 -1
  150. package/version.d.mts +1 -1
  151. package/version.d.mts.map +1 -1
  152. package/version.d.ts +1 -1
  153. package/version.d.ts.map +1 -1
  154. package/version.js +1 -1
  155. package/version.js.map +1 -1
  156. package/version.mjs +1 -1
  157. package/version.mjs.map +1 -1
  158. package/resources/admin.d.mts +0 -4
  159. package/resources/admin.d.mts.map +0 -1
  160. package/resources/admin.d.ts +0 -4
  161. package/resources/admin.d.ts.map +0 -1
  162. package/resources/admin.js +0 -9
  163. package/resources/admin.js.map +0 -1
  164. package/resources/admin.mjs +0 -5
  165. package/resources/admin.mjs.map +0 -1
  166. package/resources/routing.d.mts +0 -391
  167. package/resources/routing.d.mts.map +0 -1
  168. package/resources/routing.d.ts +0 -391
  169. package/resources/routing.d.ts.map +0 -1
  170. package/resources/routing.js +0 -163
  171. package/resources/routing.js.map +0 -1
  172. package/resources/routing.mjs +0 -159
  173. package/resources/routing.mjs.map +0 -1
  174. package/src/resources/admin.ts +0 -5
  175. package/src/resources/routing.ts +0 -476
@@ -36,6 +36,11 @@ export class Models extends APIResource {
36
36
  * **Caching:**
37
37
  *
38
38
  * - Response is cacheable for 1 hour (model list rarely changes)
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const models = await client.models.list();
43
+ * ```
39
44
  */
40
45
  list(
41
46
  query: ModelListParams | null | undefined = {},
@@ -46,50 +51,64 @@ export class Models extends APIResource {
46
51
  }
47
52
 
48
53
  /**
49
- * Response for models list endpoint.
54
+ * Response model for a single LLM model from GET /v2/models endpoint.
55
+ *
56
+ * Contains metadata about a supported text generation model including pricing,
57
+ * context limits, and availability information.
50
58
  */
51
- export interface ModelListResponse {
52
- deprecated_models: Array<ModelListResponse.DeprecatedModel>;
53
-
54
- models: Array<ModelListResponse.Model>;
55
-
56
- total: number;
57
- }
58
-
59
- export namespace ModelListResponse {
59
+ export interface Model {
60
60
  /**
61
- * Response model for a single LLM provider.
61
+ * Maximum context window size in tokens
62
62
  */
63
- export interface DeprecatedModel {
64
- context_length: number;
65
-
66
- input_price: number;
63
+ context_length: number;
67
64
 
68
- model: string;
69
-
70
- output_price: number;
71
-
72
- provider: string;
65
+ /**
66
+ * Price per million input tokens in USD
67
+ */
68
+ input_price: number;
73
69
 
74
- openrouter_model?: string | null;
75
- }
70
+ /**
71
+ * Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229')
72
+ */
73
+ model: string;
76
74
 
77
75
  /**
78
- * Response model for a single LLM provider.
76
+ * Price per million output tokens in USD
79
77
  */
80
- export interface Model {
81
- context_length: number;
78
+ output_price: number;
82
79
 
83
- input_price: number;
80
+ /**
81
+ * Provider name (e.g., 'openai', 'anthropic', 'google')
82
+ */
83
+ provider: string;
84
84
 
85
- model: string;
85
+ /**
86
+ * OpenRouter model identifier if available, null if not supported via OpenRouter
87
+ */
88
+ openrouter_model?: string | null;
89
+ }
86
90
 
87
- output_price: number;
91
+ /**
92
+ * Response model for GET /v2/models endpoint.
93
+ *
94
+ * Returns a list of all supported text generation models with their metadata,
95
+ * separated into active and deprecated models.
96
+ */
97
+ export interface ModelListResponse {
98
+ /**
99
+ * List of deprecated models that are no longer recommended but may still work
100
+ */
101
+ deprecated_models: Array<Model>;
88
102
 
89
- provider: string;
103
+ /**
104
+ * List of active/supported text generation models with their metadata
105
+ */
106
+ models: Array<Model>;
90
107
 
91
- openrouter_model?: string | null;
92
- }
108
+ /**
109
+ * Total count of active models in the response
110
+ */
111
+ total: number;
93
112
  }
94
113
 
95
114
  export interface ModelListParams {
@@ -106,5 +125,9 @@ export interface ModelListParams {
106
125
  }
107
126
 
108
127
  export declare namespace Models {
109
- export { type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams };
128
+ export {
129
+ type Model as Model,
130
+ type ModelListResponse as ModelListResponse,
131
+ type ModelListParams as ModelListParams,
132
+ };
110
133
  }
@@ -2,34 +2,10 @@
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
4
  import { APIPromise } from '../core/api-promise';
5
- import { buildHeaders } from '../internal/headers';
6
5
  import { RequestOptions } from '../internal/request-options';
7
6
  import { path } from '../internal/utils/path';
8
7
 
9
8
  export class Preferences extends APIResource {
10
- /**
11
- * Get User Preference By Id
12
- *
13
- * @example
14
- * ```ts
15
- * const preference = await client.preferences.retrieve(
16
- * 'preference_id',
17
- * { user_id: 'user_id', 'x-token': 'x-token' },
18
- * );
19
- * ```
20
- */
21
- retrieve(
22
- preferenceID: string,
23
- params: PreferenceRetrieveParams,
24
- options?: RequestOptions,
25
- ): APIPromise<unknown> {
26
- const { user_id, 'x-token': xToken } = params;
27
- return this._client.get(path`/v2/preferences/${user_id}/${preferenceID}`, {
28
- ...options,
29
- headers: buildHeaders([{ 'x-token': xToken }, options?.headers]),
30
- });
31
- }
32
-
33
9
  /**
34
10
  * Create a new preference ID for personalized LLM routing.
35
11
  *
@@ -58,88 +34,77 @@ export class Preferences extends APIResource {
58
34
  *
59
35
  * @example
60
36
  * ```ts
61
- * const response =
62
- * await client.preferences.createUserPreference();
37
+ * const preference = await client.preferences.create();
63
38
  * ```
64
39
  */
65
- createUserPreference(
66
- body: PreferenceCreateUserPreferenceParams,
67
- options?: RequestOptions,
68
- ): APIPromise<PreferenceCreateUserPreferenceResponse> {
40
+ create(body: PreferenceCreateParams, options?: RequestOptions): APIPromise<PreferenceCreateResponse> {
69
41
  return this._client.post('/v2/preferences/userPreferenceCreate', { body, ...options });
70
42
  }
71
43
 
72
44
  /**
73
- * Delete User Preference
45
+ * Update User Preference
74
46
  *
75
47
  * @example
76
48
  * ```ts
77
- * const response =
78
- * await client.preferences.deleteUserPreference(
79
- * 'preference_id',
80
- * );
49
+ * const preference = await client.preferences.update({
50
+ * preference_id: 'preference_id',
51
+ * });
81
52
  * ```
82
53
  */
83
- deleteUserPreference(preferenceID: string, options?: RequestOptions): APIPromise<unknown> {
84
- return this._client.delete(path`/v2/preferences/userPreferenceDelete/${preferenceID}`, options);
54
+ update(body: PreferenceUpdateParams, options?: RequestOptions): APIPromise<unknown> {
55
+ return this._client.put('/v2/preferences/userPreferenceUpdate', { body, ...options });
85
56
  }
86
57
 
87
58
  /**
88
- * Update User Preference
59
+ * Delete User Preference
89
60
  *
90
61
  * @example
91
62
  * ```ts
92
- * const response =
93
- * await client.preferences.updateUserPreference({
94
- * preference_id: 'preference_id',
95
- * });
63
+ * const preference = await client.preferences.delete(
64
+ * 'preference_id',
65
+ * );
96
66
  * ```
97
67
  */
98
- updateUserPreference(
99
- body: PreferenceUpdateUserPreferenceParams,
100
- options?: RequestOptions,
101
- ): APIPromise<unknown> {
102
- return this._client.put('/v2/preferences/userPreferenceUpdate', { body, ...options });
68
+ delete(preferenceID: string, options?: RequestOptions): APIPromise<unknown> {
69
+ return this._client.delete(path`/v2/preferences/userPreferenceDelete/${preferenceID}`, options);
103
70
  }
104
71
  }
105
72
 
106
- export type PreferenceRetrieveResponse = unknown;
107
-
108
73
  /**
109
- * Response from preference creation endpoint.
74
+ * Response model for POST /v2/preferences/userPreferenceCreate endpoint.
75
+ *
76
+ * Returns the newly created preference ID which can be used to enable personalized
77
+ * LLM routing. Store this ID and include it in subsequent model_select() calls to
78
+ * activate personalized routing based on your feedback and usage patterns.
79
+ *
80
+ * **Next steps after creation:**
81
+ *
82
+ * 1. Use the preference_id in POST /v2/modelRouter/modelSelect requests
83
+ * 2. Submit feedback on routing decisions to improve accuracy
84
+ * 3. Optionally train a custom router using your evaluation data
110
85
  */
111
- export interface PreferenceCreateUserPreferenceResponse {
86
+ export interface PreferenceCreateResponse {
112
87
  /**
113
- * The newly created preference ID. Use this in model_select() calls for
114
- * personalized routing
88
+ * Unique identifier for the newly created preference. Use this in the
89
+ * 'preference_id' parameter of model_select() calls to enable personalized routing
115
90
  */
116
91
  preference_id: string;
117
92
  }
118
93
 
119
- export type PreferenceDeleteUserPreferenceResponse = unknown;
94
+ export type PreferenceUpdateResponse = unknown;
120
95
 
121
- export type PreferenceUpdateUserPreferenceResponse = unknown;
122
-
123
- export interface PreferenceRetrieveParams {
124
- /**
125
- * Path param:
126
- */
127
- user_id: string;
128
-
129
- /**
130
- * Header param:
131
- */
132
- 'x-token': string;
133
- }
96
+ export type PreferenceDeleteResponse = unknown;
134
97
 
135
- export interface PreferenceCreateUserPreferenceParams {
98
+ export interface PreferenceCreateParams {
136
99
  /**
137
- * Optional name for the preference
100
+ * Optional name for the preference. If not provided, an auto-generated timestamp
101
+ * will be used. Use descriptive names like 'Production API' or 'Customer Support
102
+ * Bot' for easy identification
138
103
  */
139
104
  name?: string | null;
140
105
  }
141
106
 
142
- export interface PreferenceUpdateUserPreferenceParams {
107
+ export interface PreferenceUpdateParams {
143
108
  preference_id: string;
144
109
 
145
110
  name?: string | null;
@@ -147,12 +112,10 @@ export interface PreferenceUpdateUserPreferenceParams {
147
112
 
148
113
  export declare namespace Preferences {
149
114
  export {
150
- type PreferenceRetrieveResponse as PreferenceRetrieveResponse,
151
- type PreferenceCreateUserPreferenceResponse as PreferenceCreateUserPreferenceResponse,
152
- type PreferenceDeleteUserPreferenceResponse as PreferenceDeleteUserPreferenceResponse,
153
- type PreferenceUpdateUserPreferenceResponse as PreferenceUpdateUserPreferenceResponse,
154
- type PreferenceRetrieveParams as PreferenceRetrieveParams,
155
- type PreferenceCreateUserPreferenceParams as PreferenceCreateUserPreferenceParams,
156
- type PreferenceUpdateUserPreferenceParams as PreferenceUpdateUserPreferenceParams,
115
+ type PreferenceCreateResponse as PreferenceCreateResponse,
116
+ type PreferenceUpdateResponse as PreferenceUpdateResponse,
117
+ type PreferenceDeleteResponse as PreferenceDeleteResponse,
118
+ type PreferenceCreateParams as PreferenceCreateParams,
119
+ type PreferenceUpdateParams as PreferenceUpdateParams,
157
120
  };
158
121
  }