@actuarial-ts/compliance 0.6.0 → 0.7.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.
Files changed (83) hide show
  1. package/README.md +19 -9
  2. package/dist/bundle.d.ts +1 -1
  3. package/dist/bundle.d.ts.map +1 -1
  4. package/dist/bundle.js +163 -21
  5. package/dist/bundle.js.map +1 -1
  6. package/dist/diagnosticArtifactStream.d.ts +30 -0
  7. package/dist/diagnosticArtifactStream.d.ts.map +1 -0
  8. package/dist/diagnosticArtifactStream.js +128 -0
  9. package/dist/diagnosticArtifactStream.js.map +1 -0
  10. package/dist/diagnosticByteSource.d.ts +10 -0
  11. package/dist/diagnosticByteSource.d.ts.map +1 -0
  12. package/dist/diagnosticByteSource.js +70 -0
  13. package/dist/diagnosticByteSource.js.map +1 -0
  14. package/dist/diagnosticByteView.d.ts +3 -0
  15. package/dist/diagnosticByteView.d.ts.map +1 -0
  16. package/dist/diagnosticByteView.js +27 -0
  17. package/dist/diagnosticByteView.js.map +1 -0
  18. package/dist/diagnosticCompactRun.d.ts +43 -0
  19. package/dist/diagnosticCompactRun.d.ts.map +1 -0
  20. package/dist/diagnosticCompactRun.js +253 -0
  21. package/dist/diagnosticCompactRun.js.map +1 -0
  22. package/dist/diagnosticReplayFrames.d.ts +10 -0
  23. package/dist/diagnosticReplayFrames.d.ts.map +1 -0
  24. package/dist/diagnosticReplayFrames.js +99 -0
  25. package/dist/diagnosticReplayFrames.js.map +1 -0
  26. package/dist/diagnosticReplayProtocol.d.ts +17 -0
  27. package/dist/diagnosticReplayProtocol.d.ts.map +1 -0
  28. package/dist/diagnosticReplayProtocol.js +98 -0
  29. package/dist/diagnosticReplayProtocol.js.map +1 -0
  30. package/dist/diagnosticReplayReader.d.ts +41 -0
  31. package/dist/diagnosticReplayReader.d.ts.map +1 -0
  32. package/dist/diagnosticReplayReader.js +346 -0
  33. package/dist/diagnosticReplayReader.js.map +1 -0
  34. package/dist/diagnosticReplayValue.d.ts +34 -0
  35. package/dist/diagnosticReplayValue.d.ts.map +1 -0
  36. package/dist/diagnosticReplayValue.js +269 -0
  37. package/dist/diagnosticReplayValue.js.map +1 -0
  38. package/dist/diagnosticReplayWriter.d.ts +25 -0
  39. package/dist/diagnosticReplayWriter.d.ts.map +1 -0
  40. package/dist/diagnosticReplayWriter.js +148 -0
  41. package/dist/diagnosticReplayWriter.js.map +1 -0
  42. package/dist/diagnosticRun.d.ts +52 -29
  43. package/dist/diagnosticRun.d.ts.map +1 -1
  44. package/dist/diagnosticRun.js +564 -174
  45. package/dist/diagnosticRun.js.map +1 -1
  46. package/dist/diagnosticRunEvidence.d.ts +18 -0
  47. package/dist/diagnosticRunEvidence.d.ts.map +1 -0
  48. package/dist/diagnosticRunEvidence.js +195 -0
  49. package/dist/diagnosticRunEvidence.js.map +1 -0
  50. package/dist/index.d.ts +4 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +4 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/ledger.d.ts.map +1 -1
  55. package/dist/ledger.js +47 -6
  56. package/dist/ledger.js.map +1 -1
  57. package/dist/metadata.d.ts.map +1 -1
  58. package/dist/metadata.js +27 -3
  59. package/dist/metadata.js.map +1 -1
  60. package/dist/sha256Stream.d.ts +6 -0
  61. package/dist/sha256Stream.d.ts.map +1 -0
  62. package/dist/sha256Stream.js +103 -0
  63. package/dist/sha256Stream.js.map +1 -0
  64. package/dist/version.d.ts +1 -1
  65. package/dist/version.js +1 -1
  66. package/package.json +6 -5
  67. package/src/bundle.ts +272 -32
  68. package/src/diagnosticArtifactStream.ts +148 -0
  69. package/src/diagnosticByteSource.ts +82 -0
  70. package/src/diagnosticByteView.ts +27 -0
  71. package/src/diagnosticCompactRun.ts +462 -0
  72. package/src/diagnosticReplayFrames.ts +99 -0
  73. package/src/diagnosticReplayProtocol.ts +99 -0
  74. package/src/diagnosticReplayReader.ts +428 -0
  75. package/src/diagnosticReplayValue.ts +269 -0
  76. package/src/diagnosticReplayWriter.ts +190 -0
  77. package/src/diagnosticRun.ts +1030 -93
  78. package/src/diagnosticRunEvidence.ts +391 -0
  79. package/src/index.ts +10 -0
  80. package/src/ledger.ts +59 -8
  81. package/src/metadata.ts +48 -7
  82. package/src/sha256Stream.ts +108 -0
  83. package/src/version.ts +1 -1
