openpond-sdk 0.11.5 → 0.12.0

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 (208) hide show
  1. package/TASKSETS.md +13 -0
  2. package/dist/advanced-refiner-evaluations.js +6 -6
  3. package/dist/candidate-evaluations.js +5 -5
  4. package/dist/{chunk-2G4WBMYI.js → chunk-32GJS7FV.js} +6 -6
  5. package/dist/{chunk-Z4OLAEPL.js → chunk-644E3NM2.js} +10 -3
  6. package/dist/chunk-644E3NM2.js.map +7 -0
  7. package/dist/{chunk-YGLTO26A.js → chunk-7L4NIEW2.js} +2 -2
  8. package/dist/{chunk-VEU3IXAQ.js → chunk-7MISLCN2.js} +2 -2
  9. package/dist/{chunk-WTHJ3H4M.js → chunk-7WUJBFCH.js} +2 -2
  10. package/dist/{chunk-PHETIB6R.js → chunk-AV5JV26B.js} +2 -2
  11. package/dist/{chunk-Z4JJS6KE.js → chunk-B7VYE7YQ.js} +2 -2
  12. package/dist/{chunk-AQGFJLIV.js → chunk-BDDT6VN6.js} +5 -5
  13. package/dist/{chunk-DUJXF7YI.js → chunk-CK3ONRRC.js} +71 -59
  14. package/dist/chunk-CK3ONRRC.js.map +7 -0
  15. package/dist/{chunk-PMBBNQ2J.js → chunk-D4WTE6ZA.js} +2 -2
  16. package/dist/{chunk-ZOXHSJWU.js → chunk-DBRRQASP.js} +2 -2
  17. package/dist/{chunk-FZH2M4G6.js → chunk-DG5CRENU.js} +2 -2
  18. package/dist/{chunk-P3BRSSRD.js → chunk-FWX7SH7Y.js} +307 -258
  19. package/dist/chunk-FWX7SH7Y.js.map +7 -0
  20. package/dist/chunk-FZYLRL7H.js +100 -0
  21. package/dist/chunk-FZYLRL7H.js.map +7 -0
  22. package/dist/{chunk-JOKRT4CK.js → chunk-KV6JXPQH.js} +5 -2
  23. package/dist/{chunk-JOKRT4CK.js.map → chunk-KV6JXPQH.js.map} +2 -2
  24. package/dist/{chunk-HAOPRFYQ.js → chunk-L5PQPAU6.js} +2 -2
  25. package/dist/{chunk-DUPHBKVV.js → chunk-LHRHB5EJ.js} +2 -2
  26. package/dist/{chunk-5GMY4TTF.js → chunk-OEPYLZXK.js} +2 -2
  27. package/dist/chunk-SVBV2VEK.js +181 -0
  28. package/dist/chunk-SVBV2VEK.js.map +7 -0
  29. package/dist/{chunk-XYVPLV6Z.js → chunk-TTAFUUHZ.js} +3 -3
  30. package/dist/{chunk-2DLFHAGW.js → chunk-UK2KWJIQ.js} +12 -9
  31. package/dist/{chunk-2DLFHAGW.js.map → chunk-UK2KWJIQ.js.map} +3 -3
  32. package/dist/{chunk-K2OH56BH.js → chunk-UVREOAMH.js} +3 -3
  33. package/dist/{chunk-LQ5Q35IF.js → chunk-WYGBGCRO.js} +7 -5
  34. package/dist/chunk-WYGBGCRO.js.map +7 -0
  35. package/dist/{chunk-FDHIL2CV.js → chunk-X6J3VVYC.js} +9 -6
  36. package/dist/{chunk-FDHIL2CV.js.map → chunk-X6J3VVYC.js.map} +2 -2
  37. package/dist/{chunk-PXNHL3SH.js → chunk-YRTA3G6O.js} +11 -4
  38. package/dist/chunk-YRTA3G6O.js.map +7 -0
  39. package/dist/{chunk-35OVUYPI.js → chunk-YSKUXQ2N.js} +3 -3
  40. package/dist/connected-evidence.js +51 -26
  41. package/dist/dataset-workspaces.js +1136 -34
  42. package/dist/dataset-workspaces.js.map +4 -4
  43. package/dist/experiment-evaluation-schedules.js +18 -18
  44. package/dist/experiment-improvements.js +7 -7
  45. package/dist/experiments.js +19 -17
  46. package/dist/index.js +60 -35
  47. package/dist/index.js.map +1 -1
  48. package/dist/model-starter-attempts.js +1 -1
  49. package/dist/model-starter-catalog.js +9 -9
  50. package/dist/model-starters.js +9 -9
  51. package/dist/model-taskset-runs.js +2 -2
  52. package/dist/post-training.js +5 -5
  53. package/dist/taskset-drafts.js +117 -72
  54. package/dist/taskset-drafts.js.map +4 -4
  55. package/dist/taskset-packages.js +15 -15
  56. package/dist/training-bundle.js +17 -13
  57. package/dist/training-bundle.js.map +2 -2
  58. package/dist/training.js +7 -7
  59. package/dist/types/packages/sdk/src/advanced-refiner-evaluations.d.ts +3 -3
  60. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts +24 -3
  61. package/dist/types/packages/sdk/src/candidate-evaluation-client.d.ts.map +1 -1
  62. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts +26 -2
  63. package/dist/types/packages/sdk/src/candidate-evaluations.d.ts.map +1 -1
  64. package/dist/types/packages/sdk/src/codex-experiment-runtime.d.ts +17 -0
  65. package/dist/types/packages/sdk/src/codex-experiment-runtime.d.ts.map +1 -0
  66. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts +1 -0
  67. package/dist/types/packages/sdk/src/connected-dataset-source.d.ts.map +1 -1
  68. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts +80 -9
  69. package/dist/types/packages/sdk/src/connected-evidence-client.d.ts.map +1 -1
  70. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts +3 -2
  71. package/dist/types/packages/sdk/src/connected-evidence-contracts.d.ts.map +1 -1
  72. package/dist/types/packages/sdk/src/connected-evidence.d.ts +3 -0
  73. package/dist/types/packages/sdk/src/connected-evidence.d.ts.map +1 -1
  74. package/dist/types/packages/sdk/src/connected-starting-assets.d.ts +98 -0
  75. package/dist/types/packages/sdk/src/connected-starting-assets.d.ts.map +1 -0
  76. package/dist/types/packages/sdk/src/connected-sync.d.ts +138 -8
  77. package/dist/types/packages/sdk/src/connected-sync.d.ts.map +1 -1
  78. package/dist/types/packages/sdk/src/dataset-preparation-assembly.d.ts +11 -0
  79. package/dist/types/packages/sdk/src/dataset-preparation-assembly.d.ts.map +1 -0
  80. package/dist/types/packages/sdk/src/dataset-preparation-authoring-contracts.d.ts +1357 -0
  81. package/dist/types/packages/sdk/src/dataset-preparation-authoring-contracts.d.ts.map +1 -0
  82. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts +831 -0
  83. package/dist/types/packages/sdk/src/dataset-preparation-client.d.ts.map +1 -0
  84. package/dist/types/packages/sdk/src/dataset-preparation-contracts.d.ts +860 -0
  85. package/dist/types/packages/sdk/src/dataset-preparation-contracts.d.ts.map +1 -0
  86. package/dist/types/packages/sdk/src/dataset-preparation-qualification-contracts.d.ts +89 -0
  87. package/dist/types/packages/sdk/src/dataset-preparation-qualification-contracts.d.ts.map +1 -0
  88. package/dist/types/packages/sdk/src/dataset-preparation-research-contracts.d.ts +203 -0
  89. package/dist/types/packages/sdk/src/dataset-preparation-research-contracts.d.ts.map +1 -0
  90. package/dist/types/packages/sdk/src/dataset-preparation-starting-state.d.ts +76 -0
  91. package/dist/types/packages/sdk/src/dataset-preparation-starting-state.d.ts.map +1 -0
  92. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts +630 -0
  93. package/dist/types/packages/sdk/src/dataset-preparation-workspace.d.ts.map +1 -0
  94. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts +58 -14
  95. package/dist/types/packages/sdk/src/dataset-workspace-client.d.ts.map +1 -1
  96. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts +12 -0
  97. package/dist/types/packages/sdk/src/dataset-workspace-contracts.d.ts.map +1 -1
  98. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts +12 -0
  99. package/dist/types/packages/sdk/src/dataset-workspace-operations.d.ts.map +1 -1
  100. package/dist/types/packages/sdk/src/dataset-workspaces.d.ts +7 -0
  101. package/dist/types/packages/sdk/src/dataset-workspaces.d.ts.map +1 -1
  102. package/dist/types/packages/sdk/src/experiment-client.d.ts +88 -11
  103. package/dist/types/packages/sdk/src/experiment-client.d.ts.map +1 -1
  104. package/dist/types/packages/sdk/src/experiment-contracts.d.ts +40 -4
  105. package/dist/types/packages/sdk/src/experiment-contracts.d.ts.map +1 -1
  106. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts +71 -7
  107. package/dist/types/packages/sdk/src/experiment-evaluation-schedules.d.ts.map +1 -1
  108. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts +13 -1
  109. package/dist/types/packages/sdk/src/experiment-run-contracts.d.ts.map +1 -1
  110. package/dist/types/packages/sdk/src/experiment-run-details.d.ts +60 -5
  111. package/dist/types/packages/sdk/src/experiment-run-details.d.ts.map +1 -1
  112. package/dist/types/packages/sdk/src/experiments.d.ts +1 -0
  113. package/dist/types/packages/sdk/src/experiments.d.ts.map +1 -1
  114. package/dist/types/packages/sdk/src/harness-experiment-policy.d.ts +1 -1
  115. package/dist/types/packages/sdk/src/learning-batch-assets.d.ts +1 -0
  116. package/dist/types/packages/sdk/src/learning-batch-assets.d.ts.map +1 -1
  117. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts +5 -0
  118. package/dist/types/packages/sdk/src/model-batch-review-contracts.d.ts.map +1 -1
  119. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts +1 -0
  120. package/dist/types/packages/sdk/src/model-batch-review-preparation.d.ts.map +1 -1
  121. package/dist/types/packages/sdk/src/model-batch-review.d.ts +7 -4
  122. package/dist/types/packages/sdk/src/model-batch-review.d.ts.map +1 -1
  123. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts +102 -4
  124. package/dist/types/packages/sdk/src/model-starter-attempts.d.ts.map +1 -1
  125. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts +9 -0
  126. package/dist/types/packages/sdk/src/model-starter-catalog.d.ts.map +1 -1
  127. package/dist/types/packages/sdk/src/model-starter-execution.d.ts +4 -0
  128. package/dist/types/packages/sdk/src/model-starter-execution.d.ts.map +1 -1
  129. package/dist/types/packages/sdk/src/model-starters.d.ts +18 -0
  130. package/dist/types/packages/sdk/src/model-starters.d.ts.map +1 -1
  131. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts +13 -0
  132. package/dist/types/packages/sdk/src/model-taskset-derivation.d.ts.map +1 -1
  133. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts +4 -0
  134. package/dist/types/packages/sdk/src/model-taskset-resources.d.ts.map +1 -1
  135. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts +52 -4
  136. package/dist/types/packages/sdk/src/model-taskset-runs-contracts.d.ts.map +1 -1
  137. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts +32 -4
  138. package/dist/types/packages/sdk/src/model-taskset-runs.d.ts.map +1 -1
  139. package/dist/types/packages/sdk/src/post-training.d.ts +60 -5
  140. package/dist/types/packages/sdk/src/post-training.d.ts.map +1 -1
  141. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts +19 -4
  142. package/dist/types/packages/sdk/src/profile-external-dataset-package.d.ts.map +1 -1
  143. package/dist/types/packages/sdk/src/task-design-contracts.d.ts +367 -0
  144. package/dist/types/packages/sdk/src/task-design-contracts.d.ts.map +1 -0
  145. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts +6 -0
  146. package/dist/types/packages/sdk/src/taskset-authored-contracts.d.ts.map +1 -1
  147. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts +9 -3
  148. package/dist/types/packages/sdk/src/taskset-authored-files.d.ts.map +1 -1
  149. package/dist/types/packages/sdk/src/taskset-authored-portable-release.d.ts.map +1 -1
  150. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts +5 -0
  151. package/dist/types/packages/sdk/src/taskset-calibration-fixtures.d.ts.map +1 -1
  152. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts +12 -0
  153. package/dist/types/packages/sdk/src/taskset-draft-api-contracts.d.ts.map +1 -1
  154. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts +48 -12
  155. package/dist/types/packages/sdk/src/taskset-draft-client.d.ts.map +1 -1
  156. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts +11 -0
  157. package/dist/types/packages/sdk/src/taskset-draft-core.d.ts.map +1 -1
  158. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts +7 -0
  159. package/dist/types/packages/sdk/src/taskset-draft-document.d.ts.map +1 -1
  160. package/dist/types/packages/sdk/src/taskset-draft-files.d.ts.map +1 -1
  161. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts +38 -8
  162. package/dist/types/packages/sdk/src/taskset-draft-package-compiler.d.ts.map +1 -1
  163. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts +14 -2
  164. package/dist/types/packages/sdk/src/taskset-draft-source.d.ts.map +1 -1
  165. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts +12 -0
  166. package/dist/types/packages/sdk/src/taskset-draft-workspace.d.ts.map +1 -1
  167. package/dist/types/packages/sdk/src/taskset-drafts.d.ts +2 -0
  168. package/dist/types/packages/sdk/src/taskset-drafts.d.ts.map +1 -1
  169. package/dist/types/packages/sdk/src/taskset-package-client.d.ts +68 -0
  170. package/dist/types/packages/sdk/src/taskset-package-client.d.ts.map +1 -1
  171. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts +35 -0
  172. package/dist/types/packages/sdk/src/taskset-package-contracts.d.ts.map +1 -1
  173. package/dist/types/packages/sdk/src/taskset-package-files.d.ts.map +1 -1
  174. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts +5 -1
  175. package/dist/types/packages/sdk/src/taskset-package-grader-projection.d.ts.map +1 -1
  176. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts +10 -4
  177. package/dist/types/packages/sdk/src/taskset-package-learning.d.ts.map +1 -1
  178. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts +34 -12
  179. package/dist/types/packages/sdk/src/taskset-package-projection.d.ts.map +1 -1
  180. package/dist/types/packages/sdk/src/training-bundle.d.ts.map +1 -1
  181. package/dist/types/packages/sdk/src/training-learning-batch.d.ts +26 -6
  182. package/dist/types/packages/sdk/src/training-learning-batch.d.ts.map +1 -1
  183. package/dist/types/packages/sdk/src/training.d.ts +8 -1
  184. package/dist/types/packages/sdk/src/training.d.ts.map +1 -1
  185. package/package.json +3 -3
  186. package/dist/chunk-4IWDOYKR.js +0 -65
  187. package/dist/chunk-4IWDOYKR.js.map +0 -7
  188. package/dist/chunk-DUJXF7YI.js.map +0 -7
  189. package/dist/chunk-LQ5Q35IF.js.map +0 -7
  190. package/dist/chunk-P3BRSSRD.js.map +0 -7
  191. package/dist/chunk-PXNHL3SH.js.map +0 -7
  192. package/dist/chunk-Z4OLAEPL.js.map +0 -7
  193. /package/dist/{chunk-2G4WBMYI.js.map → chunk-32GJS7FV.js.map} +0 -0
  194. /package/dist/{chunk-YGLTO26A.js.map → chunk-7L4NIEW2.js.map} +0 -0
  195. /package/dist/{chunk-VEU3IXAQ.js.map → chunk-7MISLCN2.js.map} +0 -0
  196. /package/dist/{chunk-WTHJ3H4M.js.map → chunk-7WUJBFCH.js.map} +0 -0
  197. /package/dist/{chunk-PHETIB6R.js.map → chunk-AV5JV26B.js.map} +0 -0
  198. /package/dist/{chunk-Z4JJS6KE.js.map → chunk-B7VYE7YQ.js.map} +0 -0
  199. /package/dist/{chunk-AQGFJLIV.js.map → chunk-BDDT6VN6.js.map} +0 -0
  200. /package/dist/{chunk-PMBBNQ2J.js.map → chunk-D4WTE6ZA.js.map} +0 -0
  201. /package/dist/{chunk-ZOXHSJWU.js.map → chunk-DBRRQASP.js.map} +0 -0
  202. /package/dist/{chunk-FZH2M4G6.js.map → chunk-DG5CRENU.js.map} +0 -0
  203. /package/dist/{chunk-HAOPRFYQ.js.map → chunk-L5PQPAU6.js.map} +0 -0
  204. /package/dist/{chunk-DUPHBKVV.js.map → chunk-LHRHB5EJ.js.map} +0 -0
  205. /package/dist/{chunk-5GMY4TTF.js.map → chunk-OEPYLZXK.js.map} +0 -0
  206. /package/dist/{chunk-XYVPLV6Z.js.map → chunk-TTAFUUHZ.js.map} +0 -0
  207. /package/dist/{chunk-K2OH56BH.js.map → chunk-UVREOAMH.js.map} +0 -0
  208. /package/dist/{chunk-35OVUYPI.js.map → chunk-YSKUXQ2N.js.map} +0 -0
