@dsh-enhanced/task-acceptance-contract 0.1.32 → 0.1.34

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.
@@ -0,0 +1,152 @@
1
+ import { KeyObject } from 'node:crypto';
2
+ import { type ProspectiveHoldoutCertificate } from './prospective-holdout.js';
3
+ export type HoldoutCaseKind = 'replay' | 'evaluation' | 'regression';
4
+ export type CellVerdict = 'achieved' | 'not-achieved' | 'unknown';
5
+ export type ObservationStatus = 'completed' | 'failed' | 'unknown';
6
+ export type StopReason = 'expired' | 'recovered-outstanding' | 'non-quiescent' | 'execution-unknown';
7
+ export interface HoldoutCase {
8
+ readonly id: string;
9
+ readonly kind: HoldoutCaseKind;
10
+ readonly stdin: string;
11
+ readonly expectedStdout: string;
12
+ readonly expectedExitCode: number;
13
+ }
14
+ export interface HoldoutDataset {
15
+ readonly id: string;
16
+ readonly version: string;
17
+ readonly cases: readonly HoldoutCase[];
18
+ }
19
+ export interface QualificationBinding {
20
+ readonly scopeDigest: string;
21
+ readonly baselineDigest: string;
22
+ readonly candidateDigest: string;
23
+ readonly budgetDigest: string;
24
+ /** Optional exact canary admission policy/configuration pin. */
25
+ readonly admissionDigest?: string;
26
+ readonly expiresAt: number;
27
+ readonly repeats: number;
28
+ }
29
+ export interface HoldoutLimits {
30
+ readonly maxToolCalls: number;
31
+ readonly maxOutputBytes: number;
32
+ }
33
+ export interface ToolCall {
34
+ readonly name: string;
35
+ readonly inputDigest: string;
36
+ readonly outputDigest?: string;
37
+ }
38
+ export interface CellObservation {
39
+ readonly cellId: string;
40
+ readonly armDigest: string;
41
+ readonly stdout: string;
42
+ readonly exitCode: number | null;
43
+ readonly quiescent: boolean;
44
+ readonly status: ObservationStatus;
45
+ readonly artifactDigest: string;
46
+ readonly toolCalls: readonly ToolCall[];
47
+ }
48
+ export interface BeginResult {
49
+ readonly sessionId: string;
50
+ readonly planDigest: string;
51
+ readonly datasetDigest: string;
52
+ readonly publicKey: string;
53
+ readonly scopeDigest: string;
54
+ readonly baselineDigest: string;
55
+ readonly candidateDigest: string;
56
+ readonly budgetDigest: string;
57
+ readonly admissionDigest?: string;
58
+ readonly expiresAt: number;
59
+ readonly repeats: number;
60
+ readonly limits: HoldoutLimits;
61
+ readonly cellCount: number;
62
+ /** Present only for a prospective dataset generated after the binding was frozen. */
63
+ readonly prospective?: ProspectiveHoldoutCertificate;
64
+ }
65
+ export interface ProspectiveBenchmarkManifestCase {
66
+ readonly id: string;
67
+ readonly kind: HoldoutCaseKind;
68
+ readonly inputDigest: string;
69
+ readonly acceptanceDigest: string;
70
+ }
71
+ export interface ProspectiveBenchmarkManifestCell {
72
+ readonly cellId: string;
73
+ readonly armDigest: string;
74
+ readonly caseId: string;
75
+ readonly kind: HoldoutCaseKind;
76
+ readonly repeat: number;
77
+ }
78
+ /** Signed, answer-free prospective benchmark plan for a native evaluator. */
79
+ export interface ProspectiveBenchmarkManifest {
80
+ readonly protocol: 'assistant-skills/prospective-benchmark-manifest/v1';
81
+ readonly begin: BeginResult;
82
+ readonly cases: readonly ProspectiveBenchmarkManifestCase[];
83
+ readonly cells: readonly ProspectiveBenchmarkManifestCell[];
84
+ readonly signature: string;
85
+ }
86
+ export interface SignedCell {
87
+ readonly sessionId: string;
88
+ readonly planDigest: string;
89
+ readonly cellId: string;
90
+ readonly armDigest: string;
91
+ readonly stdin: string;
92
+ readonly signature: string;
93
+ }
94
+ export interface PublicCellVerdict {
95
+ readonly cellId: string;
96
+ readonly armDigest: string;
97
+ readonly caseId: string;
98
+ readonly kind: HoldoutCaseKind;
99
+ readonly repeat: number;
100
+ readonly verdict: CellVerdict;
101
+ readonly observationDigest?: string;
102
+ }
103
+ export interface HoldoutReceipt extends BeginResult {
104
+ /** False means one or more cells were made unknown by expiry, recovery, or non-quiescence. */
105
+ readonly complete: boolean;
106
+ readonly stoppedReason?: StopReason;
107
+ readonly cellVerdicts: readonly PublicCellVerdict[];
108
+ readonly observationDigest: string;
109
+ readonly signature: string;
110
+ }
111
+ export interface AuthorityOptions {
112
+ readonly dataset: HoldoutDataset;
113
+ readonly privateKey: KeyObject | string | Buffer;
114
+ readonly limits: HoldoutLimits;
115
+ readonly prospective?: ProspectiveHoldoutCertificate;
116
+ /** Deterministic clock hook for tests; production callers should omit it. */
117
+ readonly now?: () => number;
118
+ }
119
+ /** A synchronous, stateful authority. It has no Cordis dependency and never claims an OS seal or promotion authority. */
120
+ export declare class HoldoutAuthority {
121
+ #private;
122
+ private constructor();
123
+ static create(options: AuthorityOptions): HoldoutAuthority;
124
+ /** Public operator pins; inspecting them does not issue a cell or create a qualification. */
125
+ metadata(): Readonly<{
126
+ publicKey: string;
127
+ datasetDigest: string;
128
+ limits: HoldoutLimits;
129
+ }>;
130
+ static restore(serialized: string, options: AuthorityOptions): HoldoutAuthority;
131
+ begin(binding: QualificationBinding): BeginResult;
132
+ /**
133
+ * Returns the prospective plan after freeze and before any private input is
134
+ * issued. The manifest intentionally contains only commitments to inputs and
135
+ * expected outcomes, never either value itself.
136
+ */
137
+ manifest(): ProspectiveBenchmarkManifest;
138
+ next(): SignedCell | undefined;
139
+ record(observation: CellObservation): CellVerdict;
140
+ finish(): HoldoutReceipt;
141
+ serialize(): string;
142
+ private validateRestoredState;
143
+ private validateObservation;
144
+ private caseFor;
145
+ private assertBegun;
146
+ private expireOutstanding;
147
+ }
148
+ /** Verifies a signed next-cell or receipt payload with the public key emitted by begin. */
149
+ export declare function verifyHoldoutSignature(payload: Record<string, unknown>, publicKey: string): boolean;
150
+ /** Strictly verifies an answer-free manifest against its frozen authority pins. */
151
+ export declare function verifyProspectiveBenchmarkManifest(value: unknown, expectedBinding: QualificationBinding, pinnedPublicKey: string, expectedGeneratorDigest: string): value is ProspectiveBenchmarkManifest;
152
+ //# sourceMappingURL=holdout-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holdout-authority.d.ts","sourceRoot":"","sources":["../src/holdout-authority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,346 @@
1
+ import { createHash, createPrivateKey, createPublicKey, KeyObject, randomUUID, sign, verify } from 'node:crypto';
2
+ import { isProspectiveGeneratorName, prospectiveGeneratorDigest, verifyProspectiveCertificate } from './prospective-holdout.js';
3
+ const digestPattern = /^[a-f0-9]{64}$/u;
4
+ const kinds = ['replay', 'evaluation', 'regression'];
5
+ const maxStringBytes = 256 * 1024;
6
+ function canonical(value) {
7
+ if (value === null || typeof value !== 'object')
8
+ return JSON.stringify(value);
9
+ if (Array.isArray(value))
10
+ return `[${value.map(canonical).join(',')}]`;
11
+ const record = value;
12
+ return `{${Object.keys(record).sort().map(key => `${JSON.stringify(key)}:${canonical(record[key])}`).join(',')}}`;
13
+ }
14
+ function sha256(value) {
15
+ return createHash('sha256').update(canonical(value)).digest('hex');
16
+ }
17
+ function byteLength(value) { return Buffer.byteLength(value, 'utf8'); }
18
+ function signature(payload, privateKey) {
19
+ return sign(null, Buffer.from(canonical(payload)), privateKey).toString('base64url');
20
+ }
21
+ function validDigest(value) { return typeof value === 'string' && digestPattern.test(value); }
22
+ function assert(condition, message) { if (!condition)
23
+ throw new Error(`holdout-authority: ${message}`); }
24
+ function exact(value, required, optional = []) {
25
+ if (!value || typeof value !== 'object' || Array.isArray(value) || Object.getPrototypeOf(value) !== Object.prototype || Object.getOwnPropertySymbols(value).length)
26
+ return false;
27
+ const descriptors = Object.getOwnPropertyDescriptors(value);
28
+ return required.every(key => Object.hasOwn(descriptors, key)) && Object.entries(descriptors).every(([key, descriptor]) => (required.includes(key) || optional.includes(key)) && descriptor.enumerable && 'value' in descriptor);
29
+ }
30
+ function validateLimits(limits) {
31
+ assert(exact(limits, ['maxToolCalls', 'maxOutputBytes']), 'limits shape is invalid');
32
+ assert(Number.isInteger(limits.maxToolCalls) && limits.maxToolCalls >= 1 && limits.maxToolCalls <= 32, 'maxToolCalls must be an integer from 1 to 32');
33
+ assert(Number.isInteger(limits.maxOutputBytes) && limits.maxOutputBytes >= 0 && limits.maxOutputBytes <= 262144, 'maxOutputBytes must be an integer no greater than 262144');
34
+ }
35
+ function validateDataset(dataset, limits) {
36
+ assert(exact(dataset, ['id', 'version', 'cases']), 'dataset shape is invalid');
37
+ assert(dataset && typeof dataset.id === 'string' && dataset.id.length > 0 && dataset.id.length <= 128, 'dataset id is invalid');
38
+ assert(typeof dataset.version === 'string' && dataset.version.length > 0 && dataset.version.length <= 128, 'dataset version is invalid');
39
+ assert(Array.isArray(dataset.cases) && dataset.cases.length >= 3 && dataset.cases.length <= 12, 'dataset requires 3 to 12 cases');
40
+ const ids = new Set();
41
+ const seenKinds = new Set();
42
+ let total = byteLength(dataset.id) + byteLength(dataset.version);
43
+ for (const item of dataset.cases) {
44
+ assert(exact(item, ['id', 'kind', 'stdin', 'expectedStdout', 'expectedExitCode']), 'case shape is invalid');
45
+ assert(item && typeof item.id === 'string' && item.id.length > 0 && item.id.length <= 128 && !ids.has(item.id), 'case ids must be unique bounded strings');
46
+ ids.add(item.id);
47
+ assert(kinds.includes(item.kind), 'case kind is invalid');
48
+ seenKinds.add(item.kind);
49
+ assert(typeof item.stdin === 'string' && typeof item.expectedStdout === 'string', 'case input and expected output must be strings');
50
+ assert(Number.isInteger(item.expectedExitCode) && item.expectedExitCode >= 0 && item.expectedExitCode <= 255, 'expected exit code must be an integer from 0 to 255');
51
+ assert(byteLength(item.expectedStdout) <= limits.maxOutputBytes, 'expected output exceeds maxOutputBytes');
52
+ total += byteLength(item.id) + byteLength(item.stdin) + byteLength(item.expectedStdout);
53
+ }
54
+ assert(seenKinds.size === kinds.length, 'dataset must contain replay, evaluation, and regression cases');
55
+ assert(total <= maxStringBytes, 'dataset strings exceed 256KiB');
56
+ }
57
+ function validateBinding(binding, now) {
58
+ assert(exact(binding, ['scopeDigest', 'baselineDigest', 'candidateDigest', 'budgetDigest', 'expiresAt', 'repeats'], ['admissionDigest']), 'binding shape is invalid');
59
+ for (const value of [binding.scopeDigest, binding.baselineDigest, binding.candidateDigest, binding.budgetDigest])
60
+ assert(validDigest(value), 'binding digests must be lowercase SHA-256 hex');
61
+ assert(binding.admissionDigest === undefined || validDigest(binding.admissionDigest), 'admissionDigest must be lowercase SHA-256 hex');
62
+ assert(Number.isInteger(binding.repeats) && binding.repeats >= 2 && binding.repeats <= 4, 'repeats must be an integer from 2 to 4');
63
+ assert(Number.isSafeInteger(binding.expiresAt) && binding.expiresAt > now && binding.expiresAt <= now + 7 * 24 * 60 * 60 * 1000, 'expiresAt must be a future timestamp within seven days');
64
+ }
65
+ function bindingFromBegin(begin) {
66
+ return { scopeDigest: begin.scopeDigest, baselineDigest: begin.baselineDigest, candidateDigest: begin.candidateDigest, budgetDigest: begin.budgetDigest,
67
+ ...(begin.admissionDigest === undefined ? {} : { admissionDigest: begin.admissionDigest }), expiresAt: begin.expiresAt, repeats: begin.repeats };
68
+ }
69
+ function inputDigest(stdin) { return createHash('sha256').update(Buffer.from(stdin, 'utf8')).digest('hex'); }
70
+ function acceptanceDigest(expectedStdout, expectedExitCode) { return sha256({ expectedStdout, expectedExitCode }); }
71
+ /** A synchronous, stateful authority. It has no Cordis dependency and never claims an OS seal or promotion authority. */
72
+ export class HoldoutAuthority {
73
+ #dataset;
74
+ #datasetDigest;
75
+ #privateKey;
76
+ #publicKey;
77
+ #limits;
78
+ #prospective;
79
+ #now;
80
+ #createdAt;
81
+ #begin;
82
+ #cells = [];
83
+ #stopped = false;
84
+ #stoppedReason;
85
+ constructor(options) {
86
+ validateLimits(options.limits);
87
+ validateDataset(options.dataset, options.limits);
88
+ this.#dataset = structuredClone(options.dataset);
89
+ this.#datasetDigest = sha256(this.#dataset);
90
+ this.#privateKey = options.privateKey instanceof KeyObject ? options.privateKey : createPrivateKey(options.privateKey);
91
+ assert(this.#privateKey.type === 'private' && this.#privateKey.asymmetricKeyType === 'ed25519', 'private key must be Ed25519');
92
+ this.#publicKey = createPublicKey(this.#privateKey).export({ format: 'pem', type: 'spki' }).toString();
93
+ this.#limits = Object.freeze({ ...options.limits });
94
+ if (options.prospective !== undefined) {
95
+ assert(isProspectiveGeneratorName(options.dataset.version), 'prospective dataset generator is invalid');
96
+ assert(options.prospective.generatorDigest === prospectiveGeneratorDigest(options.dataset.version), 'prospective certificate generator does not match dataset');
97
+ if (options.prospective.profileVersion !== undefined || options.prospective.profileDigest !== undefined) {
98
+ assert(options.prospective.profileVersion === options.dataset.version && options.prospective.profileDigest === options.prospective.generatorDigest, 'prospective certificate profile does not match dataset');
99
+ }
100
+ assert(verifyProspectiveCertificate(options.prospective, options.prospective.binding, this.#publicKey, options.prospective.generatorDigest), 'prospective certificate is invalid');
101
+ assert(options.prospective.datasetDigest === this.#datasetDigest, 'prospective certificate dataset does not match');
102
+ this.#prospective = Object.freeze(structuredClone(options.prospective));
103
+ }
104
+ this.#now = options.now ?? Date.now;
105
+ this.#createdAt = this.#now();
106
+ }
107
+ static create(options) { return new HoldoutAuthority(options); }
108
+ /** Public operator pins; inspecting them does not issue a cell or create a qualification. */
109
+ metadata() {
110
+ return Object.freeze({ publicKey: this.#publicKey, datasetDigest: this.#datasetDigest, limits: this.#limits });
111
+ }
112
+ static restore(serialized, options) {
113
+ assert(typeof serialized === 'string' && byteLength(serialized) <= 1024 * 1024, 'serialized state is invalid');
114
+ let parsed;
115
+ try {
116
+ parsed = JSON.parse(serialized);
117
+ }
118
+ catch {
119
+ throw new Error('holdout-authority: serialized state is invalid JSON');
120
+ }
121
+ assert(parsed && parsed.state && typeof parsed.signature === 'string', 'serialized state is malformed');
122
+ const authority = new HoldoutAuthority(options);
123
+ assert(parsed.state.version === 1 && parsed.state.datasetDigest === authority.#datasetDigest && parsed.state.publicKey === authority.#publicKey && canonical(parsed.state.limits) === canonical(authority.#limits), 'serialized state does not match operator dataset, key, or limits');
124
+ assert(verify(null, Buffer.from(canonical(parsed.state)), createPublicKey(options.privateKey), Buffer.from(parsed.signature, 'base64url')), 'serialized state signature is invalid');
125
+ if (parsed.state.begin)
126
+ authority.#begin = parsed.state.begin;
127
+ authority.#cells = parsed.state.cells.map(cell => ({ ...cell }));
128
+ authority.#stopped = parsed.state.stopped;
129
+ if (parsed.state.stoppedReason)
130
+ authority.#stoppedReason = parsed.state.stoppedReason;
131
+ assert(Number.isSafeInteger(parsed.state.createdAt), 'serialized creation timestamp is invalid');
132
+ authority.#createdAt = parsed.state.createdAt;
133
+ authority.validateRestoredState();
134
+ // An issued cell could have run while the authority was down. It is never reissued or accepted after recovery.
135
+ const hadOutstanding = authority.#cells.some(cell => cell.issued && !cell.verdict);
136
+ for (const cell of authority.#cells)
137
+ if (cell.issued && !cell.verdict)
138
+ cell.verdict = 'unknown';
139
+ if (hadOutstanding)
140
+ authority.expireOutstanding('recovered-outstanding');
141
+ return authority;
142
+ }
143
+ begin(binding) {
144
+ assert(!this.#begin, 'qualification has already begun');
145
+ assert(binding?.expiresAt > this.#now(), 'expiresAt must be a finite future timestamp');
146
+ validateBinding(binding, this.#createdAt);
147
+ const sessionId = randomUUID();
148
+ const cells = [];
149
+ let index = 0;
150
+ for (let repeat = 1; repeat <= binding.repeats; repeat++)
151
+ for (const item of this.#dataset.cases) {
152
+ const arms = (index++ % 2 === 0) ? [binding.baselineDigest, binding.candidateDigest] : [binding.candidateDigest, binding.baselineDigest];
153
+ for (const armDigest of arms)
154
+ cells.push({ cellId: `cell-${cells.length + 1}`, armDigest, caseId: item.id, kind: item.kind, repeat, issued: false });
155
+ }
156
+ assert(binding.baselineDigest !== binding.candidateDigest, 'baseline and candidate digests must differ');
157
+ const planDigest = sha256({ sessionId, datasetDigest: this.#datasetDigest, binding, limits: this.#limits, cells: cells.map(({ cellId, armDigest, caseId, kind, repeat }) => ({ cellId, armDigest, caseId, kind, repeat })) });
158
+ if (this.#prospective)
159
+ assert(verifyProspectiveCertificate(this.#prospective, binding, this.#publicKey, this.#prospective.generatorDigest), 'prospective certificate binding does not match');
160
+ this.#begin = Object.freeze({ sessionId, planDigest, datasetDigest: this.#datasetDigest, publicKey: this.#publicKey, ...binding, limits: this.#limits, cellCount: cells.length, ...(this.#prospective ? { prospective: this.#prospective } : {}) });
161
+ this.#cells = cells;
162
+ return { ...this.#begin };
163
+ }
164
+ /**
165
+ * Returns the prospective plan after freeze and before any private input is
166
+ * issued. The manifest intentionally contains only commitments to inputs and
167
+ * expected outcomes, never either value itself.
168
+ */
169
+ manifest() {
170
+ this.assertBegun();
171
+ assert(this.#begin.prospective !== undefined, 'prospective manifest requires a prospective qualification');
172
+ assert(!this.#stopped && this.#now() < this.#begin.expiresAt, 'prospective manifest is unavailable after expiry or stop');
173
+ assert(!this.#cells.some(cell => cell.issued), 'prospective manifest is unavailable after cell issuance');
174
+ const cases = this.#dataset.cases.map(item => ({ id: item.id, kind: item.kind, inputDigest: inputDigest(item.stdin), acceptanceDigest: acceptanceDigest(item.expectedStdout, item.expectedExitCode) }));
175
+ const cells = this.#cells.map(({ cellId, armDigest, caseId, kind, repeat }) => ({ cellId, armDigest, caseId, kind, repeat }));
176
+ const unsigned = { protocol: 'assistant-skills/prospective-benchmark-manifest/v1', begin: this.#begin, cases, cells };
177
+ return { ...unsigned, signature: signature(unsigned, this.#privateKey) };
178
+ }
179
+ next() {
180
+ this.assertBegun();
181
+ if (this.#stopped || this.#now() >= this.#begin.expiresAt) {
182
+ this.expireOutstanding('expired');
183
+ return undefined;
184
+ }
185
+ assert(!this.#cells.some(item => item.issued && !item.verdict), 'an issued cell must be settled before requesting another');
186
+ const cell = this.#cells.find(item => !item.issued && !item.verdict);
187
+ if (!cell)
188
+ return undefined;
189
+ cell.issued = true;
190
+ const stdin = this.caseFor(cell).stdin;
191
+ const unsigned = { sessionId: this.#begin.sessionId, planDigest: this.#begin.planDigest, cellId: cell.cellId, armDigest: cell.armDigest, stdin };
192
+ return { ...unsigned, signature: signature(unsigned, this.#privateKey) };
193
+ }
194
+ record(observation) {
195
+ this.assertBegun();
196
+ assert(!this.#stopped, 'qualification is stopped');
197
+ if (this.#now() >= this.#begin.expiresAt) {
198
+ this.expireOutstanding('expired');
199
+ throw new Error('holdout-authority: qualification has expired');
200
+ }
201
+ this.validateObservation(observation);
202
+ const cell = this.#cells.find(item => item.cellId === observation.cellId);
203
+ assert(cell && cell.issued, 'cell was not issued');
204
+ assert(!cell.verdict, 'cell has already been settled');
205
+ assert(cell.armDigest === observation.armDigest, 'cell arm digest does not match');
206
+ const expected = this.caseFor(cell);
207
+ const verdict = !observation.quiescent || observation.status === 'unknown' || observation.exitCode === null
208
+ ? 'unknown'
209
+ : observation.stdout === expected.expectedStdout && observation.exitCode === expected.expectedExitCode ? 'achieved' : 'not-achieved';
210
+ cell.verdict = verdict;
211
+ cell.observationDigest = sha256({ cellId: observation.cellId, armDigest: observation.armDigest, stdout: observation.stdout, exitCode: observation.exitCode, quiescent: observation.quiescent, status: observation.status, artifactDigest: observation.artifactDigest, toolCalls: observation.toolCalls });
212
+ if (verdict === 'unknown')
213
+ this.expireOutstanding(!observation.quiescent ? 'non-quiescent' : 'execution-unknown');
214
+ return verdict;
215
+ }
216
+ finish() {
217
+ this.assertBegun();
218
+ if (this.#now() >= this.#begin.expiresAt)
219
+ this.expireOutstanding('expired');
220
+ assert(this.#cells.every(cell => !!cell.verdict), 'all cells must be terminal before finish');
221
+ const cellVerdicts = this.#cells.map(({ cellId, armDigest, caseId, kind, repeat, verdict, observationDigest }) => ({ cellId, armDigest, caseId, kind, repeat, verdict: verdict, ...(observationDigest ? { observationDigest } : {}) }));
222
+ const observationDigest = sha256(cellVerdicts.map(cell => ({ cellId: cell.cellId, observationDigest: cell.observationDigest ?? null, verdict: cell.verdict })));
223
+ const unsigned = { ...this.#begin, complete: !cellVerdicts.some(cell => cell.verdict === 'unknown'), ...(this.#stoppedReason ? { stoppedReason: this.#stoppedReason } : {}), cellVerdicts, observationDigest };
224
+ return { ...unsigned, signature: signature(unsigned, this.#privateKey) };
225
+ }
226
+ serialize() {
227
+ const state = { version: 1, datasetDigest: this.#datasetDigest, publicKey: this.#publicKey, createdAt: this.#createdAt, limits: this.#limits, ...(this.#begin ? { begin: this.#begin } : {}), cells: this.#cells, stopped: this.#stopped, ...(this.#stoppedReason ? { stoppedReason: this.#stoppedReason } : {}) };
228
+ return canonical({ state, signature: signature(state, this.#privateKey) });
229
+ }
230
+ validateRestoredState() {
231
+ if (!this.#begin) {
232
+ assert(this.#cells.length === 0 && !this.#stopped && !this.#stoppedReason, 'unbegun serialized state is inconsistent');
233
+ return;
234
+ }
235
+ assert(exact(this.#begin, ['sessionId', 'planDigest', 'datasetDigest', 'publicKey', 'scopeDigest', 'baselineDigest', 'candidateDigest', 'budgetDigest', 'expiresAt', 'repeats', 'limits', 'cellCount'], ['admissionDigest', 'prospective']), 'restored begin shape is invalid');
236
+ const restoredBinding = bindingFromBegin(this.#begin);
237
+ validateBinding(restoredBinding, this.#createdAt);
238
+ assert(typeof this.#begin.sessionId === 'string' && validDigest(this.#begin.planDigest) && Number.isSafeInteger(this.#begin.cellCount), 'restored begin identity is invalid');
239
+ assert(this.#begin.baselineDigest !== this.#begin.candidateDigest && this.#begin.datasetDigest === this.#datasetDigest && this.#begin.publicKey === this.#publicKey && canonical(this.#begin.limits) === canonical(this.#limits), 'restored qualification binding is invalid');
240
+ if (this.#prospective)
241
+ assert(this.#begin.prospective && this.#begin.prospective.generatorDigest === this.#prospective.generatorDigest && verifyProspectiveCertificate(this.#begin.prospective, restoredBinding, this.#publicKey, this.#prospective.generatorDigest), 'restored prospective certificate is invalid');
242
+ else
243
+ assert(this.#begin.prospective === undefined, 'restored prospective certificate is inconsistent');
244
+ const expectedCount = this.#dataset.cases.length * this.#begin.repeats * 2;
245
+ assert(this.#cells.length === expectedCount && this.#begin.cellCount === expectedCount, 'restored cell count is invalid');
246
+ const seen = new Set();
247
+ for (const cell of this.#cells) {
248
+ assert(!seen.has(cell.cellId) && /^cell-[1-9][0-9]*$/u.test(cell.cellId) && validDigest(cell.armDigest) && this.#dataset.cases.some(item => item.id === cell.caseId) && kinds.includes(cell.kind) && Number.isInteger(cell.repeat) && cell.repeat >= 1 && cell.repeat <= this.#begin.repeats && typeof cell.issued === 'boolean' && (cell.verdict === undefined || ['achieved', 'not-achieved', 'unknown'].includes(cell.verdict)), 'restored cell is invalid');
249
+ seen.add(cell.cellId);
250
+ }
251
+ const planDigest = sha256({ sessionId: this.#begin.sessionId, datasetDigest: this.#datasetDigest, binding: restoredBinding, limits: this.#limits, cells: this.#cells.map(({ cellId, armDigest, caseId, kind, repeat }) => ({ cellId, armDigest, caseId, kind, repeat })) });
252
+ assert(planDigest === this.#begin.planDigest, 'restored plan digest is invalid');
253
+ }
254
+ validateObservation(observation) {
255
+ assert(exact(observation, ['cellId', 'armDigest', 'stdout', 'exitCode', 'quiescent', 'status', 'artifactDigest', 'toolCalls']), 'observation shape is invalid');
256
+ assert(observation && typeof observation.cellId === 'string' && /^cell-[1-9][0-9]*$/u.test(observation.cellId) && validDigest(observation.armDigest), 'observation cell identity is invalid');
257
+ assert(typeof observation.stdout === 'string' && byteLength(observation.stdout) <= this.#limits.maxOutputBytes, 'observation stdout exceeds maxOutputBytes');
258
+ assert((observation.exitCode === null || (Number.isInteger(observation.exitCode) && observation.exitCode >= 0 && observation.exitCode <= 255)) && typeof observation.quiescent === 'boolean' && ['completed', 'failed', 'unknown'].includes(observation.status), 'observation execution status is invalid');
259
+ assert(validDigest(observation.artifactDigest), 'observation artifact digest is invalid');
260
+ assert(Array.isArray(observation.toolCalls) && observation.toolCalls.length <= this.#limits.maxToolCalls, 'observation tool calls exceed maxToolCalls');
261
+ let total = byteLength(observation.stdout);
262
+ for (const call of observation.toolCalls) {
263
+ assert(exact(call, ['name', 'inputDigest'], ['outputDigest']), 'tool observation shape is invalid');
264
+ assert(call && typeof call.name === 'string' && call.name.length > 0 && call.name.length <= 128 && validDigest(call.inputDigest) && (call.outputDigest === undefined || validDigest(call.outputDigest)), 'observation tool call is invalid');
265
+ total += byteLength(call.name) + byteLength(call.inputDigest) + (call.outputDigest ? byteLength(call.outputDigest) : 0);
266
+ }
267
+ assert(total <= maxStringBytes, 'observation strings exceed 256KiB');
268
+ }
269
+ caseFor(cell) { return this.#dataset.cases.find(item => item.id === cell.caseId); }
270
+ assertBegun() { assert(this.#begin, 'qualification has not begun'); }
271
+ expireOutstanding(reason) { for (const cell of this.#cells)
272
+ if (!cell.verdict)
273
+ cell.verdict = 'unknown'; this.#stopped = true; this.#stoppedReason ??= reason; }
274
+ }
275
+ /** Verifies a signed next-cell or receipt payload with the public key emitted by begin. */
276
+ export function verifyHoldoutSignature(payload, publicKey) {
277
+ const { signature: value, ...unsigned } = payload;
278
+ try {
279
+ return typeof value === 'string' && typeof publicKey === 'string' && verify(null, Buffer.from(canonical(unsigned)), publicKey, Buffer.from(value, 'base64url'));
280
+ }
281
+ catch {
282
+ return false;
283
+ }
284
+ }
285
+ /** Strictly verifies an answer-free manifest against its frozen authority pins. */
286
+ export function verifyProspectiveBenchmarkManifest(value, expectedBinding, pinnedPublicKey, expectedGeneratorDigest) {
287
+ if (!exact(value, ['protocol', 'begin', 'cases', 'cells', 'signature']) || value.protocol !== 'assistant-skills/prospective-benchmark-manifest/v1'
288
+ || typeof value.signature !== 'string' || value.signature.length < 32 || value.signature.length > 512
289
+ || !validDigest(expectedGeneratorDigest))
290
+ return false;
291
+ const manifest = value;
292
+ const begin = manifest.begin;
293
+ if (!exact(begin, ['sessionId', 'planDigest', 'datasetDigest', 'publicKey', 'scopeDigest', 'baselineDigest', 'candidateDigest', 'budgetDigest', 'expiresAt', 'repeats', 'limits', 'cellCount', 'prospective'], ['admissionDigest']))
294
+ return false;
295
+ const { expiresAt, repeats } = begin;
296
+ if (typeof begin.sessionId !== 'string' || begin.sessionId.length < 1 || begin.sessionId.length > 128 || !validDigest(begin.planDigest) || !validDigest(begin.datasetDigest)
297
+ || begin.publicKey !== pinnedPublicKey || !validDigest(begin.scopeDigest) || !validDigest(begin.baselineDigest) || !validDigest(begin.candidateDigest) || !validDigest(begin.budgetDigest)
298
+ || begin.admissionDigest !== undefined && !validDigest(begin.admissionDigest) || begin.baselineDigest === begin.candidateDigest
299
+ || !Number.isSafeInteger(expiresAt) || typeof repeats !== 'number' || !Number.isInteger(repeats) || repeats < 2 || repeats > 4
300
+ || !Number.isSafeInteger(begin.cellCount) || !exact(begin.limits, ['maxToolCalls', 'maxOutputBytes']))
301
+ return false;
302
+ const verifiedBegin = begin;
303
+ const binding = bindingFromBegin(verifiedBegin);
304
+ try {
305
+ validateLimits(begin.limits);
306
+ }
307
+ catch {
308
+ return false;
309
+ }
310
+ if (canonical(binding) !== canonical(expectedBinding) || !verifyProspectiveCertificate(begin.prospective, expectedBinding, pinnedPublicKey, expectedGeneratorDigest)
311
+ || begin.prospective.datasetDigest !== begin.datasetDigest)
312
+ return false;
313
+ if (!Array.isArray(manifest.cases) || manifest.cases.length < 3 || manifest.cases.length > 12 || !Array.isArray(manifest.cells) || manifest.cells.length !== verifiedBegin.cellCount || manifest.cells.length !== manifest.cases.length * verifiedBegin.repeats * 2)
314
+ return false;
315
+ const cases = [];
316
+ const caseIds = new Set(), caseKinds = new Set();
317
+ for (const item of manifest.cases) {
318
+ if (!exact(item, ['id', 'kind', 'inputDigest', 'acceptanceDigest']) || typeof item.id !== 'string' || item.id.length < 1 || item.id.length > 128 || caseIds.has(item.id)
319
+ || !kinds.includes(item.kind) || !validDigest(item.inputDigest) || !validDigest(item.acceptanceDigest))
320
+ return false;
321
+ caseIds.add(item.id);
322
+ caseKinds.add(item.kind);
323
+ cases.push(item);
324
+ }
325
+ if (caseKinds.size !== kinds.length)
326
+ return false;
327
+ const expectedCells = [];
328
+ let index = 0;
329
+ for (let repeat = 1; repeat <= verifiedBegin.repeats; repeat++)
330
+ for (const item of cases) {
331
+ const arms = (index++ % 2 === 0) ? [binding.baselineDigest, binding.candidateDigest] : [binding.candidateDigest, binding.baselineDigest];
332
+ for (const armDigest of arms)
333
+ expectedCells.push({ cellId: `cell-${expectedCells.length + 1}`, armDigest, caseId: item.id, kind: item.kind, repeat });
334
+ }
335
+ for (let index = 0; index < manifest.cells.length; index++) {
336
+ const cell = manifest.cells[index], expected = expectedCells[index];
337
+ if (!exact(cell, ['cellId', 'armDigest', 'caseId', 'kind', 'repeat']) || canonical(cell) !== canonical(expected))
338
+ return false;
339
+ }
340
+ const cells = manifest.cells;
341
+ const planDigest = sha256({ sessionId: begin.sessionId, datasetDigest: begin.datasetDigest, binding, limits: begin.limits, cells });
342
+ if (planDigest !== begin.planDigest)
343
+ return false;
344
+ return verifyHoldoutSignature(manifest, pinnedPublicKey);
345
+ }
346
+ //# sourceMappingURL=holdout-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"holdout-authority.js","sourceRoot":"","sources":["../src/holdout-authority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { KeyObject } from 'node:crypto';
2
+ import type { HoldoutDataset, QualificationBinding } from './holdout-authority.js';
3
+ declare const protocol: "assistant-skills/prospective-holdout/v1";
4
+ export type ProspectiveGeneratorName = 'order-summary/v1' | 'order-summary/v2' | 'template-render/v1' | 'template-render-jsonl/v1' | 'dependency-topological-order/v1';
5
+ export declare const prospectiveGeneratorNames: readonly ProspectiveGeneratorName[];
6
+ export declare const generatorDigest: string;
7
+ export declare function isProspectiveGeneratorName(value: unknown): value is ProspectiveGeneratorName;
8
+ export declare function prospectiveGeneratorDigest(name: ProspectiveGeneratorName): string;
9
+ export declare function prospectiveGeneratorProfile(name: ProspectiveGeneratorName): Readonly<{
10
+ version: ProspectiveGeneratorName;
11
+ digest: string;
12
+ }>;
13
+ export interface ProspectiveHoldoutCertificate {
14
+ readonly protocol: typeof protocol;
15
+ readonly freezeId: string;
16
+ readonly binding: QualificationBinding;
17
+ readonly generatorDigest: string;
18
+ /** Added after v1/v2 shipped; omitted only by certificates restored from those legacy versions. */
19
+ readonly profileVersion?: ProspectiveGeneratorName;
20
+ /** Equal to the digest of the exact profileVersion semantics. */
21
+ readonly profileDigest?: string;
22
+ readonly datasetDigest: string;
23
+ readonly publicKey: string;
24
+ readonly frozenSequence: 1;
25
+ readonly generatedSequence: 2;
26
+ readonly signature: string;
27
+ }
28
+ export declare function prospectiveDatasetDigest(dataset: HoldoutDataset): string;
29
+ /** Creates private random cases after an immutable qualification binding has been frozen. */
30
+ export declare function generateProspectiveDataset(name?: ProspectiveGeneratorName): HoldoutDataset;
31
+ export declare function createProspectiveCertificate(binding: QualificationBinding, dataset: HoldoutDataset, privateKey: KeyObject | string | Buffer, freezeId: string): ProspectiveHoldoutCertificate;
32
+ /** Strictly checks a prospective certificate and its binding to the pinned authority key. */
33
+ export declare function verifyProspectiveCertificate(value: unknown, expectedBinding: QualificationBinding, pinnedKey: string, expectedGeneratorDigest: string): value is ProspectiveHoldoutCertificate;
34
+ export {};
35
+ //# sourceMappingURL=prospective-holdout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prospective-holdout.d.ts","sourceRoot":"","sources":["../src/prospective-holdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,SAAS,EAAwC,MAAM,aAAa,CAAA;AAC5H,OAAO,KAAK,EAAe,cAAc,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAG/F,QAAA,MAAM,QAAQ,EAAG,yCAAkD,CAAA;AACnE,MAAM,MAAM,wBAAwB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,iCAAiC,CAAA;AACtK,eAAO,MAAM,yBAAyB,EAAE,SAAS,wBAAwB,EAAiJ,CAAA;AAG1N,eAAO,MAAM,eAAe,QAA2Q,CAAA;AAKvS,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAE5F;AACD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,CAOjF;AACD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,wBAAwB,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAE3I;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,QAAQ,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,mGAAmG;IACnG,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAA;IAClD,iEAAiE;IACjE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAA;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAQD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAyE;AA4HlJ,6FAA6F;AAC7F,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,wBAAwC,GAAG,cAAc,CAmCzG;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,6BAA6B,CAS7L;AAED,6FAA6F;AAC7F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,GAAG,KAAK,IAAI,6BAA6B,CAiB9L"}
@@ -0,0 +1,254 @@
1
+ import { createHash, createPrivateKey, createPublicKey, KeyObject, randomBytes, randomInt, sign, verify } from 'node:crypto';
2
+ const digestPattern = /^[a-f0-9]{64}$/u;
3
+ const protocol = 'assistant-skills/prospective-holdout/v1';
4
+ export const prospectiveGeneratorNames = Object.freeze(['order-summary/v1', 'order-summary/v2', 'template-render/v1', 'template-render-jsonl/v1', 'dependency-topological-order/v1']);
5
+ const generatorName = 'order-summary/v1';
6
+ export const generatorDigest = createHash('sha256').update('assistant-skills/prospective-holdout/order-summary/v1: stdin JSON array of orders; cancelled orders excluded; integer cents summed by currency; sorted JSON object plus newline; CSPRNG cases; replay/evaluation/regression').digest('hex');
7
+ const generatorV2Digest = createHash('sha256').update('assistant-skills/prospective-holdout/order-summary/v2: stdin JSON array of orders; cancelled orders excluded; integer amountCents summed by currency including negative values; sorted JSON object plus newline; explicit empty case and randomized negative evaluation with cancellation and accumulation; CSPRNG cases; replay/evaluation/regression').digest('hex');
8
+ const templateRenderV1Digest = createHash('sha256').update('assistant-skills/prospective-holdout/template-render/v1: stdin JSON object with template string and string values object; replace known {{ascii_key}} placeholders literally in one non-recursive pass; preserve unknown placeholders; append newline; CSPRNG cases; replay/evaluation/regression').digest('hex');
9
+ const templateRenderJsonlV1Digest = createHash('sha256').update('assistant-skills/prospective-holdout/template-render-jsonl/v1: stdin NDJSON of one JSON object per physical line with template string and string values object; process each record independently; replace known {{ascii_key}} placeholders literally in one non-recursive pass; preserve unknown placeholders; emit one rendered line per input record; CSPRNG 1/2/3-record replay/evaluation/regression cases with Unicode values and optional final input newline; replay/evaluation/regression').digest('hex');
10
+ const dependencyTopologicalOrderV1Digest = createHash('sha256').update('assistant-skills/prospective-holdout/dependency-topological-order/v1: stdin lines; exactly two whitespace-separated labels each matching [a-z][a-z0-9]{1,31} (2 through 32 lowercase ASCII alphanumeric characters, letter first) form a directed edge; malformed and blank lines ignored; duplicate edges deduplicated; nodes are edge endpoints; emit lexicographically smallest topological order one node per line or CYCLE newline; bounded CSPRNG labels, edge order, and irrelevant lines; replay DAG, evaluation dynamic lexical tie, regression cycle').digest('hex');
11
+ export function isProspectiveGeneratorName(value) {
12
+ return typeof value === 'string' && prospectiveGeneratorNames.includes(value);
13
+ }
14
+ export function prospectiveGeneratorDigest(name) {
15
+ if (name === 'order-summary/v1')
16
+ return generatorDigest;
17
+ if (name === 'order-summary/v2')
18
+ return generatorV2Digest;
19
+ if (name === 'template-render/v1')
20
+ return templateRenderV1Digest;
21
+ if (name === 'template-render-jsonl/v1')
22
+ return templateRenderJsonlV1Digest;
23
+ if (name === 'dependency-topological-order/v1')
24
+ return dependencyTopologicalOrderV1Digest;
25
+ throw new Error('prospective-holdout: unsupported generator');
26
+ }
27
+ export function prospectiveGeneratorProfile(name) {
28
+ return Object.freeze({ version: name, digest: prospectiveGeneratorDigest(name) });
29
+ }
30
+ function canonical(value) {
31
+ if (value === null || typeof value !== 'object')
32
+ return JSON.stringify(value);
33
+ if (Array.isArray(value))
34
+ return `[${value.map(canonical).join(',')}]`;
35
+ const record = value;
36
+ return `{${Object.keys(record).sort().map(key => `${JSON.stringify(key)}:${canonical(record[key])}`).join(',')}}`;
37
+ }
38
+ export function prospectiveDatasetDigest(dataset) { return createHash('sha256').update(canonical(dataset)).digest('hex'); }
39
+ function plain(value) { return value !== null && typeof value === 'object' && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype && Object.getOwnPropertySymbols(value).length === 0 && Object.values(Object.getOwnPropertyDescriptors(value)).every(item => item.enumerable && 'value' in item); }
40
+ function exact(value, required) { return plain(value) && required.every(key => Object.hasOwn(value, key)) && Object.keys(value).length === required.length && Object.keys(value).every(key => required.includes(key)); }
41
+ function validBinding(value) {
42
+ const required = ['scopeDigest', 'baselineDigest', 'candidateDigest', 'budgetDigest', 'expiresAt', 'repeats'];
43
+ return (exact(value, required) || exact(value, [...required, 'admissionDigest']))
44
+ && [value.scopeDigest, value.baselineDigest, value.candidateDigest, value.budgetDigest].every(item => typeof item === 'string' && digestPattern.test(item))
45
+ && (value.admissionDigest === undefined || typeof value.admissionDigest === 'string' && digestPattern.test(value.admissionDigest))
46
+ && typeof value.expiresAt === 'number' && Number.isSafeInteger(value.expiresAt) && value.expiresAt > 0
47
+ && typeof value.repeats === 'number' && Number.isInteger(value.repeats) && value.repeats >= 2 && value.repeats <= 4;
48
+ }
49
+ function same(left, right) { return canonical(left) === canonical(right); }
50
+ function currency() { return ['AUD', 'CAD', 'EUR', 'GBP', 'JPY', 'USD'][randomInt(6)]; }
51
+ function order(index) {
52
+ const states = ['paid', 'paid', 'pending', 'cancelled'];
53
+ return { id: `o-${index}-${randomBytes(4).toString('hex')}`, currency: currency(), cents: randomInt(0, 250_001), status: states[randomInt(states.length)] };
54
+ }
55
+ function expected(orders) {
56
+ const totals = {};
57
+ for (const item of orders)
58
+ if (item.status !== 'cancelled')
59
+ totals[item.currency] = (totals[item.currency] ?? 0) + item.cents;
60
+ return JSON.stringify(Object.fromEntries(Object.entries(totals).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0))) + '\n';
61
+ }
62
+ function v2order(index) {
63
+ const states = ['paid', 'paid', 'pending', 'cancelled'];
64
+ return { id: `v2-${index}-${randomBytes(4).toString('hex')}`, currency: currency(), amountCents: randomInt(-250_000, 250_001), status: states[randomInt(states.length)] };
65
+ }
66
+ function v2expected(orders) {
67
+ const totals = {};
68
+ for (const item of orders)
69
+ if (item.status !== 'cancelled')
70
+ totals[item.currency] = (totals[item.currency] ?? 0) + item.amountCents;
71
+ return JSON.stringify(Object.fromEntries(Object.entries(totals).sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0))) + '\n';
72
+ }
73
+ function templateInput(kind) {
74
+ const token = randomBytes(8).toString('hex'), secondary = randomBytes(6).toString('hex');
75
+ if (kind === 'replay')
76
+ return { template: `plain-${token}: no substitutions`, values: { unused: secondary } };
77
+ if (kind === 'evaluation')
78
+ return {
79
+ template: `release={{release}};again={{release}};unknown={{missing}};literal={{literal}}`,
80
+ values: { release: `r-${token}`, literal: `{{release}}-${secondary}` },
81
+ };
82
+ return {
83
+ template: `owner={{owner}}\npath=/private/{{path}}/{{owner}}\nunresolved={{later_key}}`,
84
+ values: { owner: `team-${token}`, path: `build_${secondary}` },
85
+ };
86
+ }
87
+ function templateExpected(input) {
88
+ return input.template.replace(/\{\{([a-z][a-z0-9_]*)\}\}/gu, (placeholder, key) => Object.hasOwn(input.values, key) ? input.values[key] : placeholder) + '\n';
89
+ }
90
+ function jsonlTemplateInput(index) {
91
+ const token = randomBytes(8).toString('hex'), secondary = randomBytes(6).toString('hex');
92
+ return {
93
+ template: `row=${index};known={{known}};again={{known}};unknown={{missing}};literal={{literal}}`,
94
+ values: { known: `café-☃-${token}`, literal: `{{known}}-東京-${secondary}` },
95
+ };
96
+ }
97
+ function templateJsonlDataset() {
98
+ const definitions = [['replay', 1, false], ['evaluation', 2, true], ['regression', 3, true]];
99
+ const cases = definitions.map(([kind, count, terminalNewline]) => {
100
+ const inputs = Array.from({ length: count }, (_, index) => jsonlTemplateInput(index + 1));
101
+ return Object.freeze({ id: `${kind}-${randomBytes(8).toString('hex')}`, kind,
102
+ stdin: inputs.map(input => JSON.stringify(input)).join('\n') + (terminalNewline ? '\n' : ''),
103
+ expectedStdout: inputs.map(templateExpected).join(''), expectedExitCode: 0 });
104
+ });
105
+ return Object.freeze({ id: `prospective-template-render-jsonl-${randomBytes(12).toString('hex')}`, version: 'template-render-jsonl/v1', cases: Object.freeze(cases) });
106
+ }
107
+ function shuffled(values) {
108
+ const result = [...values];
109
+ for (let index = result.length - 1; index > 0; index--) {
110
+ const other = randomInt(index + 1);
111
+ [result[index], result[other]] = [result[other], result[index]];
112
+ }
113
+ return result;
114
+ }
115
+ function topologyLabels(count) {
116
+ const labels = new Set();
117
+ while (labels.size < count)
118
+ labels.add(`n${randomBytes(6).toString('hex')}`);
119
+ return [...labels];
120
+ }
121
+ function topologyInput(edges) {
122
+ const duplicate = edges[randomInt(edges.length)];
123
+ const acceptedBoundary = `n${randomBytes(16).toString('hex').slice(0, 31)}`;
124
+ const digitLeading = `1${randomBytes(6).toString('hex')}`, rejectedBoundary = `n${randomBytes(16).toString('hex')}`;
125
+ const irrelevant = ['x y', `${digitLeading} ${duplicate[0]}`, `${rejectedBoundary} ${duplicate[0]}`, `ignored${randomBytes(4).toString('hex')} has extra fields`, ''];
126
+ return shuffled([...edges.map(edge => `${edge[0]} ${edge[1]}`), `${duplicate[0]} ${duplicate[1]}`, `${duplicate[1]} ${acceptedBoundary}`, ...irrelevant]).join('\n') + '\n';
127
+ }
128
+ function topologyExpected(input) {
129
+ const edges = new Set(), nodes = new Set();
130
+ for (const line of input.split(/\r?\n/u)) {
131
+ const fields = line.trim().split(/\s+/u);
132
+ if (fields.length !== 2 || !fields.every(field => /^[a-z][a-z0-9]{1,31}$/u.test(field)))
133
+ continue;
134
+ const [before, after] = fields;
135
+ nodes.add(before);
136
+ nodes.add(after);
137
+ edges.add(`${before}\u0000${after}`);
138
+ }
139
+ const indegree = new Map([...nodes].map(node => [node, 0])), outgoing = new Map([...nodes].map(node => [node, []]));
140
+ for (const edge of edges) {
141
+ const [before, after] = edge.split('\u0000');
142
+ outgoing.get(before).push(after);
143
+ indegree.set(after, indegree.get(after) + 1);
144
+ }
145
+ const ready = [...nodes].filter(node => indegree.get(node) === 0).sort(), result = [];
146
+ while (ready.length) {
147
+ const node = ready.shift();
148
+ result.push(node);
149
+ for (const after of outgoing.get(node).sort()) {
150
+ const remaining = indegree.get(after) - 1;
151
+ indegree.set(after, remaining);
152
+ if (remaining === 0)
153
+ ready.push(after);
154
+ }
155
+ ready.sort();
156
+ }
157
+ return result.length === nodes.size ? `${result.join('\n')}\n` : 'CYCLE\n';
158
+ }
159
+ function topologyDataset() {
160
+ const replayNodes = topologyLabels(6), replayOrder = shuffled(replayNodes);
161
+ const replayEdges = [[replayOrder[0], replayOrder[2]], [replayOrder[1], replayOrder[2]], [replayOrder[2], replayOrder[3]], [replayOrder[1], replayOrder[4]], [replayOrder[4], replayOrder[5]]];
162
+ const tie = topologyLabels(5).sort();
163
+ // After tie[0] is emitted, tie[2] becomes ready ahead of the older tie[3].
164
+ // This distinguishes a lexical priority queue from a one-time root sort.
165
+ const tieEdges = [[tie[0], tie[2]], [tie[2], tie[1]], [tie[3], tie[4]], [tie[1], tie[4]]];
166
+ const cycle = topologyLabels(6).sort();
167
+ const cycleEdges = [[cycle[0], cycle[2]], [cycle[2], cycle[4]], [cycle[4], cycle[0]], [cycle[1], cycle[3]], [cycle[3], cycle[5]]];
168
+ const cases = [['replay', replayEdges], ['evaluation', tieEdges], ['regression', cycleEdges]].map(([kind, edges]) => {
169
+ const stdin = topologyInput(edges);
170
+ return Object.freeze({ id: `${kind}-${randomBytes(8).toString('hex')}`, kind, stdin, expectedStdout: topologyExpected(stdin), expectedExitCode: 0 });
171
+ });
172
+ return Object.freeze({ id: `prospective-dependency-topological-order-${randomBytes(12).toString('hex')}`, version: 'dependency-topological-order/v1', cases: Object.freeze(cases) });
173
+ }
174
+ /** Creates private random cases after an immutable qualification binding has been frozen. */
175
+ export function generateProspectiveDataset(name = generatorName) {
176
+ if (name === 'dependency-topological-order/v1')
177
+ return topologyDataset();
178
+ if (name === 'template-render-jsonl/v1')
179
+ return templateJsonlDataset();
180
+ if (name === 'template-render/v1') {
181
+ const kinds = ['replay', 'evaluation', 'regression'];
182
+ const cases = kinds.map(kind => {
183
+ const input = templateInput(kind);
184
+ return Object.freeze({ id: `${kind}-${randomBytes(8).toString('hex')}`, kind, stdin: JSON.stringify(input) + '\n', expectedStdout: templateExpected(input), expectedExitCode: 0 });
185
+ });
186
+ return Object.freeze({ id: `prospective-template-render-${randomBytes(12).toString('hex')}`, version: name, cases: Object.freeze(cases) });
187
+ }
188
+ if (name === 'order-summary/v2') {
189
+ const negativeCurrency = currency(), magnitude = randomInt(2, 250_001);
190
+ const evaluationOrders = [
191
+ { id: randomBytes(8).toString('hex'), currency: negativeCurrency, amountCents: -magnitude, status: 'paid' },
192
+ { id: randomBytes(8).toString('hex'), currency: negativeCurrency, amountCents: randomInt(1, magnitude), status: 'pending' },
193
+ { id: randomBytes(8).toString('hex'), currency: negativeCurrency, amountCents: randomInt(1, 250_001), status: 'cancelled' },
194
+ { id: randomBytes(8).toString('hex'), currency: currency(), amountCents: -randomInt(1, 250_001), status: 'paid' },
195
+ ];
196
+ const cases = [
197
+ { id: `replay-empty-${randomBytes(8).toString('hex')}`, kind: 'replay', stdin: '[]\n', expectedStdout: '{}\n', expectedExitCode: 0 },
198
+ { id: `evaluation-negative-${randomBytes(8).toString('hex')}`, kind: 'evaluation', stdin: JSON.stringify(evaluationOrders) + '\n', expectedStdout: v2expected(evaluationOrders), expectedExitCode: 0 },
199
+ (() => { const orders = Array.from({ length: 3 + randomInt(5) }, (_, index) => v2order(index)); return { id: `regression-${randomBytes(8).toString('hex')}`, kind: 'regression', stdin: JSON.stringify(orders) + '\n', expectedStdout: v2expected(orders), expectedExitCode: 0 }; })(),
200
+ ];
201
+ return Object.freeze({ id: `prospective-order-summary-v2-${randomBytes(12).toString('hex')}`, version: name, cases: Object.freeze(cases) });
202
+ }
203
+ if (name !== 'order-summary/v1')
204
+ throw new Error('prospective-holdout: unsupported generator');
205
+ const kinds = ['replay', 'evaluation', 'regression'];
206
+ const cases = kinds.map((kind, index) => {
207
+ const orders = Array.from({ length: 3 + randomInt(6) }, (_, item) => order(index * 16 + item));
208
+ // Every dataset exercises exclusion, zero values, and same-currency accumulation without selecting against an arm.
209
+ orders.push({ id: `edge-cancelled-${index}`, currency: 'USD', cents: 99999, status: 'cancelled' }, { id: `edge-zero-${index}`, currency: 'USD', cents: 0, status: 'paid' }, { id: `edge-sum-${index}`, currency: 'USD', cents: randomInt(1, 1000), status: 'paid' });
210
+ return Object.freeze({ id: `${kind}-${randomBytes(8).toString('hex')}`, kind, stdin: JSON.stringify(orders) + '\n', expectedStdout: expected(orders), expectedExitCode: 0 });
211
+ });
212
+ return Object.freeze({ id: `prospective-order-summary-${randomBytes(12).toString('hex')}`, version: generatorName, cases: Object.freeze(cases) });
213
+ }
214
+ export function createProspectiveCertificate(binding, dataset, privateKey, freezeId) {
215
+ if (!validBinding(binding) || typeof freezeId !== 'string' || !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(freezeId))
216
+ throw new Error('prospective-holdout: invalid frozen binding');
217
+ const key = privateKey instanceof KeyObject ? privateKey : createPrivateKey(privateKey);
218
+ if (key.type !== 'private' || key.asymmetricKeyType !== 'ed25519')
219
+ throw new Error('prospective-holdout: private key must be Ed25519');
220
+ if (!isProspectiveGeneratorName(dataset.version))
221
+ throw new Error('prospective-holdout: unsupported dataset generator');
222
+ const name = dataset.version;
223
+ const profile = prospectiveGeneratorProfile(name);
224
+ const unsigned = { protocol, freezeId, binding, generatorDigest: profile.digest, profileVersion: profile.version, profileDigest: profile.digest, datasetDigest: prospectiveDatasetDigest(dataset), publicKey: createPublicKey(key).export({ format: 'pem', type: 'spki' }).toString(), frozenSequence: 1, generatedSequence: 2 };
225
+ return Object.freeze({ ...unsigned, signature: sign(null, Buffer.from(canonical(unsigned)), key).toString('base64url') });
226
+ }
227
+ /** Strictly checks a prospective certificate and its binding to the pinned authority key. */
228
+ export function verifyProspectiveCertificate(value, expectedBinding, pinnedKey, expectedGeneratorDigest) {
229
+ const legacy = exact(value, ['protocol', 'freezeId', 'binding', 'generatorDigest', 'datasetDigest', 'publicKey', 'frozenSequence', 'generatedSequence', 'signature']);
230
+ const profiled = exact(value, ['protocol', 'freezeId', 'binding', 'generatorDigest', 'profileVersion', 'profileDigest', 'datasetDigest', 'publicKey', 'frozenSequence', 'generatedSequence', 'signature']);
231
+ if ((!legacy && !profiled) || !validBinding(expectedBinding)
232
+ || value.protocol !== protocol || typeof value.freezeId !== 'string' || !/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(value.freezeId)
233
+ || !validBinding(value.binding) || !same(value.binding, expectedBinding) || typeof value.generatorDigest !== 'string' || value.generatorDigest !== expectedGeneratorDigest
234
+ || typeof value.datasetDigest !== 'string' || !digestPattern.test(value.datasetDigest) || value.publicKey !== pinnedKey || value.frozenSequence !== 1 || value.generatedSequence !== 2 || typeof value.signature !== 'string' || value.signature.length < 32 || value.signature.length > 512)
235
+ return false;
236
+ const certificate = value;
237
+ if (profiled) {
238
+ if (!isProspectiveGeneratorName(value.profileVersion)
239
+ || value.profileDigest !== value.generatorDigest || prospectiveGeneratorDigest(value.profileVersion) !== value.profileDigest)
240
+ return false;
241
+ }
242
+ else if (![generatorDigest, generatorV2Digest].includes(String(certificate.generatorDigest)))
243
+ return false;
244
+ try {
245
+ if (createPublicKey(pinnedKey).asymmetricKeyType !== 'ed25519')
246
+ return false;
247
+ const { signature: signatureValue, ...unsigned } = value;
248
+ return verify(null, Buffer.from(canonical(unsigned)), pinnedKey, Buffer.from(signatureValue, 'base64url'));
249
+ }
250
+ catch {
251
+ return false;
252
+ }
253
+ }
254
+ //# sourceMappingURL=prospective-holdout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prospective-holdout.js","sourceRoot":"","sources":["../src/prospective-holdout.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "0.1.32";
1
+ export declare const version = "0.1.34";
2
2
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '0.1.32';
1
+ export const version = '0.1.34';
2
2
  //# sourceMappingURL=version.js.map
package/lib/wire.d.ts CHANGED
@@ -7,6 +7,21 @@ export declare class AcceptanceContractError extends Error {
7
7
  /** Deterministic JSON for bounded plain JSON data. */
8
8
  export declare function acceptanceCanonicalJson(value: unknown): string;
9
9
  export declare function acceptanceDigest(value: unknown): string;
10
+ /**
11
+ * Content-bound learning situation for a goal definition.
12
+ *
13
+ * Keys solely on the definition digest (`acceptanceDigest({ objective })` in
14
+ * assistant-goals), so two goal *instances* carrying the same objective project
15
+ * onto one situation and can cluster across instances. The per-instance goal id
16
+ * and its monotonic definition version must never appear here: embedding them
17
+ * made every instance its own situation and prevented cross-instance learning.
18
+ *
19
+ * The shape (`goal-definition:<64 lowercase hex>`) can never equal a legacy
20
+ * `goal:<id>:definition:<n>` label, so historical ledger rows remain in their
21
+ * own clusters without any backfill. Fail-closed: a malformed digest throws
22
+ * rather than producing a key that could silently split a real cluster.
23
+ */
24
+ export declare function goalDefinitionSituation(definitionDigest: string): string;
10
25
  /** Selects v4 only for goal-bound contracts whose complete criteria set is isolated. */
11
26
  export declare function acceptanceProtocolForTask(taskIdentity: AcceptanceTaskIdentity, criteria: readonly AcceptanceCriterion[]): 'task-acceptance/v1' | 'task-acceptance/v2' | 'task-acceptance/v3' | 'task-acceptance/v4';
12
27
  export declare function validateGoalArtifactAdmission(value: unknown): GoalArtifactAdmission;
package/lib/wire.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EAAuB,sBAAsB,EAAiC,qBAAqB,EACtH,sBAAsB,EAA+B,uBAAuB,EAE7E,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;AAEhF,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,2BAA2B;gBAAjC,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM;CAIxE;AA+ED,sDAAsD;AACtD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA+B9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED,wFAAwF;AACxF,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,CAQnN;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAKnF;AA8ID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAMnF;AACD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAOrF;AAwCD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB,CASvH;AACD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAUzH"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EAAuB,sBAAsB,EAAiC,qBAAqB,EACtH,sBAAsB,EAA+B,uBAAuB,EAE7E,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,2BAA2B,GAAG,kBAAkB,GAAG,iBAAiB,CAAA;AAEhF,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,2BAA2B;gBAAjC,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM;CAIxE;AA+ED,sDAAsD;AACtD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA+B9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAKxE;AAED,wFAAwF;AACxF,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,oBAAoB,CAQnN;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAKnF;AA8ID,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAMnF;AACD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAOrF;AAwCD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB,CASvH;AACD,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAUzH"}
package/lib/wire.js CHANGED
@@ -137,6 +137,26 @@ export function acceptanceCanonicalJson(value) {
137
137
  export function acceptanceDigest(value) {
138
138
  return createHash('sha256').update(acceptanceCanonicalJson(value)).digest('hex');
139
139
  }
140
+ /**
141
+ * Content-bound learning situation for a goal definition.
142
+ *
143
+ * Keys solely on the definition digest (`acceptanceDigest({ objective })` in
144
+ * assistant-goals), so two goal *instances* carrying the same objective project
145
+ * onto one situation and can cluster across instances. The per-instance goal id
146
+ * and its monotonic definition version must never appear here: embedding them
147
+ * made every instance its own situation and prevented cross-instance learning.
148
+ *
149
+ * The shape (`goal-definition:<64 lowercase hex>`) can never equal a legacy
150
+ * `goal:<id>:definition:<n>` label, so historical ledger rows remain in their
151
+ * own clusters without any backfill. Fail-closed: a malformed digest throws
152
+ * rather than producing a key that could silently split a real cluster.
153
+ */
154
+ export function goalDefinitionSituation(definitionDigest) {
155
+ if (typeof definitionDigest !== 'string' || !DIGEST.test(definitionDigest)) {
156
+ fail('invalid-contract', 'goal definitionDigest must be a lowercase SHA-256 digest');
157
+ }
158
+ return `goal-definition:${definitionDigest}`;
159
+ }
140
160
  /** Selects v4 only for goal-bound contracts whose complete criteria set is isolated. */
141
161
  export function acceptanceProtocolForTask(taskIdentity, criteria) {
142
162
  const isolated = criteria.length > 0 && criteria.every(criterion => criterion.kind === 'isolated-process-behavior');
package/lib/wire.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsh-enhanced/task-acceptance-contract",
3
- "version": "0.1.32",
3
+ "version": "0.1.34",
4
4
  "description": "Strict immutable acceptance and verification wire contracts for DSH assistant plugins.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -11,6 +11,14 @@
11
11
  "types": "./lib/index.d.ts",
12
12
  "default": "./lib/index.js"
13
13
  },
14
+ "./holdout-authority": {
15
+ "types": "./lib/holdout-authority.d.ts",
16
+ "default": "./lib/holdout-authority.js"
17
+ },
18
+ "./prospective-holdout": {
19
+ "types": "./lib/prospective-holdout.d.ts",
20
+ "default": "./lib/prospective-holdout.js"
21
+ },
14
22
  "./package.json": "./package.json"
15
23
  },
16
24
  "files": [