@@ -0,0 +1,269 @@
1
+ import { ComplianceError } from "./errors.js";
2
+ import { REPLAY_TEXT_UNITS } from "./diagnosticReplayFrames.js";
3
+ function invalid(message) {
4
+ throw new ComplianceError("BAD_DIAGNOSTIC_RUN", message, "$.replayInput");
5
+ }
6
+ function snapshotLimits(limits) {
7
+ if (limits === null ||
8
+ typeof limits !== "object" ||
9
+ (Object.getPrototypeOf(limits) !== Object.prototype && Object.getPrototypeOf(limits) !== null))
10
+ invalid("Replay value limits must be a plain data object");
11
+ const fields = [
12
+ "maximumDepth",
13
+ "maximumNodes",
14
+ "maximumStringUnits",
15
+ "maximumTotalStringUnits",
16
+ ];
17
+ const descriptors = Object.getOwnPropertyDescriptors(limits);
18
+ for (const key of Reflect.ownKeys(descriptors))
19
+ if (typeof key !== "string" || !fields.some((field) => field === key))
20
+ invalid("Unknown replay value limit");
21
+ const owned = Object.create(null);
22
+ for (const key of fields) {
23
+ const field = descriptors[key];
24
+ if (!field || !field.enumerable || !("value" in field))
25
+ invalid("Replay value limits require own enumerable data properties");
26
+ const value = field.value;
27
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 1)
28
+ invalid("Replay value limits must be positive safe integers");
29
+ owned[key] = value;
30
+ }
31
+ return Object.freeze(owned);
32
+ }
33
+ /**
34
+ * Reconstruct input only, within explicit host resource bounds. Reconstructed
35
+ * values still require full SDK validation. Never use this for candidate
36
+ * result/audit identity channels: those must be compared as text streams.
37
+ */
38
+ export class ReplayValueBuilder {
39
+ limits;
40
+ stack = [];
41
+ nodes = 0;
42
+ assigned = false;
43
+ root;
44
+ stringParts = null;
45
+ stringUnits = 0;
46
+ totalStringUnits = 0;
47
+ stringKind = null;
48
+ sealed = false;
49
+ constructor(limits) {
50
+ this.limits = snapshotLimits(limits);
51
+ }
52
+ attach(value) {
53
+ if (++this.nodes > this.limits.maximumNodes)
54
+ invalid("Replay input exceeds its node limit");
55
+ const parent = this.stack.at(-1);
56
+ if (!parent) {
57
+ if (this.assigned)
58
+ invalid("Multiple roots in replay input");
59
+ this.root = value;
60
+ this.assigned = true;
61
+ }
62
+ else if (parent.kind === "array")
63
+ parent.value.push(value);
64
+ else {
65
+ if (parent.key === null)
66
+ invalid("Object value is missing its key");
67
+ Object.defineProperty(parent.value, parent.key, {
68
+ value,
69
+ enumerable: true,
70
+ writable: true,
71
+ configurable: true,
72
+ });
73
+ parent.key = null;
74
+ }
75
+ }
76
+ push(frame) {
77
+ if (this.sealed)
78
+ invalid("Replay input builder is finalized");
79
+ try {
80
+ this.consume(frame);
81
+ }
82
+ catch (error) {
83
+ this.sealed = true;
84
+ throw error;
85
+ }
86
+ }
87
+ consume(frame) {
88
+ if (!Array.isArray(frame))
89
+ invalid("Replay value event must be an array");
90
+ const [event, payload] = frame;
91
+ const arity = (expected) => {
92
+ if (frame.length !== expected)
93
+ invalid("Invalid replay value event arity");
94
+ };
95
+ if (this.stringParts !== null) {
96
+ if (event === "text") {
97
+ arity(2);
98
+ if (typeof payload !== "string" ||
99
+ payload.length === 0 ||
100
+ payload.length > REPLAY_TEXT_UNITS)
101
+ invalid("Invalid replay text fragment");
102
+ if (payload.length > this.limits.maximumStringUnits - this.stringUnits)
103
+ invalid("Replay input exceeds its string limit");
104
+ if (payload.length > this.limits.maximumTotalStringUnits - this.totalStringUnits)
105
+ invalid("Replay input exceeds its total string limit");
106
+ // Check both budgets before retaining this fragment. Key text counts,
107
+ // and starting another string never resets the whole-input budget.
108
+ this.stringUnits += payload.length;
109
+ this.totalStringUnits += payload.length;
110
+ this.stringParts.push(payload);
111
+ return;
112
+ }
113
+ if (event !== "string-end")
114
+ invalid("Replay string was not terminated");
115
+ arity(1);
116
+ const text = this.stringParts.join("");
117
+ const kind = this.stringKind;
118
+ this.stringParts = null;
119
+ this.stringKind = null;
120
+ if (kind === "value")
121
+ this.attach(text);
122
+ else {
123
+ const parent = this.stack.at(-1);
124
+ if (!parent || parent.kind !== "object" || parent.key !== null)
125
+ invalid("Unexpected replay object key");
126
+ if (parent.lastKey !== null && text <= parent.lastKey)
127
+ invalid("Replay object keys must be strictly increasing and unique");
128
+ parent.lastKey = text;
129
+ parent.key = text;
130
+ }
131
+ return;
132
+ }
133
+ if (event === "string-start") {
134
+ arity(2);
135
+ if (payload !== "key" && payload !== "value")
136
+ invalid("Invalid replay string role");
137
+ const parent = this.stack.at(-1);
138
+ if (payload === "key" && (!parent || parent.kind !== "object" || parent.key !== null))
139
+ invalid("Unexpected replay object key");
140
+ this.stringParts = [];
141
+ this.stringKind = payload;
142
+ this.stringUnits = 0;
143
+ }
144
+ else if (event === "object" || event === "array") {
145
+ arity(1);
146
+ if (this.stack.length >= this.limits.maximumDepth)
147
+ invalid("Replay input exceeds its depth limit");
148
+ const container = event === "array"
149
+ ? { kind: "array", value: [] }
150
+ : { kind: "object", value: Object.create(null), lastKey: null, key: null };
151
+ this.attach(container.value);
152
+ this.stack.push(container);
153
+ }
154
+ else if (event === "end-object" || event === "end-array") {
155
+ arity(1);
156
+ const parent = this.stack.at(-1);
157
+ if (!parent ||
158
+ event !== `end-${parent.kind}` ||
159
+ (parent.kind === "object" && parent.key !== null))
160
+ invalid("Mismatched or incomplete replay container");
161
+ this.stack.pop();
162
+ }
163
+ else if (event === "scalar") {
164
+ arity(2);
165
+ if (payload !== null &&
166
+ typeof payload !== "boolean" &&
167
+ !(typeof payload === "number" && Number.isFinite(payload)))
168
+ invalid("Invalid replay scalar");
169
+ this.attach(payload);
170
+ }
171
+ else if (event === "special-number") {
172
+ arity(2);
173
+ // Preserve raw non-finite observations for SDK audit/blocking, not null.
174
+ if (payload === "NaN")
175
+ this.attach(NaN);
176
+ else if (payload === "+Infinity")
177
+ this.attach(Infinity);
178
+ else if (payload === "-Infinity")
179
+ this.attach(-Infinity);
180
+ else if (payload === "-0")
181
+ this.attach(-0);
182
+ else
183
+ invalid("Invalid special replay number");
184
+ }
185
+ else
186
+ invalid("Unknown replay value event");
187
+ }
188
+ finish() {
189
+ if (this.sealed)
190
+ invalid("Replay input builder is finalized");
191
+ this.sealed = true;
192
+ if (!this.assigned || this.stack.length || this.stringParts !== null)
193
+ invalid("Incomplete replay input value");
194
+ return this.root;
195
+ }
196
+ }
197
+ /** Live read-only input events. The enclosing genuine run owns its snapshots. */
198
+ export function* replayValueFrames(value) {
199
+ const active = new Set();
200
+ function* string(text, role) {
201
+ yield ["string-start", role];
202
+ for (let index = 0; index < text.length; index += REPLAY_TEXT_UNITS)
203
+ yield ["text", text.slice(index, index + REPLAY_TEXT_UNITS)];
204
+ yield ["string-end"];
205
+ }
206
+ function* visit(value) {
207
+ if (typeof value === "string") {
208
+ yield* string(value, "value");
209
+ return;
210
+ }
211
+ if (typeof value === "number" && (!Number.isFinite(value) || Object.is(value, -0))) {
212
+ yield [
213
+ "special-number",
214
+ Number.isNaN(value)
215
+ ? "NaN"
216
+ : value === Infinity
217
+ ? "+Infinity"
218
+ : value === -Infinity
219
+ ? "-Infinity"
220
+ : "-0",
221
+ ];
222
+ return;
223
+ }
224
+ if (value === null || typeof value === "number" || typeof value === "boolean") {
225
+ yield ["scalar", value];
226
+ return;
227
+ }
228
+ if (typeof value !== "object")
229
+ invalid("Unsupported replay input value");
230
+ const array = Array.isArray(value);
231
+ const prototype = Object.getPrototypeOf(value);
232
+ if (array ? prototype !== Array.prototype : prototype !== null && prototype !== Object.prototype)
233
+ invalid("Replay input must contain plain data");
234
+ if (active.has(value))
235
+ invalid("Replay input contains a cycle");
236
+ active.add(value);
237
+ try {
238
+ yield [array ? "array" : "object"];
239
+ if (array) {
240
+ for (const key of Reflect.ownKeys(value))
241
+ if (key !== "length" &&
242
+ (typeof key !== "string" ||
243
+ !/^(0|[1-9][0-9]*)$/.test(key) ||
244
+ Number(key) >= value.length))
245
+ invalid("Replay input arrays must contain indexed data only");
246
+ for (let index = 0; index < value.length; index++) {
247
+ const field = Object.getOwnPropertyDescriptor(value, String(index));
248
+ if (!field || !("value" in field))
249
+ invalid("Replay input arrays must contain indexed data");
250
+ yield* visit(field.value);
251
+ }
252
+ }
253
+ else
254
+ for (const key of Object.keys(value).sort()) {
255
+ const field = Object.getOwnPropertyDescriptor(value, key);
256
+ if (!field || !("value" in field))
257
+ invalid("Replay input objects must contain data properties");
258
+ yield* string(key, "key");
259
+ yield* visit(field.value);
260
+ }
261
+ yield [array ? "end-array" : "end-object"];
262
+ }
263
+ finally {
264
+ active.delete(value);
265
+ }
266
+ }
267
+ yield* visit(value);
268
+ }
269
+ //# sourceMappingURL=diagnosticReplayValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticReplayValue.js","sourceRoot":"","sources":["../src/diagnosticReplayValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type VerifiedCompactDiagnosticRunProvenance } from "./diagnosticCompactRun.js";
2
+ import type { DiagnosticArtifactDigest } from "./diagnosticRun.js";
3
+ export interface DiagnosticReplayStreamRun {
4
+ readonly id: string;
5
+ readonly provenance: VerifiedCompactDiagnosticRunProvenance;
6
+ }
7
+ export type DiagnosticReplayByteSource = Iterable<Uint8Array> | AsyncIterable<Uint8Array>;
8
+ export interface WriteDiagnosticReplayStreamInput {
9
+ readonly runs: readonly DiagnosticReplayStreamRun[];
10
+ /** Fresh stream of at most 64 KiB per chunk, for each unique computed artifact. */
11
+ readonly openArtifact: (artifact: Extract<DiagnosticArtifactDigest, {
12
+ assurance: "sdk-computed";
13
+ }>) => DiagnosticReplayByteSource | Promise<DiagnosticReplayByteSource>;
14
+ readonly signal?: AbortSignal;
15
+ }
16
+ /**
17
+ * Versioned large-data replay, NOT an interchange BundleDoc or the old JSON
18
+ * provenance DTO. Writes only from genuine immutable provenance owners. The
19
+ * host owns I/O and must publish a file only after the generator completes.
20
+ * All artifact bytes are rechecked against their authenticated digests while
21
+ * writing. Consumer cancellation closes producers; pending host I/O should use
22
+ * the same signal. No full candidate identity or whole archive string exists.
23
+ */
24
+ export declare function writeDiagnosticReplayStream(input: WriteDiagnosticReplayStreamInput): AsyncGenerator<Uint8Array>;
25
+ //# sourceMappingURL=diagnosticReplayWriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticReplayWriter.d.ts","sourceRoot":"","sources":["../src/diagnosticReplayWriter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,sCAAsC,EAC5C,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAwBnE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,sCAAsC,CAAC;CAC7D;AACD,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;AAC1F,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,IAAI,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACpD,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,CACrB,QAAQ,EAAE,OAAO,CAAC,wBAAwB,EAAE;QAAE,SAAS,EAAE,cAAc,CAAA;KAAE,CAAC,KACvE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AA4BD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,GACtC,cAAc,CAAC,UAAU,CAAC,CA4G5B"}
@@ -0,0 +1,148 @@
1
+ import { iterateDiagnosticIdentityJson } from "@actuarial-ts/core";
2
+ import { getCompletedCompactDiagnosticRunInput } from "@actuarial-ts/data";
3
+ import { assertVerifiedCompactDiagnosticRunProvenance, getCompactDiagnosticRunOwner, } from "./diagnosticCompactRun.js";
4
+ import { diagnosticByteView } from "./diagnosticByteView.js";
5
+ import { consumeDiagnosticByteSource } from "./diagnosticByteSource.js";
6
+ import { encodeReplayFrames, REPLAY_TEXT_UNITS, } from "./diagnosticReplayFrames.js";
7
+ import { replayValueFrames } from "./diagnosticReplayValue.js";
8
+ import { createSha256 } from "./sha256Stream.js";
9
+ import { ARTIFACT_CHUNK_BYTES, REPLAY_FORMAT, REPLAY_VERSION, badReplay, mismatch, replayArray, replayCancellation, replayFrameBytes, replayRecord, replayToken, encodeArtifactChunk, } from "./diagnosticReplayProtocol.js";
10
+ function replayInput(provenance) {
11
+ const input = getCompletedCompactDiagnosticRunInput(getCompactDiagnosticRunOwner(provenance));
12
+ // Only a small envelope is new. All dataset/evidence arrays are the immutable
13
+ // originals owned by the validated gateway, including filtered-out inputs.
14
+ // Definition uses the normalized wire shape accepted by the core compiler,
15
+ // not a falsely typed authored definition with its optional-null defaults.
16
+ return {
17
+ definition: input.definition.definition,
18
+ losses: input.losses,
19
+ exposures: input.exposures,
20
+ ...(input.filter === null ? {} : { filter: input.filter }),
21
+ completePeriodCutoffs: input.completePeriodCutoffs,
22
+ ...(input.expectedCells === null ? {} : { expectedCells: input.expectedCells }),
23
+ reviewEvidence: input.reviewEvidence,
24
+ ...(input.runPresetId === null ? {} : { runPresetId: input.runPresetId }),
25
+ ...(input.datasetArtifactId === null ? {} : { datasetArtifactId: input.datasetArtifactId }),
26
+ groupMap: input.groupMap,
27
+ groupDimensions: input.groupDimensions,
28
+ policy: {
29
+ allowedReviewStatuses: input.policy.allowedReviewStatuses,
30
+ allowedMetricFindingSeverities: input.policy.allowedMetricFindingSeverities,
31
+ ...(input.policy.rationaleRef === null ? {} : { rationaleRef: input.policy.rationaleRef }),
32
+ },
33
+ };
34
+ }
35
+ /**
36
+ * Versioned large-data replay, NOT an interchange BundleDoc or the old JSON
37
+ * provenance DTO. Writes only from genuine immutable provenance owners. The
38
+ * host owns I/O and must publish a file only after the generator completes.
39
+ * All artifact bytes are rechecked against their authenticated digests while
40
+ * writing. Consumer cancellation closes producers; pending host I/O should use
41
+ * the same signal. No full candidate identity or whole archive string exists.
42
+ */
43
+ export function writeDiagnosticReplayStream(input) {
44
+ // Snapshot at call time, before the first await/yield (not at first next()).
45
+ const options = replayRecord(input, ["runs", "openArtifact", "signal"]);
46
+ const runs = replayArray(options.runs).map((value) => {
47
+ const item = replayRecord(value, ["id", "provenance"]);
48
+ const id = replayToken(item.id);
49
+ assertVerifiedCompactDiagnosticRunProvenance(item.provenance);
50
+ return Object.freeze({ id, provenance: item.provenance });
51
+ });
52
+ if (!runs.length || new Set(runs.map((run) => run.id)).size !== runs.length)
53
+ badReplay("Replay must have at least one run and unique run IDs");
54
+ if (typeof options.openArtifact !== "function")
55
+ badReplay("Replay openArtifact must be a function");
56
+ const openArtifact = options.openArtifact;
57
+ const checkCancellation = replayCancellation(options.signal);
58
+ checkCancellation();
59
+ const artifacts = new Map();
60
+ for (const { provenance } of runs)
61
+ for (const artifact of [...provenance.inputArtifacts, ...provenance.preparationArtifacts]) {
62
+ const prior = artifacts.get(artifact.id);
63
+ if (prior &&
64
+ (prior.scope !== artifact.scope ||
65
+ prior.assurance !== artifact.assurance ||
66
+ prior.algorithm !== artifact.algorithm ||
67
+ prior.value !== artifact.value ||
68
+ (prior.assurance === "sdk-computed" &&
69
+ artifact.assurance === "sdk-computed" &&
70
+ prior.byteLength !== artifact.byteLength)))
71
+ badReplay("Shared replay artifact IDs have conflicting evidence");
72
+ artifacts.set(artifact.id, artifact);
73
+ }
74
+ async function* body() {
75
+ yield [REPLAY_FORMAT, REPLAY_VERSION];
76
+ for (const artifact of artifacts.values()) {
77
+ checkCancellation();
78
+ yield ["artifact"];
79
+ yield* replayValueFrames(artifact);
80
+ yield ["artifact-data"];
81
+ if (artifact.assurance === "sdk-computed") {
82
+ const hash = createSha256();
83
+ let length = 0;
84
+ for await (const raw of consumeDiagnosticByteSource(await openArtifact(artifact), checkCancellation)) {
85
+ checkCancellation();
86
+ const view = diagnosticByteView(raw);
87
+ if (view.byteLength > ARTIFACT_CHUNK_BYTES)
88
+ badReplay("Artifact read chunks must be at most 64 KiB");
89
+ // Snapshot the entire bounded delivered chunk before yielding.
90
+ const owned = new Uint8Array(view);
91
+ length += owned.length;
92
+ if (!Number.isSafeInteger(length) || length > artifact.byteLength)
93
+ mismatch("Artifact grew after its verified digest");
94
+ hash.update(owned);
95
+ if (owned.length)
96
+ yield ["bytes", encodeArtifactChunk(owned)];
97
+ }
98
+ checkCancellation();
99
+ if (length !== artifact.byteLength || hash.digest() !== artifact.value)
100
+ mismatch("Artifact bytes changed after their verified digest");
101
+ }
102
+ yield ["artifact-end"];
103
+ }
104
+ for (const { id, provenance } of runs) {
105
+ checkCancellation();
106
+ yield ["run"];
107
+ yield* replayValueFrames({
108
+ id,
109
+ input: replayInput(provenance),
110
+ inputArtifactIds: provenance.inputArtifacts.map((item) => item.id),
111
+ preparationArtifactIds: provenance.preparationArtifacts.map((item) => item.id),
112
+ preparationLineage: provenance.preparationLineage,
113
+ });
114
+ yield ["input-end"];
115
+ for (const [channel, document] of [
116
+ ["manifest", provenance.manifestIdentityDocument],
117
+ ["result", provenance.resultIdentityDocument],
118
+ ]) {
119
+ for (const text of iterateDiagnosticIdentityJson(document))
120
+ for (let start = 0; start < text.length; start += REPLAY_TEXT_UNITS)
121
+ yield [channel, text.slice(start, start + REPLAY_TEXT_UNITS)];
122
+ yield [`${channel}-end`];
123
+ }
124
+ yield [
125
+ "run-end",
126
+ provenance.runFingerprint,
127
+ provenance.resultFingerprint,
128
+ provenance.runResultFingerprint,
129
+ ];
130
+ }
131
+ }
132
+ async function* sequenced() {
133
+ let sequence = 0;
134
+ const hash = createSha256();
135
+ for await (const event of body()) {
136
+ checkCancellation();
137
+ if (!Number.isSafeInteger(sequence + 1))
138
+ badReplay("Replay sequence exceeded safe integers");
139
+ const frame = [sequence++, ...event];
140
+ hash.update(replayFrameBytes(frame));
141
+ yield frame;
142
+ }
143
+ checkCancellation();
144
+ yield [sequence, "end", artifacts.size, runs.length, hash.digest()];
145
+ }
146
+ return encodeReplayFrames(sequenced());
147
+ }
148
+ //# sourceMappingURL=diagnosticReplayWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticReplayWriter.js","sourceRoot":"","sources":["../src/diagnosticReplayWriter.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
- import { type DiagnosticDeepReadonly, type CompiledDiagnosticDefinition, type JsonValue as CoreDiagnosticJsonValue, type NormalizedDiagnosticDefinitionIdentity, type NormalizedDiagnosticPreparationIdentity, type NormalizedDiagnosticResultIdentity } from "@actuarial-ts/core";
1
+ import { type DiagnosticDeepReadonly, type CompiledDiagnosticDefinition, type JsonValue as CoreDiagnosticJsonValue, type NormalizedDiagnosticDefinitionIdentity, type NormalizedDiagnosticPreparationIdentity, type MetricDiagnosticsResult } from "@actuarial-ts/core";
2
2
  import { type CompletedValidatedMetricDiagnosticsRun, type DiagnosticReviewIdentityBody, type DiagnosticReviewReceipt } from "@actuarial-ts/data";
