openpond-sdk 0.10.0 → 0.11.2

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 (263) hide show
  1. package/dist/advanced-refiner-evaluations.js +42 -0
  2. package/dist/advanced-refiner-evaluations.js.map +7 -0
  3. package/dist/candidate-evaluations.js +25 -0
  4. package/dist/candidate-evaluations.js.map +7 -0
  5. package/dist/{chunk-W5TXWVFS.js → chunk-2JKV5OJO.js} +88 -59
  6. package/dist/chunk-2JKV5OJO.js.map +7 -0
  7. package/dist/{chunk-2ZJRG3KL.js → chunk-2NSNBED7.js} +7 -3
  8. package/dist/chunk-2NSNBED7.js.map +7 -0
  9. package/dist/{chunk-Y4NGWGTA.js → chunk-4NZW4LFB.js} +268 -264
  10. package/dist/chunk-4NZW4LFB.js.map +7 -0
  11. package/dist/{chunk-DSGGM2ME.js → chunk-4SZKRRTO.js} +2 -2
  12. package/dist/chunk-6FQKRY5K.js +445 -0
  13. package/dist/chunk-6FQKRY5K.js.map +7 -0
  14. package/dist/chunk-7Q7I6FAT.js +139 -0
  15. package/dist/chunk-7Q7I6FAT.js.map +7 -0
  16. package/dist/chunk-CPEOFPPF.js +632 -0
  17. package/dist/chunk-CPEOFPPF.js.map +7 -0
  18. package/dist/chunk-G3FWDZMZ.js +267 -0
  19. package/dist/chunk-G3FWDZMZ.js.map +7 -0
  20. package/dist/chunk-GDJRGRHA.js +144 -0
  21. package/dist/chunk-GDJRGRHA.js.map +7 -0
  22. package/dist/chunk-HKAR3VPB.js +65 -0
  23. package/dist/chunk-HKAR3VPB.js.map +7 -0
  24. package/dist/{chunk-32H2EJRA.js → chunk-JEUHIQWF.js} +10 -7
  25. package/dist/chunk-JEUHIQWF.js.map +7 -0
  26. package/dist/chunk-KQWCXW3A.js +294 -0
  27. package/dist/chunk-KQWCXW3A.js.map +7 -0
  28. package/dist/chunk-LFH4EKWH.js +1408 -0
  29. package/dist/chunk-LFH4EKWH.js.map +7 -0
  30. package/dist/{chunk-DT7FRNIZ.js → chunk-MW2N3BX5.js} +4 -3
  31. package/dist/{chunk-DT7FRNIZ.js.map → chunk-MW2N3BX5.js.map} +2 -2
  32. package/dist/{chunk-I3TQTXKB.js → chunk-QVCMFQKA.js} +6 -6
  33. package/dist/{chunk-I3TQTXKB.js.map → chunk-QVCMFQKA.js.map} +1 -1
  34. package/dist/{chunk-I2YM3UY4.js → chunk-RIX56CJL.js} +9 -6
  35. package/dist/chunk-RIX56CJL.js.map +7 -0
  36. package/dist/{chunk-PJ2VLNJF.js → chunk-SGRYMU4C.js} +2 -2
  37. package/dist/chunk-SLS3GFPG.js +125 -0
  38. package/dist/chunk-SLS3GFPG.js.map +7 -0
  39. package/dist/chunk-SVU4RZ4K.js +70 -0
  40. package/dist/chunk-SVU4RZ4K.js.map +7 -0
  41. package/dist/chunk-SXTC2GT6.js +160 -0
  42. package/dist/chunk-SXTC2GT6.js.map +7 -0
  43. package/dist/chunk-T4APHDES.js +74 -0
  44. package/dist/chunk-T4APHDES.js.map +7 -0
  45. package/dist/chunk-UNMOEI2K.js +587 -0
  46. package/dist/chunk-UNMOEI2K.js.map +7 -0
  47. package/dist/chunk-VC5OV5AS.js +174 -0
  48. package/dist/chunk-VC5OV5AS.js.map +7 -0
  49. package/dist/{chunk-7B44TQZD.js → chunk-WX22WN33.js} +13 -7
  50. package/dist/chunk-WX22WN33.js.map +7 -0
  51. package/dist/{chunk-JCPLAIZL.js → chunk-XCH27NHJ.js} +106 -76
  52. package/dist/chunk-XCH27NHJ.js.map +7 -0
  53. package/dist/chunk-XEUOJ5WF.js +31 -0
  54. package/dist/chunk-XEUOJ5WF.js.map +7 -0
  55. package/dist/chunk-YCQVVFE5.js +37 -0
  56. package/dist/chunk-YCQVVFE5.js.map +7 -0
  57. package/dist/chunk-YTGRET2L.js +604 -0
  58. package/dist/chunk-YTGRET2L.js.map +7 -0
  59. package/dist/connected-evidence.js +97 -0
  60. package/dist/connected-evidence.js.map +7 -0
  61. package/dist/dataset-commerce.js +773 -0
  62. package/dist/dataset-commerce.js.map +7 -0
  63. package/dist/dataset-workspaces.js +45 -80
  64. package/dist/dataset-workspaces.js.map +4 -4
  65. package/dist/experiment-evaluation-schedules.js +48 -0
  66. package/dist/experiment-evaluation-schedules.js.map +7 -0
  67. package/dist/experiment-improvements.js +52 -0
  68. package/dist/experiment-improvements.js.map +7 -0
  69. package/dist/experiments.js +48 -90
  70. package/dist/experiments.js.map +3 -3
  71. package/dist/human-review.js +13 -0
  72. package/dist/human-review.js.map +7 -0
  73. package/dist/index.js +221 -14
  74. package/dist/index.js.map +2 -2
  75. package/dist/learning.js +1 -1
  76. package/dist/model-starter-attempts.js +2 -2
  77. package/dist/model-starter-catalog.js +9 -4
  78. package/dist/model-starter-catalog.js.map +1 -1
  79. package/dist/model-starters.js +9 -4
  80. package/dist/model-taskset-runs.js +3 -3
  81. package/dist/post-training.js +47 -0
  82. package/dist/post-training.js.map +7 -0
  83. package/dist/taskset-drafts.js +33 -21
  84. package/dist/taskset-drafts.js.map +2 -2
  85. package/dist/taskset-packages.js +28 -558
  86. package/dist/taskset-packages.js.map +4 -4
  87. package/dist/training-bundle.js +61 -20
  88. package/dist/training-bundle.js.map +2 -2
  89. package/dist/training-projects.js +1 -1
  90. package/dist/training.js +7 -2
  91. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts +2682 -0
  92. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts.map +1 -0
  93. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +1079 -0
  94. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -0
  95. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +845 -0
  96. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -0
  97. package/dist/types/packages/sdk/src/claude-code-runtime.d.ts +51 -0
  98. package/dist/types/packages/sdk/src/claude-code-runtime.d.ts.map +1 -0
  99. package/dist/types/packages/sdk/src/connected-collection-status.d.ts +47 -0
  100. package/dist/types/packages/sdk/src/connected-collection-status.d.ts.map +1 -0
  101. package/dist/types/packages/sdk/src/connected-dataset-publication.d.ts +15 -0
  102. package/dist/types/packages/sdk/src/connected-dataset-publication.d.ts.map +1 -0
  103. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts +52 -0
  104. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts.map +1 -0
  105. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +2502 -0
  106. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -0
  107. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts +235 -0
  108. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts.map +1 -0
  109. package/dist/types/packages/sdk/src/connected-evidence-http.d.ts +6 -0
  110. package/dist/types/packages/sdk/src/connected-evidence-http.d.ts.map +1 -0
  111. package/dist/types/packages/sdk/src/connected-evidence.d.ts +8 -0
  112. package/dist/types/packages/sdk/src/connected-evidence.d.ts.map +1 -0
  113. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts +690 -0
  114. package/dist/types/packages/sdk/src/connected-recorded-execution.d.ts.map +1 -0
  115. package/dist/types/packages/sdk/src/connected-sync.d.ts +282 -0
  116. package/dist/types/packages/sdk/src/connected-sync.d.ts.map +1 -0
  117. package/dist/types/packages/sdk/src/dataset-commerce-contracts.d.ts +230 -0
  118. package/dist/types/packages/sdk/src/dataset-commerce-contracts.d.ts.map +1 -0
  119. package/dist/types/packages/sdk/src/dataset-commerce-files.d.ts +114 -0
  120. package/dist/types/packages/sdk/src/dataset-commerce-files.d.ts.map +1 -0
  121. package/dist/types/packages/sdk/src/dataset-commerce-responses.d.ts +608 -0
  122. package/dist/types/packages/sdk/src/dataset-commerce-responses.d.ts.map +1 -0
  123. package/dist/types/packages/sdk/src/dataset-commerce.d.ts +575 -0
  124. package/dist/types/packages/sdk/src/dataset-commerce.d.ts.map +1 -0
  125. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +772 -120
  126. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  127. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +293 -38
  128. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  129. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +294 -40
  130. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  131. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts +17 -0
  132. package/dist/types/packages/sdk/src/evaluation-coordination-http.d.ts.map +1 -0
  133. package/dist/types/packages/sdk/src/experiment-client.d.ts +3513 -52
  134. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  135. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +1017 -1
  136. package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
  137. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +2780 -0
  138. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -0
  139. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts +24 -0
  140. package/dist/types/packages/sdk/src/experiment-grading-contracts.d.ts.map +1 -1
  141. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts +5724 -0
  142. package/dist/types/packages/sdk/src/experiment-improvement-client.d.ts.map +1 -0
  143. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts +13024 -0
  144. package/dist/types/packages/sdk/src/experiment-improvement-contracts.d.ts.map +1 -0
  145. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts +1361 -0
  146. package/dist/types/packages/sdk/src/experiment-improvement-hosted-adoption.d.ts.map +1 -0
  147. package/dist/types/packages/sdk/src/experiment-improvements.d.ts +4 -0
  148. package/dist/types/packages/sdk/src/experiment-improvements.d.ts.map +1 -0
  149. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +262 -0
  150. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts.map +1 -1
  151. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +1388 -1
  152. package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -1
  153. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts +5 -2
  154. package/dist/types/packages/sdk/src/experiment-scoring-contracts.d.ts.map +1 -1
  155. package/dist/types/packages/sdk/src/experiments.d.ts +3 -0
  156. package/dist/types/packages/sdk/src/experiments.d.ts.map +1 -1
  157. package/dist/types/packages/sdk/src/grader-inspection.d.ts +307 -5
  158. package/dist/types/packages/sdk/src/grader-inspection.d.ts.map +1 -1
  159. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +238 -0
  160. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts.map +1 -1
  161. package/dist/types/packages/sdk/src/human-review-client.d.ts +1267 -0
  162. package/dist/types/packages/sdk/src/human-review-client.d.ts.map +1 -0
  163. package/dist/types/packages/sdk/src/human-review.d.ts +3 -0
  164. package/dist/types/packages/sdk/src/human-review.d.ts.map +1 -0
  165. package/dist/types/packages/sdk/src/index.d.ts +10 -0
  166. package/dist/types/packages/sdk/src/index.d.ts.map +1 -1
  167. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts +181 -0
  168. package/dist/types/packages/sdk/src/managed-training-preparation.d.ts.map +1 -1
  169. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +63 -4
  170. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  171. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +90 -5
  172. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  173. package/dist/types/packages/sdk/src/model-batch-review.d.ts +55 -13
  174. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  175. package/dist/types/packages/sdk/src/model-learning-policy.d.ts +370 -1
  176. package/dist/types/packages/sdk/src/model-learning-policy.d.ts.map +1 -1
  177. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +363 -19
  178. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  179. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +234 -12
  180. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +78 -1
  182. package/dist/types/packages/sdk/src/model-starter-execution.d.ts.map +1 -1
  183. package/dist/types/packages/sdk/src/model-starters.d.ts +466 -13
  184. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  185. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +312 -4
  186. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  187. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +78 -1
  188. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts.map +1 -1
  189. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +1282 -4
  190. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
  191. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +1285 -5
  192. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  193. package/dist/types/packages/sdk/src/post-training.d.ts +3529 -0
  194. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -0
  195. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts +1127 -0
  196. package/dist/types/packages/sdk/src/profile-evaluation-discovery.d.ts.map +1 -0
  197. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts +1398 -0
  198. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts.map +1 -0
  199. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +157 -24
  200. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
  201. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +111 -18
  202. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  203. package/dist/types/packages/sdk/src/taskset-authored-validation.d.ts.map +1 -1
  204. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts +438 -0
  205. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts.map +1 -0
  206. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +292 -38
  207. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  208. package/dist/types/packages/sdk/src/taskset-draft-authoring.d.ts.map +1 -1
  209. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +661 -103
  210. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  211. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +227 -20
  212. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
  213. package/dist/types/packages/sdk/src/taskset-draft-dataset-artifacts.d.ts +14 -14
  214. package/dist/types/packages/sdk/src/taskset-draft-dataset-sources.d.ts +17 -17
  215. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +147 -20
  216. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  217. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +696 -42
  218. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  219. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +256 -36
  220. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  221. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +292 -38
  222. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  223. package/dist/types/packages/sdk/src/taskset-drafts.d.ts +2 -0
  224. package/dist/types/packages/sdk/src/taskset-drafts.d.ts.map +1 -1
  225. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +1494 -26
  226. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  227. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +746 -12
  228. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  229. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +77 -3
  230. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -1
  231. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +101 -11
  232. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  233. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +459 -39
  234. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  235. package/dist/types/packages/sdk/src/training-acceptance.d.ts +10 -10
  236. package/dist/types/packages/sdk/src/training-candidate-decisions.d.ts +2 -2
  237. package/dist/types/packages/sdk/src/training-evaluation-results.d.ts +1 -1
  238. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +376 -42
  239. package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
  240. package/dist/types/packages/sdk/src/training-preparations.d.ts +3930 -0
  241. package/dist/types/packages/sdk/src/training-preparations.d.ts.map +1 -1
  242. package/dist/types/packages/sdk/src/training-project-client.d.ts +776 -8
  243. package/dist/types/packages/sdk/src/training-project-client.d.ts.map +1 -1
  244. package/dist/types/packages/sdk/src/training-project-contracts.d.ts +1161 -11
  245. package/dist/types/packages/sdk/src/training-project-contracts.d.ts.map +1 -1
  246. package/dist/types/packages/sdk/src/training.d.ts +2655 -24
  247. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  248. package/package.json +35 -3
  249. package/dist/chunk-2ZJRG3KL.js.map +0 -7
  250. package/dist/chunk-32H2EJRA.js.map +0 -7
  251. package/dist/chunk-7B44TQZD.js.map +0 -7
  252. package/dist/chunk-I2YM3UY4.js.map +0 -7
  253. package/dist/chunk-JA3KFK3U.js +0 -580
  254. package/dist/chunk-JA3KFK3U.js.map +0 -7
  255. package/dist/chunk-JCPLAIZL.js.map +0 -7
  256. package/dist/chunk-LGEF4S5I.js +0 -1229
  257. package/dist/chunk-LGEF4S5I.js.map +0 -7
  258. package/dist/chunk-PRRUBH2B.js +0 -314
  259. package/dist/chunk-PRRUBH2B.js.map +0 -7
  260. package/dist/chunk-W5TXWVFS.js.map +0 -7
  261. package/dist/chunk-Y4NGWGTA.js.map +0 -7
  262. /package/dist/{chunk-DSGGM2ME.js.map → chunk-4SZKRRTO.js.map} +0 -0
  263. /package/dist/{chunk-PJ2VLNJF.js.map → chunk-SGRYMU4C.js.map} +0 -0
