@openpond/evals 0.11.20 → 0.11.21

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 (69) hide show
  1. package/dist/connected-evidence/collector-coverage-contracts.js +160 -0
  2. package/dist/connected-evidence/index.js +1 -0
  3. package/dist/execution-contracts.js +1 -1
  4. package/dist/javascript-isolate-node.js +2 -1
  5. package/dist/javascript-isolate-process-source.js +1 -1
  6. package/dist/javascript-isolate-process.js +2 -1
  7. package/dist/javascript-isolate.js +2 -1
  8. package/dist/javascript-verifier-worker-source.js +1 -1
  9. package/dist/native-conversations/codex-window-inventory.js +97 -0
  10. package/dist/native-conversations/collector-acquisition.js +149 -0
  11. package/dist/native-conversations/collector-branches.js +1 -0
  12. package/dist/native-conversations/collector-calendar-gate.js +19 -0
  13. package/dist/native-conversations/collector-contracts.js +4 -3
  14. package/dist/native-conversations/collector-coverage.js +100 -0
  15. package/dist/native-conversations/collector-cron.js +43 -0
  16. package/dist/native-conversations/collector-schedule.js +61 -0
  17. package/dist/native-conversations/collector-service-files.js +51 -0
  18. package/dist/native-conversations/collector-snapshots.js +70 -0
  19. package/dist/native-conversations/collector-source-cache.js +41 -0
  20. package/dist/native-conversations/collector-store.js +43 -8
  21. package/dist/native-conversations/collector.js +189 -261
  22. package/dist/native-conversations/history.js +9 -0
  23. package/dist/native-conversations/index.js +1 -0
  24. package/dist/native-conversations/location.js +4 -2
  25. package/dist/native-conversations/supervisor.js +131 -81
  26. package/dist/sql-execution-node.js +2 -1
  27. package/dist/tasksets.js +1 -1
  28. package/dist/types/connected-evidence/collector-coverage-contracts.d.ts +98 -0
  29. package/dist/types/connected-evidence/collector-coverage-contracts.d.ts.map +1 -0
  30. package/dist/types/connected-evidence/index.d.ts +1 -0
  31. package/dist/types/connected-evidence/index.d.ts.map +1 -1
  32. package/dist/types/javascript-isolate-node.d.ts.map +1 -1
  33. package/dist/types/javascript-isolate-process.d.ts.map +1 -1
  34. package/dist/types/javascript-isolate.d.ts.map +1 -1
  35. package/dist/types/native-conversations/codex-window-inventory.d.ts +12 -0
  36. package/dist/types/native-conversations/codex-window-inventory.d.ts.map +1 -0
  37. package/dist/types/native-conversations/collector-acquisition.d.ts +17 -0
  38. package/dist/types/native-conversations/collector-acquisition.d.ts.map +1 -0
  39. package/dist/types/native-conversations/collector-branches.d.ts.map +1 -1
  40. package/dist/types/native-conversations/collector-calendar-gate.d.ts +9 -0
  41. package/dist/types/native-conversations/collector-calendar-gate.d.ts.map +1 -0
  42. package/dist/types/native-conversations/collector-contracts.d.ts +41 -5
  43. package/dist/types/native-conversations/collector-contracts.d.ts.map +1 -1
  44. package/dist/types/native-conversations/collector-coverage.d.ts +62 -0
  45. package/dist/types/native-conversations/collector-coverage.d.ts.map +1 -0
  46. package/dist/types/native-conversations/collector-cron.d.ts +20 -0
  47. package/dist/types/native-conversations/collector-cron.d.ts.map +1 -0
  48. package/dist/types/native-conversations/collector-schedule.d.ts +13 -0
  49. package/dist/types/native-conversations/collector-schedule.d.ts.map +1 -0
  50. package/dist/types/native-conversations/collector-service-files.d.ts +20 -0
  51. package/dist/types/native-conversations/collector-service-files.d.ts.map +1 -0
  52. package/dist/types/native-conversations/collector-snapshots.d.ts +25 -0
  53. package/dist/types/native-conversations/collector-snapshots.d.ts.map +1 -0
  54. package/dist/types/native-conversations/collector-source-cache.d.ts +31 -0
  55. package/dist/types/native-conversations/collector-source-cache.d.ts.map +1 -0
  56. package/dist/types/native-conversations/collector-store.d.ts +11 -2
  57. package/dist/types/native-conversations/collector-store.d.ts.map +1 -1
  58. package/dist/types/native-conversations/collector.d.ts +5 -1
  59. package/dist/types/native-conversations/collector.d.ts.map +1 -1
  60. package/dist/types/native-conversations/history.d.ts +7 -0
  61. package/dist/types/native-conversations/history.d.ts.map +1 -1
  62. package/dist/types/native-conversations/index.d.ts +1 -0
  63. package/dist/types/native-conversations/index.d.ts.map +1 -1
  64. package/dist/types/native-conversations/location.d.ts.map +1 -1
  65. package/dist/types/native-conversations/supervisor.d.ts +4 -3
  66. package/dist/types/native-conversations/supervisor.d.ts.map +1 -1
  67. package/dist/types/sql-execution-node.d.ts.map +1 -1
  68. package/package.json +3 -2
  69. package/schemas/learning/v1/package.schema.json +0 -1