3
3
  export interface DiagnosticArtifactDigestBase {
4
4
  readonly id: string;
5
- readonly scope: "input" | "preparation";
6
- readonly algorithm: string;
7
5
  readonly value: string;
8
- readonly byteLength: number;
6
+ readonly scope: "input" | "preparation";
9
7
  }
10
- export type DiagnosticArtifactDigest = DiagnosticArtifactDigestBase & {
11
- readonly assurance: "sdk-computed" | "caller-declared";
12
- };
8
+ export type DiagnosticArtifactDigest = DiagnosticArtifactDigestBase & ({
9
+ readonly assurance: "sdk-computed";
10
+ readonly algorithm: "sha256";
11
+ readonly byteLength: number;
12
+ } | {
13
+ readonly assurance: "caller-declared";
14
+ readonly algorithm: string;
15
+ });
13
16
  export type DiagnosticArtifactEvidence = {
14
17
  readonly id: string;
15
18
  readonly scope: "input" | "preparation";
@@ -21,49 +24,66 @@ export type DiagnosticArtifactEvidence = {
21
24
  readonly assurance: "caller-declared";
22
25
  readonly algorithm: string;
23
26
  readonly value: string;
24
- readonly byteLength: number;
25
27
  };
26
28
  export interface DiagnosticPreparationLineage {
27
- readonly artifactId: string;
29
+ readonly outputArtifactId: string;
28
30
  readonly inputArtifactIds: readonly string[];
31
+ readonly transformationArtifactIds: readonly string[];
29
32
  }
30
33
  export interface DiagnosticRunManifest {
31
34
  readonly definitionIntegrity: string;
32
35
  readonly runPresetId: string | null;
33
36
  readonly datasetArtifactId: string | null;
34
- readonly packageVersions: Readonly<Record<string, string>>;
35
- readonly preparation: DiagnosticDeepReadonly<NormalizedDiagnosticPreparationIdentity>;
36
37
  readonly preparationFingerprint: string;
37
- readonly expectedGridFingerprint: string | null;
38
+ readonly inputArtifacts: readonly DiagnosticArtifactDigest[];
39
+ readonly preparationArtifacts: readonly DiagnosticArtifactDigest[];
40
+ readonly preparationLineage: readonly DiagnosticPreparationLineage[];
41
+ readonly inputAudit: DiagnosticDeepReadonly<NormalizedDiagnosticPreparationIdentity["inputAudit"]>;
42
+ readonly filter: DiagnosticDeepReadonly<NormalizedDiagnosticPreparationIdentity["filter"]>;
43
+ readonly groupMap: Readonly<Record<string, string>>;
44
+ readonly groupDimensions: Readonly<Record<string, CoreDiagnosticJsonValue>>;
45
+ readonly completePeriodCutoffs: DiagnosticDeepReadonly<NormalizedDiagnosticPreparationIdentity["completePeriodCutoffs"]>;
46
+ readonly expectedCellGridFingerprint: string | null;
47
+ readonly executionPolicy: {
48
+ readonly review: DiagnosticReviewReceipt;
49
+ readonly gate: CompletedValidatedMetricDiagnosticsRun["gate"];
50
+ };
51
+ readonly engine: {
52
+ readonly packages: {
53
+ readonly core: string;
54
+ readonly data: string;
55
+ readonly compliance: string;
56
+ };
57
+ readonly algorithmVersion: "diagnostics-1";
58
+ };
59
+ }
60
+ export type NormalizedDiagnosticRunManifestIdentity = DiagnosticDeepReadonly<Omit<DiagnosticRunManifest, "executionPolicy"> & {
38
61
  readonly executionPolicy: {
39
62
  readonly review: {
40
63
  readonly body: DiagnosticReviewIdentityBody;
41
64
  readonly reportFingerprint: string;
42
65
  };
43
- readonly gate: CompletedValidatedMetricDiagnosticsRun["gate"];
66
+ readonly gate: DiagnosticRunManifest["executionPolicy"]["gate"];
44
67
  };
45
- readonly groupMap: Readonly<Record<string, string>>;
46
- readonly groupDimensions: Readonly<Record<string, CoreDiagnosticJsonValue>>;
47
- readonly artifacts: readonly DiagnosticArtifactDigest[];
48
- readonly lineage: readonly DiagnosticPreparationLineage[];
49
- }
50
- export type NormalizedDiagnosticRunManifestIdentity = DiagnosticDeepReadonly<DiagnosticRunManifest>;
68
+ }>;
51
69
  export interface DiagnosticRunIdentity {
52
70
  readonly runFingerprint: string;
53
71
  readonly resultFingerprint: string;
54
72
  readonly runResultFingerprint: string;
55
73
  }