@@ -1,6 +1,14 @@
1
1
  import {
2
- DatasetWorkspaceReceiptSchema
3
- } from "./chunk-4IWDOYKR.js";
2
+ AgentImportCommitRequestSchema,
3
+ AgentImportPreviewRequestSchema,
4
+ AgentImportUploadPartSchema,
5
+ ConnectedCaptureRequestSchema,
6
+ ConnectedCaseRefSchema,
7
+ ConnectedSourceSummarySchema,
8
+ ConnectedStartingAssetsRequestSchema,
9
+ DatasetWorkspaceReceiptSchema,
10
+ verifyConnectedStartingAssetsReceipt
11
+ } from "./chunk-SVBV2VEK.js";
4
12
  import {
5
13
  fetchConnectedJson
6
14
  } from "./chunk-T4APHDES.js";
@@ -9,86 +17,36 @@ import {
9
17
  contentHash
10
18
  } from "./chunk-COPVBJPL.js";
11
19
 
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
20
  // src/connected-recorded-execution.ts
63
- import { z as z2 } from "zod";
21
+ import { z } from "zod";
64
22
  import { ExperimentManifestSchema } from "@openpond/evals/experiments";
65
23
  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)
24
+ var Id = z.string().min(1).max(200);
25
+ var Hash = z.string().regex(/^[a-f0-9]{64}$/);
26
+ var ConnectedRecordedExecutionRequestSchema = z.object({
27
+ operationId: Id,
28
+ name: z.string().trim().min(1).max(500),
29
+ projectId: Id,
30
+ dataset: ImmutableReleaseRefSchema.extend({ revision: z.number().int().positive() }).strict(),
31
+ caseIds: z.array(Id).min(1).max(1e4)
74
32
  }).strict().superRefine((value, ctx) => {
75
33
  if (new Set(value.caseIds).size !== value.caseIds.length) ctx.addIssue({ code: "custom", message: "Select each case once." });
76
34
  });
