notdiamond 1.1.3 → 2.0.0-rc1

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 (409) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +201 -0
  3. package/README.md +449 -105
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +206 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +206 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +479 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +475 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/resource.d.mts +6 -0
  37. package/core/resource.d.mts.map +1 -0
  38. package/core/resource.d.ts +6 -0
  39. package/core/resource.d.ts.map +1 -0
  40. package/core/resource.js +11 -0
  41. package/core/resource.js.map +1 -0
  42. package/core/resource.mjs +7 -0
  43. package/core/resource.mjs.map +1 -0
  44. package/core/uploads.d.mts +3 -0
  45. package/core/uploads.d.mts.map +1 -0
  46. package/core/uploads.d.ts +3 -0
  47. package/core/uploads.d.ts.map +1 -0
  48. package/core/uploads.js +6 -0
  49. package/core/uploads.js.map +1 -0
  50. package/core/uploads.mjs +2 -0
  51. package/core/uploads.mjs.map +1 -0
  52. package/error.d.mts +2 -0
  53. package/error.d.mts.map +1 -0
  54. package/error.d.ts +2 -0
  55. package/error.d.ts.map +1 -0
  56. package/error.js +6 -0
  57. package/error.js.map +1 -0
  58. package/error.mjs +2 -0
  59. package/error.mjs.map +1 -0
  60. package/index.d.mts +6 -0
  61. package/index.d.mts.map +1 -0
  62. package/index.d.ts +6 -0
  63. package/index.d.ts.map +1 -0
  64. package/index.js +30 -0
  65. package/index.js.map +1 -0
  66. package/index.mjs +7 -0
  67. package/index.mjs.map +1 -0
  68. package/internal/builtin-types.d.mts +73 -0
  69. package/internal/builtin-types.d.mts.map +1 -0
  70. package/internal/builtin-types.d.ts +73 -0
  71. package/internal/builtin-types.d.ts.map +1 -0
  72. package/internal/builtin-types.js +4 -0
  73. package/internal/builtin-types.js.map +1 -0
  74. package/internal/builtin-types.mjs +3 -0
  75. package/internal/builtin-types.mjs.map +1 -0
  76. package/internal/detect-platform.d.mts +15 -0
  77. package/internal/detect-platform.d.mts.map +1 -0
  78. package/internal/detect-platform.d.ts +15 -0
  79. package/internal/detect-platform.d.ts.map +1 -0
  80. package/internal/detect-platform.js +162 -0
  81. package/internal/detect-platform.js.map +1 -0
  82. package/internal/detect-platform.mjs +157 -0
  83. package/internal/detect-platform.mjs.map +1 -0
  84. package/internal/errors.d.mts +3 -0
  85. package/internal/errors.d.mts.map +1 -0
  86. package/internal/errors.d.ts +3 -0
  87. package/internal/errors.d.ts.map +1 -0
  88. package/internal/errors.js +41 -0
  89. package/internal/errors.js.map +1 -0
  90. package/internal/errors.mjs +36 -0
  91. package/internal/errors.mjs.map +1 -0
  92. package/internal/headers.d.mts +20 -0
  93. package/internal/headers.d.mts.map +1 -0
  94. package/internal/headers.d.ts +20 -0
  95. package/internal/headers.d.ts.map +1 -0
  96. package/internal/headers.js +79 -0
  97. package/internal/headers.js.map +1 -0
  98. package/internal/headers.mjs +74 -0
  99. package/internal/headers.mjs.map +1 -0
  100. package/internal/parse.d.mts +12 -0
  101. package/internal/parse.d.mts.map +1 -0
  102. package/internal/parse.d.ts +12 -0
  103. package/internal/parse.d.ts.map +1 -0
  104. package/internal/parse.js +35 -0
  105. package/internal/parse.js.map +1 -0
  106. package/internal/parse.mjs +32 -0
  107. package/internal/parse.mjs.map +1 -0
  108. package/internal/qs/formats.d.mts +7 -0
  109. package/internal/qs/formats.d.mts.map +1 -0
  110. package/internal/qs/formats.d.ts +7 -0
  111. package/internal/qs/formats.d.ts.map +1 -0
  112. package/internal/qs/formats.js +13 -0
  113. package/internal/qs/formats.js.map +1 -0
  114. package/internal/qs/formats.mjs +9 -0
  115. package/internal/qs/formats.mjs.map +1 -0
  116. package/internal/qs/index.d.mts +10 -0
  117. package/internal/qs/index.d.mts.map +1 -0
  118. package/internal/qs/index.d.ts +10 -0
  119. package/internal/qs/index.d.ts.map +1 -0
  120. package/internal/qs/index.js +14 -0
  121. package/internal/qs/index.js.map +1 -0
  122. package/internal/qs/index.mjs +10 -0
  123. package/internal/qs/index.mjs.map +1 -0
  124. package/internal/qs/stringify.d.mts +3 -0
  125. package/internal/qs/stringify.d.mts.map +1 -0
  126. package/internal/qs/stringify.d.ts +3 -0
  127. package/internal/qs/stringify.d.ts.map +1 -0
  128. package/internal/qs/stringify.js +277 -0
  129. package/internal/qs/stringify.js.map +1 -0
  130. package/internal/qs/stringify.mjs +274 -0
  131. package/internal/qs/stringify.mjs.map +1 -0
  132. package/internal/qs/types.d.mts +57 -0
  133. package/internal/qs/types.d.mts.map +1 -0
  134. package/internal/qs/types.d.ts +57 -0
  135. package/internal/qs/types.d.ts.map +1 -0
  136. package/internal/qs/types.js +3 -0
  137. package/internal/qs/types.js.map +1 -0
  138. package/internal/qs/types.mjs +2 -0
  139. package/internal/qs/types.mjs.map +1 -0
  140. package/internal/qs/utils.d.mts +15 -0
  141. package/internal/qs/utils.d.mts.map +1 -0
  142. package/internal/qs/utils.d.ts +15 -0
  143. package/internal/qs/utils.d.ts.map +1 -0
  144. package/internal/qs/utils.js +230 -0
  145. package/internal/qs/utils.js.map +1 -0
  146. package/internal/qs/utils.mjs +217 -0
  147. package/internal/qs/utils.mjs.map +1 -0
  148. package/internal/request-options.d.mts +75 -0
  149. package/internal/request-options.d.mts.map +1 -0
  150. package/internal/request-options.d.ts +75 -0
  151. package/internal/request-options.d.ts.map +1 -0
  152. package/internal/request-options.js +14 -0
  153. package/internal/request-options.js.map +1 -0
  154. package/internal/request-options.mjs +10 -0
  155. package/internal/request-options.mjs.map +1 -0
  156. package/internal/shim-types.d.mts +17 -0
  157. package/internal/shim-types.d.mts.map +1 -0
  158. package/internal/shim-types.d.ts +17 -0
  159. package/internal/shim-types.d.ts.map +1 -0
  160. package/internal/shim-types.js +4 -0
  161. package/internal/shim-types.js.map +1 -0
  162. package/internal/shim-types.mjs +3 -0
  163. package/internal/shim-types.mjs.map +1 -0
  164. package/internal/shims.d.mts +20 -0
  165. package/internal/shims.d.mts.map +1 -0
  166. package/internal/shims.d.ts +20 -0
  167. package/internal/shims.d.ts.map +1 -0
  168. package/internal/shims.js +92 -0
  169. package/internal/shims.js.map +1 -0
  170. package/internal/shims.mjs +85 -0
  171. package/internal/shims.mjs.map +1 -0
  172. package/internal/to-file.d.mts +45 -0
  173. package/internal/to-file.d.mts.map +1 -0
  174. package/internal/to-file.d.ts +45 -0
  175. package/internal/to-file.d.ts.map +1 -0
  176. package/internal/to-file.js +91 -0
  177. package/internal/to-file.js.map +1 -0
  178. package/internal/to-file.mjs +88 -0
  179. package/internal/to-file.mjs.map +1 -0
  180. package/internal/tslib.js +81 -0
  181. package/internal/tslib.mjs +17 -0
  182. package/internal/types.d.mts +69 -0
  183. package/internal/types.d.mts.map +1 -0
  184. package/internal/types.d.ts +69 -0
  185. package/internal/types.d.ts.map +1 -0
  186. package/internal/types.js +4 -0
  187. package/internal/types.js.map +1 -0
  188. package/internal/types.mjs +3 -0
  189. package/internal/types.mjs.map +1 -0
  190. package/internal/uploads.d.mts +42 -0
  191. package/internal/uploads.d.mts.map +1 -0
  192. package/internal/uploads.d.ts +42 -0
  193. package/internal/uploads.d.ts.map +1 -0
  194. package/internal/uploads.js +141 -0
  195. package/internal/uploads.js.map +1 -0
  196. package/internal/uploads.mjs +131 -0
  197. package/internal/uploads.mjs.map +1 -0
  198. package/internal/utils/base64.d.mts +3 -0
  199. package/internal/utils/base64.d.mts.map +1 -0
  200. package/internal/utils/base64.d.ts +3 -0
  201. package/internal/utils/base64.d.ts.map +1 -0
  202. package/internal/utils/base64.js +38 -0
  203. package/internal/utils/base64.js.map +1 -0
  204. package/internal/utils/base64.mjs +33 -0
  205. package/internal/utils/base64.mjs.map +1 -0
  206. package/internal/utils/bytes.d.mts +4 -0
  207. package/internal/utils/bytes.d.mts.map +1 -0
  208. package/internal/utils/bytes.d.ts +4 -0
  209. package/internal/utils/bytes.d.ts.map +1 -0
  210. package/internal/utils/bytes.js +31 -0
  211. package/internal/utils/bytes.js.map +1 -0
  212. package/internal/utils/bytes.mjs +26 -0
  213. package/internal/utils/bytes.mjs.map +1 -0
  214. package/internal/utils/env.d.mts +9 -0
  215. package/internal/utils/env.d.mts.map +1 -0
  216. package/internal/utils/env.d.ts +9 -0
  217. package/internal/utils/env.d.ts.map +1 -0
  218. package/internal/utils/env.js +22 -0
  219. package/internal/utils/env.js.map +1 -0
  220. package/internal/utils/env.mjs +18 -0
  221. package/internal/utils/env.mjs.map +1 -0
  222. package/internal/utils/log.d.mts +37 -0
  223. package/internal/utils/log.d.mts.map +1 -0
  224. package/internal/utils/log.d.ts +37 -0
  225. package/internal/utils/log.d.ts.map +1 -0
  226. package/internal/utils/log.js +85 -0
  227. package/internal/utils/log.js.map +1 -0
  228. package/internal/utils/log.mjs +79 -0
  229. package/internal/utils/log.mjs.map +1 -0
  230. package/internal/utils/path.d.mts +15 -0
  231. package/internal/utils/path.d.mts.map +1 -0
  232. package/internal/utils/path.d.ts +15 -0
  233. package/internal/utils/path.d.ts.map +1 -0
  234. package/internal/utils/path.js +79 -0
  235. package/internal/utils/path.js.map +1 -0
  236. package/internal/utils/path.mjs +74 -0
  237. package/internal/utils/path.mjs.map +1 -0
  238. package/internal/utils/sleep.d.mts +2 -0
  239. package/internal/utils/sleep.d.mts.map +1 -0
  240. package/internal/utils/sleep.d.ts +2 -0
  241. package/internal/utils/sleep.d.ts.map +1 -0
  242. package/internal/utils/sleep.js +7 -0
  243. package/internal/utils/sleep.js.map +1 -0
  244. package/internal/utils/sleep.mjs +3 -0
  245. package/internal/utils/sleep.mjs.map +1 -0
  246. package/internal/utils/uuid.d.mts +5 -0
  247. package/internal/utils/uuid.d.mts.map +1 -0
  248. package/internal/utils/uuid.d.ts +5 -0
  249. package/internal/utils/uuid.d.ts.map +1 -0
  250. package/internal/utils/uuid.js +19 -0
  251. package/internal/utils/uuid.js.map +1 -0
  252. package/internal/utils/uuid.mjs +15 -0
  253. package/internal/utils/uuid.mjs.map +1 -0
  254. package/internal/utils/values.d.mts +18 -0
  255. package/internal/utils/values.d.mts.map +1 -0
  256. package/internal/utils/values.d.ts +18 -0
  257. package/internal/utils/values.d.ts.map +1 -0
  258. package/internal/utils/values.js +112 -0
  259. package/internal/utils/values.js.map +1 -0
  260. package/internal/utils/values.mjs +94 -0
  261. package/internal/utils/values.mjs.map +1 -0
  262. package/internal/utils.d.mts +7 -0
  263. package/internal/utils.d.mts.map +1 -0
  264. package/internal/utils.d.ts +7 -0
  265. package/internal/utils.d.ts.map +1 -0
  266. package/internal/utils.js +11 -0
  267. package/internal/utils.js.map +1 -0
  268. package/internal/utils.mjs +8 -0
  269. package/internal/utils.mjs.map +1 -0
  270. package/package.json +131 -124
  271. package/resource.d.mts +2 -0
  272. package/resource.d.mts.map +1 -0
  273. package/resource.d.ts +2 -0
  274. package/resource.d.ts.map +1 -0
  275. package/resource.js +6 -0
  276. package/resource.js.map +1 -0
  277. package/resource.mjs +2 -0
  278. package/resource.mjs.map +1 -0
  279. package/resources/admin.d.mts +4 -0
  280. package/resources/admin.d.mts.map +1 -0
  281. package/resources/admin.d.ts +4 -0
  282. package/resources/admin.d.ts.map +1 -0
  283. package/resources/admin.js +9 -0
  284. package/resources/admin.js.map +1 -0
  285. package/resources/admin.mjs +5 -0
  286. package/resources/admin.mjs.map +1 -0
  287. package/resources/index.d.mts +7 -0
  288. package/resources/index.d.mts.map +1 -0
  289. package/resources/index.d.ts +7 -0
  290. package/resources/index.d.ts.map +1 -0
  291. package/resources/index.js +17 -0
  292. package/resources/index.js.map +1 -0
  293. package/resources/index.mjs +8 -0
  294. package/resources/index.mjs.map +1 -0
  295. package/resources/models.d.mts +85 -0
  296. package/resources/models.d.mts.map +1 -0
  297. package/resources/models.d.ts +85 -0
  298. package/resources/models.d.ts.map +1 -0
  299. package/resources/models.js +44 -0
  300. package/resources/models.js.map +1 -0
  301. package/resources/models.mjs +40 -0
  302. package/resources/models.mjs.map +1 -0
  303. package/resources/preferences.d.mts +111 -0
  304. package/resources/preferences.d.mts.map +1 -0
  305. package/resources/preferences.d.ts +111 -0
  306. package/resources/preferences.d.ts.map +1 -0
  307. package/resources/preferences.js +92 -0
  308. package/resources/preferences.js.map +1 -0
  309. package/resources/preferences.mjs +88 -0
  310. package/resources/preferences.mjs.map +1 -0
  311. package/resources/prompt-adaptation.d.mts +574 -0
  312. package/resources/prompt-adaptation.d.mts.map +1 -0
  313. package/resources/prompt-adaptation.d.ts +574 -0
  314. package/resources/prompt-adaptation.d.ts.map +1 -0
  315. package/resources/prompt-adaptation.js +289 -0
  316. package/resources/prompt-adaptation.js.map +1 -0
  317. package/resources/prompt-adaptation.mjs +285 -0
  318. package/resources/prompt-adaptation.mjs.map +1 -0
  319. package/resources/report.d.mts +245 -0
  320. package/resources/report.d.mts.map +1 -0
  321. package/resources/report.d.ts +245 -0
  322. package/resources/report.d.ts.map +1 -0
  323. package/resources/report.js +86 -0
  324. package/resources/report.js.map +1 -0
  325. package/resources/report.mjs +82 -0
  326. package/resources/report.mjs.map +1 -0
  327. package/resources/routing.d.mts +391 -0
  328. package/resources/routing.d.mts.map +1 -0
  329. package/resources/routing.d.ts +391 -0
  330. package/resources/routing.d.ts.map +1 -0
  331. package/resources/routing.js +163 -0
  332. package/resources/routing.js.map +1 -0
  333. package/resources/routing.mjs +159 -0
  334. package/resources/routing.mjs.map +1 -0
  335. package/resources.d.mts +2 -0
  336. package/resources.d.mts.map +1 -0
  337. package/resources.d.ts +2 -0
  338. package/resources.d.ts.map +1 -0
  339. package/resources.js +5 -0
  340. package/resources.js.map +1 -0
  341. package/resources.mjs +2 -0
  342. package/resources.mjs.map +1 -0
  343. package/src/api-promise.ts +2 -0
  344. package/src/client.ts +842 -0
  345. package/src/core/README.md +3 -0
  346. package/src/core/api-promise.ts +92 -0
  347. package/src/core/error.ts +130 -0
  348. package/src/core/resource.ts +11 -0
  349. package/src/core/uploads.ts +2 -0
  350. package/src/error.ts +2 -0
  351. package/src/index.ts +22 -0
  352. package/src/internal/README.md +3 -0
  353. package/src/internal/builtin-types.ts +93 -0
  354. package/src/internal/detect-platform.ts +196 -0
  355. package/src/internal/errors.ts +33 -0
  356. package/src/internal/headers.ts +97 -0
  357. package/src/internal/parse.ts +50 -0
  358. package/src/internal/qs/LICENSE.md +13 -0
  359. package/src/internal/qs/README.md +3 -0
  360. package/src/internal/qs/formats.ts +10 -0
  361. package/src/internal/qs/index.ts +13 -0
  362. package/src/internal/qs/stringify.ts +385 -0
  363. package/src/internal/qs/types.ts +71 -0
  364. package/src/internal/qs/utils.ts +265 -0
  365. package/src/internal/request-options.ts +91 -0
  366. package/src/internal/shim-types.ts +26 -0
  367. package/src/internal/shims.ts +107 -0
  368. package/src/internal/to-file.ts +154 -0
  369. package/src/internal/types.ts +95 -0
  370. package/src/internal/uploads.ts +187 -0
  371. package/src/internal/utils/base64.ts +40 -0
  372. package/src/internal/utils/bytes.ts +32 -0
  373. package/src/internal/utils/env.ts +18 -0
  374. package/src/internal/utils/log.ts +126 -0
  375. package/src/internal/utils/path.ts +88 -0
  376. package/src/internal/utils/sleep.ts +3 -0
  377. package/src/internal/utils/uuid.ts +17 -0
  378. package/src/internal/utils/values.ts +105 -0
  379. package/src/internal/utils.ts +8 -0
  380. package/src/lib/.keep +4 -0
  381. package/src/resource.ts +2 -0
  382. package/src/resources/admin.ts +5 -0
  383. package/src/resources/index.ts +44 -0
  384. package/src/resources/models.ts +110 -0
  385. package/src/resources/preferences.ts +158 -0
  386. package/src/resources/prompt-adaptation.ts +700 -0
  387. package/src/resources/report.ts +300 -0
  388. package/src/resources/routing.ts +476 -0
  389. package/src/resources.ts +1 -0
  390. package/src/tsconfig.json +11 -0
  391. package/src/uploads.ts +2 -0
  392. package/src/version.ts +1 -0
  393. package/uploads.d.mts +2 -0
  394. package/uploads.d.mts.map +1 -0
  395. package/uploads.d.ts +2 -0
  396. package/uploads.d.ts.map +1 -0
  397. package/uploads.js +6 -0
  398. package/uploads.js.map +1 -0
  399. package/uploads.mjs +2 -0
  400. package/uploads.mjs.map +1 -0
  401. package/version.d.mts +2 -0
  402. package/version.d.mts.map +1 -0
  403. package/version.d.ts +2 -0
  404. package/version.d.ts.map +1 -0
  405. package/version.js +5 -0
  406. package/version.js.map +1 -0
  407. package/version.mjs +2 -0
  408. package/version.mjs.map +1 -0
  409. package/LICENCE +0 -21
