notdiamond 2.0.0-rc2 → 2.0.0-rc4

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 (167) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +14 -16
  3. package/client.d.mts +21 -35
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +21 -35
  6. package/client.d.ts.map +1 -1
  7. package/client.js +23 -39
  8. package/client.js.map +1 -1
  9. package/client.mjs +23 -39
  10. package/client.mjs.map +1 -1
  11. package/internal/tslib.js +17 -17
  12. package/internal/utils/env.d.mts.map +1 -1
  13. package/internal/utils/env.d.ts.map +1 -1
  14. package/internal/utils/env.js +4 -2
  15. package/internal/utils/env.js.map +1 -1
  16. package/internal/utils/env.mjs +4 -2
  17. package/internal/utils/env.mjs.map +1 -1
  18. package/package.json +10 -11
  19. package/resources/index.d.mts +6 -6
  20. package/resources/index.d.mts.map +1 -1
  21. package/resources/index.d.ts +6 -6
  22. package/resources/index.d.ts.map +1 -1
  23. package/resources/index.js +8 -8
  24. package/resources/index.js.map +1 -1
  25. package/resources/index.mjs +4 -4
  26. package/resources/index.mjs.map +1 -1
  27. package/resources/model-router.d.mts +311 -0
  28. package/resources/model-router.d.mts.map +1 -0
  29. package/resources/model-router.d.ts +311 -0
  30. package/resources/model-router.d.ts.map +1 -0
  31. package/resources/model-router.js +97 -0
  32. package/resources/model-router.js.map +1 -0
  33. package/resources/model-router.mjs +93 -0
  34. package/resources/model-router.mjs.map +1 -0
  35. package/resources/models.d.mts +50 -25
  36. package/resources/models.d.mts.map +1 -1
  37. package/resources/models.d.ts +50 -25
  38. package/resources/models.d.ts.map +1 -1
  39. package/resources/models.js +5 -0
  40. package/resources/models.js.map +1 -1
  41. package/resources/models.mjs +5 -0
  42. package/resources/models.mjs.map +1 -1
  43. package/resources/preferences.d.mts +49 -47
  44. package/resources/preferences.d.mts.map +1 -1
  45. package/resources/preferences.d.ts +49 -47
  46. package/resources/preferences.d.ts.map +1 -1
  47. package/resources/preferences.js +30 -33
  48. package/resources/preferences.js.map +1 -1
  49. package/resources/preferences.mjs +30 -33
  50. package/resources/preferences.mjs.map +1 -1
  51. package/resources/prompt/adapt.d.mts +352 -0
  52. package/resources/prompt/adapt.d.mts.map +1 -0
  53. package/resources/prompt/adapt.d.ts +352 -0
  54. package/resources/prompt/adapt.d.ts.map +1 -0
  55. package/resources/prompt/adapt.js +154 -0
  56. package/resources/prompt/adapt.js.map +1 -0
  57. package/resources/prompt/adapt.mjs +150 -0
  58. package/resources/prompt/adapt.mjs.map +1 -0
  59. package/resources/prompt/index.d.mts +3 -0
  60. package/resources/prompt/index.d.mts.map +1 -0
  61. package/resources/prompt/index.d.ts +3 -0
  62. package/resources/prompt/index.d.ts.map +1 -0
  63. package/resources/prompt/index.js +9 -0
  64. package/resources/prompt/index.js.map +1 -0
  65. package/resources/prompt/index.mjs +4 -0
  66. package/resources/prompt/index.mjs.map +1 -0
  67. package/resources/prompt/prompt.d.mts +338 -0
  68. package/resources/prompt/prompt.d.mts.map +1 -0
  69. package/resources/prompt/prompt.d.ts +338 -0
  70. package/resources/prompt/prompt.d.ts.map +1 -0
  71. package/resources/prompt/prompt.js +128 -0
  72. package/resources/prompt/prompt.js.map +1 -0
  73. package/resources/prompt/prompt.mjs +123 -0
  74. package/resources/prompt/prompt.mjs.map +1 -0
  75. package/resources/prompt.d.mts +2 -0
  76. package/resources/prompt.d.mts.map +1 -0
  77. package/resources/prompt.d.ts +2 -0
  78. package/resources/prompt.d.ts.map +1 -0
  79. package/resources/prompt.js +6 -0
  80. package/resources/prompt.js.map +1 -0
  81. package/resources/prompt.mjs +3 -0
  82. package/resources/prompt.mjs.map +1 -0
  83. package/resources/pzn.d.mts +225 -0
  84. package/resources/pzn.d.mts.map +1 -0
  85. package/resources/pzn.d.ts +225 -0
  86. package/resources/pzn.d.ts.map +1 -0
  87. package/resources/{routing.js → pzn.js} +26 -69
  88. package/resources/pzn.js.map +1 -0
  89. package/resources/{routing.mjs → pzn.mjs} +24 -67
  90. package/resources/pzn.mjs.map +1 -0
  91. package/resources/report/index.d.mts +3 -0
  92. package/resources/report/index.d.mts.map +1 -0
  93. package/resources/report/index.d.ts +3 -0
  94. package/resources/report/index.d.ts.map +1 -0
  95. package/resources/report/index.js +9 -0
  96. package/resources/report/index.js.map +1 -0
  97. package/resources/report/index.mjs +4 -0
  98. package/resources/report/index.mjs.map +1 -0
  99. package/resources/report/metrics.d.mts +87 -0
  100. package/resources/report/metrics.d.mts.map +1 -0
  101. package/resources/report/metrics.d.ts +87 -0
  102. package/resources/report/metrics.d.ts.map +1 -0
  103. package/resources/report/metrics.js +57 -0
  104. package/resources/report/metrics.js.map +1 -0
  105. package/resources/report/metrics.mjs +53 -0
  106. package/resources/report/metrics.mjs.map +1 -0
  107. package/resources/report/report.d.mts +10 -0
  108. package/resources/report/report.d.mts.map +1 -0
  109. package/resources/report/report.d.ts +10 -0
  110. package/resources/report/report.d.ts.map +1 -0
  111. package/resources/report/report.js +17 -0
  112. package/resources/report/report.js.map +1 -0
  113. package/resources/report/report.mjs +12 -0
  114. package/resources/report/report.mjs.map +1 -0
  115. package/resources/report.d.mts +1 -244
  116. package/resources/report.d.mts.map +1 -1
  117. package/resources/report.d.ts +1 -244
  118. package/resources/report.d.ts.map +1 -1
  119. package/resources/report.js +2 -82
  120. package/resources/report.js.map +1 -1
  121. package/resources/report.mjs +1 -80
  122. package/resources/report.mjs.map +1 -1
  123. package/src/client.ts +71 -120
  124. package/src/internal/utils/env.ts +4 -2
  125. package/src/resources/index.ts +24 -34
  126. package/src/resources/model-router.ts +356 -0
  127. package/src/resources/models.ts +55 -32
  128. package/src/resources/preferences.ts +61 -70
  129. package/src/resources/prompt/adapt.ts +402 -0
  130. package/src/resources/prompt/index.ts +16 -0
  131. package/src/resources/prompt/prompt.ts +398 -0
  132. package/src/resources/prompt.ts +3 -0
  133. package/src/resources/pzn.ts +273 -0
  134. package/src/resources/report/index.ts +4 -0
  135. package/src/resources/report/metrics.ts +99 -0
  136. package/src/resources/report/report.ts +19 -0
  137. package/src/resources/report.ts +1 -298
  138. package/src/version.ts +1 -1
  139. package/version.d.mts +1 -1
  140. package/version.d.ts +1 -1
  141. package/version.js +1 -1
  142. package/version.mjs +1 -1
  143. package/resources/admin.d.mts +0 -4
  144. package/resources/admin.d.mts.map +0 -1
  145. package/resources/admin.d.ts +0 -4
  146. package/resources/admin.d.ts.map +0 -1
  147. package/resources/admin.js +0 -9
  148. package/resources/admin.js.map +0 -1
  149. package/resources/admin.mjs +0 -5
  150. package/resources/admin.mjs.map +0 -1
  151. package/resources/prompt-adaptation.d.mts +0 -581
  152. package/resources/prompt-adaptation.d.mts.map +0 -1
  153. package/resources/prompt-adaptation.d.ts +0 -581
  154. package/resources/prompt-adaptation.d.ts.map +0 -1
  155. package/resources/prompt-adaptation.js +0 -289
  156. package/resources/prompt-adaptation.js.map +0 -1
  157. package/resources/prompt-adaptation.mjs +0 -285
  158. package/resources/prompt-adaptation.mjs.map +0 -1
  159. package/resources/routing.d.mts +0 -391
  160. package/resources/routing.d.mts.map +0 -1
  161. package/resources/routing.d.ts +0 -391
  162. package/resources/routing.d.ts.map +0 -1
  163. package/resources/routing.js.map +0 -1
  164. package/resources/routing.mjs.map +0 -1
  165. package/src/resources/admin.ts +0 -5
  166. package/src/resources/prompt-adaptation.ts +0 -707
  167. package/src/resources/routing.ts +0 -476