77
35
  var ConnectedRecordedSourceSchema = ConnectedCaseRefSchema.extend({
78
- inputHash: Hash2,
79
- outputHash: Hash2.nullable(),
36
+ inputHash: Hash,
37
+ outputHash: Hash.nullable(),
80
38
  task: TaskRecordSchema,
81
- taskHash: Hash2
39
+ taskHash: Hash
82
40
  }).strict();
83
- var ConnectedRecordedExecutionSchema = z2.object({
84
- schemaVersion: z2.literal("openpond.connectedRecordedExecution.v1"),
85
- id: Id2,
86
- teamId: Id2,
87
- ownerUserId: Id2,
41
+ var ConnectedRecordedExecutionSchema = z.object({
42
+ schemaVersion: z.literal("openpond.connectedRecordedExecution.v1"),
43
+ id: Id,
44
+ teamId: Id,
45
+ ownerUserId: Id,
88
46
  request: ConnectedRecordedExecutionRequestSchema,
89
47
  manifest: ExperimentManifestSchema,
90
- sources: z2.array(ConnectedRecordedSourceSchema).min(1).max(1e4),
91
- contentHash: Hash2
48
+ sources: z.array(ConnectedRecordedSourceSchema).min(1).max(1e4),
49
+ contentHash: Hash
92
50
  }).strict();
93
51
  function verifyConnectedRecordedExecution(raw) {
94
52
  const value = ConnectedRecordedExecutionSchema.parse(raw), { contentHash: actual, ...body } = value;
@@ -97,62 +55,62 @@ function verifyConnectedRecordedExecution(raw) {
97
55
  throw new Error("Recorded execution identity or population integrity failed.");
98
56
  return value;
99
57
  }
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),
58
+ var ConnectedRecordedListRequestSchema = z.object({ projectId: Id.optional(), cursor: Id.optional(), limit: z.number().int().min(1).max(50).default(20) }).strict();
59
+ var ConnectedRecordedSummarySchema = z.object({
60
+ id: Id,
61
+ teamId: Id,
62
+ ownerUserId: Id,
63
+ projectId: Id,
64
+ name: z.string().min(1).max(500),
107
65
  dataset: ConnectedRecordedExecutionRequestSchema.shape.dataset,
108
- manifestHash: Hash2,
109
- contentHash: Hash2,
110
- caseCount: z2.number().int().min(1).max(1e4),
111
- createdAt: z2.string().datetime()
66
+ manifestHash: Hash,
67
+ contentHash: Hash,
68
+ caseCount: z.number().int().min(1).max(1e4),
69
+ createdAt: z.string().datetime()
112
70
  }).strict();
113
- var ConnectedRecordedListSchema = z2.object({ teamId: Id2, items: z2.array(ConnectedRecordedSummarySchema).max(50), nextCursor: Id2.nullable() }).strict();
71
+ var ConnectedRecordedListSchema = z.object({ teamId: Id, items: z.array(ConnectedRecordedSummarySchema).max(50), nextCursor: Id.nullable() }).strict();
114
72
 
115
73
  // 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";
74
+ import { z as z4 } from "zod";
75
+ import { ConnectedBoundarySchema, ConnectedEventSchema, ConnectedUsageSummarySchema } from "@openpond/evals/connected-evidence";
118
76
 
119
77
  // src/connected-dataset-publication.ts
120
- import { z as z3 } from "zod";
78
+ import { z as z2 } from "zod";
121
79
  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()
80
+ var ConnectedDatasetPublicationSchema = z2.object({
81
+ datasetId: z2.string().trim().min(1).max(240),
82
+ expectedRevision: z2.number().int().positive(),
83
+ operationId: z2.string().trim().min(1).max(240),
84
+ graders: z2.array(RewardReleaseRefSchema).min(1).max(100).optional()
127
85
  }).strict().superRefine((request, context) => {
128
86
  if (request.graders && new Set(request.graders.map((ref) => ref.id)).size !== request.graders.length)
129
87
  context.addIssue({ code: "custom", path: ["graders"], message: "Choose one exact revision of each grader." });
130
88
  });
131
89
 
132
90
  // 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"]),
91
+ import { z as z3 } from "zod";
92
+ var Id2 = z3.string().min(1).max(500);
93
+ var Count = z3.number().int().nonnegative();
94
+ var ConnectedCollectionStatusSchema = z3.object({
95
+ teamId: Id2,
96
+ ownerUserId: Id2,
97
+ projectId: Id2.nullable(),
98
+ status: z3.enum(["active", "paused", "archived"]),
141
99
  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(),
100
+ state: z3.enum(["collecting", "pending", "attention", "paused", "archived"]),
101
+ lastReconciledAt: z3.string().datetime().nullable(),
102
+ lastCapturedAt: z3.string().datetime().nullable(),
103
+ historyDays: z3.number().int().positive(),
146
104
  sources: Count,
147
105
  tasks: Count,
148
- datasets: z4.array(z4.object({
149
- datasetId: Id3,
150
- projection: z4.enum(["turn", "conversation"]),
106
+ datasets: z3.array(z3.object({
107
+ datasetId: Id2,
108
+ projection: z3.enum(["turn", "conversation"]),
151
109
  revision: Count
152
110
  }).strict()).max(2),
153
- latestBatch: z4.object({
154
- operationId: Id3,
155
- updatedAt: z4.string().datetime(),
111
+ latestBatch: z3.object({
112
+ operationId: Id2,
113
+ updatedAt: z3.string().datetime(),
156
114
  scanned: Count,
157
115
  captured: Count,
158
116
  unchanged: Count,
@@ -160,85 +118,85 @@ var ConnectedCollectionStatusSchema = z4.object({
160
118
  failed: Count,
161
119
  excluded: Count,
162
120
  paused: Count,
163
- hasMore: z4.boolean()
121
+ hasMore: z3.boolean()
164
122
  }).strict().nullable()
165
123
  }).strict();
166
124
 
167
125
  // 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()
126
+ var Id3 = z4.string().min(1).max(500);
127
+ var Hash2 = z4.string().regex(/^[a-f0-9]{64}$/);
128
+ var ConnectedCollectionSchema = z4.object({ teamId: Id3, projectId: Id3.nullable(), status: z4.enum(["active", "paused", "archived"]), revision: z4.number().int().nonnegative() }).strict();
129
+ var ConnectedCaptureReceiptSchema = z4.object({
130
+ teamId: Id3,
131
+ operationId: Id3,
132
+ projectId: Id3.nullable(),
133
+ outcomes: z4.array(z4.object({
134
+ conversationId: Id3,
135
+ state: z4.enum(["captured", "unchanged", "pending", "paused", "excluded", "failed"]),
136
+ sourceId: Id3.optional(),
137
+ snapshotHash: Hash2.optional(),
138
+ reason: z4.string().optional()
181
139
  }).strict()).max(50),
182
- nextCursor: Id4.nullable()
140
+ nextCursor: Id3.nullable()
183
141
  }).strict();
184
- var ConnectedCaseReadbackSchema = z5.object({
185
- teamId: Id4,
142
+ var ConnectedCaseReadbackSchema = z4.object({
143
+ teamId: Id3,
186
144
  ref: ConnectedCaseRefSchema,
187
145
  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()
146
+ sessionId: Id3,
147
+ projectId: Id3,
148
+ capturedAt: z4.string().datetime(),
149
+ unmappedEvidence: z4.object({ count: z4.number().int().nonnegative().max(1e5), contentHash: Hash2 }).strict(),
150
+ evidence: z4.object({ input: z4.array(ConnectedEventSchema), observed: z4.array(ConnectedEventSchema), answer: z4.json(), boundary: ConnectedBoundarySchema }).strict()
193
151
  }).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()
152
+ var ConnectedUnmappedEventsSchema = z4.object({
153
+ teamId: Id3,
154
+ sourceId: Id3,
155
+ snapshotHash: Hash2,
156
+ contentHash: Hash2,
157
+ count: z4.number().int().nonnegative(),
158
+ offset: z4.number().int().nonnegative(),
159
+ events: z4.array(ConnectedEventSchema).max(50),
160
+ nextOffset: z4.number().int().nonnegative().nullable()
203
161
  }).strict();
204
- var AgentImportPreviewSchema = z5.object({
205
- teamId: Id4,
162
+ var AgentImportPreviewSchema = z4.object({
163
+ teamId: Id3,
206
164
  source: AgentImportPreviewRequestSchema.shape.source,
207
- sourceHash: Hash3,
208
- previewHash: Hash3,
165
+ sourceHash: Hash2,
166
+ previewHash: Hash2,
209
167
  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,
168
+ issues: z4.array(z4.object({ file: z4.string(), message: z4.string() }).strict()).max(100),
169
+ sessions: z4.array(z4.object({
170
+ sessionHash: Hash2,
171
+ sessionId: Id3,
214
172
  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"])
173
+ exporterVersion: z4.string().nullable(),
174
+ eventCount: z4.number().int().nonnegative(),
175
+ boundaries: z4.array(z4.object({
176
+ id: Id3,
177
+ projection: z4.enum(["turn", "conversation"]),
178
+ answer: z4.boolean(),
179
+ process: z4.enum(["retained", "partial", "absent"]),
180
+ terminal: z4.enum(["completed", "failed", "cancelled", "unknown"])
223
181
  }).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)
182
+ warnings: z4.array(z4.string()).max(100),
183
+ sample: z4.array(z4.object({ role: z4.enum(["user", "assistant", "system", "tool"]).nullable(), text: z4.string().max(4e3) }).strict()).max(3)
226
184
  }).strict()).max(1e3)
227
185
  }).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)
186
+ var AgentImportReceiptSchema = z4.object({
187
+ teamId: Id3,
188
+ operationId: Id3,
189
+ requestHash: Hash2,
190
+ previewHash: Hash2,
191
+ projectId: Id3.optional(),
192
+ state: z4.enum(["admitting", "publishing", "completed", "failed"]),
193
+ outcomes: z4.array(z4.object({
194
+ sessionHash: Hash2,
195
+ sourceId: Id3,
196
+ status: z4.enum(["imported", "already_present"]),
197
+ datasets: z4.array(z4.object({ datasetId: Id3, revision: z4.number().int().positive(), changed: z4.boolean() }).strict()).max(2)
240
198
  }).strict()).max(1e3),
241
- error: z5.string().optional()
199
+ error: z4.string().optional()
242
200
  }).strict();
243
201
  var ConnectedEvidenceError = class extends Error {
244
202
  constructor(status, code, message) {
@@ -267,10 +225,24 @@ var ConnectedEvidenceClient = class {
267
225
  throw new Error("Capture receipt differs from its requested source or operation.");
268
226
  return result;
269
227
  }
228
+ async retainStartingAssets(raw, signal) {
229
+ const request = ConnectedStartingAssetsRequestSchema.parse(raw);
230
+ const result = verifyConnectedStartingAssetsReceipt(await this.request("/starting-assets", "POST", request, signal));
231
+ this.scope(result.teamId);
232
+ if (result.operationId !== request.operationId || result.requestHash !== contentHash(request) || contentHash(result.source) !== contentHash(request.source) || result.assets.length !== request.proofs.length || result.assets.some((asset, index) => asset.path !== request.proofs[index].path))
233
+ throw new Error("Starting assets differ from the exact source, operation or selected paths.");
234
+ return result;
235
+ }
236
+ async startingAssets(id, signal) {
237
+ const result = verifyConnectedStartingAssetsReceipt(await this.request(`/starting-assets/${encodeURIComponent(Id3.parse(id))}`, "GET", void 0, signal));
238
+ this.scope(result.teamId);
239
+ if (result.id !== id) throw new Error("Starting assets identity mismatch.");
240
+ return result;
241
+ }
270
242
  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);
243
+ const query = z4.object({ projectId: Id3.optional(), cursor: Id3.optional(), limit: z4.number().int().min(1).max(50).default(20) }).strict().parse(input);
272
244
  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));
245
+ const page = z4.object({ teamId: Id3, items: z4.array(ConnectedSourceSummarySchema).max(50), nextCursor: Id3.nullable() }).strict().parse(await this.request(`?${params}`, "GET", void 0, signal));
274
246
  this.scope(page.teamId);
275
247
  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
248
  return page;
@@ -284,7 +256,7 @@ var ConnectedEvidenceClient = class {
284
256
  return result;
285
257
  }
286
258
  async setCollection(paused, signal) {
287
- const result = ConnectedCollectionSchema.parse(await this.request("/collection", "PUT", z5.object({ paused: z5.boolean() }).strict().parse({ paused }), signal));
259
+ const result = ConnectedCollectionSchema.parse(await this.request("/collection", "PUT", z4.object({ paused: z4.boolean() }).strict().parse({ paused }), signal));
288
260
  this.scope(result.teamId);
289
261
  return result;
290
262
  }
@@ -299,21 +271,21 @@ var ConnectedEvidenceClient = class {
299
271
  return result;
300
272
  }
301
273
  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);
274
+ const request = z4.object({ id: Id3, snapshotHash: Hash2, contentHash: Hash2, offset: z4.number().int().nonnegative().default(0), limit: z4.number().int().min(1).max(50).default(20) }).strict().parse(input);
303
275
  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
276
  this.scope(result.teamId);
305
277
  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
278
  return result;
307
279
  }
308
280
  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);
281
+ const querySchema = z4.object({ from: z4.string().datetime(), to: z4.string().datetime(), projectId: Id3.optional() }).strict(), query = querySchema.parse(raw);
310
282
  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));
283
+ const result = z4.object({ teamId: Id3, range: querySchema, activity: z4.object({
284
+ conversations: z4.number().int().nonnegative(),
285
+ turns: z4.number().int().nonnegative(),
286
+ chatTurns: z4.number().int().nonnegative(),
287
+ workTurns: z4.number().int().nonnegative()
288
+ }).strict(), accounting: z4.object({ contextSnapshots: z4.number().int().nonnegative() }).strict(), usage: ConnectedUsageSummarySchema }).strict().parse(await this.request(`/summary?${params}`, "GET", void 0, signal));
317
289
  this.scope(result.teamId);
318
290
  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
291
  for (const groups of [result.usage.days, result.usage.modes, result.usage.models]) {
@@ -324,7 +296,7 @@ var ConnectedEvidenceClient = class {
324
296
  return result;
325
297
  }
326
298
  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));
299
+ const body = AgentImportUploadPartSchema.parse(raw), result = z4.object({ teamId: Id3, hash: Hash2, parts: z4.number().int(), index: z4.number().int() }).strict().parse(await this.request("/imports/upload", "POST", body, signal));
328
300
  this.scope(result.teamId);
329
301
  if (result.hash !== body.hash || result.parts !== body.parts || result.index !== body.index) throw new Error("Upload receipt differs from its part identity.");
330
302
  return result;
@@ -342,7 +314,7 @@ var ConnectedEvidenceClient = class {
342
314
  return result;
343
315
  }
344
316
  async readImport(operationId, signal) {
345
- const id = Id4.parse(operationId), result = AgentImportReceiptSchema.parse(await this.request(`/imports/${encodeURIComponent(id)}`, "GET", void 0, signal));
317
+ const id = Id3.parse(operationId), result = AgentImportReceiptSchema.parse(await this.request(`/imports/${encodeURIComponent(id)}`, "GET", void 0, signal));
346
318
  this.scope(result.teamId);
347
319
  if (result.operationId !== id) throw new Error("Import identity mismatch.");
348
320
  return result;
@@ -363,7 +335,7 @@ var ConnectedEvidenceClient = class {
363
335
  return page;
364
336
  }
365
337
  async recordedExecution(id, signal) {
366
- const result = verifyConnectedRecordedExecution(await this.request(`/recorded-executions/${encodeURIComponent(Id4.parse(id))}`, "GET", void 0, signal));
338
+ const result = verifyConnectedRecordedExecution(await this.request(`/recorded-executions/${encodeURIComponent(Id3.parse(id))}`, "GET", void 0, signal));
367
339
  this.scope(result.teamId);
368
340
  if (result.id !== id) throw new Error("Recorded execution identity mismatch.");
369
341
  return result;
@@ -377,7 +349,7 @@ var ConnectedEvidenceClient = class {
377
349
  return result;
378
350
  }
379
351
  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);
352
+ const request = z4.object({ operationId: Id3.max(240), projectId: Id3.max(240), name: z4.string().trim().min(1).max(200), cases: z4.array(ConnectedCaseRefSchema).min(1).max(500) }).strict().parse(input);
381
353
  const result = DatasetWorkspaceReceiptSchema.parse(await this.request("/datasets/selection", "POST", request, signal));
382
354
  this.scope(result.teamId);
383
355
  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])))
@@ -396,7 +368,7 @@ var ConnectedEvidenceClient = class {
396
368
  ...body === void 0 ? {} : { body: JSON.stringify(body) }
397
369
  }, (status, code, message) => new ConnectedEvidenceError(status, code, message));
398
370
  if (!response.ok) {
399
- const error = z5.object({ code: z5.string(), message: z5.string() }).safeParse(value);
371
+ const error = z4.object({ code: z4.string(), message: z4.string() }).safeParse(value);
400
372
  throw new ConnectedEvidenceError(response.status, error.success ? error.data.code : "connected_request_failed", error.success ? error.data.message : "Connected evidence request failed.");
401
373
  }
402
374
  return value;
@@ -404,67 +376,94 @@ var ConnectedEvidenceClient = class {
404
376
  };
405
377
 
406
378
  // 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,
379
+ import { z as z5 } from "zod";
380
+ import {
381
+ CollectorCoverageManifestSchema,
382
+ CollectorCoverageSummarySchema,
383
+ summarizeCollectorCoverage
384
+ } from "@openpond/evals/connected-evidence";
385
+ var Id4 = z5.string().trim().min(1).max(240);
386
+ var ConnectedSyncCoveragePublishSchema = z5.object({
387
+ id: Id4,
388
+ expectedRevision: z5.number().int().positive(),
389
+ manifest: CollectorCoverageManifestSchema
390
+ }).strict().refine(
391
+ (value) => value.id === value.manifest.connectionId && value.expectedRevision === value.manifest.connectionRevision,
392
+ "Collector coverage scope differs from its connection."
393
+ );
394
+ var ConnectedSyncCoverageReadSchema = z5.object({ id: Id4, cutoff: z5.iso.datetime().optional() }).strict();
395
+ var ConnectedSyncCoverageReceiptSchema = z5.object({
396
+ schemaVersion: z5.literal("openpond.connectedSyncCoverageReceipt.v1"),
397
+ id: Id4,
398
+ teamId: Id4,
399
+ ownerUserId: Id4,
400
+ connectionId: Id4,
401
+ connectionRevision: z5.number().int().positive(),
402
+ receivedAt: z5.iso.datetime(),
403
+ summary: CollectorCoverageSummarySchema
404
+ }).strict();
405
+ var ConnectedSyncRegistrationSchema = z5.object({
406
+ id: Id4,
411
407
  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),
408
+ machineId: Id4,
409
+ sourceInstanceId: Id4,
410
+ sourceLabel: z5.string().trim().min(1).max(200),
411
+ sourceRoot: z5.string().min(1).max(2e3),
416
412
  destination: AgentImportPreviewRequestSchema.shape.destination,
417
- since: z6.string().datetime().nullable(),
418
- keepSyncing: z6.boolean(),
419
- expectedRevision: z6.number().int().nonnegative()
413
+ since: z5.string().datetime().nullable(),
414
+ keepSyncing: z5.boolean(),
415
+ expectedRevision: z5.number().int().nonnegative()
420
416
  }).strict();