@@ -7,6 +7,8 @@ import { homedir } from "node:os";
7
7
  import { isAbsolute, join } from "node:path";
8
8
  import { contentHash } from "@openpond/harness";
9
9
  import { CollectorStore } from "./collector-store.js";
10
+ import { validateCollectorSchedule } from "./collector-schedule.js";
11
+ import { collectorServiceFiles } from "./collector-service-files.js";
10
12
  const execute = promisify(execFile);
11
13
  const command = async (file, args) => {
12
14
  await execute(file, args, {
@@ -15,12 +17,6 @@ const command = async (file, args) => {
15
17
  windowsHide: true,
16
18
  });
17
19
  };
18
- const xml = (value) => value
19
- .replace(/&/gu, "&")
20
- .replace(/</gu, "&lt;")
21
- .replace(/>/gu, "&gt;")
22
- .replace(/"/gu, "&quot;");
23
- const systemd = (value) => `"${value.replace(/\\/gu, "\\\\").replace(/"/gu, '\\"').replace(/%/gu, "%%").replace(/\$/gu, "$$")}"`;
24
20
  function identity(directory) {
25
21
  return `openpond-import-${contentHash(directory).slice(0, 16)}`;
26
22
  }
@@ -70,86 +66,154 @@ export async function controlCollector(directory, action, connectionId) {
70
66
  store.close();
71
67
  }
72
68
  }
73
- /** Per-user logon supervision. Installing does not override the retained Stop intent. */
69
+ /** Install calendar triggers only. Registration never launches an import. */
74
70
  export async function installCollectorService(input) {
75
- if (!isAbsolute(input.directory) ||
76
- !isAbsolute(input.executable) ||
77
- [input.directory, input.executable, ...input.args].some((value) => /[\r\n\0]/u.test(value)))
78
- throw new Error("Collector service requires absolute paths and single-line arguments.");
71
+ // Reloading a launchd calendar also terminates its active process. Preserve
72
+ // the current import instead of silently cancelling it during a settings edit.
73
+ if (process.platform === "darwin" && (await collectorStatus(input.directory)).running)
74
+ throw new Error("Wait for the current import to finish, or cancel it, before changing its macOS schedule.");
75
+ if (!isAbsolute(input.directory) || !isAbsolute(input.executable) ||
76
+ [input.directory, input.executable, ...input.args].some(value => /[\r\n\0]/u.test(value)))
77
+ throw new Error("Collector jobs require absolute paths and single-line arguments.");
79
78
  const retainedRuntime = await retainAppImageRuntime(input);
80
79
  if (retainedRuntime)
81
80
  input = { ...input, ...retainedRuntime, environment: { ...input.environment, ELECTRON_RUN_AS_NODE: "1", APPIMAGE_EXTRACT_AND_RUN: "1" } };
82
81
  const environment = Object.entries(input.environment ?? {});
83
- if (environment.some(([key, value]) => !["OPENPOND_HOME", "ELECTRON_RUN_AS_NODE", "APPIMAGE_EXTRACT_AND_RUN"].includes(key) ||
84
- typeof value !== "string" ||
85
- /[\r\n\0]/u.test(value)))
82
+ if (environment.some(([key, value]) => !["OPENPOND_HOME", "ELECTRON_RUN_AS_NODE", "APPIMAGE_EXTRACT_AND_RUN"].includes(key) || typeof value !== "string" || /[\r\n\0]/u.test(value)))
86
83
  throw new Error("Unsupported service environment setting.");
87
84
  const home = input.home ?? homedir(), name = identity(input.directory);
88
- const launch = [
89
- ...input.args,
90
- "import",
91
- "service",
92
- "run",
93
- "--collector-dir",
94
- input.directory,
95
- ];
85
+ const store = await CollectorStore.open(input.directory);
86
+ let schedules;
87
+ try {
88
+ schedules = store.connections().map(connection => store.schedule(connection.id)).filter((schedule) => schedule !== null);
89
+ }
90
+ finally {
91
+ store.close();
92
+ }
93
+ const gatePath = join(input.directory, "calendar-gate.cjs");
94
+ const files = collectorServiceFiles({ name, gatePath, executable: input.executable,
95
+ args: [...input.args, "import", "service", "run", "--scheduled", "--collector-dir", input.directory], environment, schedules });
96
+ await atomicServiceFile(gatePath, files.gate, { mode: 0o600 });
96
97
  if (process.platform === "linux") {
97
98
  const directory = join(home, ".config/systemd/user");
98
99
  await mkdir(directory, { recursive: true, mode: 0o700 });
99
- await atomicServiceFile(join(directory, `${name}.service`), `[Unit]\nDescription=OpenPond conversation importer\nAfter=network-online.target\n[Service]\nType=simple\n${environment.map(([key, value]) => `Environment=${systemd(`${key}=${value}`)}`).join("\n")}\nExecStart=${[input.executable, ...launch].map(systemd).join(" ")}\nRestart=on-failure\nRestartSec=5\nUMask=0077\nNoNewPrivileges=true\n[Install]\nWantedBy=default.target\n`, { mode: 0o600 });
100
- await command("systemctl", ["--user", "daemon-reload"]);
101
- await command("systemctl", ["--user", "enable", `${name}.service`]);
100
+ // Remove the old login enablement without stopping an already owned job.
101
+ await optionalCommand("systemctl", ["--user", "disable", `${name}.service`]);
102
+ await atomicServiceFile(join(directory, `${name}.service`), files.service, { mode: 0o600 });
103
+ if (schedules.length) {
104
+ await atomicServiceFile(join(directory, `${name}.timer`), files.timer, { mode: 0o600 });
105
+ await command("systemctl", ["--user", "daemon-reload"]);
106
+ await command("systemctl", ["--user", "enable", "--now", `${name}.timer`]);
107
+ await command("systemctl", ["--user", "restart", `${name}.timer`]);
108
+ }
109
+ else {
110
+ await optionalCommand("systemctl", ["--user", "disable", "--now", `${name}.timer`]);
111
+ await rm(join(directory, `${name}.timer`), { force: true });
112
+ await command("systemctl", ["--user", "daemon-reload"]);
113
+ }
102
114
  }
103
115
  else if (process.platform === "darwin") {
104
- const directory = join(home, "Library/LaunchAgents");
116
+ const directory = join(home, "Library/LaunchAgents"), file = join(directory, `${name}.plist`);
105
117
  await mkdir(directory, { recursive: true, mode: 0o700 });
106
- const file = join(directory, `${name}.plist`);
107
- let loaded = false;
118
+ await optionalCommand("launchctl", ["bootout", `gui/${process.getuid()}/${name}`]);
119
+ if (schedules.length) {
120
+ await atomicServiceFile(file, files.plist, { mode: 0o600 });
121
+ await command("launchctl", ["bootstrap", `gui/${process.getuid()}`, file]);
122
+ }
123
+ else
124
+ await rm(file, { force: true });
125
+ }
126
+ else if (process.platform === "win32") {
127
+ if (!schedules.length)
128
+ await optionalCommand("schtasks", ["/Delete", "/TN", name, "/F"]);
129
+ else {
130
+ const user = (await execute("whoami", [], { timeout: 5000, maxBuffer: 1024 })).stdout.trim();
131
+ const file = join(input.directory, "scheduled-task.xml"), script = join(input.directory, "start-collector.ps1");
132
+ await mkdir(input.directory, { recursive: true, mode: 0o700 });
133
+ await atomicServiceFile(script, files.powershell, { mode: 0o600 });
134
+ await atomicServiceFile(file, files.windowsTask(user, script), { mode: 0o600 });
135
+ await command("schtasks", ["/Create", "/TN", name, "/XML", file, "/F"]);
136
+ }
137
+ }
138
+ else
139
+ throw new Error("Scheduled imports need a supported OS scheduler. Use import sync manually on this OS.");
140
+ return { name, platform: process.platform, status: await collectorStatus(input.directory) };
141
+ }
142
+ // Absence is allowed only when removing an optional trigger. Installation and
143
+ // activation failures remain errors and never claim that a schedule is enabled.
144
+ async function optionalCommand(file, args) {
145
+ try {
146
+ await command(file, args);
147
+ }
148
+ catch (error) {
149
+ const result = error;
150
+ if (result.code === "ENOENT" || !/not (?:loaded|found|exist)|does not exist|No such|could not be found|cannot find|not been loaded/iu.test(result.stderr ?? result.message))
151
+ throw error;
152
+ }
153
+ }
154
+ /** Serialize OS/config updates; a failed installation restores retained intent. */
155
+ export async function setCollectorSchedule(input, connectionId, schedule) {
156
+ if (schedule !== null)
157
+ schedule = validateCollectorSchedule(schedule);
158
+ if (process.platform === "darwin" && (await collectorStatus(input.directory)).running)
159
+ throw new Error("Wait for the current import to finish, or cancel it, before changing its macOS schedule.");
160
+ const store = await CollectorStore.open(input.directory), token = randomUUID();
161
+ let prior;
162
+ store.database.exec("BEGIN IMMEDIATE");
163
+ try {
164
+ const connection = store.connections().find(item => item.id === connectionId);
165
+ if (!connection || (schedule && connection.state === "disconnected"))
166
+ throw new Error("Select a connected source before scheduling imports.");
167
+ const owner = store.setting("scheduleOwner");
168
+ if (owner) {
169
+ const { pid } = JSON.parse(owner);
170
+ let alive = true;
171
+ try {
172
+ process.kill(pid, 0);
173
+ }
174
+ catch (error) {
175
+ alive = error.code !== "ESRCH";
176
+ }
177
+ if (alive)
178
+ throw new Error("Another schedule update is in progress. Try again shortly.");
179
+ }
180
+ prior = store.setting(`schedule:${connectionId}`);
181
+ store.set("scheduleOwner", JSON.stringify({ pid: process.pid, token }));
182
+ store.set(`schedule:${connectionId}`, schedule ? JSON.stringify(schedule) : "");
183
+ store.database.exec("COMMIT");
184
+ }
185
+ catch (error) {
186
+ store.database.exec("ROLLBACK");
187
+ store.close();
188
+ throw error;
189
+ }
190
+ try {
191
+ await installCollectorService(input);
192
+ return store.status();
193
+ }
194
+ catch (error) {
195
+ store.set(`schedule:${connectionId}`, prior ?? "");
108
196
  try {
109
- await command("launchctl", ["print", `gui/${process.getuid()}/${name}`]);
110
- loaded = true;
197
+ await installCollectorService(input);
111
198
  }
112
199
  catch {
113
- /* A first installation has no loaded job. Bootstrap below reports actual setup errors. */
200
+ throw new Error(`Schedule installation failed and OS rollback could not be verified. Review the OS scheduler. ${error instanceof Error ? error.message : ""}`);
114
201
  }
115
- if (loaded)
116
- await command("launchctl", [
117
- "bootout",
118
- `gui/${process.getuid()}/${name}`,
119
- ]);
120
- await writeFile(file, `<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>Label</key><string>${name}</string><key>ProgramArguments</key><array>${[input.executable, ...launch].map((value) => `<string>${xml(value)}</string>`).join("")}</array><key>EnvironmentVariables</key><dict>${environment.map(([key, value]) => `<key>${xml(key)}</key><string>${xml(value)}</string>`).join("")}</dict><key>RunAtLoad</key><true/><key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict><key>ThrottleInterval</key><integer>5</integer></dict></plist>`, { mode: 0o600 });
121
- await command("launchctl", ["bootstrap", `gui/${process.getuid()}`, file]);
202
+ throw error;
122
203
  }
123
- else if (process.platform === "win32") {
124
- const user = (await execute("whoami", [], { timeout: 5000, maxBuffer: 1024 })).stdout.trim();
125
- const file = join(input.directory, "scheduled-task.xml");
126
- await mkdir(input.directory, { recursive: true });
127
- const quoted = (value) => `"${value.replace(/(\\*)"/gu, '$1$1\\"').replace(/(\\+)$/u, "$1$1")}"`;
128
- const script = join(input.directory, "start-collector.ps1");
129
- const ps = (value) => `'${value.replace(/'/gu, "''")}'`;
130
- await writeFile(script, `${environment.map(([key, value]) => `$env:${key} = ${ps(value)}`).join("\n")}\n& ${[input.executable, ...launch].map(ps).join(" ")}\nexit $LASTEXITCODE\n`, { mode: 0o600 });
131
- await writeFile(file, `<?xml version="1.0"?><Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"><Triggers><LogonTrigger><Enabled>true</Enabled><UserId>${xml(user)}</UserId></LogonTrigger></Triggers><Principals><Principal id="Owner"><UserId>${xml(user)}</UserId><LogonType>InteractiveToken</LogonType><RunLevel>LeastPrivilege</RunLevel></Principal></Principals><Settings><MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy><DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries><StopIfGoingOnBatteries>false</StopIfGoingOnBatteries><ExecutionTimeLimit>PT0S</ExecutionTimeLimit><RestartOnFailure><Interval>PT1M</Interval><Count>999</Count></RestartOnFailure></Settings><Actions Context="Owner"><Exec><Command>powershell.exe</Command><Arguments>${xml(["-NoProfile", "-NonInteractive", "-File", script].map(quoted).join(" "))}</Arguments></Exec></Actions></Task>`, { mode: 0o600 });
132
- await command("schtasks", ["/Create", "/TN", name, "/XML", file, "/F"]);
204
+ finally {
205
+ store.set("scheduleOwner", "");
206
+ store.close();
133
207
  }
134
- else
135
- throw new Error("This OS has no qualified per-user supervisor. Run the collector in the foreground.");
136
- return {
137
- name,
138
- platform: process.platform,
139
- status: await collectorStatus(input.directory),
140
- };
141
208
  }
142
209
  /** Removing supervision preserves receipts, pending uploads and retained datasets. */
143
210
  export async function uninstallCollectorService(directory, home = homedir()) {
144
211
  await controlCollector(directory, "stop");
145
212
  const name = identity(directory);
146
213
  if (process.platform === "linux") {
147
- await command("systemctl", [
148
- "--user",
149
- "disable",
150
- "--now",
151
- `${name}.service`,
152
- ]);
214
+ await optionalCommand("systemctl", ["--user", "disable", "--now", `${name}.timer`]);
215
+ await rm(join(home, ".config/systemd/user", `${name}.timer`), { force: true });
216
+ await command("systemctl", ["--user", "disable", "--now", `${name}.service`]);
153
217
  await rm(join(home, ".config/systemd/user", `${name}.service`), {
154
218
  force: true,
155
219
  });
@@ -169,30 +233,16 @@ export async function uninstallCollectorService(directory, home = homedir()) {
169
233
  }
170
234
  else
171
235
  throw new Error("No per-user supervisor is available.");
236
+ await rm(join(directory, "calendar-gate.cjs"), { force: true });
172
237
  if (process.platform === "linux")
173
238
  await removeAppImageRuntimes(directory);
174
- return collectorStatus(directory);
175
- }
176
- export async function startCollectorService(directory) {
177
- await controlCollector(directory, "start");
178
- const name = identity(directory);
239
+ const store = await CollectorStore.open(directory);
179
240
  try {
180
- if (process.platform === "linux")
181
- await command("systemctl", ["--user", "restart", `${name}.service`]);
182
- else if (process.platform === "darwin")
183
- await command("launchctl", [
184
- "kickstart",
185
- "-k",
186
- `gui/${process.getuid()}/${name}`,
187
- ]);
188
- else if (process.platform === "win32")
189
- await command("schtasks", ["/Run", "/TN", name]);
190
- else
191
- throw new Error("No per-user supervisor is available.");
241
+ for (const connection of store.connections())
242
+ store.set(`schedule:${connection.id}`, "");
192
243
  }
193
- catch (error) {
194
- await controlCollector(directory, "stop");
195
- throw error;
244
+ finally {
245
+ store.close();
196
246
  }
197
247
  return collectorStatus(directory);
198
248
  }
@@ -1,5 +1,4 @@
1
1
  import { spawn } from "node:child_process";
2
- import { sqlExecutionProcessSource } from "./sql-execution-process-source.js";
3
2
  import { assertBoundedTaskJson } from "./task-schema.js";
4
3
  import { assertSqlExecutionRequest, SqlExecutionResultSchema } from "./sql-execution-contract.js";
5
4
  export * from "./sql-execution-contract.js";
@@ -9,6 +8,8 @@ export async function executeSqlInProcess(input) {
9
8
  if (!Number.isSafeInteger(input.timeoutMs) || input.timeoutMs < 1 || input.timeoutMs > 30_000)
10
9
  throw new Error("sql_timeout_invalid");
11
10
  const request = assertSqlExecutionRequest(input.request);
11
+ const { sqlExecutionProcessSource } = await import("./sql-execution-process-source.js");
12
+ input.signal?.throwIfAborted();
12
13
  const { signal } = input;
13
14
  const program = `globalThis.__openpondSqlInput = JSON.parse(${JSON.stringify(JSON.stringify(request))});\n${sqlExecutionProcessSource}`;
14
15
  return new Promise((resolve, reject) => {
package/dist/tasksets.js CHANGED
@@ -89,7 +89,7 @@ export const TasksetReleaseContentSchema = z.object({
89
89
  tools: z.array(ToolDeclarationSchema).max(200),
90
90
  capabilities: z.array(CapabilityRequirementSchema).max(200),
91
91
  tasks: z.array(TaskRecordSchema).min(1).max(1_000_000),
92
- graders: z.array(GraderSpecSchema).min(1).max(1_000),
92
+ graders: z.array(GraderSpecSchema).max(1_000),
93
93
  verifierSetRelease: z.object({ id: ReleaseIdSchema, contentHash: ReleaseHashSchema }).strict().optional(),
94
94
  metrics: TasksetMetricPolicySchema.optional(),
95
95
  metadata: MetadataSchema,
@@ -0,0 +1,98 @@
1
+ import { z } from "zod";
2
+ export declare const CollectorCoverageSessionSchema: z.ZodObject<{
3
+ sourceKeyHash: z.ZodString;
4
+ nativeRevisionHash: z.ZodNullable<z.ZodString>;
5
+ state: z.ZodEnum<{
6
+ failed: "failed";
7
+ skipped: "skipped";
8
+ reading: "reading";
9
+ admitted: "admitted";
10
+ }>;
11
+ reason: z.ZodNullable<z.ZodEnum<{
12
+ no_eligible_boundaries: "no_eligible_boundaries";
13
+ native_session_not_ready: "native_session_not_ready";
14
+ source_read_failed: "source_read_failed";
15
+ source_revision_unavailable: "source_revision_unavailable";
16
+ }>>;
17
+ unknownTimeBoundaries: z.ZodNumber;
18
+ normalized: z.ZodArray<z.ZodObject<{
19
+ sessionHash: z.ZodString;
20
+ boundaries: z.ZodArray<z.ZodObject<{
21
+ id: z.ZodString;
22
+ inputHash: z.ZodString;
23
+ revisionHash: z.ZodString;
24
+ occurredAt: z.ZodISODateTime;
25
+ }, z.core.$strict>>;
26
+ }, z.core.$strict>>;
27
+ }, z.core.$strict>;
28
+ export declare const CollectorCoverageManifestSchema: z.ZodObject<{
29
+ schemaVersion: z.ZodLiteral<"openpond.collectorCoverageManifest.v1">;
30
+ jobId: z.ZodString;
31
+ connectionId: z.ZodString;
32
+ connectionRevision: z.ZodNumber;
33
+ machineId: z.ZodString;
34
+ sourceInstanceId: z.ZodString;
35
+ from: z.ZodNullable<z.ZodISODateTime>;
36
+ to: z.ZodISODateTime;
37
+ startedAt: z.ZodISODateTime;
38
+ finishedAt: z.ZodNullable<z.ZodISODateTime>;
39
+ listingComplete: z.ZodBoolean;
40
+ pendingOperations: z.ZodNumber;
41
+ sessions: z.ZodArray<z.ZodObject<{
42
+ sourceKeyHash: z.ZodString;
43
+ nativeRevisionHash: z.ZodNullable<z.ZodString>;
44
+ state: z.ZodEnum<{
45
+ failed: "failed";
46
+ skipped: "skipped";
47
+ reading: "reading";
48
+ admitted: "admitted";
49
+ }>;
50
+ reason: z.ZodNullable<z.ZodEnum<{
51
+ no_eligible_boundaries: "no_eligible_boundaries";
52
+ native_session_not_ready: "native_session_not_ready";
53
+ source_read_failed: "source_read_failed";
54
+ source_revision_unavailable: "source_revision_unavailable";
55
+ }>>;
56
+ unknownTimeBoundaries: z.ZodNumber;
57
+ normalized: z.ZodArray<z.ZodObject<{
58
+ sessionHash: z.ZodString;
59
+ boundaries: z.ZodArray<z.ZodObject<{
60
+ id: z.ZodString;
61
+ inputHash: z.ZodString;
62
+ revisionHash: z.ZodString;
63
+ occurredAt: z.ZodISODateTime;
64
+ }, z.core.$strict>>;
65
+ }, z.core.$strict>>;
66
+ }, z.core.$strict>>;
67
+ }, z.core.$strict>;
68
+ export type CollectorCoverageManifest = z.infer<typeof CollectorCoverageManifestSchema>;
69
+ export type CollectorCoverageSession = z.infer<typeof CollectorCoverageSessionSchema>;
70
+ export declare const CollectorCoverageSummarySchema: z.ZodObject<{
71
+ jobId: z.ZodString;
72
+ manifestHash: z.ZodString;
73
+ sourceInventoryHash: z.ZodString;
74
+ eligibleBoundaryHash: z.ZodString;
75
+ from: z.ZodNullable<z.ZodISODateTime>;
76
+ to: z.ZodISODateTime;
77
+ finishedAt: z.ZodNullable<z.ZodISODateTime>;
78
+ conversations: z.ZodNumber;
79
+ eligibleTurns: z.ZodNumber;
80
+ admittedSessions: z.ZodNumber;
81
+ skippedSessions: z.ZodNumber;
82
+ failedSessions: z.ZodNumber;
83
+ unknownTimeBoundaries: z.ZodNumber;
84
+ pendingOperations: z.ZodNumber;
85
+ listingComplete: z.ZodBoolean;
86
+ complete: z.ZodBoolean;
87
+ }, z.core.$strict>;
88
+ export type CollectorCoverageSummary = z.infer<typeof CollectorCoverageSummarySchema>;
89
+ export declare function hashCollectorEligibleBoundaries(input: Array<{
90
+ id: string;
91
+ inputHash: string;
92
+ revisionHash: string;
93
+ }>): {
94
+ hash: string;
95
+ count: number;
96
+ };
97
+ export declare function summarizeCollectorCoverage(raw: CollectorCoverageManifest): CollectorCoverageSummary;
98
+ //# sourceMappingURL=collector-coverage-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector-coverage-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/connected-evidence/collector-coverage-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BhC,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAoExC,CAAC;AACL,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;kBAmBhC,CAAC;AACZ,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;;;EAYtE;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,yBAAyB,GAC7B,wBAAwB,CAwD1B"}
@@ -3,4 +3,5 @@ export * from "./normalize.js";
3
3
  export * from "./imports.js";
4
4
  export * from "./usage-summary.js";
5
5
  export * from "./python-correctness.js";
6
+ export * from "./collector-coverage-contracts.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/connected-evidence/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/connected-evidence/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-isolate-node.d.ts","sourceRoot":"","sources":["../../../../src/javascript-isolate-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGtG,+EAA+E;AAC/E,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCtG"}
1
+ {"version":3,"file":"javascript-isolate-node.d.ts","sourceRoot":"","sources":["../../../../src/javascript-isolate-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGtG,+EAA+E;AAC/E,wBAAsB,gCAAgC,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwCtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-isolate-process.d.ts","sourceRoot":"","sources":["../../../../src/javascript-isolate-process.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGvI,oFAAoF;AACpF,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,sBAAsB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAwDvI"}
1
+ {"version":3,"file":"javascript-isolate-process.d.ts","sourceRoot":"","sources":["../../../../src/javascript-isolate-process.ts"],"names":[],"mappings":"AACA,OAAO,EAAmE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGvI,oFAAoF;AACpF,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,sBAAsB,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA0DvI"}
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-isolate.d.ts","sourceRoot":"","sources":["../../../../src/javascript-isolate.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;CAClE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,OAAO,EAAE,MAAM;CAC5B;AAED,kFAAkF;AAClF,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAqC9F;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAKlF"}
1
+ {"version":3,"file":"javascript-isolate.d.ts","sourceRoot":"","sources":["../../../../src/javascript-isolate.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,CAAC;CAClE;AAED,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,OAAO,EAAE,MAAM;CAC5B;AAED,kFAAkF;AAClF,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuC9F;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAKlF"}
@@ -0,0 +1,12 @@
1
+ /** Streaming inventory may prove an irrelevant source without retaining it.
2
+ * It never truncates a selected conversation into an admissible snapshot. */
3
+ export declare function inspectCodexWindow(input: {
4
+ path: string;
5
+ sessionId: string;
6
+ since: string | null;
7
+ until: string;
8
+ check(): Promise<void>;
9
+ }): Promise<{
10
+ sha256: string;
11
+ } | null>;
12
+ //# sourceMappingURL=codex-window-inventory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-window-inventory.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/codex-window-inventory.ts"],"names":[],"mappings":"AAIA;6EAC6E;AAC7E,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CA+DrC"}
@@ -0,0 +1,17 @@
1
+ import { type CollectorConnection, type CollectorRun } from "./collector-contracts.js";
2
+ import type { CollectorStore } from "./collector-store.js";
3
+ /** One pass over a frozen listing per page. Unchanged revisions are cheap; a
4
+ * failed source is tried again only in a later explicitly launched job. */
5
+ export declare function acquireCollectorSource(input: {
6
+ store: CollectorStore;
7
+ connection: CollectorConnection;
8
+ until: string;
9
+ check(): Promise<void>;
10
+ drain(): Promise<void>;
11
+ progress(update: Partial<CollectorRun>): void;
12
+ }): Promise<void>;
13
+ export declare class CollectorInterruptedError extends Error {
14
+ }
15
+ export declare class CollectorScopeChangedError extends Error {
16
+ }
17
+ //# sourceMappingURL=collector-acquisition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector-acquisition.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/collector-acquisition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D;2EAC2E;AAC3E,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,KAAK,EAAE,cAAc,CAAC;IACtB,UAAU,EAAE,mBAAmB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;CAC/C,iBAoHA;AAED,qBAAa,yBAA0B,SAAQ,KAAK;CAAG;AACvD,qBAAa,0BAA2B,SAAQ,KAAK;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"collector-branches.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/collector-branches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAC;AAK1G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAM1I;AAeD,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;;;;;;;;;;GAQ9G;AAED,oGAAoG;AACpG,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB;;;;;GAyBvI"}
1
+ {"version":3,"file":"collector-branches.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/collector-branches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAgB,MAAM,gBAAgB,CAAC;AAK1G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAM1I;AAeD,wBAAsB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;;;;;;;;;;GAQ9G;AAED,oGAAoG;AACpG,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB;;;;;GA0BvI"}
@@ -0,0 +1,9 @@
1
+ import type { CollectorSchedule } from "./collector-contracts.js";
2
+ /** A tiny, dependency-free process for OS schedulers that cannot express cron.
3
+ * An unmatched calendar exits before importing the CLI or opening source files. */
4
+ export declare function collectorCalendarGate(input: {
5
+ executable: string;
6
+ args: string[];
7
+ schedules: CollectorSchedule[];
8
+ }): string;
9
+ //# sourceMappingURL=collector-calendar-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector-calendar-gate.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/collector-calendar-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;mFACmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAAE,UAclH"}
@@ -1,14 +1,40 @@
1
1
  import type { NativeSource } from "./contracts.js";
2
2
  import type { CollectorBackfillProgress } from "./collector-progress.js";
3
+ import type { CollectorCoverageManifest, CollectorCoverageSummary } from "../connected-evidence/collector-coverage-contracts.js";
3
4
  export declare const COLLECTOR_DEFAULTS: {
4
- readonly reconcileMs: 30000;
5
5
  readonly heartbeatMs: 10000;
6
6
  readonly staleMs: 60000;
7
7
  readonly maxPending: 10000;
8
8
  readonly maxBytes: number;
9
9
  readonly batchCases: 20;
10
- readonly batchBytes: number;
10
+ readonly runMs: number;
11
+ readonly requestMs: 60000;
12
+ readonly attemptsPerRun: 3;
11
13
  };
14
+ export type CollectorSchedule = {
15
+ frequency: "hourly";
16
+ } | {
17
+ frequency: "cron";
18
+ expression: string;
19
+ } | {
20
+ frequency: "daily";
21
+ time: string;
22
+ } | {
23
+ frequency: "weekly";
24
+ time: string;
25
+ day: number;
26
+ };
27
+ export interface CollectorRun {
28
+ id: string;
29
+ state: "running" | "completed" | "failed" | "cancelled";
30
+ phase: "discovering" | "reading" | "uploading";
31
+ startedAt: string;
32
+ finishedAt: string | null;
33
+ processed: number;
34
+ discovered: number;
35
+ uploaded: number;
36
+ error: string | null;
37
+ }
12
38
  export interface CollectorDestinations {
13
39
  taskDatasetId: string | null;
14
40
  conversationDatasetId: string | null;
@@ -26,6 +52,8 @@ export interface CollectorConnection {
26
52
  apiBaseUrl: string;
27
53
  account?: string;
28
54
  accountBaseUrl?: string;
55
+ /** The account store used at connection time; credentials stay in that store. */
56
+ credentialHome?: string;
29
57
  destinations?: CollectorDestinations;
30
58
  requestedSyncRevision?: number;
31
59
  /** Locally completed work, retained before the hosted acknowledgement is sent. */
@@ -34,6 +62,7 @@ export interface CollectorConnection {
34
62
  projectId: string;
35
63
  revision: number;
36
64
  since: string | null;
65
+ /** Hosted registration metadata; local recurrence is an explicit schedule. */
37
66
  keepSyncing: boolean;
38
67
  state: "active" | "paused" | "disconnected";
39
68
  }
@@ -43,6 +72,7 @@ export interface CollectorStatus {
43
72
  desiredState: "running" | "stopped";
44
73
  pid: number | null;
45
74
  heartbeatAt: string | null;
75
+ timezone: string;
46
76
  connections: {
47
77
  id: string;
48
78
  state: CollectorConnection["state"];
@@ -58,6 +88,12 @@ export interface CollectorStatus {
58
88
  backfill: CollectorBackfillProgress;
59
89
  pendingBytes: number;
60
90
  lastAdmissionAt: string | null;
91
+ since: string | null;
92
+ schedule: CollectorSchedule | null;
93
+ nextRunAt: string | null;
94
+ lastSuccessfulSyncAt: string | null;
95
+ run: CollectorRun | null;
96
+ coverage: CollectorCoverageSummary | null;
61
97
  requestedSyncRevision: number;
62
98
  completedSyncRevision: number;
63
99
  acknowledgedSyncRevision: number;
@@ -81,12 +117,12 @@ export interface CollectorAdmission {
81
117
  }
82
118
  /** Credentials are resolved by the process host, never persisted in source metadata or queue entries. */
83
119
  export interface CollectorTransport {
84
- pause?(connection: CollectorConnection): Promise<CollectorRemoteControl>;
120
+ publishCoverage(connection: CollectorConnection, manifest: CollectorCoverageManifest, signal?: AbortSignal): Promise<void>;
85
121
  heartbeat(connection: CollectorConnection, input: {
86
122
  pendingOperations: number;
87
123
  error: string | null;
88
124
  completedSyncRevision: number;
89
- }): Promise<CollectorRemoteControl>;
90
- admit(connection: CollectorConnection, entry: CollectorAdmission): Promise<void>;
125
+ }, signal?: AbortSignal): Promise<CollectorRemoteControl>;
126
+ admit(connection: CollectorConnection, entry: CollectorAdmission, signal?: AbortSignal): Promise<void>;
91
127
  }
92
128
  //# sourceMappingURL=collector-contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collector-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/collector-contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collector-contracts.d.ts","sourceRoot":"","sources":["../../../../../src/native-conversations/collector-contracts.ts"],"names":[],"mappings":"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"}