openpond-sdk 0.11.4 → 0.11.6

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