openpond-sdk 0.5.4 → 0.5.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.
@@ -131,3 +131,28 @@ Published fixtures live in `fixtures/training/v2`. Providers should:
131
131
 
132
132
  The package's `check` command validates schemas, fixtures, canonical hashes,
133
133
  the built entry points, and a clean npm-style consumer install.
134
+
135
+ ### Candidate review decisions
136
+
137
+ `training.recordCandidateDecision(request)` records an explicit `accepted` or
138
+ `rejected` review of one immutable adapter output. The request pins the team,
139
+ Job, adapter, retained candidate evaluation and terminal execution receipt, plus
140
+ a nonempty reason and idempotency key. `expectedDecision: null` means no prior
141
+ review; a later review supplies the prior decision's `{ id, contentHash }`.
142
+ The service must serialize this comparison with the write. The same idempotency
143
+ key and payload returns the same record; conflicting payloads or a stale prior
144
+ decision fail with a conflict rather than overwriting history.
145
+
146
+ `training.candidateDecision({ teamId, jobId, artifact })` reads the latest review
147
+ or null. Pass `{ decision: { id, contentHash } }` as the second argument to read
148
+ a specific historical entry, and follow `request.expectedDecision` to traverse
149
+ older reviews. Each result includes the authenticated actor, timestamp, revision
150
+ and content hash. The SDK verifies the requested owner/artifact and, for writes,
151
+ the entire submitted review. Hashes detect content changes; authorization comes
152
+ from the authenticated hosted resource, not a detached signature.
153
+
154
+ The endpoints are `GET` and `POST`
155
+ `/v1/training/jobs/:job/candidates/:artifact/decision`; historical GET uses
156
+ `?decisionId=...`. These contracts require candidate-decision service support.
157
+ Acceptance and rejection retain the original training/evaluation receipts. They
158
+ do not launch inference, change a serving binding, or bypass serving eligibility.