56
74
  export interface DiagnosticRunProvenance extends DiagnosticRunIdentity {
57
- readonly definition: DiagnosticDeepReadonly<NormalizedDiagnosticDefinitionIdentity>;
58
- readonly definitionIdentities: {
59
- readonly algorithm: "fnv1a64-jcs-v1";
60
- readonly formulaById: Readonly<Record<string, string>>;
61
- readonly calculationByInstanceId: Readonly<Record<string, string>>;
62
- readonly definition: string;
75
+ readonly definition: {
76
+ readonly definition: DiagnosticDeepReadonly<NormalizedDiagnosticDefinitionIdentity>;
77
+ readonly identities: {
78
+ readonly algorithm: "fnv1a64-jcs-v1";
79
+ readonly formulaById: Readonly<Record<string, string>>;
80
+ readonly calculationByInstanceId: Readonly<Record<string, string>>;
81
+ readonly definition: string;
82
+ };
63
83
  };
64
- readonly manifest: NormalizedDiagnosticRunManifestIdentity;
84
+ readonly manifest: DiagnosticDeepReadonly<DiagnosticRunManifest>;
65
85
  readonly review: DiagnosticReviewReceipt;
66
- readonly result: DiagnosticDeepReadonly<NormalizedDiagnosticResultIdentity>;
86
+ readonly result: DiagnosticDeepReadonly<MetricDiagnosticsResult>;
67
87
  }
68
88
  declare const verifiedDiagnosticRunProvenanceBrand: unique symbol;
69
89
  export interface VerifiedDiagnosticRunProvenance extends DiagnosticRunProvenance {
@@ -71,11 +91,14 @@ export interface VerifiedDiagnosticRunProvenance extends DiagnosticRunProvenance
71
91
  }
72
92
  export interface CreateDiagnosticRunIdentityInput {
73
93
  readonly completedRun: CompletedValidatedMetricDiagnosticsRun;
74
- readonly artifacts?: readonly DiagnosticArtifactEvidence[];
75
- readonly lineage?: readonly DiagnosticPreparationLineage[];
94
+ readonly inputArtifacts: readonly DiagnosticArtifactEvidence[];
95
+ readonly preparationArtifacts: readonly DiagnosticArtifactEvidence[];
96
+ readonly preparationLineage: readonly DiagnosticPreparationLineage[];
76
97
  }
77
98
  export declare function createDiagnosticRunIdentity(input: CreateDiagnosticRunIdentityInput): Promise<VerifiedDiagnosticRunProvenance>;
78
99
  export declare function assertVerifiedDiagnosticRunProvenance(value: unknown): asserts value is VerifiedDiagnosticRunProvenance;
100
+ /** Verify serialized evidence by replaying the owning core/data public workflows. */
101
+ export declare function serializedDiagnosticRunMismatch(value: unknown, path?: string): string | null;
79
102
  /** @internal Bundle authoring uses owner state rather than trusting the public snapshot. */
80
103
  export declare function verifiedDefinitionForBundle(value: VerifiedDiagnosticRunProvenance): CompiledDiagnosticDefinition;
81
104
  export declare function verifyDiagnosticRunIdentity(candidate: unknown, input: CreateDiagnosticRunIdentityInput): Promise<VerifiedDiagnosticRunProvenance>;
@@ -1 +1 @@
1
- {"version":3,"file":"diagnosticRun.d.ts","sourceRoot":"","sources":["../src/diagnosticRun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnosticRun.d.ts","sourceRoot":"","sources":["../src/diagnosticRun.ts"],"names":[],"mappings":"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"}