@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.
- package/lib/holdout-authority.d.ts +152 -0
- package/lib/holdout-authority.d.ts.map +1 -0
- package/lib/holdout-authority.js +346 -0
- package/lib/holdout-authority.js.map +1 -0
- package/lib/prospective-holdout.d.ts +35 -0
- package/lib/prospective-holdout.d.ts.map +1 -0
- package/lib/prospective-holdout.js +254 -0
- package/lib/prospective-holdout.js.map +1 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/wire.d.ts +15 -0
- package/lib/wire.d.ts.map +1 -1
- package/lib/wire.js +20 -0
- package/lib/wire.js.map +1 -1
- package/package.json +9 -1
|
@@ -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.
|
|
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.
|
|
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.
|
|
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": [
|