@@ -0,0 +1,352 @@
1
+ import { APIResource } from "../../core/resource.mjs";
2
+ import { APIPromise } from "../../core/api-promise.mjs";
3
+ import { RequestOptions } from "../../internal/request-options.mjs";
4
+ export declare class Adapt extends APIResource {
5
+ /**
6
+ * Adapt your prompt from one LLM to work optimally across different target LLMs.
7
+ *
8
+ * This endpoint automatically optimizes your prompt (system prompt + user message
9
+ * template) to achieve better performance when switching between different
10
+ * language models. Each model has unique characteristics, and what works well for
11
+ * GPT-4 might not work as well for Claude or Gemini.
12
+ *
13
+ * **How Prompt Adaptation Works:**
14
+ *
15
+ * 1. You provide your current prompt optimized for an origin model
16
+ * 2. You specify target models you want to adapt to
17
+ * 3. You provide evaluation examples (golden records) with expected answers
18
+ * 4. The system runs optimization to find the best prompt for each target model
19
+ * 5. You receive adapted prompts that perform well on your target models
20
+ *
21
+ * **Evaluation Metrics:** Choose either a standard metric or provide custom
22
+ * evaluation:
23
+ *
24
+ * - **Standard metrics**: LLMaaJ:SQL, LLMaaJ:Sem_Sim_1/3/10 (semantic similarity),
25
+ * JSON_Match
26
+ * - **Custom evaluation**: Provide evaluation_config with your own LLM judge,
27
+ * prompt, and cutoff
28
+ *
29
+ * **Dataset Requirements:**
30
+ *
31
+ * - Minimum 25 examples in train_goldens (more examples = better adaptation)
32
+ * - Each example must have fields matching your template placeholders
33
+ * - Supervised evaluation requires 'answer' field in each golden record
34
+ * - Unsupervised evaluation can work without answers
35
+ *
36
+ * **Training Time:**
37
+ *
38
+ * - Processing is asynchronous and typically takes 10-30 minutes
39
+ * - Time depends on: number of target models, dataset size, model availability
40
+ * - Use the returned adaptation_run_id to check status and retrieve results
41
+ *
42
+ * **Subscription Tiers:**
43
+ *
44
+ * - Free: 1 target model
45
+ * - Starter: 3 target models
46
+ * - Startup: 5 target models
47
+ * - Enterprise: 10 target models
48
+ *
49
+ * **Best Practices:**
50
+ *
51
+ * 1. Use diverse, representative examples from your production workload
52
+ * 2. Include examples for best results (25 minimum)
53
+ * 3. Ensure consistent evaluation across all examples
54
+ * 4. Test both train_goldens and test_goldens split for validation
55
+ * 5. Use the same model versions you'll use in production
56
+ *
57
+ * **Example Workflow:**
58
+ *
59
+ * ```
60
+ * 1. POST /v2/prompt/adapt - Submit adaptation request
61
+ * 2. GET /v2/prompt/adaptStatus/{id} - Poll status until completed
62
+ * 3. GET /v2/prompt/adaptResults/{id} - Retrieve optimized prompts
63
+ * 4. Use optimized prompts in production with target models
64
+ * ```
65
+ *
66
+ * **Related Documentation:** See
67
+ * https://docs.notdiamond.ai/docs/adapting-prompts-to-new-models for detailed
68
+ * guide.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const adapt = await client.prompt.adapt.create({
73
+ * fields: ['question'],
74
+ * system_prompt: 'You are a helpful assistant that answers questions accurately.',
75
+ * target_models: [
76
+ * { provider: 'anthropic', model: 'claude-sonnet-4-5-20250929' },
77
+ * { provider: 'google', model: 'gemini-1.5-pro' },
78
+ * ],
79
+ * template: 'Question: {question}\nAnswer:',
80
+ * evaluation_metric: 'LLMaaJ:Sem_Sim_3',
81
+ * origin_model: { provider: 'openai', model: 'gpt-4o' },
82
+ * test_goldens: [
83
+ * {
84
+ * fields: { ... },
85
+ * answer: '9',
86
+ * },
87
+ * {
88
+ * fields: { ... },
89
+ * answer: 'Pacific Ocean',
90
+ * },
91
+ * ],
92
+ * train_goldens: [
93
+ * {
94
+ * fields: { ... },
95
+ * answer: '4',
96
+ * },
97
+ * {
98
+ * fields: { ... },
99
+ * answer: 'Paris',
100
+ * },
101
+ * {
102
+ * fields: { ... },
103
+ * answer: 'William Shakespeare',
104
+ * },
105
+ * {
106
+ * fields: { ... },
107
+ * answer: 'Water',
108
+ * },
109
+ * {
110
+ * fields: { ... },
111
+ * answer: '7',
112
+ * },
113
+ * ],
114
+ * });
115
+ * ```
116
+ */
117
+ create(body: AdaptCreateParams, options?: RequestOptions): APIPromise<AdaptCreateResponse>;
118
+ /**
119
+ * Get LLM usage costs for a specific prompt adaptation run.
120
+ *
121
+ * This endpoint returns the total cost and detailed usage records for all LLM
122
+ * requests made during a prompt adaptation run. Use this to track costs associated
123
+ * with optimizing prompts for different target models.
124
+ *
125
+ * **Cost Breakdown:**
126
+ *
127
+ * - Total cost across all models used in the adaptation
128
+ * - Individual usage records with provider, model, tokens, and costs
129
+ * - Timestamps for each LLM request
130
+ * - Task type (e.g., optimization, evaluation)
131
+ *
132
+ * **Access Control:**
133
+ *
134
+ * - Only accessible by the user who created the adaptation run
135
+ * - Requires prompt adaptation access
136
+ *
137
+ * @example
138
+ * ```ts
139
+ * const response = await client.prompt.adapt.getCosts(
140
+ * 'adaptation_run_id',
141
+ * );
142
+ * ```
143
+ */
144
+ getCosts(adaptationRunID: string, options?: RequestOptions): APIPromise<AdaptGetCostsResponse>;
145
+ }
146
+ /**
147
+ * A training or test example for prompt adaptation.
148
+ */
149
+ export interface GoldenRecord {
150
+ /**
151
+ * Dictionary mapping field names to their values. Keys must match the fields
152
+ * specified in the template
153
+ */
154
+ fields: {
155
+ [key: string]: string;
156
+ };
157
+ /**
158
+ * Expected answer for supervised evaluation. Required for supervised metrics,
159
+ * optional for unsupervised
160
+ */
161
+ answer?: string | null;
162
+ }
163
+ /**
164
+ * Model for specifying an LLM provider in API requests.
165
+ */
166
+ export interface RequestProvider {
167
+ /**
168
+ * Model name (e.g., 'gpt-4o', 'claude-sonnet-4-5-20250929')
169
+ */
170
+ model: string;
171
+ /**
172
+ * Provider name (e.g., 'openai', 'anthropic', 'google')
173
+ */
174
+ provider: string;
175
+ /**
176
+ * Maximum context length for the model (required for custom models)
177
+ */
178
+ context_length?: number | null;
179
+ /**
180
+ * Input token price per million tokens in USD (required for custom models)
181
+ */
182
+ input_price?: number | null;
183
+ /**
184
+ * Whether this is a custom model not in Not Diamond's supported model list
185
+ */
186
+ is_custom?: boolean;
187
+ /**
188
+ * Average latency in seconds (required for custom models)
189
+ */
190
+ latency?: number | null;
191
+ /**
192
+ * Output token price per million tokens in USD (required for custom models)
193
+ */
194
+ output_price?: number | null;
195
+ }
196
+ /**
197
+ * Response model for POST /v2/prompt/adapt endpoint.
198
+ *
199
+ * Returned immediately after submitting a prompt adaptation request. The
200
+ * adaptation process runs asynchronously, so use the returned adaptation_run_id to
201
+ * track progress and retrieve results when complete.
202
+ *
203
+ * **Next steps:**
204
+ *
205
+ * 1. Store the adaptation_run_id
206
+ * 2. Poll GET /v2/prompt/adaptStatus/{adaptation_run_id} to check progress
207
+ * 3. When status is 'completed', retrieve optimized prompts from GET
208
+ * /v2/prompt/adaptResults/{adaptation_run_id}
209
+ * 4. Use the optimized prompts with your target models
210
+ */
211
+ export interface AdaptCreateResponse {
212
+ /**
213
+ * Unique identifier for this adaptation run. Use this to poll status and retrieve
214
+ * optimized prompts when complete
215
+ */
216
+ adaptation_run_id: string;
217
+ }
218
+ /**
219
+ * Response model for GET /v2/prompt/adapt/{adaptation_run_id}/costs endpoint.
220
+ *
221
+ * Contains the total LLM costs and detailed usage records for a prompt adaptation
222
+ * run. Use this to track costs associated with optimizing prompts for different
223
+ * target models.
224
+ */
225
+ export interface AdaptGetCostsResponse {
226
+ /**
227
+ * Unique identifier for the adaptation run
228
+ */
229
+ adaptation_run_id: string;
230
+ /**
231
+ * Total cost in USD across all LLM requests in this adaptation run
232
+ */
233
+ total_cost: number;
234
+ /**
235
+ * Detailed usage records for each LLM request made during the adaptation
236
+ */
237
+ usage_records: Array<AdaptGetCostsResponse.UsageRecord>;
238
+ }
239
+ export declare namespace AdaptGetCostsResponse {
240
+ /**
241
+ * Individual LLM usage record with token counts and cost breakdown.
242
+ *
243
+ * Returned by GET /llm-usage endpoint and included in AdaptationRunCostResponse.
244
+ * Each record represents a single LLM API call with detailed usage metrics.
245
+ */
246
+ interface UsageRecord {
247
+ /**
248
+ * Unique identifier for this usage record
249
+ */
250
+ id: string;
251
+ /**
252
+ * Adaptation run ID this usage is associated with
253
+ */
254
+ adaptation_run_id: string;
255
+ /**
256
+ * Cost of input tokens in USD
257
+ */
258
+ input_cost: number;
259
+ /**
260
+ * Number of input tokens consumed
261
+ */
262
+ input_tokens: number;
263
+ /**
264
+ * Model name (e.g., 'gpt-4', 'claude-3-opus-20240229')
265
+ */
266
+ model: string;
267
+ /**
268
+ * Organization ID associated with the request
269
+ */
270
+ organization_id: string;
271
+ /**
272
+ * Cost of output tokens in USD
273
+ */
274
+ output_cost: number;
275
+ /**
276
+ * Number of output tokens generated
277
+ */
278
+ output_tokens: number;
279
+ /**
280
+ * LLM provider (e.g., 'openai', 'anthropic', 'google')
281
+ */
282
+ provider: string;
283
+ /**
284
+ * Type of task (e.g., 'optimization', 'evaluation')
285
+ */
286
+ task_type: string;
287
+ /**
288
+ * Unix timestamp when the request was made
289
+ */
290
+ timestamp: number;
291
+ /**
292
+ * Total cost (input + output) in USD
293
+ */
294
+ total_cost: number;
295
+ /**
296
+ * User ID who made the request
297
+ */
298
+ user_id: string;
299
+ }
300
+ }
301
+ export interface AdaptCreateParams {
302
+ /**
303
+ * List of field names that will be substituted into the template. Must match keys
304
+ * in golden records
305
+ */
306
+ fields: Array<string>;
307
+ /**
308
+ * System prompt to use with the origin model. This sets the context and role for
309
+ * the LLM
310
+ */
311
+ system_prompt: string;
312
+ /**
313
+ * List of models to adapt the prompt for. Maximum count depends on your
314
+ * subscription tier (Free: 1, Starter: 3, Startup: 5, Enterprise: 10)
315
+ */
316
+ target_models: Array<RequestProvider>;
317
+ /**
318
+ * User message template with placeholders for fields. Use curly braces for field
319
+ * substitution
320
+ */
321
+ template: string;
322
+ evaluation_config?: string | null;
323
+ evaluation_metric?: string | null;
324
+ /**
325
+ * Training examples (legacy parameter). Use train_goldens and test_goldens for
326
+ * better control. Minimum 25 examples
327
+ */
328
+ goldens?: Array<GoldenRecord> | null;
329
+ /**
330
+ * Model for specifying an LLM provider in API requests.
331
+ */
332
+ origin_model?: RequestProvider | null;
333
+ /**
334
+ * Optional baseline score for the origin model. If provided, can skip origin model
335
+ * evaluation
336
+ */
337
+ origin_model_evaluation_score?: number | null;
338
+ /**
339
+ * Test examples for evaluation. Required if train_goldens is provided. Used to
340
+ * measure final performance on held-out data
341
+ */
342
+ test_goldens?: Array<GoldenRecord> | null;
343
+ /**
344
+ * Training examples for prompt optimization. Minimum 25 examples required. Cannot
345
+ * be used with 'goldens' parameter
346
+ */
347
+ train_goldens?: Array<GoldenRecord> | null;
348
+ }
349
+ export declare namespace Adapt {
350
+ export { type GoldenRecord as GoldenRecord, type RequestProvider as RequestProvider, type AdaptCreateResponse as AdaptCreateResponse, type AdaptGetCostsResponse as AdaptGetCostsResponse, type AdaptCreateParams as AdaptCreateParams, };
351
+ }
352
+ //# sourceMappingURL=adapt.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapt.d.mts","sourceRoot":"","sources":["../../src/resources/prompt/adapt.ts"],"names":[],"mappings":"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"}