@cavelang/scenario 0.34.0 → 0.36.0
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/README.md +447 -6
- package/dist/src/bind.d.ts +3 -0
- package/dist/src/bind.d.ts.map +1 -1
- package/dist/src/bind.js +188 -33
- package/dist/src/bind.js.map +1 -1
- package/dist/src/capture.d.ts +4 -0
- package/dist/src/capture.d.ts.map +1 -0
- package/dist/src/capture.js +33 -0
- package/dist/src/capture.js.map +1 -0
- package/dist/src/error.d.ts +1 -1
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js.map +1 -1
- package/dist/src/exact.d.ts.map +1 -1
- package/dist/src/exact.js +27 -18
- package/dist/src/exact.js.map +1 -1
- package/dist/src/explain.d.ts.map +1 -1
- package/dist/src/explain.js +23 -0
- package/dist/src/explain.js.map +1 -1
- package/dist/src/explanation-entries.d.ts +4 -0
- package/dist/src/explanation-entries.d.ts.map +1 -0
- package/dist/src/explanation-entries.js +89 -0
- package/dist/src/explanation-entries.js.map +1 -0
- package/dist/src/model.d.ts +2 -0
- package/dist/src/model.d.ts.map +1 -1
- package/dist/src/record.d.ts +1 -1
- package/dist/src/record.d.ts.map +1 -1
- package/dist/src/record.js +286 -46
- package/dist/src/record.js.map +1 -1
- package/package.json +7 -7
- package/src/bind.ts +182 -31
- package/src/capture.ts +33 -0
- package/src/error.ts +1 -0
- package/src/exact.ts +24 -22
- package/src/explain.ts +21 -0
- package/src/explanation-entries.ts +85 -0
- package/src/model.ts +2 -0
- package/src/record.ts +268 -49
package/dist/src/record.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { Validate } from '@cavelang/solver';
|
|
2
3
|
import { Key } from '@cavelang/core';
|
|
3
4
|
import { canonicalizeText } from '@cavelang/canonical';
|
|
5
|
+
import { inputDigest } from "./bind.js";
|
|
6
|
+
import { validateExplanationEntries } from "./explanation-entries.js";
|
|
4
7
|
export const resultSchema = 'cave.scenario/result@1';
|
|
5
8
|
export const evaluationSchema = 'cave.scenario/evaluation@1';
|
|
6
9
|
export const recommendationSchema = 'cave.scenario/recommendation@1';
|
|
@@ -44,13 +47,14 @@ const source = {
|
|
|
44
47
|
'external-effect': 'scenario/external-effect'
|
|
45
48
|
};
|
|
46
49
|
const entity = (kind, id) => {
|
|
47
|
-
if (id === '')
|
|
48
|
-
throw new TypeError(`${kind} id must
|
|
50
|
+
if (typeof id !== 'string' || id === '')
|
|
51
|
+
throw new TypeError(`${kind} id must be a non-empty string`);
|
|
49
52
|
return `${prefix[kind]}/${id}`;
|
|
50
53
|
};
|
|
51
54
|
const compareText = (left, right) => left < right ? -1 : left > right ? 1 : 0;
|
|
52
55
|
const canonicalJson = (value) => {
|
|
53
|
-
const
|
|
56
|
+
const ancestors = new Set();
|
|
57
|
+
const normalize = function* (item, path) {
|
|
54
58
|
if (item === null || typeof item === 'string' || typeof item === 'boolean')
|
|
55
59
|
return item;
|
|
56
60
|
if (typeof item === 'number') {
|
|
@@ -58,23 +62,115 @@ const canonicalJson = (value) => {
|
|
|
58
62
|
throw new TypeError(`${path} must be finite`);
|
|
59
63
|
return item;
|
|
60
64
|
}
|
|
61
|
-
if (Array.isArray(item))
|
|
62
|
-
return item.map((entry, index) => normalize(entry, `${path}[${index}]`));
|
|
63
65
|
if (typeof item === 'object') {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
if (ancestors.has(item))
|
|
67
|
+
throw new TypeError(`${path} contains a cycle`);
|
|
68
|
+
const prototype = Object.getPrototypeOf(item);
|
|
69
|
+
if (!Array.isArray(item) && prototype !== Object.prototype && prototype !== null) {
|
|
70
|
+
throw new TypeError(`${path} must be a plain JSON object`);
|
|
71
|
+
}
|
|
72
|
+
ancestors.add(item);
|
|
73
|
+
try {
|
|
74
|
+
// Read JSON's indexed array values, ignoring custom iterators, and visit
|
|
75
|
+
// holes so they fail instead of silently becoming null during stringify.
|
|
76
|
+
if (Array.isArray(item)) {
|
|
77
|
+
const length = item.length;
|
|
78
|
+
const values = [];
|
|
79
|
+
for (let index = 0; index < length; index++) {
|
|
80
|
+
values.push(yield { value: item[index], path: `${path}[${index}]` });
|
|
81
|
+
}
|
|
82
|
+
return values;
|
|
83
|
+
}
|
|
84
|
+
const entries = Object.entries(item)
|
|
85
|
+
.filter(([, entry]) => entry !== undefined)
|
|
86
|
+
.sort(([left], [right]) => compareText(left, right));
|
|
87
|
+
const values = [];
|
|
88
|
+
for (const [key, entry] of entries) {
|
|
89
|
+
values.push([key, yield { value: entry, path: `${path}.${key}` }]);
|
|
90
|
+
}
|
|
91
|
+
return Object.fromEntries(values);
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
ancestors.delete(item);
|
|
95
|
+
}
|
|
68
96
|
}
|
|
69
97
|
throw new TypeError(`${path} is not JSON`);
|
|
70
98
|
};
|
|
71
|
-
|
|
99
|
+
const stack = [normalize(value, 'artifact')];
|
|
100
|
+
let step = stack[0].next();
|
|
101
|
+
while (true) {
|
|
102
|
+
if (step.done) {
|
|
103
|
+
stack.pop();
|
|
104
|
+
if (stack.length === 0)
|
|
105
|
+
break;
|
|
106
|
+
step = stack[stack.length - 1].next(step.value);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const child = normalize(step.value.value, step.value.path);
|
|
110
|
+
stack.push(child);
|
|
111
|
+
step = child.next();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Serialize the owned tree iteratively too: JSON.stringify recurses through
|
|
115
|
+
// containers. Retain its property order, including numeric-index keys.
|
|
116
|
+
const pending = [{ value: step.value }];
|
|
117
|
+
const output = [];
|
|
118
|
+
while (pending.length > 0) {
|
|
119
|
+
const frame = pending.pop();
|
|
120
|
+
if ('text' in frame) {
|
|
121
|
+
output.push(frame.text);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const item = frame.value;
|
|
125
|
+
if (item === null || typeof item !== 'object') {
|
|
126
|
+
output.push(JSON.stringify(item));
|
|
127
|
+
}
|
|
128
|
+
else if (Array.isArray(item)) {
|
|
129
|
+
output.push('[');
|
|
130
|
+
pending.push({ text: ']' });
|
|
131
|
+
for (let index = item.length - 1; index >= 0; index--) {
|
|
132
|
+
pending.push({ value: item[index] });
|
|
133
|
+
if (index > 0)
|
|
134
|
+
pending.push({ text: ',' });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const entries = Object.entries(item);
|
|
139
|
+
output.push('{');
|
|
140
|
+
pending.push({ text: '}' });
|
|
141
|
+
for (let index = entries.length - 1; index >= 0; index--) {
|
|
142
|
+
const [key, child] = entries[index];
|
|
143
|
+
pending.push({ value: child }, { text: `${JSON.stringify(key)}:` });
|
|
144
|
+
if (index > 0)
|
|
145
|
+
pending.push({ text: ',' });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return output.join('');
|
|
72
150
|
};
|
|
73
|
-
const encode = (artifact) => Buffer.from(canonicalJson(artifact), 'utf8').toString('base64url');
|
|
74
151
|
const decode = (payload) => {
|
|
75
152
|
let parsed;
|
|
76
153
|
try {
|
|
77
|
-
|
|
154
|
+
// Buffer's decoder ignores non-alphabet characters and surplus padding.
|
|
155
|
+
// Accept URL-safe text with either no padding or exactly the required padding.
|
|
156
|
+
const bytes = Buffer.from(payload, 'base64url');
|
|
157
|
+
const unpadded = bytes.toString('base64url');
|
|
158
|
+
const padded = unpadded.padEnd(Math.ceil(unpadded.length / 4) * 4, '=');
|
|
159
|
+
if (payload !== unpadded && payload !== padded)
|
|
160
|
+
throw new TypeError('invalid base64url encoding');
|
|
161
|
+
parsed = JSON.parse(new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes));
|
|
162
|
+
// A JSON reviver recurses through the payload and rejects otherwise valid
|
|
163
|
+
// deeply nested imports when the JavaScript call stack is exhausted.
|
|
164
|
+
const pending = [parsed];
|
|
165
|
+
while (pending.length > 0) {
|
|
166
|
+
const value = pending.pop();
|
|
167
|
+
if (typeof value === 'number' && !Number.isFinite(value))
|
|
168
|
+
throw new TypeError('non-finite JSON number');
|
|
169
|
+
if (value !== null && typeof value === 'object') {
|
|
170
|
+
for (const child of Object.values(value))
|
|
171
|
+
pending.push(child);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
78
174
|
}
|
|
79
175
|
catch {
|
|
80
176
|
throw new TypeError('recorded scenario artifact is not valid base64url JSON');
|
|
@@ -92,12 +188,22 @@ const line = (kind, id, payload) => `${entity(kind, id)} HAS artifact: \`${paylo
|
|
|
92
188
|
const claimOf = (store, kind, id, payload) => {
|
|
93
189
|
const parsed = canonicalizeText(line(kind, id, payload), store.registry());
|
|
94
190
|
const claim = parsed.claims[0]?.claim;
|
|
95
|
-
if (parsed.problems.length > 0 ||
|
|
191
|
+
if (parsed.problems.length > 0 || parsed.claims.length !== 1 || parsed.edges.length !== 0 ||
|
|
192
|
+
claim === undefined || claim.subject.kind !== 'entity' || claim.subject.text !== entity(kind, id) ||
|
|
193
|
+
claim.verb !== 'HAS' || claim.payload.kind !== 'attribute' ||
|
|
194
|
+
claim.payload.attribute !== 'artifact' || claim.payload.value.kind !== 'code' || claim.payload.value.raw !== payload) {
|
|
96
195
|
const detail = parsed.problems.map(problem => `line ${problem.line}: ${problem.message}`).join('; ');
|
|
97
196
|
throw new TypeError(`invalid ${kind} identity ${JSON.stringify(id)}${detail === '' ? '' : `: ${detail}`}`);
|
|
98
197
|
}
|
|
99
198
|
return { parsed, claim };
|
|
100
199
|
};
|
|
200
|
+
const payloadOf = (store, kind, id, row) => {
|
|
201
|
+
const stored = store.toClaim(row);
|
|
202
|
+
if (stored.payload.kind !== 'attribute' || stored.payload.attribute !== 'artifact' || stored.payload.value.kind !== 'code') {
|
|
203
|
+
throw new TypeError(`${kind} ${JSON.stringify(id)} has an invalid stored representation`);
|
|
204
|
+
}
|
|
205
|
+
return stored.payload.value.raw;
|
|
206
|
+
};
|
|
101
207
|
const currentPayload = (store, kind, id) => {
|
|
102
208
|
// The payload is excluded from an attribute claim key, so an empty
|
|
103
209
|
// placeholder locates the one append-only series for this artifact ID.
|
|
@@ -105,11 +211,7 @@ const currentPayload = (store, kind, id) => {
|
|
|
105
211
|
const row = store.currentBelief(Key.of(claim));
|
|
106
212
|
if (row === undefined || row.conf === 0)
|
|
107
213
|
return undefined;
|
|
108
|
-
|
|
109
|
-
if (stored.payload.kind !== 'attribute' || stored.payload.attribute !== 'artifact' || stored.payload.value.kind !== 'code') {
|
|
110
|
-
throw new TypeError(`${kind} ${JSON.stringify(id)} has an invalid stored representation`);
|
|
111
|
-
}
|
|
112
|
-
return { payload: stored.payload.value.raw, rowId: row.id };
|
|
214
|
+
return { payload: payloadOf(store, kind, id, row), rowId: row.id };
|
|
113
215
|
};
|
|
114
216
|
const requireRecord = (store, kind, id) => {
|
|
115
217
|
const found = currentPayload(store, kind, id);
|
|
@@ -119,37 +221,158 @@ const requireRecord = (store, kind, id) => {
|
|
|
119
221
|
if (kindOf(artifact) !== kind || artifact.id !== id) {
|
|
120
222
|
throw new TypeError(`${kind} ${JSON.stringify(id)} has mismatched stored identity`);
|
|
121
223
|
}
|
|
224
|
+
validateArtifact(artifact);
|
|
122
225
|
return artifact;
|
|
123
226
|
};
|
|
124
|
-
const append = (store,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
227
|
+
const append = (store, kind, supplied, validate) => {
|
|
228
|
+
if (typeof supplied !== 'object' || supplied === null) {
|
|
229
|
+
throw new TypeError(`unsupported ${kind} artifact schema — expected an object`);
|
|
230
|
+
}
|
|
231
|
+
// Validation, predecessor checks and storage must observe the same JSON.
|
|
232
|
+
const json = canonicalJson(supplied);
|
|
233
|
+
const artifact = JSON.parse(json);
|
|
234
|
+
if (kindOf(artifact) !== kind) {
|
|
235
|
+
throw new TypeError(`unsupported ${kind} artifact schema ${JSON.stringify(artifact.schema)}`);
|
|
236
|
+
}
|
|
237
|
+
return store.transaction(() => {
|
|
238
|
+
validateArtifact(artifact);
|
|
239
|
+
validate(artifact);
|
|
240
|
+
const payload = Buffer.from(json, 'utf8').toString('base64url');
|
|
241
|
+
const { parsed, claim } = claimOf(store, kind, artifact.id, payload);
|
|
242
|
+
// Retraction changes current belief, not ownership of an immutable ID.
|
|
243
|
+
// Inspect every event, even when the latest event matches or is retracted.
|
|
244
|
+
for (const row of store.history(Key.of(claim))) {
|
|
245
|
+
if (payloadOf(store, kind, artifact.id, row) !== payload)
|
|
246
|
+
throw new RecordConflictError(kind, artifact.id);
|
|
247
|
+
}
|
|
248
|
+
const existing = currentPayload(store, kind, artifact.id);
|
|
249
|
+
if (existing !== undefined) {
|
|
250
|
+
if (existing.payload !== payload)
|
|
251
|
+
throw new RecordConflictError(kind, artifact.id);
|
|
252
|
+
return { status: 'existing', rowId: existing.rowId, artifact };
|
|
253
|
+
}
|
|
254
|
+
const inserted = store.insertResult(parsed);
|
|
255
|
+
return { status: 'recorded', rowId: inserted.ids[0], artifact };
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
const validateResult = (artifact) => {
|
|
139
259
|
if (artifact.schema === resultSchema && artifact.report.schema !== 'cave.solver/explanation@1') {
|
|
140
260
|
throw new TypeError(`unsupported solver explanation schema ${JSON.stringify(artifact.report.schema)}`);
|
|
141
261
|
}
|
|
262
|
+
if (artifact.schema === resultSchema) {
|
|
263
|
+
requiredText(artifact.report.run?.modelDigest, 'solver model digest');
|
|
264
|
+
requiredText(artifact.report.run?.backend?.name, 'solver backend name');
|
|
265
|
+
requiredText(artifact.report.run?.backend?.version, 'solver backend version');
|
|
266
|
+
const outcome = artifact.report.outcome;
|
|
267
|
+
requiredStatus(outcome?.status, ['satisfied', 'optimal', 'unsatisfied', 'unknown'], 'solver explanation status');
|
|
268
|
+
if (outcome.status === 'optimal' && outcome.optimalityProved !== true) {
|
|
269
|
+
throw new TypeError('optimal solver explanation requires optimalityProved: true');
|
|
270
|
+
}
|
|
271
|
+
if (outcome.status === 'unsatisfied' && outcome.infeasibilityProved !== true) {
|
|
272
|
+
throw new TypeError('unsatisfied solver explanation requires infeasibilityProved: true');
|
|
273
|
+
}
|
|
274
|
+
if (outcome.status === 'unsatisfied' && outcome.coreMinimal !== false) {
|
|
275
|
+
throw new TypeError('unsatisfied solver explanation requires coreMinimal: false; core minimality is not promised');
|
|
276
|
+
}
|
|
277
|
+
const collection = (value, field) => {
|
|
278
|
+
if (!Array.isArray(value))
|
|
279
|
+
throw new TypeError(`solver explanation ${field} must be an array`);
|
|
280
|
+
};
|
|
281
|
+
collection(artifact.report.run.inputs, 'inputs');
|
|
282
|
+
collection(artifact.report.run.diagnostics, 'diagnostics');
|
|
283
|
+
if (outcome.status === 'satisfied' || outcome.status === 'optimal') {
|
|
284
|
+
collection(outcome.assignments, 'assignments');
|
|
285
|
+
collection(outcome.hardConstraints, 'hardConstraints');
|
|
286
|
+
collection(outcome.softConstraints, 'softConstraints');
|
|
287
|
+
}
|
|
288
|
+
if (outcome.status === 'unknown')
|
|
289
|
+
Validate.unknownReason(outcome.reason);
|
|
290
|
+
if (outcome.status === 'optimal')
|
|
291
|
+
collection(outcome.objectives, 'objectives');
|
|
292
|
+
if (outcome.status === 'unsatisfied' && outcome.core !== undefined)
|
|
293
|
+
collection(outcome.core, 'core');
|
|
294
|
+
Validate.resultMetadata(artifact.report.run);
|
|
295
|
+
validateExplanationEntries(artifact.report);
|
|
296
|
+
Validate.explanationContext(artifact.report.run);
|
|
297
|
+
const limits = artifact.report.run.limits;
|
|
298
|
+
if (limits === null || typeof limits !== 'object' || Array.isArray(limits)) {
|
|
299
|
+
throw new TypeError('solver explanation limits must be an object');
|
|
300
|
+
}
|
|
301
|
+
// Validate declared limits, but do not rewrite historical metadata with
|
|
302
|
+
// defaults introduced after the recorded run.
|
|
303
|
+
Validate.mergeLimits(limits);
|
|
304
|
+
}
|
|
142
305
|
if (artifact.schema === evaluationSchema) {
|
|
143
306
|
if (artifact.inputs.schema !== 'cave.scenario/inputs@1') {
|
|
144
307
|
throw new TypeError(`unsupported scenario input schema ${JSON.stringify(artifact.inputs.schema)}`);
|
|
145
308
|
}
|
|
146
|
-
if (artifact.evaluator
|
|
147
|
-
|
|
309
|
+
if (typeof artifact.evaluator?.name !== 'string' || artifact.evaluator.name === '' ||
|
|
310
|
+
typeof artifact.evaluator?.version !== 'string' || artifact.evaluator.version === '') {
|
|
311
|
+
throw new TypeError('scenario evaluator name and version must be non-empty strings');
|
|
148
312
|
}
|
|
313
|
+
if (artifact.output === undefined)
|
|
314
|
+
throw new TypeError('scenario evaluation output is required; use null for no value');
|
|
315
|
+
const { digest, ...contents } = artifact.inputs;
|
|
316
|
+
if (digest !== inputDigest(contents))
|
|
317
|
+
throw new TypeError('scenario record input digest does not match its contents');
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
export const result = (store, artifact) => append(store, 'result', artifact, () => undefined);
|
|
321
|
+
const requiredText = (value, field) => {
|
|
322
|
+
if (typeof value !== 'string' || value === '')
|
|
323
|
+
throw new TypeError(`${field} must be a non-empty string`);
|
|
324
|
+
};
|
|
325
|
+
const optionalText = (value, field) => {
|
|
326
|
+
if (value !== undefined && typeof value !== 'string')
|
|
327
|
+
throw new TypeError(`${field} must be a string`);
|
|
328
|
+
};
|
|
329
|
+
const requiredValue = (value, field) => {
|
|
330
|
+
if (value === undefined)
|
|
331
|
+
throw new TypeError(`${field} is required; use null for no value`);
|
|
332
|
+
};
|
|
333
|
+
const requiredStatus = (value, choices, field) => {
|
|
334
|
+
if (typeof value !== 'string' || !choices.includes(value)) {
|
|
335
|
+
throw new TypeError(`${field} must be one of ${choices.join(', ')}`);
|
|
336
|
+
}
|
|
337
|
+
};
|
|
338
|
+
const validateArtifact = (artifact) => {
|
|
339
|
+
switch (artifact.schema) {
|
|
340
|
+
case resultSchema:
|
|
341
|
+
case evaluationSchema:
|
|
342
|
+
validateResult(artifact);
|
|
343
|
+
break;
|
|
344
|
+
case recommendationSchema:
|
|
345
|
+
requiredValue(artifact.value, 'recommendation value');
|
|
346
|
+
requiredText(artifact.resultId, 'result id');
|
|
347
|
+
optionalText(artifact.rationale, 'recommendation rationale');
|
|
348
|
+
optionalText(artifact.authoredBy, 'recommendation authoredBy');
|
|
349
|
+
break;
|
|
350
|
+
case decisionSchema:
|
|
351
|
+
requiredValue(artifact.selected, 'decision selected value');
|
|
352
|
+
optionalText(artifact.rationale, 'decision rationale');
|
|
353
|
+
requiredText(artifact.decidedBy, 'decision decidedBy');
|
|
354
|
+
requiredText(artifact.resultId, 'result id');
|
|
355
|
+
if (artifact.recommendationId !== undefined)
|
|
356
|
+
requiredText(artifact.recommendationId, 'recommendation id');
|
|
357
|
+
break;
|
|
358
|
+
case actionSchema:
|
|
359
|
+
requiredValue(artifact.parameters, 'action parameters');
|
|
360
|
+
requiredText(artifact.name, 'action name');
|
|
361
|
+
optionalText(artifact.message, 'action message');
|
|
362
|
+
requiredStatus(artifact.status, ['validated', 'executed', 'failed'], 'action status');
|
|
363
|
+
requiredText(artifact.decisionId, 'decision id');
|
|
364
|
+
break;
|
|
365
|
+
case externalEffectSchema:
|
|
366
|
+
requiredText(artifact.kind, 'external effect kind');
|
|
367
|
+
requiredStatus(artifact.status, ['succeeded', 'failed', 'unknown'], 'external effect status');
|
|
368
|
+
requiredText(artifact.actionId, 'action id');
|
|
369
|
+
break;
|
|
149
370
|
}
|
|
371
|
+
};
|
|
372
|
+
export const recommendation = (store, artifact) => append(store, 'recommendation', artifact, artifact => {
|
|
373
|
+
requireRecord(store, 'result', artifact.resultId);
|
|
150
374
|
});
|
|
151
|
-
export const
|
|
152
|
-
export const decision = (store, artifact) => append(store, artifact, () => {
|
|
375
|
+
export const decision = (store, artifact) => append(store, 'decision', artifact, artifact => {
|
|
153
376
|
requireRecord(store, 'result', artifact.resultId);
|
|
154
377
|
if (artifact.recommendationId !== undefined) {
|
|
155
378
|
const proposal = requireRecord(store, 'recommendation', artifact.recommendationId);
|
|
@@ -158,30 +381,47 @@ export const decision = (store, artifact) => append(store, artifact, () => {
|
|
|
158
381
|
}
|
|
159
382
|
}
|
|
160
383
|
});
|
|
161
|
-
export const action = (store, artifact) => append(store, artifact,
|
|
162
|
-
|
|
384
|
+
export const action = (store, artifact) => append(store, 'action', artifact, artifact => {
|
|
385
|
+
requireRecord(store, 'decision', artifact.decisionId);
|
|
386
|
+
});
|
|
387
|
+
export const externalEffect = (store, artifact) => append(store, 'external-effect', artifact, artifact => {
|
|
388
|
+
requireRecord(store, 'action', artifact.actionId);
|
|
389
|
+
});
|
|
163
390
|
export const read = (store, kind, id) => requireRecord(store, kind, id);
|
|
164
391
|
/**
|
|
165
392
|
* Reads an immutable result without re-running it. Compatibility is explicit:
|
|
166
393
|
* a different model or backend version is reported, never silently upgraded.
|
|
167
394
|
*/
|
|
168
395
|
export const replay = (store, id, expected) => {
|
|
396
|
+
if (expected === null || typeof expected !== 'object' || Array.isArray(expected)) {
|
|
397
|
+
throw new TypeError('replay expectations must be an object');
|
|
398
|
+
}
|
|
399
|
+
const { modelDigest, backend } = expected;
|
|
400
|
+
requiredText(modelDigest, 'expected model digest');
|
|
401
|
+
if (backend !== undefined && (backend === null || typeof backend !== 'object' || Array.isArray(backend))) {
|
|
402
|
+
throw new TypeError('expected backend must be an object');
|
|
403
|
+
}
|
|
404
|
+
const expectedBackend = backend === undefined ? undefined : { name: backend.name, version: backend.version };
|
|
405
|
+
if (expectedBackend !== undefined) {
|
|
406
|
+
requiredText(expectedBackend.name, 'expected backend name');
|
|
407
|
+
requiredText(expectedBackend.version, 'expected backend version');
|
|
408
|
+
}
|
|
169
409
|
const found = requireRecord(store, 'result', id);
|
|
170
410
|
if (found.schema !== resultSchema) {
|
|
171
411
|
throw new TypeError(`result ${JSON.stringify(id)} is an external evaluation, not a solver result`);
|
|
172
412
|
}
|
|
173
413
|
const artifact = found;
|
|
174
414
|
const reasons = [];
|
|
175
|
-
if (artifact.report.run.modelDigest !==
|
|
176
|
-
reasons.push(`model digest ${artifact.report.run.modelDigest} does not match ${
|
|
415
|
+
if (artifact.report.run.modelDigest !== modelDigest) {
|
|
416
|
+
reasons.push(`model digest ${artifact.report.run.modelDigest} does not match ${modelDigest}`);
|
|
177
417
|
}
|
|
178
|
-
if (
|
|
418
|
+
if (expectedBackend !== undefined) {
|
|
179
419
|
const actual = artifact.report.run.backend;
|
|
180
|
-
if (actual.name !==
|
|
181
|
-
reasons.push(`solver backend ${actual.name} does not match ${
|
|
420
|
+
if (actual.name !== expectedBackend.name) {
|
|
421
|
+
reasons.push(`solver backend ${actual.name} does not match ${expectedBackend.name}`);
|
|
182
422
|
}
|
|
183
|
-
if (actual.version !==
|
|
184
|
-
reasons.push(`solver version ${actual.version} does not match ${
|
|
423
|
+
if (actual.version !== expectedBackend.version) {
|
|
424
|
+
reasons.push(`solver version ${actual.version} does not match ${expectedBackend.version}`);
|
|
185
425
|
}
|
|
186
426
|
}
|
|
187
427
|
return { artifact, compatible: reasons.length === 0, reasons };
|
package/dist/src/record.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/record.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cavelang/scenario",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Typed, replayable CAVE snapshot and ephemeral-overlay bindings for decision and solver inputs.",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"directory": "packages/scenario"
|
|
22
22
|
},
|
|
23
23
|
"engines": {
|
|
24
|
-
"node": "^
|
|
24
|
+
"node": "^24.16.0 || ^26.1.0"
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"access": "public"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@cavelang/canonical": "0.
|
|
47
|
-
"@cavelang/
|
|
48
|
-
"@cavelang/query": "0.
|
|
49
|
-
"@cavelang/
|
|
50
|
-
"@cavelang/
|
|
46
|
+
"@cavelang/canonical": "0.36.0",
|
|
47
|
+
"@cavelang/solver": "0.36.0",
|
|
48
|
+
"@cavelang/query": "0.36.0",
|
|
49
|
+
"@cavelang/store": "0.36.0",
|
|
50
|
+
"@cavelang/core": "0.36.0"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|
|
53
53
|
"build": "tsc -b",
|