@openpond/evals 0.12.3 → 0.12.5
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.
- package/LEARNING.md +43 -0
- package/dist/javascript-isolate-process-entry.js +4 -1
- package/dist/javascript-isolate-process-source.js +1 -1
- package/dist/javascript-isolate-process.js +36 -2
- package/dist/javascript-isolate.js +8 -2
- package/dist/javascript-verifier-node.js +1 -0
- package/dist/javascript-verifier-worker-source.js +1 -1
- package/dist/learning/index.js +1 -0
- package/dist/learning/iteration-dispatch-commands.js +1 -1
- package/dist/learning/iteration-dispatch-contracts.js +27 -0
- package/dist/learning/iteration-dispatch-deferral.js +28 -0
- package/dist/learning/iteration-dispatch-worker.js +34 -5
- package/dist/tool-learning/actions.js +62 -0
- package/dist/tool-learning/consultation.js +198 -0
- package/dist/tool-learning/episodes.js +284 -0
- package/dist/tool-learning/index.js +6 -0
- package/dist/tool-learning/installations.js +151 -0
- package/dist/tool-learning/policy.js +38 -0
- package/dist/tool-learning/primitives.js +87 -0
- package/dist/types/javascript-isolate-process.d.ts +7 -0
- package/dist/types/javascript-isolate-process.d.ts.map +1 -1
- package/dist/types/javascript-isolate.d.ts +3 -1
- package/dist/types/javascript-isolate.d.ts.map +1 -1
- package/dist/types/javascript-verifier-node.d.ts +1 -0
- package/dist/types/javascript-verifier-node.d.ts.map +1 -1
- package/dist/types/learning/index.d.ts +1 -0
- package/dist/types/learning/index.d.ts.map +1 -1
- package/dist/types/learning/iteration-dispatch-contracts.d.ts +45 -0
- package/dist/types/learning/iteration-dispatch-contracts.d.ts.map +1 -1
- package/dist/types/learning/iteration-dispatch-deferral.d.ts +71 -0
- package/dist/types/learning/iteration-dispatch-deferral.d.ts.map +1 -0
- package/dist/types/learning/iteration-dispatch-worker.d.ts +7 -2
- package/dist/types/learning/iteration-dispatch-worker.d.ts.map +1 -1
- package/dist/types/learning/repository.d.ts +20 -0
- package/dist/types/learning/repository.d.ts.map +1 -1
- package/dist/types/learning/transport.d.ts +20 -0
- package/dist/types/learning/transport.d.ts.map +1 -1
- package/dist/types/tool-learning/actions.d.ts +54 -0
- package/dist/types/tool-learning/actions.d.ts.map +1 -0
- package/dist/types/tool-learning/consultation.d.ts +229 -0
- package/dist/types/tool-learning/consultation.d.ts.map +1 -0
- package/dist/types/tool-learning/episodes.d.ts +1058 -0
- package/dist/types/tool-learning/episodes.d.ts.map +1 -0
- package/dist/types/tool-learning/index.d.ts +7 -0
- package/dist/types/tool-learning/index.d.ts.map +1 -0
- package/dist/types/tool-learning/installations.d.ts +296 -0
- package/dist/types/tool-learning/installations.d.ts.map +1 -0
- package/dist/types/tool-learning/policy.d.ts +3 -0
- package/dist/types/tool-learning/policy.d.ts.map +1 -0
- package/dist/types/tool-learning/primitives.d.ts +73 -0
- package/dist/types/tool-learning/primitives.d.ts.map +1 -0
- package/package.json +5 -1
- package/schemas/learning/v1/dispatch.schema.json +100 -1
package/LEARNING.md
CHANGED
|
@@ -251,6 +251,27 @@ state is `dispatching`; only a provider observation establishes `training` or
|
|
|
251
251
|
`evaluating`. A paused policy stops new submissions while existing executions
|
|
252
252
|
continue to be observed.
|
|
253
253
|
|
|
254
|
+
Executors can implement `admit` to defer an unstarted, persisted submission for
|
|
255
|
+
calendar or capacity reasons. Return `{ status: "deferred", retryAt, reason }`
|
|
256
|
+
with a future timestamp, or `{ status: "ready" }`. This check must not create an
|
|
257
|
+
execution, launch compute or spend. A wait persists its reason and retry time,
|
|
258
|
+
releases the worker lease and retains the same sealed batch and reservation
|
|
259
|
+
without increasing failure retries. Restarted workers respect that timestamp;
|
|
260
|
+
cancellation bypasses it and can settle an unstarted dispatch at zero spend.
|
|
261
|
+
Once submission has started, retries reconcile its existing identity without
|
|
262
|
+
repeating admission. The executor must still verify current authority atomically
|
|
263
|
+
when creating an execution; a prior ready decision is not authorization to spend.
|
|
264
|
+
|
|
265
|
+
If admission closes during transport, `submit` may return a `deferred` result
|
|
266
|
+
with the exact scope, dispatch/hash, lease generation, retry time and immutable
|
|
267
|
+
receipt. The owner must atomically prove no execution or charge was created and
|
|
268
|
+
durably fence every late submission from that attempt before returning it. A
|
|
269
|
+
timeout or a read that finds no Job cannot establish this. The shared worker
|
|
270
|
+
retains the receipt, clears the started marker and releases/increments the
|
|
271
|
+
lease generation without spending a failure retry. Owners sharing the learning
|
|
272
|
+
repository use `deferLearningIterationSubmission` inside their native admission
|
|
273
|
+
transaction; the older worker then observes the committed generation change.
|
|
274
|
+
|
|
254
275
|
The executor must deduplicate `submit` by `dispatch.id`, verify observation
|
|
255
276
|
identity and provider receipts, and use `reconcile` to recover an existing Job
|
|
256
277
|
after a lost reply. An unreachable owner is an error, never proof of absence.
|
|
@@ -394,3 +415,25 @@ revision changes and budget reservations, resolve authoritative execution/gradin
|
|
|
394
415
|
receipts, isolate holdouts from training, bind the exact candidate at runtime,
|
|
395
416
|
verify cleanup, and enforce the verdict inside the candidate-decision transaction.
|
|
396
417
|
No customer serving is activated by an acceptance group.
|
|
418
|
+
|
|
419
|
+
### Bounded tool episodes
|
|
420
|
+
|
|
421
|
+
The explicit `@openpond/evals/tool-learning` entry describes bounded attempt,
|
|
422
|
+
observation, recovery-link, verification, installation, and recovery-consultation
|
|
423
|
+
contracts. An event is sealed over validated sanitized bytes; the observation
|
|
424
|
+
references the exact attempted action. Execution failure, validation failure,
|
|
425
|
+
incomplete observation, uncertain effects, and verified outcome stay distinct.
|
|
426
|
+
A producer-provided verifier reference is a claim that intake must resolve against
|
|
427
|
+
its authentic execution owner.
|
|
428
|
+
|
|
429
|
+
Collection acknowledgements explicitly have `learningEnrollment: false`. The
|
|
430
|
+
capture policy requires separate review for model updates and disables synthetic
|
|
431
|
+
variants. Retaining a successful command is not evidence of the requested outcome,
|
|
432
|
+
a qualified training target, or permission to spend. Reuse the existing task
|
|
433
|
+
review, immutable supervised batch, and publication owners for actual admission.
|
|
434
|
+
|
|
435
|
+
Recovery consultation binds its action/context, active manifest, selected model,
|
|
436
|
+
and usage receipt. Integration qualification advertises an existing-model route;
|
|
437
|
+
learned qualification additionally requires retained training/evaluation/activation
|
|
438
|
+
lineage. Neither installation nor receipt of evidence establishes learned efficacy.
|
|
439
|
+
These protocols do not install client hooks or start background services.
|
|
@@ -5,4 +5,7 @@ const input = owner.__openpondIsolateInput;
|
|
|
5
5
|
delete owner.__openpondIsolateInput;
|
|
6
6
|
if (!input)
|
|
7
7
|
throw new Error("JavaScript process requires its execution owner.");
|
|
8
|
-
void executeJavaScriptIsolate(input
|
|
8
|
+
void executeJavaScriptIsolate(input, input.errorPrefix === "verifier" ? {
|
|
9
|
+
onExecutionReady: () => { if (!process.send)
|
|
10
|
+
throw new Error("Verifier process requires its startup channel."); process.send({ type: "execution_ready" }); },
|
|
11
|
+
} : undefined).then((result) => process.stdout.write(JSON.stringify({ ok: true, result })), (error) => process.stdout.write(JSON.stringify({ ok: false, executionError: error instanceof JavaScriptIsolateExecutionError, error: (error instanceof Error ? error.message : "JavaScript execution failed.").slice(0, 8_192) })));
|