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,37 @@
1
+ import {
2
+ fetchConnectedJson
3
+ } from "./chunk-T4APHDES.js";
4
+
5
+ // src/evaluation-coordination-http.ts
6
+ import { z } from "zod";
7
+ var EvaluationCoordinationTransport = class {
8
+ constructor(access) {
9
+ this.access = access;
10
+ const url = new URL(access.baseUrl);
11
+ if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !access.apiKey.trim() || !access.actorId.trim() || !access.teamId.trim()) throw new Error("Select the current evaluation owner and HTTP API origin.");
12
+ this.origin = url.toString().replace(/\/+$/, "");
13
+ }
14
+ access;
15
+ origin;
16
+ async post(path, request, signal) {
17
+ const body = JSON.stringify({ teamId: this.access.teamId, projectId: this.access.projectId, request });
18
+ if (new TextEncoder().encode(body).byteLength > 1048576) throw new Error("The reviewed evaluation command exceeds 1 MiB.");
19
+ const { response, value } = await fetchConnectedJson(this.access.fetch ?? fetch, `${this.origin}/v1/${path}`, {
20
+ method: "POST",
21
+ redirect: "error",
22
+ headers: { Authorization: `Bearer ${this.access.apiKey}`, "X-OpenPond-Team-Id": this.access.teamId, "Content-Type": "application/json" },
23
+ body,
24
+ signal
25
+ }, (status, code, message) => Object.assign(new Error(message), { status, code }));
26
+ if (!response.ok) {
27
+ const error = z.object({ error: z.string().optional(), message: z.string().optional(), code: z.string().optional() }).passthrough().safeParse(value);
28
+ throw Object.assign(new Error(error.success ? error.data.error ?? error.data.message ?? "Evaluation operation failed." : "Evaluation operation failed."), { status: response.status, code: error.success ? error.data.code : void 0 });
29
+ }
30
+ return value;
31
+ }
32
+ };
33
+
34
+ export {
35
+ EvaluationCoordinationTransport
36
+ };
37
+ //# sourceMappingURL=chunk-YCQVVFE5.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/evaluation-coordination-http.ts"],
4
+ "sourcesContent": ["import {z} from \"zod\";\nimport {fetchConnectedJson} from \"./connected-evidence-http.js\";\nexport type EvaluationCoordinationAccess={baseUrl:string;apiKey:string;actorId:string;teamId:string;projectId:string|null;fetch?:typeof fetch};\n/** Bounded authenticated transport for the current evaluation owner. There is\n * no retry or operation allocation here; commands retain their reviewed IDs. */\nexport class EvaluationCoordinationTransport {\n readonly origin:string;\n constructor(readonly access:EvaluationCoordinationAccess){\n const url=new URL(access.baseUrl);\n if(![\"http:\",\"https:\"].includes(url.protocol)||url.username||url.password||url.search||url.hash||!access.apiKey.trim()||!access.actorId.trim()||!access.teamId.trim())throw new Error(\"Select the current evaluation owner and HTTP API origin.\");\n this.origin=url.toString().replace(/\\/+$/,\"\");\n }\n async post(path:\"experiment-evaluation-schedules\"|\"advanced-refiner-evaluations\",request:unknown,signal?:AbortSignal){\n const body=JSON.stringify({teamId:this.access.teamId,projectId:this.access.projectId,request});\n if(new TextEncoder().encode(body).byteLength>1_048_576)throw new Error(\"The reviewed evaluation command exceeds 1 MiB.\");\n const {response,value}=await fetchConnectedJson(this.access.fetch??fetch,`${this.origin}/v1/${path}`,{\n method:\"POST\",redirect:\"error\",headers:{Authorization:`Bearer ${this.access.apiKey}`,\"X-OpenPond-Team-Id\":this.access.teamId,\"Content-Type\":\"application/json\"},body,signal,\n },(status,code,message)=>Object.assign(new Error(message),{status,code}));\n if(!response.ok){const error=z.object({error:z.string().optional(),message:z.string().optional(),code:z.string().optional()}).passthrough().safeParse(value);throw Object.assign(new Error(error.success?error.data.error??error.data.message??\"Evaluation operation failed.\":\"Evaluation operation failed.\"),{status:response.status,code:error.success?error.data.code:undefined});}\n return value;\n }\n}\n"],
5
+ "mappings": ";;;;;AAAA,SAAQ,SAAQ;AAKT,IAAM,kCAAN,MAAsC;AAAA,EAE3C,YAAqB,QAAoC;AAApC;AACnB,UAAM,MAAI,IAAI,IAAI,OAAO,OAAO;AAChC,QAAG,CAAC,CAAC,SAAQ,QAAQ,EAAE,SAAS,IAAI,QAAQ,KAAG,IAAI,YAAU,IAAI,YAAU,IAAI,UAAQ,IAAI,QAAM,CAAC,OAAO,OAAO,KAAK,KAAG,CAAC,OAAO,QAAQ,KAAK,KAAG,CAAC,OAAO,OAAO,KAAK,EAAE,OAAM,IAAI,MAAM,0DAA0D;AAChP,SAAK,SAAO,IAAI,SAAS,EAAE,QAAQ,QAAO,EAAE;AAAA,EAC9C;AAAA,EAJqB;AAAA,EADZ;AAAA,EAMT,MAAM,KAAK,MAAsE,SAAgB,QAAoB;AACnH,UAAM,OAAK,KAAK,UAAU,EAAC,QAAO,KAAK,OAAO,QAAO,WAAU,KAAK,OAAO,WAAU,QAAO,CAAC;AAC7F,QAAG,IAAI,YAAY,EAAE,OAAO,IAAI,EAAE,aAAW,QAAU,OAAM,IAAI,MAAM,gDAAgD;AACvH,UAAM,EAAC,UAAS,MAAK,IAAE,MAAM,mBAAmB,KAAK,OAAO,SAAO,OAAM,GAAG,KAAK,MAAM,OAAO,IAAI,IAAG;AAAA,MACnG,QAAO;AAAA,MAAO,UAAS;AAAA,MAAQ,SAAQ,EAAC,eAAc,UAAU,KAAK,OAAO,MAAM,IAAG,sBAAqB,KAAK,OAAO,QAAO,gBAAe,mBAAkB;AAAA,MAAE;AAAA,MAAK;AAAA,IACvK,GAAE,CAAC,QAAO,MAAK,YAAU,OAAO,OAAO,IAAI,MAAM,OAAO,GAAE,EAAC,QAAO,KAAI,CAAC,CAAC;AACxE,QAAG,CAAC,SAAS,IAAG;AAAC,YAAM,QAAM,EAAE,OAAO,EAAC,OAAM,EAAE,OAAO,EAAE,SAAS,GAAE,SAAQ,EAAE,OAAO,EAAE,SAAS,GAAE,MAAK,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC,EAAE,YAAY,EAAE,UAAU,KAAK;AAAE,YAAM,OAAO,OAAO,IAAI,MAAM,MAAM,UAAQ,MAAM,KAAK,SAAO,MAAM,KAAK,WAAS,iCAA+B,8BAA8B,GAAE,EAAC,QAAO,SAAS,QAAO,MAAK,MAAM,UAAQ,MAAM,KAAK,OAAK,OAAS,CAAC;AAAA,IAAE;AACrX,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,604 @@
1
+ import {
2
+ DatasetWorkspaceReceiptSchema
3
+ } from "./chunk-HKAR3VPB.js";
4
+ import {
5
+ fetchConnectedJson
6
+ } from "./chunk-T4APHDES.js";
7
+ import {
8
+ ImmutableReleaseRefSchema,
9
+ contentHash
10
+ } from "./chunk-QUOW6URQ.js";
11
+
12
+ // src/connected-evidence-contracts.ts
13
+ import { z } from "zod";
14
+ import { ConnectedSourceKindSchema, ConnectedBoundarySchema, ConnectedUsageSummarySchema, CONNECTED_EVIDENCE_LIMITS } from "@openpond/evals/connected-evidence";
15
+ var Id = z.string().trim().min(1).max(500);
16
+ var Hash = z.string().regex(/^[a-f0-9]{64}$/);
17
+ var ConnectedScopeSchema = z.object({ teamId: Id, ownerUserId: Id }).strict();
18
+ var ConnectedCaseRefSchema = z.object({ id: Id, snapshotHash: Hash, boundaryId: Id, boundaryRevisionHash: Hash }).strict();
19
+ var ConnectedSourceSummarySchema = z.object({
20
+ sourceId: Id,
21
+ source: ConnectedSourceKindSchema,
22
+ sessionId: Id,
23
+ snapshotHash: Hash,
24
+ title: z.string().max(500),
25
+ projectId: Id.nullable(),
26
+ capturedAt: z.string().datetime(),
27
+ boundaries: z.array(ConnectedBoundarySchema.omit({ start: true, end: true })).max(CONNECTED_EVIDENCE_LIMITS.boundaries)
28
+ }).strict();
29
+ var ConnectedCaptureRequestSchema = z.object({
30
+ operationId: Id,
31
+ conversationId: Id.optional(),
32
+ cursor: Id.optional(),
33
+ limit: z.number().int().min(1).max(50).default(20)
34
+ }).strict();
35
+ var AgentImportUploadRefSchema = z.object({ hash: Hash, parts: z.number().int().min(1).max(1500) }).strict();
36
+ var AgentImportUploadPartSchema = AgentImportUploadRefSchema.extend({ index: z.number().int().nonnegative().max(1499), base64: z.string().max(35e4) }).strict();
37
+ var AgentImportFileSchema = z.object({ path: z.string().min(1).max(500), encoding: z.enum(["utf8", "zstd"]), base64: z.string() }).strict();
38
+ var AgentImportPreviewRequestSchema = z.object({
39
+ upload: AgentImportUploadRefSchema,
40
+ source: z.enum(["codex", "claude_code", "hermes", "openclaw", "opencode", "grok_build", "pi", "oh_my_pi"]),
41
+ branchLeafId: Id.optional(),
42
+ acquisition: z.object({ machineId: Id, sourceInstanceId: Id }).strict().optional(),
43
+ destination: z.discriminatedUnion("kind", [
44
+ z.object({ kind: z.literal("existing"), projectId: Id }).strict(),
45
+ z.object({ kind: z.literal("new"), name: z.string().trim().min(1).max(200) }).strict()
46
+ ])
47
+ }).strict();
48
+ var AgentImportCommitRequestSchema = AgentImportPreviewRequestSchema.extend({
49
+ operationId: Id,
50
+ previewHash: Hash,
51
+ selection: z.array(z.object({ sessionHash: Hash, boundaryIds: z.array(Id).min(1).max(CONNECTED_EVIDENCE_LIMITS.boundaries) }).strict()).min(1).max(CONNECTED_EVIDENCE_LIMITS.sessions)
52
+ }).strict();
53
+ var ConnectedHomeQuerySchema = z.object({ from: z.string().datetime(), to: z.string().datetime(), projectId: Id.optional() }).strict();
54
+ var ConnectedHomeSummarySchema = z.object({
55
+ teamId: Id,
56
+ range: ConnectedHomeQuerySchema,
57
+ activity: z.object({ conversations: z.number().int().nonnegative(), turns: z.number().int().nonnegative(), chatTurns: z.number().int().nonnegative(), workTurns: z.number().int().nonnegative() }).strict(),
58
+ accounting: z.object({ contextSnapshots: z.number().int().nonnegative() }).strict(),
59
+ usage: ConnectedUsageSummarySchema
60
+ }).strict();
61
+
62
+ // src/connected-recorded-execution.ts
63
+ import { z as z2 } from "zod";
64
+ import { ExperimentManifestSchema } from "@openpond/evals/experiments";
65
+ import { TaskRecordSchema } from "@openpond/evals/tasksets";
66
+ var Id2 = z2.string().min(1).max(200);
67
+ var Hash2 = z2.string().regex(/^[a-f0-9]{64}$/);
68
+ var ConnectedRecordedExecutionRequestSchema = z2.object({
69
+ operationId: Id2,
70
+ name: z2.string().trim().min(1).max(500),
71
+ projectId: Id2,
72
+ dataset: ImmutableReleaseRefSchema.extend({ revision: z2.number().int().positive() }).strict(),
73
+ caseIds: z2.array(Id2).min(1).max(1e4)
74
+ }).strict().superRefine((value, ctx) => {
75
+ if (new Set(value.caseIds).size !== value.caseIds.length) ctx.addIssue({ code: "custom", message: "Select each case once." });
76
+ });
77
+ var ConnectedRecordedSourceSchema = ConnectedCaseRefSchema.extend({
78
+ inputHash: Hash2,
79
+ outputHash: Hash2.nullable(),
80
+ task: TaskRecordSchema,
81
+ taskHash: Hash2
82
+ }).strict();
83
+ var ConnectedRecordedExecutionSchema = z2.object({
84
+ schemaVersion: z2.literal("openpond.connectedRecordedExecution.v1"),
85
+ id: Id2,
86
+ teamId: Id2,
87
+ ownerUserId: Id2,
88
+ request: ConnectedRecordedExecutionRequestSchema,
89
+ manifest: ExperimentManifestSchema,
90
+ sources: z2.array(ConnectedRecordedSourceSchema).min(1).max(1e4),
91
+ contentHash: Hash2
92
+ }).strict();
93
+ function verifyConnectedRecordedExecution(raw) {
94
+ const value = ConnectedRecordedExecutionSchema.parse(raw), { contentHash: actual, ...body } = value;
95
+ const { contentHash: manifestHash, ...manifest } = value.manifest;
96
+ if (contentHash(body) !== actual || contentHash(manifest) !== manifestHash || value.manifest.teamId !== value.teamId || value.manifest.id !== value.id || value.manifest.operationId !== value.request.operationId || contentHash(value.manifest.dataset) !== contentHash(value.request.dataset) || value.sources.length !== value.request.caseIds.length || value.sources.length !== value.manifest.population.length || value.sources.some((source, index) => source.taskHash !== contentHash(source.task) || source.task.id !== value.request.caseIds[index] || source.boundaryId !== source.task.id || value.manifest.population[index]?.caseId !== source.boundaryId))
97
+ throw new Error("Recorded execution identity or population integrity failed.");
98
+ return value;
99
+ }
100
+ var ConnectedRecordedListRequestSchema = z2.object({ projectId: Id2.optional(), cursor: Id2.optional(), limit: z2.number().int().min(1).max(50).default(20) }).strict();
101
+ var ConnectedRecordedSummarySchema = z2.object({
102
+ id: Id2,
103
+ teamId: Id2,
104
+ ownerUserId: Id2,
105
+ projectId: Id2,
106
+ name: z2.string().min(1).max(500),
107
+ dataset: ConnectedRecordedExecutionRequestSchema.shape.dataset,
108
+ manifestHash: Hash2,
109
+ contentHash: Hash2,
110
+ caseCount: z2.number().int().min(1).max(1e4),
111
+ createdAt: z2.string().datetime()
112
+ }).strict();
113
+ var ConnectedRecordedListSchema = z2.object({ teamId: Id2, items: z2.array(ConnectedRecordedSummarySchema).max(50), nextCursor: Id2.nullable() }).strict();
114
+
115
+ // src/connected-evidence-client.ts
116
+ import { z as z5 } from "zod";
117
+ import { ConnectedBoundarySchema as ConnectedBoundarySchema2, ConnectedEventSchema, ConnectedUsageSummarySchema as ConnectedUsageSummarySchema2 } from "@openpond/evals/connected-evidence";
118
+
119
+ // src/connected-dataset-publication.ts
120
+ import { z as z3 } from "zod";
121
+ import { RewardReleaseRefSchema } from "@openpond/evals/rewards";
122
+ var ConnectedDatasetPublicationSchema = z3.object({
123
+ datasetId: z3.string().trim().min(1).max(240),
124
+ expectedRevision: z3.number().int().positive(),
125
+ operationId: z3.string().trim().min(1).max(240),
126
+ graders: z3.array(RewardReleaseRefSchema).min(1).max(100).optional()
127
+ }).strict().superRefine((request, context) => {
128
+ if (request.graders && new Set(request.graders.map((ref) => ref.id)).size !== request.graders.length)
129
+ context.addIssue({ code: "custom", path: ["graders"], message: "Choose one exact revision of each grader." });
130
+ });
131
+
132
+ // src/connected-collection-status.ts
133
+ import { z as z4 } from "zod";
134
+ var Id3 = z4.string().min(1).max(500);
135
+ var Count = z4.number().int().nonnegative();
136
+ var ConnectedCollectionStatusSchema = z4.object({
137
+ teamId: Id3,
138
+ ownerUserId: Id3,
139
+ projectId: Id3.nullable(),
140
+ status: z4.enum(["active", "paused", "archived"]),
141
+ revision: Count,
142
+ state: z4.enum(["collecting", "pending", "attention", "paused", "archived"]),
143
+ lastReconciledAt: z4.string().datetime().nullable(),
144
+ lastCapturedAt: z4.string().datetime().nullable(),
145
+ historyDays: z4.number().int().positive(),
146
+ sources: Count,
147
+ tasks: Count,
148
+ datasets: z4.array(z4.object({
149
+ datasetId: Id3,
150
+ projection: z4.enum(["turn", "conversation"]),
151
+ revision: Count
152
+ }).strict()).max(2),
153
+ latestBatch: z4.object({
154
+ operationId: Id3,
155
+ updatedAt: z4.string().datetime(),
156
+ scanned: Count,
157
+ captured: Count,
158
+ unchanged: Count,
159
+ pending: Count,
160
+ failed: Count,
161
+ excluded: Count,
162
+ paused: Count,
163
+ hasMore: z4.boolean()
164
+ }).strict().nullable()
165
+ }).strict();
166
+
167
+ // src/connected-evidence-client.ts
168
+ var Id4 = z5.string().min(1).max(500);
169
+ var Hash3 = z5.string().regex(/^[a-f0-9]{64}$/);
170
+ var ConnectedCollectionSchema = z5.object({ teamId: Id4, projectId: Id4.nullable(), status: z5.enum(["active", "paused", "archived"]), revision: z5.number().int().nonnegative() }).strict();
171
+ var ConnectedCaptureReceiptSchema = z5.object({
172
+ teamId: Id4,
173
+ operationId: Id4,
174
+ projectId: Id4.nullable(),
175
+ outcomes: z5.array(z5.object({
176
+ conversationId: Id4,
177
+ state: z5.enum(["captured", "unchanged", "pending", "paused", "excluded", "failed"]),
178
+ sourceId: Id4.optional(),
179
+ snapshotHash: Hash3.optional(),
180
+ reason: z5.string().optional()
181
+ }).strict()).max(50),
182
+ nextCursor: Id4.nullable()
183
+ }).strict();
184
+ var ConnectedCaseReadbackSchema = z5.object({
185
+ teamId: Id4,
186
+ ref: ConnectedCaseRefSchema,
187
+ origin: ConnectedSourceSummarySchema.shape.source,
188
+ sessionId: Id4,
189
+ projectId: Id4,
190
+ capturedAt: z5.string().datetime(),
191
+ unmappedEvidence: z5.object({ count: z5.number().int().nonnegative().max(1e5), contentHash: Hash3 }).strict(),
192
+ evidence: z5.object({ input: z5.array(ConnectedEventSchema), observed: z5.array(ConnectedEventSchema), answer: z5.json(), boundary: ConnectedBoundarySchema2 }).strict()
193
+ }).strict();
194
+ var ConnectedUnmappedEventsSchema = z5.object({
195
+ teamId: Id4,
196
+ sourceId: Id4,
197
+ snapshotHash: Hash3,
198
+ contentHash: Hash3,
199
+ count: z5.number().int().nonnegative(),
200
+ offset: z5.number().int().nonnegative(),
201
+ events: z5.array(ConnectedEventSchema).max(50),
202
+ nextOffset: z5.number().int().nonnegative().nullable()
203
+ }).strict();
204
+ var AgentImportPreviewSchema = z5.object({
205
+ teamId: Id4,
206
+ source: AgentImportPreviewRequestSchema.shape.source,
207
+ sourceHash: Hash3,
208
+ previewHash: Hash3,
209
+ destination: AgentImportPreviewRequestSchema.shape.destination,
210
+ issues: z5.array(z5.object({ file: z5.string(), message: z5.string() }).strict()).max(100),
211
+ sessions: z5.array(z5.object({
212
+ sessionHash: Hash3,
213
+ sessionId: Id4,
214
+ origin: ConnectedSourceSummarySchema.shape.source,
215
+ exporterVersion: z5.string().nullable(),
216
+ eventCount: z5.number().int().nonnegative(),
217
+ boundaries: z5.array(z5.object({
218
+ id: Id4,
219
+ projection: z5.enum(["turn", "conversation"]),
220
+ answer: z5.boolean(),
221
+ process: z5.enum(["retained", "partial", "absent"]),
222
+ terminal: z5.enum(["completed", "failed", "cancelled", "unknown"])
223
+ }).strict()).max(5001),
224
+ warnings: z5.array(z5.string()).max(100),
225
+ sample: z5.array(z5.object({ role: z5.enum(["user", "assistant", "system", "tool"]).nullable(), text: z5.string().max(4e3) }).strict()).max(3)
226
+ }).strict()).max(1e3)
227
+ }).strict();
228
+ var AgentImportReceiptSchema = z5.object({
229
+ teamId: Id4,
230
+ operationId: Id4,
231
+ requestHash: Hash3,
232
+ previewHash: Hash3,
233
+ projectId: Id4.optional(),
234
+ state: z5.enum(["admitting", "publishing", "completed", "failed"]),
235
+ outcomes: z5.array(z5.object({
236
+ sessionHash: Hash3,
237
+ sourceId: Id4,
238
+ status: z5.enum(["imported", "already_present"]),
239
+ datasets: z5.array(z5.object({ datasetId: Id4, revision: z5.number().int().positive(), changed: z5.boolean() }).strict()).max(2)
240
+ }).strict()).max(1e3),
241
+ error: z5.string().optional()
242
+ }).strict();
243
+ var ConnectedEvidenceError = class extends Error {
244
+ constructor(status, code, message) {
245
+ super(message);
246
+ this.status = status;
247
+ this.code = code;
248
+ this.name = "ConnectedEvidenceError";
249
+ }
250
+ status;
251
+ code;
252
+ };
253
+ var ConnectedEvidenceClient = class {
254
+ constructor(options) {
255
+ this.options = options;
256
+ const url = new URL(options.baseUrl);
257
+ if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash || !options.apiKey.trim() || !options.teamId.trim())
258
+ throw new Error("A clean API origin and workspace credentials are required.");
259
+ this.baseUrl = url.toString().replace(/\/+$/, "");
260
+ }
261
+ options;
262
+ baseUrl;
263
+ async capture(raw, signal) {
264
+ const request = ConnectedCaptureRequestSchema.parse(raw), result = ConnectedCaptureReceiptSchema.parse(await this.request("/capture", "POST", request, signal));
265
+ this.scope(result.teamId);
266
+ if (result.operationId !== request.operationId || result.outcomes.length > request.limit || request.conversationId && result.outcomes.some((item) => item.conversationId !== request.conversationId))
267
+ throw new Error("Capture receipt differs from its requested source or operation.");
268
+ return result;
269
+ }
270
+ async list(input = {}, signal) {
271
+ const query = z5.object({ projectId: Id4.optional(), cursor: Id4.optional(), limit: z5.number().int().min(1).max(50).default(20) }).strict().parse(input);
272
+ const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== void 0).map(([key, value]) => [key, String(value)]));
273
+ const page = z5.object({ teamId: Id4, items: z5.array(ConnectedSourceSummarySchema).max(50), nextCursor: Id4.nullable() }).strict().parse(await this.request(`?${params}`, "GET", void 0, signal));
274
+ this.scope(page.teamId);
275
+ if (page.items.length > query.limit || new Set(page.items.map((item) => item.sourceId)).size !== page.items.length || page.nextCursor !== null && page.nextCursor === query.cursor || query.projectId && page.items.some((item) => item.projectId !== query.projectId)) throw new Error("Connected source page differs from its requested scope.");
276
+ return page;
277
+ }
278
+ async read(raw, signal) {
279
+ const ref = ConnectedCaseRefSchema.parse(raw);
280
+ const result = ConnectedCaseReadbackSchema.parse(await this.request(`/${encodeURIComponent(ref.id)}/cases/${encodeURIComponent(ref.boundaryId)}?snapshotHash=${ref.snapshotHash}&revisionHash=${ref.boundaryRevisionHash}`, "GET", void 0, signal));
281
+ this.scope(result.teamId);
282
+ if (contentHash(result.ref) !== contentHash(ref) || result.evidence.boundary.id !== ref.boundaryId || result.evidence.boundary.revisionHash !== ref.boundaryRevisionHash || contentHash(result.evidence.input) !== result.evidence.boundary.inputHash || contentHash(result.evidence.observed) !== ref.boundaryRevisionHash || result.evidence.boundary.outputHash !== null && contentHash(result.evidence.answer) !== result.evidence.boundary.outputHash)
283
+ throw new Error("Connected case readback differs from its exact snapshot or cutoff.");
284
+ return result;
285
+ }
286
+ async setCollection(paused, signal) {
287
+ const result = ConnectedCollectionSchema.parse(await this.request("/collection", "PUT", z5.object({ paused: z5.boolean() }).strict().parse({ paused }), signal));
288
+ this.scope(result.teamId);
289
+ return result;
290
+ }
291
+ async collection(signal) {
292
+ const result = ConnectedCollectionSchema.parse(await this.request("/collection", "GET", void 0, signal));
293
+ this.scope(result.teamId);
294
+ return result;
295
+ }
296
+ async collectionStatus(signal) {
297
+ const result = ConnectedCollectionStatusSchema.parse(await this.request("/collection/status", "GET", void 0, signal));
298
+ this.scope(result.teamId);
299
+ return result;
300
+ }
301
+ async unmappedEvents(input, signal) {
302
+ const request = z5.object({ id: Id4, snapshotHash: Hash3, contentHash: Hash3, offset: z5.number().int().nonnegative().default(0), limit: z5.number().int().min(1).max(50).default(20) }).strict().parse(input);
303
+ const result = ConnectedUnmappedEventsSchema.parse(await this.request(`/${encodeURIComponent(request.id)}/unmapped-events?snapshotHash=${request.snapshotHash}&offset=${request.offset}&limit=${request.limit}`, "GET", void 0, signal));
304
+ this.scope(result.teamId);
305
+ if (result.sourceId !== request.id || result.snapshotHash !== request.snapshotHash || result.contentHash !== request.contentHash || result.offset !== request.offset || result.events.length > request.limit || result.events.some((event, index) => event.sequence !== request.offset + index) || result.nextOffset !== null && result.nextOffset !== request.offset + result.events.length) throw new Error("Unmapped source event page differs from its pinned snapshot.");
306
+ return result;
307
+ }
308
+ async homeSummary(raw, signal) {
309
+ const querySchema = z5.object({ from: z5.string().datetime(), to: z5.string().datetime(), projectId: Id4.optional() }).strict(), query = querySchema.parse(raw);
310
+ const params = new URLSearchParams(Object.entries(query));
311
+ const result = z5.object({ teamId: Id4, range: querySchema, activity: z5.object({
312
+ conversations: z5.number().int().nonnegative(),
313
+ turns: z5.number().int().nonnegative(),
314
+ chatTurns: z5.number().int().nonnegative(),
315
+ workTurns: z5.number().int().nonnegative()
316
+ }).strict(), accounting: z5.object({ contextSnapshots: z5.number().int().nonnegative() }).strict(), usage: ConnectedUsageSummarySchema2 }).strict().parse(await this.request(`/summary?${params}`, "GET", void 0, signal));
317
+ this.scope(result.teamId);
318
+ if (contentHash(result.range) !== contentHash(query) || result.activity.chatTurns + result.activity.workTurns !== result.activity.turns) throw new Error("Activity summary differs from its requested range.");
319
+ for (const groups of [result.usage.days, result.usage.modes, result.usage.models]) {
320
+ if (new Set(groups.map((row) => row.key)).size !== groups.length) throw new Error("Duplicate usage summary group.");
321
+ for (const key of Object.keys(result.usage.total))
322
+ if (groups.reduce((sum, row) => sum + row[key], 0) !== result.usage.total[key]) throw new Error("Usage totals differ from their displayed groups.");
323
+ }
324
+ return result;
325
+ }
326
+ async uploadPart(raw, signal) {
327
+ const body = AgentImportUploadPartSchema.parse(raw), result = z5.object({ teamId: Id4, hash: Hash3, parts: z5.number().int(), index: z5.number().int() }).strict().parse(await this.request("/imports/upload", "POST", body, signal));
328
+ this.scope(result.teamId);
329
+ if (result.hash !== body.hash || result.parts !== body.parts || result.index !== body.index) throw new Error("Upload receipt differs from its part identity.");
330
+ return result;
331
+ }
332
+ async preview(raw, signal) {
333
+ const request = AgentImportPreviewRequestSchema.parse(raw), result = AgentImportPreviewSchema.parse(await this.request("/imports/preview", "POST", request, signal));
334
+ this.scope(result.teamId);
335
+ if (result.source !== request.source || contentHash(result.destination) !== contentHash(request.destination) || result.sessions.some((session) => session.origin !== request.source) || new Set(result.sessions.map((session) => session.sessionHash)).size !== result.sessions.length) throw new Error("Import preview differs from its source or destination.");
336
+ return result;
337
+ }
338
+ async commit(raw, signal) {
339
+ const request = AgentImportCommitRequestSchema.parse(raw), result = AgentImportReceiptSchema.parse(await this.request("/imports/commit", "POST", request, signal));
340
+ this.scope(result.teamId);
341
+ if (result.operationId !== request.operationId || result.previewHash !== request.previewHash || result.requestHash !== contentHash(request) || result.outcomes.some((item) => !request.selection.some((selection) => selection.sessionHash === item.sessionHash)) || result.state === "completed" && result.outcomes.length !== request.selection.length) throw new Error("Import receipt differs from its exact selection or operation.");
342
+ return result;
343
+ }
344
+ async readImport(operationId, signal) {
345
+ const id = Id4.parse(operationId), result = AgentImportReceiptSchema.parse(await this.request(`/imports/${encodeURIComponent(id)}`, "GET", void 0, signal));
346
+ this.scope(result.teamId);
347
+ if (result.operationId !== id) throw new Error("Import identity mismatch.");
348
+ return result;
349
+ }
350
+ async prepareRecorded(raw, signal) {
351
+ const request = ConnectedRecordedExecutionRequestSchema.parse(raw), result = verifyConnectedRecordedExecution(await this.request("/recorded-executions", "POST", request, signal));
352
+ this.scope(result.teamId);
353
+ if (contentHash(result.request) !== contentHash(request)) throw new Error("Recorded admission differs from its selected Dataset/cases.");
354
+ return result;
355
+ }
356
+ async listRecordedExecutions(input = {}, signal) {
357
+ const query = ConnectedRecordedListRequestSchema.parse(input);
358
+ const params = new URLSearchParams(Object.entries(query).filter(([, value]) => value !== void 0).map(([key, value]) => [key, String(value)]));
359
+ const page = ConnectedRecordedListSchema.parse(await this.request(`/recorded-executions?${params}`, "GET", void 0, signal));
360
+ this.scope(page.teamId);
361
+ if (page.items.length > query.limit || page.items.some((row, index) => row.teamId !== page.teamId || query.projectId && row.projectId !== query.projectId || query.cursor && row.id <= query.cursor || index > 0 && row.id <= page.items[index - 1].id) || page.items.some((row) => row.ownerUserId !== page.items[0]?.ownerUserId) || page.nextCursor !== null && (query.cursor !== void 0 && page.nextCursor <= query.cursor || page.items.length > 0 && page.nextCursor < page.items.at(-1).id))
362
+ throw new Error("Recorded execution page differs from its requested scope or cursor.");
363
+ return page;
364
+ }
365
+ async recordedExecution(id, signal) {
366
+ const result = verifyConnectedRecordedExecution(await this.request(`/recorded-executions/${encodeURIComponent(Id4.parse(id))}`, "GET", void 0, signal));
367
+ this.scope(result.teamId);
368
+ if (result.id !== id) throw new Error("Recorded execution identity mismatch.");
369
+ return result;
370
+ }
371
+ async publishDataset(input, signal) {
372
+ const request = ConnectedDatasetPublicationSchema.parse(input);
373
+ const result = DatasetWorkspaceReceiptSchema.parse(await this.request("/datasets/publish", "POST", request, signal));
374
+ this.scope(result.teamId);
375
+ const frozen = result.workspace.draft.metadata.connectedPublication;
376
+ if (result.datasetId !== request.datasetId || !result.publication || !frozen || typeof frozen !== "object" || !("requestHash" in frozen) || frozen.requestHash !== contentHash(request)) throw new Error("Published Dataset identity or original selection mismatch.");
377
+ return result;
378
+ }
379
+ async createSelection(input, signal) {
380
+ const request = z5.object({ operationId: Id4.max(240), projectId: Id4.max(240), name: z5.string().trim().min(1).max(200), cases: z5.array(ConnectedCaseRefSchema).min(1).max(500) }).strict().parse(input);
381
+ const result = DatasetWorkspaceReceiptSchema.parse(await this.request("/datasets/selection", "POST", request, signal));
382
+ this.scope(result.teamId);
383
+ if (result.originProjectId !== request.projectId || result.workspace.draft.tasks.length !== request.cases.length || result.workspace.draft.tasks.some((task, index) => contentHash(task.input && typeof task.input === "object" && !Array.isArray(task.input) ? task.input.connectedEvidenceRef : null) !== contentHash(request.cases[index])))
384
+ throw new Error("Selected Dataset differs from its exact source population.");
385
+ return result;
386
+ }
387
+ scope(teamId) {
388
+ if (teamId !== this.options.teamId) throw new Error("Connected evidence workspace mismatch.");
389
+ }
390
+ async request(path, method, body, signal) {
391
+ const { response, value } = await fetchConnectedJson(this.options.fetch ?? fetch, `${this.baseUrl}/v1/connected-evidence${path}`, {
392
+ method,
393
+ signal,
394
+ redirect: "error",
395
+ headers: { Authorization: `Bearer ${this.options.apiKey}`, "X-OpenPond-Team-Id": this.options.teamId, "Content-Type": "application/json", Accept: "application/json" },
396
+ ...body === void 0 ? {} : { body: JSON.stringify(body) }
397
+ }, (status, code, message) => new ConnectedEvidenceError(status, code, message));
398
+ if (!response.ok) {
399
+ const error = z5.object({ code: z5.string(), message: z5.string() }).safeParse(value);
400
+ throw new ConnectedEvidenceError(response.status, error.success ? error.data.code : "connected_request_failed", error.success ? error.data.message : "Connected evidence request failed.");
401
+ }
402
+ return value;
403
+ }
404
+ };
405
+
406
+ // src/connected-sync.ts
407
+ import { z as z6 } from "zod";
408
+ var Id5 = z6.string().trim().min(1).max(240);
409
+ var ConnectedSyncRegistrationSchema = z6.object({
410
+ id: Id5,
411
+ source: AgentImportPreviewRequestSchema.shape.source,
412
+ machineId: Id5,
413
+ sourceInstanceId: Id5,
414
+ sourceLabel: z6.string().trim().min(1).max(200),
415
+ sourceRoot: z6.string().min(1).max(2e3),
416
+ destination: AgentImportPreviewRequestSchema.shape.destination,
417
+ since: z6.string().datetime().nullable(),
418
+ keepSyncing: z6.boolean(),
419
+ expectedRevision: z6.number().int().nonnegative()
420
+ }).strict();
421
+ var ConnectedSyncControlSchema = z6.object({
422
+ id: Id5,
423
+ expectedRevision: z6.number().int().positive(),
424
+ action: z6.enum(["pause", "resume", "disconnect"])
425
+ }).strict();
426
+ var ConnectedSyncRequestSchema = z6.object({
427
+ id: Id5,
428
+ operationId: Id5,
429
+ expectedRevision: z6.number().int().positive()
430
+ }).strict();
431
+ var ConnectedSyncHeartbeatSchema = z6.object({
432
+ id: Id5,
433
+ expectedRevision: z6.number().int().positive(),
434
+ pendingOperations: z6.number().int().min(0).max(1e4),
435
+ error: z6.string().max(500).nullable(),
436
+ completedSyncRevision: z6.number().int().nonnegative().default(0)
437
+ }).strict();
438
+ var ConnectedSyncConnectionSchema = z6.object({
439
+ teamId: Id5,
440
+ id: Id5,
441
+ revision: z6.number().int().positive(),
442
+ source: AgentImportPreviewRequestSchema.shape.source,
443
+ sourceLabel: z6.string(),
444
+ sourceRoot: z6.string(),
445
+ taskDatasetId: Id5.nullable(),
446
+ conversationDatasetId: Id5.nullable(),
447
+ machineId: Id5,
448
+ sourceInstanceId: Id5,
449
+ projectId: Id5,
450
+ datasetIds: z6.array(Id5).max(2),
451
+ since: z6.string().datetime().nullable(),
452
+ keepSyncing: z6.boolean(),
453
+ state: z6.enum(["active", "paused", "disconnected"]),
454
+ health: z6.enum(["online", "offline"]),
455
+ lastHeartbeatAt: z6.string().datetime().nullable(),
456
+ lastAdmissionAt: z6.string().datetime().nullable(),
457
+ pendingOperations: z6.number().int().nonnegative(),
458
+ admittedTasks: z6.number().int().nonnegative(),
459
+ error: z6.string().nullable(),
460
+ requestedSyncRevision: z6.number().int().nonnegative().default(0),
461
+ completedSyncRevision: z6.number().int().nonnegative().default(0),
462
+ syncRequestedAt: z6.string().datetime().nullable().default(null),
463
+ syncCompletedAt: z6.string().datetime().nullable().default(null)
464
+ }).strict().refine((value) => value.completedSyncRevision <= value.requestedSyncRevision && value.requestedSyncRevision <= value.revision, "Invalid sync acknowledgement generation.");
465
+ var ConnectedSyncCommitSchema = z6.object({
466
+ connectionId: Id5,
467
+ expectedRevision: z6.number().int().positive(),
468
+ request: AgentImportCommitRequestSchema
469
+ }).strict();
470
+ var ConnectedSyncClient = class {
471
+ constructor(options) {
472
+ this.options = options;
473
+ const url = new URL(options.baseUrl);
474
+ if (!["http:", "https:"].includes(url.protocol) || url.username || url.password || url.search || url.hash)
475
+ throw new Error("Invalid connected-sync API origin.");
476
+ }
477
+ options;
478
+ async list(signal) {
479
+ const result = z6.object({
480
+ teamId: Id5,
481
+ items: z6.array(ConnectedSyncConnectionSchema).max(100)
482
+ }).strict().parse(await this.request("", "GET", void 0, signal));
483
+ if (result.teamId !== this.options.teamId || result.items.some((item) => item.teamId !== result.teamId))
484
+ throw new Error("Sync workspace mismatch.");
485
+ return result;
486
+ }
487
+ async register(raw, signal) {
488
+ return this.connection(
489
+ await this.request(
490
+ "",
491
+ "POST",
492
+ ConnectedSyncRegistrationSchema.parse(raw),
493
+ signal
494
+ ),
495
+ raw.id
496
+ );
497
+ }
498
+ async control(raw, signal) {
499
+ return this.connection(
500
+ await this.request(
501
+ "/control",
502
+ "POST",
503
+ ConnectedSyncControlSchema.parse(raw),
504
+ signal
505
+ ),
506
+ raw.id
507
+ );
508
+ }
509
+ async heartbeat(raw, signal) {
510
+ return this.connection(
511
+ await this.request(
512
+ "/heartbeat",
513
+ "POST",
514
+ ConnectedSyncHeartbeatSchema.parse(raw),
515
+ signal
516
+ ),
517
+ raw.id
518
+ );
519
+ }
520
+ async requestSync(raw, signal) {
521
+ return this.connection(
522
+ await this.request("/sync-now", "POST", ConnectedSyncRequestSchema.parse(raw), signal),
523
+ raw.id
524
+ );
525
+ }
526
+ async commit(raw, signal) {
527
+ return this.request(
528
+ "/commit",
529
+ "POST",
530
+ ConnectedSyncCommitSchema.parse(raw),
531
+ signal
532
+ );
533
+ }
534
+ connection(raw, id) {
535
+ const result = ConnectedSyncConnectionSchema.parse(raw);
536
+ if (result.teamId !== this.options.teamId || result.id !== id)
537
+ throw new Error("Sync connection identity mismatch.");
538
+ return result;
539
+ }
540
+ async request(path, method, body, signal) {
541
+ const { response, value } = await fetchConnectedJson(
542
+ this.options.fetch ?? fetch,
543
+ `${this.options.baseUrl.replace(/\/+$/u, "")}/v1/connected-evidence/sync/connections${path}`,
544
+ {
545
+ method,
546
+ signal,
547
+ redirect: "error",
548
+ headers: {
549
+ Authorization: `Bearer ${this.options.apiKey}`,
550
+ "X-OpenPond-Team-Id": this.options.teamId,
551
+ "Content-Type": "application/json",
552
+ Accept: "application/json"
553
+ },
554
+ ...body === void 0 ? {} : { body: JSON.stringify(body) }
555
+ },
556
+ (_status, _code, message) => new Error(message)
557
+ );
558
+ if (!response.ok)
559
+ throw Object.assign(
560
+ new Error(`Sync request failed (${response.status}).`),
561
+ { status: response.status }
562
+ );
563
+ return value;
564
+ }
565
+ };
566
+
567
+ export {
568
+ ConnectedScopeSchema,
569
+ ConnectedCaseRefSchema,
570
+ ConnectedSourceSummarySchema,
571
+ ConnectedCaptureRequestSchema,
572
+ AgentImportUploadRefSchema,
573
+ AgentImportUploadPartSchema,
574
+ AgentImportFileSchema,
575
+ AgentImportPreviewRequestSchema,
576
+ AgentImportCommitRequestSchema,
577
+ ConnectedHomeQuerySchema,
578
+ ConnectedHomeSummarySchema,
579
+ ConnectedRecordedExecutionRequestSchema,
580
+ ConnectedRecordedSourceSchema,
581
+ ConnectedRecordedExecutionSchema,
582
+ verifyConnectedRecordedExecution,
583
+ ConnectedRecordedListRequestSchema,
584
+ ConnectedRecordedSummarySchema,
585
+ ConnectedRecordedListSchema,
586
+ ConnectedDatasetPublicationSchema,
587
+ ConnectedCollectionStatusSchema,
588
+ ConnectedCollectionSchema,
589
+ ConnectedCaptureReceiptSchema,
590
+ ConnectedCaseReadbackSchema,
591
+ ConnectedUnmappedEventsSchema,
592
+ AgentImportPreviewSchema,
593
+ AgentImportReceiptSchema,
594
+ ConnectedEvidenceError,
595
+ ConnectedEvidenceClient,
596
+ ConnectedSyncRegistrationSchema,
597
+ ConnectedSyncControlSchema,
598
+ ConnectedSyncRequestSchema,
599
+ ConnectedSyncHeartbeatSchema,
600
+ ConnectedSyncConnectionSchema,
601
+ ConnectedSyncCommitSchema,
602
+ ConnectedSyncClient
603
+ };
604
+ //# sourceMappingURL=chunk-YTGRET2L.js.map