421
- var ConnectedSyncControlSchema = z6.object({
422
- id: Id5,
423
- expectedRevision: z6.number().int().positive(),
424
- action: z6.enum(["pause", "resume", "disconnect"])
417
+ var ConnectedSyncControlSchema = z5.object({
418
+ id: Id4,
419
+ expectedRevision: z5.number().int().positive(),
420
+ action: z5.enum(["pause", "resume", "disconnect"])
425
421
  }).strict();
426
- var ConnectedSyncRequestSchema = z6.object({
427
- id: Id5,
428
- operationId: Id5,
429
- expectedRevision: z6.number().int().positive()
422
+ var ConnectedSyncRequestSchema = z5.object({
423
+ id: Id4,
424
+ operationId: Id4,
425
+ expectedRevision: z5.number().int().positive()
430
426
  }).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)
427
+ var ConnectedSyncHeartbeatSchema = z5.object({
428
+ id: Id4,
429
+ expectedRevision: z5.number().int().positive(),
430
+ pendingOperations: z5.number().int().min(0).max(1e4),
431
+ error: z5.string().max(500).nullable(),
432
+ completedSyncRevision: z5.number().int().nonnegative().default(0)
437
433
  }).strict();
438
- var ConnectedSyncConnectionSchema = z6.object({
439
- teamId: Id5,
440
- id: Id5,
441
- revision: z6.number().int().positive(),
434
+ var ConnectedSyncConnectionSchema = z5.object({
435
+ teamId: Id4,
436
+ id: Id4,
437
+ revision: z5.number().int().positive(),
442
438
  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(),
439
+ sourceLabel: z5.string(),
440
+ sourceRoot: z5.string(),
441
+ taskDatasetId: Id4.nullable(),
442
+ conversationDatasetId: Id4.nullable(),
443
+ machineId: Id4,
444
+ sourceInstanceId: Id4,
445
+ projectId: Id4,
446
+ datasetIds: z5.array(Id4).max(2),
447
+ since: z5.string().datetime().nullable(),
448
+ keepSyncing: z5.boolean(),
449
+ state: z5.enum(["active", "paused", "disconnected"]),
450
+ health: z5.enum(["online", "offline"]),
451
+ lastHeartbeatAt: z5.string().datetime().nullable(),
452
+ lastAdmissionAt: z5.string().datetime().nullable(),
453
+ pendingOperations: z5.number().int().nonnegative(),
454
+ admittedTasks: z5.number().int().nonnegative(),
455
+ error: z5.string().nullable(),
456
+ requestedSyncRevision: z5.number().int().nonnegative().default(0),
457
+ completedSyncRevision: z5.number().int().nonnegative().default(0),
458
+ syncRequestedAt: z5.string().datetime().nullable().default(null),
459
+ syncCompletedAt: z5.string().datetime().nullable().default(null)
460
+ }).strict().refine(
461
+ (value) => value.completedSyncRevision <= value.requestedSyncRevision && value.requestedSyncRevision <= value.revision,
462
+ "Invalid sync acknowledgement generation."
463
+ );
464
+ var ConnectedSyncCommitSchema = z5.object({
465
+ connectionId: Id4,
466
+ expectedRevision: z5.number().int().positive(),
468
467
  request: AgentImportCommitRequestSchema
469
468
  }).strict();
470
469
  var ConnectedSyncClient = class {
@@ -476,9 +475,9 @@ var ConnectedSyncClient = class {
476
475
  }
477
476
  options;
478
477
  async list(signal) {
479
- const result = z6.object({
480
- teamId: Id5,
481
- items: z6.array(ConnectedSyncConnectionSchema).max(100)
478
+ const result = z5.object({
479
+ teamId: Id4,
480
+ items: z5.array(ConnectedSyncConnectionSchema).max(100)
482
481
  }).strict().parse(await this.request("", "GET", void 0, signal));
483
482
  if (result.teamId !== this.options.teamId || result.items.some((item) => item.teamId !== result.teamId))
484
483
  throw new Error("Sync workspace mismatch.");
@@ -519,7 +518,12 @@ var ConnectedSyncClient = class {
519
518
  }
520
519
  async requestSync(raw, signal) {
521
520
  return this.connection(
522
- await this.request("/sync-now", "POST", ConnectedSyncRequestSchema.parse(raw), signal),
521
+ await this.request(
522
+ "/sync-now",
523
+ "POST",
524
+ ConnectedSyncRequestSchema.parse(raw),
525
+ signal
526
+ ),
523
527
  raw.id
524
528
  );
525
529
  }
@@ -531,6 +535,45 @@ var ConnectedSyncClient = class {
531
535
  signal
532
536
  );
533
537
  }
538
+ async publishCoverage(raw, signal) {
539
+ const request = ConnectedSyncCoveragePublishSchema.parse(raw);
540
+ const receipt = this.coverageReceipt(
541
+ await this.request(
542
+ "/coverage",
543
+ "POST",
544
+ { action: "publish", ...request },
545
+ signal
546
+ ),
547
+ request.id
548
+ );
549
+ if (!receipt || receipt.connectionRevision !== request.expectedRevision || receipt.summary.manifestHash !== summarizeCollectorCoverage(request.manifest).manifestHash)
550
+ throw new Error(
551
+ "Collector coverage acknowledgement differs from the retained manifest."
552
+ );
553
+ return receipt;
554
+ }
555
+ async readCoverage(raw, signal) {
556
+ const request = ConnectedSyncCoverageReadSchema.parse(raw);
557
+ const query = new URLSearchParams(
558
+ request.cutoff ? { cutoff: request.cutoff } : {}
559
+ );
560
+ return this.coverageReceipt(
561
+ await this.request(
562
+ `/${encodeURIComponent(request.id)}/coverage?${query}`,
563
+ "GET",
564
+ void 0,
565
+ signal
566
+ ),
567
+ request.id
568
+ );
569
+ }
570
+ coverageReceipt(value, connectionId) {
571
+ if (value === null) return null;
572
+ const receipt = ConnectedSyncCoverageReceiptSchema.parse(value);
573
+ if (receipt.teamId !== this.options.teamId || receipt.connectionId !== connectionId)
574
+ throw new Error("Collector coverage workspace mismatch.");
575
+ return receipt;
576
+ }
534
577
  connection(raw, id) {
535
578
  const result = ConnectedSyncConnectionSchema.parse(raw);
536
579
  if (result.teamId !== this.options.teamId || result.id !== id)
@@ -564,18 +607,16 @@ var ConnectedSyncClient = class {
564
607
  }
565
608
  };
566
609
 
610
+ // src/connected-evidence.ts
611
+ import {
612
+ CollectorCoverageManifestSchema as CollectorCoverageManifestSchema2,
613
+ CollectorCoverageSessionSchema,
614
+ CollectorCoverageSummarySchema as CollectorCoverageSummarySchema2,
615
+ summarizeCollectorCoverage as summarizeCollectorCoverage2,
616
+ hashCollectorEligibleBoundaries
617
+ } from "@openpond/evals/connected-evidence";
618
+
567
619
  export {
568
- ConnectedScopeSchema,
569
- ConnectedCaseRefSchema,
570
- ConnectedSourceSummarySchema,
571
- ConnectedCaptureRequestSchema,
572
- AgentImportUploadRefSchema,
573
- AgentImportUploadPartSchema,
574
- AgentImportFileSchema,
575
- AgentImportPreviewRequestSchema,
576
- AgentImportCommitRequestSchema,
577
- ConnectedHomeQuerySchema,
578
- ConnectedHomeSummarySchema,
579
620
  ConnectedRecordedExecutionRequestSchema,
580
621
  ConnectedRecordedSourceSchema,
581
622
  ConnectedRecordedExecutionSchema,
@@ -593,12 +634,20 @@ export {
593
634
  AgentImportReceiptSchema,
594
635
  ConnectedEvidenceError,
595
636
  ConnectedEvidenceClient,
637
+ ConnectedSyncCoveragePublishSchema,
638
+ ConnectedSyncCoverageReadSchema,
639
+ ConnectedSyncCoverageReceiptSchema,
596
640
  ConnectedSyncRegistrationSchema,
597
641
  ConnectedSyncControlSchema,
598
642
  ConnectedSyncRequestSchema,
599
643
  ConnectedSyncHeartbeatSchema,
600
644
  ConnectedSyncConnectionSchema,
601
645
  ConnectedSyncCommitSchema,
602
- ConnectedSyncClient
646
+ ConnectedSyncClient,
647
+ CollectorCoverageManifestSchema2 as CollectorCoverageManifestSchema,
648
+ CollectorCoverageSessionSchema,
649
+ CollectorCoverageSummarySchema2 as CollectorCoverageSummarySchema,
650
+ summarizeCollectorCoverage2 as summarizeCollectorCoverage,
651
+ hashCollectorEligibleBoundaries
603
652
  };
604
- //# sourceMappingURL=chunk-P3BRSSRD.js.map
653
+ //# sourceMappingURL=chunk-FWX7SH7Y.js.map