@@ -0,0 +1,105 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { NotDiamondError } from '../../core/error';
4
+
5
+ // https://url.spec.whatwg.org/#url-scheme-string
6
+ const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
7
+
8
+ export const isAbsoluteURL = (url: string): boolean => {
9
+ return startsWithSchemeRegexp.test(url);
10
+ };
11
+
12
+ export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
13
+ export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
14
+
15
+ /** Returns an object if the given value isn't an object, otherwise returns as-is */
16
+ export function maybeObj(x: unknown): object {
17
+ if (typeof x !== 'object') {
18
+ return {};
19
+ }
20
+
21
+ return x ?? {};
22
+ }
23
+
24
+ // https://stackoverflow.com/a/34491287
25
+ export function isEmptyObj(obj: Object | null | undefined): boolean {
26
+ if (!obj) return true;
27
+ for (const _k in obj) return false;
28
+ return true;
29
+ }
30
+
31
+ // https://eslint.org/docs/latest/rules/no-prototype-builtins
32
+ export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
33
+ return Object.prototype.hasOwnProperty.call(obj, key);
34
+ }
35
+
36
+ export function isObj(obj: unknown): obj is Record<string, unknown> {
37
+ return obj != null && typeof obj === 'object' && !Array.isArray(obj);
38
+ }
39
+
40
+ export const ensurePresent = <T>(value: T | null | undefined): T => {
41
+ if (value == null) {
42
+ throw new NotDiamondError(`Expected a value to be given but received ${value} instead.`);
43
+ }
44
+
45
+ return value;
46
+ };
47
+
48
+ export const validatePositiveInteger = (name: string, n: unknown): number => {
49
+ if (typeof n !== 'number' || !Number.isInteger(n)) {
50
+ throw new NotDiamondError(`${name} must be an integer`);
51
+ }
52
+ if (n < 0) {
53
+ throw new NotDiamondError(`${name} must be a positive integer`);
54
+ }
55
+ return n;
56
+ };
57
+
58
+ export const coerceInteger = (value: unknown): number => {
59
+ if (typeof value === 'number') return Math.round(value);
60
+ if (typeof value === 'string') return parseInt(value, 10);
61
+
62
+ throw new NotDiamondError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
63
+ };
64
+
65
+ export const coerceFloat = (value: unknown): number => {
66
+ if (typeof value === 'number') return value;
67
+ if (typeof value === 'string') return parseFloat(value);
68
+
69
+ throw new NotDiamondError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
70
+ };
71
+
72
+ export const coerceBoolean = (value: unknown): boolean => {
73
+ if (typeof value === 'boolean') return value;
74
+ if (typeof value === 'string') return value === 'true';
75
+ return Boolean(value);
76
+ };
77
+
78
+ export const maybeCoerceInteger = (value: unknown): number | undefined => {
79
+ if (value == null) {
80
+ return undefined;
81
+ }
82
+ return coerceInteger(value);
83
+ };
84
+
85
+ export const maybeCoerceFloat = (value: unknown): number | undefined => {
86
+ if (value == null) {
87
+ return undefined;
88
+ }
89
+ return coerceFloat(value);
90
+ };
91
+
92
+ export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
93
+ if (value == null) {
94
+ return undefined;
95
+ }
96
+ return coerceBoolean(value);
97
+ };
98
+
99
+ export const safeJSON = (text: string) => {
100
+ try {
101
+ return JSON.parse(text);
102
+ } catch (err) {
103
+ return undefined;
104
+ }
105
+ };
@@ -0,0 +1,8 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export * from './utils/values';
4
+ export * from './utils/base64';
5
+ export * from './utils/env';
6
+ export * from './utils/log';
7
+ export * from './utils/uuid';
8
+ export * from './utils/sleep';
package/src/lib/.keep ADDED
@@ -0,0 +1,4 @@
1
+ File generated from our OpenAPI spec by Stainless.
2
+
3
+ This directory can be used to store custom files to expand the SDK.
4
+ It is ignored by Stainless code generation and its content (other than this keep file) won't be touched.
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import from ./core/resource instead */
2
+ export * from './core/resource';
@@ -0,0 +1,5 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+
5
+ export class Admin extends APIResource {}
@@ -0,0 +1,44 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export { Admin } from './admin';
4
+ export { Models, type ModelListResponse, type ModelListParams } from './models';
5
+ export {
6
+ Preferences,
7
+ type PreferenceRetrieveResponse,
8
+ type PreferenceCreateUserPreferenceResponse,
9
+ type PreferenceDeleteUserPreferenceResponse,
10
+ type PreferenceUpdateUserPreferenceResponse,
11
+ type PreferenceRetrieveParams,
12
+ type PreferenceCreateUserPreferenceParams,
13
+ type PreferenceUpdateUserPreferenceParams,
14
+ } from './preferences';
15
+ export {
16
+ PromptAdaptation,
17
+ type AdaptationRunResults,
18
+ type JobStatus,
19
+ type PromptAdaptationAdaptResponse,
20
+ type PromptAdaptationGetAdaptRunsResponse,
21
+ type PromptAdaptationGetAdaptStatusResponse,
22
+ type PromptAdaptationRetrieveCostsResponse,
23
+ type PromptAdaptationAdaptParams,
24
+ type PromptAdaptationGetAdaptRunResultsParams,
25
+ type PromptAdaptationGetAdaptRunsParams,
26
+ } from './prompt-adaptation';
27
+ export {
28
+ Report,
29
+ type ReportEvaluateHallucinationResponse,
30
+ type ReportLatencyResponse,
31
+ type ReportSubmitFeedbackResponse,
32
+ type ReportEvaluateHallucinationParams,
33
+ type ReportLatencyParams,
34
+ type ReportSubmitFeedbackParams,
35
+ } from './report';
36
+ export {
37
+ Routing,
38
+ type RoutingCreateSurveyResponseResponse,
39
+ type RoutingSelectModelResponse,
40
+ type RoutingTrainCustomRouterResponse,
41
+ type RoutingCreateSurveyResponseParams,
42
+ type RoutingSelectModelParams,
43
+ type RoutingTrainCustomRouterParams,
44
+ } from './routing';
@@ -0,0 +1,110 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import { APIPromise } from '../core/api-promise';
5
+ import { RequestOptions } from '../internal/request-options';
6
+
7
+ export class Models extends APIResource {
8
+ /**
9
+ * List all supported text generation models with optional filtering.
10
+ *
11
+ * including pricing, context length, latency, and OpenRouter availability.
12
+ *
13
+ * **Note:** Image generation models are excluded from this endpoint.
14
+ *
15
+ * **Examples:**
16
+ *
17
+ * - Get all models: `/v2/models`
18
+ * - OpenRouter only: `/v2/models?openrouter_only=true`
19
+ * - Specific provider: `/v2/models?provider=openai`
20
+ * - Multiple providers: `/v2/models?provider=openai&provider=anthropic`
21
+ *
22
+ * **Query Parameters:**
23
+ *
24
+ * - **provider**: Filter by provider name(s). Can specify multiple times for
25
+ * multiple providers (e.g., `?provider=openai&provider=anthropic`)
26
+ * - **openrouter_only**: Return only models that have OpenRouter support (default:
27
+ * false)
28
+ *
29
+ * **Returns:**
30
+ *
31
+ * - **models**: List of active text generation model objects with metadata
32
+ * - **total**: Total number of active models returned
33
+ * - **deprecated_models**: List of deprecated text generation model objects with
34
+ * metadata (respects the same filters as active models)
35
+ *
36
+ * **Caching:**
37
+ *
38
+ * - Response is cacheable for 1 hour (model list rarely changes)
39
+ */
40
+ list(
41
+ query: ModelListParams | null | undefined = {},
42
+ options?: RequestOptions,
43
+ ): APIPromise<ModelListResponse> {
44
+ return this._client.get('/v2/models', { query, ...options });
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Response for models list endpoint.
50
+ */
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 {
60
+ /**
61
+ * Response model for a single LLM provider.
62
+ */
63
+ export interface DeprecatedModel {
64
+ context_length: number;
65
+
66
+ input_price: number;
67
+
68
+ model: string;
69
+
70
+ output_price: number;
71
+
72
+ provider: string;
73
+
74
+ openrouter_model?: string | null;
75
+ }
76
+
77
+ /**
78
+ * Response model for a single LLM provider.
79
+ */
80
+ export interface Model {
81
+ context_length: number;
82
+
83
+ input_price: number;
84
+
85
+ model: string;
86
+
87
+ output_price: number;
88
+
89
+ provider: string;
90
+
91
+ openrouter_model?: string | null;
92
+ }
93
+ }
94
+
95
+ export interface ModelListParams {
96
+ /**
97
+ * Return only OpenRouter-supported models
98
+ */
99
+ openrouter_only?: boolean;
100
+
101
+ /**
102
+ * Filter by provider name(s). Can specify multiple providers (e.g., 'openai',
103
+ * 'anthropic')
104
+ */
105
+ provider?: Array<string> | null;
106
+ }
107
+
108
+ export declare namespace Models {
109
+ export { type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams };
110
+ }
@@ -0,0 +1,158 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import { APIPromise } from '../core/api-promise';
5
+ import { buildHeaders } from '../internal/headers';
6
+ import { RequestOptions } from '../internal/request-options';
7
+ import { path } from '../internal/utils/path';
8
+
9
+ 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
+ /**
34
+ * Create a new preference ID for personalized LLM routing.
35
+ *
36
+ * A preference ID enables personalized routing by tracking your feedback and
37
+ * learning your preferences over time. Once created, you can:
38
+ *
39
+ * 1. Use it in model_select() calls to get personalized routing decisions
40
+ * 2. Submit feedback via the feedback endpoint to improve routing quality
41
+ * 3. Train a custom router specific to your use case
42
+ *
43
+ * **Workflow:**
44
+ *
45
+ * 1. Create a preference ID (this endpoint)
46
+ * 2. Use the preference_id in POST /v2/modelRouter/modelSelect requests
47
+ * 3. Submit feedback on routing decisions via POST /v2/report/metrics/feedback
48
+ * 4. Optionally train a custom router via POST /v2/pzn/trainCustomRouter
49
+ *
50
+ * **Benefits:**
51
+ *
52
+ * - Personalized routing that learns from your feedback
53
+ * - Improved accuracy for your specific use case
54
+ * - Ability to train custom routers on your evaluation data
55
+ *
56
+ * **Note:** If you don't provide a preference_id in model_select() calls, the
57
+ * default router will be used.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * const response =
62
+ * await client.preferences.createUserPreference();
63
+ * ```
64
+ */
65
+ createUserPreference(
66
+ body: PreferenceCreateUserPreferenceParams,
67
+ options?: RequestOptions,
68
+ ): APIPromise<PreferenceCreateUserPreferenceResponse> {
69
+ return this._client.post('/v2/preferences/userPreferenceCreate', { body, ...options });
70
+ }
71
+
72
+ /**
73
+ * Delete User Preference
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const response =
78
+ * await client.preferences.deleteUserPreference(
79
+ * 'preference_id',
80
+ * );
81
+ * ```
82
+ */
83
+ deleteUserPreference(preferenceID: string, options?: RequestOptions): APIPromise<unknown> {
84
+ return this._client.delete(path`/v2/preferences/userPreferenceDelete/${preferenceID}`, options);
85
+ }
86
+
87
+ /**
88
+ * Update User Preference
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const response =
93
+ * await client.preferences.updateUserPreference({
94
+ * preference_id: 'preference_id',
95
+ * });
96
+ * ```
97
+ */
98
+ updateUserPreference(
99
+ body: PreferenceUpdateUserPreferenceParams,
100
+ options?: RequestOptions,
101
+ ): APIPromise<unknown> {
102
+ return this._client.put('/v2/preferences/userPreferenceUpdate', { body, ...options });
103
+ }
104
+ }
105
+
106
+ export type PreferenceRetrieveResponse = unknown;
107
+
108
+ /**
109
+ * Response from preference creation endpoint.
110
+ */
111
+ export interface PreferenceCreateUserPreferenceResponse {
112
+ /**
113
+ * The newly created preference ID. Use this in model_select() calls for
114
+ * personalized routing
115
+ */
116
+ preference_id: string;
117
+ }
118
+
119
+ export type PreferenceDeleteUserPreferenceResponse = unknown;
120
+
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
+ }
134
+
135
+ export interface PreferenceCreateUserPreferenceParams {
136
+ /**
137
+ * Optional name for the preference
138
+ */
139
+ name?: string | null;
140
+ }
141
+
142
+ export interface PreferenceUpdateUserPreferenceParams {
143
+ preference_id: string;
144
+
145
+ name?: string | null;
146
+ }
147
+
148
+ export declare namespace Preferences {
149
+ 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,
157
+ };
158
+ }