@@ -0,0 +1,773 @@
1
+ // src/dataset-commerce-files.ts
2
+ import { z as z3 } from "zod";
3
+
4
+ // src/dataset-commerce-contracts.ts
5
+ import { z } from "zod";
6
+ var CommerceId = z.string().min(1).max(191);
7
+ var CommerceHash = z.string().regex(/^[a-f0-9]{64}$/);
8
+ var UsdcAmount = z.string().regex(/^[1-9][0-9]{0,11}$/);
9
+ var CommerceOperation = z.object({ operationId: CommerceId });
10
+ var CommerceReleaseRef = z.object({
11
+ id: CommerceId,
12
+ revision: z.number().int().positive(),
13
+ contentHash: CommerceHash
14
+ }).strict();
15
+ var ListingTerms = z.object({
16
+ title: z.string().trim().min(3).max(160),
17
+ description: z.string().trim().min(10).max(8e3),
18
+ category: z.string().trim().min(1).max(80),
19
+ tags: z.array(z.string().trim().min(1).max(40)).max(12),
20
+ priceBaseUnits: UsdcAmount,
21
+ license: z.string().trim().min(3).max(4e3)
22
+ }).strict();
23
+ var CaptureCommerceRelease = CommerceOperation.extend({
24
+ tasksetId: CommerceId,
25
+ release: CommerceReleaseRef,
26
+ packageHash: CommerceHash,
27
+ sampleTaskIds: z.array(CommerceId).min(1).max(10),
28
+ approvedSample: z.literal(true)
29
+ }).strict();
30
+ var WriteCommerceListing = CommerceOperation.extend({
31
+ id: CommerceId.optional(),
32
+ expectedRevision: z.number().int().nonnegative(),
33
+ releaseId: CommerceId,
34
+ terms: ListingTerms,
35
+ state: z.enum(["draft", "listed", "paused", "retired"])
36
+ }).strict();
37
+ var CommerceCursor = z.string().min(1).max(1024);
38
+ var CommerceDatasetFormat = z.enum([
39
+ "native",
40
+ "csv",
41
+ "jsonl",
42
+ "parquet"
43
+ ]);
44
+ var CommerceBrowse = z.object({
45
+ search: z.string().max(120).optional(),
46
+ category: z.string().max(80).optional(),
47
+ format: CommerceDatasetFormat.optional(),
48
+ license: z.string().max(120).optional(),
49
+ minPriceBaseUnits: z.string().regex(/^(0|[1-9][0-9]{0,11})$/).optional(),
50
+ maxPriceBaseUnits: UsdcAmount.optional(),
51
+ sort: z.enum(["newest", "price_low", "price_high"]).default("newest"),
52
+ cursor: CommerceCursor.optional(),
53
+ limit: z.coerce.number().int().min(1).max(50).default(20)
54
+ }).refine(
55
+ (value) => !value.minPriceBaseUnits || !value.maxPriceBaseUnits || BigInt(value.minPriceBaseUnits) <= BigInt(value.maxPriceBaseUnits),
56
+ {
57
+ message: "Minimum price must not exceed maximum price.",
58
+ path: ["maxPriceBaseUnits"]
59
+ }
60
+ );
61
+ var DatasetRequestContent = z.object({
62
+ title: z.string().trim().min(3).max(160),
63
+ description: z.string().trim().min(10).max(8e3),
64
+ category: z.string().trim().min(1).max(80),
65
+ budgetBaseUnits: UsdcAmount,
66
+ requirements: z.object({
67
+ schema: z.string().max(8e3).default(""),
68
+ formats: z.array(z.enum(["native", "csv", "jsonl", "parquet"])).min(1),
69
+ minRecords: z.number().int().nonnegative().optional(),
70
+ maxRecords: z.number().int().positive().optional(),
71
+ languages: z.array(z.string().max(80)).max(20).default([]),
72
+ provenance: z.string().max(4e3).default(""),
73
+ license: z.string().max(4e3).default(""),
74
+ privacy: z.string().max(4e3).default(""),
75
+ acceptance: z.string().max(4e3).default("")
76
+ }).strict(),
77
+ deadline: z.string().datetime().nullable(),
78
+ projectId: CommerceId.nullable()
79
+ }).strict();
80
+ var WriteDatasetRequest = CommerceOperation.extend({
81
+ id: CommerceId.optional(),
82
+ expectedRevision: z.number().int().nonnegative(),
83
+ content: DatasetRequestContent,
84
+ state: z.enum(["draft", "open", "paused", "closed", "cancelled"])
85
+ }).strict();
86
+ var SubmitDatasetOffer = CommerceOperation.extend({
87
+ requestId: CommerceId,
88
+ requestRevision: z.number().int().positive(),
89
+ expectedRevision: z.number().int().nonnegative(),
90
+ releaseId: CommerceId,
91
+ priceBaseUnits: UsdcAmount,
92
+ license: z.string().min(3).max(4e3),
93
+ explanation: z.string().min(10).max(8e3),
94
+ expiresAt: z.string().datetime()
95
+ }).strict();
96
+ var ReviewDatasetOffer = CommerceOperation.extend({
97
+ id: CommerceId,
98
+ expectedRevision: z.number().int().positive(),
99
+ expectedUpdatedAt: z.string().datetime(),
100
+ state: z.enum(["submitted", "shortlisted", "changes_requested", "declined"]),
101
+ note: z.string().max(8e3).optional()
102
+ }).strict();
103
+ var CommerceCheckout = CommerceOperation.extend({
104
+ source: z.enum(["listing", "offer"]),
105
+ sourceId: CommerceId,
106
+ sourceRevision: z.number().int().positive(),
107
+ destinationProjectId: CommerceId.nullable(),
108
+ acceptedTermsHash: CommerceHash
109
+ }).strict();
110
+ var CommerceProfileContent = z.object({
111
+ bio: z.string().max(2e3),
112
+ specialties: z.array(z.string().min(1).max(80)).max(12)
113
+ }).strict();
114
+ var WriteCommerceProfile = CommerceOperation.extend({
115
+ expectedRevision: z.number().int().nonnegative(),
116
+ content: CommerceProfileContent
117
+ }).strict();
118
+
119
+ // src/dataset-commerce-responses.ts
120
+ import { z as z2 } from "zod";
121
+ var Timestamp = z2.string().datetime({ offset: true });
122
+ var Address = z2.string().regex(/^0x[a-fA-F0-9]{40}$/);
123
+ var TransactionHash = z2.string().regex(/^0x[a-fA-F0-9]{64}$/);
124
+ var CommerceSampleSchema = z2.array(z2.object({ taskId: CommerceId, input: z2.unknown() }).strict()).max(10);
125
+ var CommerceCapturedReleaseSchema = z2.object({
126
+ id: CommerceId,
127
+ release: CommerceReleaseRef,
128
+ packageHash: CommerceHash,
129
+ sample: CommerceSampleSchema,
130
+ sampleHash: CommerceHash,
131
+ taskCount: z2.number().int().nonnegative(),
132
+ sizeBytes: z2.number().int().nonnegative()
133
+ }).strict();
134
+ var CommerceListingSchema = CommerceCapturedReleaseSchema.extend({
135
+ format: CommerceDatasetFormat,
136
+ revision: z2.number().int().positive(),
137
+ teamId: CommerceId,
138
+ sellerUserId: CommerceId,
139
+ releaseId: CommerceId,
140
+ state: z2.enum(["draft", "listed", "paused", "retired"]),
141
+ terms: ListingTerms,
142
+ termsHash: CommerceHash,
143
+ createdAt: Timestamp
144
+ }).strict();
145
+ var CommerceListingReceiptSchema = z2.object({
146
+ id: CommerceId,
147
+ revision: z2.number().int().positive(),
148
+ releaseId: CommerceId,
149
+ state: z2.enum(["draft", "listed", "paused", "retired"]),
150
+ terms: ListingTerms,
151
+ termsHash: CommerceHash,
152
+ payee: Address
153
+ }).strict();
154
+ var CommerceListingsPageSchema = z2.object({
155
+ items: z2.array(CommerceListingSchema).max(50),
156
+ cursor: CommerceCursor.nullable()
157
+ }).strict();
158
+ var CommerceInventorySchema = z2.object({
159
+ releases: z2.array(
160
+ CommerceCapturedReleaseSchema.omit({
161
+ sizeBytes: true,
162
+ sample: true
163
+ }).extend({
164
+ tasksetId: CommerceId,
165
+ title: z2.string()
166
+ })
167
+ ).max(100),
168
+ listings: z2.array(CommerceListingSchema.omit({ sample: true })).max(100)
169
+ }).strict();
170
+ var CommerceOrderSchema = z2.object({
171
+ id: CommerceId,
172
+ buyerUserId: CommerceId,
173
+ buyerTeamId: CommerceId,
174
+ sellerUserId: CommerceId,
175
+ sellerTeamId: CommerceId,
176
+ source: z2.enum(["listing", "offer"]),
177
+ sourceId: CommerceId,
178
+ sourceRevision: z2.number().int().positive(),
179
+ releaseId: CommerceId,
180
+ termsHash: CommerceHash,
181
+ amountBaseUnits: UsdcAmount,
182
+ sender: Address,
183
+ payee: Address,
184
+ chainId: z2.literal(42161),
185
+ tokenAddress: Address,
186
+ authorizationNonce: TransactionHash,
187
+ issuedBlock: z2.string().regex(/^[0-9]+$/),
188
+ scannedBlock: z2.string().regex(/^[0-9]+$/).nullable(),
189
+ validAfter: Timestamp,
190
+ expiresAt: Timestamp,
191
+ destinationProjectId: CommerceId.nullable(),
192
+ state: z2.enum([
193
+ "awaiting_payment",
194
+ "confirming",
195
+ "paid",
196
+ "delivery_failed",
197
+ "delivered",
198
+ "expired"
199
+ ]),
200
+ transactionHash: TransactionHash.nullable(),
201
+ deliveryTasksetId: CommerceId.nullable(),
202
+ errorCode: z2.string().nullable(),
203
+ deliveryKind: z2.enum(["draft", "release"]).optional(),
204
+ deliveredAt: Timestamp.nullable(),
205
+ nextAttemptAt: Timestamp,
206
+ createdAt: Timestamp,
207
+ updatedAt: Timestamp
208
+ }).strict();
209
+ var CommercePaymentSubmissionSchema = z2.union([
210
+ z2.object({
211
+ orderId: CommerceId,
212
+ state: z2.enum(["awaiting_payment", "confirming"])
213
+ }).strict(),
214
+ CommerceOrderSchema
215
+ ]);
216
+ var CommerceRequestSchema = z2.object({
217
+ id: CommerceId,
218
+ buyerUserId: CommerceId,
219
+ revision: z2.number().int().positive(),
220
+ state: z2.enum([
221
+ "draft",
222
+ "open",
223
+ "paused",
224
+ "closed",
225
+ "cancelled",
226
+ "fulfilled"
227
+ ]),
228
+ content: DatasetRequestContent,
229
+ createdAt: Timestamp
230
+ }).strict();
231
+ var CommerceRequestsPageSchema = z2.object({
232
+ items: z2.array(CommerceRequestSchema).max(50),
233
+ cursor: CommerceCursor.nullable()
234
+ }).strict();
235
+ var CommerceRequestReceiptSchema = CommerceRequestSchema.omit({
236
+ buyerUserId: true,
237
+ createdAt: true
238
+ });
239
+ var CommerceOwnedRequestSchema = CommerceRequestSchema.extend({
240
+ teamId: CommerceId,
241
+ selectedOrderId: CommerceId.nullable(),
242
+ updatedAt: Timestamp
243
+ }).strict();
244
+ var CommerceOfferSchema = z2.object({
245
+ id: CommerceId,
246
+ requestId: CommerceId,
247
+ requestTitle: z2.string(),
248
+ requestRevision: z2.number().int().positive(),
249
+ buyerUserId: CommerceId,
250
+ sellerUserId: CommerceId,
251
+ state: z2.enum([
252
+ "submitted",
253
+ "shortlisted",
254
+ "changes_requested",
255
+ "declined",
256
+ "withdrawn",
257
+ "selected",
258
+ "purchased",
259
+ "not_selected"
260
+ ]),
261
+ revision: z2.number().int().positive(),
262
+ updatedAt: Timestamp,
263
+ proposal: z2.object({
264
+ offerId: CommerceId,
265
+ revision: z2.number().int().positive(),
266
+ requestRevision: z2.number().int().positive(),
267
+ releaseId: CommerceId,
268
+ priceBaseUnits: UsdcAmount,
269
+ license: z2.string(),
270
+ explanation: z2.string(),
271
+ payee: Address,
272
+ termsHash: CommerceHash,
273
+ expiresAt: Timestamp,
274
+ createdAt: Timestamp
275
+ }).strict(),
276
+ release: CommerceReleaseRef,
277
+ taskCount: z2.number().int().nonnegative(),
278
+ sample: CommerceSampleSchema,
279
+ sampleHash: CommerceHash,
280
+ notes: z2.array(
281
+ z2.object({
282
+ id: CommerceId,
283
+ authorUserId: CommerceId,
284
+ body: z2.string(),
285
+ createdAt: Timestamp
286
+ }).strict()
287
+ ).max(1e3)
288
+ }).strict();
289
+ var CommerceOfferSummarySchema = CommerceOfferSchema.omit({
290
+ sample: true,
291
+ notes: true
292
+ });
293
+ var CommerceOfferDetailSchema = CommerceOfferSchema.extend({
294
+ notes: CommerceOfferSchema.shape.notes.max(20),
295
+ notesCursor: CommerceId.nullable(),
296
+ history: z2.array(CommerceOfferSchema.shape.proposal).max(20),
297
+ historyBefore: z2.number().int().positive().nullable(),
298
+ canReview: z2.boolean()
299
+ }).strict();
300
+ var CommerceOfferSubmissionSchema = z2.object({
301
+ id: CommerceId,
302
+ revision: z2.number().int().positive(),
303
+ state: z2.literal("submitted"),
304
+ termsHash: CommerceHash
305
+ }).strict();
306
+ var CommerceOfferReviewReceiptSchema = z2.object({
307
+ id: CommerceId,
308
+ revision: z2.number().int().positive(),
309
+ state: z2.enum([
310
+ "submitted",
311
+ "shortlisted",
312
+ "changes_requested",
313
+ "declined"
314
+ ])
315
+ }).strict();
316
+
317
+ // src/dataset-commerce-files.ts
318
+ var CommerceFileMetadataSchema = z3.object({
319
+ name: z3.string().min(1).max(160).regex(/^[a-zA-Z0-9][a-zA-Z0-9_. -]*$/).refine((name) => !name.includes("..")),
320
+ format: z3.enum(["csv", "jsonl", "parquet"]),
321
+ contentHash: CommerceHash,
322
+ sizeBytes: z3.number().int().positive().max(16 * 1024 * 1024)
323
+ }).strict();
324
+ var PrepareCommerceFileSchema = CommerceOperation.extend({
325
+ file: CommerceFileMetadataSchema
326
+ }).strict();
327
+ var CaptureCommerceFileSchema = z3.object({
328
+ uploadId: CommerceId,
329
+ capture: CommerceOperation.extend({
330
+ expectedHash: CommerceHash,
331
+ sampleTaskIds: z3.array(CommerceId).min(1).max(10),
332
+ approvedSample: z3.literal(true)
333
+ }).strict()
334
+ }).strict();
335
+ var CommerceFilePreviewSchema = CommerceFileMetadataSchema.extend({
336
+ rowCount: z3.number().int().nonnegative().max(1e7),
337
+ columns: z3.array(z3.string()).max(256),
338
+ rows: z3.array(z3.object({ taskId: CommerceId, input: z3.record(z3.string(), z3.unknown()) }).strict()).max(50)
339
+ }).strict();
340
+ var Ticket = z3.object({ uploadId: CommerceId, uploadUrl: z3.string().url(), expiresAt: z3.string().datetime() }).strict();
341
+ var OpenPondCommerceFiles = class {
342
+ constructor(request, fetcher) {
343
+ this.request = request;
344
+ this.fetcher = fetcher;
345
+ }
346
+ request;
347
+ fetcher;
348
+ async prepare(input, options = {}) {
349
+ const value = PrepareCommerceFileSchema.parse(input);
350
+ if (!value.file.name.toLowerCase().endsWith(`.${value.file.format}`))
351
+ throw new Error("Filename must match the dataset format.");
352
+ const result = Ticket.parse(await this.request("/prepare-file", options, value));
353
+ const url = new URL(result.uploadUrl);
354
+ if (result.uploadId !== value.operationId || url.protocol !== "https:" || url.username || url.password || new Date(result.expiresAt).getTime() <= Date.now())
355
+ throw new Error("Dataset upload ticket does not match this operation.");
356
+ return result;
357
+ }
358
+ async preview(uploadId, options = {}) {
359
+ return CommerceFilePreviewSchema.parse(
360
+ await this.request("/preview-file", options, { uploadId: CommerceId.parse(uploadId) })
361
+ );
362
+ }
363
+ async capture(input, options = {}) {
364
+ const value = CaptureCommerceFileSchema.parse(input);
365
+ const result = CommerceCapturedReleaseSchema.parse(
366
+ await this.request("/capture-file", options, value)
367
+ );
368
+ if (result.packageHash !== value.capture.expectedHash || result.sample.length !== new Set(value.capture.sampleTaskIds).size || result.sample.some((row) => !value.capture.sampleTaskIds.includes(row.taskId)))
369
+ throw new Error("Captured file does not match the approved preview.");
370
+ return result;
371
+ }
372
+ async upload(input, options = {}) {
373
+ const bytes = Uint8Array.from(input.bytes);
374
+ if (!bytes.length || bytes.length > 16 * 1024 * 1024)
375
+ throw new Error("Choose a nonempty dataset file up to 16 MiB.");
376
+ const hash = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
377
+ const contentHash = Array.from(hash, (byte) => byte.toString(16).padStart(2, "0")).join("");
378
+ const file = { name: input.name, format: input.format, contentHash, sizeBytes: bytes.length };
379
+ const ticket = await this.prepare({ operationId: input.operationId, file }, options);
380
+ const response = await this.fetcher(ticket.uploadUrl, {
381
+ method: "PUT",
382
+ body: bytes,
383
+ headers: { "Content-Type": "application/octet-stream" },
384
+ redirect: "error",
385
+ credentials: "omit",
386
+ signal: options.signal
387
+ });
388
+ if (!response.ok)
389
+ throw new Error(
390
+ `Private dataset upload failed (${response.status}). Retry with the same operation ID.`
391
+ );
392
+ const preview = await this.preview(ticket.uploadId, options);
393
+ if (preview.contentHash !== contentHash || preview.sizeBytes !== bytes.length || preview.name !== input.name || preview.format !== input.format)
394
+ throw new Error("Uploaded dataset preview does not match the supplied file.");
395
+ return { uploadId: ticket.uploadId, preview };
396
+ }
397
+ };
398
+
399
+ // src/dataset-commerce.ts
400
+ import { z as z4 } from "zod";
401
+ var OpenPondDatasetCommerceError = class extends Error {
402
+ constructor(status, code, message) {
403
+ super(message);
404
+ this.status = status;
405
+ this.code = code;
406
+ this.name = "OpenPondDatasetCommerceError";
407
+ }
408
+ status;
409
+ code;
410
+ };
411
+ var OpenPondDatasetCommerceClient = class {
412
+ #options;
413
+ files;
414
+ constructor(options) {
415
+ const url = new URL(options.baseUrl);
416
+ if (!["https:", "http:"].includes(url.protocol) || url.username || url.password || url.search || url.hash)
417
+ throw new Error(
418
+ "Dataset commerce base URL must be an HTTP(S) endpoint without credentials, query, or fragment."
419
+ );
420
+ this.#options = { ...options, baseUrl: url.toString().replace(/\/+$/, "") };
421
+ this.files = new OpenPondCommerceFiles(
422
+ (path, requestOptions, input) => this.#request(path, requestOptions, input),
423
+ options.fetch ?? globalThis.fetch
424
+ );
425
+ }
426
+ async browse(query = {}, options = {}) {
427
+ const input = CommerceBrowse.parse(query), search = new URLSearchParams();
428
+ for (const [key, value] of Object.entries(input))
429
+ if (value !== void 0) search.set(key, String(value));
430
+ const result = CommerceListingsPageSchema.parse(
431
+ await this.#request(`/listings?${search}`, options)
432
+ );
433
+ if (result.items.length > input.limit || result.items.some(
434
+ (item) => item.state !== "listed" || input.category && item.terms.category !== input.category || input.format && item.format !== input.format || input.license && !item.terms.license.toLowerCase().includes(input.license.toLowerCase()) || input.minPriceBaseUnits && BigInt(item.terms.priceBaseUnits) < BigInt(input.minPriceBaseUnits) || input.maxPriceBaseUnits && BigInt(item.terms.priceBaseUnits) > BigInt(input.maxPriceBaseUnits)
435
+ ))
436
+ this.#mismatch();
437
+ return result;
438
+ }
439
+ async listing(id, options = {}) {
440
+ CommerceId.parse(id);
441
+ const result = CommerceListingSchema.parse(
442
+ await this.#request(`/listings/${encodeURIComponent(id)}`, options)
443
+ );
444
+ if (result.id !== id) this.#mismatch();
445
+ return result;
446
+ }
447
+ async inventory(options = {}) {
448
+ const result = CommerceInventorySchema.parse(
449
+ await this.#request("/inventory", options, void 0, true)
450
+ );
451
+ if (result.listings.some((item) => item.teamId !== this.#options.teamId))
452
+ this.#mismatch();
453
+ return result;
454
+ }
455
+ async capture(input, options = {}) {
456
+ const request = CaptureCommerceRelease.parse(input);
457
+ const result = CommerceCapturedReleaseSchema.parse(
458
+ await this.#request("/capture", options, request)
459
+ );
460
+ if (result.packageHash !== request.packageHash || result.release.id !== request.release.id || result.release.revision !== request.release.revision || result.release.contentHash !== request.release.contentHash || result.sample.length !== new Set(request.sampleTaskIds).size || result.sample.some((item) => !request.sampleTaskIds.includes(item.taskId)))
461
+ this.#mismatch();
462
+ return result;
463
+ }
464
+ async writeListing(input, options = {}) {
465
+ const request = WriteCommerceListing.parse(input);
466
+ const result = CommerceListingReceiptSchema.parse(
467
+ await this.#request("/write-listing", options, request)
468
+ );
469
+ if (request.id && result.id !== request.id || result.revision !== request.expectedRevision + 1 || result.releaseId !== request.releaseId || result.state !== request.state || JSON.stringify(result.terms) !== JSON.stringify(request.terms))
470
+ this.#mismatch();
471
+ return result;
472
+ }
473
+ async checkout(input, options = {}) {
474
+ const request = CommerceCheckout.parse(input);
475
+ const result = CommerceOrderSchema.parse(
476
+ await this.#request("/checkout", options, request)
477
+ );
478
+ if (result.buyerTeamId !== this.#options.teamId || result.source !== request.source || result.sourceId !== request.sourceId || result.sourceRevision !== request.sourceRevision || result.termsHash !== request.acceptedTermsHash || result.destinationProjectId !== request.destinationProjectId)
479
+ this.#mismatch();
480
+ return result;
481
+ }
482
+ async order(id, options = {}) {
483
+ CommerceId.parse(id);
484
+ const result = CommerceOrderSchema.parse(
485
+ await this.#request(
486
+ `/order/${encodeURIComponent(id)}`,
487
+ options,
488
+ void 0,
489
+ true
490
+ )
491
+ );
492
+ if (result.id !== id || result.buyerTeamId !== this.#options.teamId && result.sellerTeamId !== this.#options.teamId)
493
+ this.#mismatch();
494
+ return result;
495
+ }
496
+ async download(id, options = {}) {
497
+ CommerceId.parse(id);
498
+ const result = z4.object({
499
+ orderId: CommerceId,
500
+ url: z4.string().url(),
501
+ expiresAt: z4.string().datetime(),
502
+ name: z4.string(),
503
+ format: z4.enum([
504
+ "csv",
505
+ "jsonl",
506
+ "parquet",
507
+ "openpond.datasetCatalogSnapshot.v1"
508
+ ]),
509
+ contentHash: z4.string().regex(/^[a-f0-9]{64}$/),
510
+ sizeBytes: z4.number().int().positive().max(128 * 1024 * 1024)
511
+ }).strict().parse(
512
+ await this.#request(
513
+ `/download/${encodeURIComponent(id)}`,
514
+ options,
515
+ void 0,
516
+ true
517
+ )
518
+ );
519
+ const url = new URL(result.url);
520
+ if (result.orderId !== id || url.protocol !== "https:" || url.username || url.password || new Date(result.expiresAt).getTime() <= Date.now())
521
+ this.#mismatch();
522
+ return result;
523
+ }
524
+ async retryDelivery(input, options = {}) {
525
+ const value = CommerceOperation.extend({ orderId: CommerceId }).strict().parse(input);
526
+ const result = z4.object({
527
+ orderId: CommerceId,
528
+ state: z4.enum(["paid", "delivery_failed", "delivered"])
529
+ }).strict().parse(await this.#request("/retry-delivery", options, value));
530
+ if (result.orderId !== value.orderId) this.#mismatch();
531
+ return result;
532
+ }
533
+ async purchases(options = {}) {
534
+ return this.#orders("purchases", options);
535
+ }
536
+ async sales(options = {}) {
537
+ return this.#orders("sales", options);
538
+ }
539
+ async submitPayment(input, options = {}) {
540
+ const request = CommerceOperation.extend({
541
+ orderId: CommerceId,
542
+ transactionHash: z4.string().regex(/^0x[a-fA-F0-9]{64}$/)
543
+ }).strict().parse(input);
544
+ const result = CommercePaymentSubmissionSchema.parse(
545
+ await this.#request("/submit-payment", options, request)
546
+ );
547
+ if (("orderId" in result ? result.orderId : result.id) !== request.orderId)
548
+ this.#mismatch();
549
+ return result;
550
+ }
551
+ async requests(query = {}, options = {}) {
552
+ const input = CommerceBrowse.parse(query), search = new URLSearchParams();
553
+ for (const [key, value] of Object.entries(input))
554
+ if (value !== void 0) search.set(key, String(value));
555
+ const result = CommerceRequestsPageSchema.parse(
556
+ await this.#request(`/requests?${search}`, options)
557
+ );
558
+ if (result.items.length > input.limit || result.items.some(
559
+ (item) => item.state !== "open" || item.content.projectId !== null || input.category && item.content.category !== input.category || input.format && !item.content.requirements.formats.includes(input.format) || input.license && !item.content.requirements.license.toLowerCase().includes(input.license.toLowerCase()) || input.minPriceBaseUnits && BigInt(item.content.budgetBaseUnits) < BigInt(input.minPriceBaseUnits) || input.maxPriceBaseUnits && BigInt(item.content.budgetBaseUnits) > BigInt(input.maxPriceBaseUnits)
560
+ ))
561
+ this.#mismatch();
562
+ return result;
563
+ }
564
+ async request(id, options = {}) {
565
+ CommerceId.parse(id);
566
+ const result = CommerceRequestSchema.parse(
567
+ await this.#request(`/requests/${encodeURIComponent(id)}`, options)
568
+ );
569
+ if (result.id !== id || result.content.projectId !== null) this.#mismatch();
570
+ return result;
571
+ }
572
+ async myRequests(options = {}) {
573
+ const result = z4.array(CommerceOwnedRequestSchema).max(100).parse(await this.#request("/my-requests", options, void 0, true));
574
+ if (result.some((item) => item.teamId !== this.#options.teamId))
575
+ this.#mismatch();
576
+ return result;
577
+ }
578
+ async writeRequest(input, options = {}) {
579
+ const request = WriteDatasetRequest.parse(input), result = CommerceRequestReceiptSchema.parse(
580
+ await this.#request("/write-request", options, request)
581
+ );
582
+ if (request.id && result.id !== request.id || result.revision !== request.expectedRevision + 1 || result.state !== request.state || JSON.stringify(result.content) !== JSON.stringify(request.content))
583
+ this.#mismatch();
584
+ return result;
585
+ }
586
+ async submitOffer(input, options = {}) {
587
+ const request = SubmitDatasetOffer.parse(input), result = CommerceOfferSubmissionSchema.parse(
588
+ await this.#request("/submit-offer", options, request)
589
+ );
590
+ if (result.revision !== request.expectedRevision + 1) this.#mismatch();
591
+ return result;
592
+ }
593
+ async offers(direction, options = {}) {
594
+ z4.enum(["sent", "received"]).parse(direction);
595
+ const result = z4.array(CommerceOfferSummarySchema).max(20).parse(
596
+ await this.#request(
597
+ `/${direction}-offers`,
598
+ options,
599
+ z4.object({
600
+ cursor: CommerceId.optional(),
601
+ limit: z4.number().int().min(1).max(20).optional()
602
+ }).parse({ cursor: options.cursor, limit: options.limit }),
603
+ true
604
+ )
605
+ );
606
+ if (result.some(
607
+ (item) => item.proposal.offerId !== item.id || item.proposal.revision !== item.revision
608
+ ))
609
+ this.#mismatch();
610
+ return result;
611
+ }
612
+ async offer(input, options = {}) {
613
+ const request = z4.object({
614
+ id: CommerceId,
615
+ notesCursor: CommerceId.nullable().optional(),
616
+ historyBefore: z4.number().int().positive().nullable().optional()
617
+ }).strict().parse(input);
618
+ const result = CommerceOfferDetailSchema.parse(
619
+ await this.#request("/offer", options, request, true)
620
+ );
621
+ if (result.id !== request.id || result.proposal.offerId !== result.id || result.proposal.revision !== result.revision || !result.canReview && result.notes.length)
622
+ this.#mismatch();
623
+ return result;
624
+ }
625
+ async reviewOffer(input, options = {}) {
626
+ const request = ReviewDatasetOffer.parse(input), result = CommerceOfferReviewReceiptSchema.parse(
627
+ await this.#request("/review-offer", options, request)
628
+ );
629
+ if (result.id !== request.id || result.revision !== request.expectedRevision || result.state !== request.state)
630
+ this.#mismatch();
631
+ return result;
632
+ }
633
+ async withdrawOffer(input, options = {}) {
634
+ const request = CommerceOperation.extend({
635
+ id: CommerceId,
636
+ expectedRevision: z4.number().int().positive(),
637
+ expectedUpdatedAt: z4.string().datetime()
638
+ }).strict().parse(input);
639
+ const result = z4.object({ id: CommerceId, state: z4.literal("withdrawn") }).strict().parse(await this.#request("/withdraw-offer", options, request));
640
+ if (result.id !== request.id) this.#mismatch();
641
+ return result;
642
+ }
643
+ async #orders(side, options) {
644
+ const result = z4.array(CommerceOrderSchema).max(100).parse(await this.#request(`/${side}`, options, void 0, true));
645
+ if (result.some(
646
+ (item) => (side === "purchases" ? item.buyerTeamId : item.sellerTeamId) !== this.#options.teamId
647
+ ))
648
+ this.#mismatch();
649
+ return result;
650
+ }
651
+ #mismatch() {
652
+ throw new OpenPondDatasetCommerceError(
653
+ 502,
654
+ "dataset_commerce_identity_mismatch",
655
+ "Dataset commerce response did not match the requested release, terms, or workspace."
656
+ );
657
+ }
658
+ async #request(path, options, body, authenticated = false) {
659
+ const auth = authenticated || body !== void 0 || Boolean(this.#options.apiKey && this.#options.teamId);
660
+ if (auth && (!this.#options.apiKey?.trim() || !this.#options.teamId?.trim()))
661
+ throw new Error(
662
+ "An API key and explicit workspace are required for this dataset commerce operation."
663
+ );
664
+ const response = await (this.#options.fetch ?? globalThis.fetch)(
665
+ `${this.#options.baseUrl}/v1/dataset-commerce${path}`,
666
+ {
667
+ method: body === void 0 ? "GET" : "POST",
668
+ signal: options.signal,
669
+ redirect: "error",
670
+ headers: {
671
+ Accept: "application/json",
672
+ ...auth ? {
673
+ Authorization: `Bearer ${this.#options.apiKey}`,
674
+ "X-OpenPond-Team-Id": this.#options.teamId
675
+ } : {},
676
+ ...body === void 0 ? {} : { "Content-Type": "application/json" }
677
+ },
678
+ ...body === void 0 ? {} : { body: JSON.stringify(body) }
679
+ }
680
+ );
681
+ const reader = response.body?.getReader();
682
+ if (!reader)
683
+ throw new OpenPondDatasetCommerceError(
684
+ response.status,
685
+ "empty_response",
686
+ "Dataset commerce response was empty."
687
+ );
688
+ const decoder = new TextDecoder();
689
+ let bytes = 0, text = "";
690
+ try {
691
+ while (true) {
692
+ const chunk = await reader.read();
693
+ if (chunk.done) break;
694
+ bytes += chunk.value.byteLength;
695
+ if (bytes > 4194304)
696
+ throw new OpenPondDatasetCommerceError(
697
+ response.status,
698
+ "response_too_large",
699
+ "Dataset commerce response exceeded 4 MiB."
700
+ );
701
+ text += decoder.decode(chunk.value, { stream: true });
702
+ }
703
+ text += decoder.decode();
704
+ } finally {
705
+ await reader.cancel();
706
+ reader.releaseLock();
707
+ }
708
+ let payload;
709
+ try {
710
+ payload = JSON.parse(text);
711
+ } catch {
712
+ throw new OpenPondDatasetCommerceError(
713
+ response.status,
714
+ "invalid_response",
715
+ "Dataset commerce response was not valid JSON."
716
+ );
717
+ }
718
+ if (!response.ok) {
719
+ const error = z4.object({ code: z4.string().min(1), message: z4.string().min(1) }).safeParse(payload);
720
+ throw new OpenPondDatasetCommerceError(
721
+ response.status,
722
+ error.success ? error.data.code : "invalid_error_response",
723
+ error.success ? error.data.message : `Dataset commerce request failed (${response.status}).`
724
+ );
725
+ }
726
+ return payload;
727
+ }
728
+ };
729
+ export {
730
+ CaptureCommerceFileSchema,
731
+ CaptureCommerceRelease,
732
+ CommerceBrowse,
733
+ CommerceCapturedReleaseSchema,
734
+ CommerceCheckout,
735
+ CommerceCursor,
736
+ CommerceDatasetFormat,
737
+ CommerceFileMetadataSchema,
738
+ CommerceFilePreviewSchema,
739
+ CommerceHash,
740
+ CommerceId,
741
+ CommerceInventorySchema,
742
+ CommerceListingReceiptSchema,
743
+ CommerceListingSchema,
744
+ CommerceListingsPageSchema,
745
+ CommerceOfferDetailSchema,
746
+ CommerceOfferReviewReceiptSchema,
747
+ CommerceOfferSchema,
748
+ CommerceOfferSubmissionSchema,
749
+ CommerceOfferSummarySchema,
750
+ CommerceOperation,
751
+ CommerceOrderSchema,
752
+ CommerceOwnedRequestSchema,
753
+ CommercePaymentSubmissionSchema,
754
+ CommerceProfileContent,
755
+ CommerceReleaseRef,
756
+ CommerceRequestReceiptSchema,
757
+ CommerceRequestSchema,
758
+ CommerceRequestsPageSchema,
759
+ CommerceSampleSchema,
760
+ DatasetRequestContent,
761
+ ListingTerms,
762
+ OpenPondCommerceFiles,
763
+ OpenPondDatasetCommerceClient,
764
+ OpenPondDatasetCommerceError,
765
+ PrepareCommerceFileSchema,
766
+ ReviewDatasetOffer,
767
+ SubmitDatasetOffer,
768
+ UsdcAmount,
769
+ WriteCommerceListing,
770
+ WriteCommerceProfile,
771
+ WriteDatasetRequest
772
+ };
773
+ //# sourceMappingURL=dataset-commerce.js.map